*::before,
*::after {
content: none;
box-sizing: inherit;
}

body {
font-family: 'Lora', Georgia, serif;
background-color: #F2EAEF;
}

.hd-shell {
padding: 16px 32px 0 32px;
background-color: #F2EAEF;
}

.hd-plate {
max-width: 1140px;
margin: 0 auto;
background: linear-gradient(160deg, #ffffff 60%, #F2EAEF 100%);
border-radius: 20px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
border: 1px solid #D3AFBF;
overflow: hidden;
padding: 32px 32px 0 32px;
}

.hd-brand-pod {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding-bottom: 16px;
}

.hd-logo-cell {
width: 48px;
height: 48px;
border-radius: 50%;
border: 1px solid #3a1a38;
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07), 0 0 0 3px rgba(211, 175, 191, 0.3);
background-color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.hd-logo-cell img {
width: 36px;
height: 36px;
object-fit: contain;
display: block;
}

.hd-name {
font-family: 'Lora', Georgia, serif;
font-size: 26px;
font-weight: 700;
line-height: 1.2;
color: #2a0a28;
letter-spacing: 0;
text-align: center;
}

.hd-tagline {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
font-weight: 400;
line-height: 1.8;
color: #6a2a65;
text-align: center;
display: flex;
align-items: center;
gap: 8px;
}

.hd-tagline i {
color: #BC46B2;
font-size: 15px;
}

.hd-divider {
width: 100%;
height: 1px;
background: linear-gradient(90deg, transparent, #D3AFBF 30%, #BC46B2 50%, #D3AFBF 70%, transparent);
margin: 0;
}

.hd-nav-deck {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0;
flex-wrap: wrap;
gap: 0;
}

.hd-nav-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0;
}

.hd-nav-list li {
position: relative;
}

.hd-nav-list li a {
display: flex;
align-items: center;
gap: 8px;
font-family: 'Lora', Georgia, serif;
font-size: 15px;
font-weight: 400;
line-height: 1.2;
color: #2a0a28;
text-decoration: none;
padding: 16px 16px;
border-bottom: 3px solid transparent;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1);
white-space: nowrap;
}

.hd-nav-list li a i {
font-size: 14px;
color: #BC46B2;
flex-shrink: 0;
}

.hd-nav-list li a:hover {
color: #BC46B2;
border-bottom-color: #BC46B2;
}

.hd-nav-list li a:focus {
outline: none;
color: #F2EAEF;
background-color: #2a0a28;
border-bottom-color: #BC46B2;
}

.hd-region-cell {
display: flex;
align-items: center;
gap: 8px;
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #6a2a65;
line-height: 1.2;
padding: 16px 0 16px 16px;
border-left: 1px solid #D3AFBF;
flex-shrink: 0;
}

.hd-region-cell i {
color: #BC46B2;
font-size: 15px;
}

@media (max-width: 768px) {
.hd-shell {
padding: 8px 8px 0 8px;
}

.hd-plate {
padding: 16px 16px 0 16px;
border-radius: 12px;
}

.hd-name {
font-size: 20px;
}

.hd-nav-list li a {
padding: 16px 8px;
font-size: 15px;
}

.hd-region-cell {
display: none;
}

.hd-nav-deck {
justify-content: center;
}
}

@media (max-width: 1280px) and (min-width: 769px) {
.hd-nav-list li a {
padding: 16px 12px;
}
}

.ft-shell {
padding: 64px 32px 32px 32px;
background-color: #F2EAEF;
}

.ft-plate {
max-width: 1140px;
margin: 0 auto;
background: linear-gradient(135deg, #ffffff 0%, #F2EAEF 100%);
border-radius: 20px;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11), inset 1px 1px 3px 0 rgba(211, 175, 191, 0.25);
border: 1px solid #D3AFBF;
padding: 64px 64px 32px 64px;
position: relative;
}

.ft-plate::before {
content: "";
position: absolute;
top: 0;
left: 64px;
right: 64px;
height: 3px;
background: linear-gradient(90deg, transparent, #BC46B2 40%, #D3AFBF 100%);
border-radius: 0 0 4px 4px;
}

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

.ft-brand-col {
display: flex;
flex-direction: column;
gap: 16px;
}

.ft-logo-cell {
width: 40px;
height: 40px;
border-radius: 50%;
border: 1px solid #3a1a38;
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07), 0 0 0 2px rgba(211, 175, 191, 0.25);
background-color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.ft-logo-cell img {
width: 30px;
height: 30px;
object-fit: contain;
display: block;
}

.ft-brand-name {
font-family: 'Lora', Georgia, serif;
font-size: 20px;
font-weight: 700;
line-height: 1.2;
color: #2a0a28;
}

.ft-brand-desc {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
font-weight: 400;
line-height: 1.8;
color: #4a2048;
}

.ft-founded {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #6a2a65;
line-height: 1.2;
display: flex;
align-items: center;
gap: 8px;
}

.ft-founded i {
color: #BC46B2;
}

.ft-contact-col {
display: flex;
flex-direction: column;
gap: 16px;
}

.ft-col-label {
font-family: 'Lora', Georgia, serif;
font-size: 17px;
font-weight: 700;
line-height: 1.2;
color: #2a0a28;
text-transform: uppercase;
letter-spacing: 0.08em;
padding-bottom: 8px;
border-bottom: 2px solid #D3AFBF;
}

.ft-contact-item {
display: flex;
align-items: flex-start;
gap: 8px;
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.8;
color: #4a2048;
text-decoration: none;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ft-contact-item i {
color: #BC46B2;
font-size: 15px;
margin-top: 4px;
flex-shrink: 0;
}

a.ft-contact-item:hover {
color: #BC46B2;
}

a.ft-contact-item:focus {
outline: none;
color: #F2EAEF;
background-color: #2a0a28;
border-radius: 4px;
padding: 2px 4px;
}

.ft-links-col {
display: flex;
flex-direction: column;
gap: 16px;
}

.ft-link-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 8px;
}

.ft-link-list li a {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.8;
color: #4a2048;
text-decoration: none;
display: flex;
align-items: center;
gap: 8px;
padding: 4px 0;
border-bottom: 1px solid transparent;
transition: color 0.18s cubic-bezier(0.0, 0, 0.2, 1), border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.ft-link-list li a i {
color: #BC46B2;
font-size: 13px;
}

.ft-link-list li a:hover {
color: #BC46B2;
border-bottom-color: #D3AFBF;
}

.ft-link-list li a:focus {
outline: none;
color: #F2EAEF;
background-color: #2a0a28;
border-radius: 4px;
padding: 2px 8px;
}

.ft-bottom-bar {
margin-top: 64px;
padding-top: 16px;
border-top: 1px solid #D3AFBF;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 8px;
}

.ft-copy {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #6a2a65;
line-height: 1.2;
}

.ft-copy span {
color: #BC46B2;
font-weight: 700;
}

.ft-social-deck {
display: flex;
align-items: center;
gap: 8px;
}

.ft-social-link {
width: 36px;
height: 36px;
border-radius: 6px;
background-color: #F2EAEF;
border: 1px solid #D3AFBF;
display: flex;
align-items: center;
justify-content: center;
color: #BC46B2;
text-decoration: none;
font-size: 15px;
transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
}

.ft-social-link:hover {
background-color: #BC46B2;
color: #ffffff;
}

.ft-social-link:focus {
outline: none;
background-color: #2a0a28;
color: #F2EAEF;
}

@media (max-width: 768px) {
.ft-shell {
padding: 32px 8px 16px 8px;
}

.ft-plate {
padding: 32px 16px 16px 16px;
border-radius: 12px;
}

.ft-plate::before {
left: 16px;
right: 16px;
}

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

.ft-bottom-bar {
flex-direction: column;
align-items: flex-start;
gap: 16px;
margin-top: 32px;
}
}

@media (max-width: 1280px) and (min-width: 769px) {
.ft-plate {
padding: 64px 32px 32px 32px;
}

.ft-plate::before {
left: 32px;
right: 32px;
}

.ft-grid {
gap: 32px;
}
}

.ck-pod {
position: fixed;
top: 16px;
right: 16px;
z-index: 1000;
width: 340px;
background: #ffffff;
border-radius: 12px;
border: 1px solid #D3AFBF;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11), 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
padding: 32px;
display: none;
}

.ck-icon-row {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
}

.ck-icon-row i {
font-size: 26px;
color: #BC46B2;
}

.ck-body-text {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.8;
color: #2a0a28;
margin-bottom: 16px;
text-align: center;
}

.ck-required-row {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 16px;
padding: 8px 16px;
background-color: #F2EAEF;
border-radius: 6px;
}

.ck-required-row span {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #4a2048;
line-height: 1.2;
flex: 1;
}

.ck-required-badge {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #6a2a65;
font-style: italic;
}

.ck-sale-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
margin-bottom: 16px;
padding: 8px 16px;
background-color: #F2EAEF;
border-radius: 6px;
}

.ck-sale-label {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #4a2048;
line-height: 1.2;
}

.ck-toggle {
position: relative;
width: 40px;
height: 22px;
flex-shrink: 0;
}

.ck-toggle input {
opacity: 0;
width: 0;
height: 0;
position: absolute;
}

.ck-toggle-track {
position: absolute;
inset: 0;
background-color: #D3AFBF;
border-radius: 20px;
cursor: pointer;
transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ck-toggle input:checked+.ck-toggle-track {
background-color: #BC46B2;
}

.ck-toggle-track::after {
content: "";
position: absolute;
width: 16px;
height: 16px;
border-radius: 50%;
background: #ffffff;
top: 3px;
left: 3px;
transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
}

.ck-toggle input:checked+.ck-toggle-track::after {
transform: translateX(18px);
}

.ck-toggle input:focus+.ck-toggle-track {
outline: 2px solid #2a0a28;
outline-offset: 2px;
}

.ck-btn-row {
display: flex;
align-items: center;
justify-content: center;
gap: 16px;
}

.ck-accept {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #BC46B2;
text-decoration: underline;
background: none;
border: none;
cursor: pointer;
line-height: 1.2;
padding: 8px 0;
transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.ck-accept:hover {
color: #2a0a28;
}

.ck-accept:focus {
outline: none;
color: #F2EAEF;
background-color: #2a0a28;
border-radius: 4px;
padding: 8px 8px;
}

.ck-decline {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
color: #6a2a65;
text-decoration: underline;
background: none;
border: none;
cursor: pointer;
line-height: 1.2;
padding: 8px 0;
transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.ck-decline:hover {
color: #2a0a28;
}

.ck-decline:focus {
outline: none;
color: #F2EAEF;
background-color: #2a0a28;
border-radius: 4px;
padding: 8px 8px;
}

.policy-r-layout {
max-width: 1140px;
margin: 0 auto;
padding: 64px 32px;
}

.policy-r-layout p {
font-size: 17px;
line-height: 1.8;
color: #2d2d2d;
margin-bottom: 16px;
}

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

.policy-r-layout ul {
list-style-type: disc;
}

.policy-r-layout ol {
list-style-type: decimal;
}

.policy-r-layout li {
font-size: 17px;
line-height: 1.8;
color: #2d2d2d;
margin-bottom: 8px;
padding-left: 8px;
}

.policy-r-layout li::marker {
color: #BC46B2;
}

.policy-r-layout strong,
.policy-r-layout b {
font-weight: 700;
color: #1e1e1e;
}

.policy-r-layout a {
color: #BC46B2;
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-thickness: 1px;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), text-decoration-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.policy-r-layout a:hover {
color: #8e2e86;
text-decoration-color: #D3AFBF;
}

.policy-r-layout a:visited {
color: #9b3a94;
}

.policy-r-layout table {
width: 100%;
border-collapse: collapse;
margin: 32px 0;
font-size: 15px;
line-height: 1.8;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
border-radius: 6px;
overflow: hidden;
}

.policy-r-layout thead {
background-color: #F2EAEF;
}

.policy-r-layout thead tr {
border-bottom: 2px solid #D3AFBF;
}

.policy-r-layout tbody tr {
border-bottom: 1px solid #F2EAEF;
transition: background-color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.policy-r-layout tbody tr:last-child {
border-bottom: none;
}

.policy-r-layout tbody tr:hover {
background-color: #F2EAEF;
}

.policy-r-layout th {
font-size: 15px;
font-weight: 700;
color: #1e1e1e;
text-align: left;
padding: 16px;
letter-spacing: 0.02em;
}

.policy-r-layout td {
font-size: 15px;
color: #2d2d2d;
padding: 16px;
vertical-align: top;
line-height: 1.8;
}

.policy-r-layout hr {
border: none;
border-top: 1px solid #D3AFBF;
margin: 64px 0;
opacity: 0.6;
}

.policy-r-layout div {
margin-bottom: 16px;
}

@media (max-width: 768px) {
.policy-r-layout {
padding: 32px 16px;
}

.policy-r-layout p {
font-size: 15px;
}

.policy-r-layout li {
font-size: 15px;
}

.policy-r-layout ul,
.policy-r-layout ol {
padding-left: 16px;
}

.policy-r-layout table {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border-radius: 4px;
}

.policy-r-layout th,
.policy-r-layout td {
padding: 8px 16px;
white-space: nowrap;
}

.policy-r-layout hr {
margin: 32px 0;
}
}

@media (min-width: 1280px) {
.policy-r-layout {
padding: 96px 32px;
}

.policy-r-layout p {
font-size: 17px;
}
}

.srv_pg {
background: #fff;
overflow-x: clip;
position: relative;
}

.srv_pg .drift_spot {
position: fixed;
width: 320px;
height: 320px;
border-radius: 50%;
background: radial-gradient(circle, rgba(188, 70, 178, 0.09) 0%, transparent 70%);
pointer-events: none;
animation: spot_move 18s cubic-bezier(0.4, 0, 0.2, 1) infinite alternate;
z-index: 0;
top: 0;
left: -80px;
}

@keyframes spot_move {
0% {
transform: translate(0, 0);
}

33% {
transform: translate(60px, 180px);
}

66% {
transform: translate(20px, 400px);
}

100% {
transform: translate(80px, 700px);
}
}

.srv_pg .pg_top {
max-width: 1140px;
margin: 0 auto;
padding: 96px 32px 64px;
display: grid;
grid-template-columns: 260px 1fr;
gap: 64px;
align-items: start;
position: relative;
z-index: 1;
}

.srv_pg .img_col {
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
}

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

.srv_pg .img_col .scan_overlay {
position: absolute;
inset: 0;
background: repeating-linear-gradient(0deg,
transparent,
transparent 3px,
rgba(188, 70, 178, 0.06) 3px,
rgba(188, 70, 178, 0.06) 4px);
border-radius: 12px;
pointer-events: none;
}

.srv_pg .img_col .color_tint {
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.18), transparent 70%);
border-radius: 12px;
pointer-events: none;
}

.srv_pg .atm_spot {
position: absolute;
border-radius: 50%;
pointer-events: none;
filter: blur(48px);
}

.srv_pg .atm_spot.a1 {
width: 180px;
height: 180px;
background: rgba(188, 70, 178, 0.13);
top: -40px;
right: 40px;
}

.srv_pg .atm_spot.a2 {
width: 120px;
height: 120px;
background: rgba(211, 175, 191, 0.18);
bottom: 0;
left: 60px;
}

.srv_pg .txt_col {
padding-top: 16px;
}

.srv_pg .txt_col .eyebrow {
font-size: 15px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
display: block;
}

.srv_pg .txt_col h1 {
font-size: 50px;
line-height: 1.2;
font-weight: 700;
color: #1e1425;
margin-bottom: 32px;
}

.srv_pg .txt_col h1 .hl_word {
background: rgba(188, 70, 178, 0.13);
border-radius: 4px;
padding: 0 6px;
display: inline;
}

.srv_pg .txt_col .lead_p {
font-size: 17px;
line-height: 1.8;
color: #3a2840;
margin-bottom: 16px;
max-width: 560px;
}

.srv_pg .txt_col .deco_line {
width: 64px;
height: 3px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
border-radius: 2px;
margin-top: 32px;
margin-bottom: 32px;
}

.srv_pg .tag_row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 8px;
margin-top: 8px;
}

.srv_pg .tag_item {
font-size: 15px;
color: #3a2840;
background: #F2EAEF;
border-radius: 6px;
padding: 8px 16px;
font-weight: 500;
border: 1px solid rgba(188, 70, 178, 0.15);
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s cubic-bezier(0.0, 0, 0.2, 1);
}

.srv_pg .tag_item:hover {
background: rgba(188, 70, 178, 0.12);
color: #BC46B2;
}

.srv_pg .wave_div {
width: 100%;
line-height: 0;
overflow: hidden;
position: relative;
z-index: 1;
}

.srv_pg .wave_div svg {
display: block;
width: 100%;
}

.srv_pg .cards_band {
background: linear-gradient(180deg, #F2EAEF 0%, #fff 100%);
position: relative;
z-index: 1;
padding: 64px 0 96px;
}

.srv_pg .cards_band .inner {
max-width: 1140px;
margin: 0 auto;
padding: 0 32px;
}

.srv_pg .cards_band .band_top {
display: flex;
flex-direction: row;
align-items: flex-end;
justify-content: space-between;
gap: 32px;
margin-bottom: 64px;
}

.srv_pg .cards_band .band_top h2 {
font-size: 36px;
line-height: 1.2;
font-weight: 700;
color: #1e1425;
max-width: 480px;
}

.srv_pg .cards_band .band_top h2 span {
display: block;
}

.srv_pg .band_desc {
font-size: 17px;
line-height: 1.8;
color: #3a2840;
max-width: 340px;
}

.srv_pg .frame_deco {
position: absolute;
pointer-events: none;
border: 1px solid rgba(188, 70, 178, 0.18);
border-radius: 12px;
}

.srv_pg .frame_deco.fd1 {
top: 32px;
left: 16px;
right: 16px;
bottom: 32px;
}

.srv_pg .cards_grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 32px;
align-items: start;
}

.srv_pg .svc_card {
background: #fff;
border-radius: 12px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
padding: 32px;
position: relative;
overflow: hidden;
transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
flex-direction: column;
gap: 16px;
}

.srv_pg .svc_card::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.09), rgba(211, 175, 191, 0.12));
transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: 0 0 12px 12px;
pointer-events: none;
}

.srv_pg .svc_card:hover::after {
height: 100%;
}

.srv_pg .svc_card:hover {
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.srv_pg .svc_card.mid_card {
padding-top: 48px;
padding-bottom: 48px;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.srv_pg .card_icon {
width: 44px;
height: 44px;
border-radius: 12px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.srv_pg .card_icon i {
color: #fff;
font-size: 20px;
}

.srv_pg .svc_card h3 {
font-size: 20px;
line-height: 1.2;
font-weight: 700;
color: #1e1425;
}

.srv_pg .svc_card h3 span {
display: block;
}

.srv_pg .svc_card .card_body {
font-size: 15px;
line-height: 1.8;
color: #3a2840;
}

.srv_pg .svc_card .badge_row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 8px;
margin-top: 8px;
}

.srv_pg .svc_card .bdg {
font-size: 15px;
background: #F2EAEF;
color: #BC46B2;
border-radius: 6px;
padding: 4px 8px;
font-weight: 600;
border: 1px solid rgba(188, 70, 178, 0.18);
}

.srv_pg .svc_card .counter_row {
display: flex;
flex-direction: row;
gap: 16px;
margin-top: 8px;
}

.srv_pg .svc_card .ctr {
display: flex;
flex-direction: column;
gap: 4px;
}

.srv_pg .svc_card .ctr_num {
font-size: 26px;
font-weight: 700;
color: #BC46B2;
line-height: 1.2;
}

.srv_pg .svc_card .ctr_lbl {
font-size: 15px;
color: #7a5f80;
line-height: 1.2;
}

.srv_pg .skills_block {
margin-top: 16px;
display: flex;
flex-direction: column;
gap: 8px;
}

.srv_pg .skill_row {
display: flex;
flex-direction: column;
gap: 4px;
}

.srv_pg .skill_lbl {
display: flex;
flex-direction: row;
justify-content: space-between;
font-size: 15px;
color: #3a2840;
font-weight: 500;
}

.srv_pg .skill_bar {
height: 6px;
background: #F2EAEF;
border-radius: 4px;
overflow: hidden;
}

.srv_pg .skill_fill {
height: 100%;
border-radius: 4px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
animation: bar_fill 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes bar_fill {
from {
width: 0;
}
}

.srv_pg .svc_card .img_wrap {
border-radius: 8px;
overflow: hidden;
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
}

.srv_pg .svc_card .img_wrap img {
width: 100%;
height: 160px;
object-fit: cover;
display: block;
border-radius: 8px;
transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv_pg .svc_card .img_wrap img:hover {
opacity: 0.88;
}

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

.srv_pg .checklist li {
font-size: 15px;
line-height: 1.8;
color: #3a2840;
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 8px;
}

.srv_pg .checklist li .chk {
width: 18px;
height: 18px;
min-width: 18px;
border-radius: 4px;
border: 2px solid #BC46B2;
display: flex;
align-items: center;
justify-content: center;
margin-top: 3px;
background: rgba(188, 70, 178, 0.07);
}

.srv_pg .checklist li .chk::after {
content: '';
display: block;
width: 6px;
height: 10px;
border-right: 2px solid #BC46B2;
border-bottom: 2px solid #BC46B2;
transform: rotate(45deg) translate(-1px, -1px);
}

.srv_pg .center_deco {
display: flex;
flex-direction: row;
align-items: center;
gap: 16px;
margin: 64px 0 0;
}

.srv_pg .center_deco .deco_seg {
flex: 1;
height: 1px;
background: linear-gradient(247deg, transparent, rgba(188, 70, 178, 0.25));
}

.srv_pg .center_deco .deco_seg.rev {
background: linear-gradient(67deg, transparent, rgba(188, 70, 178, 0.25));
}

.srv_pg .center_deco .deco_gem {
width: 12px;
height: 12px;
border-radius: 2px;
background: #BC46B2;
transform: rotate(45deg);
}

.srv_pg .cta_strip {
max-width: 1140px;
margin: 64px auto 0;
padding: 0 32px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 32px;
}

.srv_pg .cta_strip .cta_txt h4 {
font-size: 26px;
font-weight: 700;
color: #1e1425;
line-height: 1.2;
margin-bottom: 8px;
}

.srv_pg .cta_strip .cta_txt p {
font-size: 17px;
color: #3a2840;
line-height: 1.8;
}

.srv_pg .btn_fill {
display: inline-block;
font-size: 17px;
font-weight: 600;
color: #fff;
background: #BC46B2;
border-radius: 6px;
padding: 16px 32px;
text-decoration: none;
border: none;
cursor: pointer;
position: relative;
overflow: hidden;
transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
white-space: nowrap;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
}

.srv_pg .btn_fill::before {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 0;
background: rgba(255, 255, 255, 0.15);
transition: height 0.22s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
}

.srv_pg .btn_fill:hover::before {
height: 100%;
}

.srv_pg .btn_fill:focus {
outline: 3px solid #BC46B2;
outline-offset: 3px;
}

@media (max-width: 1280px) {
.srv_pg .pg_top {
grid-template-columns: 220px 1fr;
gap: 32px;
padding: 64px 32px 48px;
}

.srv_pg .txt_col h1 {
font-size: 36px;
}

.srv_pg .cards_grid {
gap: 16px;
}
}

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

.srv_pg .img_col img {
height: 220px;
}

.srv_pg .txt_col h1 {
font-size: 36px;
}

.srv_pg .atm_spot {
display: none;
}

.srv_pg .cards_band .band_top {
flex-direction: column;
align-items: flex-start;
gap: 16px;
}

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

.srv_pg .svc_card.mid_card {
padding-top: 32px;
padding-bottom: 32px;
}

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

.srv_pg .cards_band .inner {
padding: 0 16px;
}

.srv_pg .frame_deco {
display: none;
}
}

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

.opn .pg_wrap {
max-width: 1140px;
margin: 0 auto;
padding: 0 32px;
}

.opn .pg_wrap_sm {
max-width: 1140px;
margin: 0 auto;
padding: 0 32px;
}

.opn .ttl_blk {
position: relative;
padding: 96px 0 64px;
background-color: #F2EAEF;
}

.opn .ttl_blk_grid {
display: grid;
grid-template-columns: 1fr;
position: relative;
z-index: 1;
}

.opn .ttl_grid_lines {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden;
}

.opn .ttl_grid_lines::before {
content: "";
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(188, 70, 178, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(188, 70, 178, 0.04) 1px, transparent 1px);
background-size: 48px 48px;
}

.opn .ttl_eyebrow {
display: inline-block;
font-size: 15px;
font-weight: 600;
line-height: 1.2;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
}

.opn .ttl_h1 {
font-size: 68px;
font-weight: 800;
line-height: 1.2;
color: #1e1432;
margin: 0 0 32px;
max-width: 780px;
}

.opn .ttl_h1 .acc_word {
display: inline-block;
position: relative;
color: #BC46B2;
}

.opn .ttl_h1 .acc_word::after {
content: "";
position: absolute;
left: -4px;
right: -4px;
bottom: 4px;
height: 10px;
background: rgba(188, 70, 178, 0.13);
z-index: -1;
border-radius: 2px;
}

.opn .ttl_deco_lines {
position: absolute;
bottom: 32px;
right: 64px;
display: flex;
flex-direction: column;
gap: 8px;
pointer-events: none;
}

.opn .ttl_deco_lines span {
display: block;
height: 1px;
background: rgba(188, 70, 178, 0.22);
}

.opn .ttl_deco_lines span:nth-child(1) {
width: 80px;
}

.opn .ttl_deco_lines span:nth-child(2) {
width: 56px;
}

.opn .ttl_deco_lines span:nth-child(3) {
width: 38px;
}

.opn .ttl_deco_lines span:nth-child(4) {
width: 22px;
}

.opn .div_curve_1 {
display: block;
width: 100%;
overflow: hidden;
line-height: 0;
background: #F2EAEF;
}

.opn .div_curve_1 svg {
display: block;
width: 100%;
}

.opn .ctx_sec {
padding: 96px 0 64px;
background: #fff;
}

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

.opn .ctx_img_wrap {
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.opn .ctx_img_wrap img {
width: 100%;
height: 440px;
object-fit: cover;
display: block;
border-radius: 12px;
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.opn .ctx_img_wrap:hover img {
transform: scale(1.03);
}

.opn .ctx_img_overlay {
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.18), rgba(255, 255, 255, 0));
border-radius: 12px;
pointer-events: none;
transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.opn .ctx_img_wrap:hover .ctx_img_pattern {
opacity: 1;
}

.opn .ctx_img_pattern {
position: absolute;
inset: 0;
opacity: 0;
background-image:
linear-gradient(rgba(188, 70, 178, 0.12) 1px, transparent 1px),
linear-gradient(90deg, rgba(188, 70, 178, 0.12) 1px, transparent 1px);
background-size: 28px 28px;
border-radius: 12px;
pointer-events: none;
transition: opacity 0.22s cubic-bezier(0.0, 0, 0.2, 1);
}

.opn .ctx_text h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #1e1432;
margin: 0 0 32px;
}

.opn .ctx_text h2 span {
display: block;
}

.opn .ctx_para {
font-size: 17px;
line-height: 1.8;
color: #3a2f4a;
margin: 0 0 16px;
}

.opn .ctx_stat_row {
display: flex;
flex-direction: row;
gap: 32px;
margin-top: 32px;
}

.opn .ctx_stat {
display: flex;
flex-direction: column;
gap: 8px;
}

.opn .ctx_stat_num {
font-size: 36px;
font-weight: 800;
line-height: 1.2;
color: #BC46B2;
}

.opn .ctx_stat_lbl {
font-size: 15px;
line-height: 1.2;
color: #5a4a6a;
}

.opn .div_curve_2 {
display: block;
width: 100%;
overflow: hidden;
line-height: 0;
background: #fff;
}

.opn .div_curve_2 svg {
display: block;
width: 100%;
}

.opn .diff_sec {
padding: 64px 0 96px;
position: relative;
overflow: hidden;
}

.opn .diff_sec_bg {
position: absolute;
inset: 0;
background: linear-gradient(247deg, #BC46B2 0%, #F2EAEF 60%);
z-index: 0;
}

.opn .diff_sec_bg::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(160deg, transparent 55%, #fff 55%);
pointer-events: none;
}

.opn .diff_inner {
position: relative;
z-index: 1;
}

.opn .diff_head {
max-width: 560px;
margin-bottom: 64px;
}

.opn .diff_head h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #fff;
margin: 0 0 16px;
}

.opn .diff_head p {
font-size: 17px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.88);
margin: 0;
}

.opn .diff_cards {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
}

.opn .diff_card {
background: #fff;
border-radius: 12px;
padding: 32px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
position: relative;
}

.opn .diff_card::before {
content: "";
position: absolute;
top: 8px;
left: 8px;
right: -8px;
bottom: -8px;
border: 2px solid rgba(188, 70, 178, 0.22);
border-radius: 12px;
z-index: -1;
}

.opn .diff_card_icon {
width: 40px;
height: 40px;
border-radius: 6px;
background: #F2EAEF;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
}

.opn .diff_card_icon i {
font-size: 20px;
color: #BC46B2;
}

.opn .diff_card h3 {
font-size: 20px;
font-weight: 700;
line-height: 1.2;
color: #1e1432;
margin: 0 0 16px;
}

.opn .diff_card p {
font-size: 15px;
line-height: 1.8;
color: #3a2f4a;
margin: 0;
}

.opn .div_curve_3 {
display: block;
width: 100%;
overflow: hidden;
line-height: 0;
background: #fff;
}

.opn .div_curve_3 svg {
display: block;
width: 100%;
}

.opn .obj_sec {
padding: 96px 0;
background: #fff;
}

.opn .obj_layout {
display: grid;
grid-template-columns: 5fr 4fr;
gap: 64px;
align-items: start;
}

.opn .obj_main h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #1e1432;
margin: 0 0 32px;
}

.opn .obj_main h2 span {
display: block;
}

.opn .obj_para {
font-size: 17px;
line-height: 1.8;
color: #3a2f4a;
margin: 0 0 16px;
}

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

.opn .obj_checklist li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
font-size: 15px;
line-height: 1.8;
color: #3a2f4a;
}

.opn .obj_check_box {
flex-shrink: 0;
width: 20px;
height: 20px;
border-radius: 4px;
background: #BC46B2;
display: flex;
align-items: center;
justify-content: center;
margin-top: 2px;
}

.opn .obj_check_box::after {
content: "";
display: block;
width: 10px;
height: 6px;
border-left: 2px solid #fff;
border-bottom: 2px solid #fff;
transform: rotate(-45deg) translateY(-1px);
}

.opn .obj_aside {
background: #F2EAEF;
border-radius: 12px;
padding: 32px;
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
}

.opn .obj_aside_label {
font-size: 15px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
display: block;
}

.opn .obj_aside p {
font-size: 15px;
line-height: 1.8;
color: #3a2f4a;
margin: 0 0 16px;
}

.opn .obj_aside p:last-child {
margin-bottom: 0;
}

.opn .div_curve_4 {
display: block;
width: 100%;
overflow: hidden;
line-height: 0;
background: #fff;
}

.opn .div_curve_4 svg {
display: block;
width: 100%;
}

.opn .sit_sec {
padding: 96px 0;
background: #F2EAEF;
}

.opn .sit_head {
text-align: center;
max-width: 640px;
margin: 0 auto 64px;
}

.opn .sit_head h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #1e1432;
margin: 0 0 16px;
}

.opn .sit_head p {
font-size: 17px;
line-height: 1.8;
color: #3a2f4a;
margin: 0;
}

.opn .sit_stepped {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 32px;
align-items: end;
}

.opn .sit_item {
background: #fff;
border-radius: 12px;
padding: 32px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
position: relative;
}

.opn .sit_item:nth-child(1) {
padding-top: 48px;
}

.opn .sit_item:nth-child(2) {
padding-top: 64px;
}

.opn .sit_item:nth-child(3) {
padding-top: 32px;
}

.opn .sit_num {
font-size: 50px;
font-weight: 900;
line-height: 1.2;
color: rgba(188, 70, 178, 0.12);
position: absolute;
top: 16px;
right: 16px;
}

.opn .sit_item h3 {
font-size: 20px;
font-weight: 700;
line-height: 1.2;
color: #1e1432;
margin: 0 0 16px;
}

.opn .sit_item h3 span {
display: block;
}

.opn .sit_item p {
font-size: 15px;
line-height: 1.8;
color: #3a2f4a;
margin: 0;
}

.opn .sit_img_wrap {
position: relative;
border-radius: 12px;
overflow: hidden;
margin-top: 64px;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.opn .sit_img_wrap img {
width: 100%;
height: 320px;
object-fit: cover;
display: block;
border-radius: 12px;
}

.opn .sit_img_wrap:hover .sit_img_pattern {
opacity: 1;
}

.opn .sit_img_pattern {
position: absolute;
inset: 0;
opacity: 0;
background-image:
linear-gradient(rgba(188, 70, 178, 0.14) 1px, transparent 1px),
linear-gradient(90deg, rgba(188, 70, 178, 0.14) 1px, transparent 1px);
background-size: 32px 32px;
pointer-events: none;
transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.opn .sit_img_overlay {
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.28), rgba(242, 234, 239, 0.1));
pointer-events: none;
}

.opn .div_curve_5 {
display: block;
width: 100%;
overflow: hidden;
line-height: 0;
background: #F2EAEF;
}

.opn .div_curve_5 svg {
display: block;
width: 100%;
}

.opn .wrel_sec {
padding: 96px 0;
background: #1e1432;
}

.opn .wrel_grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: start;
}

.opn .wrel_text h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #fff;
margin: 0 0 32px;
}

.opn .wrel_text h2 span {
display: block;
}

.opn .wrel_para {
font-size: 17px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.78);
margin: 0 0 16px;
}

.opn .wrel_steps {
display: flex;
flex-direction: column;
gap: 16px;
margin-top: 32px;
}

.opn .wrel_step {
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start;
}

.opn .wrel_step_num {
flex-shrink: 0;
width: 32px;
height: 32px;
border-radius: 6px;
background: rgba(188, 70, 178, 0.32);
border: 1px solid rgba(188, 70, 178, 0.5);
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-weight: 700;
color: #D3AFBF;
line-height: 1.2;
}

.opn .wrel_step_body h4 {
font-size: 17px;
font-weight: 700;
line-height: 1.2;
color: #fff;
margin: 0 0 8px;
}

.opn .wrel_step_body p {
font-size: 15px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.68);
margin: 0;
}

.opn .wrel_img_col {
display: flex;
flex-direction: column;
gap: 32px;
}

.opn .wrel_img_wrap {
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.opn .wrel_img_wrap img {
width: 100%;
height: 360px;
object-fit: cover;
display: block;
border-radius: 12px;
}

.opn .wrel_img_wrap:hover .wrel_img_pattern {
opacity: 1;
}

.opn .wrel_img_pattern {
position: absolute;
inset: 0;
opacity: 0;
background-image:
linear-gradient(rgba(188, 70, 178, 0.18) 1px, transparent 1px),
linear-gradient(90deg, rgba(188, 70, 178, 0.18) 1px, transparent 1px);
background-size: 28px 28px;
pointer-events: none;
transition: opacity 0.18s cubic-bezier(0.0, 0, 0.2, 1);
}

.opn .wrel_img_overlay {
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.35), rgba(30, 20, 50, 0.2));
pointer-events: none;
}

.opn .wrel_note {
background: rgba(188, 70, 178, 0.12);
border-radius: 6px;
padding: 16px;
font-size: 15px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.78);
}

.opn .div_curve_6 {
display: block;
width: 100%;
overflow: hidden;
line-height: 0;
background: #1e1432;
}

.opn .div_curve_6 svg {
display: block;
width: 100%;
}

.opn .patt_sec {
padding: 96px 0;
background: #fff;
}

.opn .patt_head {
max-width: 580px;
margin-bottom: 64px;
}

.opn .patt_head h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #1e1432;
margin: 0 0 16px;
}

.opn .patt_head p {
font-size: 17px;
line-height: 1.8;
color: #3a2f4a;
margin: 0;
}

.opn .patt_grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
}

.opn .patt_entry {
background: #F2EAEF;
border-radius: 12px;
padding: 32px;
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
position: relative;
}

.opn .patt_entry::before {
content: "";
position: absolute;
top: 10px;
left: 10px;
right: -10px;
bottom: -10px;
background: rgba(188, 70, 178, 0.08);
border-radius: 12px;
z-index: -1;
}

.opn .patt_quote_mark {
width: 32px;
height: 24px;
margin-bottom: 16px;
}

.opn .patt_quote_mark svg {
width: 100%;
height: 100%;
}

.opn .patt_entry blockquote {
margin: 0 0 16px;
padding: 0;
}

.opn .patt_entry blockquote p {
font-size: 17px;
line-height: 1.8;
color: #1e1432;
margin: 0;
font-style: italic;
}

.opn .patt_attr {
display: flex;
flex-direction: row;
align-items: center;
gap: 16px;
margin-top: 16px;
}

.opn .patt_avatar {
width: 40px;
height: 40px;
border-radius: 20px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.opn .patt_avatar_init {
font-size: 15px;
font-weight: 700;
color: #fff;
line-height: 1.2;
}

.opn .patt_attr_text strong {
display: block;
font-size: 15px;
font-weight: 700;
color: #1e1432;
line-height: 1.2;
}

.opn .patt_attr_text span {
font-size: 15px;
color: #5a4a6a;
line-height: 1.8;
}

.opn .patt_deco_lines {
position: absolute;
top: 32px;
right: 32px;
display: flex;
flex-direction: column;
gap: 8px;
pointer-events: none;
}

.opn .patt_deco_lines span {
display: block;
height: 1px;
background: rgba(188, 70, 178, 0.2);
}

.opn .patt_deco_lines span:nth-child(1) {
width: 48px;
}

.opn .patt_deco_lines span:nth-child(2) {
width: 32px;
}

.opn .patt_deco_lines span:nth-child(3) {
width: 18px;
}

@keyframes attn_shake {

0%,
90%,
100% {
transform: translateX(0);
}

92% {
transform: translateX(-4px);
}

94% {
transform: translateX(4px);
}

96% {
transform: translateX(-3px);
}

98% {
transform: translateX(3px);
}
}

.opn .shake_el {
animation: attn_shake 6s cubic-bezier(0.4, 0, 0.2, 1) 2.5s infinite;
display: inline-block;
}

@media (max-width: 1280px) {
.opn .ttl_h1 {
font-size: 50px;
}

.opn .ctx_grid {
gap: 32px;
}

.opn .diff_cards {
gap: 16px;
}
}

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

.opn .pg_wrap_sm {
padding: 0 16px;
}

.opn .ttl_blk {
padding: 64px 0 48px;
}

.opn .ttl_h1 {
font-size: 36px;
}

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

.opn .ctx_img_wrap img {
height: 280px;
}

.opn .ctx_stat_row {
gap: 16px;
}

.opn .diff_sec {
padding: 48px 0 64px;
}

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

.opn .diff_head h2 {
font-size: 26px;
}

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

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

.opn .sit_item:nth-child(1),
.opn .sit_item:nth-child(2),
.opn .sit_item:nth-child(3) {
padding-top: 32px;
}

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

.opn .wrel_img_wrap img {
height: 240px;
}

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

.opn .ctx_text h2,
.opn .obj_main h2,
.opn .sit_head h2,
.opn .wrel_text h2,
.opn .patt_head h2 {
font-size: 26px;
}
}

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

.ptns .db_row {
max-width: 1140px;
margin-left: auto;
margin-right: auto;
padding-left: 32px;
padding-right: 32px;
}

.ptns .vis_sep {
width: 100%;
line-height: 0;
overflow: hidden;
}

.ptns .vis_sep svg {
display: block;
width: 100%;
}

.ptns .tb {
position: relative;
background: linear-gradient(247deg, #BC46B2 0%, #fff 72%);
padding: 96px 32px 64px;
}

.ptns .tb_geo {
position: absolute;
top: 0;
right: 0;
width: 220px;
height: 220px;
pointer-events: none;
overflow: hidden;
}

.ptns .tb_geo svg {
width: 100%;
height: 100%;
}

.ptns .tb_geo_bl {
position: absolute;
bottom: 0;
left: 0;
width: 120px;
height: 120px;
pointer-events: none;
overflow: hidden;
}

.ptns .tb_geo_bl svg {
width: 100%;
height: 100%;
}

.ptns .tb_inner {
max-width: 1140px;
margin-left: auto;
margin-right: auto;
display: flex;
flex-direction: row;
align-items: flex-end;
gap: 64px;
}

.ptns .tb_img_col {
flex: 0 0 480px;
position: relative;
}

.ptns .tb_img_wrap {
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
position: relative;
}

.ptns .tb_img_wrap img {
width: 100%;
height: 320px;
object-fit: cover;
display: block;
filter: brightness(1.04) saturate(1.08);
}

.ptns .tb_img_glow {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.18) 0%, rgba(255, 255, 255, 0.0) 60%);
border-radius: 12px;
pointer-events: none;
}

.ptns .tb_txt_col {
flex: 1 1 0;
padding-bottom: 8px;
}

.ptns .tb_eyebrow {
font-size: 15px;
font-weight: 600;
color: #BC46B2;
text-transform: uppercase;
letter-spacing: 0.12em;
margin-bottom: 16px;
display: block;
}

.ptns .tb_h1 {
font-size: 50px;
font-weight: 700;
line-height: 1.2;
color: #1b0d1a;
margin-bottom: 32px;
}

.ptns .tb_h1 .acc_word {
display: inline-block;
background: #D3AFBF;
padding: 0 8px;
border-radius: 4px;
color: #1b0d1a;
}

.ptns .tb_sub {
font-size: 17px;
line-height: 1.8;
color: #3a2038;
max-width: 420px;
}

.ptns .div_curve1 {
background: #fff;
}

.ptns .div_curve1 svg {
display: block;
}

.ptns .pgrid_sec {
background: #F2EAEF;
padding: 96px 32px;
position: relative;
}

.ptns .pgrid_sec_inner {
max-width: 1140px;
margin-left: auto;
margin-right: auto;
}

.ptns .pgrid_hd {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 64px;
margin-bottom: 64px;
}

.ptns .pgrid_hd_left {
flex: 0 0 340px;
}

.ptns .pgrid_h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #1b0d1a;
margin-bottom: 16px;
}

.ptns .pgrid_h2 span {
display: block;
}

.ptns .pgrid_hd_right {
flex: 1 1 0;
padding-top: 8px;
}

.ptns .pgrid_desc {
font-size: 17px;
line-height: 1.8;
color: #3a2038;
margin-bottom: 16px;
}

.ptns .pgrid_list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 8px;
}

.ptns .pgrid_list li {
font-size: 15px;
line-height: 1.8;
color: #3a2038;
padding-left: 28px;
position: relative;
}

.ptns .pgrid_list li::before {
content: '';
position: absolute;
left: 0;
top: 7px;
width: 14px;
height: 14px;
border: 2px solid #BC46B2;
border-radius: 2px;
background: transparent;
}

.ptns .pgrid_list li::after {
content: '';
position: absolute;
left: 3px;
top: 10px;
width: 8px;
height: 5px;
border-left: 2px solid #BC46B2;
border-bottom: 2px solid #BC46B2;
transform: rotate(-45deg);
}

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

.ptns .ptn_card {
background: #fff;
border-radius: 12px;
padding: 32px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
position: relative;
transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1), transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptns .ptn_card:hover {
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
transform: translateY(-4px);
}

.ptns .ptn_card_icon {
width: 48px;
height: 48px;
border-radius: 12px;
background: linear-gradient(247deg, #BC46B2 0%, #D3AFBF 100%);
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin-bottom: 16px;
flex-shrink: 0;
}

.ptns .ptn_card_icon i {
color: #fff;
font-size: 20px;
}

.ptns .ptn_card_name {
font-size: 17px;
font-weight: 700;
color: #1b0d1a;
margin-bottom: 8px;
line-height: 1.2;
}

.ptns .ptn_card_type {
font-size: 15px;
color: #BC46B2;
font-weight: 600;
margin-bottom: 16px;
display: block;
}

.ptns .ptn_card_desc {
font-size: 15px;
line-height: 1.8;
color: #3a2038;
}

.ptns .ptn_card_num {
position: absolute;
top: 32px;
right: 32px;
width: 36px;
height: 36px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}

.ptns .ptn_card_num svg {
position: absolute;
top: 0;
left: 0;
width: 36px;
height: 36px;
}

.ptns .ptn_card_num span {
font-size: 15px;
font-weight: 700;
color: #BC46B2;
position: relative;
z-index: 1;
}

.ptns .div_curve2 {
background: #F2EAEF;
}

.ptns .aff_sec {
background: #fff;
padding: 96px 32px;
position: relative;
}

.ptns .aff_sec_inner {
max-width: 1140px;
margin-left: auto;
margin-right: auto;
}

.ptns .aff_layout {
display: flex;
flex-direction: row;
gap: 64px;
align-items: flex-start;
}

.ptns .aff_txt_col {
flex: 1 1 0;
}

.ptns .aff_h2 {
font-size: 36px;
font-weight: 700;
line-height: 1.2;
color: #1b0d1a;
margin-bottom: 32px;
}

.ptns .aff_h2 span {
display: block;
}

.ptns .aff_h2 .acc_word {
display: inline-block;
background: #D3AFBF;
padding: 0 8px;
border-radius: 4px;
color: #1b0d1a;
}

.ptns .aff_para {
font-size: 17px;
line-height: 1.8;
color: #3a2038;
margin-bottom: 16px;
}

.ptns .aff_metrics {
display: flex;
flex-direction: row;
gap: 32px;
margin-top: 32px;
}

.ptns .aff_metric {
flex: 1 1 0;
background: #F2EAEF;
border-radius: 12px;
padding: 32px 16px;
text-align: center;
}

.ptns .aff_metric_val {
font-size: 36px;
font-weight: 700;
color: #BC46B2;
line-height: 1.2;
display: block;
margin-bottom: 8px;
}

.ptns .aff_metric_lbl {
font-size: 15px;
color: #3a2038;
line-height: 1.8;
}

.ptns .aff_img_col {
flex: 0 0 440px;
position: relative;
}

.ptns .aff_img_wrap {
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.ptns .aff_img_wrap img {
width: 100%;
height: 380px;
object-fit: cover;
display: block;
}

.ptns .aff_quote_anchor {
position: absolute;
bottom: -32px;
left: -32px;
width: 96px;
height: 96px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
pointer-events: none;
}

.ptns .aff_quote_anchor svg {
width: 96px;
height: 96px;
opacity: 0.13;
}

.ptns .aff_tiers {
margin-top: 64px;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 32px;
}

.ptns .aff_tier {
background: #F2EAEF;
border-radius: 12px;
padding: 32px;
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start;
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
transition: box-shadow 0.18s cubic-bezier(0.0, 0, 0.2, 1);
}

.ptns .aff_tier:hover {
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
}

.ptns .aff_tier_icon {
flex-shrink: 0;
width: 44px;
height: 44px;
border-radius: 12px;
background: #BC46B2;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}

.ptns .aff_tier_icon i {
color: #fff;
font-size: 17px;
}

.ptns .aff_tier_body {}

.ptns .aff_tier_name {
font-size: 17px;
font-weight: 700;
color: #1b0d1a;
margin-bottom: 8px;
line-height: 1.2;
}

.ptns .aff_tier_desc {
font-size: 15px;
line-height: 1.8;
color: #3a2038;
}

.ptns .pgrid_sec::before {
content: '';
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(100, 140, 200, 0.07) 1px, transparent 1px),
linear-gradient(90deg, rgba(100, 140, 200, 0.07) 1px, transparent 1px);
background-size: 32px 32px;
pointer-events: none;
border-radius: 0;
}

@keyframes ptns_slide_left {
from {
opacity: 0;
transform: translateX(-40px);
}

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

@keyframes ptns_slide_right {
from {
opacity: 0;
transform: translateX(40px);
}

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

@keyframes ptns_slide_up {
from {
opacity: 0;
transform: translateY(32px);
}

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

.ptns .tb_img_col {
animation: ptns_slide_left 0.28s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.ptns .tb_txt_col {
animation: ptns_slide_right 0.24s cubic-bezier(0.4, 0, 0.2, 1) 0.08s both;
}

.ptns .pgrid_hd_left {
animation: ptns_slide_left 0.26s cubic-bezier(0.0, 0, 0.2, 1) 0.1s both;
}

.ptns .pgrid_hd_right {
animation: ptns_slide_right 0.26s cubic-bezier(0.0, 0, 0.2, 1) 0.15s both;
}

.ptns .ptn_card:nth-child(1) {
animation: ptns_slide_up 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0.18s both;
}

.ptns .ptn_card:nth-child(2) {
animation: ptns_slide_up 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0.24s both;
}

.ptns .ptn_card:nth-child(3) {
animation: ptns_slide_up 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0.30s both;
}

.ptns .ptn_card:nth-child(4) {
animation: ptns_slide_up 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0.20s both;
}

.ptns .ptn_card:nth-child(5) {
animation: ptns_slide_up 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0.26s both;
}

.ptns .ptn_card:nth-child(6) {
animation: ptns_slide_up 0.22s cubic-bezier(0.4, 0, 0.2, 1) 0.32s both;
}

.ptns .aff_txt_col {
animation: ptns_slide_left 0.26s cubic-bezier(0.4, 0, 0.2, 1) 0.12s both;
}

.ptns .aff_img_col {
animation: ptns_slide_right 0.26s cubic-bezier(0.4, 0, 0.2, 1) 0.18s both;
}

@media (max-width: 1280px) {
.ptns .tb_img_col {
flex: 0 0 380px;
}

.ptns .aff_img_col {
flex: 0 0 360px;
}

.ptns .ptn_cards {
grid-template-columns: repeat(3, 1fr);
}
}

@media (max-width: 768px) {
.ptns .tb {
padding: 64px 16px 48px;
}

.ptns .tb_inner {
flex-direction: column;
gap: 32px;
}

.ptns .tb_img_col {
flex: 0 0 auto;
width: 100%;
}

.ptns .tb_img_wrap img {
height: 220px;
}

.ptns .tb_h1 {
font-size: 36px;
}

.ptns .pgrid_sec {
padding: 64px 16px;
}

.ptns .pgrid_hd {
flex-direction: column;
gap: 32px;
}

.ptns .pgrid_hd_left {
flex: 0 0 auto;
}

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

.ptns .aff_sec {
padding: 64px 16px;
}

.ptns .aff_layout {
flex-direction: column;
gap: 32px;
}

.ptns .aff_img_col {
flex: 0 0 auto;
width: 100%;
}

.ptns .aff_img_wrap img {
height: 240px;
}

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

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

.ptns .aff_h2 {
font-size: 26px;
}

.ptns .pgrid_h2 {
font-size: 26px;
}

.ptns .tb_geo {
width: 120px;
height: 120px;
}
}

.innov {
background: #fff;
max-width: 100%;
overflow-x: hidden;
}

.innov .ed_col {
max-width: 1140px;
margin-left: auto;
margin-right: auto;
padding-left: 32px;
padding-right: 32px;
}

.innov .load_reveal {
opacity: 0;
transform: translateY(16px);
animation: innov_rise 0.25s cubic-bezier(0.0, 0, 0.2, 1) forwards;
}

.innov .load_reveal:nth-child(2) {
animation-delay: 0.08s;
}

.innov .load_reveal:nth-child(3) {
animation-delay: 0.16s;
}

.innov .load_reveal:nth-child(4) {
animation-delay: 0.24s;
}

.innov .load_reveal:nth-child(5) {
animation-delay: 0.32s;
}

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

.innov .accent_word {
display: inline;
background: #D3AFBF;
padding: 0 6px 2px 6px;
border-radius: 4px;
color: #2a0a27;
}

.innov .wave_div {
width: 100%;
overflow: hidden;
line-height: 0;
height: 48px;
}

.innov .wave_div svg {
display: block;
width: 100%;
height: 48px;
}

.innov .wave_div_lg {
width: 100%;
overflow: hidden;
line-height: 0;
height: 64px;
}

.innov .wave_div_lg svg {
display: block;
width: 100%;
height: 64px;
}

.innov .title_blk {
padding-top: 96px;
padding-bottom: 96px;
position: relative;
}

.innov .title_blk .ed_col {
display: flex;
flex-direction: row;
align-items: center;
gap: 64px;
}

.innov .title_blk .txt_side {
flex: 0 0 52%;
max-width: 52%;
}

.innov .title_blk .img_side {
flex: 1 1 0;
position: relative;
}

.innov .title_blk .img_side .deco_shape {
position: absolute;
inset: -16px -16px -16px -16px;
border-radius: 20px;
background: linear-gradient(247deg, #BC46B2 0%, #F2EAEF 100%);
z-index: 0;
pointer-events: none;
}

.innov .title_blk .img_frame {
position: relative;
z-index: 1;
border-radius: 12px;
overflow: hidden;
width: 100%;
aspect-ratio: 4/3;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.innov .title_blk .img_frame img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 12px;
filter: saturate(0.88) contrast(1.04);
}

.innov .title_blk .img_frame::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.13) 0%, rgba(243, 234, 239, 0.06) 100%);
border-radius: 12px;
pointer-events: none;
}

.innov .title_blk .grain_overlay {
position: absolute;
inset: 0;
border-radius: 12px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)' opacity='0.09'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 2;
}

.innov .pg_label {
font-size: 15px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
display: block;
}

.innov .title_blk h1 {
font-size: 50px;
line-height: 1.2;
font-weight: 800;
color: #1b0619;
margin: 0 0 32px 0;
}

.innov .title_blk h1 span {
display: block;
}

.innov .title_blk .sub_p {
font-size: 17px;
line-height: 1.8;
color: #3d1a3a;
margin: 0 0 32px 0;
max-width: 440px;
}

.innov .title_blk .cta_row {
display: flex;
flex-direction: row;
gap: 16px;
align-items: center;
flex-wrap: wrap;
}

.innov .btn_primary {
display: inline-block;
background: #BC46B2;
color: #fff !important;
font-size: 15px;
font-weight: 700;
padding: 16px 32px;
border-radius: 6px;
text-decoration: none;
border: none;
cursor: pointer;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.innov .btn_primary:hover {
background: #9e3197;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.innov .btn_primary:focus {
outline: 3px solid #BC46B2;
outline-offset: 3px;
}

.innov .btn_ghost {
display: inline-block;
background: transparent;
color: #BC46B2;
font-size: 15px;
font-weight: 700;
padding: 16px 32px;
border-radius: 6px;
text-decoration: none;
border: 2px solid #BC46B2;
cursor: pointer;
transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.innov .btn_ghost:hover {
background: #F2EAEF;
color: #9e3197;
}

.innov .btn_ghost:focus {
outline: 3px solid #BC46B2;
outline-offset: 3px;
}

.innov .method_blk {
position: relative;
padding-top: 0;
padding-bottom: 0;
}

.innov .diag_bg {
position: relative;
background: linear-gradient(247deg, #BC46B2 0%, #2a0a27 100%);
padding-top: 96px;
padding-bottom: 96px;
clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
}

.innov .diag_bg::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(247deg, rgba(243, 234, 239, 0.07) 0%, rgba(188, 70, 178, 0.04) 100%);
pointer-events: none;
}

.innov .method_blk .head_row {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
margin-bottom: 64px;
}

.innov .method_blk h2 {
font-size: 36px;
line-height: 1.2;
font-weight: 800;
color: #fff;
margin: 0 0 16px 0;
max-width: 680px;
}

.innov .method_blk .head_sub {
font-size: 17px;
line-height: 1.8;
color: #F2EAEF;
max-width: 560px;
margin: 0;
}

.innov .icon_grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
position: relative;
}

.innov .icon_grid::before {
content: "";
position: absolute;
top: 40px;
left: calc(16.66% + 16px);
right: calc(16.66% + 16px);
height: 2px;
background: linear-gradient(90deg, rgba(211, 175, 191, 0.4) 0%, rgba(188, 70, 178, 0.7) 50%, rgba(211, 175, 191, 0.4) 100%);
pointer-events: none;
z-index: 0;
}

.innov .icon_node {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
z-index: 1;
padding: 32px 16px;
background: rgba(255, 255, 255, 0.06);
border-radius: 12px;
border: 1px solid rgba(211, 175, 191, 0.18);
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
cursor: default;
}

.innov .icon_node:hover {
background: rgba(255, 255, 255, 0.12);
transform: translateY(-4px);
}

.innov .icon_node .node_ico {
width: 56px;
height: 56px;
border-radius: 20px;
background: rgba(188, 70, 178, 0.22);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
flex-shrink: 0;
}

.innov .icon_node .node_ico i {
font-size: 26px;
color: #F2EAEF;
}

.innov .icon_node h4 {
font-size: 17px;
font-weight: 700;
color: #fff;
margin: 0 0 8px 0;
line-height: 1.2;
}

.innov .icon_node .node_desc {
font-size: 15px;
line-height: 1.8;
color: #D3AFBF;
margin: 0;
}

.innov .diag_spacer {
height: 64px;
background: #fff;
}

.innov .approach_blk {
padding-top: 96px;
padding-bottom: 96px;
background: #F2EAEF;
}

.innov .approach_blk .ed_col {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: start;
}

.innov .approach_blk .left_col {}

.innov .approach_blk h2 {
font-size: 36px;
line-height: 1.2;
font-weight: 800;
color: #1b0619;
margin: 0 0 16px 0;
}

.innov .approach_blk h2 span {
display: block;
}

.innov .approach_blk .intro_p {
font-size: 17px;
line-height: 1.8;
color: #3d1a3a;
margin: 0 0 32px 0;
}

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

.innov .step_list li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
padding: 16px;
background: #fff;
border-radius: 12px;
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.innov .step_list li:hover {
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
}

.innov .step_list .chk_ico {
flex-shrink: 0;
width: 24px;
height: 24px;
border-radius: 6px;
background: #BC46B2;
display: flex;
align-items: center;
justify-content: center;
margin-top: 2px;
}

.innov .step_list .chk_ico i {
font-size: 13px;
color: #fff;
}

.innov .step_list .step_text {
display: flex;
flex-direction: column;
gap: 4px;
}

.innov .step_list h5 {
font-size: 15px;
font-weight: 700;
color: #1b0619;
margin: 0;
line-height: 1.2;
}

.innov .step_list p {
font-size: 15px;
line-height: 1.8;
color: #5a2e56;
margin: 0;
}

.innov .approach_blk .right_col {
display: flex;
flex-direction: column;
gap: 32px;
}

.innov .metric_card {
background: #fff;
border-radius: 12px;
padding: 32px;
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07), 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
display: flex;
flex-direction: column;
gap: 8px;
transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.innov .metric_card:hover {
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07), 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.innov .metric_card .mc_icon {
width: 40px;
height: 40px;
border-radius: 6px;
background: linear-gradient(247deg, #BC46B2 0%, #D3AFBF 100%);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 8px;
}

.innov .metric_card .mc_icon i {
font-size: 20px;
color: #fff;
}

.innov .metric_card h5 {
font-size: 15px;
font-weight: 700;
color: #BC46B2;
margin: 0;
letter-spacing: 0.06em;
text-transform: uppercase;
line-height: 1.2;
}

.innov .metric_card p {
font-size: 15px;
line-height: 1.8;
color: #3d1a3a;
margin: 0;
}

.innov .quote_strip {
background: linear-gradient(247deg, #BC46B2 0%, #9e3197 100%);
border-radius: 12px;
padding: 32px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
}

.innov .quote_strip blockquote {
margin: 0;
font-size: 17px;
line-height: 1.8;
color: #F2EAEF;
font-style: italic;
}

.innov .quote_strip .q_attr {
margin-top: 16px;
font-size: 15px;
color: #D3AFBF;
font-style: normal;
font-weight: 600;
}

@media (max-width: 1280px) {
.innov .title_blk h1 {
font-size: 36px;
}

.innov .icon_grid {
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
}

@media (max-width: 768px) {
.innov .title_blk .ed_col {
flex-direction: column;
gap: 32px;
}

.innov .title_blk .txt_side {
flex: 1 1 100%;
max-width: 100%;
}

.innov .title_blk h1 {
font-size: 36px;
}

.innov .title_blk {
padding-top: 64px;
padding-bottom: 64px;
}

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

.innov .icon_grid::before {
display: none;
}

.innov .diag_bg {
clip-path: none;
padding-top: 64px;
padding-bottom: 64px;
}

.innov .approach_blk .ed_col {
grid-template-columns: 1fr;
gap: 32px;
}

.innov .approach_blk {
padding-top: 64px;
padding-bottom: 64px;
}

.innov .method_blk .head_row {
margin-bottom: 32px;
}
}

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

.ct_us .pg_wrap {
max-width: 1140px;
margin: 0 auto;
padding: 0 32px;
}

.ct_us .reach_row {
display: flex;
flex-direction: row;
gap: 64px;
align-items: stretch;
padding: 96px 0;
}

.ct_us .reach_txt {
flex: 0 0 420px;
display: flex;
flex-direction: column;
gap: 32px;
}

.ct_us .reach_lbl {
display: inline-block;
font-size: 15px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #BC46B2;
background: #F2EAEF;
padding: 8px 16px;
border-radius: 4px;
width: fit-content;
}

.ct_us .reach_h {
font-size: 50px;
line-height: 1.2;
font-weight: 700;
color: #1b1b2e;
margin: 0;
}

.ct_us .reach_h span {
display: block;
}

.ct_us .reach_h .acc_word {
display: inline;
background: #BC46B2;
color: #fff;
padding: 0 8px;
border-radius: 4px;
}

.ct_us .reach_desc {
font-size: 17px;
line-height: 1.8;
color: #2d2d3a;
margin: 0;
}

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

.ct_us .info_list li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
}

.ct_us .info_ico {
width: 40px;
height: 40px;
border-radius: 12px;
background: #F2EAEF;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
}

.ct_us .info_ico i {
color: #BC46B2;
font-size: 17px;
}

.ct_us .info_meta {
display: flex;
flex-direction: column;
gap: 4px;
}

.ct_us .info_meta_lbl {
font-size: 15px;
font-weight: 600;
color: #1b1b2e;
line-height: 1.2;
}

.ct_us .info_meta_val {
font-size: 15px;
line-height: 1.8;
color: #2d2d3a;
}

.ct_us .info_meta_val a {
color: #BC46B2;
text-decoration: none;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct_us .info_meta_val a:hover {
color: #8e2e87;
}

.ct_us .form_col {
flex: 1;
min-width: 0;
}

.ct_us .form_card {
background: #fff;
border-radius: 12px;
padding: 64px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
position: relative;
}

.ct_us .form_card::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
border-radius: 12px 12px 0 0;
}

.ct_us .form_h {
font-size: 26px;
font-weight: 700;
color: #1b1b2e;
line-height: 1.2;
margin: 0 0 8px 0;
}

.ct_us .form_sub {
font-size: 15px;
line-height: 1.8;
color: #4a4a5a;
margin: 0 0 32px 0;
}

.ct_us .form_body {
display: flex;
flex-direction: column;
gap: 32px;
}

.ct_us .f_group {
display: flex;
flex-direction: column;
gap: 8px;
}

.ct_us .f_label {
font-size: 15px;
font-weight: 600;
color: #1b1b2e;
line-height: 1.2;
}

.ct_us .f_label .req {
color: #BC46B2;
margin-left: 4px;
}

.ct_us .f_input {
width: 100%;
padding: 16px;
border: 1.5px solid #D3AFBF;
border-radius: 6px;
font-size: 17px;
color: #1b1b2e;
background: #fff;
outline: none;
transition: border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
box-sizing: border-box;
}

.ct_us .f_input::placeholder {
color: rgba(188, 70, 178, 0.38);
}

.ct_us .f_input:focus {
border-color: #BC46B2;
box-shadow: 0 0 0 3px rgba(188, 70, 178, 0.13);
}

.ct_us .f_select {
width: 100%;
padding: 16px;
border: 1.5px solid #D3AFBF;
border-radius: 6px;
font-size: 17px;
color: #1b1b2e;
background: #fff;
outline: none;
appearance: none;
-webkit-appearance: none;
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='%23BC46B2' d='M8 11L2 5h12z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 16px center;
cursor: pointer;
transition: border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
box-sizing: border-box;
}

.ct_us .f_select:focus {
border-color: #BC46B2;
box-shadow: 0 0 0 3px rgba(188, 70, 178, 0.13);
}

.ct_us .radio_row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 16px;
}

.ct_us .radio_opt {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
cursor: pointer;
}

.ct_us .radio_opt input[type="radio"] {
width: 20px;
height: 20px;
accent-color: #BC46B2;
cursor: pointer;
flex-shrink: 0;
}

.ct_us .radio_opt_txt {
font-size: 15px;
color: #2d2d3a;
line-height: 1.2;
}

.ct_us .f_hint {
font-size: 15px;
color: #4a4a5a;
line-height: 1.8;
margin: 0;
}

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

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

.ct_us .privacy_txt {
font-size: 15px;
line-height: 1.8;
color: #2d2d3a;
}

.ct_us .privacy_txt a {
color: #BC46B2;
text-decoration: underline;
text-underline-offset: 2px;
transition: color 0.15s cubic-bezier(0.0, 0, 0.2, 1);
}

.ct_us .privacy_txt a:hover {
color: #8e2e87;
}

.ct_us .btn_submit {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 16px 32px;
background: #BC46B2;
color: #fff;
font-size: 17px;
font-weight: 600;
border: none;
border-radius: 6px;
cursor: pointer;
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
width: 100%;
}

.ct_us .btn_submit:hover {
background: #8e2e87;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.ct_us .btn_submit:focus {
outline: 3px solid rgba(188, 70, 178, 0.4);
outline-offset: 2px;
}

.ct_us .btn_submit:active {
background: #7a2474;
}

.ct_us .alt_strip {
background: linear-gradient(247deg, #BC46B2 0%, #D3AFBF 100%);
padding: 64px 0;
position: relative;
overflow: hidden;
}

.ct_us .alt_strip_inner {
position: relative;
z-index: 1;
}

.ct_us .alt_strip_rings {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 600px;
height: 600px;
pointer-events: none;
}

.ct_us .ring {
position: absolute;
border-radius: 50%;
border: 1.5px solid rgba(255, 255, 255, 0.18);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
animation: ring_expand 4s cubic-bezier(0.0, 0, 0.2, 1) infinite;
}

.ct_us .ring:nth-child(1) {
width: 160px;
height: 160px;
animation-delay: 0s;
}

.ct_us .ring:nth-child(2) {
width: 280px;
height: 280px;
animation-delay: 1.2s;
}

.ct_us .ring:nth-child(3) {
width: 420px;
height: 420px;
animation-delay: 2.4s;
}

@keyframes ring_expand {
0% {
opacity: 0.35;
transform: translate(-50%, -50%) scale(0.88);
}

60% {
opacity: 0.12;
}

100% {
opacity: 0;
transform: translate(-50%, -50%) scale(1.08);
}
}

.ct_us .alt_cols {
display: flex;
flex-direction: row;
gap: 64px;
align-items: center;
}

.ct_us .alt_txt_col {
flex: 1;
display: flex;
flex-direction: column;
gap: 16px;
}

.ct_us .alt_eyebrow {
font-size: 15px;
font-weight: 600;
letter-spacing: 0.1em;
text-transform: uppercase;
color: rgba(255, 255, 255, 0.75);
line-height: 1.2;
}

.ct_us .alt_h {
font-size: 36px;
font-weight: 700;
color: #fff;
line-height: 1.2;
margin: 0;
}

.ct_us .alt_body {
font-size: 17px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.9);
margin: 0;
}

.ct_us .alt_cards_col {
flex: 0 0 480px;
display: flex;
flex-direction: column;
gap: 16px;
}

.ct_us .ch_card {
background: rgba(255, 255, 255, 0.13);
border-radius: 12px;
padding: 32px;
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
position: relative;
box-shadow: inset 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
transition: background 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.ct_us .ch_card:hover {
background: rgba(255, 255, 255, 0.22);
}

.ct_us .ch_card_ico {
width: 44px;
height: 44px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.2);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.ct_us .ch_card_ico i {
font-size: 20px;
color: #fff;
}

.ct_us .ch_card_body {
display: flex;
flex-direction: column;
gap: 8px;
}

.ct_us .ch_card_ttl {
font-size: 17px;
font-weight: 700;
color: #fff;
line-height: 1.2;
margin: 0;
}

.ct_us .ch_card_desc {
font-size: 15px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.85);
margin: 0;
}

.ct_us .corner_tag {
position: absolute;
top: -1px;
right: 16px;
background: rgba(255, 255, 255, 0.28);
color: #fff;
font-size: 15px;
font-weight: 600;
padding: 4px 8px;
border-radius: 0 0 6px 6px;
letter-spacing: 0.05em;
}

.ct_us .svg_divider {
display: block;
width: 100%;
height: 20px;
overflow: hidden;
}

.ct_us .svg_divider svg {
width: 100%;
height: 20px;
display: block;
}

@media (max-width: 1280px) {
.ct_us .reach_row {
gap: 32px;
}

.ct_us .reach_txt {
flex: 0 0 360px;
}

.ct_us .alt_cards_col {
flex: 0 0 380px;
}

.ct_us .form_card {
padding: 32px;
}
}

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

.ct_us .reach_row {
flex-direction: column;
gap: 32px;
padding: 64px 0;
}

.ct_us .reach_txt {
flex: none;
}

.ct_us .reach_h {
font-size: 36px;
}

.ct_us .form_card {
padding: 32px 16px;
}

.ct_us .alt_cols {
flex-direction: column;
gap: 32px;
}

.ct_us .alt_cards_col {
flex: none;
width: 100%;
}

.ct_us .alt_h {
font-size: 26px;
}

.ct_us .radio_row {
flex-direction: column;
}

.ct_us .alt_strip_rings {
width: 340px;
height: 340px;
}
}

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

.abt .db_grid {
display: grid;
}

.abt .db_flex {
display: flex;
}

.abt .centered {
text-align: center;
}

.abt .t_block {
background: linear-gradient(247deg, #BC46B2 0%, #f7f0f5 60%, #fff 100%);
padding: 64px 32px;
position: relative;
}

.abt .t_block .dot_grid {
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-image: radial-gradient(circle, #BC46B2 1px, transparent 1px);
background-size: 22px 22px;
opacity: 0.13;
pointer-events: none;
overflow: hidden;
}

.abt .t_block .t_inner {
max-width: 1140px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: center;
}

.abt .t_block .t_text {
position: relative;
z-index: 1;
}

.abt .t_block .t_eyebrow {
font-size: 15px;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
display: block;
}

.abt .t_block .t_h1 {
font-size: 50px;
font-weight: 800;
line-height: 1.2;
color: #1e0d1c;
margin: 0 0 32px;
}

.abt .t_block .t_h1 .hl_word {
background: #BC46B2;
color: #fff;
padding: 0 8px;
border-radius: 4px;
display: inline;
}

.abt .t_block .t_quote {
font-size: 20px;
line-height: 1.8;
color: #4a2545;
margin: 0;
padding-left: 16px;
border-top: 2px solid #BC46B2;
padding-top: 16px;
}

.abt .t_block .t_img_wrap {
position: relative;
z-index: 1;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.abt .t_block .t_img_wrap img {
width: 100%;
height: 480px;
object-fit: cover;
display: block;
filter: saturate(1.1) brightness(0.97);
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt .t_block .t_img_wrap::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.22) 0%, rgba(211, 175, 191, 0.08) 100%);
mix-blend-mode: multiply;
pointer-events: none;
}

.abt .t_block .t_img_wrap:hover img {
transform: scale(1.03);
}

.abt .t_block .deco_line {
position: absolute;
right: 0;
top: 32px;
width: 3px;
height: 80%;
background: linear-gradient(180deg, #BC46B2 0%, transparent 100%);
opacity: 0.18;
border-radius: 2px;
pointer-events: none;
}

.abt .divider_geo {
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
gap: 0;
overflow: hidden;
height: 20px;
}

.abt .divider_geo span {
flex: 1;
height: 3px;
background: #D3AFBF;
opacity: 0.35;
}

.abt .divider_geo .geo_shape {
width: 10px;
height: 10px;
background: #BC46B2;
transform: rotate(45deg);
flex-shrink: 0;
opacity: 0.55;
margin: 0 4px;
border-radius: 2px;
}

.abt .about_body {
background: #F2EAEF;
padding: 96px 32px;
}

.abt .about_body .ab_inner {
max-width: 1140px;
margin: 0 auto;
}

.abt .about_body .ab_top {
display: grid;
grid-template-columns: 5fr 7fr;
gap: 64px;
align-items: start;
margin-bottom: 64px;
}

.abt .about_body .ab_label {
font-size: 15px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
display: block;
}

.abt .about_body .ab_h2 {
font-size: 36px;
font-weight: 800;
line-height: 1.2;
color: #1e0d1c;
margin: 0 0 32px;
}

.abt .about_body .ab_h2 span {
display: block;
}

.abt .about_body .ab_stat_col {
display: flex;
flex-direction: column;
gap: 32px;
}

.abt .about_body .stat_item {
background: #fff;
border-radius: 12px;
padding: 32px;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-sizing: border-box;
}

.abt .about_body .stat_item:hover {
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
transform: translateY(-3px);
}

.abt .about_body .stat_num {
font-size: 50px;
font-weight: 800;
color: #BC46B2;
line-height: 1.2;
display: block;
}

.abt .about_body .stat_desc {
font-size: 17px;
color: #4a2545;
line-height: 1.8;
margin: 8px 0 0;
}

.abt .about_body .ab_text_col {
display: flex;
flex-direction: column;
gap: 32px;
}

.abt .about_body .ab_para {
font-size: 17px;
line-height: 1.8;
color: #2c1228;
margin: 0;
}

.abt .about_body .ab_para .hl_inline {
background: #D3AFBF;
padding: 1px 6px;
border-radius: 4px;
color: #1e0d1c;
}

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

.abt .about_body .checklist li {
font-size: 17px;
line-height: 1.8;
color: #2c1228;
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
}

.abt .about_body .checklist li .chk {
width: 20px;
height: 20px;
border-radius: 4px;
background: #BC46B2;
flex-shrink: 0;
margin-top: 3px;
display: flex;
align-items: center;
justify-content: center;
}

.abt .about_body .checklist li .chk::after {
content: "";
display: block;
width: 10px;
height: 6px;
border-left: 2px solid #fff;
border-bottom: 2px solid #fff;
transform: rotate(-45deg) translateY(-1px);
}

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

.abt .about_body .team_card {
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
transition: box-shadow 0.18s cubic-bezier(0.0, 0, 0.2, 1), transform 0.18s cubic-bezier(0.0, 0, 0.2, 1);
}

.abt .about_body .team_card:hover {
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
transform: translateY(-4px);
}

.abt .about_body .team_card .tc_img {
width: 100%;
aspect-ratio: 3/4;
object-fit: cover;
display: block;
transition: filter 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt .about_body .team_card:hover .tc_img {
filter: saturate(1.18) brightness(1.04);
}

.abt .about_body .team_card .tc_body {
padding: 16px;
}

.abt .about_body .team_card .tc_name {
font-size: 17px;
font-weight: 700;
color: #1e0d1c;
margin: 0 0 8px;
line-height: 1.2;
}

.abt .about_body .team_card .tc_role {
font-size: 15px;
color: #BC46B2;
margin: 0;
line-height: 1.8;
}

.abt .about_body .pl_card {
background: #fff;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 1px 3px 0 rgba(188, 70, 178, 0.07);
}

.abt .divider_dots {
width: 100%;
background: #fff;
padding: 16px 0;
display: flex;
flex-direction: row;
justify-content: center;
gap: 8px;
align-items: center;
}

.abt .divider_dots .dot {
width: 6px;
height: 6px;
border-radius: 20px;
background: #D3AFBF;
opacity: 0.6;
}

.abt .divider_dots .dot.big {
width: 10px;
height: 10px;
background: #BC46B2;
opacity: 0.8;
}

.abt .approach_sec {
background: #fff;
padding: 96px 32px 96px;
}

.abt .approach_sec .ap_inner {
max-width: 1140px;
margin: 0 auto;
}

.abt .approach_sec .ap_header {
margin-bottom: 64px;
max-width: 640px;
}

.abt .approach_sec .ap_label {
font-size: 15px;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #BC46B2;
margin-bottom: 16px;
display: block;
}

.abt .approach_sec .ap_h2 {
font-size: 36px;
font-weight: 800;
line-height: 1.2;
color: #1e0d1c;
margin: 0 0 16px;
}

.abt .approach_sec .ap_sub {
font-size: 17px;
line-height: 1.8;
color: #4a2545;
margin: 0;
}

.abt .approach_sec .ap_grid {
display: grid;
grid-template-columns: 3fr 2fr;
gap: 64px;
align-items: start;
}

.abt .approach_sec .steps_col {
display: flex;
flex-direction: column;
gap: 32px;
}

.abt .approach_sec .step_row {
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start;
opacity: 0;
animation: step_in 0.28s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.abt .approach_sec .step_row:nth-child(1) {
animation-delay: 0.05s;
}

.abt .approach_sec .step_row:nth-child(2) {
animation-delay: 0.15s;
}

.abt .approach_sec .step_row:nth-child(3) {
animation-delay: 0.25s;
}

.abt .approach_sec .step_row:nth-child(4) {
animation-delay: 0.35s;
}

@keyframes step_in {
from {
opacity: 0;
transform: translateY(14px);
}

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

.abt .approach_sec .step_num {
width: 40px;
height: 40px;
border-radius: 20px;
background: linear-gradient(247deg, #BC46B2 0%, #D3AFBF 100%);
color: #fff;
font-size: 17px;
font-weight: 800;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
}

.abt .approach_sec .step_body {
flex: 1;
}

.abt .approach_sec .step_h {
font-size: 17px;
font-weight: 700;
color: #1e0d1c;
margin: 0 0 8px;
line-height: 1.2;
}

.abt .approach_sec .step_p {
font-size: 15px;
line-height: 1.8;
color: #4a2545;
margin: 0;
}

.abt .approach_sec .contact_col {
display: flex;
flex-direction: column;
gap: 32px;
}

.abt .approach_sec .contact_card {
background: linear-gradient(247deg, #BC46B2 0%, #8a2585 100%);
border-radius: 12px;
padding: 32px;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
box-sizing: border-box;
}

.abt .approach_sec .contact_card .cc_h {
font-size: 20px;
font-weight: 800;
color: #fff;
margin: 0 0 16px;
line-height: 1.2;
}

.abt .approach_sec .contact_card .cc_p {
font-size: 15px;
line-height: 1.8;
color: rgba(255, 255, 255, 0.88);
margin: 0 0 32px;
}

.abt .approach_sec .contact_card .cc_links {
display: flex;
flex-direction: column;
gap: 16px;
}

.abt .approach_sec .contact_card .cc_link {
display: flex;
flex-direction: row;
align-items: center;
gap: 16px;
color: #fff;
text-decoration: none;
font-size: 15px;
line-height: 1.8;
transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: 6px;
padding: 8px;
background: rgba(255, 255, 255, 0.1);
}

.abt .approach_sec .contact_card .cc_link:hover {
opacity: 0.82;
background: rgba(255, 255, 255, 0.18);
}

.abt .approach_sec .contact_card .cc_link i {
font-size: 20px;
width: 24px;
text-align: center;
flex-shrink: 0;
}

.abt .approach_sec .img_aside {
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
position: relative;
}

.abt .approach_sec .img_aside img {
width: 100%;
height: 240px;
object-fit: cover;
display: block;
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.abt .approach_sec .img_aside:hover img {
transform: scale(1.04);
}

.abt .approach_sec .img_aside::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(247deg, rgba(188, 70, 178, 0.28) 0%, rgba(242, 234, 239, 0.06) 100%);
mix-blend-mode: multiply;
pointer-events: none;
}

.abt .approach_sec .deco_frame_top {
width: 100%;
height: 2px;
background: linear-gradient(90deg, transparent 0%, #D3AFBF 30%, #BC46B2 50%, #D3AFBF 70%, transparent 100%);
margin-bottom: 64px;
opacity: 0.4;
border-radius: 2px;
}

.abt .approach_sec .deco_frame_bot {
width: 100%;
height: 2px;
background: linear-gradient(90deg, transparent 0%, #D3AFBF 30%, #BC46B2 50%, #D3AFBF 70%, transparent 100%);
margin-top: 64px;
opacity: 0.4;
border-radius: 2px;
}

@media (max-width: 1280px) {
.abt .t_block .t_h1 {
font-size: 36px;
}

.abt .about_body .team_mosaic {
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
}

@media (max-width: 768px) {
.abt .t_block {
padding: 64px 16px;
}

.abt .t_block .t_inner {
grid-template-columns: 1fr;
gap: 32px;
}

.abt .t_block .t_h1 {
font-size: 36px;
}

.abt .t_block .t_img_wrap img {
height: 280px;
}

.abt .about_body {
padding: 64px 16px;
}

.abt .about_body .ab_top {
grid-template-columns: 1fr;
gap: 32px;
}

.abt .about_body .team_mosaic {
grid-template-columns: 1fr 1fr;
gap: 16px;
}

.abt .approach_sec {
padding: 64px 16px;
}

.abt .approach_sec .ap_grid {
grid-template-columns: 1fr;
gap: 32px;
}
}

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

.success_page .result_wrap {
max-width: 1140px;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: 32px;
}

.success_page .icon_wrap {
width: 72px;
height: 72px;
border-radius: 20px;
background: linear-gradient(247deg, #BC46B2, #ffffff);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
flex-shrink: 0;
}

.success_page .icon_wrap svg {
width: 36px;
height: 36px;
}

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

.success_page .msg_block .heading {
font-size: 36px;
line-height: 1.2;
font-weight: 700;
color: #1a0a19;
margin: 0;
}

.success_page .msg_block .heading .accent_word {
display: inline-block;
background: #D3AFBF;
padding: 0 8px;
border-radius: 4px;
}

.success_page .msg_block .sub_text {
font-size: 17px;
line-height: 1.8;
color: #3a1f38;
max-width: 520px;
margin: 0;
}

.success_page .detail_card {
background: #ffffff;
border-radius: 12px;
padding: 32px;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11), inset 1px 1px 3px 0 rgba(211, 175, 191, 0.07);
max-width: 520px;
width: 100%;
display: flex;
flex-direction: column;
gap: 16px;
}

.success_page .detail_card .step_row {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
}

.success_page .detail_card .step_row .step_num {
width: 28px;
height: 28px;
border-radius: 6px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-weight: 700;
color: #ffffff;
flex-shrink: 0;
}

.success_page .detail_card .step_row .step_text {
font-size: 15px;
line-height: 1.8;
color: #3a1f38;
margin: 0;
padding-top: 2px;
}

.success_page .divider_line {
width: 64px;
height: 2px;
background: linear-gradient(247deg, #BC46B2, #D3AFBF);
border-radius: 2px;
}

.success_page .action_row {
display: flex;
flex-direction: row;
gap: 16px;
flex-wrap: wrap;
justify-content: center;
}

.success_page .action_row .btn_primary {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 16px 32px;
background: #BC46B2;
color: #ffffff;
font-size: 15px;
font-weight: 600;
border-radius: 6px;
border: none;
text-decoration: none;
box-shadow: 1px 7px 14px 0 rgba(188, 70, 178, 0.11);
cursor: pointer;
transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.0, 0, 0.2, 1);
}

.success_page .action_row .btn_primary:hover {
background: #a33da0;
box-shadow: 1px 12px 44px 0 rgba(188, 70, 178, 0.11);
}

.success_page .action_row .btn_primary:focus {
outline: 2px solid #BC46B2;
outline-offset: 3px;
}

.success_page .action_row .btn_secondary {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 16px 32px;
background: transparent;
color: #BC46B2;
font-size: 15px;
font-weight: 600;
border-radius: 6px;
border: 2px solid #BC46B2;
text-decoration: none;
cursor: pointer;
transition: background-color 0.18s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.success_page .action_row .btn_secondary:hover {
background: #F2EAEF;
color: #a33da0;
}

.success_page .action_row .btn_secondary:focus {
outline: 2px solid #BC46B2;
outline-offset: 3px;
}

.success_page .contact_hint {
font-size: 15px;
line-height: 1.8;
color: #3a1f38;
text-align: center;
margin: 0;
}

.success_page .contact_hint a {
color: #BC46B2;
text-decoration: underline;
text-underline-offset: 3px;
transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.success_page .contact_hint a:hover {
color: #a33da0;
}

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

.success_page .msg_block .heading {
font-size: 26px;
}

.success_page .action_row {
flex-direction: column;
align-items: stretch;
}

.success_page .action_row .btn_primary,
.success_page .action_row .btn_secondary {
justify-content: center;
}

.success_page .detail_card {
padding: 32px 16px;
}
}