



.home-hero {
    background-image:url('public/images/home/hero.png');
    background-size: cover;
    background-repeat: no-repeat;
    min-height: calc(var(--vh, 1vh)* 100);
    height:auto;
    padding-top:200px;
    text-align: center;

    position: relative;
}


.home-hero h1 {
    font-size: 48px;
    line-height: 58px;
    letter-spacing: -0.03em;
    margin-bottom: 48px;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.home-hero__wrapper {

}
.tg-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    gap:8px;
    opacity: .5;
    transition: all .3s;
}
.tg-link:hover {
    opacity:1;
}
.tg-link span {
    font-size:12px;
}
.button {
    background: rgba(2, 162, 238, 1);
    font-size: 1.8rem;
    line-height: 2.4rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    padding: 24px;
    height: 48px;
    color: #fff;
    letter-spacing: 0.02em;
    transition: all 0.3s;
}
.button:hover {
    background: #0090D4;
}


.hero-slider-main {
    padding:50px;
    margin:-50px;
}
.hero-slider-main img {
    width: 1000px;
    height:555px;
    outline: 8px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    box-shadow: 0px 2.44px 45px 0px rgba(0, 0, 0, 0.08);

}
.hero-slider-main [data-value="Товарные рекомендации"] img {
    outline-color: transparent;
    box-shadow: none;
}
.hero-slider-main .swiper-slide {
    text-align: center;
}
.hero-slider-thumbs .swiper-slide {
    display: inline-block;
    width:max-content;
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    padding: 4px 8px 4px 8px;
    opacity: 0.3;
    cursor: pointer;
    white-space: nowrap;

}
.hero-slider-thumbs {
    margin-bottom: 20px;
    z-index:2;
    max-width: 870px;
}
.hero-slider-thumbs .swiper-slide-active {
    border-radius: 31px;
    background: rgba(255, 255, 255, 0.1);
    font-size: 12px;
    font-weight: 500;
    line-height: 16px;
    opacity: 1;
}
.hero-slider-thumbs .swiper-slide-prev {
    opacity: 0.5;
}
.hero-slider-thumbs .swiper-slide-next {
    opacity: 0.5;
}
.hero-slider {
    margin:70px auto 0;
}

.home-hero:after {
    content: "";
    height: 200px;
    background: #F8F8F8;
    clip-path: ellipse(90% 100% at 67% 100%);
    position: absolute;
    bottom: 0px;
    width: 100%;
    pointer-events: none;
    left:0;
}
.hero-slider-main__prev {
    position: absolute;
    left: calc((100% - 1000px) / 2 - 90px);
    top: 0;
    bottom: 0;
    margin: auto;
    z-index: 88887;
    width: 50px;
    height: 50px;
    cursor: pointer;
}
.hero-slider-main__next {
    position: absolute;
    right: calc((100% - 1000px) / 2 - 90px);
    top: 0;
    bottom: 0;
    margin: auto;
    z-index: 88887;
    width: 50px;
    height: 50px;
    cursor: pointer;
}

.gravity-ai__slider-logos img {
    width:200px;
    height:80px;
}

/* Лента едет автоплеем Swiper: слайд за слайдом по 3 с. В freeMode Swiper
   ставит обёртке ease-out, и каждый отрезок тормозит к концу — лента дёргается
   с паузами. Linear делает движение равномерным. На /gravity-ai то же правило
   лежит в gravity-ai.css, но главная этот файл не грузит. */
.logos .gravity-ai__slider-logos > .swiper-wrapper {
    -webkit-transition-timing-function: linear;
    transition-timing-function: linear;
}

.logos {
    padding:80px 0;
    background: #F8F8F8;
}

/* Неподвижный ряд для короткого набора знаков — см. homepage-v2.php. */
.logos__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 6px;
}

/*
 * Знак тянется за шириной экрана, чтобы семь штук всегда ложились в одну
 * строку: 7 * (ширина + 6px зазора) <= ширина окна, отсюда 12.5vw. Фиксированные
 * 200px давали 1442px и на 1440 рвали строку на 6+1 — перенос одного знака
 * выглядит сломанной вёрсткой, а не решением.
 *
 * Нижняя граница 136px подобрана под стык с медиазапросом: на 1024px семь
 * знаков занимают 988px и ещё помещаются, а с 1023px включается ряд 4+3 со
 * знаком 140px — то есть при сужении окна знак не прыгает вверх в размере.
 */
.logos__row img {
    width: clamp(136px, 12.5vw, 200px);
    height: auto;
}

.tasks {
    padding:80px 0;
    background: #F8F8F8;

}
.tasks * {
    color: #202837;
}
.tasks h2 {
    font-size: 34px;
    font-weight: 700;
    line-height: 46px;
    letter-spacing: -0.02em;
    text-align: left;
    margin-bottom: 32px;
}
.tasks__accordion {
    width: 620px;
    flex-shrink: 0;
}



.tasks__wrapper {
    display: flex;
}
.tasks__image img {
    max-width:700px;
    margin-left:40px;
}




.accordion {
    background-color: transparent;
    transition: all .3s;
}

.accordion + .accordion {
    margin-top: 1rem;
}

.ac-state {
    display: none;
}

.ac-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    padding: 1rem;
}




.ac-title span {
    font-size: 20px;
    font-weight: 500;
    line-height: 30px;
    margin-left:20px;
    letter-spacing: -0.02em;
}

.ac-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: all 300ms ease;
    background-color:transparent;
    padding-left: 16px;
    padding-right: 38px;
}

.ac-content-inner {
    overflow: hidden;
    padding-left: 60px;

}

.ac-state:not(:checked) ~ .ac-trigger .ac-icon-close {
    display: none;
}

.ac-state:checked ~ .ac-trigger {
    background-color: #fff;
}
.ac-state:checked ~ .ac-content {
    background: #fff;
    padding-bottom: 16px;
}

.ac-state:checked ~ .ac-trigger .ac-icon-open {
    display: none;
}

.ac-state:checked ~ .ac-content {
    grid-template-rows: 1fr;
}

.ac-title {
    display: flex;
    align-items: center;
}
.ac-content-inner p {
    margin-bottom: 1em;
}

.capabilities {
    padding:80px 0;
    background: #F8F8F8;
}
.capabilities * {
    color:#202837;

}

h2 {
    font-size: 34px;
    line-height: 46px;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.capabilities h2 {
    margin-bottom: 36px;
    text-align: center;
}
.g-row {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.g-card {
    width: calc((100% - 6rem) / 4);
    box-shadow: 0 5px 28px 0 rgba(0, 0, 0, 0.06);
    border-radius: 4px;
    background: #fff;
    margin-bottom: 2rem;

}
.g-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}
.g-card__title {
    font-size:2rem;
    line-height: 2.4rem;
    font-weight: 700;
    margin:16px 0;
}

.g-card__description {
    font-size:1.6rem;
    line-height: 2.4rem;
}
.g-card__content {

    padding:1.6rem 2.4rem 4rem;
}


.cases {
    background-color:#010102;
    background-image:url('public/images/home/cases_bg.png');
    background-size: cover;
    background-repeat: no-repeat;
}
.cases h2 {
    color:#fff;
    text-align: left;
}

.cases-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 40px;
}
.cases-swiper__nav {
    display: flex;
    gap:28px;
}
.cases-swiper__arrow:not(.swiper-button-disabled) {
    cursor: pointer;
}
.cases-swiper__arrow.swiper-button-disabled {
    opacity:0.23;
}
.case-item {
    width:400px;
    height:auto;
}
.case-item * {
    color: rgb(32, 40, 55);
}
.case-item > a {
    height:100%;background: #fff;
}
.case-item__head {
    height:218px;
    display:flex;
    align-items:center;
    justify-content: center;
    background:red;
    position: relative;
}
.case-item__head img {
    max-width: 100%;
    max-height: 80px;
    position: relative;
}
.case-item__bg {
    background-size: cover;
    background-position: center;
    width: 100%;
    height: 100%;
    position: absolute;
    opacity:0.2;
}
.case-item__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: -0.02em;
    text-align: left;
    margin-bottom: 16px;
}
.case-item__text {
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.02em;
    text-align: left;
}
.case-item__content {
    background:#fff;
    padding:20px 24px 50px;
 
}
.case-item__more {
    display: flex;
    align-items: center;
    margin-top:34px;
    position: absolute;
    bottom: 24px;

}
.case-item__more span {
    font-size: 14px;
    font-weight: 500;
    line-height: 14px;
    letter-spacing: 0.02em;
    margin-right:7px;
}


.unique-advantages {
    padding:140px 0 40px;
    background: #F8F8F8;
}
.unique-advantages h2 {
    text-align: center;
    margin-bottom: 65px;
}
.unique-advantages * {
    color:#202837;
}

.unique-advantages-sidebar {
    width:412px;
    flex-shrink: 0;
    margin-right:40px;
    position: relative;
    z-index: 10;
}

.unique-advantages-sidebar li {
    border-radius: 4px;
    background: rgb(255, 255, 255);
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: -0.02em;
    padding: 16px 20px 16px 20px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: all .3s;
}
.unique-advantages-sidebar li.active {
    background: rgb(32, 40, 55);
    color:#fff;
    position: relative;
}
.unique-advantages-sidebar li.active:after {
    content:"";
    width:9px;
    height:35px;
    position: absolute;
    right:-9px;
    top:0;
    bottom: 0;
    margin: auto;
    background-image: url('data:image/svg+xml,<svg width="9" height="35" viewBox="0 0 9 35" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.09876 16.2368C8.57047 16.6363 8.57047 17.3637 8.09876 17.7631L3.375 21.7631L2.20714 22.7521C1.15739 23.641 0.520219 24.9231 0.445609 26.2966L3.99306e-07 34.5L0 -3.93402e-07L0.440161 7.71184C0.518273 9.08039 1.15482 10.3569 2.20093 11.2427L3.375 12.2369L8.09876 16.2368Z" fill="%23202837"/></svg>');
}

.unique-advantages-wrapper {
    display:flex;
}

.advantages-item {
    width:400px;
    height:668px;
    background-color: #fff;
    padding-top:30px;
    display: flex;
    flex-direction: column;
    background-size: contain;
    background-position: bottom center;
    background-repeat: no-repeat;
}
/* Заголовок карточки-преимущества ведёт на свою страницу (см. homepage-v2.php,
   ключ 'link' в $t['adv']). Ссылка наследует вид заголовка — визуально карточка
   не меняется, подчёркивание появляется только на ховере. */
.advantages-item__title a {
    color: inherit;
    /* тема сбрасывает начертание у <a> (font-weight:400) — возвращаем
       наследование, иначе связанные карточки теряют жирность заголовка */
    font: inherit;
    font-weight: inherit;
    text-decoration: none;
}
.advantages-item__title a:hover {
    text-decoration: underline;
}
.advantages-item__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: -0.02em;
    text-align: center;
    margin-bottom: 16px;
    padding:0 15px;
}
.advantages-item__description {
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: -0.02em;
    text-align: center;
    padding:0 15px;
}



.unique-advantages-sidebar:after{
    content: "";
    background: #F8F8F8;
    height: 668px;
    width: 100vw;
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
}
.unique-advantages-swiper {
    overflow: visible;
    width:100%;
    max-width: 400px;
}


.become {
    background-color: #0E0E0E;
    background-image:url('public/images/home/fbg.png');
    background-size: cover;
    background-repeat: no-repeat;
    color: #fff;
    padding:10rem 0;

}
.become h2 {
    color: #fff;
    text-align: center;
    max-width: 724px;
    margin:0 auto 48px;
}
.become p {
    color: rgba(243, 243, 255, 1);
}

.description p {
    font-size: 18px;
    line-height: 28px;
    letter-spacing: -0.03em;
    margin-bottom: 4.8rem;
    max-width: 600px;
}

.become .row {
    display: flex;
    justify-content: space-between;
}

.form {
    background: rgba(243, 243, 255, .05);
    padding:36px;
    padding-top:32px;
    padding-bottom: 54px;
    width:534px;
    min-width: 534px;
    border-radius: 4px;
    margin-left:12px;
}
.form form {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.form-title {
    font-weight: 700;
    font-size: 2rem;
    line-height: 2.8rem;
    letter-spacing: -0.02em;
    color: #fff;
    margin-bottom: 3.6rem;
}

.form-item{
    position: relative;
    margin-bottom: 28px;
    width:calc(50% - 12px);
}
.form-item.w-100 {
    width:100%;
}

.form-item input{
    display: block;
    width: 100%;
    height: 50px;
    background: transparent;
    border-bottom: solid 1px rgba(255,255,255,.5);
    transition: all .3s ease;
    padding:12px 0px
}
.form-item input:focus{
    border-color: #8380FF;
}
.form-item label{
    position: absolute;
    cursor: text;
    z-index: 2;
    top: 8px;
    left: 0px;
    font-size: 16px;
    font-weight: 400;
    color: #fff;
    transition: all .3s ease
}
.form-item input:focus + label,
.form-item input:not(:placeholder-shown) + label,
.form-item input:valid:not(:placeholder-shown) + label{
    font-size: 12px;
    top: -10px
}
.form-item input:focus + label,
.form-item input:not(:placeholder-shown):not(:focus) + label{
    color: #777da6;
}



.form-item label.checkbox {
    display: block;
    position: relative;
    padding-left: 27px;
    padding-top: 0px;
    cursor: pointer;
    font-size: 14px;
    line-height: 20px;
    text-align: left;
    color: #fff;
    margin-top: 0px;
}

.form label a {
    font-size: 14px;
    color: #02A2EE;
    text-decoration: underline;
}
.form input[type="checkbox"] {
    position: absolute;
    z-index: -1;
    opacity: 0;
}

.form .contact__control__indicator {
    position: absolute;
    top: 4px;
    left: 0;
    height: 17px;
    width: 17px;
    background: transparent;
    border: 1px solid #fff;
    border-radius: 4px;
}
.form input:checked ~ .contact__control__indicator:after {
    display: block;
}
/* #134: галочка согласия не стоит заранее — без неё форма не уходит, и рамка
   должна это показывать (раньше «ошибка» была того же белого цвета). */
.form input[type="checkbox"].error:not(:checked) + .contact__control__indicator {
    border: 1px solid #FF6B6B;
    box-shadow: 0 0 0 1px #FF6B6B;
}
.form .contact__control__indicator:after {
    left: 5px;
    top: 1px;
    width: 3px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.submit {
    background: rgba(2, 162, 238, 1);
    font-size:1.6rem;
    line-height: 2.4rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 4px;
    padding:20px;
    height:70px;
    color:#fff;
    margin-top:2rem;
    transition: all 0.3s;
    width: 100%;
}
.submit:hover {
    background: #0090D4;
}
.submit span {
    color:#fff;
}

.become h4 {
    font-weight: 500;
    font-size: 16px;
    line-height: 24px;
    letter-spacing: -0.02em;
    color: #fff;
    text-align: left;
    margin-bottom: 12px;
}
.logo-container {
    max-width: 650px;
}
.logo-container img {
    margin:15px 24px;
    opacity:0.6;
    transition: all .3s;
    width:78px;
    height:23px;
    -webkit-filter: brightness(0) invert(1);
    filter: brightness(0) invert(1);
}
.logo-container img.custom_img {
    max-width: 78px;
    max-height: 23px;
    width: auto;
    height: auto;
}
.logo-container img:hover {
    opacity: 1;
}
.logo-container + .logo-container {
    margin-top:4rem;
    padding-top:4rem;
    border-top:1px solid rgba(255, 255, 255, 0.1);
}
.cases-show-all {
    display: none;
}
.tasks__mobile-image {
    display: none;
}

.mobile-show-more__capabilities {
    display: none;
}
@media (max-width:1023px) {
    .button {
        padding: 22px;
        height: 44px;
    }
    .home-hero {
        padding-top:125px;
        min-height: 600px;
    }
    .home-hero h1 {
        font-size:32px;
        line-height:40px;
        margin-bottom: 24px;
        max-width: none;
    }
    .hero-slider-main img {
        width: 94%;
        height: auto;
    }
    .home-hero:after {
        height:48px;
    }
    .hero-slider-main {
        padding: 12px;
        margin: 0px;
    }
    .g-card {
        width: calc((100% - 2rem) / 2);
    }
    .logos {
        padding: 64px 0 32px;
    }
    /* Ниже 1024 семь знаков в строку уже не поставить. Ограничиваем ряд по
       ширине, чтобы перенос был предсказуемым (4+3), а не случайным 6+1. */
    .logos__row {
        max-width: 620px;
        margin-left: auto;
        margin-right: auto;
    }
    .logos__row img {
        width: 140px;
    }
    .tasks {
        padding:32px 0 ;
    }
    .ac-content-inner {
        padding-left:0;
    }
    .tasks__accordion {
        width:100%;
    }
    .tasks h2 {
        font-size: 24px;
        font-weight: 700;
        line-height: 32px;
        text-align: center;
    }
    .tasks__image img {
        display: none;
    }
    h2 {
        font-size: 24px;
        line-height: 32px;
    }
    .capabilities {
        padding-top:32px;
        padding-bottom: 32px;
    }
    .unique-advantages-wrapper {
        flex-wrap: wrap;
    }
    .unique-advantages-sidebar ul {
        display: flex;
        white-space: nowrap;
        overflow: auto;
    }
    .unique-advantages-sidebar:after {
        content:none;
    }
    .unique-advantages-sidebar li {
        font-size:12px;
        padding: 8px 16px 8px 16px;
    }
    .advantages-item {
        width:320px;
        height:534px;
    }
    .unique-advantages-swiper {
        overflow: hidden;
        width: 100%;
        max-width: unset;
    }
    .unique-advantages-slider {
        width:100%;
    }
    .unique-advantages-sidebar {
        width:100%;
    }
    .become .row {
        flex-direction: column;
    }
    .description p, .logo-container {
        max-width: unset;
    }
    .logo-container div {

    }
    .form {
        width:100%;
        min-width: unset;
    }
    
    
    .unique-advantages-sidebar li.active:after {
        transform: rotate(90deg);
        bottom: -21px;
        top: unset;
        left: 0;
        right: 0;
    }
    .unique-advantages-sidebar li {
        margin-bottom: 32px;
        margin-right: 8px;
    }
    .unique-advantages {
        padding: 64px 0 0px;
    }
    .unique-advantages h2 {
        margin-bottom: 32px;
    }
    .ac-title span {
        font-size:16px;
        line-height: 20px;
        margin-left: 12px;
    }
    .ac-title img {
        width:32px;
        height:32px;
    }
    .ac-content-inner p {
        font-size:14px;
        line-height: 18px;
    }
    .ac-state:checked ~ .ac-content {
        padding:12px;
    }
    .tasks__mobile-image img {
        width:100%;
        border-radius: 4px;
    }
    .ac-state:not(:checked) ~ .ac-content .tasks__mobile-image {
        display: none;
    }
    .ac-state:checked ~ .ac-content .tasks__mobile-image {
        display: block;
    }

}

@media (max-width: 768px) {
    .container {
        max-width: none;
        padding-left: 15px;
        padding-right: 15px;
    }
    .g-card__content {
        padding:15px 12px 26px;
    }
    .g-card__title {
        margin-top:0;
        margin-bottom: 12px;
        font-size: 16px;
        line-height: 20px;
    }
    .g-card__description {
        font-size:14px;
        line-height: 18px;
        letter-spacing: -0.03em;
    }
    .g-card {
        width: 100%;
        margin-bottom: 24px;
    }
    .g-card__image {
        height: 210px;
    }
    .advantages-item__description {
        font-size:14px;
        line-height: 18px;
        text-align: left;
    }
    .become {
        padding:6rem 0;
    }
    .description p {
        font-size: 1.6rem;
    }
    .logo-container img {
        width:72px;
        height:21px;
        margin:13px 24px;
    }
    .logo-container img.custom_img {
        max-width: 72px;
        max-height: 21px;
        width: auto;
        height: auto;
    }
    .logo-container div {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .become h4 {
        text-align: center;
    }
    .logo-container + .logo-container {
        margin-top:3rem;
        padding-top:3rem;
    }
    .form {
        margin-left:0;
        padding:12px;
        padding-bottom: 17px;
        margin-top:3rem;
    }
    .form-item:not(:nth-child(1)):not(:nth-child(2)) {
        width:100%;
    }
    .form-title {
        font-size: 16px;
    }
    .form-item label.checkbox, .form label a {
        font-size: 12px;
    }
    .form-item label.checkbox br {
        display: none;
    }
    .submit {
        height: 56px;
    }
    .cases h2 {
        text-align: center;
        width:100%;
    }
    .cases-swiper .swiper-wrapper {
        display: flex;
        overflow-x: auto;
    }
    .case-item {
        width:75%;
    }
     .cases-swiper__nav {
        display: none;
    }

     .cases-swiper .swiper-wrapper {
        grid-gap:8px;
     }
    .case-item__content {
        padding: 16px 12px 16px;
    }
    .cases-swiper {
            margin-left: -15px;
        width: calc(100% + 30px);
    }
    .case-item:first-child {
        margin-left:15px;
    }
    .case-item:last-child {
        margin-right:15px;
    }
   

    .case-item__title {
        font-size: 16px;
        line-height: 20px;
    }
    .case-item__text {
        font-size:14px;
        line-height: 18px;
    }
    .case-item__more {
        display: none;
    }
    .case-item__head {
        height:164px;
    }
    .case-item__head img {
        max-width: 60%;
        max-height: 60px;
        position: relative;
    }
    .cases-show-all {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 24px;
    }

    .mobile-show-more__capabilities {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
    }
    .mobile-show-more__capabilities > div {
        background: rgba(2, 162, 238, 0.1);
        color: rgba(2, 162, 238, 1);
        font-size: 16px;
        line-height: 24px;
        letter-spacing: 0.02em;
        padding: 10px 24px;
        display: inline-flex;
        align-items: center;
        justify-content: center;

    }
    .g-card:nth-child(n+5) {
        display: none;
    }
    .mobile-show-more__capabilities.active ~ .g-card {
        display: inline-block;
    }
    .advantages-item__title {
        text-align: left;
        font-size:16px;
        line-height: 20px;
    }
    
    .unique-advantages-sidebar ul {
        margin-left:-15px;
        width: calc(100% + 30px);
    }
    .unique-advantages-sidebar li:first-child {
        margin-left:15px;
    }
    .unique-advantages-sidebar li:last-child {
        margin-right:15px;
    }


}

.mobile-show-more__capabilities.active {
    display: none;
}

/* ===================== FREE-AUDIT CTA (над «Возможности платформы») ===================== */
/* Скоуп .gf-fa — блок-ссылка на /ru/free-audit/. Токены темы, вариант 2 (средний). */
.gf-fa {
    display: block;
    position: relative;
    overflow: hidden;
    background: #05060c;
    color: #fff;
}
.gf-fa::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(90% 120% at 85% 10%, rgba(79,77,173,.45), transparent 55%);
    pointer-events: none;
}
.gf-fa__in {
    position: relative;
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 6rem;
    align-items: center;
    /* только вертикальные паддинги: горизонтальные даёт .container (0 5.6rem / 15px на мобиле) */
    padding-top: 7.5rem;
    padding-bottom: 7.5rem;
}
.gf-fa__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #b3b1ff;
    margin-bottom: 2rem;
}
.gf-fa__dot {
    width: .8rem;
    height: .8rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #4F4DAD, #8380FF);
    flex: none;
}
.gf-fa__title {
    font-size: 4rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: -.03em;
    color: #fff;
    max-width: 56rem;
}
.gf-fa__title mark {
    background: none;
    font-size: inherit;
    line-height: inherit;
    background-image: linear-gradient(90deg, #8380FF, #c9c7ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.gf-fa__lead {
    font-size: 1.8rem;
    line-height: 1.5;
    color: #aab0d0;
    margin-top: 2rem;
    max-width: 52rem;
}
.gf-fa__acts {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-top: 3.4rem;
    flex-wrap: wrap;
}
.gf-fa__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    height: 5.4rem;
    padding: 0 3rem;
    border-radius: 4px;
    background: #02A2EE;
    color: #fff;
    font-size: 1.7rem;
    font-weight: 500;
    white-space: nowrap;
    transition: background .2s;
}
.gf-fa:hover .gf-fa__btn {
    background: #0090D4;
}
.gf-fa__btn svg {
    width: 2rem;
    height: 2rem;
}
.gf-fa__note {
    font-size: 1.4rem;
    color: rgba(255,255,255,.55);
}
.gf-fa__card {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    padding: 3.4rem 3.4rem 3.2rem;
}
.gf-fa__card-h {
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #8b90b5;
    margin-bottom: 2.2rem;
}
.gf-fa__tick {
    display: flex;
    align-items: flex-start;
    gap: 1.4rem;
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255,255,255,.08);
    font-size: 1.7rem;
    font-weight: 500;
    color: #fff;
}
.gf-fa__tick:first-of-type {
    border-top: none;
}
.gf-fa__tick svg {
    width: 2.2rem;
    height: 2.2rem;
    flex: none;
    color: #7ee0a8;
    margin-top: .1rem;
}
@media (max-width: 1000px) {
    .gf-fa__in {
        grid-template-columns: 1fr;
        gap: 4rem;
        padding-top: 5.6rem;
        padding-bottom: 5.6rem;
    }
    .gf-fa__title {
        font-size: 3.2rem;
    }
}
@media (max-width: 560px) {
    .gf-fa__title {
        font-size: 2.6rem;
    }
    .gf-fa__btn {
        width: 100%;
        white-space: normal;
        text-align: center;
        height: auto;
        min-height: 5.4rem;
        padding: 1.4rem 2rem;
    }
    .gf-fa__card {
        padding: 2.4rem 2rem 2.2rem;
    }
}

/* =====================================================================
   ОТЗЫВЫ КЛИЕНТОВ — слайдер (issue #133)
   Заменил .review-section (Oma.by) и .review-slider (Perekrestok / Ситилинк).

   Цвета вынесены в переменные на .hp-rev: компонент своей палитры не держит,
   поэтому при переносе на /ru/clients (скоуп .gfmb, акцент #2E90FA) меняются
   только они, а не правила.
   ===================================================================== */
.hp-rev {
    --accent:      #02A2EE;
    /* #02A2EE на светлом фоне даёт контраст 2.65:1 — ниже WCAG AA.
       Для текста берём затемнённый #0277A8 (4.69:1), сам акцент оставляем
       на нетекстовых элементах: активная точка, рамка кнопки. */
    --accent-deep: #0277A8;
    --ink:         #202837;
    --ink-60:      rgba(32, 40, 55, .72);
    --line:        rgba(32, 40, 55, .14);
    --line-a:      rgba(2, 162, 238, .35);
    --tint:        rgba(2, 162, 238, .08);

    padding: 80px 0;
    background: #F8F8F8;
}
/* Глобальные ресеты темы *{color:#F3F3FF} и *{font-size:1.6rem} матчат вложенные
   теги НАПРЯМУЮ, а прямое правило бьёт унаследованное от контейнера с классом.
   Без этого цитата выходит белой на белом и кеглем 16px. :where() — нулевая
   специфичность, свои классы не перебиваются. */
.hp-rev :where(p, span, a, strong, b, em, i, small, button) {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    letter-spacing: inherit;
}
/* svg и path — отдельно: то же правило *{color:#F3F3FF} матчит их напрямую,
   а иконки стрелок нарисованы stroke="currentColor". Без этого currentColor
   разрешается в белый, и обе стрелки почти не видны на светлом фоне. */
.hp-rev :where(svg, path) { color: inherit; }
.hp-rev { color: var(--ink); }

/* ---------- шапка секции ---------- */
.hp-rev__head { margin-bottom: 32px; }
.hp-rev h2 {
    font-size: 34px;
    font-weight: 700;
    line-height: 46px;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin-bottom: 12px;
}
.hp-rev__lead {
    font-size: 16px;
    line-height: 1.6;
    color: var(--ink-60);
    max-width: 62ch;
}

/* ---------- слайдер ---------- */
.hp-rev__viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    /* поля, чтобы тень карточки не срезалась краем вьюпорта */
    margin: 0 -8px;
    padding: 4px 8px;
}
.hp-rev__viewport::-webkit-scrollbar { display: none; }
.hp-rev__track { display: flex; gap: 20px; align-items: stretch; }
/* Две карточки целиком плюс край третьей: прокрутка очевидна без подсказок.
   Три в ряд давали 37 знаков в строке — не влезали даже короткие цитаты. */
.hp-rev__card {
    flex: 0 0 calc((100% - 40px) / 2.15);
    scroll-snap-align: start;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #FFFFFF;
    padding: 26px 28px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 1px 3px rgba(20, 23, 40, .05);
}

.hp-rev__top {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 28px;
    margin-bottom: 18px;
}
/* 200px, а не 180: надпись «inventive retail group» в одну строку при высоте
   20px занимает 185px — самый широкий знак из четырёх. */
.hp-rev__logo { display: block; width: auto; max-width: 200px; }
.hp-rev__client { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.hp-rev__badge {
    margin-left: auto;
    font-size: 11px;
    line-height: 1.4;
    padding: 4px 10px;
    border-radius: 99px;
    background: var(--tint);
    color: var(--accent-deep);
    border: 1px solid var(--line-a);
    white-space: nowrap;
}

.hp-rev__q {
    font-size: 16px;
    line-height: 1.6;
    color: var(--ink);
    flex: 1;
}
.hp-rev__q p + p { margin-top: 10px; }

.hp-rev__by {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}
.hp-rev__ava {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: #F1F2F4;
}
.hp-rev__name { font-size: 14px; font-weight: 700; color: var(--ink); line-height: 1.3; }
/* Должность — ink-60 (около 6:1). ink-40 из темы (#9CA3AF) дал бы 2.55:1. */
.hp-rev__role { font-size: 12px; line-height: 1.4; color: var(--ink-60); margin-top: 2px; }

/* ---------- навигация ---------- */
.hp-rev__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 20px;
}
.hp-rev__dots { display: flex; gap: 8px; }
.hp-rev__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(32, 40, 55, .22);
    cursor: pointer;
    transition: background .2s, width .2s;
}
.hp-rev__dot[aria-current="true"] { background: var(--accent); width: 22px; border-radius: 99px; }
.hp-rev__arrows { display: flex; gap: 8px; }
.hp-rev__arrow {
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink);
    cursor: pointer;
    transition: border-color .2s, color .2s, background .2s;
}
.hp-rev__arrow svg { width: 18px; height: 18px; }
.hp-rev__arrow:hover { border-color: var(--accent); color: var(--accent-deep); background: var(--tint); }
.hp-rev__arrow[disabled] { opacity: .35; cursor: default; }
.hp-rev__arrow[disabled]:hover { border-color: var(--line); color: var(--ink); background: none; }
.hp-rev :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

@media (max-width: 1100px) {
    .hp-rev__card { flex-basis: calc((100% - 20px) / 1.6); }
}
@media (max-width: 992px) {
    .hp-rev { padding: 32px 0; }
    .hp-rev h2 { font-size: 26px; line-height: 34px; }
}
@media (max-width: 700px) {
    .hp-rev__card { flex-basis: 88%; padding: 22px 20px; }
    .hp-rev__arrows { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .hp-rev *, .hp-rev *::before, .hp-rev *::after {
        transition: none !important;
        animation: none !important;
    }
    .hp-rev__viewport { scroll-behavior: auto; }
}
