/*
 * promo-banners.css — стили баннер-карусели + плашки партнёров + модалок
 * (resources/views/partials/promo-banners.blade.php). Код прислан владельцем
 * напрямую (banner.txt, 2026-07-24) — перенесён как есть, отдельным файлом
 * (не в klondaik-custom.css), т.к. это самостоятельный, самодостаточный виджет
 * с большим объёмом стилей — удобнее держать отдельно, чтобы не раздувать
 * общий файл наших добавок.
 */

.banner-carousel {
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    position: relative;
}
/* Фикс (2026-07-24): в присланном коде картинка вписывалась через
   width:100%; height:auto — с реальным баннером (другие пропорции, чем
   1330/195) это давало более высокую картинку, чем окно карусели, и она
   вылезала за скруглённые края вместо аккуратной обрезки. Теперь фиксируем
   пропорции у самого слайда (.owl-item > div), а картинку растягиваем
   object-fit:cover — как у карточек объявлений (.catalog-card-img img). */
.banner-carousel .owl-carousel .owl-item > div {
    position: relative;
    aspect-ratio: 1330/195;
    overflow: hidden;
    border-radius: 30px;
}
.banner-carousel .owl-carousel .owl-item > div a {
    display: block;
    width: 100%;
    height: 100%;
}
.banner-carousel img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.banner-carousel .owl-stage-outer {
    border-radius: 30px;
    overflow: hidden;
}
.banner-carousel .owl-dots {
    position: absolute;
    z-index: 2;
    bottom: 0;
    right: 0;
    left: 0;
}
.banner-carousel .owl-dot span {
    border: 0 !important;
    width: 5px !important;
    height: 5px !important;
    margin: 5px 2px !important;
}
.banner-carousel .owl-prev {
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/></svg>') center no-repeat !important;
}
.banner-carousel .owl-next {
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></svg>') center no-repeat !important;
}
.banner-carousel .owl-next,
.banner-carousel .owl-prev {
    border-radius: 360px !important;
    background-size: 12px !important;
    opacity: 0 !important;
    transition: .2s ease-in-out;
}
.banner-carousel:hover .owl-next,
.banner-carousel:hover .owl-prev {
    opacity: .5 !important;
    z-index: 2;
}
.banner-carousel .owl-next:hover,
.banner-carousel .owl-prev:hover {
    opacity: 1 !important;
}
.banner-carousel .owl-next { right: 20px !important; }
.banner-carousel .owl-prev { left: 20px !important; }
.banner-carousel .owl-theme .owl-nav [class*=owl-] {
    margin: 0 !important;
    top: 0;
    bottom: 0;
    margin: auto 0 !important;
}
.banner-carousel .owl-stage-outer:after {
    width: 100%;
    height: 100%;
    background: #00000012;
    position: absolute;
    left: 0;
    top: 0;
    content: "";
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    transition: .2s ease-in-out;
}
.banner-carousel:hover .owl-stage-outer:after { opacity: 1; }
.banner-carousel:has(.owl-next:hover) .owl-stage-outer:after,
.banner-carousel:has(.owl-prev:hover) .owl-stage-outer:after {
    opacity: 0;
}
.banner-carousel:after {
    content: "Реклама";
    display: block;
    background: #ffffffab;
    padding: 2px 5px;
    border-radius: 360px;
    font-size: 12px;
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 9;
    pointer-events: none;
    backdrop-filter: blur(15px);
}

/* Переключение pc/mobile картинок баннера — в присланном коде не было явного
   правила (только .banner-carousel img{width:100%}), без него обе версии
   показывались бы одновременно. Точка перелома (767px) взята из соседнего
   правила .owl-stage-outer ниже по файлу — одна и та же логика адаптива. */
.adaptive-banner--mobile { display: none; }
@media screen and (max-width: 767px) {
    .banner-carousel .owl-carousel .owl-item > div { aspect-ratio: 737/320; }
    .adaptive-banner--pc { display: none; }
    .adaptive-banner--mobile { display: block; }
}

.icon-slider {
    display: flex;
    max-width: 100%;
    margin: 20px auto;
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 20px;
    align-items: flex-start;
}
.icon-item {
    width: 80px;
    flex: 0 0 auto;
    text-align: center;
    text-decoration: none !important;
}
.icon-item img {
    width: 80px;
    height: 80px;
    min-width: 80px;
    object-fit: cover;
    border-radius: 15px;
    margin: 0 auto 6px;
    display: block;
}
.icon-item span {
    display: block;
    font-size: 12px;
    color: #000;
    line-height: 1.2em;
    word-wrap: break-word;
}
.icon-slider::-webkit-scrollbar { display: none; }
.icon-slider { -ms-overflow-style: none; scrollbar-width: none; }

:root {
    --mc-radius: 20px;
    --img-radius: 16px;
    --gap: 18px;
    --text: #0b1828;
    --muted: #5b6b80;
    --card-bg: rgba(255, 255, 255, .86);
    --shadow: 0 18px 50px rgba(16, 24, 40, .18);
    --grad-a: #ff6a00;
    --grad-b: #ee0979;
}

.modal-content {
    width: min(840px, 100%);
    position: relative;
    border-radius: var(--mc-radius);
    background: var(--card-bg);
    backdrop-filter: blur(10px) saturate(1.05);
    -webkit-backdrop-filter: blur(10px) saturate(1.05);
    box-shadow: var(--shadow);
    overflow: hidden;
    color: var(--text);
    isolation: isolate;
}
.modal-content__media { position: relative; padding: 18px 0px 8px 0px; }
.modal-content__image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: top center;
    border-radius: var(--img-radius);
}
.modal-content__head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.modal-content__badge {
    margin: 0px 0px 8px 0px;
    position: static;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: white;
    background: #179E31;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 999px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
    line-height: 1;
}
.modal-content__body { padding: 0px 8px 8px 8px; }
.modal-content__title {
    margin: 0 0 10px;
    font-weight: 800;
    font-size: clamp(26px, 3.2vw, 34px);
    line-height: 1.15;
}
.modal-content__content { margin: 0 0 16px; }
.modal-content__content p { margin: 0; color: var(--muted); font-size: clamp(14px, 1.4vw, 16px); }
.modal-content__em {
    font-weight: 800;
    color: #0b1220;
    font-size: 1.05em;
    padding: 0 .15em;
    background: linear-gradient(transparent 60%, rgba(255, 106, 0, .18) 60%);
    border-radius: 4px;
}
.modal-content__button {
    --py: 1.0rem;
    --px: 1.35rem;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    padding: var(--py) var(--px);
    font-weight: 800;
    color: #fff;
    text-decoration: none;
    background: linear-gradient(135deg, var(--grad-a), var(--grad-b));
    border-radius: 14px;
    box-shadow: 0 18px 36px rgba(238, 9, 121, .34);
    transition: transform .15s ease, box-shadow .15s ease;
}
.modal-content__button:hover { transform: translateY(-1px); box-shadow: 0 24px 50px rgba(238, 9, 121, .45); }
.modal-content__button:active { transform: translateY(0) scale(.98); }
.modal-content__button-icon { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; }
.modal-content__button-gloss {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, .55) 35%, transparent 60%);
    transform: skewX(-18deg) translateX(-200%);
    animation: gloss 2.6s linear infinite;
}
@keyframes gloss { to { transform: skewX(-18deg) translateX(200%); } }

.modals-group .modal-content { padding: 20px !important; }
.modal-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    font-weight: bold;
    color: #ededed;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    cursor: pointer;
    z-index: 10;
    user-select: none;
    transition: .3s;
    opacity: .8;
}
.modal-nav:hover { color: #fff; }
.modal-prev { left: -25px; }
.modal-next { right: -25px; }
.modal-custom {
    position: relative;
    width: calc(100% - 50px);
    max-width: 700px !important;
}
.modal-progress {
    position: absolute;
    top: 25px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 15;
    width: calc(100% - 60px);
}
.modal-progress span {
    height: 3px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 2px;
    transition: background .3s;
    flex: 1;
}
.modal-progress span.active { background: #000; }

@media screen and (max-width: 767px) {
    .icon-slider {
        max-width: 100%;
        margin: 20px auto;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: scroll;
        gap: 18px;
    }
    .icon-item { width: 60px; text-align: center; text-decoration: none !important; }
    .icon-item img {
        width: 60px;
        height: 60px;
        min-width: 60px;
        object-fit: cover;
        border-radius: 15px;
        margin: 0 auto 6px;
        display: block;
    }
    .icon-item span { display: block; font-size: 9px; color: #000; line-height: 1.2em; word-wrap: break-word; }
}
@media screen and (max-width: 560px) {
    .modal-content { border-radius: 16px; }
    .modal-content__media { padding: 12px 0px 8px 0px; }
    .modal-content__badge { top: 16px; right: 6px; font-size: 11px; padding: 5px 9px; }
    .modal-content__title { font-size: 22px; }
    .modal-content__button { --py: .9rem; --px: 1.1rem; border-radius: 12px; }
}
@media screen and (max-width: 479px) {
    .modal-content__content { font-size: 16px; }
    .modal-content__title { font-size: 28px; }
    .modal-content__button { font-size: 16px; padding: 10px 20px; }
}
