html {
font-size: 100%
}

body {
margin: 0;
position: relative;
min-height: 100vh;
font-family: 'EB Garamond', serif;
background: #fff;
color: #221B18;
line-height: 1.6;
font-size: 18px
}

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

:focus {
outline: 2px dashed #F11C80;
outline-offset: 4px;
animation: dash_rotate 8s linear infinite
}

@keyframes dash_rotate {
0% {
outline-offset: 4px
}

50% {
outline-offset: 8px
}

100% {
outline-offset: 4px
}
}

.top_band {
background: linear-gradient(135deg, #ECEEF2 0%, #fff 100%);
border-bottom: 1px solid #221b1814;
position: relative
}

.top_band_inner {
max-width: 1200px;
margin: 0 auto;
padding: 32px 24px;
display: flex;
align-items: flex-start;
gap: 64px;
flex-wrap: wrap
}

.brand_pod {
background: #fff;
padding: 16px 24px;
border-radius: 4px;
box-shadow: -1px 3px 6px 0 #221b1814 -1px 7px 25px 0 #221b181c;
border: 1px solid #221b180f;
display: flex;
flex-direction: column;
gap: 16px;
min-width: 280px
}

.brand_mark {
width: 68px;
height: 68px;
display: block
}

.brand_mark img {
width: 100%;
height: 100%;
object-fit: contain
}

.brand_divider {
height: 1px;
background: linear-gradient(90deg, #F11C80 0%, #f11c8000 100%);
width: 100%
}

.nav_deck {
flex: 1;
min-width: 320px;
display: flex;
flex-direction: column;
gap: 24px;
padding-top: 8px
}

.primary_nav {
display: flex;
flex-wrap: wrap;
gap: 16px 32px;
list-style: none;
margin: 0;
padding: 0
}

.primary_nav li {
margin: 0;
padding: 0
}

.primary_nav a {
font-size: 18px;
color: #221B18;
text-decoration: none;
padding: 8px 16px;
display: inline-block;
border-radius: 4px;
background: #eceef266;
transition: background .12s ease-out, transform .1s ease-out;
position: relative;
overflow: hidden;
font-weight: 400;
letter-spacing: -.01em
}

.primary_nav a::before {
content: '';
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 3px;
background: #F11C80;
transform: translateX(-3px);
transition: transform .15s ease-out
}

.primary_nav a:hover {
background: #ECEEF2;
transform: translateX(4px)
}

.primary_nav a:hover::before {
transform: translateX(0)
}

.accent_graphic {
width: 120px;
height: 4px;
background: linear-gradient(90deg, #F11C80 0%, #ECEEF2 100%);
border-radius: 40px;
box-shadow: -1px 3px 6px 0 #f11c8014
}

.base_plate {
background: #F9FAFB;
border-top: 1px solid #221b180f;
position: relative
}

.base_inner {
max-width: 1200px;
margin: 0 auto;
padding: 64px 24px 32px
}

.footer_grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 64px 32px;
margin-bottom: 64px
}

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

.footer_brand_cell {
background: #fff;
padding: 16px;
border-radius: 4px;
width: fit-content;
box-shadow: -1px 3px 6px 0 #221b1814;
border: 1px solid #221b180f
}

.footer_logo {
width: 56px;
height: 56px;
display: block
}

.footer_logo img {
width: 100%;
height: 100%;
object-fit: contain
}

.footer_label {
font-size: 16px;
font-weight: 700;
color: #221B18;
margin-bottom: 16px;
letter-spacing: -.02em
}

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

.footer_nav li {
margin: 0;
padding: 0
}

.footer_nav a {
font-size: 18px;
color: #221B18;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
transition: transform .12s ease-out, color .1s ease-out;
position: relative
}

.footer_nav a::before {
content: '';
width: 6px;
height: 6px;
border-radius: 40px;
background: #F11C80;
display: block;
transition: transform .15s cubic-bezier(0.19, 1, 0.22, 1)
}

.footer_nav a:hover {
color: #F11C80;
transform: translateX(4px)
}

.footer_nav a:hover::before {
transform: scale(1.4)
}

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

.contact_item {
display: flex;
align-items: flex-start;
gap: 12px;
font-size: 18px;
line-height: 1.6;
color: #221B18
}

.contact_icon {
width: 24px;
height: 24px;
flex-shrink: 0;
margin-top: 2px
}

.contact_icon svg {
width: 100%;
height: 100%;
fill: none;
stroke: #F11C80;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}

.contact_item a {
color: #221B18;
text-decoration: none;
transition: color .1s ease-out
}

.contact_item a:hover {
color: #F11C80
}

.footer_divider {
height: 1px;
background: linear-gradient(90deg, #221b181a 0%, #221b1805 100%);
margin: 32px 0
}

.footer_legal {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 24px;
font-size: 16px;
color: #221b18b3
}

.legal_nav {
list-style: none;
margin: 0;
padding: 0;
display: flex;
gap: 24px;
flex-wrap: wrap
}

.legal_nav li {
margin: 0;
padding: 0
}

.legal_nav a {
color: #221b18b3;
text-decoration: none;
transition: color .1s ease-out;
position: relative
}

.legal_nav a::after {
content: '';
position: absolute;
left: 0;
bottom: -2px;
width: 0;
height: 1px;
background: #F11C80;
transition: width .15s ease-out
}

.legal_nav a:hover {
color: #F11C80
}

.legal_nav a:hover::after {
width: 100%
}

.cookie_notice {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #fff;
box-shadow: -1px 8px 48px 0 #221b181f -1px 7px 25px 0 #221b181c;
border-top: 2px solid #F11C80;
z-index: 1000;
transform: translateY(100%);
transition: transform .15s ease-out, opacity .12s ease-out;
opacity: 0;
max-width: 100vw;
overflow: hidden
}

.cookie_notice.visible {
transform: translateY(0);
opacity: 1
}

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

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

.cookie_text {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0
}

.cookie_actions {
display: flex;
gap: 16px;
flex-wrap: wrap
}

.cookie_btn {
padding: 12px 32px;
font-size: 16px;
font-family: 'EB Garamond', serif;
border: 1px solid #221B18;
border-radius: 4px;
cursor: pointer;
transition: background .1s ease-out, color .1s ease-out, transform .08s ease-out, box-shadow .12s ease-out;
font-weight: 700;
letter-spacing: -.01em;
white-space: nowrap
}

.cookie_btn.accept {
background: #F11C80;
color: #fff;
border-color: #F11C80;
box-shadow: -1px 3px 6px 0 #f11c8014
}

.cookie_btn.accept:hover {
background: #D01670;
border-color: #D01670;
transform: translateY(-2px);
box-shadow: -1px 7px 25px 0 #f11c801c
}

.cookie_btn.decline {
background: #fff;
color: #221B18;
border-color: #221b184d
}

.cookie_btn.decline:hover {
background: #ECEEF2;
border-color: #221B18;
transform: translateY(-2px);
box-shadow: -1px 3px 6px 0 #221b1814
}

.cookie_btn:active {
transform: translateY(0)
}

@media (max-width: 1024px) {
.top_band_inner {
gap: 32px
}

.nav_deck {
min-width: 100%
}
}

@media (max-width: 640px) {
.top_band_inner {
padding: 24px 16px
}

.brand_pod {
min-width: 100%
}

.primary_nav {
gap: 12px 16px
}

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

.footer_grid {
grid-template-columns: 1fr;
gap: 32px
}

.base_inner {
padding: 32px 16px 24px
}

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

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

.cookie_actions {
width: 100%
}

.cookie_btn {
flex: 1;
min-width: 120px
}
}

img {
transition: filter .15s ease-out
}

img:hover {
filter: grayscale(100%)
}

input::placeholder,
textarea::placeholder {
transition: transform .12s ease-out, opacity .1s ease-out;
transform-origin: left center
}

input:focus::placeholder,
textarea:focus::placeholder {
transform: translateY(-24px) scale(0.85);
opacity: .7
}

.policy_content {
max-width: 1200px;
margin: 0 auto;
padding: 64px 24px;
background: #fff
}

.policy_content h1 {
font-size: 62px;
line-height: 1.2;
letter-spacing: -.02em;
color: #221B18;
margin: 0 0 32px
}

.policy_content h2 {
font-size: 24px;
line-height: 1.2;
letter-spacing: -.01em;
color: #221B18;
margin: 64px 0 24px
}

.policy_content h3 {
font-size: 18px;
line-height: 1.6;
letter-spacing: -.01em;
color: #221B18;
margin: 32px 0 16px
}

.policy_content h4,
.policy_content h5,
.policy_content h6 {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 24px 0 16px
}

.policy_content p {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0 0 16px
}

.policy_content strong,
.policy_content b {
font-weight: 600;
color: #221B18
}

.policy_content em,
.policy_content i {
font-style: italic
}

.policy_content a {
color: #F11C80;
text-decoration: none;
border-bottom: 1px solid #f11c804d;
transition: border-color .12s ease-out
}

.policy_content a:hover {
border-bottom-color: #F11C80
}

.policy_content table {
width: 100%;
border-collapse: collapse;
margin: 32px 0;
font-size: 16px;
line-height: 1.6;
box-shadow: -1px 3px 6px 0 #221b1814;
border-radius: 4px;
overflow: hidden
}

.policy_content thead {
background: #ECEEF2
}

.policy_content th {
padding: 16px;
text-align: left;
font-weight: 600;
color: #221B18;
border-bottom: 2px solid #221B18
}

.policy_content td {
padding: 16px;
color: #221B18;
border-bottom: 1px solid #221b181a
}

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

.policy_content tbody tr:hover {
background: #eceef266
}

.policy_content div {
margin: 16px 0
}

.policy_content ul,
.policy_content ol {
margin: 16px 0;
padding-left: 32px
}

.policy_content ul li,
.policy_content ol li {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin-bottom: 8px
}

.policy_content ul li::marker {
color: #F11C80
}

.policy_content ol li::marker {
color: #F11C80;
font-weight: 600
}

@media (max-width: 768px) {
.policy_content {
padding: 32px 16px
}

.policy_content h1 {
font-size: 24px;
margin-bottom: 24px
}

.policy_content h2 {
font-size: 18px;
margin-top: 32px
}

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

.policy_content th,
.policy_content td {
padding: 8px
}
}

.srv_pg {
background: #FFF;
color: #221B18
}

.srv_pg ::selection {
background: #F11C80;
color: #FFF
}

.srv_pg .title_strip {
position: relative;
display: grid;
grid-template-columns: 280px 1fr;
gap: 32px;
max-width: 1200px;
margin: 0 auto;
padding: 24px 16px;
overflow: hidden
}

.srv_pg .title_strip::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: radial-gradient(circle, #221b180a 1px, transparent 1px);
background-size: 24px 24px;
pointer-events: none
}

.srv_pg .img_col {
position: relative;
height: 100%;
min-height: 180px
}

.srv_pg .img_col img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 4px;
display: block
}

.srv_pg .img_col::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to right, #f11c804d, transparent 70%);
border-radius: 4px;
pointer-events: none
}

.srv_pg .txt_col {
display: flex;
flex-direction: column;
justify-content: center;
position: relative
}

.srv_pg .main_heading {
font-size: 62px;
line-height: 1.2;
letter-spacing: -.02em;
margin: 0;
color: #221B18
}

.srv_pg .intro_band {
background: #ECEEF2;
padding: 64px 16px;
position: relative
}

.srv_pg .intro_band .contain {
max-width: 1200px;
margin: 0 auto
}

.srv_pg .intro_band .opener {
font-size: 24px;
line-height: 1.6;
color: #221B18;
margin: 0 0 32px;
text-align: center
}

.srv_pg .intro_band .desc_grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px
}

.srv_pg .intro_card {
background: #FFF;
padding: 32px;
border-radius: 4px;
box-shadow: -1px 3px 6px 0 #221b1814;
transition: box-shadow .12s ease-out, transform .1s ease-out
}

.srv_pg .intro_card:hover {
box-shadow: -1px 7px 25px 0 #221b181c;
transform: translateY(-2px)
}

.srv_pg .intro_card .card_num {
display: inline-block;
background: #F11C80;
color: #FFF;
font-size: 16px;
line-height: 1.6;
padding: 4px 16px;
border-radius: 40px;
margin: 0 0 16px
}

.srv_pg .intro_card .card_title {
font-size: 24px;
line-height: 1.2;
margin: 0 0 16px;
color: #221B18;
text-align: center;
padding-bottom: 16px;
border-bottom: 2px solid #F11C80
}

.srv_pg .intro_card .card_txt {
font-size: 16px;
line-height: 1.6;
margin: 0;
color: #221B18
}

.srv_pg .offerings_zone {
padding: 64px 16px;
background: #FFF;
position: relative;
overflow: hidden
}

.srv_pg .offerings_zone::before {
content: '"';
position: absolute;
font-size: 480px;
line-height: 1;
color: #eceef299;
top: -120px;
right: 80px;
font-weight: 700;
pointer-events: none
}

.srv_pg .offerings_zone .contain {
max-width: 1200px;
margin: 0 auto;
position: relative
}

.srv_pg .offerings_zone .section_label {
display: inline-block;
background: #221B18;
color: #FFF;
font-size: 16px;
line-height: 1.6;
padding: 8px 24px;
border-radius: 40px;
margin: 0 0 32px
}

.srv_pg .offerings_zone .section_head {
font-size: 72px;
line-height: 1.2;
letter-spacing: -.02em;
margin: 0 0 64px;
color: #221B18;
text-align: center
}

.srv_pg .service_list {
display: flex;
flex-direction: column;
gap: 0
}

.srv_pg .service_row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
padding: 64px 0;
border-bottom: 1px solid #ECEEF2;
opacity: 0;
max-height: 0;
overflow: hidden;
animation: expand_reveal .8s cubic-bezier(0.19, 1, 0.22, 1) forwards
}

.srv_pg .service_row:nth-child(1) {
animation-delay: .1s
}

.srv_pg .service_row:nth-child(2) {
animation-delay: .25s
}

.srv_pg .service_row:nth-child(3) {
animation-delay: .4s
}

.srv_pg .service_row:nth-child(4) {
animation-delay: .55s
}

@keyframes expand_reveal {
0% {
opacity: 0;
max-height: 0
}

1% {
opacity: 0;
max-height: 600px
}

100% {
opacity: 1;
max-height: 600px
}
}

.srv_pg .service_row:last-child {
border-bottom: none
}

.srv_pg .service_row:nth-child(even) {
grid-template-columns: 1fr 1fr
}

.srv_pg .service_row:nth-child(even) .srv_txt {
order: 2
}

.srv_pg .service_row:nth-child(even) .srv_visual {
order: 1
}

.srv_pg .srv_txt {
display: flex;
flex-direction: column;
justify-content: center
}

.srv_pg .srv_txt .srv_name {
font-size: 24px;
line-height: 1.2;
margin: 0 0 24px;
color: #221B18;
padding-bottom: 16px;
border-bottom: 2px solid #F11C80
}

.srv_pg .srv_txt .srv_desc {
font-size: 18px;
line-height: 1.6;
margin: 0 0 24px;
color: #221B18
}

.srv_pg .srv_txt .feature_points {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 8px
}

.srv_pg .srv_txt .feature_points li {
font-size: 16px;
line-height: 1.6;
color: #221B18;
padding-left: 32px;
position: relative
}

.srv_pg .srv_txt .feature_points li::before {
content: '';
position: absolute;
left: 0;
top: 8px;
width: 0;
height: 0;
border-left: 8px solid #F11C80;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent
}

.srv_pg .srv_visual {
position: relative;
overflow: hidden;
border-radius: 4px;
background: #ECEEF2;
min-height: 320px
}

.srv_pg .srv_visual img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: filter .15s ease-out
}

.srv_pg .srv_visual:hover img {
filter: grayscale(100%)
}

.srv_pg .srv_visual::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #221b18b3;
opacity: 0;
transition: opacity .12s ease-out;
pointer-events: none
}

.srv_pg .srv_visual:hover::after {
opacity: 1
}

.srv_pg .srv_visual .overlay_label {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #FFF;
font-size: 24px;
line-height: 1.2;
text-align: center;
opacity: 0;
transition: opacity .12s ease-out;
pointer-events: none;
z-index: 2
}

.srv_pg .srv_visual:hover .overlay_label {
opacity: 1
}

.srv_pg .process_area {
padding: 64px 16px;
background: linear-gradient(127deg, #ECEEF2 0%, #FFF 50%, #ECEEF2 100%);
position: relative
}

.srv_pg .process_area .contain {
max-width: 1200px;
margin: 0 auto
}

.srv_pg .process_area .area_heading {
font-size: 62px;
line-height: 1.2;
letter-spacing: -.02em;
margin: 0 0 64px;
color: #221B18;
text-align: center
}

.srv_pg .process_steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24px;
position: relative
}

.srv_pg .process_steps::before {
content: '';
position: absolute;
top: 48px;
left: 64px;
right: 64px;
height: 2px;
background: linear-gradient(to right, #F11C80 0%, #221B18 50%, #F11C80 100%)
}

.srv_pg .step_box {
background: #FFF;
padding: 32px 24px;
border-radius: 4px;
box-shadow: -1px 3px 6px 0 #f11c8014;
position: relative;
text-align: center;
transition: box-shadow .1s ease-out, transform .08s ease-out
}

.srv_pg .step_box:hover {
box-shadow: -1px 8px 48px 0 #f11c801f;
transform: translateY(-4px)
}

.srv_pg .step_box .step_marker {
width: 64px;
height: 64px;
background: #F11C80;
color: #FFF;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
line-height: 1;
font-weight: 700;
margin: 0 auto 24px;
position: relative;
z-index: 2
}

.srv_pg .step_box .step_label {
font-size: 18px;
line-height: 1.6;
margin: 0 0 16px;
color: #221B18;
font-weight: 700
}

.srv_pg .step_box .step_detail {
font-size: 16px;
line-height: 1.6;
margin: 0;
color: #221B18
}

.srv_pg .divider_arrows {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
padding: 32px 0
}

.srv_pg .divider_arrows .arrow_shape {
width: 0;
height: 0;
border-left: 8px solid #F11C80;
border-top: 6px solid transparent;
border-bottom: 6px solid transparent
}

.srv_pg .cta_strip {
background: #221B18;
padding: 64px 16px;
position: relative;
overflow: hidden
}

.srv_pg .cta_strip::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url(./stock_photos/20250421-3.jpg);
background-size: cover;
background-position: center;
opacity: .2;
mix-blend-mode: luminosity
}

.srv_pg .cta_strip .contain {
max-width: 1200px;
margin: 0 auto;
position: relative;
text-align: center
}

.srv_pg .cta_strip .cta_heading {
font-size: 72px;
line-height: 1.2;
letter-spacing: -.02em;
margin: 0 0 32px;
color: #FFF
}

.srv_pg .cta_strip .cta_text {
font-size: 24px;
line-height: 1.6;
margin: 0 0 32px;
color: #FFF
}

.srv_pg .cta_strip .cta_btn {
display: inline-flex;
align-items: center;
gap: 0;
background: #F11C80;
color: #FFF;
font-size: 18px;
line-height: 1.6;
padding: 16px 32px;
border-radius: 4px;
text-decoration: none;
transition: gap .12s ease-out, padding-left .12s ease-out;
box-shadow: -1px 7px 25px 0 #f11c801c;
position: relative;
overflow: hidden
}

.srv_pg .cta_strip .cta_btn:hover {
gap: 16px;
padding-left: 48px
}

.srv_pg .cta_strip .cta_btn .btn_arrow {
width: 0;
height: 0;
border-left: 10px solid #FFF;
border-top: 6px solid transparent;
border-bottom: 6px solid transparent;
opacity: 0;
transform: translateX(-24px);
transition: opacity .12s ease-out, transform .12s ease-out
}

.srv_pg .cta_strip .cta_btn:hover .btn_arrow {
opacity: 1;
transform: translateX(0)
}

.srv_pg .word_highlight {
display: inline;
position: relative;
transition: background .1s ease-out;
padding: 0 4px
}

.srv_pg .word_highlight:hover {
background: #f11c8026
}

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

.srv_pg .img_col {
min-height: 240px
}

.srv_pg .main_heading {
font-size: 24px
}

.srv_pg .intro_band .desc_grid {
grid-template-columns: 1fr
}

.srv_pg .offerings_zone .section_head {
font-size: 24px
}

.srv_pg .service_row {
grid-template-columns: 1fr !important;
gap: 32px
}

.srv_pg .service_row:nth-child(even) .srv_txt {
order: 1
}

.srv_pg .service_row:nth-child(even) .srv_visual {
order: 2
}

.srv_pg .process_area .area_heading {
font-size: 24px
}

.srv_pg .process_steps {
grid-template-columns: 1fr
}

.srv_pg .process_steps::before {
display: none
}

.srv_pg .cta_strip .cta_heading {
font-size: 24px
}

.srv_pg .cta_strip .cta_text {
font-size: 18px
}
}

.coach_pg {
max-width: 1200px;
margin: 0 auto;
background: #fff
}

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

.coach_pg .intro_wrap {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
padding: 64px 32px;
position: relative;
overflow: hidden
}

.coach_pg .intro_img_zone {
position: relative;
padding: 32px
}

.coach_pg .intro_img_zone::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 140px;
height: 140px;
background: #ECEEF2;
border-radius: 40px;
transform: rotate(25deg);
z-index: 1
}

.coach_pg .intro_img_zone::after {
content: '';
position: absolute;
bottom: 24px;
right: 24px;
width: 100px;
height: 100px;
background: linear-gradient(137deg, #F11C80 0%, #221B18 65%, #ECEEF2 100%);
border-radius: 4px;
transform: rotate(-12deg);
z-index: 1
}

.coach_pg .intro_img_holder {
position: relative;
z-index: 2;
width: 100%;
height: 520px;
border-radius: 4px;
overflow: hidden
}

.coach_pg .intro_img_holder::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(90deg, #221b18b8 0%, #221b1800 65%);
z-index: 2
}

.coach_pg .intro_img {
width: 100%;
height: 100%;
object-fit: cover;
display: block
}

.coach_pg .intro_txt_zone {
display: flex;
flex-direction: column;
justify-content: center;
padding: 24px 0
}

.coach_pg .intro_hd {
font-size: 62px;
line-height: 1.2;
color: #221B18;
margin: 0 0 32px;
letter-spacing: -.02em
}

.coach_pg .intro_quote {
font-size: 24px;
line-height: 1.6;
color: #221B18;
margin: 0;
font-style: italic;
padding-left: 24px;
border-left: 4px solid #F11C80
}

.coach_pg .offerings_outer {
padding: 64px 32px;
background: #FAFBFC;
position: relative;
border-top: 2px solid #221B18;
border-bottom: 6px solid #F11C80
}

.coach_pg .offerings_hd {
font-size: 72px;
line-height: 1.2;
color: #221B18;
text-align: center;
margin: 0 0 64px;
letter-spacing: -.03em;
text-decoration: underline;
text-decoration-color: #ECEEF2;
text-decoration-thickness: 8px;
text-underline-offset: 12px
}

.coach_pg .cards_rail {
display: flex;
gap: 24px;
overflow-x: auto;
padding-bottom: 16px;
scroll-snap-type: x mandatory
}

.coach_pg .cards_rail::-webkit-scrollbar {
height: 8px
}

.coach_pg .cards_rail::-webkit-scrollbar-track {
background: #ECEEF2;
border-radius: 4px
}

.coach_pg .cards_rail::-webkit-scrollbar-thumb {
background: #F11C80;
border-radius: 4px
}

.coach_pg .offer_card {
flex: 0 0 calc(33.333% - 16px);
min-width: 320px;
background: #fff;
padding: 32px;
border-radius: 40px;
box-shadow: -1px 3px 6px 0 #221b1814 -1px 7px 25px 0 #221b181c;
scroll-snap-align: start;
transition: transform .12s ease-out, box-shadow .12s ease-out;
opacity: 0;
transform: translateY(40px);
animation: slide_up .6s cubic-bezier(0.19, 1, 0.22, 1) forwards
}

.coach_pg .offer_card:nth-child(1) {
animation-delay: .1s
}

.coach_pg .offer_card:nth-child(2) {
animation-delay: .2s
}

.coach_pg .offer_card:nth-child(3) {
animation-delay: .3s
}

.coach_pg .offer_card:nth-child(4) {
animation-delay: .4s
}

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

.coach_pg .offer_card:hover {
transform: translateY(-8px);
box-shadow: -1px 8px 48px 0 #f11c801f
}

.coach_pg .card_hd {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 16px;
letter-spacing: -.01em
}

.coach_pg .card_txt {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0
}

.coach_pg .evaluation_outer {
padding: 64px 32px;
background: #fff;
position: relative
}

.coach_pg .evaluation_outer::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle at 20% 80%, #f11c8008 0%, transparent 50%), radial-gradient(circle at 80% 20%, #221b1808 0%, transparent 50%);
pointer-events: none
}

.coach_pg .evaluation_grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
position: relative;
z-index: 1
}

.coach_pg .eval_col {
padding: 32px;
border-radius: 4px
}

.coach_pg .eval_col.gains {
background: linear-gradient(173deg, #eceef266 0%, #f11c8014 100%);
border-top: 4px solid #F11C80
}

.coach_pg .eval_col.limits {
background: linear-gradient(173deg, #eceef266 0%, #221b1814 100%);
border-top: 4px solid #221B18
}

.coach_pg .eval_hd {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 24px;
letter-spacing: -.01em;
text-align: center
}

.coach_pg .eval_list {
list-style: none;
padding: 0;
margin: 0
}

.coach_pg .eval_list li {
font-size: 18px;
line-height: 1.6;
color: #221B18;
margin: 0 0 16px;
padding-left: 32px;
position: relative
}

.coach_pg .eval_list li:last-child {
margin-bottom: 0
}

.coach_pg .eval_col.gains .eval_list li::before {
content: '';
position: absolute;
left: 0;
top: 8px;
width: 8px;
height: 8px;
background: #F11C80;
border-radius: 40px
}

.coach_pg .eval_col.limits .eval_list li::before {
content: '';
position: absolute;
left: 0;
top: 8px;
width: 8px;
height: 8px;
background: #221B18;
border-radius: 40px
}

.coach_pg .metrics_outer {
padding: 64px 32px;
background: #F8F9FA;
position: relative;
overflow: hidden
}

.coach_pg .metrics_outer::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: repeating-linear-gradient(0deg, transparent, transparent 2px, #221b1805 2px, #221b1805 4px), repeating-linear-gradient(90deg, transparent, transparent 2px, #221b1805 2px, #221b1805 4px);
pointer-events: none;
z-index: 1
}

.coach_pg .metrics_outer::after {
content: '';
position: absolute;
top: -100px;
right: -100px;
width: 600px;
height: 600px;
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><rect fill="%23ECEEF2" opacity="0.3" x="0" y="0" width="600" height="600" rx="300"/></svg>');
animation: pan_bg 20s linear infinite;
pointer-events: none;
z-index: 0
}

@keyframes pan_bg {
0% {
transform: translateX(0)
}

50% {
transform: translateX(-200px)
}

100% {
transform: translateX(0)
}
}

.coach_pg .metrics_inner {
position: relative;
z-index: 2
}

.coach_pg .metrics_hd {
font-size: 62px;
line-height: 1.2;
color: #221B18;
margin: 0 0 64px;
letter-spacing: -.02em
}

.coach_pg .metrics_grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px
}

.coach_pg .metric_box {
background: #fff;
padding: 32px;
border-radius: 4px;
box-shadow: -1px 3px 6px 0 #f11c8014;
transition: box-shadow .1s ease-out;
position: relative;
overflow: hidden
}

.coach_pg .metric_box:hover {
box-shadow: -1px 7px 25px 0 #f11c801c -1px 8px 48px 0 #221b181f
}

.coach_pg .metric_val {
font-size: 72px;
line-height: 1.2;
color: #F11C80;
margin: 0 0 8px;
letter-spacing: -.03em;
display: flex;
align-items: center;
gap: 16px
}

.coach_pg .trend_arrow {
width: 0;
height: 0;
border-left: 16px solid transparent;
border-right: 16px solid transparent;
border-bottom: 24px solid #221B18
}

.coach_pg .trend_arrow.down {
border-bottom: none;
border-top: 24px solid #ECEEF2
}

.coach_pg .metric_lbl {
font-size: 18px;
line-height: 1.6;
color: #221B18;
margin: 0
}

.coach_pg .metric_desc {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 16px 0 0
}

.coach_pg .divider_stack {
height: 8px;
background: linear-gradient(180deg, #221B18 0%, #221B18 33%, #F11C80 33%, #F11C80 66%, #ECEEF2 66%, #ECEEF2 100%);
margin: 0
}

@media (max-width: 768px) {
.coach_pg .intro_wrap {
grid-template-columns: 1fr;
gap: 32px;
padding: 32px 16px
}

.coach_pg .intro_img_holder {
height: 360px
}

.coach_pg .intro_hd {
font-size: 48px
}

.coach_pg .intro_quote {
font-size: 18px
}

.coach_pg .offerings_outer {
padding: 32px 16px
}

.coach_pg .offerings_hd {
font-size: 48px;
margin-bottom: 32px
}

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

.coach_pg .offer_card {
flex: 1 1 auto;
min-width: 100%
}

.coach_pg .evaluation_grid {
grid-template-columns: 1fr;
gap: 32px
}

.coach_pg .metrics_outer {
padding: 32px 16px
}

.coach_pg .metrics_hd {
font-size: 48px;
margin-bottom: 32px
}

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

.coach_pg .metric_val {
font-size: 48px
}
}

.coach_pg .intro_img:hover {
filter: grayscale(100%);
transition: filter .15s ease-out
}

.coach_pg ::selection {
background: #F11C80;
color: #fff
}

.lnch {
max-width: 1200px;
margin: 0 auto;
background: #FFF;
color: #221B18
}

.lnch ::selection {
background: #F11C80;
color: #FFF
}

.lnch .title_hero {
position: relative;
padding: 64px 32px 32px;
overflow: visible;
display: flex;
flex-direction: column;
gap: 32px
}

.lnch .title_hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 2px;
height: 100%;
background: linear-gradient(167deg, #221B18 0%, #F11C80 48%, #ECEEF2 100%)
}

.lnch .title_content {
display: flex;
flex-direction: column;
gap: 24px;
padding-left: 24px
}

.lnch .title_main {
font-size: 72px;
line-height: 1.2;
letter-spacing: -.02em;
margin: 0;
color: #221B18
}

.lnch .title_desc {
font-size: 24px;
line-height: 1.6;
color: #221B18;
max-width: 720px;
margin: 0
}

.lnch .title_visual {
position: relative;
width: 100%;
max-width: 480px;
margin-left: auto;
opacity: 0;
animation: reveal_img .9s cubic-bezier(0.19, 1, 0.22, 1) .3s forwards
}

@keyframes reveal_img {
to {
opacity: 1
}
}

.lnch .title_visual img {
width: 100%;
height: auto;
display: block;
border-radius: 4px;
box-shadow: -1px 7px 25px 0 #221b181c
}

.lnch .relation_frame {
padding: 64px 32px;
background: #ECEEF2;
position: relative
}

.lnch .relation_grid {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 64px;
align-items: start
}

.lnch .relation_main {
display: flex;
flex-direction: column;
gap: 32px
}

.lnch .relation_hd {
font-size: 62px;
line-height: 1.2;
margin: 0;
padding-bottom: 16px;
border-bottom: 2px solid #221B18;
letter-spacing: -.01em
}

.lnch .relation_txt {
font-size: 18px;
line-height: 1.6;
margin: 0
}

.lnch .relation_txt+.relation_txt {
margin-top: 16px
}

.lnch .relation_aside {
display: flex;
flex-direction: column;
gap: 24px;
position: sticky;
top: 32px
}

.lnch .relation_label {
font-size: 16px;
line-height: 1.6;
padding: 16px;
background: #FFF;
border-radius: 4px;
box-shadow: -1px 3px 6px 0 #f11c8014;
color: #221B18;
margin: 0
}

.lnch .relation_label.accent {
background: linear-gradient(167deg, #221B18 0%, #F11C80 48%, #ECEEF2 100%);
color: #FFF
}

.lnch .commitment_zone {
padding: 64px 32px;
background: #FFF
}

.lnch .commitment_layout {
display: grid;
grid-template-columns: 1fr;
gap: 64px
}

.lnch .commitment_hd {
font-size: 62px;
line-height: 1.2;
text-align: center;
margin: 0;
letter-spacing: -.01em
}

.lnch .commitment_blocks {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px
}

.lnch .commitment_card {
position: relative;
overflow: hidden;
border-radius: 4px;
box-shadow: -1px 7px 25px 0 #221b181c;
cursor: pointer;
transition: transform .12s ease-out
}

.lnch .commitment_card:hover {
transform: translateY(-4px)
}

.lnch .commitment_card img {
width: 100%;
height: 320px;
object-fit: cover;
display: block;
transition: filter .15s ease-out
}

.lnch .commitment_card:hover img {
filter: grayscale(100%)
}

.lnch .commitment_caption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 24px;
background: #221b18eb;
color: #FFF;
font-size: 18px;
line-height: 1.6;
margin: 0;
transform: translateY(100%);
transition: transform .14s ease-out
}

.lnch .commitment_card:hover .commitment_caption {
transform: translateY(0)
}

.lnch .pattern_section {
padding: 64px 32px;
background: #221B18;
color: #FFF;
position: relative
}

.lnch .pattern_section::before,
.lnch .pattern_section::after {
content: '';
position: absolute;
left: 32px;
right: 32px;
height: 1px;
background: #F11C80
}

.lnch .pattern_section::before {
top: 0
}

.lnch .pattern_section::after {
bottom: 0
}

.lnch .pattern_container {
display: flex;
flex-direction: column;
gap: 64px
}

.lnch .pattern_hd {
font-size: 62px;
line-height: 1.2;
margin: 0;
text-align: center;
letter-spacing: -.01em
}

.lnch .pattern_voices {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px
}

.lnch .pattern_voice {
background: #eceef214;
padding: 32px;
border-radius: 4px;
display: flex;
flex-direction: column;
gap: 16px;
position: relative;
overflow: hidden
}

.lnch .pattern_voice::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 4px;
height: 100%;
background: #F11C80
}

.lnch .pattern_quote {
font-size: 18px;
line-height: 1.6;
color: #ECEEF2;
margin: 0;
padding-left: 16px
}

.lnch .pattern_author {
font-size: 16px;
line-height: 1.6;
color: #F11C80;
margin: 0;
padding-left: 16px
}

.lnch .pattern_list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 16px;
max-width: 800px;
margin-left: auto;
margin-right: auto
}

.lnch .pattern_list li {
font-size: 18px;
line-height: 1.6;
color: #ECEEF2;
padding-left: 32px;
position: relative
}

.lnch .pattern_list li::before {
content: '';
position: absolute;
left: 0;
top: 12px;
width: 8px;
height: 8px;
border-radius: 40px;
background: #F11C80
}

.lnch .problem_area {
padding: 64px 32px;
background: #FFF
}

.lnch .problem_split {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: center
}

.lnch .problem_visual {
position: relative;
overflow: hidden;
border-radius: 4px;
box-shadow: -1px 8px 48px 0 #f11c801f
}

.lnch .problem_visual img {
width: 100%;
height: 480px;
object-fit: cover;
display: block;
transition: filter .13s ease-out
}

.lnch .problem_visual:hover img {
filter: grayscale(100%)
}

.lnch .problem_text {
display: flex;
flex-direction: column;
gap: 32px
}

.lnch .problem_hd {
font-size: 62px;
line-height: 1.2;
margin: 0;
letter-spacing: -.01em;
padding-bottom: 16px;
border-bottom: 2px solid #F11C80
}

.lnch .problem_para {
font-size: 18px;
line-height: 1.6;
margin: 0;
color: #221B18
}

.lnch .problem_para+.problem_para {
margin-top: 16px
}

.lnch .problem_metrics {
display: flex;
flex-direction: column;
gap: 16px;
margin-top: 24px
}

.lnch .problem_metric {
display: flex;
align-items: baseline;
gap: 16px;
padding: 16px;
background: #ECEEF2;
border-radius: 4px;
position: relative;
overflow: hidden
}

.lnch .problem_metric::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 0;
background: linear-gradient(167deg, #221B18 0%, #F11C80 48%, #ECEEF2 100%);
transition: width .8s cubic-bezier(0.19, 1, 0.22, 1)
}

.lnch .problem_metric.active::before {
width: 4px
}

.lnch .problem_num {
font-size: 62px;
line-height: 1.2;
font-weight: 700;
color: #F11C80;
margin: 0;
position: relative;
z-index: 1
}

.lnch .problem_label {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0;
position: relative;
z-index: 1
}

@media (max-width: 768px) {
.lnch .title_hero {
padding: 32px 16px 24px
}

.lnch .title_main {
font-size: 48px
}

.lnch .title_desc {
font-size: 18px
}

.lnch .title_visual {
max-width: 100%
}

.lnch .relation_grid {
grid-template-columns: 1fr;
gap: 32px
}

.lnch .relation_hd,
.lnch .commitment_hd,
.lnch .pattern_hd,
.lnch .problem_hd {
font-size: 48px
}

.lnch .relation_aside {
position: static
}

.lnch .commitment_blocks {
grid-template-columns: 1fr
}

.lnch .pattern_voices {
grid-template-columns: 1fr
}

.lnch .problem_split {
grid-template-columns: 1fr;
gap: 32px
}

.lnch .problem_visual img {
height: 320px
}
}

.lnch .interactive_expand {
margin-top: 32px
}

.lnch .expand_trigger {
background: #F11C80;
color: #FFF;
border: none;
padding: 16px 32px;
font-size: 18px;
line-height: 1.6;
border-radius: 4px;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 16px;
transition: transform .11s ease-out, box-shadow .11s ease-out;
box-shadow: -1px 3px 6px 0 #f11c8014
}

.lnch .expand_trigger:hover {
transform: translateX(8px);
box-shadow: -1px 7px 25px 0 #f11c801c
}

.lnch .expand_trigger::after {
content: '';
width: 0;
height: 0;
border-left: 6px solid #FFF;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
transition: transform .12s ease-out
}

.lnch .expand_trigger:hover::after {
transform: translateX(4px)
}

.lnch .expand_content {
max-height: 0;
overflow: hidden;
transition: max-height .5s cubic-bezier(0.19, 1, 0.22, 1), opacity .4s ease-out;
opacity: 0
}

.lnch .expand_content.open {
max-height: 2000px;
opacity: 1;
margin-top: 32px
}

.lnch .expand_inner {
padding: 32px;
background: #eceef280;
border-radius: 4px;
border-left: 4px solid #F11C80
}

.lnch .expand_text {
font-size: 18px;
line-height: 1.6;
color: #221B18;
margin: 0
}

.lnch .expand_text+.expand_text {
margin-top: 16px
}

.abt_us {
max-width: 1200px;
margin: 0 auto;
background: #fff
}

.abt_us::selection {
background: #F11C80;
color: #fff
}

.abt_us .intro_lead {
position: relative;
padding: 64px 24px;
background: linear-gradient(127deg, #ECEEF2 0%, #fff 48%, #ECEEF2 100%);
overflow: hidden
}

.abt_us .intro_lead::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: repeating-linear-gradient(90deg, #F11C80 0px, #F11C80 8px, transparent 8px, transparent 16px)
}

.abt_us .intro_lead::after {
content: '';
position: absolute;
bottom: -32px;
left: 0;
right: 0;
height: 64px;
background: #fff;
border-radius: 50% 50% 0 0 / 100% 100% 0 0
}

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

.abt_us .intro_frame {
border: 1px solid #221b181f;
border-radius: 4px;
padding: 32px;
background: #fff;
box-shadow: -1px 7px 25px 0 #221b181c
}

.abt_us .intro_visual {
position: relative;
width: 100%;
height: 420px;
margin-bottom: 32px;
border-radius: 4px;
overflow: hidden;
box-shadow: -1px 8px 48px 0 #f11c801f
}

.abt_us .intro_visual::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 60%;
background: linear-gradient(90deg, transparent 0%, #221b18b8 100%);
z-index: 1;
pointer-events: none
}

.abt_us .intro_visual img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: filter .12s ease-out
}

.abt_us .intro_visual:hover img {
filter: grayscale(100%)
}

.abt_us .intro_txt {
text-align: center
}

.abt_us .intro_hd {
font-size: 62px;
line-height: 1.2;
letter-spacing: -.02em;
color: #221B18;
margin: 0 0 24px
}

.abt_us .intro_desc {
font-size: 24px;
line-height: 1.6;
color: #221B18;
margin: 0;
opacity: .82
}

.abt_us .story_grid {
padding: 96px 24px 64px;
background: #221B18;
position: relative;
overflow: hidden;
animation: temp_shift 18s ease-in-out infinite
}

@keyframes temp_shift {

0%,
100% {
background: #221B18
}

50% {
background: #2a221f
}
}

.abt_us .story_grid::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: repeating-linear-gradient(90deg, #F11C80 0px, #F11C80 6px, transparent 6px, transparent 12px)
}

.abt_us .story_grid::after {
content: '';
position: absolute;
top: 16px;
left: 50%;
transform: translateX(-50%);
width: 64px;
height: 4px;
display: flex;
gap: 8px;
background: radial-gradient(circle, #F11C80 2px, transparent 2px) 0 0, radial-gradient(circle, #F11C80 2px, transparent 2px) 16px 0, radial-gradient(circle, #F11C80 2px, transparent 2px) 32px 0, radial-gradient(circle, #F11C80 2px, transparent 2px) 48px 0;
background-size: 8px 8px;
background-repeat: no-repeat
}

.abt_us .story_inner {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
align-items: start
}

.abt_us .story_col {
background: #fff;
border-radius: 4px;
padding: 32px;
box-shadow: -1px 7px 25px 0 #f11c801c;
position: relative
}

.abt_us .story_col:focus-within {
outline: 3px solid #F11C80;
outline-offset: 4px
}

.abt_us .story_img_wrap {
width: 100%;
height: 340px;
border-radius: 4px;
overflow: hidden;
margin-bottom: 24px;
box-shadow: -1px 8px 48px 0 #221b181f
}

.abt_us .story_img_wrap img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: filter .1s linear
}

.abt_us .story_img_wrap:hover img {
filter: grayscale(100%)
}

.abt_us .story_hd {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 16px;
padding-bottom: 16px;
border-bottom: 2px solid #ECEEF2;
text-align: center
}

.abt_us .story_txt {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0 0 16px
}

.abt_us .story_txt:last-child {
margin-bottom: 0
}

.abt_us .team_sec {
padding: 64px 24px;
background: #ECEEF2;
position: relative
}

.abt_us .team_sec::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, #221B18 0%, #F11C80 50%, #221B18 100%)
}

.abt_us .team_inner {
max-width: 1200px;
margin: 0 auto
}

.abt_us .team_hd {
font-size: 72px;
line-height: 1.2;
letter-spacing: -.02em;
color: #221B18;
margin: 0 0 48px;
text-align: left
}

.abt_us .team_list {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
list-style: none;
margin: 0;
padding: 0
}

.abt_us .team_card {
background: #fff;
border-radius: 40px;
padding: 32px;
box-shadow: -1px 8px 48px 0 #221b181f;
transition: transform .08s ease-out;
position: relative
}

.abt_us .team_card:hover {
transform: translateY(-4px)
}

.abt_us .team_card:focus-within {
outline: 3px solid #F11C80;
outline-offset: 4px
}

.abt_us .team_avatar {
width: 120px;
height: 120px;
border-radius: 40px;
overflow: hidden;
margin: 0 auto 24px;
box-shadow: -1px 7px 25px 0 #f11c801c
}

.abt_us .team_avatar img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: filter .15s ease-out
}

.abt_us .team_card:hover .team_avatar img {
filter: grayscale(100%)
}

.abt_us .team_name {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 8px;
text-align: center
}

.abt_us .team_role {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0;
text-align: center;
opacity: .68
}

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

.abt_us .values_sec::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: repeating-linear-gradient(90deg, #ECEEF2 0px, #ECEEF2 12px, transparent 12px, transparent 24px)
}

.abt_us .values_inner {
max-width: 1200px;
margin: 0 auto
}

.abt_us .values_hd {
font-size: 62px;
line-height: 1.2;
letter-spacing: -.02em;
color: #221B18;
margin: 0 0 48px;
text-align: center
}

.abt_us .values_grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 32px
}

.abt_us .value_item {
background: linear-gradient(135deg, #ECEEF2 0%, #fff 100%);
border-radius: 4px;
padding: 32px;
box-shadow: -1px 3px 6px 0 #221b1814;
position: relative;
transition: box-shadow .1s linear
}

.abt_us .value_item:hover {
box-shadow: -1px 8px 48px 0 #f11c801f
}

.abt_us .value_item::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 4px;
height: 100%;
background: linear-gradient(180deg, #221B18 0%, #F11C80 100%);
border-radius: 4px 0 0 4px
}

.abt_us .value_num {
font-size: 72px;
line-height: 1;
color: #F11C80;
margin: 0 0 16px;
font-weight: 700;
opacity: .24
}

.abt_us .value_title {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 16px;
padding-bottom: 8px;
border-bottom: 1px solid #ECEEF2
}

.abt_us .value_desc {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0
}

.abt_us .milestone_sec {
padding: 64px 24px;
background: linear-gradient(168deg, #fff 0%, #ECEEF2 52%, #fff 100%);
position: relative;
overflow: hidden
}

.abt_us .milestone_sec::before {
content: '';
position: absolute;
top: -32px;
left: 0;
right: 0;
height: 64px;
background: #fff;
border-radius: 0 0 50% 50% / 0 0 100% 100%
}

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

.abt_us .milestone_hd {
font-size: 62px;
line-height: 1.2;
letter-spacing: -.02em;
color: #221B18;
margin: 0 0 48px;
text-align: center
}

.abt_us .timeline {
position: relative;
padding-left: 64px
}

.abt_us .timeline::before {
content: '';
position: absolute;
left: 24px;
top: 0;
bottom: 0;
width: 2px;
background: linear-gradient(180deg, #221B18 0%, #F11C80 50%, #221B18 100%)
}

.abt_us .timeline_item {
position: relative;
margin-bottom: 48px;
padding-left: 32px
}

.abt_us .timeline_item:last-child {
margin-bottom: 0
}

.abt_us .timeline_item::before {
content: '';
position: absolute;
left: -48px;
top: 8px;
width: 16px;
height: 16px;
background: #F11C80;
border: 3px solid #fff;
border-radius: 40px;
box-shadow: -1px 3px 6px 0 #f11c8014
}

.abt_us .timeline_year {
font-size: 18px;
line-height: 1.2;
color: #F11C80;
margin: 0 0 8px;
font-weight: 700
}

.abt_us .timeline_event {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0
}

@media (max-width: 768px) {
.abt_us .intro_lead {
padding: 32px 16px
}

.abt_us .intro_frame {
padding: 24px
}

.abt_us .intro_visual {
height: 280px
}

.abt_us .intro_hd {
font-size: 42px
}

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

.abt_us .story_grid {
padding: 64px 16px 32px
}

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

.abt_us .story_col {
padding: 24px
}

.abt_us .story_img_wrap {
height: 240px
}

.abt_us .team_sec {
padding: 32px 16px
}

.abt_us .team_hd {
font-size: 42px;
margin-bottom: 32px
}

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

.abt_us .values_sec {
padding: 32px 16px
}

.abt_us .values_hd {
font-size: 42px;
margin-bottom: 32px
}

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

.abt_us .milestone_sec {
padding: 32px 16px
}

.abt_us .milestone_hd {
font-size: 42px;
margin-bottom: 32px
}

.abt_us .timeline {
padding-left: 48px
}

.abt_us .timeline_item {
padding-left: 24px
}
}

.cntct_pg {
background: #ECEEF2;
min-height: 100vh;
padding: 64px 0
}

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

.cntct_pg ::selection {
background: #F11C80;
color: #fff
}

.cntct_pg .pg_container {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px
}

.cntct_pg .intro_sect {
background: #fff;
border-radius: 40px;
padding: 64px;
margin-bottom: 32px;
position: relative;
overflow: hidden;
box-shadow: -1px 8px 48px 0 #221b181f;
display: flex;
flex-direction: row;
align-items: center;
gap: 64px
}

.cntct_pg .intro_sect::before,
.cntct_pg .intro_sect::after {
content: '';
position: absolute;
border-radius: 50%;
opacity: .04;
pointer-events: none;
z-index: 1
}

.cntct_pg .intro_sect::before {
width: 420px;
height: 420px;
background: #F11C80;
top: -180px;
left: -120px
}

.cntct_pg .intro_sect::after {
width: 320px;
height: 320px;
background: #221B18;
bottom: -100px;
left: 80px
}

.cntct_pg .intro_txt {
flex: 1;
position: relative;
z-index: 2
}

.cntct_pg .intro_txt h1 {
font-size: 62px;
line-height: 1.2;
color: #221B18;
margin: 0 0 24px;
letter-spacing: -.02em;
animation: intro_scale .9s cubic-bezier(0.19, 1, 0.22, 1) forwards;
transform-origin: left center
}

@keyframes intro_scale {
from {
opacity: 0;
transform: scale(0.95)
}

to {
opacity: 1;
transform: scale(1)
}
}

.cntct_pg .intro_txt p {
font-size: 18px;
line-height: 1.6;
color: #221B18;
margin: 0 0 32px;
max-width: 520px
}

.cntct_pg .intro_link {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 16px;
color: #F11C80;
text-decoration: none;
font-weight: 600;
position: relative;
overflow: hidden;
transition: gap .12s ease-out
}

.cntct_pg .intro_link:hover {
gap: 16px
}

.cntct_pg .intro_link svg {
width: 18px;
height: 18px;
fill: currentColor;
transition: transform .1s linear
}

.cntct_pg .intro_link:hover svg {
transform: translateX(4px)
}

.cntct_pg .intro_img_wrap {
flex: 0 0 480px;
position: relative;
z-index: 2;
height: 420px;
border-radius: 4px;
overflow: hidden;
box-shadow: -1px 7px 25px 0 #221b181c
}

.cntct_pg .intro_img_wrap img {
width: 100%;
height: 100%;
object-fit: cover;
filter: saturate(0.7);
transition: filter .15s ease-out, transform 6s cubic-bezier(0.19, 1, 0.22, 1);
transform-origin: center center
}

.cntct_pg .intro_img_wrap:hover img {
filter: saturate(0);
transform: scale(1.08) translateX(-24px)
}

.cntct_pg .form_sect {
background: linear-gradient(127deg, #F11C80 0%, #ECEEF2 100%);
border-radius: 40px;
padding: 64px;
margin-bottom: 32px;
position: relative;
overflow: hidden;
box-shadow: -1px 7px 25px 0 #f11c801c
}

.cntct_pg .form_sect::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 6px;
background: repeating-linear-gradient(90deg, #221B18 0px, #221B18 2px, transparent 2px, transparent 8px);
opacity: .15;
pointer-events: none
}

.cntct_pg .form_inner {
background: #fff;
border-radius: 4px;
padding: 64px;
max-width: 840px;
margin: 0 auto;
box-shadow: -1px 8px 48px 0 #221b181f;
animation: form_scale 1.1s cubic-bezier(0.19, 1, 0.22, 1) forwards
}

@keyframes form_scale {
from {
opacity: 0;
transform: scale(0.95)
}

to {
opacity: 1;
transform: scale(1)
}
}

.cntct_pg .form_inner h2 {
font-size: 72px;
line-height: 1.2;
color: #221B18;
margin: 0 0 16px;
text-align: center;
letter-spacing: -.02em
}

.cntct_pg .form_inner .form_subtitle {
font-size: 18px;
line-height: 1.6;
color: #221B18;
margin: 0 0 64px;
text-align: left
}

.cntct_pg .contact_form {
display: flex;
flex-direction: column;
gap: 32px
}

.cntct_pg .form_row {
display: flex;
flex-direction: row;
gap: 24px
}

.cntct_pg .form_field {
flex: 1;
position: relative
}

.cntct_pg .form_field.full {
flex: 1 1 100%
}

.cntct_pg .form_field label {
position: absolute;
top: 18px;
left: 16px;
font-size: 16px;
color: #221B18;
opacity: .5;
pointer-events: none;
transition: top .12s ease-out, font-size .12s ease-out, opacity .12s ease-out
}

.cntct_pg .form_field input:focus+label,
.cntct_pg .form_field input:not(:placeholder-shown)+label,
.cntct_pg .form_field select:focus+label,
.cntct_pg .form_field select:not([value=""])+label {
top: -10px;
font-size: 16px;
opacity: 1;
background: #fff;
padding: 0 4px
}

.cntct_pg .form_field input,
.cntct_pg .form_field select {
width: 100%;
padding: 16px;
border: 2px solid #ECEEF2;
border-radius: 4px;
font-size: 16px;
color: #221B18;
background: #fff;
transition: border-color .1s linear;
appearance: none
}

.cntct_pg .form_field input::placeholder {
color: transparent
}

.cntct_pg .form_field input:focus,
.cntct_pg .form_field select:focus {
outline: none;
border-color: #F11C80
}

.cntct_pg .form_field select {
cursor: pointer;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23221B18' d='M8 11L3 6h10z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 16px center;
padding-right: 48px
}

.cntct_pg .form_field select option[value=""] {
color: #221B18;
opacity: .5
}

.cntct_pg .timeline_select {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 16px;
margin-bottom: 32px
}

.cntct_pg .timeline_opt {
position: relative
}

.cntct_pg .timeline_opt input[type="radio"] {
position: absolute;
opacity: 0;
pointer-events: none
}

.cntct_pg .timeline_opt label {
display: block;
padding: 24px 16px;
border: 2px solid #ECEEF2;
border-radius: 4px;
text-align: center;
font-size: 16px;
color: #221B18;
cursor: pointer;
transition: border-color .08s ease-out, background .08s ease-out, transform .08s ease-out;
background: #fff
}

.cntct_pg .timeline_opt label:hover {
border-color: #F11C80;
transform: translateY(-2px)
}

.cntct_pg .timeline_opt input[type="radio"]:checked+label {
border-color: #F11C80;
background: #F11C80;
color: #fff
}

.cntct_pg .timeline_opt .opt_label {
display: block;
font-weight: 600;
margin-bottom: 4px
}

.cntct_pg .timeline_opt .opt_detail {
display: block;
font-size: 16px;
opacity: .7
}

.cntct_pg .privacy_check {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
margin-bottom: 32px
}

.cntct_pg .privacy_check input[type="checkbox"] {
flex-shrink: 0;
width: 24px;
height: 24px;
margin-top: 2px;
cursor: pointer;
accent-color: #F11C80
}

.cntct_pg .privacy_check label {
font-size: 16px;
line-height: 1.6;
color: #221B18;
cursor: pointer
}

.cntct_pg .privacy_check a {
color: #F11C80;
text-decoration: underline;
transition: opacity .1s linear
}

.cntct_pg .privacy_check a:hover {
opacity: .7
}

.cntct_pg .submit_btn {
padding: 24px 64px;
background: #221B18;
color: #fff;
border: none;
border-radius: 4px;
font-size: 18px;
font-weight: 600;
cursor: pointer;
transition: background .12s ease-out, transform .08s ease-out;
box-shadow: -1px 7px 25px 0 #221b181c;
align-self: flex-start
}

.cntct_pg .submit_btn:hover {
background: #F11C80;
transform: translateY(-2px)
}

.cntct_pg .submit_btn:active {
transform: translateY(0)
}

.cntct_pg .info_sect {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
position: relative
}

.cntct_pg .info_sect::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 4px;
height: 100%;
background: linear-gradient(180deg, #F11C80 0%, #221B18 100%);
border-radius: 4px
}

.cntct_pg .info_card {
background: #fff;
border-radius: 40px;
padding: 64px;
box-shadow: -1px 8px 48px 0 #221b181f;
position: relative;
animation: card_scale 1.3s cubic-bezier(0.19, 1, 0.22, 1) forwards
}

@keyframes card_scale {
from {
opacity: 0;
transform: scale(0.95)
}

to {
opacity: 1;
transform: scale(1)
}
}

.cntct_pg .info_card h3 {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 32px;
padding-bottom: 16px;
border-bottom: 2px solid #ECEEF2;
text-align: center
}

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

.cntct_pg .contact_list li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
font-size: 16px;
line-height: 1.6;
color: #221B18
}

.cntct_pg .contact_list .icon_wrap {
flex-shrink: 0;
width: 40px;
height: 40px;
border-radius: 4px;
background: linear-gradient(135deg, #F11C80 0%, #221B18 100%);
display: flex;
align-items: center;
justify-content: center;
transition: transform .15s ease-out
}

.cntct_pg .contact_list li:hover .icon_wrap {
transform: rotate(8deg) scale(1.1)
}

.cntct_pg .contact_list .icon_wrap svg {
width: 20px;
height: 20px;
fill: #fff
}

.cntct_pg .contact_list .contact_content {
flex: 1
}

.cntct_pg .contact_list .contact_label {
display: block;
font-weight: 600;
margin-bottom: 4px;
color: #221B18
}

.cntct_pg .contact_list a {
color: #F11C80;
text-decoration: none;
transition: opacity .1s linear
}

.cntct_pg .contact_list a:hover {
opacity: .7;
text-decoration: underline
}

.cntct_pg .timeline_card {
background: #fff;
border-radius: 40px;
padding: 64px;
box-shadow: -1px 8px 48px 0 #221b181f;
position: relative;
animation: card_scale 1.5s cubic-bezier(0.19, 1, 0.22, 1) forwards
}

.cntct_pg .timeline_card h3 {
font-size: 24px;
line-height: 1.2;
color: #221B18;
margin: 0 0 32px;
padding-bottom: 16px;
border-bottom: 2px solid #ECEEF2;
text-align: center
}

.cntct_pg .timeline_list {
position: relative;
padding-left: 48px
}

.cntct_pg .timeline_list::before {
content: '';
position: absolute;
left: 16px;
top: 8px;
bottom: 8px;
width: 2px;
background: #ECEEF2
}

.cntct_pg .timeline_item {
position: relative;
margin-bottom: 32px
}

.cntct_pg .timeline_item:last-child {
margin-bottom: 0
}

.cntct_pg .timeline_item::before {
content: '';
position: absolute;
left: -40px;
top: 4px;
width: 12px;
height: 12px;
border-radius: 50%;
background: #F11C80;
border: 2px solid #fff;
box-shadow: 0 0 0 2px #ECEEF2;
transition: transform .12s ease-out
}

.cntct_pg .timeline_item:hover::before {
transform: scale(1.4)
}

.cntct_pg .timeline_item.complete::before {
background: #221B18
}

.cntct_pg .timeline_step {
font-size: 16px;
font-weight: 600;
color: #221B18;
margin: 0 0 4px
}

.cntct_pg .timeline_desc {
font-size: 16px;
line-height: 1.6;
color: #221B18;
margin: 0;
opacity: .7
}

@media (max-width: 1024px) {
.cntct_pg .intro_sect {
flex-direction: column;
padding: 48px
}

.cntct_pg .intro_img_wrap {
flex: 0 0 auto;
width: 100%;
height: 360px
}

.cntct_pg .intro_txt h1 {
font-size: 72px
}

.cntct_pg .form_sect {
padding: 48px
}

.cntct_pg .form_inner {
padding: 48px
}

.cntct_pg .timeline_select {
grid-template-columns: repeat(2, 1fr)
}

.cntct_pg .info_sect {
grid-template-columns: 1fr
}

.cntct_pg .info_sect::before {
display: none
}
}

@media (max-width: 768px) {
.cntct_pg {
padding: 32px 0
}

.cntct_pg .pg_container {
padding: 0 16px
}

.cntct_pg .intro_sect {
padding: 32px;
gap: 32px
}

.cntct_pg .intro_txt h1 {
font-size: 62px
}

.cntct_pg .intro_img_wrap {
height: 280px
}

.cntct_pg .form_sect {
padding: 32px
}

.cntct_pg .form_inner {
padding: 32px
}

.cntct_pg .form_inner h2 {
font-size: 62px
}

.cntct_pg .form_row {
flex-direction: column;
gap: 32px
}

.cntct_pg .timeline_select {
grid-template-columns: 1fr
}

.cntct_pg .info_card {
padding: 32px
}

.cntct_pg .timeline_card {
padding: 32px
}

.cntct_pg .submit_btn {
width: 100%
}
}

.success_page {
min-height: 100vh;
background: linear-gradient(147deg, #ECEEF2 0%, #fff 48%, #ECEEF2 100%);
display: flex;
align-items: center;
justify-content: center;
padding: 64px 16px
}

.success_page .success_container {
max-width: 600px;
width: 100%;
background: #fff;
border-radius: 4px;
padding: 64px 32px;
text-align: center;
box-shadow: -1px 7px 25px 0 #221b181c
}

.success_page .icon_wrapper {
width: 120px;
height: 120px;
margin: 0 auto 32px;
position: relative
}

.success_page .icon_circle {
width: 120px;
height: 120px;
border-radius: 40px;
background: linear-gradient(147deg, #F11C80 0%, #221B18 100%);
display: flex;
align-items: center;
justify-content: center;
animation: success_pulse .6s ease-out
}

@keyframes success_pulse {
0% {
transform: scale(0.4);
opacity: 0
}

50% {
transform: scale(1.08)
}

100% {
transform: scale(1);
opacity: 1
}
}

.success_page .icon_check {
width: 56px;
height: 56px;
border: 4px solid #fff;
border-left: none;
border-top: none;
transform: rotate(45deg);
margin-bottom: 16px;
animation: check_draw .4s .3s ease-out backwards
}

@keyframes check_draw {
0% {
width: 0;
height: 0
}

50% {
width: 56px;
height: 0
}

100% {
width: 56px;
height: 56px
}
}

.success_page .success_title {
font-size: 62px;
line-height: 1.2;
color: #221B18;
margin: 0 0 24px;
letter-spacing: -.02em
}

.success_page .success_message {
font-size: 18px;
line-height: 1.6;
color: #221B18;
margin: 0 0 32px;
opacity: .8
}

.success_page .info_block {
background: #ECEEF2;
border-radius: 4px;
padding: 24px;
margin: 0 0 32px;
text-align: left
}

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

.success_page .info_row:last-child {
margin-bottom: 0
}

.success_page .info_label {
font-size: 16px;
line-height: 1.6;
color: #221B18;
opacity: .6;
min-width: 140px
}

.success_page .info_value {
font-size: 16px;
line-height: 1.6;
color: #221B18;
font-weight: 600
}

.success_page .action_group {
display: flex;
flex-direction: column;
gap: 16px;
align-items: center
}

.success_page .btn_primary {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 16px 32px;
background: #221B18;
color: #fff;
font-size: 18px;
line-height: 1.6;
border: none;
border-radius: 4px;
cursor: pointer;
text-decoration: none;
transition: transform .12s ease-out, box-shadow .12s ease-out;
position: relative;
overflow: hidden
}

.success_page .btn_primary:hover {
transform: translateY(-2px);
box-shadow: -1px 8px 48px 0 #221b181f
}

.success_page .btn_primary:active {
transform: translateY(0)
}

.success_page .btn_secondary {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 16px 32px;
background: transparent;
color: #F11C80;
font-size: 18px;
line-height: 1.6;
border: 2px solid #F11C80;
border-radius: 4px;
cursor: pointer;
text-decoration: none;
transition: background .1s ease-out, color .1s ease-out
}

.success_page .btn_secondary:hover {
background: #F11C80;
color: #fff
}

.success_page .reference_number {
font-size: 16px;
line-height: 1.6;
color: #221B18;
opacity: .5;
margin: 32px 0 0
}

@media (max-width: 768px) {
.success_page {
padding: 32px 16px
}

.success_page .success_container {
padding: 32px 24px
}

.success_page .icon_wrapper {
width: 96px;
height: 96px;
margin-bottom: 24px
}

.success_page .icon_circle {
width: 96px;
height: 96px
}

.success_page .icon_check {
width: 44px;
height: 44px;
margin-bottom: 12px
}

@keyframes check_draw {
0% {
width: 0;
height: 0
}

50% {
width: 44px;
height: 0
}

100% {
width: 44px;
height: 44px
}
}

.success_page .success_title {
font-size: 42px
}

.success_page .info_row {
flex-direction: column;
gap: 4px
}

.success_page .info_label {
min-width: auto
}
}