* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    overscroll-behavior: contain;
    overflow-x: hidden;
    font-family: 'EB Garamond', Georgia, serif;
}

:focus-visible {
    outline: 2px dashed #A2B733;
    outline-offset: 3px;
    animation: focus-spin 3s linear infinite;
}

@keyframes focus-spin {
    from {
        outline-offset: 3px;
    }

    to {
        outline-offset: 5px;
    }
}

::selection {
    background: #A2B733;
    color: #ffffff;
}

.page-header {
    position: relative;
    background: linear-gradient(135deg, #f7f9f0 0%, #eef4e3 60%, #e6f0e8 100%);
    border-bottom: 1px solid #C0DFC6;
    z-index: 100;
}

.header-box {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
}

.header-grid {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 0;
    align-items: center;
    min-height: 120px;
}

.brand-zone {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 32px 32px 32px 0;
}

.brand-divider {
    width: 1px;
    background: linear-gradient(to bottom, transparent, #B4D48E 30%, #A2B733 50%, #B4D48E 70%, transparent);
    align-self: stretch;
}

.navigation-zone {
    padding: 32px 0 32px 32px;
}

.logo-frame {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    border-top: 2px solid #A2B733;
    border-bottom: 2px solid #A2B733;
    border-left: none;
    border-right: none;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09), inset 0 0 0 3px rgba(180, 212, 142, 0.18);
    flex-shrink: 0;
}

.logo-image {
    width: 64px;
    height: 64px;
    object-fit: contain;
    display: block;
}

.brand-detail {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.brand-name {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #2a2a1e;
    margin: 0;
    padding: 0;
}

.brand-tagline {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.04em;
    color: #5a6030;
}

.primary-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.primary-menu-item {
    display: block;
}

.primary-menu-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: #2a2a1e;
    text-decoration: none;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid #C0DFC6;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    transition: background 0.18s ease-out, border-color 0.15s ease-out, color 0.15s ease-out, box-shadow 0.18s ease-out;
    white-space: nowrap;
}

.primary-menu-link:hover {
    background: #A2B733;
    border-color: #A2B733;
    color: #ffffff;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.primary-menu-link.active {
    background: #A2B733;
    border-color: #A2B733;
    color: #ffffff;
}

@media (max-width: 1024px) {
    .header-grid {
        grid-template-columns: 1fr 1px auto;
        min-height: 100px;
    }

    .brand-zone {
        padding: 24px 24px 24px 0;
    }

    .navigation-zone {
        padding: 24px 0 24px 24px;
    }

    .primary-menu-link {
        font-size: 13px;
        padding: 8px 12px;
    }
}

@media (max-width: 640px) {
    .header-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        min-height: auto;
    }

    .brand-divider {
        display: none;
    }

    .brand-zone {
        padding: 24px 0 16px 0;
        border-bottom: 1px solid #C0DFC6;
    }

    .navigation-zone {
        padding: 16px 0 24px 0;
    }

    .primary-menu {
        gap: 8px;
    }
}

.page-footer {
    background: linear-gradient(180deg, #eef4e3 0%, #e6f0e8 100%);
    border-top: 1px solid #B4D48E;
    padding: 64px 0 32px;
}

.footer-box {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 32px;
    margin-bottom: 64px;
}

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

.footer-logo-frame {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    border-top: 2px solid #A2B733;
    border-bottom: 2px solid #A2B733;
    border-left: none;
    border-right: none;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09), inset 0 0 0 3px rgba(180, 212, 142, 0.18);
    flex-shrink: 0;
}

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

.footer-brand-name {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #2a2a1e;
    margin: 0;
    padding: 0;
}

.footer-tagline {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.04em;
    color: #5a6030;
}

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

.footer-contact-item {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.75;
    color: #3a3a28;
}

.footer-contact-label {
    font-size: 13px;
    letter-spacing: 0.04em;
    color: #5a6030;
    display: block;
}

.footer-contact-link {
    color: #3a3a28;
    text-decoration: none;
    transition: color 0.15s ease-out;
}

.footer-contact-link:hover {
    color: #A2B733;
}

.footer-column-heading {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.03em;
    color: #2a2a1e;
    margin: 0 0 16px 0;
    padding: 0 0 8px 0;
    border-bottom: 1px solid #C0DFC6;
}

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

.footer-link-item {
    display: block;
}

.footer-link {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75;
    color: #3a3a28;
    text-decoration: none;
    transition: color 0.15s ease-out;
}

.footer-link:hover {
    color: #A2B733;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 32px;
    border-top: 1px solid #C0DFC6;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-copyright {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.03em;
    color: #5a6030;
}

.footer-legal-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.footer-legal-link {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.75;
    color: #5a6030;
    text-decoration: none;
    transition: color 0.12s ease-out;
}

.footer-legal-link:hover {
    color: #A2B733;
}

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

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

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }
}

.consent-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #ffffff;
    border-top: 2px solid #B4D48E;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    z-index: 8000;
    padding: 16px 32px;
    transform: translateY(100%);
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.6, 1);
}

.consent-bar.visible {
    transform: translateY(0);
}

.consent-bar-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.consent-text-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 200px;
}

.consent-description {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75;
    color: #2a2a1e;
}

.consent-headline {
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.75;
    color: #5a6030;
    letter-spacing: 0.03em;
}

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

.consent-accept {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.1;
    color: #ffffff;
    background: #A2B733;
    border: 1px solid #A2B733;
    border-radius: 28px;
    cursor: pointer;
    transition: background 0.18s ease-out, border-color 0.18s ease-out, box-shadow 0.18s ease-out;
}

.consent-accept:hover {
    background: #8fa02a;
    border-color: #8fa02a;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.consent-accept:focus-visible {
    outline: 2px dashed #A2B733;
    outline-offset: 3px;
}

.consent-decline {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.1;
    color: #3a3a28;
    background: transparent;
    border: 1px solid #C0DFC6;
    border-radius: 28px;
    cursor: pointer;
    transition: background 0.15s ease-out, border-color 0.15s ease-out;
}

.consent-decline:hover {
    background: #eef4e3;
    border-color: #B4D48E;
}

.consent-decline:focus-visible {
    outline: 2px dashed #A2B733;
    outline-offset: 3px;
}

@media (max-width: 640px) {
    .consent-bar {
        padding: 16px;
    }

    .consent-bar-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

.policy-l-data {
    max-width: 1320px;
    margin: 0 auto;
    padding: 64px 32px;
}

.policy-l-data p {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2e;
    margin-bottom: 16px;
    letter-spacing: 0.01em;
}

.policy-l-data ul,
.policy-l-data ol {
    margin: 16px 0 16px 32px;
    padding: 0;
}

.policy-l-data li {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2e;
    margin-bottom: 8px;
    letter-spacing: 0.01em;
}

.policy-l-data ul li {
    list-style-type: disc;
}

.policy-l-data ol li {
    list-style-type: decimal;
}

.policy-l-data ul ul,
.policy-l-data ol ol,
.policy-l-data ul ol,
.policy-l-data ol ul {
    margin-top: 8px;
    margin-bottom: 8px;
}

.policy-l-data em,
.policy-l-data i {
    font-style: italic;
    color: #2a2a2e;
}

.policy-l-data a {
    color: #6b8a1a;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color 0.18s ease-out, text-decoration-color 0.18s ease-out;
}

.policy-l-data a:hover {
    color: #A2B733;
    text-decoration-color: #A2B733;
}

.policy-l-data a:focus-visible {
    outline: 2px solid #A2B733;
    outline-offset: 2px;
    border-radius: 3px;
}

.policy-l-data table {
    width: 100%;
    border-collapse: collapse;
    margin: 32px 0;
    font-size: 15px;
    line-height: 1.75;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.policy-l-data thead {
    background-color: #A2B733;
}

.policy-l-data thead th {
    color: #ffffff;
    font-size: 13px;
    letter-spacing: 0.06em;
    padding: 16px;
    text-align: left;
    font-weight: 700;
    line-height: 1.1;
}

.policy-l-data tbody tr {
    border-bottom: 1px solid #e8f0d4;
    transition: background-color 0.15s ease-out;
}

.policy-l-data tbody tr:last-child {
    border-bottom: none;
}

.policy-l-data tbody tr:nth-child(even) {
    background-color: #f4f9ec;
}

.policy-l-data tbody tr:hover {
    background-color: #edf5d8;
}

.policy-l-data td {
    padding: 16px;
    color: #2a2a2e;
    font-size: 15px;
    line-height: 1.75;
    vertical-align: top;
}

.policy-l-data th {
    padding: 16px;
    vertical-align: top;
}

.policy-l-data hr {
    border: none;
    border-top: 1px solid #C0DFC6;
    margin: 32px 0;
    box-shadow: inset 0 1px 0 rgba(162, 183, 51, 0.06);
}

.policy-l-data div {
    margin-bottom: 16px;
}

@media (max-width: 1024px) {
    .policy-l-data {
        padding: 64px 32px;
    }
}

@media (max-width: 640px) {
    .policy-l-data {
        padding: 32px 16px;
    }

    .policy-l-data table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .policy-l-data ul,
    .policy-l-data ol {
        margin-left: 16px;
    }
}

.learning-program-detail {
    background: #ffffff;
    overflow-x: clip;
}

.learning-program-detail .page-grid {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
}

.learning-program-detail .slide-in {
    animation: slideFromLeft 0.22s cubic-bezier(0.4, 0, 0.6, 1) both;
}

.learning-program-detail .slide-in.delay-1 {
    animation-delay: 0.08s;
}

.learning-program-detail .slide-in.delay-2 {
    animation-delay: 0.16s;
}

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

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

.learning-program-detail .title-area {
    position: relative;
    padding: 64px 0 0;
}

.learning-program-detail .title-image-wrap {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    max-height: 520px;
}

.learning-program-detail .title-image-wrap img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    display: block;
    filter: brightness(0.72);
    transition: filter 0.18s ease-out;
}

.learning-program-detail .title-image-wrap:hover img {
    filter: brightness(1);
}

.learning-program-detail .title-gradient-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 75%;
    background: linear-gradient(to top, #A2B733 0%, transparent 100%);
    border-radius: 0 0 18px 18px;
    pointer-events: none;
}

.learning-program-detail .title-pattern {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: repeating-linear-gradient(45deg,
            rgba(162, 183, 51, 0.06) 0px,
            rgba(162, 183, 51, 0.06) 1px,
            transparent 1px,
            transparent 12px);
    pointer-events: none;
    border-radius: 18px;
}

.learning-program-detail .title-text-box {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 32px 64px 32px 64px;
}

.learning-program-detail .title-label {
    display: inline-block;
    background: #A2B733;
    color: #ffffff;
    font-size: 13px;
    letter-spacing: 0.08em;
    padding: 4px 16px;
    border-radius: 3px;
    margin-bottom: 16px;
    font-weight: 600;
}

.learning-program-detail .title-heading {
    font-size: 50px;
    line-height: 1.1;
    color: #ffffff;
    letter-spacing: -0.02em;
    margin: 0 0 16px;
    max-width: 820px;
}

.learning-program-detail .title-meta-row {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
}

.learning-program-detail .meta-chip {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
    font-size: 13px;
    padding: 4px 16px;
    border-radius: 28px;
    border: 1px solid rgba(255, 255, 255, 0.28);
}

.learning-program-detail .utility-bar {
    padding: 16px 0;
    border-bottom: 1px solid #C0DFC6;
    margin-bottom: 64px;
}

.learning-program-detail .utility-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.learning-program-detail .copy-button {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #A2B733;
    color: #4a5c00;
    font-size: 13px;
    padding: 8px 16px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.18s ease-out, color 0.14s ease-out;
    position: relative;
}

.learning-program-detail .copy-button:hover {
    background: #A2B733;
    color: #ffffff;
}

.learning-program-detail .copy-button:active {
    transform: scale(1.04);
    transition: transform 0.12s ease-out;
}

.learning-program-detail .copy-icon {
    width: 14px;
    height: 14px;
    display: inline-block;
    flex-shrink: 0;
}

.learning-program-detail .scroll-top-link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    color: #4a5c00;
    font-size: 13px;
    text-decoration: none;
    padding: 8px 16px;
    border-radius: 6px;
    border: 1px solid #C0DFC6;
    transition: border-color 0.16s ease-out, color 0.14s ease-out;
}

.learning-program-detail .scroll-top-link:hover {
    border-color: #A2B733;
    color: #A2B733;
}

.learning-program-detail .scroll-top-arrow {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.14s ease-out;
}

.learning-program-detail .scroll-top-link:hover .scroll-top-arrow {
    transform: rotate(-45deg) translateY(2px);
}

.learning-program-detail .two-col-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 64px;
    align-items: start;
    padding-bottom: 64px;
}

.learning-program-detail .description-column {
    min-width: 0;
}

.learning-program-detail .section-accent-line {
    width: 32px;
    height: 3px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 16px;
}

.learning-program-detail .description-heading {
    font-size: 28px;
    line-height: 1.1;
    color: #2a3300;
    letter-spacing: -0.01em;
    margin: 0 0 16px;
}

.learning-program-detail .description-body {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4500;
}

.learning-program-detail .description-body p {
    margin: 0 0 16px;
}

.learning-program-detail .description-body h2 {
    font-size: 28px;
    line-height: 1.1;
    color: #2a3300;
    margin: 32px 0 16px;
}

.learning-program-detail .description-body h3 {
    font-size: 15px;
    line-height: 1.75;
    color: #2a3300;
    font-weight: 700;
    margin: 16px 0 8px;
}

.learning-program-detail .description-body em {
    font-style: italic;
    font-size: 15px;
    color: #4a5c00;
}

.learning-program-detail .description-body mark {
    background: #B4D48E;
    color: #2a3300;
    padding: 0 4px;
    border-radius: 3px;
}

.learning-program-detail .description-body blockquote {
    border-top: 3px solid #A2B733;
    background: linear-gradient(to bottom, #C0DFC6 0%, transparent 100%);
    padding: 16px 32px;
    border-radius: 6px;
    margin: 32px 0;
    font-size: 15px;
    line-height: 1.75;
    color: #2a3300;
}

.learning-program-detail .description-body ul {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.learning-program-detail .description-body ul li {
    padding: 4px 0 4px 24px;
    position: relative;
    font-size: 15px;
    line-height: 1.75;
    color: #3a4500;
}

.learning-program-detail .description-body ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    width: 8px;
    height: 8px;
    border-radius: 3px;
    background: #A2B733;
}

.learning-program-detail .description-body dl {
    margin: 0 0 16px;
}

.learning-program-detail .description-body dt {
    font-weight: 700;
    font-size: 15px;
    color: #2a3300;
    margin-top: 8px;
}

.learning-program-detail .description-body dd {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4500;
    margin-left: 16px;
}

.learning-program-detail .description-body details {
    border: 1px solid #C0DFC6;
    border-radius: 6px;
    padding: 8px 16px;
    margin-bottom: 8px;
}

.learning-program-detail .description-body summary {
    font-size: 15px;
    color: #2a3300;
    cursor: pointer;
    font-weight: 600;
}

.learning-program-detail .description-body cite {
    font-size: 13px;
    color: #6a7a00;
    font-style: italic;
}

.learning-program-detail .sidebar-column {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.learning-program-detail .price-card {
    background: #2a3300;
    border-radius: 18px;
    padding: 32px;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.learning-program-detail .price-label {
    font-size: 13px;
    color: #B4D48E;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
    display: block;
}

.learning-program-detail .price-value {
    font-size: 50px;
    line-height: 1.1;
    color: #ffffff;
    letter-spacing: -0.02em;
    margin-bottom: 16px;
    display: block;
}

.learning-program-detail .seats-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin-bottom: 32px;
}

.learning-program-detail .seats-dot {
    width: 8px;
    height: 8px;
    border-radius: 28px;
    background: #A2B733;
    flex-shrink: 0;
    animation: seatPulse 1.8s ease-out infinite;
}

@keyframes seatPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}

.learning-program-detail .seats-text {
    font-size: 13px;
    color: #C0DFC6;
}

.learning-program-detail .enroll-button {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background: #A2B733;
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    padding: 16px 32px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.16s ease-out, box-shadow 0.18s ease-out;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.learning-program-detail .enroll-button:hover {
    background: #8fa020;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.learning-program-detail .enroll-button:active {
    transform: scale(1.03);
    transition: transform 0.12s ease-out;
}

.learning-program-detail .enroll-arrow {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-top: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
    transform: rotate(45deg);
    transition: transform 0.14s ease-out;
}

.learning-program-detail .enroll-button:hover .enroll-arrow {
    transform: rotate(45deg) translateX(3px);
}

.learning-program-detail .contact-nudge {
    background: linear-gradient(135deg, #B4D48E 0%, transparent 100%);
    border-radius: 10px;
    padding: 16px;
    font-size: 13px;
    color: #2a3300;
    line-height: 1.75;
}

.learning-program-detail .contact-nudge a {
    color: #4a5c00;
    font-weight: 600;
    text-decoration: none;
    background: linear-gradient(90deg, #A2B733, #B4D48E);
    background-size: 100% 2px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    padding-bottom: 2px;
    transition: color 0.14s ease-out;
}

.learning-program-detail .contact-nudge a:hover {
    color: #A2B733;
}

.learning-program-detail .program-section {
    background: linear-gradient(135deg, #C0DFC6 0%, transparent 80%);
    padding: 64px 0;
}

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

.learning-program-detail .program-heading {
    font-size: 28px;
    line-height: 1.1;
    color: #2a3300;
    letter-spacing: -0.01em;
    margin: 0 0 32px;
}

.learning-program-detail .program-body {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4500;
}

.learning-program-detail .program-body p {
    margin: 0 0 16px;
}

.learning-program-detail .program-body h2 {
    font-size: 28px;
    line-height: 1.1;
    color: #2a3300;
    margin: 32px 0 16px;
}

.learning-program-detail .program-body h3 {
    font-size: 15px;
    line-height: 1.75;
    color: #2a3300;
    font-weight: 700;
    margin: 16px 0 8px;
}

.learning-program-detail .program-body mark {
    background: #B4D48E;
    color: #2a3300;
    padding: 0 4px;
    border-radius: 3px;
}

.learning-program-detail .program-body abbr {
    text-decoration: underline dotted #A2B733;
    cursor: help;
}

.learning-program-detail .program-body ol {
    padding-left: 32px;
    margin: 0 0 16px;
}

.learning-program-detail .program-body ol li {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4500;
    padding: 4px 0;
}

.learning-program-detail .program-body dl {
    margin: 0 0 16px;
}

.learning-program-detail .program-body dt {
    font-weight: 700;
    font-size: 15px;
    color: #2a3300;
    margin-top: 8px;
}

.learning-program-detail .program-body dd {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4500;
    margin-left: 16px;
}

.learning-program-detail .program-body blockquote {
    border-top: 3px solid #A2B733;
    background: rgba(162, 183, 51, 0.08);
    padding: 16px 32px;
    border-radius: 6px;
    margin: 32px 0;
    font-size: 15px;
    line-height: 1.75;
    color: #2a3300;
}

.learning-program-detail .program-body figure {
    margin: 32px 0;
    border-radius: 10px;
    overflow: hidden;
}

.learning-program-detail .program-body figcaption {
    font-size: 13px;
    color: #6a7a00;
    padding: 8px 0;
}

.learning-program-detail .program-body details {
    border: 1px solid #C0DFC6;
    border-radius: 6px;
    padding: 8px 16px;
    margin-bottom: 8px;
    background: #ffffff;
}

.learning-program-detail .program-body summary {
    font-size: 15px;
    color: #2a3300;
    cursor: pointer;
    font-weight: 600;
}

.learning-program-detail .brand-anchor-section {
    background: #A2B733;
    padding: 64px 0;
}

.learning-program-detail .brand-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}

.learning-program-detail .brand-stat-number {
    font-size: 50px;
    line-height: 1.1;
    color: #ffffff;
    letter-spacing: -0.03em;
    font-weight: 900;
}

.learning-program-detail .brand-stat-label {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.75;
    max-width: 320px;
}

.learning-program-detail .brand-action-group {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}

.learning-program-detail .brand-cta {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    color: #2a3300;
    font-size: 15px;
    font-weight: 700;
    padding: 16px 32px;
    border-radius: 10px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background 0.16s ease-out, color 0.14s ease-out;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.learning-program-detail .brand-cta:hover {
    background: #2a3300;
    color: #ffffff;
}

.learning-program-detail .brand-cta:active {
    transform: scale(1.03);
    transition: transform 0.12s ease-out;
}

.learning-program-detail .brand-cta-arrow {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.14s ease-out;
}

.learning-program-detail .brand-cta:hover .brand-cta-arrow {
    transform: rotate(45deg) translateX(3px);
}

.learning-program-detail .brand-secondary-link {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    padding-bottom: 2px;
    transition: color 0.14s ease-out, border-color 0.14s ease-out;
}

.learning-program-detail .brand-secondary-link:hover {
    color: #ffffff;
    border-color: #ffffff;
}

@media (max-width: 1024px) {
    .learning-program-detail .two-col-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .learning-program-detail .title-text-box {
        padding: 32px 32px;
    }

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

@media (max-width: 640px) {
    .learning-program-detail .page-grid {
        padding: 0 16px;
    }

    .learning-program-detail .title-image-wrap img {
        height: 320px;
    }

    .learning-program-detail .title-image-wrap {
        max-height: 320px;
    }

    .learning-program-detail .title-text-box {
        padding: 16px;
    }

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

    .learning-program-detail .program-inner {
        padding: 0 16px;
    }

    .learning-program-detail .brand-inner {
        padding: 0 16px;
        flex-direction: column;
        align-items: flex-start;
    }

    .learning-program-detail .utility-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

.contact-us-page {
    background: #ffffff;
    overflow-x: clip;
}

.contact-us-page .geometric-divider {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 32px;
    overflow: hidden;
}

.contact-us-page .geometric-divider span {
    display: inline-block;
    width: 6px;
    height: 6px;
    background: #B4D48E;
    border-radius: 3px;
    flex-shrink: 0;
}

.contact-us-page .geometric-divider span:nth-child(3n) {
    background: #A2B733;
    transform: rotate(45deg);
    border-radius: 3px;
}

.contact-us-page .geometric-divider span:nth-child(5n) {
    background: #C0DFC6;
    width: 4px;
    height: 4px;
}

.contact-us-page .divider-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, #B4D48E, transparent);
}

.contact-us-page .opening-strip {
    padding: 64px 32px 32px;
    max-width: 1320px;
    margin: 0 auto;
    position: relative;
}

.contact-us-page .opening-strip::after {
    content: '';
    position: absolute;
    right: 0;
    top: 32px;
    bottom: 32px;
    width: 2px;
    background: linear-gradient(180deg, #A2B733, transparent);
    border-radius: 3px;
}

.contact-us-page .strip-accent-line {
    width: 40px;
    height: 2px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 16px;
}

.contact-us-page .strip-label {
    font-size: 13px;
    letter-spacing: 0.08em;
    color: #A2B733;
    text-transform: uppercase;
    line-height: 1.75;
    margin-bottom: 8px;
}

.contact-us-page .strip-heading {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #1e2a0e;
    margin: 0 0 16px;
    max-width: 680px;
}

.contact-us-page .strip-heading .punctuation-accent {
    color: #A2B733;
}

.contact-us-page .strip-subtext {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a1e;
    max-width: 520px;
}

.contact-us-page .strip-subtext em {
    font-style: italic;
    font-size: 15px;
    color: #2a3a10;
}

.contact-us-page .form-area {
    background: linear-gradient(180deg, #f6faf0 0%, #edf5e4 100%);
    padding: 64px 32px;
}

.contact-us-page .form-area-inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 64px;
    align-items: flex-start;
}

.contact-us-page .form-side {
    flex: 1 1 0;
    min-width: 0;
}

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

.contact-us-page .form-meta-accent {
    width: 32px;
    height: 2px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 8px;
}

.contact-us-page .form-meta-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a0e;
    margin: 0 0 8px;
}

.contact-us-page .form-meta-text {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a1e;
}

.contact-us-page .form-meta-quote {
    border-top: 2px solid #B4D48E;
    padding-top: 16px;
    font-size: 15px;
    line-height: 1.75;
    color: #2a3a10;
    font-style: italic;
}

.contact-us-page .form-meta-tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}

.contact-us-page .form-meta-tag {
    font-size: 13px;
    line-height: 1.75;
    letter-spacing: 0.04em;
    padding: 4px 16px;
    border-radius: 18px;
    background: #C0DFC6;
    color: #1e2a0e;
}

.contact-us-page .form-meta-tag.secondary {
    background: #B4D48E;
}

.contact-us-page .form-meta-tag.primary {
    background: #A2B733;
    color: #ffffff;
}

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

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

.contact-us-page .field-label {
    font-size: 13px;
    letter-spacing: 0.05em;
    color: #3a4a1e;
    line-height: 1.75;
}

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

.contact-us-page .field-input {
    font-size: 15px;
    line-height: 1.75;
    color: #1e2a0e;
    background: #ffffff;
    border: 1px solid #c8dba0;
    border-radius: 6px;
    padding: 8px 16px;
    outline: none;
    transition: border-color 0.18s ease-out, box-shadow 0.18s ease-out;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    width: 100%;
    box-sizing: border-box;
}

.contact-us-page .field-input::placeholder {
    font-style: italic;
    color: #8aab4a;
    font-size: 13px;
}

.contact-us-page .field-input:focus {
    border-color: #A2B733;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09), inset 0 1px 4px 0 rgba(162, 183, 51, 0.08);
}

.contact-us-page .field-select {
    font-size: 15px;
    line-height: 1.75;
    color: #1e2a0e;
    background: #ffffff;
    border: 1px solid #c8dba0;
    border-radius: 6px;
    padding: 8px 16px;
    outline: none;
    transition: border-color 0.15s ease-out;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    cursor: pointer;
}

.contact-us-page .field-select:focus {
    border-color: #A2B733;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.contact-us-page .field-textarea {
    font-size: 15px;
    line-height: 1.75;
    color: #1e2a0e;
    background: #ffffff;
    border: 1px solid #c8dba0;
    border-radius: 6px;
    padding: 8px 16px;
    outline: none;
    transition: border-color 0.18s ease-out, box-shadow 0.18s ease-out;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    width: 100%;
    box-sizing: border-box;
    resize: vertical;
    min-height: 96px;
}

.contact-us-page .field-textarea::placeholder {
    font-style: italic;
    color: #8aab4a;
    font-size: 13px;
}

.contact-us-page .field-textarea:focus {
    border-color: #A2B733;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09), inset 0 1px 4px 0 rgba(162, 183, 51, 0.08);
}

.contact-us-page .form-row {
    display: flex;
    flex-direction: row;
    gap: 16px;
}

.contact-us-page .form-row .field-group {
    flex: 1 1 0;
    min-width: 0;
}

.contact-us-page .checkbox-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 0;
}

.contact-us-page .privacy-checkbox {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: #A2B733;
    cursor: pointer;
    margin-top: 3px;
}

.contact-us-page .checkbox-label {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a1e;
}

.contact-us-page .checkbox-label a {
    color: #A2B733;
    text-decoration: none;
    background: linear-gradient(90deg, #A2B733, #B4D48E);
    background-size: 100% 1px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    transition: background-size 0.15s ease-out;
}

.contact-us-page .checkbox-label a:hover {
    background-size: 100% 2px;
}

.contact-us-page .submit-button {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #A2B733;
    color: #ffffff;
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: 0.02em;
    padding: 8px 32px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
    transition: background 0.18s ease-out, box-shadow 0.18s ease-out;
    align-self: flex-start;
}

.contact-us-page .submit-button:hover {
    background: #8fa020;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.contact-us-page .submit-button:focus {
    outline: 2px solid #A2B733;
    outline-offset: 3px;
}

.contact-us-page .submit-button:active {
    background: #7d8f1a;
}

.contact-us-page .submit-button .button-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.15s ease-out;
}

.contact-us-page .submit-button:hover .button-icon {
    transform: translateX(4px);
}

.contact-us-page .submit-button .button-icon svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #ffffff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-us-page .details-area {
    padding: 64px 32px 96px;
    max-width: 1320px;
    margin: 0 auto;
    position: relative;
}

.contact-us-page .details-area::after {
    content: '';
    position: absolute;
    right: 0;
    top: 64px;
    bottom: 64px;
    width: 2px;
    background: linear-gradient(180deg, transparent, #B4D48E, transparent);
    border-radius: 3px;
}

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

.contact-us-page .detail-card {
    background: #f6faf0;
    border-radius: 10px;
    padding: 32px;
    box-shadow: 2px 1px 5px 0 rgba(180, 212, 142, 0.06);
    transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.6, 1), transform 0.2s cubic-bezier(0.4, 0, 0.6, 1);
    position: relative;
    overflow: hidden;
}

.contact-us-page .detail-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #A2B733, transparent);
    border-radius: 10px 10px 0 0;
}

.contact-us-page .detail-card:hover {
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    transform: translateY(-2px);
}

.contact-us-page .detail-card-icon {
    width: 36px;
    height: 36px;
    background: #C0DFC6;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.contact-us-page .detail-card-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: #1e2a0e;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-us-page .detail-card-label {
    font-size: 13px;
    letter-spacing: 0.06em;
    color: #A2B733;
    text-transform: uppercase;
    line-height: 1.75;
    margin-bottom: 4px;
}

.contact-us-page .detail-card-value {
    font-size: 15px;
    line-height: 1.75;
    color: #1e2a0e;
}

.contact-us-page .detail-card-value a {
    color: #1e2a0e;
    text-decoration: none;
    background: linear-gradient(90deg, #A2B733, #B4D48E);
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    transition: background-size 0.18s ease-out;
}

.contact-us-page .detail-card-value a:hover {
    background-size: 100% 1px;
}

.contact-us-page .details-heading-block {
    margin-bottom: 32px;
}

.contact-us-page .details-accent-line {
    width: 32px;
    height: 2px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 8px;
}

.contact-us-page .details-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a0e;
    margin: 0 0 8px;
}

.contact-us-page .details-subtext {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a1e;
    max-width: 480px;
}

.contact-us-page .tier-area {
    background: linear-gradient(180deg, #edf5e4 0%, #deefd5 100%);
    padding: 64px 32px;
}

.contact-us-page .tier-area-inner {
    max-width: 1320px;
    margin: 0 auto;
}

.contact-us-page .tier-heading-block {
    margin-bottom: 32px;
}

.contact-us-page .tier-accent-line {
    width: 32px;
    height: 2px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 8px;
}

.contact-us-page .tier-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a0e;
    margin: 0 0 8px;
}

.contact-us-page .tier-subtext {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a1e;
    max-width: 520px;
}

.contact-us-page .tier-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 32px;
    align-items: start;
}

.contact-us-page .tier-featured {
    background: #ffffff;
    border-radius: 18px;
    padding: 32px;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    position: relative;
    overflow: hidden;
}

.contact-us-page .tier-featured::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 120px;
    height: 120px;
    background: linear-gradient(135deg, #B4D48E, transparent);
    border-radius: 18px 0 18px 0;
    pointer-events: none;
}

.contact-us-page .tier-featured-badge {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 0.04em;
    background: #A2B733;
    color: #ffffff;
    border-radius: 28px;
    padding: 4px 16px;
    margin-bottom: 16px;
}

.contact-us-page .tier-featured-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a0e;
    margin: 0 0 8px;
}

.contact-us-page .tier-featured-desc {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a1e;
    margin-bottom: 16px;
}

.contact-us-page .tier-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.contact-us-page .tier-feature-list li {
    font-size: 15px;
    line-height: 1.75;
    color: #1e2a0e;
    padding-left: 16px;
    position: relative;
}

.contact-us-page .tier-feature-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    width: 6px;
    height: 6px;
    background: #A2B733;
    border-radius: 3px;
}

.contact-us-page .tier-card {
    background: #ffffff;
    border-radius: 10px;
    padding: 32px;
    box-shadow: 2px 5px 14px 0 rgba(180, 212, 142, 0.09);
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.6, 1);
}

.contact-us-page .tier-card:hover {
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.contact-us-page .tier-card-name {
    font-size: 15px;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: #A2B733;
    text-transform: uppercase;
}

.contact-us-page .tier-card-title {
    font-size: 28px;
    line-height: 1.1;
    color: #1e2a0e;
    margin: 0;
}

.contact-us-page .tier-card-desc {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a1e;
}

.contact-us-page .tier-card-features {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contact-us-page .tier-card-features li {
    font-size: 13px;
    line-height: 1.75;
    color: #1e2a0e;
    padding-left: 12px;
    position: relative;
}

.contact-us-page .tier-card-features li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 5px;
    height: 5px;
    background: #B4D48E;
    border-radius: 3px;
}

.contact-us-page .select-wrapper {
    position: relative;
}

.contact-us-page .select-wrapper::after {
    content: '';
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #A2B733;
    pointer-events: none;
}

@media (max-width: 1024px) {
    .contact-us-page .form-area-inner {
        flex-direction: column;
        gap: 32px;
    }

    .contact-us-page .form-meta {
        flex: none;
        width: 100%;
    }

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

    .contact-us-page .tier-grid {
        grid-template-columns: 1fr 1fr;
    }

    .contact-us-page .tier-featured {
        grid-column: span 2;
    }

    .contact-us-page .strip-heading {
        font-size: 50px;
    }
}

@media (max-width: 640px) {
    .contact-us-page .opening-strip {
        padding: 32px 16px 16px;
    }

    .contact-us-page .strip-heading {
        font-size: 28px;
    }

    .contact-us-page .form-area {
        padding: 32px 16px;
    }

    .contact-us-page .form-row {
        flex-direction: column;
    }

    .contact-us-page .details-area {
        padding: 32px 16px 64px;
    }

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

    .contact-us-page .tier-area {
        padding: 32px 16px;
    }

    .contact-us-page .tier-grid {
        grid-template-columns: 1fr;
    }

    .contact-us-page .tier-featured {
        grid-column: span 1;
    }

    .contact-us-page .details-area::after {
        display: none;
    }

    .contact-us-page .opening-strip::after {
        display: none;
    }
}

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

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

.root .divider-accent {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 32px;
}

.root .divider-accent .line-plain {
    flex: 1;
    height: 1px;
    background: #d6e4b0;
}

.root .divider-accent .line-colored {
    width: 48px;
    height: 2px;
    background: #A2B733;
    border-radius: 3px;
}

.root .top-accent-line {
    width: 32px;
    height: 2px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 16px;
}

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

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

@keyframes rotate-slow {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

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

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

.root .title-band {
    background: #f4f8e8;
    padding: 64px 0 48px;
    position: relative;
}

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

.root .title-band .text-anchor {
    flex: 0 0 55%;
    position: relative;
    animation: clip-reveal 0.6s cubic-bezier(0.4, 0, 0.6, 1) both;
}

.root .title-band .quote-mark {
    position: absolute;
    top: -16px;
    left: -24px;
    font-size: 160px;
    line-height: 1.1;
    color: #B4D48E;
    opacity: 0.18;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    font-weight: 700;
}

.root .title-band .label-tag {
    display: inline-block;
    background: #C0DFC6;
    color: #2d4a1e;
    font-size: 13px;
    line-height: 1.75;
    letter-spacing: 0.06em;
    padding: 4px 16px;
    border-radius: 28px;
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
}

.root .title-band .main-heading {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #1e3208;
    margin: 0 0 16px;
    position: relative;
    z-index: 1;
}

.root .title-band .main-heading .line-medium {
    display: block;
    color: #3d5c12;
}

.root .title-band .main-heading .line-bold {
    display: block;
    color: #A2B733;
}

.root .title-band .sub-text {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a28;
    max-width: 420px;
    margin: 0 0 32px;
    position: relative;
    z-index: 1;
}

.root .title-band .band-actions {
    display: flex;
    flex-direction: row;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

.root .title-band .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #A2B733;
    color: #fff;
    font-size: 15px;
    line-height: 1.75;
    padding: 8px 32px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
    transition: background 0.18s ease-out, box-shadow 0.15s ease-out;
}

.root .title-band .btn-primary:hover {
    background: #8fa32a;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.root .title-band .btn-primary:hover .btn-icon {
    transform: translateX(4px);
}

.root .title-band .btn-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    transition: transform 0.15s ease-out;
}

.root .title-band .btn-icon svg {
    width: 16px;
    height: 16px;
    fill: #fff;
}

.root .title-band .btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: #3d5c12;
    font-size: 15px;
    line-height: 1.75;
    padding: 8px 24px;
    border-radius: 10px;
    border: 1px solid #A2B733;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s ease-out, color 0.2s ease-out;
}

.root .title-band .btn-secondary:hover {
    background: #f0f5d8;
}

.root .title-band .image-anchor {
    flex: 1;
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.root .title-band .image-anchor img {
    width: 100%;
    height: 340px;
    object-fit: cover;
    display: block;
    border-radius: 18px;
    transition: filter 0.22s ease-out;
    filter: saturate(0.7) brightness(0.95);
}

.root .title-band .image-anchor:hover img {
    filter: saturate(1) brightness(1);
}

.root .title-band .image-gradient {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(to top, #B4D48E, transparent);
    pointer-events: none;
    border-radius: 0 0 18px 18px;
}

.root .title-band .shape-deco {
    position: absolute;
    right: -32px;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;
    height: 80px;
    pointer-events: none;
    animation: rotate-slow 18s linear infinite;
    z-index: 0;
}

.root .team-panel {
    background: #fff;
    padding: 96px 0 64px;
}

.root .team-panel .panel-header {
    max-width: 560px;
    margin-bottom: 64px;
}

.root .team-panel .panel-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e3208;
    margin: 0 0 16px;
}

.root .team-panel .panel-desc {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a28;
    margin: 0;
}

.root .team-panel .members-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px;
}

.root .team-panel .member-card {
    background: #f4f8e8;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    transition: box-shadow 0.18s ease-out, transform 0.15s ease-out;
}

.root .team-panel .member-card:hover {
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    transform: translateY(-4px);
}

.root .team-panel .member-photo {
    position: relative;
    overflow: hidden;
}

.root .team-panel .member-photo img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    filter: saturate(0.75);
    transition: filter 0.2s ease-out;
}

.root .team-panel .member-card:hover .member-photo img {
    filter: saturate(1);
}

.root .team-panel .member-photo .photo-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #B4D48E, transparent 55%);
    pointer-events: none;
}

.root .team-panel .member-body {
    padding: 16px 16px 24px;
}

.root .team-panel .member-name {
    font-size: 15px;
    line-height: 1.1;
    color: #1e3208;
    margin: 0 0 4px;
    font-weight: 700;
}

.root .team-panel .member-role {
    display: inline-block;
    background: #B4D48E;
    color: #2d4a1e;
    font-size: 13px;
    line-height: 1.75;
    padding: 4px 8px;
    border-radius: 6px;
    margin-bottom: 8px;
}

.root .team-panel .member-bio {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a28;
    margin: 0;
}

.root .team-panel .quote-block {
    margin-top: 64px;
    background: linear-gradient(135deg, #B4D48E, #C0DFC6 80%, transparent);
    border-radius: 18px;
    padding: 32px 64px;
    position: relative;
}

.root .team-panel .quote-block .quote-text {
    font-size: 15px;
    line-height: 1.75;
    color: #1e3208;
    font-style: italic;
    margin: 0 0 8px;
}

.root .team-panel .quote-block .quote-author {
    font-size: 13px;
    line-height: 1.75;
    color: #3d5c12;
    margin: 0;
}

.root .reputation-strip {
    background: #f4f8e8;
    padding: 64px 0;
    position: relative;
}

.root .reputation-strip::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #f4f8e8;
    z-index: -1;
}

.root .reputation-strip .strip-layout {
    display: flex;
    flex-direction: row;
    gap: 64px;
    align-items: flex-start;
}

.root .reputation-strip .strip-text {
    flex: 0 0 42%;
}

.root .reputation-strip .strip-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e3208;
    margin: 0 0 16px;
}

.root .reputation-strip .strip-desc {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a28;
    margin: 0 0 32px;
}

.root .reputation-strip .metric-row {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.root .reputation-strip .metric-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
}

.root .reputation-strip .metric-number {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    font-weight: 700;
}

.root .reputation-strip .metric-number .num-integer {
    color: #1e3208;
}

.root .reputation-strip .metric-number .num-fraction {
    color: #A2B733;
}

.root .reputation-strip .metric-label {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a28;
}

.root .reputation-strip .usage-bar-wrap {
    margin-top: 32px;
}

.root .reputation-strip .usage-bar-label {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 8px;
}

.root .reputation-strip .usage-bar-label span {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a28;
}

.root .reputation-strip .usage-bar-track {
    height: 10px;
    background: #d6e4b0;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: inset 2px 1px 5px 0 rgba(162, 183, 51, 0.09);
}

.root .reputation-strip .usage-bar-fill {
    height: 100%;
    width: 78%;
    background: linear-gradient(90deg, #A2B733, #B4D48E);
    border-radius: 28px;
    animation: bar-grow 1.2s cubic-bezier(0.4, 0, 0.6, 1) both;
}

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

    to {
        width: 78%;
    }
}

.root .reputation-strip .strip-visual {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.root .reputation-strip .recognition-card {
    background: #fff;
    border-radius: 10px;
    padding: 16px 24px;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    transition: box-shadow 0.18s ease-out;
}

.root .reputation-strip .recognition-card:hover {
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.root .reputation-strip .rec-badge {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #C0DFC6;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.root .reputation-strip .rec-badge svg {
    width: 20px;
    height: 20px;
    fill: #2d4a1e;
}

.root .reputation-strip .rec-text .rec-title {
    font-size: 15px;
    line-height: 1.1;
    color: #1e3208;
    margin: 0 0 4px;
    font-weight: 700;
}

.root .reputation-strip .rec-text .rec-desc {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a28;
    margin: 0;
}

.root .hesitation-block {
    background: #fff;
    padding: 96px 0 64px;
}

.root .hesitation-block .block-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

.root .hesitation-block .block-image {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
}

.root .hesitation-block .block-image img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
    filter: saturate(0.7);
    transition: filter 0.22s ease-out;
    border-radius: 18px;
}

.root .hesitation-block .block-image:hover img {
    filter: saturate(1);
}

.root .hesitation-block .block-image .img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #C0DFC6, transparent 60%);
    pointer-events: none;
    border-radius: 18px;
}

.root .hesitation-block .block-image .shape-polygon {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 90px;
    height: 90px;
    pointer-events: none;
}

.root .hesitation-block .block-text {
    padding-top: 16px;
}

.root .hesitation-block .block-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e3208;
    margin: 0 0 16px;
}

.root .hesitation-block .concern-list {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.root .hesitation-block .concern-list li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a28;
}

.root .hesitation-block .concern-list li::before {
    content: "›";
    color: #A2B733;
    font-size: 28px;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}

.root .hesitation-block .honest-para {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a28;
    margin: 0 0 16px;
}

.root .hesitation-block .honest-para em {
    font-style: italic;
    font-size: 15px;
    color: #1e3208;
}

.root .hesitation-block .link-styled {
    display: inline-block;
    font-size: 15px;
    line-height: 1.75;
    color: #3d5c12;
    text-decoration: none;
    background-image: linear-gradient(90deg, #A2B733, #B4D48E);
    background-size: 100% 2px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    transition: color 0.15s ease-out;
}

.root .hesitation-block .link-styled:hover {
    color: #A2B733;
}

@media (max-width: 1024px) {
    .root .title-band .band-inner {
        gap: 32px;
    }

    .root .title-band .text-anchor {
        flex: 0 0 50%;
    }

    .root .team-panel .members-grid {
        grid-template-columns: 1fr 1fr;
    }

    .root .reputation-strip .strip-layout {
        flex-direction: column;
        gap: 32px;
    }

    .root .reputation-strip .strip-text {
        flex: none;
        width: 100%;
    }

    .root .hesitation-block .block-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

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

    .root .title-band {
        padding: 32px 0 32px;
    }

    .root .title-band .band-inner {
        flex-direction: column;
        gap: 32px;
    }

    .root .title-band .text-anchor {
        flex: none;
        width: 100%;
    }

    .root .title-band .main-heading {
        font-size: 28px;
    }

    .root .title-band .image-anchor img {
        height: 220px;
    }

    .root .team-panel {
        padding: 64px 0 32px;
    }

    .root .team-panel .members-grid {
        grid-template-columns: 1fr;
    }

    .root .team-panel .quote-block {
        padding: 32px 24px;
    }

    .root .reputation-strip {
        padding: 32px 0;
    }

    .root .hesitation-block {
        padding: 64px 0 32px;
    }

    .root .hesitation-block .block-image img {
        height: 240px;
    }
}

.learning-program {
    overflow-x: hidden;
}

.learning-program .reveal-child {
    opacity: 0;
    transform: translateY(24px);
    animation: revealUp 0.22s cubic-bezier(0.4, 0, 0.6, 1) forwards;
}

.learning-program .reveal-child:nth-child(1) {
    animation-delay: 0.08s;
}

.learning-program .reveal-child:nth-child(2) {
    animation-delay: 0.14s;
}

.learning-program .reveal-child:nth-child(3) {
    animation-delay: 0.20s;
}

.learning-program .reveal-child:nth-child(4) {
    animation-delay: 0.26s;
}

.learning-program .reveal-child:nth-child(5) {
    animation-delay: 0.32s;
}

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

.learning-program .page-top {
    display: flex;
    flex-direction: row;
    min-height: 420px;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 32px;
    gap: 0;
}

.learning-program .page-top-text {
    flex: 0 0 55%;
    background: #A2B733;
    padding: 64px 48px 64px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.learning-program .page-top-text::after {
    content: '';
    position: absolute;
    right: -32px;
    top: 0;
    width: 64px;
    height: 100%;
    background: #A2B733;
    clip-path: polygon(0 0, 0 100%, 100% 100%);
    z-index: 2;
}

.learning-program .top-accent-line {
    width: 40px;
    height: 3px;
    background: #fff;
    margin-bottom: 16px;
    border-radius: 3px;
}

.learning-program .page-top-text .page-heading {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #fff;
    margin: 0 0 16px 0;
}

.learning-program .page-top-text .page-sub {
    font-size: 15px;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.88);
    margin: 0;
    max-width: 400px;
}

.learning-program .page-top-image {
    flex: 1;
    background: #C0DFC6;
    position: relative;
    overflow: hidden;
    min-height: 360px;
}

.learning-program .page-top-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.18s cubic-bezier(0.4, 0, 0.6, 1);
}

.learning-program .page-top-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(162, 183, 51, 0.38) 0%, transparent 60%);
    z-index: 1;
    pointer-events: none;
    transition: opacity 0.18s ease-out;
}

.learning-program .page-top-image:hover::before {
    opacity: 0;
}

.learning-program .page-top-image:hover img {
    transform: scale(1.03);
}

.learning-program .page-top-image::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 60px 10px rgba(162, 183, 51, 0.18);
    z-index: 2;
    pointer-events: none;
    transition: box-shadow 0.18s ease-out;
}

.learning-program .page-top-image:hover::after {
    box-shadow: inset 0 0 80px 20px rgba(162, 183, 51, 0.28);
}

.learning-program .corner-triangle-top {
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 48px 48px 0;
    border-color: transparent #B4D48E transparent transparent;
    z-index: 3;
}

.learning-program .programs-listing {
    max-width: 1320px;
    margin: 0 auto;
    padding: 64px 32px;
}

.learning-program .listing-label {
    font-size: 13px;
    letter-spacing: 0.08em;
    color: #A2B733;
    text-transform: uppercase;
    margin-bottom: 8px;
    display: block;
}

.learning-program .listing-heading {
    font-size: 28px;
    line-height: 1.1;
    color: #222;
    margin: 0 0 32px 0;
    letter-spacing: -0.01em;
}

.learning-program .programs-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px;
}

.learning-program .program-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow 0.16s ease-out, transform 0.16s ease-out;
}

.learning-program .program-card:hover {
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    transform: translateY(-4px);
}

.learning-program .card-image-wrap {
    position: relative;
    overflow: hidden;
    height: 200px;
}

.learning-program .card-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.18s cubic-bezier(0.4, 0, 0.6, 1);
    filter: brightness(0.92);
}

.learning-program .card-image-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(162, 183, 51, 0.22) 100%);
    pointer-events: none;
    z-index: 1;
    transition: opacity 0.15s ease-out;
}

.learning-program .program-card:hover .card-image-wrap img {
    transform: scale(1.05);
    filter: brightness(1);
}

.learning-program .program-card:hover .card-image-wrap::after {
    opacity: 0;
}

.learning-program .card-seats {
    position: absolute;
    top: 12px;
    right: 12px;
    background: #A2B733;
    color: #fff;
    font-size: 13px;
    padding: 4px 8px;
    border-radius: 6px;
    z-index: 2;
    line-height: 1.1;
}

.learning-program .card-body {
    padding: 16px 16px 8px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.learning-program .card-title {
    font-size: 15px;
    line-height: 1.75;
    color: #1b2010;
    font-weight: 700;
    margin: 0 0 8px 0;
}

.learning-program .card-description {
    font-size: 13px;
    line-height: 1.75;
    color: #3a3a3a;
    margin: 0 0 16px 0;
    flex: 1;
}

.learning-program .card-footer {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px 16px 16px;
    gap: 8px;
}

.learning-program .card-price {
    font-size: 15px;
    color: #A2B733;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.learning-program .card-link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #A2B733;
    color: #fff;
    font-size: 13px;
    padding: 8px 16px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.15s ease-out, gap 0.15s ease-out;
}

.learning-program .card-link:hover {
    background: #8fa02a;
    gap: 12px;
}

.learning-program .card-link-icon {
    display: inline-block;
    width: 14px;
    height: 14px;
    position: relative;
}

.learning-program .card-link-icon::before {
    content: '';
    display: block;
    width: 10px;
    height: 2px;
    background: #fff;
    position: absolute;
    top: 6px;
    left: 0;
    border-radius: 3px;
}

.learning-program .card-link-icon::after {
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    position: absolute;
    top: 3px;
    right: 0;
    transform: rotate(45deg);
    border-radius: 1px;
}

.learning-program .card-featured {
    grid-column: span 2;
}

.learning-program .card-featured .card-image-wrap {
    height: 260px;
}

.learning-program .schedule-area {
    background: linear-gradient(160deg, #B4D48E 0%, #C0DFC6 100%);
    padding: 64px 0;
    clip-path: polygon(0 0, 100% 32px, 100% 100%, 0 calc(100% - 32px));
}

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

.learning-program .schedule-top-line {
    width: 40px;
    height: 3px;
    background: #A2B733;
    margin-bottom: 16px;
    border-radius: 3px;
}

.learning-program .schedule-heading {
    font-size: 28px;
    line-height: 1.1;
    color: #1b2010;
    margin: 0 0 8px 0;
    letter-spacing: -0.01em;
}

.learning-program .schedule-sub {
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a1a;
    margin: 0 0 32px 0;
}

.learning-program .schedule-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.learning-program .schedule-cell {
    background: #fff;
    border-radius: 10px;
    padding: 16px;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.learning-program .schedule-cell.wide {
    grid-column: span 2;
}

.learning-program .schedule-day {
    font-size: 13px;
    color: #A2B733;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.learning-program .schedule-event {
    font-size: 15px;
    line-height: 1.75;
    color: #1b2010;
    font-weight: 600;
}

.learning-program .schedule-time {
    font-size: 13px;
    color: #5a6a3a;
    line-height: 1.1;
}

.learning-program .schedule-cell.featured-cell {
    background: #A2B733;
}

.learning-program .schedule-cell.featured-cell .schedule-day {
    color: rgba(255, 255, 255, 0.75);
}

.learning-program .schedule-cell.featured-cell .schedule-event {
    color: #fff;
}

.learning-program .schedule-cell.featured-cell .schedule-time {
    color: rgba(255, 255, 255, 0.85);
}

.learning-program .approach-area {
    max-width: 1320px;
    margin: 0 auto;
    padding: 96px 32px 64px;
    display: grid;
    grid-template-columns: 1fr 2fr 2fr 1fr;
    gap: 32px;
    align-items: start;
}

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

.learning-program .approach-label {
    font-size: 13px;
    color: #A2B733;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.learning-program .approach-heading {
    font-size: 28px;
    line-height: 1.1;
    color: #1b2010;
    margin: 0;
    letter-spacing: -0.01em;
}

.learning-program .approach-top-line {
    width: 40px;
    height: 3px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 8px;
}

.learning-program .approach-text-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.learning-program .approach-paragraph {
    font-size: 15px;
    line-height: 1.75;
    color: #2a2a2a;
    margin: 0;
}

.learning-program .approach-paragraph em {
    font-style: italic;
    font-size: 15px;
    color: #A2B733;
}

.learning-program .approach-quote {
    border-top: 2px dashed #B4D48E;
    border-bottom: 2px dashed #B4D48E;
    padding: 16px 0;
    font-size: 15px;
    line-height: 1.75;
    color: #1b2010;
    font-weight: 600;
}

.learning-program .approach-mini-card {
    background: #1b2010;
    border-radius: 10px;
    padding: 32px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.learning-program .mini-card-icon {
    width: 44px;
    height: 44px;
    border: 2px solid #A2B733;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.learning-program .mini-card-icon-shape {
    width: 20px;
    height: 20px;
    position: relative;
}

.learning-program .mini-card-icon-shape::before {
    content: '';
    display: block;
    width: 20px;
    height: 3px;
    background: #A2B733;
    border-radius: 3px;
    position: absolute;
    top: 4px;
}

.learning-program .mini-card-icon-shape::after {
    content: '';
    display: block;
    width: 12px;
    height: 3px;
    background: #B4D48E;
    border-radius: 3px;
    position: absolute;
    top: 13px;
}

.learning-program .mini-card-heading {
    font-size: 15px;
    line-height: 1.75;
    color: #fff;
    font-weight: 700;
    margin: 0;
}

.learning-program .mini-card-text {
    font-size: 13px;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.72);
    margin: 0;
}

.learning-program .mini-card-tag {
    display: inline-block;
    background: #A2B733;
    color: #fff;
    font-size: 13px;
    padding: 4px 8px;
    border-radius: 3px;
    align-self: flex-start;
}

.learning-program .approach-empty-col {
    display: block;
}

.learning-program .faq-area {
    background: #f5f7ee;
    padding: 64px 0;
}

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

.learning-program .faq-top-line {
    width: 40px;
    height: 3px;
    background: #A2B733;
    border-radius: 3px;
    margin-bottom: 16px;
}

.learning-program .faq-heading {
    font-size: 28px;
    line-height: 1.1;
    color: #1b2010;
    margin: 0 0 32px 0;
    letter-spacing: -0.01em;
}

.learning-program .faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.learning-program .faq-item {
    background: #fff;
    border-radius: 10px;
    padding: 32px;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: start;
}

.learning-program .faq-question {
    font-size: 15px;
    line-height: 1.75;
    color: #1b2010;
    font-weight: 700;
    margin: 0;
}

.learning-program .faq-answer {
    font-size: 13px;
    line-height: 1.75;
    color: #3a3a3a;
    margin: 0;
}

.learning-program .faq-answer a {
    color: #A2B733;
    text-decoration: none;
    background-image: linear-gradient(90deg, #A2B733, #B4D48E);
    background-size: 100% 2px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    padding-bottom: 2px;
    transition: background-size 0.15s ease-out;
}

.learning-program .faq-answer a:hover {
    background-size: 0% 2px;
}

@media (max-width: 1024px) {
    .learning-program .programs-grid {
        grid-template-columns: 1fr 1fr;
    }

    .learning-program .card-featured {
        grid-column: span 2;
    }

    .learning-program .approach-area {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .learning-program .approach-empty-col {
        display: none;
    }

    .learning-program .schedule-grid {
        grid-template-columns: 1fr 1fr;
    }

    .learning-program .schedule-cell.wide {
        grid-column: span 2;
    }

    .learning-program .page-top {
        flex-direction: column;
    }

    .learning-program .page-top-text {
        flex: none;
    }

    .learning-program .page-top-text::after {
        display: none;
    }

    .learning-program .page-top-image {
        min-height: 280px;
    }

    .learning-program .faq-item {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

@media (max-width: 640px) {
    .learning-program .programs-grid {
        grid-template-columns: 1fr;
    }

    .learning-program .card-featured {
        grid-column: span 1;
    }

    .learning-program .approach-area {
        grid-template-columns: 1fr;
        padding: 64px 16px;
    }

    .learning-program .schedule-grid {
        grid-template-columns: 1fr;
    }

    .learning-program .schedule-cell.wide {
        grid-column: span 1;
    }

    .learning-program .programs-listing {
        padding: 32px 16px;
    }

    .learning-program .schedule-inner {
        padding: 0 16px;
    }

    .learning-program .faq-inner {
        padding: 0 16px;
    }

    .learning-program .page-top {
        padding: 0 16px;
    }

    .learning-program .page-top-text {
        padding: 32px 16px;
    }

    .learning-program .page-heading {
        font-size: 28px !important;
    }
}

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

.services-page .diagonal-reveal {
    animation: diag-reveal 0.18s cubic-bezier(0.4, 0, 0.6, 1) both;
}

@keyframes diag-reveal {
    from {
        opacity: 0;
        transform: translate(-12px, 12px);
    }

    to {
        opacity: 1;
        transform: translate(0, 0);
    }
}

.services-page .strip-layout {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    padding-top: 32px;
    padding-bottom: 96px;
    padding-left: 0;
    padding-right: 0;
    position: relative;
    border-top: 2px solid #A2B733;
    border-bottom: 1px solid #B4D48E;
}

.services-page .strip-image-column {
    width: 120px;
    min-width: 80px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 10px 0 0 10px;
    position: relative;
}

.services-page .strip-image-column img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.35) brightness(1.1);
    transition: filter 0.18s ease-out;
}

.services-page .strip-image-column:hover img {
    filter: saturate(1) brightness(1.0);
}

.services-page .strip-text {
    flex: 1;
    padding: 64px 64px 32px 64px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.services-page .strip-heading {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #1b1b1b;
    margin: 0 0 32px 0;
}

.services-page .wave-divider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    margin-top: -1px;
}

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

.services-page .zigzag-area {
    padding: 96px 0 64px 0;
    background: #fff;
}

.services-page .zigzag-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 64px;
    margin-bottom: 96px;
    padding: 0 64px;
    position: relative;
}

.services-page .zigzag-row.reversed {
    flex-direction: row-reverse;
}

.services-page .zigzag-row::before {
    content: '';
    position: absolute;
    top: 0;
    left: 64px;
    right: 64px;
    height: 1px;
    background: linear-gradient(90deg, #A2B733, transparent);
}

.services-page .zigzag-row.reversed::before {
    background: linear-gradient(270deg, #A2B733, transparent);
}

.services-page .zigzag-image-side {
    flex: 0 0 45%;
    border-radius: 18px;
    overflow: hidden;
    position: relative;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.services-page .zigzag-image-side img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
    filter: saturate(0.4) brightness(1.08);
    transition: filter 0.22s cubic-bezier(0.4, 0, 0.6, 1);
}

.services-page .zigzag-image-side:hover img {
    filter: saturate(1) brightness(1.0);
}

.services-page .zigzag-text-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.services-page .accent-line {
    width: 40px;
    height: 3px;
    background: linear-gradient(90deg, #A2B733, transparent);
    border-radius: 3px;
    margin-bottom: 8px;
}

.services-page .zigzag-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1b1b1b;
    margin: 0 0 8px 0;
}

.services-page .zigzag-body {
    font-size: 15px;
    line-height: 1.75;
    color: #2e2e2e;
    margin: 0 0 8px 0;
}

.services-page .marker-phrase {
    font-style: italic;
    font-size: 15px;
    line-height: 1.75;
    background: linear-gradient(180deg, transparent 55%, rgba(180, 212, 142, 0.55) 55%);
    display: inline;
}

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

.services-page .service-list li {
    font-size: 15px;
    line-height: 1.75;
    color: #2e2e2e;
    padding-left: 20px;
    position: relative;
}

.services-page .service-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 3px;
    background: #A2B733;
}

.services-page .complex-block {
    padding: 64px;
    background: linear-gradient(160deg, #f7faee 60%, #C0DFC6 100%);
    border-radius: 18px;
    margin: 0 64px 96px 64px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    border-top: 3px solid #A2B733;
    border-bottom: 2px solid #B4D48E;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.services-page .complex-rich {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.services-page .complex-minimal {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 32px;
    padding-left: 32px;
    border-left: none;
    position: relative;
}

.services-page .complex-minimal::after {
    content: '';
    position: absolute;
    left: 0;
    top: 16px;
    bottom: 16px;
    width: 2px;
    background: linear-gradient(180deg, #A2B733, transparent);
    border-radius: 3px;
}

.services-page .complex-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1b1b1b;
    margin: 0;
}

.services-page .complex-body {
    font-size: 15px;
    line-height: 1.75;
    color: #2e2e2e;
    margin: 0;
}

.services-page .quote-block {
    background: #fff;
    border-radius: 10px;
    padding: 16px;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    font-size: 15px;
    line-height: 1.75;
    color: #2e2e2e;
    font-style: italic;
}

.services-page .stat-pair {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.services-page .stat-number {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.04em;
    color: #A2B733;
}

.services-page .stat-label {
    font-size: 13px;
    line-height: 1.75;
    letter-spacing: 0.04em;
    color: #3a3a3a;
    text-transform: uppercase;
}

.services-page .tag-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.services-page .tag {
    font-size: 13px;
    line-height: 1.75;
    letter-spacing: 0.03em;
    padding: 4px 16px;
    border-radius: 28px;
    background: #C0DFC6;
    color: #1b1b1b;
}

.services-page .tag.accent {
    background: #A2B733;
    color: #fff;
}

.services-page .tag.soft {
    background: #B4D48E;
    color: #1b1b1b;
}

.services-page .btn-primary {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #A2B733;
    color: #fff;
    font-size: 15px;
    line-height: 1.75;
    padding: 16px 32px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
    transition: background 0.18s ease-out, box-shadow 0.18s ease-out;
    align-self: flex-start;
}

.services-page .btn-primary:hover {
    background: #8fa020;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.services-page .btn-primary:hover .btn-icon {
    transform: translateX(4px);
}

.services-page .btn-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    transition: transform 0.15s cubic-bezier(0.4, 0, 0.6, 1);
}

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

.services-page .divider-thick {
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, #A2B733 0%, #C0DFC6 60%, transparent 100%);
    border-radius: 3px;
    margin: 0;
}

.services-page .divider-thin {
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, #B4D48E, transparent);
    margin: 0;
}

.services-page .faq-area {
    padding: 96px 64px;
    background: linear-gradient(170deg, #fff 40%, #f5f9e8 100%);
}

.services-page .faq-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1b1b1b;
    margin: 0 0 32px 0;
}

.services-page .faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.services-page .faq-item {
    background: #fff;
    border-radius: 10px;
    padding: 32px;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06);
    border-top: 2px solid #A2B733;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.services-page .faq-question {
    font-size: 15px;
    line-height: 1.75;
    color: #1b1b1b;
    font-weight: 700;
    margin: 0;
}

.services-page .faq-answer {
    font-size: 15px;
    line-height: 1.75;
    color: #2e2e2e;
    margin: 0;
}

.services-page .faq-accent-line {
    width: 32px;
    height: 2px;
    background: linear-gradient(90deg, #B4D48E, transparent);
    border-radius: 3px;
}

@media (max-width: 1024px) {
    .services-page .strip-text {
        padding: 32px 32px 32px 32px;
    }

    .services-page .strip-heading {
        font-size: 28px;
    }

    .services-page .zigzag-row {
        padding: 0 32px;
        gap: 32px;
    }

    .services-page .zigzag-row.reversed {
        flex-direction: row;
    }

    .services-page .complex-block {
        margin: 0 32px 64px 32px;
        padding: 32px;
        gap: 32px;
    }

    .services-page .faq-area {
        padding: 64px 32px;
    }

    .services-page .faq-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .services-page .strip-layout {
        flex-direction: column;
        padding-bottom: 64px;
    }

    .services-page .strip-image-column {
        width: 100%;
        height: 160px;
        border-radius: 0;
    }

    .services-page .strip-text {
        padding: 32px 16px 32px 16px;
    }

    .services-page .strip-heading {
        font-size: 28px;
    }

    .services-page .zigzag-row,
    .services-page .zigzag-row.reversed {
        flex-direction: column;
        padding: 0 16px;
        gap: 16px;
        margin-bottom: 64px;
    }

    .services-page .zigzag-image-side {
        flex: 0 0 auto;
        width: 100%;
    }

    .services-page .zigzag-image-side img {
        height: 220px;
    }

    .services-page .complex-block {
        margin: 0 16px 64px 16px;
        padding: 16px;
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .services-page .complex-minimal {
        padding-left: 16px;
    }

    .services-page .faq-area {
        padding: 64px 16px;
    }

    .services-page .zigzag-area {
        padding: 64px 0 32px 0;
    }
}

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

.about-us-page .page-limiter {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px;
}

.about-us-page .drift-spot {
    position: absolute;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(162, 183, 51, 0.13) 0%, transparent 70%);
    animation: spot-drift 9s ease-out infinite alternate;
    pointer-events: none;
}

@keyframes spot-drift {
    0% {
        transform: translateX(0) translateY(0);
    }

    100% {
        transform: translateX(48px) translateY(24px);
    }
}

.about-us-page .title-band {
    position: relative;
    background: linear-gradient(158deg, #f4f7e8 0%, #e8f0d0 60%, #d4e8da 100%);
    padding-top: 96px;
    padding-bottom: 96px;
    overflow: hidden;
}

.about-us-page .title-band .drift-spot {
    top: -64px;
    right: 64px;
}

.about-us-page .stripe-bg {
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(-34deg,
            rgba(162, 183, 51, 0.045) 0px,
            rgba(162, 183, 51, 0.045) 1px,
            transparent 1px,
            transparent 28px);
    pointer-events: none;
}

.about-us-page .title-text-group {
    position: relative;
    z-index: 1;
    max-width: 720px;
}

.about-us-page .title-eyebrow {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 0.12em;
    color: #3d4a10;
    background: rgba(162, 183, 51, 0.18);
    border-radius: 3px;
    padding: 4px 16px;
    margin-bottom: 32px;
}

.about-us-page .title-heading {
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #1e2a04;
    margin-bottom: 32px;
}

.about-us-page .title-heading em {
    font-style: italic;
    color: #5a7010;
    font-size: 50px;
}

.about-us-page .title-sub {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a14;
    max-width: 540px;
}

.about-us-page .title-accent-line {
    width: 48px;
    height: 3px;
    background: linear-gradient(90deg, #A2B733, transparent);
    border-radius: 3px;
    margin-bottom: 32px;
}

.about-us-page .founding-strip {
    display: flex;
    flex-direction: row;
    gap: 32px;
    margin-top: 64px;
    flex-wrap: wrap;
}

.about-us-page .founding-fact {
    border-top: 2px solid #A2B733;
    border-bottom: 2px solid rgba(162, 183, 51, 0.28);
    padding-top: 16px;
    padding-bottom: 16px;
    padding-right: 32px;
}

.about-us-page .founding-fact .fact-number {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a04;
}

.about-us-page .founding-fact .fact-label {
    font-size: 13px;
    line-height: 1.75;
    color: #5a6a28;
    letter-spacing: 0.06em;
}

.about-us-page .story-band {
    background: #ffffff;
    padding-top: 96px;
    padding-bottom: 64px;
}

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

.about-us-page .story-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 16px;
}

.about-us-page .story-img-frame {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.about-us-page .story-img-frame.tall {
    grid-row: span 2;
}

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

.about-us-page .story-img-frame .img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(162, 183, 51, 0.28) 0%, transparent 60%);
    transition: opacity 0.15s ease-out;
    pointer-events: none;
}

.about-us-page .story-img-frame:hover .img-overlay {
    opacity: 0;
}

.about-us-page .story-img-frame:hover img {
    transform: scale(1.03);
}

.about-us-page .story-img-frame.tall {
    height: 420px;
}

.about-us-page .story-img-frame.short {
    height: 196px;
}

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

.about-us-page .story-text .accent-line {
    width: 40px;
    height: 3px;
    background: linear-gradient(90deg, #A2B733, transparent);
    border-radius: 3px;
}

.about-us-page .story-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a04;
}

.about-us-page .story-quote {
    font-size: 15px;
    line-height: 1.75;
    color: #2e3c0a;
    border-top: 2px solid rgba(162, 183, 51, 0.35);
    border-bottom: 2px solid rgba(162, 183, 51, 0.35);
    padding-top: 16px;
    padding-bottom: 16px;
    font-style: italic;
}

.about-us-page .story-body {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a14;
}

.about-us-page .story-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.about-us-page .story-list li {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a14;
    padding-left: 24px;
    position: relative;
}

.about-us-page .story-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 10px;
    height: 10px;
    border-radius: 3px;
    background: #A2B733;
}

.about-us-page .team-band {
    background: linear-gradient(170deg, #eef4d8 0%, #f6faf0 100%);
    padding-top: 96px;
    padding-bottom: 96px;
    position: relative;
    overflow: hidden;
}

.about-us-page .team-band .drift-spot {
    bottom: -80px;
    left: 32px;
    animation-duration: 12s;
}

.about-us-page .team-top {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 64px;
    flex-wrap: wrap;
}

.about-us-page .team-heading-group {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.about-us-page .team-accent-line {
    width: 40px;
    height: 3px;
    background: linear-gradient(90deg, #A2B733, transparent);
    border-radius: 3px;
}

.about-us-page .team-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: #1e2a04;
}

.about-us-page .team-description {
    font-size: 15px;
    line-height: 1.75;
    color: #3a4a14;
    max-width: 380px;
}

.about-us-page .schedule-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.about-us-page .schedule-card {
    background: #ffffff;
    border-radius: 10px;
    padding: 32px 16px;
    box-shadow: 2px 1px 5px 0 rgba(162, 183, 51, 0.06), 2px 12px 48px 0 rgba(180, 212, 142, 0.12);
    border-top: 2px solid #A2B733;
    border-bottom: 2px solid rgba(162, 183, 51, 0.18);
    position: relative;
    transition: box-shadow 0.18s ease-out, transform 0.15s ease-out;
}

.about-us-page .schedule-card::after {
    content: "";
    position: absolute;
    top: 8px;
    left: 8px;
    right: -8px;
    bottom: -8px;
    border-radius: 10px;
    border: 2px solid rgba(162, 183, 51, 0.22);
    z-index: 0;
    pointer-events: none;
}

.about-us-page .schedule-card:hover {
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09), 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    transform: translateY(-4px);
}

.about-us-page .schedule-card .card-inner {
    position: relative;
    z-index: 1;
}

.about-us-page .schedule-card .member-photo {
    width: 80px;
    height: 80px;
    border-radius: 18px;
    object-fit: cover;
    margin-bottom: 16px;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
}

.about-us-page .schedule-card .member-name {
    font-size: 15px;
    line-height: 1.1;
    color: #1e2a04;
    margin-bottom: 4px;
}

.about-us-page .schedule-card .member-role {
    font-size: 13px;
    line-height: 1.75;
    color: #5a7010;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
}

.about-us-page .schedule-card .member-tag {
    display: inline-block;
    font-size: 13px;
    background: rgba(180, 212, 142, 0.35);
    color: #3a4a14;
    border-radius: 6px;
    padding: 4px 8px;
}

.about-us-page .schedule-card .schedule-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(162, 183, 51, 0.2);
}

.about-us-page .schedule-card .schedule-item {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    line-height: 1.75;
    color: #3a4a14;
}

.about-us-page .schedule-card .schedule-day {
    color: #5a7010;
}

.about-us-page .link-gradient {
    display: inline;
    background: linear-gradient(90deg, #A2B733, #B4D48E);
    background-size: 100% 2px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    color: #3a4a14;
    text-decoration: none;
    transition: background-size 0.18s ease-out, color 0.15s ease-out;
}

.about-us-page .link-gradient:hover {
    color: #1e2a04;
    background-size: 100% 100%;
}

.about-us-page .highlight-expand {
    display: inline;
    background: linear-gradient(90deg, rgba(162, 183, 51, 0.22), rgba(162, 183, 51, 0.22));
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-position: 0 0;
    border-radius: 3px;
    padding: 0 4px;
    transition: background-size 0.22s cubic-bezier(0.4, 0, 0.6, 1);
}

.about-us-page .highlight-expand:hover {
    background-size: 100% 100%;
}

.about-us-page .curve-divider {
    width: 100%;
    overflow: hidden;
    line-height: 0;
    height: 32px;
}

.about-us-page .curve-divider svg {
    display: block;
    width: 100%;
}

@media (max-width: 1024px) {
    .about-us-page .story-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

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

    .about-us-page .title-heading,
    .about-us-page .title-heading em {
        font-size: 28px;
    }

    .about-us-page .story-images {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .about-us-page .story-img-frame.tall {
        height: 260px;
        flex: 1 1 200px;
    }

    .about-us-page .story-img-frame.short {
        height: 180px;
        flex: 1 1 140px;
    }
}

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

    .about-us-page .title-band {
        padding-top: 64px;
        padding-bottom: 64px;
    }

    .about-us-page .founding-strip {
        gap: 16px;
    }

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

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

    .about-us-page .story-band {
        padding-top: 64px;
        padding-bottom: 64px;
    }

    .about-us-page .team-band {
        padding-top: 64px;
        padding-bottom: 64px;
    }
}

.success-page {
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 96px 32px;
    background: linear-gradient(160deg, #f5f8ee 0%, #eaf4ec 100%);
}

.success-page .confirmation-wrapper {
    max-width: 640px;
    width: 100%;
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
    padding: 64px 64px;
    text-align: center;
}

.success-page .icon-circle {
    width: 72px;
    height: 72px;
    border-radius: 28px;
    background: linear-gradient(140deg, #B4D48E 0%, #C0DFC6 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 32px;
    box-shadow: 2px 5px 14px 0 rgba(180, 212, 142, 0.09), inset 0 2px 8px 0 rgba(162, 183, 51, 0.10);
}

.success-page .icon-circle .checkmark {
    width: 32px;
    height: 32px;
}

.success-page .icon-circle .checkmark-path {
    fill: none;
    stroke: #ffffff;
    stroke-width: 2.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.success-page .confirmation-heading {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #2a2a2a;
    margin: 0 0 16px;
}

.success-page .confirmation-heading .accent-line {
    display: block;
    width: 36px;
    height: 3px;
    background: linear-gradient(90deg, #A2B733 0%, transparent 100%);
    border-radius: 3px;
    margin: 0 auto 16px;
}

.success-page .confirmation-body {
    font-size: 15px;
    line-height: 1.75;
    color: #3d3d3d;
    margin: 0 0 32px;
}

.success-page .confirmation-body em {
    font-style: italic;
    font-size: 15px;
    color: #2a2a2a;
}

.success-page .info-strip {
    background: #f4f8e8;
    border-radius: 10px;
    padding: 16px 32px;
    margin: 0 0 32px;
    font-size: 13px;
    line-height: 1.75;
    color: #4a4a4a;
    letter-spacing: 0.01em;
}

.success-page .info-strip .email-label {
    font-size: 13px;
    color: #A2B733;
    display: block;
    margin-bottom: 4px;
    letter-spacing: 0.04em;
}

.success-page .return-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #A2B733;
    color: #ffffff;
    font-size: 15px;
    line-height: 1.1;
    padding: 16px 32px;
    border-radius: 10px;
    text-decoration: none;
    box-shadow: 2px 5px 14px 0 rgba(162, 183, 51, 0.09);
    transition: background 0.18s ease-out, box-shadow 0.14s ease-out;
    letter-spacing: 0.01em;
}

.success-page .return-link:hover {
    background: #8fa320;
    box-shadow: 2px 12px 48px 0 rgba(162, 183, 51, 0.12);
}

.success-page .return-link:focus {
    outline: 2px solid #A2B733;
    outline-offset: 3px;
}

.success-page .return-link .arrow-icon {
    width: 16px;
    height: 16px;
    transition: transform 0.16s cubic-bezier(0.4, 0, 0.6, 1);
    flex-shrink: 0;
}

.success-page .return-link:hover .arrow-icon {
    transform: translateX(4px);
}

.success-page .return-link .arrow-path {
    fill: none;
    stroke: #ffffff;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 640px) {
    .success-page {
        padding: 64px 16px;
    }

    .success-page .confirmation-wrapper {
        padding: 32px 16px;
    }
}