html {
    box-sizing: border-box;
}

body {
    margin: 0;
    overscroll-behavior: contain;
    overflow-x: hidden;
    font-family: 'Lexend', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #2a1a3e;
    background: #ffffff;
}

.site_header {
    position: relative;
    border-bottom: 2px solid #9349C1;
    background: #ffffff;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    overflow: visible;
}

.hd_top {
    background: linear-gradient(100deg, #9349C1 0%, #7a2fa8 60%, #5c1f8a 100%);
    padding: 12px 24px;
}

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

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

.logo_frame {
    width: 48px;
    height: 48px;
    border: 1px solid #ffffff;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
}

.logo_frame img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    display: block;
}

.brand_name {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
    color: #ffffff;
    letter-spacing: 0;
}

.hd_meta {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 24px;
}

.hd_contact_item {
    font-size: 15px;
    font-weight: 300;
    color: #FFF1DC;
    line-height: 1.4;
    white-space: nowrap;
}

.hd_contact_item a {
    color: #FFF1DC;
    text-decoration: none;
    transition: color 0.18s ease-out;
}

.hd_contact_item a:hover {
    color: #ffffff;
}

.hd_contact_item a:focus {
    background: rgba(255, 241, 220, 0.15);
    outline: none;
    border-radius: 8px;
}

.hd_nav_bar {
    background: #ffffff;
    border-top: 1px solid rgba(147, 73, 193, 0.18);
    padding: 0 24px;
}

.hd_nav_inner {
    max-width: 1320px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 0;
}

.nav_lnk {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
    color: #2a1a3e;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    transition: color 0.15s ease-out, border-color 0.20s ease-out;
    white-space: nowrap;
}

.nav_lnk:hover {
    color: #9349C1;
    border-bottom-color: #9349C1;
}

.nav_lnk:focus {
    background: rgba(147, 73, 193, 0.07);
    outline: none;
    border-radius: 8px 8px 0 0;
}

.nav_lnk.active {
    color: #9349C1;
    font-weight: 700;
    border-bottom-color: #9349C1;
}

.site_footer {
    background: #2a1a3e;
    color: #FFF1DC;
    padding: 48px 24px 24px;
    position: relative;
}

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

.ft_top {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    flex-wrap: wrap;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255, 241, 220, 0.15);
}

.ft_brand {
    flex: 0 0 auto;
}

.ft_brand_name {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.15;
    color: #ffffff;
    margin-bottom: 6px;
}

.ft_tagline {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.6;
    color: rgba(255, 241, 220, 0.75);
    max-width: 260px;
}

.ft_cols {
    display: flex;
    gap: 48px;
    flex-wrap: wrap;
    flex: 1 1 auto;
}

.ft_col_lbl {
    font-size: 15px;
    font-weight: 700;
    color: #9349C1;
    margin-bottom: 12px;
    line-height: 1.4;
}

.ft_links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ft_links li a {
    font-size: 15px;
    font-weight: 400;
    color: rgba(255, 241, 220, 0.85);
    text-decoration: none;
    line-height: 1.6;
    transition: color 0.16s ease-out;
}

.ft_links li a:hover {
    color: #ffffff;
}

.ft_links li a:focus {
    background: rgba(147, 73, 193, 0.18);
    outline: none;
    border-radius: 8px;
}

.ft_addr {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.6;
    color: rgba(255, 241, 220, 0.75);
    font-style: normal;
}

.ft_addr a {
    color: rgba(255, 241, 220, 0.85);
    text-decoration: none;
    transition: color 0.16s ease-out;
}

.ft_addr a:hover {
    color: #ffffff;
}

.ft_addr a:focus {
    background: rgba(147, 73, 193, 0.18);
    outline: none;
    border-radius: 8px;
}

.ft_bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 24px;
}

.ft_copy {
    font-size: 15px;
    font-weight: 300;
    color: rgba(255, 241, 220, 0.5);
    line-height: 1.4;
}

.ft_legal {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.ft_legal a {
    font-size: 15px;
    font-weight: 300;
    color: rgba(255, 241, 220, 0.6);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.14s ease-out;
}

.ft_legal a:hover {
    color: #FFF1DC;
}

.ft_legal a:focus {
    background: rgba(147, 73, 193, 0.18);
    outline: none;
    border-radius: 8px;
}

.ft_logo_wrap {
    display: flex;
    justify-content: center;
    padding-top: 24px;
    margin-top: 6px;
    border-top: 1px solid rgba(255, 241, 220, 0.08);
}

.ft_logo_frame {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
}

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

.ck_popup {
    position: fixed;
    bottom: 24px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 90%;
    max-width: 680px;
    background: #ffffff;
    border: 1px solid rgba(147, 73, 193, 0.2);
    border-radius: 8px;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
    padding: 24px;
    z-index: 1000;
    display: none;
    transform: translateX(-40px);
    opacity: 0;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.6, 1), opacity 0.20s ease-out;
}

.ck_popup.ck_visible {
    transform: translateX(0);
    opacity: 1;
}

.ck_hdline {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    color: #2a1a3e;
    margin-bottom: 6px;
}

.ck_desc {
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    color: #4a3a5e;
    margin-bottom: 12px;
}

.ck_desc a {
    color: #9349C1;
    text-decoration: underline;
    text-underline-offset: 2px;
}

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

.ck_uses li {
    font-size: 15px;
    font-weight: 300;
    color: #4a3a5e;
    line-height: 1.4;
    padding-left: 12px;
    position: relative;
}

.ck_uses li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 5px;
    height: 5px;
    border-radius: 28px;
    background: #9349C1;
}

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

.ck_btn {
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 700;
    font-family: 'Lexend', sans-serif;
    border-radius: 8px;
    border: 2px solid #9349C1;
    background: transparent;
    color: #9349C1;
    cursor: pointer;
    line-height: 1.15;
    min-height: 44px;
    transition: background 0.18s ease-out, color 0.18s ease-out;
}

.ck_btn:hover {
    background: #9349C1;
    color: #ffffff;
}

.ck_btn:focus {
    background: rgba(147, 73, 193, 0.1);
    outline: none;
}

.ck_dismiss {
    font-size: 15px;
    font-weight: 400;
    color: #9349C1;
    background: none;
    border: none;
    cursor: pointer;
    font-family: 'Lexend', sans-serif;
    text-decoration: underline;
    text-underline-offset: 2px;
    padding: 6px;
    min-height: 44px;
    transition: color 0.15s ease-out;
}

.ck_dismiss:hover {
    color: #7a2fa8;
}

.ck_dismiss:focus {
    background: rgba(147, 73, 193, 0.07);
    outline: none;
    border-radius: 8px;
}

@media (max-width: 768px) {
    .hd_meta {
        display: none;
    }

    .hd_top_inner {
        padding: 0;
    }

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

    .ft_cols {
        gap: 24px;
    }

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

@media (max-width: 480px) {
    .nav_lnk {
        padding: 12px 12px;
        font-size: 15px;
    }

    .hd_nav_bar {
        padding: 0 6px;
    }

    .ck_popup {
        width: 95%;
        padding: 12px;
    }
}

.policy-main-wd {
    max-width: 1320px;
    margin: 0 auto;
    padding: 48px 24px;
}

.policy-main-wd h1 {
    font-size: 64px;
    line-height: 1.15;
    color: #1b1b1b;
    margin-bottom: 24px;
    margin-top: 0;
}

.policy-main-wd h2 {
    font-size: 34px;
    line-height: 1.15;
    color: #1b1b1b;
    margin-top: 48px;
    margin-bottom: 12px;
}

.policy-main-wd h3 {
    font-size: 20px;
    line-height: 1.4;
    color: #222;
    margin-top: 24px;
    margin-bottom: 12px;
}

.policy-main-wd h4 {
    font-size: 16px;
    line-height: 1.4;
    color: #222;
    margin-top: 24px;
    margin-bottom: 6px;
}

.policy-main-wd h5 {
    font-size: 15px;
    line-height: 1.4;
    color: #333;
    margin-top: 24px;
    margin-bottom: 6px;
}

.policy-main-wd h6 {
    font-size: 15px;
    line-height: 1.4;
    color: #555;
    margin-top: 12px;
    margin-bottom: 6px;
}

.policy-main-wd p {
    font-size: 16px;
    line-height: 1.6;
    color: #2a2a2a;
    margin-top: 0;
    margin-bottom: 12px;
    max-width: 72ch;
}

.policy-main-wd strong,
.policy-main-wd b {
    font-weight: 700;
    color: #1b1b1b;
}

.policy-main-wd a {
    color: #9349C1;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.18s ease-out, text-decoration-color 0.18s ease-out;
}

.policy-main-wd a:hover {
    color: #CD310B;
    text-decoration-color: #CD310B;
}

.policy-main-wd table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 24px;
    margin-bottom: 24px;
    font-size: 15px;
    line-height: 1.6;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    border-radius: 8px;
    overflow: hidden;
}

.policy-main-wd thead {
    background-color: #FFF1DC;
}

.policy-main-wd thead th {
    font-size: 15px;
    line-height: 1.4;
    color: #1b1b1b;
    font-weight: 700;
    padding: 12px 24px;
    text-align: left;
    border-bottom: 2px solid #9349C1;
}

.policy-main-wd tbody tr {
    border-bottom: 1px solid #ede8f5;
    transition: background-color 0.15s ease-out;
}

.policy-main-wd tbody tr:last-child {
    border-bottom: none;
}

.policy-main-wd tbody tr:hover {
    background-color: #faf6ff;
}

.policy-main-wd td {
    padding: 12px 24px;
    color: #2a2a2a;
    vertical-align: top;
    font-size: 15px;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .policy-main-wd {
        padding: 24px 12px;
    }

    .policy-main-wd h1 {
        font-size: 34px;
    }

    .policy-main-wd h2 {
        font-size: 20px;
    }

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

@media (max-width: 480px) {
    .policy-main-wd h1 {
        font-size: 20px;
        line-height: 1.4;
    }

    .policy-main-wd h2 {
        font-size: 16px;
    }

    .policy-main-wd p {
        font-size: 15px;
    }

    .policy-main-wd thead th,
    .policy-main-wd td {
        padding: 12px;
    }
}

.lrn-prog-dtl {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    overflow: hidden;
}

.lrn-prog-dtl .strip-img {
    width: 100%;
    aspect-ratio: 16/9;
    max-height: 220px;
    overflow: hidden;
    position: relative;
}

.lrn-prog-dtl .strip-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
    filter: blur(2px) brightness(0.85);
    transform: scale(1.04);
    display: block;
}

.lrn-prog-dtl .strip-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, rgba(147, 73, 193, 0.18) 100%);
    pointer-events: none;
}

.lrn-prog-dtl .title-zone {
    padding: 48px 0 24px;
    position: relative;
}

.lrn-prog-dtl .title-zone::before {
    content: "";
    display: block;
    width: 6px;
    height: 100%;
    position: absolute;
    left: -24px;
    top: 0;
    background: conic-gradient(from 120deg at 0% 50%, #9349C1, #CD310B, #9349C1);
    border-radius: 0px 8px 8px 0px;
}

.lrn-prog-dtl .pg-tag {
    display: inline-block;
    font-size: 15px;
    line-height: 1.4;
    background: #FFF1DC;
    color: #5a2e00;
    padding: 6px 12px;
    border-radius: 28px;
    margin-bottom: 12px;
}

.lrn-prog-dtl .pg-title {
    font-size: 64px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 0 24px;
    max-width: 820px;
}

.lrn-prog-dtl .dot-border {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 24px;
}

.lrn-prog-dtl .dot-border span {
    display: inline-block;
    border-radius: 50%;
    background: #9349C1;
    opacity: 0.18;
}

.lrn-prog-dtl .dot-border span:nth-child(3n) {
    width: 10px;
    height: 10px;
    opacity: 0.28;
}

.lrn-prog-dtl .dot-border span:nth-child(3n+1) {
    width: 6px;
    height: 6px;
    opacity: 0.14;
}

.lrn-prog-dtl .dot-border span:nth-child(3n+2) {
    width: 8px;
    height: 8px;
    opacity: 0.22;
}

.lrn-prog-dtl .meta-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
    margin-bottom: 12px;
}

.lrn-prog-dtl .meta-item {
    font-size: 15px;
    line-height: 1.4;
    color: #4a3060;
}

.lrn-prog-dtl .meta-item strong {
    color: #1b0a2e;
}

.lrn-prog-dtl .price-badge {
    display: inline-block;
    font-size: 20px;
    line-height: 1.4;
    font-weight: 700;
    color: #fff;
    background: #9349C1;
    padding: 6px 24px;
    border-radius: 8px;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
}

.lrn-prog-dtl .body-grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 48px;
    padding: 48px 0;
    align-items: start;
}

.lrn-prog-dtl .desc-col {
    min-width: 0;
}

.lrn-prog-dtl .desc-col .numbered-para {
    counter-reset: para-count;
}

.lrn-prog-dtl .desc-col .para-item {
    counter-increment: para-count;
    position: relative;
    padding-left: 48px;
    margin-bottom: 24px;
}

.lrn-prog-dtl .desc-col .para-item::before {
    content: counter(para-count, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0;
    font-size: 15px;
    line-height: 2.0;
    color: #9349C1;
    font-weight: 700;
}

.lrn-prog-dtl .desc-col .para-item p {
    font-size: 16px;
    line-height: 1.6;
    color: #2a1840;
    margin: 0;
}

.lrn-prog-dtl .desc-col .para-item p::first-letter {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    float: left;
    margin-right: 6px;
    margin-top: 4px;
    font-weight: 700;
}

.lrn-prog-dtl .desc-col .desc-raw h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin: 24px 0 12px;
}

.lrn-prog-dtl .desc-col .desc-raw h3 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    color: #4a2080;
    margin: 24px 0 12px;
}

.lrn-prog-dtl .desc-col .desc-raw ul {
    padding-left: 24px;
    margin: 12px 0;
}

.lrn-prog-dtl .desc-col .desc-raw ul li {
    font-size: 16px;
    line-height: 1.6;
    color: #2a1840;
    display: inline;
}

.lrn-prog-dtl .desc-col .desc-raw ul li::after {
    content: " / ";
    color: #9349C1;
    font-weight: 700;
}

.lrn-prog-dtl .desc-col .desc-raw ul li:last-child::after {
    content: "";
}

.lrn-prog-dtl .desc-col .desc-raw dl {
    margin: 12px 0;
}

.lrn-prog-dtl .desc-col .desc-raw dt {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
    color: #1b0a2e;
    margin-top: 12px;
}

.lrn-prog-dtl .desc-col .desc-raw dd {
    font-size: 16px;
    line-height: 1.6;
    color: #2a1840;
    margin-left: 24px;
}

.lrn-prog-dtl .desc-col .desc-raw small {
    font-size: 15px;
    line-height: 1.4;
    color: #6a4a90;
}

.lrn-prog-dtl .side-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.lrn-prog-dtl .prog-card {
    background: rgba(255, 241, 220, 0.55);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(147, 73, 193, 0.15);
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
    position: relative;
}

.lrn-prog-dtl .prog-card .card-notch {
    position: absolute;
    left: 0;
    top: 24px;
    width: 4px;
    height: 48px;
    background: #CD310B;
    border-radius: 0px 8px 8px 0px;
}

.lrn-prog-dtl .prog-card h4 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 0 12px 12px;
}

.lrn-prog-dtl .prog-card .prog-raw h2 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    color: #4a2080;
    margin: 12px 0 6px;
}

.lrn-prog-dtl .prog-card .prog-raw p {
    font-size: 15px;
    line-height: 1.6;
    color: #2a1840;
    margin: 0 0 12px;
}

.lrn-prog-dtl .prog-card .prog-raw ul {
    padding-left: 12px;
    margin: 6px 0;
    list-style: none;
}

.lrn-prog-dtl .prog-card .prog-raw ul li {
    font-size: 15px;
    line-height: 1.6;
    color: #2a1840;
    padding: 6px 0;
    border-bottom: 1px solid rgba(147, 73, 193, 0.1);
}

.lrn-prog-dtl .prog-card .prog-raw ul li:last-child {
    border-bottom: none;
}

.lrn-prog-dtl .prog-card .prog-raw mark {
    background: #FFF1DC;
    color: #CD310B;
    border-radius: 0px;
    padding: 0 4px;
}

.lrn-prog-dtl .prog-card .prog-raw blockquote {
    border: none;
    margin: 12px 0;
    padding: 12px 12px 12px 24px;
    background: rgba(147, 73, 193, 0.07);
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.6;
    color: #4a2080;
    font-style: italic;
}

.lrn-prog-dtl .prog-card .prog-raw figure {
    margin: 12px 0;
}

.lrn-prog-dtl .prog-card .prog-raw figure img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 8px;
}

.lrn-prog-dtl .prog-card .prog-raw figcaption {
    font-size: 15px;
    line-height: 1.4;
    color: #6a4a90;
    margin-top: 6px;
}

.lrn-prog-dtl .enroll-card {
    background: #fff;
    border-radius: 8px;
    border: 1px solid rgba(147, 73, 193, 0.12);
    padding: 24px;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lrn-prog-dtl .enroll-card .enroll-price {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 700;
    color: #1b0a2e;
}

.lrn-prog-dtl .enroll-card .enroll-dur {
    font-size: 15px;
    line-height: 1.4;
    color: #4a3060;
}

.lrn-prog-dtl .enroll-card .enroll-btn {
    display: block;
    width: 100%;
    padding: 12px 24px;
    font-size: 16px;
    line-height: 1.4;
    color: #9349C1;
    background: transparent;
    border: 2px solid #9349C1;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: background 0.18s ease-out, color 0.18s ease-out, border-color 0.22s ease-out;
    position: relative;
    overflow: hidden;
}

.lrn-prog-dtl .enroll-card .enroll-btn:hover {
    background: #9349C1;
    color: #fff;
}

.lrn-prog-dtl .enroll-card .enroll-btn:focus {
    outline: 3px solid #CD310B;
    outline-offset: 2px;
}

.lrn-prog-dtl .enroll-card .enroll-btn:active {
    background: #7a3aaa;
    border-color: #7a3aaa;
    color: #fff;
}

.lrn-prog-dtl .trace-outline {
    border: 2px solid transparent;
    border-radius: 8px;
    background-image: linear-gradient(#fff, #fff), linear-gradient(90deg, #9349C1, #CD310B, #9349C1);
    background-origin: border-box;
    background-clip: padding-box, border-box;
    animation: trace-draw 0.22s cubic-bezier(0.4, 0, 0.6, 1) forwards;
}

@keyframes trace-draw {
    from {
        background-size: 100% 100%, 0% 100%;
    }

    to {
        background-size: 100% 100%, 100% 100%;
    }
}

.lrn-prog-dtl .prog-section {
    background: #f5eeff;
    border-radius: 8px;
    padding: 48px 24px;
    margin: 0 -24px;
}

.lrn-prog-dtl .prog-section .prog-head {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 0 24px;
}

.lrn-prog-dtl .stages-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.lrn-prog-dtl .stage-block {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    position: relative;
    transition: box-shadow 0.18s ease-out, transform 0.15s ease-out;
}

.lrn-prog-dtl .stage-block:hover {
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    transform: translateY(-2px);
}

.lrn-prog-dtl .stage-block .stg-num {
    font-size: 64px;
    line-height: 1.15;
    font-weight: 700;
    color: rgba(147, 73, 193, 0.1);
    position: absolute;
    right: 12px;
    top: 6px;
    pointer-events: none;
}

.lrn-prog-dtl .stage-block h5 {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 700;
    color: #1b0a2e;
    margin: 0 0 6px;
}

.lrn-prog-dtl .stage-block p {
    font-size: 15px;
    line-height: 1.6;
    color: #4a3060;
    margin: 0;
}

.lrn-prog-dtl .contact-strip {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
    justify-content: space-between;
    padding: 48px 0;
    border-top: 1px solid rgba(147, 73, 193, 0.12);
}

.lrn-prog-dtl .contact-strip .contact-txt h4 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 0 6px;
}

.lrn-prog-dtl .contact-strip .contact-txt p {
    font-size: 15px;
    line-height: 1.6;
    color: #4a3060;
    margin: 0;
}

.lrn-prog-dtl .contact-strip .contact-links {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap;
}

.lrn-prog-dtl .contact-strip .contact-links a {
    display: inline-block;
    font-size: 15px;
    line-height: 1.4;
    color: #9349C1;
    border: 1px solid #9349C1;
    border-radius: 8px;
    padding: 6px 12px;
    text-decoration: none;
    transition: background 0.16s ease-out, color 0.16s ease-out;
}

.lrn-prog-dtl .contact-strip .contact-links a:hover {
    background: #9349C1;
    color: #fff;
}

.lrn-prog-dtl .scroll-top-anchor {
    position: fixed;
    bottom: 48px;
    right: 24px;
    z-index: 90;
}

.lrn-prog-dtl .scroll-top-anchor a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: #9349C1;
    border-radius: 8px;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    transition: background 0.18s ease-out, box-shadow 0.22s ease-out;
}

.lrn-prog-dtl .scroll-top-anchor a:hover {
    background: #7a3aaa;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.lrn-prog-dtl .scroll-top-anchor a svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: #fff;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 1280px) {
    .lrn-prog-dtl .body-grid {
        grid-template-columns: 1fr 300px;
        gap: 24px;
    }

    .lrn-prog-dtl .stages-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .lrn-prog-dtl .pg-title {
        font-size: 34px;
    }

    .lrn-prog-dtl .body-grid {
        grid-template-columns: 1fr;
    }

    .lrn-prog-dtl .side-col {
        order: -1;
    }

    .lrn-prog-dtl .stages-grid {
        grid-template-columns: 1fr;
    }

    .lrn-prog-dtl .contact-strip {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .lrn-prog-dtl {
        padding: 0 12px;
    }

    .lrn-prog-dtl .title-zone {
        padding: 24px 0 12px;
    }

    .lrn-prog-dtl .pg-title {
        font-size: 34px;
    }

    .lrn-prog-dtl .meta-row {
        gap: 12px;
    }

    .lrn-prog-dtl .prog-section {
        margin: 0 -12px;
        padding: 24px 12px;
    }

    .lrn-prog-dtl .body-grid {
        padding: 24px 0;
    }
}

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

.prs-pg .prs-wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
}

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

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

.prs-pg .anim-1 {
    animation: slideInLeft 0.22s cubic-bezier(0.4, 0, 0.6, 1) both;
}

.prs-pg .anim-2 {
    animation: slideInLeft 0.20s cubic-bezier(0.4, 0, 0.6, 1) 0.08s both;
}

.prs-pg .anim-3 {
    animation: slideInLeft 0.18s cubic-bezier(0.4, 0, 0.6, 1) 0.15s both;
}

.prs-pg .anim-4 {
    animation: slideInLeft 0.18s cubic-bezier(0.4, 0, 0.6, 1) 0.22s both;
}

.prs-pg .ttl-blk {
    background: conic-gradient(from 210deg at 15% 85%, #f5eeff 0%, #fff1dc 18%, #fdf6ff 36%, #fff 55%, #fdf0eb 72%, #f5eeff 90%, #fff1dc 100%);
    padding: 48px 0;
    position: relative;
}

.prs-pg .ttl-blk::before {
    content: '';
    position: absolute;
    top: 24px;
    right: 48px;
    width: 80px;
    height: 2px;
    background: #9349C1;
    opacity: 0.18;
    box-shadow: 0 8px 0 #9349C1, 0 16px 0 #9349C1, 0 24px 0 rgba(147, 73, 193, 0.09);
    pointer-events: none;
}

.prs-pg .ttl-blk::after {
    content: '';
    position: absolute;
    bottom: 24px;
    left: 48px;
    width: 60px;
    height: 2px;
    background: #CD310B;
    opacity: 0.13;
    box-shadow: 0 8px 0 #CD310B, 0 16px 0 rgba(205, 49, 11, 0.07);
    pointer-events: none;
}

.prs-pg .ttl-inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.prs-pg .ttl-badge {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
    line-height: 1.4;
    color: #9349C1;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.prs-pg .ttl-badge .sym-left,
.prs-pg .ttl-badge .sym-right {
    width: 18px;
    height: 2px;
    background: #9349C1;
    display: inline-block;
    border-radius: 0px;
}

.prs-pg .ttl-h1 {
    font-size: 64px;
    line-height: 1.15;
    color: #1b1035;
    font-style: italic;
    font-weight: 800;
    margin: 0;
    max-width: 780px;
}

.prs-pg .ttl-h1 .drop-cap {
    font-size: 64px;
    line-height: 1.15;
    color: #9349C1;
    font-weight: 900;
    float: left;
    margin-right: 4px;
}

.prs-pg .ttl-sub {
    font-size: 20px;
    line-height: 1.6;
    color: #2e2040;
    max-width: 600px;
    margin: 0;
}

.prs-pg .ttl-metrics {
    display: flex;
    flex-direction: row;
    gap: 0;
    margin-top: 12px;
    border-top: 1px solid rgba(147, 73, 193, 0.13);
    border-bottom: 1px solid rgba(147, 73, 193, 0.13);
    padding: 24px 0;
}

.prs-pg .met-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 0 24px;
}

.prs-pg .met-item:not(:last-child) {
    border-right: 1px solid rgba(147, 73, 193, 0.15);
}

.prs-pg .met-item:first-child {
    padding-left: 0;
}

.prs-pg .met-num {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 800;
    color: #CD310B;
}

.prs-pg .met-lbl {
    font-size: 15px;
    line-height: 1.4;
    color: #4a3860;
}

.prs-pg .ttl-img-wrap {
    position: relative;
    width: 100%;
    max-width: 520px;
    align-self: flex-start;
}

.prs-pg .ttl-img-wrap img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 8px;
    opacity: 0.72;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.prs-pg .ttl-layout {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
}

.prs-pg .ttl-text-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.prs-pg .ttl-img-col {
    flex: 0 0 auto;
    width: 380px;
}

.prs-pg .press-rel-sec {
    padding: 48px 0;
    background: #fff;
}

.prs-pg .prl-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: start;
}

.prs-pg .prl-offset-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 48px;
}

.prs-pg .prl-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow 0.18s ease-out;
}

.prs-pg .prl-card:hover {
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.prs-pg .prl-card.featured {
    background: conic-gradient(from 180deg at 10% 10%, #f5eeff 0%, #fff1dc 40%, #fff 100%);
    border-radius: 8px;
}

.prs-pg .prl-tag {
    display: inline-block;
    font-size: 15px;
    line-height: 1.4;
    background: #FFF1DC;
    color: #7a3800;
    border-radius: 28px;
    padding: 6px 12px;
    font-weight: 600;
    align-self: flex-start;
}

.prs-pg .prl-tag.purple {
    background: #ede0ff;
    color: #5a1a9a;
}

.prs-pg .prl-tag.red {
    background: #fde8e3;
    color: #8b1a06;
}

.prs-pg .prl-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    font-weight: 700;
    color: #1b1035;
    margin: 0;
}

.prs-pg .prl-h4 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    font-weight: 700;
    color: #1b1035;
    margin: 0;
}

.prs-pg .prl-p {
    font-size: 16px;
    line-height: 1.6;
    color: #2e2040;
    margin: 0;
}

.prs-pg .prl-p .drop {
    font-size: 20px;
    line-height: 1.15;
    color: #9349C1;
    font-weight: 800;
    float: left;
    margin-right: 3px;
}

.prs-pg .prl-num {
    font-size: 15px;
    line-height: 1.4;
    color: #9349C1;
    font-weight: 700;
}

.prs-pg .prl-divider {
    height: 1px;
    background: rgba(147, 73, 193, 0.12);
    border: none;
    margin: 0;
}

.prs-pg .prl-contact-strip {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
    padding: 24px;
    background: #f7f2ff;
    border-radius: 8px;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
}

.prs-pg .prl-contact-lbl {
    font-size: 15px;
    line-height: 1.4;
    color: #4a3860;
    font-weight: 600;
}

.prs-pg .prl-contact-val {
    font-size: 15px;
    line-height: 1.4;
    color: #1b1035;
}

.prs-pg .prl-contact-sep {
    color: #9349C1;
    font-weight: 700;
}

.prs-pg .prl-slash-list {
    font-size: 15px;
    line-height: 2.0;
    color: #4a3860;
    margin: 0;
}

.prs-pg .prl-slash-list span {
    padding: 0 6px;
    color: #CD310B;
    opacity: 0.6;
}

.prs-pg .prl-word-hover span {
    display: inline;
    transition: background 0.15s ease-out;
    border-radius: 0px;
    padding: 0 2px;
}

.prs-pg .prl-word-hover span:hover {
    background: #FFF1DC;
}

.prs-pg .frosted-strip {
    padding: 48px 0;
    background: linear-gradient(168deg, #2a0a4a 0%, #1b1035 60%, #3d0a10 100%);
    position: relative;
}

.prs-pg .frosted-strip::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: conic-gradient(from 120deg at 80% 20%, rgba(147, 73, 193, 0.18) 0%, transparent 40%);
    pointer-events: none;
}

.prs-pg .frosted-card {
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 48px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
}

.prs-pg .frosted-card::before {
    content: '';
    position: absolute;
    top: 24px;
    right: 24px;
    width: 48px;
    height: 2px;
    background: rgba(255, 241, 220, 0.4);
    box-shadow: 0 8px 0 rgba(255, 241, 220, 0.25), 0 16px 0 rgba(255, 241, 220, 0.12);
    pointer-events: none;
}

.prs-pg .frosted-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    font-weight: 700;
    color: #fff;
    margin: 0;
}

.prs-pg .frosted-p {
    font-size: 16px;
    line-height: 1.6;
    color: rgba(255, 241, 220, 0.88);
    margin: 0;
}

.prs-pg .frosted-p .drop {
    font-size: 20px;
    line-height: 1.15;
    color: #FFF1DC;
    font-weight: 800;
    float: left;
    margin-right: 3px;
}

.prs-pg .frosted-num {
    font-size: 15px;
    line-height: 1.4;
    color: rgba(255, 241, 220, 0.6);
    font-weight: 600;
}

.prs-pg .frosted-row {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
}

.prs-pg .frosted-col-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.prs-pg .frosted-col-side {
    flex: 0 0 260px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.prs-pg .frosted-side-item {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    padding: 12px;
    font-size: 15px;
    line-height: 1.4;
    color: rgba(255, 241, 220, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.07);
}

.prs-pg .frosted-side-item strong {
    display: block;
    color: #fff;
    font-size: 16px;
    line-height: 1.4;
    margin-bottom: 6px;
}

.prs-pg .btn-ghost {
    display: inline-block;
    font-size: 16px;
    line-height: 1.4;
    color: #9349C1;
    background: transparent;
    border: 2px solid #9349C1;
    border-radius: 8px;
    padding: 12px 24px;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.18s ease-out, color 0.15s ease-out;
    align-self: flex-start;
}

.prs-pg .btn-ghost:hover {
    background: #9349C1;
    color: #fff;
}

.prs-pg .btn-ghost.light {
    color: #FFF1DC;
    border-color: rgba(255, 241, 220, 0.5);
}

.prs-pg .btn-ghost.light:hover {
    background: rgba(255, 241, 220, 0.12);
    color: #fff;
    border-color: #FFF1DC;
}

@media (max-width: 1280px) {
    .prs-pg .ttl-img-col {
        width: 300px;
    }

    .prs-pg .ttl-h1 {
        font-size: 48px;
    }
}

@media (max-width: 768px) {
    .prs-pg .ttl-layout {
        flex-direction: column;
    }

    .prs-pg .ttl-img-col {
        width: 100%;
    }

    .prs-pg .ttl-h1 {
        font-size: 34px;
    }

    .prs-pg .ttl-h1 .drop-cap {
        font-size: 34px;
    }

    .prs-pg .ttl-metrics {
        flex-direction: column;
        gap: 12px;
    }

    .prs-pg .met-item {
        border-right: none;
        border-bottom: 1px solid rgba(147, 73, 193, 0.12);
        padding: 12px 0;
    }

    .prs-pg .met-item:last-child {
        border-bottom: none;
    }

    .prs-pg .prl-grid {
        grid-template-columns: 1fr;
    }

    .prs-pg .prl-offset-col {
        margin-top: 0;
    }

    .prs-pg .frosted-row {
        flex-direction: column;
    }

    .prs-pg .frosted-col-side {
        flex: 0 0 auto;
        width: 100%;
    }

    .prs-pg .frosted-card {
        padding: 24px;
    }
}

@media (max-width: 480px) {
    .prs-pg .ttl-h1 {
        font-size: 34px;
    }

    .prs-pg .prl-h2 {
        font-size: 20px;
    }

    .prs-pg .frosted-h2 {
        font-size: 20px;
    }

    .prs-pg .met-num {
        font-size: 34px;
    }

    .prs-pg .prl-contact-strip {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

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

.qz_page .flip_reveal {
    animation: flipIn 0.22s ease-out both;
}

@keyframes flipIn {
    from {
        transform: perspective(600px) rotateX(-18deg);
        opacity: 0;
    }

    to {
        transform: perspective(600px) rotateX(0deg);
        opacity: 1;
    }
}

.qz_page .strokes_deco {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 6px;
    pointer-events: none;
}

.qz_page .strokes_deco span {
    display: block;
    height: 2px;
    background: #9349C1;
    opacity: 0.22;
}

.qz_page .strokes_deco span:nth-child(1) {
    width: 32px;
}

.qz_page .strokes_deco span:nth-child(2) {
    width: 22px;
}

.qz_page .strokes_deco span:nth-child(3) {
    width: 14px;
}

.qz_page .pg_band {
    position: relative;
    padding: 48px 48px 48px 48px;
    background: conic-gradient(from 220deg at 18% 80%, #f5eeff 0%, #fff8f0 28%, #fff1dc 52%, #f5eeff 100%);
    overflow: hidden;
}

.qz_page .pg_band .band_deco {
    position: absolute;
    top: 24px;
    right: 48px;
}

.qz_page .pg_band .band_inner {
    max-width: 740px;
}

.qz_page .pg_band .pg_label {
    display: inline-block;
    font-size: 15px;
    line-height: 1.4;
    background: #9349C1;
    color: #fff;
    padding: 6px 12px;
    border-radius: 28px;
    margin-bottom: 24px;
}

.qz_page .pg_band h1 {
    font-size: 64px;
    line-height: 1.15;
    font-style: italic;
    margin: 0 0 24px 0;
    color: #1b1b1b;
}

.qz_page .pg_band h1 .acc_word {
    color: #9349C1;
}

.qz_page .pg_band .band_desc {
    font-size: 20px;
    line-height: 1.6;
    color: #333;
    max-width: 560px;
}

.qz_page .pg_band .band_meta {
    display: flex;
    flex-direction: row;
    gap: 24px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.qz_page .pg_band .meta_item {
    font-size: 15px;
    line-height: 1.4;
    color: #555;
    padding: 6px 12px;
    border-radius: 8px;
    background: rgba(147, 73, 193, 0.07);
}

.qz_page .pg_band .meta_item strong {
    color: #9349C1;
}

.qz_page .qz_grid_wrap {
    padding: 48px 48px;
    background: #fff;
}

.qz_page .qz_grid_wrap .sec_eyebrow {
    font-size: 15px;
    line-height: 1.4;
    color: #CD310B;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.qz_page .qz_grid_wrap h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    margin: 0 0 48px 0;
    color: #1b1b1b;
}

.qz_page .qz_grid_wrap h2 .acc_word {
    color: #9349C1;
}

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

.qz_page .qz_card {
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow 0.18s ease-out, transform 0.15s ease-out;
    animation: flipIn 0.22s ease-out both;
}

.qz_page .qz_card:hover {
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
    transform: translateY(-2px);
}

.qz_page .qz_card .card_tag {
    display: inline-block;
    font-size: 15px;
    line-height: 1.4;
    padding: 6px 12px;
    border-radius: 28px;
    background: #FFF1DC;
    color: #CD310B;
    align-self: flex-start;
}

.qz_page .qz_card h4 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    margin: 0;
    color: #1b1b1b;
}

.qz_page .qz_card .card_desc {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
    margin: 0;
}

.qz_page .qz_card .card_meta {
    font-size: 15px;
    line-height: 1.4;
    color: #888;
    margin-top: auto;
}

.qz_page .qz_card .card_meta span {
    margin-right: 12px;
}

.qz_page .qz_card .card_link {
    display: inline-block;
    margin-top: 6px;
    font-size: 15px;
    line-height: 1.4;
    color: #9349C1;
    background: transparent;
    border: 1.5px solid #9349C1;
    border-radius: 8px;
    padding: 6px 12px;
    text-decoration: none;
    transition: background 0.18s ease-out, color 0.15s ease-out;
    align-self: flex-start;
}

.qz_page .qz_card .card_link:hover {
    background: #9349C1;
    color: #fff;
}

.qz_page .featured_wrap {
    padding: 48px 48px;
    background: #f7f2fc;
    position: relative;
}

.qz_page .featured_wrap .feat_deco {
    position: absolute;
    bottom: 24px;
    left: 48px;
}

.qz_page .featured_wrap h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    margin: 0 0 48px 0;
    color: #1b1b1b;
}

.qz_page .featured_wrap h2 .acc_word {
    color: #9349C1;
}

.qz_page .feat_cols {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 24px;
    align-items: start;
}

.qz_page .feat_side {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.qz_page .feat_side_item {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
}

.qz_page .feat_side_item h5 {
    font-size: 16px;
    line-height: 1.4;
    font-style: italic;
    margin: 0 0 6px 0;
    color: #9349C1;
}

.qz_page .feat_side_item p {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
    margin: 0;
}

.qz_page .feat_center {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
    position: relative;
    background: #1b1b1b;
}

.qz_page .feat_img_wrap {
    width: 100%;
    aspect-ratio: 16/9;
    position: relative;
}

.qz_page .feat_img_wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0.72;
}

.qz_page .feat_img_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 30%, rgba(27, 10, 45, 0.82) 100%);
}

.qz_page .feat_center_body {
    padding: 24px;
    background: #1b0a2d;
}

.qz_page .feat_center_body h3 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    margin: 0 0 12px 0;
    color: #fff;
}

.qz_page .feat_center_body p {
    font-size: 15px;
    line-height: 1.6;
    color: #c9b8e0;
    margin: 0 0 12px 0;
}

.qz_page .feat_center_body .fc_tag {
    display: inline-block;
    font-size: 15px;
    padding: 6px 12px;
    border-radius: 28px;
    background: #9349C1;
    color: #fff;
}

.qz_page .results_wrap {
    padding: 48px 48px;
    background: #fff;
    position: relative;
}

.qz_page .results_wrap .res_deco {
    position: absolute;
    top: 24px;
    right: 48px;
}

.qz_page .results_wrap h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    margin: 0 0 24px 0;
    color: #1b1b1b;
}

.qz_page .results_wrap h2 .acc_word {
    color: #CD310B;
}

.qz_page .results_wrap .res_intro {
    font-size: 16px;
    line-height: 1.6;
    color: #444;
    max-width: 640px;
    margin-bottom: 48px;
}

.qz_page .res_list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.qz_page .res_row {
    display: grid;
    grid-template-columns: 200px 1fr auto;
    gap: 24px;
    align-items: center;
    padding: 24px;
    border-radius: 8px;
    background: #f7f2fc;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    transition: box-shadow 0.2s ease-out;
}

.qz_page .res_row:hover {
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
}

.qz_page .res_row .res_topic {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
    color: #1b1b1b;
}

.qz_page .res_row .res_bar_wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.qz_page .res_row .res_bar_label {
    font-size: 15px;
    line-height: 1.4;
    color: #666;
}

.qz_page .res_bar_track {
    height: 8px;
    background: #e8daf5;
    border-radius: 28px;
    overflow: hidden;
}

.qz_page .res_bar_fill {
    height: 100%;
    border-radius: 28px;
    background: linear-gradient(90deg, #9349C1, #CD310B);
    transition: width 0.22s cubic-bezier(0.4, 0, 0.6, 1);
}

.qz_page .res_row .res_badge {
    font-size: 15px;
    line-height: 1.4;
    padding: 6px 12px;
    border-radius: 28px;
    background: #FFF1DC;
    color: #CD310B;
    white-space: nowrap;
}

@media (max-width: 1280px) {
    .qz_page .qz_grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .qz_page .feat_cols {
        grid-template-columns: 1fr 2fr;
    }

    .qz_page .feat_side:last-child {
        display: none;
    }

    .qz_page .res_row {
        grid-template-columns: 160px 1fr auto;
    }
}

@media (max-width: 768px) {
    .qz_page .pg_band {
        padding: 48px 24px;
    }

    .qz_page .pg_band h1 {
        font-size: 34px;
    }

    .qz_page .pg_band .band_desc {
        font-size: 16px;
    }

    .qz_page .qz_grid_wrap,
    .qz_page .featured_wrap,
    .qz_page .results_wrap {
        padding: 48px 24px;
    }

    .qz_page .qz_grid {
        grid-template-columns: 1fr;
    }

    .qz_page .feat_cols {
        grid-template-columns: 1fr;
    }

    .qz_page .feat_side:last-child {
        display: flex;
    }

    .qz_page .res_row {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

@media (max-width: 480px) {
    .qz_page .pg_band h1 {
        font-size: 34px;
    }

    .qz_page .pg_band .band_meta {
        flex-direction: column;
        gap: 12px;
    }

    .qz_page .qz_grid_wrap h2,
    .qz_page .featured_wrap h2,
    .qz_page .results_wrap h2 {
        font-size: 20px;
    }
}

.cont-us {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
    overflow: hidden;
}

.cont-us .pg-open {
    padding: 48px 0 24px;
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-end;
}

.cont-us .pg-open .img-frame {
    flex: 0 0 480px;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.cont-us .pg-open .img-frame img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.cont-us .pg-open .img-frame::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(20, 10, 35, 0.72) 0%, transparent 55%);
    pointer-events: none;
}

.cont-us .pg-open .img-frame .frame-edge {
    position: absolute;
    top: 12px;
    left: 12px;
    right: 12px;
    bottom: 12px;
    border: 1px solid rgba(147, 73, 193, 0.28);
    border-radius: 8px;
    pointer-events: none;
    z-index: 1;
}

.cont-us .pg-open .open-txt {
    flex: 1;
    padding-bottom: 12px;
}

.cont-us .pg-open .open-txt .pg-label {
    font-size: 15px;
    line-height: 1.4;
    color: #9349C1;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block;
}

.cont-us .pg-open .open-txt .pg-head {
    font-size: 64px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin-bottom: 24px;
}

.cont-us .pg-open .open-txt .pg-desc {
    font-size: 16px;
    line-height: 1.6;
    color: #2d2d2d;
    max-width: 480px;
}

.cont-us .pg-open .open-txt .pg-desc::first-letter {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    float: left;
    margin-right: 6px;
    margin-top: 4px;
}

.cont-us .pg-open .open-txt .edge-line {
    width: 3px;
    height: 64px;
    background: conic-gradient(from 120deg at 0% 50%, #9349C1, #CD310B, #9349C1);
    border-radius: 0px;
    margin-bottom: 24px;
}

.cont-us .info-strip {
    background: #1a0a2e;
    border-radius: 8px;
    padding: 48px;
    margin: 24px 0;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    position: relative;
    overflow: hidden;
}

.cont-us .info-strip::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-conic-gradient(rgba(147, 73, 193, 0.06) 0% 25%, transparent 0% 50%);
    background-size: 28px 28px;
    pointer-events: none;
}

.cont-us .info-strip .inf-item {
    position: relative;
    z-index: 2;
}

.cont-us .info-strip .inf-item .inf-lbl {
    font-size: 15px;
    line-height: 1.4;
    color: rgba(255, 241, 220, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 6px;
    display: block;
}

.cont-us .info-strip .inf-item .inf-val {
    font-size: 16px;
    line-height: 1.6;
    color: #FFF1DC;
}

.cont-us .info-strip .inf-item .inf-val a {
    color: #FFF1DC;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 241, 220, 0.3);
    transition: border-color 0.18s ease-out, color 0.18s ease-out;
}

.cont-us .info-strip .inf-item .inf-val a:hover {
    color: #CD310B;
    border-color: #CD310B;
}

.cont-us .info-strip .inf-divider {
    width: 1px;
    background: rgba(147, 73, 193, 0.25);
    position: relative;
    z-index: 2;
    display: none;
}

.cont-us .form-area {
    padding: 48px 0;
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 48px;
    align-items: start;
}

.cont-us .form-area .form-aside {
    padding-top: 12px;
}

.cont-us .form-area .form-aside .aside-head {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin-bottom: 24px;
}

.cont-us .form-area .form-aside .aside-para {
    font-size: 16px;
    line-height: 1.6;
    color: #2d2d2d;
    margin-bottom: 24px;
}

.cont-us .form-area .form-aside .aside-para::first-letter {
    font-size: 34px;
    line-height: 1.15;
    color: #CD310B;
    float: left;
    margin-right: 6px;
    margin-top: 4px;
}

.cont-us .form-area .form-aside .aside-para .para-num {
    font-size: 15px;
    color: #9349C1;
    font-weight: 700;
    margin-right: 6px;
}

.cont-us .form-area .form-aside .svc-tags {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 24px;
}

.cont-us .form-area .form-aside .svc-tags .tag {
    font-size: 15px;
    line-height: 1.4;
    padding: 6px 12px;
    border-radius: 28px;
    background: #FFF1DC;
    color: #1a0a2e;
}

.cont-us .form-area .frm-wrap {
    background: #fff;
    border-radius: 8px;
    padding: 48px;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    border: 1.5px solid rgba(147, 73, 193, 0.12);
}

.cont-us .form-area .frm-wrap .frm-head {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    color: #1a0a2e;
    margin-bottom: 24px;
}

.cont-us .form-area .frm-wrap .field-row {
    display: flex;
    flex-direction: row;
    gap: 12px;
    margin-bottom: 12px;
}

.cont-us .form-area .frm-wrap .field-row .field-grp {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cont-us .form-area .frm-wrap .field-grp {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
}

.cont-us .form-area .frm-wrap .field-grp label {
    font-size: 15px;
    line-height: 1.4;
    color: #1a0a2e;
}

.cont-us .form-area .frm-wrap .field-grp input[type="text"],
.cont-us .form-area .frm-wrap .field-grp input[type="email"] {
    border: 1.5px solid rgba(147, 73, 193, 0.2);
    border-radius: 8px;
    padding: 12px;
    font-size: 16px;
    line-height: 1.4;
    color: #1a0a2e;
    background: #fff;
    box-shadow: inset 0 2px 4px rgba(147, 73, 193, 0.06);
    transition: border-color 0.16s ease-out, box-shadow 0.16s ease-out;
    width: 100%;
}

.cont-us .form-area .frm-wrap .field-grp input[type="text"]:focus,
.cont-us .form-area .frm-wrap .field-grp input[type="email"]:focus {
    border-color: #9349C1;
    box-shadow: inset 0 2px 4px rgba(147, 73, 193, 0.1), 0 0 0 3px rgba(147, 73, 193, 0.1);
    outline: none;
}

.cont-us .form-area .frm-wrap .field-grp input::placeholder {
    color: rgba(26, 10, 46, 0.4);
}

.cont-us .form-area .frm-wrap .chk-group {
    margin-bottom: 24px;
}

.cont-us .form-area .frm-wrap .chk-group .chk-lbl {
    font-size: 15px;
    line-height: 1.4;
    color: #1a0a2e;
    margin-bottom: 12px;
    display: block;
}

.cont-us .form-area .frm-wrap .chk-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.cont-us .form-area .frm-wrap .chk-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    padding: 12px;
    border: 1.5px solid rgba(147, 73, 193, 0.15);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.14s ease-out, background 0.14s ease-out;
}

.cont-us .form-area .frm-wrap .chk-item:hover {
    border-color: #9349C1;
    background: rgba(147, 73, 193, 0.04);
}

.cont-us .form-area .frm-wrap .chk-item input[type="checkbox"] {
    accent-color: #9349C1;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.cont-us .form-area .frm-wrap .chk-item span {
    font-size: 15px;
    line-height: 1.4;
    color: #1a0a2e;
}

.cont-us .form-area .frm-wrap .privacy-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 24px;
    padding: 12px;
    background: rgba(255, 241, 220, 0.5);
    border-radius: 8px;
}

.cont-us .form-area .frm-wrap .privacy-row input[type="checkbox"] {
    accent-color: #9349C1;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 2px;
}

.cont-us .form-area .frm-wrap .privacy-row .priv-txt {
    font-size: 15px;
    line-height: 1.6;
    color: #2d2d2d;
}

.cont-us .form-area .frm-wrap .privacy-row .priv-txt a {
    color: #9349C1;
    text-decoration: underline;
    transition: color 0.14s ease-out;
}

.cont-us .form-area .frm-wrap .privacy-row .priv-txt a:hover {
    color: #CD310B;
}

.cont-us .form-area .frm-wrap .submit-btn {
    width: 100%;
    padding: 12px 24px;
    font-size: 16px;
    line-height: 1.4;
    border-radius: 8px;
    border: 2px solid #9349C1;
    background: transparent;
    color: #9349C1;
    cursor: pointer;
    transition: background 0.18s ease-out, color 0.18s ease-out;
    position: relative;
}

.cont-us .form-area .frm-wrap .submit-btn:hover {
    background: #9349C1;
    color: #fff;
}

.cont-us .form-area .frm-wrap .submit-btn:focus {
    outline: 3px solid rgba(147, 73, 193, 0.4);
    outline-offset: 2px;
}

.cont-us .form-area .frm-wrap .submit-btn:active {
    background: #7a3aa8;
    border-color: #7a3aa8;
    color: #fff;
}

@keyframes clarify-in {
    from {
        opacity: 0;
        filter: blur(8px);
    }

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

.cont-us .pg-open {
    animation: clarify-in 0.22s ease-out both;
}

.cont-us .info-strip {
    animation: clarify-in 0.20s ease-out 0.12s both;
}

.cont-us .form-area {
    animation: clarify-in 0.22s ease-out 0.18s both;
}

@media (max-width: 1280px) {
    .cont-us .pg-open .img-frame {
        flex: 0 0 360px;
    }

    .cont-us .pg-open .open-txt .pg-head {
        font-size: 48px;
    }

    .cont-us .form-area {
        grid-template-columns: 1fr 400px;
    }
}

@media (max-width: 768px) {
    .cont-us .pg-open {
        flex-direction: column;
        gap: 24px;
        padding: 24px 0 12px;
    }

    .cont-us .pg-open .img-frame {
        flex: none;
        width: 100%;
    }

    .cont-us .pg-open .open-txt .pg-head {
        font-size: 34px;
    }

    .cont-us .info-strip {
        grid-template-columns: 1fr;
        padding: 24px;
        gap: 24px;
    }

    .cont-us .form-area {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 24px 0;
    }

    .cont-us .form-area .frm-wrap {
        padding: 24px;
    }

    .cont-us .form-area .frm-wrap .chk-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .cont-us {
        padding: 0 12px;
    }

    .cont-us .pg-open .open-txt .pg-head {
        font-size: 34px;
    }

    .cont-us .form-area .frm-wrap .field-row {
        flex-direction: column;
        gap: 6px;
    }

    .cont-us .info-strip {
        padding: 24px 12px;
    }
}

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

.abt-us .pg-wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
}

.abt-us ::selection {
    background: #CD310B;
    color: #fff;
}

.abt-us .tag-primary {
    background: #9349C1;
    color: #fff;
    font-size: 15px;
    padding: 6px 12px;
    border-radius: 28px;
    display: inline-block;
}

.abt-us .tag-secondary {
    background: #CD310B;
    color: #fff;
    font-size: 15px;
    padding: 6px 12px;
    border-radius: 28px;
    display: inline-block;
}

.abt-us .tag-tertiary {
    background: #FFF1DC;
    color: #2a1a00;
    font-size: 15px;
    padding: 6px 12px;
    border-radius: 28px;
    display: inline-block;
}

.abt-us .ttl-block {
    padding: 96px 24px 48px;
    text-align: center;
    position: relative;
}

.abt-us .ttl-block .atm-spot {
    position: absolute;
    border-radius: 28px;
    pointer-events: none;
    z-index: 0;
}

.abt-us .ttl-block .atm-spot.sp1 {
    width: 320px;
    height: 320px;
    background: conic-gradient(from 30deg at 20% 30%, rgba(147, 73, 193, 0.13), rgba(205, 49, 11, 0.07), rgba(255, 241, 220, 0.09), rgba(147, 73, 193, 0.05));
    top: 24px;
    left: 6%;
    filter: blur(48px);
}

.abt-us .ttl-block .atm-spot.sp2 {
    width: 260px;
    height: 260px;
    background: conic-gradient(from 200deg at 80% 70%, rgba(205, 49, 11, 0.10), rgba(147, 73, 193, 0.06), rgba(255, 241, 220, 0.12));
    top: 48px;
    right: 8%;
    filter: blur(40px);
}

.abt-us .ttl-block .ttl-inner {
    position: relative;
    z-index: 1;
}

.abt-us .ttl-block .ttl-label {
    margin-bottom: 24px;
}

.abt-us .ttl-block .ttl-h1 {
    font-size: 64px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 auto 24px;
    max-width: 820px;
}

.abt-us .ttl-block .ttl-link {
    display: inline-block;
    font-size: 16px;
    color: #9349C1;
    border: 1.5px solid #9349C1;
    border-radius: 8px;
    padding: 12px 24px;
    text-decoration: none;
    background: transparent;
    transition: background 0.18s ease-out, color 0.15s ease-out;
    margin-bottom: 48px;
}

.abt-us .ttl-block .ttl-link:hover {
    background: #9349C1;
    color: #fff;
}

.abt-us .ttl-img-wrap {
    position: relative;
    max-width: 900px;
    margin: 0 auto;
    border-radius: 8px;
    overflow: hidden;
}

.abt-us .ttl-img-wrap img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
    border-radius: 8px;
}

.abt-us .ttl-img-wrap .grain-ov {
    position: absolute;
    inset: 0;
    border-radius: 8px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.09'/%3E%3C/svg%3E");
    pointer-events: none;
    mix-blend-mode: overlay;
}

.abt-us .ttl-img-wrap .atm-ov {
    position: absolute;
    inset: 0;
    background: linear-gradient(170deg, rgba(147, 73, 193, 0.18) 0%, rgba(0, 0, 0, 0) 60%);
    border-radius: 8px;
    pointer-events: none;
}

.abt-us .div-watercolor {
    display: block;
    width: 100%;
    line-height: 0;
    overflow: hidden;
}

.abt-us .identity-sec {
    padding: 48px 24px;
    background: #fff;
}

.abt-us .identity-sec .pg-wrap {
    padding: 0;
}

.abt-us .identity-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 48px;
    margin-bottom: 48px;
}

.abt-us .identity-row.rev {
    flex-direction: row-reverse;
}

.abt-us .identity-row .img-col {
    flex: 0 0 48%;
    max-width: 48%;
}

.abt-us .identity-row .img-col img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

.abt-us .identity-row .txt-col {
    flex: 1;
}

.abt-us .identity-row .txt-col .row-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin-bottom: 24px;
    position: relative;
    display: inline-block;
}

.abt-us .identity-row .txt-col .row-h2::after {
    content: '';
    display: block;
    width: 60px;
    height: 2px;
    background: #9349C1;
    border-radius: 0;
    margin-top: 12px;
}

.abt-us .crv-line {
    display: block;
    margin: 0 0 12px;
}

.abt-us .para-block .para-item {
    font-size: 16px;
    line-height: 1.6;
    color: #2a1a3e;
    margin-bottom: 12px;
    counter-increment: para-cnt;
    display: flex;
    flex-direction: row;
    gap: 12px;
}

.abt-us .para-block {
    counter-reset: para-cnt;
}

.abt-us .para-block .para-item .para-num {
    font-size: 15px;
    color: #9349C1;
    font-weight: 700;
    line-height: 1.6;
    flex-shrink: 0;
    min-width: 20px;
}

.abt-us .para-block .para-item .para-txt .drop-cap::first-letter {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    float: left;
    margin-right: 6px;
    margin-top: 2px;
}

.abt-us .team-sec {
    padding: 48px 24px;
    background: #FFF1DC;
    position: relative;
}

.abt-us .team-sec .cross-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: 0;
}

.abt-us .team-sec .cross-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(147, 73, 193, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(147, 73, 193, 0.07) 1px, transparent 1px);
    background-size: 28px 28px;
}

.abt-us .team-sec .ts-inner {
    position: relative;
    z-index: 1;
}

.abt-us .team-sec .ts-head {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 48px;
}

.abt-us .team-sec .ts-head .ts-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin: 0;
}

.abt-us .team-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 24px;
    align-items: start;
}

.abt-us .team-portrait-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.abt-us .portrait-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    position: relative;
}

.abt-us .portrait-card .corner-acc {
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 36px 36px 0;
    border-color: transparent #9349C1 transparent transparent;
    z-index: 2;
}

.abt-us .portrait-card img {
    width: 100%;
    aspect-ratio: 2/3;
    object-fit: cover;
    object-position: center;
    display: block;
}

.abt-us .portrait-card .port-info {
    padding: 12px;
}

.abt-us .portrait-card .port-info .port-name {
    font-size: 16px;
    font-weight: 700;
    color: #1b0a2e;
    margin: 0 0 6px;
}

.abt-us .portrait-card .port-info .port-role {
    font-size: 15px;
    color: #5a3a7a;
    line-height: 1.4;
}

.abt-us .vals-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.abt-us .val-card {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    transition: transform 0.20s cubic-bezier(0.4, 0, 0.6, 1), box-shadow 0.18s ease-out;
    cursor: default;
}

.abt-us .val-card:hover {
    transform: scale(1.025);
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.abt-us .val-card.vc-purple {
    border-top: 3px solid #9349C1;
}

.abt-us .val-card.vc-red {
    border-top: 3px solid #CD310B;
}

.abt-us .val-card.vc-warm {
    border-top: 3px solid #e8a830;
}

.abt-us .val-card .vc-h4 {
    font-size: 20px;
    line-height: 1.4;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 0 12px;
}

.abt-us .val-card .vc-txt {
    font-size: 15px;
    line-height: 1.6;
    color: #3a2050;
    margin: 0;
}

.abt-us .slash-list {
    font-size: 15px;
    color: #5a3a7a;
    line-height: 2.0;
    margin-top: 12px;
}

.abt-us .slash-list span {
    margin: 0 6px;
    color: #9349C1;
}

.abt-us .metrics-sec {
    padding: 48px 24px;
    background: #fff;
}

.abt-us .metrics-sec .feat-wrap {
    display: flex;
    flex-direction: row;
    gap: 48px;
    align-items: flex-start;
}

.abt-us .metrics-sec .feat-left {
    flex: 0 0 340px;
    width: 340px;
}

.abt-us .metrics-sec .feat-right {
    flex: 1;
}

.abt-us .metrics-sec .ms-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1b0a2e;
    margin: 0 0 24px;
}

.abt-us .metrics-sec .ms-img-wrap {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 24px;
}

.abt-us .metrics-sec .ms-img-wrap img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
    border-radius: 8px;
}

.abt-us .metrics-sec .ms-img-wrap .ms-ov {
    position: absolute;
    inset: 0;
    background: linear-gradient(200deg, rgba(205, 49, 11, 0.20) 0%, transparent 65%);
    pointer-events: none;
}

.abt-us .stat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 24px;
}

.abt-us .stat-item {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    transition: transform 0.16s ease-out, box-shadow 0.20s cubic-bezier(0.4, 0, 0.6, 1);
}

.abt-us .stat-item:hover {
    transform: scale(1.03);
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.abt-us .stat-item .si-val {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    font-weight: 700;
    display: block;
    margin-bottom: 6px;
}

.abt-us .stat-item .si-lbl {
    font-size: 15px;
    color: #3a2050;
    line-height: 1.4;
}

.abt-us .metrics-sec .ms-para {
    font-size: 16px;
    line-height: 1.6;
    color: #2a1a3e;
    margin-bottom: 12px;
}

.abt-us .metrics-sec .ms-para .drop-cap::first-letter {
    font-size: 34px;
    line-height: 1.15;
    color: #CD310B;
    float: left;
    margin-right: 6px;
    margin-top: 2px;
}

.abt-us .prog-link {
    display: inline-block;
    font-size: 16px;
    color: #CD310B;
    border: 1.5px solid #CD310B;
    border-radius: 8px;
    padding: 12px 24px;
    text-decoration: none;
    background: transparent;
    margin-top: 12px;
    transition: background 0.22s ease-out, color 0.15s ease-out;
}

.abt-us .prog-link:hover {
    background: #CD310B;
    color: #fff;
}

@media (max-width: 1280px) {
    .abt-us .ttl-block .ttl-h1 {
        font-size: 48px;
    }

    .abt-us .team-grid {
        grid-template-columns: 240px 1fr;
    }

    .abt-us .metrics-sec .feat-left {
        flex: 0 0 280px;
        width: 280px;
    }
}

@media (max-width: 768px) {
    .abt-us .ttl-block .ttl-h1 {
        font-size: 34px;
    }

    .abt-us .identity-row,
    .abt-us .identity-row.rev {
        flex-direction: column;
    }

    .abt-us .identity-row .img-col {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .abt-us .team-grid {
        grid-template-columns: 1fr;
    }

    .abt-us .metrics-sec .feat-wrap {
        flex-direction: column;
    }

    .abt-us .metrics-sec .feat-left {
        flex: none;
        width: 100%;
    }

    .abt-us .stat-grid {
        grid-template-columns: 1fr 1fr;
    }

    .abt-us .team-sec .ts-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .abt-us .ttl-block {
        padding: 48px 24px 24px;
    }

    .abt-us .ttl-block .ttl-h1 {
        font-size: 34px;
    }

    .abt-us .stat-grid {
        grid-template-columns: 1fr;
    }

    .abt-us .identity-sec,
    .abt-us .team-sec,
    .abt-us .metrics-sec {
        padding: 24px 12px;
    }
}

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

.strt .pg-wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
}

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

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

.strt .anim-1 {
    animation: col-appear 0.22s ease-out 0.08s both;
}

.strt .anim-2 {
    animation: col-appear 0.2s ease-out 0.18s both;
}

.strt .anim-3 {
    animation: col-appear 0.19s ease-out 0.28s both;
}

.strt .anim-4 {
    animation: col-appear 0.18s ease-out 0.38s both;
}

::selection {
    background: #CD310B;
    color: #fff;
}

.strt .num-para {
    counter-reset: para-count;
}

.strt .num-para .np-item {
    counter-increment: para-count;
    position: relative;
    padding-left: 24px;
    margin-bottom: 12px;
}

.strt .num-para .np-item::before {
    content: counter(para-count, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #9349C1;
    font-weight: 700;
}

.strt .drop-cap::first-letter {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    float: left;
    margin-right: 6px;
    font-weight: 700;
}

.strt .tag-badge {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 28px;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 600;
}

.strt .tag-pri {
    background: #9349C1;
    color: #fff;
}

.strt .tag-sec {
    background: #CD310B;
    color: #fff;
}

.strt .tag-ter {
    background: #FFF1DC;
    color: #3a2200;
}

.strt .corner-bracket {
    position: relative;
}

.strt .corner-bracket::before,
.strt .corner-bracket::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 18px;
    pointer-events: none;
}

.strt .corner-bracket::before {
    top: -6px;
    left: -6px;
    border-top: 2px solid #9349C1;
    border-left: 2px solid #9349C1;
}

.strt .corner-bracket::after {
    bottom: -6px;
    right: -6px;
    border-bottom: 2px solid #9349C1;
    border-right: 2px solid #9349C1;
}

.strt .btn-ghost {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 8px;
    border: 2px solid #9349C1;
    background: transparent;
    color: #9349C1;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.18s ease-out, color 0.18s ease-out;
}

.strt .btn-ghost:hover {
    background-color: #9349C1;
    color: #fff;
}

.strt .btn-ghost-sec {
    border-color: #CD310B;
    color: #CD310B;
}

.strt .btn-ghost-sec:hover {
    background-color: #CD310B;
    color: #fff;
}

.strt .slash-list {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
}

.strt .slash-list span+span::before {
    content: " / ";
    color: #9349C1;
}

.strt .divider-band {
    width: 100%;
    height: 6px;
    background: #9349C1;
}

.strt .divider-band-sec {
    background: #CD310B;
}

.strt .divider-band-ter {
    background: #FFF1DC;
    height: 12px;
}

.strt .img-wrap {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: 8px;
}

.strt .img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.strt .portrait-wrap {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.strt .portrait-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.strt .vignette-img {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
}

.strt .vignette-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.strt .vignette-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(147, 73, 193, 0.28) 0%, transparent 45%, transparent 55%, rgba(205, 49, 11, 0.22) 100%);
    pointer-events: none;
}

.strt .dot-pattern {
    position: absolute;
    width: 120px;
    height: 120px;
    pointer-events: none;
    overflow: hidden;
}

.strt .dot-pattern svg {
    width: 100%;
    height: 100%;
    opacity: 0.18;
}

.strt .title-blk {
    position: relative;
    background: conic-gradient(from 210deg at 20% 30%, #f3e8ff 0%, #FFF1DC 18%, #fff 32%, #fde8e2 50%, #f3e8ff 68%, #FFF1DC 82%, #fff 100%);
    padding: 48px 0;
}

.strt .title-blk .dot-pattern {
    top: 12px;
    right: 24px;
}

.strt .title-blk .dot-pattern-b {
    bottom: 12px;
    left: 24px;
    top: auto;
    right: auto;
}

.strt .title-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

.strt .title-text h1 {
    font-size: 64px;
    line-height: 1.15;
    color: #1b0a2e;
    margin-bottom: 24px;
    font-style: italic;
}

.strt .title-text .sub-desc {
    font-size: 20px;
    line-height: 1.6;
    color: #3a2200;
    margin-bottom: 24px;
    max-width: 480px;
}

.strt .title-badges {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.strt .title-img-col {
    position: relative;
}

.strt .title-img-col .vignette-img {
    aspect-ratio: 16/9;
    width: 100%;
}

.strt .val-section {
    padding: 48px 0;
    background: #fff;
}

.strt .val-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}

.strt .val-text h2 {
    font-size: 34px;
    line-height: 1.15;
    color: #1b0a2e;
    margin-bottom: 24px;
    font-style: italic;
}

.strt .val-text .np-item {
    font-size: 16px;
    line-height: 1.6;
    color: #2a2a2a;
}

.strt .val-visual {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.strt .val-stat-row {
    display: flex;
    flex-direction: row;
    gap: 24px;
}

.strt .val-stat {
    flex: 1;
    background: #f5eeff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
}

.strt .val-stat .stat-num {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    font-weight: 700;
    display: block;
}

.strt .val-stat .stat-lbl {
    font-size: 15px;
    line-height: 1.4;
    color: #3a2200;
}

.strt .hesit-section {
    padding: 48px 0;
    background: #1b0a2e;
}

.strt .hesit-inner {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: center;
}

.strt .hesit-img-col .img-wrap {
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
}

.strt .hesit-text h2 {
    font-size: 34px;
    line-height: 1.15;
    color: #FFF1DC;
    margin-bottom: 24px;
    font-style: italic;
}

.strt .hesit-text .np-item {
    font-size: 16px;
    line-height: 1.6;
    color: #e8d5ff;
}

.strt .hesit-text .np-item::before {
    color: #CD310B;
}

.strt .hesit-text .drop-cap::first-letter {
    color: #CD310B;
}

.strt .hesit-tag-row {
    display: flex;
    flex-direction: row;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.strt .team-section {
    padding: 48px 0;
    background: #FFF1DC;
}

.strt .team-head {
    margin-bottom: 48px;
}

.strt .team-head h2 {
    font-size: 34px;
    line-height: 1.15;
    color: #1b0a2e;
    font-style: italic;
    margin-bottom: 12px;
}

.strt .team-head .sub-desc {
    font-size: 16px;
    line-height: 1.6;
    color: #3a2200;
    max-width: 560px;
}

.strt .team-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.strt .team-card {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.strt .team-card-top {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: center;
}

.strt .team-card-name {
    font-size: 20px;
    line-height: 1.4;
    color: #1b0a2e;
    font-weight: 700;
}

.strt .team-card-role {
    font-size: 15px;
    line-height: 1.4;
    color: #9349C1;
}

.strt .team-card-bio {
    font-size: 15px;
    line-height: 1.6;
    color: #3a2200;
}

.strt .team-img-row {
    margin-top: 48px;
}

.strt .approach-section {
    padding: 48px 0;
    background: #fff;
}

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

.strt .approach-left h2 {
    font-size: 34px;
    line-height: 1.15;
    color: #1b0a2e;
    font-style: italic;
    margin-bottom: 24px;
}

.strt .approach-left .np-item {
    font-size: 16px;
    line-height: 1.6;
    color: #2a2a2a;
}

.strt .approach-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.strt .appr-step {
    border-radius: 8px;
    padding: 24px;
    background: #f9f3ff;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    position: relative;
}

.strt .appr-step .step-num {
    font-size: 34px;
    line-height: 1.15;
    color: #9349C1;
    font-weight: 700;
    opacity: 0.18;
    position: absolute;
    top: 12px;
    right: 12px;
}

.strt .appr-step h5 {
    font-size: 16px;
    line-height: 1.4;
    color: #1b0a2e;
    font-weight: 700;
    margin-bottom: 6px;
}

.strt .appr-step p {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
    margin: 0;
}

.strt .approach-cta-row {
    display: flex;
    flex-direction: row;
    gap: 12px;
    margin-top: 24px;
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .strt .title-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .strt .title-text h1 {
        font-size: 34px;
    }

    .strt .val-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .strt .val-stat-row {
        flex-direction: column;
        gap: 12px;
    }

    .strt .hesit-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .strt .team-cards {
        grid-template-columns: 1fr;
    }

    .strt .approach-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

@media (max-width: 480px) {
    .strt .title-text h1 {
        font-size: 34px;
    }

    .strt .title-text .sub-desc {
        font-size: 16px;
    }

    .strt .pg-wrap {
        padding: 0 12px;
    }

    .strt .title-blk {
        padding: 24px 0;
    }

    .strt .val-section,
    .strt .hesit-section,
    .strt .team-section,
    .strt .approach-section {
        padding: 24px 0;
    }
}

@media (min-width: 1280px) {
    .strt .title-inner {
        gap: 48px;
    }
}

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

.lrn-prog .pg-wrap {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 24px;
}

.lrn-prog .reveal {
    opacity: 0;
    transform: scale(0.97);
    animation: revealIn 0.22s cubic-bezier(0.4, 0, 0.6, 1) forwards;
}

@keyframes revealIn {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.lrn-prog .reveal-d1 {
    animation-delay: 0.08s;
}

.lrn-prog .reveal-d2 {
    animation-delay: 0.14s;
}

.lrn-prog .reveal-d3 {
    animation-delay: 0.20s;
}

.lrn-prog *::selection {
    background: #CD310B;
    color: #fff;
}

.lrn-prog .bento-strip {
    padding: 48px 0 24px;
    background: #fff;
}

.lrn-prog .bento-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 12px;
}

.lrn-prog .bento-cell {
    background: #fff;
    border: 1px solid #e8e0f0;
    border-radius: 8px;
    overflow: hidden;
}

.lrn-prog .bento-cell.img-cell {
    grid-column: 1;
    grid-row: 1 / 3;
    box-shadow: 0 7px 14px 0 rgba(147, 73, 193, 0.09);
    position: relative;
}

.lrn-prog .bento-cell.img-cell::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 30%, rgba(255, 241, 220, 0.6) 0%, transparent 70%);
    pointer-events: none;
}

.lrn-prog .bento-img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    display: block;
}

.lrn-prog .bento-cell.text-main {
    grid-column: 2 / 4;
    grid-row: 1;
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: conic-gradient(from 200deg at 90% 10%, #f5eeff 0deg, #fff 60deg, #fff1dc 200deg, #fff 360deg);
}

.lrn-prog .bento-cell.text-sub {
    grid-column: 2;
    grid-row: 2;
    padding: 24px;
    background: #fff;
}

.lrn-prog .bento-cell.text-stat {
    grid-column: 3;
    grid-row: 2;
    padding: 24px;
    background: #9349C1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.lrn-prog .bento-deco-line {
    width: 3px;
    height: 100%;
    background: #9349C1;
    opacity: 0.18;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 0;
}

.lrn-prog .bento-cell.text-main {
    position: relative;
}

.lrn-prog .pg-h1 {
    font-size: 64px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin: 0 0 12px;
    letter-spacing: -1px;
}

.lrn-prog .pg-lead {
    font-size: 16px;
    line-height: 1.6;
    color: #3a2a4a;
    margin: 0 0 24px;
}

.lrn-prog .pg-cta {
    display: inline-block;
    padding: 12px 24px;
    border: 2px solid #9349C1;
    border-radius: 8px;
    color: #9349C1;
    font-size: 15px;
    font-weight: 600;
    background: transparent;
    text-decoration: none;
    transition: background 0.18s ease-out, color 0.18s ease-out;
    align-self: flex-start;
}

.lrn-prog .pg-cta:hover {
    background: #9349C1;
    color: #fff;
}

.lrn-prog .bento-sub-h {
    font-size: 15px;
    font-weight: 700;
    color: #3a2a4a;
    margin: 0 0 6px;
}

.lrn-prog .bento-sub-p {
    font-size: 15px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0;
}

.lrn-prog .bento-stat-num {
    font-size: 34px;
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
    margin: 0 0 6px;
}

.lrn-prog .bento-stat-label {
    font-size: 15px;
    color: rgba(255, 241, 220, 0.9);
    margin: 0;
}

.lrn-prog .connector-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 24px 0;
}

.lrn-prog .connector-dot {
    width: 10px;
    height: 10px;
    border-radius: 28px;
    background: #9349C1;
    flex-shrink: 0;
}

.lrn-prog .connector-line {
    flex: 1;
    border-top: 2px dashed rgba(147, 73, 193, 0.3);
}

.lrn-prog .connector-label {
    font-size: 15px;
    color: #5a4a6a;
    flex-shrink: 0;
}

.lrn-prog .cards-strip {
    padding: 48px 0;
    background: #fff;
}

.lrn-prog .strip-head {
    margin-bottom: 48px;
}

.lrn-prog .strip-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin: 0 0 12px;
    position: relative;
    display: inline-block;
    padding-left: 16px;
}

.lrn-prog .strip-h2::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8%;
    height: 84%;
    width: 3px;
    background: #9349C1;
    border-radius: 0;
}

.lrn-prog .strip-desc {
    font-size: 16px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0;
    max-width: 640px;
}

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

.lrn-prog .prog-card {
    border: 1px solid #e8e0f0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    transition: box-shadow 0.18s ease-out, transform 0.15s ease-out;
}

.lrn-prog .prog-card:hover {
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
    transform: translateY(-3px);
}

.lrn-prog .card-img-wrap {
    aspect-ratio: 16/9;
    overflow: hidden;
    position: relative;
}

.lrn-prog .card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.22s ease-out;
}

.lrn-prog .prog-card:hover .card-img-wrap img {
    transform: scale(1.04);
}

.lrn-prog .card-body {
    padding: 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lrn-prog .card-h {
    font-size: 20px;
    line-height: 1.4;
    color: #1a0a2e;
    margin: 0;
    font-style: italic;
}

.lrn-prog .card-desc {
    font-size: 15px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0;
    flex: 1;
}

.lrn-prog .card-meta {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.lrn-prog .card-badge {
    font-size: 15px;
    padding: 6px 12px;
    border-radius: 28px;
    background: #FFF1DC;
    color: #7a3a00;
    font-weight: 600;
}

.lrn-prog .card-badge.dur {
    background: #f0e8fa;
    color: #5a1a8a;
}

.lrn-prog .card-footer {
    padding: 12px 24px;
    border-top: 1px solid #f0eafa;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.lrn-prog .card-price {
    font-size: 20px;
    font-weight: 700;
    color: #9349C1;
}

.lrn-prog .card-link {
    display: inline-block;
    padding: 6px 24px;
    border: 2px solid #CD310B;
    border-radius: 8px;
    color: #CD310B;
    font-size: 15px;
    font-weight: 600;
    background: transparent;
    text-decoration: none;
    transition: background 0.15s ease-out, color 0.15s ease-out;
}

.lrn-prog .card-link:hover {
    background: #CD310B;
    color: #fff;
}

.lrn-prog .metrics-strip {
    padding: 48px 0;
    background: conic-gradient(from 220deg at 5% 95%, #2a0a4a 0deg, #1a0a2e 80deg, #3a1060 200deg, #1a0a2e 360deg);
}

.lrn-prog .metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 24px;
}

.lrn-prog .metric-item {
    text-align: center;
    padding: 24px 12px;
    border-radius: 8px;
    border: 1px solid rgba(147, 73, 193, 0.25);
    background: rgba(255, 255, 255, 0.04);
}

.lrn-prog .metric-num {
    font-size: 64px;
    line-height: 1.15;
    font-weight: 700;
    color: #FFF1DC;
    display: block;
}

.lrn-prog .metric-label {
    font-size: 15px;
    color: rgba(255, 241, 220, 0.7);
    margin: 6px 0 0;
}

.lrn-prog .metrics-head {
    text-align: center;
    margin-bottom: 48px;
}

.lrn-prog .metrics-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #FFF1DC;
    margin: 0 0 12px;
}

.lrn-prog .metrics-desc {
    font-size: 16px;
    line-height: 1.6;
    color: rgba(255, 241, 220, 0.75);
    margin: 0 auto;
    max-width: 560px;
}

.lrn-prog .process-strip {
    padding: 48px 0;
    background: #FFF1DC;
}

.lrn-prog .process-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}

.lrn-prog .process-img-wrap {
    aspect-ratio: 16/9;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 40px 0 rgba(205, 49, 11, 0.13);
    border: 2px solid rgba(205, 49, 11, 0.2);
}

.lrn-prog .process-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lrn-prog .process-text-col {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.lrn-prog .process-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin: 0;
    position: relative;
    padding-left: 16px;
}

.lrn-prog .process-h2::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8%;
    height: 84%;
    width: 3px;
    background: #CD310B;
    border-radius: 0;
}

.lrn-prog .process-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lrn-prog .step-row {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: flex-start;
}

.lrn-prog .step-num {
    font-size: 34px;
    font-weight: 700;
    color: rgba(147, 73, 193, 0.2);
    line-height: 1.15;
    flex-shrink: 0;
    width: 48px;
}

.lrn-prog .step-content {
    flex: 1;
}

.lrn-prog .step-h {
    font-size: 16px;
    font-weight: 700;
    color: #1a0a2e;
    margin: 0 0 6px;
}

.lrn-prog .step-p {
    font-size: 15px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0;
}

.lrn-prog .testi-strip {
    padding: 48px 0;
    background: #fff;
}

.lrn-prog .testi-h2 {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin: 0 0 48px;
    text-align: center;
}

.lrn-prog .testi-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.lrn-prog .testi-card {
    display: flex;
    flex-direction: row;
    gap: 24px;
    padding: 24px;
    border-radius: 8px;
    border: 1px solid #e8e0f0;
    box-shadow: 0 3px 5px 0 rgba(147, 73, 193, 0.07);
    align-items: flex-start;
}

.lrn-prog .testi-portrait {
    width: 80px;
    height: 112px;
    object-fit: cover;
    object-position: center;
    flex-shrink: 0;
    border-radius: 0;
    border: 2px solid #e8e0f0;
}

.lrn-prog .testi-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lrn-prog .testi-name {
    font-size: 16px;
    font-weight: 700;
    color: #1a0a2e;
    margin: 0;
}

.lrn-prog .testi-role {
    font-size: 15px;
    color: #9349C1;
    margin: 0;
}

.lrn-prog .testi-text {
    font-size: 15px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0;
}

.lrn-prog .testi-text::first-letter {
    font-size: 20px;
    color: #9349C1;
    font-weight: 700;
    float: left;
    margin-right: 4px;
    line-height: 1.15;
}

.lrn-prog .faq-strip {
    padding: 48px 0;
    background: #f7f2fd;
}

.lrn-prog .faq-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 48px;
    align-items: start;
}

.lrn-prog .faq-side-h {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1a0a2e;
    margin: 0 0 12px;
}

.lrn-prog .faq-side-p {
    font-size: 15px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0 0 24px;
}

.lrn-prog .faq-press-link {
    display: inline-block;
    padding: 12px 24px;
    border: 2px solid #9349C1;
    border-radius: 8px;
    color: #9349C1;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    background: transparent;
    transition: background 0.18s ease-out, color 0.18s ease-out;
}

.lrn-prog .faq-press-link:hover {
    background: #9349C1;
    color: #fff;
}

.lrn-prog .faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lrn-prog .faq-item {
    border: 1px solid #e8e0f0;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.lrn-prog .faq-item summary {
    padding: 24px;
    font-size: 16px;
    font-weight: 600;
    color: #1a0a2e;
    cursor: pointer;
    list-style: none;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    transition: color 0.15s ease-out;
}

.lrn-prog .faq-item summary::-webkit-details-marker {
    display: none;
}

.lrn-prog .faq-item summary::after {
    content: '';
    width: 10px;
    height: 10px;
    border-right: 2px solid #9349C1;
    border-bottom: 2px solid #9349C1;
    transform: rotate(45deg);
    flex-shrink: 0;
    transition: transform 0.18s ease-out;
}

.lrn-prog .faq-item[open] summary::after {
    transform: rotate(-135deg);
}

.lrn-prog .faq-item summary:hover {
    color: #9349C1;
}

.lrn-prog .faq-answer {
    padding: 0 24px 24px;
    font-size: 15px;
    line-height: 1.6;
    color: #5a4a6a;
    margin: 0;
}

.lrn-prog .num-para {
    counter-reset: para-count;
}

.lrn-prog .num-para .n-p {
    counter-increment: para-count;
    padding-left: 24px;
    position: relative;
    margin-bottom: 12px;
}

.lrn-prog .num-para .n-p::before {
    content: counter(para-count, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0;
    font-size: 15px;
    font-weight: 700;
    color: rgba(147, 73, 193, 0.4);
    line-height: 1.6;
}

@media (max-width: 1280px) {
    .lrn-prog .pg-h1 {
        font-size: 48px;
    }

    .lrn-prog .prog-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lrn-prog .metrics-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .lrn-prog .bento-grid {
        grid-template-columns: 1fr;
    }

    .lrn-prog .bento-cell.img-cell {
        grid-column: 1;
        grid-row: auto;
    }

    .lrn-prog .bento-cell.text-main {
        grid-column: 1;
        grid-row: auto;
    }

    .lrn-prog .bento-cell.text-sub {
        grid-column: 1;
        grid-row: auto;
    }

    .lrn-prog .bento-cell.text-stat {
        grid-column: 1;
        grid-row: auto;
    }

    .lrn-prog .pg-h1 {
        font-size: 34px;
    }

    .lrn-prog .prog-grid {
        grid-template-columns: 1fr;
    }

    .lrn-prog .metrics-grid {
        grid-template-columns: 1fr 1fr;
    }

    .lrn-prog .metric-num {
        font-size: 34px;
    }

    .lrn-prog .process-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .lrn-prog .testi-grid {
        grid-template-columns: 1fr;
    }

    .lrn-prog .faq-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

@media (max-width: 480px) {
    .lrn-prog .pg-wrap {
        padding: 0 12px;
    }

    .lrn-prog .pg-h1 {
        font-size: 34px;
    }

    .lrn-prog .strip-h2 {
        font-size: 20px;
    }

    .lrn-prog .metrics-grid {
        grid-template-columns: 1fr;
    }

    .lrn-prog .testi-card {
        flex-direction: column;
    }

    .lrn-prog .card-footer {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
    }
}

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

.success_page .success_wrap {
    max-width: 560px;
    width: 100%;
    text-align: center;
    padding: 48px;
    border-radius: 8px;
    box-shadow: 0 8px 40px 0 rgba(147, 73, 193, 0.13);
    background: #fff;
}

.success_page .icon_mark {
    width: 64px;
    height: 64px;
    margin: 0 auto 24px;
    display: block;
}

.success_page .icon_mark circle {
    fill: none;
    stroke: #9349C1;
    stroke-width: 2.5;
}

.success_page .icon_mark polyline {
    fill: none;
    stroke: #9349C1;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.success_page .success_title {
    font-size: 34px;
    line-height: 1.15;
    font-style: italic;
    color: #1b1b2f;
    margin-bottom: 12px;
}

.success_page .success_msg {
    font-size: 16px;
    line-height: 1.6;
    color: #3a3a4a;
    margin-bottom: 24px;
}

.success_page .success_tag {
    display: inline-block;
    font-size: 15px;
    line-height: 1.4;
    background: #FFF1DC;
    color: #3a3a4a;
    border-radius: 28px;
    padding: 6px 24px;
    margin-bottom: 48px;
}

.success_page .back_btn {
    display: inline-block;
    font-size: 16px;
    line-height: 1.4;
    color: #9349C1;
    border: 2px solid #9349C1;
    border-radius: 8px;
    padding: 12px 48px;
    text-decoration: none;
    background: transparent;
    transition: background 0.18s ease-out, color 0.18s ease-out;
}

.success_page .back_btn:hover,
.success_page .back_btn:focus {
    background: #9349C1;
    color: #fff;
    outline: none;
}

.success_page .back_btn:active {
    background: #7a3aaa;
    border-color: #7a3aaa;
    color: #fff;
}

@media (max-width: 480px) {
    .success_page .success_wrap {
        padding: 24px;
    }

    .success_page .success_title {
        font-size: 20px;
    }

    .success_page .back_btn {
        padding: 12px 24px;
    }
}