html {
    font-size: 100%
}

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

:focus {
    outline: none
}

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

.page_header {
    position: relative;
    background: #1D3C75;
    overflow: hidden
}

.page_header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #1D3C75 0%, #0f2147 60%, #1D3C75 100%);
    pointer-events: none
}

.page_header::after {
    content: '';
    position: absolute;
    top: -40px;
    right: -20px;
    width: 320px;
    height: 320px;
    background: #D61168;
    opacity: .07;
    border-radius: 20px;
    transform: rotate(28deg);
    pointer-events: none
}

.header_accent_bar {
    position: relative;
    z-index: 1;
    background: #D61168;
    height: 4px;
    width: 100%
}

.header_body {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: row-reverse;
    align-items: stretch;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
    gap: 40px
}

.header_brand_box {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    padding: 20px 0;
    flex-shrink: 0
}

.brand_logo_ring {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: #bcdadb1f;
    box-shadow: 0 0 0 2px #bcdadb59 2px 5px 25px -2px #1d3c7517
}

.brand_logo_ring img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    display: block
}

.brand_name_text {
    font-family: 'Exo 2', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #BCDADB;
    line-height: 1.1;
    margin-top: 8px;
    letter-spacing: 0;
    white-space: nowrap
}

.header_left_box {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 20px 0
}

.header_notice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #d6116826;
    border: 1px solid #d611684d;
    border-radius: 4px;
    padding: 4px 20px 4px 8px;
    align-self: flex-start
}

.header_notice_icon {
    color: #D61168;
    font-size: 16px;
    line-height: 1
}

.header_notice_text {
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #BCDADB;
    line-height: 1.4
}

.header_notice_text strong {
    color: #fff;
    font-weight: 600
}

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

.primary_menu li {
    display: flex
}

.primary_menu_link {
    font-family: 'Exo 2', sans-serif;
    font-size: 16px;
    font-weight: 500;
    color: #bcdadbd9;
    text-decoration: none;
    padding: 8px 20px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1), background .22s cubic-bezier(0.34, 1.56, 0.64, 1);
    min-height: 44px;
    box-sizing: border-box
}

.primary_menu_link:hover {
    color: #fff;
    background: #bcdadb1a
}

.primary_menu_link.active {
    color: #fff;
    background: #d6116833
}

.primary_menu_link .mdi {
    font-size: 18px;
    opacity: .8
}

@media (max-width: 1024px) {
    .header_body {
        padding: 0 20px;
        gap: 20px
    }

    .primary_menu_link {
        padding: 8px 12px;
        font-size: 16px
    }
}

@media (max-width: 768px) {
    .header_body {
        flex-direction: column-reverse;
        align-items: stretch;
        padding: 0 20px;
        gap: 0
    }

    .header_brand_box {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        padding: 20px 0 8px;
        border-top: 1px solid #bcdadb1f
    }

    .brand_name_text {
        margin-top: 0
    }

    .header_left_box {
        padding: 20px 0 8px;
        gap: 8px
    }

    .primary_menu {
        gap: 4px
    }

    .primary_menu_link {
        padding: 8px;
        font-size: 16px
    }
}

@media (max-width: 640px) {
    .header_notice {
        padding: 4px 8px
    }

    .header_notice_text {
        font-size: 16px
    }

    .primary_menu_link {
        font-size: 16px;
        padding: 8px
    }
}

.page_footer {
    background: #1D3C75;
    position: relative
}

.page_footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #D61168 0%, #BCDADB 50%, #D61168 100%)
}

.footer_body {
    max-width: 1280px;
    margin: 0 auto;
    padding: 20px 40px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px
}

.footer_brand_group {
    display: flex;
    align-items: center;
    gap: 8px
}

.footer_logo_ring {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: #bcdadb1a;
    box-shadow: 0 0 0 1px #bcdadb40 2px 2px 3px -2px #1d3c7514;
    flex-shrink: 0
}

.footer_logo_ring img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    display: block
}

.footer_brand_label {
    font-family: 'Exo 2', sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: #BCDADB;
    line-height: 1.1
}

.footer_middle_group {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap
}

.footer_nav_link {
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #bcdadbbf;
    text-decoration: none;
    transition: color .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    min-height: 44px;
    display: flex;
    align-items: center
}

.footer_nav_link:hover {
    color: #fff
}

.footer_contact_link {
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    color: #bcdadbb3;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: color .28s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    min-height: 44px
}

.footer_contact_link:hover {
    color: #fff
}

.footer_contact_link .mdi {
    font-size: 16px;
    color: #D61168
}

.footer_right_group {
    display: flex;
    align-items: center;
    gap: 8px
}

.footer_copy {
    font-family: 'Roboto', sans-serif;
    font-size: 16px;
    color: #bcdadb80;
    line-height: 1.4;
    white-space: nowrap
}

.footer_divider_dot {
    width: 3px;
    height: 3px;
    border-radius: 2px;
    background: #bcdadb4d;
    display: inline-block;
    flex-shrink: 0
}

@media (max-width: 768px) {
    .footer_body {
        padding: 20px;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px
    }

    .footer_middle_group {
        gap: 8px
    }
}

@media (max-width: 640px) {
    .footer_right_group {
        flex-wrap: wrap
    }
}

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

.legal-block h1 {
    font-size: 52px;
    line-height: 1.1;
    color: #1D3C75;
    margin-bottom: 40px;
    margin-top: 0
}

.legal-block h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin-top: 80px;
    margin-bottom: 20px
}

.legal-block h3 {
    font-size: 27px;
    line-height: 1.4;
    color: #D61168;
    margin-top: 40px;
    margin-bottom: 20px
}

.legal-block h4 {
    font-size: 18px;
    line-height: 1.4;
    color: #1D3C75;
    margin-top: 40px;
    margin-bottom: 8px
}

.legal-block h5 {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    margin-top: 20px;
    margin-bottom: 8px
}

.legal-block h6 {
    font-size: 16px;
    line-height: 1.6;
    color: #D61168;
    margin-top: 20px;
    margin-bottom: 8px
}

.legal-block p {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a3a;
    margin-top: 0;
    margin-bottom: 20px
}

.legal-block ul {
    margin-top: 0;
    margin-bottom: 20px;
    padding-left: 40px;
    list-style: none
}

.legal-block ol {
    margin-top: 0;
    margin-bottom: 20px;
    padding-left: 40px;
    list-style: none;
    counter-reset: policy-counter
}

.legal-block ul li {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a3a;
    margin-bottom: 8px;
    padding-left: 20px;
    position: relative
}

.legal-block ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: #D61168
}

.legal-block ol li {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a3a;
    margin-bottom: 8px;
    padding-left: 20px;
    position: relative;
    counter-increment: policy-counter
}

.legal-block ol li::before {
    content: counter(policy-counter) ".";
    position: absolute;
    left: 0;
    top: 0;
    font-size: 16px;
    font-weight: 700;
    color: #D61168;
    line-height: 1.6;
    transform: translateX(-100%)
}

.legal-block ul ul,
.legal-block ol ol,
.legal-block ul ol,
.legal-block ol ul {
    margin-top: 8px;
    margin-bottom: 8px
}

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

.legal-block table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 1.6;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.legal-block thead {
    background-color: #1D3C75
}

.legal-block thead th {
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    padding: 20px;
    text-align: left
}

.legal-block tbody tr {
    border-bottom: 2px solid #BCDADB;
    transition: background-color .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

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

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

.legal-block tbody tr:hover {
    background-color: #e4f2f2
}

.legal-block td {
    color: #1a2a3a;
    font-size: 16px;
    line-height: 1.6;
    padding: 20px;
    vertical-align: top
}

.legal-block th {
    padding: 20px;
    vertical-align: middle
}

@media (max-width: 1024px) {
    .legal-block {
        padding: 80px 40px
    }

    .legal-block h1 {
        font-size: 37px
    }

    .legal-block h2 {
        font-size: 27px
    }
}

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

    .legal-block h1 {
        font-size: 37px
    }

    .legal-block h2 {
        font-size: 27px;
        margin-top: 40px
    }

    .legal-block h3 {
        font-size: 18px
    }

    .legal-block p,
    .legal-block ul li,
    .legal-block ol li {
        font-size: 16px
    }

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

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

    .legal-block h1 {
        font-size: 27px
    }

    .legal-block h2 {
        font-size: 18px
    }

    .legal-block h3 {
        font-size: 16px
    }

    .legal-block ul {
        padding-left: 20px
    }

    .legal-block ol {
        padding-left: 20px
    }
}

.upcoming-programs_detail {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px
}

.upcoming-programs_detail .split_hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 520px;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 80px;
    box-shadow: 2px 10px 44px -2px #1d3c751a
}

.upcoming-programs_detail .hero_text_zone {
    background-color: #1D3C75;
    padding: 80px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative
}

.upcoming-programs_detail .dot_grid {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle, #bcdadb40 1px, transparent 1px);
    background-size: 20px 20px;
    pointer-events: none
}

.upcoming-programs_detail .deco_strokes {
    position: absolute;
    bottom: 40px;
    right: 40px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    pointer-events: none
}

.upcoming-programs_detail .deco_strokes span {
    display: block;
    height: 2px;
    background: #bcdadb66;
    border-radius: 2px
}

.upcoming-programs_detail .deco_strokes span:nth-child(1) {
    width: 32px
}

.upcoming-programs_detail .deco_strokes span:nth-child(2) {
    width: 24px
}

.upcoming-programs_detail .deco_strokes span:nth-child(3) {
    width: 40px
}

.upcoming-programs_detail .deco_strokes span:nth-child(4) {
    width: 20px
}

.upcoming-programs_detail .deco_strokes span:nth-child(5) {
    width: 36px
}

.upcoming-programs_detail .hero_label {
    font-size: 16px;
    color: #BCDADB;
    line-height: 1.4;
    margin-bottom: 20px;
    letter-spacing: .04em;
    text-transform: uppercase
}

.upcoming-programs_detail .hero_title {
    font-size: 52px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px
}

.upcoming-programs_detail .hero_meta_row {
    display: flex;
    flex-direction: row;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 40px
}

.upcoming-programs_detail .meta_chip {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #bcdadb1f;
    border: 1px solid #bcdadb4d;
    border-radius: 6px;
    padding: 8px 20px;
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4
}

.upcoming-programs_detail .meta_chip .mdi {
    font-size: 18px;
    color: #BCDADB
}

.upcoming-programs_detail .hero_image_zone {
    position: relative;
    overflow: hidden
}

.upcoming-programs_detail .hero_image_zone img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(60%);
    transition: filter .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming-programs_detail .hero_image_zone:hover img {
    filter: grayscale(20%)
}

.upcoming-programs_detail .hero_image_zone::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(323deg, #d6116861 15%, #1d3c752e 72%);
    pointer-events: none
}

.upcoming-programs_detail .hero_price_badge {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background: #D61168;
    color: #fff;
    border-radius: 6px;
    padding: 8px 20px;
    z-index: 2;
    box-shadow: 2px 5px 25px -2px #d6116817
}

.upcoming-programs_detail .price_value {
    font-size: 37px;
    line-height: 1.1;
    font-weight: 700
}

.upcoming-programs_detail .price_note_text {
    font-size: 16px;
    line-height: 1.4;
    color: #fffc
}

.upcoming-programs_detail .body_grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 40px;
    margin-bottom: 80px;
    align-items: start
}

.upcoming-programs_detail .description_column {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.upcoming-programs_detail .strip_heading {
    display: inline-block;
    background: #BCDADB;
    color: #1D3C75;
    font-size: 27px;
    line-height: 1.1;
    padding: 4px 20px;
    border-radius: 4px;
    margin-bottom: 8px
}

.upcoming-programs_detail .description_body {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a3a;
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 20px;
    align-items: start
}

.upcoming-programs_detail .description_body p {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a;
    margin: 0 0 20px
}

.upcoming-programs_detail .description_body h2 {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 20px 0 8px
}

.upcoming-programs_detail .description_body ul,
.upcoming-programs_detail .description_body ol {
    padding-left: 20px;
    margin: 0 0 20px
}

.upcoming-programs_detail .description_body li {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a;
    margin-bottom: 8px
}

.upcoming-programs_detail .description_body dl {
    margin: 0 0 20px
}

.upcoming-programs_detail .description_body dt {
    font-size: 16px;
    font-weight: 700;
    color: #1D3C75;
    margin-top: 8px
}

.upcoming-programs_detail .description_body dd {
    font-size: 16px;
    line-height: 1.6;
    color: #2b3a4a;
    margin-left: 20px
}

.upcoming-programs_detail .description_body details {
    border: 1px solid #BCDADB;
    border-radius: 6px;
    padding: 8px 20px;
    margin-bottom: 8px
}

.upcoming-programs_detail .description_body summary {
    font-size: 16px;
    font-weight: 600;
    color: #1D3C75;
    cursor: pointer
}

.upcoming-programs_detail .description_body cite {
    font-style: italic;
    color: #D61168;
    font-size: 16px
}

.upcoming-programs_detail .description_body small {
    font-size: 16px;
    color: #4a5568
}

.upcoming-programs_detail .description_main_text {
    min-width: 0
}

.upcoming-programs_detail .description_aside {
    background: #f4f8f8;
    border-left: 3px solid #BCDADB;
    border-radius: 4px 6px 6px 4px;
    padding: 20px;
    font-size: 16px;
    line-height: 1.6;
    color: #2b3a4a;
    align-self: start;
    position: sticky;
    top: 20px
}

.upcoming-programs_detail .description_aside strong {
    display: block;
    color: #1D3C75;
    font-size: 16px;
    margin-bottom: 8px
}

.upcoming-programs_detail .sidebar_column {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.upcoming-programs_detail .enroll_card {
    background: #1D3C75;
    border-radius: 12px;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.upcoming-programs_detail .enroll_card_heading {
    font-size: 27px;
    line-height: 1.1;
    color: #BCDADB;
    margin: 0
}

.upcoming-programs_detail .enroll_price_display {
    font-size: 52px;
    line-height: 1.1;
    color: #fff;
    font-weight: 700
}

.upcoming-programs_detail .enroll_price_display sup {
    font-size: 27px;
    color: #D61168;
    vertical-align: super
}

.upcoming-programs_detail .enroll_note {
    font-size: 16px;
    line-height: 1.4;
    color: #bcdadbcc
}

.upcoming-programs_detail .enroll_button {
    display: block;
    background: #D61168;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 18px;
    line-height: 1.4;
    padding: 20px 40px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: padding .25s cubic-bezier(0.34, 1.56, 0.64, 1), background .22s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    box-shadow: 2px 5px 25px -2px #d6116817
}

.upcoming-programs_detail .enroll_button:hover {
    background: #b80e57;
    padding-left: 48px;
    padding-right: 48px
}

.upcoming-programs_detail .enroll_button:focus {
    outline: 3px solid #BCDADB;
    outline-offset: 2px
}

.upcoming-programs_detail .enroll_button:active {
    box-shadow: inset 0 2px 4px #1d3c752e
}

.upcoming-programs_detail .tier_card_set {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.upcoming-programs_detail .tier_card {
    background: #bcdadb1a;
    border: 1px solid #bcdadb4d;
    border-radius: 6px;
    padding: 8px 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), border-color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming-programs_detail .tier_card:hover {
    background: #bcdadb33;
    border-color: #BCDADB
}

.upcoming-programs_detail .tier_card .mdi {
    color: #BCDADB;
    font-size: 18px;
    flex-shrink: 0
}

.upcoming-programs_detail .tier_card_text {
    font-size: 16px;
    line-height: 1.4;
    color: #ffffffd9
}

.upcoming-programs_detail .contact_link {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4;
    text-decoration: none;
    border-radius: 4px;
    padding: 4px 0;
    transition: color .2s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming-programs_detail .contact_link:hover {
    color: #fff
}

.upcoming-programs_detail .program_stages_block {
    background: linear-gradient(323deg, #BCDADB 8%, #f0f7f7 72%);
    border-radius: 12px;
    padding: 80px 40px;
    margin-bottom: 80px
}

.upcoming-programs_detail .stages_header {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
    margin-bottom: 40px
}

.upcoming-programs_detail .stages_number_accent {
    font-size: 68px;
    line-height: 1.1;
    color: #D61168;
    font-weight: 700;
    flex-shrink: 0
}

.upcoming-programs_detail .stages_number_accent sup {
    font-size: 27px;
    color: #1D3C75;
    vertical-align: super
}

.upcoming-programs_detail .stages_title_group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 8px
}

.upcoming-programs_detail .stages_strip_heading {
    display: inline-block;
    background: #1D3C75;
    color: #fff;
    font-size: 27px;
    line-height: 1.1;
    padding: 4px 20px;
    border-radius: 4px
}

.upcoming-programs_detail .stages_subtitle {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a
}

.upcoming-programs_detail .program_body {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a
}

.upcoming-programs_detail .program_body p {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a;
    margin: 0 0 20px
}

.upcoming-programs_detail .program_body h2 {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 20px 0 8px;
    display: inline-block;
    background: #bcdadb66;
    padding: 2px 12px;
    border-radius: 4px
}

.upcoming-programs_detail .program_body small {
    font-size: 16px;
    color: #4a5568
}

.upcoming-programs_detail .program_body strong {
    color: #1D3C75
}

.upcoming-programs_detail .program_body ul,
.upcoming-programs_detail .program_body ol {
    padding-left: 20px;
    margin: 0 0 20px
}

.upcoming-programs_detail .program_body li {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a;
    margin-bottom: 8px
}

.upcoming-programs_detail .program_body figure {
    margin: 20px 0;
    border-radius: 6px;
    overflow: hidden
}

.upcoming-programs_detail .program_body figcaption {
    font-size: 16px;
    color: #4a5568;
    padding: 8px 0
}

.upcoming-programs_detail .fact_blocks_row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 40px
}

.upcoming-programs_detail .fact_block {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    border-top: 4px solid #D61168;
    box-shadow: 2px 2px 3px -2px #d6116814
}

.upcoming-programs_detail .fact_block_icon {
    font-size: 27px;
    color: #D61168;
    margin-bottom: 8px;
    display: block;
    animation: float_icon 2.8s ease-in-out infinite
}

.upcoming-programs_detail .fact_block:nth-child(2) .fact_block_icon {
    animation-delay: .4s;
    animation-duration: 3.1s
}

.upcoming-programs_detail .fact_block:nth-child(3) .fact_block_icon {
    animation-delay: .8s;
    animation-duration: 2.6s
}

@keyframes float_icon {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-6px)
    }
}

.upcoming-programs_detail .fact_block_label {
    font-size: 16px;
    line-height: 1.4;
    color: #4a5568;
    margin-bottom: 4px
}

.upcoming-programs_detail .fact_block_value {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    font-weight: 700
}

.upcoming-programs_detail .reaction_divider {
    border: none;
    border-top: 1px dashed #b0c4c5;
    margin: 40px 0
}

.upcoming-programs_detail .reaction_section {
    background: #fff;
    border: 1px solid #BCDADB;
    border-radius: 12px;
    padding: 40px;
    margin-bottom: 80px;
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.upcoming-programs_detail .reaction_heading {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 8px
}

.upcoming-programs_detail .reaction_subtext {
    font-size: 16px;
    line-height: 1.4;
    color: #4a5568;
    margin-bottom: 20px
}

.upcoming-programs_detail .reaction_group {
    display: flex;
    flex-direction: row;
    gap: 20px;
    flex-wrap: wrap
}

.upcoming-programs_detail .reaction_item {
    position: relative
}

.upcoming-programs_detail .reaction_item input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none
}

.upcoming-programs_detail .reaction_label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 20px;
    border: 2px solid #BCDADB;
    border-radius: 12px;
    cursor: pointer;
    background: #f4f8f8;
    transition: background .25s cubic-bezier(0.34, 1.56, 0.64, 1), border-color .22s cubic-bezier(0.68, -0.55, 0.27, 1.55), transform .22s cubic-bezier(0.34, 1.56, 0.64, 1);
    min-width: 80px
}

.upcoming-programs_detail .reaction_label:hover {
    background: #e8f3f3;
    border-color: #1D3C75;
    transform: scale(1.06)
}

.upcoming-programs_detail .reaction_label .mdi {
    font-size: 27px;
    color: #1D3C75;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming-programs_detail .reaction_label_text {
    font-size: 16px;
    line-height: 1.4;
    color: #2b3a4a
}

.upcoming-programs_detail .reaction_item.selected .reaction_label {
    background: #D61168;
    border-color: #D61168;
    transform: scale(1.1)
}

.upcoming-programs_detail .reaction_item.selected .reaction_label .mdi {
    color: #fff
}

.upcoming-programs_detail .reaction_item.selected .reaction_label_text {
    color: #fff
}

.upcoming-programs_detail .membership_tiers_section {
    padding: 80px 0;
    margin-bottom: 80px
}

.upcoming-programs_detail .tiers_top {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    margin-bottom: 40px
}

.upcoming-programs_detail .tiers_strip_heading {
    display: inline-block;
    background: #D61168;
    color: #fff;
    font-size: 37px;
    line-height: 1.1;
    padding: 4px 20px;
    border-radius: 4px
}

.upcoming-programs_detail .tiers_description {
    font-size: 18px;
    line-height: 1.6;
    color: #2b3a4a;
    max-width: 480px
}

.upcoming-programs_detail .tiers_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px
}

.upcoming-programs_detail .tier_display_card {
    border-radius: 12px;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    transition: transform .28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming-programs_detail .tier_display_card:hover {
    transform: translateY(-4px);
    box-shadow: 2px 10px 44px -2px #1d3c751a
}

.upcoming-programs_detail .tier_display_card.standard {
    background: #f4f8f8;
    border: 2px solid #BCDADB
}

.upcoming-programs_detail .tier_display_card.advanced {
    background: #1D3C75;
    border: 2px solid #1D3C75
}

.upcoming-programs_detail .tier_display_card.intensive {
    background: #D61168;
    border: 2px solid #D61168
}

.upcoming-programs_detail .tier_name {
    font-size: 27px;
    line-height: 1.1;
    font-weight: 700
}

.upcoming-programs_detail .tier_display_card.standard .tier_name {
    color: #1D3C75
}

.upcoming-programs_detail .tier_display_card.advanced .tier_name {
    color: #BCDADB
}

.upcoming-programs_detail .tier_display_card.intensive .tier_name {
    color: #fff
}

.upcoming-programs_detail .tier_price_label {
    font-size: 37px;
    line-height: 1.1;
    font-weight: 700
}

.upcoming-programs_detail .tier_display_card.standard .tier_price_label {
    color: #D61168
}

.upcoming-programs_detail .tier_display_card.advanced .tier_price_label {
    color: #fff
}

.upcoming-programs_detail .tier_display_card.intensive .tier_price_label {
    color: #fff
}

.upcoming-programs_detail .tier_features_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.upcoming-programs_detail .tier_features_list li {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    font-size: 16px;
    line-height: 1.4
}

.upcoming-programs_detail .tier_display_card.standard .tier_features_list li {
    color: #2b3a4a
}

.upcoming-programs_detail .tier_display_card.advanced .tier_features_list li {
    color: #ffffffd9
}

.upcoming-programs_detail .tier_display_card.intensive .tier_features_list li {
    color: #ffffffe6
}

.upcoming-programs_detail .tier_features_list .mdi {
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 2px
}

.upcoming-programs_detail .tier_display_card.standard .tier_features_list .mdi {
    color: #1D3C75
}

.upcoming-programs_detail .tier_display_card.advanced .tier_features_list .mdi {
    color: #BCDADB
}

.upcoming-programs_detail .tier_display_card.intensive .tier_features_list .mdi {
    color: #ffffffb3
}

.upcoming-programs_detail .tier_cta_link {
    display: block;
    text-align: center;
    border-radius: 6px;
    padding: 8px 20px;
    font-size: 16px;
    line-height: 1.4;
    text-decoration: none;
    font-weight: 600;
    transition: padding .25s cubic-bezier(0.34, 1.56, 0.64, 1), background .22s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.upcoming-programs_detail .tier_display_card.standard .tier_cta_link {
    background: #1D3C75;
    color: #fff
}

.upcoming-programs_detail .tier_display_card.standard .tier_cta_link:hover {
    background: #162d5a;
    padding-left: 28px;
    padding-right: 28px
}

.upcoming-programs_detail .tier_display_card.advanced .tier_cta_link {
    background: #BCDADB;
    color: #1D3C75
}

.upcoming-programs_detail .tier_display_card.advanced .tier_cta_link:hover {
    background: #a8cfd0;
    padding-left: 28px;
    padding-right: 28px
}

.upcoming-programs_detail .tier_display_card.intensive .tier_cta_link {
    background: #fff;
    color: #D61168
}

.upcoming-programs_detail .tier_display_card.intensive .tier_cta_link:hover {
    background: #f0f0f0;
    padding-left: 28px;
    padding-right: 28px
}

@media (max-width: 1024px) {
    .upcoming-programs_detail .split_hero {
        grid-template-columns: 1fr
    }

    .upcoming-programs_detail .hero_image_zone {
        min-height: 280px
    }

    .upcoming-programs_detail .body_grid {
        grid-template-columns: 1fr
    }

    .upcoming-programs_detail .description_aside {
        position: static
    }

    .upcoming-programs_detail .description_body {
        grid-template-columns: 1fr
    }

    .upcoming-programs_detail .tiers_top {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px
    }

    .upcoming-programs_detail .tiers_grid {
        grid-template-columns: 1fr
    }

    .upcoming-programs_detail .fact_blocks_row {
        grid-template-columns: 1fr
    }
}

@media (max-width: 768px) {
    .upcoming-programs_detail .hero_text_zone {
        padding: 40px 20px
    }

    .upcoming-programs_detail .hero_title {
        font-size: 37px
    }

    .upcoming-programs_detail .stages_header {
        flex-direction: column;
        gap: 20px
    }

    .upcoming-programs_detail .stages_number_accent {
        font-size: 52px
    }

    .upcoming-programs_detail .program_stages_block {
        padding: 40px 20px
    }

    .upcoming-programs_detail .reaction_section {
        padding: 20px
    }

    .upcoming-programs_detail .reaction_group {
        gap: 8px
    }

    .upcoming-programs_detail .reaction_label {
        padding: 8px 12px;
        min-width: 60px
    }

    .upcoming-programs_detail .membership_tiers_section {
        padding: 40px 0
    }

    .upcoming-programs_detail .enroll_price_display {
        font-size: 37px
    }
}

@media (max-width: 640px) {
    .upcoming-programs_detail {
        padding: 0 8px
    }

    .upcoming-programs_detail .hero_title {
        font-size: 27px
    }

    .upcoming-programs_detail .split_hero {
        margin-bottom: 40px
    }

    .upcoming-programs_detail .body_grid {
        margin-bottom: 40px
    }

    .upcoming-programs_detail .tiers_strip_heading {
        font-size: 27px
    }

    .upcoming-programs_detail .meta_chip {
        padding: 8px 12px
    }
}

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

.upcoming_programs_page .programs_title_block {
    position: relative;
    padding: 80px 20px;
    background: linear-gradient(323deg, #1D3C75 38%, #D61168 100%);
    display: flex;
    flex-direction: row;
    align-items: stretch;
    max-width: 100%;
    overflow: hidden
}

.upcoming_programs_page .programs_title_block .text_zone {
    flex: 1 1 55%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 40px 40px 80px;
    max-width: 1280px;
    z-index: 2
}

.upcoming_programs_page .programs_title_block .text_zone .label_dot {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px
}

.upcoming_programs_page .programs_title_block .text_zone .label_dot .dot_swatch {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #BCDADB;
    flex-shrink: 0
}

.upcoming_programs_page .programs_title_block .text_zone .label_dot span {
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: .08em;
    text-transform: uppercase
}

.upcoming_programs_page .programs_title_block .text_zone .page_heading {
    font-size: 52px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px
}

.upcoming_programs_page .programs_title_block .text_zone .page_heading .accent_phrase {
    background: #D61168;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    display: inline
}

.upcoming_programs_page .programs_title_block .text_zone .page_description {
    font-size: 18px;
    line-height: 1.6;
    color: #BCDADB;
    max-width: 480px;
    margin: 0
}

.upcoming_programs_page .programs_title_block .image_zone {
    flex: 1 1 45%;
    position: relative;
    min-height: 400px;
    overflow: hidden;
    border-radius: 12px 0 0 12px
}

.upcoming_programs_page .programs_title_block .image_zone img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.upcoming_programs_page .programs_title_block .image_zone .image_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #1d3c75d9 0%, #1d3c7533 60%, transparent 100%)
}

.upcoming_programs_page .programs_title_block .image_zone .deco_lines {
    position: absolute;
    bottom: 20px;
    right: 20px;
    width: 80px;
    height: 80px;
    pointer-events: none
}

.upcoming_programs_page .programs_title_block .image_zone .deco_lines::before,
.upcoming_programs_page .programs_title_block .image_zone .deco_lines::after {
    content: '';
    position: absolute;
    background: #bcdadb4d
}

.upcoming_programs_page .programs_title_block .image_zone .deco_lines::before {
    width: 1px;
    height: 60px;
    bottom: 0;
    right: 0;
    transform: rotate(-30deg);
    transform-origin: bottom right
}

.upcoming_programs_page .programs_title_block .image_zone .deco_lines::after {
    width: 1px;
    height: 40px;
    bottom: 0;
    right: 12px;
    transform: rotate(-30deg);
    transform-origin: bottom right
}

.upcoming_programs_page .divider_style_a {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 80px;
    height: 20px
}

.upcoming_programs_page .divider_style_a .line_left,
.upcoming_programs_page .divider_style_a .line_right {
    width: 80px;
    height: 2px;
    background: #BCDADB;
    border-radius: 2px
}

.upcoming_programs_page .programs_grid_area {
    padding: 80px;
    max-width: 1280px;
    margin: 0 auto
}

.upcoming_programs_page .programs_grid_area .grid_heading_row {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px;
    gap: 20px
}

.upcoming_programs_page .programs_grid_area .grid_heading_row .grid_label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.upcoming_programs_page .programs_grid_area .grid_heading_row .grid_label .dot_swatch {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #D61168;
    flex-shrink: 0
}

.upcoming_programs_page .programs_grid_area .grid_heading_row .section_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0;
    background: linear-gradient(323deg, #BCDADB 20%, #fff 80%);
    padding: 4px 8px;
    border-radius: 4px
}

.upcoming_programs_page .programs_grid_area .grid_heading_row .count_note {
    font-size: 16px;
    line-height: 1.4;
    color: #555
}

.upcoming_programs_page .card_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px
}

.upcoming_programs_page .program_card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 2px 5px 25px -2px #d6116817;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow .28s cubic-bezier(0.34, 1.56, 0.64, 1), transform .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    border: 1px solid #bcdadb66
}

.upcoming_programs_page .program_card:hover {
    box-shadow: 2px 10px 44px -2px #d611681a;
    transform: translateY(-4px)
}

.upcoming_programs_page .program_card .card_image_area {
    position: relative;
    height: 200px;
    overflow: hidden;
    background: #BCDADB;
    display: flex;
    align-items: center;
    justify-content: center
}

.upcoming_programs_page .program_card .card_image_area .card_placeholder_img {
    width: 100%;
    height: 100%;
    background: linear-gradient(323deg, #1D3C75 20%, #BCDADB 100%);
    display: flex;
    align-items: center;
    justify-content: center
}

.upcoming_programs_page .program_card .card_image_area .card_placeholder_img svg {
    opacity: .3
}

.upcoming_programs_page .program_card .card_image_area .price_badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background: #D61168;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
    padding: 4px 8px;
    border-radius: 6px;
    box-shadow: 2px 2px 3px -2px #d6116814
}

.upcoming_programs_page .program_card .card_image_area .duration_badge {
    position: absolute;
    bottom: 12px;
    left: 12px;
    background: #1d3c75e6;
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 8px;
    border-radius: 6px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px
}

.upcoming_programs_page .program_card .card_image_area .duration_badge .mdi {
    font-size: 16px
}

.upcoming_programs_page .program_card .card_body {
    padding: 20px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.upcoming_programs_page .program_card .card_body .card_title {
    font-size: 18px;
    line-height: 1.4;
    color: #1D3C75;
    margin: 0;
    font-weight: 700
}

.upcoming_programs_page .program_card .card_body .card_description {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    margin: 0;
    flex: 1 1 auto
}

.upcoming_programs_page .program_card .card_body .price_note_text {
    font-size: 16px;
    line-height: 1.4;
    color: #888;
    margin: 0;
    font-style: italic
}

.upcoming_programs_page .program_card .card_footer {
    padding: 8px 20px 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid #bcdadb80;
    margin-top: 8px
}

.upcoming_programs_page .program_card .card_footer .card_meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.upcoming_programs_page .program_card .card_footer .card_meta .meta_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    font-size: 16px;
    line-height: 1.4;
    color: #888
}

.upcoming_programs_page .program_card .card_footer .card_meta .meta_item .mdi {
    font-size: 16px;
    color: #BCDADB
}

.upcoming_programs_page .program_card .card_footer .card_link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    background: #1D3C75;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 8px 20px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), padding .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 2px 2px 3px -2px #1d3c7514
}

.upcoming_programs_page .program_card .card_footer .card_link:hover {
    background: #D61168;
    padding: 8px 28px
}

.upcoming_programs_page .program_card .card_footer .card_link:active {
    background: #BCDADB;
    color: #1D3C75
}

.upcoming_programs_page .program_card .card_footer .card_link .mdi {
    font-size: 16px
}

.upcoming_programs_page .divider_style_b {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 40px;
    height: 20px
}

.upcoming_programs_page .divider_style_b .line_left,
.upcoming_programs_page .divider_style_b .line_right {
    width: 60px;
    height: 1px;
    background: #1D3C75;
    border-radius: 2px;
    opacity: .3
}

.upcoming_programs_page .approach_area {
    background: linear-gradient(323deg, #1D3C75 30%, #2a4f8a 100%);
    padding: 80px;
    position: relative;
    overflow: hidden
}

.upcoming_programs_page .approach_area .deco_diagonal {
    position: absolute;
    top: 0;
    right: 0;
    width: 200px;
    height: 200px;
    pointer-events: none;
    overflow: hidden
}

.upcoming_programs_page .approach_area .deco_diagonal::before {
    content: '';
    position: absolute;
    top: 20px;
    right: 20px;
    width: 1px;
    height: 120px;
    background: #bcdadb26;
    transform: rotate(30deg);
    transform-origin: top right
}

.upcoming_programs_page .approach_area .deco_diagonal::after {
    content: '';
    position: absolute;
    top: 20px;
    right: 40px;
    width: 1px;
    height: 80px;
    background: #bcdadb1a;
    transform: rotate(30deg);
    transform-origin: top right
}

.upcoming_programs_page .approach_area .approach_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-start
}

.upcoming_programs_page .approach_area .approach_inner .approach_left {
    flex: 1 1 40%;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.upcoming_programs_page .approach_area .approach_inner .approach_left .label_dot {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.upcoming_programs_page .approach_area .approach_inner .approach_left .label_dot .dot_swatch {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #D61168;
    flex-shrink: 0
}

.upcoming_programs_page .approach_area .approach_inner .approach_left .label_dot span {
    font-size: 16px;
    line-height: 1.4;
    color: #BCDADB;
    text-transform: uppercase;
    letter-spacing: .08em
}

.upcoming_programs_page .approach_area .approach_inner .approach_left .approach_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #fff;
    margin: 0;
    background: #d6116833;
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-block
}

.upcoming_programs_page .approach_area .approach_inner .approach_left .approach_text {
    font-size: 18px;
    line-height: 1.6;
    color: #BCDADB;
    margin: 0
}

.upcoming_programs_page .approach_area .approach_inner .approach_left .approach_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #bcdadbb3;
    margin: 0;
    border-left: 3px solid #D61168;
    border-bottom: 1px solid #d611684d;
    padding: 8px 8px 8px 20px;
    border-radius: 2px
}

.upcoming_programs_page .approach_area .approach_inner .approach_right {
    flex: 1 1 60%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item {
    background: #ffffff0f;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: 1px solid #bcdadb26;
    transition: background .27s cubic-bezier(0.68, -0.55, 0.27, 1.55), transform .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item:hover {
    background: #ffffff1f;
    transform: translateY(-2px)
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item.accent_pink {
    border-top: 3px solid #D61168
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item.accent_teal {
    border-top: 3px solid #BCDADB
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item.accent_blue {
    border-top: 3px solid #1d3c75cc;
    background: #d6116814
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item.accent_light {
    border-top: 3px solid #bcdadb80;
    background: #bcdadb12
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item .feature_icon {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: #bcdadb1f;
    display: flex;
    align-items: center;
    justify-content: center
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item .feature_icon .mdi {
    font-size: 20px;
    color: #BCDADB
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item.accent_pink .feature_icon .mdi {
    color: #D61168
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item .feature_name {
    font-size: 16px;
    line-height: 1.4;
    color: #fff;
    margin: 0;
    font-weight: 700
}

.upcoming_programs_page .approach_area .approach_inner .approach_right .feature_item .feature_desc {
    font-size: 16px;
    line-height: 1.6;
    color: #bcdadbcc;
    margin: 0
}

.upcoming_programs_page .divider_style_c {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 80px;
    height: 20px;
    background: #f5f8fd
}

.upcoming_programs_page .divider_style_c .line_left,
.upcoming_programs_page .divider_style_c .line_right {
    width: 100px;
    height: 2px;
    background: #D61168;
    border-radius: 2px;
    opacity: .4
}

.upcoming_programs_page .metrics_area {
    background: #f5f8fd;
    padding: 80px;
    position: relative
}

.upcoming_programs_page .metrics_area .metrics_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 40px
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_heading_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_heading_row .dot_swatch {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #BCDADB;
    flex-shrink: 0
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_heading_row .metrics_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0;
    background: linear-gradient(323deg, #BCDADB 15%, #bcdadb33 80%);
    padding: 4px 8px;
    border-radius: 4px
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_main_text {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_main_text .text_body {
    font-size: 18px;
    line-height: 1.6;
    color: #222;
    margin: 0
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_main_text .text_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #555;
    margin: 0;
    padding: 8px 20px;
    background: #fff;
    border-radius: 6px;
    border: 1px solid #bcdadb99;
    box-shadow: 2px 2px 3px -2px #1d3c7514
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 2px 2px 3px -2px #1d3c7514;
    border: 1px solid #bcdadb4d;
    transition: box-shadow .24s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row .stat_bar_area {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 4px
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row .stat_label {
    font-size: 16px;
    line-height: 1.4;
    color: #555;
    margin: 0
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row .stat_bar_track {
    height: 8px;
    background: #bcdadb4d;
    border-radius: 4px;
    overflow: hidden
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row .stat_bar_fill {
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(323deg, #D61168 20%, #1D3C75 100%);
    animation: bar_grow 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    transform-origin: left
}

@keyframes bar_grow {
    from {
        transform: scaleX(0)
    }

    to {
        transform: scaleX(1)
    }
}

.upcoming_programs_page .metrics_area .metrics_inner .metrics_layout .metrics_stats .stat_row .stat_value {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    font-weight: 700;
    flex-shrink: 0;
    min-width: 60px;
    text-align: right
}

.upcoming_programs_page .divider_style_d {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 80px;
    height: 20px
}

.upcoming_programs_page .divider_style_d .line_left,
.upcoming_programs_page .divider_style_d .line_right {
    width: 70px;
    height: 3px;
    background: #BCDADB;
    border-radius: 2px
}

.upcoming_programs_page .contact_strip {
    padding: 80px;
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px
}

.upcoming_programs_page .contact_strip .strip_text {
    flex: 1 1 60%;
    display: flex;
    flex-direction: column;
    gap: 8px
}

.upcoming_programs_page .contact_strip .strip_text .strip_heading {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0;
    background: linear-gradient(323deg, #BCDADB 20%, #bcdadb1a 80%);
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-block
}

.upcoming_programs_page .contact_strip .strip_text .strip_body {
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    margin: 0
}

.upcoming_programs_page .contact_strip .strip_actions {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end
}

.upcoming_programs_page .contact_strip .strip_actions .btn_primary {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: #D61168;
    color: #fff;
    font-size: 18px;
    line-height: 1.4;
    padding: 20px 40px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), padding .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 2px 5px 25px -2px #d6116817
}

.upcoming_programs_page .contact_strip .strip_actions .btn_primary:hover {
    background: #1D3C75;
    padding: 20px 52px
}

.upcoming_programs_page .contact_strip .strip_actions .btn_primary:active {
    background: #BCDADB;
    color: #1D3C75
}

.upcoming_programs_page .contact_strip .strip_actions .btn_secondary {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: #1D3C75;
    font-size: 16px;
    line-height: 1.4;
    padding: 8px 20px;
    border-radius: 6px;
    text-decoration: none;
    border: 1px solid #1D3C75;
    cursor: pointer;
    transition: background .2s cubic-bezier(0.68, -0.55, 0.27, 1.55), padding .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.upcoming_programs_page .contact_strip .strip_actions .btn_secondary:hover {
    background: #1d3c750f;
    padding: 8px 28px
}

.upcoming_programs_page .bg_oscillate {
    animation: bg_oscillate 4s ease-in-out infinite alternate
}

@keyframes bg_oscillate {
    from {
        background-color: #f5f8fd
    }

    to {
        background-color: #edf3f9
    }
}

@media (max-width: 1024px) {
    .upcoming_programs_page .programs_title_block .text_zone {
        padding: 40px
    }

    .upcoming_programs_page .programs_grid_area {
        padding: 80px 40px
    }

    .upcoming_programs_page .card_grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .upcoming_programs_page .approach_area {
        padding: 80px 40px
    }

    .upcoming_programs_page .approach_area .approach_inner {
        flex-direction: column;
        gap: 40px
    }

    .upcoming_programs_page .metrics_area {
        padding: 80px 40px
    }

    .upcoming_programs_page .metrics_area .metrics_inner .metrics_layout {
        flex-direction: column
    }

    .upcoming_programs_page .contact_strip {
        padding: 80px 40px;
        flex-direction: column;
        align-items: flex-start
    }

    .upcoming_programs_page .contact_strip .strip_actions {
        align-items: flex-start
    }

    .upcoming_programs_page .divider_style_a,
    .upcoming_programs_page .divider_style_c,
    .upcoming_programs_page .divider_style_d {
        padding: 0 40px
    }
}

@media (max-width: 768px) {
    .upcoming_programs_page .programs_title_block {
        flex-direction: column;
        padding: 40px 20px
    }

    .upcoming_programs_page .programs_title_block .text_zone {
        padding: 20px;
        flex: none
    }

    .upcoming_programs_page .programs_title_block .page_heading {
        font-size: 37px
    }

    .upcoming_programs_page .programs_title_block .image_zone {
        flex: none;
        min-height: 240px;
        border-radius: 12px
    }

    .upcoming_programs_page .programs_grid_area {
        padding: 40px 20px
    }

    .upcoming_programs_page .card_grid {
        grid-template-columns: 1fr
    }

    .upcoming_programs_page .programs_grid_area .grid_heading_row {
        flex-direction: column;
        align-items: flex-start
    }

    .upcoming_programs_page .approach_area {
        padding: 40px 20px
    }

    .upcoming_programs_page .approach_area .approach_inner .approach_right {
        grid-template-columns: 1fr
    }

    .upcoming_programs_page .metrics_area {
        padding: 40px 20px
    }

    .upcoming_programs_page .contact_strip {
        padding: 40px 20px
    }

    .upcoming_programs_page .divider_style_a,
    .upcoming_programs_page .divider_style_b,
    .upcoming_programs_page .divider_style_c,
    .upcoming_programs_page .divider_style_d {
        padding: 0 20px
    }
}

@media (max-width: 640px) {
    .upcoming_programs_page .programs_title_block .page_heading {
        font-size: 27px
    }

    .upcoming_programs_page .programs_grid_area .grid_heading_row .section_heading {
        font-size: 27px
    }

    .upcoming_programs_page .approach_area .approach_inner .approach_left .approach_heading {
        font-size: 27px
    }

    .upcoming_programs_page .metrics_area .metrics_inner .metrics_heading_row .metrics_heading {
        font-size: 27px
    }

    .upcoming_programs_page .contact_strip .strip_actions .btn_primary {
        padding: 20px;
        font-size: 16px
    }

    .upcoming_programs_page .contact_strip .strip_actions .btn_primary:hover {
        padding: 20px 28px
    }
}

.learning-program {
    overflow-x: hidden
}

.learning-program .program-split {
    display: flex;
    flex-direction: row;
    min-height: 480px
}

.learning-program .program-split .text-side {
    flex: 1 1 55%;
    background: #f4f7fb;
    padding: 80px 40px 80px 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative
}

.learning-program .program-split .image-side {
    flex: 1 1 45%;
    position: relative;
    overflow: hidden
}

.learning-program .program-split .image-side img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.learning-program .program-split .image-side::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(323deg, #1d3c75b8 18%, #d611682e 100%);
    pointer-events: none
}

.learning-program .program-split .image-side .deco-lines {
    position: absolute;
    bottom: 40px;
    left: 20px;
    z-index: 2;
    pointer-events: none
}

.learning-program .program-split .image-side .deco-lines span {
    display: block;
    height: 2px;
    background: #bcdadb99;
    margin-bottom: 8px;
    border-radius: 2px
}

.learning-program .program-split .image-side .deco-lines span:nth-child(1) {
    width: 48px
}

.learning-program .program-split .image-side .deco-lines span:nth-child(2) {
    width: 32px
}

.learning-program .program-split .image-side .deco-lines span:nth-child(3) {
    width: 20px
}

.learning-program .program-split .label-tag {
    display: inline-block;
    background: #D61168;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 20px;
    letter-spacing: 0;
    box-shadow: 2px 2px 3px -2px #d6116814
}

.learning-program .program-split .program-heading {
    font-size: 52px;
    line-height: 1.1;
    color: #1D3C75;
    margin-bottom: 20px;
    font-weight: 900
}

.learning-program .program-split .program-heading em {
    color: #D61168;
    font-style: normal;
    display: block;
    font-size: 68px
}

.learning-program .program-split .program-lead {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2740;
    max-width: 480px;
    margin-bottom: 40px
}

.learning-program .program-split .program-stats {
    display: flex;
    flex-direction: row;
    gap: 40px
}

.learning-program .program-split .stat-item .stat-number {
    font-size: 37px;
    font-weight: 900;
    color: #D61168;
    line-height: 1.1
}

.learning-program .program-split .stat-item .stat-label {
    font-size: 16px;
    color: #1D3C75;
    line-height: 1.4;
    font-weight: 600
}

.learning-program .divider-numbered {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    padding: 20px 80px;
    background: #fff
}

.learning-program .divider-numbered .divider-line {
    flex: 1;
    height: 1px;
    background: #BCDADB
}

.learning-program .divider-numbered .divider-number {
    font-size: 16px;
    font-weight: 700;
    color: #BCDADB;
    letter-spacing: 0;
    min-width: 28px;
    text-align: center
}

.learning-program .curriculum-section {
    background: #fff;
    padding: 80px;
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box
}

.learning-program .curriculum-section .curriculum-top {
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-start;
    margin-bottom: 40px
}

.learning-program .curriculum-section .curriculum-heading-group {
    flex: 0 0 auto;
    max-width: 340px
}

.learning-program .curriculum-section .curriculum-heading-group h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    font-weight: 800;
    margin-bottom: 20px
}

.learning-program .curriculum-section .heading-strip {
    display: inline;
    background: #BCDADB;
    padding: 0 8px;
    border-radius: 2px
}

.learning-program .curriculum-section .curriculum-heading-group p {
    font-size: 16px;
    line-height: 1.6;
    color: #233050
}

.learning-program .curriculum-section .curriculum-aside {
    flex: 1;
    border-left: 3px solid #BCDADB;
    border-top: 3px solid #BCDADB;
    padding: 20px;
    border-radius: 4px;
    background: #f4f7fb;
    font-size: 16px;
    line-height: 1.6;
    color: #1D3C75;
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.learning-program .curriculum-section .curriculum-aside strong {
    display: block;
    font-size: 16px;
    color: #D61168;
    margin-bottom: 8px;
    font-weight: 700
}

.learning-program .modules-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px
}

.learning-program .module-card {
    border-radius: 12px;
    background: #f4f7fb;
    border-top: 4px solid #D61168;
    padding: 20px;
    box-shadow: 2px 5px 25px -2px #d6116817;
    transition: box-shadow .22s cubic-bezier(0.34, 1.56, 0.64, 1), transform .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative
}

.learning-program .module-card.secondary-accent {
    border-top-color: #1D3C75
}

.learning-program .module-card.tertiary-accent {
    border-top-color: #BCDADB
}

.learning-program .module-card:hover {
    box-shadow: 2px 10px 44px -2px #d611681a;
    transform: translateY(-4px)
}

.learning-program .module-card .module-number {
    font-size: 52px;
    font-weight: 900;
    color: #1d3c7514;
    line-height: 1.1;
    position: absolute;
    top: 8px;
    right: 20px;
    pointer-events: none;
    user-select: none
}

.learning-program .module-card h4 {
    font-size: 18px;
    font-weight: 700;
    color: #1D3C75;
    line-height: 1.4;
    margin-bottom: 8px
}

.learning-program .module-card p {
    font-size: 16px;
    line-height: 1.6;
    color: #233050
}

.learning-program .module-card .module-meta {
    margin-top: 20px;
    display: flex;
    flex-direction: row;
    gap: 8px;
    flex-wrap: wrap
}

.learning-program .module-card .module-tag {
    font-size: 16px;
    background: #BCDADB;
    color: #1D3C75;
    border-radius: 4px;
    padding: 4px 8px;
    font-weight: 600
}

.learning-program .divider-numbered.second {
    background: #f4f7fb
}

.learning-program .instructors-section {
    background: linear-gradient(323deg, #1D3C75 18%, #D61168 100%);
    padding: 80px;
    position: relative;
    overflow: hidden
}

.learning-program .instructors-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(./documentation_images/new-news4-crop.jpg);
    background-size: cover;
    background-position: center;
    opacity: .07;
    pointer-events: none;
    animation: bg-drift 18s linear infinite alternate
}

@keyframes bg-drift {
    0% {
        background-position: 0 40%
    }

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

.learning-program .instructors-section .instructors-frame {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1
}

.learning-program .instructors-section .frame-lines {
    position: absolute;
    top: -20px;
    left: -20px;
    right: -20px;
    bottom: -20px;
    pointer-events: none;
    border: 1px solid #bcdadb2e;
    border-radius: 12px
}

.learning-program .instructors-section .frame-lines::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    border: 1px solid #bcdadb1a;
    border-radius: 6px
}

.learning-program .instructors-section h2 {
    font-size: 37px;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin-bottom: 8px
}

.learning-program .instructors-section .instructors-subtext {
    font-size: 18px;
    color: #bcdadbd9;
    line-height: 1.6;
    margin-bottom: 40px;
    max-width: 560px
}

.learning-program .instructors-layout {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.learning-program .instructor-profile {
    flex: 0 0 auto;
    width: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px
}

.learning-program .instructor-profile img {
    width: 140px;
    height: 140px;
    border-radius: 20px;
    object-fit: cover;
    object-position: top;
    box-shadow: 2px 10px 44px -2px #d611681a;
    border: 3px solid #bcdadb66;
    transition: border-color .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.learning-program .instructor-profile img:hover {
    border-color: #BCDADB
}

.learning-program .instructor-profile .profile-name {
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    text-align: center;
    line-height: 1.4
}

.learning-program .instructor-profile .profile-role {
    font-size: 16px;
    color: #BCDADB;
    text-align: center;
    line-height: 1.4;
    margin-top: -12px
}

.learning-program .instructors-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.learning-program .instructor-bio-card {
    background: #ffffff14;
    border-radius: 12px;
    padding: 20px;
    border-top: 4px solid #bcdadb80;
    box-shadow: 2px 2px 3px -2px #1d3c7514
}

.learning-program .instructor-bio-card h5 {
    font-size: 18px;
    font-weight: 700;
    color: #BCDADB;
    margin-bottom: 8px;
    line-height: 1.4
}

.learning-program .instructor-bio-card p {
    font-size: 16px;
    color: #ffffffd9;
    line-height: 1.6
}

.learning-program .faq-row {
    display: flex;
    flex-direction: row;
    gap: 40px;
    margin-top: 40px;
    align-items: flex-start
}

.learning-program .faq-column {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 20px
}

.learning-program .faq-item {
    background: #ffffff12;
    border-radius: 6px;
    padding: 20px;
    border-left: 3px solid #BCDADB;
    border-bottom: 1px solid #bcdadb26
}

.learning-program .faq-item h5 {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px;
    line-height: 1.4
}

.learning-program .faq-item p {
    font-size: 16px;
    color: #bcdadbd9;
    line-height: 1.6
}

.learning-program .how-to-strip {
    background: #f4f7fb;
    padding: 40px 80px
}

.learning-program .how-to-strip .how-to-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: stretch
}

.learning-program .how-to-step {
    flex: 1;
    background: #fff;
    border-radius: 6px;
    padding: 20px;
    border-top: 4px solid #1D3C75;
    box-shadow: 2px 2px 3px -2px #1d3c7514;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow .3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.learning-program .how-to-step:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.learning-program .how-to-step .step-index {
    font-size: 27px;
    font-weight: 900;
    color: #D61168;
    line-height: 1.1
}

.learning-program .how-to-step h5 {
    font-size: 16px;
    font-weight: 700;
    color: #1D3C75;
    line-height: 1.4
}

.learning-program .how-to-step p {
    font-size: 16px;
    color: #233050;
    line-height: 1.6
}

@media (max-width: 1024px) {
    .learning-program .program-split .text-side {
        padding: 40px 20px 40px 40px
    }

    .learning-program .curriculum-section {
        padding: 40px
    }

    .learning-program .curriculum-section .curriculum-top {
        flex-direction: column;
        gap: 20px
    }

    .learning-program .modules-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .learning-program .instructors-section {
        padding: 40px
    }

    .learning-program .instructors-layout {
        flex-direction: column
    }

    .learning-program .instructor-profile {
        width: 100%;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center
    }

    .learning-program .faq-row {
        flex-direction: column
    }

    .learning-program .how-to-strip {
        padding: 40px
    }

    .learning-program .how-to-strip .how-to-inner {
        flex-direction: column;
        gap: 20px
    }

    .learning-program .divider-numbered {
        padding: 20px 40px
    }
}

@media (max-width: 768px) {
    .learning-program .program-split {
        flex-direction: column
    }

    .learning-program .program-split .image-side {
        min-height: 260px;
        flex: 0 0 auto
    }

    .learning-program .program-split .text-side {
        padding: 40px 20px
    }

    .learning-program .program-split .program-heading {
        font-size: 37px
    }

    .learning-program .program-split .program-heading em {
        font-size: 52px
    }

    .learning-program .program-split .program-stats {
        gap: 20px
    }

    .learning-program .curriculum-section {
        padding: 40px 20px
    }

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

    .learning-program .instructors-section {
        padding: 40px 20px
    }

    .learning-program .how-to-strip {
        padding: 40px 20px
    }

    .learning-program .divider-numbered {
        padding: 20px
    }
}

@media (max-width: 640px) {
    .learning-program .program-split .program-heading em {
        font-size: 37px
    }

    .learning-program .program-split .program-heading {
        font-size: 27px
    }

    .learning-program .instructor-profile {
        flex-direction: column;
        align-items: center
    }
}

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

.contact_us_page * {
    box-sizing: border-box
}

.contact_us_page a {
    text-decoration: none !important
}

@keyframes letter_drop {
    0% {
        opacity: 0;
        transform: translateY(-40px) scaleY(1.3)
    }

    60% {
        opacity: 1;
        transform: translateY(6px) scaleY(0.95)
    }

    100% {
        opacity: 1;
        transform: translateY(0) scaleY(1)
    }
}

.contact_us_page .animated_letter {
    display: inline-block;
    opacity: 0;
    animation: letter_drop .28s cubic-bezier(0.34, 1.56, 0.64, 1) forwards
}

.contact_us_page .reach_block {
    padding: 80px 20px;
    background: #fff;
    position: relative
}

.contact_us_page .reach_block_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start
}

.contact_us_page .reach_text_side {
    position: relative
}

.contact_us_page .reach_label {
    display: inline-block;
    background: #D61168;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 20px;
    letter-spacing: .08em;
    text-transform: uppercase
}

.contact_us_page .reach_heading {
    font-size: 52px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px;
    overflow: hidden
}

.contact_us_page .reach_subtext {
    font-size: 18px;
    line-height: 1.6;
    color: #2a2a2a;
    margin: 0 0 40px
}

.contact_us_page .reach_subtext_aside {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: flex-start
}

.contact_us_page .reach_main_text {
    flex: 1;
    font-size: 16px;
    line-height: 1.6;
    color: #2a2a2a;
    margin: 0
}

.contact_us_page .reach_side_note {
    width: 140px;
    flex-shrink: 0;
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    background: #BCDADB;
    border-radius: 6px;
    padding: 8px 20px;
    border-left: 4px solid #1D3C75;
    border-top: 1px solid #1d3c7526
}

.contact_us_page .reach_image_side {
    position: relative
}

.contact_us_page .reach_image_shape {
    position: relative;
    border-radius: 12px 4px 12px 4px;
    overflow: hidden;
    box-shadow: 2px 10px 44px -2px #d611681a
}

.contact_us_page .reach_image_shape img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    filter: sepia(0.18) saturate(1.3) brightness(0.97);
    transition: filter .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .reach_image_shape:hover img {
    filter: sepia(0.08) saturate(1.1) brightness(1.02)
}

.contact_us_page .reach_geo_deco {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 80px;
    height: 80px;
    border: 2px dashed #d6116840;
    border-radius: 12px;
    pointer-events: none
}

.contact_us_page .reach_geo_deco_two {
    position: absolute;
    bottom: -20px;
    left: -20px;
    width: 60px;
    height: 60px;
    background: #bcdadb59;
    border-radius: 4px;
    pointer-events: none
}

.contact_us_page .reach_divider {
    height: 2px;
    background: linear-gradient(323deg, #D61168 18%, #BCDADB 100%);
    border: none;
    margin: 0
}

.contact_us_page .form_block {
    padding: 80px 20px;
    background: linear-gradient(323deg, #1D3C75 18%, #2a5298 100%);
    position: relative
}

.contact_us_page .form_block_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 80px;
    align-items: start
}

.contact_us_page .form_info_column {
    color: #fff
}

.contact_us_page .form_info_label {
    display: inline-block;
    background: #bcdadb40;
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 20px;
    letter-spacing: .06em;
    text-transform: uppercase
}

.contact_us_page .form_info_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px
}

.contact_us_page .form_info_heading_strip {
    background: #d61168b3;
    display: inline;
    padding: 0 8px;
    border-radius: 2px
}

.contact_us_page .form_info_text {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffd9;
    margin: 0 0 40px
}

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

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

.contact_us_page .channel_icon_circle {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #bcdadb2e;
    border: 1px solid #bcdadb59;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), transform .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .channel_icon_circle .mdi {
    font-size: 22px;
    color: #BCDADB
}

.contact_us_page .channel_icon_label {
    font-size: 16px;
    color: #ffffffb3;
    line-height: 1.4
}

.contact_us_page .channel_icon_dashed_line {
    flex: 1;
    height: 1px;
    border-top: 2px dashed #bcdadb4d;
    margin-top: -20px
}

.contact_us_page .form_floating_card {
    background: #ffffff12;
    border: 1px solid #bcdadb40;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.contact_us_page .floating_card_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #bcdadb26
}

.contact_us_page .floating_card_row:last-child {
    border-bottom: none
}

.contact_us_page .floating_card_key {
    font-size: 16px;
    color: #fff9;
    line-height: 1.4
}

.contact_us_page .floating_card_value {
    font-size: 16px;
    color: #fff;
    line-height: 1.4;
    text-align: right
}

.contact_us_page .status_dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 20px;
    background: #4ade80;
    margin-right: 8px;
    box-shadow: 0 0 0 3px #4ade8033
}

.contact_us_page .form_column {
    background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 2px 10px 44px -2px #1d3c751a
}

.contact_us_page .form_heading {
    font-size: 27px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.contact_us_page .form_heading_strip {
    background: #BCDADB;
    display: inline;
    padding: 0 8px;
    border-radius: 2px
}

.contact_us_page .contact_form {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.contact_us_page .field_group {
    position: relative;
    display: flex;
    flex-direction: column
}

.contact_us_page .field_group input,
.contact_us_page .field_group select {
    width: 100%;
    padding: 20px 20px 8px;
    font-size: 16px;
    line-height: 1.4;
    color: #1a2a4a;
    background: #f4f8fb;
    border: 1.5px solid #BCDADB;
    border-radius: 6px;
    outline: none;
    transition: border-color .25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: inset 1px 2px 4px #1d3c750f;
    appearance: none;
    -webkit-appearance: none
}

.contact_us_page .field_group input:focus,
.contact_us_page .field_group select:focus {
    border-color: #D61168;
    box-shadow: inset 1px 2px 4px #1d3c750f 0 0 0 3px #d611681f
}

.contact_us_page .field_group input:focus+.field_label,
.contact_us_page .field_group input:not(:placeholder-shown)+.field_label {
    top: 6px;
    font-size: 16px;
    color: #D61168;
    transform: scale(0.78);
    transform-origin: left center
}

.contact_us_page .field_group select+.field_label,
.contact_us_page .field_group select:focus+.field_label {
    top: 6px;
    font-size: 16px;
    color: #D61168;
    transform: scale(0.78);
    transform-origin: left center
}

.contact_us_page .field_label {
    position: absolute;
    left: 20px;
    top: 16px;
    font-size: 16px;
    line-height: 1.4;
    color: #6a7a8a;
    pointer-events: none;
    transition: top .22s cubic-bezier(0.34, 1.56, 0.64, 1), color .22s cubic-bezier(0.34, 1.56, 0.64, 1), transform .22s cubic-bezier(0.34, 1.56, 0.64, 1);
    background: transparent
}

.contact_us_page .field_group input::placeholder {
    color: transparent
}

.contact_us_page .select_arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #1D3C75
}

.contact_us_page .select_arrow .mdi {
    font-size: 18px
}

.contact_us_page .channel_radio_group {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.contact_us_page .channel_radio_label_heading {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    margin-bottom: 4px;
    font-weight: 600
}

.contact_us_page .channel_radio_options {
    display: flex;
    flex-direction: row;
    gap: 8px;
    flex-wrap: wrap
}

.contact_us_page .channel_radio_option {
    position: relative
}

.contact_us_page .channel_radio_option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0
}

.contact_us_page .channel_radio_option label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    border-radius: 20px;
    border: 1.5px solid #BCDADB;
    background: #f4f8fb;
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    cursor: pointer;
    transition: border-color .22s cubic-bezier(0.34, 1.56, 0.64, 1), background .22s cubic-bezier(0.34, 1.56, 0.64, 1), color .22s cubic-bezier(0.34, 1.56, 0.64, 1);
    user-select: none
}

.contact_us_page .channel_radio_option label .mdi {
    font-size: 18px
}

.contact_us_page .channel_radio_option input[type="radio"]:focus+label {
    outline: 2px solid #D61168;
    outline-offset: 2px
}

.contact_us_page .channel_radio_option.selected label {
    background: #D61168;
    border-color: #D61168;
    color: #fff
}

.contact_us_page .privacy_row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px
}

.contact_us_page .privacy_checkbox {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border: 1.5px solid #BCDADB;
    border-radius: 4px;
    accent-color: #D61168;
    cursor: pointer;
    margin-top: 2px;
    box-shadow: inset 1px 1px 3px #1d3c7514
}

.contact_us_page .privacy_text {
    font-size: 16px;
    line-height: 1.6;
    color: #2a2a2a
}

.contact_us_page .privacy_text a {
    color: #D61168;
    border-bottom: 1px solid #d611684d;
    transition: border-color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .privacy_text a:hover {
    border-color: #D61168
}

.contact_us_page .submit_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px 40px;
    background: #D61168;
    color: #fff;
    font-size: 18px;
    line-height: 1.4;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    box-shadow: 2px 5px 25px -2px #d6116817;
    transition: background .25s cubic-bezier(0.34, 1.56, 0.64, 1), width .28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    width: 100%;
    align-self: stretch
}

.contact_us_page .submit_button:hover {
    background: #b80e58;
    box-shadow: 2px 10px 44px -2px #d611681a;
    width: calc(100% + 8px);
    margin-left: -4px
}

.contact_us_page .submit_button:active {
    background: #9a0b49;
    box-shadow: inset 1px 2px 4px #1d3c751a
}

.contact_us_page .submit_button:focus-visible {
    outline: 3px solid #BCDADB;
    outline-offset: 2px
}

.contact_us_page .submit_button .mdi {
    font-size: 20px;
    transition: transform .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .submit_button:hover .mdi {
    transform: translateX(4px)
}

.contact_us_page .form_divider {
    height: 2px;
    background: linear-gradient(323deg, #BCDADB 18%, #fff 100%);
    border: none;
    margin: 0
}

.contact_us_page .details_block {
    padding: 80px 20px;
    background: #f0f5f5;
    position: relative
}

.contact_us_page .details_block_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 80px;
    align-items: start
}

.contact_us_page .details_image_column {
    position: relative
}

.contact_us_page .details_image_wrap {
    border-radius: 4px 12px 4px 12px;
    overflow: hidden;
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    position: relative
}

.contact_us_page .details_image_wrap img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    filter: saturate(0.9) brightness(0.98);
    transition: filter .3s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.contact_us_page .details_image_wrap:hover img {
    filter: saturate(1.05) brightness(1.01)
}

.contact_us_page .details_image_overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px;
    background: linear-gradient(323deg, #1d3c75d1 18%, #1d3c7559 100%);
    border-radius: 0 0 4px 12px
}

.contact_us_page .details_image_caption {
    font-size: 16px;
    line-height: 1.4;
    color: #ffffffe6;
    margin: 0
}

.contact_us_page .details_dashed_deco {
    position: absolute;
    top: 20px;
    left: -20px;
    width: 40px;
    height: 120px;
    border: 2px dashed #d6116833;
    border-radius: 4px;
    pointer-events: none
}

.contact_us_page .details_text_column {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.contact_us_page .details_heading_area {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.contact_us_page .details_label {
    display: inline-block;
    background: #1D3C75;
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 20px;
    border-radius: 2px;
    letter-spacing: .06em;
    text-transform: uppercase;
    align-self: flex-start
}

.contact_us_page .details_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #D61168;
    margin: 0
}

.contact_us_page .details_text_aside {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: flex-start
}

.contact_us_page .details_main_text {
    flex: 1;
    font-size: 16px;
    line-height: 1.6;
    color: #2a2a2a;
    margin: 0
}

.contact_us_page .details_side_note {
    width: 120px;
    flex-shrink: 0;
    font-size: 16px;
    line-height: 1.4;
    color: #D61168;
    background: #d6116814;
    border-radius: 6px;
    padding: 8px;
    border-left: 4px solid #D61168;
    border-top: 1px solid #d6116826;
    text-align: center
}

.contact_us_page .contact_info_list {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.contact_us_page .contact_info_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    padding: 20px;
    background: #fff;
    border-radius: 12px;
    border: 1px solid #bcdadb80;
    box-shadow: 2px 2px 3px -2px #1d3c7514;
    transition: box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1), transform .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .contact_info_item:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    transform: translateX(4px)
}

.contact_us_page .contact_info_icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 12px;
    background: #1D3C75;
    display: flex;
    align-items: center;
    justify-content: center
}

.contact_us_page .contact_info_icon .mdi {
    font-size: 20px;
    color: #BCDADB
}

.contact_us_page .contact_info_text_group {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.contact_us_page .contact_info_type {
    font-size: 16px;
    line-height: 1.4;
    color: #6a7a8a;
    text-transform: uppercase;
    letter-spacing: .06em
}

.contact_us_page .contact_info_value {
    font-size: 18px;
    line-height: 1.4;
    color: #1D3C75;
    font-weight: 600
}

.contact_us_page .contact_info_value a {
    color: #1D3C75 !important;
    transition: color .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .contact_info_value a:hover {
    color: #D61168 !important
}

.contact_us_page .upcoming_link_strip {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    padding: 20px;
    background: linear-gradient(323deg, #D61168 18%, #e8407e 100%);
    border-radius: 12px;
    box-shadow: 2px 5px 25px -2px #d6116817;
    transition: box-shadow .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .upcoming_link_strip:hover {
    box-shadow: 2px 10px 44px -2px #d611681a
}

.contact_us_page .upcoming_link_text {
    flex: 1;
    font-size: 16px;
    line-height: 1.4;
    color: #fff
}

.contact_us_page .upcoming_link_text strong {
    display: block;
    font-size: 18px;
    margin-bottom: 4px
}

.contact_us_page .upcoming_link_arrow {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 20px;
    background: #fff3;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), transform .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.contact_us_page .upcoming_link_strip:hover .upcoming_link_arrow {
    background: #ffffff59;
    transform: translateX(4px)
}

.contact_us_page .upcoming_link_arrow .mdi {
    font-size: 20px;
    color: #fff
}

@keyframes word_cycle {

    0%,
    20% {
        color: #D61168;
        font-weight: 700
    }

    25%,
    100% {
        color: inherit;
        font-weight: inherit
    }
}

.contact_us_page .cycling_word {
    display: inline
}

.contact_us_page .cycling_word.word_one {
    animation: word_cycle 6s 0s infinite
}

.contact_us_page .cycling_word.word_two {
    animation: word_cycle 6s 2s infinite
}

.contact_us_page .cycling_word.word_three {
    animation: word_cycle 6s 4s infinite
}

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

    .contact_us_page .form_block_inner {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .contact_us_page .details_block_inner {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .contact_us_page .reach_heading {
        font-size: 37px
    }
}

@media (max-width: 768px) {
    .contact_us_page .reach_block {
        padding: 40px 20px
    }

    .contact_us_page .form_block {
        padding: 40px 20px
    }

    .contact_us_page .details_block {
        padding: 40px 20px
    }

    .contact_us_page .form_column {
        padding: 20px
    }

    .contact_us_page .reach_heading {
        font-size: 27px
    }

    .contact_us_page .reach_subtext_aside {
        flex-direction: column
    }

    .contact_us_page .reach_side_note {
        width: 100%
    }

    .contact_us_page .details_text_aside {
        flex-direction: column
    }

    .contact_us_page .details_side_note {
        width: 100%
    }

    .contact_us_page .channel_radio_options {
        flex-direction: column
    }

    .contact_us_page .form_channel_icons {
        flex-wrap: wrap
    }

    .contact_us_page .channel_icon_dashed_line {
        display: none
    }

    .contact_us_page .details_heading {
        font-size: 27px
    }

    .contact_us_page .form_info_heading {
        font-size: 27px
    }
}

@media (max-width: 640px) {

    .contact_us_page .reach_block_inner,
    .contact_us_page .form_block_inner,
    .contact_us_page .details_block_inner {
        gap: 20px
    }

    .contact_us_page .reach_heading {
        font-size: 27px
    }

    .contact_us_page .submit_button {
        font-size: 16px;
        padding: 20px
    }
}

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

.about_us_page .page_band {
    width: 100%;
    background: #D61168;
    height: 6px
}

.about_us_page .title_area {
    position: relative;
    background: linear-gradient(323deg, #1D3C75 18%, #2a4f8a 72%, #BCDADB 100%);
    padding: 80px 20px;
    overflow: hidden
}

.about_us_page .title_area_grid_lines {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden
}

.about_us_page .title_area_grid_lines::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#bcdadb0f 1px, transparent 1px), linear-gradient(90deg, #bcdadb0f 1px, transparent 1px);
    background-size: 60px 60px
}

.about_us_page .title_area_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 80px
}

.about_us_page .title_text_column {
    flex: 1 1 0;
    min-width: 0
}

.about_us_page .title_eyebrow {
    font-size: 16px;
    line-height: 1.4;
    color: #BCDADB;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 20px;
    display: block
}

.about_us_page .title_heading {
    font-size: 68px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px
}

.about_us_page .title_heading strong {
    color: #BCDADB;
    display: block
}

.about_us_page .title_declaration {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffd9;
    max-width: 540px;
    margin: 0
}

.about_us_page .title_image_column {
    flex: 0 0 340px;
    position: relative
}

.about_us_page .title_image_frame {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 2px solid #bcdadb4d
}

.about_us_page .title_image_frame img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center;
    display: block
}

.about_us_page .title_image_scanlines {
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, #1d3c7514 3px, #1d3c7514 4px);
    pointer-events: none
}

.about_us_page .title_stat_strip {
    display: flex;
    flex-direction: row;
    gap: 40px;
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid #bcdadb33
}

.about_us_page .title_stat {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.about_us_page .title_stat_number {
    font-size: 37px;
    line-height: 1.1;
    color: #D61168;
    background: #fffffff2;
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-block
}

.about_us_page .title_stat_label {
    font-size: 16px;
    line-height: 1.4;
    color: #ffffffbf
}

.about_us_page .reveal_right {
    opacity: 0;
    transform: translateX(60px);
    animation: slide_from_right .28s cubic-bezier(0.34, 1.56, 0.64, 1) forwards
}

.about_us_page .reveal_right.delay_1 {
    animation-delay: .08s
}

.about_us_page .reveal_right.delay_2 {
    animation-delay: .16s
}

.about_us_page .reveal_right.delay_3 {
    animation-delay: .24s
}

.about_us_page .reveal_right.delay_4 {
    animation-delay: .32s
}

.about_us_page .reveal_right.delay_5 {
    animation-delay: .38s
}

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

.about_us_page .divider_band {
    width: 100%;
    height: 8px;
    background: #BCDADB
}

.about_us_page .philosophy_area {
    background: #fff;
    padding: 80px 20px;
    border-right: 4px solid #D61168;
    box-sizing: border-box
}

.about_us_page .philosophy_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 80px;
    align-items: flex-start
}

.about_us_page .philosophy_main {
    flex: 1 1 0;
    min-width: 0
}

.about_us_page .philosophy_sidebar {
    flex: 0 0 280px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px
}

.about_us_page .section_label {
    display: inline-block;
    background: #D61168;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 8px;
    border-radius: 2px;
    margin-bottom: 20px;
    text-transform: uppercase;
    letter-spacing: .06em
}

.about_us_page .philosophy_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.about_us_page .philosophy_text {
    font-size: 18px;
    line-height: 1.6;
    color: #2c2c2c;
    margin: 0 0 20px
}

.about_us_page .philosophy_text_aside {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: flex-start;
    margin-top: 40px
}

.about_us_page .philosophy_body_text {
    flex: 1 1 0;
    min-width: 0
}

.about_us_page .philosophy_aside_note {
    flex: 0 0 160px;
    background: linear-gradient(323deg, #f0f7f7 30%, #e8f4f4 100%);
    border-radius: 6px;
    padding: 20px;
    border-left: 4px solid #BCDADB;
    font-size: 16px;
    line-height: 1.6;
    color: #1D3C75
}

.about_us_page .philosophy_aside_note strong {
    display: block;
    font-size: 16px;
    color: #D61168;
    margin-bottom: 8px
}

.about_us_page .sidebar_metric_card {
    background: #1D3C75;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    position: relative;
    overflow: hidden
}

.about_us_page .sidebar_metric_card::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 60px;
    height: 60px;
    background: #bcdadb1a;
    border-radius: 12px 0 12px 0
}

.about_us_page .sidebar_metric_value {
    font-size: 52px;
    line-height: 1.1;
    color: #BCDADB;
    display: block
}

.about_us_page .sidebar_metric_desc {
    font-size: 16px;
    line-height: 1.4;
    color: #fffc;
    margin-top: 8px;
    display: block
}

.about_us_page .sidebar_progress_card {
    background: #f5f8ff;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid #1d3c751f;
    box-shadow: 2px 2px 3px -2px #1d3c7514
}

.about_us_page .sidebar_progress_label {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    margin-bottom: 8px;
    display: block
}

.about_us_page .progress_track {
    background: #1d3c751f;
    border-radius: 2px;
    height: 6px;
    margin-bottom: 8px;
    overflow: hidden
}

.about_us_page .progress_fill {
    height: 100%;
    border-radius: 2px;
    background: linear-gradient(323deg, #D61168 30%, #e8337a 100%);
    transition: width .35s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.about_us_page .progress_caption {
    font-size: 16px;
    line-height: 1.4;
    color: #555
}

.about_us_page .progress_narrative {
    font-size: 16px;
    line-height: 1.6;
    color: #2c2c2c;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #1d3c7533
}

.about_us_page .divider_dashed {
    max-width: 1280px;
    margin: 0 auto;
    height: 1px;
    border-top: 2px dashed #bcdadb99
}

.about_us_page .divider_wrapper {
    padding: 0 20px
}

.about_us_page .team_area {
    background: linear-gradient(323deg, #f5f8ff 25%, #eef5f5 100%);
    padding: 80px 20px
}

.about_us_page .team_inner {
    max-width: 1280px;
    margin: 0 auto
}

.about_us_page .team_heading_row {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 40px;
    gap: 40px
}

.about_us_page .team_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0
}

.about_us_page .team_heading_note {
    font-size: 16px;
    line-height: 1.6;
    color: #555;
    max-width: 320px;
    text-align: right
}

.about_us_page .team_layout {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.about_us_page .team_portrait_column {
    flex: 0 0 240px
}

.about_us_page .team_portrait_frame {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 2px 10px 44px -2px #d611681a;
    border: 2px solid #bcdadb80
}

.about_us_page .team_portrait_frame img {
    width: 240px;
    height: 320px;
    object-fit: cover;
    object-position: top;
    display: block
}

.about_us_page .team_portrait_caption {
    margin-top: 8px;
    padding: 8px;
    background: #1D3C75;
    border-radius: 6px;
    text-align: center
}

.about_us_page .team_portrait_name {
    font-size: 16px;
    line-height: 1.4;
    color: #fff;
    display: block
}

.about_us_page .team_portrait_role {
    font-size: 16px;
    line-height: 1.4;
    color: #BCDADB;
    display: block
}

.about_us_page .team_content_column {
    flex: 1 1 0;
    min-width: 0
}

.about_us_page .team_bio_text {
    font-size: 18px;
    line-height: 1.6;
    color: #2c2c2c;
    margin: 0 0 20px
}

.about_us_page .checklist_group {
    margin-top: 40px
}

.about_us_page .checklist_label {
    display: inline-block;
    background: #1D3C75;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 8px;
    border-radius: 2px;
    margin-bottom: 20px
}

.about_us_page .checklist_items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px
}

.about_us_page .checklist_item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    background: #fff;
    border-radius: 6px;
    border: 1px solid #1d3c751a;
    box-shadow: 2px 2px 3px -2px #1d3c7514
}

.about_us_page .checklist_icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 2px
}

.about_us_page .checklist_text {
    font-size: 16px;
    line-height: 1.4;
    color: #2c2c2c
}

.about_us_page .approach_area {
    background: #1D3C75;
    padding: 80px 20px
}

.about_us_page .approach_inner {
    max-width: 1280px;
    margin: 0 auto
}

.about_us_page .approach_heading_area {
    margin-bottom: 40px
}

.about_us_page .approach_heading {
    font-size: 52px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px
}

.about_us_page .approach_heading span {
    color: #BCDADB
}

.about_us_page .approach_subtitle {
    font-size: 18px;
    line-height: 1.6;
    color: #ffffffbf;
    max-width: 600px;
    margin: 0
}

.about_us_page .approach_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    margin-bottom: 40px
}

.about_us_page .approach_card {
    background: #ffffff0f;
    border-radius: 12px;
    padding: 40px 20px;
    border: 1px solid #bcdadb26;
    border-right: 4px solid #D61168;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), border-color .25s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.about_us_page .approach_card:hover {
    background: #ffffff1a;
    border-right-color: #BCDADB
}

.about_us_page .approach_card_icon {
    width: 40px;
    height: 40px;
    margin-bottom: 20px
}

.about_us_page .approach_card_heading {
    font-size: 18px;
    line-height: 1.4;
    color: #BCDADB;
    margin: 0 0 8px
}

.about_us_page .approach_card_text {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffbf;
    margin: 0
}

.about_us_page .approach_image_row {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: center;
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid #bcdadb33
}

.about_us_page .approach_image_frame {
    flex: 0 0 380px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 2px 10px 44px -2px #d611681a
}

.about_us_page .approach_image_frame img {
    width: 380px;
    height: 240px;
    object-fit: cover;
    object-position: center;
    display: block
}

.about_us_page .approach_image_text {
    flex: 1 1 0;
    min-width: 0
}

.about_us_page .approach_image_heading {
    font-size: 27px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px
}

.about_us_page .approach_image_para {
    font-size: 16px;
    line-height: 1.6;
    color: #ffffffbf;
    margin: 0
}

.about_us_page .divider_band_secondary {
    width: 100%;
    height: 8px;
    background: #D61168
}

.about_us_page .contact_strip {
    background: #fff;
    padding: 40px 20px;
    border-top: 2px solid #bcdadb80
}

.about_us_page .contact_strip_inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px
}

.about_us_page .contact_strip_text {
    font-size: 18px;
    line-height: 1.6;
    color: #1D3C75
}

.about_us_page .contact_strip_links {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: center;
    flex-wrap: wrap
}

.about_us_page .contact_link {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    line-height: 1.4;
    color: #D61168;
    text-decoration: none;
    padding: 8px 20px;
    border: 2px solid #D61168;
    border-radius: 6px;
    transition: background .22s cubic-bezier(0.34, 1.56, 0.64, 1), color .2s cubic-bezier(0.34, 1.56, 0.64, 1), padding .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.about_us_page .contact_link:hover {
    background: #D61168;
    color: #fff;
    padding: 8px 28px
}

.about_us_page .contact_link:focus {
    outline: 3px solid #1D3C75;
    outline-offset: 2px
}

@media (max-width: 1024px) {
    .about_us_page .title_area_inner {
        gap: 40px
    }

    .about_us_page .title_image_column {
        flex: 0 0 260px
    }

    .about_us_page .title_heading {
        font-size: 52px
    }

    .about_us_page .philosophy_inner {
        gap: 40px
    }

    .about_us_page .philosophy_sidebar {
        flex: 0 0 220px
    }

    .about_us_page .approach_grid {
        grid-template-columns: 1fr 1fr
    }

    .about_us_page .approach_image_row {
        flex-direction: column
    }

    .about_us_page .approach_image_frame {
        flex: none;
        width: 100%
    }

    .about_us_page .approach_image_frame img {
        width: 100%
    }
}

@media (max-width: 768px) {
    .about_us_page .title_area_inner {
        flex-direction: column;
        gap: 40px
    }

    .about_us_page .title_image_column {
        flex: none;
        width: 100%
    }

    .about_us_page .title_heading {
        font-size: 37px
    }

    .about_us_page .title_stat_strip {
        gap: 20px
    }

    .about_us_page .philosophy_inner {
        flex-direction: column
    }

    .about_us_page .philosophy_sidebar {
        flex: none;
        width: 100%;
        grid-template-columns: 1fr 1fr
    }

    .about_us_page .philosophy_text_aside {
        flex-direction: column
    }

    .about_us_page .philosophy_aside_note {
        flex: none;
        width: 100%
    }

    .about_us_page .team_layout {
        flex-direction: column
    }

    .about_us_page .team_portrait_column {
        flex: none;
        width: 100%;
        display: flex;
        flex-direction: row;
        gap: 20px;
        align-items: flex-start
    }

    .about_us_page .team_portrait_frame {
        flex: 0 0 140px
    }

    .about_us_page .team_portrait_frame img {
        width: 140px;
        height: 180px
    }

    .about_us_page .team_portrait_caption {
        flex: 1 1 0;
        text-align: left
    }

    .about_us_page .team_heading_row {
        flex-direction: column;
        align-items: flex-start
    }

    .about_us_page .team_heading_note {
        text-align: left
    }

    .about_us_page .checklist_items {
        grid-template-columns: 1fr
    }

    .about_us_page .approach_grid {
        grid-template-columns: 1fr
    }

    .about_us_page .approach_heading {
        font-size: 37px
    }

    .about_us_page .contact_strip_inner {
        flex-direction: column;
        align-items: flex-start
    }
}

@media (max-width: 640px) {
    .about_us_page .title_area {
        padding: 40px 20px
    }

    .about_us_page .philosophy_area {
        padding: 40px 20px
    }

    .about_us_page .team_area {
        padding: 40px 20px
    }

    .about_us_page .approach_area {
        padding: 40px 20px
    }

    .about_us_page .title_stat_strip {
        flex-direction: column;
        gap: 20px
    }

    .about_us_page .philosophy_sidebar {
        grid-template-columns: 1fr
    }

    .about_us_page .title_heading {
        font-size: 27px
    }

    .about_us_page .approach_heading {
        font-size: 27px
    }
}

.before_you_start_page {
    overflow-x: hidden
}

.before_you_start_page .slide_in {
    animation: slideFromLeft .55s cubic-bezier(0.34, 1.56, 0.64, 1) both
}

.before_you_start_page .slide_in.delay_one {
    animation-delay: .08s
}

.before_you_start_page .slide_in.delay_two {
    animation-delay: .18s
}

.before_you_start_page .slide_in.delay_three {
    animation-delay: .28s
}

.before_you_start_page .slide_in.delay_four {
    animation-delay: .38s
}

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

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

.before_you_start_page .page_divider {
    width: 100%;
    height: 2px;
    background: #D61168;
    border: none;
    margin: 0
}

.before_you_start_page .page_divider.secondary {
    background: #1D3C75
}

.before_you_start_page .page_divider.tertiary {
    background: #BCDADB
}

.before_you_start_page .schema_data {
    display: none
}

.before_you_start_page .opening_block {
    background: #1D3C75;
    padding: 80px 20px 40px;
    position: relative;
    overflow: hidden
}

.before_you_start_page .opening_block .atmosphere_spot {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    pointer-events: none;
    z-index: 0
}

.before_you_start_page .opening_block .atmosphere_spot.spot_a {
    width: 320px;
    height: 320px;
    background: #d611682e;
    top: -80px;
    right: 10%
}

.before_you_start_page .opening_block .atmosphere_spot.spot_b {
    width: 200px;
    height: 200px;
    background: #bcdadb1f;
    bottom: -40px;
    left: 5%
}

.before_you_start_page .opening_block .atmosphere_spot.spot_c {
    width: 160px;
    height: 160px;
    background: #d611681a;
    bottom: 20px;
    right: 30%
}

.before_you_start_page .opening_inner {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1
}

.before_you_start_page .opening_label {
    display: inline-block;
    background: #d6116838;
    border: 1px solid #d6116880;
    border-radius: 4px;
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 20px;
    margin-bottom: 20px
}

.before_you_start_page .opening_heading {
    font-size: 68px;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 20px;
    max-width: 820px
}

.before_you_start_page .opening_heading .accent_word {
    color: #D61168
}

.before_you_start_page .opening_manifesto {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 40px;
    align-items: start;
    margin-top: 40px
}

.before_you_start_page .manifesto_text {
    color: #BCDADB;
    font-size: 18px;
    line-height: 1.6;
    margin: 0
}

.before_you_start_page .manifesto_text strong {
    color: #fff
}

.before_you_start_page .manifesto_aside {
    background: #bcdadb14;
    border-left: 4px solid #D61168;
    border-radius: 2px 6px 6px 2px;
    padding: 20px
}

.before_you_start_page .manifesto_aside_text {
    color: #BCDADB;
    font-size: 16px;
    line-height: 1.6;
    margin: 0
}

.before_you_start_page .manifesto_aside_label {
    font-size: 16px;
    color: #D61168;
    font-weight: 700;
    display: block;
    margin-bottom: 8px
}

@media (max-width: 768px) {
    .before_you_start_page .opening_heading {
        font-size: 37px
    }

    .before_you_start_page .opening_manifesto {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .before_you_start_page .opening_block {
        padding: 40px 20px
    }
}

@media (max-width: 640px) {
    .before_you_start_page .opening_heading {
        font-size: 37px
    }
}

.before_you_start_page .readiness_block {
    background: #f5f4f0;
    padding: 80px 20px
}

.before_you_start_page .readiness_inner {
    max-width: 1280px;
    margin: 0 auto
}

.before_you_start_page .strip_heading {
    display: inline-block;
    background: #1D3C75;
    color: #fff;
    font-size: 37px;
    line-height: 1.1;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 40px
}

.before_you_start_page .readiness_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px
}

.before_you_start_page .readiness_card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    border-top: 4px solid #BCDADB;
    transition: box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1), transform .28s cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative
}

.before_you_start_page .readiness_card:hover {
    box-shadow: 2px 10px 44px -2px #1d3c751a;
    transform: translateY(-4px)
}

.before_you_start_page .readiness_card.active_border {
    border-top-color: #D61168
}

.before_you_start_page .card_icon_wrap {
    width: 44px;
    height: 44px;
    background: linear-gradient(323deg, #1D3C75 20%, #BCDADB 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px
}

.before_you_start_page .card_icon_wrap .mdi {
    color: #fff;
    font-size: 22px
}

.before_you_start_page .readiness_card_heading {
    font-size: 18px;
    line-height: 1.4;
    color: #1D3C75;
    margin: 0 0 8px;
    font-weight: 700
}

.before_you_start_page .readiness_card_text {
    font-size: 16px;
    line-height: 1.6;
    color: #2c2c3a;
    margin: 0
}

.before_you_start_page .readiness_card .bottom_band {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #D61168;
    border-radius: 0 0 12px 12px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.before_you_start_page .readiness_card:hover .bottom_band {
    transform: scaleX(1)
}

@media (max-width: 1024px) {
    .before_you_start_page .readiness_grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media (max-width: 640px) {
    .before_you_start_page .readiness_grid {
        grid-template-columns: 1fr
    }

    .before_you_start_page .strip_heading {
        font-size: 27px
    }
}

.before_you_start_page .steps_block {
    background: #fff;
    padding: 80px 20px
}

.before_you_start_page .steps_inner {
    max-width: 1280px;
    margin: 0 auto
}

.before_you_start_page .steps_top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
    margin-bottom: 40px
}

.before_you_start_page .steps_top_heading {
    font-size: 52px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0
}

.before_you_start_page .steps_top_heading .accent_pink {
    color: #D61168
}

.before_you_start_page .steps_intro_text {
    font-size: 18px;
    line-height: 1.6;
    color: #2c2c3a;
    margin: 0;
    padding-top: 8px
}

.before_you_start_page .steps_image_row {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: stretch;
    margin-bottom: 40px
}

.before_you_start_page .steps_image_wrap {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 2px 5px 25px -2px #d6116817;
    position: relative
}

.before_you_start_page .steps_image_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    min-height: 280px
}

.before_you_start_page .steps_image_badge {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background: #D61168;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 8px 20px;
    border-radius: 6px;
    font-weight: 700
}

.before_you_start_page .steps_path {
    display: flex;
    flex-direction: column;
    gap: 0
}

.before_you_start_page .step_item {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 20px;
    align-items: start;
    position: relative
}

.before_you_start_page .step_connector {
    display: flex;
    flex-direction: column;
    align-items: center
}

.before_you_start_page .step_number_circle {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(323deg, #D61168 20%, #1D3C75 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    flex-shrink: 0;
    box-shadow: 2px 2px 3px -2px #d6116814;
    transition: transform .22s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.before_you_start_page .step_item:hover .step_number_circle {
    transform: scale(1.12)
}

.before_you_start_page .step_line {
    width: 2px;
    flex: 1;
    min-height: 28px;
    background: repeating-linear-gradient(to bottom, #BCDADB 0px, #BCDADB 6px, transparent 6px, transparent 12px);
    margin-top: 4px
}

.before_you_start_page .step_item.last_step .step_line {
    display: none
}

.before_you_start_page .step_body {
    padding-bottom: 20px
}

.before_you_start_page .step_heading {
    font-size: 18px;
    line-height: 1.4;
    color: #1D3C75;
    margin: 0 0 8px;
    font-weight: 700;
    padding-top: 8px
}

.before_you_start_page .step_text {
    font-size: 16px;
    line-height: 1.6;
    color: #2c2c3a;
    margin: 0
}

@media (max-width: 1024px) {
    .before_you_start_page .steps_image_row {
        grid-template-columns: 1fr
    }

    .before_you_start_page .steps_image_wrap {
        min-height: 220px
    }
}

@media (max-width: 768px) {
    .before_you_start_page .steps_top {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .before_you_start_page .steps_top_heading {
        font-size: 37px
    }
}

.before_you_start_page .expectations_block {
    background: #1D3C75;
    padding: 80px 20px;
    position: relative;
    overflow: hidden
}

.before_you_start_page .expectations_block .bg_deco {
    position: absolute;
    top: 0;
    right: 0;
    width: 420px;
    height: 420px;
    background: linear-gradient(323deg, #d6116824 20%, #bcdadb0f 100%);
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none
}

.before_you_start_page .expectations_inner {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 1
}

.before_you_start_page .expectations_heading_strip {
    display: inline-block;
    background: #D61168;
    color: #fff;
    font-size: 37px;
    line-height: 1.1;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 40px
}

.before_you_start_page .expectations_layout {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 20px;
    align-items: start
}

.before_you_start_page .expectations_main_card {
    background: #ffffff0f;
    border-radius: 12px;
    border: 1px solid #bcdadb33;
    padding: 40px;
    box-shadow: 2px 10px 44px -2px #1d3c751a
}

.before_you_start_page .expectations_main_card_heading {
    font-size: 27px;
    line-height: 1.4;
    color: #fff;
    margin: 0 0 20px
}

.before_you_start_page .expectations_main_text {
    font-size: 18px;
    line-height: 1.6;
    color: #BCDADB;
    margin: 0 0 20px
}

.before_you_start_page .expectations_main_aside {
    border-top: 1px dashed #bcdadb59;
    padding-top: 20px;
    margin-top: 8px
}

.before_you_start_page .expectations_main_aside_text {
    font-size: 16px;
    line-height: 1.6;
    color: #bcdadbbf;
    margin: 0
}

.before_you_start_page .expectations_side_stack {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.before_you_start_page .expectation_small_card {
    background: #ffffff0d;
    border-radius: 12px;
    border: 1px solid #bcdadb26;
    padding: 20px;
    transition: background .28s cubic-bezier(0.34, 1.56, 0.64, 1), border-color .28s cubic-bezier(0.34, 1.56, 0.64, 1);
    position: relative
}

.before_you_start_page .expectation_small_card:hover {
    background: #d611681f;
    border-color: #d6116866
}

.before_you_start_page .expectation_small_card .bottom_band {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #D61168;
    border-radius: 0 0 12px 12px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .32s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.before_you_start_page .expectation_small_card:hover .bottom_band {
    transform: scaleX(1)
}

.before_you_start_page .small_card_icon {
    width: 36px;
    height: 36px;
    background: #d6116840;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px
}

.before_you_start_page .small_card_icon .mdi {
    color: #D61168;
    font-size: 18px
}

.before_you_start_page .small_card_heading {
    font-size: 16px;
    line-height: 1.4;
    color: #fff;
    margin: 0 0 8px;
    font-weight: 700
}

.before_you_start_page .small_card_text {
    font-size: 16px;
    line-height: 1.6;
    color: #BCDADB;
    margin: 0
}

.before_you_start_page .portraits_row {
    display: flex;
    flex-direction: row;
    gap: 20px;
    margin-top: 40px;
    align-items: center
}

.before_you_start_page .portrait_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    background: #ffffff0d;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid #bcdadb1f;
    flex: 1
}

.before_you_start_page .portrait_image_wrap {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid #D61168
}

.before_you_start_page .portrait_image_wrap img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    object-position: top;
    display: block
}

.before_you_start_page .portrait_quote_text {
    font-size: 16px;
    line-height: 1.6;
    color: #BCDADB;
    margin: 0 0 4px;
    font-style: italic
}

.before_you_start_page .portrait_name {
    font-size: 16px;
    color: #fff;
    font-weight: 700;
    margin: 0
}

.before_you_start_page .portrait_role {
    font-size: 16px;
    color: #bcdadba6;
    margin: 0
}

@media (max-width: 1024px) {
    .before_you_start_page .expectations_layout {
        grid-template-columns: 1fr 1fr
    }

    .before_you_start_page .expectations_main_card {
        grid-column: 1 / -1
    }
}

@media (max-width: 768px) {
    .before_you_start_page .expectations_layout {
        grid-template-columns: 1fr
    }

    .before_you_start_page .portraits_row {
        flex-direction: column
    }

    .before_you_start_page .portrait_item {
        width: 100%
    }

    .before_you_start_page .expectations_heading_strip {
        font-size: 27px
    }
}

.before_you_start_page .platform_block {
    background: #f5f4f0;
    padding: 80px 20px
}

.before_you_start_page .platform_inner {
    max-width: 1280px;
    margin: 0 auto
}

.before_you_start_page .platform_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 20px
}

.before_you_start_page .platform_heading_cell {
    grid-column: 1 / 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}

.before_you_start_page .platform_heading_strip {
    display: inline-block;
    background: #BCDADB;
    color: #1D3C75;
    font-size: 37px;
    line-height: 1.1;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 8px
}

.before_you_start_page .platform_sub_text {
    font-size: 18px;
    line-height: 1.6;
    color: #2c2c3a;
    margin: 0;
    max-width: 480px
}

.before_you_start_page .platform_image_cell {
    grid-column: 3 / 5;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 2px 5px 25px -2px #d6116817;
    position: relative;
    min-height: 220px
}

.before_you_start_page .platform_image_cell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

.before_you_start_page .platform_image_cell .image_overlay_badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: #1D3C75;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 20px;
    border-radius: 6px;
    font-weight: 700
}

.before_you_start_page .platform_feature_card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 2px 2px 3px -2px #1d3c7514;
    border-bottom: 3px solid #BCDADB;
    transition: box-shadow .26s cubic-bezier(0.34, 1.56, 0.64, 1), border-color .26s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    position: relative
}

.before_you_start_page .platform_feature_card:hover {
    box-shadow: 2px 10px 44px -2px #1d3c751a;
    border-bottom-color: #D61168
}

.before_you_start_page .platform_feature_card .bottom_band {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #D61168;
    border-radius: 0 0 12px 12px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.before_you_start_page .platform_feature_card:hover .bottom_band {
    transform: scaleX(1)
}

.before_you_start_page .feature_icon_row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px
}

.before_you_start_page .feature_icon_row .mdi {
    font-size: 22px;
    color: #D61168
}

.before_you_start_page .platform_feature_heading {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    margin: 0;
    font-weight: 700
}

.before_you_start_page .platform_feature_text {
    font-size: 16px;
    line-height: 1.6;
    color: #2c2c3a;
    margin: 8px 0 0
}

.before_you_start_page .platform_wide_card {
    grid-column: 1 / 3;
    background: linear-gradient(323deg, #1D3C75 20%, #2a5298 100%);
    border-radius: 12px;
    padding: 40px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    box-shadow: 2px 10px 44px -2px #1d3c751a
}

.before_you_start_page .platform_wide_card .mdi {
    font-size: 40px;
    color: #BCDADB;
    flex-shrink: 0
}

.before_you_start_page .platform_wide_card_text {
    font-size: 18px;
    line-height: 1.6;
    color: #BCDADB;
    margin: 0
}

.before_you_start_page .platform_wide_card_text strong {
    color: #fff
}

.before_you_start_page .platform_image_cell_two {
    grid-column: 3 / 5;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    position: relative;
    min-height: 160px
}

.before_you_start_page .platform_image_cell_two img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block
}

@media (max-width: 1024px) {
    .before_you_start_page .platform_grid {
        grid-template-columns: 1fr 1fr
    }

    .before_you_start_page .platform_heading_cell {
        grid-column: 1 / 2
    }

    .before_you_start_page .platform_image_cell {
        grid-column: 2 / 3
    }

    .before_you_start_page .platform_wide_card {
        grid-column: 1 / -1
    }

    .before_you_start_page .platform_image_cell_two {
        grid-column: 1 / -1
    }
}

@media (max-width: 640px) {
    .before_you_start_page .platform_grid {
        grid-template-columns: 1fr
    }

    .before_you_start_page .platform_heading_cell,
    .before_you_start_page .platform_image_cell,
    .before_you_start_page .platform_wide_card,
    .before_you_start_page .platform_image_cell_two {
        grid-column: 1 / -1
    }

    .before_you_start_page .platform_heading_strip {
        font-size: 27px
    }

    .before_you_start_page .platform_wide_card {
        flex-direction: column;
        padding: 20px
    }
}

@media (max-width: 768px) {
    .before_you_start_page .steps_block {
        padding: 40px 20px
    }

    .before_you_start_page .readiness_block {
        padding: 40px 20px
    }

    .before_you_start_page .expectations_block {
        padding: 40px 20px
    }

    .before_you_start_page .platform_block {
        padding: 40px 20px
    }
}

.base_page {
    overflow-x: hidden
}

.base_page .drop_reveal {
    animation: dropBounce .32s cubic-bezier(0.34, 1.56, 0.64, 1) both
}

@keyframes dropBounce {
    0% {
        opacity: 0;
        transform: translateY(-40px)
    }

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

.base_page .drop_reveal_slow {
    animation: dropBounce .35s cubic-bezier(0.34, 1.56, 0.64, 1) .08s both
}

.base_page .drop_reveal_slower {
    animation: dropBounce .35s cubic-bezier(0.34, 1.56, 0.64, 1) .16s both
}

.base_page .page_limiter {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px
}

.base_page .label_strip {
    display: inline-block;
    background: #D61168;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    padding: 4px 20px;
    border-radius: 2px;
    margin-bottom: 20px
}

.base_page .heading_highlight {
    display: inline;
    background: #1D3C75;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    line-height: 1.4
}

.base_page .heading_highlight_pink {
    display: inline;
    background: #D61168;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    line-height: 1.4
}

.base_page .heading_highlight_teal {
    display: inline;
    background: #BCDADB;
    color: #1D3C75;
    padding: 4px 8px;
    border-radius: 4px;
    line-height: 1.4
}

.base_page .divider_zigzag {
    width: 100%;
    overflow: hidden;
    line-height: 0
}

.base_page .divider_zigzag svg {
    display: block;
    width: 100%
}

.base_page .outlined_shape {
    position: absolute;
    pointer-events: none;
    border: 2px solid #1d3c7514;
    border-radius: 20px;
    z-index: 0
}

.base_page .pan_image_wrapper {
    overflow: hidden;
    border-radius: 12px
}

.base_page .pan_image_wrapper img {
    display: block;
    width: 100%;
    transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1);
    transform-origin: left center
}

.base_page .pan_image_wrapper:hover img {
    transform: translateX(-6%)
}

.base_page .title_block {
    background: linear-gradient(323deg, #BCDADB 18%, #f5f8ff 72%);
    padding-bottom: 0;
    position: relative
}

.base_page .title_block_image_area {
    position: relative;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
    max-height: 420px
}

.base_page .title_block_image_area img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1);
    transform-origin: left center
}

.base_page .title_block_image_area:hover img {
    transform: translateX(-5%)
}

.base_page .title_block_stripe {
    position: absolute;
    top: 0;
    left: 0;
    width: 8px;
    height: 100%;
    background: #D61168;
    border-radius: 2px 0 0 2px
}

.base_page .title_block_text_area {
    padding: 40px 20px;
    position: relative;
    z-index: 1
}

.base_page .title_block_text_area h1 {
    font-size: 52px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.base_page .title_block_inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px
}

.base_page .title_block_outlined {
    width: 320px;
    height: 320px;
    top: 40px;
    right: -60px;
    transform: rotate(18deg)
}

.base_page .experience_arc {
    background: #fff;
    padding: 80px 0 40px;
    position: relative
}

.base_page .experience_arc_grid {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 40px;
    align-items: start
}

.base_page .experience_arc_text h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.base_page .experience_arc_text p {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a4a;
    margin: 0 0 20px
}

.base_page .experience_arc_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #3a4a6a;
    border-left: 4px solid #BCDADB;
    padding-left: 20px;
    border-radius: 2px;
    margin-top: 8px
}

.base_page .experience_arc_image_col {
    position: relative
}

.base_page .experience_arc_image_col .pan_image_wrapper {
    box-shadow: 2px 10px 44px -2px #d611681a
}

.base_page .experience_arc_image_col img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center;
    display: block
}

.base_page .experience_arc_phases {
    display: flex;
    flex-direction: row;
    gap: 8px;
    margin-top: 20px;
    flex-wrap: wrap
}

.base_page .phase_item {
    flex: 1;
    min-width: 120px;
    background: linear-gradient(323deg, #BCDADB 18%, #e8f4f4 72%);
    border-radius: 6px;
    padding: 20px;
    border-top: 3px solid #1D3C75;
    transition: box-shadow .25s cubic-bezier(0.34, 1.56, 0.64, 1), transform .22s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.base_page .phase_item:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    transform: translateY(-4px)
}

.base_page .phase_item h5 {
    font-size: 16px;
    line-height: 1.4;
    color: #D61168;
    margin: 0 0 8px
}

.base_page .phase_item p {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    margin: 0
}

.base_page .support_band {
    background: #1D3C75;
    padding: 80px 0;
    position: relative
}

.base_page .support_band_outlined {
    width: 400px;
    height: 400px;
    top: -60px;
    left: -80px;
    border-color: #bcdadb1f;
    transform: rotate(-12deg)
}

.base_page .support_band_layout {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 40px;
    align-items: center;
    position: relative;
    z-index: 1
}

.base_page .support_band_image_col .pan_image_wrapper img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center;
    display: block
}

.base_page .support_band_image_col .pan_image_wrapper {
    box-shadow: 2px 10px 44px -2px #d611681a
}

.base_page .support_band_text h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #BCDADB;
    margin: 0 0 20px
}

.base_page .support_band_text p {
    font-size: 18px;
    line-height: 1.6;
    color: #d0e4e4;
    margin: 0 0 20px
}

.base_page .support_band_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #BCDADB;
    border-left: 4px solid #D61168;
    padding-left: 20px;
    border-radius: 2px;
    margin-top: 8px
}

.base_page .support_types {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 20px
}

.base_page .support_type_row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    background: #bcdadb14;
    border-radius: 6px;
    padding: 20px;
    transition: background .28s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.base_page .support_type_row:hover {
    background: #bcdadb29;
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.base_page .support_type_icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    background: #D61168;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center
}

.base_page .support_type_icon .mdi {
    font-size: 20px;
    color: #fff
}

.base_page .support_type_text h5 {
    font-size: 16px;
    line-height: 1.4;
    color: #fff;
    margin: 0 0 4px
}

.base_page .support_type_text p {
    font-size: 16px;
    line-height: 1.4;
    color: #BCDADB;
    margin: 0
}

.base_page .long_value {
    background: linear-gradient(323deg, #f5f8ff 18%, #fff 72%);
    padding: 80px 0;
    position: relative
}

.base_page .long_value_outlined {
    width: 280px;
    height: 280px;
    bottom: 20px;
    right: -40px;
    border-color: #d6116812;
    transform: rotate(30deg)
}

.base_page .long_value_header {
    margin-bottom: 40px
}

.base_page .long_value_header h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.base_page .long_value_header p {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a4a;
    max-width: 640px;
    margin: 0
}

.base_page .long_value_grid {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 20px;
    align-items: start;
    position: relative;
    z-index: 1
}

.base_page .long_value_image_center .pan_image_wrapper img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center;
    display: block
}

.base_page .long_value_image_center .pan_image_wrapper {
    box-shadow: 2px 10px 44px -2px #1d3c751a
}

.base_page .long_value_left,
.base_page .long_value_right {
    display: flex;
    flex-direction: column;
    gap: 20px
}

.base_page .value_card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    border-top: 3px solid #BCDADB;
    box-shadow: 2px 2px 3px -2px #d6116814;
    transition: box-shadow .3s cubic-bezier(0.34, 1.56, 0.64, 1), transform .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.base_page .value_card:hover {
    box-shadow: 2px 10px 44px -2px #d611681a;
    transform: translateY(-4px)
}

.base_page .value_card h5 {
    font-size: 16px;
    line-height: 1.4;
    color: #D61168;
    margin: 0 0 8px
}

.base_page .value_card p {
    font-size: 16px;
    line-height: 1.4;
    color: #1a2a4a;
    margin: 0
}

.base_page .graduation_block {
    padding: 80px 0;
    position: relative;
    background: #fff
}

.base_page .graduation_diagonal {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(323deg, #BCDADB 0%, transparent 48%);
    pointer-events: none;
    z-index: 0;
    border-radius: 0
}

.base_page .graduation_inner {
    position: relative;
    z-index: 1
}

.base_page .graduation_layout {
    display: grid;
    grid-template-columns: 5fr 4fr;
    gap: 40px;
    align-items: start
}

.base_page .graduation_text h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.base_page .graduation_text p {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a4a;
    margin: 0 0 20px
}

.base_page .graduation_text_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #3a4a6a;
    border-left: 4px solid #D61168;
    padding-left: 20px;
    border-radius: 2px;
    margin-top: 8px
}

.base_page .graduation_outcomes {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.base_page .outcome_item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    background: #fff;
    border-radius: 6px;
    padding: 20px;
    box-shadow: 2px 2px 3px -2px #1d3c7514;
    transition: box-shadow .22s cubic-bezier(0.68, -0.55, 0.27, 1.55), transform .2s cubic-bezier(0.68, -0.55, 0.27, 1.55)
}

.base_page .outcome_item:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517;
    transform: translateX(6px)
}

.base_page .outcome_number {
    font-size: 27px;
    line-height: 1.1;
    color: #D61168;
    font-weight: 700;
    min-width: 40px
}

.base_page .outcome_text {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75
}

.base_page .gap_block {
    background: linear-gradient(323deg, #1D3C75 18%, #2a4f8f 72%);
    padding: 80px 0;
    position: relative
}

.base_page .gap_block_outlined {
    width: 360px;
    height: 360px;
    top: -40px;
    right: -60px;
    border-color: #bcdadb1a;
    transform: rotate(22deg)
}

.base_page .gap_layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
    position: relative;
    z-index: 1
}

.base_page .gap_text h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #BCDADB;
    margin: 0 0 20px
}

.base_page .gap_text p {
    font-size: 18px;
    line-height: 1.6;
    color: #d0e4e4;
    margin: 0 0 20px
}

.base_page .gap_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #BCDADB;
    border-left: 4px solid #D61168;
    padding-left: 20px;
    border-radius: 2px
}

.base_page .gap_comparison {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.base_page .gap_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px
}

.base_page .gap_before,
.base_page .gap_after {
    border-radius: 6px;
    padding: 20px;
    font-size: 16px;
    line-height: 1.4
}

.base_page .gap_before {
    background: #ffffff0f;
    color: #a0b8d8;
    border-top: 3px solid #bcdadb4d
}

.base_page .gap_after {
    background: #d6116826;
    color: #fff;
    border-top: 3px solid #D61168
}

.base_page .gap_row_label {
    font-size: 16px;
    line-height: 1.4;
    color: #BCDADB;
    margin-bottom: 4px;
    font-weight: 600
}

.base_page .gap_col_headers {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 4px
}

.base_page .gap_col_label {
    font-size: 16px;
    line-height: 1.4;
    color: #BCDADB;
    font-weight: 700;
    padding: 0 20px
}

.base_page .hesitation_block {
    background: #fff;
    padding: 80px 0;
    position: relative
}

.base_page .hesitation_outlined {
    width: 300px;
    height: 300px;
    bottom: -40px;
    left: -60px;
    border-color: #d611680f;
    transform: rotate(-20deg)
}

.base_page .hesitation_layout {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 40px;
    align-items: start;
    position: relative;
    z-index: 1
}

.base_page .hesitation_intro h2 {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px
}

.base_page .hesitation_intro p {
    font-size: 18px;
    line-height: 1.6;
    color: #1a2a4a;
    margin: 0 0 20px
}

.base_page .hesitation_intro_aside {
    font-size: 16px;
    line-height: 1.6;
    color: #3a4a6a;
    border-left: 4px solid #BCDADB;
    padding-left: 20px;
    border-radius: 2px
}

.base_page .faq_list {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.base_page .faq_item {
    border-radius: 6px;
    border: 1.5px solid #BCDADB;
    overflow: hidden;
    transition: box-shadow .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.base_page .faq_item:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.base_page .faq_question_label {
    display: block;
    width: 100%;
    padding: 20px;
    background: #f4f8fb;
    cursor: pointer;
    font-size: 18px;
    line-height: 1.4;
    color: #1D3C75;
    font-weight: 600;
    border: none;
    text-align: left;
    border-radius: 6px 6px 0 0;
    transition: background .25s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 20px
}

.base_page .faq_question_label:hover {
    background: #e8f2f2
}

.base_page .faq_answer {
    padding: 0 20px 20px;
    font-size: 16px;
    line-height: 1.6;
    color: #1a2a4a;
    background: #fff;
    display: none
}

.base_page .faq_item.open .faq_answer {
    display: block
}

.base_page .faq_item.open .faq_question_label {
    background: #BCDADB;
    color: #1D3C75;
    border-radius: 6px 6px 0 0
}

.base_page .faq_toggle_icon {
    width: 24px;
    height: 24px;
    min-width: 24px;
    border-radius: 50%;
    background: #D61168;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .25s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.base_page .faq_item.open .faq_toggle_icon {
    transform: rotate(45deg)
}

.base_page .faq_toggle_icon .mdi {
    font-size: 18px;
    color: #fff
}

.base_page .portrait_row {
    display: flex;
    flex-direction: row;
    gap: 20px;
    margin-top: 20px;
    flex-wrap: wrap
}

.base_page .portrait_card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    background: #bcdadb26;
    border-radius: 12px;
    padding: 20px;
    flex: 1;
    min-width: 220px;
    transition: box-shadow .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.base_page .portrait_card:hover {
    box-shadow: 2px 5px 25px -2px #1d3c7517
}

.base_page .portrait_circle {
    width: 72px;
    height: 72px;
    min-width: 72px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid #D61168
}

.base_page .portrait_circle img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    object-position: top;
    display: block
}

.base_page .portrait_info h6 {
    font-size: 16px;
    line-height: 1.4;
    color: #1D3C75;
    margin: 0 0 4px
}

.base_page .portrait_info p {
    font-size: 16px;
    line-height: 1.4;
    color: #3a4a6a;
    margin: 0
}

@media (max-width: 1024px) {
    .base_page .experience_arc_grid {
        grid-template-columns: 1fr
    }

    .base_page .long_value_grid {
        grid-template-columns: 1fr 1fr
    }

    .base_page .long_value_image_center {
        display: none
    }

    .base_page .support_band_layout {
        grid-template-columns: 1fr
    }

    .base_page .graduation_layout {
        grid-template-columns: 1fr
    }

    .base_page .gap_layout {
        grid-template-columns: 1fr
    }

    .base_page .hesitation_layout {
        grid-template-columns: 1fr
    }
}

@media (max-width: 768px) {
    .base_page .title_block_text_area h1 {
        font-size: 37px
    }

    .base_page .long_value_grid {
        grid-template-columns: 1fr
    }

    .base_page .experience_arc_phases {
        flex-direction: column
    }

    .base_page .gap_row {
        grid-template-columns: 1fr
    }

    .base_page .gap_col_headers {
        grid-template-columns: 1fr
    }
}

@media (max-width: 640px) {

    .base_page .experience_arc,
    .base_page .support_band,
    .base_page .long_value,
    .base_page .graduation_block,
    .base_page .gap_block,
    .base_page .hesitation_block {
        padding: 40px 0
    }

    .base_page .title_block_text_area h1 {
        font-size: 27px
    }

    .base_page .portrait_row {
        flex-direction: column
    }
}

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

.success_page .success_card {
    max-width: 560px;
    width: 100%;
    background: #fff;
    border-radius: 12px;
    box-shadow: 2px 10px 44px -2px #1d3c751a;
    padding: 40px;
    text-align: center;
    position: relative
}

.success_page .success_card .icon_ring {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    background: #BCDADB;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px
}

.success_page .success_card .icon_ring svg {
    display: block
}

.success_page .success_card .success_heading {
    font-size: 37px;
    line-height: 1.1;
    color: #1D3C75;
    margin: 0 0 20px;
    padding: 4px 12px;
    display: inline-block;
    background: #BCDADB;
    border-radius: 4px
}

.success_page .success_card .success_message {
    font-size: 18px;
    line-height: 1.6;
    color: #1D3C75;
    margin: 0 0 40px
}

.success_page .success_card .success_note {
    font-size: 16px;
    line-height: 1.4;
    color: #444c5c;
    margin: 0 0 40px;
    padding: 20px;
    border-radius: 6px;
    background: #f4f8f8;
    border-left: 4px solid #BCDADB;
    border-top: 1px solid #BCDADB;
    text-align: left
}

.success_page .success_card .action_row {
    display: flex;
    flex-direction: row;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap
}

.success_page .success_card .button_primary {
    display: inline-block;
    padding: 20px 40px;
    background: #D61168;
    color: #fff;
    font-size: 18px;
    line-height: 1.1;
    border-radius: 6px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    box-shadow: 2px 5px 25px -2px #d6116817;
    transition: background-color .22s cubic-bezier(0.34, 1.56, 0.64, 1), width .28s cubic-bezier(0.34, 1.56, 0.64, 1), padding .28s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.success_page .success_card .button_primary:hover {
    background: #b80d58;
    padding-left: 48px;
    padding-right: 48px
}

.success_page .success_card .button_primary:focus {
    outline: 3px solid #1D3C75;
    outline-offset: 2px
}

.success_page .success_card .button_secondary {
    display: inline-block;
    padding: 20px;
    background: transparent;
    color: #1D3C75;
    font-size: 16px;
    line-height: 1.1;
    border-radius: 6px;
    text-decoration: none;
    border: 2px solid #1D3C75;
    cursor: pointer;
    transition: background-color .25s cubic-bezier(0.68, -0.55, 0.27, 1.55), padding .3s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.success_page .success_card .button_secondary:hover {
    background: #1D3C75;
    color: #fff;
    padding-left: 28px;
    padding-right: 28px
}

.success_page .success_card .button_secondary:focus {
    outline: 3px solid #D61168;
    outline-offset: 2px
}

.success_page .success_card .divider_line {
    width: 40px;
    height: 2px;
    background: #BCDADB;
    border-radius: 2px;
    margin: 40px auto
}

.success_page .success_card .contact_hint {
    font-size: 16px;
    line-height: 1.4;
    color: #444c5c;
    margin: 0
}

.success_page .success_card .contact_hint a {
    color: #D61168;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .2s cubic-bezier(0.34, 1.56, 0.64, 1)
}

.success_page .success_card .contact_hint a:hover {
    color: #b80d58
}

@media (max-width: 640px) {
    .success_page {
        padding: 40px 20px
    }

    .success_page .success_card {
        padding: 40px 20px
    }

    .success_page .success_card .success_heading {
        font-size: 27px
    }

    .success_page .success_card .action_row {
        flex-direction: column;
        align-items: stretch
    }

    .success_page .success_card .button_primary,
    .success_page .success_card .button_secondary {
        text-align: center
    }
}