section.main-banner {
    padding: 0 !important;
}
.main-banner__container {
    padding-bottom: 0.625rem;
}
.main-banner__image {
    object-position: top;
}
.main-banner__container {
    overflow: hidden;
    min-height: calc(var(--vh, 1vh) * 100);
    display: flex;
}
.authorized-admin .main-banner__container {
    min-height: calc(100vh - 6.25rem);
}
.authorized-admin .navbar {
    position: relative!important;
}

.main-banner__title {
    color: #ffffff;
    line-height: 0.8;
    margin-bottom: 1.25rem;
    letter-spacing: -0.0813rem;
}
.main-banner__text * {
    color: #ffffff!important;
    margin: 0.9375rem 0;
}
.main-banner__portfolio-link {
    display: none;
}
/* Подпись автора фото первого экрана — поверх фото, в правом верхнем углу под шапкой. */
.main-banner__row {
    margin-top: auto!important;
    z-index: 2;
    position: relative;
    width: 100%;
    flex-grow: 1;
}

.substrate:before {
    background-color: transparent;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4) 100%);
}
.user-card {
    background: #fff;
    padding: 0.9375rem;

}

.u-data__descr {
    font-size: 0.6875rem;
    padding-top: 1.0625rem;
}
.u-data__descr p {
    font-size: inherit;
}

.main-banner__content {
    width: 100%;
}
.u-data__image {
    overflow: hidden;
    border-radius: 50%;
    width: 4.375rem;
    height: 4.375rem;
    position: relative;
    flex-shrink: 0;
}
.u-data {
    display: flex;
    align-items: center;
}
.u-data__content {
    flex-grow: 1;
    padding-left: 0.625rem;
}

@media only screen and (min-width: 1200px) {
    .u-data__image {
        width: 6.25rem;
        height: 6.25rem;

    }
    .u-data__content {
        padding-left: 1.25rem;
        padding-top: 0.3125rem;
    }
    .main-banner__container {
        padding-bottom: 1.25rem;
    }
    .u-data  {
        margin-bottom: 1.25rem;
    }
    .user-card {
        max-width: 20.75rem;
        margin-left: auto;
        padding: 1.25rem;
    }
    .authorized-admin .main-banner__container {
        min-height: calc(100vh - 7.8125rem);
    }
    .main-banner__title {
        margin-bottom:  0;
    }
    .main-banner__container {
        min-height: calc(var(--vh, 1vh) * 100);
    }
    .main-banner__text * {
        margin-bottom: 0;
    }
}

@media only screen and (max-width: 468px) {
    .user-card .col-6:nth-child(1) {
        width: 100%;
        margin-bottom: 0.625rem;
    }
    .user-card .col-6:nth-child(2) {
        width: 100%;
        flex-grow: 1;
    }

}

@media only screen and (max-width: 575.98px) {
    .main-banner--mobile-portfolio .main-banner__text {
        width: 100%;
    }
    .main-banner--mobile-portfolio .main-banner__portfolio-link {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 2.5rem;
        margin: 0 0 0.5rem;
        border: 0.0625rem solid #ffffff;
        background: #000000;
        color: #ffffff!important;
        font-size: 0.75rem;
        line-height: 1.2;
        text-align: center;
        text-decoration: none;
    }
}
/*START ANIMATION*/
/* P4: span-ы h1.main-banner__title — это LCP-элемент. Скрытие через opacity:0
   до JS-события .banner-load давало render delay ~8.9s на мобиле (defer-JS).
   Анимацию убрали: spans видимы мгновенно → LCP instant.
   P9 ревизия: пробовали вернуть через @keyframes transform/filter:blur(),
   но filter:blur — дорогой GPU-composite, мог добавлять десятки ms к LCP
   на слабом мобиле. По решению пользователя — откатили в static. */
.main-banner__title span {
    margin: 0 !important;
    display: inline-block;
}
/*END ANIMATION*/
/* P4: user-card выше fold — переопределяем opacity:0 из full_screen_image,
   чтобы карточка сотрудника была видна без JS (banner-load). */
.main-banner .user-card {
    opacity: 1;
    transform: none;
    filter: none;
}
.main-banner .user-card .u-data__image,
.main-banner .user-card .u-data__name {
    opacity: 1;
    transform: none;
}
.u-post {
    font-size: 0.75rem!important;
    margin-bottom: 0 !important;
}
@media only screen and (min-width: 1200px) {
    .u-post {
        font-size: 0.625rem!important;
    }
}
/* Кнопка появляется последней — создаёт приятный финальный акцент */

@media only screen and (min-width: 1200px) {
    .main-banner__title  {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}


/* Автоподбор кегля h1 под длину заголовка.
   Базовые размеры (критический CSS в header.php): 40px, 72px от 768, 100px от 1200.
   Класс ставит template.php по длине чистого текста: >50 символов — long,
   >75 — xlong. Порог подобран по базе: из 40 баннеров длиннее 50 символов
   только четыре, остальные остаются в прежнем размере.
   Селектор через обёртку, потому что у части баннеров h1 лежит в CMS готовым
   HTML со своим набором классов. */
.main-banner__text--title-long .main-banner__title {
    font-size: 34px;
}
.main-banner__text--title-xlong .main-banner__title {
    font-size: 2.5rem;
}
@media only screen and (min-width: 768px) {
    .main-banner__text--title-long .main-banner__title {
        font-size: 58px;
    }
    .main-banner__text--title-xlong .main-banner__title {
        font-size: 46px;
    }
}
@media only screen and (min-width: 1200px) {
    .main-banner__text--title-long .main-banner__title {
        font-size: 76px;
    }
    .main-banner__text--title-xlong .main-banner__title {
        font-size: 4.5rem;
    }
}
