@import url('https://cdn.jsdelivr.net/npm/@fontsource/lora@latest/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/lora@latest/400-italic.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/lora@latest/700.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/lora@latest/700-italic.css');

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

body {
margin: 0;
font-family: 'Lora', Georgia, serif;
-webkit-text-size-adjust: 100%;
word-break: break-word;
overflow-wrap: break-word;
}

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

:focus-visible {
outline: none;
border-bottom: 4px solid #7142A9;
}

.pg_head {
background: #ffffff;
position: relative;
border-bottom: 1px solid #EEE8F2;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.pg_head_top {
display: flex;
justify-content: center;
align-items: center;
padding: 20px 40px;
background: linear-gradient(135deg, #EEE8F2 0%, #ffffff 60%);
border-bottom: 1px solid #C7B4DA;
}

.brand_mark {
display: flex;
align-items: center;
justify-content: center;
border: 2px solid #7142A9;
border-radius: 12px;
padding: 8px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05), 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
text-decoration: none;
min-width: 44px;
min-height: 44px;
}

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

.pg_nav {
background: #7142A9;
}

.pg_nav_list {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
list-style: none;
margin: 0;
padding: 0 20px;
gap: 4px;
}

.pg_nav_list li {
display: flex;
}

.pg_nav_list a {
display: flex;
align-items: center;
justify-content: center;
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.015em;
color: #EEE8F2;
text-decoration: none;
padding: 12px 20px;
border-radius: 6px;
min-height: 44px;
font-weight: 400;
transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.pg_nav_list a:hover {
background-color: rgba(199, 180, 218, 0.2);
color: #ffffff;
}

.pg_nav_list a.active {
background-color: #ffffff;
color: #7142A9;
font-weight: 700;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
}

@media (max-width: 960px) {
.pg_head_top {
padding: 20px;
}

.pg_nav_list {
padding: 0 12px;
gap: 4px;
}

.pg_nav_list a {
padding: 12px 12px;
font-size: 15px;
}
}

@media (max-width: 480px) {
.brand_mark img {
width: 65px;
height: 65px;
}

.pg_nav_list a {
padding: 8px 8px;
}
}

.pg_foot {
background: #2a1a42;
color: #C7B4DA;
}

.foot_grid {
max-width: 1170px;
margin: 0 auto;
padding: 40px 40px 20px;
display: grid;
grid-template-columns: auto 1fr 1fr;
gap: 40px;
align-items: start;
}

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

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

.foot_logo_box {
border: 2px solid #C7B4DA;
border-radius: 12px;
padding: 8px;
background: rgba(255, 255, 255, 0.06);
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
display: flex;
align-items: center;
justify-content: center;
}

.foot_logo_box img {
display: block;
width: 65px;
height: 65px;
object-fit: contain;
}

.foot_name {
font-family: 'Lora', Georgia, serif;
font-size: 22px;
font-weight: 700;
line-height: 1.1;
letter-spacing: 0.01em;
color: #ffffff;
}

.foot_copy {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.55;
color: #C7B4DA;
letter-spacing: 0.01em;
}

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

.foot_col_label {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
font-weight: 700;
line-height: 1.35;
letter-spacing: 0.02em;
color: #ffffff;
text-transform: uppercase;
}

.foot_col a {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #C7B4DA;
text-decoration: none;
transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
display: inline-block;
min-height: 44px;
display: flex;
align-items: center;
}

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

.foot_addr {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #C7B4DA;
font-style: normal;
}

.foot_bottom {
max-width: 1170px;
margin: 0 auto;
padding: 20px 40px;
border-top: 1px solid rgba(199, 180, 218, 0.2);
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px;
flex-wrap: wrap;
}

.foot_legal {
display: flex;
gap: 20px;
flex-wrap: wrap;
}

.foot_legal a {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #C7B4DA;
text-decoration: underline;
text-underline-offset: 3px;
transition: color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
min-height: 44px;
display: flex;
align-items: center;
}

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

.foot_copy_line {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #C7B4DA;
}

@media (max-width: 960px) {
.foot_grid {
grid-template-columns: 1fr 1fr;
padding: 40px 20px 20px;
}

.foot_brand {
grid-column: 1 / -1;
}

.foot_bottom {
padding: 20px;
}
}

@media (max-width: 480px) {
.foot_grid {
grid-template-columns: 1fr;
gap: 20px;
}

.foot_bottom {
flex-direction: column;
align-items: flex-start;
gap: 12px;
}
}

.consent_box {
position: fixed;
top: 20px;
left: 0;
right: 0;
margin: 0 auto;
width: 480px;
max-width: calc(100vw - 40px);
background: #ffffff;
border-radius: 12px;
border: 1px solid #C7B4DA;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
padding: 20px;
z-index: 2000;
transform: translateX(-120%);
transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.consent_box.shown {
transform: translateX(0);
}

.consent_text {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #2a1a42;
margin: 0 0 20px 0;
}

.consent_btns {
display: flex;
gap: 20px;
justify-content: flex-end;
}

.consent_btns button {
font-family: 'Lora', Georgia, serif;
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.01em;
background: none;
border: none;
cursor: pointer;
padding: 4px 0;
text-decoration: underline;
text-underline-offset: 3px;
min-height: 44px;
transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.consent_btns .btn_accept {
color: #7142A9;
font-weight: 700;
}

.consent_btns .btn_decline {
color: #2a1a42;
}

.consent_btns .btn_accept:hover,
.consent_btns .btn_accept:focus-visible {
color: #4a2a7a;
}

.consent_btns .btn_decline:hover,
.consent_btns .btn_decline:focus-visible {
color: #7142A9;
}

.terms-body {
max-width: 1170px;
margin: 0 auto;
padding: 80px 40px;
}

.terms-body ul,
.terms-body ol {
padding-left: 20px;
margin-top: 12px;
margin-bottom: 20px;
}

.terms-body ul {
list-style: none;
padding-left: 0;
}

.terms-body ul li {
padding-left: 20px;
position: relative;
}

.terms-body ul li::before {
content: "";
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #7142A9;
position: absolute;
left: 4px;
top: 9px;
}

.terms-body ol {
list-style: decimal;
}

.terms-body ol li::marker {
color: #7142A9;
}

.terms-body li {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.015em;
color: #2a2235;
margin-bottom: 8px;
}

.terms-body em,
.terms-body i {
font-style: italic;
color: #5a3d8a;
}

.terms-body a {
color: #7142A9;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 3px;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), text-decoration-color 0.25s cubic-bezier(0.0, 0, 0.2, 1);
}

.terms-body a:hover {
color: #4e2e7a;
text-decoration-color: #C7B4DA;
}

.terms-body hr {
border: none;
border-top: 1px solid #C7B4DA;
margin-top: 40px;
margin-bottom: 40px;
opacity: 0.6;
}

.terms-body div {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.015em;
color: #2a2235;
margin-bottom: 20px;
}

@media (max-width: 960px) {
.terms-body {
padding: 80px 20px;
}
}

@media (max-width: 480px) {
.terms-body {
padding: 40px 20px;
}

.terms-body li,
.terms-body div {
font-size: 15px;
}
}

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

.lpd .prog-wrap {
max-width: 1170px;
margin: 0 auto;
padding: 0 20px;
}

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

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

.lpd .hero-band {
background: radial-gradient(circle at top left, #7142A9 0%, #C7B4DA 45%, #EEE8F2 100%);
padding: 80px 20px;
position: relative;
}

.lpd .hero-band::after {
content: '';
display: block;
position: absolute;
bottom: -1px;
left: 0;
width: 100%;
height: 48px;
background: #fff;
clip-path: ellipse(55% 100% at 50% 100%);
}

.lpd .hero-grid {
max-width: 1170px;
margin: 0 auto;
display: grid;
grid-template-columns: 40fr 60fr;
gap: 40px;
align-items: center;
}

.lpd .hero-img-box {
position: relative;
border-radius: 20px;
overflow: hidden;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.lpd .hero-img-box img {
display: block;
width: 100%;
height: 360px;
object-fit: cover;
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.lpd .hero-img-box .img-overlay {
position: absolute;
inset: 0;
background: rgba(113, 66, 169, 0.38);
transition: background 0.22s cubic-bezier(0.0, 0, 0.2, 1);
}

.lpd .hero-img-box:hover .img-overlay {
background: rgba(113, 66, 169, 0.08);
}

.lpd .hero-img-box:hover img {
transform: scale(1.03);
}

.lpd .hero-txt {
animation: liftReveal 0.6s cubic-bezier(0.0, 0, 0.2, 1) both;
}

.lpd .hero-label {
display: inline-block;
background: rgba(113, 66, 169, 0.12);
color: #7142A9;
font-size: 15px;
font-weight: 600;
letter-spacing: 0.02em;
padding: 4px 12px;
border-radius: 6px;
margin-bottom: 20px;
}

.lpd .hero-h1 {
font-size: 52px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1b0f2e;
margin-bottom: 20px;
}

.lpd .hero-h1 em {
font-style: normal;
color: #7142A9;
}

.lpd .hero-sub {
font-size: 18px;
line-height: 1.55;
color: #3d2860;
margin-bottom: 40px;
letter-spacing: 0.01em;
}

.lpd .hero-meta {
display: flex;
flex-direction: row;
gap: 20px;
align-items: center;
flex-wrap: wrap;
}

.lpd .price-tag {
font-size: 38px;
font-weight: 700;
color: #7142A9;
letter-spacing: 0.01em;
line-height: 1.1;
}

.lpd .like-pill {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
background: #fff;
border-radius: 12px;
padding: 8px 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
font-size: 15px;
color: #3d2860;
font-weight: 500;
}

.lpd .like-icon {
width: 20px;
height: 20px;
flex-shrink: 0;
}

.lpd .btn-primary {
display: inline-block;
background: #7142A9;
color: #fff;
font-size: 18px;
font-weight: 600;
padding: 12px 40px;
border-radius: 12px;
border: none;
cursor: pointer;
letter-spacing: 0.01em;
text-decoration: none;
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.lpd .btn-primary:hover {
background: #5a3289;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.lpd .btn-primary:focus {
outline: 3px solid #C7B4DA;
outline-offset: 2px;
}

.lpd .btn-primary:active {
background: #3d2860;
}

.lpd .diamond-div {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
gap: 8px;
padding: 20px 0;
overflow: hidden;
}

.lpd .diamond-div span {
display: inline-block;
width: 7px;
height: 7px;
background: #C7B4DA;
transform: rotate(45deg);
flex-shrink: 0;
}

.lpd .diamond-div span.acc {
background: #7142A9;
width: 9px;
height: 9px;
}

.lpd .detail-band {
background: #fff;
padding: 80px 20px;
}

.lpd .detail-grid {
max-width: 1170px;
margin: 0 auto;
display: grid;
grid-template-columns: 60fr 40fr;
gap: 80px;
align-items: start;
}

.lpd .desc-col {}

.lpd .acc-line-head {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 12px;
margin-bottom: 20px;
}

.lpd .acc-line {
width: 4px;
min-height: 40px;
background: #7142A9;
border-radius: 6px;
flex-shrink: 0;
margin-top: 4px;
}

.lpd .acc-line-head h2 {
font-size: 28px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #1b0f2e;
margin: 0;
}

.lpd .desc-body {
font-size: 18px;
line-height: 1.55;
color: #2e1f4a;
letter-spacing: 0.01em;
padding: 0 80px;
}

.lpd .desc-body p {
margin-bottom: 20px;
}

.lpd .desc-body p:last-child {
margin-bottom: 0;
}

.lpd .desc-body ol {
padding-left: 20px;
margin-bottom: 20px;
}

.lpd .desc-body ol li {
margin-bottom: 12px;
padding-left: 8px;
}

.lpd .desc-body blockquote {
border-left: none;
background: #EEE8F2;
border-radius: 12px;
padding: 20px;
margin: 20px 0;
}

.lpd .desc-body blockquote p {
margin: 0;
font-size: 22px;
line-height: 1.35;
color: #7142A9;
font-weight: 600;
}

.lpd .desc-body details {
background: #EEE8F2;
border-radius: 12px;
padding: 12px 20px;
margin-bottom: 12px;
cursor: pointer;
}

.lpd .desc-body summary {
font-weight: 600;
color: #1b0f2e;
font-size: 18px;
line-height: 1.35;
}

.lpd .side-col {}

.lpd .prog-card {
background: #EEE8F2;
border-radius: 20px;
padding: 40px;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
position: sticky;
top: 20px;
}

.lpd .prog-card-head {
text-align: center;
margin-bottom: 20px;
}

.lpd .prog-card-head h3 {
font-size: 22px;
line-height: 1.35;
color: #1b0f2e;
letter-spacing: 0.01em;
margin-bottom: 8px;
}

.lpd .prog-card-head .sym-pair {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}

.lpd .sym-icon {
width: 22px;
height: 22px;
flex-shrink: 0;
}

.lpd .prog-body {
font-size: 15px;
line-height: 1.55;
color: #2e1f4a;
letter-spacing: 0.01em;
}

.lpd .prog-body h2 {
font-size: 18px;
line-height: 1.35;
color: #7142A9;
margin: 20px 0 8px;
letter-spacing: 0.01em;
}

.lpd .prog-body h3 {
font-size: 15px;
line-height: 1.35;
color: #1b0f2e;
font-weight: 600;
margin: 12px 0 4px;
}

.lpd .prog-body p {
margin-bottom: 8px;
}

.lpd .prog-body ul {
padding-left: 0;
list-style: none;
margin-bottom: 12px;
}

.lpd .prog-body ul li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 8px;
margin-bottom: 8px;
font-size: 15px;
line-height: 1.55;
}

.lpd .prog-body ul li::before {
content: '';
display: inline-block;
width: 18px;
height: 18px;
min-width: 18px;
border-radius: 6px;
background: #7142A9;
margin-top: 3px;
}

.lpd .prog-body dl dt {
font-weight: 600;
color: #7142A9;
margin-top: 8px;
}

.lpd .prog-body dl dd {
margin-left: 0;
margin-bottom: 4px;
color: #2e1f4a;
}

.lpd .prog-body blockquote {
background: #fff;
border-radius: 12px;
padding: 12px 20px;
margin: 12px 0;
}

.lpd .prog-body cite {
font-style: italic;
color: #7142A9;
font-size: 15px;
}

.lpd .prog-body strong {
color: #1b0f2e;
}

.lpd .prog-cta {
margin-top: 20px;
text-align: center;
}

.lpd .prog-cta a {
display: inline-block;
background: #7142A9;
color: #fff;
font-size: 18px;
font-weight: 600;
padding: 12px 40px;
border-radius: 12px;
text-decoration: none;
letter-spacing: 0.01em;
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.lpd .prog-cta a:hover {
background: #5a3289;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.lpd .prog-cta a:focus {
outline: 3px solid #C7B4DA;
outline-offset: 2px;
}

.lpd .quote-anchor {
font-size: 68px;
line-height: 1.1;
color: #C7B4DA;
font-weight: 700;
display: block;
margin-bottom: -20px !important;
letter-spacing: 0.01em;
}

@media (max-width: 960px) {
.lpd .hero-grid {
grid-template-columns: 1fr;
}

.lpd .hero-h1 {
font-size: 38px;
}

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

.lpd .desc-body {
padding: 0 20px;
}

.lpd .prog-card {
position: static;
}
}

@media (max-width: 480px) {
.lpd .hero-band {
padding: 40px 20px 60px;
}

.lpd .hero-h1 {
font-size: 28px;
}

.lpd .price-tag {
font-size: 28px;
}

.lpd .detail-band {
padding: 40px 20px;
}

.lpd .desc-body {
padding: 0;
}

.lpd .prog-card {
padding: 20px;
}
}

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

.frnt .pg_wrap {
max-width: 1170px;
margin: 0 auto;
padding: 0 20px;
}

.frnt .t_block {
display: grid;
grid-template-columns: 1fr 2.2fr;
gap: 40px;
padding: 80px 0 40px;
position: relative;
}

.frnt .t_img_col {
position: relative;
overflow: hidden;
border-radius: 12px;
}

.frnt .t_img_col img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 18s cubic-bezier(0.4, 0, 0.2, 1);
animation: slow_zoom 18s ease-in-out infinite alternate;
}

@keyframes slow_zoom {
from {
transform: scale(1);
}

to {
transform: scale(1.08);
}
}

.frnt .t_img_col::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 55%;
background: linear-gradient(to top, rgba(113, 66, 169, 0.55), transparent);
pointer-events: none;
}

.frnt .t_dot_pattern {
position: absolute;
top: 0;
right: 0;
width: 180px;
height: 180px;
pointer-events: none;
opacity: 0.18;
}

.frnt .t_dot_pattern circle {
fill: #7142A9;
}

.frnt .t_right {
display: flex;
flex-direction: column;
justify-content: flex-start;
padding-top: 20px;
}

.frnt .t_label {
display: inline-block;
font-size: 15px;
letter-spacing: 0.02em;
color: #7142A9;
background: #EEE8F2;
padding: 4px 12px;
border-radius: 6px;
margin-bottom: 20px;
line-height: 1.55;
}

.frnt .t_h1 {
font-size: 52px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1e1230;
margin: 0 0 20px;
}

.frnt .t_h1 span {
color: #7142A9;
}

.frnt .t_divider_line {
width: 48px;
height: 3px;
background: #7142A9;
border-radius: 0px;
margin: 0 0 20px;
}

.frnt .t_desc {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #2e2040;
max-width: 520px;
}

.frnt .t_cta_row {
display: flex;
flex-direction: row;
gap: 12px;
margin-top: 40px;
flex-wrap: wrap;
}

.frnt .btn_prim {
display: inline-block;
padding: 12px 40px;
background: #7142A9;
color: #fff;
font-size: 15px;
letter-spacing: 0.02em;
line-height: 1.35;
border-radius: 6px;
border: none;
cursor: pointer;
text-decoration: none;
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 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.frnt .btn_prim:hover,
.frnt .btn_prim:focus {
background: #5a3189;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
outline: none;
}

.frnt .btn_prim:active {
background: #432474;
}

.frnt .btn_sec {
display: inline-block;
padding: 12px 40px;
background: transparent;
color: #7142A9;
font-size: 15px;
letter-spacing: 0.02em;
line-height: 1.35;
border-radius: 6px;
border: 2px solid #C7B4DA;
cursor: pointer;
text-decoration: none;
transition: border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.frnt .btn_sec:hover,
.frnt .btn_sec:focus {
border-color: #7142A9;
color: #5a3189;
outline: none;
}

.frnt .sec_divider {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
gap: 20px;
padding: 8px 0;
}

.frnt .sec_divider svg {
display: block;
}

.frnt .sec_divider .div_line {
flex: 1;
height: 1px;
background: #C7B4DA;
max-width: 200px;
}

.frnt .commit_sec {
padding: 80px 0 80px;
background: #EEE8F2;
position: relative;
}

.frnt .commit_sec::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(circle at top left, rgba(113, 66, 169, 0.09), transparent 65%);
pointer-events: none;
animation: bg_flicker 9s ease-in-out infinite;
}

@keyframes bg_flicker {

0%,
100% {
opacity: 1;
}

33% {
opacity: 0.72;
}

66% {
opacity: 0.88;
}

80% {
opacity: 0.65;
}
}

.frnt .commit_inner {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 80px;
align-items: start;
}

.frnt .commit_text .sec_eyebrow {
font-size: 15px;
color: #7142A9;
letter-spacing: 0.02em;
line-height: 1.55;
margin-bottom: 12px;
}

.frnt .commit_text h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1e1230;
margin: 0 0 20px;
position: relative;
padding-left: 20px;
}

.frnt .commit_text h2::before {
content: "";
position: absolute;
left: 0;
top: 6px;
bottom: 6px;
width: 4px;
background: #7142A9;
border-radius: 0px;
}

.frnt .commit_text .body_narrow {
margin: 0 80px;
}

.frnt .commit_text p {
font-size: 18px;
line-height: 1.55;
color: #2e2040;
letter-spacing: 0.01em;
margin-bottom: 20px;
}

.frnt .commit_text p:last-child {
margin-bottom: 0;
}

.frnt .commit_aside {
display: flex;
flex-direction: column;
gap: 20px;
}

.frnt .req_item {
background: #fff;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
position: relative;
overflow: hidden;
}

.frnt .req_item::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40px;
background: linear-gradient(to top, rgba(199, 180, 218, 0.18), transparent);
pointer-events: none;
}

.frnt .req_num {
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
background: #7142A9;
color: #fff;
font-size: 15px;
line-height: 1.1;
border-radius: 50%;
margin-bottom: 8px;
letter-spacing: 0.01em;
}

.frnt .req_item h4 {
font-size: 15px;
line-height: 1.35;
color: #1e1230;
margin: 0 0 4px;
letter-spacing: 0.01em;
}

.frnt .req_item p {
font-size: 15px;
line-height: 1.55;
color: #4a3860;
margin: 0;
letter-spacing: 0.01em;
}

.frnt .pattern_sec {
padding: 80px 0;
background: #fff;
}

.frnt .pattern_top {
text-align: center;
margin-bottom: 40px;
}

.frnt .pattern_top h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1e1230;
margin: 0 0 12px;
text-align: center;
}

.frnt .pattern_top p {
font-size: 18px;
line-height: 1.55;
color: #4a3860;
max-width: 540px;
margin: 0 auto;
text-align: left;
letter-spacing: 0.01em;
}

.frnt .voices_grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}

.frnt .voice_card {
background: #EEE8F2;
border-radius: 12px;
padding: 40px;
position: relative;
overflow: hidden;
}

.frnt .voice_card::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 48px;
background: linear-gradient(to top, rgba(113, 66, 169, 0.10), transparent);
pointer-events: none;
}

.frnt .voice_card.wide {
grid-column: 1 / -1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: center;
}

.frnt .voice_card .v_quote {
font-size: 18px;
line-height: 1.55;
color: #2e2040;
letter-spacing: 0.01em;
margin: 0 0 20px;
}

.frnt .v_quote span.first_letter {
font-size: 28px;
line-height: 1.1;
color: #7142A9;
letter-spacing: 0.01em;
}

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

.frnt .v_portrait {
width: 48px;
height: 48px;
border-radius: 50%;
overflow: hidden;
flex-shrink: 0;
}

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

.frnt .v_meta h5 {
font-size: 15px;
line-height: 1.35;
color: #1e1230;
margin: 0;
letter-spacing: 0.01em;
}

.frnt .v_meta span {
font-size: 15px;
line-height: 1.55;
color: #7142A9;
letter-spacing: 0.01em;
}

.frnt .voice_img_wrap {
border-radius: 12px;
overflow: hidden;
position: relative;
}

.frnt .voice_img_wrap img {
width: 100%;
height: 260px;
object-fit: cover;
object-position: center;
display: block;
filter: brightness(0.82) saturate(0.85);
transition: filter 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.frnt .voice_img_wrap:hover img {
filter: brightness(1) saturate(1);
}

.frnt .rel_sec {
padding: 80px 0;
background: #2e2040;
position: relative;
}

.frnt .rel_sec::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(circle at top left, rgba(199, 180, 218, 0.10), transparent 60%);
pointer-events: none;
}

.frnt .rel_inner {
display: grid;
grid-template-columns: 1fr 1.6fr;
gap: 80px;
align-items: start;
}

.frnt .rel_left {
position: relative;
}

.frnt .rel_left h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #EEE8F2;
margin: 0 0 20px;
position: relative;
padding-left: 20px;
}

.frnt .rel_left h2::before {
content: "";
position: absolute;
left: 0;
top: 6px;
bottom: 6px;
width: 4px;
background: #C7B4DA;
border-radius: 0px;
}

.frnt .rel_left p {
font-size: 18px;
line-height: 1.55;
color: #C7B4DA;
letter-spacing: 0.01em;
margin-bottom: 20px;
}

.frnt .rel_diag {
position: absolute;
top: 0;
right: -20px;
width: 100%;
height: 100%;
pointer-events: none;
opacity: 0.06;
}

.frnt .rel_right {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}

.frnt .rel_card {
background: rgba(199, 180, 218, 0.10);
border-radius: 12px;
padding: 20px;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.frnt .rel_card:hover {
background: rgba(199, 180, 218, 0.18);
}

.frnt .rel_card.offset {
margin-top: 40px;
}

.frnt .rel_card_img {
border-radius: 6px;
overflow: hidden;
margin-bottom: 12px;
}

.frnt .rel_card_img img {
width: 100%;
height: 140px;
object-fit: cover;
object-position: center;
display: block;
filter: brightness(0.78) saturate(0.80);
transition: filter 0.28s cubic-bezier(0.0, 0, 0.2, 1);
}

.frnt .rel_card:hover .rel_card_img img {
filter: brightness(1) saturate(1);
}

.frnt .rel_card h4 {
font-size: 15px;
line-height: 1.35;
color: #EEE8F2;
margin: 0 0 8px;
letter-spacing: 0.01em;
}

.frnt .rel_card p {
font-size: 15px;
line-height: 1.55;
color: #C7B4DA;
margin: 0;
letter-spacing: 0.01em;
}

.frnt .prob_sec {
padding: 80px 0;
background: #fff;
}

.frnt .prob_inner {
display: grid;
grid-template-columns: 1.4fr 1fr;
gap: 80px;
align-items: center;
}

.frnt .prob_text h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1e1230;
margin: 0 0 20px;
text-align: center;
}

.frnt .prob_text .body_narrow {
margin: 0 40px;
}

.frnt .prob_text p {
font-size: 18px;
line-height: 1.55;
color: #2e2040;
letter-spacing: 0.01em;
margin-bottom: 20px;
text-align: left;
}

.frnt .prob_text p:last-child {
margin-bottom: 0;
}

.frnt .prob_img_col {
display: flex;
flex-direction: column;
gap: 20px;
}

.frnt .prob_img_main {
border-radius: 12px;
overflow: hidden;
position: relative;
}

.frnt .prob_img_main img {
width: 100%;
height: 300px;
object-fit: cover;
object-position: center;
display: block;
filter: brightness(0.80) saturate(0.82);
transition: filter 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.frnt .prob_img_main:hover img {
filter: brightness(1) saturate(1);
}

.frnt .prob_stat_row {
display: flex;
flex-direction: row;
gap: 20px;
}

.frnt .prob_stat {
flex: 1;
background: #EEE8F2;
border-radius: 12px;
padding: 20px;
position: relative;
overflow: hidden;
}

.frnt .prob_stat::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 36px;
background: linear-gradient(to top, rgba(113, 66, 169, 0.09), transparent);
pointer-events: none;
}

.frnt .prob_stat .stat_val {
font-size: 38px;
line-height: 1.1;
color: #7142A9;
letter-spacing: 0.01em;
display: block;
margin-bottom: 4px;
}

.frnt .prob_stat .stat_lbl {
font-size: 15px;
line-height: 1.55;
color: #4a3860;
letter-spacing: 0.01em;
}

@media (max-width: 960px) {
.frnt .t_block {
grid-template-columns: 1fr;
padding: 40px 0 20px;
}

.frnt .t_img_col {
height: 260px;
}

.frnt .t_h1 {
font-size: 38px;
}

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

.frnt .commit_text .body_narrow {
margin: 0;
}

.frnt .voices_grid {
grid-template-columns: 1fr;
}

.frnt .voice_card.wide {
grid-template-columns: 1fr;
}

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

.frnt .rel_right {
grid-template-columns: 1fr 1fr;
}

.frnt .rel_card.offset {
margin-top: 0;
}

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

.frnt .prob_text .body_narrow {
margin: 0;
}
}

@media (max-width: 480px) {
.frnt .t_h1 {
font-size: 28px;
}

.frnt .t_cta_row {
flex-direction: column;
}

.frnt .rel_right {
grid-template-columns: 1fr;
}

.frnt .prob_stat_row {
flex-direction: column;
}

.frnt .voices_grid {
grid-template-columns: 1fr;
}

.frnt .commit_sec {
padding: 40px 0;
}

.frnt .prob_sec {
padding: 40px 0;
}

.frnt .rel_sec {
padding: 40px 0;
}

.frnt .pattern_sec {
padding: 40px 0;
}
}

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

.cu-pg .strip {
width: 100%;
height: 6px;
background: linear-gradient(90deg, #7142A9 0%, #C7B4DA 60%, #EEE8F2 100%);
}

.cu-pg .lede {
max-width: 1170px;
margin: 0 auto;
padding: 80px 40px 40px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: start;
}

.cu-pg .lede-geo {
position: relative;
height: 260px;
overflow: hidden;
border-radius: 20px;
background: #EEE8F2;
}

.cu-pg .lede-geo::before {
content: '';
position: absolute;
top: -40px;
left: -40px;
width: 240px;
height: 240px;
border-radius: 50%;
background: radial-gradient(circle at top left, rgba(113, 66, 169, 0.18) 0%, transparent 70%);
}

.cu-pg .lede-geo::after {
content: '';
position: absolute;
bottom: 20px;
right: 20px;
width: 80px;
height: 80px;
border: 2px solid rgba(113, 66, 169, 0.22);
border-radius: 20px;
animation: geo-pulse 4s ease-in-out infinite;
}

@keyframes geo-pulse {

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

50% {
transform: scale(1.08);
opacity: 0.9;
}
}

.cu-pg .geo-ring {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 140px;
height: 140px;
border: 1.5px solid rgba(113, 66, 169, 0.3);
border-radius: 50%;
animation: geo-pulse 3.5s ease-in-out infinite 0.5s;
}

.cu-pg .geo-dot {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 20px;
height: 20px;
background: #7142A9;
border-radius: 50%;
}

.cu-pg .lede-txt {
padding-top: 20px;
}

.cu-pg .lede-label {
display: inline-block;
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.02em;
color: #7142A9;
background: #EEE8F2;
padding: 4px 12px;
border-radius: 6px;
margin-bottom: 20px;
}

.cu-pg .lede-h {
font-size: 52px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1d1030;
margin: 0 0 20px;
position: relative;
}

.cu-pg .lede-h .sweep {
background: linear-gradient(90deg, #1d1030 0%, #7142A9 40%, #1d1030 80%);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
animation: sweep 2.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes sweep {
0% {
background-position: 100% center;
}

100% {
background-position: 0% center;
}
}

.cu-pg .lede-desc {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #3d2a55;
margin: 0;
}

.cu-pg .divider {
display: flex;
align-items: center;
gap: 12px;
max-width: 1170px;
margin: 0 auto;
padding: 0 40px;
}

.cu-pg .divider-line {
flex: 1;
height: 1px;
background: #C7B4DA;
}

.cu-pg .divider-mark {
width: 8px;
height: 8px;
background: #7142A9;
border-radius: 50%;
flex-shrink: 0;
}

.cu-pg .form-zone {
background: linear-gradient(180deg, #EEE8F2 0%, #fff 100%);
padding: 80px 40px;
}

.cu-pg .form-inner {
max-width: 1170px;
margin: 0 auto;
display: grid;
grid-template-columns: 380px 1fr;
gap: 80px;
align-items: start;
}

.cu-pg .form-aside {
padding-top: 8px;
}

.cu-pg .aside-h {
font-size: 28px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #1d1030;
margin: 0 0 20px;
padding-left: 12px;
border-left: 3px solid #7142A9;
}

.cu-pg .aside-body {
font-size: 15px;
line-height: 1.55;
color: #3d2a55;
margin: 0 0 40px;
}

.cu-pg .contact-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 20px;
}

.cu-pg .contact-list li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 12px;
}

.cu-pg .c-icon {
width: 36px;
height: 36px;
background: #7142A9;
border-radius: 12px;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
}

.cu-pg .c-icon svg {
width: 18px;
height: 18px;
fill: none;
stroke: #fff;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}

.cu-pg .c-detail {
display: flex;
flex-direction: column;
gap: 4px;
}

.cu-pg .c-label {
font-size: 15px;
line-height: 1.35;
color: #7142A9;
letter-spacing: 0.02em;
}

.cu-pg .c-val {
font-size: 15px;
line-height: 1.55;
color: #1d1030;
text-decoration: none;
transition: color 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.cu-pg .c-val:hover {
color: #7142A9;
}

.cu-pg .frm {
background: #fff;
border-radius: 20px;
padding: 40px;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.cu-pg .frm-h {
font-size: 22px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #1d1030;
margin: 0 0 8px;
}

.cu-pg .frm-sub {
font-size: 15px;
line-height: 1.55;
color: #3d2a55;
margin: 0 0 40px;
}

.cu-pg .field-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 20px;
}

.cu-pg .field {
display: flex;
flex-direction: column;
gap: 8px;
margin-bottom: 20px;
}

.cu-pg .field.no-mb {
margin-bottom: 0;
}

.cu-pg .f-label {
font-size: 15px;
line-height: 1.35;
color: #1d1030;
letter-spacing: 0.01em;
}

.cu-pg .f-req {
color: #7142A9;
}

.cu-pg .f-input {
padding: 12px 20px;
border: 1.5px solid #C7B4DA;
border-radius: 12px;
font-size: 15px;
line-height: 1.55;
color: #1d1030;
background: #fff;
outline: none;
transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: inset 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
}

.cu-pg .f-input::placeholder {
color: #9b8aae;
}

.cu-pg .f-input:focus {
border-color: #7142A9;
box-shadow: inset 1px 2px 2px 0 rgba(113, 66, 169, 0.05), 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.cu-pg .f-select {
padding: 12px 20px;
border: 1.5px solid #C7B4DA;
border-radius: 12px;
font-size: 15px;
line-height: 1.55;
color: #1d1030;
background: #fff;
outline: none;
appearance: none;
cursor: pointer;
transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: inset 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
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 d='M4 6l4 4 4-4' stroke='%237142A9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 12px center;
padding-right: 40px;
}

.cu-pg .f-select:focus {
border-color: #7142A9;
}

.cu-pg .f-textarea {
padding: 12px 20px;
border: 1.5px solid #C7B4DA;
border-radius: 12px;
font-size: 15px;
line-height: 1.55;
color: #1d1030;
background: #fff;
outline: none;
resize: vertical;
min-height: 100px;
transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: inset 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
}

.cu-pg .f-textarea::placeholder {
color: #9b8aae;
}

.cu-pg .f-textarea:focus {
border-color: #7142A9;
box-shadow: inset 1px 2px 2px 0 rgba(113, 66, 169, 0.05), 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.cu-pg .topic-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
margin-bottom: 20px;
}

.cu-pg .topic-opt {
position: relative;
}

.cu-pg .topic-opt input[type="radio"] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}

.cu-pg .topic-opt label {
display: block;
padding: 8px 12px;
border: 1.5px solid #C7B4DA;
border-radius: 12px;
font-size: 15px;
line-height: 1.35;
color: #3d2a55;
cursor: pointer;
transition: border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.18s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
text-align: center;
}

.cu-pg .topic-opt input[type="radio"]:checked+label {
border-color: #7142A9;
background: #EEE8F2;
color: #7142A9;
}

.cu-pg .topic-opt label:hover {
border-color: #7142A9;
}

.cu-pg .topic-opt input[type="radio"]:focus-visible+label {
outline: 2px solid #7142A9;
outline-offset: 2px;
}

.cu-pg .privacy-row {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 12px;
margin-bottom: 20px;
}

.cu-pg .privacy-row input[type="checkbox"] {
margin-top: 3px;
accent-color: #7142A9;
width: 18px;
height: 18px;
flex-shrink: 0;
cursor: pointer;
}

.cu-pg .privacy-txt {
font-size: 15px;
line-height: 1.55;
color: #3d2a55;
}

.cu-pg .privacy-txt a {
color: #7142A9;
text-decoration: underline;
text-underline-offset: 2px;
}

.cu-pg .btn-send {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 40px;
background: #7142A9;
color: #fff;
border: none;
border-radius: 12px;
font-size: 18px;
line-height: 1.35;
letter-spacing: 0.01em;
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 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.cu-pg .btn-send:hover {
background: #5a3188;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.22);
}

.cu-pg .btn-send:focus-visible {
outline: 2px solid #7142A9;
outline-offset: 3px;
}

.cu-pg .btn-send:active {
background: #4a2870;
}

.cu-pg .info-band {
background: #1d1030;
padding: 80px 40px;
}

.cu-pg .info-inner {
max-width: 1170px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 40px;
}

.cu-pg .info-card {
border-radius: 20px;
padding: 40px;
background: rgba(113, 66, 169, 0.12);
transition: box-shadow 0.28s cubic-bezier(0.0, 0, 0.2, 1);
}

.cu-pg .info-card:hover {
box-shadow: 1px 9px 44px 0 rgba(199, 180, 218, 0.18);
}

.cu-pg .info-card:hover .ic-h {
text-shadow: 0 2px 18px rgba(199, 180, 218, 0.38);
}

.cu-pg .ic-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: 50%;
background: #7142A9;
color: #fff;
font-size: 15px;
line-height: 1.1;
margin-bottom: 20px;
}

.cu-pg .ic-h {
font-size: 22px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #EEE8F2;
margin: 0 0 12px;
transition: text-shadow 0.28s cubic-bezier(0.0, 0, 0.2, 1);
}

.cu-pg .ic-body {
font-size: 15px;
line-height: 1.55;
color: #C7B4DA;
margin: 0;
}

@media (max-width: 960px) {
.cu-pg .lede {
grid-template-columns: 1fr;
gap: 40px;
padding: 40px 20px 40px;
}

.cu-pg .lede-geo {
height: 160px;
}

.cu-pg .lede-h {
font-size: 38px;
}

.cu-pg .form-inner {
grid-template-columns: 1fr;
gap: 40px;
}

.cu-pg .form-zone {
padding: 40px 20px;
}

.cu-pg .info-inner {
grid-template-columns: 1fr;
gap: 20px;
}

.cu-pg .info-band {
padding: 40px 20px;
}

.cu-pg .divider {
padding: 0 20px;
}
}

@media (max-width: 480px) {
.cu-pg .field-row {
grid-template-columns: 1fr;
}

.cu-pg .topic-grid {
grid-template-columns: 1fr;
}

.cu-pg .frm {
padding: 20px;
}

.cu-pg .lede-h {
font-size: 28px;
}

.cu-pg .btn-send {
width: 100%;
justify-content: center;
}
}

.srv {
background: #f5f2f8;
overflow-x: clip;
position: relative;
}

.srv .pg_wrap {
max-width: 1170px;
margin: 0 auto;
padding: 0 40px;
}

.srv .pg_wrap.narrow {
max-width: 780px;
}

.srv .ttl_blk {
position: relative;
padding: 100px 40px 60px;
background: linear-gradient(135deg, #7142A9 0%, #9b6fd4 40%, #C7B4DA 80%, #EEE8F2 100%);
border-bottom: 3px solid #7142A9;
overflow: hidden;
}

.srv .ttl_blk::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 260px;
height: 260px;
background: radial-gradient(circle at top left, rgba(113, 66, 169, 0.35) 0%, transparent 70%);
pointer-events: none;
}

.srv .ttl_blk .brk_tl {
position: absolute;
top: 20px;
left: 20px;
width: 32px;
height: 32px;
border-top: 2px solid rgba(255, 255, 255, 0.6);
border-left: 2px solid rgba(255, 255, 255, 0.6);
pointer-events: none;
}

.srv .ttl_blk .brk_tr {
position: absolute;
top: 20px;
right: 20px;
width: 32px;
height: 32px;
border-top: 2px solid rgba(255, 255, 255, 0.6);
border-right: 2px solid rgba(255, 255, 255, 0.6);
pointer-events: none;
}

.srv .ttl_inner {
max-width: 1170px;
margin: 0 auto;
position: relative;
}

.srv .ttl_label {
display: inline-block;
font-size: 15px;
letter-spacing: 0.02em;
color: rgba(255, 255, 255, 0.85);
background: rgba(255, 255, 255, 0.15);
padding: 4px 12px;
border-radius: 6px;
margin-bottom: 20px;
}

.srv .ttl_h1 {
font-size: 52px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #ffffff;
margin: 0 0 20px 0;
max-width: 700px;
animation: sweep_color 1.4s cubic-bezier(0.0, 0, 0.2, 1) forwards;
}

.srv .ttl_h1 .acc_let {
font-size: 68px;
color: #EEE8F2;
line-height: 1;
}

@keyframes sweep_color {
0% {
background: linear-gradient(90deg, #EEE8F2 0%, #ffffff 0%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}

60% {
background: linear-gradient(90deg, #EEE8F2 60%, #ffffff 60%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}

100% {
color: #ffffff;
background: none;
}
}

.srv .ttl_desc {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.01em;
color: rgba(255, 255, 255, 0.9);
max-width: 560px;
margin: 0;
}

.srv .svc_grid_sec {
padding: 80px 40px;
background: #ffffff;
}

.srv .svc_grid_sec .sec_head {
max-width: 1170px;
margin: 0 auto 40px;
display: flex;
flex-direction: row;
align-items: flex-end;
gap: 40px;
}

.srv .svc_grid_sec .sec_head_left {
flex: 0 0 auto;
}

.srv .svc_grid_sec .sec_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #2d1a4a;
margin: 0 0 8px 0;
padding-left: 16px;
border-left: 3px solid #7142A9;
}

.srv .svc_grid_sec .sec_sub {
font-size: 15px;
line-height: 1.55;
color: #5a4a6e;
margin: 0;
padding-left: 16px;
max-width: 400px;
}

.srv .svc_grid_sec .sec_head_rule {
flex: 1;
height: 1px;
background: linear-gradient(90deg, #C7B4DA, transparent);
margin-bottom: 8px;
}

.srv .svc_cards {
max-width: 1170px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}

.srv .svc_card {
background: #ffffff;
border-radius: 12px;
padding: 40px 20px 32px;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
flex-direction: column;
gap: 12px;
position: relative;
}

.srv .svc_card:hover {
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
transform: translateY(-4px);
}

.srv .svc_card .card_ico {
width: 44px;
height: 44px;
flex-shrink: 0;
}

.srv .svc_card .card_h3 {
font-size: 22px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #2d1a4a;
margin: 0;
}

.srv .svc_card .card_h3 .acc_let {
color: #7142A9;
font-size: 28px;
line-height: 1;
}

.srv .svc_card .card_p {
font-size: 15px;
line-height: 1.55;
color: #4a3a60;
margin: 0;
}

.srv .svc_card .card_num {
position: absolute;
top: 20px;
right: 20px;
font-size: 38px;
line-height: 1.1;
color: rgba(113, 66, 169, 0.07);
letter-spacing: -0.02em;
pointer-events: none;
}

.srv .svc_card .card_feat {
margin: 8px 0 0 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 8px;
}

.srv .svc_card .card_feat li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 8px;
font-size: 15px;
line-height: 1.55;
color: #4a3a60;
}

.srv .svc_card .feat_num {
display: flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
min-width: 22px;
border-radius: 20px;
background: #EEE8F2;
color: #7142A9;
font-size: 12px;
font-weight: 700;
letter-spacing: 0;
}

.srv .svc_card.featured {
background: linear-gradient(160deg, #7142A9 0%, #9b6fd4 100%);
color: #ffffff;
}

.srv .svc_card.featured .card_h3 {
color: #ffffff;
}

.srv .svc_card.featured .card_h3 .acc_let {
color: #EEE8F2;
}

.srv .svc_card.featured .card_p {
color: rgba(255, 255, 255, 0.88);
}

.srv .svc_card.featured .card_feat li {
color: rgba(255, 255, 255, 0.88);
}

.srv .svc_card.featured .feat_num {
background: rgba(255, 255, 255, 0.2);
color: #ffffff;
}

.srv .svc_card.featured .card_num {
color: rgba(255, 255, 255, 0.06);
}

.srv .svc_card.featured .card_ico path,
.srv .svc_card.featured .card_ico rect,
.srv .svc_card.featured .card_ico circle {
stroke: rgba(255, 255, 255, 0.9);
}

.srv .team_sec {
padding: 80px 40px;
background: #EEE8F2;
position: relative;
}

.srv .team_sec::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent, #C7B4DA, transparent);
pointer-events: none;
}

.srv .team_inner {
max-width: 1170px;
margin: 0 auto;
}

.srv .team_top {
display: flex;
flex-direction: row;
gap: 80px;
align-items: flex-start;
margin-bottom: 80px;
}

.srv .team_txt {
flex: 1;
}

.srv .team_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #2d1a4a;
margin: 0 0 20px 0;
padding-left: 16px;
border-left: 3px solid #7142A9;
}

.srv .team_body {
font-size: 18px;
line-height: 1.55;
color: #3a2a52;
margin: 0 0 20px 0;
}

.srv .team_body_sm {
font-size: 15px;
line-height: 1.55;
color: #5a4a6e;
margin: 0;
}

.srv .team_img_wrap {
flex: 0 0 440px;
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.srv .team_img_wrap img {
width: 100%;
height: 320px;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .team_img_wrap .img_overlay {
position: absolute;
inset: 0;
background: rgba(113, 66, 169, 0.38);
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .team_img_wrap:hover .img_overlay {
background: rgba(113, 66, 169, 0.06);
}

.srv .team_img_wrap:hover img {
transform: scale(1.03);
}

.srv .team_img_wrap .img_cap {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 20px;
background: linear-gradient(0deg, rgba(45, 26, 74, 0.85) 0%, transparent 100%);
color: #ffffff;
font-size: 15px;
line-height: 1.35;
opacity: 0;
transform: translateY(8px);
transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1), transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .team_img_wrap:hover .img_cap {
opacity: 1;
transform: translateY(0);
}

.srv .team_members {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
}

.srv .member_card {
display: flex;
flex-direction: row;
gap: 20px;
align-items: flex-start;
background: #ffffff;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .member_card:hover {
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.srv .member_port {
width: 80px;
min-width: 80px;
height: 112px;
overflow: hidden;
border-radius: 0px;
flex-shrink: 0;
position: relative;
}

.srv .member_port img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .member_port .port_tint {
position: absolute;
inset: 0;
background: rgba(113, 66, 169, 0.3);
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .member_card:hover .port_tint {
background: rgba(113, 66, 169, 0.05);
}

.srv .member_card:hover .member_port img {
transform: scale(1.04);
}

.srv .member_info {
flex: 1;
}

.srv .member_name {
font-size: 18px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #2d1a4a;
margin: 0 0 4px 0;
}

.srv .member_role {
font-size: 15px;
color: #7142A9;
margin: 0 0 8px 0;
letter-spacing: 0.01em;
}

.srv .member_bio {
font-size: 15px;
line-height: 1.55;
color: #5a4a6e;
margin: 0;
}

.srv .no_port_card {
background: #ffffff;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
}

.srv .no_port_card .member_name {
font-size: 18px;
color: #2d1a4a;
margin: 0 0 4px 0;
}

.srv .no_port_card .member_role {
font-size: 15px;
color: #7142A9;
margin: 0 0 8px 0;
}

.srv .no_port_card .member_bio {
font-size: 15px;
line-height: 1.55;
color: #5a4a6e;
margin: 0;
}

.srv .map_img_wrap {
margin-top: 80px;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
position: relative;
}

.srv .map_img_wrap img {
width: 100%;
height: 280px;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .map_img_wrap .img_overlay {
position: absolute;
inset: 0;
background: rgba(113, 66, 169, 0.32);
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .map_img_wrap:hover .img_overlay {
background: rgba(113, 66, 169, 0.05);
}

.srv .map_img_wrap:hover img {
transform: scale(1.02);
}

.srv .map_img_wrap .img_cap {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 20px;
background: linear-gradient(0deg, rgba(45, 26, 74, 0.8) 0%, transparent 100%);
color: #ffffff;
font-size: 15px;
line-height: 1.35;
opacity: 0;
transform: translateY(8px);
transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1), transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.srv .map_img_wrap:hover .img_cap {
opacity: 1;
transform: translateY(0);
}

@keyframes soft_pulse {

0%,
100% {
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

50% {
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.22);
}
}

.srv .svc_card.featured {
animation: soft_pulse 3.5s ease-in-out infinite;
}

@media (max-width: 960px) {
.srv .ttl_blk {
padding: 80px 20px 40px;
}

.srv .ttl_h1 {
font-size: 38px;
}

.srv .ttl_h1 .acc_let {
font-size: 52px;
}

.srv .svc_grid_sec {
padding: 60px 20px;
}

.srv .svc_cards {
grid-template-columns: 1fr 1fr;
}

.srv .team_sec {
padding: 60px 20px;
}

.srv .team_top {
flex-direction: column;
gap: 40px;
}

.srv .team_img_wrap {
flex: none;
width: 100%;
}

.srv .team_members {
grid-template-columns: 1fr;
}

.srv .svc_grid_sec .sec_head {
flex-direction: column;
gap: 12px;
align-items: flex-start;
}

.srv .svc_grid_sec .sec_head_rule {
display: none;
}
}

@media (max-width: 480px) {
.srv .ttl_blk {
padding: 60px 20px 40px;
}

.srv .ttl_h1 {
font-size: 28px;
}

.srv .ttl_h1 .acc_let {
font-size: 38px;
}

.srv .ttl_desc {
font-size: 15px;
}

.srv .svc_grid_sec {
padding: 40px 20px;
}

.srv .svc_cards {
grid-template-columns: 1fr;
}

.srv .team_sec {
padding: 40px 20px;
}

.srv .team_top {
gap: 20px;
}

.srv .member_card {
flex-direction: column;
}

.srv .member_port {
width: 100%;
height: 160px;
}

.srv .team_members {
gap: 20px;
}
}

.ab {
overflow-x: hidden;
}

.ab .pg-load {
animation: pgReveal 0.7s cubic-bezier(0.0, 0, 0.2, 1) both;
}

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

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

.ab .pg-load-2 {
animation: pgReveal 0.9s cubic-bezier(0.0, 0, 0.2, 1) 0.15s both;
}

.ab .pg-load-3 {
animation: pgReveal 1.1s cubic-bezier(0.0, 0, 0.2, 1) 0.25s both;
}

.ab .t-blk {
position: relative;
padding: 80px 40px 120px;
background: #EEE8F2;
overflow: hidden;
}

.ab .t-blk::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(circle at 0% 0%, rgba(113, 66, 169, 0.22) 0%, transparent 65%);
pointer-events: none;
}

.ab .t-blk-inner {
max-width: 1170px;
margin: 0 auto;
display: flex;
flex-direction: row;
align-items: flex-end;
gap: 80px;
}

.ab .t-txt {
flex: 1 1 0;
position: relative;
z-index: 1;
}

.ab .t-bracket {
display: inline-block;
width: 32px;
height: 32px;
border-top: 2px solid #7142A9;
border-left: 2px solid #7142A9;
margin-bottom: 20px;
}

.ab .t-bracket.right {
border-top: 2px solid #7142A9;
border-left: none;
border-right: 2px solid #7142A9;
margin-bottom: 0;
margin-top: 20px;
align-self: flex-end;
}

.ab .t-eyebrow {
font-size: 15px;
letter-spacing: 0.08em;
color: #7142A9;
text-transform: uppercase;
margin-bottom: 20px;
line-height: 1.35;
}

.ab .t-h1 {
font-size: 68px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1e0f36;
margin-bottom: 20px;
}

.ab .t-h1 span {
color: #7142A9;
}

.ab .t-sub {
font-size: 22px;
line-height: 1.55;
color: #3d2666;
letter-spacing: 0.01em;
max-width: 480px;
}

.ab .t-img-col {
flex: 0 0 400px;
position: relative;
}

.ab .t-img-wrap {
border-radius: 20px;
overflow: hidden;
position: relative;
aspect-ratio: 4/5;
}

.ab .t-img-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .t-img-wrap::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to bottom, rgba(113, 66, 169, 0.45) 0%, transparent 55%);
transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
}

.ab .t-img-wrap:hover img {
transform: scale(1.04);
}

.ab .t-img-wrap:hover::after {
opacity: 0.2;
}

.ab .t-corner-br {
position: absolute;
bottom: -8px;
right: -8px;
width: 32px;
height: 32px;
border-bottom: 2px solid #7142A9;
border-right: 2px solid #7142A9;
border-radius: 0 0 6px 0;
}

.ab .t-corner-tl {
position: absolute;
top: -8px;
left: -8px;
width: 32px;
height: 32px;
border-top: 2px solid #7142A9;
border-left: 2px solid #7142A9;
border-radius: 6px 0 0 0;
}

.ab .divider-curve {
width: 100%;
overflow: hidden;
line-height: 0;
background: #EEE8F2;
}

.ab .divider-curve svg {
display: block;
width: 100%;
}

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

.ab .who::before {
content: "";
position: absolute;
top: 0;
right: 0;
width: 260px;
height: 260px;
border-radius: 50%;
border: 1px solid rgba(113, 66, 169, 0.07);
box-shadow:
0 0 0 40px rgba(113, 66, 169, 0.04),
0 0 0 80px rgba(113, 66, 169, 0.025),
0 0 0 120px rgba(113, 66, 169, 0.012);
pointer-events: none;
}

.ab .who-inner {
max-width: 1170px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 2fr;
gap: 80px;
align-items: start;
}

.ab .who-label {
position: sticky;
top: 40px;
}

.ab .who-label-line {
width: 4px;
height: 48px;
background: #7142A9;
border-radius: 0px;
margin-bottom: 20px;
}

.ab .who-label-h {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1e0f36;
}

.ab .who-label-h span {
font-size: 52px;
color: #7142A9;
line-height: 1.1;
}

.ab .who-body {
display: flex;
flex-direction: column;
gap: 40px;
}

.ab .who-p {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #2a1a45;
margin: 0 80px;
}

.ab .who-p:first-child {
margin: 0 80px;
}

.ab .who-p .accent-letter {
font-size: 28px;
color: #7142A9;
line-height: 1.1;
float: left;
margin-right: 4px;
margin-top: 2px;
}

.ab .who-metrics {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
margin: 0 80px;
}

.ab .met-card {
background: #EEE8F2;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .met-card:hover {
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
transform: translateY(-2px);
}

.ab .met-num {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #7142A9;
display: block;
}

.ab .met-desc {
font-size: 15px;
line-height: 1.35;
color: #3d2666;
margin-top: 8px;
}

.ab .divider-curve-2 {
width: 100%;
overflow: hidden;
line-height: 0;
background: #fff;
}

.ab .divider-curve-2 svg {
display: block;
width: 100%;
}

.ab .team {
background: #1e0f36;
padding: 80px 40px;
position: relative;
overflow: hidden;
}

.ab .team::before {
content: "";
position: absolute;
bottom: -60px;
left: -60px;
width: 320px;
height: 320px;
border-radius: 50%;
border: 1px solid rgba(199, 180, 218, 0.08);
box-shadow:
0 0 0 50px rgba(199, 180, 218, 0.04),
0 0 0 100px rgba(199, 180, 218, 0.02);
pointer-events: none;
}

.ab .team-inner {
max-width: 1170px;
margin: 0 auto;
position: relative;
z-index: 1;
}

.ab .team-top {
display: flex;
flex-direction: row;
gap: 80px;
align-items: flex-start;
margin-bottom: 80px;
}

.ab .team-img-annot {
flex: 0 0 480px;
position: relative;
}

.ab .team-img-wrap {
border-radius: 20px;
overflow: hidden;
position: relative;
aspect-ratio: 16/10;
}

.ab .team-img-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .team-img-wrap::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(30, 15, 54, 0.6) 0%, transparent 60%);
pointer-events: none;
transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .team-img-wrap:hover img {
transform: scale(1.03);
}

.ab .team-img-wrap:hover::after {
opacity: 0.4;
}

.ab .annot {
position: absolute;
background: #7142A9;
color: #fff;
border-radius: 6px;
padding: 8px 12px;
font-size: 15px;
line-height: 1.35;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
pointer-events: none;
}

.ab .annot-1 {
top: 20px;
right: -20px;
}

.ab .annot-2 {
bottom: 20px;
left: -20px;
}

.ab .annot-num {
font-size: 22px;
display: block;
line-height: 1.1;
letter-spacing: 0.01em;
}

.ab .team-txt {
flex: 1 1 0;
}

.ab .team-h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #EEE8F2;
margin-bottom: 20px;
}

.ab .team-h2-line {
width: 4px;
height: 40px;
background: #C7B4DA;
border-radius: 0px;
margin-bottom: 20px;
}

.ab .team-body-p {
font-size: 18px;
line-height: 1.55;
color: #C7B4DA;
letter-spacing: 0.01em;
margin-bottom: 20px;
}

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

.ab .team-list li {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
font-size: 18px;
line-height: 1.35;
color: #EEE8F2;
}

.ab .list-num {
flex-shrink: 0;
width: 32px;
height: 32px;
border-radius: 50%;
background: #7142A9;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
color: #fff;
letter-spacing: 0.01em;
}

.ab .team-cards {
display: grid;
grid-template-columns: 1fr 1.4fr 1fr;
gap: 20px;
}

.ab .tm-card {
background: rgba(199, 180, 218, 0.07);
border: 1px solid rgba(199, 180, 218, 0.15);
border-radius: 20px;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .tm-card:hover {
background: rgba(199, 180, 218, 0.13);
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.ab .tm-card.center {
background: rgba(113, 66, 169, 0.25);
border-color: rgba(113, 66, 169, 0.4);
}

.ab .tm-portrait {
width: 100px;
height: 150px;
border-radius: 12px;
overflow: hidden;
flex-shrink: 0;
}

.ab .tm-portrait img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .tm-card:hover .tm-portrait img {
transform: scale(1.05);
}

.ab .tm-no-portrait {
width: 100px;
height: 100px;
border-radius: 12px;
background: rgba(113, 66, 169, 0.3);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.ab .tm-initials {
font-size: 28px;
color: #C7B4DA;
letter-spacing: 0.02em;
line-height: 1.1;
}

.ab .tm-name {
font-size: 18px;
color: #EEE8F2;
line-height: 1.35;
text-align: center;
letter-spacing: 0.01em;
}

.ab .tm-role {
font-size: 15px;
color: #C7B4DA;
line-height: 1.35;
text-align: center;
}

.ab .tm-quote {
font-size: 15px;
color: #C7B4DA;
line-height: 1.55;
text-align: center;
font-style: italic;
}

.ab .img-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-top: 80px;
}

.ab .img-row-item {
border-radius: 12px;
overflow: hidden;
position: relative;
aspect-ratio: 16/9;
}

.ab .img-row-item img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .img-row-item::after {
content: "";
position: absolute;
inset: 0;
background: rgba(113, 66, 169, 0.35);
pointer-events: none;
transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.ab .img-row-item:hover img {
transform: scale(1.04);
}

.ab .img-row-item:hover::after {
opacity: 0;
}

.ab .hl-cycle span {
transition: color 0.28s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: 6px;
padding: 0 4px;
}

.ab .hl-cycle span:nth-child(1) {
animation: hlWord 4.5s 0s infinite;
}

.ab .hl-cycle span:nth-child(2) {
animation: hlWord 4.5s 1.5s infinite;
}

.ab .hl-cycle span:nth-child(3) {
animation: hlWord 4.5s 3s infinite;
}

@keyframes hlWord {

0%,
20% {
color: #7142A9;
background: rgba(113, 66, 169, 0.12);
}

30%,
100% {
color: inherit;
background: transparent;
}
}

@media (max-width: 960px) {
.ab .t-blk-inner {
flex-direction: column;
gap: 40px;
}

.ab .t-img-col {
flex: 0 0 auto;
width: 100%;
max-width: 400px;
}

.ab .t-h1 {
font-size: 52px;
}

.ab .who-inner {
grid-template-columns: 1fr;
gap: 40px;
}

.ab .who-label {
position: static;
}

.ab .who-p,
.ab .who-p:first-child,
.ab .who-metrics {
margin: 0;
}

.ab .who-metrics {
grid-template-columns: repeat(3, 1fr);
}

.ab .team-top {
flex-direction: column;
gap: 40px;
}

.ab .team-img-annot {
flex: 0 0 auto;
width: 100%;
}

.ab .annot-1 {
right: 8px;
}

.ab .annot-2 {
left: 8px;
}

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

.ab .team-cards .tm-card:last-child {
grid-column: span 2;
}
}

@media (max-width: 480px) {
.ab .t-blk {
padding: 40px 20px 80px;
}

.ab .t-h1 {
font-size: 38px;
}

.ab .t-sub {
font-size: 18px;
}

.ab .who {
padding: 40px 20px;
}

.ab .who-metrics {
grid-template-columns: 1fr;
}

.ab .team {
padding: 40px 20px;
}

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

.ab .team-cards .tm-card:last-child {
grid-column: span 1;
}

.ab .img-row {
grid-template-columns: 1fr;
}

.ab .team-top {
gap: 40px;
}
}

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

.lp .pg_wrap {
max-width: 1170px;
margin: 0 auto;
padding: 0 20px;
}

.lp .title_blk {
position: relative;
padding: 80px 20px 80px;
background: linear-gradient(circle at 0% 0%, #7142A9 0%, #C7B4DA 45%, transparent 80%);
overflow: hidden;
}

.lp .title_blk::before {
content: '';
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(113, 66, 169, 0.07) 1px, transparent 1px),
linear-gradient(90deg, rgba(113, 66, 169, 0.07) 1px, transparent 1px);
background-size: 48px 48px;
pointer-events: none;
}

.lp .title_inner {
max-width: 1170px;
margin: 0 auto;
position: relative;
z-index: 1;
}

.lp .title_eyebrow {
display: inline-block;
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.02em;
color: #fff;
background: rgba(113, 66, 169, 0.55);
padding: 4px 12px;
border-radius: 6px;
margin-bottom: 20px;
}

.lp .title_h1 {
font-size: 52px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #fff;
max-width: 680px;
margin: 0 0 20px;
}

.lp .title_h1 .acc {
color: #EEE8F2;
font-size: 68px;
line-height: 1.1;
display: block;
}

.lp .title_sub {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #EEE8F2;
max-width: 520px;
margin: 0;
}

.lp .title_img_wrap {
position: absolute;
right: 0;
top: 0;
bottom: 0;
width: 42%;
overflow: hidden;
}

.lp .title_img_wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
filter: blur(1px);
}

.lp .title_img_wrap::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, #7142A9 0%, rgba(113, 66, 169, 0.3) 60%, transparent 100%);
}

.lp .cards_sec {
padding: 80px 20px;
background: #fff;
}

.lp .sec_label {
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.02em;
color: #7142A9;
text-align: center;
margin-bottom: 8px;
}

.lp .sec_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1b0d30;
text-align: center;
margin: 0 0 12px;
}

.lp .sec_desc {
font-size: 18px;
line-height: 1.55;
color: #3d2b5a;
text-align: left;
max-width: 480px;
margin: 0 auto 40px;
}

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

.lp .prog_card {
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
background: #fff;
border-top: 4px solid #7142A9;
display: flex;
flex-direction: column;
transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.lp .prog_card:hover {
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
transform: translateY(-4px);
}

.lp .card_img_wrap {
position: relative;
width: 100%;
aspect-ratio: 16/9;
overflow: hidden;
}

.lp .card_img_wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
transition: filter 0.22s cubic-bezier(0.4, 0, 0.2, 1);
filter: saturate(0.7) brightness(0.9);
}

.lp .prog_card:hover .card_img_wrap img {
filter: saturate(1) brightness(1);
}

.lp .card_img_wrap::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(180deg, transparent 40%, rgba(113, 66, 169, 0.18) 100%);
pointer-events: none;
}

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

.lp .card_h3 {
font-size: 22px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #1b0d30;
margin: 0;
position: relative;
padding-left: 12px;
}

.lp .card_h3::before {
content: '';
position: absolute;
left: 0;
top: 4px;
bottom: 4px;
width: 3px;
background: #7142A9;
border-radius: 0px;
}

.lp .card_txt {
font-size: 15px;
line-height: 1.55;
color: #3d2b5a;
margin: 0;
}

.lp .card_meta {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin-top: auto;
gap: 12px;
}

.lp .card_price {
font-size: 22px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #7142A9;
font-weight: 700;
}

.lp .card_likes {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
font-size: 15px;
color: #7142A9;
}

.lp .like_icon {
width: 18px;
height: 18px;
flex-shrink: 0;
}

.lp .card_link {
display: inline-block;
padding: 12px 20px;
background: #7142A9;
color: #fff;
border-radius: 6px;
font-size: 15px;
line-height: 1.35;
letter-spacing: 0.01em;
text-decoration: none;
transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
align-self: flex-start;
}

.lp .card_link:hover {
background: #5a3188;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.lp .card_link:focus {
outline: 2px solid #7142A9;
outline-offset: 3px;
}

.lp .steps_sec {
padding: 80px 20px;
background: #EEE8F2;
position: relative;
}

.lp .steps_sec::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 220px;
height: 220px;
background: repeating-linear-gradient(-55deg,
rgba(113, 66, 169, 0.06) 0px,
rgba(113, 66, 169, 0.06) 1px,
transparent 1px,
transparent 14px);
pointer-events: none;
}

.lp .steps_inner {
max-width: 1170px;
margin: 0 auto;
display: flex;
flex-direction: row;
gap: 80px;
align-items: flex-start;
}

.lp .steps_left {
flex: 0 0 340px;
}

.lp .steps_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1b0d30;
margin: 0 0 20px;
}

.lp .steps_p {
font-size: 15px;
line-height: 1.55;
color: #3d2b5a;
margin: 0;
}

.lp .steps_list {
flex: 1;
display: flex;
flex-direction: column;
gap: 20px;
list-style: none;
padding: 0;
margin: 0;
}

.lp .step_item {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 20px;
background: #fff;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
transition: box-shadow 0.2s cubic-bezier(0.0, 0, 0.2, 1), transform 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.lp .step_item:hover {
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
transform: translateX(4px);
}

.lp .step_num {
width: 40px;
height: 40px;
border-radius: 20px;
background: #7142A9;
color: #fff;
font-size: 18px;
line-height: 1.1;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.lp .step_body {}

.lp .step_h4 {
font-size: 18px;
line-height: 1.35;
letter-spacing: 0.01em;
color: #1b0d30;
margin: 0 0 8px;
}

.lp .step_p {
font-size: 15px;
line-height: 1.55;
color: #3d2b5a;
margin: 0;
}

.lp .wave_div {
width: 100%;
overflow: hidden;
line-height: 0;
}

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

.lp .orbit_sec {
padding: 80px 20px;
background: #fff;
}

.lp .orbit_wrap {
max-width: 1170px;
margin: 0 auto;
display: flex;
flex-direction: column;
align-items: center;
gap: 40px;
}

.lp .orbit_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1b0d30;
text-align: center;
margin: 0;
}

.lp .orbit_sub {
font-size: 18px;
line-height: 1.55;
color: #3d2b5a;
text-align: left;
max-width: 520px;
margin: 0;
}

.lp .orbit_diagram {
position: relative;
width: 480px;
height: 480px;
flex-shrink: 0;
}

.lp .orbit_center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 140px;
height: 140px;
border-radius: 20px;
background: linear-gradient(circle at 0% 0%, #7142A9, #C7B4DA);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
z-index: 2;
}

.lp .orbit_center_label {
font-size: 15px;
line-height: 1.35;
color: #fff;
text-align: center;
padding: 8px;
}

.lp .orbit_ring {
position: absolute;
inset: 20px;
border-radius: 50%;
border: 1px dashed rgba(113, 66, 169, 0.25);
}

.lp .orbit_sat {
position: absolute;
width: 100px;
height: 100px;
border-radius: 12px;
background: #EEE8F2;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 8px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
cursor: default;
}

.lp .orbit_sat:hover {
background: #C7B4DA;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.lp .orbit_sat .sat_lbl {
font-size: 15px;
line-height: 1.35;
color: #1b0d30;
text-align: center;
}

.lp .orbit_sat svg {
margin-bottom: 4px;
}

.lp .sat_top {
top: 0;
left: 50%;
transform: translateX(-50%);
}

.lp .sat_right {
right: 0;
top: 50%;
transform: translateY(-50%);
}

.lp .sat_bottom {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}

.lp .sat_left {
left: 0;
top: 50%;
transform: translateY(-50%);
}

.lp .sat_tr {
top: 12%;
right: 12%;
}

.lp .sat_br {
bottom: 12%;
right: 12%;
}

.lp .sat_bl {
bottom: 12%;
left: 12%;
}

.lp .sat_tl {
top: 12%;
left: 12%;
}

.lp .team_sec {
padding: 80px 20px;
background: #1b0d30;
}

.lp .team_inner {
max-width: 1170px;
margin: 0 auto;
}

.lp .team_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #EEE8F2;
text-align: center;
margin: 0 0 8px;
}

.lp .team_sub {
font-size: 18px;
line-height: 1.55;
color: #C7B4DA;
text-align: left;
max-width: 500px;
margin: 0 auto 40px;
}

.lp .team_grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}

.lp .team_card {
background: rgba(199, 180, 218, 0.08);
border-radius: 12px;
padding: 20px;
display: flex;
flex-direction: column;
gap: 12px;
border-top: 4px solid #7142A9;
transition: background 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.lp .team_card:hover {
background: rgba(199, 180, 218, 0.15);
}

.lp .team_portrait {
width: 80px;
height: 103px;
object-fit: cover;
object-position: center;
flex-shrink: 0;
}

.lp .team_name {
font-size: 18px;
line-height: 1.35;
color: #EEE8F2;
margin: 0;
}

.lp .team_role {
font-size: 15px;
line-height: 1.35;
color: #C7B4DA;
margin: 0;
}

.lp .team_quote {
font-size: 15px;
line-height: 1.55;
color: #C7B4DA;
margin: 0;
font-style: italic;
}

.lp .team_no_portrait {
width: 80px;
height: 103px;
background: rgba(113, 66, 169, 0.25);
border-radius: 0px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}

.lp .team_no_portrait svg {
opacity: 0.5;
}

.lp .wave_div2 svg {
display: block;
width: 100%;
}

.lp .contact_sec {
padding: 80px 20px;
background: #EEE8F2;
}

.lp .contact_inner {
max-width: 720px;
margin: 0 auto;
}

.lp .contact_h2 {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #1b0d30;
text-align: center;
margin: 0 0 12px;
}

.lp .contact_p {
font-size: 18px;
line-height: 1.55;
color: #3d2b5a;
text-align: left;
max-width: 480px;
margin: 0 auto 40px;
}

.lp .contact_form {
background: #fff;
border-radius: 12px;
padding: 40px;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
border-top: 4px solid #7142A9;
}

.lp .form_row {
display: flex;
flex-direction: row;
gap: 20px;
margin-bottom: 20px;
}

.lp .form_field {
display: flex;
flex-direction: column;
gap: 8px;
flex: 1;
}

.lp .form_lbl {
font-size: 15px;
line-height: 1.35;
color: #1b0d30;
}

.lp .form_inp {
padding: 12px;
border: 1px solid #C7B4DA;
border-radius: 6px;
font-size: 15px;
color: #1b0d30;
background: #fff;
box-shadow: inset 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
transition: border-color 0.18s cubic-bezier(0.4, 0, 0.2, 1);
outline: none;
}

.lp .form_inp::placeholder {
color: #9a85b0;
}

.lp .form_inp:focus {
border-color: #7142A9;
}

.lp .form_ta {
min-height: 120px;
resize: vertical;
}

.lp .form_btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 40px;
background: #7142A9;
color: #fff;
border: none;
border-radius: 6px;
font-size: 18px;
line-height: 1.35;
cursor: pointer;
transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.lp .form_btn:hover {
background: #5a3188;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.lp .form_btn:focus {
outline: 2px solid #7142A9;
outline-offset: 3px;
}

@keyframes lp_rotate_in {
from {
opacity: 0;
transform: rotate(-6deg) translateY(24px);
}

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

.lp .title_inner {
animation: lp_rotate_in 0.55s cubic-bezier(0.0, 0, 0.2, 1) both;
}

@media (max-width: 960px) {
.lp .title_h1 {
font-size: 38px;
}

.lp .title_h1 .acc {
font-size: 52px;
}

.lp .title_img_wrap {
width: 35%;
}

.lp .cards_grid {
grid-template-columns: 1fr;
gap: 20px;
}

.lp .steps_inner {
flex-direction: column;
gap: 40px;
}

.lp .steps_left {
flex: none;
}

.lp .orbit_diagram {
width: 340px;
height: 340px;
}

.lp .orbit_center {
width: 110px;
height: 110px;
}

.lp .orbit_sat {
width: 76px;
height: 76px;
}

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

.lp .form_row {
flex-direction: column;
}
}

@media (max-width: 480px) {
.lp .title_blk {
padding: 40px 20px;
}

.lp .title_img_wrap {
display: none;
}

.lp .title_h1 {
font-size: 28px;
}

.lp .title_h1 .acc {
font-size: 38px;
}

.lp .sec_h2,
.lp .steps_h2,
.lp .orbit_h2,
.lp .team_h2,
.lp .contact_h2 {
font-size: 28px;
}

.lp .orbit_diagram {
width: 300px;
height: 300px;
}

.lp .orbit_sat {
width: 64px;
height: 64px;
}

.lp .orbit_sat .sat_lbl {
font-size: 12px;
}

.lp .team_grid {
grid-template-columns: 1fr;
}

.lp .contact_form {
padding: 20px;
}
}

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

.cert .pg-wrap {
max-width: 1170px;
margin: 0 auto;
padding: 0 20px;
}

.cert .sweep-head {
display: inline-block;
background: linear-gradient(90deg, #7142A9 0%, #7142A9 50%, #2a1a40 50%, #2a1a40 100%);
background-size: 200% 100%;
background-position: 100% 0;
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
animation: sweep-txt 1.1s cubic-bezier(0.0, 0, 0.2, 1) 0.2s forwards;
}

@keyframes sweep-txt {
0% {
background-position: 100% 0;
}

100% {
background-position: 0% 0;
}
}

.cert .flicker-outline {
animation: flicker-out 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes flicker-out {

0%,
100% {
outline: 2px solid rgba(113, 66, 169, 0.18);
outline-offset: 3px;
}

48% {
outline: 2px solid rgba(113, 66, 169, 0.06);
outline-offset: 3px;
}

52% {
outline: 2px solid rgba(113, 66, 169, 0.22);
outline-offset: 3px;
}
}

.cert .s1 {
background: #fff;
padding: 80px 20px 80px;
position: relative;
}

.cert .s1-inner {
max-width: 1170px;
margin: 0 auto;
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 80px;
}

.cert .s1-left {
flex: 0 0 60%;
position: relative;
}

.cert .s1-right {
flex: 0 0 calc(40% - 80px);
padding-top: 20px;
}

.cert .s1-num {
font-size: 68px;
line-height: 1.1;
font-weight: 800;
color: #7142A9;
letter-spacing: 0.01em;
display: block;
}

.cert .s1-num-bar {
width: 120px;
height: 3px;
background: linear-gradient(90deg, #7142A9, #C7B4DA);
margin: 8px 0 20px 0;
border-radius: 0px;
}

.cert .s1-h1 {
font-size: 52px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #2a1a40;
margin: 0 0 20px 0;
font-weight: 700;
}

.cert .s1-h1 .first-letter {
font-size: 68px;
color: #7142A9;
line-height: 1;
display: inline-block;
margin-right: 2px;
}

.cert .s1-sub {
font-size: 18px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0;
}

.cert .s1-right-label {
font-size: 15px;
line-height: 1.35;
color: #7142A9;
letter-spacing: 0.02em;
font-weight: 600;
text-transform: uppercase;
margin: 0 0 12px 0;
}

.cert .s1-right-p {
font-size: 15px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0;
}

.cert .corner-line-tl {
position: absolute;
top: 0;
left: 0;
width: 48px;
height: 48px;
pointer-events: none;
}

.cert .corner-line-br {
position: absolute;
bottom: 0;
right: 0;
width: 48px;
height: 48px;
pointer-events: none;
}

.cert .s1-dots {
position: absolute;
top: -20px;
right: -40px;
pointer-events: none;
width: 120px;
height: 120px;
}

.cert .divider-a {
width: 100%;
height: 6px;
background: linear-gradient(90deg, transparent 0%, #C7B4DA 30%, #7142A9 100%);
}

.cert .s2 {
background: #EEE8F2;
padding: 80px 20px;
position: relative;
}

.cert .s2-inner {
max-width: 1170px;
margin: 0 auto;
}

.cert .s2-top {
display: flex;
flex-direction: row;
gap: 80px;
align-items: flex-start;
margin-bottom: 80px;
}

.cert .s2-top-left {
flex: 0 0 60%;
}

.cert .s2-top-right {
flex: 1;
}

.cert .s2-h2 {
font-size: 38px;
line-height: 1.1;
color: #2a1a40;
letter-spacing: 0.01em;
margin: 0 0 20px 0;
font-weight: 700;
text-align: center;
padding-left: 16px;
border-top: 4px solid #7142A9;
padding-top: 12px;
}

.cert .s2-h2-accent {
color: #7142A9;
}

.cert .s2-body {
font-size: 18px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0 0 20px 0;
text-align: left;
}

.cert .s2-status-bar {
background: #fff;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.cert .s2-status-label {
font-size: 15px;
color: #7142A9;
font-weight: 600;
letter-spacing: 0.02em;
margin: 0 0 12px 0;
text-align: left;
}

.cert .s2-bar-row {
display: flex;
flex-direction: column;
gap: 12px;
}

.cert .s2-bar-item {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
}

.cert .s2-bar-name {
font-size: 15px;
color: #2a1a40;
letter-spacing: 0.01em;
min-width: 90px;
flex-shrink: 0;
}

.cert .s2-bar-track {
flex: 1;
height: 8px;
background: #EEE8F2;
border-radius: 6px;
overflow: hidden;
}

.cert .s2-bar-fill {
height: 100%;
border-radius: 6px;
background: linear-gradient(90deg, #7142A9, #C7B4DA);
transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.cert .s2-bar-pct {
font-size: 15px;
color: #7142A9;
font-weight: 700;
min-width: 36px;
text-align: right;
}

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

.cert .cert-card {
background: #fff;
border-radius: 12px;
padding: 20px;
box-shadow: 1px 2px 2px 0 rgba(113, 66, 169, 0.05);
transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
}

.cert .cert-card:hover {
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.cert .cert-card-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: 50%;
background: #7142A9;
color: #fff;
font-size: 15px;
font-weight: 700;
margin-bottom: 12px;
flex-shrink: 0;
}

.cert .cert-card-h {
font-size: 18px;
line-height: 1.35;
color: #2a1a40;
font-weight: 700;
letter-spacing: 0.01em;
margin: 0 0 8px 0;
text-align: left;
}

.cert .cert-card-p {
font-size: 15px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0;
}

.cert .cert-card-tag {
display: inline-block;
margin-top: 12px;
padding: 4px 12px;
border-radius: 6px;
background: #EEE8F2;
color: #7142A9;
font-size: 15px;
font-weight: 600;
letter-spacing: 0.01em;
}

.cert .divider-b {
width: 100%;
height: 1px;
background: linear-gradient(90deg, #7142A9 0%, #C7B4DA 60%, transparent 100%);
}

.cert .s3 {
background: #fff;
padding: 80px 20px;
position: relative;
}

.cert .s3-inner {
max-width: 1170px;
margin: 0 auto;
display: flex;
flex-direction: row;
gap: 80px;
align-items: flex-start;
}

.cert .s3-left {
flex: 0 0 55%;
}

.cert .s3-right {
flex: 1;
}

.cert .s3-h2 {
font-size: 38px;
line-height: 1.1;
color: #2a1a40;
font-weight: 700;
letter-spacing: 0.01em;
margin: 0 0 20px 0;
text-align: left;
}

.cert .s3-h2 .first-letter {
font-size: 52px;
color: #7142A9;
line-height: 1;
display: inline-block;
}

.cert .s3-body {
font-size: 18px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0 0 20px 0;
}

.cert .s3-body-sm {
font-size: 15px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0 0 20px 0;
}

.cert .s3-img-wrap {
position: relative;
width: 100%;
aspect-ratio: 4/3;
border-radius: 12px;
overflow: hidden;
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.cert .s3-img-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), filter 0.28s cubic-bezier(0.4, 0, 0.2, 1);
filter: grayscale(60%) saturate(0.7);
}

.cert .s3-img-wrap:hover img {
transform: translateX(-4%);
filter: grayscale(0%) saturate(1);
}

.cert .s3-img-tint {
position: absolute;
inset: 0;
background: rgba(113, 66, 169, 0.22);
transition: opacity 0.28s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
border-radius: 12px;
}

.cert .s3-img-wrap:hover .s3-img-tint {
opacity: 0;
}

.cert .team-list {
display: flex;
flex-direction: column;
gap: 20px;
margin-top: 40px;
}

.cert .team-item {
display: flex;
flex-direction: row;
gap: 12px;
align-items: flex-start;
}

.cert .team-portrait {
width: 80px;
height: 120px;
object-fit: cover;
object-position: center;
flex-shrink: 0;
display: block;
}

.cert .team-info {
display: flex;
flex-direction: column;
gap: 8px;
padding-top: 4px;
}

.cert .team-name {
font-size: 18px;
line-height: 1.35;
color: #2a1a40;
font-weight: 700;
letter-spacing: 0.01em;
margin: 0;
}

.cert .team-role {
font-size: 15px;
color: #7142A9;
font-weight: 600;
letter-spacing: 0.02em;
margin: 0;
}

.cert .team-desc {
font-size: 15px;
line-height: 1.55;
color: #3d2a5a;
letter-spacing: 0.01em;
margin: 0;
}

.cert .rating-block {
background: #EEE8F2;
border-radius: 12px;
padding: 20px;
margin-top: 40px;
display: flex;
flex-direction: row;
align-items: center;
gap: 20px;
}

.cert .rating-num {
font-size: 52px;
line-height: 1.1;
color: #7142A9;
font-weight: 800;
letter-spacing: 0.01em;
flex-shrink: 0;
}

.cert .rating-bar-col {
flex: 1;
}

.cert .rating-bar-label {
font-size: 15px;
color: #3d2a5a;
margin: 0 0 8px 0;
letter-spacing: 0.01em;
}

.cert .rating-bar-track {
width: 100%;
height: 8px;
background: #C7B4DA;
border-radius: 6px;
overflow: hidden;
}

.cert .rating-bar-fill {
height: 100%;
width: 96%;
background: #7142A9;
border-radius: 6px;
}

.cert .rating-count {
font-size: 15px;
color: #7142A9;
font-weight: 600;
margin: 8px 0 0 0;
letter-spacing: 0.01em;
}

@media (max-width: 960px) {
.cert .s1-inner {
flex-direction: column;
gap: 40px;
}

.cert .s1-left {
flex: none;
width: 100%;
}

.cert .s1-right {
flex: none;
width: 100%;
}

.cert .s2-top {
flex-direction: column;
gap: 40px;
}

.cert .s2-top-left {
flex: none;
width: 100%;
}

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

.cert .s3-inner {
flex-direction: column;
gap: 40px;
}

.cert .s3-left {
flex: none;
width: 100%;
}

.cert .s3-right {
flex: none;
width: 100%;
}

.cert .s1-h1 {
font-size: 38px;
}

.cert .s1-h1 .first-letter {
font-size: 52px;
}

.cert .s1-num {
font-size: 52px;
}
}

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

.cert .s1-h1 {
font-size: 28px;
}

.cert .s1-h1 .first-letter {
font-size: 38px;
}

.cert .s1-num {
font-size: 38px;
}

.cert .s2-h2 {
font-size: 28px;
}

.cert .s3-h2 {
font-size: 28px;
}

.cert .s3-h2 .first-letter {
font-size: 38px;
}

.cert .rating-block {
flex-direction: column;
align-items: flex-start;
}

.cert .s1 {
padding: 40px 20px;
}

.cert .s2 {
padding: 40px 20px;
}

.cert .s3 {
padding: 40px 20px;
}
}

.suc_pg {
min-height: 80vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 80px 20px;
background: #EEE8F2;
}

.suc_pg .suc_card {
background: #fff;
border-radius: 20px;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
padding: 80px 40px;
max-width: 560px;
width: 100%;
text-align: center;
}

.suc_pg .suc_icon {
width: 64px;
height: 64px;
margin: 0 auto 40px;
display: block;
}

.suc_pg .suc_title {
font-size: 38px;
line-height: 1.1;
letter-spacing: 0.01em;
color: #7142A9;
margin: 0 0 20px;
}

.suc_pg .suc_txt {
font-size: 18px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #3a2a4d;
margin: 0 0 40px;
}

.suc_pg .suc_btn {
display: inline-block;
padding: 12px 40px;
background: #7142A9;
color: #fff;
font-size: 15px;
letter-spacing: 0.02em;
line-height: 1.35;
border-radius: 12px;
text-decoration: none;
border: none;
cursor: pointer;
transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.0, 0, 0.2, 1);
box-shadow: 1px 5px 18px 0 rgba(113, 66, 169, 0.11);
}

.suc_pg .suc_btn:hover {
background: #5a3388;
box-shadow: 1px 9px 44px 0 rgba(113, 66, 169, 0.12);
}

.suc_pg .suc_btn:focus {
outline: 2px solid #7142A9;
outline-offset: 4px;
}

.suc_pg .suc_btn:active {
background: #4a2a72;
}

.suc_pg .suc_note {
font-size: 15px;
line-height: 1.55;
letter-spacing: 0.01em;
color: #7142A9;
margin: 20px 0 0;
}

@media (max-width: 480px) {
.suc_pg {
padding: 40px 20px;
}

.suc_pg .suc_card {
padding: 40px 20px;
}

.suc_pg .suc_title {
font-size: 28px;
}
}