html {
    box-sizing: border-box;
    scroll-behavior: auto
}

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

body {
    margin: 0;
    -webkit-text-size-adjust: 100%;
    word-break: break-word;
    overflow-wrap: break-word
}

.pg_header {
    background: #fff;
    border-bottom: 1px solid #CFCBBB;
    position: relative;
    z-index: 100
}

.hd_top_bar {
    background: linear-gradient(90deg, #309FBA 0%, #2a8fa8 100%);
    padding: 6px 24px
}

.hd_top_inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 24px
}

.hd_contact_link {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #fff;
    text-decoration: none;
    letter-spacing: .04em;
    transition: opacity .15s ease-out
}

.hd_contact_link:hover {
    opacity: .8
}

.hd_contact_link:focus {
    outline: 2px solid #fff;
    outline-offset: 3px;
    border-radius: 3px;
    transform: scale(1.02)
}

.hd_contact_sep {
    color: #ffffff73;
    font-size: 15px;
    font-family: 'PT Serif', serif
}

.hd_main_row {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px
}

.hd_nav_area {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px
}

.hd_nav_link {
    font-family: 'PT Serif', serif;
    font-size: 17px;
    color: #2c2c2c;
    text-decoration: none;
    padding: 12px;
    border-radius: 6px;
    transition: background .12s ease-out, color .12s ease-out;
    white-space: nowrap;
    display: inline-block;
    min-height: 44px;
    line-height: 1.2;
    display: flex;
    align-items: center
}

.hd_nav_link:hover {
    background: #309fba17;
    color: #309FBA
}

.hd_nav_link:focus {
    outline: 2px solid #309FBA;
    outline-offset: 2px;
    transform: scale(1.02)
}

.hd_nav_link.active_pg {
    color: #309FBA;
    font-weight: 700
}

.hd_logo_zone {
    flex-shrink: 0;
    background: #fff;
    border: 1.5px solid #CFCBBB;
    border-radius: 10px;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px -2px #309fba0f inset 0 0 0 4px #e1c4e12e;
    padding: 6px
}

.hd_logo_zone:focus-within {
    transform: scale(1.02)
}

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

.hd_brand_name {
    font-family: 'PT Serif', serif;
    font-size: 21px;
    font-weight: 700;
    color: #2c2c2c;
    letter-spacing: .01em;
    line-height: 1.2;
    white-space: nowrap
}

.hd_logo_group {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none
}

.hd_logo_group:focus {
    outline: 2px solid #309FBA;
    outline-offset: 4px;
    border-radius: 6px;
    transform: scale(1.02)
}

.ft_root {
    background: #f5f4f0;
    border-top: 1px solid #CFCBBB;
    padding: 40px 24px 24px
}

.ft_inner {
    max-width: 1100px;
    margin: 0 auto
}

.ft_main_row {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: wrap;
    padding-bottom: 24px;
    border-bottom: 1px solid #CFCBBB;
    margin-bottom: 24px
}

.ft_brand_col {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 160px
}

.ft_logo_wrap {
    background: #fff;
    border: 1.5px solid #CFCBBB;
    border-radius: 10px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px -2px #309fba0f 0 4px 14px -2px #309fba1a;
    padding: 6px
}

.ft_logo_img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    display: block
}

.ft_brand_label {
    font-family: 'PT Serif', serif;
    font-size: 17px;
    font-weight: 700;
    color: #2c2c2c;
    line-height: 1.2
}

.ft_tagline {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #5a5850;
    line-height: 1.55;
    max-width: 220px
}

.ft_links_col {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.ft_col_label {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    font-weight: 700;
    color: #2c2c2c;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 6px;
    line-height: 1.2
}

.ft_nav_link {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #4a4845;
    text-decoration: none;
    line-height: 1.55;
    padding: 6px 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    transition: color .15s ease-out
}

.ft_nav_link:hover {
    color: #309FBA
}

.ft_nav_link:focus {
    outline: 2px solid #309FBA;
    outline-offset: 2px;
    border-radius: 3px;
    transform: scale(1.02)
}

.ft_contact_col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 200px
}

.ft_contact_item {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #4a4845;
    line-height: 1.55;
    text-decoration: none;
    padding: 6px 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    transition: color .12s ease
}

.ft_contact_item:hover {
    color: #309FBA
}

.ft_contact_item:focus {
    outline: 2px solid #309FBA;
    outline-offset: 2px;
    border-radius: 3px;
    transform: scale(1.02)
}

.ft_address_text {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #4a4845;
    line-height: 1.55
}

.ft_bottom_row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px
}

.ft_copy {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #7a7870;
    line-height: 1.55
}

.ft_legal_links {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap
}

.ft_legal_link {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #7a7870;
    text-decoration: none;
    line-height: 1.55;
    transition: color .15s ease-out;
    min-height: 44px;
    display: flex;
    align-items: center
}

.ft_legal_link:hover {
    color: #309FBA
}

.ft_legal_link:focus {
    outline: 2px solid #309FBA;
    outline-offset: 2px;
    border-radius: 3px;
    transform: scale(1.02)
}

.ck_strip {
    display: none;
    position: fixed;
    bottom: 24px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 90%;
    max-width: 720px;
    background: #fff;
    border: 1.5px solid #CFCBBB;
    border-radius: 10px;
    box-shadow: 0 12px 44px -2px #309fba24;
    z-index: 1200;
    padding: 24px;
    font-family: 'PT Serif', serif
}

.ck_strip_inner {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.ck_headline {
    font-size: 17px;
    font-weight: 700;
    color: #2c2c2c;
    line-height: 1.2
}

.ck_desc {
    font-size: 15px;
    color: #4a4845;
    line-height: 1.55
}

.ck_actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap
}

.ck_accept_btn {
    font-family: 'PT Serif', serif;
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    background: #309FBA;
    border: none;
    border-radius: 6px;
    padding: 12px 24px;
    cursor: pointer;
    min-height: 44px;
    transition: background .15s ease-out, transform .1s ease
}

.ck_accept_btn:hover {
    background: #2a8fa8
}

.ck_accept_btn:active {
    transform: scale(0.97)
}

.ck_accept_btn:focus {
    outline: 2px solid #309FBA;
    outline-offset: 3px;
    transform: scale(1.02)
}

.ck_decline_lnk {
    font-family: 'PT Serif', serif;
    font-size: 15px;
    color: #7a7870;
    background: none;
    border: 1px solid #CFCBBB;
    border-radius: 6px;
    padding: 12px 24px;
    cursor: pointer;
    min-height: 44px;
    transition: color .15s ease-out, border-color .15s ease-out, transform .1s ease;
    font-weight: 400
}

.ck_decline_lnk:hover {
    color: #2c2c2c;
    border-color: #aaa89a
}

.ck_decline_lnk:active {
    transform: scale(0.97)
}

.ck_decline_lnk:focus {
    outline: 2px solid #309FBA;
    outline-offset: 3px;
    transform: scale(1.02)
}

@media (max-width: 700px) {
    .hd_main_row {
        flex-wrap: wrap;
        gap: 12px;
        padding: 12px 24px
    }

    .hd_nav_area {
        order: 2;
        width: 100%
    }

    .hd_logo_group {
        order: 1
    }

    .ft_main_row {
        flex-direction: column;
        gap: 24px
    }

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

    .hd_logo_zone img {
        display: block
    }
}

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

.legal-block h1 {
    font-size: 51px;
    line-height: 1.2;
    color: #1b2a30;
    margin-bottom: 24px;
    margin-top: 0
}

.legal-block h2 {
    font-size: 37px;
    line-height: 1.2;
    color: #1b2a30;
    margin-top: 80px;
    margin-bottom: 24px
}

.legal-block h3 {
    font-size: 27px;
    line-height: 1.55;
    color: #1b2a30;
    margin-top: 40px;
    margin-bottom: 12px
}

.legal-block h4 {
    font-size: 21px;
    line-height: 1.55;
    color: #1b2a30;
    margin-top: 40px;
    margin-bottom: 12px
}

.legal-block h5 {
    font-size: 17px;
    line-height: 1.55;
    color: #2c3e42;
    margin-top: 24px;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: .08em
}

.legal-block h6 {
    font-size: 15px;
    line-height: 1.55;
    color: #2c3e42;
    margin-top: 24px;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: .1em
}

.legal-block p {
    font-size: 17px;
    line-height: 1.8;
    color: #2d3a3e;
    margin-top: 0;
    margin-bottom: 24px
}

.legal-block ul,
.legal-block ol {
    font-size: 17px;
    line-height: 1.8;
    color: #2d3a3e;
    margin-top: 0;
    margin-bottom: 24px;
    padding-left: 40px
}

.legal-block ul {
    list-style-type: disc
}

.legal-block ol {
    list-style-type: decimal
}

.legal-block li {
    margin-bottom: 6px;
    padding-left: 6px
}

.legal-block li:last-child {
    margin-bottom: 0
}

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

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

.legal-block em,
.legal-block i {
    font-style: italic;
    color: #3a4a50
}

.legal-block hr {
    border: none;
    border-top: 1px solid #CFCBBB;
    margin-top: 40px;
    margin-bottom: 40px;
    opacity: .7
}

.legal-block div {
    font-size: 17px;
    line-height: 1.8;
    color: #2d3a3e
}

.legal-block a {
    color: #309FBA;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .15s ease-out, text-decoration-color .15s ease-out
}

.legal-block a:hover {
    color: #1b7a92;
    text-decoration-color: #1b7a92
}

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

.srvdet .pg_wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

@keyframes fadeBlurIn {
    from {
        opacity: 0;
        filter: blur(8px)
    }

    to {
        opacity: 1;
        filter: blur(0)
    }
}

.srvdet .anim_load {
    animation: fadeBlurIn .5s ease-out both
}

.srvdet .anim_load_delay {
    animation: fadeBlurIn .6s ease-out .15s both
}

.srvdet .anim_load_late {
    animation: fadeBlurIn .7s ease-out .28s both
}

.srvdet .top_band {
    background: #fff;
    padding: 80px 24px 40px;
    position: relative
}

.srvdet .top_band::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(to left, #309FBA, #E1C4E1)
}

.srvdet .top_grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start
}

.srvdet .top_text_col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.srvdet .cat_tag {
    display: inline-block;
    background: #E1C4E1;
    color: #2a2a35;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 3px;
    align-self: flex-start
}

.srvdet .main_heading {
    font-size: 37px;
    line-height: 1.2;
    color: #1e2535;
    font-weight: 800;
    margin: 0;
    padding-left: 16px;
    border-left: none;
    position: relative
}

.srvdet .main_heading::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 4px;
    background: #309FBA;
    border-radius: 3px
}

.srvdet .sub_desc {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a;
    margin: 0
}

.srvdet .meta_row {
    display: flex;
    flex-direction: row;
    gap: 24px;
    flex-wrap: wrap;
    align-items: center
}

.srvdet .meta_chip {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.srvdet .meta_label {
    font-size: 15px;
    color: #6a6e7e;
    text-transform: uppercase;
    letter-spacing: .07em
}

.srvdet .meta_val {
    font-size: 17px;
    font-weight: 700;
    color: #1e2535
}

.srvdet .meta_val.seats_warn {
    color: #b94040
}

.srvdet .price_block {
    display: inline-flex;
    flex-direction: column;
    gap: 6px;
    background: linear-gradient(to left, #E1C4E1, #d4eef5);
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.srvdet .price_num {
    font-size: 51px;
    font-weight: 900;
    color: #1e2535;
    line-height: 1.2
}

.srvdet .price_label {
    font-size: 15px;
    color: #3a3d4a;
    text-transform: uppercase;
    letter-spacing: .07em
}

.srvdet .enroll_btn {
    display: inline-block;
    background: #309FBA;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    padding: 12px 40px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background .18s ease-out, transform .12s ease-out;
    box-shadow: 0 4px 14px -2px #309fba24;
    align-self: flex-start;
    margin-top: 6px
}

.srvdet .enroll_btn:hover {
    background: #237a90
}

.srvdet .enroll_btn:active {
    transform: scale(0.97)
}

.srvdet .top_img_col {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.srvdet .top_img_col img {
    width: 100%;
    display: block;
    object-fit: cover;
    border-radius: 10px
}

.srvdet .img_vignette {
    position: absolute;
    inset: 0;
    border-radius: 10px;
    background: radial-gradient(ellipse at 30% 40%, transparent 40%, #1e253561 100%);
    pointer-events: none
}

.srvdet .grid_deco {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: 10px
}

.srvdet .grid_deco::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#309fba0f 1px, transparent 1px), linear-gradient(90deg, #309fba0f 1px, transparent 1px);
    background-size: 32px 32px
}

.srvdet .top_band_bg_deco {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden
}

.srvdet .top_band_bg_deco::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#309fba0a 1px, transparent 1px), linear-gradient(90deg, #309fba0a 1px, transparent 1px);
    background-size: 48px 48px
}

.srvdet .desc_band {
    background: #f5f4f0;
    padding: 80px 24px
}

.srvdet .desc_inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 40px;
    align-items: start
}

.srvdet .desc_text_area h2 {
    font-size: 27px;
    font-weight: 800;
    color: #1e2535;
    margin: 0 0 24px;
    padding-left: 16px;
    position: relative;
    line-height: 1.2
}

.srvdet .desc_text_area h2::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 4px;
    background: #E1C4E1;
    border-radius: 3px
}

.srvdet .desc_text_area p {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a;
    margin: 0 0 24px
}

.srvdet .desc_text_area blockquote {
    margin: 24px 0;
    padding: 24px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 4px -2px #309fba0f;
    font-size: 21px;
    font-style: italic;
    color: #309FBA;
    line-height: 1.55
}

.srvdet .desc_text_area ol {
    padding-left: 24px;
    margin: 0 0 24px
}

.srvdet .desc_text_area li {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a;
    margin-bottom: 12px
}

.srvdet .desc_text_area strong {
    color: #1e2535
}

.srvdet .desc_text_area figure {
    margin: 24px 0
}

.srvdet .desc_text_area figure img {
    width: 100%;
    border-radius: 10px
}

.srvdet .desc_text_area figcaption {
    font-size: 15px;
    color: #6a6e7e;
    margin-top: 6px
}

.srvdet .desc_text_area details {
    margin-bottom: 12px;
    border-radius: 6px;
    border: 1px solid #CFCBBB;
    overflow: hidden
}

.srvdet .desc_text_area summary {
    padding: 12px 24px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    color: #1e2535
}

.srvdet .desc_text_area details[open] summary {
    background: #f5f4f0
}

.srvdet .desc_text_area details> :not(summary) {
    padding: 12px 24px;
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a
}

.srvdet .desc_text_area abbr {
    text-decoration: underline dotted;
    cursor: help
}

.srvdet .desc_text_area cite {
    font-style: italic;
    color: #6a6e7e
}

.srvdet .desc_sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.srvdet .sidebar_stat_card {
    background: #fff;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 4px 14px -2px #309fba1a;
    border-top: 4px solid #309FBA;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.srvdet .stat_num {
    font-size: 37px;
    font-weight: 900;
    color: #309FBA;
    line-height: 1.2
}

.srvdet .stat_desc {
    font-size: 15px;
    color: #3a3d4a;
    line-height: 1.55
}

.srvdet .sidebar_quote_card {
    background: #E1C4E1;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 4px 14px -2px #e1c4e124
}

.srvdet .sidebar_quote_card p {
    font-size: 17px;
    font-style: italic;
    color: #2a2a35;
    line-height: 1.55;
    margin: 0 0 12px
}

.srvdet .sidebar_quote_card cite {
    font-size: 15px;
    color: #4a3a4a;
    font-style: normal;
    font-weight: 600
}

.srvdet .prog_band {
    background: #fff;
    padding: 80px 24px;
    position: relative
}

.srvdet .prog_band::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(to left, #E1C4E1, #CFCBBB)
}

.srvdet .prog_inner {
    max-width: 1100px;
    margin: 0 auto
}

.srvdet .prog_head {
    font-size: 27px;
    font-weight: 800;
    color: #1e2535;
    margin: 0 0 40px;
    padding-left: 16px;
    position: relative;
    line-height: 1.2
}

.srvdet .prog_head::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 4px;
    background: #309FBA;
    border-radius: 3px
}

.srvdet .prog_content h2 {
    font-size: 21px;
    font-weight: 700;
    color: #1e2535;
    margin: 40px 0 12px;
    line-height: 1.2
}

.srvdet .prog_content h3 {
    font-size: 17px;
    font-weight: 700;
    color: #309FBA;
    margin: 24px 0 6px
}

.srvdet .prog_content p {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a;
    margin: 0 0 12px
}

.srvdet .prog_content strong {
    color: #1e2535
}

.srvdet .prog_content abbr {
    text-decoration: underline dotted;
    cursor: help
}

.srvdet .prog_content ol {
    padding-left: 24px;
    margin: 0 0 24px;
    counter-reset: prog_counter;
    list-style: none
}

.srvdet .prog_content ol li {
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a;
    margin-bottom: 12px;
    counter-increment: prog_counter;
    position: relative;
    padding-left: 40px
}

.srvdet .prog_content ol li::before {
    content: counter(prog_counter);
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    background: #309FBA;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center
}

.srvdet .prog_content dl {
    margin: 0 0 24px
}

.srvdet .prog_content dt {
    font-size: 17px;
    font-weight: 700;
    color: #1e2535;
    margin-top: 12px
}

.srvdet .prog_content dd {
    font-size: 17px;
    color: #3a3d4a;
    margin-left: 24px;
    line-height: 1.55
}

.srvdet .prog_content blockquote {
    margin: 24px 0;
    padding: 24px;
    background: #f5f4f0;
    border-radius: 10px;
    font-size: 17px;
    font-style: italic;
    color: #3a3d4a;
    line-height: 1.55
}

.srvdet .prog_content details {
    margin-bottom: 12px;
    border-radius: 6px;
    border: 1px solid #CFCBBB
}

.srvdet .prog_content summary {
    padding: 12px 24px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    color: #1e2535
}

.srvdet .prog_content details> :not(summary) {
    padding: 12px 24px;
    font-size: 17px;
    line-height: 1.55;
    color: #3a3d4a
}

.srvdet .prog_content cite {
    font-style: italic;
    color: #6a6e7e
}

.srvdet .lines_deco {
    position: absolute;
    bottom: 24px;
    right: 24px;
    display: flex;
    flex-direction: row;
    gap: 6px;
    pointer-events: none
}

.srvdet .lines_deco span {
    display: block;
    width: 2px;
    height: 48px;
    background: #CFCBBB;
    border-radius: 3px;
    opacity: .5
}

.srvdet .enroll_band {
    background: #309FBA;
    padding: 80px 24px;
    position: relative;
    overflow: hidden
}

.srvdet .enroll_band_bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden
}

.srvdet .enroll_band_bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(#ffffff0d 1px, transparent 1px), linear-gradient(90deg, #ffffff0d 1px, transparent 1px);
    background-size: 40px 40px
}

.srvdet .enroll_inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap
}

.srvdet .enroll_text h2 {
    font-size: 27px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 12px;
    line-height: 1.2
}

.srvdet .enroll_text p {
    font-size: 17px;
    color: #ffffffe0;
    line-height: 1.55;
    margin: 0;
    max-width: 520px
}

.srvdet .enroll_action {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start
}

.srvdet .enroll_price_tag {
    font-size: 37px;
    font-weight: 900;
    color: #fff;
    line-height: 1.2
}

.srvdet .enroll_seats {
    font-size: 15px;
    color: #fffc;
    text-transform: uppercase;
    letter-spacing: .07em
}

.srvdet .btn_enroll_main {
    display: inline-block;
    background: #fff;
    color: #309FBA;
    font-size: 21px;
    font-weight: 800;
    padding: 12px 40px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background .18s ease-out, color .18s ease-out, transform .12s ease-out;
    box-shadow: 0 4px 14px -2px #309fba24
}

.srvdet .btn_enroll_main:hover {
    background: #f0fafd
}

.srvdet .btn_enroll_main:active {
    transform: scale(0.97)
}

.srvdet .btn_contact_sec {
    display: inline-block;
    background: transparent;
    color: #ffffffe6;
    font-size: 15px;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid #fff6;
    cursor: pointer;
    text-decoration: none;
    transition: border-color .15s ease-out, background .15s ease-out, transform .12s ease-out
}

.srvdet .btn_contact_sec:hover {
    background: #ffffff1a;
    border-color: #ffffffb3
}

.srvdet .btn_contact_sec:active {
    transform: scale(0.97)
}

@media (max-width: 768px) {
    .srvdet .top_grid {
        grid-template-columns: 1fr
    }

    .srvdet .top_img_col {
        display: none
    }

    .srvdet .desc_inner {
        grid-template-columns: 1fr
    }

    .srvdet .desc_sidebar {
        display: none
    }

    .srvdet .enroll_inner {
        flex-direction: column;
        align-items: flex-start
    }

    .srvdet .main_heading {
        font-size: 27px
    }

    .srvdet .price_num {
        font-size: 37px
    }

    .srvdet .enroll_price_tag {
        font-size: 27px
    }
}

@media print {
    .srvdet .top_band {
        padding: 24px 0;
        background: #fff
    }

    .srvdet .top_band::before,
    .srvdet .top_band_bg_deco,
    .srvdet .img_vignette,
    .srvdet .grid_deco,
    .srvdet .lines_deco,
    .srvdet .enroll_band_bg {
        display: none
    }

    .srvdet .top_grid {
        grid-template-columns: 1fr;
        gap: 12px
    }

    .srvdet .top_img_col {
        display: none
    }

    .srvdet .enroll_btn,
    .srvdet .btn_enroll_main,
    .srvdet .btn_contact_sec {
        display: none
    }

    .srvdet .desc_band {
        background: #fff;
        padding: 24px 0
    }

    .srvdet .desc_inner {
        grid-template-columns: 1fr
    }

    .srvdet .desc_sidebar {
        display: none
    }

    .srvdet .prog_band {
        padding: 24px 0;
        background: #fff
    }

    .srvdet .prog_band::before {
        display: none
    }

    .srvdet .enroll_band {
        background: #fff;
        padding: 24px 0
    }

    .srvdet .enroll_text h2,
    .srvdet .enroll_text p,
    .srvdet .enroll_price_tag,
    .srvdet .enroll_seats {
        color: #1e2535
    }

    .srvdet .sidebar_stat_card,
    .srvdet .sidebar_quote_card,
    .srvdet .price_block {
        box-shadow: none;
        border: 1px solid #CFCBBB;
        background: #fff
    }

    .srvdet .cat_tag {
        background: #fff;
        border: 1px solid #CFCBBB
    }

    .srvdet * {
        box-shadow: none !important
    }

    .srvdet .main_heading {
        font-size: 21px
    }

    .srvdet .pg_wrap,
    .srvdet .top_grid,
    .srvdet .desc_inner,
    .srvdet .prog_inner,
    .srvdet .enroll_inner {
        max-width: 100%;
        padding: 0
    }

    .srvdet .prog_content ol li::before {
        background: #309FBA;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact
    }
}

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

.cont_us .pg_wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.cont_us .fade_in {
    opacity: 0;
    animation: fadeReveal .2s ease-out forwards
}

.cont_us .fade_in.delay_1 {
    animation-delay: .1s
}

.cont_us .fade_in.delay_2 {
    animation-delay: .18s
}

.cont_us .fade_in.delay_3 {
    animation-delay: .26s
}

@keyframes fadeReveal {
    to {
        opacity: 1
    }
}

.cont_us .top_band {
    width: 100%;
    height: 4px;
    background: linear-gradient(to left, #309FBA, #E1C4E1)
}

.cont_us .opener {
    padding: 80px 0 40px;
    background: #fff
}

.cont_us .opener_grid {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: 80px;
    align-items: center
}

.cont_us .img_col {
    position: relative
}

.cont_us .img_frame {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.cont_us .img_frame img {
    width: 100%;
    display: block;
    object-fit: cover;
    transition: transform .2s ease-out;
    filter: saturate(0.85) brightness(1.05)
}

.cont_us .img_frame:hover img {
    transform: scale(1.03)
}

.cont_us .img_frame::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to left, #309fba61, #e1c4e12e);
    opacity: 0;
    transition: opacity .18s ease-out;
    pointer-events: none
}

.cont_us .img_frame:hover::after {
    opacity: 1
}

.cont_us .corner_acc {
    position: absolute;
    top: -6px;
    left: -6px;
    width: 40px;
    height: 40px;
    border-top: 3px solid #309FBA;
    border-left: 3px solid #309FBA;
    border-radius: 3px 0 0 0;
    pointer-events: none
}

.cont_us .text_col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.cont_us .eyebrow {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #309FBA
}

.cont_us .opener_h {
    font-size: 51px;
    line-height: 1.2;
    font-weight: 800;
    color: #1b2d35;
    margin: 0
}

.cont_us .opener_h em {
    font-style: italic;
    color: #E1C4E1;
    -webkit-background-clip: unset
}

.cont_us .opener_lead {
    font-size: 17px;
    line-height: 1.55;
    color: #3a4a50;
    margin: 0
}

.cont_us .opener_quote {
    border-radius: 6px;
    background: #f5f7f8;
    padding: 24px;
    font-size: 21px;
    line-height: 1.55;
    font-style: italic;
    color: #309FBA;
    box-shadow: inset 0 6px 10px -4px #309fba0f;
    margin: 0
}

.cont_us .divider_diamonds {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 0;
    overflow: hidden
}

.cont_us .divider_diamonds span {
    display: inline-block;
    width: 6px;
    height: 6px;
    background: #CFCBBB;
    transform: rotate(45deg);
    flex-shrink: 0
}

.cont_us .divider_diamonds span:nth-child(3n+1) {
    background: #309FBA
}

.cont_us .form_belt {
    padding: 80px 0;
    background: linear-gradient(to left, #cfcbbb2e, #e1c4e124);
    position: relative
}

.cont_us .form_belt::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 400px;
    background: radial-gradient(ellipse at center, #309fba12 0%, transparent 70%);
    pointer-events: none;
    border-radius: 50%
}

.cont_us .form_layout {
    display: grid;
    grid-template-columns: 1.1fr 1.6fr;
    gap: 80px;
    align-items: start
}

.cont_us .form_aside {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-top: 12px
}

.cont_us .aside_label {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #309FBA
}

.cont_us .aside_h {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 800;
    color: #1b2d35;
    margin: 0
}

.cont_us .aside_body {
    font-size: 17px;
    line-height: 1.55;
    color: #3a4a50;
    margin: 0
}

.cont_us .ranked_list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 12px
}

.cont_us .rank_item {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.cont_us .rank_top {
    display: flex;
    align-items: center;
    gap: 12px
}

.cont_us .rank_num {
    font-size: 27px;
    font-weight: 800;
    color: #CFCBBB;
    line-height: 1.2;
    min-width: 32px
}

.cont_us .rank_label {
    font-size: 15px;
    font-weight: 600;
    color: #1b2d35
}

.cont_us .rank_bar_wrap {
    height: 4px;
    background: #eceae4;
    border-radius: 3px;
    overflow: hidden;
    margin-left: 44px
}

.cont_us .rank_bar {
    height: 100%;
    border-radius: 3px;
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    transition: width .18s ease-out
}

.cont_us .contact_form {
    background: #fff;
    border-radius: 10px;
    padding: 40px;
    box-shadow: 0 4px 14px -2px #309fba1a;
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative
}

.cont_us .contact_form::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 40px;
    border-top: 3px solid #E1C4E1;
    border-right: 3px solid #E1C4E1;
    border-radius: 0 10px 0 0;
    pointer-events: none
}

.cont_us .form_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
}

.cont_us .field_grp {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.cont_us .field_grp.full {
    grid-column: 1 / -1
}

.cont_us .f_label {
    font-size: 15px;
    font-weight: 600;
    color: #1b2d35;
    text-transform: uppercase;
    letter-spacing: .07em
}

.cont_us .f_input {
    border: 1.5px solid #CFCBBB;
    border-radius: 6px;
    padding: 12px;
    font-size: 15px;
    color: #1b2d35;
    background: #fafcfc;
    outline: none;
    transition: border-color .15s ease-out, box-shadow .15s ease-out;
    width: 100%;
    box-sizing: border-box
}

.cont_us .f_input::placeholder {
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: .06em;
    color: #a0aaad
}

.cont_us .f_input:focus {
    border-color: #309FBA;
    box-shadow: 0 1px 4px -2px #309fba0f
}

.cont_us .f_select {
    border: 1.5px solid #CFCBBB;
    border-radius: 6px;
    padding: 12px;
    font-size: 15px;
    color: #1b2d35;
    background: #fafcfc;
    outline: none;
    width: 100%;
    box-sizing: border-box;
    transition: border-color .15s ease-out;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23309FBA' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
    cursor: pointer
}

.cont_us .f_select:focus {
    border-color: #309FBA
}

.cont_us .radio_grp {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap
}

.cont_us .radio_opt {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer
}

.cont_us .radio_opt input[type="radio"] {
    accent-color: #309FBA;
    width: 16px;
    height: 16px;
    cursor: pointer
}

.cont_us .radio_opt_label {
    font-size: 15px;
    color: #3a4a50;
    cursor: pointer
}

.cont_us .privacy_row {
    display: flex;
    align-items: flex-start;
    gap: 12px
}

.cont_us .privacy_row input[type="checkbox"] {
    accent-color: #309FBA;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex-shrink: 0;
    cursor: pointer
}

.cont_us .privacy_txt {
    font-size: 15px;
    line-height: 1.55;
    color: #3a4a50;
    margin: 0
}

.cont_us .privacy_txt a {
    color: #309FBA;
    text-decoration: underline;
    text-underline-offset: 2px
}

.cont_us .privacy_txt a:hover {
    color: #1b2d35
}

.cont_us .btn_submit {
    display: inline-block;
    padding: 16px 40px;
    background: linear-gradient(to left, #309FBA, #2a8fa8);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: .08em;
    box-shadow: 0 4px 14px -2px #309fba24;
    transition: box-shadow .15s ease-out, transform .1s ease-out;
    align-self: flex-start
}

.cont_us .btn_submit:hover {
    box-shadow: 0 12px 44px -2px #309fba24
}

.cont_us .btn_submit:active {
    transform: scale(0.97)
}

.cont_us .btn_submit:focus-visible {
    outline: 2px solid #309FBA;
    outline-offset: 3px
}

.cont_us .info_strip {
    padding: 80px 0;
    background: #fff
}

.cont_us .info_strip_inner {
    display: flex;
    flex-direction: column;
    gap: 40px
}

.cont_us .strip_top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap
}

.cont_us .strip_h {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 800;
    color: #1b2d35;
    margin: 0;
    position: relative;
    padding-left: 16px
}

.cont_us .strip_h::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 3px;
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    border-radius: 3px
}

.cont_us .strip_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #3a4a50;
    max-width: 420px;
    margin: 0
}

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

.cont_us .info_card {
    border-radius: 10px;
    padding: 24px;
    background: #f5f7f8;
    box-shadow: 0 1px 4px -2px #309fba0f;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow .18s ease-out
}

.cont_us .info_card:hover {
    box-shadow: 0 4px 14px -2px #309fba1a
}

.cont_us .card_ico {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.cont_us .card_ico svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: #fff;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round
}

.cont_us .card_type {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #309FBA
}

.cont_us .card_val {
    font-size: 17px;
    line-height: 1.55;
    color: #1b2d35;
    font-weight: 500;
    margin: 0;
    word-break: break-word
}

.cont_us .card_note {
    font-size: 15px;
    color: #3a4a50;
    line-height: 1.55;
    margin: 0
}

.cont_us .curve_deco {
    display: block;
    width: 100%;
    height: 24px;
    overflow: hidden;
    pointer-events: none
}

.cont_us .curve_deco svg {
    width: 100%;
    height: 24px
}

@media (max-width: 800px) {
    .cont_us .opener_grid {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .cont_us .img_col {
        display: none
    }

    .cont_us .form_layout {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .cont_us .form_row {
        grid-template-columns: 1fr
    }

    .cont_us .info_cards {
        grid-template-columns: 1fr
    }

    .cont_us .opener_h {
        font-size: 37px
    }

    .cont_us .strip_top {
        flex-direction: column;
        align-items: flex-start
    }

    .cont_us .contact_form {
        padding: 24px
    }
}

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

.lrn_prog .pg_inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.lrn_prog .title_blk {
    background-color: #f5f3ef;
    padding: 80px 0 40px;
    position: relative
}

.lrn_prog .title_blk .circles_bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none
}

.lrn_prog .title_blk .circles_bg::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: #E1C4E1;
    opacity: .13;
    top: -120px;
    right: -80px
}

.lrn_prog .title_blk .circles_bg::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: #309FBA;
    opacity: .08;
    bottom: 40px;
    left: 60px
}

.lrn_prog .title_cols {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 40px
}

.lrn_prog .title_text_col {
    flex: 0 0 52%;
    padding-bottom: 40px
}

.lrn_prog .title_img_col {
    flex: 0 0 calc(48% - 40px);
    position: relative
}

.lrn_prog .prog_eyebrow {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #309FBA;
    margin-bottom: 24px;
    display: block
}

.lrn_prog .prog_h1 {
    font-size: 51px;
    line-height: 1.2;
    font-weight: 800;
    color: #1b2a32;
    margin-bottom: 24px
}

.lrn_prog .prog_h1 .hl_term {
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent
}

.lrn_prog .counter_row {
    display: flex;
    flex-direction: row;
    gap: 40px;
    margin-bottom: 24px;
    align-items: center
}

.lrn_prog .counter_item {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.lrn_prog .counter_num {
    font-size: 37px;
    font-weight: 800;
    line-height: 1.2;
    color: #309FBA
}

.lrn_prog .counter_label {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5a62
}

.lrn_prog .title_desc {
    font-size: 17px;
    line-height: 1.55;
    color: #3a4a52;
    max-width: 440px
}

.lrn_prog .img_wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.lrn_prog .img_wrap img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    display: block
}

.lrn_prog .img_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to left, #309fba73, #e1c4e140)
}

.lrn_prog .struct_blk {
    background: #fff;
    padding: 80px 0
}

.lrn_prog .sec_label {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #309FBA;
    margin-bottom: 12px;
    display: block
}

.lrn_prog .struct_grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: start
}

.lrn_prog .struct_left h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 800;
    color: #1b2a32;
    margin-bottom: 24px;
    padding-left: 12px;
    border-left: 3px solid #309FBA
}

.lrn_prog .struct_left p {
    font-size: 17px;
    line-height: 1.55;
    color: #4a5a62
}

.lrn_prog .struct_left .accent_quote {
    font-size: 17px;
    line-height: 1.8;
    color: #309FBA;
    font-style: italic;
    background: #f0f8fb;
    border-radius: 6px;
    padding: 24px;
    margin-top: 24px;
    box-shadow: 0 1px 4px -2px #309fba0f
}

.lrn_prog .modules_list {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.lrn_prog .mod_card {
    background: #f8f6f2;
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
    box-shadow: 0 1px 4px -2px #309fba0f;
    transition: box-shadow .18s ease-out, transform .15s ease-out;
    cursor: default
}

.lrn_prog .mod_card:hover {
    box-shadow: 0 12px 44px -2px #309fba24;
    transform: translateY(-3px)
}

.lrn_prog .mod_num {
    font-size: 27px;
    font-weight: 800;
    color: #E1C4E1;
    line-height: 1.2;
    min-width: 40px
}

.lrn_prog .mod_body h4 {
    font-size: 17px;
    font-weight: 700;
    color: #1b2a32;
    margin-bottom: 6px;
    line-height: 1.2
}

.lrn_prog .mod_body p {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5a62
}

.lrn_prog .format_blk {
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    padding: 80px 0
}

.lrn_prog .format_head {
    text-align: center;
    margin-bottom: 40px
}

.lrn_prog .format_head h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 800;
    color: #fff;
    margin-bottom: 12px
}

.lrn_prog .format_head p {
    font-size: 17px;
    line-height: 1.55;
    color: #ffffffe0;
    max-width: 560px;
    margin: 0 auto
}

.lrn_prog .format_cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px
}

.lrn_prog .fmt_panel {
    background: #ffffff1f;
    border-radius: 10px;
    padding: 40px;
    position: relative
}

.lrn_prog .fmt_panel.individual {
    background: #ffffffeb
}

.lrn_prog .fmt_tag {
    display: inline-block;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-radius: 3px;
    padding: 6px 12px;
    margin-bottom: 24px
}

.lrn_prog .fmt_panel.group .fmt_tag {
    background: #fff3;
    color: #fff
}

.lrn_prog .fmt_panel.individual .fmt_tag {
    background: #309FBA;
    color: #fff
}

.lrn_prog .fmt_panel h3 {
    font-size: 27px;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 12px
}

.lrn_prog .fmt_panel.group h3 {
    color: #fff
}

.lrn_prog .fmt_panel.individual h3 {
    color: #1b2a32
}

.lrn_prog .fmt_panel p {
    font-size: 15px;
    line-height: 1.55;
    margin-bottom: 24px
}

.lrn_prog .fmt_panel.group p {
    color: #ffffffe0
}

.lrn_prog .fmt_panel.individual p {
    color: #3a4a52
}

.lrn_prog .fmt_attrs {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.lrn_prog .fmt_attr {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px
}

.lrn_prog .fmt_dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0
}

.lrn_prog .fmt_panel.group .fmt_dot {
    background: #ffffffb3
}

.lrn_prog .fmt_panel.individual .fmt_dot {
    background: #309FBA
}

.lrn_prog .fmt_attr span {
    font-size: 15px;
    line-height: 1.55
}

.lrn_prog .fmt_panel.group .fmt_attr span {
    color: #ffffffe6
}

.lrn_prog .fmt_panel.individual .fmt_attr span {
    color: #3a4a52
}

.lrn_prog .fmt_divider {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative
}

.lrn_prog .fmt_vs {
    background: #fff;
    color: #309FBA;
    font-size: 17px;
    font-weight: 800;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.lrn_prog .path_blk {
    background: #f5f3ef;
    padding: 80px 0
}

.lrn_prog .path_inner {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 40px;
    align-items: start
}

.lrn_prog .path_left h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 800;
    color: #1b2a32;
    margin-bottom: 24px;
    padding-left: 12px;
    border-left: 3px solid #E1C4E1
}

.lrn_prog .path_steps {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 24px
}

.lrn_prog .path_step {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
    padding: 24px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 4px -2px #309fba0f;
    transition: box-shadow .2s ease, transform .12s ease-out
}

.lrn_prog .path_step:hover {
    box-shadow: 0 4px 14px -2px #309fba1a;
    transform: translateX(4px)
}

.lrn_prog .step_idx {
    font-size: 21px;
    font-weight: 800;
    color: #CFCBBB;
    min-width: 32px;
    line-height: 1.2
}

.lrn_prog .step_body h5 {
    font-size: 17px;
    font-weight: 700;
    color: #1b2a32;
    margin-bottom: 6px;
    line-height: 1.2
}

.lrn_prog .step_body p {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5a62
}

.lrn_prog .path_right {
    position: sticky;
    top: 24px
}

.lrn_prog .path_card {
    background: #fff;
    border-radius: 10px;
    padding: 40px;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.lrn_prog .path_card h4 {
    font-size: 21px;
    font-weight: 800;
    color: #1b2a32;
    margin-bottom: 12px;
    line-height: 1.2;
    padding-left: 12px;
    border-left: 3px solid #309FBA
}

.lrn_prog .path_card p {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5a62;
    margin-bottom: 24px
}

.lrn_prog .path_meta {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px
}

.lrn_prog .path_meta_row {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 12px;
    background: #f5f3ef;
    border-radius: 6px
}

.lrn_prog .meta_key {
    font-size: 15px;
    color: #6a7a82;
    font-weight: 500
}

.lrn_prog .meta_val {
    font-size: 15px;
    color: #1b2a32;
    font-weight: 700
}

.lrn_prog .enroll_btn {
    display: block;
    width: 100%;
    padding: 24px 40px;
    background: #309FBA;
    color: #fff !important;
    font-size: 17px;
    font-weight: 700;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 4px 14px -2px #309fba1a;
    transition: background .18s ease-out, transform .12s ease-out, box-shadow .18s ease-out
}

.lrn_prog .enroll_btn:hover {
    background: #267d94;
    box-shadow: 0 12px 44px -2px #309fba24
}

.lrn_prog .enroll_btn:active {
    transform: scale(0.97)
}

.lrn_prog .enroll_btn:focus-visible {
    outline: 2px solid #309FBA;
    outline-offset: 3px
}

.lrn_prog .underline_anim {
    display: inline-block;
    position: relative
}

.lrn_prog .underline_anim::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    height: 2px;
    background: #309FBA;
    border-radius: 3px;
    animation: line_cycle 2.4s ease-in-out infinite
}

@keyframes line_cycle {
    0% {
        width: 0
    }

    50% {
        width: 100%
    }

    100% {
        width: 0
    }
}

@media (max-width: 768px) {
    .lrn_prog .title_cols {
        flex-direction: column
    }

    .lrn_prog .title_img_col {
        display: none
    }

    .lrn_prog .title_text_col {
        flex: 1;
        padding-bottom: 0
    }

    .lrn_prog .prog_h1 {
        font-size: 37px
    }

    .lrn_prog .struct_grid {
        grid-template-columns: 1fr
    }

    .lrn_prog .format_cols {
        grid-template-columns: 1fr
    }

    .lrn_prog .path_inner {
        grid-template-columns: 1fr
    }

    .lrn_prog .path_right {
        position: static
    }

    .lrn_prog .counter_row {
        flex-wrap: wrap;
        gap: 24px
    }
}

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

.abt_pg .row_cap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.abt_pg .lead_blk {
    position: relative;
    padding: 80px 0 40px;
    background-color: #f4f2ee;
    overflow: hidden
}

.abt_pg .lead_blk::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(-47deg, #309fba0b 0px, #309fba0b 1px, transparent 1px, transparent 18px);
    pointer-events: none
}

.abt_pg .lead_inner {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.abt_pg .lead_text_col {
    flex: 0 0 55%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px 0
}

.abt_pg .lead_eyebrow {
    display: inline-block;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #309FBA;
    margin-bottom: 24px
}

.abt_pg .lead_h1 {
    font-size: 51px;
    line-height: 1.2;
    font-weight: 800;
    color: #1e2a2e;
    margin: 0 0 24px;
    padding-left: 16px;
    border-left: 3px solid #309FBA
}

.abt_pg .lead_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #3a4a50;
    max-width: 480px;
    margin: 0 0 40px
}

.abt_pg .lead_since {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    color: #5a6e75
}

.abt_pg .lead_since_dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #309FBA;
    flex-shrink: 0
}

.abt_pg .lead_img_col {
    flex: 1;
    position: relative;
    min-height: 360px
}

.abt_pg .lead_img_wrap {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    overflow: hidden;
    position: relative
}

.abt_pg .lead_img_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.abt_pg .lead_img_tint {
    position: absolute;
    inset: 0;
    background: #309fba2e;
    border-radius: 10px;
    pointer-events: none
}

.abt_pg .divider_tri {
    display: block;
    width: 100%;
    line-height: 0;
    background-color: #f4f2ee
}

.abt_pg .divider_tri svg {
    display: block;
    width: 100%
}

.abt_pg .story_blk {
    position: relative;
    padding: 80px 0;
    background-color: #fff
}

.abt_pg .story_bg_pan {
    position: absolute;
    inset: 0;
    background-image: url(./visual_resources/office311225.jpg);
    background-size: 130%;
    background-position: left center;
    background-repeat: no-repeat;
    animation: pan_bg 18s ease-in-out infinite alternate;
    opacity: .12;
    pointer-events: none
}

@keyframes pan_bg {
    from {
        background-position: left center
    }

    to {
        background-position: right center
    }
}

.abt_pg .story_layout {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start
}

.abt_pg .story_glass {
    background: #ffffffb8;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 10px;
    padding: 40px;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.abt_pg .story_glass_wide {
    grid-column: 1 / -1;
    background: #ffffffd1;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-radius: 10px;
    padding: 40px;
    box-shadow: 0 12px 44px -2px #309fba24
}

.abt_pg .panel_label {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #309FBA;
    margin-bottom: 12px;
    display: block
}

.abt_pg .panel_h2 {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a2e;
    margin: 0 0 12px;
    padding-left: 12px;
    border-left: 3px solid #E1C4E1
}

.abt_pg .panel_body {
    font-size: 17px;
    line-height: 1.55;
    color: #3a4a50;
    margin: 0 0 12px
}

.abt_pg .panel_body:last-child {
    margin-bottom: 0
}

.abt_pg .panel_quote {
    font-size: 21px;
    line-height: 1.55;
    color: #1e2a2e;
    font-style: italic;
    border-left: 3px solid #309FBA;
    padding: 12px 24px;
    margin: 24px 0 0;
    background: #309fba0f;
    border-radius: 0 6px 6px 0
}

.abt_pg .metric_row {
    display: flex;
    flex-direction: row;
    gap: 40px;
    margin-top: 24px;
    flex-wrap: wrap
}

.abt_pg .metric_item {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.abt_pg .metric_num {
    font-size: 37px;
    font-weight: 800;
    line-height: 1.2;
    color: #309FBA
}

.abt_pg .metric_desc {
    font-size: 15px;
    color: #5a6e75;
    line-height: 1.55
}

.abt_pg .team_blk {
    padding: 80px 0;
    background: linear-gradient(to left, #309FBA 0%, #E1C4E1 100%);
    position: relative
}

.abt_pg .team_blk::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: #309fba59;
    pointer-events: none
}

.abt_pg .team_inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

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

.abt_pg .team_heading_wrap {
    flex: 0 0 auto;
    max-width: 520px
}

.abt_pg .team_h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 800;
    color: #fff;
    margin: 0 0 12px;
    padding-left: 12px;
    border-left: 3px solid #ffffff80
}

.abt_pg .team_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #ffffffe0;
    margin: 0
}

.abt_pg .team_img_accent {
    flex: 0 0 260px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.abt_pg .team_img_accent img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block
}

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

.abt_pg .t_card {
    background: #ffffffeb;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 1px 4px -2px #309fba0f;
    transition: box-shadow .18s ease-out, transform .15s ease-out;
    position: relative
}

.abt_pg .t_card:hover {
    box-shadow: 0 4px 14px -2px #309fba1a 0 0 0 2px #309FBA;
    transform: translateY(-2px)
}

.abt_pg .t_card::after {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 10px;
    border: 1px solid #309fba00;
    transition: border-color .28s ease-out .12s;
    pointer-events: none
}

.abt_pg .t_card:hover::after {
    border-color: #309fba59
}

.abt_pg .t_card_icon {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center
}

.abt_pg .t_card_icon svg {
    width: 18px;
    height: 18px;
    fill: #fff
}

.abt_pg .t_card_name {
    font-size: 17px;
    font-weight: 700;
    color: #1e2a2e;
    margin: 0 0 6px
}

.abt_pg .t_card_role {
    font-size: 15px;
    color: #309FBA;
    font-style: italic;
    margin: 0 0 12px
}

.abt_pg .t_card_bio {
    font-size: 15px;
    line-height: 1.55;
    color: #3a4a50;
    margin: 0
}

.abt_pg .team_img_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 40px
}

.abt_pg .team_img_frame {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.abt_pg .team_img_frame img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block
}

.abt_pg .team_txt_aside {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px
}

.abt_pg .team_aside_h {
    font-size: 21px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    margin: 0;
    padding-left: 12px;
    border-left: 3px solid #ffffff80
}

.abt_pg .team_aside_p {
    font-size: 17px;
    line-height: 1.55;
    color: #ffffffe6;
    margin: 0
}

@media (max-width: 768px) {
    .abt_pg .lead_inner {
        flex-direction: column
    }

    .abt_pg .lead_img_col {
        display: none
    }

    .abt_pg .lead_h1 {
        font-size: 37px
    }

    .abt_pg .story_layout {
        grid-template-columns: 1fr
    }

    .abt_pg .story_glass_wide {
        grid-column: auto
    }

    .abt_pg .team_top {
        flex-direction: column;
        align-items: flex-start
    }

    .abt_pg .team_img_accent {
        display: none
    }

    .abt_pg .team_cards {
        grid-template-columns: 1fr
    }

    .abt_pg .team_img_row {
        grid-template-columns: 1fr
    }

    .abt_pg .team_img_frame {
        display: none
    }

    .abt_pg .metric_row {
        gap: 24px
    }
}

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

.srvs_pg .pg_bound {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px
}

.srvs_pg .title_row {
    padding: 80px 24px 40px;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 80px;
    align-items: center;
    position: relative
}

.srvs_pg .title_row .deco_circles {
    position: absolute;
    top: 40px;
    right: 0;
    width: 280px;
    height: 280px;
    pointer-events: none;
    overflow: hidden
}

.srvs_pg .title_row .deco_circles::before,
.srvs_pg .title_row .deco_circles::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    border: 1px solid #309fba1f
}

.srvs_pg .title_row .deco_circles::before {
    width: 200px;
    height: 200px;
    top: 20px;
    right: 20px
}

.srvs_pg .title_row .deco_circles::after {
    width: 140px;
    height: 140px;
    top: 50px;
    right: 50px
}

.srvs_pg .title_row .deco_c3 {
    position: absolute;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 1px solid #309fba14;
    top: 90px;
    right: 90px;
    pointer-events: none
}

.srvs_pg .title_left {
    position: relative;
    z-index: 1
}

.srvs_pg .tag_label {
    display: inline-block;
    background: #309fba1a;
    color: #309FBA;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 3px;
    margin-bottom: 24px
}

.srvs_pg .main_h1 {
    font-size: 51px;
    line-height: 1.2;
    font-weight: 800;
    color: #1e2a30;
    margin: 0 0 24px
}

.srvs_pg .main_h1 .accent_word {
    color: #309FBA
}

.srvs_pg .main_h1 .punct {
    color: #E1C4E1
}

.srvs_pg .title_desc {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4f57;
    margin: 0 0 24px
}

.srvs_pg .title_desc em {
    font-style: italic;
    color: #309FBA
}

.srvs_pg .title_img_card {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.srvs_pg .title_img_card img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
    filter: blur(0px)
}

.srvs_pg .title_img_card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 50%, transparent 40%, #1e2a302e 100%);
    pointer-events: none
}

.srvs_pg .cards_area {
    background: #f5f3ef;
    padding: 80px 24px
}

.srvs_pg .cards_area .area_head {
    max-width: 1100px;
    margin: 0 auto 40px
}

.srvs_pg .area_h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a30;
    margin: 0 0 12px;
    padding-left: 16px;
    border-left: 3px solid #309FBA
}

.srvs_pg .area_h2 .aw {
    color: #309FBA
}

.srvs_pg .area_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #4a5c65;
    margin: 0;
    padding-left: 16px
}

.srvs_pg .card_grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px
}

.srvs_pg .srv_card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 14px -2px #309fba1a;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .18s ease-out, transform .15s ease-out
}

.srvs_pg .srv_card:hover {
    box-shadow: 0 12px 44px -2px #309fba24;
    transform: translateY(-2px)
}

.srvs_pg .srv_card:active {
    transform: scale(0.99)
}

.srvs_pg .card_top {
    padding: 24px 24px 0;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px
}

.srvs_pg .cat_tag {
    display: inline-block;
    background: #e1c4e14d;
    color: #7a4f7a;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    padding: 6px 12px;
    border-radius: 3px
}

.srvs_pg .seats_badge {
    font-size: 15px;
    color: #c05a1a;
    font-weight: 600;
    background: #c05a1a14;
    padding: 6px 12px;
    border-radius: 3px;
    white-space: nowrap
}

.srvs_pg .card_body {
    padding: 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.srvs_pg .card_h3 {
    font-size: 21px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a30;
    margin: 0
}

.srvs_pg .card_desc {
    font-size: 15px;
    line-height: 1.55;
    color: #4a5c65;
    margin: 0;
    flex: 1
}

.srvs_pg .card_foot {
    padding: 0 24px 24px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap
}

.srvs_pg .price_val {
    font-size: 27px;
    font-weight: 800;
    color: #309FBA;
    line-height: 1.2
}

.srvs_pg .card_link {
    display: inline-block;
    background: #309FBA;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 6px;
    transition: background .18s ease-out, transform .12s ease;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.srvs_pg .card_link:hover {
    background: #247d94
}

.srvs_pg .card_link:active {
    transform: scale(0.97)
}

.srvs_pg .compare_area {
    padding: 80px 24px;
    max-width: 1100px;
    margin: 0 auto
}

.srvs_pg .compare_head {
    margin-bottom: 40px
}

.srvs_pg .compare_h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a30;
    margin: 0 0 12px;
    padding-left: 16px;
    border-left: 3px solid #E1C4E1
}

.srvs_pg .compare_h2 .aw {
    color: #309FBA
}

.srvs_pg .compare_sub {
    font-size: 17px;
    line-height: 1.55;
    color: #4a5c65;
    margin: 0;
    padding-left: 16px
}

.srvs_pg .compare_cols {
    display: grid;
    grid-template-columns: 1fr 80px 1fr;
    gap: 0;
    align-items: start
}

.srvs_pg .compare_col {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 4px -2px #309fba0f;
    overflow: hidden
}

.srvs_pg .compare_col.col_before {
    border-radius: 10px 0 0 10px
}

.srvs_pg .compare_col.col_after {
    border-radius: 0 10px 10px 0;
    background: #309fba0f;
    box-shadow: 0 12px 44px -2px #309fba24;
    animation: shadow_pulse 2.4s ease-in-out infinite
}

@keyframes shadow_pulse {

    0%,
    100% {
        box-shadow: 0 12px 44px -2px #309fba24
    }

    50% {
        box-shadow: 0 12px 44px -2px #309fba38
    }
}

.srvs_pg .col_label {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 12px 24px;
    color: #fff
}

.srvs_pg .col_before .col_label {
    background: #7a8c94
}

.srvs_pg .col_after .col_label {
    background: #309FBA
}

.srvs_pg .compare_mid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 0;
    gap: 12px
}

.srvs_pg .arrow_shape {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center
}

.srvs_pg .arrow_shape svg {
    width: 24px;
    height: 24px
}

.srvs_pg .compare_item {
    padding: 12px 24px;
    font-size: 15px;
    line-height: 1.55;
    color: #3d4f57;
    border-top: 1px solid #cfcbbb4d
}

.srvs_pg .compare_item:first-of-type {
    border-top: none
}

.srvs_pg .col_after .compare_item {
    color: #1e2a30;
    font-weight: 500
}

.srvs_pg .col_before .compare_item {
    color: #6a7c85
}

.srvs_pg .bg_img_area {
    position: relative;
    padding: 80px 24px;
    overflow: hidden
}

.srvs_pg .bg_img_area .bg_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to left, #309fbad1, #142832e6);
    z-index: 0
}

.srvs_pg .bg_img_area .bg_photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
    display: block
}

.srvs_pg .bg_inner {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center
}

.srvs_pg .bg_text_col .bg_h2 {
    font-size: 37px;
    line-height: 1.2;
    font-weight: 700;
    color: #fff;
    margin: 0 0 24px;
    padding-left: 16px;
    border-left: 3px solid #E1C4E1
}

.srvs_pg .bg_text_col .bg_h2 .aw {
    color: #E1C4E1
}

.srvs_pg .bg_text_col .bg_p {
    font-size: 17px;
    line-height: 1.55;
    color: #ffffffe0;
    margin: 0 0 24px
}

.srvs_pg .bg_text_col .bg_p em {
    font-style: italic;
    color: #E1C4E1
}

.srvs_pg .bg_quote {
    background: #ffffff14;
    border-radius: 10px;
    padding: 24px;
    font-size: 17px;
    line-height: 1.8;
    color: #fffffff2;
    font-style: italic
}

.srvs_pg .bg_stats_col {
    display: flex;
    flex-direction: column;
    gap: 24px
}

.srvs_pg .stat_item {
    background: #ffffff1a;
    border-radius: 10px;
    padding: 24px;
    border: 1px solid #ffffff24;
    transition: background .18s ease-out
}

.srvs_pg .stat_item:hover {
    background: #ffffff2b
}

.srvs_pg .stat_num {
    font-size: 37px;
    font-weight: 800;
    color: #E1C4E1;
    line-height: 1.2;
    display: block;
    margin-bottom: 6px
}

.srvs_pg .stat_label {
    font-size: 15px;
    color: #fffc;
    line-height: 1.55
}

.srvs_pg .deco_rects {
    position: absolute;
    bottom: 24px;
    right: 24px;
    width: 80px;
    height: 80px;
    pointer-events: none;
    z-index: 1
}

.srvs_pg .deco_rects span {
    position: absolute;
    border: 1px solid #ffffff1f;
    border-radius: 3px
}

.srvs_pg .deco_rects span:nth-child(1) {
    inset: 0
}

.srvs_pg .deco_rects span:nth-child(2) {
    inset: 10px
}

.srvs_pg .deco_rects span:nth-child(3) {
    inset: 20px
}

.srvs_pg .deco_rects span:nth-child(4) {
    inset: 30px
}

@media (max-width: 768px) {
    .srvs_pg .title_row {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 40px 24px 24px
    }

    .srvs_pg .title_img_card {
        display: none
    }

    .srvs_pg .main_h1 {
        font-size: 37px
    }

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

    .srvs_pg .compare_cols {
        grid-template-columns: 1fr
    }

    .srvs_pg .compare_mid {
        flex-direction: row;
        padding: 12px 0
    }

    .srvs_pg .compare_col.col_before {
        border-radius: 10px 10px 0 0
    }

    .srvs_pg .compare_col.col_after {
        border-radius: 0 0 10px 10px
    }

    .srvs_pg .bg_inner {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .srvs_pg .bg_text_col .bg_h2 {
        font-size: 27px
    }

    .srvs_pg .area_h2,
    .srvs_pg .compare_h2 {
        font-size: 27px
    }
}

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

.entr_pg .pg_lim {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.entr_pg .t_block {
    position: relative;
    background: linear-gradient(to bottom, #f5f3ef, #eceae4);
    padding: 40px 0 0;
    overflow: hidden
}

.entr_pg .t_block_wave {
    display: block;
    width: 100%;
    line-height: 0;
    margin-top: 40px
}

.entr_pg .t_block_inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 40px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.entr_pg .t_txt_col {
    flex: 1 1 50%;
    min-width: 0
}

.entr_pg .t_img_col {
    flex: 1 1 50%;
    min-width: 0;
    position: relative
}

.entr_pg .t_eyebrow {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #309FBA;
    margin-bottom: 12px;
    display: block
}

.entr_pg .t_h1 {
    font-size: 51px;
    line-height: 1.2;
    font-weight: 800;
    color: #1e2a2e;
    margin-bottom: 24px
}

.entr_pg .t_desc {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50;
    max-width: 480px
}

.entr_pg .t_img_wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.entr_pg .t_img_wrap img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover
}

.entr_pg .t_img_vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 40%, #1e2a2e8c 100%);
    border-radius: 10px;
    pointer-events: none
}

.entr_pg .t_block_rings {
    position: absolute;
    top: 50%;
    left: -80px;
    transform: translateY(-50%);
    width: 320px;
    height: 320px;
    pointer-events: none;
    z-index: 0
}

.entr_pg .t_block_rings circle {
    fill: none;
    stroke: #309fba14;
    animation: ring_expand 3.5s ease-out infinite
}

.entr_pg .t_block_rings circle:nth-child(2) {
    animation-delay: 1.1s
}

.entr_pg .t_block_rings circle:nth-child(3) {
    animation-delay: 2.2s
}

@keyframes ring_expand {
    0% {
        r: 40;
        opacity: .7
    }

    100% {
        r: 150;
        opacity: 0
    }
}

.entr_pg .t_txt_col {
    position: relative;
    z-index: 1
}

.entr_pg .t_img_col {
    position: relative;
    z-index: 1
}

.entr_pg .hesit_sec {
    background: #fff;
    padding: 80px 0;
    position: relative
}

.entr_pg .hesit_inner {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.entr_pg .hesit_img_col {
    flex: 0 0 420px;
    max-width: 420px
}

.entr_pg .hesit_img_frm {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 14px -2px #309fba1a;
    position: relative
}

.entr_pg .hesit_img_frm img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover
}

.entr_pg .hesit_txt_col {
    flex: 1 1 0;
    min-width: 0
}

.entr_pg .acc_line_h {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a2e;
    padding-left: 16px;
    border-left: 4px solid #309FBA;
    margin-bottom: 24px
}

.entr_pg .hesit_body {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50;
    margin-bottom: 24px
}

.entr_pg .hesit_quote {
    background: linear-gradient(to bottom, #f0f7fa, #e8f4f8);
    border-radius: 10px;
    padding: 24px;
    font-size: 21px;
    line-height: 1.55;
    font-style: italic;
    color: #309FBA;
    box-shadow: inset 0 4px 10px -2px #309fba1a
}

.entr_pg .gap_sec {
    background: linear-gradient(to bottom, #eceae4, #f5f3ef);
    padding: 80px 0
}

.entr_pg .gap_inner {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.entr_pg .gap_top {
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start;
    margin-bottom: 40px
}

.entr_pg .gap_h {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a2e;
    padding-left: 16px;
    border-left: 4px solid #E1C4E1;
    flex: 0 0 340px
}

.entr_pg .gap_desc {
    flex: 1 1 0;
    min-width: 0;
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50
}

.entr_pg .gap_steps {
    display: flex;
    flex-direction: row;
    gap: 24px;
    counter-reset: step_c
}

.entr_pg .gap_step {
    flex: 1 1 0;
    background: #fff;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 1px 4px -2px #309fba0f;
    position: relative;
    counter-increment: step_c
}

.entr_pg .gap_step::before {
    content: counter(step_c);
    display: block;
    font-size: 37px;
    font-weight: 800;
    color: #E1C4E1;
    line-height: 1.2;
    margin-bottom: 12px
}

.entr_pg .gap_step_label {
    font-size: 17px;
    font-weight: 700;
    color: #1e2a2e;
    margin-bottom: 12px;
    display: block
}

.entr_pg .gap_step_txt {
    font-size: 15px;
    line-height: 1.55;
    color: #3d4a50
}

.entr_pg .cond_sec {
    background: #fff;
    padding: 80px 0
}

.entr_pg .cond_inner {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.entr_pg .cond_txt_col {
    flex: 1 1 0;
    min-width: 0
}

.entr_pg .cond_img_col {
    flex: 0 0 380px;
    max-width: 380px
}

.entr_pg .cond_h {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a2e;
    padding-left: 16px;
    border-left: 4px solid #CFCBBB;
    margin-bottom: 24px
}

.entr_pg .cond_body {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50;
    margin-bottom: 24px
}

.entr_pg .cond_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.entr_pg .cond_list li {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50;
    padding: 12px 16px;
    background: #f5f3ef;
    border-radius: 6px;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px
}

.entr_pg .cond_dot {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-radius: 3px;
    background: #309FBA;
    margin-top: 6px
}

.entr_pg .cond_img_frm {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.entr_pg .cond_img_frm img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover
}

.entr_pg .nums_sec {
    background: linear-gradient(to bottom, #309FBA, #2589a0);
    padding: 80px 0;
    position: relative;
    overflow: hidden
}

.entr_pg .nums_bg_rings {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    pointer-events: none;
    z-index: 0
}

.entr_pg .nums_bg_rings circle {
    fill: none;
    stroke: #ffffff12;
    animation: ring_expand 4s ease-out infinite
}

.entr_pg .nums_bg_rings circle:nth-child(2) {
    animation-delay: 1.3s
}

.entr_pg .nums_bg_rings circle:nth-child(3) {
    animation-delay: 2.6s
}

.entr_pg .nums_inner {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
    position: relative;
    z-index: 1
}

.entr_pg .nums_h {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin-bottom: 40px
}

.entr_pg .nums_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px
}

.entr_pg .num_card {
    background: #ffffff1f;
    border-radius: 10px;
    padding: 24px;
    text-align: center;
    backdrop-filter: blur(4px);
    box-shadow: 0 4px 14px -2px #309fba1a;
    transition: background .18s ease-out
}

.entr_pg .num_card:hover {
    background: #fff3
}

.entr_pg .num_val {
    font-size: 51px;
    font-weight: 800;
    color: #fff;
    line-height: 1.2;
    display: block
}

.entr_pg .num_lbl {
    font-size: 15px;
    line-height: 1.55;
    color: #ffffffd1;
    margin-top: 6px;
    display: block
}

.entr_pg .rep_sec {
    background: linear-gradient(to bottom, #f5f3ef, #eceae4);
    padding: 80px 0
}

.entr_pg .rep_inner {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px
}

.entr_pg .rep_top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
    align-items: center
}

.entr_pg .rep_h {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a2e;
    padding-left: 16px;
    border-left: 4px solid #E1C4E1;
    margin-bottom: 24px
}

.entr_pg .rep_body {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50
}

.entr_pg .rep_img_frm {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 14px -2px #309fba1a
}

.entr_pg .rep_img_frm img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover
}

.entr_pg .rep_refs {
    display: flex;
    flex-direction: row;
    gap: 24px
}

.entr_pg .rep_ref_card {
    flex: 1 1 0;
    background: #fff;
    border-radius: 10px;
    padding: 24px;
    box-shadow: 0 1px 4px -2px #309fba0f
}

.entr_pg .rep_ref_name {
    font-size: 15px;
    font-weight: 700;
    color: #309FBA;
    display: block;
    margin-bottom: 6px;
    letter-spacing: .05em;
    text-transform: uppercase
}

.entr_pg .rep_ref_role {
    font-size: 15px;
    color: #7a8a90;
    display: block;
    margin-bottom: 12px;
    font-style: italic
}

.entr_pg .rep_ref_txt {
    font-size: 15px;
    line-height: 1.55;
    color: #3d4a50
}

.entr_pg .curr_sec {
    background: #fff;
    padding: 80px 0
}

.entr_pg .curr_inner {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
    display: flex;
    flex-direction: row;
    gap: 40px;
    align-items: flex-start
}

.entr_pg .curr_img_col {
    flex: 0 0 400px;
    max-width: 400px
}

.entr_pg .curr_img_frm {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 44px -2px #309fba24
}

.entr_pg .curr_img_frm img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover
}

.entr_pg .curr_txt_col {
    flex: 1 1 0;
    min-width: 0
}

.entr_pg .curr_h {
    font-size: 27px;
    line-height: 1.2;
    font-weight: 700;
    color: #1e2a2e;
    padding-left: 16px;
    border-left: 4px solid #309FBA;
    margin-bottom: 24px
}

.entr_pg .curr_body {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4a50;
    margin-bottom: 24px
}

.entr_pg .curr_tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px
}

.entr_pg .curr_tag {
    background: #f0f7fa;
    color: #309FBA;
    font-size: 15px;
    font-weight: 600;
    border-radius: 6px;
    padding: 6px 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
    border: 1px solid #309fba2e;
    transition: background .15s ease-out, color .15s ease-out
}

.entr_pg .curr_tag:hover {
    background: #309FBA;
    color: #fff
}

.entr_pg .curr_quote_blk {
    margin-top: 24px;
    background: linear-gradient(to right, #E1C4E1, #309FBA);
    border-radius: 10px;
    padding: 24px;
    box-shadow: inset 0 6px 10px -4px #309fba1f
}

.entr_pg .curr_quote_txt {
    font-size: 21px;
    line-height: 1.55;
    font-style: italic;
    color: #fff
}

.entr_pg .div_wave_down {
    display: block;
    width: 100%;
    line-height: 0
}

.entr_pg .div_wave_up {
    display: block;
    width: 100%;
    line-height: 0
}

@media (max-width: 800px) {
    .entr_pg .t_block_inner {
        flex-direction: column
    }

    .entr_pg .t_img_col {
        display: none
    }

    .entr_pg .t_h1 {
        font-size: 37px
    }

    .entr_pg .hesit_inner {
        flex-direction: column
    }

    .entr_pg .hesit_img_col {
        display: none
    }

    .entr_pg .gap_top {
        flex-direction: column
    }

    .entr_pg .gap_h {
        flex: none
    }

    .entr_pg .gap_steps {
        flex-direction: column
    }

    .entr_pg .cond_inner {
        flex-direction: column
    }

    .entr_pg .cond_img_col {
        display: none
    }

    .entr_pg .nums_grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .entr_pg .rep_top {
        grid-template-columns: 1fr
    }

    .entr_pg .rep_refs {
        flex-direction: column
    }

    .entr_pg .curr_inner {
        flex-direction: column
    }

    .entr_pg .curr_img_col {
        display: none
    }
}

@media (max-width: 480px) {
    .entr_pg .nums_grid {
        grid-template-columns: 1fr
    }

    .entr_pg .t_h1 {
        font-size: 27px
    }
}

.entr_pg :focus-visible {
    outline: 3px solid #309FBA !important;
    outline-offset: 3px !important
}

.success_page {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 24px;
    background-color: #f5f4f0
}

.success_page .success_card {
    max-width: 1100px;
    width: 100%;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 14px -2px #309fba1a;
    padding: 80px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center
}

.success_page .icon_wrap {
    width: 72px;
    height: 72px;
    border-radius: 28px;
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 40px;
    box-shadow: 0 12px 44px -2px #309fba24
}

.success_page .icon_wrap svg {
    display: block
}

.success_page .success_heading {
    font-size: 37px;
    font-weight: 700;
    line-height: 1.2;
    color: #1b2d35;
    margin-bottom: 24px
}

.success_page .success_text {
    font-size: 17px;
    line-height: 1.55;
    color: #3d4f57;
    max-width: 520px;
    margin-bottom: 40px
}

.success_page .accent_note {
    font-size: 15px;
    line-height: 1.55;
    color: #309FBA;
    font-style: italic;
    margin-bottom: 40px
}

.success_page .divider_line {
    width: 48px;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(to left, #309FBA, #E1C4E1);
    margin-bottom: 40px
}

.success_page .btn_home {
    display: inline-block;
    padding: 16px 40px;
    background: linear-gradient(to left, #309FBA, #2a8fa6);
    color: #fff;
    font-size: 17px;
    font-weight: 600;
    border-radius: 6px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 14px -2px #309fba1a;
    transition: box-shadow .15s ease-out, transform .1s ease-out;
    letter-spacing: .01em
}

.success_page .btn_home:hover {
    box-shadow: 0 12px 44px -2px #309fba24
}

.success_page .btn_home:active {
    transform: scale(0.97)
}

.success_page .btn_home:focus-visible {
    outline: 2px solid #309FBA;
    outline-offset: 4px
}

@media (max-width: 600px) {
    .success_page .success_card {
        padding: 40px 24px
    }

    .success_page .success_heading {
        font-size: 27px
    }
}