@import "https://cdn.jsdelivr.net/npm/@fontsource/work-sans@latest/400.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/work-sans@latest/400-italic.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/work-sans@latest/700.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/work-sans@latest/700-italic.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/pt-serif@latest/400.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/pt-serif@latest/400-italic.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/pt-serif@latest/700.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/pt-serif@latest/700-italic.css";

body {
    margin: 0;
    position: relative;
    min-height: 100vh;
    word-break: break-word;
    overflow-wrap: anywhere;
    font-family: 'Work Sans', sans-serif
}

.pg-head {
    background: #2D8843;
    position: relative;
    z-index: 100
}

.pg-head__top {
    max-width: 1440px;
    margin: 0 auto;
    padding: 20px 40px;
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid #7cc2744d
}

.pg-head__brand-link {
    display: flex;
    align-items: center;
    gap: 20px;
    text-decoration: none
}

.pg-head__logo-frame {
    width: 64px;
    height: 64px;
    border: 1px solid #ffffffe6;
    border-radius: 4px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: -1px 1px 3px 0 #2d884312 -1px 5px 22px 0 #2d884314;
    flex-shrink: 0;
    overflow: hidden
}

.pg-head__logo-frame img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: block
}

.pg-head__brand-name {
    font-family: 'PT Serif', serif;
    font-size: 26px;
    font-weight: 700;
    color: #FBFDF7;
    line-height: 1.15;
    letter-spacing: -.3px
}

.pg-head__brand-sub {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #7CC274;
    line-height: 1.4;
    letter-spacing: .4px;
    margin-top: 4px
}

.pg-head__bar {
    background: #1e6130;
    border-top: 2px solid #7CC274
}

.pg-head__nav-row {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: stretch;
    flex-wrap: wrap
}

.pg-head__nav-row a {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #FBFDF7;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .8px;
    line-height: 1.4;
    padding: 20px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    position: relative;
    transition: color .12s cubic-bezier(0.4, 0, 1, 1), background .15s cubic-bezier(0.4, 0, 1, 1)
}

.pg-head__nav-row a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #7CC274;
    border-radius: 2px 2px 0 0;
    transform: scaleX(0);
    transition: transform .12s cubic-bezier(0.4, 0, 1, 1)
}

.pg-head__nav-row a:hover {
    color: #7CC274;
    background: #7cc27414
}

.pg-head__nav-row a:hover::after {
    transform: scaleX(1)
}

.pg-head__nav-row a:focus {
    outline: none;
    text-decoration: underline;
    color: #7CC274
}

.pg-head__nav-row a svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    opacity: .75
}

.pg-foot {
    background: #1e6130;
    border-top: 3px solid #2D8843
}

.pg-foot__body {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center
}

.pg-foot__divider {
    width: 60px;
    height: 2px;
    background: #7CC274;
    border-radius: 2px
}

.pg-foot__legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 40px
}

.pg-foot__legal a {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #7CC274;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .6px;
    line-height: 1.6;
    transition: color .1s ease-in
}

.pg-foot__legal a:hover {
    color: #FBFDF7
}

.pg-foot__legal a:focus {
    text-decoration: underline;
    color: #FBFDF7;
    outline: none
}

.pg-foot__addr {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    color: #fbfdf7a6;
    line-height: 1.6;
    letter-spacing: .2px
}

.pg-foot__addr a {
    color: #fbfdf7a6;
    text-decoration: none;
    transition: color .1s ease-in
}

.pg-foot__addr a:hover {
    color: #FBFDF7
}

.pg-foot__copy {
    font-family: 'PT Serif', serif;
    font-size: 14px;
    color: #fbfdf773;
    line-height: 1.6;
    letter-spacing: .1px
}

.ck-toast {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 8000;
    width: 320px;
    max-width: calc(100vw - 40px);
    background: #FBFDF7;
    border-radius: 12px;
    box-shadow: -1px 8px 60px 0 #2d884321;
    border: 1px solid #2d884326;
    overflow: hidden;
    display: none;
    transform: translateY(30px);
    opacity: 0;
    transition: transform .42s cubic-bezier(0.4, 0, 1, 1), opacity .42s cubic-bezier(0.4, 0, 1, 1)
}

.ck-toast.ck-visible {
    transform: translateY(0);
    opacity: 1
}

.ck-toast__body {
    padding: 20px
}

.ck-toast__desc {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    color: #1a3d23;
    line-height: 1.6;
    margin-bottom: 10px
}

.ck-toast__headline {
    font-family: 'PT Serif', serif;
    font-size: 14px;
    font-weight: 700;
    color: #2D8843;
    line-height: 1.4;
    margin-bottom: 10px
}

.ck-toast__toggle-row {
    display: none;
    padding: 10px 0 0
}

.ck-toast__toggle-row.ck-open {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px
}

.ck-toast__toggle-label {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    color: #1a3d23;
    line-height: 1.4
}

.ck-toggle {
    position: relative;
    width: 40px;
    height: 22px;
    flex-shrink: 0
}

.ck-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute
}

.ck-toggle__track {
    position: absolute;
    inset: 0;
    background: #ccc;
    border-radius: 20px;
    cursor: pointer;
    transition: background .15s ease-in
}

.ck-toggle input:checked+.ck-toggle__track {
    background: #2D8843
}

.ck-toggle__track::before {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    left: 3px;
    top: 3px;
    background: #fff;
    border-radius: 20px;
    transition: transform .15s ease-in
}

.ck-toggle input:checked+.ck-toggle__track::before {
    transform: translateX(18px)
}

.ck-toggle input:focus+.ck-toggle__track {
    outline: 2px solid #2D8843;
    outline-offset: 2px
}

.ck-toast__acts {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 10px
}

.ck-toast__acts button {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    line-height: 1.6;
    transition: color .12s cubic-bezier(0.4, 0, 1, 1)
}

.ck-toast__acts button:focus {
    outline: 2px solid #2D8843;
    border-radius: 2px
}

.ck-accept {
    color: #2D8843;
    text-decoration: underline
}

.ck-accept:hover {
    color: #1e6130
}

.ck-decline {
    color: #888;
    text-decoration: underline
}

.ck-decline:hover {
    color: #333
}

.ck-settings-btn {
    font-family: 'Work Sans', sans-serif;
    font-size: 14px;
    color: #2D8843;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-transform: uppercase;
    letter-spacing: .5px;
    font-weight: 400;
    transition: color .12s cubic-bezier(0.4, 0, 1, 1);
    margin-top: 4px;
    display: inline-block
}

.ck-settings-btn:hover {
    color: #1e6130
}

.ck-settings-btn:focus {
    outline: 2px solid #2D8843;
    border-radius: 2px
}

@media (max-width: 960px) {
    .pg-head__top {
        padding: 20px
    }

    .pg-head__nav-row {
        padding: 0 20px
    }

    .pg-foot__body {
        padding: 40px 20px
    }
}

@media (max-width: 480px) {
    .pg-head__brand-name {
        font-size: 20px
    }

    .pg-head__nav-row a {
        padding: 20px 10px;
        font-size: 14px;
        letter-spacing: .4px
    }

    .pg-foot__legal {
        gap: 10px 20px
    }
}

.legal-inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 80px 40px
}

.legal-inner p {
    font-size: 14px;
    line-height: 1.6;
    color: #2c2c2c;
    margin-bottom: 20px
}

.legal-inner ul,
.legal-inner ol {
    padding-left: 20px;
    margin-bottom: 20px
}

.legal-inner ul {
    list-style: none;
    padding-left: 0
}

.legal-inner ul li {
    padding-left: 20px;
    position: relative
}

.legal-inner ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 6px;
    height: 6px;
    background-color: #2D8843;
    border-radius: 2px
}

.legal-inner ol {
    list-style: decimal
}

.legal-inner li {
    font-size: 14px;
    line-height: 1.6;
    color: #2c2c2c;
    margin-bottom: 10px
}

.legal-inner a {
    color: #2D8843;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color .12s cubic-bezier(0.4, 0, 1, 1), text-decoration-color .12s cubic-bezier(0.4, 0, 1, 1)
}

.legal-inner a:hover {
    color: #7CC274;
    text-decoration-color: #7CC274
}

.legal-inner table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 40px;
    font-size: 14px;
    box-shadow: -1px 1px 3px 0 #2d884312 -1px 5px 22px 0 #2d884314;
    border-radius: 4px;
    overflow: hidden
}

.legal-inner thead {
    background-color: #2D8843
}

.legal-inner thead th {
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 10px 20px;
    text-align: left;
    line-height: 1.4
}

.legal-inner tbody tr {
    border-bottom: 1px solid #2d88431f;
    transition: background-color .1s cubic-bezier(0.4, 0, 1, 1)
}

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

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

.legal-inner tbody tr:hover {
    background-color: #7cc2741a
}

.legal-inner td {
    padding: 10px 20px;
    color: #2c2c2c;
    line-height: 1.6;
    vertical-align: top
}

.legal-inner th {
    padding: 10px 20px
}

.legal-inner hr {
    border: none;
    height: 1px;
    background: linear-gradient(to right, #2d88434d, #2d884314, transparent);
    margin: 40px 0
}

@media (max-width: 960px) {
    .legal-inner {
        padding: 40px 20px
    }

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

@media (max-width: 480px) {
    .legal-inner {
        padding: 40px 10px
    }

    .legal-inner thead th,
    .legal-inner td {
        padding: 10px
    }

    .legal-inner li {
        line-height: 2
    }
}

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

.sst-pg .grad-top {
    background: linear-gradient(to bottom, #2D8843 0%, transparent 100%);
    padding: 80px;
    position: relative
}

.sst-pg .grad-top::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, #2c88432e 0%, transparent 80%);
    pointer-events: none;
    animation: grad-a 6s ease-in alternate infinite
}

.sst-pg .grad-top::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, #7cc27421 0%, transparent 60%);
    pointer-events: none;
    animation: grad-b 9s ease-in alternate-reverse infinite
}

@keyframes grad-a {
    from {
        opacity: .6
    }

    to {
        opacity: 1
    }
}

@keyframes grad-b {
    from {
        opacity: 1
    }

    to {
        opacity: .4
    }
}

.sst-pg .gt-inner {
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-end;
    position: relative;
    z-index: 1
}

.sst-pg .gt-text {
    flex: 1 1 0;
    padding-bottom: 40px
}

.sst-pg .gt-prefix {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px
}

.sst-pg .gt-prefix-line {
    width: 40px;
    height: 2px;
    background: #7CC274
}

.sst-pg .gt-prefix-label {
    font-size: 14px;
    letter-spacing: .12em;
    color: #FBFDF7;
    text-transform: uppercase
}

.sst-pg .gt-h1 {
    font-size: 66px;
    line-height: 1.15;
    color: #FBFDF7;
    font-style: italic;
    letter-spacing: -.02em;
    margin-bottom: 20px
}

.sst-pg .gt-h1 span {
    color: #7CC274;
    font-style: normal
}

.sst-pg .gt-sub {
    font-size: 20px;
    line-height: 1.6;
    color: #fbfdf7d9;
    max-width: 480px
}

.sst-pg .gt-img-col {
    flex: 0 0 360px;
    position: relative
}

.sst-pg .gt-img-wrap {
    width: 360px;
    height: 480px;
    overflow: hidden
}

.sst-pg .gt-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(1.15) brightness(0.92);
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.sst-pg .gt-img-wrap:hover img {
    transform: scale(1.04)
}

.sst-pg .gt-diamond {
    position: absolute;
    bottom: -20px;
    left: -20px;
    width: 40px;
    height: 40px;
    background: #7CC274;
    transform: rotate(45deg);
    z-index: 2
}

.sst-pg .gt-flow-line {
    position: absolute;
    right: -40px;
    top: 40px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center
}

.sst-pg .gt-flow-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #7CC274;
    opacity: .7
}

.sst-pg .gt-flow-dot.big {
    width: 10px;
    height: 10px;
    opacity: 1
}

.sst-pg .divider-asym {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0 80px;
    margin: 0
}

.sst-pg .divider-asym .d-short {
    width: 60px;
    height: 2px;
    background: #2D8843;
    flex-shrink: 0
}

.sst-pg .divider-asym .d-long {
    flex: 1;
    height: 1px;
    background: #2d884333
}

.sst-pg .stories-band {
    background: #FBFDF7;
    padding: 80px
}

.sst-pg .sb-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 40px;
    align-items: start
}

.sst-pg .sb-main-col {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.sst-pg .sb-side-col {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.sst-pg .sb-heading {
    font-size: 36px;
    line-height: 1.15;
    color: #2D8843;
    font-style: italic;
    letter-spacing: -.01em;
    margin-bottom: 10px
}

.sst-pg .sb-heading-prefix {
    display: inline-block;
    width: 12px;
    height: 12px;
    background: #7CC274;
    transform: rotate(45deg);
    margin-right: 10px;
    vertical-align: middle
}

.sst-pg .story-card {
    background: #fff;
    border-radius: 4px;
    box-shadow: -1px 5px 22px 0 #2d884314;
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow .14s cubic-bezier(0.4, 0, 1, 1)
}

.sst-pg .story-card:hover {
    box-shadow: -1px 8px 60px 0 #2d884321
}

.sst-pg .story-card.featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    padding: 0;
    overflow: hidden;
    border-radius: 12px
}

.sst-pg .sc-img-wrap {
    overflow: hidden;
    border-radius: 0;
    height: 320px
}

.sst-pg .sc-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.sst-pg .sc-img-wrap:hover img {
    transform: scale(1.05)
}

.sst-pg .sc-body {
    padding: 40px 40px 40px 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center
}

.sst-pg .sc-tag {
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #2D8843;
    font-weight: 600
}

.sst-pg .sc-name {
    font-size: 26px;
    line-height: 1.4;
    color: #1b3a23;
    font-style: italic
}

.sst-pg .sc-quote {
    font-size: 20px;
    line-height: 1.6;
    color: #2a3a2e;
    border-top: 2px solid #7CC274;
    padding-top: 20px
}

.sst-pg .sc-quote em {
    color: #2D8843;
    font-style: normal
}

.sst-pg .sc-meta {
    font-size: 14px;
    line-height: 1.6;
    color: #4a5e4f
}

.sst-pg .sc-person {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px
}

.sst-pg .sc-portrait {
    width: 64px;
    height: 96px;
    overflow: hidden;
    flex-shrink: 0
}

.sst-pg .sc-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top
}

.sst-pg .sc-person-info {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.sst-pg .sc-person-name {
    font-size: 14px;
    font-weight: 700;
    color: #1b3a23;
    letter-spacing: .04em
}

.sst-pg .sc-person-role {
    font-size: 14px;
    color: #4a5e4f
}

.sst-pg .side-stat-box {
    background: #2D8843;
    border-radius: 12px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.sst-pg .ssb-label {
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #7CC274
}

.sst-pg .ssb-num {
    font-size: 66px;
    line-height: 1.15;
    color: #FBFDF7;
    letter-spacing: -.03em;
    font-style: italic
}

.sst-pg .ssb-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7cc
}

.sst-pg .side-plain-card {
    background: #fff;
    border-radius: 4px;
    box-shadow: -1px 1px 3px 0 #2d884312;
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    transition: box-shadow .12s ease-in
}

.sst-pg .side-plain-card:hover {
    box-shadow: -1px 5px 22px 0 #2d884314
}

.sst-pg .spc-tag {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #2D8843;
    font-weight: 600
}

.sst-pg .spc-name {
    font-size: 20px;
    line-height: 1.4;
    color: #1b3a23;
    font-style: italic
}

.sst-pg .spc-text {
    font-size: 14px;
    line-height: 1.6;
    color: #3a4e3e;
    border-left: none;
    padding-left: 10px;
    border-top: 1px solid #2d884333;
    padding-top: 10px
}

.sst-pg .spc-person-name {
    font-size: 14px;
    font-weight: 700;
    color: #1b3a23
}

.sst-pg .spc-person-role {
    font-size: 14px;
    color: #4a5e4f
}

.sst-pg .divider-plain {
    height: 1px;
    background: linear-gradient(to right, #2d88434d, transparent);
    margin: 0 80px
}

.sst-pg .complex-band {
    background: #fff;
    padding: 80px
}

.sst-pg .cb-top {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 80px;
    margin-bottom: 40px
}

.sst-pg .cb-h2 {
    font-size: 50px;
    line-height: 1.15;
    color: #2D8843;
    font-style: italic;
    letter-spacing: -.02em;
    flex: 1
}

.sst-pg .cb-intro {
    flex: 1;
    font-size: 20px;
    line-height: 1.6;
    color: #2a3a2e;
    padding-top: 10px
}

.sst-pg .cb-intro em {
    color: #2D8843;
    font-style: normal;
    font-weight: 600
}

.sst-pg .cb-data-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 40px
}

.sst-pg .cb-datum {
    border-top: 2px solid #2D8843;
    padding-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.sst-pg .cb-datum-num {
    font-size: 36px;
    line-height: 1.15;
    color: #2D8843;
    font-style: italic;
    letter-spacing: -.01em
}

.sst-pg .cb-datum-label {
    font-size: 14px;
    line-height: 1.6;
    color: #3a4e3e;
    letter-spacing: .04em
}

.sst-pg .cb-img-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.sst-pg .cb-img-item {
    overflow: hidden;
    border-radius: 4px;
    height: 280px;
    position: relative
}

.sst-pg .cb-img-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .18s cubic-bezier(0.4, 0, 1, 1)
}

.sst-pg .cb-img-item:hover img {
    transform: scale(1.04)
}

.sst-pg .cb-img-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, #2d8843d1 0%, transparent 100%);
    padding: 20px;
    font-size: 14px;
    color: #FBFDF7;
    letter-spacing: .04em
}

@media (max-width: 960px) {
    .sst-pg .grad-top {
        padding: 40px 20px 80px
    }

    .sst-pg .gt-inner {
        flex-direction: column;
        gap: 40px
    }

    .sst-pg .gt-h1 {
        font-size: 50px
    }

    .sst-pg .gt-img-col {
        flex: 0 0 auto;
        width: 100%
    }

    .sst-pg .gt-img-wrap {
        width: 100%;
        height: 320px
    }

    .sst-pg .divider-asym {
        padding: 0 20px
    }

    .sst-pg .stories-band {
        padding: 40px 20px
    }

    .sst-pg .sb-grid {
        grid-template-columns: 1fr
    }

    .sst-pg .story-card.featured {
        grid-template-columns: 1fr
    }

    .sst-pg .sc-img-wrap {
        height: 240px
    }

    .sst-pg .sc-body {
        padding: 20px
    }

    .sst-pg .complex-band {
        padding: 40px 20px
    }

    .sst-pg .cb-top {
        flex-direction: column;
        gap: 20px
    }

    .sst-pg .cb-h2 {
        font-size: 36px
    }

    .sst-pg .cb-data-row {
        grid-template-columns: repeat(2, 1fr)
    }

    .sst-pg .cb-img-row {
        grid-template-columns: 1fr
    }

    .sst-pg .divider-plain {
        margin: 0 20px
    }
}

@media (max-width: 480px) {
    .sst-pg .gt-h1 {
        font-size: 36px
    }

    .sst-pg .cb-data-row {
        grid-template-columns: 1fr
    }

    .sst-pg .ssb-num {
        font-size: 50px
    }

    .sst-pg .side-stat-box {
        padding: 20px
    }

    .sst-pg .story-card {
        padding: 20px
    }
}

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

.abt-pg .dec-circles {
    position: absolute;
    pointer-events: none;
    overflow: hidden;
    inset: 0;
    z-index: 0
}

.abt-pg .dec-circles span {
    position: absolute;
    border-radius: 50%;
    background: #2d884312
}

.abt-pg .dec-circles span:nth-child(1) {
    width: 180px;
    height: 180px;
    top: -40px;
    left: -60px
}

.abt-pg .dec-circles span:nth-child(2) {
    width: 80px;
    height: 80px;
    top: 60px;
    left: 80px;
    background: #7cc27417
}

.abt-pg .dec-circles span:nth-child(3) {
    width: 40px;
    height: 40px;
    top: 20px;
    left: 200px;
    background: #2d88430d
}

.abt-pg .hero-wrap {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    min-height: 580px;
    background: #FBFDF7;
    overflow: hidden
}

.abt-pg .hero-left {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 40px 80px 80px;
    position: relative;
    z-index: 1
}

.abt-pg .hero-eyebrow {
    font-size: 14px;
    letter-spacing: .12em;
    color: #2D8843;
    text-transform: uppercase;
    margin-bottom: 20px;
    line-height: 1.4
}

.abt-pg .hero-h1 {
    font-size: 66px;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #1b2e1f;
    margin-bottom: 20px;
    font-style: italic
}

.abt-pg .hero-h1 .punct {
    color: #2D8843
}

.abt-pg .hero-desc {
    font-size: 20px;
    line-height: 1.6;
    color: #2a3a2d;
    max-width: 420px;
    margin-bottom: 40px
}

.abt-pg .hero-stats {
    display: flex;
    flex-direction: row;
    gap: 40px
}

.abt-pg .stat-item {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.abt-pg .stat-num {
    font-size: 36px;
    line-height: 1.15;
    color: #2D8843;
    letter-spacing: -.01em
}

.abt-pg .stat-label {
    font-size: 14px;
    line-height: 1.4;
    color: #3d5040;
    letter-spacing: .04em
}

.abt-pg .stat-note {
    font-size: 14px;
    line-height: 1.6;
    color: #4a6050;
    margin-top: 10px;
    max-width: 140px
}

.abt-pg .hero-right {
    flex: 1 1 50%;
    position: relative;
    overflow: hidden;
    min-height: 500px
}

.abt-pg .hero-img-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden
}

.abt-pg .hero-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.85) brightness(0.88);
    animation: img-wipe .16s cubic-bezier(0.4, 0, 1, 1) forwards;
    clip-path: inset(0 100% 0 0)
}

@keyframes img-wipe {
    from {
        clip-path: inset(0 100% 0 0)
    }

    to {
        clip-path: inset(0 0% 0 0)
    }
}

.abt-pg .hero-img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, #2d884352, transparent 70%);
    z-index: 1
}

.abt-pg .hero-img-wrap img {
    animation: img-wipe .18s cubic-bezier(0.4, 0, 1, 1) .05s both
}

.abt-pg .divider-tri {
    width: 100%;
    line-height: 0;
    background: #FBFDF7
}

.abt-pg .divider-tri svg {
    display: block;
    width: 100%
}

.abt-pg .about-body {
    background: #fff;
    padding: 80px 80px 0;
    position: relative
}

.abt-pg .body-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 80px
}

.abt-pg .body-col-wide {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    gap: 40px
}

.abt-pg .body-col-side {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.abt-pg .about-h2 {
    font-size: 50px;
    line-height: 1.15;
    letter-spacing: -.015em;
    color: #1b2e1f;
    font-style: italic;
    margin-bottom: 20px
}

.abt-pg .about-h2 .acc {
    color: #2D8843
}

.abt-pg .about-para {
    font-size: 20px;
    line-height: 1.6;
    color: #2a3a2d
}

.abt-pg .about-para+.about-para {
    margin-top: 20px
}

.abt-pg .val-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.abt-pg .val-list li {
    padding: 10px 10px 10px 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #2a3a2d;
    position: relative;
    border-top: 1px solid #2d88431f;
    transition: background .12s cubic-bezier(0.4, 0, 1, 1)
}

.abt-pg .val-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #2D8843;
    border-radius: 2px;
    transform: scaleY(0.4);
    transition: transform .14s cubic-bezier(0.4, 0, 1, 1)
}

.abt-pg .val-list li:hover::before {
    transform: scaleY(1)
}

.abt-pg .val-list li strong {
    display: block;
    font-size: 14px;
    color: #1b2e1f;
    margin-bottom: 4px;
    letter-spacing: .03em
}

.abt-pg .portrait-card {
    background: #FBFDF7;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: -1px 5px 22px 0 #2d884314;
    display: flex;
    flex-direction: column
}

.abt-pg .portrait-img-wrap {
    width: 100%;
    aspect-ratio: 5/7;
    overflow: hidden;
    border-radius: 12px 12px 0 0
}

.abt-pg .portrait-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.abt-pg .portrait-img-wrap:hover img {
    transform: scale(1.04)
}

.abt-pg .portrait-info {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.abt-pg .portrait-name {
    font-size: 20px;
    line-height: 1.4;
    color: #1b2e1f
}

.abt-pg .portrait-role {
    font-size: 14px;
    line-height: 1.4;
    color: #2D8843;
    letter-spacing: .05em;
    text-transform: uppercase
}

.abt-pg .portrait-quote {
    font-size: 14px;
    line-height: 1.6;
    color: #4a6050;
    font-style: italic
}

.abt-pg .metrics-band {
    background: #1b2e1f;
    padding: 80px;
    position: relative;
    overflow: hidden
}

.abt-pg .metrics-dots {
    position: absolute;
    bottom: 20px;
    right: 40px;
    pointer-events: none
}

.abt-pg .metrics-dots span {
    display: inline-block;
    border-radius: 50%;
    background: #7cc2742e;
    margin: 4px
}

.abt-pg .metrics-dots span:nth-child(1) {
    width: 28px;
    height: 28px
}

.abt-pg .metrics-dots span:nth-child(2) {
    width: 16px;
    height: 16px;
    background: #7cc2741f
}

.abt-pg .metrics-dots span:nth-child(3) {
    width: 10px;
    height: 10px;
    background: #7cc27438
}

.abt-pg .metrics-dots span:nth-child(4) {
    width: 6px;
    height: 6px
}

.abt-pg .metrics-top {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px
}

.abt-pg .metrics-h3 {
    font-size: 36px;
    line-height: 1.15;
    color: #FBFDF7;
    font-style: italic;
    letter-spacing: -.01em
}

.abt-pg .metrics-sub {
    font-size: 14px;
    line-height: 1.6;
    color: #7CC274;
    max-width: 280px;
    text-align: right
}

.abt-pg .metrics-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px
}

.abt-pg .met-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 20px;
    border-bottom: 2px solid #7cc27426;
    transition: border-color .12s cubic-bezier(0.4, 0, 1, 1);
    position: relative
}

.abt-pg .met-item::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: #7CC274;
    transition: width .16s cubic-bezier(0.4, 0, 1, 1)
}

.abt-pg .met-item:hover::after {
    width: 100%
}

.abt-pg .met-fig {
    font-size: 50px;
    line-height: 1.15;
    color: #7CC274;
    letter-spacing: -.02em
}

.abt-pg .met-label {
    font-size: 14px;
    line-height: 1.4;
    color: #FBFDF7;
    letter-spacing: .06em;
    text-transform: uppercase
}

.abt-pg .met-narr {
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf799;
    margin-top: 10px
}

.abt-pg .img-mosaic {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 20px;
    padding: 80px;
    background: #FBFDF7;
    position: relative
}

.abt-pg .mosaic-txt {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    padding-right: 40px
}

.abt-pg .mosaic-h2 {
    font-size: 36px;
    line-height: 1.15;
    color: #1b2e1f;
    font-style: italic;
    letter-spacing: -.01em
}

.abt-pg .mosaic-h2 .acc {
    color: #2D8843
}

.abt-pg .mosaic-body {
    font-size: 20px;
    line-height: 1.6;
    color: #2a3a2d
}

.abt-pg .mosaic-link {
    display: inline-block;
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #2D8843;
    text-decoration: none;
    padding-bottom: 4px;
    border-bottom: 2px solid #2D8843;
    transition: color .12s cubic-bezier(0.4, 0, 1, 1), border-color .12s cubic-bezier(0.4, 0, 1, 1);
    align-self: flex-start
}

.abt-pg .mosaic-link:hover {
    color: #1b2e1f;
    border-color: #1b2e1f
}

.abt-pg .mosaic-img-a {
    grid-column: 2;
    grid-row: 1 / 3;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: -1px 8px 60px 0 #2d884321
}

.abt-pg .mosaic-img-a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.abt-pg .mosaic-img-a:hover img {
    transform: scale(1.04)
}

.abt-pg .mosaic-img-row {
    grid-column: 1;
    grid-row: 2;
    display: flex;
    flex-direction: row;
    gap: 20px
}

.abt-pg .mosaic-img-sm {
    flex: 1;
    overflow: hidden;
    border-radius: 4px;
    height: 160px
}

.abt-pg .mosaic-img-sm img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .14s cubic-bezier(0.4, 0, 1, 1)
}

.abt-pg .mosaic-img-sm:hover img {
    transform: scale(1.06)
}

.abt-pg .bg-img-sec {
    position: relative;
    min-height: 360px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 80px 40px;
    overflow: hidden
}

.abt-pg .bg-img-sec .bg-photo {
    position: absolute;
    inset: 0;
    z-index: 0
}

.abt-pg .bg-img-sec .bg-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: blur(3px) brightness(0.55)
}

.abt-pg .bg-img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, #1b2e1fb8, #1b2e1f8c);
    z-index: 1
}

.abt-pg .bg-img-content {
    position: relative;
    z-index: 2;
    max-width: 720px
}

.abt-pg .bg-img-h3 {
    font-size: 36px;
    line-height: 1.15;
    color: #FBFDF7;
    font-style: italic;
    margin-bottom: 20px;
    letter-spacing: -.01em
}

.abt-pg .bg-img-h3 .acc {
    color: #7CC274
}

.abt-pg .bg-img-txt {
    font-size: 20px;
    line-height: 1.6;
    color: #fbfdf7e0;
    margin-bottom: 40px
}

.abt-pg .btn-primary {
    display: inline-block;
    font-size: 14px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #fff;
    background: #2D8843;
    border: none;
    border-radius: 4px;
    padding: 20px 40px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: color .14s cubic-bezier(0.4, 0, 1, 1);
    box-shadow: -1px 5px 22px 0 #2d884314
}

.abt-pg .btn-primary::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0;
    background: #1b2e1f;
    transition: height .14s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.abt-pg .btn-primary:hover::after {
    height: 100%
}

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

@media (max-width: 960px) {
    .abt-pg .hero-wrap {
        flex-direction: column;
        min-height: auto
    }

    .abt-pg .hero-left {
        padding: 40px 20px
    }

    .abt-pg .hero-h1 {
        font-size: 50px
    }

    .abt-pg .hero-right {
        min-height: 320px
    }

    .abt-pg .about-body {
        padding: 40px 20px 0
    }

    .abt-pg .body-grid {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .abt-pg .body-col-wide {
        grid-column: span 1
    }

    .abt-pg .metrics-band {
        padding: 40px 20px
    }

    .abt-pg .metrics-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px
    }

    .abt-pg .metrics-sub {
        text-align: left
    }

    .abt-pg .metrics-row {
        grid-template-columns: 1fr 1fr;
        gap: 20px
    }

    .abt-pg .img-mosaic {
        grid-template-columns: 1fr;
        padding: 40px 20px
    }

    .abt-pg .mosaic-img-a {
        grid-column: 1;
        grid-row: auto;
        height: 280px
    }

    .abt-pg .mosaic-txt {
        padding-right: 0
    }

    .abt-pg .mosaic-img-row {
        grid-column: 1;
        grid-row: auto
    }

    .abt-pg .bg-img-sec {
        padding: 40px 20px
    }
}

@media (max-width: 480px) {
    .abt-pg .hero-h1 {
        font-size: 36px
    }

    .abt-pg .hero-stats {
        flex-direction: column;
        gap: 20px
    }

    .abt-pg .metrics-row {
        grid-template-columns: 1fr
    }

    .abt-pg .met-fig {
        font-size: 36px
    }

    .abt-pg .about-h2 {
        font-size: 36px
    }

    .abt-pg .mosaic-img-row {
        flex-direction: column
    }

    .abt-pg .mosaic-img-sm {
        height: 200px
    }
}

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

.infgrph-pg .viz-band {
    background: #FBFDF7;
    padding: 80px 80px 40px
}

.infgrph-pg .viz-band__top {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 80px;
    margin-bottom: 80px
}

.infgrph-pg .viz-band__left {
    flex: 1 1 0
}

.infgrph-pg .viz-band__label {
    display: inline-block;
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #2D8843;
    border-top: 2px solid #2D8843;
    padding-top: 10px;
    margin-bottom: 20px
}

.infgrph-pg .viz-band__h1 {
    font-size: 50px;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #1b2d1f;
    font-style: italic;
    margin: 0 0 20px
}

.infgrph-pg .viz-band__h1 span {
    color: #2D8843
}

.infgrph-pg .viz-band__desc {
    font-size: 20px;
    line-height: 1.6;
    color: #2c3a2e;
    margin: 0 0 40px;
    max-width: 480px
}

.infgrph-pg .viz-band__img-col {
    flex: 0 0 360px;
    position: relative
}

.infgrph-pg .img-wrap {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: -1px 8px 60px 0 #2d884321;
    position: relative
}

.infgrph-pg .img-wrap img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    display: block;
    transition: transform .18s cubic-bezier(0.4, 0, 1, 1)
}

.infgrph-pg .img-wrap:hover img {
    transform: scale(1.04)
}

.infgrph-pg .img-glow {
    position: absolute;
    inset: 0;
    border-radius: 12px;
    background: linear-gradient(to bottom, #7cc2742e, transparent 60%);
    pointer-events: none
}

.infgrph-pg .diamond-acc {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 40px;
    height: 40px;
    background: #2D8843;
    transform: rotate(45deg);
    border-radius: 4px;
    z-index: 2 !important
}

.infgrph-pg .kpi-row {
    display: flex;
    flex-direction: row;
    gap: 20px;
    flex-wrap: wrap
}

.infgrph-pg .kpi-item {
    flex: 1 1 160px;
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: -1px 5px 22px 0 #2d884314;
    border-top: 3px solid #2D8843;
    position: relative
}

.infgrph-pg .kpi-item__num {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #2D8843;
    font-style: italic;
    display: block
}

.infgrph-pg .kpi-item__lbl {
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: .04em;
    color: #3a4d3d;
    margin-top: 10px;
    display: block
}

.infgrph-pg .dots-div {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px 0
}

.infgrph-pg .dots-div span {
    width: 6px;
    height: 6px;
    border-radius: 20px;
    background: #7CC274;
    display: inline-block
}

.infgrph-pg .chart-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px
}

.infgrph-pg .chart-card {
    background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: -1px 5px 22px 0 #2d884314;
    position: relative;
    overflow: hidden
}

.infgrph-pg .chart-card__corner {
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 40px 40px 0;
    border-color: transparent #2D8843 transparent transparent
}

.infgrph-pg .chart-card__h {
    font-size: 20px;
    line-height: 1.4;
    color: #1b2d1f;
    font-style: italic;
    margin: 0 0 20px
}

.infgrph-pg .bar-chart {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.infgrph-pg .bar-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px
}

.infgrph-pg .bar-row__lbl {
    font-size: 14px;
    line-height: 1.4;
    color: #3a4d3d;
    width: 120px;
    flex-shrink: 0
}

.infgrph-pg .bar-row__track {
    flex: 1;
    height: 10px;
    background: #e8f5e3;
    border-radius: 2px;
    overflow: hidden
}

.infgrph-pg .bar-row__fill {
    height: 100%;
    background: linear-gradient(to bottom, #2D8843, #2d884300);
    background: #2D8843;
    border-radius: 2px;
    animation: bar-grow .16s cubic-bezier(0.4, 0, 1, 1) both
}

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

.infgrph-pg .bar-row__val {
    font-size: 14px;
    line-height: 1.4;
    color: #2D8843;
    width: 40px;
    text-align: right;
    flex-shrink: 0
}

.infgrph-pg .donut-wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px
}

.infgrph-pg .donut-svg {
    flex-shrink: 0;
    filter: drop-shadow(-1px 5px 22px #2d884321)
}

.infgrph-pg .donut-legend {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.infgrph-pg .legend-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px
}

.infgrph-pg .legend-dot {
    width: 12px;
    height: 12px;
    border-radius: 2px;
    flex-shrink: 0
}

.infgrph-pg .legend-txt {
    font-size: 14px;
    line-height: 1.4;
    color: #2c3a2e
}

.infgrph-pg .timeline-card {
    background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: -1px 5px 22px 0 #2d884314;
    position: relative;
    overflow: hidden
}

.infgrph-pg .timeline-card__h {
    font-size: 20px;
    line-height: 1.4;
    color: #1b2d1f;
    font-style: italic;
    margin: 0 0 40px
}

.infgrph-pg .tl-steps {
    display: flex;
    flex-direction: row;
    gap: 0;
    position: relative
}

.infgrph-pg .tl-steps::before {
    content: "";
    position: absolute;
    top: 20px;
    left: 20px;
    right: 20px;
    height: 2px;
    background: linear-gradient(to bottom, #2D8843, transparent);
    background: linear-gradient(to right, #2D8843, #7CC274)
}

.infgrph-pg .tl-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    position: relative
}

.infgrph-pg .tl-step__dot {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #2D8843;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1 !important;
    box-shadow: -1px 5px 22px 0 #2d884321;
    animation: shadow-pulse 2.4s cubic-bezier(0.4, 0, 1, 1) infinite
}

@keyframes shadow-pulse {
    0% {
        box-shadow: -1px 5px 22px 0 #2d884314
    }

    50% {
        box-shadow: -1px 8px 60px 0 #2d884338
    }

    100% {
        box-shadow: -1px 5px 22px 0 #2d884314
    }
}

.infgrph-pg .tl-step__dot svg {
    width: 18px;
    height: 18px
}

.infgrph-pg .tl-step__body {
    text-align: center;
    padding: 0 10px
}

.infgrph-pg .tl-step__num {
    font-size: 26px;
    line-height: 1.15;
    color: #2D8843;
    font-style: italic;
    display: block;
    margin-bottom: 10px
}

.infgrph-pg .tl-step__txt {
    font-size: 14px;
    line-height: 1.6;
    color: #3a4d3d
}

.infgrph-pg .data-sec {
    background: #fff;
    padding: 80px
}

.infgrph-pg .data-sec__head {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px;
    gap: 40px
}

.infgrph-pg .data-sec__h2 {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #1b2d1f;
    font-style: italic;
    margin: 0
}

.infgrph-pg .data-sec__h2 span {
    color: #2D8843
}

.infgrph-pg .data-sec__sub {
    font-size: 14px;
    line-height: 1.6;
    color: #3a4d3d;
    max-width: 320px;
    text-align: right
}

.infgrph-pg .rings-bg {
    position: relative
}

.infgrph-pg .rings-bg::before {
    content: "";
    position: absolute;
    top: -40px;
    right: -40px;
    width: 300px;
    height: 300px;
    border-radius: 20px;
    background: radial-gradient(circle at 50% 50%, transparent 38px, #2d88430a 38px, #2d88430a 40px, transparent 40px), radial-gradient(circle at 50% 50%, transparent 58px, #2d88430a 58px, #2d88430a 60px, transparent 60px), radial-gradient(circle at 50% 50%, transparent 78px, #2d884308 78px, #2d884308 80px, transparent 80px), radial-gradient(circle at 50% 50%, transparent 98px, #2d884308 98px, #2d884308 100px, transparent 100px), radial-gradient(circle at 50% 50%, transparent 118px, #2d884305 118px, #2d884305 120px, transparent 120px);
    pointer-events: none;
    overflow: hidden
}

.infgrph-pg .compare-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    margin-bottom: 40px
}

.infgrph-pg .cmp-col {
    background: #FBFDF7;
    border-radius: 12px;
    padding: 40px 20px;
    position: relative
}

.infgrph-pg .cmp-col.featured {
    background: #2D8843
}

.infgrph-pg .cmp-col__tag {
    font-size: 14px;
    line-height: 1.4;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #2D8843;
    display: block;
    margin-bottom: 10px
}

.infgrph-pg .cmp-col.featured .cmp-col__tag {
    color: #7CC274
}

.infgrph-pg .cmp-col__h {
    font-size: 26px;
    line-height: 1.15;
    color: #1b2d1f;
    font-style: italic;
    margin: 0 0 20px
}

.infgrph-pg .cmp-col.featured .cmp-col__h {
    color: #fff
}

.infgrph-pg .cmp-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.infgrph-pg .cmp-list li {
    font-size: 14px;
    line-height: 1.6;
    color: #2c3a2e;
    padding-left: 20px;
    position: relative
}

.infgrph-pg .cmp-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 2px;
    height: 12px;
    background: #2D8843;
    border-radius: 2px
}

.infgrph-pg .cmp-col.featured .cmp-list li {
    color: #fbfdf7e6
}

.infgrph-pg .cmp-col.featured .cmp-list li::before {
    background: #7CC274
}

.infgrph-pg .sidebar-layout {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.infgrph-pg .sidebar-main {
    flex: 1 1 0
}

.infgrph-pg .sidebar-aside {
    flex: 0 0 280px;
    background: #2D8843;
    border-radius: 12px;
    padding: 40px 20px;
    box-shadow: -1px 8px 60px 0 #2d884321
}

.infgrph-pg .aside-h {
    font-size: 20px;
    line-height: 1.4;
    color: #fff;
    font-style: italic;
    margin: 0 0 20px
}

.infgrph-pg .aside-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px
}

.infgrph-pg .aside-list li {
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7e6;
    padding: 10px;
    border-radius: 4px;
    background: #ffffff14;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px
}

.infgrph-pg .aside-list li svg {
    flex-shrink: 0;
    margin-top: 2px
}

.infgrph-pg .stat-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.infgrph-pg .stat-tile {
    background: #FBFDF7;
    border-radius: 12px;
    padding: 20px;
    box-shadow: -1px 1px 3px 0 #2d884312
}

.infgrph-pg .stat-tile__big {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #2D8843;
    font-style: italic;
    display: block;
    margin-bottom: 10px
}

.infgrph-pg .stat-tile__desc {
    font-size: 14px;
    line-height: 1.6;
    color: #3a4d3d
}

@media (max-width: 960px) {
    .infgrph-pg .viz-band {
        padding: 40px 20px
    }

    .infgrph-pg .viz-band__top {
        flex-direction: column;
        gap: 40px
    }

    .infgrph-pg .viz-band__img-col {
        flex: none;
        width: 100%
    }

    .infgrph-pg .chart-grid {
        grid-template-columns: 1fr
    }

    .infgrph-pg .tl-steps {
        flex-direction: column;
        gap: 20px
    }

    .infgrph-pg .tl-steps::before {
        top: 20px;
        bottom: 20px;
        left: 20px;
        right: auto;
        width: 2px;
        height: auto
    }

    .infgrph-pg .tl-step {
        flex-direction: row;
        align-items: flex-start;
        text-align: left
    }

    .infgrph-pg .tl-step__body {
        text-align: left
    }

    .infgrph-pg .data-sec {
        padding: 40px 20px
    }

    .infgrph-pg .data-sec__head {
        flex-direction: column;
        align-items: flex-start
    }

    .infgrph-pg .data-sec__sub {
        text-align: left
    }

    .infgrph-pg .compare-grid {
        grid-template-columns: 1fr
    }

    .infgrph-pg .sidebar-layout {
        flex-direction: column
    }

    .infgrph-pg .sidebar-aside {
        flex: none;
        width: 100%
    }

    .infgrph-pg .donut-wrap {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px
    }
}

@media (max-width: 480px) {
    .infgrph-pg .viz-band__h1 {
        font-size: 36px
    }

    .infgrph-pg .kpi-row {
        flex-direction: column
    }

    .infgrph-pg .stat-tiles {
        grid-template-columns: 1fr
    }

    .infgrph-pg .bar-row__lbl {
        width: 80px;
        font-size: 14px
    }

    .infgrph-pg .data-sec__h2 {
        font-size: 26px
    }
}

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

.cnt-us .split-band {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 320px
}

.cnt-us .split-left {
    background: #2D8843;
    padding: 80px 40px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden
}

.cnt-us .split-left::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(60deg, transparent, transparent 18px, #fbfdf70a 18px, #fbfdf70a 19px), repeating-linear-gradient(-60deg, transparent, transparent 18px, #fbfdf70a 18px, #fbfdf70a 19px), repeating-linear-gradient(0deg, transparent, transparent 18px, #fbfdf708 18px, #fbfdf708 19px);
    pointer-events: none
}

.cnt-us .split-left::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, #2d884300 0%, #2d884399 100%);
    pointer-events: none
}

.cnt-us .split-left-inner {
    position: relative;
    z-index: 1
}

.cnt-us .split-tag {
    display: inline-block;
    font-size: 14px;
    letter-spacing: .12em;
    color: #7CC274;
    text-transform: uppercase;
    margin-bottom: 20px;
    line-height: 1.4
}

.cnt-us .split-h1 {
    font-size: 50px;
    line-height: 1.15;
    color: #FBFDF7;
    font-style: italic;
    letter-spacing: -.02em;
    margin: 0 0 20px
}

.cnt-us .split-desc {
    font-size: 20px;
    line-height: 1.6;
    color: #fbfdf7d1;
    margin: 0;
    max-width: 380px
}

.cnt-us .split-right {
    background: #FBFDF7;
    padding: 80px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 40px
}

.cnt-us .contact-items {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.cnt-us .c-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    padding: 20px;
    background: #fff;
    border-radius: 4px;
    border-top: 2px solid #2D8843;
    border-bottom: 2px solid #7CC274;
    box-shadow: -1px 1px 3px 0 #2d884312;
    transition: box-shadow .15s cubic-bezier(0.4, 0, 1, 1), border-color .12s ease-in
}

.cnt-us .c-item:hover {
    box-shadow: -1px 5px 22px 0 #2d884314
}

.cnt-us .c-icon {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #2D8843;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.cnt-us .c-icon svg {
    width: 20px;
    height: 20px;
    stroke: #FBFDF7;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round
}

.cnt-us .c-text {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.cnt-us .c-label {
    font-size: 14px;
    letter-spacing: .08em;
    color: #2D8843;
    text-transform: uppercase;
    line-height: 1.4
}

.cnt-us .c-val {
    font-size: 20px;
    line-height: 1.4;
    color: #1a2e1d;
    text-decoration: none;
    transition: color .12s ease-in
}

.cnt-us .c-val:hover {
    color: #2D8843
}

.cnt-us .c-val.addr {
    font-size: 14px;
    line-height: 1.6;
    color: #2a3b2c
}

.cnt-us .form-band {
    background: #fff;
    border-top: 3px solid #2D8843;
    position: relative;
    overflow: hidden
}

.cnt-us .form-band::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #2D8843 0%, #7CC274 60%, transparent 100%)
}

.cnt-us .form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 480px
}

.cnt-us .form-meta {
    background: linear-gradient(180deg, #1a2e1d 0%, #2D8843 100%);
    padding: 80px 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden
}

.cnt-us .form-meta::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(45deg, transparent, transparent 24px, #7cc2740f 24px, #7cc2740f 25px), repeating-linear-gradient(-45deg, transparent, transparent 24px, #7cc2740f 24px, #7cc2740f 25px), repeating-linear-gradient(90deg, transparent, transparent 24px, #7cc27408 24px, #7cc27408 25px), repeating-linear-gradient(0deg, transparent, transparent 24px, #7cc27408 24px, #7cc27408 25px);
    animation: bgpan 18s linear infinite;
    pointer-events: none
}

@keyframes bgpan {
    0% {
        background-position: 0 0, 0 0, 0 0, 0 0
    }

    100% {
        background-position: 0 -200px, 0 -200px, 0 -200px, 0 -200px
    }
}

.cnt-us .form-meta-inner {
    position: relative;
    z-index: 1
}

.cnt-us .form-meta-h {
    font-size: 36px;
    line-height: 1.15;
    color: #FBFDF7;
    font-style: italic;
    letter-spacing: -.015em;
    margin: 0 0 20px
}

.cnt-us .form-meta-p {
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7bf;
    margin: 0
}

.cnt-us .response-note {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 20px;
    background: #7cc2741f;
    border-radius: 4px;
    position: relative;
    z-index: 1
}

.cnt-us .dot-accent {
    width: 10px;
    height: 10px;
    border-radius: 20px;
    background: #7CC274;
    flex-shrink: 0
}

.cnt-us .response-note-txt {
    font-size: 14px;
    line-height: 1.4;
    color: #fbfdf7cc;
    margin: 0
}

.cnt-us .form-area {
    padding: 80px 40px;
    background: #FBFDF7;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.cnt-us .contact-form {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.cnt-us .field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.cnt-us .f-group {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.cnt-us .f-label {
    font-size: 14px;
    letter-spacing: .06em;
    color: #2D8843;
    text-transform: uppercase;
    line-height: 1.4
}

.cnt-us .f-input {
    padding: 10px 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #1a2e1d;
    background: #fff;
    border: 1.5px solid #2d884340;
    border-radius: 4px;
    outline: none;
    transition: border-color .15s cubic-bezier(0.4, 0, 1, 1), box-shadow .15s cubic-bezier(0.4, 0, 1, 1);
    width: 100%;
    box-sizing: border-box
}

.cnt-us .f-input::placeholder {
    color: #2d884359;
    transition: opacity .18s ease-in
}

.cnt-us .f-input:focus::placeholder {
    opacity: 0
}

.cnt-us .f-input:focus {
    border-color: #2D8843;
    box-shadow: inset 0 4px 10px 0 #2d884312
}

.cnt-us .f-select {
    padding: 10px 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #1a2e1d;
    background: #fff;
    border: 1.5px solid #2d884340;
    border-radius: 4px;
    outline: none;
    cursor: pointer;
    transition: border-color .15s cubic-bezier(0.4, 0, 1, 1);
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232D8843' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px
}

.cnt-us .f-select:focus {
    border-color: #2D8843
}

.cnt-us .f-textarea {
    padding: 10px 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #1a2e1d;
    background: #fff;
    border: 1.5px solid #2d884340;
    border-radius: 4px;
    outline: none;
    resize: vertical;
    min-height: 120px;
    transition: border-color .15s cubic-bezier(0.4, 0, 1, 1), box-shadow .15s cubic-bezier(0.4, 0, 1, 1);
    width: 100%;
    box-sizing: border-box
}

.cnt-us .f-textarea::placeholder {
    color: #2d884359;
    transition: opacity .18s ease-in
}

.cnt-us .f-textarea:focus::placeholder {
    opacity: 0
}

.cnt-us .f-textarea:focus {
    border-color: #2D8843;
    box-shadow: inset 0 6px 10px 0 #2d884312
}

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

.cnt-us .priv-check {
    width: 18px;
    height: 18px;
    accent-color: #2D8843;
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 2px
}

.cnt-us .priv-txt {
    font-size: 14px;
    line-height: 1.6;
    color: #2a3b2c;
    margin: 0
}

.cnt-us .priv-txt a {
    color: #2D8843;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color .12s ease-in
}

.cnt-us .priv-txt a:hover {
    color: #1a5c2a
}

.cnt-us .submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px 40px;
    font-size: 14px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #FBFDF7;
    background: #2D8843;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    align-self: flex-start;
    box-shadow: -1px 5px 22px 0 #2d884314;
    transition: color .15s cubic-bezier(0.4, 0, 1, 1), box-shadow .15s cubic-bezier(0.4, 0, 1, 1)
}

.cnt-us .submit-btn::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -100%;
    height: 100%;
    background: #7CC274;
    transition: bottom .16s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.cnt-us .submit-btn:hover::before {
    bottom: 0
}

.cnt-us .submit-btn:hover {
    color: #1a2e1d;
    box-shadow: -1px 8px 60px 0 #2d884321
}

.cnt-us .submit-btn span {
    position: relative;
    z-index: 1
}

.cnt-us .submit-btn svg {
    position: relative;
    z-index: 1;
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.cnt-us .submit-btn:focus {
    outline: 2px solid #2D8843;
    outline-offset: 3px
}

@media (max-width: 960px) {
    .cnt-us .split-band {
        grid-template-columns: 1fr
    }

    .cnt-us .split-left {
        padding: 40px 20px
    }

    .cnt-us .split-h1 {
        font-size: 36px
    }

    .cnt-us .split-right {
        padding: 40px 20px
    }

    .cnt-us .form-grid {
        grid-template-columns: 1fr
    }

    .cnt-us .form-meta {
        padding: 40px 20px
    }

    .cnt-us .form-area {
        padding: 40px 20px
    }

    .cnt-us .field-row {
        grid-template-columns: 1fr
    }
}

@media (max-width: 480px) {
    .cnt-us .split-left {
        padding: 40px 20px
    }

    .cnt-us .split-h1 {
        font-size: 26px
    }

    .cnt-us .split-desc {
        font-size: 14px
    }

    .cnt-us .form-meta-h {
        font-size: 26px
    }

    .cnt-us .submit-btn {
        width: 100%;
        justify-content: center
    }
}

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

.opn .ttl {
    position: relative;
    padding: 80px 80px 0;
    background: #FBFDF7
}

.opn .ttl__deco {
    position: absolute;
    top: 40px;
    right: 80px;
    width: 180px;
    height: 180px;
    border: 2px solid #2d88431f;
    border-radius: 20px;
    opacity: .5;
    transform: rotate(18deg);
    pointer-events: none;
    animation: rotgeo 18s linear infinite
}

.opn .ttl__deco2 {
    position: absolute;
    top: 80px;
    right: 120px;
    width: 90px;
    height: 90px;
    border: 1.5px solid #7cc2742e;
    border-radius: 12px;
    opacity: .4;
    transform: rotate(-10deg);
    pointer-events: none;
    animation: rotgeo 24s linear infinite reverse
}

@keyframes rotgeo {
    from {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(360deg)
    }
}

.opn .ttl__label {
    display: inline-block;
    font-size: 14px;
    letter-spacing: .12em;
    color: #2D8843;
    text-transform: uppercase;
    margin-bottom: 20px;
    font-style: normal;
    line-height: 1.4
}

.opn .ttl__h1 {
    font-size: 66px;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #1a2e1d;
    font-style: italic;
    max-width: 820px;
    margin-bottom: 20px
}

.opn .ttl__h1 span {
    color: #2D8843
}

.opn .ttl__desc {
    font-size: 20px;
    line-height: 1.6;
    color: #2e3d31;
    max-width: 520px;
    margin-bottom: 40px
}

.opn .ttl__img-wrap {
    position: relative;
    width: 100%;
    height: 360px;
    border-radius: 12px 12px 0 0;
    overflow: hidden
}

.opn .ttl__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    filter: saturate(0.85) brightness(0.92)
}

.opn .ttl__img-fade {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(to bottom, transparent, #FBFDF7);
    pointer-events: none
}

.opn .nums {
    background: #2D8843;
    padding: 80px
}

.opn .nums__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 40px
}

.opn .nums__item {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-top: 2px solid #ffffff40;
    padding-top: 20px;
    animation: shadowbuild .18s cubic-bezier(0.4, 0, 1, 1) forwards
}

@keyframes shadowbuild {
    from {
        box-shadow: none
    }

    to {
        box-shadow: -1px 8px 60px 0 #2d884321
    }
}

.opn .nums__val {
    font-size: 50px;
    line-height: 1.15;
    letter-spacing: -.03em;
    color: #FBFDF7;
    font-style: italic
}

.opn .nums__val span {
    color: #7CC274
}

.opn .nums__lbl {
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7cc;
    letter-spacing: .04em
}

.opn .rep {
    padding: 80px;
    background: #FBFDF7;
    position: relative
}

.opn .rep__spot {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 400px;
    background: radial-gradient(ellipse 60% 50% at 50% 50%, #7cc2741a 0%, transparent 70%);
    pointer-events: none
}

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

.opn .rep__prefix {
    width: 8px;
    height: 8px;
    background: #2D8843;
    border-radius: 2px;
    flex-shrink: 0;
    margin-top: 10px
}

.opn .rep__h2 {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #1a2e1d;
    font-style: italic;
    max-width: 500px
}

.opn .rep__h2 span {
    color: #2D8843
}

.opn .rep__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px
}

.opn .rep__card {
    background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: -1px 5px 22px 0 #2d884314;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opn .rep__card-icon {
    width: 36px;
    height: 36px;
    color: #2D8843
}

.opn .rep__card-ttl {
    font-size: 20px;
    line-height: 1.4;
    color: #1a2e1d;
    font-style: italic
}

.opn .rep__card-txt {
    font-size: 14px;
    line-height: 1.6;
    color: #2e3d31
}

.opn .rep__img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    height: 240px
}

.opn .rep__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: saturate(0.82) brightness(0.95);
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.opn .rep__img-wrap:hover img {
    transform: scale(1.04)
}

.opn .rep__divider {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin: 40px 0
}

.opn .rep__divider-line {
    flex: 1;
    height: 1px;
    background: #2d884326
}

.opn .rep__divider-word {
    font-size: 14px;
    letter-spacing: .1em;
    color: #2D8843;
    text-transform: uppercase
}

.opn .ppl {
    padding: 80px;
    background: #1a2e1d
}

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

.opn .ppl__h2 {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #FBFDF7;
    font-style: italic;
    flex: 1
}

.opn .ppl__h2 span {
    color: #7CC274
}

.opn .ppl__intro {
    flex: 1;
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7bf;
    padding-top: 10px
}

.opn .ppl__row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 40px;
    align-items: start;
    background: #ffffff0a;
    border-radius: 12px;
    padding: 40px
}

.opn .ppl__portrait {
    width: 220px;
    height: 293px;
    border-radius: 20px;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: -1px 5px 22px 0 #2d884314
}

.opn .ppl__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    filter: saturate(0.88) brightness(0.96)
}

.opn .ppl__bio {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.opn .ppl__name {
    font-size: 26px;
    line-height: 1.15;
    color: #FBFDF7;
    font-style: italic
}

.opn .ppl__role {
    font-size: 14px;
    letter-spacing: .08em;
    color: #7CC274;
    text-transform: uppercase
}

.opn .ppl__bio-txt {
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7bf
}

.opn .ppl__tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px
}

.opn .ppl__tag {
    font-size: 14px;
    line-height: 1.4;
    color: #2D8843;
    background: #2d88431f;
    border-radius: 4px;
    padding: 10px
}

.opn .grad {
    padding: 80px;
    background: #FBFDF7
}

.opn .grad__head {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px
}

.opn .grad__prefix {
    width: 8px;
    height: 8px;
    background: #2D8843;
    border-radius: 2px;
    flex-shrink: 0
}

.opn .grad__h2 {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #1a2e1d;
    font-style: italic
}

.opn .grad__h2 span {
    color: #2D8843
}

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

.opn .grad__item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    border-top: 1px solid #2d88432e;
    padding-top: 20px;
    padding-bottom: 10px
}

.opn .grad__item:last-child {
    border-bottom: 1px solid #2d88432e
}

.opn .grad__num {
    font-size: 36px;
    line-height: 1.15;
    color: #2d88432e;
    font-style: italic;
    letter-spacing: -.02em;
    flex-shrink: 0;
    width: 60px
}

.opn .grad__item-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1
}

.opn .grad__item-ttl {
    font-size: 20px;
    line-height: 1.4;
    color: #1a2e1d;
    font-style: italic
}

.opn .grad__item-txt {
    font-size: 14px;
    line-height: 1.6;
    color: #2e3d31
}

.opn .grad__img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    height: 280px;
    margin-top: 40px
}

.opn .grad__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: saturate(0.84) brightness(0.94);
    transition: transform .14s cubic-bezier(0.4, 0, 1, 1)
}

.opn .grad__img-wrap:hover img {
    transform: scale(1.04)
}

.opn .gap-sec {
    padding: 80px;
    background: #f2f7f1;
    position: relative
}

.opn .gap-sec__spot {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 700px;
    height: 500px;
    background: radial-gradient(ellipse 55% 45% at 50% 50%, #2d884312 0%, transparent 70%);
    pointer-events: none
}

.opn .gap-sec__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start
}

.opn .gap-sec__h2 {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #1a2e1d;
    font-style: italic;
    margin-bottom: 20px
}

.opn .gap-sec__h2 span {
    color: #2D8843
}

.opn .gap-sec__txt {
    font-size: 14px;
    line-height: 1.6;
    color: #2e3d31;
    margin-bottom: 20px
}

.opn .gap-sec__table {
    width: 100%;
    border-collapse: collapse
}

.opn .gap-sec__table th {
    font-size: 14px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #2D8843;
    text-align: left;
    padding: 10px 20px;
    background: #2d884312;
    border-radius: 4px
}

.opn .gap-sec__table td {
    font-size: 14px;
    line-height: 1.6;
    color: #2e3d31;
    padding: 10px 20px;
    border-bottom: 1px solid #2d88431f
}

.opn .gap-sec__table tr:last-child td {
    border-bottom: none
}

.opn .gap-sec__table td.marked {
    color: #2D8843;
    font-style: italic
}

.opn .faq-sec {
    padding: 80px;
    background: #2D8843
}

.opn .faq-sec__h2 {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #FBFDF7;
    font-style: italic;
    margin-bottom: 40px;
    max-width: 600px
}

.opn .faq-sec__h2 span {
    color: #7CC274
}

.opn .faq-sec__list {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.opn .faq-sec__item {
    background: #ffffff12;
    border-radius: 12px;
    overflow: hidden
}

.opn .faq-sec__q {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 20px 40px;
    cursor: pointer;
    gap: 20px
}

.opn .faq-sec__q-txt {
    font-size: 20px;
    line-height: 1.4;
    color: #FBFDF7;
    font-style: italic
}

.opn .faq-sec__toggle {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    color: #7CC274;
    transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.opn .faq-sec__chk {
    display: none
}

.opn .faq-sec__chk:checked~.faq-sec__q .faq-sec__toggle {
    transform: rotate(45deg)
}

.opn .faq-sec__ans {
    max-height: 0;
    overflow: hidden;
    transition: max-height .18s cubic-bezier(0.4, 0, 1, 1)
}

.opn .faq-sec__chk:checked~.faq-sec__ans {
    max-height: 300px
}

.opn .faq-sec__ans-inner {
    padding: 0 40px 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #fbfdf7cc
}

.opn .faq-sec__divider {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px
}

.opn .faq-sec__divider-line {
    flex: 1;
    height: 1px;
    background: #ffffff2e
}

.opn .faq-sec__divider-word {
    font-size: 14px;
    letter-spacing: .1em;
    color: #fbfdf799;
    text-transform: uppercase
}

@media (max-width: 960px) {
    .opn .ttl {
        padding: 40px 40px 0
    }

    .opn .ttl__h1 {
        font-size: 50px
    }

    .opn .nums {
        padding: 40px
    }

    .opn .nums__grid {
        grid-template-columns: 1fr 1fr;
        gap: 20px
    }

    .opn .rep {
        padding: 40px
    }

    .opn .rep__head {
        gap: 20px;
        flex-direction: column
    }

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

    .opn .ppl {
        padding: 40px
    }

    .opn .ppl__top {
        flex-direction: column;
        gap: 20px
    }

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

    .opn .ppl__portrait {
        width: 160px;
        height: 213px
    }

    .opn .grad {
        padding: 40px
    }

    .opn .gap-sec {
        padding: 40px
    }

    .opn .gap-sec__inner {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .opn .faq-sec {
        padding: 40px
    }

    .opn .faq-sec__q {
        padding: 20px
    }

    .opn .faq-sec__ans-inner {
        padding: 0 20px 20px
    }
}

@media (max-width: 480px) {
    .opn .ttl {
        padding: 20px 20px 0
    }

    .opn .ttl__h1 {
        font-size: 36px
    }

    .opn .ttl__desc {
        font-size: 14px
    }

    .opn .ttl__deco,
    .opn .ttl__deco2 {
        display: none
    }

    .opn .nums {
        padding: 20px
    }

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

    .opn .nums__val {
        font-size: 36px
    }

    .opn .rep {
        padding: 20px
    }

    .opn .rep__card {
        padding: 20px
    }

    .opn .ppl {
        padding: 20px
    }

    .opn .ppl__row {
        padding: 20px
    }

    .opn .grad {
        padding: 20px
    }

    .opn .gap-sec {
        padding: 20px
    }

    .opn .faq-sec {
        padding: 20px
    }

    .opn .faq-sec__q-txt {
        font-size: 14px
    }
}

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

.succ-page .succ-wrap {
    max-width: 560px;
    width: 100%;
    background: #fff;
    border-radius: 12px;
    box-shadow: -1px 5px 22px 0 #2d884314;
    padding: 40px;
    text-align: center
}

.succ-page .succ-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #2D8843 0%, transparent 100%);
    border-radius: 20px
}

.succ-page .succ-icon svg {
    display: block
}

.succ-page .succ-title {
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: #2D8843;
    font-style: italic;
    margin: 0 0 20px
}

.succ-page .succ-text {
    font-size: 20px;
    line-height: 1.6;
    color: #1e2a1f;
    margin: 0 0 40px
}

.succ-page .succ-text span {
    color: #2D8843;
    font-weight: 600
}

.succ-page .succ-divider {
    width: 40px;
    height: 2px;
    background: #7CC274;
    border-radius: 2px;
    margin: 0 auto 40px
}

.succ-page .succ-back {
    display: inline-block;
    position: relative;
    overflow: hidden;
    padding: 10px 40px;
    border-radius: 4px;
    background: #2D8843;
    color: #fff;
    font-size: 14px;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: color .15s cubic-bezier(0.4, 0, 1, 1);
    z-index: 0
}

.succ-page .succ-back::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0;
    background: #7CC274;
    border-radius: 4px;
    transition: height .12s cubic-bezier(0.4, 0, 1, 1);
    z-index: -1
}

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

.succ-page .succ-back:focus {
    outline: 2px solid #2D8843;
    outline-offset: 2px
}

.succ-page .succ-note {
    margin: 20px 0 0;
    font-size: 14px;
    line-height: 1.6;
    color: #3a4a3c;
    letter-spacing: .01em
}

@media (max-width: 480px) {
    .succ-page {
        padding: 40px 10px
    }

    .succ-page .succ-wrap {
        padding: 40px 20px
    }

    .succ-page .succ-title {
        font-size: 26px
    }

    .succ-page .succ-text {
        font-size: 14px
    }
}