/* cyrillic-ext */
@font-face {
    font-family: 'Onest';
    font-style: normal;
    font-weight: 200 500;
    font-display: swap;
    src: url('../fonts/onest-cyrillic-ext.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
    font-family: 'Onest';
    font-style: normal;
    font-weight: 200 500;
    font-display: swap;
    src: url('../fonts/onest-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
    font-family: 'Onest';
    font-style: normal;
    font-weight: 200 500;
    font-display: swap;
    src: url('../fonts/onest-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Onest';
    font-style: normal;
    font-weight: 200 500;
    font-display: swap;
    src: url('../fonts/onest-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ---------- Lenis smooth scroll ---------- */
/* html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; } */

body {
    background: #F7F7F7;
    font-family: 'Onest', sans-serif;
}
.maplibregl-ctrl-bottom-right{
    display: none;
}
/* ---------- Hero ---------- */
.pin {
    position: relative;
    height: 500vh;
}

.pin__inner {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}
.hero {
    position: relative;
    width: 100%;
    /* height: 800px; */
    height: 100svh;
    overflow: hidden;
    background: #0c0c0c;
}

.hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
    pointer-events: none;
}
.simple_animation {
    z-index: 1;
}
.hero__content {
    position: relative;
    margin: 0 auto;
    width: 1440px;
    max-width: calc(100% - 80px);
    /* height: 800px; */
    height: 100%;
    z-index: 1;
}

.hero__title {
    position: absolute;
    left: 0;
    top: 176.7px;
    width: 939px;
    margin: 0;
    font-size: 66px;
    font-weight: 300;
    line-height: 0.85;
    text-transform: uppercase;
    color: #ffffff;
}

.hero__title span {
    display: block;
}

.hero__title-indent {
    width: fit-content;
    margin-left: auto;
}

/* ---------- Hero: about / Arbat block ---------- */
.hero__about {
    position: absolute;
    top: 355.7px;
    right: 0;
    width: 467px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.hero__brand {
    margin: 0;
    font-size: 20px;
    font-weight: 500;
    line-height: 0.95;
    text-transform: uppercase;
    color: #ffffff;
}

.hero__lead {
    margin: 0;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
    text-align: justify;
    color: #ffffff;
}

.hero__links {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.hero-link {
    display: flex;
    flex-direction: column;
    gap: 5px;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
}

.hero-link.hero-link-white {
    color: #ffffff;
}

.hero-link__row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.hero-link__text {
    font-size: min(1.04vw, 16px);
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
    color: inherit;
}

.hero-link__arrow {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: inherit;
    transition: transform 0.3s ease;
}
.hero-link:hover .hero-link__arrow{
    transform: rotate(45deg);
}
.hero-link__line {
    height: 2px;
    width: 100%;
    background: currentColor;
}
.hero__divider {
    position: absolute;
    left: 0;
    bottom: 135.14px;
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.5);
}

.hero__divider::before {
    content: "";
    position: absolute;
    left: 0;
    top: -1px;
    /* заливка тянется от нуля — изначально не заполнена */
    width: calc(100% * var(--p, 0));
    height: 3px;
    background: #ffffff;
}
.hero__tag {
    position: absolute;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.1;
    white-space: nowrap;
    color: #ffffff;
    /* изначально строк нет: они всплывают снизу и проявляются */
    opacity: var(--tA, 0);
    will-change: transform, opacity;
}

.hero__tag--1 {
    left: 0;
    bottom: 91.2px;
    --tA: clamp(0, (var(--p, 0) - 0.05) / 0.18, 1);
    transform: translateY(calc((1 - var(--tA)) * 32px));
}

.hero__tag--2 {
    left: 329.5px;
    bottom: 48.2px;
    --tA: clamp(0, (var(--p, 0) - 0.22) / 0.18, 1);
    transform: translateY(calc((91.2px - 48.2px) * -1 * var(--tA) + (1 - var(--tA)) * 32px));
}

.hero__tag--3 {
    left: 680px;
    bottom: 5.2px;
    --tA: clamp(0, (var(--p, 0) - 0.40) / 0.18, 1);
    transform: translateY(calc((91.2px - 5.2px) * -1 * var(--tA) + (1 - var(--tA)) * 32px));
}
.hero__scroll {
    position: absolute;
    right: 0;
    bottom: 99.4px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.hero__scroll-dot {
    width: 6px;
    height: 6px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #ffffff;
}

.hero__scroll-text {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
    color: #ffffff;
}
.reasons {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    padding-bottom: 118px;
}

.reasons__inner {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 1440px;
    max-width: calc(100% - 80px);
    min-width: 1136px;
    height: 798px;
}

.reasons__photo {
    position: absolute;
    width: 12.5%;
    aspect-ratio: 180/ 157.062;
    object-fit: cover;
}
.simple_animation {
    opacity: 0;
    transition:
        opacity 1.7s cubic-bezier(0.33, 1, 0.68, 1),
        transform 1.7s cubic-bezier(0.33, 1, 0.68, 1);
}

.simple_animation.from-bottom {
    transform: translateY(90px) scale(0.9);
}

.simple_animation.from-top {
    transform: translateY(-90px) scale(0.9);
}

.simple_animation.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.title_animation {
    opacity: 0;
    transition:
        opacity 1.7s cubic-bezier(0.33, 1, 0.68, 1),
        transform 1.7s cubic-bezier(0.33, 1, 0.68, 1);
}

.title_animation.from-left {
    transform: translateX(-90px);
}

.title_animation.from-right {
    transform: translateX(90px);
}

.title_animation.is-visible {
    opacity: 1;
    transform: translateX(0);
}
.reasons__photo--slot {
    visibility: hidden;
}
.hero__bg--flying {
    position: fixed;
    right: auto;
    bottom: auto;
    z-index: 1;
}
.reasons__text {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    text-align: center;
    color: #474747;
}

.reasons__title {
    width: 776px;
    margin: 0;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.reasons__lead {
    margin: 0;
    width: 505px;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
    color: #474747;
}

/* ---------- Specialization ---------- */
.spec {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    --dash-h: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
    --dash-v: repeating-linear-gradient(to bottom,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}
.spec__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding-bottom: 114px;
}
.spec__divider {
    height: 1px;
    margin-bottom: 80px;
    background-image: var(--dash-h);
}

.spec__title {
    margin: 0 0 40px;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}
.spec__grid {
    display: flex;
    background-image: var(--dash-h), var(--dash-h), var(--dash-v), var(--dash-v);
    background-size: 100% 1px, 100% 1px, 1px 100%, 1px 100%;
    background-position: left top, left bottom, left top, right top;
    background-repeat: no-repeat;
}

.spec__col {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    padding: min(1.6287vw, 25px);
}
.spec__col:nth-child(-n + 3) {
    background-image: var(--dash-v);
    background-size: 1px 100%;
    background-position: right top;
    background-repeat: no-repeat;
}

.spec__col-title {
    margin: 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.1;
    color: #474747;
    height: 52.78px;
    overflow: hidden;
}

.spec__img {
    margin: 29.5px auto 25px;
    height: 300px;
    max-width: 100%;
    object-fit: contain;
}

.spec__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    align-self: center;
}

.spec__desc {
    margin: 0;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
    color: #474747;
}

.spec__nav {
    display: none;
}

/* ---------- Why Arbat ---------- */
.why,
.team {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
}
.why__inner,
.team__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 121px;
}

.why__banner,
.team__banner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.why__banner {
    aspect-ratio: 144/50;
    background: none;
}

.team__banner {
    height: 481px;
}

.why__banner::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: url("../images/why-banner.webp") center / cover no-repeat;
    transform: translateY(101%);
    transition: transform 2.5s cubic-bezier(0.33, 1, 0.68, 1);
}

.why__banner.is-visible::before {
    transform: translateY(0);
}

.why__heading,
.team__heading {
    position: absolute;
    left: 20px;
    z-index: 1;
    margin: 0;
    font-size: 128px;
    font-weight: 300;
    line-height: 0.9;
    text-transform: uppercase;
    white-space: nowrap;
    color: #ffffff;
}

.why__heading {
    bottom: 1.36vw;
    font-size: 123px;
}

.team__banner-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.85);
    transform: translateY(100%);
    transition: transform 2.5s cubic-bezier(0.33, 1, 0.68, 1);
}

.team__banner.is-visible .team__banner-img {
    transform: translateY(0);
}

.team__heading {
    bottom: 21px;
}

.why__body {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
}

.why__photos {
    display: flex;
    align-items: center;
    gap: 19px;
    flex-shrink: 0;
}

.why__photo {
    width: min(12.86vw, 197.45px);
    aspect-ratio: 1;
    flex-shrink: 0;
    overflow: hidden;
}

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

.why__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 23px;
    row-gap: 40px;
    width: 65.97%;
    flex-shrink: 0;
}
.team .why__grid { 
    row-gap: 41px;
    column-gap: 20px;
}
.why-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 19px;
}
.why-card__icon {
    display: block;
    height: 54px;
}
.team .why-card__icon{
    height: 55px;
}

.why-card__icon svg {
    display: block;
    height: 100%;
    width: auto;
}

.why-card__line {
    width: 100%;
    height: 1px;
    background-image: linear-gradient(to right, #c4c4c4 50%, transparent 50%);
    background-size: 10px 1px;
    background-repeat: repeat-x;
}

.why-card__text {
    display: flex;
    flex-direction: column;
    gap: 10px;
    color: #474747;
}

.why-card__title {
    margin: 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.288px;
    color: inherit;
}
.why-card__text_short .why-card__title {
    max-width: 320px;
}
.why-card__desc {
    margin: 0;
    font-size: 18px;
    font-weight: 300;
    line-height: 22px;
    letter-spacing: -0.216px;
    color: inherit;
}
.why-card__text_short .why-card__desc{
    max-width: 400px;
}
/* ---------- Portfolio ---------- */
.portfolio {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
}

.portfolio__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 40px;
    padding-bottom: 121px;
}

.portfolio__head {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    width: 100%;
}

.portfolio__title {
    flex: 1 0 0;
    min-width: 0;
    margin: 0;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.portfolio__more {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex-shrink: 0;
    text-decoration: none;
    color: #474747;
    transition: transform 0.3s ease;
}
.portfolio__more svg{
    transition: transform 0.3s ease;
}
.portfolio__more:hover{
    opacity: 0.6;
}
.portfolio__more:hover svg{
    transform: rotate(45deg);
}
.portfolio__more-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.portfolio__more-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
    color: inherit;
}

.portfolio__more-arrow {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    color: inherit;
}

.portfolio__more-line {
    width: 100%;
    height: 2px;
    background: #474747;
}
.portfolio__gallery {
    width: 100%;
}

.portfolio__gallery.is-animating .portfolio__nav-btn {
    pointer-events: none;
}

.portfolio__swipers {
    display: flex;
    align-items: stretch;
    gap: 20px;
    width: 100%;
    aspect-ratio: 1440/576;
    max-height: 576px;
    touch-action: pan-y;
}

.portfolio__col {
    flex-shrink: 0;
    overflow: hidden;
    clip-path: inset(0);
}

.portfolio__col--1 {
    max-width: 588px;
    width: 40.83%;
}

.portfolio__col--2 {
    max-width: 467px;
    width: 32.43%;
}

.portfolio__col--3 {
    max-width: 345px;
    width: 23.95%;
}

.portfolio__track {
    display: flex;
    height: 100%;
    will-change: transform;
}

.portfolio__item {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.portfolio__item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.portfolio__nav {
    display: flex;
    align-items: center;
    gap: 20px;
}

.portfolio__nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 12px 12px 15px;
    border: 0;
    border-radius: 5px;
    background: rgba(71, 71, 71, 0.07);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    cursor: pointer;
}
.portfolio__nav-btn.portfolio__nav-btn--prev{
    padding: 12px 15px 12px 12px;
}
.portfolio__nav-btn:hover svg,
.projects__arrow:hover svg {
    fill-opacity: 0.5;
}
/* ---------- Services ---------- */
.services {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    --dash-h: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}

.services__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding-bottom: 121px;
}

.services__title {
    margin: 0 0 38px;
    font-size: 42px;
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.services-list-outer {
    position: relative;
    overflow-x: clip;
}

.services-hover-block {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 5;
    width: 283px;
    aspect-ratio: 283 / 230;
    overflow: hidden;
    pointer-events: none;
    transform: translate(-50%, -50%);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.services-list-outer.is-hovering .services-hover-block {
    opacity: 1;
    visibility: visible;
}

.services-list-inner {
    position: relative;
    width: 100%;
    height: 100%;
    clip-path: inset(50%);
    transition: clip-path 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    background: #fff;
}

.services-list-outer.is-hovering .services-list-inner {
    clip-path: inset(0%);
}

.services-list-inner img,
.services-list-inner svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    background: #fff;
}
.services-list-inner img {
    object-fit: cover;
    object-position: center;
}
.services-list-inner .is-cream {
    background: #f0ece8;
}
.services__list {
    list-style: none;
    background-image: var(--dash-h);
    background-size: 100% 1px;
    background-position: left bottom;
    background-repeat: no-repeat;
}

.service-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 33px 0 28px;
    background-image: var(--dash-h);
    background-size: 100% 1px;
    background-position: left top;
    background-repeat: no-repeat;
}

.service-row__name {
    width: 375px;
    max-width: 100%;
    margin: 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.1;
    color: #474747;
}
.service-row__media {
    display: none;
}
.service-row:nth-child(odd) .service-row__media {
    background: #f0ece8;
}

.service-row:nth-child(even) .service-row__media {
    background: #fff;
}

.service-row__items {
    list-style: none;
    width: 600px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    color: #474747;
}

.service-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 18px;
    line-height: 1.1;
}

.service-item__num {
    flex-shrink: 0;
    width: 28px;
    font-weight: 500;
}

.service-item__text {
    flex: 1 1 0;
    min-width: 0;
    font-weight: 300;
}

/* ---------- Geography ---------- */
.geo {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
}

.geo__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 0 120px;
}

.geo__title {
    margin: 0 0 40px;
    font-size: 42px;
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.geo__map {
    display: block;
    width: 100%;
    height: 555px;
    background: #f4f0ec;
    position: relative;
    z-index: 0;
}

.geo__map .maplibregl-canvas {
    outline: none;
}

.geo-marker__inner {
    position: relative;
    display: block;
    width: 18px;
    height: 18px;
}

.geo-marker__cross {
    display: block;
}

.geo-marker__label {
    position: absolute;
    white-space: nowrap;
    font-family: inherit;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.02em;
    color: #474747;
    pointer-events: none;
}

.geo-marker--right .geo-marker__label {
    left: 22px;
    top: 50%;
    transform: translateY(-50%);
}

.geo-marker--left .geo-marker__label {
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
}

.geo-marker--top .geo-marker__label {
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
}

.geo-marker--bottom .geo-marker__label {
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
}

/* ---------- Header ---------- */
.header {
    --header-fg: #474747;
    --header-fg-muted: rgba(71, 71, 71, 0.7);
    --header-pill-bg: rgba(71, 71, 71, 0.07);
    --header-logo-fill: #474747;
    --header-arrow: #474747;
    position: fixed;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    width: calc(100% - 80px);
    max-width: 1440px;
    left: 50%;
    transform: translateX(-50%);
    transition: color 0.35s ease;
}

.header--on-dark {
    --header-fg: #ffffff;
    --header-fg-muted: rgba(255, 255, 255, 0.5);
    --header-pill-bg: rgba(255, 255, 255, 0.07);
    --header-logo-fill: #ffffff;
    --header-arrow: #ffffff;
}

.header__logo {
    display: block;
    width: 40px;
    height: 39.375px;
    flex-shrink: 0;
}

.header__logo svg {
    display: block;
    width: 100%;
    height: 100%;
}

.header__logo path {
    fill: var(--header-logo-fill, #474747);
    transition: fill 0.35s ease;
}

.header__burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 6px;
    border: 0;
    border-radius: 5px;
    background: var(--header-pill-bg);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    color: var(--header-fg);
    cursor: pointer;
    transition: background 0.35s ease, color 0.35s ease;
}

.header__burger svg {
    display: block;
    width: 24px;
    height: 24px;
}

.header__group {
    display: flex;
    align-items: center;
    gap: 311px;
}

/* ---------- Mobile menu ---------- */
.mobile-menu {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 10;
    overflow: hidden;
    flex-direction: column;
    padding: 20px;
    background: #ffffff;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
}

.mobile-menu__house {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    aspect-ratio: 375 / 567;
    background: url("../images/menu-bg.webp") center bottom / cover no-repeat;
    pointer-events: none;
}

.mobile-menu__bar,
.mobile-menu__nav,
.mobile-menu__lang {
    position: relative;
    z-index: 1;
}

.mobile-menu__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.mobile-menu__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 6px;
    border: 0;
    border-radius: 5px;
    background: #f2f2f2;
    color: #474747;
    cursor: pointer;
}

.mobile-menu__close svg {
    display: block;
    width: 24px;
    height: 24px;
}

.mobile-menu__nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.mobile-menu__link {
    font-size: 16px;
    font-weight: 300;
    line-height: normal;
    text-transform: uppercase;
    text-decoration: none;
    color: #474747;
    transition: opacity 0.3s ease;
}

.mobile-menu__link--active,
.mobile-menu__link:hover {
    font-weight: 400;
}

.mobile-menu__lang {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 40px;
}

.mobile-menu__lang-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border-radius: 5px;
    background: rgba(71, 71, 71, 0.07);
    font-size: 16px;
    font-weight: 300;
    line-height: normal;
    text-transform: uppercase;
    color: #474747;
}

.mobile-menu__lang-arrow {
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 6px solid #474747;
    transition: transform 0.25s ease;
}

.mobile-menu__lang {
    position: relative;
    cursor: pointer;
    user-select: none;
}

.mobile-menu__lang.is-open .mobile-menu__lang-arrow {
    transform: rotate(180deg);
}

.mobile-menu__lang-list {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    display: none;
    flex-direction: column;
    gap: 6px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.mobile-menu__lang.is-open .mobile-menu__lang-list {
    display: flex;
}

.mobile-menu__lang-list a {
    display: block;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.mobile-menu__lang-list a:hover {
    opacity: 0.7;
}

.mobile-menu__lang-list .mobile-menu__lang-pill {
    width: 100%;
}

body.is-menu-open {
    overflow: hidden;
}

/* ---------- Navigation ---------- */
.nav {
    display: flex;
    align-items: center;
    gap: 6px;
}

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

.nav__bullet {
    width: 8px;
    height: 8px;
    flex-shrink: 0;
}
.nav__item--active .nav__bullet {
    width: 0;
    height: 0;
    margin-left: 1px;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 7px solid var(--header-fg);
    transition: border-color 0.35s ease;
}

.nav__pill {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px 7px;
    border-radius: 5px;
    background: var(--header-pill-bg);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    transition: background 0.35s ease;
}

.nav__pill span {
    display: inline-flex;
    flex-direction: column;
    font-size: 16px;
    font-weight: 300;
    line-height: normal;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--header-fg-muted);
    transition: color 0.35s ease;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}

.nav__pill span i {
    height: 0;
    font-style: normal;
    font-weight: 400;
    visibility: hidden;
    overflow: hidden;
    pointer-events: none;
}

.nav__item--active .nav__pill span,
.nav__item:hover .nav__pill span {
    font-weight: 400;
    color: var(--header-fg);
}

/* ---------- Language switcher ---------- */
.lang {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lang__pill {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7px;
    border-radius: 5px;
    background: var(--header-pill-bg);
    transition: background 0.35s ease;
}

.lang__pill span {
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--header-fg);
    transition: color 0.35s ease;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}
.lang__arrow {
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 6px solid var(--header-arrow);
    transition: border-color 0.35s ease, transform 0.25s ease;
}

.lang {
    position: relative;
    cursor: pointer;
    user-select: none;
}

.lang.is-open .lang__arrow {
    transform: rotate(180deg);
}

.lang__dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: auto;
    display: none;
    flex-direction: column;
    gap: 6px;
    padding: 0;
    margin: 0;
    list-style: none;
    z-index: 30;
}

.lang.is-open .lang__dropdown {
    display: flex;
}

.lang__dropdown a {
    display: block;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.lang__dropdown a:hover {
    opacity: 0.7;
}

.lang__dropdown .lang__pill {
    width: 100%;
}

.about-hero {
    position: relative;
    width: 100%;
    /* height: 1020px; */
    max-height: 1020px;
    height: 100vh;
    overflow: hidden;
    background: linear-gradient(to top, #8eacc6 59.804%, #27679e 100%);
}

.about-hero__inner {
    position: relative;
    width: calc(100% - 80px);
    height: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding-top: 80px;
}

.about-hero__brand {
    position: absolute;
    left: 50%;
    top: 141px;
    z-index: 1;
    margin: 0;
    width: min(1440px, 100%);
    transform: translate(-50%, 160px);
    opacity: 0;
    transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1),
                opacity 1.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.about-hero__brand svg {
    display: block;
    width: 100%;
    height: auto;
}
.about-hero__brand text {
    fill: #ffffff;
    font-family: inherit;
    font-weight: 400;
    font-size: 453.721px;
    text-transform: uppercase;
}

.about-hero__brand.is-visible {
    transform: translate(-50%, 0);
    opacity: 1;
}

.about-hero__photo {
    position: absolute;
    left: 0;
    /* bottom: 0; */
    top: 172px;
    z-index: 2;
    width: 100%;
    height: 848px;
    object-fit: cover;
    object-position: center;
}


/* Glow attached to the text via ::before so it follows the bottom-anchored
   slogan/lead instead of using fixed top px (like the services-hero glows). */
.about-hero__slogan::before,
.about-hero__lead::before {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    background: #000000;
    pointer-events: none;
}

.about-hero__slogan::before {
    left: -33.33%;
    bottom: -44px;
    width: 158.63%;
    height: 211px;
    filter: blur(110.6px);
}

.about-hero__lead::before {
    right: -3.45vw;
    bottom: -62px;
    width: 481px;
    height: 211px;
    filter: blur(103.6px);
}

.about-hero__crumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.1;
    white-space: nowrap;
    color: #ffffff;
    width: fit-content;
}

.about-hero__slogan {
    position: absolute;
    left: 0;
    /* top: 565px; */
    bottom: 33.61%;
    z-index: 4;
    width: 933px;
    margin: 0;
    font-size: 40px;
    font-weight: 300;
    line-height: 0.85;
    text-transform: uppercase;
    text-indent: 388px;
    color: #ffffff;
}

.about-hero__lead {
    position: absolute;
    /* top: 859px; */
    bottom: 7.94%;
    right: 0;
    z-index: 4;
    width: 345px;
    margin: 0;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.12;
    text-align: justify;
    color: #ffffff;
}

/* ---------- Services hero (Figma 414:1926) ---------- */
.services-hero {
    position: relative;
    width: 100%;
    /* height: 800px; */
    height: 100vh;
    max-height: 1020px;
    overflow: hidden;
    background: #393939;
    margin-bottom: 120px;
}
.services-hero:not(.portfolio-hero) {
    min-height: 800px;
}
.services-hero__inner {
    position: relative;
    width: 1440px;
    max-width: calc(100% - 80px);
    /* height: 800px; */
    height: 100%;
    margin: 0 auto;
}

.services-hero__photo {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
}
.services-hero__watermark {
    position: absolute;
    left: 50%;
    top: clamp(88px, calc(265.52px - 11.56vw), 173px);
    width: 1440px;
    max-width: 100%;
    margin: 0;
    transform: translateX(-50%);
    overflow: hidden;
    z-index: 1;
}
.services-hero__watermark svg {
    display: block;
    width: 100%;
    height: auto;
}
.services-hero__watermark text {
    fill: rgba(255, 255, 255, 0.5);
    font-size: 252px;
    font-weight: 400;
    font-family: inherit;
}

.services-hero__crumbs {
    position: absolute;
    top: 80px;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.1;
    white-space: nowrap;
    color: #ffffff;
}

.services-hero__title {
    position: absolute;
    top: 415px;
    z-index: 4;
    width: 849px;
    margin: 0;
    font-size: 40px;
    font-weight: 300;
    line-height: 1.1;
    text-transform: uppercase;
    color: #ffffff;
}

.services-hero__lead {
    position: absolute;
    top: 607px;
    z-index: 4;
    width: 345px;
    margin: 0;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
    text-align: justify;
    color: #ffffff;
}

.services-hero:not(.portfolio-hero) .services-hero__title::before,
.services-hero:not(.portfolio-hero) .services-hero__lead::before {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    background: rgba(71, 58, 41, 0.81);
    pointer-events: none;
}

.services-hero:not(.portfolio-hero) .services-hero__title::before {
    left: -127px;
    top: -55px;
    width: 1022px;
    height: 226px;
    filter: blur(58.85px);
}

.services-hero:not(.portfolio-hero) .services-hero__lead::before {
    left: -56px;
    top: -60px;
    width: 498px;
    height: 226px;
    filter: blur(41.95px);
}

/* ---------- Portfolio hero ---------- */
.portfolio-hero {
    background: url('../images/portfolio-villa.webp') center center / cover no-repeat;
}

.portfolio-hero .services-hero__watermark {
    justify-content: flex-start;
    top: 116px;
    width: 99.3%;
    left: 0;
    transform: unset;
}

.portfolio-hero .services-hero__title::before,
.portfolio-hero .services-hero__lead::before,
.portfolio-hero__cta::before {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    background: rgba(71, 58, 41, 0.81);
    pointer-events: none;
}
.portfolio-hero .services-hero__title::before {
    left: -87px;
    top: -33px;
    width: 641px;
    height: 196px;
    filter: blur(58.85px);
}

.portfolio-hero .services-hero__lead::before {
    left: -50px;
    top: -78px;
    width: 652px;
    height: 228px;
    filter: blur(41.95px);
}

.portfolio-hero__cta::before {
    left: -42px;
    top: -39px;
    width: 263px;
    height: 114px;
    filter: blur(40px);
}

.portfolio-hero .services-hero__title {
    width: 456px;
    /* top: 413px; */
    top: min(calc(213px + 13.03vw), 413px);
    line-height: 0.85;
}

.portfolio-hero .services-hero__lead {
    width: 506px;
    top: unset;
    bottom: 88px;
}
.portfolio-hero__cta {
    position: absolute;
    left: 673px;
    bottom: 83px;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: flex-start;
    text-decoration: none;
    cursor: pointer;
}
.portfolio-hero__cta .portfolio-hero__cta-icon {
    transition: transform 0.3s ease;
}
.portfolio-hero__cta:hover .portfolio-hero__cta-icon {
    transform: rotate(45deg);
}
.portfolio-hero__cta-row {
    display: flex;
    align-items: center;
    gap: 11px;
}

.portfolio-hero__cta-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
    color: #ffffff;
}

.portfolio-hero__cta-icon {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    color: #ffffff;
}

.portfolio-hero__cta-line {
    width: 100%;
    height: 2px;
    background: #ffffff;
}

.projects {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
}

.projects__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 60px;
    padding-bottom: 120px;
}

.projects__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
#projects-tabs {
    scroll-margin-top: 100px;
}
.projects__tabs {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 19px;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    outline: none;
}
.projects__tabs::-webkit-scrollbar {
    display: none;
}
.projects__tabs.is-dragging {
    cursor: grabbing;
    user-select: none;
}
.projects__tabs.is-dragging .projects__tab {
    cursor: grabbing;
}

.projects__tab {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7px;
    border-radius: 5px;
    font-size: 24px;
    font-weight: 300;
    line-height: normal;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
    color: rgba(17, 17, 17, 0.5);
    backdrop-filter: blur(5px);
    transition: color 0.3s ease;
    cursor: pointer;
}
.projects__tab:not(.projects__tab--active):hover {
    color: rgba(17, 17, 17, 0.8);
}
.projects__tab--active {
    height: 54px;
    background: rgba(17, 17, 17, 0.07);
    color: #111111;
    padding: 7px 20px;
}
.projects__divider {
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(to right,
        #474747 0 5px, transparent 5px 10px);
}
.projects__line {
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(to right,
        #474747 0 5px, transparent 5px 10px);
    margin-top: -1px;
    z-index: 0;
}
.projects__row {
    display: flex;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.projects__row--reverse {
    flex-direction: row-reverse;
}

.projects__media {
    width: calc(50% - 10px);
}

.projects__media.simple_animation.from-bottom {
    transform: translateY(90px);
}
.projects__media.simple_animation.from-top {
    transform: translateY(-90px);
}
.projects__media.simple_animation.is-visible {
    transform: translateY(0);
}

.projects__carousel {
    position: relative;
    width: 100%;
    aspect-ratio: 710 / 618;
    padding: 20px;
    overflow: hidden;
    clip-path: inset(0);
    touch-action: pan-y;
}

.projects__track {
    position: absolute;
    inset: 0;
    display: flex;
    will-change: transform;
}

.projects__slide {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
}

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

.projects__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 7px;
    border: 0;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.67);
    backdrop-filter: blur(5px);
    color: #111111;
    cursor: pointer;
    transform: translateY(-50%);
    transition: background 0.3s ease;
}
.projects__arrow svg {
    width: 24px;
    height: 24px;
}

.projects__arrow--prev {
    left: 20px;
}

.projects__arrow--prev svg {
    transform: rotate(180deg);
}

.projects__arrow--next {
    right: 20px;
}

.projects__overlay {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    padding: 20px;
    background: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(14.5px);
}

.projects__card-title {
    margin: 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.1;
    text-transform: uppercase;
    color: #ffffff;
    overflow: hidden;
    text-overflow: ellipsis;
}

.projects__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-right: 4px;
}

.projects__meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 18px;
    line-height: 1.1;
    letter-spacing: -0.216px;
    color: #ffffff;
    max-width: 60%;
    overflow-wrap: anywhere;
}
.projects__meta-icon {
    display: block;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: #ffffff;
}

.projects__meta-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.projects__info {
    width: calc(50% - 10px);
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding: 20px;
}

.projects__intro {
    font-size: 20px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.24px;
    color: #474747;
    z-index: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.projects__hr {
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.6) 0 4px, transparent 4px 8px);
    margin-bottom: 2px;
}

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

.projects__subtitle {
    margin: 0;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -0.24px;
    color: #474747;
}

.projects__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    list-style: none;
}

.projects__list-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.216px;
    color: #474747;
    overflow: hidden;
}
.projects__list-item span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.projects__bullet {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #474747;
    color: #ffffff;
}

.projects__bullet svg {
    display: block;
    width: 14px;
    height: 14px;
}

.projects__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: -21px;
}

.projects__page {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px 7px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 300;
    line-height: normal;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(17, 17, 17, 0.5);
    backdrop-filter: blur(5px);
    transition: color 0.3s ease, background 0.3s ease;
}

.projects__page:not(.projects__page--active):not(.projects__page--arrow):hover {
    color: rgba(17, 17, 17, 0.85);
}

.projects__page--active {
    background: rgba(17, 17, 17, 0.07);
    color: #111111;
    min-width: 34px;
}

.projects__page--arrow {
    min-width: 0;
    padding: 7px;
    background: rgba(71, 71, 71, 0.07);
    color: #111111;
}

.projects__page--arrow:hover {
    background: rgba(71, 71, 71, 0.14);
}

.projects__page--arrow svg {
    display: block;
    width: 24px;
    height: 24px;
}

.projects__page--prev svg {
    transform: rotate(180deg);
}

.projects__page--disabled {
    pointer-events: none;
    cursor: default;
}
.projects__page--disabled svg {
    fill-opacity: 0.5;
}
.unique {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
}

.unique__inner {
    position: relative;
    width: 100%;
    max-width: 1520px;
    height: 800px;
    margin: 0 auto;
}

.unique__photo {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 607px;
    object-fit: cover;
    object-position: center bottom;
}
.unique__overlay {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 607px;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(102, 102, 102, 0.2) 100%),
        rgba(0, 0, 0, 0.47);
}

.unique__head {
    position: relative;
    z-index: 3;
    padding: 55px 40px 0;
}

.unique__title {
    width: 1097px;
    max-width: 100%;
    margin: 0;
    font-size: 78.713px;
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    color: #ffffff;
}

.unique__text {
    display: flex;
    gap: 40px;
    width: 1092px;
    max-width: 100%;
    margin-top: 27px;
}

.unique__col {
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
    text-align: justify;
    color: #ffffff;
}

.unique__col--wide {
    flex: 0 0 591px;
    width: 591px;
}
.unique__cards {
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 3;
    display: flex;
    gap: 40px;
    width: 1164px;
    max-width: calc(100% - 80px);
    margin: 0;
    padding: 0;
    list-style: none;
    transform: translateX(-50%);
}

.unique-card {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    opacity: 0;
    transform: translateY(60px);
    transition:
        opacity 0.45s cubic-bezier(0.33, 1, 0.68, 1),
        transform 0.75s cubic-bezier(0.33, 1, 0.68, 1);
}

.unique-card.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.unique-card__img {
    width: 190px;
    height: 190px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center;
}

.unique-card__meta {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 190px;
    max-width: 100%;
}

.unique-card__num {
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.288px;
    text-align: center;
    color: #474747;
}

.unique-card__line {
    width: 100%;
    height: 1px;
    background-image: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}

.unique-card__label {
    margin: 0;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.1;
    text-align: center;
    color: #474747;
}

/* ---------- Competences: «Отдельные компетенции» ----------. */
.competences {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    --dash-h: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}
.competences__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding: 120px 0;
}

.competences__head {
    width: 953px;
    max-width: 100%;
    margin: 0 0 47px;
}

.competences__watermark {
    height: 128px;
    overflow: hidden;
}
.competences__watermark.simple_animation,
.competences__watermark.simple_animation.from-bottom,
.competences__watermark.simple_animation.from-top,
.competences__watermark.simple_animation.is-visible {
    opacity: 1;
    transform: none;
}
.competences__watermark-text {
    display: block;
    position: relative;
    top: -17px;
    font-size: 238.534px;
    font-weight: 400;
    line-height: 0.95;
    white-space: nowrap;
    color: #e3e0de;
    transform: translateY(110%);
    transition: transform 1s cubic-bezier(0.33, 1, 0.68, 1);
}
.competences__watermark.is-visible .competences__watermark-text {
    transform: translateY(0);
}
.competences__title {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin: 2px 0 0;
    font-size: 42px;
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}
.competences__title-part {
    flex-shrink: 0;
}
.competences__body {
    display: flex;
    gap: 20px;
    width: 100%;
}

.competences__media {
    position: relative;
    flex: 0 0 611px;
    width: 611px;
    height: 453px;
    overflow: hidden;
}

.competences__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    will-change: transform;
}

.competences__photo--anim {
    transition: transform 0.7s cubic-bezier(0.76, 0, 0.24, 1);
}

.competences__list {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
}
.competence {
    background-size: 100% 1px;
    background-position: left top;
    background-repeat: no-repeat;
    padding-bottom: 16px;
}
.competence + .competence{
    padding-top: 22px;
    background-image: var(--dash-h);
}
.competence__head {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-family: inherit;
    text-align: left;
    color: #474747;
    cursor: pointer;
}
.competence__marker {
    margin-left: 1px;
    display: none;
    width: 12px;
    height: 12px;
    background: #474747;
    transform: rotate(45deg);
}

.competence--open .competence__marker {
    display: block;
}

.competence__name {
    flex: 1 1 0;
    min-width: 0;
    font-size: 24px;
    font-weight: 300;
    line-height: 1.1;
    color: #474747;
}

.competence--open .competence__name {
    font-weight: 500;
    padding-left: 3px;
}
.competence__arrow {
    flex-shrink: 0;
    color: #474747;
    transition: transform 0.35s ease;
}

.competence--open .competence__arrow {
    transform: rotate(180deg);
}
.competence__body {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows 0.35s ease, opacity 0.3s ease;
}
.competence--open .competence__body {
    grid-template-rows: 1fr;
    opacity: 1;
}
.competence__body-inner {
    min-height: 0;
    overflow: hidden;
}
.competence__text {
    margin: 0;
    padding-top: 14px;
    padding-bottom: 8px;
    font-size: 18px;
    font-weight: 300;
    line-height: 22px;
    letter-spacing: -0.216px;
    text-align: justify;
    color: #474747;
}
/* ---------- About: intro / «Про компанию» ---------- */
.about-intro {
    width: 100%;
    background: #ffffff;
}
.about-intro__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 80px;
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding: 208px 0 120px;
}
.about-intro__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
}
.about-intro__title-clip {
    width: 100%;
    height: 105px;
    overflow: hidden;
}

.about-intro__bigtitle {
    margin: -26px 0 0;
    font-size: 214px;
    font-weight: 400;
    line-height: 0.95;
    white-space: nowrap;
    color: #e3e0de;
}
.about-intro__bigtitle.simple_animation,
.about-intro__bigtitle.simple_animation.from-bottom,
.about-intro__bigtitle.simple_animation.from-top,
.about-intro__bigtitle.simple_animation.is-visible {
    opacity: 1;
    transform: none;
}
.about-intro__bigtitle-inner {
    display: inline-block;
    transform: translateY(110%);
    transition: transform 1s cubic-bezier(0.33, 1, 0.68, 1);
}
.about-intro__bigtitle.is-visible .about-intro__bigtitle-inner {
    transform: translateY(0);
}

.about-intro__subtitle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 608px;
    max-width: 100%;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.about-intro__lead {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    width: fit-content;
    max-width: 100%;
}

.about-intro__lead-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 20px;
    width: 100%;
}

.about-intro__lead-row span {
    white-space: nowrap;
}

.about-intro__lead-row span,
.about-intro__lead-last {
    margin: 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #474747;
}

.about-intro__lead-last {
    width: 100%;
    text-align: right;
}

.about-intro__pill {
    flex-shrink: 0;
    width: 114px;
    height: 31px;
    border-radius: 57px;
    object-fit: cover;
}
.about-intro__bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    width: 100%;
}

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

.about-intro__photo {
    width: 223px;
    height: 170px;
    object-fit: cover;
}

.about-intro__cols {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    width: 832px;
    flex-shrink: 1;
}

.about-intro__col {
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    font-size: 16px;
    font-weight: 200;
    line-height: 1.12;
    text-align: justify;
    color: #474747;
}

.about-intro__col--narrow {
    flex: 0 1 467px;
}
.about-history {
    width: 100%;
    background: #ffffff;
}

.about-history__inner {
    display: flex;
    flex-direction: column;
    gap: 37px;
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 0 25px;
}

.about-history__title {
    margin: 0;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.about-history__body {
    position: relative;
    width: 100%;
    padding-left: 179px;
}

.about-history__year {
    position: absolute;
    top: 50%;
    left: -179px;
    transform: translateY(-50%);
    width: 52px;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
    color: #474747;
}

.about-history__track {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 97px;
    width: 41px;
}
.about-history__line {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 100%;
    background-image: repeating-linear-gradient(to bottom,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}
.about-history__line--solid {
    height: 175px;
    background: #474747;
    background-image: none;
}
.about-history__marker {
    position: absolute;
    top: 175px;
    left: 50%;
    width: 29px;
    height: 29px;
    background: #474747;
    transform: translate(calc(-50% + 0.5px), -50%) rotate(45deg);
}
.about-history__text {
    display: flex;
    flex-direction: column;
    gap: 40px;
    flex: 1 1 0;
    min-width: 0;
}

.about-history__block {
    position: relative;
    min-height: 90px;
}

.about-history__block p {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 200;
    line-height: 1.1;
    color: #474747;
}

.about-history__block p:last-child {
    margin-bottom: 0;
}

.about-history__block--muted {
    opacity: 0.4;
}

.about-history.is-scrub .about-history__block {
    opacity: 0.4;
    transition: opacity 0.45s ease;
}

.about-history.is-scrub .about-history__block.is-active {
    opacity: 1;
}

.about-history.is-scrub .about-history__line--solid {
    height: var(--fill, 0px);
}

.about-history.is-scrub .about-history__marker {
    top: var(--fill, 45px);
}

.about-cta {
    position: relative;
    width: 100%;
    height: 1054px;
    overflow: hidden;
    margin-bottom: 120px;
    background: linear-gradient(0deg, #e5c3c1 11.433%, #ecdfd9 24.831%, #e7e6e2 47.553%, #e9f3ff 70.874%, #f7f7f7 100%);
}

.about-cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 220px;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
}

.about-cta__img {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    display: block;
    width: 100%;
    min-width: 1520px;
    height: auto;
    pointer-events: none;
    user-select: none;
}
.about-cta__inner {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    width: calc(100% - 80px);
    max-width: 1440px;
    height: 100%;
    padding-top: 292px;
    box-sizing: border-box;
    z-index: 2;
}

.about-cta__box {
    display: flex;
    flex-direction: column;
    gap: 38px;
    max-width: 710px;
    color: #474747;
}

.about-cta__title {
    margin: 0;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
}

.about-cta__text {
    display: flex;
    flex-direction: column;
    gap: 20px;
    font-size: 16px;
    font-weight: 200;
    line-height: 1.12;
}

.about-cta__text p {
    margin: 0;
}

.about-cta__group p + p {
    margin-top: 0;
}

/* ---------- About: «Наши цели» ---------- */
.about-goals {
    width: 100%;
    padding-bottom: 120px;
}
.about-goals__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 70px;
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
}

.about-goals__line {
    width: 100%;
    height: 1px;
    background: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}

.about-goals__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 41px;
    width: 1197px;
    max-width: 100%;
    text-align: center;
    color: #474747;
    word-break: break-word;
}

.about-goals__title {
    margin: 0;
    width: 100%;
    font-size: 42px;
    font-weight: 300;
    line-height: 0.95;
    text-transform: uppercase;
}

.about-goals__text {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
}

.about-goals__text p {
    margin: 0;
}

.faq {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    --dash-h: repeating-linear-gradient(to right,
        rgba(71, 71, 71, 0.5) 0 5px, transparent 5px 10px);
}

.faq__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 0 120px;
}

.faq__title {
    flex-shrink: 0;
    margin: 0;
    font-size: 46px;
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
}

.faq__list {
    width: 953px;
    background-image: var(--dash-h);
    background-size: 100% 1px;
    background-position: left bottom;
    background-repeat: no-repeat;
}

.faq__item {
    position: relative;
    padding: 20px 0;
    background-image: var(--dash-h);
    background-size: 100% 1px;
    background-position: left top;
    background-repeat: no-repeat;
}

.faq__head {
    display: flex;
    align-items: center;
    padding-right: 34px;
    list-style: none;
    cursor: pointer;
}

.faq__head::-webkit-details-marker {
    display: none;
}

.faq__q {
    flex: 1 1 0;
    min-width: 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.1;
    color: #474747;
}

.faq__arrow {
    position: absolute;
    right: 0;
    top: 50%;
    color: #474747;
    transform: translateY(-50%);
    transition: transform 0.35s ease;
}

.faq__item--open .faq__arrow {
    transform: translateY(-50%) rotate(180deg);
}

.faq__a {
    display: grid;
    grid-template-rows: 0fr;
    max-width: calc(100% - 34px);
    opacity: 0;
    transition: grid-template-rows 0.35s ease, opacity 0.3s ease;
}

.faq__item--open .faq__a {
    grid-template-rows: 1fr;
    opacity: 1;
}

.faq__a-inner {
    min-height: 0;
    overflow: hidden;
}

.faq__a-inner p {
    padding-top: 16px;
}

.faq__a p {
    margin: 0;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.1;
    color: #474747;
}

/* ---------- Footer ---------- */
.footer {
    position: relative;
    z-index: 1;
    width: 100%;
    overflow: hidden;
    padding-top: 40px;
    background: #ffffff;
    color: #474747;
}

.footer__inner {
    width: calc(100% - 80px);
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.footer__top {
    display: flex;
    flex-direction: column;
    gap: 49px;
}

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

.footer__logo {
    display: block;
    width: 40px;
    height: 39.375px;
    flex-shrink: 0;
}

.footer__logo svg {
    display: block;
    width: 100%;
    height: 100%;
}

.footer__logo path {
    fill: #474747;
}

.footer__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    width: 100%;
}

.footer__heading {
    margin: 0;
    font-size: 42px;
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    color: #474747;
    word-break: break-word;
    min-width: 45.9%;
}

.footer__cols {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    min-width: 687px;
    justify-content: space-between;
}

/* ---------- Footer: navigation ---------- */
.footer-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-nav__item {
    font-size: 16px;
    font-weight: 300;
    line-height: normal;
    text-transform: uppercase;
    white-space: nowrap;
    text-decoration: none;
    color: #474747;
    transition: opacity 0.3s ease;
}

.footer-nav__item:hover {
    opacity: 0.6;
}

/* ---------- Footer: contacts ---------- */
.footer-contacts {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 135px;
    margin-right: 1px;
}

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

.footer-contact {
    display: flex;
    max-width: 100%;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: #474747;
    overflow: hidden;
}

.footer-contact__icon,
.footer-social {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Ccircle cx='18' cy='18' r='17.5' fill='none' stroke='%23474747' stroke-dasharray='5 5'/%3E%3C/svg%3E");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    border-radius: 50%;
    color: #474747;
}

.footer-contact__icon svg,
.footer-social svg {
    display: block;
    width: 20px;
    height: 20px;
}
.footer-contact:hover .footer-contact__icon {
    background-color: rgba(71, 71, 71, 0.9);
}
.footer-contact:hover .footer-contact__icon path {
    fill: white;
}

.footer-contact__text {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.1;
    color: #474747;
    transition: opacity 0.3s ease;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.footer-contact__text--upper {
    text-transform: uppercase;
    white-space: normal;
    max-width: 174px;
}

.footer-contact:hover .footer-contact__text {
    opacity: 0.6;
}

.footer-socials {
    display: flex;
    align-items: center;
    gap: 20px;
}

.footer-social {
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.footer-social:hover {
    background: rgba(71, 71, 71, 0.90);
}
.footer-social:hover path{
    fill: #ffffff;
}
/* ---------- Footer: legal ---------- */
.footer-legal {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 135px;
    width: 240px;
}

.footer-legal__links {
    display: flex;
    text-align: start;
    flex-direction: column;
    gap: 22px;
}

.footer-legal__link {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.1;
    text-transform: uppercase;
    text-decoration: none;
    color: #474747;
    transition: opacity 0.3s ease;
}

.footer-legal__link:hover {
    opacity: 0.6;
}

.footer-legal__copy {
    margin: 0;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.1;
    text-transform: uppercase;
    color: #474747;
}

/* ---------- Footer: credit ---------- */
.footer__credit {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.footer__credit-text {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.1;
    text-transform: uppercase;
    color: #474747;
}

.footer__credit-logo {
    display: block;
    width: 47px;
    height: 20px;
    flex-shrink: 0;
}

.footer__credit-logo svg {
    display: block;
    width: 100%;
    height: 100%;
}
.footer__watermark {
    width: 100%;
    height: clamp(75px, 19.4vw, 300px);
    margin-top: 20px;
    overflow: hidden;
    text-align: center;
}

.footer__watermark span {
    display: block;
    margin-top: -0.5px;
    font-size: clamp(120px, 31vw, 478px);
    max-width: 100%;
    font-weight: 400;
    line-height: 0.9;
    text-transform: uppercase;
    white-space: nowrap;
    color: #f7f7f7;
    transform: translateY(110%);
    transition: transform 1.2s cubic-bezier(0.33, 1, 0.68, 1);
    will-change: transform;
}

.footer__watermark.is-visible span {
    transform: translateY(0);
}

/* ---------- Contacts: hero ---------- */
.contacts {
    position: relative;
    width: 100%;
    height: 800px;
    overflow: hidden;
    background: #2c2c2c;
}

.contacts__inner {
    position: relative;
    width: 1440px;
    max-width: calc(100% - 80px);
    height: 800px;
    margin: 0 auto;
}

.contacts__brand {
    position: absolute;
    left: 0;
    top: 7px;
    z-index: 1;
    margin: 0;
    width: 100%;
}
.contacts__brand svg {
    display: block;
    width: 100%;
    height: auto;
}
.contacts__brand text {
    fill: rgba(247, 247, 247, 0.05);
    font-family: inherit;
    font-weight: 400;
    font-size: 453.721px;
    text-transform: uppercase;
}

.contacts__photo {
    position: absolute;
    right: -50px;
    top: -81px;
    z-index: 2;
    width: 780px;
    height: 800px;
    pointer-events: none;
}

.contacts__photo img {
    position: absolute;
    left: -1.46%;
    top: -0.03%;
    width: 224.54%;
    height: 122.23%;
    max-width: none;
}

.contacts__col {
    position: relative;
    z-index: 4;
    margin-top: 80px;
    width: 710px;
    max-width: 49.3%;
    min-height: 539px;
    display: flex;
    flex-direction: column;
}

.contacts__crumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.1;
    white-space: nowrap;
    color: #ffffff;
}

.contacts__intro {
    margin-top: 119px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    color: #ffffff;
}

.contacts__title {
    margin: 0;
    font-size: 66px;
    font-weight: 300;
    line-height: 0.85;
    text-transform: uppercase;
}

.contacts__lead {
    margin: 0;
    font-size: 18px;
    font-weight: 200;
    line-height: 1.1;
    text-align: justify;
}

.contacts__list {
    margin-top: auto;
    width: 100%;
    display: flex;
    gap: 20px;
    margin-bottom: 0;
    padding: 0;
    list-style: none;
}

.contacts__item {
    width: 223px;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.contacts__icon {
    width: 36px;
    min-width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100%25'%20height='100%25'%20fill='none'%3E%3Crect%20width='100%25'%20height='100%25'%20rx='50%25'%20ry='50%25'%20stroke='white'%20stroke-width='2'%20stroke-dasharray='5%205'/%3E%3C/svg%3E");
}

.contacts__icon svg {
    width: 20px;
    height: 20px;
    display: block;
}

.contacts__item-text {
    min-width: 0;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.1;
    color: #ffffff;
    text-decoration: none;
}

.contacts__item:hover a.contacts__item-text {
    opacity: 0.6;
}
.contacts__item:has(a.contacts__item-text):hover .contacts__icon {
    opacity: 0.6;
}

.contacts__form {
    position: absolute;
    right: 1px;
    top: 134px;
    z-index: 2;
    width: 467px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    padding: 25px;
    border-radius: 5px;
    background-color: rgba(255, 255, 255, 0.07);
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100%25'%20height='100%25'%20fill='none'%3E%3Crect%20width='100%25'%20height='100%25'%20rx='5'%20ry='5'%20stroke='white'%20stroke-width='2'%20stroke-dasharray='5%205'/%3E%3C/svg%3E");
    backdrop-filter: blur(43.2px);
    -webkit-backdrop-filter: blur(43.2px);
}

.contacts__form-note {
    width: 100%;
    margin: 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.1;
    color: #ffffff;
}

.contacts__fields {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contacts__field {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    border: none;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.2);
    font-family: inherit;
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
    letter-spacing: -0.192px;
    color: #ffffff;
}

.contacts__field::placeholder {
    color: rgba(255, 255, 255, 0.8);
    opacity: 1;
}

.contacts__field:focus {
    outline: none;
    background: rgba(255, 255, 255, 0.28);
}

.contacts__submit-wrap {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 1px;
}

.contacts__submit {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    padding: 0;
    border: none;
    background: none;
    color: #ffffff;
    cursor: pointer;
}

.contacts__submit-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.contacts__submit-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
}

.contacts__submit-arrow {
    width: 14px;
    height: 14px;
    display: block;
    transition: transform 0.3s ease;
}
.contacts__submit:hover .contacts__submit-arrow {
    transform: rotate(45deg);
}

.contacts__submit-line {
    height: 2px;
    width: 100%;
    background: #ffffff;
}
.contacts__inner > .wpcf7 {
    display: contents;
}

.contacts__form .project-modal__note {
    font-size: 18px;
    margin-bottom: 0;
}
.contacts__form .project-modal__fields {
    margin-bottom: 0;
}
.contacts__form .project-modal__submit-wrap {
    margin-top: 1px;
}
.project-modal__submit-arrow {
    transition: transform 0.3s ease;
}
.project-modal__submit:hover .project-modal__submit-arrow {
    transform: rotate(45deg);
}

.project-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.project-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.project-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    -webkit-backdrop-filter: blur(4.35px);
    backdrop-filter: blur(4.35px);
}

.project-modal__window {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    max-width: 100%;
    transform: translateY(16px);
    transition: transform 0.35s ease;
}

.project-modal.is-open .project-modal__window {
    transform: translateY(0);
}

.project-modal__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 6px;
    box-sizing: border-box;
    border: none;
    border-radius: 5px;
    background: #474747;
    color: #ffffff;
    cursor: pointer;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    transition: background 0.2s ease;
}

.project-modal__close:hover {
    background: #5a5a5a;
}

.project-modal__close svg {
    width: 24px;
    height: 24px;
    display: block;
}

.project-modal__dialog {
    box-sizing: border-box;
    width: 467px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 25px;
    border-radius: 5px;
    background: rgba(44, 44, 44, 0.57);
    -webkit-backdrop-filter: blur(43.2px);
    backdrop-filter: blur(43.2px);
}

.project-modal__form {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.project-modal__note {
    width: 100%;
    margin: 0;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.1;
    color: #ffffff;
    margin-bottom: 40px;
}

.project-modal__fields {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
}

.project-modal__fields .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

.project-modal__field {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    border: none;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.2);
    font-family: inherit;
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
    letter-spacing: -0.192px;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.3);;
}

.project-modal__field::placeholder {
    color: rgba(255, 255, 255, 0.8);
    opacity: 1;
}

.project-modal__field:focus {
    outline: none;
    background: rgba(255, 255, 255, 0.28);
}

.project-modal__submit-wrap {
    width: 100%;
    display: flex;
    justify-content: center;
}

.project-modal__submit {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
    padding: 0;
    border: none;
    background: none;
    color: #ffffff;
    cursor: pointer;
}

.project-modal__submit-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.project-modal__submit-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.1;
    text-transform: uppercase;
}

.project-modal__submit-arrow {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    display: block;
}

.project-modal__submit-line {
    height: 2px;
    width: 100%;
    background: #ffffff;
}
 form .wpcf7-response-output {
    color: #ffffff;
    border-radius: 2px;
}
.contacts .wpcf7 form .wpcf7-response-output {
    margin-top: -10px;
}
.wpcf7-not-valid-tip {
    color: #ffffff;
}
.wpcf7-not-valid-tip::before {
    content: "*";
    margin-right: 4px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #ffffff;
}

.main_content {
    margin: 0 auto;
    width: 1440px;
    max-width: calc(100% - 80px);
    padding: 100px 0;
    color: #474747;
}

.main_content .page_header {
    margin-bottom: 48px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(71, 71, 71, 0.12);
}

.main_content .page-title {
    margin: 0;
    max-width: 820px;
    font-size: 48px;
    font-weight: 300;
    line-height: 1.05;
    text-transform: uppercase;
    color: #474747;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main_content .page-content {
    max-width: 100%;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.6;
}

.main_content .page-content > * + * {
    margin-top: 20px;
}

.main_content .page-content h2 {
    margin-top: 56px;
    font-size: 26px;
    font-weight: 400;
    line-height: 1.2;
    color: #474747;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main_content .page-content h2:first-child {
    margin-top: 0;
}

.main_content .page-content h3 {
    margin-top: 40px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.3;
    color: #474747;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main_content .page-content p {
    margin: 0;
    color: rgba(71, 71, 71, 0.85);
    overflow: hidden;
    text-overflow: ellipsis;
}

.main_content .page-content a {
    color: #474747;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.25s ease;
    word-break: break-word;
}

.main_content .page-content a:hover {
    opacity: 0.6;
}

.main_content .page-content strong,
.main_content .page-content b {
    font-weight: 500;
    color: #474747;
}

.main_content .page-content .privacy-policy-tutorial {
    display: inline-block;
    margin-right: 4px;
    font-weight: 400;
    color: rgba(71, 71, 71, 0.45);
}

.main_content .page-content ul,
.main_content .page-content ol {
    margin: 0;
    padding-left: 24px;
    color: rgba(71, 71, 71, 0.85);
}

.main_content .page-content li + li {
    margin-top: 8px;
}

.main_content .page-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.main_content .page-content blockquote {
    margin: 32px 0;
    padding: 4px 0 4px 24px;
    border-left: 2px solid rgba(71, 71, 71, 0.2);
    font-style: italic;
    color: rgba(71, 71, 71, 0.75);
}

.main_content .no-posts {
    padding: 40px 0;
    font-weight: 300;
}

@media (max-width: 768px) {
    .portfolio__nav-btn:hover svg,
    .projects__arrow:hover svg {
        fill-opacity: 1;
    }
    .main_content {
        padding: 80px 0;
    }

    .main_content .page_header {
        margin-bottom: 32px;
        padding-bottom: 24px;
    }

    .main_content .page-title {
        font-size: 26px;
    }

    .main_content .page-content {
        font-size: 16px;
    }

    .main_content .page-content h2 {
        margin-top: 40px;
        font-size: 22px;
    }

    .main_content .page-content h3 {
        font-size: 18px;
    }

    .only_pc{
        display: none;
    }
    .header {
        width: calc(100% - 40px);
    }

    .header__logo {
        width: 33.905px;
        height: 33.375px;
    }

    .header__burger {
        display: flex;
    }

    .header__group {
        display: none;
    }
    .mobile-menu {
        display: flex;
        gap: 75px;
    }
    .mobile-menu__lang{
        margin-top: 0;
    }
    .hero {
        /* height: 100svh; */
        min-height: 600px;
    }
    .hero__bg {
        object-position: 51% center;
    }
    .hero__content {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        max-width: 100%;
        height: 100%;
        transform: none;
        display: flex;
        flex-direction: column;
        padding: 84px 19px 21px;
        margin: 0;
    }

    .hero__title {
        position: static;
        width: 100%;
        max-width: 336px;
        font-size: 22px;
        padding-right: 7px;
    }

    .hero__about {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
        max-width: 336px;
        margin-top: 24px;
        margin-left: auto;
        flex: 1 1 auto;
        gap: 20px;
    }

    .hero__brand {
        font-size: 18px;
    }

    .hero__lead {
        font-size: 16px;
    }
    .hero__scroll-text{
        font-size: 14px;
    }
    .hero__links {
        margin-top: auto;
        flex-wrap: wrap;
        gap: 20px;
    }

    .hero-link {
        width: auto !important;
    }

    .hero-link__text {
        font-size: 14px;
    }

    .hero__links .hero-link:first-child {
        color: #ffffff;
    }

    .hero__divider {
        position: relative;
        left: auto;
        top: auto;
        bottom: auto;
        width: 100%;
        margin-top: 37px;
    }
    .hero-link__arrow,
    .portfolio__more-arrow {
        width: 10px;
        height: 10px;
    }
    .hero__divider::before {
        /* заливка тянется от нуля — изначально не заполнена */
        width: calc(100% * var(--p, 0));
    }

    .hero__tag {
        font-size: 16px;
        color: #ffffff;
        will-change: transform, opacity;
    }
    .hero__tag--1 {
        position: static;
        margin-top: 21px;
        /* --t0: всплывает снизу (изначально строки нет), --tA: уезжает влево */
        --t0: clamp(0, (var(--p, 0) - 0.06) / 0.14, 1);
        --tA: clamp(0, (var(--p, 0) - 0.28) / 0.12, 1);
        transform: translate(calc(var(--tA) * -130%), calc((1 - var(--t0)) * 100%));
        opacity: min(var(--t0), calc(1 - var(--tA)));
    }

    .hero__tag--2,
    .hero__tag--3 {
        position: absolute;
        left: 19px;
        right: auto;
        top: auto;
        bottom: 21px;
        display: block;
        color: #ffffff;
    }

    .hero__tag--2 {
        --tA: clamp(0, (var(--p, 0) - 0.28) / 0.12, 1);
        --tB: clamp(0, (var(--p, 0) - 0.58) / 0.12, 1);
        transform: translate(calc(var(--tB) * -130%), calc((1 - var(--tA)) * 100%));
        opacity: min(var(--tA), calc(1 - var(--tB)));
    }

    .hero__tag--3 {
        --tB: clamp(0, (var(--p, 0) - 0.58) / 0.12, 1);
        transform: translateY(calc((1 - var(--tB)) * 100%));
        opacity: var(--tB);
    }
    .hero__scroll {
        position: absolute;
        left: auto;
        right: 22px;
        top: auto;
        bottom: 21px;
    }
    .hero-link__row{
        gap: 4px;
        margin-right: 2px;
    }
    .hero__title-indent{
        margin-top: 1px;
    }

    /* ---------- Geography ---------- */
    .geo__map {
        height: 382px;
    }
    .geo-marker__label {
        font-size: 11px;
    }

    /* ---------- Reasons: «Основа проекта» ---------- */
    .reasons {
        padding-bottom: 79px;
    }
    .reasons__inner {
        width: 759px;
        height: 517px;
        min-height: unset;
        margin: 0;
        left: 50%;
        transform: translateX(-50%);
        min-width: unset;
        max-width: unset;
    }
    .reasons__photo {
        width: 95px;
        height: 83px;
    }
    .reasons__photo:nth-child(1)  { left: 332.02px !important; top: -0.11px  !important; }
    .reasons__photo:nth-child(2)  { left: 535.12px !important; top: 34.03px  !important; }
    .reasons__photo:nth-child(3)  { left: 127.86px !important; top: 34.03px  !important; }
    .reasons__photo:nth-child(4)  { left: 0.20px   !important; top: 119.53px !important; }
    .reasons__photo:nth-child(5)  { left: 663.84px !important; top: 119.53px !important; }
    .reasons__photo:nth-child(6)  { left: 127.86px !important; top: 338px    !important; }
    .reasons__photo:nth-child(7)  { left: 535.12px !important; top: 338px    !important; }
    .reasons__photo:nth-child(8)  { left: 0.20px   !important; top: 419.21px !important; }
    .reasons__photo:nth-child(9)  { left: 663.84px !important; top: 419.27px !important; }
    .reasons__photo:nth-child(10) { left: 332.02px !important; top: 433.98px !important; }

    .reasons__text {
        width: 335px;
        gap: 20px;
    }
    .reasons__title {
        width: 335px;
        max-width: 100%;
        font-size: 20px;
        line-height: 0.95;
        white-space: normal;
    }
    .reasons__lead {
        width: 310px;
        font-size: 16px;
        line-height: 1.1;
    }

    /* ---------- Specialization: карусель ---------- */
    .spec__inner {
        width: calc(100% - 40px);
        padding-bottom: 81px;
    }
    .spec__divider {
        margin-bottom: 40px;
    }
    .spec__title {
        margin-bottom: 30px;
        font-size: 20px;
    }
    .spec__grid {
        flex-wrap: nowrap;
        width: 100vw;
        margin-left: calc(-50vw + 50%);
        padding: 0 20px 0 27px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 30px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        background-image: none;
    }
    .spec__grid::-webkit-scrollbar {
        display: none;
    }
    .spec__col,
    .spec__col:nth-child(-n + 3) {
        flex: 0 0 calc(100vw - 55px);
        min-height: auto;
        padding: 20px;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        background-image: var(--dash-h), var(--dash-h), var(--dash-v);
        background-size: 100% 1px, 100% 1px, 1px 100%;
        background-position: left top, left bottom, left top;
        background-repeat: no-repeat;
    }
    .spec__col:last-child {
        background-image: var(--dash-h), var(--dash-h), var(--dash-v), var(--dash-v);
        background-size: 100% 1px, 100% 1px, 1px 100%, 1px 100%;
        background-position: left top, left bottom, left top, right top;
    }
    .spec__col-title {
        height: auto;
        font-size: 18px;
    }
    .spec__img {
        width: 88%;
        max-width: none;
        margin: 17.5px auto;
        height: 300px;
    }
    .spec__desc {
        font-size: 16px;
    }
    .spec__nav {
        display: flex;
        justify-content: center;
        gap: 20px;
        margin-top: 28px;
    }
    .spec__nav-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 12px 12px 15px;
        border: 0;
        border-radius: 5px;
        background: rgba(71, 71, 71, 0.07);
        -webkit-backdrop-filter: blur(5px);
        backdrop-filter: blur(5px);
        cursor: pointer;
    }
    .spec__nav-btn--prev {
        padding: 12px 15px 12px 12px;
    }
    .spec__nav-btn:disabled {
        cursor: default;
    }
    .spec__nav-btn:disabled svg {
        fill-opacity: 0.5;
    }
    .why__inner,
    .team__inner {
        width: calc(100% - 40px);
        gap: 30px;
        padding-bottom: 82px;
    }
    .portfolio__more-arrow{
        margin-top: -2px;
    }
    .why-card{
        gap: 14px;
    }
    .why-card__line{
        margin-bottom: 3px;
    }
    .why__banner,
    .team__banner {
        height: 182px;
    }
    .why__heading,
    .team__heading {
        left: 10px;
        top: unset;
        bottom: -6px;
        transform: translateY(-50%);
        font-size: 34px;
    }
    .why__banner::before{
        background: linear-gradient(0deg, rgba(51, 51, 51, 0.19) 0%, rgba(51, 51, 51, 0.19) 100%),
                    url(../images/why-banner-mobile.webp) lightgray 50% / cover no-repeat;
    }

    .why__body {
        flex-direction: column;
    }
    .why__photos {
        display: none;
    }
    .why__grid {
        grid-template-columns: 1fr;
        width: 100%;
        row-gap: 40px;
    }
    .why-card__icon,
    .team .why-card__icon{
        height: 40px;
    }
    .why-card__title {
        font-size: 18px;
        line-height: 1.2;
    }
    .why-card__desc {
        font-size: 16px;
    }
    .why-card__text_short .why-card__title,
    .why-card__text_short .why-card__desc {
        max-width: none;
    }
    .portfolio__inner {
        width: calc(100% - 40px);
        align-items: stretch;
        gap: 30px;
        padding-bottom: 80px;
    }
    .portfolio__head {
        align-items: center;
    }
    .portfolio__title {
        font-size: 20px;
    }
    .portfolio__more-text {
        font-size: 14px;
    }
    .portfolio__more-row {
        gap: 4px;
    }
    .portfolio__gallery {
        width: calc(100% + 20px);
        margin-right: -20px;
    }
    .portfolio__swipers {
        gap: 10px;       
        height: 410px;
    }
    .portfolio__col {
        height: 100%;
    }
    .portfolio__col--1 {
        width: 325px;
    }
    .portfolio__col--2 {
        width: 258px;
    }
    .portfolio__col--3 {
        width: 191px;
    }
    .portfolio__nav {
        align-self: center;
    }
    .services__inner {
        width: calc(100% - 40px);
        padding-bottom: 80px;
    }
    .services__title {
        margin-bottom: 28px;
        font-size: 20px;
    }
    .services-hover-block {
        display: none;
    }
    .service-row {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
        height: auto;
        padding: 31px 0 29px;
    }
    .service-row__name {
        font-size: 18px;
        white-space: normal;
    }
    .service-row__media {
        display: block;
        width: 100%;
        max-width: 412px;
        height: auto;
        margin: 0 auto;
    }
    .service-row__items {
        width: 100%;
    }
    .service-item {
        align-items: flex-start;
        font-size: 16px;
        gap: 9px;
        line-height: 1.12;
        align-items: center;
    }
    .service-item__num {
        width: 24px;
    }
    .unique__inner {
        height: auto;
        width: calc(100% - 40px);
    }
    .unique__photo,
    .unique__overlay {
        width: 100%;
        height: 499px;
    }
    .unique__head {
        min-height: 360px;
        padding: 20px 20px 0;
    }
    .unique__title {
        width: 100%;
        font-size: 20px;
    }
    .unique__text {
        flex-direction: column;
        gap: 10px;
        width: 100%;
        margin-top: 30px;
    }
    .unique__col,
    .unique__col--wide {
        width: 100%;
        flex: none;
        font-size: 16px;
        line-height: 1.1;
    }
    .unique__cards {
        position: relative;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        justify-items: center;
        gap: 39px 20px;
        width: 100%;
        padding: 0 20px;
        max-width: none;
        margin: 64px auto 0;
        transform: none;
        left: unset;
    }
    .unique-card{
        width: 137.5px;
        gap: 13px;
    }
    .unique-card__img {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    .unique-card__meta {
        gap: 10px;
        width: 100%;
    }
    .unique-card__line {
        margin-top: 3px;
    }
    .unique-card__num {
        font-size: 18px;
        letter-spacing: -0.216px;
    }
    .competences__inner {
        padding: 60px 0;
        width: calc(100% - 40px);
    }
    .competences__head {
        width: 100%;
        margin-bottom: 28px;
    }
    .competences__watermark {
        height: 64px;
    }
    .competences__watermark-text {
        top: 17px;
        font-size: 83.85px;
    }
    .competences__title {
        gap: 12px;
        font-size: 22px;
        margin-top: 5px;
        letter-spacing: -1.4px;
        margin-right: 2px;
        max-width: 375px;
    }
    .competences__body {
        flex-direction: column;
        align-items: stretch;
    }
    .competences__media {
        flex: 0 0 auto;
        width: 100%;
        height: 248.37px;
    }
    .competence__marker{
        margin-left: 2px;
    }
    .competences__list {
        width: 100%;
    }
    .competence__name {
        font-size: 18px;
    }
    .competence{
        padding-bottom: 20px;
    }
    .competence__text {
        font-size: 16px;
        line-height: 22px;
        letter-spacing: -0.192px;
        padding-top: 17px;
        padding-bottom: 4px;
    }
    .competence__arrow{
        margin-bottom: -5px;
    }
    .competence--open .competence__arrow{
        margin-bottom: 5px;
    }
    .geo__inner {
        width: calc(100% - 40px);
        padding-bottom: 82px;
    }
    .geo__title {
        margin-bottom: 28px;
        font-size: 20px;
    }
    .faq__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 29px;
        width: calc(100% - 40px);
        padding-bottom: 60px;
    }
    .faq__title {
        font-size: 20px;
    }
    .faq__list {
        width: 100%;
    }
    .faq__q {
        font-size: 18px;
    }
    .faq__a p {
        font-size: 16px;
    }
    .faq__item{
        padding: 22px 0 20px;
    }
    .footer__main {
        gap: 39px;
    }
    .footer__inner {
        width: calc(100% - 40px);
    }
    .footer__top {
        gap: 20px;
    }
    .footer__row {
        flex-direction: column;
        align-items: flex-start;
        gap: 34px;
    }
    .footer__heading {
        flex: 0 0 auto;
        width: 100%;
        font-size: 20px;
    }
    .footer__cols {
        flex-wrap: wrap;
        align-items: center;
        gap: 35px 30px;
        width: 100%;
        min-width: unset;
    }
    .footer__watermark span{
        font-size: 31.508vw;
        margin-top: 6.267vw;
    }
    .footer-nav {
        gap: 10px;
        width: 133px;
    }
    .footer-contacts {
        margin-right: 0;
    }
    .footer-contacts__list {
        gap: 20px;
    }
    .footer-contact__icon,
    .footer-social {
        width: 30px;
        height: 30px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Ccircle cx='15' cy='15' r='14.5' fill='none' stroke='%23474747' stroke-dasharray='4 4'/%3E%3C/svg%3E");
    }
    .footer-contact__icon svg,
    .footer-social svg {
        width: 16.667px;
        height: 16.667px;
    }
    .footer-socials {
        justify-content: space-between;
        width: fit-content;
        max-width: 100%;
    }
    .footer-legal {
        width: 240px;
        text-align: left;
    }
    .footer-legal__links {
        gap: 20px;
    }
    .footer__credit {
        align-items: center;
    }
    .footer__credit-text {
        flex: 1 0 0;
        min-width: 0;
        font-size: 11px;
    }
    .footer__credit-logo {
        width: 42px;
        height: 17.872px;
    }
    .footer__watermark {
        height: 25.867vw;
    }

    .about-hero {
        height: 100svh;
    }
    .about-hero__inner {
        width: calc(100% - 40px);
        height: 100%;
        padding-top: 74px;
    }
    .about-hero__crumbs {
        font-size: 12px;
    }
    .about-hero__brand {
        top: 233px;
        width: min(375px, calc(100% - 30px));
    }
    .about-hero__photo {
        height: 493px;
        bottom: 0;
        top: unset;
    }
    .about-hero__slogan {
        top: 121px;
        width: 335px;
        font-size: 22px;
        text-indent: 0;
    }
    .about-hero__lead {
        top: unset;
        bottom: 61px;
        left: 0;
        right: auto;
        width: 100%;
        font-size: 16px;
        line-height: 1.1;
        text-align: left;
    }
    .about-hero__slogan::before {
        display: none;
    }
    .about-hero__lead::before {
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        bottom: -24px;
        width: 526px;
        min-width: 120%;
        height: 123px;
        filter: blur(60px);
    }

    .about-intro__inner {
        gap: 35px;
        width: calc(100% - 40px);
        padding: 80px 0;
    }
    .about-intro__title-clip {
        height: 10.9333vw;
    }
    .about-intro__bigtitle {
        margin: -2.1333vw 0 0;
        font-size: 21.0667vw;
    }
    .about-intro__subtitle {
        max-width: 100%;
        width: 335px;
        font-size: 20px;
    }

    .about-intro__lead {
        display: block;
        flex: unset;
        max-width: 100%;
        text-align: center;
        line-height: 1.5;
    }
    .about-intro__lead-row {
        display: inline;
    }
    .about-intro__lead-row span,
    .about-intro__lead-last {
        display: inline;
        width: auto;
        font-size: 16px;
        line-height: 1.58;
        letter-spacing: 0.48px;
        text-align: center;
        white-space: normal;
    }
    .about-intro__pill {
        display: inline-block;
        vertical-align: middle;
        width: 80.6px;
        height: 21.9px;
        margin: 0 4px;
        border-radius: 47.8px;
    }
    .about-intro__bottom {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    .about-intro__gallery {
        gap: 10px;
        width: 100%;
    }
    .about-intro__photo {
        flex: 1 1 0;
        min-width: 0;
        width: auto;
        height: unset;
        aspect-ratio: 223/170;
    }
    .about-intro__cols {
        flex-direction: column;
        gap: 20px;
        width: 100%;
    }
    .about-intro__col {
        width: 100%;
        line-height: 1.14;
    }
    .about-intro__col--narrow {
        flex: unset;
        width: 100%;
    }

    /* ---------- About history ---------- */
    .about-history__inner {
        gap: 30px;
        width: calc(100% - 40px);
        padding: 0 0 20px;
    }
    .about-history__title {
        font-size: 28px;
    }
    .about-history__body {
        padding-left: 98px;
    }
    .about-history__year {
        left: -100px;
        width: 44px;
        font-size: 18px;
    }
    .about-history__track {
        left: 60px;
        width: 22px;
    }
    .about-history__line--solid {
        height: 337px;
    }
    .about-history__marker {
        top: 337px;
        width: 15.539px;
        height: 15.539px;
    }
    .about-history__text {
        gap: 30px;
    }
    .about-history__block {
        min-height: 0;
    }
    .about-history__block p {
        font-size: 14px;
    }
    .about-history__title {
        display: none;
    }
    .about-goals {
        padding-bottom: 80px;
    }
    .about-goals__inner {
        gap: 40px;
        width: calc(100% - 40px);
    }
    .about-goals__content {
        gap: 30px;
    }
    .about-goals__title {
        font-size: 20px;
    }
    .about-goals__text {
        gap: 10px;
        font-size: 16px;
        line-height: 1.125;
    }
    .about-cta {
        height: auto;
        margin-bottom: 79px;
        padding-bottom: 450px;
        background-image:
            linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%),
            linear-gradient(0deg, #e5c3c1 11.433%, #ecdfd9 24.831%, #e7e6e2 47.553%, #e9f3ff 70.874%, #f7f7f7 100%);
        background-repeat: no-repeat;
        background-position: top, center;
        background-size: 100% 120px, 100% 100%;
    }
    .about-cta::before {
        display: none;
    }
    .about-cta__img {
        left: auto;
        right: 0;
        bottom: 0;
        transform: none;
        width: 818px;
        min-width: 0;
        max-width: none;
    }
    .about-cta__inner {
        position: relative;
        left: auto;
        transform: none;
        width: calc(100% - 40px);
        height: auto;
        margin: 0 auto;
        padding-top: 30px;
    }
    .about-cta__box {
        gap: 30px;
        max-width: 100%;
    }
    .about-cta__title {
        font-size: 20px;
    }
    .about-cta__text {
        gap: 20px;
    }

    .services-hero:not(.portfolio-hero) {
        /* height: 667px; */
        height: 100svh;
        min-height: unset;
        margin-bottom: 80px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__inner {
        /* height: 667px; */
        height: 100%;
        max-width: calc(100% - 40px);
    }
    .services-hero__photo {
        object-position: 55% bottom;
        transform: scaleX(-1);
    }
    .services-hero:not(.portfolio-hero) .services-hero__title::before,
    .services-hero:not(.portfolio-hero) .services-hero__lead::before {
        left: 50%;
        width: 370px;
        height: 145px;
        transform: translateX(-50%);
        filter: blur(45px);
    }
    .services-hero:not(.portfolio-hero) .services-hero__title::before {
        top: -25px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__lead::before {
        top: -28px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__crumbs {
        top: 74px;
        gap: 8px;
        width: 100%;
        max-width: 100%;
        font-size: 12px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__crumb:last-child {
        flex: 1;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .services-hero:not(.portfolio-hero) .services-hero__watermark {
        top: 109px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__title {
        top: calc(150px + 13.33vw);
        width: 100%;
        max-width: 100%;
        font-size: 22px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__lead {
        /* top: 520px; */
        top: unset;
        bottom: 57px;
        width: 100%;
        max-width: 100%;
        font-size: 16px;
    }
    .portfolio-hero {
        /* height: auto; */
        /* min-height: 667px; */
        height: 100svh;
        margin-bottom: 80px;
    }
    .portfolio-hero .services-hero__inner {
        height: auto;
        /* min-height: 667px; */
        height: 100%;
        max-width: calc(100% - 40px);
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding-bottom: 56px;
    }
    .portfolio-hero .services-hero__crumbs {
        top: 74px;
        gap: 8px;
        width: 100%;
        max-width: 100%;
        font-size: 12px;
    }
    .portfolio-hero .services-hero__crumb:last-child {
        flex: 1;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .portfolio-hero .services-hero__watermark {
        top: 108px;
    }
    .portfolio-hero .services-hero__title {
        top: calc(26.67vw + 100px);
        width: 100%;
        max-width: 100%;
        margin-bottom: 22px;
        font-size: 22px;
    }
    .portfolio-hero .services-hero__lead {
        position: relative;
        top: -17px;
        width: 100%;
        max-width: 100%;
        margin-bottom: 26px;
        font-size: 16px;
    }
    .portfolio-hero__cta {
        position: relative;
        left: auto;
        bottom: auto;
        transform: none;
        align-self: flex-start;
        /* width: 149px; */
        margin: 0 auto;
    }
    .portfolio-hero .services-hero__title::before {
        left: -20px;
        top: -38px;
        width: calc(100% + 40px);
        max-width: 508px;
        height: 145px;
        filter: blur(45px);
    }
    .portfolio-hero .services-hero__lead::before {
        left: -20px;
        top: -34px;
        width: calc(100% + 40px);
        height: 155px;
        filter: blur(45px);
    }
    .portfolio-hero__cta::before {
        display: none;
    }
    .portfolio-hero__cta-row {
        gap: 3px;
    }
    .portfolio-hero__cta-text {
        font-size: 14px;
    }
    .portfolio-hero__cta-icon {
        width: 11px;
        height: 11px;
    }

    /* ---------- Projects: «Комплексные проекты» ---------- */
    .projects__inner {
        width: calc(100% - 40px);
        gap: 40px;
        padding-bottom: 80px;
    }
    .projects__head {
        align-items: flex-start;
        gap: 20px;
    }
    .projects__tabs {
        gap: 10px;
        width: 100%;
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .projects__tabs::-webkit-scrollbar {
        display: none;
    }
    .projects__tab {
        font-size: 20px;
        flex-shrink: 0;
    }
    .projects__tab--active {
        height: 42px;
        padding: 14px 16px;
    }
    .projects__meta {
        margin-right: 4px;
    }
    .projects__row,
    .projects__row--reverse {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
    }
    .projects__media,
    .projects__info {
        width: 100%;
        max-width: none;
    }
    .projects__carousel {
        padding: 10px;
    }
    .projects__arrow--prev {
        left: 10px;
    }
    .projects__arrow--next {
        right: 10px;
    }
    .projects__overlay {
        gap: 10px;
        padding: 10px;
    }
    .projects__card-title {
        font-size: 16px;
    }
    .projects__meta-item {
        font-size: 14px;
        letter-spacing: -0.168px;
    }
    .projects__meta-icon,
    .projects__meta-icon svg {
        width: 16px;
        height: 16px;
    }
    .projects__info {
        gap: 20px;
        padding: 0;
    }
    .projects__intro,
    .projects__subtitle {
        font-size: 18px;
    }
    .projects__list {
        gap: 10px;
    }
    .projects__list-item {
        font-size: 16px;
        min-height: 26px;
    }
    .projects__pagination {
        gap: 16px;
        margin-top: -13px;
    }
    .contacts {
        height: auto;
        padding: 74px 0 0;
        box-sizing: border-box;
    }
    .contacts__inner {
        width: 100%;
        max-width: calc(100% - 40px);
        height: auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }
    .contacts__col {
        order: 1;
        position: static;
        margin-top: 0;
        width: 100%;
        max-width: 100%;
        min-height: 0;
    }
    .contacts__crumbs {
        font-size: 12px;
    }
    .contacts__intro {
        margin-top: 21px;
        gap: 30px;
    }
    .contacts__title {
        font-size: 22px;
        line-height: 0.85;
    }
    .contacts__lead {
        font-size: 16px;
    }

    .contacts__list {
        margin-top: 42px;
        flex-direction: column;
        gap: 10px;
    }
    .contacts__item {
        width: 100%;
        justify-content: flex-start;
    }
    .contacts__icon {
        width: 30px;
        min-width: 30px;
        height: 30px;
    }
    .contacts__icon svg {
        width: 16px;
        height: 16px;
    }
    .contacts__form {
        order: 2;
        position: static;
        margin-top: 70px;
        width: 100%;
        gap: 32px;
        padding: 20px;
    }
    .contacts__submit-row {
        gap: 4px;
    }
    .contacts__submit-arrow {
        width: 10px;
        height: 10px;
    }
    .contacts__submit-wrap {
        margin-top: -2px;
    }
    .contacts__form-note {
        font-size: 16px;
    }
    .contacts__fields {
        gap: 16px;
    }
    .contacts__field {
        padding: 12px 14px;
    }
    .contacts__submit-text {
        font-size: 14px;
    }
    .contacts__form .project-modal__note {
        font-size: 16px;
        margin-bottom: 0;
    }
    .contacts__form .project-modal__fields {
        margin-bottom: 0;
    }
    .contacts__form .project-modal__field {
        padding: 12px 14px;
    }
    .contacts__form .project-modal__submit-wrap {
        margin-top: -2px;
    }
    .contacts__form .project-modal__submit-row {
        gap: 4px;
    }
    .contacts__form .project-modal__submit-arrow {
        width: 10px;
        height: 10px;
    }
    .contacts__form .project-modal__submit-text::after {
        font-size: 14px;
    }
    .contacts__brand {
        display: block;
        order: 3;
        position: static;
        margin: 0;
        z-index: 1;
    }
    .contacts__photo {
        display: block;
        order: 4;
        position: relative;
        left: -20px;
        right: auto;
        top: auto;
        width: 375px;
        height: 248px;
        margin-top: -57px;
        z-index: 2;
    }
    .contacts__photo img {
        position: absolute;
        inset: auto;
        left: 0.01%;
        top: -0.1%;
        width: 143.06%;
        height: 120.57%;
        max-width: none;
    }
    .project-modal__window {
        gap: 20px;
    }
    .project-modal__form {
        gap: 24px;
    }
    .project-modal__note {
        font-size: 16px;
        margin-bottom: 30px;
    }
    .project-modal__fields {
        gap: 16px;
        margin-bottom: 30px;
    }
    .project-modal__submit-text {
        font-size: 14px;
    }
    .project-modal__dialog {
        padding: 20px;
    }
}
@media (max-width: 412px) {
    .hero__about{
        max-width: unset;
    }
}
.max_390{
    display: none;
}
@media (max-width: 390px) {
    .max_390{
        display: block;
    }
}
@media (max-width: 370px) {
    .projects__meta-item {
        font-size: 13px; 
    }
}
@media (prefers-reduced-motion: reduce) {
    .about-hero__brand {
        transition: none;
        transform: translate(-50%, 0);
        opacity: 1;
    }
    .footer__watermark span {
        transform: none;
        transition: none;
    }
    .simple_animation {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .about-intro__bigtitle-inner,
    .competences__watermark-text {
        transform: none;
        transition: none;
    }
    .title_animation {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .why__banner::before {
        transform: none;
        transition: none;
    }
    .faq__a,
    .faq__arrow {
        transition: none;
    }
    .project-modal,
    .project-modal__window {
        transition: none;
    }
    .project-modal__window {
        transform: none;
    }
}

@media (max-width: 1485px) and (min-width: 769px) {
    .about-intro__lead-row span,
    .about-intro__lead-last {
        font-size: 20px;
    }
}
@media (max-width: 1440px) and (min-width: 769px) {
    .hero__title {
        font-size: 3.7vw;
        width: 65%;
    }
    .hero__about {
        width: 32.42%;
    }
    .hero__divider {
        width: 100%;
    }
    .hero__links {
        margin-top: -24px;
    }
    .spec__img {
        margin: 10px 0;
    }
    .footer__heading {
        font-size: 2.74vw;
    }
    .footer__row {
        gap: 2.61vw;
    }
    .footer__cols {
        gap: 3.47vw;
    }
    .nav{
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }
    .about-hero__brand {
        top: 167px;
    }
    .about-hero__slogan {
        font-size: 2.6vw;
        width: 60.78vw;
        text-indent: 25.27vw;
    }
    .about-hero__slogan::before {
        height: 14.65vw;
    }
    .about-intro__photo {
        width: 15.49vw;
        height: unset;
        aspect-ratio: 223/170;
    }
    .about-intro__bottom,
    .about-intro__cols,
    .about-intro__gallery {
        gap: 16px;
    }
    .about-intro__inner {
        gap: 70px;
    }
    .contacts__title {
        font-size: 4.3vw;
    }
    .contacts__list {
        gap: unset;
    }
    .contacts__item {
        gap: 5px;
    }
    .reasons__lead {
        max-width: max(35.07vw, 420px);
    }
}
@media (max-width: 1410px) and (min-width: 769px) {
    .footer__row {
        gap: 0;
    }
}
@media (max-width: 1370px) and (min-width: 769px) {
    .contacts__list {
        flex-direction: column;
        gap: 20px;
        width: fit-content;
    }
    .contacts__item {
        width: fit-content;
    }
    .footer__cols {
        gap: 20px;
        justify-content: space-between;
        min-width: unset;
    }
}
@media (max-width: 1200px) and (min-width: 769px) {
    .hero__tag {
        font-size: 1.5vw;
    }
    .hero__tag--2{
        left: 29.81%;
    }
    .hero__tag--3{
        left: 61.54%;
    }
    .hero__about {
        top: calc(16.67vw + 155.7px);
    }
    .why__heading, .team__heading {
        font-size: 9.67vw;
    }
    .why-card__title {
        font-size: 20px;
    }
    .why-card__desc {
        font-size: 16px;
    }
    .service-row__name {
        font-size: 2vw;
    }
    .service-item {
        font-size: 1.5vw;
    }
    .service-row__items {
        width: 54.3%;
    }
    .services-hover-block {
        width: 18.44vw;
    }
    .faq__list {
        width: auto;
    }
    .footer__cols {
        width: 100%;
    }
    .footer__row {
        flex-direction: column;
        gap: 2.61vw;
    }
    .about-hero__brand {
        top: 181px;
    }
    .about-intro__lead-row {
        gap: 8px;
    }
    .about-intro__lead-row span, .about-intro__lead-last {
        font-size: 16px;
    }
    .about-intro__col--narrow,
    .about-intro__col {
        flex: unset;
    }
    .about-intro__inner {
        gap: 60px;
    }
    .about-intro__subtitle,
    .competences__title {
        font-size: 32px;
        width: 57.61vw;
    }
    .services-hero__title{
        font-size: 30px;
        width: 659px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__title::before {
        left: -99px;
        top: -43px;
        width: 793px;
        height: 175px;
        filter: blur(45.7px);
    }
    .portfolio-hero .services-hero__title::before {
        left: -22px;
        top: -25px;
        width: 500px;
        height: 153px;
        filter: blur(45.9px);
    }
    .unique__title {
        font-size: 55px;
    }
    .competences__media {
        width: 50%;
        flex: unset;
    }
    .projects__info {
        gap: 10px;
    }
    .projects__intro,
    .projects__subtitle {
        font-size: 18px;
    }
    .projects__list-item,
    .projects__meta-item {
        font-size: 16px;
    }
    .projects__card-title {
        font-size: 22px;
    }
    .projects__overlay {
        gap: 10px;
    }
    .about-cta__box {
        width: 61%;
    }
    .contacts__photo img {
        left: 11.54%;
    }
}
@media (max-width: 1024px) and (min-width: 769px) {
    .hero__lead {
        font-size: 16px;
    }
    .hero__about {
        gap: 20px;
    }
    .hero__links {
        margin-top: -10px;
    }
    .hero-link__text,
    .why-card__desc,
    .faq__a p,
    .footer-nav__item,
    .footer__credit-text,
    .footer__credit-text,
    .footer-legal__copy,
    .footer-legal__link {
        font-size: 14px;
    }
    .spec__title,
    .services__title,
    .geo__title,
    .about-history__title,
    .about-cta__title,
    .about-goals__title {
        font-size: 36px;
    }
    .spec__col-title {
        font-size: 16px;
        height: 35.19px;
    }
    .spec__desc {
        font-size: 15px;
    }
    .spec__img {
        height: 220px;
    }
    .footer__cols {
        gap: 20px;
        width: 100%;
        justify-content: space-between;
    }
    .why-card__title,
    .faq__q {
        font-size: 16px;
    }
    .footer__credit {
        gap: 5px;
    }
    .about-intro__bottom {
        flex-direction: column;
    }
    .about-intro__cols {
        width: 100%;
    }
    .about-intro__photo,
    .about-intro__col {
        width: calc(50% - 8px);
    }
    .about-intro__title-clip {
        height: 10.29vw;
    }
    .about-intro__bigtitle {
        margin: -2.55vw 0 0;
        font-size: 20.98vw;
    }
    .about-intro__lead {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        align-content: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
    }
    .about-intro__lead-row {
        display: contents;
    }
    .about-intro__lead-row span,
    .about-intro__lead-last,
    .about-intro__lead-last span {
        font-size: 16px;
        line-height: 0.95;
        letter-spacing: 0.48px;
        text-align: center;
    }
    .about-intro__lead-last {
        display: contents;
    }
    .about-intro__pill {
        width: 80.6px;
        height: 21.9px;
        border-radius: 47.8px;
    }

    .about-goals__content{
        gap: 30px;
    }
    .services-hero__title{
        font-size: 24px;
        width: 523px;
    }
    .services-hero:not(.portfolio-hero) .services-hero__title::before {
        left: -78px;
        top: -34px;
        width: 629px;
        height: 139px;
        filter: blur(36.2px);
    }
    .portfolio-hero .services-hero__title::before {
        left: -10px;
        top: -18px;
        width: 437px;
        height: 127px;
        filter: blur(38px);
    }
    .unique__title {
        font-size: 47px;
    }
    .unique-card__img {
        width: 150px;
        height: 150px;
    }
    .unique-card__meta {
        width: 170px;
    }
    .portfolio-hero__cta {
        left: unset;
        right: 0;
    }
    .unique__col,
    .unique__col--wide {
        width: unset;
        flex: auto;
    }
    .unique__photo,
    .unique__overlay {
        height: 500px;
    }
    .unique__inner {
        height: 675px;
    }
    .competences__watermark {
        height: 11.26vw;
    }
    .competences__watermark-text {
        top: -1.5vw;
        font-size: 20.98vw;
    }
    .projects__list,
    .projects__block {
        gap: 10px;
    }
    .projects__intro,
    .projects__subtitle {
        font-size: 16px;
    }
    .projects__tab {
        font-size: 20px;
    }
    .projects__tab--active {
        height: 49px;
    }
    .contacts__col,
    .contacts__form {
        width: 47%;
    }
    .contacts__form {
        gap: 20px;
    }
    .contacts__title {
        font-size: 32px;
    }
    .contacts__photo {
        left: 36%;
        right: unset;
    }
    .projects__meta-item {
        font-size: 13px;
    }
    .projects__meta {
        gap: 10px;
    }
    .about-hero__brand {
        top: 215px;
    }
    .contacts__photo img {
        left: 7.54%;
    }
}
@media (max-width: 900px) and (min-width: 769px) {
    .service-item {
        font-size: 1.8vw;
    }
    .about-hero__brand {
        top: 249px;
    }
    .unique__title {
        font-size: 41px;
    }
    .projects__row {
        flex-direction: column;
    }
    .projects__media {
        width: 100%;
    }
    .projects__info {
        width: 100%;
    }
    .projects__tab {
        font-size: 18px;
    }
    .projects__tab--active {
        height: 44px;
    }
    .nav__pill span,
    .lang__pill span {
        font-size: 12.5px;
    }
}
@media (max-width: 800px) and (min-width: 769px) {
    .unique__cards {
        flex-wrap: wrap;
    }
    .unique-card {
        width: calc(50% - 20px);
        flex: unset;
    }
    .unique__inner {
        height: 947px;
    }
    .contacts__title {
        font-size: 26px;
    }
    .contacts__intro {
        gap: 20px;
    }
}
@media (max-width: 768px) and (min-width: 501px) {
    .team .why__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .contacts__photo img {
        width: 224.54%;
        height: 122.23%;
    }
}
@media (max-width: 768px) and (min-width: 600px) {
    .projects__tabs {
        justify-content: safe center;
    }
}
@media (min-width: 2200px){
    .about-hero__brand {
        top: 75px;
    }
}