/* ============================================================
   КУДА ПОЙТИ + ЗАВЕДЕНИЕ — visit.css
   Префикс: vi- (список заведений), vn- (страница заведения)
   Зависит от: new_style.css
   ============================================================ */


/* ── Хиро ─────────────────────────────────────────────────── */
.vi-hero {
    position: relative;
    min-height: clamp(280px, 38vh, 480px);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--bg-deep);
}
.vi-hero__bg {
    position: absolute;
    inset: 0;
}
.vi-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.vi-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(17,20,15,.92) 0%,
        rgba(17,20,15,.55) 50%,
        rgba(17,20,15,.35) 100%
    );
}
.vi-hero__inner {
    position: relative;
    max-width: var(--container);
    margin: 0 auto;
    padding: 80px var(--pad-x) 56px;
    width: 100%;
}
.vi-hero__eyebrow {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--accent);
    opacity: .65;
    margin: 0 0 10px;
}
.vi-hero__h1 {
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    font-weight: 300;
    font-size: clamp(1.8rem, 3.5vw, 3.2rem);
    letter-spacing: -0.02em;
    color: var(--text);
    margin: 0 0 16px;
    line-height: 1.1;
}
.vi-hero__sub {
    font-size: .9rem;
    color: var(--muted);
    line-height: 1.65;
    max-width: 560px;
    margin: 0;
    opacity: .82;
}

@media (max-width: 768px) {
    .vi-hero { min-height: clamp(240px, 36vh, 360px); }
    .vi-hero__inner { padding: 72px 22px 40px; }
}


/* ── Интро-полоса ─────────────────────────────────────────── */
.vi-intro {
    background: var(--bg);
    border-bottom: 1px solid var(--line);
    padding: 14px 0;
}
.vi-intro__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.vi-intro__text {
    font-size: .81rem;
    color: var(--muted);
    opacity: .72;
    line-height: 1.6;
    margin: 0;
}
.vi-intro__text strong {
    color: var(--text);
    opacity: 1;
    font-weight: 500;
}

@media (max-width: 768px) {
    .vi-intro__inner { padding: 0 22px; }
}


/* ── Фильтры (sticky) ─────────────────────────────────────── */
.vi-filters-wrap {
    position: sticky;
    top: 72px;
    z-index: 90;
    background: var(--bg-deep);
    border-bottom: 1px solid var(--line);
}
.vi-filters {
    max-width: var(--container);
    margin: 0 auto;
    padding: 14px var(--pad-x);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.vi-filter-row {
    display: flex;
    gap: 6px;
    align-items: center;
}
.vi-filters__div {
    width: 100%;
    height: 1px;
    background: var(--line);
}

/* Чип-кнопка фильтра */
.vi-chip {
    flex-shrink: 0;
    padding: 5px 14px;
    border-radius: 20px;
    border: 1px solid var(--line);
    background: transparent;
    color: var(--muted);
    font-size: .72rem;
    letter-spacing: .04em;
    cursor: pointer;
    transition: color .2s, border-color .2s, background .2s;
    font-family: inherit;
    white-space: nowrap;
}
.vi-chip:hover {
    color: var(--text);
    border-color: rgba(247,244,238,.35);
}
.vi-chip.is-active {
    background: rgba(217,210,197,.1);
    border-color: rgba(217,210,197,.4);
    color: var(--text);
}

@media (max-width: 768px) {
    .vi-filters-wrap { top: 0; }
    .vi-filters { padding: 12px 22px; }
    .vi-filter-row {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        padding-bottom: 2px;
    }
    .vi-filter-row::-webkit-scrollbar { display: none; }
}


/* ── Секция карточек ──────────────────────────────────────── */
.vi-section {
    background: var(--bg-deep);
    padding: 52px 0 72px;
}
.vi-section__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.vi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

@media (max-width: 1100px) {
    .vi-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 600px) {
    .vi-section { padding: 36px 0 52px; }
    .vi-section__inner { padding: 0 22px; }
    .vi-grid { grid-template-columns: 1fr; gap: 16px; }
}


/* ── Карточка заведения ───────────────────────────────────── */
.vi-card {
    background: #F2EDE4;
    border-radius: 16px;
    overflow: hidden;
    cursor: pointer;
    transition: transform .2s;
    display: flex;
    flex-direction: column;
}
.vi-card:hover {
    transform: translateY(-2px);
}
.vi-card.is-hidden { display: none; }

/* Фото */
.vi-card__photo-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--bg);
    flex-shrink: 0;
}
.vi-card__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s ease;
}
.vi-card:hover .vi-card__photo { transform: scale(1.05); }

/* Бейджи поверх фото */
.vi-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.vi-cat-badge {
    padding: 4px 10px;
    border-radius: 3px;
    font-size: .6rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    background: rgba(17,20,15,.85);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(217,210,197,.2);
    font-weight: 500;
}
.vi-cat-badge--restaurant { color: #c8972f; }
.vi-cat-badge--cafe       { color: #c0a882; }
.vi-cat-badge--museum     { color: #7898c0; }
.vi-cat-badge--bath       { color: #6aafaa; }
.vi-cat-badge--bar        { color: #9a84b4; }
.vi-cat-badge--other      { color: #7aaa86; }

.vi-pick-badge {
    padding: 4px 10px;
    border-radius: 3px;
    font-size: .6rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    background: rgba(200,151,47,.18);
    border: 1px solid rgba(200,151,47,.38);
    color: #c8972f;
    font-weight: 500;
    backdrop-filter: blur(4px);
}

/* Тело карточки */
.vi-card__body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.vi-card__loc {
    font-size: .65rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(17,20,15,.48);
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.vi-card__loc svg { flex-shrink: 0; opacity: .7; }
.vi-card__name {
    font-size: .97rem;
    font-weight: 500;
    color: #1A1F1C;
    letter-spacing: -.01em;
    margin: 0 0 10px;
    line-height: 1.3;
}
.vi-card__name a {
    color: inherit;
    text-decoration: none;
}
.vi-card__desc {
    font-size: .83rem;
    color: rgba(17,20,15,.75);
    line-height: 1.65;
    margin: 0 0 12px;
}
.vi-card__comment {
    border-left: 2px solid rgba(17,20,15,.15);
    padding-left: 12px;
    margin-bottom: 14px;
}
.vi-card__comment-text {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: .9rem;
    color: rgba(17,20,15,.65);
    line-height: 1.6;
    margin: 0;
}
.vi-card__tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.vi-tag {
    font-size: .64rem;
    letter-spacing: .04em;
    color: rgba(17,20,15,.6);
    background: rgba(17,20,15,.06);
    border: 1px solid rgba(17,20,15,.12);
    border-radius: 3px;
    padding: 3px 8px;
}

/* Подвал карточки */
.vi-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid rgba(17,20,15,.1);
}
.vi-card__meta {
    display: flex;
    align-items: center;
    gap: 10px;
}
.vi-hours {
    font-size: .7rem;
    color: rgba(17,20,15,.52);
    display: flex;
    align-items: center;
    gap: 4px;
}
.vi-hours svg { stroke: rgba(17,20,15,.45); }
.vi-price {
    font-size: .76rem;
    font-weight: 500;
    color: #B8712A;
    letter-spacing: .04em;
}
.vi-price--budget { opacity: .7; }
.vi-price--mid    { opacity: .9; }
.vi-price--high   { opacity: 1; }
.vi-card__btn {
    display: inline-block;
    font-size: .68rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: rgba(17,20,15,.65);
    text-decoration: none;
    border-bottom: 1px dotted rgba(17,20,15,.3);
    padding-bottom: 1px;
    white-space: nowrap;
    flex-shrink: 0;
    transition: color .2s, border-color .2s;
}
.vi-card__btn:hover {
    color: #1A1F1C;
    border-bottom-color: rgba(17,20,15,.65);
}


/* ── Пустое состояние ─────────────────────────────────────── */
.vi-empty {
    display: none;
    text-align: center;
    padding: 80px 20px;
}
.vi-empty.is-visible { display: block; }
.vi-empty__icon {
    font-size: 2.5rem;
    margin-bottom: 16px;
    opacity: .35;
}
.vi-empty__title {
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--text);
    margin: 0 0 8px;
}
.vi-empty__text {
    font-size: .84rem;
    color: var(--muted);
    opacity: .55;
    margin: 0 0 24px;
}
.vi-empty__reset {
    padding: 10px 28px;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: transparent;
    color: var(--muted);
    font-size: .76rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    font-family: inherit;
    transition: border-color .2s, color .2s;
}
.vi-empty__reset:hover {
    border-color: rgba(247,244,238,.4);
    color: var(--text);
}


/* ── CTA-полоса снизу ─────────────────────────────────────── */
.vi-cta {
    background: #1d1b16;
    border-top: 1px solid var(--line);
    padding: 72px 0 68px;
}
.vi-cta__inner {
    max-width: 540px;
    margin: 0 auto;
    padding: 0 var(--pad-x);
    text-align: center;
}
.vi-cta__eyebrow {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .45;
    margin: 0 0 12px;
}
.vi-cta__h2 {
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    font-weight: 300;
    font-size: clamp(1.5rem, 2.8vw, 2.2rem);
    letter-spacing: -0.02em;
    color: var(--text);
    margin: 0 0 16px;
    line-height: 1.15;
}
.vi-cta__text {
    font-size: .87rem;
    color: var(--muted);
    line-height: 1.65;
    margin: 0 0 32px;
    opacity: .72;
}
.vi-cta__actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.vi-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    border-radius: 4px;
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    font-family: inherit;
    transition: opacity .2s, transform .15s;
}
.vi-cta__btn:hover { opacity: .85; transform: translateY(-1px); }
.vi-cta__btn svg { flex-shrink: 0; }
.vi-cta__btn--wa { background: #25d366; color: #fff; }
.vi-cta__btn--tg { background: #0088cc; color: #fff; }

@media (max-width: 768px) {
    .vi-cta { padding: 56px 0 52px; }
    .vi-cta__inner { padding: 0 22px; }
    .vi-cta__actions { flex-direction: column; align-items: stretch; }
    .vi-cta__btn { justify-content: center; }
}


/* ============================================================
   СТРАНИЦА ЗАВЕДЕНИЯ (vn-)
   ============================================================ */

/* ── Галерея заведения (Airbnb-стиль) ─────────────────────── */
.vn-gallery {
    background: var(--bg-deep);
}
.vn-gallery__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
    position: relative;
}
.vn-gallery__wrap {
    display: grid;
    grid-template-columns: 1.65fr 1fr;
    gap: 4px;
    height: clamp(300px, 38vw, 520px);
    overflow: hidden;
    border-radius: 0;
    position: relative;
}
/* Тёмный градиент сверху — читаемость меню */
.vn-gallery__wrap::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 150px;
    background: linear-gradient(to bottom, rgba(17,20,15,.62) 0%, transparent 100%);
    z-index: 3;
    pointer-events: none;
}
.vn-gallery__main,
.vn-gallery__thumb {
    overflow: hidden;
    background: var(--bg);
    cursor: pointer;
}
.vn-gallery__main img,
.vn-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s ease;
}
.vn-gallery__main:hover img,
.vn-gallery__thumb:hover img { transform: scale(1.04); }
.vn-gallery__side {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 4px;
}

/* «+N фото» — оверлей на последнем тумбнейле */
.vn-gallery__thumb--more { position: relative; cursor: pointer; }
.vn-gallery__more {
    position: absolute;
    inset: 0;
    background: rgba(17,20,15,.52);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s;
}
.vn-gallery__thumb--more:hover .vn-gallery__more { background: rgba(17,20,15,.32); }
.vn-gallery__more-label {
    font-size: 1.05rem;
    font-weight: 500;
    color: #fff;
    letter-spacing: -.01em;
    text-shadow: 0 1px 6px rgba(0,0,0,.5);
}

@media (max-width: 860px) {
    .vn-gallery__wrap {
        grid-template-columns: 1fr;
        height: clamp(220px, 56vw, 380px);
    }
    .vn-gallery__side { display: none; }
}
@media (max-width: 768px) {
    .vn-gallery__inner { padding: 0; }
}


/* ── Основной контент ─────────────────────────────────────── */
.vn-content-section {
    background: var(--bg);
    padding: 40px 0 80px;
}
.vn-content-section__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}

/* Хлебные крошки */
.vn-breadcrumb {
    font-size: .72rem;
    letter-spacing: .04em;
    color: var(--muted);
    opacity: .5;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}
.vn-breadcrumb a {
    color: inherit;
    text-decoration: none;
    transition: opacity .2s;
}
.vn-breadcrumb a:hover { opacity: 1; }
.vn-breadcrumb__sep { opacity: .5; }
.vn-breadcrumb__current { color: var(--text); opacity: .7; }

/* 2-колоночный layout */
.vn-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 56px;
    align-items: start;
}

@media (max-width: 1050px) {
    .vn-layout { grid-template-columns: 1fr 280px; gap: 36px; }
}
@media (max-width: 860px) {
    .vn-layout { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px) {
    .vn-content-section { padding: 32px 0 60px; }
    .vn-content-section__inner { padding: 0 22px; }
}


/* ── Главная колонка ──────────────────────────────────────── */

/* Мета-строка: категория / рекомендуем / адрес */
.vn-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}
.vn-type-badge {
    padding: 4px 12px;
    border-radius: 3px;
    font-size: .65rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    background: rgba(17,20,15,.85);
    border: 1px solid rgba(217,210,197,.2);
    font-weight: 500;
}
.vn-type-badge--restaurant { color: #c8972f; }
.vn-type-badge--cafe       { color: #c0a882; }
.vn-type-badge--museum     { color: #7898c0; }
.vn-type-badge--bath       { color: #6aafaa; }
.vn-type-badge--bar        { color: #9a84b4; }
.vn-type-badge--other      { color: #7aaa86; }

.vn-pick-badge {
    padding: 4px 12px;
    border-radius: 3px;
    font-size: .65rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    background: rgba(200,151,47,.12);
    border: 1px solid rgba(200,151,47,.35);
    color: #c8972f;
    font-weight: 500;
}
.vn-location {
    font-size: .72rem;
    color: var(--muted);
    opacity: .5;
    display: flex;
    align-items: center;
    gap: 5px;
}
.vn-location svg { opacity: .7; }

/* Важные флаги (халяль / без алкоголя / только наличные) */
.vn-flags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.vn-flag {
    padding: 5px 12px;
    border-radius: 4px;
    font-size: .7rem;
    letter-spacing: .04em;
    background: rgba(247,244,238,.05);
    border: 1px solid rgba(247,244,238,.12);
    color: var(--muted);
    opacity: .8;
}

/* Заголовок h1 */
.vn-h1 {
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    font-weight: 300;
    font-size: clamp(1.6rem, 3vw, 2.6rem);
    letter-spacing: -0.02em;
    color: var(--text);
    margin: 0 0 20px;
    line-height: 1.1;
}

/* Лид */
.vn-lead {
    font-size: .95rem;
    color: var(--muted);
    line-height: 1.72;
    margin: 0 0 28px;
    opacity: .88;
}

/* Комментарий редакции */
.vn-editor-comment {
    background: rgba(247,244,238,.03);
    border: 1px solid var(--line);
    border-left: 3px solid rgba(217,210,197,.3);
    border-radius: 0 6px 6px 0;
    padding: 18px 20px;
    margin-bottom: 24px;
    display: flex;
    gap: 14px;
}
.vn-editor-comment__icon {
    flex-shrink: 0;
    color: var(--accent);
    opacity: .5;
    margin-top: 2px;
}
.vn-editor-comment__label {
    font-size: .65rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .5;
    margin: 0 0 6px;
}
.vn-editor-comment__text {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 1rem;
    color: var(--muted);
    line-height: 1.65;
    margin: 0;
    opacity: .82;
}

/* Метка «Проверено» */
.vn-verified {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .68rem;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .45;
    margin-bottom: 28px;
}
.vn-verified svg { opacity: .7; color: #7aaa86; }

/* История места */
.vn-story {
    margin-bottom: 32px;
}
.vn-story__label {
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .45;
    margin: 0 0 10px;
}
.vn-story__text {
    font-size: .87rem;
    color: var(--muted);
    line-height: 1.72;
    margin: 0;
    opacity: .75;
}

/* Отзывы (полезное из отзывов) */
.vn-reviews {
    margin-bottom: 36px;
}
.vn-reviews__header {
    margin-bottom: 16px;
}
.vn-reviews__title {
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    font-weight: 400;
    font-size: 1.05rem;
    color: var(--text);
    margin: 0 0 4px;
    letter-spacing: -.01em;
}
.vn-reviews__subtitle {
    font-size: .78rem;
    color: var(--muted);
    opacity: .5;
    margin: 0;
}
.vn-reviews__grid {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
}
.vn-reviews__grid::-webkit-scrollbar { height: 3px; }
.vn-reviews__grid::-webkit-scrollbar-track { background: transparent; }
.vn-reviews__grid::-webkit-scrollbar-thumb { background: var(--line); border-radius: 2px; }
.vn-quote {
    flex: 0 0 220px;
    scroll-snap-align: start;
    padding: 14px 16px;
    border-radius: 6px;
    border: 1px solid var(--line);
}
.vn-quote--pro {
    border-left: 3px solid rgba(122,170,134,.5);
    background: rgba(122,170,134,.04);
}
.vn-quote--con {
    border-left: 3px solid rgba(200,151,47,.35);
    background: rgba(200,151,47,.03);
}
.vn-quote__text {
    font-size: .82rem;
    color: var(--muted);
    line-height: 1.62;
    margin: 0;
}
.vn-quote::before {
    display: block;
    font-size: .6rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: 7px;
}
.vn-quote--pro::before { color: #7aaa86; opacity: .7; content: '+ плюсы'; }
.vn-quote--con::before { color: #c8972f; opacity: .7; content: '− нюансы'; }

/* Особенности (теги) */
.vn-features {
    margin-bottom: 32px;
}
.vn-features__label {
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .45;
    margin: 0 0 12px;
}
.vn-features__list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.vn-feature-tag {
    font-size: .74rem;
    color: var(--muted);
    opacity: .65;
    background: rgba(247,244,238,.04);
    border: 1px solid rgba(247,244,238,.12);
    border-radius: 4px;
    padding: 5px 12px;
}

/* Описание */
.vn-desc {
    margin-bottom: 32px;
}
.vn-desc p {
    font-size: 0.95rem;
    color: var(--text);
    line-height: 1.75;
    margin: 0 0 14px;
}
.vn-desc p:last-child { margin-bottom: 0; }

/* Как добраться */
.vn-howto {
    margin-bottom: 32px;
}
.vn-howto__title {
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .45;
    margin: 0 0 10px;
}
.vn-howto__text {
    font-size: .87rem;
    color: var(--muted);
    line-height: 1.72;
    margin: 0;
    opacity: .75;
}

/* FAQ */
.vn-faq__title {
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    font-weight: 400;
    font-size: 1.05rem;
    color: var(--text);
    margin: 0 0 16px;
    letter-spacing: -.01em;
}
.vn-faq__item {
    border-bottom: 1px solid var(--line);
}
.vn-faq__item:first-of-type { border-top: 1px solid var(--line); }
.vn-faq__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 0;
    cursor: pointer;
    list-style: none;
    color: var(--text);
    font-size: .87rem;
    line-height: 1.4;
}
.vn-faq__question::-webkit-details-marker { display: none; }
.vn-faq__question span { flex: 1; }
.vn-faq__chevron {
    flex-shrink: 0;
    color: var(--muted);
    opacity: .4;
    transition: transform .25s;
}
.vn-faq__item[open] .vn-faq__chevron { transform: rotate(180deg); }
.vn-faq__answer {
    padding: 0 0 16px;
}
.vn-faq__answer p {
    font-size: .84rem;
    color: var(--muted);
    line-height: 1.68;
    margin: 0;
    opacity: .72;
}


/* ── Сайдбар ──────────────────────────────────────────────── */
.vn-layout__sidebar { position: sticky; top: 88px; }

.vn-info-card {
    background: var(--bg-deep);
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
}
.vn-info-card__section {
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}
.vn-info-card__section:last-child { border-bottom: none; }
.vn-info-card__label {
    font-size: .65rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
    opacity: .45;
    margin: 0 0 10px;
}

/* Таблица часов */
.vn-hours-table { display: flex; flex-direction: column; gap: 5px; }
.vn-hours-row {
    display: flex;
    justify-content: space-between;
    font-size: .82rem;
    color: var(--muted);
    opacity: .6;
}
.vn-hours-row.is-today {
    color: var(--text);
    opacity: 1;
    font-weight: 500;
}
.vn-hours-row__day { }
.vn-hours-row__time { }

/* Цены */
.vn-info-prices { list-style: none; margin: 0 0 6px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.vn-info-prices__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}
.vn-info-prices__row-label {
    font-size: .78rem;
    color: var(--muted);
    opacity: .6;
}
.vn-info-prices__row-value {
    font-size: .82rem;
    color: var(--text);
    font-weight: 500;
}
.vn-info-prices__note {
    font-size: .68rem;
    color: var(--muted);
    opacity: .4;
    margin: 0;
}

/* Адреса */
.vn-info-addresses { display: flex; flex-direction: column; gap: 16px; }
.vn-info-address {
    font-size: .8rem;
    color: var(--muted);
    opacity: .7;
    line-height: 1.5;
    margin: 0 0 8px;
}
.vn-info-map-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.vn-info-map-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .68rem;
    letter-spacing: .04em;
    color: var(--muted);
    opacity: .55;
    text-decoration: none;
    border-bottom: 1px dotted rgba(247,244,238,.25);
    padding-bottom: 1px;
    transition: opacity .2s;
}
.vn-info-map-link:hover { opacity: .9; }
.vn-info-map-link svg {
    width: 10px; height: 10px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}
.vn-info-map-link__rating {
    color: #c8972f;
    opacity: 1;
    font-weight: 500;
}

/* Телефон */
.vn-info-phone {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .92rem;
    color: var(--text);
    text-decoration: none;
    font-weight: 500;
    margin-bottom: 6px;
    transition: opacity .2s;
}
.vn-info-phone:hover { opacity: .75; }
.vn-info-phone svg { color: var(--accent); opacity: .7; }
.vn-info-phone-note {
    font-size: .7rem;
    color: var(--muted);
    opacity: .4;
    margin: 0;
}

/* CTA-кнопка в сайдбаре */
.vn-info-card__cta { padding: 16px 20px 20px; }
.vn-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 13px 20px;
    border-radius: 5px;
    text-decoration: none;
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-family: inherit;
    transition: opacity .2s, transform .15s;
}
.vn-cta-btn:hover { opacity: .88; transform: translateY(-1px); }
.vn-cta-btn svg { flex-shrink: 0; }
.vn-cta-btn--wa { background: #25d366; color: #fff; }

@media (max-width: 860px) {
    .vn-layout__sidebar { position: static; }
    .vn-info-card { margin-top: 8px; }
}


/* ── Блок обратной связи ──────────────────────────────────── */
.vn-feedback-section {
    background: var(--bg-deep);
    border-top: 1px solid var(--line);
    padding: 52px 0 48px;
}
.vn-feedback-section__inner {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.vn-feedback {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}
.vn-feedback__title {
    font-size: .95rem;
    font-weight: 500;
    color: var(--text);
    margin: 0 0 6px;
}
.vn-feedback__desc {
    font-size: .82rem;
    color: var(--muted);
    line-height: 1.65;
    margin: 0;
    max-width: 520px;
    opacity: .68;
}
.vn-feedback__btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 5px;
    background: #25d366;
    color: #fff;
    text-decoration: none;
    font-size: .78rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    font-family: inherit;
    transition: opacity .2s;
}
.vn-feedback__btn:hover { opacity: .88; }

@media (max-width: 768px) {
    .vn-feedback-section { padding: 40px 0 36px; }
    .vn-feedback-section__inner { padding: 0 22px; }
    .vn-feedback { flex-direction: column; align-items: flex-start; gap: 20px; }
    .vn-feedback__btn { width: 100%; justify-content: center; }
}
