@import url("https://cdn.jsdelivr.net/npm/@fontsource/ubuntu@latest/400.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/ubuntu@latest/500.css");
@import url("https://cdn.jsdelivr.net/npm/@fontsource/ubuntu@latest/700.css");

* {
    box-sizing: border-box;
}

html {
    font-size: 100%;
}

body {
    margin: 0;
    position: relative;
    min-height: 100vh;
}

.site-header {
    background: #ffffff;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08), 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    position: relative;
    z-index: 100;
    overflow: hidden;
}

.header-accent-bar {
    height: 4px;
    background: linear-gradient(90deg, #48A192 0%, #9CDCB8 60%, #E9F9EC 100%);
}

.header-brand-row {
    background: linear-gradient(135deg, #48A192 0%, #3a8a7c 100%);
    padding: 24px 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

.brand-identity {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.brand-logo-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    padding: 8px;
}

.brand-logo-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.brand-name {
    font-family: 'Ubuntu', sans-serif;
    font-size: 23px;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.04em;
    line-height: 1.1;
    text-align: center;
}

.header-notice {
    background: #E9F9EC;
    border-bottom: 1px solid rgba(72, 161, 146, 0.18);
    padding: 8px 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.notice-dot {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: #48A192;
    flex-shrink: 0;
    transform: rotate(45deg);
}

.notice-text {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #2a6b60;
    line-height: 1.55;
}

.header-nav-row {
    padding: 0 48px;
    display: flex;
    align-items: stretch;
    justify-content: center;
    border-top: 1px solid rgba(72, 161, 146, 0.12);
}

.primary-nav {
    display: flex;
    align-items: stretch;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
    flex-wrap: wrap;
    justify-content: center;
}

.primary-nav li {
    display: flex;
    align-items: stretch;
}

.primary-nav li a {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #1e4a44;
    text-decoration: none;
    padding: 16px 24px;
    display: flex;
    align-items: center;
    position: relative;
    letter-spacing: 0.01em;
    line-height: 1.55;
    transition: color 0.2s ease, background-color 0.18s ease;
    border-radius: 0;
}

.primary-nav li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 24px;
    right: 24px;
    height: 2px;
    background: #48A192;
    border-radius: 2px;
    opacity: 0;
    transition: opacity 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.primary-nav li a:hover {
    color: #48A192;
    background: #E9F9EC;
}

.primary-nav li a:hover::after {
    opacity: 1;
}

.primary-nav li a:focus {
    outline: 2px solid #48A192;
    outline-offset: -2px;
    transform: scale(1.02);
}

.primary-nav li.active-item a {
    color: #48A192;
    font-weight: 700;
}

.primary-nav li.active-item a::after {
    opacity: 1;
}

@media (max-width: 1024px) {
    .header-brand-row {
        padding: 24px 24px;
    }

    .header-nav-row {
        padding: 0 16px;
    }

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

    .header-notice {
        padding: 8px 24px;
    }
}

@media (max-width: 640px) {
    .header-brand-row {
        padding: 24px 16px;
    }

    .header-notice {
        padding: 8px 16px;
        flex-direction: column;
        gap: 8px;
        text-align: center;
    }

    .header-nav-row {
        padding: 0 8px;
    }

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

    .primary-nav li a::after {
        left: 8px;
        right: 8px;
    }
}

.site-footer {
    background: #1e4a44;
    position: relative;
}

.footer-top-line {
    height: 3px;
    background: linear-gradient(90deg, #9CDCB8 0%, #48A192 50%, #9CDCB8 100%);
}

.footer-body {
    max-width: 1320px;
    margin: 0 auto;
    padding: 96px 48px 48px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 48px;
}

.footer-brand-block {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.footer-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 48px;
    border: 1px solid rgba(156, 220, 184, 0.5);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 1px 6px 0 rgba(156, 220, 184, 0.08);
    padding: 8px;
}

.footer-logo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.footer-brand-name {
    font-family: 'Ubuntu', sans-serif;
    font-size: 23px;
    font-weight: 700;
    color: #9CDCB8;
    letter-spacing: 0.03em;
    line-height: 1.1;
}

.footer-description {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: rgba(233, 249, 236, 0.75);
    line-height: 1.55;
}

.footer-contact-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer-block-label {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #9CDCB8;
    letter-spacing: 0.06em;
    line-height: 1.1;
    text-transform: uppercase;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(156, 220, 184, 0.2);
}

.contact-item {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.contact-label {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: rgba(233, 249, 236, 0.55);
    line-height: 1.55;
}

.contact-value {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #E9F9EC;
    line-height: 1.55;
    text-decoration: none;
    transition: color 0.25s ease;
}

.contact-value:hover {
    color: #9CDCB8;
}

.contact-value:focus {
    outline: 2px solid #9CDCB8;
    outline-offset: 2px;
    border-radius: 2px;
    transform: scale(1.02);
}

.footer-legal-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

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

.footer-legal-nav li a {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: rgba(233, 249, 236, 0.7);
    text-decoration: none;
    line-height: 1.55;
    transition: color 0.2s ease;
    display: inline-block;
}

.footer-legal-nav li a:hover {
    color: #9CDCB8;
}

.footer-legal-nav li a:focus {
    outline: 2px solid #9CDCB8;
    outline-offset: 2px;
    border-radius: 2px;
    transform: scale(1.02);
}

.footer-divider {
    max-width: 1320px;
    margin: 0 auto;
    height: 1px;
    background: rgba(156, 220, 184, 0.15);
    margin-left: auto;
    margin-right: auto;
}

.footer-divider-full {
    height: 1px;
    background: rgba(156, 220, 184, 0.15);
    margin: 0 48px;
}

.footer-bottom {
    max-width: 1320px;
    margin: 0 auto;
    padding: 24px 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-copyright {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: rgba(233, 249, 236, 0.45);
    line-height: 1.55;
}

.footer-domain {
    font-family: 'Ubuntu', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: rgba(233, 249, 236, 0.35);
    line-height: 1.55;
}

@media (max-width: 1024px) {
    .footer-body {
        grid-template-columns: 1fr 1fr;
        padding: 48px 24px 48px;
        gap: 48px;
    }

    .footer-brand-block {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        padding: 24px 24px;
    }

    .footer-divider-full {
        margin: 0 24px;
    }
}

@media (max-width: 640px) {
    .footer-body {
        grid-template-columns: 1fr;
        padding: 48px 16px 48px;
        gap: 48px;
    }

    .footer-brand-block {
        grid-column: 1;
    }

    .footer-bottom {
        padding: 24px 16px;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .footer-divider-full {
        margin: 0 16px;
    }
}

.legal-content {
    max-width: 1320px;
    margin: 0 auto;
    padding: 96px 48px;
}

.legal-content h1 {
    font-size: 60px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #1b2d2a;
    margin-bottom: 48px;
    padding-bottom: 24px;
    border-bottom: 2px solid #9CDCB8;
}

.legal-content h2 {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: #1b2d2a;
    margin-top: 96px;
    margin-bottom: 24px;
}

.legal-content h3 {
    font-size: 23px;
    line-height: 1.55;
    letter-spacing: -0.01em;
    color: #1b2d2a;
    margin-top: 48px;
    margin-bottom: 16px;
}

.legal-content h4 {
    font-size: 18px;
    line-height: 1.55;
    letter-spacing: 0.01em;
    color: #2a3d3a;
    margin-top: 48px;
    margin-bottom: 16px;
    text-transform: uppercase;
}

.legal-content h5 {
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: 0.03em;
    color: #48A192;
    margin-top: 24px;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.legal-content h6 {
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: 0.04em;
    color: #2a3d3a;
    margin-top: 24px;
    margin-bottom: 8px;
}

.legal-content p {
    font-size: 18px;
    line-height: 2.0;
    letter-spacing: 0.01em;
    color: #2a3d3a;
    margin-bottom: 24px;
    max-width: 72ch;
}

.legal-content ul {
    margin-bottom: 24px;
    padding-left: 24px;
    max-width: 72ch;
}

.legal-content ol {
    margin-bottom: 24px;
    padding-left: 24px;
    max-width: 72ch;
    counter-reset: policy-counter;
    list-style: none;
}

.legal-content ol li {
    counter-increment: policy-counter;
    position: relative;
    padding-left: 16px;
}

.legal-content ol li::before {
    content: counter(policy-counter) ".";
    position: absolute;
    left: -24px;
    color: #48A192;
    font-size: 18px;
    line-height: 2.0;
    font-weight: 600;
}

.legal-content ul li {
    font-size: 18px;
    line-height: 2.0;
    letter-spacing: 0.01em;
    color: #2a3d3a;
    margin-bottom: 8px;
    list-style: none;
    position: relative;
    padding-left: 16px;
}

.legal-content ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background-color: #48A192;
    transform: rotate(45deg);
}

.legal-content ol li {
    font-size: 18px;
    line-height: 2.0;
    letter-spacing: 0.01em;
    color: #2a3d3a;
    margin-bottom: 8px;
}

.legal-content em {
    font-style: italic;
    color: #48A192;
}

.legal-content i {
    font-style: italic;
    color: #2a3d3a;
}

.legal-content table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 48px;
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: 0.01em;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    border-radius: 6px;
    overflow: hidden;
}

.legal-content thead {
    background-color: #48A192;
}

.legal-content thead th {
    color: #ffffff;
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 16px 24px;
    text-align: left;
    font-weight: 700;
}

.legal-content tbody tr {
    border-bottom: 1px solid #E9F9EC;
    transition: background-color 0.2s ease;
}

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

.legal-content tbody tr:hover {
    background-color: #E9F9EC;
}

.legal-content tbody tr:nth-child(even) {
    background-color: #f5fcf8;
}

.legal-content tbody tr:nth-child(even):hover {
    background-color: #E9F9EC;
}

.legal-content td {
    padding: 16px 24px;
    color: #2a3d3a;
    font-size: 15px;
    line-height: 1.55;
    vertical-align: top;
}

.legal-content th {
    padding: 16px 24px;
}

@media (max-width: 1024px) {
    .legal-content {
        padding: 96px 48px;
    }

    .legal-content h1 {
        font-size: 43px;
    }

    .legal-content h2 {
        font-size: 23px;
        margin-top: 48px;
    }
}

@media (max-width: 640px) {
    .legal-content {
        padding: 48px 16px;
    }

    .legal-content h1 {
        font-size: 43px;
        margin-bottom: 24px;
    }

    .legal-content h2 {
        font-size: 23px;
        margin-top: 48px;
    }

    .legal-content h3 {
        font-size: 18px;
        margin-top: 24px;
    }

    .legal-content p {
        font-size: 15px;
    }

    .legal-content ul li {
        font-size: 15px;
    }

    .legal-content ol li {
        font-size: 15px;
    }

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

    .legal-content thead th {
        padding: 8px 16px;
    }

    .legal-content td {
        padding: 8px 16px;
    }
}

.student-projects-detail {
    max-width: 100%;
    overflow-x: hidden;
}

.student-projects-detail .page-wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
}

.student-projects-detail .title-block {
    background: linear-gradient(135deg, #48A192 0%, #48A192 35%, #9CDCB8 65%, #E9F9EC 100%);
    padding: 96px 0 48px;
    position: relative;
}

.student-projects-detail .title-block::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #48A192 0%, #48A192 40%, #9CDCB8 40%, #9CDCB8 70%, transparent 70%);
}

.student-projects-detail .title-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 48px;
    align-items: center;
}

.student-projects-detail .title-meta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.student-projects-detail .category-tag {
    display: inline-block;
    background: #fff;
    color: #48A192;
    font-size: 15px;
    font-weight: 700;
    padding: 8px 16px;
    border-radius: 2px;
    letter-spacing: 0.06em;
}

.student-projects-detail .meta-sep {
    width: 5px;
    height: 5px;
    background: #fff;
    transform: rotate(45deg);
    flex-shrink: 0;
}

.student-projects-detail .publish-date {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.88);
    letter-spacing: 0.03em;
}

.student-projects-detail .readtime-badge {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.88);
}

.student-projects-detail .title-heading {
    font-size: 60px;
    line-height: 1.1;
    color: #fff;
    letter-spacing: -0.02em;
    margin: 0 0 24px;
    background: linear-gradient(90deg, #fff 0%, #fff 55%, #E9F9EC 55%, #E9F9EC 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.student-projects-detail .title-seats {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 6px;
    padding: 8px 16px;
    margin-bottom: 24px;
}

.student-projects-detail .seats-dot {
    width: 8px;
    height: 8px;
    border-radius: 40px;
    background: #fff;
    flex-shrink: 0;
}

.student-projects-detail .seats-text {
    font-size: 15px;
    color: #fff;
    font-weight: 600;
}

.student-projects-detail .title-price-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.student-projects-detail .price-label {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.75);
    letter-spacing: 0.04em;
}

.student-projects-detail .price-value {
    font-size: 43px;
    line-height: 1.1;
    color: #fff;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.student-projects-detail .enroll-link {
    display: inline-block;
    background: #fff;
    color: #48A192;
    font-size: 18px;
    font-weight: 700;
    padding: 16px 48px;
    border-radius: 6px;
    text-decoration: none;
    margin-top: 24px;
    transition: background 0.2s ease, color 0.18s ease;
    position: relative;
    overflow: hidden;
}

.student-projects-detail .enroll-link:hover {
    background: #E9F9EC;
    color: #2d7a6d;
}

.student-projects-detail .enroll-link:focus {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.student-projects-detail .title-image-box {
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.student-projects-detail .title-image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: blur(0px);
    transition: filter 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects-detail .title-image-box:hover img {
    filter: blur(2px) brightness(0.92);
}

.student-projects-detail .description-block {
    padding: 96px 0;
    background: #fff;
}

.student-projects-detail .description-layout {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 48px;
}

.student-projects-detail .description-sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-top: 8px;
}

.student-projects-detail .sidebar-label {
    font-size: 15px;
    color: #48A192;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.student-projects-detail .sidebar-line {
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, #48A192 0%, #9CDCB8 100%);
    border-radius: 2px;
}

.student-projects-detail .description-body {
    font-size: 18px;
    line-height: 1.55;
    color: #1e3a36;
}

.student-projects-detail .description-body p {
    margin: 0 0 16px;
}

.student-projects-detail .description-body p:last-child {
    margin-bottom: 0;
}

.student-projects-detail .description-body h2 {
    font-size: 23px;
    line-height: 1.1;
    color: #1e3a36;
    margin: 48px 0 16px;
    letter-spacing: -0.01em;
}

.student-projects-detail .description-body em {
    color: #48A192;
    font-style: normal;
    font-weight: 600;
}

.student-projects-detail .description-body ul {
    margin: 16px 0;
    padding-left: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.student-projects-detail .description-body li {
    font-size: 18px;
    line-height: 1.55;
    color: #1e3a36;
}

.student-projects-detail .description-body blockquote {
    border-top: 3px solid #48A192;
    margin: 24px 0;
    padding: 16px 24px;
    background: #E9F9EC;
    border-radius: 6px;
    font-size: 18px;
    line-height: 1.55;
    color: #1e3a36;
}

.student-projects-detail .description-body cite {
    font-size: 15px;
    color: #48A192;
    font-style: normal;
}

.student-projects-detail .description-body dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 8px 16px;
    margin: 16px 0;
}

.student-projects-detail .description-body dt {
    font-weight: 700;
    color: #48A192;
    font-size: 15px;
}

.student-projects-detail .description-body dd {
    font-size: 15px;
    color: #1e3a36;
    margin: 0;
}

.student-projects-detail .program-block {
    padding: 96px 0;
    background: #E9F9EC;
    position: relative;
}

.student-projects-detail .program-block::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    background-image: repeating-linear-gradient(45deg,
            transparent,
            transparent 18px,
            rgba(72, 161, 146, 0.04) 18px,
            rgba(72, 161, 146, 0.04) 20px);
    pointer-events: none;
}

.student-projects-detail .program-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
}

.student-projects-detail .program-header {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 48px;
}

.student-projects-detail .program-heading {
    font-size: 43px;
    line-height: 1.1;
    color: #1e3a36;
    letter-spacing: -0.02em;
    margin: 0;
    background: linear-gradient(90deg, #1e3a36 0%, #1e3a36 45%, #48A192 45%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.student-projects-detail .program-accent-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, #48A192 0%, transparent 100%);
    margin-bottom: 8px;
}

.student-projects-detail .program-body {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}

.student-projects-detail .program-body-full {
    grid-column: 1 / -1;
}

.student-projects-detail .program-card {
    background: #fff;
    border-radius: 6px;
    padding: 24px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    transition: box-shadow 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects-detail .program-card:hover {
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    transform: translateY(-2px);
}

.student-projects-detail .program-card h2 {
    font-size: 18px;
    line-height: 1.55;
    color: #48A192;
    margin: 0 0 8px;
    font-weight: 700;
}

.student-projects-detail .program-card h3 {
    font-size: 15px;
    line-height: 1.55;
    color: #1e3a36;
    margin: 0 0 8px;
    font-weight: 600;
}

.student-projects-detail .program-card p {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
    margin: 0 0 8px;
}

.student-projects-detail .program-card p:last-child {
    margin-bottom: 0;
}

.student-projects-detail .program-card ol {
    margin: 8px 0 0;
    padding-left: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.student-projects-detail .program-card li {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
}

.student-projects-detail .program-card abbr {
    text-decoration: underline dotted;
    cursor: help;
    color: #48A192;
}

.student-projects-detail .program-card em {
    font-style: italic;
    color: #48A192;
}

.student-projects-detail .program-card dl {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 8px 0 0;
}

.student-projects-detail .program-card dt {
    font-weight: 700;
    font-size: 15px;
    color: #48A192;
}

.student-projects-detail .program-card dd {
    font-size: 15px;
    color: #3a5a54;
    margin: 0 0 0 16px;
}

.student-projects-detail .program-card blockquote {
    border-top: 2px solid #9CDCB8;
    padding: 8px 16px;
    margin: 8px 0 0;
    background: #E9F9EC;
    border-radius: 2px;
    font-size: 15px;
    line-height: 1.55;
    color: #1e3a36;
}

.student-projects-detail .program-card figure {
    margin: 8px 0 0;
}

.student-projects-detail .program-card figcaption {
    font-size: 15px;
    color: #48A192;
    font-style: italic;
    margin-top: 8px;
}

.student-projects-detail .cta-block {
    padding: 96px 0;
    background: #fff;
}

.student-projects-detail .cta-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 96px;
    align-items: center;
}

.student-projects-detail .cta-text-area {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.student-projects-detail .cta-heading {
    font-size: 43px;
    line-height: 1.1;
    color: #1e3a36;
    letter-spacing: -0.02em;
    margin: 0;
    background: linear-gradient(90deg, #1e3a36 0%, #1e3a36 50%, #48A192 50%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.student-projects-detail .cta-subtext {
    font-size: 18px;
    line-height: 1.55;
    color: #3a5a54;
    margin: 0;
}

.student-projects-detail .cta-details-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 8px 0 0;
}

.student-projects-detail .cta-detail-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
}

.student-projects-detail .detail-dot-trail {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
}

.student-projects-detail .trail-dot {
    width: 10px;
    height: 10px;
    border-radius: 40px;
    background: #9CDCB8;
    border: 2px solid #48A192;
    flex-shrink: 0;
}

.student-projects-detail .trail-dot.active {
    background: #48A192;
}

.student-projects-detail .detail-text {
    font-size: 15px;
    line-height: 1.55;
    color: #1e3a36;
}

.student-projects-detail .cta-card {
    background: linear-gradient(135deg, #48A192 0%, #48A192 40%, #9CDCB8 100%);
    border-radius: 6px;
    padding: 48px 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.student-projects-detail .cta-card-price-label {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.student-projects-detail .cta-card-price {
    font-size: 60px;
    line-height: 1.1;
    color: #fff;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.student-projects-detail .cta-card-seats {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 40px;
    padding: 8px 16px;
}

.student-projects-detail .cta-card-seats-dot {
    width: 8px;
    height: 8px;
    border-radius: 40px;
    background: #fff;
}

.student-projects-detail .cta-card-seats-text {
    font-size: 15px;
    color: #fff;
    font-weight: 600;
}

.student-projects-detail .cta-card-link {
    display: inline-block;
    background: #fff;
    color: #48A192;
    font-size: 18px;
    font-weight: 700;
    padding: 16px 48px;
    border-radius: 6px;
    text-decoration: none;
    width: 100%;
    text-align: center;
    transition: background 0.22s ease, color 0.18s ease;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.student-projects-detail .cta-card-link:hover {
    background: #E9F9EC;
    color: #2d7a6d;
}

.student-projects-detail .cta-card-link:focus {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.student-projects-detail .cta-card-contact {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.85);
    text-align: center;
    width: 100%;
}

.student-projects-detail .cta-card-contact a {
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
}

@keyframes clip-reveal {
    from {
        clip-path: inset(0 50% 0 50%);
        opacity: 0;
    }

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

.student-projects-detail .title-heading {
    animation: clip-reveal 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.student-projects-detail .program-card:nth-child(1) {
    animation: row-appear 0.6s 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.student-projects-detail .program-card:nth-child(2) {
    animation: row-appear 0.6s 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.student-projects-detail .program-card:nth-child(3) {
    animation: row-appear 0.6s 0.34s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.student-projects-detail .program-card:nth-child(4) {
    animation: row-appear 0.6s 0.46s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

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

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

@media (max-width: 1024px) {
    .student-projects-detail .title-inner {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .student-projects-detail .title-heading {
        font-size: 43px;
    }

    .student-projects-detail .program-body {
        grid-template-columns: 1fr 1fr;
    }

    .student-projects-detail .cta-inner {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .student-projects-detail .description-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .student-projects-detail .sidebar-line {
        display: none;
    }
}

@media (max-width: 640px) {
    .student-projects-detail .title-block {
        padding: 48px 0 48px;
    }

    .student-projects-detail .title-heading {
        font-size: 23px;
    }

    .student-projects-detail .price-value {
        font-size: 23px;
    }

    .student-projects-detail .program-body {
        grid-template-columns: 1fr;
    }

    .student-projects-detail .program-heading {
        font-size: 23px;
    }

    .student-projects-detail .cta-heading {
        font-size: 23px;
    }

    .student-projects-detail .cta-card-price {
        font-size: 43px;
    }

    .student-projects-detail .description-block,
    .student-projects-detail .program-block,
    .student-projects-detail .cta-block {
        padding: 48px 0;
    }

    .student-projects-detail .cta-inner {
        gap: 24px;
    }

    .student-projects-detail .program-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .student-projects-detail .program-accent-line {
        display: none;
    }
}

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

.first .page-limiter {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 48px;
    padding-right: 48px;
}

@keyframes maskReveal {
    from {
        clip-path: inset(0 45% round 6px);
        opacity: 0.4;
    }

    to {
        clip-path: inset(0 0% round 6px);
        opacity: 1;
    }
}

@keyframes maskRevealCenter {
    from {
        clip-path: inset(30% 30% round 6px);
        opacity: 0;
    }

    to {
        clip-path: inset(0% 0% round 6px);
        opacity: 1;
    }
}

.first .reveal-mask {
    animation: maskRevealCenter 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.first .reveal-mask-h {
    animation: maskReveal 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.first .title-band {
    background: #48A192;
    padding-top: 48px;
    padding-bottom: 48px;
    position: relative;
}

.first .title-band-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 48px;
}

.first .title-text-side {
    flex: 1 1 0;
    position: relative;
    padding-left: 48px;
}

.first .title-quote-mark {
    position: absolute;
    left: 0;
    top: -16px;
    font-size: 120px;
    line-height: 1.1;
    color: #9CDCB8;
    opacity: 0.22;
    pointer-events: none;
    user-select: none;
    font-style: normal;
    z-index: 0;
}

.first .title-text-side h1 {
    font-size: 60px;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #fff;
    margin: 0 0 24px 0;
    position: relative;
    z-index: 1;
}

.first .title-text-side h1 span {
    background: linear-gradient(90deg, #E9F9EC 0%, #E9F9EC 40%, #9CDCB8 40%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.first .title-theses {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    z-index: 1;
}

.first .thesis-item {
    font-size: 18px;
    line-height: 1.55;
    color: #E9F9EC;
    padding-left: 16px;
    border-top: 1px solid rgba(156, 220, 184, 0.3);
    padding-top: 16px;
}

.first .title-image-side {
    flex: 0 0 420px;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.first .title-image-side img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
    filter: saturate(0.55) brightness(0.92);
}

.first .investment-band {
    background: #fff;
    padding-top: 96px;
    padding-bottom: 96px;
}

.first .investment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    align-items: start;
}

.first .investment-label {
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: 0.06em;
    color: #48A192;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.first .investment-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 24px 0;
    background: linear-gradient(100deg, #222 0%, #222 35%, #48A192 35%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.first .investment-intro-text {
    font-size: 18px;
    line-height: 1.55;
    color: #333;
    margin: 0;
}

.first .investment-cards {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.first .invest-card {
    background: #E9F9EC;
    border-radius: 6px;
    padding: 24px;
    position: relative;
    transition: box-shadow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.5s ease;
}

.first .invest-card:hover {
    background: #d4f4e2;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.first .invest-card-number {
    width: 36px;
    height: 36px;
    border-radius: 40px;
    background: #48A192;
    color: #fff;
    font-size: 15px;
    line-height: 1.1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-bottom: 16px;
    flex-shrink: 0;
}

.first .invest-card-title {
    font-size: 18px;
    line-height: 1.55;
    color: #222;
    font-weight: 600;
    margin: 0 0 8px 0;
}

.first .invest-card-text {
    font-size: 15px;
    line-height: 1.55;
    color: #444;
    margin: 0;
}

.first .investment-image-col {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.first .investment-image-col img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.first .divider-wave {
    width: 100%;
    height: 40px;
    position: relative;
    overflow: hidden;
    background: #E9F9EC;
}

.first .divider-wave-inner {
    width: 100%;
    height: 40px;
    background: #fff;
    border-radius: 0 0 40px 40px;
}

.first .divider-wave-2 {
    width: 100%;
    height: 32px;
    position: relative;
    overflow: hidden;
    background: #fff;
}

.first .divider-wave-2-inner {
    width: 100%;
    height: 32px;
    background: #E9F9EC;
    border-radius: 40px 40px 0 0;
}

.first .support-band {
    background: #E9F9EC;
    padding-top: 96px;
    padding-bottom: 96px;
}

.first .support-layout {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: stretch;
}

.first .support-image-stack {
    flex: 0 0 380px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.first .support-img-main {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.first .support-img-main img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.first .support-img-accent {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.first .support-img-accent img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.first .support-text-side {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
}

.first .support-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0;
    background: linear-gradient(110deg, #48A192 0%, #48A192 50%, #222 50%, #222 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.first .support-body {
    font-size: 18px;
    line-height: 1.55;
    color: #333;
    margin: 0;
}

.first .support-items {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.first .support-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 16px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    transition: box-shadow 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.first .support-item:hover {
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.first .support-dot {
    width: 32px;
    height: 32px;
    border-radius: 40px;
    background: #9CDCB8;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.first .support-dot-fill {
    width: 12px;
    height: 12px;
    border-radius: 40px;
    background: #48A192;
}

.first .support-item-text {
    font-size: 15px;
    line-height: 1.55;
    color: #333;
}

.first .curve-connector {
    width: 100%;
    height: 48px;
    position: relative;
    overflow: hidden;
    background: #E9F9EC;
}

.first .curve-connector svg {
    width: 100%;
    height: 48px;
    display: block;
}

.first .fit-band {
    background: #fff;
    padding-top: 96px;
    padding-bottom: 96px;
}

.first .fit-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 48px;
}

.first .fit-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 24px 0;
    background: linear-gradient(95deg, #222 0%, #222 45%, #48A192 45%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.first .fit-intro {
    font-size: 18px;
    line-height: 1.55;
    color: #333;
    margin: 0;
}

.first .fit-image-right {
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.first .fit-image-right img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.first .fit-three-cols {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    align-items: end;
}

.first .fit-col {
    border-radius: 6px;
    padding: 24px;
    background: #E9F9EC;
    transition: background 0.65s ease, box-shadow 0.65s ease;
    position: relative;
}

.first .fit-col:hover {
    background: #d4f4e2;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.first .fit-col-center {
    border-radius: 6px;
    padding: 48px 24px;
    background: #48A192;
    position: relative;
    transition: background 0.65s ease, box-shadow 0.65s ease;
}

.first .fit-col-center:hover {
    background: #3d8e80;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.first .fit-col-number {
    width: 40px;
    height: 40px;
    border-radius: 40px;
    background: #fff;
    color: #48A192;
    font-size: 18px;
    line-height: 1.1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-bottom: 16px;
}

.first .fit-col-center .fit-col-number {
    background: #E9F9EC;
    color: #48A192;
}

.first .fit-col-heading {
    font-size: 18px;
    line-height: 1.55;
    color: #222;
    font-weight: 600;
    margin: 0 0 8px 0;
}

.first .fit-col-center .fit-col-heading {
    color: #fff;
}

.first .fit-col-text {
    font-size: 15px;
    line-height: 1.55;
    color: #444;
    margin: 0;
}

.first .fit-col-center .fit-col-text {
    color: #E9F9EC;
}

.first .fit-col-center::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 6px;
    background-image: radial-gradient(circle at 20% 20%, rgba(156, 220, 184, 0.18) 0%, transparent 60%),
        radial-gradient(circle at 80% 80%, rgba(233, 249, 236, 0.12) 0%, transparent 50%);
    background-size: 200% 200%;
    transition: background-position 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    pointer-events: none;
}

.first .fit-col-center:hover::before {
    background-position: 100% 100%;
}

.first .dot-trail {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    margin-bottom: 48px;
}

.first .dot-trail-dot {
    width: 14px;
    height: 14px;
    border-radius: 40px;
    background: #9CDCB8;
    flex-shrink: 0;
}

.first .dot-trail-dot-active {
    width: 18px;
    height: 18px;
    border-radius: 40px;
    background: #48A192;
    flex-shrink: 0;
}

.first .dot-trail-line {
    flex: 1 1 0;
    height: 2px;
    background: #9CDCB8;
}

.first .cta-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
    margin-top: 48px;
}

.first .btn-primary {
    display: inline-block;
    padding: 16px 48px;
    background: #222;
    color: #fff;
    font-size: 18px;
    line-height: 1.55;
    border-radius: 2px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: background 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.55s ease;
}

.first .btn-primary::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 0%;
    background: #48A192;
    transition: width 0s;
    z-index: 0;
}

.first .btn-primary:active::after {
    width: 100%;
    transition: width 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

.first .btn-primary:hover {
    background: #333;
}

.first .btn-primary:focus {
    outline: 3px solid #9CDCB8;
    outline-offset: 2px;
}

.first .btn-secondary {
    display: inline-block;
    padding: 16px 48px;
    background: transparent;
    color: #48A192;
    font-size: 18px;
    line-height: 1.55;
    border-radius: 2px;
    text-decoration: none;
    border: 2px solid #48A192;
    cursor: pointer;
    transition: background 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.5s ease;
}

.first .btn-secondary:hover {
    background: #48A192;
    color: #fff;
}

.first .btn-secondary:focus {
    outline: 3px solid #9CDCB8;
    outline-offset: 2px;
}

@media (max-width: 1024px) {
    .first .page-limiter {
        padding-left: 24px;
        padding-right: 24px;
    }

    .first .title-band-inner {
        flex-direction: column;
        gap: 24px;
    }

    .first .title-image-side {
        flex: 0 0 auto;
        width: 100%;
    }

    .first .title-text-side {
        padding-left: 24px;
    }

    .first .title-text-side h1 {
        font-size: 43px;
    }

    .first .investment-grid {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }

    .first .investment-image-col {
        grid-column: 1 / -1;
    }

    .first .support-layout {
        flex-direction: column;
        gap: 24px;
    }

    .first .support-image-stack {
        flex: 0 0 auto;
        width: 100%;
    }

    .first .fit-top {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .first .fit-three-cols {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

    .first .fit-col-center {
        grid-column: 1 / -1;
        padding: 24px;
    }
}

@media (max-width: 640px) {
    .first .page-limiter {
        padding-left: 16px;
        padding-right: 16px;
    }

    .first .title-text-side h1 {
        font-size: 43px;
    }

    .first .title-quote-mark {
        font-size: 80px;
    }

    .first .investment-grid {
        grid-template-columns: 1fr;
    }

    .first .investment-heading {
        font-size: 23px;
    }

    .first .support-heading {
        font-size: 23px;
    }

    .first .fit-heading {
        font-size: 23px;
    }

    .first .fit-three-cols {
        grid-template-columns: 1fr;
    }

    .first .fit-col-center {
        grid-column: auto;
    }

    .first .cta-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .first .investment-band {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    .first .support-band {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    .first .fit-band {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    .first .dot-trail {
        display: none;
    }
}

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

.learning-program .lp-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
}

.learning-program .title-block {
    padding: 96px 24px 48px;
    text-align: center;
    position: relative;
    background: #ffffff;
}

.learning-program .title-block-decoration {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    overflow: hidden;
}

.learning-program .title-block-decoration::before {
    content: '';
    display: block;
    position: absolute;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    width: min(700px, 90%);
    height: calc(100% - 48px);
    border: 1.5px dashed #9CDCB8;
    border-radius: 6px;
}

.learning-program .title-block-inner {
    max-width: 1320px;
    margin: 0 auto;
    position: relative;
}

.learning-program .title-eyebrow {
    display: inline-block;
    font-size: 15px;
    letter-spacing: 0.12em;
    color: #48A192;
    margin-bottom: 16px;
    text-transform: uppercase;
}

.learning-program .title-heading {
    font-size: 60px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 24px;
    background: linear-gradient(90deg, #2a2a2a 0%, #2a2a2a 45%, #48A192 45%, #48A192 70%, #9CDCB8 70%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.learning-program .title-link {
    display: inline-block;
    font-size: 18px;
    color: #ffffff;
    background: #2a2a2a;
    padding: 16px 48px;
    border-radius: 6px;
    text-decoration: none;
    margin-bottom: 48px;
    transition: background-color 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.5s ease;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    position: relative;
    overflow: hidden;
}

.learning-program .title-link::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 0;
    background: #48A192;
    transition: width 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 0;
}

.learning-program .title-link:active::after {
    width: 100%;
}

.learning-program .title-link span {
    position: relative;
    z-index: 1;
}

.learning-program .title-link:hover {
    background: #48A192;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.learning-program .title-link:focus {
    outline: 2px solid #48A192;
    outline-offset: 3px;
}

.learning-program .title-image-wrap {
    max-width: 900px;
    margin: 0 auto;
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
    position: relative;
}

.learning-program .title-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: blur(0px) brightness(0.88);
    transition: filter 0.65s ease, brightness 0.65s ease;
}

.learning-program .title-image-wrap:hover img {
    filter: blur(0px) brightness(1.05);
}

.learning-program .title-image-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(233, 249, 236, 0.18) 0%, rgba(72, 161, 146, 0.22) 100%);
    pointer-events: none;
    border-radius: 6px;
}

.learning-program .divider-tick {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px 24px;
}

.learning-program .divider-tick-line {
    height: 1px;
    flex: 1;
    max-width: 200px;
    background: #9CDCB8;
    position: relative;
}

.learning-program .divider-tick-line::before,
.learning-program .divider-tick-line::after {
    content: '';
    position: absolute;
    top: -4px;
    width: 1px;
    height: 8px;
    background: #9CDCB8;
}

.learning-program .divider-tick-line::before {
    left: 25%;
}

.learning-program .divider-tick-line::after {
    left: 75%;
}

.learning-program .divider-tick-dot {
    width: 8px;
    height: 8px;
    border-radius: 40px;
    background: #48A192;
}

.learning-program .program-structure {
    background: #E9F9EC;
    padding: 96px 24px;
    animation: lp-bg-oscillate 6s ease-in-out infinite;
}

@keyframes lp-bg-oscillate {

    0%,
    100% {
        background-color: #E9F9EC;
    }

    50% {
        background-color: #d8f5e3;
    }
}

.learning-program .program-structure-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 96px;
    align-items: start;
}

.learning-program .structure-text-col {
    padding-right: 8px;
}

.learning-program .structure-label {
    display: inline-block;
    font-size: 15px;
    color: #48A192;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.learning-program .structure-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.015em;
    margin: 0 0 24px;
    background: linear-gradient(95deg, #2a2a2a 0%, #2a2a2a 40%, #48A192 40%, #48A192 68%, #9CDCB8 68%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.learning-program .structure-body {
    font-size: 18px;
    line-height: 1.55;
    color: #2a2a2a;
    margin: 0 0 24px;
}

.learning-program .structure-tag {
    display: inline-block;
    font-size: 15px;
    background: #48A192;
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 2px;
    letter-spacing: 0.04em;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
}

.learning-program .structure-diagram-col {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.learning-program .diagram-node {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 16px;
    position: relative;
}

.learning-program .diagram-track {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    width: 24px;
}

.learning-program .diagram-dot {
    width: 16px;
    height: 16px;
    border-radius: 40px;
    background: #ffffff;
    border: 2px solid #48A192;
    flex-shrink: 0;
    transition: background-color 0.55s ease, border-color 0.55s ease;
    margin-top: 16px;
}

.learning-program .diagram-node:hover .diagram-dot {
    background: #48A192;
}

.learning-program .diagram-line {
    flex: 1;
    width: 2px;
    background: #9CDCB8;
    margin: 4px 0;
}

.learning-program .diagram-node:last-child .diagram-line {
    display: none;
}

.learning-program .diagram-card {
    flex: 1;
    background: #ffffff;
    border-radius: 6px;
    padding: 16px 24px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    position: relative;
    transition: box-shadow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.55s ease;
}

.learning-program .diagram-node:hover .diagram-card {
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    transform: translateX(4px);
}

.learning-program .diagram-card-corner {
    position: absolute;
    top: -1px;
    right: 16px;
    font-size: 15px;
    background: #9CDCB8;
    color: #2a2a2a;
    padding: 4px 8px;
    border-radius: 2px;
    letter-spacing: 0.04em;
}

.learning-program .diagram-card-title {
    font-size: 18px;
    line-height: 1.55;
    color: #2a2a2a;
    margin: 0 0 8px;
    font-weight: 600;
}

.learning-program .diagram-card-desc {
    font-size: 15px;
    line-height: 1.55;
    color: #444444;
    margin: 0;
}

.learning-program .divider-plain {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #9CDCB8 20%, #48A192 50%, #9CDCB8 80%, transparent 100%);
    margin: 0 24px;
}

.learning-program .subscribe-section {
    padding: 96px 24px;
    background: #2a2a2a;
    position: relative;
    overflow: hidden;
}

.learning-program .subscribe-section-bg {
    position: absolute;
    inset: 0;
    background-image: url('../images/top-h.jpg');
    background-size: cover;
    background-position: center;
    filter: grayscale(100%) brightness(0.25);
    pointer-events: none;
}

.learning-program .subscribe-section-tint {
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(72, 161, 146, 0.55) 0%, rgba(72, 161, 146, 0.18) 50%, rgba(42, 42, 42, 0.85) 100%);
    pointer-events: none;
}

.learning-program .subscribe-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 96px;
    position: relative;
}

.learning-program .subscribe-text {
    flex: 1;
}

.learning-program .subscribe-eyebrow {
    display: inline-block;
    font-size: 15px;
    color: #9CDCB8;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.learning-program .subscribe-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.015em;
    margin: 0 0 24px;
    background: linear-gradient(90deg, #ffffff 0%, #ffffff 40%, #9CDCB8 40%, #9CDCB8 70%, #48A192 70%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.learning-program .subscribe-body {
    font-size: 18px;
    line-height: 1.55;
    color: #d0d0d0;
    margin: 0;
}

.learning-program .subscribe-form-col {
    flex: 0 0 420px;
    background: #ffffff;
    border-radius: 6px;
    padding: 48px;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.learning-program .form-label {
    display: block;
    font-size: 15px;
    color: #2a2a2a;
    margin-bottom: 8px;
    letter-spacing: 0.03em;
}

.learning-program .form-input {
    display: block;
    width: 100%;
    font-size: 18px;
    padding: 16px;
    border: 1.5px solid #9CDCB8;
    border-radius: 6px;
    background: #ffffff;
    color: #2a2a2a;
    margin-bottom: 24px;
    box-sizing: border-box;
    transition: border-color 0.55s ease, box-shadow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    outline: none;
}

.learning-program .form-input::placeholder {
    font-size: 15px;
    color: #9CDCB8;
}

.learning-program .form-input:focus {
    border-color: #48A192;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
}

.learning-program .form-radio-group {
    margin-bottom: 24px;
}

.learning-program .form-radio-label {
    display: block;
    font-size: 15px;
    color: #2a2a2a;
    margin-bottom: 8px;
}

.learning-program .form-radio-option {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    cursor: pointer;
}

.learning-program .form-radio-option input[type="radio"] {
    accent-color: #48A192;
    width: 18px;
    height: 18px;
    cursor: pointer;
    flex-shrink: 0;
}

.learning-program .form-radio-option-text {
    font-size: 15px;
    color: #2a2a2a;
    line-height: 1.55;
}

.learning-program .form-submit {
    display: block;
    width: 100%;
    font-size: 18px;
    color: #ffffff;
    background: #2a2a2a;
    border: none;
    border-radius: 6px;
    padding: 16px;
    cursor: pointer;
    letter-spacing: 0.03em;
    position: relative;
    overflow: hidden;
    transition: background-color 0.65s ease, box-shadow 0.55s ease;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
}

.learning-program .form-submit::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 0;
    background: #48A192;
    transition: width 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 0;
}

.learning-program .form-submit:active::after {
    width: 100%;
}

.learning-program .form-submit span {
    position: relative;
    z-index: 1;
}

.learning-program .form-submit:hover {
    background: #48A192;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.learning-program .form-submit:focus {
    outline: 2px solid #9CDCB8;
    outline-offset: 3px;
}

.learning-program .form-access-note {
    font-size: 15px;
    color: #48A192;
    text-align: center;
    margin-top: 16px;
    line-height: 1.55;
}

@media (max-width: 1024px) {
    .learning-program .title-heading {
        font-size: 43px;
    }

    .learning-program .program-structure-inner {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .learning-program .structure-text-col {
        padding-right: 0;
    }

    .learning-program .subscribe-inner {
        flex-direction: column;
        gap: 48px;
    }

    .learning-program .subscribe-form-col {
        flex: none;
        width: 100%;
        max-width: 520px;
        padding: 48px 24px;
    }

    .learning-program .subscribe-heading {
        font-size: 43px;
    }
}

@media (max-width: 640px) {
    .learning-program .title-block {
        padding: 48px 16px 48px;
    }

    .learning-program .title-heading {
        font-size: 43px;
    }

    .learning-program .title-link {
        padding: 16px 24px;
        font-size: 15px;
    }

    .learning-program .program-structure {
        padding: 48px 16px;
    }

    .learning-program .structure-heading {
        font-size: 23px;
    }

    .learning-program .subscribe-section {
        padding: 48px 16px;
    }

    .learning-program .subscribe-heading {
        font-size: 23px;
    }

    .learning-program .subscribe-form-col {
        padding: 24px 16px;
    }

    .learning-program .diagram-card-corner {
        font-size: 12px;
        padding: 4px 8px;
    }
}

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

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

@keyframes bg-oscillate {
    0% {
        background-color: #f4fdf7;
    }

    50% {
        background-color: #e4f7ed;
    }

    100% {
        background-color: #f4fdf7;
    }
}

@keyframes bg-oscillate-alt {
    0% {
        background-color: #edf9f3;
    }

    50% {
        background-color: #d8f3e6;
    }

    100% {
        background-color: #edf9f3;
    }
}

.about-us-page .title-strip {
    animation: bg-oscillate 4s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
    padding: 48px 0;
    position: relative;
}

.about-us-page .title-strip-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 48px;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
}

.about-us-page .title-image-col {
    flex: 0 0 320px;
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
}

.about-us-page .title-image-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .title-image-col:hover img {
    transform: scale(1.04);
}

.about-us-page .title-image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, rgba(72, 161, 146, 0.55) 0%, rgba(72, 161, 146, 0.55) 40%, transparent 100%);
    pointer-events: none;
}

.about-us-page .title-bg-number {
    position: absolute;
    right: -16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 160px;
    line-height: 1.1;
    font-weight: 900;
    color: rgba(72, 161, 146, 0.07);
    pointer-events: none;
    user-select: none;
    letter-spacing: -8px;
    z-index: 0;
}

.about-us-page .title-text-col {
    flex: 1;
    position: relative;
    z-index: 1;
}

.about-us-page .title-label {
    font-size: 15px;
    line-height: 1.55;
    color: #48A192;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 16px;
    display: block;
}

.about-us-page .title-heading {
    font-size: 60px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 16px 0;
    color: #1e3a35;
}

.about-us-page .title-heading-accent {
    background: linear-gradient(90deg, #48A192 0%, #48A192 45%, #9CDCB8 45%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.about-us-page .title-description {
    font-size: 18px;
    line-height: 1.55;
    color: #2e4a44;
    margin: 0 0 24px 0;
    max-width: 480px;
}

.about-us-page .title-action {
    display: inline-block;
    background: #48A192;
    color: #fff;
    font-size: 15px;
    line-height: 1.55;
    padding: 16px 24px;
    border-radius: 6px;
    text-decoration: none;
    letter-spacing: 0.03em;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    transition: background 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.25s ease;
}

.about-us-page .title-action:hover {
    background: #3a8a7c;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.about-us-page .story-section {
    background: #fff;
    padding: 96px 0 48px;
    clip-path: polygon(0 0, 100% 0, 100% 92%, 0 100%);
    margin-bottom: -48px;
}

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

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

.about-us-page .story-year-badge {
    display: inline-block;
    background: #E9F9EC;
    color: #48A192;
    font-size: 43px;
    line-height: 1.1;
    font-weight: 900;
    padding: 16px 24px;
    border-radius: 6px;
    letter-spacing: -0.02em;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    width: fit-content;
}

.about-us-page .story-sidebar-label {
    font-size: 15px;
    line-height: 1.55;
    color: #5a7a74;
    letter-spacing: 0.04em;
}

.about-us-page .story-image-sidebar {
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.about-us-page .story-image-sidebar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .story-image-sidebar:hover img {
    transform: scale(1.05);
}

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

.about-us-page .story-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0;
    color: #1e3a35;
}

.about-us-page .story-heading-gradient {
    background: linear-gradient(90deg, #48A192 0%, #48A192 50%, #9CDCB8 50%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.about-us-page .story-paragraph {
    font-size: 18px;
    line-height: 1.55;
    color: #2e4a44;
    margin: 0;
}

.about-us-page .story-image-wide {
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    margin-top: 8px;
}

.about-us-page .story-image-wide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .story-image-wide:hover img {
    transform: scale(1.04);
}

.about-us-page .team-section {
    animation: bg-oscillate-alt 5s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite;
    padding: 96px 0 96px;
    position: relative;
}

.about-us-page .team-section::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #48A192 0%, #48A192 40%, #9CDCB8 40%, #9CDCB8 80%, #E9F9EC 80%, #E9F9EC 100%);
}

.about-us-page .team-top {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 48px;
    margin-bottom: 48px;
}

.about-us-page .team-heading-block {
    flex: 1;
}

.about-us-page .team-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 16px 0;
    color: #1e3a35;
}

.about-us-page .team-heading-gradient {
    background: linear-gradient(90deg, #9CDCB8 0%, #9CDCB8 45%, #48A192 45%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.about-us-page .team-intro-text {
    font-size: 18px;
    line-height: 1.55;
    color: #2e4a44;
    margin: 0;
    max-width: 480px;
}

.about-us-page .team-stats-block {
    flex: 0 0 280px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.about-us-page .stat-row {
    background: #fff;
    border-radius: 6px;
    padding: 16px 24px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow 0.2s ease, transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .stat-row:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.about-us-page .stat-number {
    font-size: 43px;
    line-height: 1.1;
    font-weight: 900;
    color: #48A192;
    letter-spacing: -0.02em;
}

.about-us-page .stat-label {
    font-size: 15px;
    line-height: 1.55;
    color: #5a7a74;
}

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

.about-us-page .team-card {
    background: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    transition: transform 0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.25s ease;
}

.about-us-page .team-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.about-us-page .team-card-image {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.about-us-page .team-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .team-card:hover .team-card-image img {
    transform: scale(1.05);
}

.about-us-page .team-card-body {
    padding: 24px;
}

.about-us-page .team-card-name {
    font-size: 23px;
    line-height: 1.1;
    color: #1e3a35;
    margin: 0 0 8px 0;
    letter-spacing: -0.01em;
}

.about-us-page .team-card-role {
    font-size: 15px;
    line-height: 1.55;
    color: #48A192;
    margin: 0 0 16px 0;
    letter-spacing: 0.04em;
}

.about-us-page .team-card-text {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
    margin: 0;
}

.about-us-page .approach-section {
    background: #1e3a35;
    padding: 96px 0;
    position: relative;
    clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%);
    margin-top: -48px;
}

.about-us-page .approach-section::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #E9F9EC 0%, #E9F9EC 33%, #9CDCB8 33%, #9CDCB8 66%, #48A192 66%, #48A192 100%);
    pointer-events: none;
}

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

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

.about-us-page .approach-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0;
    color: #fff;
}

.about-us-page .approach-heading-accent {
    background: linear-gradient(90deg, #9CDCB8 0%, #9CDCB8 50%, #48A192 50%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.about-us-page .approach-steps {
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
    padding-left: 48px;
}

.about-us-page .approach-steps::before {
    content: '';
    position: absolute;
    left: 11px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: linear-gradient(to bottom, #48A192, #9CDCB8);
}

.about-us-page .approach-step {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.about-us-page .approach-step::before {
    content: '';
    position: absolute;
    left: -38px;
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 40px;
    background: #48A192;
    border: 3px solid #9CDCB8;
    transition: background 0.2s ease, transform 0.18s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .approach-step:hover::before {
    background: #9CDCB8;
    transform: scale(1.3);
}

.about-us-page .step-title {
    font-size: 18px;
    line-height: 1.55;
    color: #9CDCB8;
    margin: 0;
    font-weight: 700;
}

.about-us-page .step-text {
    font-size: 15px;
    line-height: 1.55;
    color: #b8d8d2;
    margin: 0;
}

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

.about-us-page .approach-image {
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.about-us-page .approach-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-us-page .approach-image:hover img {
    transform: scale(1.05);
}

.about-us-page .approach-quote {
    background: rgba(72, 161, 146, 0.15);
    border-radius: 6px;
    padding: 24px;
    box-shadow: inset 0 6px 10px 0 rgba(72, 161, 146, 0.10);
}

.about-us-page .approach-quote-text {
    font-size: 18px;
    line-height: 1.55;
    color: #E9F9EC;
    margin: 0 0 16px 0;
    font-style: italic;
}

.about-us-page .approach-quote-author {
    font-size: 15px;
    line-height: 1.55;
    color: #9CDCB8;
    margin: 0;
}

.about-us-page .zigzag-divider {
    display: block;
    width: 100%;
    height: 24px;
    overflow: hidden;
}

@media (max-width: 1024px) {
    .about-us-page .title-heading {
        font-size: 43px;
    }

    .about-us-page .title-image-col {
        flex: 0 0 240px;
    }

    .about-us-page .story-grid {
        grid-template-columns: 1fr;
    }

    .about-us-page .story-sidebar {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .about-us-page .team-cards {
        grid-template-columns: repeat(2, 1fr);
    }

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

    .about-us-page .team-top {
        flex-direction: column;
    }

    .about-us-page .team-stats-block {
        flex: none;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .about-us-page .stat-row {
        flex: 1 1 120px;
    }
}

@media (max-width: 640px) {
    .about-us-page .title-strip-inner {
        flex-direction: column;
        gap: 24px;
    }

    .about-us-page .title-image-col {
        flex: none;
        width: 100%;
    }

    .about-us-page .title-heading {
        font-size: 43px;
    }

    .about-us-page .title-bg-number {
        display: none;
    }

    .about-us-page .story-section {
        clip-path: none;
        margin-bottom: 0;
    }

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

    .about-us-page .approach-section {
        clip-path: none;
        margin-top: 0;
    }

    .about-us-page .approach-steps {
        padding-left: 32px;
    }

    .about-us-page .story-heading {
        font-size: 23px;
    }

    .about-us-page .team-heading {
        font-size: 23px;
    }

    .about-us-page .approach-heading {
        font-size: 23px;
    }
}

.services-page {
    overflow-x: hidden;
    background: #ffffff;
}

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

.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;
}

.services-page .title-block {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 48px 96px;
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: 48px;
    align-items: center;
    position: relative;
}

@media (max-width: 1024px) {
    .services-page .title-block {
        grid-template-columns: 1fr;
        padding: 48px 24px 96px;
    }
}

@media (max-width: 640px) {
    .services-page .title-block {
        padding: 24px 16px 48px;
        gap: 24px;
    }
}

.services-page .title-image-col {
    position: relative;
    border-radius: 6px;
    overflow: hidden;
}

.services-page .title-image-col::before {
    content: '';
    display: block;
    position: absolute;
    top: -12px;
    left: -12px;
    width: 48px;
    height: 48px;
    border-top: 2px solid #48A192;
    border-left: 2px solid #48A192;
    border-radius: 2px;
    z-index: 1;
    pointer-events: none;
}

.services-page .title-image-col::after {
    content: '';
    display: block;
    position: absolute;
    bottom: -12px;
    right: -12px;
    width: 48px;
    height: 48px;
    border-bottom: 2px solid #9CDCB8;
    border-right: 2px solid #9CDCB8;
    border-radius: 2px;
    z-index: 1;
    pointer-events: none;
}

.services-page .title-image-wrapper {
    position: relative;
    aspect-ratio: 16/9;
    border-radius: 6px;
    overflow: hidden;
}

.services-page .title-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.services-page .title-image-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(72, 161, 146, 0.72) 0%, rgba(72, 161, 146, 0.72) 30%, rgba(156, 220, 184, 0.18) 60%, transparent 100%);
    border-radius: 6px;
}

.services-page .title-text-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.services-page .title-label {
    font-size: 15px;
    letter-spacing: 0.12em;
    color: #48A192;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.55;
}

.services-page .title-heading {
    font-size: 60px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #1a2e2b;
    margin: 0;
}

@media (max-width: 1024px) {
    .services-page .title-heading {
        font-size: 43px;
    }
}

@media (max-width: 640px) {
    .services-page .title-heading {
        font-size: 43px;
    }
}

.services-page .title-heading-accent {
    background: linear-gradient(135deg, #48A192 0%, #48A192 40%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.services-page .title-description {
    font-size: 18px;
    line-height: 1.55;
    color: #2c3e3c;
    margin: 0;
    max-width: 520px;
}

.services-page .title-meta {
    display: flex;
    flex-direction: row;
    gap: 48px;
    padding-top: 8px;
}

@media (max-width: 640px) {
    .services-page .title-meta {
        gap: 24px;
    }
}

.services-page .title-stat {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.services-page .title-stat-number {
    font-size: 43px;
    line-height: 1.1;
    color: #48A192;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.services-page .title-stat-label {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5e5c;
}

.services-page .diagonal-divider {
    width: 100%;
    height: 64px;
    background: linear-gradient(to bottom right, #ffffff 49.5%, #E9F9EC 50%);
    display: block;
}

.services-page .diagonal-divider-reverse {
    width: 100%;
    height: 64px;
    background: linear-gradient(to bottom left, #E9F9EC 49.5%, #ffffff 50%);
    display: block;
}

.services-page .services-grid-block {
    background: #E9F9EC;
    padding: 96px 0 48px;
    position: relative;
}

.services-page .services-grid-block-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 48px;
}

@media (max-width: 640px) {
    .services-page .services-grid-block-inner {
        padding: 0 16px;
    }
}

.services-page .services-grid-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: #1a2e2b;
    margin: 0 0 8px;
}

.services-page .services-grid-heading-accent {
    background: linear-gradient(90deg, #48A192 0%, #48A192 45%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.services-page .services-grid-sub {
    font-size: 18px;
    line-height: 1.55;
    color: #2c3e3c;
    margin: 0 0 48px;
    max-width: 560px;
}

.services-page .services-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    align-items: start;
}

@media (max-width: 1024px) {
    .services-page .services-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .services-page .services-grid {
        grid-template-columns: 1fr;
    }
}

.services-page .service-card {
    background: #ffffff;
    border-radius: 6px;
    padding: 24px;
    position: relative;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08), 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    transition: box-shadow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.services-page .service-card:hover {
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
    transform: translateY(-4px);
}

.services-page .service-card-center {
    margin-top: 0;
}

.services-page .service-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    background: linear-gradient(135deg, #48A192 0%, #9CDCB8 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.services-page .service-card-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: #ffffff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.services-page .service-card-name {
    font-size: 18px;
    line-height: 1.55;
    color: #1a2e2b;
    font-weight: 700;
    margin: 0;
}

.services-page .service-card-text {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5250;
    margin: 0;
}

.services-page .service-card-tag {
    display: inline-block;
    font-size: 15px;
    color: #48A192;
    background: #E9F9EC;
    border-radius: 40px;
    padding: 8px 16px;
    font-weight: 600;
    margin-top: auto;
    align-self: flex-start;
}

.services-page .service-card-short {
    padding-bottom: 16px;
}

.services-page .contrast-block {
    background: #ffffff;
    padding: 96px 0;
    position: relative;
}

.services-page .contrast-block-bg-anim {
    position: absolute;
    top: 0;
    right: 0;
    width: 400px;
    height: 400px;
    border-radius: 40px;
    background: radial-gradient(circle at 80% 20%, rgba(156, 220, 184, 0.22) 0%, rgba(156, 220, 184, 0.22) 35%, transparent 70%);
    animation: color-bleed 7s ease-in-out infinite alternate;
    pointer-events: none;
    z-index: 0;
}

@keyframes color-bleed {
    0% {
        opacity: 0.3;
        transform: scale(0.9) translate(40px, -40px);
    }

    100% {
        opacity: 1;
        transform: scale(1.15) translate(0px, 0px);
    }
}

.services-page .contrast-block-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 48px;
    position: relative;
    z-index: 1;
}

@media (max-width: 640px) {
    .services-page .contrast-block-inner {
        padding: 0 16px;
    }
}

.services-page .contrast-label {
    font-size: 15px;
    letter-spacing: 0.1em;
    color: #48A192;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0 0 16px;
}

.services-page .contrast-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: #1a2e2b;
    margin: 0 0 48px;
    max-width: 680px;
}

.services-page .contrast-heading-accent {
    background: linear-gradient(90deg, #48A192 0%, #48A192 50%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.services-page .contrast-panels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: stretch;
}

@media (max-width: 1024px) {
    .services-page .contrast-panels {
        grid-template-columns: 1fr;
    }
}

.services-page .contrast-panel {
    border-radius: 6px;
    padding: 48px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

@media (max-width: 640px) {
    .services-page .contrast-panel {
        padding: 24px;
    }
}

.services-page .contrast-panel-before {
    background: #f2f5f4;
    box-shadow: inset 6px 6px 18px 0 rgba(72, 161, 146, 0.08);
}

.services-page .contrast-panel-after {
    background: #48A192;
    box-shadow: 8px 8px 0px 0 rgba(156, 220, 184, 0.55), 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.services-page .contrast-panel-tag {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 2px;
    padding: 8px 16px;
    align-self: flex-start;
}

.services-page .contrast-panel-before .contrast-panel-tag {
    background: #d4e8e4;
    color: #2c5550;
}

.services-page .contrast-panel-after .contrast-panel-tag {
    background: rgba(255, 255, 255, 0.18);
    color: #E9F9EC;
}

.services-page .contrast-panel-heading {
    font-size: 23px;
    line-height: 1.55;
    margin: 0;
    font-weight: 700;
}

.services-page .contrast-panel-before .contrast-panel-heading {
    color: #2c3e3c;
}

.services-page .contrast-panel-after .contrast-panel-heading {
    color: #E9F9EC;
}

.services-page .contrast-panel-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.services-page .contrast-panel-list-item {
    font-size: 15px;
    line-height: 1.55;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
}

.services-page .contrast-panel-before .contrast-panel-list-item {
    color: #3a5250;
}

.services-page .contrast-panel-after .contrast-panel-list-item {
    color: #E9F9EC;
}

.services-page .contrast-dot {
    width: 10px;
    height: 10px;
    border-radius: 40px;
    flex-shrink: 0;
    margin-top: 6px;
}

.services-page .contrast-panel-before .contrast-dot {
    background: #9CDCB8;
}

.services-page .contrast-panel-after .contrast-dot {
    background: #E9F9EC;
}

.services-page .contrast-image-row {
    margin-top: 48px;
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    position: relative;
}

.services-page .contrast-image-row img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.services-page .contrast-image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(72, 161, 146, 0.55) 0%, rgba(72, 161, 146, 0.55) 30%, rgba(233, 249, 236, 0.08) 70%, transparent 100%);
    mix-blend-mode: multiply;
}

.services-page .process-block {
    background: #E9F9EC;
    padding: 96px 0;
    position: relative;
}

.services-page .process-block-circles {
    position: absolute;
    top: 48px;
    left: 48px;
    width: 300px;
    height: 300px;
    border-radius: 40px;
    pointer-events: none;
    overflow: hidden;
}

.services-page .process-block-circles::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 200px;
    height: 200px;
    border: 1px solid rgba(72, 161, 146, 0.12);
    border-radius: 40px;
}

.services-page .process-block-circles::after {
    content: '';
    position: absolute;
    top: 40px;
    left: 40px;
    width: 140px;
    height: 140px;
    border: 1px solid rgba(72, 161, 146, 0.08);
    border-radius: 40px;
}

.services-page .process-block-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 48px;
    position: relative;
    z-index: 1;
}

@media (max-width: 640px) {
    .services-page .process-block-inner {
        padding: 0 16px;
    }
}

.services-page .process-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 96px;
}

@media (max-width: 1024px) {
    .services-page .process-top {
        grid-template-columns: 1fr;
        margin-bottom: 48px;
    }
}

.services-page .process-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: #1a2e2b;
    margin: 0;
}

.services-page .process-heading-accent {
    background: linear-gradient(90deg, #48A192 0%, #48A192 50%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.services-page .process-description {
    font-size: 18px;
    line-height: 1.55;
    color: #2c3e3c;
    margin: 0;
}

.services-page .process-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative;
}

@media (max-width: 1024px) {
    .services-page .process-steps {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }
}

@media (max-width: 640px) {
    .services-page .process-steps {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

.services-page .process-step {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 0 24px;
    position: relative;
}

.services-page .process-step:first-child {
    padding-left: 0;
}

@media (max-width: 1024px) {
    .services-page .process-step {
        padding: 0;
    }
}

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

.services-page .step-dot {
    width: 16px;
    height: 16px;
    border-radius: 40px;
    background: #48A192;
    flex-shrink: 0;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.services-page .process-step:hover .step-dot {
    transform: scale(1.4);
}

.services-page .step-line {
    flex: 1;
    height: 2px;
    background: linear-gradient(to right, #48A192 0%, #9CDCB8 100%);
}

.services-page .process-step:last-child .step-line {
    display: none;
}

@media (max-width: 1024px) {
    .services-page .step-line {
        display: none;
    }
}

.services-page .step-number {
    font-size: 60px;
    line-height: 1.1;
    font-weight: 700;
    color: rgba(72, 161, 146, 0.12);
    letter-spacing: -0.03em;
    margin: 0;
}

.services-page .step-name {
    font-size: 18px;
    line-height: 1.55;
    font-weight: 700;
    color: #1a2e2b;
    margin: 0;
}

.services-page .step-text {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5250;
    margin: 0;
}

.services-page .process-cta-row {
    margin-top: 96px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

@media (max-width: 640px) {
    .services-page .process-cta-row {
        margin-top: 48px;
    }
}

.services-page .cta-button {
    display: inline-block;
    background: #1a2e2b;
    color: #E9F9EC;
    font-size: 18px;
    font-weight: 700;
    padding: 16px 48px;
    border-radius: 6px;
    text-decoration: none;
    letter-spacing: 0.02em;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    transition: background 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    border: none !important;
}

.services-page .cta-button::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0%;
    height: 100%;
    background: #48A192;
    border-radius: 6px;
    transition: width 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 0;
}

.services-page .cta-button:active::after {
    width: 100%;
}

.services-page .cta-button span {
    position: relative;
    z-index: 1;
}

.services-page .cta-button:hover {
    background: #2c4a46;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.services-page .cta-button:focus-visible {
    outline: 3px solid #48A192;
    outline-offset: 4px;
}

.services-page .cta-note {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5e5c;
}

.student-projects {
    overflow-x: hidden;
}

.student-projects .projects-split {
    display: flex;
    flex-direction: row;
    min-height: 480px;
    max-width: 100%;
    position: relative;
}

.student-projects .split-left {
    width: 52%;
    background: #48A192;
    padding: 96px 48px 96px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.student-projects .split-left-geo {
    position: absolute;
    top: -48px;
    right: -48px;
    width: 220px;
    height: 220px;
    border: 2px solid rgba(156, 220, 184, 0.18);
    border-radius: 2px;
    transform: rotate(22deg);
    pointer-events: none;
}

.student-projects .split-left-geo-two {
    position: absolute;
    bottom: 24px;
    left: 24px;
    width: 110px;
    height: 110px;
    border: 2px solid rgba(233, 249, 236, 0.13);
    border-radius: 2px;
    transform: rotate(-12deg);
    pointer-events: none;
}

.student-projects .split-label {
    font-size: 15px;
    color: #9CDCB8;
    letter-spacing: 0.12em;
    margin-bottom: 16px;
    text-transform: uppercase;
}

.student-projects .split-heading {
    font-size: 60px;
    line-height: 1.1;
    color: #E9F9EC;
    margin-bottom: 24px;
    letter-spacing: -0.02em;
}

.student-projects .split-heading-accent {
    color: #9CDCB8;
}

.student-projects .split-description {
    font-size: 18px;
    line-height: 1.55;
    color: rgba(233, 249, 236, 0.88);
    max-width: 380px;
    margin-bottom: 48px;
}

.student-projects .split-action {
    display: inline-block;
    background: #E9F9EC;
    color: #48A192;
    font-size: 15px;
    font-weight: 700;
    padding: 16px 48px;
    border-radius: 6px;
    text-decoration: none;
    letter-spacing: 0.04em;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    transition: background 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    align-self: flex-start;
}

.student-projects .split-action:hover {
    background: #9CDCB8;
    color: #fff;
}

.student-projects .split-action:focus-visible {
    outline: 3px solid #E9F9EC !important;
    outline-offset: 3px !important;
}

.student-projects .split-right {
    width: 48%;
    position: relative;
    overflow: hidden;
}

.student-projects .split-right-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 16/9;
}

.student-projects .split-right-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(72, 161, 146, 0.55) 0%, rgba(72, 161, 146, 0.55) 40%, rgba(156, 220, 184, 0.18) 40%, rgba(156, 220, 184, 0.18) 100%);
    pointer-events: none;
}

.student-projects .split-scanlines {
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(0deg,
            transparent,
            transparent 3px,
            rgba(72, 161, 146, 0.07) 3px,
            rgba(72, 161, 146, 0.07) 4px);
    pointer-events: none;
}

.student-projects .projects-grid-area {
    max-width: 1320px;
    margin: 0 auto;
    padding: 96px 48px;
}

.student-projects .grid-area-label {
    font-size: 15px;
    color: #48A192;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.student-projects .grid-area-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    margin-bottom: 48px;
    background: linear-gradient(90deg, #48A192 0%, #48A192 45%, #9CDCB8 45%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    display: inline-block;
}

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

.student-projects .project-card {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    text-decoration: none;
    color: inherit;
}

.student-projects .project-card:hover {
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
    transform: translateY(-4px);
}

.student-projects .project-card:focus-visible {
    outline: 3px solid #48A192 !important;
    outline-offset: 2px !important;
}

.student-projects .card-image-box {
    aspect-ratio: 16/9;
    overflow: hidden;
    position: relative;
}

.student-projects .card-image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects .project-card:hover .card-image-box img {
    transform: scale(1.04);
}

.student-projects .card-tag {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #48A192;
    color: #E9F9EC;
    font-size: 15px;
    padding: 8px 16px;
    border-radius: 40px;
    letter-spacing: 0.04em;
}

.student-projects .card-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.student-projects .card-title {
    font-size: 18px;
    line-height: 1.55;
    color: #1b3d37;
    margin-bottom: 8px;
}

.student-projects .card-description {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
    margin-bottom: 8px;
}

.student-projects .card-meta-row {
    display: flex;
    flex-direction: row;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid #E9F9EC;
}

.student-projects .card-meta-item {
    font-size: 15px;
    color: #48A192;
}

.student-projects .card-meta-label {
    color: #3a5a54;
    font-size: 15px;
}

.student-projects .card-price {
    font-size: 18px;
    font-weight: 700;
    color: #48A192;
    margin-top: 8px;
}

.student-projects .card-seats {
    font-size: 15px;
    color: #9CDCB8;
    background: #E9F9EC;
    border-radius: 40px;
    padding: 8px 16px;
    display: inline-block;
}

.student-projects .card-readtime {
    font-size: 15px;
    color: #3a5a54;
}

.student-projects .card-date {
    font-size: 15px;
    color: #3a5a54;
}

.student-projects .wide-card {
    grid-column: span 3;
    display: flex;
    flex-direction: row;
}

.student-projects .wide-card .card-image-box {
    width: 40%;
    flex-shrink: 0;
    aspect-ratio: unset;
    min-height: 280px;
}

.student-projects .wide-card .card-body {
    flex: 1;
    padding: 48px;
}

.student-projects .wide-card .card-title {
    font-size: 23px;
}

.student-projects .process-strip {
    background: #E9F9EC;
    padding: 96px 0;
    position: relative;
}

.student-projects .process-strip-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 48px;
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
}

.student-projects .process-text-col {
    flex: 1;
    min-width: 0;
}

.student-projects .process-label {
    font-size: 15px;
    color: #48A192;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.student-projects .process-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1b3d37;
    margin-bottom: 24px;
}

.student-projects .process-heading-accent {
    background: linear-gradient(90deg, #48A192 0%, #48A192 50%, #9CDCB8 50%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.student-projects .process-body {
    font-size: 18px;
    line-height: 1.55;
    color: #3a5a54;
    margin-bottom: 24px;
}

.student-projects .process-steps-col {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.student-projects .step-dot-trail {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.student-projects .step-item {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: flex-start;
    position: relative;
}

.student-projects .step-dot-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 24px;
    flex-shrink: 0;
}

.student-projects .step-dot {
    width: 16px;
    height: 16px;
    border-radius: 40px;
    background: #9CDCB8;
    border: 2px solid #48A192;
    flex-shrink: 0;
    margin-top: 4px;
    transition: background 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects .step-item:hover .step-dot {
    background: #48A192;
}

.student-projects .step-line {
    width: 2px;
    flex: 1;
    min-height: 32px;
    background: #9CDCB8;
}

.student-projects .step-text-col {
    flex: 1;
    padding-bottom: 24px;
}

.student-projects .step-title {
    font-size: 18px;
    line-height: 1.55;
    color: #1b3d37;
    margin-bottom: 8px;
}

.student-projects .step-body {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
}

.student-projects .process-image-col {
    width: 340px;
    flex-shrink: 0;
}

.student-projects .process-image-col img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
    display: block;
}

.student-projects .quote-band {
    background: #48A192;
    padding: 96px 48px;
    position: relative;
    overflow: hidden;
}

.student-projects .quote-band-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: center;
}

.student-projects .quote-mark {
    font-size: 72px;
    line-height: 1.1;
    color: rgba(233, 249, 236, 0.18);
    font-weight: 900;
    letter-spacing: -0.04em;
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: -16px;
    user-select: none;
    pointer-events: none;
}

.student-projects .quote-text-col {
    flex: 1;
}

.student-projects .quote-text {
    font-size: 23px;
    line-height: 1.55;
    color: #E9F9EC;
    margin-bottom: 24px;
}

.student-projects .quote-author {
    font-size: 15px;
    color: #9CDCB8;
    letter-spacing: 0.06em;
}

.student-projects .quote-image-col {
    width: 300px;
    flex-shrink: 0;
}

.student-projects .quote-image-col img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
    display: block;
}

.student-projects .quote-geo {
    position: absolute;
    right: -60px;
    bottom: -60px;
    width: 260px;
    height: 260px;
    border: 2px solid rgba(233, 249, 236, 0.08);
    border-radius: 2px;
    transform: rotate(18deg);
    pointer-events: none;
}

.student-projects .disclosure-area {
    max-width: 1320px;
    margin: 0 auto;
    padding: 96px 48px;
}

.student-projects .disclosure-label {
    font-size: 15px;
    color: #48A192;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.student-projects .disclosure-heading {
    font-size: 43px;
    line-height: 1.1;
    color: #1b3d37;
    letter-spacing: -0.01em;
    margin-bottom: 48px;
}

.student-projects .disclosure-heading-accent {
    background: linear-gradient(90deg, #48A192 0%, #48A192 40%, #9CDCB8 40%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.student-projects .disclosure-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.student-projects .disclosure-item {
    border: 1px solid #9CDCB8;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

.student-projects .disclosure-toggle {
    width: 100%;
    background: none;
    border: none;
    padding: 24px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    text-align: left;
    gap: 16px;
}

.student-projects .disclosure-toggle:focus-visible {
    outline: 3px solid #48A192 !important;
    outline-offset: -3px !important;
}

.student-projects .disclosure-question {
    font-size: 18px;
    line-height: 1.55;
    color: #1b3d37;
}

.student-projects .disclosure-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects .disclosure-icon svg {
    display: block;
}

.student-projects .disclosure-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects .disclosure-item.open .disclosure-body {
    max-height: 400px;
}

.student-projects .disclosure-item.open .disclosure-icon {
    transform: rotate(45deg);
}

.student-projects .disclosure-answer {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
    padding: 0 24px 24px 24px;
}

.student-projects .metrics-band {
    background: #1b3d37;
    padding: 96px 48px;
}

.student-projects .metrics-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: center;
}

.student-projects .metrics-text {
    flex: 1;
}

.student-projects .metrics-label {
    font-size: 15px;
    color: #9CDCB8;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.student-projects .metrics-heading {
    font-size: 43px;
    line-height: 1.1;
    color: #E9F9EC;
    letter-spacing: -0.01em;
    margin-bottom: 24px;
}

.student-projects .metrics-heading-accent {
    color: #9CDCB8;
}

.student-projects .metrics-body {
    font-size: 18px;
    line-height: 1.55;
    color: rgba(233, 249, 236, 0.8);
}

.student-projects .metrics-grid {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.student-projects .metric-box {
    background: rgba(72, 161, 146, 0.15);
    border-radius: 6px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
    transition: background 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.student-projects .metric-box:hover {
    background: rgba(72, 161, 146, 0.28);
}

.student-projects .metric-number {
    font-size: 43px;
    line-height: 1.1;
    color: #9CDCB8;
    letter-spacing: -0.02em;
}

.student-projects .metric-desc {
    font-size: 15px;
    line-height: 1.55;
    color: rgba(233, 249, 236, 0.75);
}

.student-projects .highlight-row {
    display: flex;
    flex-direction: row;
    gap: 0;
    max-width: 1320px;
    margin: 0 auto;
}

.student-projects .highlight-col {
    flex: 1;
    padding: 48px;
    transition: background 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    cursor: default;
}

.student-projects .highlight-col:hover,
.student-projects .highlight-row:hover .highlight-col:hover {
    background: #E9F9EC;
}

.student-projects .highlight-col-number {
    font-size: 43px;
    line-height: 1.1;
    color: #48A192;
    letter-spacing: -0.02em;
    margin-bottom: 8px;
}

.student-projects .highlight-col-label {
    font-size: 18px;
    line-height: 1.55;
    color: #1b3d37;
}

.student-projects .highlight-col-body {
    font-size: 15px;
    line-height: 1.55;
    color: #3a5a54;
    margin-top: 8px;
}

@keyframes grad-shift-a {
    0% {
        background-position: 0% 50%;
    }

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

@keyframes grad-shift-b {
    0% {
        background-position: 100% 50%;
    }

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

.student-projects .animated-bg-section {
    position: relative;
    padding: 96px 48px;
    background: linear-gradient(135deg, #E9F9EC 0%, #E9F9EC 40%, #9CDCB8 40%, #9CDCB8 70%, #48A192 70%, #48A192 100%);
    background-size: 300% 300%;
    animation: grad-shift-a 8s ease infinite alternate;
}

.student-projects .animated-bg-section-layer {
    position: absolute;
    inset: 0;
    background: linear-gradient(225deg, rgba(72, 161, 146, 0.09) 0%, rgba(156, 220, 184, 0.06) 50%, transparent 100%);
    background-size: 200% 200%;
    animation: grad-shift-b 11s ease infinite alternate;
    pointer-events: none;
}

@media (max-width: 1024px) {
    .student-projects .projects-split {
        flex-direction: column;
    }

    .student-projects .split-left {
        width: 100%;
        padding: 96px 48px;
    }

    .student-projects .split-right {
        width: 100%;
        min-height: 280px;
    }

    .student-projects .card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .student-projects .wide-card {
        grid-column: span 2;
        flex-direction: column;
    }

    .student-projects .wide-card .card-image-box {
        width: 100%;
        min-height: 200px;
        aspect-ratio: 16/9;
    }

    .student-projects .process-strip-inner {
        flex-direction: column;
    }

    .student-projects .process-image-col {
        width: 100%;
    }

    .student-projects .metrics-inner {
        flex-direction: column;
    }

    .student-projects .quote-band-inner {
        flex-direction: column;
    }

    .student-projects .quote-image-col {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .student-projects .split-left {
        padding: 48px 16px;
    }

    .student-projects .split-heading {
        font-size: 43px;
    }

    .student-projects .projects-grid-area {
        padding: 48px 16px;
    }

    .student-projects .card-grid {
        grid-template-columns: 1fr;
    }

    .student-projects .wide-card {
        grid-column: span 1;
    }

    .student-projects .process-strip-inner {
        padding: 0 16px;
        gap: 24px;
    }

    .student-projects .process-strip {
        padding: 48px 0;
    }

    .student-projects .quote-band {
        padding: 48px 16px;
    }

    .student-projects .quote-mark {
        font-size: 43px;
    }

    .student-projects .disclosure-area {
        padding: 48px 16px;
    }

    .student-projects .metrics-band {
        padding: 48px 16px;
    }

    .student-projects .metrics-grid {
        grid-template-columns: 1fr;
    }

    .student-projects .highlight-row {
        flex-direction: column;
    }

    .student-projects .animated-bg-section {
        padding: 48px 16px;
    }

    .student-projects .highlight-col {
        padding: 24px 16px;
    }

    .student-projects .grid-area-heading {
        font-size: 23px;
    }

    .student-projects .process-heading {
        font-size: 23px;
    }

    .student-projects .disclosure-heading {
        font-size: 23px;
    }

    .student-projects .metrics-heading {
        font-size: 23px;
    }
}

.contact-us-page {
    max-width: 1320px;
    margin: 0 auto;
    overflow: hidden;
}

.contact-us-page .geometric-band {
    position: relative;
    background: #fff;
    padding: 48px 96px;
    display: grid;
    grid-template-columns: 30% 70%;
    gap: 48px;
    align-items: center;
}

.contact-us-page .geometric-band::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 180px;
    height: 2px;
    background: #48A192;
}

.contact-us-page .geometric-band::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 2px;
    height: 80px;
    background: #48A192;
}

.contact-us-page .band-label {
    font-size: 15px;
    letter-spacing: 0.12em;
    color: #48A192;
    text-transform: uppercase;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.contact-us-page .band-label-dot {
    width: 8px;
    height: 8px;
    border-radius: 40px;
    background: #48A192;
    display: inline-block;
    animation: dot-breathe 2.4s ease infinite;
}

@keyframes dot-breathe {

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

    50% {
        opacity: 0.45;
        transform: scale(0.7);
    }
}

.contact-us-page .band-heading {
    font-size: 60px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0;
}

.contact-us-page .band-heading-first {
    color: #222;
}

.contact-us-page .band-heading-accent {
    background: linear-gradient(95deg, #48A192 40%, #48A192 40%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.contact-us-page .band-sub {
    font-size: 18px;
    line-height: 1.55;
    color: #444;
    margin-top: 24px;
    max-width: 520px;
}

.contact-us-page .band-left-accent {
    font-size: 15px;
    line-height: 2.0;
    color: #555;
}

.contact-us-page .band-left-accent strong {
    display: block;
    font-size: 18px;
    color: #222;
    letter-spacing: -0.01em;
}

.contact-us-page .blur-divider {
    height: 48px;
    background: linear-gradient(180deg, #fff 0%, #fff 30%, #E9F9EC 100%);
    filter: blur(8px);
    margin: 0;
}

.contact-us-page .form-arena {
    background: #E9F9EC;
    padding: 96px;
    display: grid;
    grid-template-columns: 30% 70%;
    gap: 48px;
    align-items: start;
}

.contact-us-page .form-sidebar {
    position: sticky;
    top: 48px;
}

.contact-us-page .sidebar-contact-item {
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(72, 161, 146, 0.18);
}

.contact-us-page .sidebar-contact-item:last-child {
    border-bottom: none;
}

.contact-us-page .sidebar-contact-label {
    font-size: 15px;
    color: #48A192;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.contact-us-page .sidebar-dot {
    width: 6px;
    height: 6px;
    border-radius: 40px;
    background: #9CDCB8;
    display: inline-block;
}

.contact-us-page .sidebar-contact-value {
    font-size: 18px;
    color: #222;
    line-height: 1.55;
    text-decoration: none;
    display: block;
    transition: color 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.contact-us-page .sidebar-contact-value:hover {
    color: #48A192;
}

.contact-us-page .form-card {
    background: #fff;
    border-radius: 6px;
    padding: 48px;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.contact-us-page .form-card-heading {
    font-size: 23px;
    line-height: 1.1;
    color: #222;
    margin-bottom: 8px;
    letter-spacing: -0.01em;
    background: linear-gradient(95deg, #222 30%, #222 30%, #48A192 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.contact-us-page .form-card-desc {
    font-size: 15px;
    color: #555;
    line-height: 1.55;
    margin-bottom: 24px;
}

.contact-us-page .field-group {
    margin-bottom: 24px;
}

.contact-us-page .field-label {
    display: block;
    font-size: 15px;
    color: #333;
    margin-bottom: 8px;
    letter-spacing: 0.03em;
}

.contact-us-page .field-input {
    width: 100%;
    padding: 16px;
    font-size: 18px;
    border: 1.5px solid rgba(72, 161, 146, 0.25);
    border-radius: 6px;
    background: #fff;
    color: #222;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

.contact-us-page .field-input:focus {
    border-color: #48A192;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
}

.contact-us-page .radio-group-label {
    display: block;
    font-size: 15px;
    color: #333;
    margin-bottom: 16px;
    letter-spacing: 0.03em;
}

.contact-us-page .radio-options {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}

.contact-us-page .radio-option {
    position: relative;
}

.contact-us-page .radio-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.contact-us-page .radio-option-label {
    display: block;
    padding: 8px 16px;
    border-radius: 2px;
    border: 1.5px solid rgba(72, 161, 146, 0.3);
    font-size: 15px;
    color: #444;
    cursor: pointer;
    transition: background 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94), border-color 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    user-select: none;
}

.contact-us-page .radio-option input[type="radio"]:checked+.radio-option-label {
    background: #48A192;
    color: #fff;
    border-color: #48A192;
}

.contact-us-page .radio-option-label:hover {
    border-color: #48A192;
    background: #E9F9EC;
}

.contact-us-page .radio-option input[type="radio"]:focus-visible+.radio-option-label {
    outline: 2px solid #48A192;
    outline-offset: 2px;
}

.contact-us-page .privacy-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
}

.contact-us-page .privacy-checkbox {
    width: 20px;
    height: 20px;
    min-width: 20px;
    accent-color: #48A192;
    margin-top: 2px;
    cursor: pointer;
}

.contact-us-page .privacy-text {
    font-size: 15px;
    color: #555;
    line-height: 1.55;
}

.contact-us-page .privacy-text a {
    color: #48A192;
    text-decoration: underline;
    transition: color 0.5s ease;
}

.contact-us-page .privacy-text a:hover {
    color: #222;
}

.contact-us-page .submit-button {
    position: relative;
    display: inline-block;
    padding: 16px 48px;
    background: #222;
    color: #fff;
    font-size: 18px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    letter-spacing: 0.03em;
    overflow: hidden;
    transition: background 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94), color 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.contact-us-page .submit-button::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 0%;
    background: #48A192;
    transition: width 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 0;
}

.contact-us-page .submit-button:active::after {
    width: 100%;
}

.contact-us-page .submit-button span {
    position: relative;
    z-index: 1;
}

.contact-us-page .submit-button:hover {
    background: #48A192;
}

.contact-us-page .submit-button:focus-visible {
    outline: 2px solid #48A192;
    outline-offset: 3px;
}

.contact-us-page .blur-divider-reverse {
    height: 48px;
    background: linear-gradient(180deg, #E9F9EC 0%, #E9F9EC 30%, #fff 100%);
    filter: blur(8px);
}

.contact-us-page .info-strip {
    background: #fff;
    padding: 96px;
    position: relative;
}

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

.contact-us-page .info-strip-visual {
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
}

.contact-us-page .info-strip-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    animation: blur-to-sharp 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@keyframes blur-to-sharp {
    from {
        filter: blur(12px);
        opacity: 0.4;
    }

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

.contact-us-page .info-strip-visual-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(72, 161, 146, 0.18) 0%, transparent 60%, rgba(34, 34, 34, 0.45) 100%);
    pointer-events: none;
}

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

.contact-us-page .info-strip-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #222;
    margin: 0;
}

.contact-us-page .info-strip-heading em {
    font-style: normal;
    background: linear-gradient(95deg, #48A192 0%, #48A192 50%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.contact-us-page .info-strip-body {
    font-size: 18px;
    line-height: 1.55;
    color: #444;
    margin: 0;
}

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

.contact-us-page .feature-list-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    font-size: 18px;
    color: #333;
    line-height: 1.55;
}

.contact-us-page .feature-dot-trail {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding-top: 6px;
}

.contact-us-page .feature-dot-circle {
    width: 10px;
    height: 10px;
    border-radius: 40px;
    background: #48A192;
    flex-shrink: 0;
}

.contact-us-page .feature-dot-line {
    width: 2px;
    height: 28px;
    background: rgba(72, 161, 146, 0.22);
}

.contact-us-page .feature-list-item:last-child .feature-dot-line {
    display: none;
}

.contact-us-page .frosted-note {
    background: rgba(156, 220, 184, 0.18);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 6px;
    padding: 24px;
    border: 1px solid rgba(72, 161, 146, 0.15);
}

.contact-us-page .frosted-note-text {
    font-size: 15px;
    color: #333;
    line-height: 1.55;
    margin: 0;
}

.contact-us-page .second-image-block {
    margin-top: 48px;
    display: grid;
    grid-template-columns: 70% 30%;
    gap: 48px;
    align-items: center;
}

.contact-us-page .second-image-wrap {
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 12px 60px 0 rgba(72, 161, 146, 0.13);
}

.contact-us-page .second-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.contact-us-page .second-image-caption {
    font-size: 23px;
    line-height: 1.55;
    color: #222;
}

.contact-us-page .second-image-caption strong {
    color: #48A192;
}

.contact-us-page .zigzag-divider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    margin: 0;
}

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

@media (max-width: 1024px) {
    .contact-us-page .geometric-band {
        padding: 48px;
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .contact-us-page .band-heading {
        font-size: 43px;
    }

    .contact-us-page .form-arena {
        padding: 48px;
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .contact-us-page .info-strip {
        padding: 48px;
    }

    .contact-us-page .info-strip-inner {
        grid-template-columns: 1fr;
    }

    .contact-us-page .second-image-block {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .contact-us-page .geometric-band {
        padding: 24px 16px;
    }

    .contact-us-page .band-heading {
        font-size: 43px;
    }

    .contact-us-page .form-arena {
        padding: 24px 16px;
    }

    .contact-us-page .form-card {
        padding: 24px 16px;
    }

    .contact-us-page .info-strip {
        padding: 24px 16px;
    }

    .contact-us-page .radio-options {
        flex-direction: column;
    }

    .contact-us-page .second-image-block {
        margin-top: 24px;
    }
}

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

.success-page .success-wrapper {
    max-width: 640px;
    width: 100%;
    text-align: center;
}

.success-page .icon-circle {
    width: 80px;
    height: 80px;
    border-radius: 40px;
    background: #E9F9EC;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 48px auto;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.success-page .icon-circle svg {
    width: 36px;
    height: 36px;
}

.success-page .success-heading {
    font-size: 43px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: 0 0 24px 0;
    color: #1b2e2b;
}

.success-page .success-heading span {
    background: linear-gradient(90deg, #48A192 40%, #48A192 40%, #9CDCB8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.success-page .success-message {
    font-size: 18px;
    line-height: 1.55;
    color: #3a4a47;
    margin: 0 0 48px 0;
}

.success-page .divider-line {
    width: 48px;
    height: 2px;
    background: linear-gradient(90deg, #48A192 0%, #9CDCB8 100%);
    border-radius: 2px;
    margin: 0 auto 48px auto;
}

.success-page .success-note {
    font-size: 15px;
    line-height: 1.55;
    color: #5a7570;
    margin: 0 0 48px 0;
    padding: 24px;
    background: #E9F9EC;
    border-radius: 6px;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
}

.success-page .back-button {
    display: inline-block;
    padding: 16px 48px;
    background: #1b2e2b;
    color: #fff;
    font-size: 15px;
    line-height: 1.55;
    letter-spacing: 0.04em;
    border-radius: 6px;
    text-decoration: none;
    transition: background-color 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.25s ease;
    box-shadow: 0 1px 6px 0 rgba(72, 161, 146, 0.08);
}

.success-page .back-button:hover {
    background: #48A192;
    box-shadow: 0 5px 28px 0 rgba(72, 161, 146, 0.09);
}

.success-page .back-button:focus {
    outline: 2px solid #48A192;
    outline-offset: 4px;
}

.success-page .back-button:active {
    background: #3a8a7c;
    box-shadow: inset 0 4px 10px 0 rgba(72, 161, 146, 0.13);
}

@media (max-width: 640px) {
    .success-page {
        padding: 48px 16px;
    }

    .success-page .success-heading {
        font-size: 43px;
    }

    .success-page .back-button {
        display: block;
        text-align: center;
    }
}

h1, h2, h3, h4, h5, h6 {word-break: break-word;}
