@charset "UTF-8";

html,
body {
margin: 0;
padding: 0;
}

body {
min-height: 100dvh;
overflow-x: hidden;
font-family: 'Archivo', sans-serif;
}

*:focus-visible {
outline: 3px solid #88909E;
outline-offset: 2px;
}

.brand-bar {
background: linear-gradient(135deg, #EFF1F7 0%, #ffffff 60%, #A2C1DB22 100%);
border-bottom: 2px solid #A2C1DB;
padding: 20px 40px;
}

.brand-bar__pod {
max-width: 1280px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
}

.brand__mark {
display: flex;
align-items: center;
gap: 20px;
text-decoration: none;
}

.brand__mark-cell {
width: 40px;
height: 48px;
border-radius: 4px;
background: #ffffff;
border: 1.5px solid #A2C1DB;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -1px 0 rgba(136, 144, 158, 0.12);
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
flex-shrink: 0;
}

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

.brand__name {
font-size: 33px;
font-weight: 700;
line-height: 1.1;
color: #2c3340;
letter-spacing: -0.5px;
}

.brand__tagline {
font-size: 14px;
line-height: 1.6;
color: #88909E;
font-weight: 400;
}

.brand-bar__action {
display: flex;
align-items: center;
gap: 10px;
}

.act-link {
display: inline-block;
font-size: 14px;
font-weight: 700;
line-height: 1.1;
color: #2c3340;
text-decoration: none;
border: 2px solid #2c3340;
border-radius: 4px;
padding: 10px 20px;
transition: background-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
min-height: 44px;
box-sizing: border-box;
}

.act-link:hover {
background-color: #2c3340;
color: #ffffff;
filter: brightness(1.08);
}

.nav-bar {
background: #2c3340;
padding: 0 40px;
}

.nav-bar__pod {
max-width: 1280px;
margin: 0 auto;
display: flex;
align-items: stretch;
flex-wrap: wrap;
}

.nav-bar__item {
display: inline-flex;
align-items: center;
}

.nav-bar__lnk {
display: flex;
align-items: center;
gap: 10px;
font-size: 14px;
font-weight: 400;
line-height: 1.6;
color: #EFF1F7;
text-decoration: none;
padding: 20px 20px;
min-height: 44px;
border-bottom: 3px solid transparent;
transition: border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.25s cubic-bezier(0.0, 0, 0.2, 1);
box-sizing: border-box;
white-space: nowrap;
}

.nav-bar__lnk:hover {
color: #A2C1DB;
border-bottom-color: #A2C1DB;
}

.nav-bar__lnk i {
font-size: 14px;
color: #88909E;
}

.ftr-base {
background: #EFF1F7;
border-top: 2px solid #A2C1DB;
}

.ftr-upper {
max-width: 1280px;
margin: 0 auto;
padding: 80px 40px 40px;
}

.ftr-upper__deck {
display: flex;
gap: 40px;
flex-wrap: wrap;
align-items: flex-start;
justify-content: space-between;
}

.ftr-brand__cell {
flex: 0 0 auto;
display: flex;
flex-direction: column;
gap: 20px;
min-width: 200px;
}

.ftr-logo__pod {
width: 40px;
height: 48px;
border-radius: 4px;
background: #ffffff;
border: 1.5px solid #A2C1DB;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11), inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -1px 0 rgba(136, 144, 158, 0.1);
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}

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

.ftr-brand__name {
font-size: 19px;
font-weight: 700;
line-height: 1.1;
color: #2c3340;
}

.ftr-brand__desc {
font-size: 14px;
line-height: 1.6;
color: #88909E;
max-width: 240px;
}

.ftr-col {
flex: 1 1 160px;
min-width: 140px;
}

.ftr-col__label {
font-size: 14px;
font-weight: 700;
line-height: 1.1;
color: #2c3340;
text-transform: uppercase;
letter-spacing: 0.06em;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1.5px solid #A2C1DB;
}

.ftr-col__list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 10px;
}

.ftr-col__lnk {
font-size: 14px;
line-height: 1.6;
color: #88909E;
text-decoration: none;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
display: inline-flex;
align-items: center;
gap: 10px;
}

.ftr-col__lnk:hover {
color: #2c3340;
}

.ftr-contact__item {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin-bottom: 10px;
}

.ftr-contact__item i {
font-size: 14px;
color: #A2C1DB;
margin-top: 2px;
flex-shrink: 0;
}

.ftr-contact__lnk {
color: #88909E;
text-decoration: none;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ftr-contact__lnk:hover {
color: #2c3340;
}

.ftr-lower {
border-top: 1px solid #A2C1DB55;
max-width: 1280px;
margin: 0 auto;
padding: 20px 40px;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 10px;
}

.ftr-copy {
font-size: 14px;
line-height: 1.6;
color: #88909E;
}

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

.ftr-legal__lnk {
font-size: 14px;
line-height: 1.6;
color: #88909E;
text-decoration: none;
transition: color 0.24s cubic-bezier(0.0, 0, 0.2, 1);
}

.ftr-legal__lnk:hover {
color: #2c3340;
}

.cookie-strip {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #2c3340;
border-top: 2px solid #A2C1DB;
z-index: 1000;
padding: 20px 40px;
box-shadow: 0 12px 48px 0 rgba(136, 144, 158, 0.12);
}

.cookie-strip__pod {
max-width: 1280px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
flex-wrap: wrap;
}

.cookie-strip__msg {
font-size: 14px;
line-height: 1.6;
color: #EFF1F7;
flex: 1 1 300px;
}

.cookie-strip__acts {
display: flex;
gap: 20px;
align-items: center;
flex-shrink: 0;
}

.cookie-strip__btn {
font-size: 14px;
font-weight: 700;
line-height: 1.6;
background: none;
border: none;
cursor: pointer;
padding: 0;
text-decoration: underline;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
min-height: 44px;
}

.cookie-strip__btn--ok {
color: #A2C1DB;
}

.cookie-strip__btn--ok:hover,
.cookie-strip__btn--ok:focus-visible {
color: #ffffff;
}

.cookie-strip__btn--no {
color: #88909E;
}

.cookie-strip__btn--no:hover,
.cookie-strip__btn--no:focus-visible {
color: #EFF1F7;
}

@media (max-width: 768px) {
.brand-bar {
padding: 20px;
}

.brand-bar__pod {
flex-direction: column;
align-items: flex-start;
gap: 20px;
}

.nav-bar {
padding: 0 20px;
}

.nav-bar__lnk {
padding: 20px 10px;
}

.ftr-upper {
padding: 40px 20px 20px;
}

.ftr-upper__deck {
flex-direction: column;
gap: 40px;
}

.ftr-lower {
padding: 20px;
flex-direction: column;
align-items: flex-start;
}

.cookie-strip {
padding: 20px;
}

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

.policy-body {
max-width: 1280px;
margin: 0 auto;
padding: 80px 40px;
color: #2d3340;
line-height: 1.6;
font-size: 19px;
}

.policy-body h1 {
font-size: 46px;
line-height: 1.1;
color: #1e2330;
margin-bottom: 40px;
margin-top: 0;
padding-bottom: 20px;
border-bottom: 3px solid #A2C1DB;
}

.policy-body h2 {
font-size: 33px;
line-height: 1.1;
color: #1e2330;
margin-top: 80px;
margin-bottom: 20px;
padding-left: 20px;
border-left: 4px solid #A2C1DB;
border-bottom: 1px solid #EFF1F7;
padding-bottom: 10px;
}

.policy-body h3 {
font-size: 19px;
line-height: 1.6;
color: #2d3340;
margin-top: 40px;
margin-bottom: 20px;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}

.policy-body h4 {
font-size: 19px;
line-height: 1.6;
color: #88909E;
margin-top: 40px;
margin-bottom: 10px;
font-weight: 600;
}

.policy-body h5 {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin-top: 20px;
margin-bottom: 10px;
font-weight: 700;
text-transform: uppercase;
}

.policy-body h6 {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin-top: 20px;
margin-bottom: 10px;
font-weight: 600;
}

.policy-body strong,
.policy-body b {
font-weight: 700;
color: #1e2330;
}

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

.policy-body a:hover {
color: #A2C1DB;
text-decoration-color: #A2C1DB;
}

.policy-body a:visited {
color: #7a7fb8;
}

.policy-body table {
width: 100%;
border-collapse: collapse;
margin-top: 40px;
margin-bottom: 40px;
font-size: 14px;
line-height: 1.6;
border-radius: 4px;
overflow: hidden;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08), 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.policy-body thead {
background-color: #A2C1DB;
}

.policy-body thead tr {
border-bottom: none;
}

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

.policy-body tbody tr:nth-child(even) {
background-color: #EFF1F7;
}

.policy-body tbody tr:hover {
background-color: #ddeaf4;
}

.policy-body th {
padding: 20px;
text-align: left;
font-size: 14px;
font-weight: 700;
color: #1e2330;
text-transform: uppercase;
}

.policy-body td {
padding: 20px;
color: #2d3340;
vertical-align: top;
}

.policy-body hr {
border: none;
border-top: 2px solid #EFF1F7;
margin-top: 40px;
margin-bottom: 40px;
}

.policy-body div {
margin-bottom: 20px;
}

@media (max-width: 900px) {
.policy-body {
padding: 40px 20px;
font-size: 19px;
}

.policy-body h1 {
font-size: 33px;
}

.policy-body h2 {
font-size: 19px;
margin-top: 40px;
}

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

@media (max-width: 600px) {
.policy-body {
padding: 40px 10px;
}

.policy-body h1 {
font-size: 33px;
}

.policy-body th,
.policy-body td {
padding: 10px;
}
}

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

.ctus__inner {
max-width: 1280px;
margin: 0 auto;
}

.ctus__hero {
padding: 80px 40px;
background-color: #EFF1F7;
position: relative;
overflow: hidden;
}

.ctus__hero-grid {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 80px;
max-width: 1280px;
margin: 0 auto;
}

.ctus__hero-left {
flex: 0 0 55%;
position: relative;
z-index: 1;
}

.ctus__hero-right {
flex: 1;
display: flex;
flex-direction: column;
gap: 40px;
padding-top: 20px;
}

.ctus__geo-shape {
position: absolute;
top: -40px;
right: -60px;
width: 320px;
height: 320px;
border: 2px solid rgba(162, 193, 219, 0.18);
border-radius: 36px;
transform: rotate(18deg);
pointer-events: none;
}

.ctus__geo-shape--sm {
width: 160px;
height: 160px;
top: 60px;
right: 40px;
border-color: rgba(136, 144, 158, 0.12);
border-radius: 20px;
transform: rotate(-8deg);
}

.ctus__label {
display: inline-block;
font-size: 14px;
line-height: 1.1;
color: #88909E;
border: 2px solid #A2C1DB;
border-radius: 4px;
padding: 10px 20px;
margin-bottom: 20px;
letter-spacing: 0.08em;
text-transform: uppercase;
}

.ctus__h1 {
font-size: 62px;
line-height: 1.1;
color: #1e2430;
font-weight: 800;
margin: 0 0 20px 0;
max-width: 560px;
}

.ctus__sub {
font-size: 19px;
line-height: 1.6;
color: #3a4150;
margin: 0;
max-width: 420px;
}

.ctus__img-wrap {
position: relative;
width: 100%;
}

.ctus__img-wrap img {
width: 100%;
aspect-ratio: 4/3;
object-fit: cover;
display: block;
border-radius: 20px;
clip-path: polygon(0 0, 92% 0, 100% 8%, 100% 100%, 8% 100%, 0 92%);
box-shadow: 0 12px 48px 0 rgba(162, 193, 219, 0.12);
}

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

.ctus__stat {
flex: 1;
background: #fff;
border-radius: 20px;
padding: 20px;
border: 2px solid #EFF1F7;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
transition: box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.ctus__stat:hover {
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
border-color: #A2C1DB;
}

.ctus__stat-num {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #1e2430;
display: block;
}

.ctus__stat-lbl {
font-size: 14px;
line-height: 1.6;
color: #88909E;
display: block;
margin-top: 10px;
}

.ctus__divider-wave {
width: 100%;
overflow: hidden;
line-height: 0;
background: #EFF1F7;
}

.ctus__divider-wave svg {
display: block;
width: 100%;
}

.ctus__form-sec {
padding: 80px 40px;
background: #fff;
position: relative;
}

.ctus__form-sec::before {
content: '';
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(162, 193, 219, 0.07) 1px, transparent 1px),
linear-gradient(90deg, rgba(162, 193, 219, 0.07) 1px, transparent 1px),
linear-gradient(rgba(162, 193, 219, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(162, 193, 219, 0.03) 1px, transparent 1px);
background-size: 60px 60px, 60px 60px, 20px 20px, 20px 20px;
pointer-events: none;
}

.ctus__form-grid {
display: flex;
flex-direction: row;
gap: 80px;
max-width: 1280px;
margin: 0 auto;
position: relative;
z-index: 1;
}

.ctus__form-aside {
flex: 0 0 38%;
display: flex;
flex-direction: column;
gap: 40px;
}

.ctus__form-main {
flex: 1;
}

.ctus__h2 {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #1e2430;
margin: 0 0 20px 0;
}

.ctus__aside-text {
font-size: 19px;
line-height: 1.6;
color: #3a4150;
margin: 0;
}

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

.ctus__contact-item {
display: flex;
flex-direction: column;
gap: 10px;
padding: 20px;
border-radius: 20px;
border: 2px solid #EFF1F7;
border-left: 4px solid #A2C1DB;
background: #fff;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
transition: border-color 0.24s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.ctus__contact-item:hover {
border-color: #A2C1DB;
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.ctus__contact-kind {
font-size: 14px;
line-height: 1.1;
color: #88909E;
text-transform: uppercase;
letter-spacing: 0.07em;
}

.ctus__contact-val {
font-size: 19px;
line-height: 1.6;
color: #1e2430;
font-weight: 600;
text-decoration: none;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ctus__contact-val:hover {
color: #88909E;
}

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

.ctus__field {
display: flex;
flex-direction: column;
gap: 10px;
}

.ctus__field-lbl {
font-size: 14px;
line-height: 1.1;
color: #3a4150;
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
}

.ctus__input {
font-size: 19px;
line-height: 1.6;
color: #1e2430;
background: #fff;
border: 2px solid #EFF1F7;
border-radius: 4px;
padding: 10px 20px;
width: 100%;
box-sizing: border-box;
outline: none;
box-shadow: inset 0 2px 4px 0 rgba(162, 193, 219, 0.08), inset 0 -1px 2px 0 rgba(136, 144, 158, 0.04);
transition: border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.ctus__input::placeholder {
font-size: 14px;
color: #88909E;
}

.ctus__input:focus {
border-color: #A2C1DB;
box-shadow: inset 0 2px 4px 0 rgba(162, 193, 219, 0.08), inset 0 -1px 2px 0 rgba(136, 144, 158, 0.04), 0 0 0 3px rgba(162, 193, 219, 0.18);
}

.ctus__radio-group {
display: flex;
flex-direction: column;
gap: 10px;
}

.ctus__radio-opt {
display: flex;
flex-direction: row;
align-items: center;
gap: 10px;
padding: 10px 20px;
border-radius: 4px;
border: 2px solid #EFF1F7;
cursor: pointer;
transition: border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.ctus__radio-opt:hover {
border-color: #A2C1DB;
background: rgba(162, 193, 219, 0.06);
}

.ctus__radio-opt input[type="radio"] {
accent-color: #88909E;
width: 18px;
height: 18px;
cursor: pointer;
flex-shrink: 0;
}

.ctus__radio-txt {
font-size: 19px;
line-height: 1.6;
color: #3a4150;
}

.ctus__privacy {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 10px;
padding: 20px;
border-radius: 4px;
background: #EFF1F7;
border: 2px solid transparent;
transition: border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.ctus__privacy:focus-within {
border-color: #A2C1DB;
}

.ctus__privacy input[type="checkbox"] {
accent-color: #88909E;
width: 18px;
height: 18px;
flex-shrink: 0;
margin-top: 4px;
cursor: pointer;
}

.ctus__privacy-txt {
font-size: 14px;
line-height: 1.6;
color: #3a4150;
margin: 0;
}

.ctus__privacy-txt a {
color: #1e2430;
font-weight: 600;
text-decoration: none;
border-bottom: 2px solid #A2C1DB;
transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ctus__privacy-txt a:hover {
color: #88909E;
border-color: #88909E;
}

.ctus__btn {
display: inline-block;
font-size: 19px;
line-height: 1.6;
font-weight: 700;
color: #1e2430;
background: transparent;
border: 3px solid #1e2430;
border-radius: 4px;
padding: 10px 40px;
cursor: pointer;
letter-spacing: 0.04em;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1), color 0.22s cubic-bezier(0.4, 0, 0.2, 1), filter 0.2s cubic-bezier(0.0, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
align-self: flex-start;
}

.ctus__btn:hover {
background: #1e2430;
color: #EFF1F7;
filter: brightness(1.12);
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.ctus__btn:focus {
outline: 3px solid #A2C1DB;
outline-offset: 3px;
}

.ctus__btn:active {
filter: brightness(0.95);
}

.ctus__divider-line {
width: 100%;
height: 2px;
background: linear-gradient(97deg, #EFF1F7 0%, #A2C1DB 40%, #88909E 70%, #EFF1F7 100%);
}

.ctus__roles-sec {
padding: 80px 40px;
background: #1e2430;
position: relative;
overflow: hidden;
}

.ctus__roles-sec::before {
content: '';
position: absolute;
top: -80px;
left: -80px;
width: 400px;
height: 400px;
border: 2px solid rgba(162, 193, 219, 0.08);
border-radius: 36px;
transform: rotate(22deg);
pointer-events: none;
}

.ctus__roles-sec::after {
content: '';
position: absolute;
bottom: -40px;
right: -40px;
width: 240px;
height: 240px;
border: 2px solid rgba(162, 193, 219, 0.06);
border-radius: 20px;
transform: rotate(-14deg);
pointer-events: none;
}

.ctus__roles-top {
max-width: 1280px;
margin: 0 auto 40px auto;
display: flex;
flex-direction: row;
align-items: flex-end;
justify-content: space-between;
gap: 40px;
}

.ctus__h2--inv {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #EFF1F7;
margin: 0;
}

.ctus__roles-note {
font-size: 19px;
line-height: 1.6;
color: #A2C1DB;
margin: 0;
max-width: 320px;
text-align: right;
}

.ctus__roles-grid {
display: flex;
flex-direction: row;
gap: 20px;
max-width: 1280px;
margin: 0 auto;
position: relative;
z-index: 1;
}

.ctus__role-col {
flex: 1;
background: rgba(162, 193, 219, 0.06);
border-radius: 20px;
padding: 40px 20px;
border: 2px solid rgba(162, 193, 219, 0.12);
display: flex;
flex-direction: column;
gap: 20px;
transition: border-color 0.24s cubic-bezier(0.4, 0, 0.2, 1), background 0.22s cubic-bezier(0.0, 0, 0.2, 1);
box-shadow: 0 3px 5px 0 rgba(162, 193, 219, 0.08);
}

.ctus__role-col:hover {
border-color: rgba(162, 193, 219, 0.38);
background: rgba(162, 193, 219, 0.1);
}

.ctus__role-icon {
width: 40px;
height: 40px;
flex-shrink: 0;
}

.ctus__role-h {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #EFF1F7;
margin: 0;
}

.ctus__role-txt {
font-size: 14px;
line-height: 1.6;
color: #A2C1DB;
margin: 0;
}

.ctus__role-tag {
display: inline-block;
font-size: 14px;
line-height: 1.1;
color: #88909E;
border: 2px solid rgba(136, 144, 158, 0.3);
border-radius: 4px;
padding: 10px 20px;
margin-top: auto;
}

@keyframes ctus-rotate-in {
from {
opacity: 0;
transform: rotate(-6deg) translateY(20px);
}

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

.ctus__hero-left {
animation: ctus-rotate-in 0.56s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.ctus__hero-right {
animation: ctus-rotate-in 0.52s 0.1s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.ctus__form-main {
animation: ctus-rotate-in 0.48s 0.08s cubic-bezier(0.4, 0, 0.2, 1) both;
}

@media (max-width: 1024px) {
.ctus__hero-grid {
flex-direction: column;
gap: 40px;
}

.ctus__hero-left {
flex: none;
}

.ctus__hero-right {
flex: none;
}

.ctus__form-grid {
flex-direction: column;
gap: 40px;
}

.ctus__form-aside {
flex: none;
}

.ctus__roles-grid {
flex-wrap: wrap;
}

.ctus__role-col {
flex: 0 0 calc(50% - 10px);
}

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

.ctus__roles-note {
text-align: left;
}
}

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

.ctus__h1 {
font-size: 46px;
}

.ctus__stat-row {
flex-direction: column;
}

.ctus__form-sec {
padding: 40px 20px;
}

.ctus__roles-sec {
padding: 40px 20px;
}

.ctus__role-col {
flex: 0 0 100%;
}

.ctus__h2 {
font-size: 33px;
}

.ctus__h2--inv {
font-size: 33px;
}

.ctus__roles-grid {
flex-direction: column;
}

.ctus__btn {
width: 100%;
text-align: center;
}
}

@media (max-width: 480px) {
.ctus__h1 {
font-size: 33px;
}

.ctus__hero {
padding: 40px 20px;
}

.ctus__stat-num {
font-size: 33px;
}
}

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

.ptl__wrap {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
}

.ptl__hero {
display: flex;
flex-direction: row;
align-items: stretch;
min-height: 560px;
background: #fff;
}

.ptl__hero-txt {
flex: 0 0 50%;
display: flex;
flex-direction: column;
justify-content: center;
padding: 80px 40px 80px 80px;
}

.ptl__hero-label {
font-size: 14px;
line-height: 1.6;
color: #88909E;
letter-spacing: 0.08em;
text-transform: uppercase;
margin-bottom: 20px;
}

.ptl__hero-h1 {
font-size: 62px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
margin: 0 0 20px 0;
}

.ptl__hero-sub {
font-size: 19px;
line-height: 1.6;
color: #3a4250;
max-width: 420px;
margin: 0 0 40px 0;
}

.ptl__hero-link {
display: inline-block;
font-size: 14px;
font-weight: 700;
color: #1e2530;
border: 2px solid #1e2530;
border-radius: 4px;
padding: 10px 20px;
text-decoration: none;
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1), color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
align-self: flex-start;
}

.ptl__hero-link:hover {
background: #1e2530;
color: #fff;
filter: brightness(1.08);
}

.ptl__hero-img {
flex: 0 0 50%;
position: relative;
overflow: hidden;
}

.ptl__hero-img img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
aspect-ratio: 4/3;
}

.ptl__approach {
background: #EFF1F7;
padding: 80px 0;
}

.ptl__approach-inner {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
display: flex;
flex-direction: row;
gap: 40px;
align-items: flex-start;
}

.ptl__approach-left {
flex: 2;
}

.ptl__approach-right {
flex: 1;
padding-top: 10px;
}

.ptl__approach-tag {
font-size: 14px;
color: #88909E;
text-transform: uppercase;
letter-spacing: 0.07em;
margin-bottom: 20px;
display: block;
}

.ptl__approach-h2 {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
margin: 0 0 20px 0;
}

.ptl__approach-p {
font-size: 19px;
line-height: 1.6;
color: #3a4250;
margin: 0 0 20px 0;
}

.ptl__approach-aside {
font-size: 14px;
line-height: 1.6;
color: #88909E;
border-top: 2px solid #A2C1DB;
border-left: 3px solid #A2C1DB;
padding: 20px;
border-radius: 4px;
background: #fff;
box-shadow: 0 3px 5px 0 rgba(162, 193, 219, 0.08);
}

.ptl__approach-img {
margin-top: 40px;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.ptl__approach-img img {
width: 100%;
aspect-ratio: 4/3;
object-fit: cover;
object-position: center;
display: block;
}

.ptl__community {
background: #fff;
padding: 80px 0;
position: relative;
overflow: hidden;
}

.ptl__community::before {
content: '';
position: absolute;
inset: 0;
background-image:
repeating-linear-gradient(60deg,
transparent,
transparent 28px,
rgba(162, 193, 219, 0.07) 28px,
rgba(162, 193, 219, 0.07) 29px),
repeating-linear-gradient(-60deg,
transparent,
transparent 28px,
rgba(162, 193, 219, 0.07) 28px,
rgba(162, 193, 219, 0.07) 29px),
repeating-linear-gradient(0deg,
transparent,
transparent 28px,
rgba(162, 193, 219, 0.07) 28px,
rgba(162, 193, 219, 0.07) 29px);
pointer-events: none;
}

.ptl__community-inner {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
position: relative;
}

.ptl__community-h2 {
font-size: 33px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
margin: 0 0 40px 0;
max-width: 600px;
}

.ptl__community-grid {
display: flex;
flex-direction: row;
gap: 20px;
}

.ptl__comm-card {
flex: 1;
background: #EFF1F7;
border-radius: 20px;
padding: 40px 20px;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
}

.ptl__comm-card:hover {
box-shadow: 0 12px 48px 0 rgba(136, 144, 158, 0.12);
}

.ptl__comm-card-icon {
width: 36px;
height: 36px;
margin-bottom: 20px;
}

.ptl__comm-card-h3 {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #1e2530;
margin: 0 0 10px 0;
}

.ptl__comm-card-p {
font-size: 14px;
line-height: 1.6;
color: #3a4250;
margin: 0;
}

.ptl__team {
background: #1e2530;
padding: 80px 0;
}

.ptl__team-inner {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
display: flex;
flex-direction: row;
gap: 40px;
align-items: center;
}

.ptl__team-portrait {
flex: 0 0 260px;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.ptl__team-portrait img {
width: 260px;
height: 325px;
object-fit: cover;
object-position: center;
display: block;
border-radius: 20px;
}

.ptl__team-body {
flex: 1;
}

.ptl__team-tag {
font-size: 14px;
color: #A2C1DB;
text-transform: uppercase;
letter-spacing: 0.07em;
display: block;
margin-bottom: 20px;
}

.ptl__team-h2 {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #fff;
margin: 0 0 20px 0;
}

.ptl__team-p {
font-size: 19px;
line-height: 1.6;
color: #A2C1DB;
margin: 0 0 20px 0;
}

.ptl__team-name {
font-size: 14px;
color: #88909E;
margin: 0;
line-height: 1.6;
}

.ptl__team-name strong {
color: #EFF1F7;
}

.ptl__rep {
background: linear-gradient(112deg, #EFF1F7 0%, #fff 55%, #A2C1DB 100%);
padding: 80px 0;
}

.ptl__rep-inner {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
}

.ptl__rep-top {
display: flex;
flex-direction: row;
gap: 40px;
align-items: flex-end;
margin-bottom: 40px;
}

.ptl__rep-h2 {
font-size: 33px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
margin: 0;
flex: 1;
}

.ptl__rep-sub {
font-size: 14px;
line-height: 1.6;
color: #88909E;
flex: 1;
margin: 0;
}

.ptl__rep-stats {
display: flex;
flex-direction: row;
gap: 20px;
}

.ptl__stat {
flex: 1;
background: #fff;
border-radius: 20px;
padding: 40px 20px;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11);
text-align: center;
position: relative;
overflow: hidden;
}

.ptl__stat::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 4px;
background: linear-gradient(90deg, #A2C1DB, #88909E);
border-radius: 0 0 20px 20px;
}

.ptl__stat-num {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
display: block;
margin-bottom: 10px;
}

.ptl__stat-lbl {
font-size: 14px;
line-height: 1.6;
color: #88909E;
}

.ptl__rep-visual {
margin-top: 40px;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 12px 48px 0 rgba(162, 193, 219, 0.12);
}

.ptl__rep-visual img {
width: 100%;
aspect-ratio: 4/3;
object-fit: cover;
object-position: center;
display: block;
}

.ptl__current {
padding: 80px 0;
position: relative;
overflow: hidden;
}

.ptl__current-wave {
position: absolute;
inset: 0;
background: linear-gradient(180deg, #fff 0%, #EFF1F7 40%, #A2C1DB 70%, #EFF1F7 100%);
background-size: 100% 400%;
animation: waveScroll 7s ease-in-out infinite alternate;
pointer-events: none;
z-index: 0;
}

@keyframes waveScroll {
0% {
background-position: 0% 0%;
}

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

.ptl__current-inner {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
position: relative;
z-index: 1;
display: flex;
flex-direction: row;
gap: 40px;
align-items: flex-start;
}

.ptl__current-left {
flex: 1;
}

.ptl__current-right {
flex: 1;
}

.ptl__current-h2 {
font-size: 33px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
margin: 0 0 20px 0;
}

.ptl__current-p {
font-size: 19px;
line-height: 1.6;
color: #3a4250;
margin: 0 0 20px 0;
}

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

.ptl__current-item {
background: #fff;
border-radius: 4px;
padding: 20px;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
border-top: 2px solid #A2C1DB;
border-left: 3px solid #A2C1DB;
}

.ptl__current-item-h4 {
font-size: 14px;
font-weight: 700;
color: #1e2530;
margin: 0 0 10px 0;
line-height: 1.1;
}

.ptl__current-item-p {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin: 0;
}

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

.ptl__grad-inner {
max-width: 1280px;
margin: 0 auto;
padding: 0 40px;
}

.ptl__grad-h2 {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #1e2530;
margin: 0 0 40px 0;
max-width: 700px;
}

.ptl__grad-row {
display: flex;
flex-direction: row;
gap: 40px;
align-items: flex-start;
}

.ptl__grad-main {
flex: 2;
}

.ptl__grad-side {
flex: 1;
}

.ptl__grad-p {
font-size: 19px;
line-height: 1.6;
color: #3a4250;
margin: 0 0 20px 0;
}

.ptl__grad-steps {
display: flex;
flex-direction: column;
gap: 20px;
margin-top: 40px;
}

.ptl__grad-step {
display: flex;
flex-direction: row;
gap: 20px;
align-items: flex-start;
}

.ptl__grad-step-num {
flex: 0 0 40px;
height: 40px;
border-radius: 36px;
background: #A2C1DB;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: 800;
color: #1e2530;
}

.ptl__grad-step-txt {
flex: 1;
padding-top: 10px;
}

.ptl__grad-step-h5 {
font-size: 14px;
font-weight: 700;
color: #1e2530;
margin: 0 0 10px 0;
line-height: 1.1;
}

.ptl__grad-step-p {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin: 0;
}

.ptl__grad-panel {
background: #EFF1F7;
border-radius: 20px;
padding: 40px 20px;
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.ptl__grad-panel-h5 {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #1e2530;
margin: 0 0 20px 0;
}

.ptl__grad-panel-p {
font-size: 14px;
line-height: 1.6;
color: #3a4250;
margin: 0 0 20px 0;
}

.ptl__grad-panel-link {
display: inline-block;
font-size: 14px;
font-weight: 700;
color: #1e2530;
border: 2px solid #1e2530;
border-radius: 4px;
padding: 10px 20px;
text-decoration: none;
transition: background 0.2s cubic-bezier(0.0, 0, 0.2, 1), color 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.ptl__grad-panel-link:hover {
background: #1e2530;
color: #fff;
filter: brightness(1.1);
}

.ptl__corner-bracket {
position: relative;
}

.ptl__corner-bracket::before,
.ptl__corner-bracket::after {
content: '';
position: absolute;
width: 20px;
height: 20px;
pointer-events: none;
}

.ptl__corner-bracket::before {
top: -4px;
left: -4px;
border-top: 2px solid #A2C1DB;
border-left: 2px solid #A2C1DB;
border-radius: 4px 0 0 0;
}

.ptl__corner-bracket::after {
bottom: -4px;
right: -4px;
border-bottom: 2px solid #A2C1DB;
border-right: 2px solid #A2C1DB;
border-radius: 0 0 4px 0;
}

.ptl__flip-card {
perspective: 800px;
height: 200px;
margin-top: 40px;
}

.ptl__flip-card-inner {
width: 100%;
height: 100%;
position: relative;
transform-style: preserve-3d;
transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptl__flip-card:hover .ptl__flip-card-inner {
transform: rotateY(180deg);
}

.ptl__flip-front,
.ptl__flip-back {
position: absolute;
inset: 0;
backface-visibility: hidden;
border-radius: 20px;
display: flex;
flex-direction: column;
justify-content: center;
padding: 20px;
}

.ptl__flip-front {
background: #A2C1DB;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11);
}

.ptl__flip-front-h4 {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #1e2530;
margin: 0 0 10px 0;
}

.ptl__flip-front-p {
font-size: 14px;
line-height: 1.6;
color: #1e2530;
margin: 0;
}

.ptl__flip-back {
background: #1e2530;
transform: rotateY(180deg);
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.ptl__flip-back-p {
font-size: 14px;
line-height: 1.6;
color: #EFF1F7;
margin: 0;
}

@media (max-width: 900px) {
.ptl__hero {
flex-direction: column;
}

.ptl__hero-txt {
flex: none;
padding: 40px 20px;
}

.ptl__hero-img {
flex: none;
height: 300px;
}

.ptl__hero-h1 {
font-size: 46px;
}

.ptl__approach-inner {
flex-direction: column;
}

.ptl__community-grid {
flex-direction: column;
}

.ptl__team-inner {
flex-direction: column;
}

.ptl__team-portrait {
flex: none;
}

.ptl__rep-top {
flex-direction: column;
}

.ptl__rep-stats {
flex-direction: column;
}

.ptl__current-inner {
flex-direction: column;
}

.ptl__grad-row {
flex-direction: column;
}

.ptl__wrap {
padding: 0 20px;
}

.ptl__approach-inner,
.ptl__community-inner,
.ptl__team-inner,
.ptl__rep-inner,
.ptl__current-inner,
.ptl__grad-inner {
padding: 0 20px;
}
}

@media (max-width: 600px) {
.ptl__hero-h1 {
font-size: 33px;
}

.ptl__approach-h2,
.ptl__team-h2 {
font-size: 33px;
}

.ptl__grad-h2 {
font-size: 33px;
}

.ptl__stat-num {
font-size: 33px;
}
}

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

.ptfl__inner {
max-width: 1280px;
margin: 0 auto;
}

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

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

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

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

.ptfl__anim--left {
animation: slideFromLeft 0.26s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.ptfl__anim--right {
animation: slideFromRight 0.24s cubic-bezier(0.0, 0, 0.2, 1) both;
}

.ptfl__anim--left-delay {
animation: slideFromLeft 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0.08s both;
}

.ptfl__anim--right-delay {
animation: slideFromRight 0.26s cubic-bezier(0.0, 0, 0.2, 1) 0.1s both;
}

/* ── HERO SPLIT ── */
.ptfl__hero {
display: flex;
flex-direction: row;
min-height: 340px;
position: relative;
}

.ptfl__hero-left {
flex: 1 1 55%;
background: #88909E;
padding: 80px 40px 80px 40px;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
overflow: hidden;
}

.ptfl__hero-left::after {
content: "";
position: absolute;
top: 0;
right: -40px;
width: 80px;
height: 100%;
background: #88909E;
clip-path: polygon(0 0, 0% 100%, 100% 100%);
z-index: 2;
}

.ptfl__hero-right {
flex: 1 1 45%;
background: #A2C1DB;
padding: 80px 40px 80px 80px;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
overflow: hidden;
}

.ptfl__hero-geo {
position: absolute;
border: 2px solid rgba(255, 255, 255, 0.18);
border-radius: 20px;
pointer-events: none;
}

.ptfl__hero-geo--a {
width: 120px;
height: 120px;
top: -30px;
right: 60px;
transform: rotate(22deg);
opacity: 0.22;
}

.ptfl__hero-geo--b {
width: 60px;
height: 60px;
bottom: 40px;
left: 20px;
border-radius: 4px;
opacity: 0.16;
}

.ptfl__hero-geo--c {
width: 90px;
height: 90px;
top: 20px;
right: 20px;
border-radius: 36px;
opacity: 0.14;
}

.ptfl__hero-label {
font-size: 14px;
line-height: 1.6;
color: rgba(255, 255, 255, 0.72);
letter-spacing: 0.08em;
text-transform: uppercase;
margin-bottom: 20px;
}

.ptfl__hero-h1 {
font-size: 62px;
line-height: 1.1;
color: #fff;
font-weight: 800;
margin: 0 0 20px 0;
}

.ptfl__hero-sub {
font-size: 19px;
line-height: 1.6;
color: rgba(255, 255, 255, 0.88);
margin: 0 0 40px 0;
max-width: 380px;
}

.ptfl__hero-link {
display: inline-block;
font-size: 14px;
line-height: 1.6;
color: #fff;
border: 2px solid #fff;
border-radius: 4px;
padding: 10px 20px;
text-decoration: none;
font-weight: 600;
background: transparent;
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1), color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
align-self: flex-start;
}

.ptfl__hero-link:hover {
background: #fff;
color: #88909E;
filter: brightness(1.04);
}

.ptfl__hero-img-wrap {
width: 100%;
max-width: 340px;
aspect-ratio: 4/3;
border-radius: 4px;
overflow: hidden;
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
position: relative;
}

.ptfl__hero-img-wrap::after {
content: "";
position: absolute;
inset: 0;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
pointer-events: none;
border-radius: 4px;
}

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

/* ── PROJECTS GRID ── */
.ptfl__proj {
background: linear-gradient(175deg, #EFF1F7 0%, #dde3ee 100%);
padding: 80px 40px;
}

.ptfl__proj-hdr {
display: flex;
flex-direction: row;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 40px;
gap: 40px;
}

.ptfl__proj-h2 {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #2c3040;
margin: 0;
}

.ptfl__proj-note {
font-size: 14px;
line-height: 1.6;
color: #88909E;
max-width: 260px;
text-align: right;
}

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

.ptfl__card {
background: #fff;
border-radius: 20px;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
overflow: hidden;
border: 2px solid transparent;
transition: border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.24s cubic-bezier(0.4, 0, 0.2, 1);
cursor: default;
}

.ptfl__card:hover {
border-color: #A2C1DB;
box-shadow: 0 12px 48px 0 rgba(162, 193, 219, 0.12);
}

.ptfl__card--active {
border-left: 4px solid #A2C1DB;
border-top: 2px solid #A2C1DB;
border-right: 2px solid #A2C1DB;
border-bottom: 2px solid #A2C1DB;
}

.ptfl__card-body {
padding: 20px;
}

.ptfl__card-tag {
display: inline-block;
font-size: 14px;
line-height: 1.6;
color: #88909E;
background: #EFF1F7;
border-radius: 4px;
padding: 0 10px;
margin-bottom: 10px;
}

.ptfl__card-h4 {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #2c3040;
margin: 0 0 10px 0;
}

.ptfl__card-desc {
font-size: 14px;
line-height: 1.6;
color: #555c6e;
margin: 0 0 20px 0;
}

.ptfl__card-meta {
display: flex;
flex-direction: row;
gap: 20px;
border-top: 1px solid #EFF1F7;
padding-top: 10px;
}

.ptfl__card-stat {
display: flex;
flex-direction: column;
}

.ptfl__card-stat-val {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #88909E;
}

.ptfl__card-stat-lbl {
font-size: 14px;
line-height: 1.6;
color: #88909E;
}

.ptfl__divider {
display: flex;
flex-direction: row;
align-items: center;
gap: 20px;
padding: 0 40px;
margin: 0;
}

.ptfl__divider-line {
flex: 1;
height: 1px;
background: #A2C1DB;
}

.ptfl__divider-dot {
width: 10px;
height: 10px;
border-radius: 20px;
background: #A2C1DB;
border: 2px solid #EFF1F7;
box-shadow: 0 3px 5px 0 rgba(162, 193, 219, 0.08);
}

/* ── TEAM SECTION ── */
.ptfl__team {
background: #fff;
padding: 80px 40px;
position: relative;
}

.ptfl__team::before {
content: "";
position: absolute;
inset: 0;
background-image: radial-gradient(circle, #88909E 1px, transparent 1px),
radial-gradient(circle, #A2C1DB 1.5px, transparent 1.5px),
radial-gradient(circle, #88909E 0.8px, transparent 0.8px);
background-size: 38px 38px, 61px 61px, 22px 22px;
background-position: 0 0, 19px 19px, 9px 30px;
opacity: 0.045;
pointer-events: none;
border-radius: 0;
}

.ptfl__team-layout {
display: flex;
flex-direction: row;
gap: 80px;
align-items: flex-start;
position: relative;
z-index: 1;
}

.ptfl__team-text {
flex: 1 1 55%;
display: flex;
flex-direction: column;
}

.ptfl__team-h2 {
font-size: 46px;
line-height: 1.1;
font-weight: 800;
color: #2c3040;
margin: 0 0 20px 0;
}

.ptfl__team-body {
display: flex;
flex-direction: row;
gap: 40px;
}

.ptfl__team-main {
flex: 2 1 0;
}

.ptfl__team-aside {
flex: 1 1 0;
border-left: 2px solid #EFF1F7;
border-right: 4px solid #EFF1F7;
padding: 0 20px;
}

.ptfl__team-p {
font-size: 14px;
line-height: 1.6;
color: #555c6e;
margin: 0 0 20px 0;
}

.ptfl__team-aside-p {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin: 0;
}

.ptfl__team-profiles {
flex: 1 1 45%;
display: flex;
flex-direction: column;
gap: 20px;
}

.ptfl__profile {
display: flex;
flex-direction: row;
gap: 20px;
align-items: flex-start;
padding: 20px;
border-radius: 20px;
background: #EFF1F7;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
border: 2px solid transparent;
transition: border-color 0.26s cubic-bezier(0.4, 0, 0.2, 1);
}

.ptfl__profile:hover {
border-color: #A2C1DB;
}

.ptfl__profile-img-wrap {
width: 80px;
min-width: 80px;
aspect-ratio: 2/3;
border-radius: 20px;
overflow: hidden;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11);
box-shadow: inset 0 2px 4px 0 rgba(255, 255, 255, 0.6), inset 0 -2px 4px 0 rgba(136, 144, 158, 0.12), 0 6px 20px 0 rgba(162, 193, 219, 0.11);
}

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

.ptfl__profile-info {
flex: 1;
display: flex;
flex-direction: column;
}

.ptfl__profile-name {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #2c3040;
margin: 0 0 10px 0;
}

.ptfl__profile-role {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin: 0 0 10px 0;
}

.ptfl__profile-quote {
font-size: 14px;
line-height: 1.6;
color: #555c6e;
margin: 0;
font-style: italic;
}

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

.ptfl__team-layout {
flex-direction: column;
gap: 40px;
}

.ptfl__team-profiles {
flex-direction: row;
}

.ptfl__profile {
flex: 1 1 0;
}
}

@media (max-width: 768px) {
.ptfl__hero {
flex-direction: column;
}

.ptfl__hero-left::after {
display: none;
}

.ptfl__hero-left,
.ptfl__hero-right {
padding: 40px 20px;
}

.ptfl__hero-h1 {
font-size: 46px;
}

.ptfl__proj-grid {
grid-template-columns: 1fr;
}

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

.ptfl__proj-note {
text-align: left;
max-width: 100%;
}

.ptfl__team-body {
flex-direction: column;
gap: 20px;
}

.ptfl__team-aside {
border-left: none;
border-right: none;
border-top: 2px solid #EFF1F7;
border-bottom: 4px solid #EFF1F7;
padding: 20px 0;
}

.ptfl__team-profiles {
flex-direction: column;
}

.ptfl__proj {
padding: 40px 20px;
}

.ptfl__team {
padding: 40px 20px;
}

.ptfl__divider {
padding: 0 20px;
}
}

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

.abt__inner {
max-width: 1280px;
margin: 0 auto;
}

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

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

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

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

@keyframes fadeInImg {
from {
opacity: 0;
}

to {
opacity: 1;
}
}

.abt__reveal--left {
animation: slideFromLeft 0.26s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.abt__reveal--right {
animation: slideFromRight 0.22s cubic-bezier(0.0, 0, 0.2, 1) both;
}

.abt__reveal--left:nth-child(2),
.abt__reveal--right:nth-child(2) {
animation-delay: 0.08s;
}

.abt__reveal--left:nth-child(3),
.abt__reveal--right:nth-child(3) {
animation-delay: 0.14s;
}

.abt__title-block {
position: relative;
background: linear-gradient(168deg, #EFF1F7 0%, #A2C1DB 55%, #88909E 100%);
padding: 80px 40px 80px 40px;
}

.abt__title-block::before {
content: "";
position: absolute;
top: -60px;
left: -60px;
width: 260px;
height: 260px;
border-radius: 50%;
background: rgba(162, 193, 219, 0.18);
pointer-events: none;
}

.abt__title-block::after {
content: "";
position: absolute;
bottom: -80px;
right: 60px;
width: 340px;
height: 340px;
border-radius: 50%;
background: rgba(136, 144, 158, 0.12);
pointer-events: none;
}

.abt__title-row {
display: flex;
flex-direction: row;
align-items: stretch;
gap: 40px;
max-width: 1280px;
margin: 0 auto;
}

.abt__title-text {
flex: 0 0 60%;
display: flex;
flex-direction: column;
justify-content: center;
padding: 40px 20px 40px 0;
}

.abt__title-img-col {
flex: 0 0 40%;
position: relative;
}

.abt__title-img-wrap {
width: 100%;
aspect-ratio: 4/3;
border-radius: 20px;
overflow: hidden;
animation: fadeInImg 0.28s cubic-bezier(0.4, 0, 0.2, 1) 0.1s both;
}

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

.abt__title-img-wrap:hover img {
opacity: 0.88;
}

.abt__eyebrow {
font-size: 14px;
line-height: 1.6;
color: #3a4250;
letter-spacing: 0.06em;
text-transform: uppercase;
margin-bottom: 20px;
font-weight: 600;
}

.abt__h1 {
font-size: 62px;
line-height: 1.1;
color: #1e2530;
font-weight: 800;
margin-bottom: 20px;
}

.abt__lead {
font-size: 19px;
line-height: 1.6;
color: #2d3440;
max-width: 520px;
}

.abt__divider {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 20px 40px;
background: #fff;
}

.abt__divider-line {
width: 80px;
height: 3px;
background: linear-gradient(90deg, #A2C1DB 0%, #88909E 100%);
border-radius: 36px;
}

.abt__body {
background: #fff;
padding: 80px 40px;
}

.abt__body-inner {
max-width: 1280px;
margin: 0 auto;
display: flex;
flex-direction: row;
gap: 40px;
align-items: flex-start;
}

.abt__body-left {
flex: 0 0 60%;
}

.abt__body-right {
flex: 0 0 calc(40% - 40px);
}

.abt__h2 {
font-size: 46px;
line-height: 1.1;
color: #1e2530;
font-weight: 800;
margin-bottom: 40px;
}

.abt__para {
font-size: 19px;
line-height: 1.6;
color: #2d3440;
margin-bottom: 20px;
}

.abt__featured {
border: 2px dashed #A2C1DB;
border-radius: 20px;
padding: 40px;
background: #EFF1F7;
position: relative;
}

.abt__featured-cols {
display: flex;
flex-direction: row;
gap: 20px;
flex-wrap: wrap;
}

.abt__feat-label-col {
flex: 0 0 80px;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 10px;
}

.abt__feat-text-col {
flex: 1;
}

.abt__feat-icon {
width: 40px;
height: 40px;
border-radius: 4px;
background: #A2C1DB;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 10px;
}

.abt__feat-icon svg {
width: 22px;
height: 22px;
}

.abt__feat-h {
font-size: 14px;
line-height: 1.6;
color: #88909E;
text-transform: uppercase;
font-weight: 700;
margin-bottom: 10px;
}

.abt__feat-p {
font-size: 14px;
line-height: 1.6;
color: #2d3440;
}

.abt__feat-divider {
width: 100%;
height: 1px;
background: #A2C1DB;
margin: 20px 0;
border-radius: 4px;
}

.abt__badge {
display: inline-flex;
align-items: center;
gap: 10px;
background: #88909E;
color: #fff;
border-radius: 36px;
padding: 10px 20px;
font-size: 14px;
font-weight: 700;
margin-bottom: 20px;
box-shadow: 0 6px 20px 0 rgba(136, 144, 158, 0.11);
}

.abt__badge-num {
font-size: 33px;
font-weight: 800;
line-height: 1.1;
color: #EFF1F7;
}

.abt__img2-wrap {
width: 100%;
aspect-ratio: 4/3;
border-radius: 20px;
overflow: hidden;
margin-bottom: 20px;
box-shadow: 0 12px 48px 0 rgba(136, 144, 158, 0.12);
position: relative;
}

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

.abt__img2-wrap::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 30% 30%, transparent 40%, rgba(136, 144, 158, 0.32) 100%);
opacity: 0;
transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
border-radius: 20px;
}

.abt__img2-wrap:hover::after {
opacity: 1;
}

.abt__person {
display: flex;
flex-direction: row;
gap: 20px;
align-items: flex-start;
background: #EFF1F7;
border-radius: 20px;
padding: 20px;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
}

.abt__portrait {
flex: 0 0 80px;
}

.abt__portrait img {
width: 80px;
height: 112px;
object-fit: cover;
object-position: center;
border-radius: 20px;
display: block;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11);
}

.abt__person-info {
flex: 1;
}

.abt__person-name {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #1e2530;
margin-bottom: 10px;
}

.abt__person-role {
font-size: 14px;
line-height: 1.6;
color: #88909E;
font-weight: 600;
margin-bottom: 10px;
}

.abt__person-quote {
font-size: 14px;
line-height: 1.6;
color: #2d3440;
}

.abt__img3-wrap {
width: 100%;
aspect-ratio: 4/3;
border-radius: 20px;
overflow: hidden;
margin-top: 40px;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11);
position: relative;
}

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

.abt__img3-wrap::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 70% 70%, transparent 40%, rgba(162, 193, 219, 0.28) 100%);
opacity: 0;
transition: opacity 0.26s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
border-radius: 20px;
}

.abt__img3-wrap:hover::after {
opacity: 1;
}

.abt__contact-strip {
background: #EFF1F7 !important;
padding: 40px;
border-radius: 20px;
margin-top: 40px;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
}

.abt__contact-h {
font-size: 19px;
line-height: 1.1;
font-weight: 700;
color: #1e2530;
margin-bottom: 20px;
}

.abt__contact-row {
display: flex;
flex-direction: column;
gap: 10px;
}

.abt__contact-item {
display: flex;
flex-direction: row;
align-items: center;
gap: 10px;
font-size: 14px;
line-height: 1.6;
color: #2d3440;
}

.abt__contact-item a {
color: #2d3440;
text-decoration: none;
border-bottom: 1px solid #A2C1DB;
transition: color 0.22s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
padding-bottom: 1px;
}

.abt__contact-item a:hover {
color: #88909E;
border-color: #88909E;
}

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

@media (max-width: 900px) {
.abt__title-row {
flex-direction: column;
}

.abt__title-text {
flex: 1 1 auto;
padding: 0;
}

.abt__title-img-col {
flex: 1 1 auto;
}

.abt__body-inner {
flex-direction: column;
}

.abt__body-left,
.abt__body-right {
flex: 1 1 auto;
}

.abt__h1 {
font-size: 46px;
}

.abt__h2 {
font-size: 33px;
}
}

@media (max-width: 600px) {
.abt__title-block {
padding: 40px 20px;
}

.abt__body {
padding: 40px 20px;
}

.abt__h1 {
font-size: 33px;
}

.abt__h2 {
font-size: 33px;
}

.abt__featured {
padding: 20px;
}

.abt__feat-label-col {
flex: 0 0 100%;
}

.abt__contact-strip {
padding: 20px;
}
}

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

.succ-page .succ-card {
max-width: 560px;
width: 100%;
background: #ffffff;
border-radius: 20px;
padding: 80px 40px;
box-shadow: 0 12px 48px 0 rgba(136, 144, 158, 0.12);
text-align: center;
border: 2px solid #A2C1DB;
}

.succ-page .succ-card__icon {
width: 64px;
height: 64px;
margin: 0 auto 40px;
display: flex;
align-items: center;
justify-content: center;
}

.succ-page .succ-card__icon svg {
width: 64px;
height: 64px;
}

.succ-page .succ-card__heading {
font-size: 33px;
line-height: 1.1;
font-weight: 700;
color: #2c3340;
margin: 0 0 20px;
}

.succ-page .succ-card__text {
font-size: 19px;
line-height: 1.6;
color: #88909E;
margin: 0 0 40px;
}

.succ-page .succ-card__link {
display: inline-block;
font-size: 14px;
font-weight: 600;
color: #2c3340;
text-decoration: none;
border: 2px solid #2c3340;
border-radius: 4px;
padding: 10px 40px;
transition: background-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), color 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.succ-page .succ-card__link:hover {
background-color: #2c3340;
color: #ffffff;
}

.succ-page .succ-card__link:focus {
outline: 3px solid #A2C1DB;
outline-offset: 3px;
}

.succ-page .succ-divider {
width: 40px;
height: 2px;
background: linear-gradient(90deg, #A2C1DB 0%, #EFF1F7 100%);
margin: 0 auto 40px;
border-radius: 4px;
}

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

.err-page .err__wrap {
max-width: 1280px;
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
gap: 80px;
}

.err-page .err__visual {
flex: 0 0 auto;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
}

.err-page .err__code {
font-size: 62px;
line-height: 1.1;
font-weight: 700;
color: #88909E;
letter-spacing: -2px;
border: 3px solid #A2C1DB;
border-radius: 20px;
padding: 40px 40px;
background: #ffffff;
box-shadow: 0 6px 20px 0 rgba(162, 193, 219, 0.11);
position: relative;
}

.err-page .err__code::before {
content: "";
display: block;
width: 40px;
height: 3px;
background: linear-gradient(90deg, #A2C1DB 0%, #EFF1F7 100%);
border-radius: 4px;
margin-bottom: 10px;
}

.err-page .err__code::after {
content: "";
display: block;
width: 40px;
height: 3px;
background: linear-gradient(90deg, #A2C1DB 0%, #EFF1F7 100%);
border-radius: 4px;
margin-top: 10px;
}

.err-page .err__dot {
width: 10px;
height: 10px;
border-radius: 36px;
background: #A2C1DB;
position: absolute;
bottom: -5px;
right: -5px;
}

.err-page .err__content {
flex: 1 1 auto;
display: flex;
flex-direction: column;
gap: 20px;
}

.err-page .err__label {
font-size: 14px;
line-height: 1.6;
color: #88909E;
text-transform: uppercase;
letter-spacing: 1px;
border-left: 3px solid #A2C1DB;
border-top: 1px solid #A2C1DB;
border-radius: 4px;
padding: 10px 20px;
background: #ffffff;
display: inline-block;
width: fit-content;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
}

.err-page .err__heading {
font-size: 46px;
line-height: 1.1;
font-weight: 700;
color: #2c3240;
margin: 0;
}

.err-page .err__text {
font-size: 19px;
line-height: 1.6;
color: #4a5260;
margin: 0;
max-width: 480px;
}

.err-page .err__actions {
display: flex;
flex-direction: row;
gap: 20px;
flex-wrap: wrap;
margin-top: 20px;
}

.err-page .err__btn--primary {
font-size: 14px;
line-height: 1.6;
font-weight: 600;
color: #2c3240;
background: #ffffff;
border: 2px solid #2c3240;
border-radius: 4px;
padding: 10px 40px;
cursor: pointer;
text-decoration: none;
display: inline-block;
box-shadow: 0 3px 5px 0 rgba(136, 144, 158, 0.08);
transition: border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), filter 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.err-page .err__btn--primary:hover {
border-color: #A2C1DB;
filter: brightness(1.04);
}

.err-page .err__btn--primary:focus {
outline: 2px solid #A2C1DB;
outline-offset: 3px;
}

.err-page .err__btn--secondary {
font-size: 14px;
line-height: 1.6;
font-weight: 500;
color: #88909E;
background: transparent;
border: 2px solid #88909E;
border-radius: 4px;
padding: 10px 40px;
cursor: pointer;
text-decoration: none;
display: inline-block;
transition: border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.2s cubic-bezier(0.0, 0, 0.2, 1);
}

.err-page .err__btn--secondary:hover {
border-color: #A2C1DB;
color: #4a5260;
filter: brightness(1.03);
}

.err-page .err__btn--secondary:focus {
outline: 2px solid #A2C1DB;
outline-offset: 3px;
}

.err-page .err__divider {
width: 100%;
max-width: 1280px;
height: 1px;
background: linear-gradient(90deg, #A2C1DB 0%, #EFF1F7 60%, #EFF1F7 100%);
margin: 40px 0 0 0;
border: none;
}

.err-page .err__hint {
max-width: 1280px;
width: 100%;
display: flex;
flex-direction: row;
gap: 40px;
padding-top: 40px;
flex-wrap: wrap;
}

.err-page .err__hint-item {
flex: 1 1 180px;
display: flex;
flex-direction: column;
gap: 10px;
}

.err-page .err__hint-icon {
width: 36px;
height: 36px;
border-radius: 4px;
background: #ffffff;
border: 2px solid #A2C1DB;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 3px 5px 0 rgba(162, 193, 219, 0.08);
flex-shrink: 0;
}

.err-page .err__hint-icon svg {
display: block;
}

.err-page .err__hint-title {
font-size: 14px;
line-height: 1.6;
font-weight: 600;
color: #2c3240;
margin: 0;
}

.err-page .err__hint-desc {
font-size: 14px;
line-height: 1.6;
color: #88909E;
margin: 0;
}

.err-page .err__hint-link {
font-size: 14px;
line-height: 1.6;
color: #2c3240;
font-weight: 500;
text-decoration: none;
display: inline-block;
padding: 2px 10px;
border-radius: 4px;
background: transparent;
transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1), padding-left 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.err-page .err__hint-link:hover {
background: #A2C1DB;
padding-left: 20px;
}

.err-page .err__hint-link:focus {
outline: 2px solid #A2C1DB;
outline-offset: 2px;
}

@media (max-width: 768px) {
.err-page .err__wrap {
flex-direction: column;
gap: 40px;
align-items: flex-start;
}

.err-page .err__heading {
font-size: 33px;
}

.err-page .err__code {
font-size: 46px;
padding: 20px 40px;
}

.err-page .err__hint {
flex-direction: column;
gap: 20px;
}
}

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

.err-page .err__actions {
flex-direction: column;
gap: 10px;
}

.err-page .err__btn--primary,
.err-page .err__btn--secondary {
text-align: center;
}
}