/* ============================================================
   Подстраницы Киссатена: Атмосфера / Интерьер / Видео / Мерч.
   Обвязка (шапка+меню) — в обычном потоке. Фон страницы — bgr_bases.
   Лайтбокс + слайдер мерча. Шрифты Steppe берём из nbc-hero.css.
   ============================================================ */

/* ── Шапка на подстраницах: фиксированная, как на главной ── */
.nbc-subpage { padding-top: 64px; }
.nbc-subpage .nbc-hero-header-static { position: fixed; }

/* Шапка подстраниц структурно идентична главной (см. _chrome.php) —
   собственных переопределений не держим, всё наследуется из nbc-hero.css. */
.nbc-subpage .nbc-hero-menu-static {
    position: static; transform: none; width: auto;
    max-width: 739px; margin: 26px auto 0; gap: 4px;
}
.nbc-subpage .nbc-hero-menu-static .nbc-hm-label { color: #232323; }
.nbc-subpage .nbc-cafe-cat { z-index: 40; }

/* ── Общий контейнер контента ── */
.nbc-sub {
    position: relative; z-index: 65;
    max-width: 1200px; margin: 0 auto; padding: 30px 24px 90px;
}
.nbc-sub-heading {
    text-align: center; color: #6f6a66;
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif;
    font-size: 18px; letter-spacing: 1px; margin: 49px 0 36px;
}
.nbc-sub-back {
    display: block; width: max-content; margin: 8px auto 30px;
    background: #795D63; color: #fff !important;
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif !important;
    font-size: 15px; letter-spacing: .2px; line-height: 1.3;
    border-radius: 90px; padding: 16px 30px; text-decoration: none;
    transition: background .2s;
}
.nbc-sub-back:hover { background: #B97062; color: #fff !important; }

/* ── Атмосфера: 2 карточки ── */
.nbc-atmo-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 40px 56px; max-width: 1000px; margin: 0 auto;
}
.nbc-atmo-card { text-decoration: none; display: block; }
.nbc-atmo-img { display: block; overflow: hidden; border-radius: 15px; box-shadow: 0 6px 22px rgba(0,0,0,.12); }
.nbc-atmo-img img { width: 100%; height: 230px; object-fit: cover; display: block; transition: transform .4s; }
.nbc-atmo-card:hover .nbc-atmo-img img { transform: scale(1.04); }
.nbc-atmo-title {
    display: block; text-align: center; margin-top: 16px;
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif;
    font-size: 16px; font-weight: 700; letter-spacing: 1px;
    text-transform: uppercase; color: #232323;
}

/* ── Интерьер: галерея 4 кол. ── */
.nbc-gallery-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
    max-width: 1100px; margin: 0 auto;
}
.nbc-gallery-item { display: block; overflow: hidden; border-radius: 15px; cursor: zoom-in; box-shadow: 0 4px 16px rgba(0,0,0,.10); }
.nbc-gallery-item img { width: 100%; height: 190px; object-fit: cover; display: block; transition: transform .4s; }
.nbc-gallery-item:hover img { transform: scale(1.05); }

/* ── Видео: 4 кол., вертикаль 9:16 ── */
.nbc-video-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
    max-width: 1100px; margin: 0 auto;
}
.nbc-video-item { border-radius: 15px; overflow: hidden; box-shadow: 0 6px 22px rgba(0,0,0,.12); background: #000; }
.nbc-video-item video { width: 100%; display: block; aspect-ratio: 9/16; object-fit: cover; background: #000; }

/* ── Мерч: 4 кол. ── */
.nbc-merch-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px 26px;
    max-width: 1200px; margin: 0 auto;
}
.nbc-merch-card { display: flex; flex-direction: column; }
.nbc-merch-slider { position: relative; overflow: hidden; border-radius: 15px; box-shadow: 0 4px 16px rgba(0,0,0,.10); background: #efeae3; }
.nbc-merch-track { display: flex; transition: transform .45s cubic-bezier(.4,0,.2,1); }
.nbc-merch-slide { flex: 0 0 100%; display: block; cursor: zoom-in; }
.nbc-merch-slide img { width: 100%; height: 360px; object-fit: cover; display: block; }
.nbc-merch-prev, .nbc-merch-next {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 40px; height: 64px; border: none; border-radius: 0;
    background: none; box-shadow: none;
    color: #fff; font-size: 46px; font-weight: 700; line-height: 1;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    text-shadow: 0 1px 8px rgba(0,0,0,.45); transition: opacity .2s;
}
.nbc-merch-prev:hover, .nbc-merch-next:hover { opacity: .7; }
.nbc-merch-prev { left: 4px; }
.nbc-merch-next { right: 4px; }
.nbc-merch-dots { position: absolute; bottom: 10px; left: 0; right: 0; display: flex; justify-content: center; gap: 6px; }
.nbc-merch-dots button { width: 7px; height: 7px; border-radius: 50%; border: none; background: rgba(255,255,255,.6); padding: 0; cursor: pointer; }
.nbc-merch-dots button.active { background: #fff; }
.nbc-merch-price {
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif;
    font-size: 18px; font-weight: 700; color: #232323; margin: 14px 0 6px;
}
.nbc-merch-text { font-family: 'Steppe-Regular', 'Montserrat', sans-serif; font-size: 12px; line-height: 1.5; color: #232323; }
.nbc-merch-text strong { display: block; font-weight: 700; font-size: 13px; margin-bottom: 3px; }

/* ── Лайтбокс ── */
.nbc-lb {
    position: fixed; inset: 0; z-index: 99999;
    background: rgba(20,14,10,.92);
    display: none; align-items: center; justify-content: center;
}
.nbc-lb.open { display: flex; }
.nbc-lb-img { max-width: 88vw; max-height: 86vh; object-fit: contain; box-shadow: 0 10px 50px rgba(0,0,0,.6); transition: transform .25s; cursor: zoom-in; }
.nbc-lb-img.zoomed { cursor: zoom-out; max-width: none; max-height: none; }
.nbc-lb-btn {
    position: absolute; background: rgba(255,255,255,.12); border: none; color: #fff;
    width: 52px; height: 52px; border-radius: 50%; font-size: 30px; line-height: 1;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background .2s; user-select: none;
}
.nbc-lb-btn:hover { background: rgba(255,255,255,.25); }
.nbc-lb-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.nbc-lb-next { right: 24px; top: 50%; transform: translateY(-50%); }
.nbc-lb-close { top: 20px; right: 24px; width: 44px; height: 44px; font-size: 24px; }
.nbc-lb-count { position: absolute; top: 26px; left: 24px; color: #fff; font-size: 14px; opacity: .8; }

@media (max-width: 1024px) {
    .nbc-merch-grid { grid-template-columns: repeat(2, 1fr); }
    .nbc-gallery-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 680px) {
    .nbc-atmo-grid { grid-template-columns: 1fr; }
    .nbc-gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .nbc-video-grid { grid-template-columns: 1fr; }
    .nbc-merch-grid { grid-template-columns: 1fr; }
    .nbc-lb-prev { left: 8px; } .nbc-lb-next { right: 8px; }
}

/* ── Текстовая страница: политика, оферта, правила ── */
.nbc-sub-text {
    max-width: 860px; margin: 0 auto;
    color: #3a3532; font-size: 15px; line-height: 1.7;
}
.nbc-sub-text p { margin: 0 0 14px; text-align: justify; }
.nbc-sub-text h2 {
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif;
    font-size: 17px; line-height: 1.4; color: #232323;
    margin: 38px 0 16px; padding-bottom: 10px;
    border-bottom: 1px solid rgba(185,112,98,.35);
}
.nbc-sub-text h3 { font-size: 15px; color: #232323; margin: 24px 0 10px; }
.nbc-sub-text b.nbc-txt-num { color: var(--nbc-accent, #B97062); font-weight: 700; margin-right: 4px; }
.nbc-sub-text ul, .nbc-sub-text ol { margin: 0 0 14px; padding-left: 22px; }
.nbc-sub-text li { margin-bottom: 6px; }
.nbc-sub-text a { color: var(--nbc-accent, #B97062); }
.nbc-sub-text table {
    width: 100%; border-collapse: collapse; margin: 0 0 22px;
    background: #fff; border-radius: 12px; overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,.06); font-size: 14px;
}
.nbc-sub-text td, .nbc-sub-text th {
    border: 1px solid #e7ddcf; padding: 10px 12px; vertical-align: top; text-align: left;
}
.nbc-sub-text td p { margin: 0; text-align: left; }

/* ── Локация ── */
.nbc-loc-intro { max-width: 1000px; margin: 0 auto 40px; }
.nbc-loc-intro .nbc-sub-text { margin: 0 0 26px; max-width: none; font-size: 16px; }
.nbc-loc-facts {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px; align-items: start;
}
.nbc-loc-fact {
    background: #fff; border: 1px solid #e7ddcf; border-radius: 15px;
    padding: 16px 18px; box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.nbc-loc-fact-t {
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif;
    font-size: 12px; letter-spacing: 1px; text-transform: uppercase;
    color: var(--nbc-accent, #B97062); margin-bottom: 6px;
}
.nbc-loc-fact-v { font-size: 15px; line-height: 1.5; color: #232323; }
.nbc-loc-map {
    max-width: 1000px; margin: 0 auto; border-radius: 15px; overflow: hidden;
    box-shadow: 0 6px 22px rgba(0,0,0,.12); background: #efe9e1;
}
.nbc-loc-map iframe { display: block; width: 100%; height: 520px; border: 0; }

/* ── 404 ── */
.nbc-404-page { text-align: center; }
.nbc-404-code {
    font-family: 'Steppe-Bold', 'Montserrat', sans-serif;
    font-size: 92px; line-height: 1; letter-spacing: 4px;
    color: var(--nbc-accent, #B97062); opacity: .85; margin: 40px 0 0;
}
.nbc-404-page .nbc-sub-heading { margin: 14px 0 18px; }
.nbc-404-text { color: #3a3532; font-size: 15px; line-height: 1.7; margin: 0 0 28px; }
.nbc-404-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.nbc-404-actions .nbc-sub-back { margin: 0; }
.nbc-404-alt { background: transparent !important; color: #795D63 !important; border: 1px solid #795D63; }
.nbc-404-alt:hover { background: #795D63 !important; color: #fff !important; }

/* ============================================================
   Мобильная версия подстраниц (≤767px) — шапка как на главной:
   бургер/лого/трубка + строка «колл-центр». Ряд иконок-меню
   и юзер-иконка скрыты (навигация через бургер-панель).
   ============================================================ */
@media (max-width: 767px) {
    .nbc-subpage { padding-top: 60px; }
    .nbc-subpage .nbc-hero-menu-static { display: none; }
    .nbc-sub-heading { margin: 26px 0 24px; font-size: 16px; }
    .nbc-loc-facts { grid-template-columns: 1fr; gap: 12px; }
    .nbc-loc-map iframe { height: 340px; }
    .nbc-sub-text { font-size: 14px; }
    .nbc-sub-text p { text-align: left; }
    .nbc-sub-text h2 { font-size: 15px; margin: 26px 0 12px; }
    .nbc-sub-text table { font-size: 13px; }
    .nbc-sub-text td, .nbc-sub-text th { padding: 8px; }
    .nbc-404-code { font-size: 64px; margin-top: 24px; }
    .nbc-404-actions { flex-direction: column; align-items: center; }
}
