html {
box-sizing: border-box
}

* {
box-sizing: inherit
}

body {
margin: 0;
padding: 0;
min-height: 100vh;
scrollbar-gutter: stable;
font-family: 'Inter', sans-serif;
background: #fff;
color: #1a1618;
font-size: 18px;
line-height: 1.6
}

.top_band {
background: linear-gradient(135deg, #f8f9fa 0%, #e8eef2 100%);
border-bottom: 1px solid #17ca7726;
padding: 24px 0;
position: relative
}

.top_band::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent 0%, #9721dc1f 50%, transparent 100%)
}

.header_grid {
max-width: 1366px;
margin: 0 auto;
padding: 0 24px;
display: grid;
grid-template-columns: auto 1fr auto;
gap: 40px;
align-items: center
}

.brand_pod {
background: #2d2a2e;
padding: 16px 24px;
border-radius: 12px;
box-shadow: 0 4px 28px 0 #17ca771c 0 1px 3px 0 #17ca770d;
display: flex;
align-items: center;
gap: 16px;
transition: box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.brand_pod:hover {
box-shadow: 0 10px 44px 0 #9721dc1f 0 4px 28px 0 #17ca771c
}

.brand_mark {
width: 72px;
height: 72px;
object-fit: contain
}

.brand_text {
font-size: 24px;
font-weight: 700;
line-height: 1.1;
color: #fff;
letter-spacing: -.02em
}

.primary_links {
display: flex;
gap: 8px;
justify-content: center;
flex-wrap: wrap;
align-items: center
}

.nav_link {
padding: 16px 24px;
font-size: 18px;
font-weight: 400;
line-height: 1.3;
color: #2d2a2e;
text-decoration: none;
border-radius: 7px;
border: 2px solid transparent;
transition: border-color .16s ease-out, background-color .14s cubic-bezier(0.4, 0, 0.6, 1);
position: relative
}

.nav_link:hover {
border-color: #17ca7766;
background-color: #17ca770f
}

.nav_link:focus {
outline: none;
border-color: #17CA77;
background-color: #17ca7714
}

.dropdown_anchor {
position: relative
}

.dropdown_anchor::after {
content: '';
display: inline-block;
width: 0;
height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 5px solid currentColor;
margin-left: 8px;
vertical-align: middle;
transition: transform .15s ease-out
}

.dropdown_anchor:hover::after {
transform: translateY(2px)
}

.sub_links_plate {
position: absolute;
top: calc(100% + 8px);
left: 0;
background: #fff;
border: 1px solid #9721dc2e;
border-radius: 12px;
box-shadow: 0 10px 44px 0 #9721dc1f 0 4px 28px 0 #17ca771c;
padding: 8px 0;
min-width: 280px;
display: none;
z-index: 100
}

.dropdown_anchor:hover .sub_links_plate,
.sub_links_plate:hover {
display: block
}

.sub_link {
display: block;
padding: 16px 24px;
font-size: 18px;
line-height: 1.3;
color: #2d2a2e;
text-decoration: none;
transition: background-color .14s cubic-bezier(0.4, 0, 0.6, 1), color .12s ease-out
}

.sub_link:hover {
background-color: #9721dc0f;
color: #9721DC
}

.sub_link:focus {
outline: none;
background-color: #9721dc14;
color: #9721DC
}

.contact_strip {
display: flex;
flex-direction: column;
gap: 8px;
font-size: 14px;
line-height: 1.3;
color: #4a4548
}

.contact_item {
display: flex;
align-items: center;
gap: 8px;
white-space: nowrap
}

.contact_icon {
width: 18px;
height: 18px;
fill: none;
stroke: #17CA77;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}

.contact_link {
color: inherit;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color .14s ease-out, color .12s cubic-bezier(0.4, 0, 0.6, 1)
}

.contact_link:hover {
border-color: #17CA77;
color: #17CA77
}

.contact_link:focus {
outline: none;
border-color: #9721DC;
color: #9721DC
}

.base_plate {
background: linear-gradient(180deg, #f1f3f5 0%, #fff 100%);
padding: 80px 0 40px;
border-top: 1px solid #9721dc1f
}

.footer_grid {
max-width: 1366px;
margin: 0 auto;
padding: 0 24px;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px
}

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

.column_heading {
font-size: 24px;
font-weight: 700;
line-height: 1.1;
color: #2d2a2e;
margin: 0;
letter-spacing: -.01em
}

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

.footer_logo_pod {
background: #2d2a2e;
padding: 16px;
border-radius: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 28px 0 #17ca771c;
width: fit-content
}

.footer_logo {
width: 68px;
height: 68px;
object-fit: contain
}

.footer_brand_text {
font-size: 24px;
font-weight: 700;
line-height: 1.3;
color: #2d2a2e
}

.decorative_script {
font-family: 'Inter', cursive;
font-size: 36px;
font-weight: 400;
line-height: 1.1;
color: #9721dc3d;
font-style: italic;
letter-spacing: .02em;
margin: 16px 0 0
}

.footer_text {
font-size: 18px;
line-height: 1.6;
color: #4a4548;
margin: 0
}

.address_lines {
display: flex;
flex-direction: column;
gap: 8px;
font-size: 18px;
line-height: 1.3;
color: #4a4548
}

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

.footer_link {
font-size: 18px;
line-height: 1.3;
color: #2d2a2e;
text-decoration: none;
border-bottom: 2px solid transparent;
display: inline-block;
transition: border-color .16s ease-out, color .14s cubic-bezier(0.4, 0, 0.6, 1)
}

.footer_link:hover {
border-color: #17CA77;
color: #17CA77
}

.footer_link:focus {
outline: none;
border-color: #9721DC;
color: #9721DC
}

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

.contact_detail {
display: flex;
align-items: flex-start;
gap: 16px
}

.detail_icon_cell {
width: 24px;
height: 24px;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center
}

.detail_icon {
width: 20px;
height: 20px;
fill: none;
stroke: #9721DC;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}

.detail_text {
font-size: 18px;
line-height: 1.6;
color: #2d2a2e
}

.detail_link {
color: inherit;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color .14s ease-out, color .12s cubic-bezier(0.4, 0, 0.6, 1)
}

.detail_link:hover {
border-color: #17CA77;
color: #17CA77
}

.detail_link:focus {
outline: none;
border-color: #9721DC;
color: #9721DC
}

.legal_strip {
background: #f8f9fa;
padding: 24px 0;
margin-top: 40px;
border-top: 1px solid #17ca771f
}

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

.copyright_text {
font-size: 14px;
line-height: 1.3;
color: #6a6568;
margin: 0
}

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

.legal_link {
font-size: 14px;
line-height: 1.3;
color: #4a4548;
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color .14s ease-out, color .12s cubic-bezier(0.4, 0, 0.6, 1)
}

.legal_link:hover {
border-color: #17CA77;
color: #17CA77
}

.legal_link:focus {
outline: none;
border-color: #9721DC;
color: #9721DC
}

.consent_box {
position: fixed;
top: 24px;
left: 24px;
background: #fff;
border: 2px solid #9721dc2e;
border-radius: 12px;
box-shadow: 0 10px 44px 0 #9721dc1f 0 4px 28px 0 #17ca771c;
padding: 24px;
max-width: 420px;
z-index: 8000;
display: none
}

.consent_visible {
display: block
}

.consent_text {
font-size: 18px;
line-height: 1.6;
color: #2d2a2e;
margin: 0 0 24px
}

.consent_detail {
font-size: 14px;
line-height: 1.6;
color: #6a6568;
margin: 0 0 24px
}

.consent_actions {
display: flex;
gap: 16px;
margin-bottom: 16px
}

.consent_btn {
flex: 1;
padding: 16px 24px;
font-size: 18px;
font-weight: 700;
line-height: 1.3;
color: #2d2a2e;
background: transparent;
border: 2px solid #17CA77;
border-radius: 7px;
cursor: pointer;
transition: border-color .16s ease-out, background-color .14s cubic-bezier(0.4, 0, 0.6, 1), color .12s ease-out;
font-family: 'Inter', sans-serif
}

.consent_btn:hover {
border-color: #9721DC;
background-color: #9721dc0f
}

.consent_btn:focus {
outline: none;
border-color: #9721DC;
background-color: #9721dc14
}

.settings_trigger {
font-size: 14px;
line-height: 1.3;
color: #9721DC;
background: none;
border: none;
padding: 0;
cursor: pointer;
text-decoration: underline;
transition: color .12s ease-out;
font-family: 'Inter', sans-serif
}

.settings_trigger:hover {
color: #17CA77
}

.settings_trigger:focus {
outline: none;
color: #17CA77
}

.settings_panel {
display: none;
margin-top: 24px;
padding-top: 24px;
border-top: 1px solid #9721dc1f
}

.settings_visible {
display: block
}

.toggle_row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
margin-bottom: 16px
}

.toggle_label {
font-size: 18px;
line-height: 1.3;
color: #2d2a2e;
flex: 1
}

.toggle_switch {
width: 56px;
height: 28px;
position: relative;
display: inline-block
}

.toggle_input {
opacity: 0;
width: 0;
height: 0
}

.toggle_slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #e8eef2;
border: 2px solid #9721dc2e;
border-radius: 48px;
transition: background-color .18s cubic-bezier(0.4, 0, 0.6, 1), border-color .16s ease-out
}

.toggle_slider::before {
position: absolute;
content: '';
height: 20px;
width: 20px;
left: 2px;
bottom: 2px;
background: #fff;
border-radius: 48px;
box-shadow: 0 1px 3px 0 #9721dc0d;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.toggle_input:checked+.toggle_slider {
background: #17CA77;
border-color: #17CA77
}

.toggle_input:checked+.toggle_slider::before {
transform: translateX(28px)
}

.toggle_input:focus+.toggle_slider {
border-color: #9721DC
}

.sale_opt_row {
margin-top: 24px;
padding-top: 24px;
border-top: 1px solid #17ca771f
}

.sale_opt_label {
display: flex;
align-items: flex-start;
gap: 16px;
cursor: pointer
}

.sale_opt_checkbox {
width: 20px;
height: 20px;
margin-top: 2px;
cursor: pointer;
accent-color: #17CA77
}

.sale_opt_text {
font-size: 14px;
line-height: 1.6;
color: #4a4548;
flex: 1
}

@media (max-width: 1280px) {
.header_grid {
grid-template-columns: 1fr;
gap: 24px;
justify-items: center
}

.primary_links {
justify-content: center
}

.contact_strip {
align-items: center
}

.footer_grid {
grid-template-columns: repeat(2, 1fr);
gap: 40px
}
}

@media (max-width: 768px) {
.top_band {
padding: 16px 0
}

.header_grid {
padding: 0 16px;
gap: 16px
}

.brand_pod {
padding: 16px;
gap: 16px
}

.brand_mark {
width: 56px;
height: 56px
}

.brand_text {
font-size: 18px
}

.primary_links {
gap: 8px;
flex-direction: column;
width: 100%
}

.nav_link {
padding: 16px;
width: 100%;
text-align: center
}

.sub_links_plate {
position: static;
box-shadow: none;
border: none;
border-top: 1px solid #9721dc1f;
border-radius: 0;
margin-top: 8px
}

.contact_strip {
font-size: 14px
}

.base_plate {
padding: 40px 0 24px
}

.footer_grid {
grid-template-columns: 1fr;
gap: 40px;
padding: 0 16px
}

.legal_container {
flex-direction: column;
gap: 16px;
padding: 0 16px;
align-items: flex-start
}

.legal_links {
flex-direction: column;
gap: 16px
}

.consent_box {
top: 16px;
left: 16px;
right: 16px;
max-width: none;
padding: 16px
}

.consent_actions {
flex-direction: column
}
}

@media (max-width: 390px) {
.brand_text {
font-size: 14px
}

.nav_link {
font-size: 14px;
padding: 16px
}

.column_heading {
font-size: 18px
}

.footer_text,
.address_lines,
.footer_link,
.detail_text {
font-size: 14px
}

.consent_text {
font-size: 14px
}

.consent_btn {
font-size: 14px;
padding: 16px
}
}

.info-doc {
max-width: 1366px;
margin: 0 auto;
padding: 80px 24px;
background: #fff
}

@media (min-width: 768px) {
.info-doc {
padding: 80px 40px
}
}

.info-doc h1 {
font-size: 70px;
line-height: 1.1;
margin: 0 0 40px;
color: #1a1a1a
}

.info-doc h2 {
font-size: 36px;
line-height: 1.3;
margin: 80px 0 24px;
color: #2a2a2a
}

.info-doc h3 {
font-size: 24px;
line-height: 1.3;
margin: 40px 0 16px;
color: #3a3a3a
}

.info-doc h4 {
font-size: 18px;
line-height: 1.3;
margin: 24px 0 16px;
color: #4a4a4a;
font-weight: 600
}

.info-doc h5 {
font-size: 18px;
line-height: 1.3;
margin: 24px 0 8px;
color: #5a5a5a;
font-weight: 500
}

.info-doc h6 {
font-size: 14px;
line-height: 1.3;
margin: 16px 0 8px;
color: #6a6a6a;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .08em
}

.info-doc p {
font-size: 18px;
line-height: 1.9;
margin: 0 0 24px;
color: #2a2a2a
}

.policy_content a {
color: #17CA77;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 2px;
transition: color .15s ease-out
}

.policy_content a:hover {
color: #9721DC
}

.info-doc ul,
.info-doc ol {
font-size: 18px;
line-height: 1.9;
margin: 0 0 24px;
padding: 0 0 0 24px;
color: #2a2a2a
}

.info-doc ul {
list-style-type: disc
}

.info-doc ol {
list-style-type: decimal
}

.info-doc li {
margin: 0 0 8px;
padding: 0 0 0 8px
}

.info-doc li:last-child {
margin-bottom: 0
}

.info-doc ul ul,
.info-doc ul ol,
.info-doc ol ul,
.info-doc ol ol {
margin: 8px 0 0
}

.info-doc strong,
.info-doc b {
font-weight: 600;
color: #1a1a1a
}

.info-doc table {
width: 100%;
border-collapse: collapse;
margin: 0 0 40px;
font-size: 18px;
line-height: 1.6;
background: #fff;
border: 1px solid #d5d5d5;
border-radius: 7px;
overflow: hidden
}

.info-doc thead {
background: #f4f4f4
}

.info-doc th {
padding: 16px;
text-align: left;
font-weight: 600;
color: #1a1a1a;
border-bottom: 2px solid #d5d5d5
}

.info-doc td {
padding: 16px;
color: #2a2a2a;
border-bottom: 1px solid #e8e8e8
}

.info-doc tbody tr:last-child td {
border-bottom: none
}

.info-doc tbody tr:hover {
background: #fafafa
}

.info-doc hr {
border: none;
height: 1px;
background: #d5d5d5;
margin: 40px 0
}

.info-doc div {
margin: 0 0 24px
}

@media (max-width: 767px) {
.info-doc h1 {
font-size: 36px;
margin-bottom: 24px
}

.info-doc h2 {
font-size: 24px;
margin-top: 40px
}

.info-doc h3 {
font-size: 18px;
margin-top: 24px
}

.info-doc table {
font-size: 14px;
display: block;
overflow-x: auto
}

.info-doc th,
.info-doc td {
padding: 8px
}
}

.prog_upcom {
background: #fefefe;
color: #1a1515;
overflow-x: clip
}

.prog_upcom .title_hero {
position: relative;
min-height: 520px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(137deg, #17CA77 0%, #9721DC 100%);
padding: 80px 24px;
overflow: hidden
}

.prog_upcom .title_hero::before {
content: '2';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 480px;
font-weight: 300;
color: #ffffff0f;
line-height: 1;
pointer-events: none;
z-index: 1
}

.prog_upcom .title_hero::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle at 15% 20%, #ffffff2e 0%, transparent 60%);
pointer-events: none;
z-index: 2
}

.prog_upcom .hero_content {
position: relative;
z-index: 3;
max-width: 1366px;
width: 100%;
text-align: center
}

.prog_upcom .hero_h {
font-size: 70px;
line-height: 1.1;
color: #fff;
margin: 0 0 24px;
font-weight: 300;
letter-spacing: -.02em
}

.prog_upcom .hero_desc {
font-size: 24px;
line-height: 1.6;
color: #fffffff0;
margin: 0;
max-width: 720px;
margin-left: auto;
margin-right: auto
}

.prog_upcom .courses_showcase {
position: relative;
padding: 80px 24px;
background: #fff;
animation: bg_desat 8s ease-in-out infinite
}

@keyframes bg_desat {

0%,
100% {
filter: saturate(1)
}

50% {
filter: saturate(0.3)
}
}

.prog_upcom .courses_showcase::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url(/location_photos/gridlarge.jpg);
background-size: cover;
background-position: center;
opacity: .03;
pointer-events: none;
z-index: 0
}

.prog_upcom .courses_inner {
position: relative;
z-index: 1;
max-width: 1366px;
margin: 0 auto
}

.prog_upcom .courses_head {
margin: 0 0 80px;
padding: 0 0 0 40px;
border-left: 3px solid #17CA77
}

.prog_upcom .courses_h {
font-size: 36px;
line-height: 1.3;
margin: 0 0 16px;
font-weight: 600;
color: #1a1515
}

.prog_upcom .courses_lead {
font-size: 18px;
line-height: 1.6;
margin: 0;
color: #4a4444;
max-width: 680px
}

.prog_upcom .course_list {
display: flex;
flex-direction: column;
gap: 80px
}

.prog_upcom .course_item {
position: relative;
display: grid;
grid-template-columns: 280px 1fr;
gap: 40px;
align-items: start
}

.prog_upcom .course_item::before {
content: '';
position: absolute;
top: -40px;
left: 0;
width: 100%;
height: 1px;
background: linear-gradient(90deg, #17CA77 0%, transparent 100%)
}

.prog_upcom .course_item:first-child::before {
display: none
}

.prog_upcom .course_meta {
position: sticky;
top: 24px;
padding: 24px;
background: #fafcfb;
border-radius: 12px;
box-shadow: 0 1px 3px 0 #17ca770d 0 4px 28px 0 #17ca771c
}

.prog_upcom .course_date_label {
font-size: 14px;
line-height: 1.3;
text-transform: uppercase;
letter-spacing: .08em;
color: #7a7474;
margin: 0 0 8px
}

.prog_upcom .course_date_val {
font-size: 24px;
line-height: 1.3;
font-weight: 600;
color: #1a1515;
margin: 0 0 24px
}

.prog_upcom .course_status {
position: relative;
padding: 16px 16px 16px 48px;
background: #17ca7714;
border-radius: 7px;
margin: 0 0 16px
}

.prog_upcom .course_status::before {
content: '';
position: absolute;
left: 16px;
top: 50%;
transform: translateY(-50%);
width: 20px;
height: 20px;
background: #17CA77;
border-radius: 48px;
animation: status_pulse 2s ease-in-out infinite
}

@keyframes status_pulse {

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

50% {
opacity: .6;
transform: translateY(-50%) scale(1.15)
}
}

.prog_upcom .course_status_txt {
font-size: 14px;
line-height: 1.6;
margin: 0;
color: #1a1515;
font-weight: 500
}

.prog_upcom .course_spots {
font-size: 14px;
line-height: 1.6;
color: #4a4444;
margin: 0
}

.prog_upcom .course_spots strong {
color: #1a1515;
font-weight: 600
}

.prog_upcom .course_content {
position: relative
}

.prog_upcom .course_content::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 3px;
height: 100%;
background: linear-gradient(180deg, #9721DC 0%, transparent 100%);
opacity: .2
}

.prog_upcom .course_title {
font-size: 36px;
line-height: 1.3;
margin: 0 0 16px;
font-weight: 300;
letter-spacing: .02em;
color: #1a1515
}

.prog_upcom .course_subtitle {
font-size: 18px;
line-height: 1.6;
margin: 0 0 40px;
color: #4a4444;
font-style: italic
}

.prog_upcom .course_desc {
display: grid;
grid-template-columns: 240px 1fr;
gap: 40px;
margin: 0 0 40px
}

.prog_upcom .course_intro {
font-size: 14px;
line-height: 1.9;
color: #7a7474;
margin: 0
}

.prog_upcom .course_body {
font-size: 18px;
line-height: 1.6;
color: #1a1515;
margin: 0
}

.prog_upcom .course_details {
display: flex;
flex-direction: column;
gap: 24px
}

.prog_upcom .detail_row {
display: flex;
align-items: start;
gap: 16px;
padding: 16px 0;
border-bottom: 1px solid #17ca771f
}

.prog_upcom .detail_row:last-child {
border-bottom: none
}

.prog_upcom .detail_icon {
flex-shrink: 0;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
background: #9721dc14;
border-radius: 48px;
transition: background .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.prog_upcom .detail_row:hover .detail_icon {
background: #9721dc24
}

.prog_upcom .detail_icon svg {
width: 16px;
height: 16px;
fill: #9721DC
}

.prog_upcom .detail_content {
flex: 1
}

.prog_upcom .detail_label {
font-size: 14px;
line-height: 1.3;
text-transform: uppercase;
letter-spacing: .08em;
color: #7a7474;
margin: 0 0 4px
}

.prog_upcom .detail_value {
font-size: 18px;
line-height: 1.6;
color: #1a1515;
margin: 0
}

.prog_upcom .course_cta {
margin: 40px 0 0;
padding: 24px 0 0;
border-top: 2px solid #17ca7733
}

.prog_upcom .cta_btn {
display: inline-flex;
align-items: center;
gap: 16px;
padding: 16px 40px;
background: #fff;
border: 2px solid #17CA77;
border-radius: 7px;
font-size: 18px;
line-height: 1.3;
color: #17CA77;
font-weight: 600;
cursor: pointer;
transition: border-color .16s ease-out, transform .14s cubic-bezier(0.4, 0, 0.6, 1)
}

.prog_upcom .cta_btn:hover {
border-color: #9721DC;
color: #9721DC
}

.prog_upcom .cta_btn:active {
transform: scale(0.97)
}

.prog_upcom .cta_btn svg {
width: 20px;
height: 20px;
fill: currentColor;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.prog_upcom .cta_btn:active svg {
transform: rotate(15deg)
}

.prog_upcom .divider_zig {
position: relative;
height: 40px;
overflow: hidden
}

.prog_upcom .divider_zig svg {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 100%
}

.prog_upcom .corner_accent {
position: absolute;
top: 24px;
right: 24px;
width: 80px;
height: 80px;
pointer-events: none;
z-index: 10
}

.prog_upcom .corner_accent::before,
.prog_upcom .corner_accent::after {
content: '';
position: absolute;
background: #9721dc26
}

.prog_upcom .corner_accent::before {
top: 0;
right: 0;
width: 2px;
height: 60px
}

.prog_upcom .corner_accent::after {
top: 0;
right: 0;
width: 60px;
height: 2px
}

.prog_upcom .corner_accent span {
position: absolute;
background: #9721dc26
}

.prog_upcom .corner_accent span:nth-child(1) {
top: 16px;
right: 0;
width: 40px;
height: 2px
}

.prog_upcom .corner_accent span:nth-child(2) {
top: 0;
right: 16px;
width: 2px;
height: 40px
}

.prog_upcom .corner_accent span:nth-child(3) {
top: 32px;
right: 0;
width: 24px;
height: 2px
}

.prog_upcom .corner_accent span:nth-child(4) {
top: 0;
right: 32px;
width: 2px;
height: 24px
}

@media (max-width: 1280px) {
.prog_upcom .hero_h {
font-size: 56px
}

.prog_upcom .hero_desc {
font-size: 20px
}

.prog_upcom .course_item {
grid-template-columns: 240px 1fr;
gap: 24px
}

.prog_upcom .course_desc {
grid-template-columns: 200px 1fr;
gap: 24px
}
}

@media (max-width: 768px) {
.prog_upcom .title_hero {
min-height: 400px;
padding: 80px 16px
}

.prog_upcom .title_hero::before {
font-size: 280px
}

.prog_upcom .hero_h {
font-size: 36px
}

.prog_upcom .hero_desc {
font-size: 18px
}

.prog_upcom .courses_showcase {
padding: 40px 16px
}

.prog_upcom .courses_head {
margin: 0 0 40px;
padding: 0 0 0 24px
}

.prog_upcom .courses_h {
font-size: 24px
}

.prog_upcom .course_list {
gap: 40px
}

.prog_upcom .course_item {
grid-template-columns: 1fr;
gap: 24px
}

.prog_upcom .course_item::before {
top: -24px
}

.prog_upcom .course_meta {
position: static
}

.prog_upcom .course_content::before {
display: none
}

.prog_upcom .course_title {
font-size: 24px
}

.prog_upcom .course_desc {
grid-template-columns: 1fr;
gap: 16px
}

.prog_upcom .corner_accent {
width: 60px;
height: 60px;
top: 16px;
right: 16px
}

.prog_upcom .corner_accent::before {
height: 40px
}

.prog_upcom .corner_accent::after {
width: 40px
}
}

@media (max-width: 390px) {
.prog_upcom .title_hero {
min-height: 320px;
padding: 40px 16px
}

.prog_upcom .title_hero::before {
font-size: 200px
}

.prog_upcom .hero_h {
font-size: 24px
}

.prog_upcom .hero_desc {
font-size: 14px
}

.prog_upcom .courses_h {
font-size: 18px
}

.prog_upcom .course_title {
font-size: 18px
}

.prog_upcom .course_subtitle {
font-size: 14px
}

.prog_upcom .course_body {
font-size: 14px
}

.prog_upcom .detail_value {
font-size: 14px
}

.prog_upcom .cta_btn {
padding: 16px 24px;
font-size: 14px;
width: 100%;
justify-content: center
}
}

.abt_us {
background: #fff;
color: #1a1a1a;
overflow-x: clip
}

.abt_us .pg_title {
background: linear-gradient(135deg, #17CA77 0%, #9721DC 100%);
padding: 80px 24px 160px;
position: relative;
overflow: hidden
}

.abt_us .pg_title::before {
content: '';
position: absolute;
top: 40px;
right: 80px;
width: 400px;
height: 400px;
background: radial-gradient(circle at top left, #feb6be26, transparent 70%);
border-radius: 48px;
pointer-events: none
}

.abt_us .pg_title_inner {
max-width: 1366px;
margin: 0 auto
}

.abt_us .pg_title h1 {
font-size: 70px;
line-height: 1.1;
color: #fff;
margin: 0 0 24px;
font-weight: 300;
letter-spacing: .02em
}

.abt_us .pg_title_desc {
font-size: 24px;
line-height: 1.6;
color: #fffffff2;
max-width: 720px;
margin: 0
}

.abt_us .story_sec {
background: #fafafa;
padding: 80px 24px;
position: relative
}

.abt_us .story_sec::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, #17CA77 0%, #17CA77 70%, transparent 70%)
}

.abt_us .story_wrap {
max-width: 1366px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 2fr;
gap: 80px;
align-items: start
}

.abt_us .story_intro {
position: sticky;
top: 40px
}

.abt_us .story_intro h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 24px;
color: #1a1a1a;
font-weight: 300;
letter-spacing: .03em
}

.abt_us .story_intro_txt {
font-size: 18px;
line-height: 1.6;
color: #4a4a4a;
margin: 0
}

.abt_us .story_main p {
font-size: 18px;
line-height: 1.9;
color: #2a2a2a;
margin: 0 0 24px
}

.abt_us .story_main p:last-child {
margin-bottom: 0
}

.abt_us .story_main em {
font-style: italic;
font-size: 20px;
color: #17CA77
}

.abt_us .approach_sec {
background: #fff;
padding: 80px 24px;
position: relative
}

.abt_us .approach_sec::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
background: url(/location_photos/second-new.jpg) center/cover no-repeat;
filter: blur(80px) brightness(1.2);
opacity: .08;
pointer-events: none
}

.abt_us .approach_wrap {
max-width: 1366px;
margin: 0 auto;
position: relative;
z-index: 1
}

.abt_us .approach_hdr {
text-align: center;
margin: 0 0 80px
}

.abt_us .approach_hdr h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 16px;
color: #1a1a1a;
font-weight: 300;
letter-spacing: .03em
}

.abt_us .approach_steps {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 40px
}

.abt_us .step_card {
background: #fff;
padding: 40px 24px;
border-radius: 12px;
box-shadow: 0 4px 28px 0 #17ca771c;
position: relative;
transition: transform .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.abt_us .step_card:hover {
transform: translateY(-8px)
}

.abt_us .step_card::after {
content: '';
position: absolute;
top: 50%;
right: -20px;
width: 0;
height: 0;
border-top: 12px solid transparent;
border-bottom: 12px solid transparent;
border-left: 16px solid #17CA77;
transform: translateY(-50%);
opacity: .4
}

.abt_us .step_card:last-child::after {
display: none
}

.abt_us .step_num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
background: linear-gradient(135deg, #17CA77, #9721DC);
color: #fff;
font-size: 24px;
font-weight: 600;
border-radius: 48px;
margin: 0 0 24px
}

.abt_us .step_card h3 {
font-size: 24px;
line-height: 1.3;
margin: 0 0 16px;
color: #1a1a1a
}

.abt_us .step_card p {
font-size: 18px;
line-height: 1.6;
color: #4a4a4a;
margin: 0
}

.abt_us .team_sec {
background: #f5f5f5;
padding: 80px 24px;
position: relative
}

.abt_us .team_sec::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: repeating-linear-gradient(90deg, #9721DC 0px, #9721DC 40px, transparent 40px, transparent 80px);
transform: scaleX(1);
animation: wave_line 3s ease-in-out infinite
}

@keyframes wave_line {

0%,
100% {
transform: scaleX(1) translateX(0)
}

50% {
transform: scaleX(1.02) translateX(8px)
}
}

.abt_us .team_wrap {
max-width: 1366px;
margin: 0 auto
}

.abt_us .team_hdr {
margin: 0 0 80px
}

.abt_us .team_hdr h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 24px;
color: #1a1a1a;
font-weight: 300;
letter-spacing: .03em
}

.abt_us .team_hdr_txt {
font-size: 18px;
line-height: 1.6;
color: #4a4a4a;
max-width: 800px;
margin: 0
}

.abt_us .team_grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
gap: 40px
}

.abt_us .team_feature {
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 1px 3px 0 #9721dc0d;
display: flex;
flex-direction: column
}

.abt_us .team_feature_img {
width: 100%;
height: 480px;
position: relative;
overflow: hidden
}

.abt_us .team_feature_img img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
transition: transform .22s ease-out
}

.abt_us .team_feature:hover .team_feature_img img {
transform: scale(1.05)
}

.abt_us .team_feature_info {
padding: 40px 24px;
background: #fff
}

.abt_us .team_feature_info h3 {
font-size: 24px;
line-height: 1.3;
margin: 0 0 8px;
color: #1a1a1a
}

.abt_us .team_feature_role {
font-size: 18px;
line-height: 1.6;
color: #9721DC;
margin: 0 0 16px
}

.abt_us .team_feature_bio {
font-size: 18px;
line-height: 1.6;
color: #4a4a4a;
margin: 0
}

.abt_us .team_member {
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 1px 3px 0 #9721dc0d;
display: flex;
flex-direction: column;
opacity: 0;
animation: reveal_item .16s ease-out forwards
}

.abt_us .team_member:nth-child(2) {
animation-delay: .1s
}

.abt_us .team_member:nth-child(3) {
animation-delay: .2s
}

@keyframes reveal_item {
from {
opacity: 0;
transform: translateY(24px)
}

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

.abt_us .team_member_img {
width: 100%;
aspect-ratio: 5/7;
position: relative;
overflow: hidden;
border-radius: 48px 48px 0 0
}

.abt_us .team_member_img img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top
}

.abt_us .team_member_info {
padding: 24px;
background: #fff;
flex-grow: 1
}

.abt_us .team_member_info h4 {
font-size: 18px;
line-height: 1.3;
margin: 0 0 8px;
color: #1a1a1a
}

.abt_us .team_member_role {
font-size: 14px;
line-height: 1.6;
color: #17CA77;
margin: 0;
text-transform: uppercase;
letter-spacing: .08em
}

.abt_us .values_sec {
background: #fff;
padding: 80px 24px;
position: relative
}

.abt_us .values_wrap {
max-width: 1366px;
margin: 0 auto;
display: flex;
gap: 80px;
align-items: center
}

.abt_us .values_media {
flex: 0 0 45%;
position: relative
}

.abt_us .values_img_main {
width: 100%;
aspect-ratio: 16/9;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 10px 44px 0 #17ca771f;
position: relative
}

.abt_us .values_img_main img {
width: 100%;
height: 100%;
object-fit: cover
}

.abt_us .values_img_float {
position: absolute;
bottom: -40px;
right: -40px;
width: 280px;
aspect-ratio: 16/9;
border-radius: 7px;
overflow: hidden;
box-shadow: 0 4px 28px 0 #9721dc1c;
border: 8px solid #fff
}

.abt_us .values_img_float img {
width: 100%;
height: 100%;
object-fit: cover
}

.abt_us .values_content {
flex: 1
}

.abt_us .values_content h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 40px;
color: #1a1a1a;
font-weight: 300;
letter-spacing: .03em
}

.abt_us .values_list {
list-style: none;
margin: 0;
padding: 0
}

.abt_us .values_list li {
display: flex;
align-items: start;
gap: 16px;
margin: 0 0 24px;
padding: 0
}

.abt_us .values_list li:last-child {
margin-bottom: 0
}

.abt_us .values_icon {
flex-shrink: 0;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
margin-top: 4px
}

.abt_us .values_icon svg {
width: 100%;
height: 100%;
fill: none;
stroke: #17CA77;
stroke-width: 2
}

.abt_us .values_list_txt {
flex: 1
}

.abt_us .values_list_txt strong {
display: block;
font-size: 18px;
line-height: 1.3;
color: #1a1a1a;
margin: 0 0 8px;
font-weight: 600
}

.abt_us .values_list_txt p {
font-size: 18px;
line-height: 1.6;
color: #4a4a4a;
margin: 0
}

.abt_us .cta_sec {
background: linear-gradient(135deg, #9721DC 0%, #17CA77 100%);
padding: 80px 24px;
position: relative;
overflow: hidden
}

.abt_us .cta_sec::after {
content: '';
position: absolute;
bottom: -120px;
left: -120px;
width: 400px;
height: 400px;
background: radial-gradient(circle at top left, #feb6be33, transparent 60%);
border-radius: 48px;
pointer-events: none
}

.abt_us .cta_wrap {
max-width: 1366px;
margin: 0 auto;
text-align: center;
position: relative;
z-index: 1
}

.abt_us .cta_wrap h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 24px;
color: #fff;
font-weight: 300;
letter-spacing: .03em
}

.abt_us .cta_txt {
font-size: 18px;
line-height: 1.6;
color: #fffffff2;
margin: 0 0 40px;
max-width: 680px;
margin-left: auto;
margin-right: auto
}

.abt_us .cta_btn {
display: inline-flex;
align-items: center;
gap: 8px;
background: #fff;
color: #9721DC;
font-size: 18px;
line-height: 1.3;
padding: 16px 40px;
border: 2px solid #fff;
border-radius: 7px;
text-decoration: none;
font-weight: 600;
transition: border-color .15s ease-out, background .15s ease-out, color .15s ease-out
}

.abt_us .cta_btn:hover {
background: transparent;
color: #fff;
border-color: #fff
}

.abt_us .cta_btn svg {
width: 20px;
height: 20px;
fill: none;
stroke: currentColor;
stroke-width: 2;
transition: transform .15s ease-out
}

.abt_us .cta_btn:hover svg {
transform: translateX(4px)
}

@media (max-width: 1280px) {
.abt_us .pg_title h1 {
font-size: 56px
}

.abt_us .story_wrap {
grid-template-columns: 1fr;
gap: 40px
}

.abt_us .story_intro {
position: static
}

.abt_us .approach_steps {
grid-template-columns: 1fr;
gap: 24px
}

.abt_us .step_card::after {
display: none
}

.abt_us .team_grid {
grid-template-columns: 1fr 1fr
}

.abt_us .team_feature {
grid-column: 1 / -1
}

.abt_us .values_wrap {
flex-direction: column;
gap: 40px
}

.abt_us .values_media {
flex: 0 0 auto;
width: 100%
}
}

@media (max-width: 768px) {
.abt_us .pg_title {
padding: 40px 16px 80px
}

.abt_us .pg_title h1 {
font-size: 36px
}

.abt_us .pg_title_desc {
font-size: 18px
}

.abt_us .story_sec,
.abt_us .approach_sec,
.abt_us .team_sec,
.abt_us .values_sec,
.abt_us .cta_sec {
padding: 40px 16px
}

.abt_us .story_wrap {
gap: 24px
}

.abt_us .story_intro h2,
.abt_us .approach_hdr h2,
.abt_us .team_hdr h2,
.abt_us .values_content h2,
.abt_us .cta_wrap h2 {
font-size: 24px
}

.abt_us .approach_hdr {
margin: 0 0 40px
}

.abt_us .team_hdr {
margin: 0 0 40px
}

.abt_us .team_grid {
grid-template-columns: 1fr
}

.abt_us .values_img_float {
display: none
}

.abt_us .cta_txt {
margin-bottom: 24px
}
}

@media (max-width: 390px) {
.abt_us .pg_title h1 {
font-size: 24px
}

.abt_us .pg_title_desc {
font-size: 14px
}

.abt_us .story_intro h2,
.abt_us .approach_hdr h2,
.abt_us .team_hdr h2,
.abt_us .values_content h2,
.abt_us .cta_wrap h2 {
font-size: 18px
}

.abt_us .story_intro_txt,
.abt_us .story_main p,
.abt_us .step_card p,
.abt_us .team_hdr_txt,
.abt_us .team_feature_bio,
.abt_us .values_list_txt p,
.abt_us .cta_txt {
font-size: 14px
}

.abt_us .step_card h3,
.abt_us .team_feature_info h3 {
font-size: 18px
}

.abt_us .cta_btn {
font-size: 14px;
padding: 16px 24px
}
}

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

.lrn_prg {
background: #fefefe;
color: #1a1918;
overflow-x: clip
}

.lrn_prg .ttl_bnr {
background: linear-gradient(128deg, #17CA77 0%, #9721DC 100%);
padding: 80px 24px 160px;
position: relative;
overflow: hidden
}

.lrn_prg .ttl_bnr::before,
.lrn_prg .ttl_bnr::after {
content: '';
position: absolute;
border-radius: 50%;
background: #ffffff14
}

.lrn_prg .ttl_bnr::before {
width: 180px;
height: 180px;
top: 40px;
right: 120px
}

.lrn_prg .ttl_bnr::after {
width: 90px;
height: 90px;
top: 240px;
right: 60px
}

.lrn_prg .ttl_bnr_dots {
position: absolute;
bottom: 80px;
left: 80px
}

.lrn_prg .ttl_bnr_dot {
position: absolute;
border-radius: 50%;
background: #ffffff1f
}

.lrn_prg .ttl_bnr_dot:nth-child(1) {
width: 24px;
height: 24px;
top: 0;
left: 0
}

.lrn_prg .ttl_bnr_dot:nth-child(2) {
width: 16px;
height: 16px;
top: 40px;
left: 40px
}

.lrn_prg .ttl_bnr_dot:nth-child(3) {
width: 32px;
height: 32px;
top: 8px;
left: 80px
}

.lrn_prg .ttl_bnr_dot:nth-child(4) {
width: 12px;
height: 12px;
top: 56px;
left: 120px
}

.lrn_prg .ttl_bnr_ctr {
max-width: 1366px;
margin: 0 auto;
position: relative;
z-index: 2
}

.lrn_prg .ttl_bnr h1 {
font-size: 70px;
line-height: 1.1;
color: #fff;
margin: 0 0 24px;
letter-spacing: -.02em;
font-weight: 300
}

.lrn_prg .ttl_bnr_sub {
font-size: 24px;
line-height: 1.6;
color: #fffffff2;
margin: 0 0 40px;
max-width: 720px
}

.lrn_prg .ttl_bnr_lnk {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 18px;
color: #fff;
text-decoration: none;
padding: 16px 40px;
background: #ffffff26;
border: 2px solid #fff6;
border-radius: 48px;
transition: border-color .18s cubic-bezier(0.4, 0, 0.6, 1), background .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.lrn_prg .ttl_bnr_lnk:hover {
border-color: #fffc;
background: #ffffff38
}

.lrn_prg .ttl_bnr_lnk svg {
width: 20px;
height: 20px;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}

.lrn_prg .ovr_sec {
padding: 80px 24px;
background: #fff;
position: relative
}

.lrn_prg .ovr_sec_ctr {
max-width: 1366px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 2fr;
gap: 80px;
align-items: start
}

.lrn_prg .ovr_sec_intro {
position: sticky;
top: 80px
}

.lrn_prg .ovr_sec h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 24px;
color: #1a1918;
font-weight: 300;
letter-spacing: .04em
}

.lrn_prg .ovr_sec_txt {
font-size: 18px;
line-height: 1.9;
color: #3d3a38;
margin: 0
}

.lrn_prg .ovr_sec_txt:not(:last-child) {
margin-bottom: 24px
}

.lrn_prg .ovr_sec_emph {
font-style: italic;
font-size: 20px;
color: #9721DC
}

.lrn_prg .ovr_sec_list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 24px
}

.lrn_prg .ovr_sec_list li {
display: flex;
gap: 16px;
align-items: start;
font-size: 18px;
line-height: 1.6;
color: #3d3a38
}

.lrn_prg .ovr_sec_list li::before {
content: '';
width: 24px;
height: 24px;
flex-shrink: 0;
margin-top: 4px;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2317CA77" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') center/contain no-repeat
}

.lrn_prg .ovr_sec_divider {
border: none;
height: 2px;
background: repeating-linear-gradient(to right, #d4d2d0 0, #d4d2d0 6px, transparent 6px, transparent 12px);
margin: 80px 0
}

.lrn_prg .ftr_blk_sec {
padding: 80px 24px;
background: #9721DC;
position: relative;
overflow: hidden
}

.lrn_prg .ftr_blk_sec::before {
content: '';
position: absolute;
width: 240px;
height: 240px;
border-radius: 50%;
background: #ffffff0f;
bottom: -80px;
right: 160px
}

.lrn_prg .ftr_blk_sec_ctr {
max-width: 1366px;
margin: 0 auto;
position: relative;
z-index: 2
}

.lrn_prg .ftr_blk_grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px
}

.lrn_prg .ftr_blk_itm {
background: #ffffff14;
padding: 40px 24px;
border-radius: 12px;
border: 2px solid transparent;
position: relative;
overflow: hidden;
transition: border-color .16s ease-out
}

.lrn_prg .ftr_blk_itm:hover {
border-color: #fff3
}

.lrn_prg .ftr_blk_itm:nth-child(4) {
background: #feb6be2e;
animation: bg_cycle 8s infinite
}

@keyframes bg_cycle {

0%,
100% {
background: #feb6be2e
}

50% {
background: #17ca771f
}
}

.lrn_prg .ftr_blk_itm::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border: 2px solid #ffffff4d;
border-radius: 12px;
opacity: 0;
animation: brdr_trace 3s ease-out forwards
}

@keyframes brdr_trace {
0% {
clip-path: polygon(0 0, 0 0, 0 0, 0 0);
opacity: 1
}

25% {
clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
opacity: 1
}

50% {
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
opacity: 1
}

75% {
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
opacity: 1
}

100% {
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
opacity: 0
}
}

.lrn_prg .ftr_blk_itm:nth-child(2)::before {
animation-delay: .3s
}

.lrn_prg .ftr_blk_itm:nth-child(3)::before {
animation-delay: .6s
}

.lrn_prg .ftr_blk_itm:nth-child(4)::before {
animation-delay: .9s
}

.lrn_prg .ftr_blk_num {
font-size: 36px;
line-height: 1.1;
color: #FEB6BE;
margin: 0 0 16px;
font-weight: 300
}

.lrn_prg .ftr_blk_itm:nth-child(4) .ftr_blk_num {
color: #17CA77
}

.lrn_prg .ftr_blk_ttl {
font-size: 18px;
line-height: 1.3;
color: #fff;
margin: 0 0 16px;
font-weight: 600
}

.lrn_prg .ftr_blk_dsc {
font-size: 14px;
line-height: 1.6;
color: #ffffffd9;
margin: 0
}

.lrn_prg .prfl_sec {
padding: 80px 24px;
background: #fafaf9;
position: relative
}

.lrn_prg .prfl_sec_ctr {
max-width: 1366px;
margin: 0 auto
}

.lrn_prg .prfl_sec h2 {
font-size: 36px;
line-height: 1.3;
margin: 0 0 80px;
color: #1a1918;
font-weight: 300;
letter-spacing: .04em;
text-align: center
}

.lrn_prg .prfl_grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 80px
}

.lrn_prg .prfl_crd {
display: flex;
flex-direction: column;
gap: 24px;
align-items: start
}

.lrn_prg .prfl_img_wrp {
width: 100%;
aspect-ratio: 2/3;
border-radius: 12px;
overflow: hidden;
position: relative;
background: #e8e7e5;
box-shadow: 0 4px 28px 0 #9721dc1c
}

.lrn_prg .prfl_img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
transition: transform .22s cubic-bezier(0.4, 0, 0.6, 1)
}

.lrn_prg .prfl_sec_ctr:hover .prfl_img {
transform: scale(1.05)
}

.lrn_prg .prfl_inf {
display: flex;
flex-direction: column;
gap: 8px
}

.lrn_prg .prfl_nm {
font-size: 24px;
line-height: 1.3;
color: #1a1918;
margin: 0;
font-weight: 600
}

.lrn_prg .prfl_rl {
font-size: 18px;
line-height: 1.6;
color: #9721DC;
margin: 0
}

.lrn_prg .prfl_bio {
font-size: 18px;
line-height: 1.9;
color: #3d3a38;
margin: 0
}

.lrn_prg .prfl_dots_wrp {
position: absolute;
bottom: 40px;
left: 40px
}

.lrn_prg .prfl_dot {
position: absolute;
border-radius: 50%;
background: #9721dc14
}

.lrn_prg .prfl_dot:nth-child(1) {
width: 40px;
height: 40px;
top: 0;
left: 0
}

.lrn_prg .prfl_dot:nth-child(2) {
width: 24px;
height: 24px;
top: 60px;
left: 60px
}

.lrn_prg .prfl_dot:nth-child(3) {
width: 16px;
height: 16px;
top: 20px;
left: 100px
}

.lrn_prg .cntnt_sec {
padding: 80px 24px;
background: #fff;
position: relative
}

.lrn_prg .cntnt_sec_ctr {
max-width: 1366px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 80px
}

.lrn_prg .cntnt_blk {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: center
}

.lrn_prg .cntnt_blk:nth-child(even) {
grid-template-columns: 1fr 1fr;
direction: rtl
}

.lrn_prg .cntnt_blk:nth-child(even)>* {
direction: ltr
}

.lrn_prg .cntnt_img_wrp {
width: 100%;
aspect-ratio: 16/9;
border-radius: 12px;
overflow: hidden;
position: relative;
background: #e8e7e5;
box-shadow: 0 4px 28px 0 #17ca771c
}

.lrn_prg .cntnt_img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
transition: transform .22s cubic-bezier(0.4, 0, 0.6, 1)
}

.lrn_prg .cntnt_blk:hover .cntnt_img {
transform: scale(1.08)
}

.lrn_prg .cntnt_txt_wrp {
display: flex;
flex-direction: column;
gap: 24px
}

.lrn_prg .cntnt_txt_wrp h3 {
font-size: 36px;
line-height: 1.3;
margin: 0;
color: #1a1918;
font-weight: 300;
letter-spacing: .04em
}

.lrn_prg .cntnt_txt_wrp p {
font-size: 18px;
line-height: 1.9;
color: #3d3a38;
margin: 0
}

.lrn_prg .cntnt_txt_wrp p:not(:last-child) {
margin-bottom: 24px
}

.lrn_prg .cntnt_lnk {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 18px;
color: #17CA77;
text-decoration: none;
transition: gap .15s ease-out
}

.lrn_prg .cntnt_lnk:hover {
gap: 16px
}

.lrn_prg .cntnt_lnk svg {
width: 20px;
height: 20px;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
transition: transform .15s ease-out
}

.lrn_prg .cntnt_lnk:hover svg {
transform: translateX(4px)
}

.lrn_prg .cntnt_divider {
border: none;
height: 2px;
background: repeating-linear-gradient(to right, #d4d2d0 0, #d4d2d0 6px, transparent 6px, transparent 12px)
}

@media (max-width: 1280px) {
.lrn_prg .ttl_bnr h1 {
font-size: 56px
}

.lrn_prg .ovr_sec_ctr {
grid-template-columns: 1fr;
gap: 40px
}

.lrn_prg .ovr_sec_intro {
position: static
}

.lrn_prg .ftr_blk_grid {
grid-template-columns: repeat(2, 1fr)
}

.lrn_prg .cntnt_blk {
grid-template-columns: 1fr;
gap: 40px
}

.lrn_prg .cntnt_blk:nth-child(even) {
grid-template-columns: 1fr;
direction: ltr
}
}

@media (max-width: 768px) {
.lrn_prg .ttl_bnr {
padding: 40px 16px 80px
}

.lrn_prg .ttl_bnr h1 {
font-size: 36px
}

.lrn_prg .ttl_bnr_sub {
font-size: 18px
}

.lrn_prg .ttl_bnr::before {
width: 120px;
height: 120px;
right: 40px
}

.lrn_prg .ttl_bnr::after {
width: 60px;
height: 60px;
right: 20px
}

.lrn_prg .ttl_bnr_dots {
left: 24px;
bottom: 40px
}

.lrn_prg .ovr_sec {
padding: 40px 16px
}

.lrn_prg .ovr_sec h2 {
font-size: 24px
}

.lrn_prg .ovr_sec_txt {
font-size: 14px
}

.lrn_prg .ovr_sec_list li {
font-size: 14px
}

.lrn_prg .ovr_sec_divider {
margin: 40px 0
}

.lrn_prg .ftr_blk_sec {
padding: 40px 16px
}

.lrn_prg .ftr_blk_grid {
grid-template-columns: 1fr;
gap: 24px
}

.lrn_prg .ftr_blk_num {
font-size: 24px
}

.lrn_prg .ftr_blk_ttl {
font-size: 14px
}

.lrn_prg .ftr_blk_dsc {
font-size: 14px
}

.lrn_prg .prfl_sec {
padding: 40px 16px
}

.lrn_prg .prfl_sec h2 {
font-size: 24px;
margin-bottom: 40px
}

.lrn_prg .prfl_grid {
grid-template-columns: 1fr;
gap: 40px
}

.lrn_prg .prfl_nm {
font-size: 18px
}

.lrn_prg .prfl_rl {
font-size: 14px
}

.lrn_prg .prfl_bio {
font-size: 14px
}

.lrn_prg .prfl_img_wrp {
display: none !important
}

.lrn_prg .cntnt_sec {
padding: 40px 16px
}

.lrn_prg .cntnt_sec_ctr {
gap: 40px
}

.lrn_prg .cntnt_img_wrp {
display: none !important
}

.lrn_prg .cntnt_txt_wrp h3 {
font-size: 24px
}

.lrn_prg .cntnt_txt_wrp p {
font-size: 14px
}

.lrn_prg .cntnt_lnk {
font-size: 14px
}
}

@media (max-width: 390px) {
.lrn_prg .ttl_bnr h1 {
font-size: 24px
}

.lrn_prg .ttl_bnr_sub {
font-size: 14px
}

.lrn_prg .ttl_bnr_lnk {
font-size: 14px;
padding: 16px 24px
}

.lrn_prg .ftr_blk_itm {
padding: 24px 16px
}
}

.opn {
max-width: 1366px;
margin: 0 auto;
background: #fff;
overflow-x: clip
}

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

.opn ::selection {
background: #17CA77;
color: #fff
}

.opn input::placeholder,
.opn textarea::placeholder {
color: #2d2d2d52
}

.opn_hero {
position: relative;
display: grid;
grid-template-columns: 1fr 340px;
gap: 40px;
padding: 80px 40px;
background: radial-gradient(circle at center, #17ca7714 0%, #fff0 68%);
overflow: hidden
}

.opn_hero::before {
content: '"';
position: absolute;
top: -40px;
left: 50%;
transform: translateX(-50%);
font-size: 420px;
line-height: 1;
color: #9721dc0a;
pointer-events: none;
z-index: 1
}

.opn_hero_main {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
gap: 24px
}

.opn_hero_h1 {
font-size: 70px;
line-height: 1.1;
color: #2d2d2d;
font-weight: 300;
letter-spacing: -.02em;
margin: 0
}

.opn_hero_h2 {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0
}

.opn_hero_h3 {
font-size: 24px;
line-height: 1.3;
color: #5a5a5a;
font-weight: 300;
margin: 0
}

.opn_hero_aside {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
justify-content: center
}

.opn_hero_img_wrap {
position: relative;
width: 100%;
aspect-ratio: 3/4;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 28px 0 #17ca771c
}

.opn_hero_img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
filter: sepia(0.15) saturate(1.2)
}

@media (max-width: 1280px) {
.opn_hero {
grid-template-columns: 1fr;
padding: 80px 24px
}

.opn_hero_aside {
display: none
}

.opn_hero_h1 {
font-size: 56px
}

.opn_hero_h2 {
font-size: 30px
}
}

@media (max-width: 768px) {
.opn_hero {
padding: 40px 16px
}

.opn_hero_h1 {
font-size: 42px
}

.opn_hero_h2 {
font-size: 24px
}

.opn_hero_h3 {
font-size: 18px
}
}

@media (max-width: 390px) {
.opn_hero_h1 {
font-size: 36px
}
}

.opn_outcomes {
padding: 80px 40px;
background: linear-gradient(127deg, #feb6be0f 0%, #fff0 100%);
position: relative
}

.opn_outcomes::after {
content: '';
position: absolute;
bottom: 0;
left: 8%;
right: 8%;
height: 2px;
background: linear-gradient(117deg, #9721dc66 0%, #17ca7714 100%)
}

.opn_outcomes_inner {
max-width: 920px;
margin: 0 auto
}

.opn_outcomes_h {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0 0 40px
}

.opn_outcomes_grid {
display: grid;
grid-template-columns: 280px 1fr;
gap: 40px;
margin-bottom: 40px
}

.opn_outcomes_intro {
font-size: 14px;
line-height: 1.6;
color: #5a5a5a;
font-style: italic
}

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

.opn_outcomes_p {
font-size: 18px;
line-height: 1.6;
color: #2d2d2d;
margin: 0
}

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

.opn_outcomes_li {
display: flex;
gap: 16px;
font-size: 18px;
line-height: 1.6;
color: #2d2d2d
}

.opn_outcomes_li::before {
content: '';
flex-shrink: 0;
width: 6px;
height: 6px;
background: #17CA77;
border-radius: 48px;
margin-top: 12px
}

@media (max-width: 1280px) {
.opn_outcomes {
padding: 80px 24px
}

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

@media (max-width: 768px) {
.opn_outcomes {
padding: 40px 16px
}

.opn_outcomes_h {
font-size: 30px;
margin-bottom: 24px
}

.opn_outcomes_p,
.opn_outcomes_li {
font-size: 16px
}
}

@media (max-width: 390px) {
.opn_outcomes_h {
font-size: 24px
}
}

.opn_journey {
padding: 80px 40px;
background: #fafcfb;
position: relative
}

.opn_journey_inner {
max-width: 1040px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 420px;
gap: 80px;
align-items: start
}

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

.opn_journey_h {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0
}

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

.opn_journey_subh {
font-size: 24px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 500;
margin: 0;
letter-spacing: .02em
}

.opn_journey_p {
font-size: 18px;
line-height: 1.6;
color: #2d2d2d;
margin: 0
}

.opn_journey_visual {
position: sticky;
top: 80px
}

.opn_journey_img_wrap {
position: relative;
width: 100%;
aspect-ratio: 16/9;
border-radius: 7px;
overflow: hidden;
box-shadow: 0 1px 3px 0 #9721dc0d
}

.opn_journey_img_wrap::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 80px;
background: linear-gradient(180deg, #17ca7700 0%, #17ca7738 100%);
pointer-events: none
}

.opn_journey_img {
width: 100%;
height: 100%;
object-fit: cover
}

@media (max-width: 1280px) {
.opn_journey {
padding: 80px 24px
}

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

.opn_journey_visual {
display: none
}
}

@media (max-width: 768px) {
.opn_journey {
padding: 40px 16px
}

.opn_journey_h {
font-size: 30px
}

.opn_journey_subh {
font-size: 20px
}

.opn_journey_p {
font-size: 16px
}

.opn_journey_content {
gap: 24px
}

.opn_journey_block {
gap: 12px
}
}

@media (max-width: 390px) {
.opn_journey_h {
font-size: 24px
}

.opn_journey_subh {
font-size: 18px
}
}

.opn_invest {
padding: 80px 40px;
background: #fff;
position: relative
}

.opn_invest::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 800px;
height: 800px;
transform: translate(-50%, -50%);
background: radial-gradient(circle at top left, #feb6be14 0%, #fff0 70%);
pointer-events: none;
z-index: 1
}

.opn_invest_inner {
position: relative;
z-index: 2;
max-width: 780px;
margin: 0 auto;
text-align: center;
display: flex;
flex-direction: column;
gap: 40px
}

.opn_invest_h {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0
}

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

.opn_invest_card {
background: #fff;
border: 1px solid #9721dc1f;
border-radius: 12px;
padding: 40px 24px;
display: flex;
flex-direction: column;
gap: 16px;
box-shadow: 0 1px 3px 0 #17ca770d;
transition: border-color .16s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .16s cubic-bezier(0.4, 0, 0.6, 1);
position: relative
}

.opn_invest_card::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, #17ca7799 0%, #17ca7700 100%);
border-radius: 0 0 12px 12px;
opacity: 0;
transition: opacity .18s ease-out
}

.opn_invest_card:hover {
border-color: #17ca774d;
box-shadow: 0 4px 28px 0 #17ca771c
}

.opn_invest_card:hover::after {
opacity: 1
}

.opn_invest_card_label {
font-size: 14px;
line-height: 1.3;
color: #9721DC;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .08em;
margin: 0
}

.opn_invest_card_title {
font-size: 24px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 500;
margin: 0
}

.opn_invest_card_txt {
font-size: 14px;
line-height: 1.6;
color: #5a5a5a;
margin: 0
}

.opn_invest_note {
font-size: 14px;
line-height: 1.6;
color: #5a5a5a;
margin: 0;
font-style: italic
}

@media (max-width: 1280px) {
.opn_invest {
padding: 80px 24px
}

.opn_invest_cards {
grid-template-columns: 1fr
}
}

@media (max-width: 768px) {
.opn_invest {
padding: 40px 16px
}

.opn_invest_h {
font-size: 30px
}

.opn_invest_inner {
gap: 24px
}

.opn_invest_card {
padding: 24px 16px
}

.opn_invest_card_title {
font-size: 20px
}
}

@media (max-width: 390px) {
.opn_invest_h {
font-size: 24px
}
}

.opn_fit {
padding: 80px 40px;
background: linear-gradient(243deg, #17ca770a 0%, #fff0 100%);
position: relative
}

.opn_fit::after {
content: '';
position: absolute;
bottom: 0;
left: 12%;
right: 12%;
height: 1px;
background: linear-gradient(90deg, #feb6be00 0%, #feb6be66 50%, #feb6be00 100%)
}

.opn_fit_inner {
max-width: 880px;
margin: 0 auto
}

.opn_fit_h {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0 0 40px;
text-align: center
}

.opn_fit_split {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px
}

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

.opn_fit_subh {
font-size: 24px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 500;
margin: 0
}

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

.opn_fit_li {
display: flex;
gap: 12px;
font-size: 18px;
line-height: 1.6;
color: #2d2d2d
}

.opn_fit_li_icon {
flex-shrink: 0;
width: 20px;
height: 20px;
margin-top: 4px
}

.opn_fit_li_icon svg {
width: 100%;
height: 100%;
fill: none;
stroke: #17CA77;
stroke-width: 2
}

.opn_fit_li_cross svg {
stroke: #9721DC
}

@media (max-width: 1280px) {
.opn_fit {
padding: 80px 24px
}

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

@media (max-width: 768px) {
.opn_fit {
padding: 40px 16px
}

.opn_fit_h {
font-size: 30px;
margin-bottom: 24px
}

.opn_fit_subh {
font-size: 20px
}

.opn_fit_li {
font-size: 16px
}
}

@media (max-width: 390px) {
.opn_fit_h {
font-size: 24px
}

.opn_fit_subh {
font-size: 18px
}
}

.opn_team {
padding: 80px 40px;
background: #fff;
position: relative
}

.opn_team_inner {
max-width: 1080px;
margin: 0 auto
}

.opn_team_h {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0 0 40px
}

.opn_team_grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 40px
}

.opn_team_member {
display: grid;
grid-template-columns: 180px 1fr;
gap: 24px;
background: #fafcfb;
border-radius: 12px;
padding: 24px;
box-shadow: 0 1px 3px 0 #9721dc0d;
transition: box-shadow .14s ease-out
}

.opn_team_member:hover {
box-shadow: 0 4px 28px 0 #9721dc1c
}

.opn_team_photo_wrap {
width: 100%;
aspect-ratio: 3/4;
border-radius: 7px;
overflow: hidden;
position: relative
}

.opn_team_photo_wrap::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 60px;
background: linear-gradient(180deg, #9721dc00 0%, #9721dc26 100%);
pointer-events: none
}

.opn_team_photo {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top
}

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

.opn_team_name {
font-size: 24px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 500;
margin: 0
}

.opn_team_role {
font-size: 14px;
line-height: 1.3;
color: #9721DC;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .06em;
margin: 0
}

.opn_team_bio {
font-size: 14px;
line-height: 1.6;
color: #5a5a5a;
margin: 0
}

@media (max-width: 1280px) {
.opn_team {
padding: 80px 24px
}

.opn_team_grid {
grid-template-columns: 1fr
}
}

@media (max-width: 768px) {
.opn_team {
padding: 40px 16px
}

.opn_team_h {
font-size: 30px;
margin-bottom: 24px
}

.opn_team_member {
grid-template-columns: 1fr;
gap: 16px
}

.opn_team_photo_wrap {
max-width: 200px;
margin: 0 auto
}

.opn_team_name {
font-size: 20px
}
}

@media (max-width: 390px) {
.opn_team_h {
font-size: 24px
}
}

.opn_support {
padding: 80px 40px;
background: linear-gradient(154deg, #feb6be0d 0%, #fff0 100%);
position: relative
}

.opn_support_inner {
max-width: 820px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 40px
}

.opn_support_h {
font-size: 36px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 400;
margin: 0
}

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

.opn_support_block {
background: #fff;
border: 1px solid #17ca7724;
border-radius: 12px;
padding: 24px;
display: flex;
flex-direction: column;
gap: 12px;
position: relative;
overflow: hidden
}

.opn_support_block::before {
content: '';
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 3px;
background: linear-gradient(180deg, #17CA77 0%, #17ca7700 100%)
}

.opn_support_block_title {
font-size: 18px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 600;
margin: 0;
padding-left: 16px
}

.opn_support_block_txt {
font-size: 14px;
line-height: 1.6;
color: #5a5a5a;
margin: 0;
padding-left: 16px
}

.opn_support_cta {
margin-top: 24px;
text-align: center
}

.opn_support_btn {
display: inline-flex;
align-items: center;
gap: 12px;
padding: 16px 40px;
background: #fff;
border: 2px solid #17CA77;
border-radius: 48px;
font-size: 18px;
line-height: 1.3;
color: #2d2d2d;
font-weight: 500;
text-decoration: none;
transition: border-color .18s cubic-bezier(0.4, 0, 0.6, 1), box-shadow .18s cubic-bezier(0.4, 0, 0.6, 1);
box-shadow: 0 1px 3px 0 #17ca770d
}

.opn_support_btn:hover {
border-color: #9721DC;
box-shadow: 0 4px 28px 0 #9721dc1c
}

.opn_support_btn_icon {
width: 20px;
height: 20px
}

.opn_support_btn_icon svg {
width: 100%;
height: 100%;
fill: none;
stroke: #17CA77;
stroke-width: 2;
transition: stroke .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.opn_support_btn:hover .opn_support_btn_icon svg {
stroke: #9721DC
}

@media (max-width: 1280px) {
.opn_support {
padding: 80px 24px
}
}

@media (max-width: 768px) {
.opn_support {
padding: 40px 16px
}

.opn_support_h {
font-size: 30px
}

.opn_support_inner {
gap: 24px
}

.opn_support_btn {
font-size: 16px;
padding: 14px 32px
}
}

@media (max-width: 390px) {
.opn_support_h {
font-size: 24px
}

.opn_support_btn {
width: 100%;
justify-content: center
}
}

.opn_rotating_mark {
position: absolute;
top: 120px;
right: 80px;
width: 180px;
height: 180px;
pointer-events: none;
z-index: 1;
opacity: .06;
animation: opn_rotate_slow 24s linear infinite
}

.opn_rotating_mark svg {
width: 100%;
height: 100%;
fill: none;
stroke: #9721DC;
stroke-width: 1
}

@keyframes opn_rotate_slow {
from {
transform: rotate(0deg)
}

to {
transform: rotate(360deg)
}
}

@media (max-width: 1280px) {
.opn_rotating_mark {
display: none
}
}

.opn_contrast_breathing {
animation: opn_contrast_pulse 8s ease-in-out infinite
}

@keyframes opn_contrast_pulse {

0%,
100% {
filter: contrast(1)
}

50% {
filter: contrast(1.08)
}
}

.cnt_pg {
max-width: 1366px;
margin: 0 auto;
background: #fff;
color: #1a1818
}

.cnt_pg .hdr_zone {
padding: 80px 24px;
display: grid;
grid-template-columns: 1fr 1.4fr;
gap: 40px;
align-items: center;
position: relative
}

.cnt_pg .hdr_zone::before {
content: '';
position: absolute;
top: 16%;
right: 8%;
width: 8px;
height: 8px;
background: #17CA77;
border-radius: 50%;
opacity: .6
}

.cnt_pg .hdr_zone::after {
content: '';
position: absolute;
bottom: 20%;
right: 12%;
width: 6px;
height: 6px;
background: #9721DC;
border-radius: 50%;
opacity: .5
}

.cnt_pg .txt_intro {
display: flex;
flex-direction: column;
gap: 24px
}

.cnt_pg .txt_intro h1 {
font-size: 70px;
line-height: 1.1;
font-weight: 300;
letter-spacing: -.02em;
color: #1a1818;
margin: 0;
animation: reveal_txt .18s ease-out forwards
}

@keyframes reveal_txt {
from {
opacity: 0;
transform: translateY(8px)
}

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

.cnt_pg .txt_intro p {
font-size: 18px;
line-height: 1.6;
color: #3d3838;
margin: 0
}

.cnt_pg .img_anchor {
position: relative;
border-radius: 12px;
overflow: hidden
}

.cnt_pg .img_anchor img {
width: 100%;
height: auto;
display: block;
object-fit: cover;
aspect-ratio: 16/9
}

.cnt_pg .img_anchor::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle at 0% 0%, #17ca7714 0%, transparent 60%);
pointer-events: none;
z-index: 1
}

.cnt_pg .img_anchor::after {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(circle at 0% 0%, #0000004d 0%, transparent 50%), radial-gradient(circle at 100% 0%, #0003 0%, transparent 50%), radial-gradient(circle at 0% 100%, #0003 0%, transparent 50%), radial-gradient(circle at 100% 100%, #0000004d 0%, transparent 50%);
pointer-events: none;
z-index: 2
}

.cnt_pg .dots_rhythm {
display: flex;
gap: 8px;
margin-top: 16px
}

.cnt_pg .dots_rhythm span {
width: 4px;
height: 4px;
background: #17CA77;
border-radius: 50%;
opacity: .4
}

.cnt_pg .dots_rhythm span:nth-child(2) {
background: #9721DC;
opacity: .5
}

.cnt_pg .dots_rhythm span:nth-child(3) {
background: #FEB6BE;
opacity: .6
}

.cnt_pg .split_form_zone {
display: grid;
grid-template-columns: 0.8fr 1.2fr;
gap: 80px;
padding: 80px 24px;
position: relative;
background: #fafcfa
}

.cnt_pg .split_form_zone::before {
content: '';
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
width: 2px;
height: 100%;
background: repeating-linear-gradient(to bottom, #17CA77 0, #17CA77 8px, transparent 8px, transparent 16px);
opacity: .15
}

.cnt_pg .form_desc {
display: flex;
flex-direction: column;
gap: 24px;
padding-right: 24px
}

.cnt_pg .form_desc h2 {
font-size: 36px;
line-height: 1.3;
font-weight: 400;
color: #1a1818;
margin: 0
}

.cnt_pg .form_desc p {
font-size: 18px;
line-height: 1.6;
color: #3d3838;
margin: 0
}

.cnt_pg .form_desc em {
font-style: italic;
font-size: 20px;
color: #17CA77
}

.cnt_pg .contact_frm {
background: #fff;
padding: 40px;
border-radius: 12px;
box-shadow: 0 4px 28px 0 #17ca771c
}

.cnt_pg .contact_frm form {
display: flex;
flex-direction: column;
gap: 24px
}

.cnt_pg .fld_wrap {
display: flex;
flex-direction: column;
gap: 8px
}

.cnt_pg .fld_wrap label {
font-size: 14px;
line-height: 1.3;
color: #3d3838;
font-weight: 500;
letter-spacing: .03em
}

.cnt_pg .fld_wrap input[type="email"],
.cnt_pg .fld_wrap textarea,
.cnt_pg .fld_wrap select {
padding: 16px;
border: 1px solid #d8dcd8;
border-radius: 7px;
font-size: 18px;
line-height: 1.3;
color: #1a1818;
background: #fff;
transition: border-color .16s ease-out, box-shadow .16s ease-out;
width: 100%
}

.cnt_pg .fld_wrap input[type="email"]::placeholder,
.cnt_pg .fld_wrap textarea::placeholder {
color: #3d383866
}

.cnt_pg .fld_wrap input[type="email"]:focus,
.cnt_pg .fld_wrap textarea:focus,
.cnt_pg .fld_wrap select:focus {
outline: none;
border-color: #17CA77;
box-shadow: 0 1px 3px 0 #17ca770d
}

.cnt_pg .fld_wrap textarea {
min-height: 140px;
resize: vertical
}

.cnt_pg .fld_wrap select {
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%231a1818' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 16px center;
padding-right: 40px;
cursor: pointer
}

.cnt_pg .privacy_chk {
display: flex;
gap: 8px;
align-items: flex-start
}

.cnt_pg .privacy_chk input[type="checkbox"] {
margin-top: 4px;
width: 18px;
height: 18px;
border: 1px solid #d8dcd8;
border-radius: 7px;
cursor: pointer;
flex-shrink: 0;
accent-color: #17CA77
}

.cnt_pg .privacy_chk label {
font-size: 14px;
line-height: 1.6;
color: #3d3838;
cursor: pointer
}

.cnt_pg .privacy_chk a {
color: #17CA77;
text-decoration: none;
transition: color .14s ease-out
}

.cnt_pg .privacy_chk a:hover {
color: #13a860
}

.cnt_pg .submit_btn {
padding: 16px 40px;
background: #17CA77;
color: #fff;
border: 2px solid #17CA77;
border-radius: 48px;
font-size: 18px;
line-height: 1.3;
font-weight: 500;
cursor: pointer;
transition: border-color .18s ease-out, background-color .18s ease-out;
display: inline-flex;
align-items: center;
gap: 8px;
align-self: flex-start
}

.cnt_pg .submit_btn:hover {
border-color: #13a860;
background: #13a860
}

.cnt_pg .submit_btn:focus {
outline: none;
box-shadow: 0 0 0 3px #17ca7733
}

.cnt_pg .submit_btn svg {
width: 16px;
height: 16px;
fill: #fff
}

.cnt_pg .info_metrics {
padding: 80px 24px;
background: #fff;
position: relative
}

.cnt_pg .info_metrics::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: linear-gradient(90deg, #17CA77 0%, #9721DC 100%)
}

.cnt_pg .metrics_grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 40px;
max-width: 900px;
margin: 0 auto
}

.cnt_pg .metric_card {
background: #fafcfa;
padding: 40px;
border-radius: 12px;
display: flex;
flex-direction: column;
gap: 16px;
position: relative;
overflow: hidden;
box-shadow: 0 1px 3px 0 #17ca770d
}

.cnt_pg .metric_card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
pointer-events: none;
opacity: .6
}

.cnt_pg .metric_card:nth-child(2) {
transform: translateY(40px)
}

.cnt_pg .metric_icon {
width: 48px;
height: 48px;
border-radius: 48px;
background: radial-gradient(circle at 0% 0%, #17ca771f 0%, #9721dc14 100%);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0
}

.cnt_pg .metric_icon svg {
width: 24px;
height: 24px;
fill: #17CA77
}

.cnt_pg .metric_card h3 {
font-size: 24px;
line-height: 1.3;
font-weight: 500;
color: #1a1818;
margin: 0
}

.cnt_pg .metric_card p {
font-size: 18px;
line-height: 1.6;
color: #3d3838;
margin: 0
}

.cnt_pg .metric_card a {
font-size: 18px;
line-height: 1.3;
color: #17CA77;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
transition: gap .16s ease-out;
margin-top: 8px
}

.cnt_pg .metric_card a:hover {
gap: 12px
}

.cnt_pg .metric_card a::after {
content: '→';
font-size: 18px;
transition: transform .16s ease-out
}

.cnt_pg .metric_card a:hover::after {
transform: translateX(4px)
}

.cnt_pg .addr_line {
display: flex;
align-items: baseline;
gap: 8px
}

.cnt_pg .addr_line svg {
width: 16px;
height: 16px;
fill: #17CA77;
flex-shrink: 0;
margin-top: 2px
}

.cnt_pg .divider_band {
width: 100%;
height: 8px;
background: linear-gradient(90deg, #17ca7726 0%, #9721dc26 100%)
}

@media (max-width: 1280px) {
.cnt_pg .hdr_zone {
grid-template-columns: 1fr;
padding: 40px 24px
}

.cnt_pg .split_form_zone {
grid-template-columns: 1fr;
gap: 40px;
padding: 40px 24px
}

.cnt_pg .split_form_zone::before {
display: none
}

.cnt_pg .form_desc {
padding-right: 0
}
}

@media (max-width: 768px) {
.cnt_pg .txt_intro h1 {
font-size: 36px
}

.cnt_pg .txt_intro p {
font-size: 18px
}

.cnt_pg .img_anchor {
display: none
}

.cnt_pg .hdr_zone {
padding: 40px 16px
}

.cnt_pg .split_form_zone {
padding: 40px 16px
}

.cnt_pg .contact_frm {
padding: 24px
}

.cnt_pg .form_desc h2 {
font-size: 24px
}

.cnt_pg .metrics_grid {
grid-template-columns: 1fr;
gap: 24px
}

.cnt_pg .metric_card:nth-child(2) {
transform: translateY(0)
}

.cnt_pg .info_metrics {
padding: 40px 16px
}
}

@media (max-width: 390px) {
.cnt_pg .txt_intro h1 {
font-size: 24px
}

.cnt_pg .form_desc h2 {
font-size: 18px
}

.cnt_pg .metric_card h3 {
font-size: 18px
}

.cnt_pg .contact_frm {
padding: 16px
}

.cnt_pg .metric_card {
padding: 24px
}
}

.success_pg {
min-height: 80vh;
display: flex;
align-items: center;
justify-content: center;
padding: 40px 16px;
background: linear-gradient(circle at 10% 10%, #17ca7714, transparent 60%)
}

.success_pg .confirm_wrap {
max-width: 680px;
width: 100%;
text-align: center;
padding: 80px 40px;
background: #fff;
border-radius: 12px;
box-shadow: 0 4px 28px 0 #17ca771c
}

.success_pg .icon_check {
width: 88px;
height: 88px;
margin: 0 auto 40px;
border-radius: 48px;
background: linear-gradient(135deg, #17CA77, #9721DC);
display: flex;
align-items: center;
justify-content: center;
position: relative
}

.success_pg .icon_check::after {
content: '';
width: 32px;
height: 18px;
border-left: 4px solid #fff;
border-bottom: 4px solid #fff;
transform: rotate(-45deg) translateY(-4px)
}

.success_pg .confirm_title {
font-size: 36px;
line-height: 1.3;
margin: 0 0 16px;
color: #1a1a1a
}

.success_pg .confirm_msg {
font-size: 18px;
line-height: 1.6;
color: #4a4a4a;
margin: 0 0 40px
}

.success_pg .confirm_detail {
font-size: 14px;
line-height: 1.6;
color: #6a6a6a;
margin: 0 0 40px;
padding: 24px;
background: #f5f5f5;
border-radius: 7px
}

.success_pg .btn_grp {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap
}

.success_pg .btn_primary {
padding: 16px 40px;
font-size: 18px;
background: #17CA77;
color: #fff;
border: 2px solid #17CA77;
border-radius: 7px;
cursor: pointer;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
transition: border-color .16s ease-out
}

.success_pg .btn_primary:hover {
border-color: #13a860
}

.success_pg .btn_secondary {
padding: 16px 40px;
font-size: 18px;
background: transparent;
color: #9721DC;
border: 2px solid #9721DC;
border-radius: 7px;
cursor: pointer;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
transition: border-color .18s cubic-bezier(0.4, 0, 0.6, 1)
}

.success_pg .btn_secondary:hover {
border-color: #7a1ab0
}

.success_pg .contact_info {
margin-top: 40px;
padding-top: 40px;
border-top: 1px solid #e0e0e0
}

.success_pg .contact_title {
font-size: 18px;
line-height: 1.3;
margin: 0 0 16px;
color: #2a2a2a;
letter-spacing: .03em
}

.success_pg .contact_list {
display: flex;
flex-direction: column;
gap: 8px;
font-size: 14px;
line-height: 1.6;
color: #5a5a5a
}

.success_pg .contact_item {
display: flex;
align-items: center;
justify-content: center;
gap: 8px
}

.success_pg .contact_link {
color: #9721DC;
text-decoration: none;
transition: color .14s ease-out
}

.success_pg .contact_link:hover {
color: #7a1ab0
}

@media (max-width: 768px) {
.success_pg .confirm_wrap {
padding: 40px 24px
}

.success_pg .confirm_title {
font-size: 24px
}

.success_pg .confirm_msg {
font-size: 14px
}

.success_pg .btn_grp {
flex-direction: column
}

.success_pg .btn_primary,
.success_pg .btn_secondary {
width: 100%;
justify-content: center
}
}

@media (max-width: 390px) {
.success_pg {
padding: 24px 16px
}

.success_pg .icon_check {
width: 72px;
height: 72px;
margin-bottom: 24px
}

.success_pg .icon_check::after {
width: 26px;
height: 14px;
border-left-width: 3px;
border-bottom-width: 3px
}
}