.case__img {
    height: auto;
    aspect-ratio: 300 / 150;
}

.social-feed__item {
    height: auto;
    aspect-ratio: 250 / 312;
}

.compare__visual {
    width: 100%;
    max-width: 544px;
    height: auto;
    aspect-ratio: 544 / 272;
}

.compare__desc {
    width: 100%;
    max-width: 428.57px;
}

.compare__cell {
    width: auto;
    flex: 1 1 0;
    min-width: 0;
    padding-inline: clamp(0px, 4vw, 88px);
}

.compare__label {
    width: auto;
    flex: 0 1 258px;
    min-width: 0;
    padding-inline: clamp(8px, 1.7vw, 24px);
}

.compare__row {
    padding-inline: clamp(0px, 4vw, 88px);
    gap: clamp(8px, 1.5vw, 24px);
}

.contact__info {
    width: auto;
    flex: 1 1 456px;
    max-width: 456px;
}

.form,
.form-done {
    width: auto;
    flex: 1 1 600px;
    max-width: 600px;
}

.field {
    width: auto;
    flex: 1 1 260px;
    min-width: 0;
}

.field--full {
    flex-basis: 100%;
}

.footer__col {
    width: auto;
    flex: 0 1 200px;
    min-width: 0;
}

.footer__side {
    width: auto;
    flex: 0 1 400px;
    min-width: 0;
}

.footer__top {
    gap: clamp(32px, 16.4vw, 236px);
}

.footer__cols {
    gap: clamp(24px, 3.4vw, 48px);
}

.footer__bottom {
    gap: var(--sp-16);
}

.hero {
    min-height: clamp(628px, 50vw, 720px);
}

.palanga {
    display: flex;
    height: auto;
    min-height: clamp(541px, 41.7vw, 600px);
}

.palanga__inner {
    height: auto;
    flex: 1 1 auto;
}

.split--tall .split__col {
    min-height: 0;
}

.split--tall .split__media {
    min-height: clamp(414px, 55.2vw, 795px);
}


@media (max-width: 1365px) {
    .timeline {
        position: static;
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        gap: var(--sp-48);
        padding-left: 20px;
    }

    .timeline__line {
        left: auto;
        right: 0;
        height: 100%;
    }

    .timeline__step:nth-of-type(n) {
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        display: flex;
        align-items: flex-start;
        gap: var(--sp-24);
    }

    .timeline__step-inner {
        flex: 1 1 auto;
        min-width: 0;
        align-items: flex-start;
    }

    .timeline__step-body {
        max-width: 60ch;
    }

    .timeline__time {
        position: static;
        flex: none;
        width: auto;
        min-width: 120px;
        margin: 0;
        padding: var(--sp-8) var(--sp-24) var(--sp-8) 0;
    }

    .timeline__time--right::after {
        display: none;
    }

    .timeline__time--right::before {
        display: block;
        background-image: url('../images/icons/arrow-down-right.svg');
    }
}


@media (max-width: 1279px) {
    .footer__top {
        flex-wrap: wrap;
        gap: var(--sp-48);
    }

    .footer__cols {
        flex: 1 1 auto;
    }

    .footer__side {
        flex: 1 1 320px;
        max-width: 480px;
    }

    .footer__col {
        min-width: 180px;
    }

    .footer__contact--phone,
    .footer__contact--mail {
        white-space: nowrap;
    }

    .protocol__stamp {
        width: clamp(88px, 9vw, 143px);
        height: clamp(88px, 9vw, 143px);
    }

    .protocol__head .h2,
    .protocol__head .text {
        max-width: min(648px, 100% - 240px);
    }

    .split__col--media {
        flex: 1 1 50%;
        max-width: none;
    }

    .split {
        max-width: none;
    }

    .fp1 {
        display: flex;
        flex-direction: column;
        min-height: 0;
        padding-bottom: 0;
    }

    .fp1__top,
    .fp1__fade {
        display: none;
    }

    .fp1__inner {
        order: 1;
        background: var(--c-light);
        padding-block: var(--section-y);
        color: var(--c-dark);
    }

    .fp1__head {
        gap: var(--sp-32);
    }

    .fp1__bg {
        order: 2;
        position: static;
        height: auto;
        aspect-ratio: 3914 / 1800;
        background-size: cover;
        background-position: center;
    }

    .fp1__badge-wrap {
        order: 3;
        position: static;
        justify-content: stretch;
        padding-top: var(--section-y);
    }

    .fp1__badge {
        width: 100%;
    }

    .fp1__badge-text {
        width: auto;
        flex: 1;
    }

    .fp1__features {
        order: 4;
        position: static;
        flex-wrap: wrap;
        align-items: flex-start;
        gap: var(--sp-48) var(--sp-24);
        margin-top: 0;
        padding-block: var(--section-y);
    }

    .fp1__feature {
        flex: 1 1 calc(25% - var(--sp-24));
    }
}


@media (max-width: 1023px) {
    .fp1__feature {
        flex: 1 1 calc(50% - var(--sp-24));
    }
}


@media (max-width: 1023px) {
    .nav {
        position: fixed;
        inset: 0;
        z-index: 40;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        padding: 88px var(--gutter) var(--sp-32);
        background: var(--c-dark);
        overflow-y: auto;
        transform: translateY(-100%);
        visibility: hidden;
        transition: transform var(--t-base), visibility var(--t-base);
    }

    .logo,
    .header__actions {
        position: relative;
        z-index: 45;
    }

    .nav.is-open {
        transform: translateY(0);
        visibility: visible;
    }

    .nav__item {
        justify-content: space-between;
        padding-block: var(--sp-16);
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        font-size: var(--fs-h6);
    }

    .burger {
        display: flex;
    }

    .hero {
        align-items: flex-end;
    }

    .hero__inner {
        padding-bottom: var(--section-y);
    }

    .compare__cards {
        margin-inline: 0;
        gap: var(--sp-24);
    }

    .compare__cards::before {
        height: 100%;
    }

    .compare__row {
        flex-wrap: wrap;
        padding-inline: 0;
        gap: 0;
    }

    .compare__label {
        order: -1;
        flex-basis: 100%;
        justify-content: center;
        padding: var(--sp-8) 0;
        border-bottom: 1px solid var(--c-grey-3);
    }

    .compare__cell {
        flex: 1 1 0;
        padding: var(--sp-8) 0;
        border-radius: 0;
    }

    .compare__cell--fp1 {
        justify-content: flex-start;
        border-right: 1px solid var(--c-grey-3);
        padding-right: var(--sp-12);
    }

    .compare__cell--fp3 {
        justify-content: flex-end;
        padding-left: var(--sp-12);
        text-align: right;
    }

    .compare__cell--fp3 span {
        text-align: right;
    }

    .compare__row {
        border-bottom: 1px solid var(--c-grey-3);
    }

    .services__grid {
        flex-direction: column;
        gap: var(--sp-16);
    }

    .service-card {
        max-width: none;
        padding: var(--sp-24);
    }

    .service-card__top {
        gap: var(--sp-32);
    }

    .split {
        flex-direction: column;
    }

    .split__col,
    .split__col--media {
        flex: 1 1 auto;
        max-width: none;
        width: 100%;
    }

    .split__text {
        max-width: none;
        margin: 0 !important;
        padding-block: var(--section-y);
    }

    .section__block,
    .section__block--tight {
        padding-top: 0;
    }

    .split--tall .split__media {
        min-height: clamp(414px, 100vw, 680px);
        background-position: center top;
    }

    .split__col--media {
        order: -1;
    }

    .stats {
        flex-wrap: wrap;
        gap: var(--sp-32);
    }

    .stat {
        flex: 1 1 calc(50% - var(--sp-32));
    }

    .icon-list {
        flex-wrap: wrap;
        gap: var(--sp-32) var(--sp-24);
    }

    .icon-item {
        flex: 1 1 calc(50% - var(--sp-24));
        max-width: none;
    }

    .icon-list--stacked .icon-item {
        max-width: none;
    }

    .palanga__lines {
        display: none;
    }

    .palanga__inner {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding-block: var(--sp-24);
    }

    .palanga__labels {
        position: static;
        flex-direction: column;
        gap: var(--sp-12);
        margin-top: var(--sp-32);
    }

    .palanga__label {
        width: 100%;
        padding-left: var(--sp-16);
        padding-top: var(--sp-12);
        border-top: 1px solid var(--c-border-white);
    }

    .contact {
        flex-direction: column;
        gap: var(--sp-32);
    }

    .contact__info,
    .form,
    .form-done {
        flex: 0 0 auto;
        max-width: none;
        width: 100%;
    }

    .form-done {
        padding: var(--sp-32) var(--sp-24);
    }

    .footer__inner {
        align-items: stretch;
        min-height: 0;
        padding: var(--section-y) var(--gutter);
        gap: var(--sp-48);
    }

    .footer__top {
        flex-direction: column;
        gap: var(--sp-48);
    }

    .footer__side {
        flex-basis: auto;
        max-width: none;
    }

    .footer__cols {
        flex-wrap: wrap;
    }

    .footer__decor {
        left: auto;
        top: auto;
        right: -117px;
        bottom: calc(var(--section-y) + 23px);
    }

    .carousel--md .carousel__track {
        display: flex;
        justify-content: flex-start;
        gap: var(--sp-8);
        padding-inline: var(--gutter);
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--gutter);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        cursor: grab;
    }

    .carousel--md .carousel__track > * {
        flex: 1 0 335px;
        scroll-snap-align: start;
    }

    .carousel--md .carousel__track > :last-child {
        scroll-snap-align: end;
    }

    .carousel--md .carousel__dots {
        display: flex;
    }
}


@media (max-width: 767px) {
    .section[id] {
        scroll-margin-top: 57px;
    }

    .header__inner {
        padding-block: var(--sp-8);
    }

    .logo {
        gap: 6px;
    }

    .logo__text {
        width: auto;
        height: 18px;
    }

    .logo__mark {
        width: 30px;
        height: 28px;
    }

    .header__actions {
        gap: var(--sp-12);
    }

    .header__actions .btn span {
        display: none;
    }

    .header__actions .btn {
        gap: var(--sp-24);
        padding-left: var(--sp-16);
    }

    .header__actions .btn::before {
        content: '';
        width: 20px;
        height: 20px;
        background-image: url('../images/icons/phone-16.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

    .hero {
        align-items: flex-end;
    }

    .hero::before {
        background-image:
            linear-gradient(180deg, rgba(33, 33, 33, 0.3) 0%, rgba(183, 183, 183, 0) 40%),
            linear-gradient(-90deg, rgba(0, 0, 0, 0) 52%, rgba(0, 0, 0, 0.5) 100%),
            linear-gradient(rgba(33, 33, 33, 0.2), rgba(33, 33, 33, 0.2)),
            url('../images/hero-bg-mobile.png');
    }

    .hero__inner {
        gap: var(--sp-32);
        padding-bottom: var(--sp-24);
    }

    .hero__actions {
        flex-direction: column;
        align-items: flex-start;
        gap: 17px;
    }

    .h1 br,
    .h2 br {
        display: none;
    }

    .hero__title,
    .hero__text {
        max-width: none;
    }

    .fp1__feature-icon {
        width: 50px;
        height: 50px;
    }

    .fp1__feature-icon img {
        width: 30px;
        height: 30px;
    }

    .compare__cards {
        gap: 33px;
    }

    .compare__card {
        flex: 1 1 0;
        min-width: 0;
        gap: var(--sp-24);
    }

    .compare__visual {
        aspect-ratio: 155 / 116;
    }

    .compare__teeth--1 {
        left: 14%;
        top: 4.3%;
        width: 78%;
        height: 40.5%;
    }

    .compare__teeth--2 {
        left: 17.7%;
        top: 4.3%;
        width: 71%;
        height: 37%;
    }

    .compare__body .badge {
        display: flex;
        width: 100%;
        justify-content: center;
        padding: 4px var(--sp-8);
        gap: 6px;
        font-size: 10px;
    }

    .compare__desc {
        font-size: var(--fs-xxs);
        line-height: 1.4;
    }

    .compare__cell--fp3 {
        justify-content: flex-start;
        padding-left: var(--sp-12);
        text-align: left;
    }

    .compare__cell--fp3 span {
        text-align: left;
    }

    .stat {
        flex-basis: 100%;
    }

    .icon-list {
        gap: var(--sp-32) var(--sp-16);
    }

    .icon-list .icon-item {
        flex: 1 1 calc(50% - var(--sp-16));
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-12);
        max-width: none;
    }

    .icon-list .icon-item__icon {
        width: 50px;
        height: 50px;
    }

    .icon-list--stacked .icon-item {
        flex-basis: 100%;
        gap: var(--sp-16);
    }

    .icon-list--stacked .icon-item__icon {
        width: 60px;
        height: 60px;
    }

    .protocol__head {
        align-items: flex-start;
        text-align: left;
    }

    .protocol__head .h2 {
        max-width: 220px;
    }

    .protocol__head .text {
        max-width: none;
        text-align: left;
    }

    .protocol__stamp {
        top: 34px;
        width: 100px;
        height: 100px;
    }

    .timeline__step:nth-of-type(n) {
        position: relative;
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        column-gap: var(--sp-12);
        row-gap: var(--sp-16);
    }

    .timeline__step-inner,
    .timeline__step-body {
        display: contents;
    }

    .timeline__step .icon-item__icon {
        grid-column: 1;
        grid-row: 1;
        width: 50px;
        height: 50px;
    }

    .timeline__step-body .h5 {
        grid-column: 2;
        grid-row: 1;
    }

    .timeline__time {
        grid-column: 3;
        grid-row: 1;
        margin: 0;
        min-width: 0;
        padding: 4px var(--sp-12) var(--sp-8) 0;
        gap: var(--sp-12);
    }

    .timeline__step-text {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .timeline__num {
        top: var(--sp-8);
    }

    .social-feed__grid {
        flex-wrap: wrap;
        gap: var(--sp-16);
    }

    .social-feed__item {
        flex: 1 1 calc(50% - var(--sp-16));
        aspect-ratio: 163.5 / 204;
    }

    .social-feed__item:nth-child(5) {
        display: none;
    }

    .social-feed__head,
    .social-feed__row {
        display: contents;
    }

    .social-feed .eyebrow {
        order: 1;
        align-self: center;
    }

    .social-feed__handle {
        order: 2;
        align-self: center;
    }

    .social-feed__grid {
        order: 3;
    }

    .social-feed .link-underline {
        order: 4;
        align-self: center;
    }

    .social-feed {
        align-items: stretch;
        gap: var(--sp-16);
    }

    .footer__top {
        flex-direction: column-reverse;
    }

    .footer__side {
        align-items: center;
    }

    .newsletter__head {
        text-align: center;
    }

    .footer__social {
        justify-content: center;
    }

    .footer__cols {
        flex-direction: column;
    }

    .footer__col {
        flex-basis: auto;
    }

    .footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-8);
    }

    .footer__decor {
        bottom: calc(var(--section-y) + 52px);
    }

    .field {
        flex-basis: 100%;
    }

    .contact__row {
        align-items: flex-start;
    }

    .contact__row::before {
        margin-top: 3px;
    }

    .chip {
        padding: 6px var(--sp-12);
        font-size: 16px;
    }

    .cta {
        min-height: 513px;
    }

    .carousel .carousel__track {
        display: flex;
        justify-content: flex-start;
        gap: var(--sp-8);
        padding-inline: var(--gutter);
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--gutter);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        cursor: grab;
    }

    .carousel .carousel__track > * {
        flex: 1 0 335px;
        scroll-snap-align: start;
    }

    .carousel .carousel__track > :last-child {
        scroll-snap-align: end;
    }

    .carousel .carousel__dots {
        display: flex;
    }
}

.carousel .carousel__dots.is-hidden {
    display: none;
}


@media (orientation: landscape) and (max-height: 520px) {
    .split--tall .split__media,
    .split__media--intl {
        min-height: 0;
        height: 100vh;
        background-position: center 8%;
    }

    .split__media--quote::after {
        content: '';
        position: absolute;
        inset: 40% 0 0;
        background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
        pointer-events: none;
    }

    .split__media--quote .quote {
        position: relative;
        z-index: 1;
    }

    .quote .h3 {
        font-size: 20px;
    }

    .hero {
        min-height: 92vh;
    }

    .palanga {
        min-height: 78vh;
    }

    .fp1__bg {
        aspect-ratio: auto;
        height: 60vh;
    }
}


@media (max-width: 479px) {
    .work__nav {
        display: none;
    }

    .quote--right {
        align-items: flex-start;
        text-align: left;
    }

    .fp1__badge {
        align-items: flex-start;
    }
}
