

/* Start:/local/components/custom/banner/templates/.default/style.css?17900752942142*/
.banner-wrapper {
    position: relative;
    width: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: left center; /* фокусируем правый край */
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
    color: #fff;
    background-color: #0000009e;
}

.banner-overlay {
    width: 100%;
    height: 100%;
/*    background: rgba(0,0,0,0.4);*/
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 40px;
    box-sizing: border-box;
}

.banner-text {
    max-width: 50%;
    font-size: 1.2em;
    color: #fff;
    padding-left: 10%;
}

.banner-text * {
    color: #fff !important;
}

.banner-text a {
    color: #fff !important;
    text-decoration: underline;
}

.banner-text ul,
.banner-text ol {
    color: #fff !important;
    padding-left: 20px;
}

.banner-text li {
    color: #fff !important;
    margin-bottom: 5px;
}

ul>li::before {
    background-color: #fff !important;
}

/* Планшеты */
@media (min-width: 768px) and (max-width: 1024px) {
    .banner-text {
        max-width: 75%;
    }

    .banner-overlay {
        padding: 30px;
    }
    .banner-text {
    padding-left: unset;
    }
}

/* Мобильная картинка из "Подробнее" — скрыта на десктопе */
.banner-mobile-detail {
    display: none;
}

/* Мобильные */
@media (max-width: 767px) {
    .banner-text {
        max-width: 100%;
    }

    .banner-overlay {
        padding: 20px;
    }
    .banner-wrapper {
    height: auto !important;
    background-size: unset;
    }
    .banner-text {
    padding-left: unset;
    }

    /* Если есть картинка из "Подробнее" — скрываем основной баннер, показываем детальную картинку */
    .banner-wrapper ~ .banner-mobile-detail {
        display: block;
    }
    .banner-wrapper:has(~ .banner-mobile-detail) {
        display: none;
    }
    .banner-mobile-detail img {
        width: 100%;
        height: auto;
        display: block;
    }
}

/* End */


/* Start:/local/components/custom/blocks_grid/templates/.default/style.css?17563262963290*/
.blocks {
    margin: 0 auto;
    padding: 15px;
    font-family: Arial, sans-serif;
}

.blocks-grid-title {
    text-align: center;
    margin-bottom: 25px;
    font-size: 2em;
    font-weight: 700;
}

.blocks-grid {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: var(--gap-size);
    margin-top: var(--grid-margin-top);
}


.blocks-grid-item {
    box-sizing: border-box;
    flex: 0 0 calc((100% / var(--columns)) - (var(--gap-size) * (var(--columns) - 1) / var(--columns)));
    max-width: calc((100% / var(--columns)) - (var(--gap-size) * (var(--columns) - 1) / var(--columns)));
    padding: 20px;
    transition: all 0.3s ease;
    text-decoration: none;
    border-style: solid;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 220px;
    margin-bottom: var(--gap-size);
}

.blocks-grid-item.link-block:hover {
    text-decoration: none;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.blocks-grid-item-title {
    font-size: var(--title-font-size);
    font-weight: var(--title-font-weight);
    margin-bottom: 15px;
    color: inherit;
}

.blocks-grid-item-image img {
    max-width: 100%;
    max-height: 120px;
    object-fit: contain;
    margin-bottom: 15px;
}

.blocks-grid-item-button {
    padding: 10px 18px;
    border: none;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.btn-icon {
    display: inline-flex;
    font-size: 1.1em;
    transition: all 0.3s ease;;
}

.btn-icon-left {
    order: -1;
}

.btn-icon-right {
    order: 1;
}

.blocks-grid-item-button i {
    font-size: inherit;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
}

/* Если нужно добавить отступ между иконкой и текстом */
.blocks-grid-item-button i + span,
.blocks-grid-item-button span + i {
    margin-left: 8px;
}

@media (max-width: 767px) {
    .blocks-grid-item {
        min-width: calc(50% - var(--gap-size));
    }
}

/* До 1259px — жёсткие ограничения */
@media (max-width: 1259px) and (min-width: 992px) {
    .blocks-grid-item {
        flex: 0 0 calc(33.333% - var(--gap-size));
        max-width: calc(33.333% - var(--gap-size));
    }
}

@media (max-width: 991px) and (min-width: 768px) {
    .blocks-grid-item {
        flex: 0 0 calc(50% - var(--gap-size));
        max-width: calc(50% - var(--gap-size));
    }
}

@media (max-width: 767px) {
    .blocks-grid-item {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

/* От 1260px — учитываем настройку компонента, но не менее 3 колонок */
@media (min-width: 1260px) {
    .blocks-grid {
        --columns: max(3, var(--columns)); /* Если в настройках 1 или 2 — всё равно будет 3 */
    }
    .blocks-grid-item {
        flex: 0 0 calc((100% / var(--columns)) - var(--gap-size));
        max-width: calc((100% / var(--columns)) - var(--gap-size));
    }
}
@media (max-width: 767px) {
    .blocks-grid-item {
        flex: 0 0 100%;
        max-width: 100%;
    }
}
/* End */
/* /local/components/custom/banner/templates/.default/style.css?17900752942142 */
/* /local/components/custom/blocks_grid/templates/.default/style.css?17563262963290 */
