/* ==========================================================
   ABOUT PAGE
   ========================================================== */


/* ==========================================================
   HERO
   ========================================================== */

.about-us-background {
    position: relative;

    height: calc(100vh - var(--content-top-mobile));

    padding-right: 0;
    padding-left: 0;

    overflow: hidden;

    background: #1f2528;
}


/* ----------------------------------------------------------
   HERO IMAGE
   ---------------------------------------------------------- */

.about-us-background picture {
    display: block;

    width: 100%;
    height: 100%;
}

.about-us-background picture img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}


/*
   На мобильных используем svh, чтобы изменение высоты
   интерфейса браузера не вызывало скачки hero.
*/

@supports (height: 100svh) {

    .about-us-background {
        height: calc(100svh - var(--content-top-mobile));
    }

}


/* ----------------------------------------------------------
   HERO TEXT
   ---------------------------------------------------------- */

.overlay-content {
    position: absolute;
    top: 50%;
    right: clamp(1.5rem, 6vw, 8rem);
    left: clamp(1.5rem, 7vw, 9rem);
    z-index: 10;

    max-width: 72rem;

    color: floralwhite;
    text-align: left;
    text-shadow: 2px 1px 6px rgb(0 0 0 / 85%);

    transform: translateY(-50%);
}

.about-title {
    margin: 0;

    color: floralwhite;

    font-size: clamp(2.5rem, 3vw, 3.5rem);
    font-weight: 600;
    line-height: 1.1;
}

.about-text {
    margin: 1rem 0 0;

    font-size: clamp(1.2rem, 1.6vw, 1.5rem);
    font-weight: 400;
    line-height: 1.45;
}

.about-text__line {
    display: block;
}


/* ----------------------------------------------------------
   HERO ANIMATION

   По умолчанию всё уже видимо.
   Анимацию включаем только на desktop.
   ---------------------------------------------------------- */

.about-hero-animate {
    opacity: 1;
    transform: none;
}

@media (min-width: 1200px) {

    .about-hero-animate {
        opacity: 0;

        animation: about-hero-in .65s ease-out forwards;

        will-change: transform, opacity;
    }

    .about-hero-animate--title {
        animation-delay: .2s;
    }

    .about-hero-animate--line-1 {
        animation-delay: .5s;
    }

    .about-hero-animate--line-2 {
        animation-delay: .72s;
    }

    /*
       На широком экране сохраняем именно две
       смысловые строки под заголовком.
    */

    .about-text__line {
        white-space: nowrap;
    }

}

@keyframes about-hero-in {

    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* ----------------------------------------------------------
   DESKTOP
   ---------------------------------------------------------- */

@media (min-width: 992px) {

    .about-us-background {
        height: calc(100vh - var(--content-top-desktop));
    }

    @supports (height: 100svh) {

        .about-us-background {
            height: calc(100svh - var(--content-top-desktop));
        }

    }

}


/* ----------------------------------------------------------
   TABLET / SMALL DESKTOP
   ---------------------------------------------------------- */

@media (max-width: 1199.98px) {

    .overlay-content {
        right: clamp(1.5rem, 6vw, 4rem);
        left: clamp(1.5rem, 7vw, 4.5rem);
    }

    .about-title {
        font-size: clamp(2.3rem, 4vw, 3rem);
    }

    .about-text {
        max-width: 46rem;

        font-size: clamp(1.15rem, 2.3vw, 1.4rem);
    }

}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media (max-width: 767.98px) {

    .overlay-content {
        top: 48%;
        right: clamp(1.25rem, 6vw, 2rem);
        left: clamp(1.25rem, 7vw, 2.5rem);

        transform: translateY(-50%);
    }

    .about-title {
        font-size: clamp(2rem, 9vw, 2.5rem);
    }

    .about-text {
        max-width: 24rem;
        margin-top: .9rem;

        font-size: clamp(1.1rem, 5vw, 1.3rem);
        line-height: 1.5;
    }

    .about-text__line {
        white-space: normal;
    }

    .about-text__line+.about-text__line {
        margin-top: .15rem;
    }

}


/* ----------------------------------------------------------
   SHORT LANDSCAPE MOBILE
   ---------------------------------------------------------- */

@media (max-width: 900px) and (max-height: 500px) {

    .overlay-content {
        top: 55%;
    }

    .about-title {
        font-size: 2rem;
    }

    .about-text {
        max-width: 38rem;
        margin-top: .65rem;

        font-size: 1.05rem;
        line-height: 1.35;
    }

}


/* ==========================================================
   MIDDLE BLOCK
   ========================================================== */

.about-us-middle {
    position: relative;

    margin-top: 4.375rem;
}

.left-side-text {
    position: absolute;
    top: 70%;
    left: 40%;
    z-index: 10;

    padding:
        2.8125rem 6.25rem 3.75rem 4.375rem;

    background: #fff;
    color: #000;

    transform: translate(-67%, -5%);
}

.left-side-text p {
    text-align: justify;
}

.about-us-middle .left-side-text-head {
    margin: 0 0 .625rem;

    color: #000;

    font-weight: 700;
    text-transform: uppercase;
}

.about-us-middle-logo {
    height: 50px;
    margin-right: .3125rem;

    vertical-align: middle;
}

.about-us-middle h2 {
    margin: 0;

    color: #000;

    font-weight: 800;
}

.about-us-middle p {
    margin-bottom: 1.5em;
    padding-top: .625rem;

    color: #939396;

    font-size: 1.5rem;
}


/* ----------------------------------------------------------
   MIDDLE — <= 1199
   ---------------------------------------------------------- */

@media (max-width: 1199.98px) {

    .about-us-middle {
        margin-bottom: 3.125rem;
    }

    .left-side-text {
        position: relative;
        top: 3.125rem;
        left: 0;

        display: block;

        width: auto;
        padding-top: 0;

        transform: none;
    }

    .left-side-text p {
        font-size: 1.3rem;
    }

}


/* ----------------------------------------------------------
   MIDDLE — MOBILE
   ---------------------------------------------------------- */

@media (max-width: 991.98px) {

    .left-side-text p {
        text-align: left;
    }

}

@media (max-width: 575.98px) {

    .left-side-text {
        padding-right: .625rem;
        padding-left: .625rem;
    }

    .left-side-text-head {
        font-size: .9375rem;
    }

    .about-us-middle h2 {
        font-size: clamp(1.45rem, 7vw, 2rem);
        line-height: 1.25;
    }

    .left-side-text p {
        font-size: clamp(1.1rem, 5vw, 1.3rem);
        line-height: 1.6;
    }

}


/* ==========================================================
   SPACER AFTER MIDDLE BLOCK

   Оставляем, потому что текущая разметка содержит:
   <div class="container"></div>
   ========================================================== */

.about-us-middle+.container {
    height: 14.375rem;
    margin-top: 6.25rem;
}

@media (max-width: 1199.98px) {

    .about-us-middle+.container {
        height: 3.125rem;
        margin-top: 0;
    }

}


/* ==========================================================
   WHY SVS
   ========================================================== */

.about-us-why-svs {
    position: relative;

    margin-top: 3.75rem;
}

.about-us-why-svs .row {
    display: flex;
    align-items: center;
}


/* ----------------------------------------------------------
   IMAGE
   ---------------------------------------------------------- */

.about-us-why-img {
    position: relative;
    z-index: 1;
}

.about-us-why-img picture {
    display: block;

    width: 100%;
}


/* ----------------------------------------------------------
   TEXT COLUMN
   ---------------------------------------------------------- */

.about-us-why-text {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;

    padding: 1.09375rem;

    text-wrap: balance;
}


/* ----------------------------------------------------------
   HEADING
   ---------------------------------------------------------- */

.about-us-why-heading {
    position: absolute;
    top: -4.375rem;
    left: 9.375rem;
    z-index: 3;

    max-width: 30rem;

    color: #000;

    font-size: 2rem;
    font-weight: 800;

    text-wrap: balance;
}


/* ----------------------------------------------------------
   WHY LIST
   ---------------------------------------------------------- */

.about-us-why-list {
    position: relative;

    display: flex;
    align-items: flex-start;

    margin-top: .625rem;
}

.why-list-bullet {
    flex: 0 0 auto;

    margin-right: 1.25rem;

    color: var(--color-accent);

    font-size: 2.75rem;
    font-weight: 800;
    line-height: 1.375rem;
    text-align: center;
}

.why-list-item {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;

    min-width: 0;

    text-align: justify;
}

.why-list-title {
    margin-top: 0;

    color: var(--color-brand);

    font-weight: 700;
    text-transform: uppercase;
}

.why-list-text {
    margin-top: .5rem;
    margin-bottom: 2.5rem;

    color: #939396;

    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.6;
}

.why-list-text p:last-child {
    margin-bottom: 0;
}

.why-list-text ul {
    list-style-type: square;
}


/* ----------------------------------------------------------
   WHY SVS — ONE COLUMN
   Bootstrap lg breakpoint = 992px
   ---------------------------------------------------------- */

@media (max-width: 991.98px) {

    .about-us-why-svs {
        margin-top: 0;
    }

    .about-us-why-heading {
        position: static;

        max-width: none;
        margin-top: 1.75rem;
        margin-bottom: 1.75rem;

        text-align: center;
    }

    /*
       На узких экранах не растягиваем пробелы justify.
       Это особенно важно для русского текста.
    */

    .why-list-item {
        text-align: left;
    }

}


/* ----------------------------------------------------------
   WHY SVS — MOBILE
   ---------------------------------------------------------- */

@media (max-width: 575.98px) {

    .about-us-why-text {
        padding-right: .75rem;
        padding-left: .75rem;
    }

    .about-us-why-heading {
        font-size: clamp(1.6rem, 7vw, 2rem);
    }

    .about-us-why-list {
        margin-top: 1rem;
    }

    .why-list-bullet {
        margin-right: .9rem;

        font-size: 2.25rem;
        line-height: 1.2;

        transform: translateY(-.7rem);
    }

    .why-list-title {
        font-size: .95rem;
        line-height: 1.35;
    }

    .why-list-text {
        margin-bottom: 2rem;

        font-size: 1.05rem;
        line-height: 1.65;
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

/* @media (prefers-reduced-motion: reduce) {

    .about-hero-animate {
        opacity: 1 !important;

        animation: none !important;

        transform: none !important;
    }

} */