/* ═══════════════════════════════════════════════════════════════════
   VELVET — дизайн «премиальный винный бархат».
   Последний слой стилей (подключается в конце <head> в basic.html), поэтому
   переопределяет style.css, theme-light.css и CSS отдельных страниц.

   Основа — токены ниже: тёмная тема (по умолчанию) и светлая «слоновая кость».
   Шрифты с кириллицей: заголовки — PF Din Display (плотный, сжатый),
   текст — Golos UI (см. fonts.css).
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. Токены ───────────────────────────────────────────────────── */
:root {
    --v-font-display: 'PF Din Display', 'Montserrat', 'Golos UI', system-ui, sans-serif;
    --v-font-text: 'Golos UI', 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;

    --v-radius: 18px;
    --v-radius-sm: 12px;
    --v-ease: cubic-bezier(.2, .7, .2, 1);

    /* шампанское золото */
    --v-gold-1: #f6e2b8;
    --v-gold-2: #dcb27a;
    --v-gold-3: #b5874f;
    --v-gold-grad: linear-gradient(180deg, var(--v-gold-1) 0%, var(--v-gold-2) 52%, var(--v-gold-3) 100%);
    --v-gold-line: linear-gradient(90deg, transparent, rgba(220, 178, 122, .75), transparent);

    --like: #ef4d73;
    --v-ornament: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='10'%20viewBox='0%200%20160%2010'%3E%3Cdefs%3E%3ClinearGradient%20id='l'%20x1='0'%20x2='1'%3E%3Cstop%20offset='0'%20stop-color='%23dcb27a'%20stop-opacity='0'/%3E%3Cstop%20offset='1'%20stop-color='%23dcb27a'/%3E%3C/linearGradient%3E%3ClinearGradient%20id='r'%20x1='0'%20x2='1'%3E%3Cstop%20offset='0'%20stop-color='%23dcb27a'/%3E%3Cstop%20offset='1'%20stop-color='%23dcb27a'%20stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect%20x='0'%20y='4.5'%20width='68'%20height='1'%20fill='url(%23l)'/%3E%3Crect%20x='92'%20y='4.5'%20width='68'%20height='1'%20fill='url(%23r)'/%3E%3Cpath%20d='M80%200.5%20L84.5%205%20L80%209.5%20L75.5%205%20Z'%20fill='none'%20stroke='%23e8c891'%20stroke-width='1'/%3E%3Ccircle%20cx='71.5'%20cy='5'%20r='1'%20fill='%23dcb27a'/%3E%3Ccircle%20cx='88.5'%20cy='5'%20r='1'%20fill='%23dcb27a'/%3E%3C/svg%3E");
}

/* тёмный бархат (по умолчанию) */
:root:not([data-theme="light"]) {
    --bg:          #1b0610;
    --bg-card:     #2b0b1a;
    --bg-raised:   #3a1226;
    --text:        #f5ebe3;
    --text-muted:  #c9a9ab;
    --gold:        #e3bf86;
    --gold-dim:    #b5874f;
    --border:      rgba(227, 191, 134, .16);
    --light-color: #f5ebe3;

    --v-panel: linear-gradient(165deg, rgba(255, 255, 255, .045) 0%, rgba(255, 255, 255, 0) 38%),
               linear-gradient(180deg, #2f0c1d 0%, #230816 100%);
    --v-panel-flat: #26091a;
    --v-field: rgba(12, 2, 7, .5);
    --v-shadow: 0 24px 60px -24px rgba(0, 0, 0, .85), 0 2px 0 rgba(255, 255, 255, .02) inset;
    --v-hair: rgba(227, 191, 134, .16);
    --v-hair-strong: rgba(227, 191, 134, .38);
    --v-on-gold: #2a0812;
}

/* светлая версия — слоновая кость с бордо */
[data-theme="light"] {
    --bg:          #f7efe9;
    --bg-card:     #fffaf6;
    --bg-raised:   #f1e3dc;
    --text:        #2a0b16;
    --text-muted:  #7d5a62;
    --gold:        #8a2a42;
    --gold-dim:    #6d1f33;
    --border:      rgba(110, 30, 52, .14);
    --light-color: #2a0b16;

    --v-gold-1: #b5894b;
    --v-gold-2: #94672f;
    --v-gold-3: #6f4a1e;
    --v-panel: #fffaf6;
    --v-panel-flat: #fffaf6;
    --v-field: #fff;
    --v-shadow: 0 18px 40px -22px rgba(80, 20, 40, .35);
    --v-hair: rgba(110, 30, 52, .14);
    --v-hair-strong: rgba(110, 30, 52, .32);
    --v-on-gold: #fff;
}

/* ── 2. Фон-бархат и база ───────────────────────────────────────── */
html { background: var(--bg); }
body {
    font-family: var(--v-font-text);
    color: var(--text);
    background:
        /* свечение по центру сверху и мягкая тень снизу — симметрично */
        radial-gradient(1300px 720px at 50% -12%, rgba(142, 27, 60, .55), transparent 64%),
        radial-gradient(1200px 900px at 50% 118%, rgba(70, 8, 30, .75), transparent 62%),
        var(--bg);
    background-attachment: fixed;
    -webkit-font-smoothing: antialiased;
    letter-spacing: .005em;
}
/* фактура ткани: мелкое зерно поверх всего, клики не перехватывает */
:root:not([data-theme="light"]) body::before {
    content: "";
    position: fixed; inset: 0; z-index: 2147483000;
    pointer-events: none;
    opacity: .055;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-theme="light"] body {
    background:
        radial-gradient(1300px 700px at 50% -12%, rgba(138, 42, 66, .12), transparent 62%),
        var(--bg);
}

a { color: var(--gold); transition: color .2s var(--v-ease); }
a:hover { color: var(--v-gold-1); }
[data-theme="light"] a:hover { color: var(--gold-dim); }
::selection { background: rgba(227, 191, 134, .35); color: #fff; }

/* заголовки: тонкий Montserrat с разрядкой */
h1, h2, h3, h4, h5, h6,
.catalog-heading h1, .section-catalog__title, .reg-title, .af-title, .rv-title,
.profile-name, .lk-header h1, .site-reviews__title, .latest-reviews__title, .faq-title {
    font-family: var(--v-font-display);
    font-weight: 400;
    letter-spacing: .02em;
    color: var(--text);
}
/* крупные заголовки страниц — золотое тиснение и орнамент «линия с ромбом» */
.main h1, .catalog-heading, .lk-title, .reg-title, .af-title, .rv-title,
.section-catalog__title, .ticket-header__title, .profile-name {
    font-family: var(--v-font-display) !important;
    font-weight: 400 !important;
    letter-spacing: .015em !important;
    line-height: 1.12 !important;
    background: var(--v-gold-grad);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent !important;
}
.main h1:not(.profile-name):not(.ticket-header__title), .catalog-heading, .lk-title, .reg-title, .af-title, .rv-title {
    font-size: clamp(1.9rem, 1.3rem + 1.9vw, 3rem) !important;
    margin-bottom: 26px !important;
    text-transform: none !important;
    text-align: center !important;
}
.main h1:not(.profile-name):not(.ticket-header__title)::after,
.catalog-heading::after, .lk-title::after, .reg-title::after, .af-title::after, .rv-title::after {
    content: "" !important;
    display: block !important; position: static !important;
    width: 160px !important; height: 10px !important; margin: 14px auto 0 !important;
    -webkit-text-fill-color: initial;
    background: var(--v-ornament) center / 160px 10px no-repeat !important;
    border: 0 !important; opacity: 1 !important;
}
.reg-container .reg-form { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.reg-title { text-align: center; }
.main h1.reg-title::after, .reg-title::after { margin-left: auto !important; margin-right: auto !important; background-position: center !important; }

/* SEO-тексты — спокойный текстовый блок, без панели (бывают пустыми) */
.seo-block, .seo-top-text, .seo-bottom-text {
    background: transparent !important; border: 0 !important; box-shadow: none !important;
    color: var(--text-muted); line-height: 1.8; font-size: .92rem;
}
.seo-block h2, .seo-block h3 { color: var(--text); font-size: 1.15rem; letter-spacing: .06em; margin: 1.4em 0 .6em; }

/* ── 3. Шапка ───────────────────────────────────────────────────── */
.header {
    background: linear-gradient(180deg, rgba(36, 7, 19, .94), rgba(28, 6, 15, .86)) !important;
    backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2);
    border-bottom: 1px solid var(--v-hair) !important;
    box-shadow: 0 10px 40px -20px rgba(0, 0, 0, .9) !important;
    position: sticky; top: 0; z-index: 1020;
}
.header::after { background: var(--v-gold-line) !important; opacity: .5 !important; }
[data-theme="light"] .header { background: rgba(255, 250, 246, .92) !important; }

.brand-logo {
    display: inline-flex; flex-direction: column; align-items: center;
    font-family: var(--v-font-display); font-weight: 400;
    font-size: 1.6rem; letter-spacing: .38em; text-transform: uppercase;
    padding: 6px 0 6px .42em;   /* компенсирует разрядку справа */
    background: var(--v-gold-grad);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    line-height: 1;
}
.brand-logo::before, .brand-logo::after {
    content: ""; display: block; height: 1px; width: 100%;
    background: var(--v-gold-line); margin: 5px 0;
}

.header .nav-link, .header a.nav-link {
    font-family: var(--v-font-display) !important;
    font-weight: 500 !important;
    font-size: .68rem !important;
    letter-spacing: .16em !important;
    text-transform: uppercase;
    color: rgba(245, 235, 227, .72) !important;
    position: relative;
}
[data-theme="light"] .header .nav-link { color: rgba(42, 11, 22, .72) !important; }
.header .nav-link::after {
    content: ""; position: absolute; left: 50%; right: 50%; bottom: 2px; height: 1px;
    background: var(--v-gold-grad); transition: left .25s var(--v-ease), right .25s var(--v-ease);
}
.header .nav-link:hover, .header .nav-link.active { color: var(--gold) !important; }
.header .nav-link:hover::after, .header .nav-link.active::after { left: 12%; right: 12%; }
.header .dropdown-menu {
    background: var(--v-panel-flat) !important;
    border: 1px solid var(--v-hair) !important;
    border-radius: var(--v-radius-sm) !important;
    box-shadow: var(--v-shadow) !important;
    padding: 6px !important;
}
.header .dropdown-item { border-radius: 8px; font-size: .82rem; color: var(--text-muted) !important; }
.header .dropdown-item:hover { background: rgba(227, 191, 134, .08) !important; color: var(--gold) !important; }
.theme-toggle, .navbar-toggler {
    border: 1px solid var(--v-hair-strong) !important;
    background: transparent !important;
    color: var(--gold) !important;
    border-radius: 50% !important;
}
.navbar-toggler { border-radius: 12px !important; }

.pwa-backbar { background: transparent; border: 0; }
.pwa-back { color: var(--text-muted); }

/* ── 4. Подвал ──────────────────────────────────────────────────── */
.footer {
    background: linear-gradient(180deg, rgba(14, 3, 8, .2), rgba(14, 3, 8, .85)) !important;
    border-top: 0 !important;
    color: var(--text-muted) !important;
    font-size: .8rem; letter-spacing: .02em; line-height: 1.8;
    padding: 56px 16px 40px !important;
    position: relative; text-align: center;
}
.footer::before {
    content: "" !important;
    position: absolute; left: 50%; top: 22px; transform: translateX(-50%);
    width: 160px; height: 10px;
    background: var(--v-ornament) center / 160px 10px no-repeat !important;
}
.footer a { color: var(--gold) !important; }
[data-theme="light"] .footer { background: linear-gradient(180deg, transparent, rgba(138, 42, 66, .06)) !important; }

/* ── 5. Кнопки ──────────────────────────────────────────────────── */
/* основная — золото шампанского */
.btn-primary, .reg-btn, .af-btn--gold, .lk-btn--gold, .phone-reveal-btn,
.review-submit-btn, .btn-submit-review, .filter-apply, .chat-send-btn, .ticket-action-btn--gold,
.site-msg__btn, .load-more-btn {
    background: var(--v-gold-grad) !important;
    color: var(--v-on-gold) !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-family: var(--v-font-display) !important;
    font-weight: 600 !important;
    font-size: .74rem !important;
    letter-spacing: .14em !important;
    text-transform: uppercase;
    padding: .85em 1.9em !important;
    box-shadow: 0 10px 26px -12px rgba(220, 178, 122, .75), inset 0 1px 0 rgba(255, 255, 255, .55) !important;
    transition: transform .2s var(--v-ease), filter .2s var(--v-ease), box-shadow .2s var(--v-ease) !important;
    text-decoration: none !important;
}
.btn-primary:hover, .reg-btn:hover, .af-btn--gold:hover, .lk-btn--gold:hover,
.phone-reveal-btn:hover, .review-submit-btn:hover, .btn-submit-review:hover, .filter-apply:hover,
.chat-send-btn:hover, .ticket-action-btn--gold:hover, .site-msg__btn:hover, .load-more-btn:hover {
    filter: brightness(1.07) saturate(1.05);
    transform: translateY(-1px);
    box-shadow: 0 16px 34px -12px rgba(220, 178, 122, .85), inset 0 1px 0 rgba(255, 255, 255, .6) !important;
}
/* второстепенная — золотой контур */
.af-btn--outline, .lk-btn--outline, .lk-btn--ghost, .ticket-action-btn, .ticket-back, .af-back,
.chat-attach-btn, .tag-badge, .badge-apt, .badge-vyezd {
    background: transparent !important;
    color: var(--gold) !important;
    border: 1px solid var(--v-hair-strong) !important;
    border-radius: 999px !important;
    font-family: var(--v-font-display);
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .68rem !important;
}
.af-btn--outline:hover, .lk-btn--outline:hover, .lk-btn--ghost:hover, .ticket-action-btn:hover,
.ticket-back:hover, .af-back:hover, .chat-attach-btn:hover {
    background: rgba(227, 191, 134, .08) !important; border-color: var(--gold) !important;
}
.tag-badge, .badge-apt, .badge-vyezd { padding: .45em 1.1em !important; }

.af-back, .ticket-back {
    display: inline-flex !important; align-items: center; gap: 6px;
    padding: .6em 1.25em !important; line-height: 1 !important; white-space: nowrap;
    width: auto !important; height: auto !important;
}
.af-back svg, .ticket-back svg { flex-shrink: 0; }

/* блок кнопок формы анкеты: без фона, только рамка */
.af-submit {
    background: transparent !important;
    border: 1px solid var(--v-hair) !important;
    border-radius: var(--v-radius) !important;
    box-shadow: none !important;
    padding: 16px 18px !important;
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
}

.af-submit .af-btn--outline {
    padding: .85em 1.9em !important; font-weight: 600 !important;
    font-size: .74rem !important; letter-spacing: .14em !important;
}

/* формы отзывов: внутренние отступы и шаг между полями
   (разметка с Bootstrap 5 «g-3», а подключён Bootstrap 4 — своих отступов нет) */
.review-form-wrap, .site-review-form-wrap { padding: 26px 28px 28px !important; }
.review-form-wrap .row > [class*="col"], .site-review-form-wrap .row > [class*="col"] { margin-bottom: 16px; }
.review-form-wrap .form-label-dark, .site-review-form-wrap label { display: block; margin-bottom: 8px; }
.review-form-wrap .review-form-title, .site-review-form__title { margin-bottom: 18px !important; }
.review-form-wrap .review-submit-btn, .site-review-form-wrap .review-submit-btn { margin-top: 4px; }

/* плашка баланса в шапке кабинета */
.lk-balance-card {
    padding: 10px 20px !important;
    border-radius: var(--v-radius-sm) !important;
    align-items: flex-start !important;
    gap: 2px; min-width: 120px;
}
.lk-balance-label { font-family: var(--v-font-display); letter-spacing: .16em !important; font-size: .64rem !important; }
.lk-balance-amount { font-size: 1.35rem !important; line-height: 1.1; white-space: nowrap; }
.lk-balance-big { padding: 6px 4px; }

/* фильтр по цене: поля «от» и «до» */
.price-form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 12px; }
.price-form__field { display: flex; align-items: center; gap: 8px; margin: 0; text-transform: none; letter-spacing: 0; }
.price-form__field span { color: var(--text-muted); font-size: .8rem; }
.price-form__field input { width: 120px; padding: 9px 12px !important; }
.price-form__unit { color: var(--text-muted); font-size: .8rem; }
.price-form .filter-apply { padding: .7em 1.6em !important; }
.price-form__reset { color: var(--text-muted); font-size: .8rem; text-decoration: underline; }
.price-form__reset:hover { color: var(--gold); }
.active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: -6px 0 18px; }
.active-filter {
    display: inline-flex; align-items: center; gap: 10px; padding: 6px 8px 6px 14px;
    border: 1px solid var(--v-hair-strong); border-radius: 999px; background: rgba(227, 191, 134, .08);
    color: var(--gold); font-size: .82rem;
}
.active-filter__x {
    display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px;
    border-radius: 50%; color: var(--gold); text-decoration: none; font-size: 1.1rem; line-height: 1;
    background: rgba(227, 191, 134, .14);
}
.active-filter__x:hover { background: var(--gold); color: var(--v-on-gold); }
.price-empty { text-align: center; color: var(--text-muted); padding: 30px 10px; }

/* мессенджеры: круг с золотым кольцом */
.msg-btn {
    border-radius: 50% !important;
    box-shadow: 0 0 0 1px var(--v-hair-strong), 0 8px 18px -8px rgba(0, 0, 0, .8) !important;
    background: var(--v-panel-flat) !important;
    transition: transform .2s var(--v-ease), box-shadow .2s;
}
.msg-btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--gold), 0 12px 24px -10px rgba(0, 0, 0, .9) !important; }

/* лайк — винный розовый */
.like-btn {
    background: rgba(20, 4, 10, .55) !important;
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .16) !important;
    color: #fff !important;
}
.like-btn:hover, .like-btn.liked, .anketa-card .like-btn:hover, .anketa-card .like-btn.liked {
    background: var(--like) !important; border-color: var(--like) !important; color: #fff !important;
}

/* ── 6. Поля ввода ──────────────────────────────────────────────── */
input[type="text"], input[type="email"], input[type="password"], input[type="number"],
input[type="tel"], input[type="url"], input[type="search"], input[type="time"], input[type="date"],
select, textarea,
.form-control, .form-control-dark, .form-select-dark, .lk-textarea {
    background-color: var(--v-field) !important;
    color: var(--text) !important;
    border: 1px solid var(--v-hair) !important;
    border-radius: var(--v-radius-sm) !important;
    font-family: var(--v-font-text) !important;
    transition: border-color .2s, box-shadow .2s, background-color .2s;
}
input::placeholder, textarea::placeholder { color: rgba(201, 169, 171, .55) !important; }
input:focus, select:focus, textarea:focus,
.form-control:focus, .form-control-dark:focus, .form-select-dark:focus {
    outline: none !important;
    border-color: rgba(227, 191, 134, .7) !important;
    box-shadow: 0 0 0 3px rgba(227, 191, 134, .14) !important;
}
select option { background: #26091a; color: #f5ebe3; }
[data-theme="light"] select option { background: #fff; color: #2a0b16; }
label, .form-label-dark, .reg-row label, .af-row label, .af-price-label {
    color: var(--text-muted);
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
    font-family: var(--v-font-display); font-weight: 500;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--v-gold-2); }
input[type="file"] { color: var(--text-muted); font-size: .82rem; }
input[type="file"]::file-selector-button {
    background: transparent; color: var(--gold);
    border: 1px solid var(--v-hair-strong); border-radius: 999px;
    padding: .5em 1.2em; margin-right: 12px; cursor: pointer;
    font-family: var(--v-font-display); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase;
}
input[type="file"]::file-selector-button:hover { background: rgba(227, 191, 134, .08); }

/* ── 7. Панели ──────────────────────────────────────────────────── */
.filter-accordion, .filter-toggle, .filter-body, .reg-container, .af-section, .lk-panel, .lk-balance-card,
.tickets-list, .ticket-form, .ticket-header, .chat-messages, .rv-card, .review-form-wrap,
.reviews-section, .services-section, .prices-section, .site-review-form-wrap, .site-review-card,
.latest-review-card, .lk-anketa-row, .accordion-item, .chars-table, .price-table, .map-wrap,
.lk-popup, .site-msg, .detail-contacts-hidden, .af-upload-zone {
    background: var(--v-panel) !important;
    border: 1px solid var(--v-hair) !important;
    border-radius: var(--v-radius) !important;
    box-shadow: var(--v-shadow) !important;
}
.ticket-form, .debit-form, .rv-card, .site-review-card, .latest-review-card { padding: 24px 26px !important; }
.af-upload-zone { border-style: dashed !important; border-color: var(--v-hair-strong) !important; }
.af-section-title, .section-title, .services-title, .reviews-title, .review-form-title,
.filter-group-label, .filter-toggle-label, .site-review-form__title, .lk-panel h2, .lk-panel h3 {
    font-family: var(--v-font-display) !important;
    font-weight: 500 !important;
    font-size: .72rem !important;
    letter-spacing: .2em !important;
    text-transform: uppercase;
    color: var(--gold) !important;
}

/* таблицы: характеристики и цены */
.chars-table td, .chars-table th, .price-table td, .price-table th,
.spec-row, .lk-anketa-stats td, .lk-anketa-stats th {
    border-color: var(--v-hair) !important;
    background: transparent !important;
}
.price-table th, .chars-table th {
    font-family: var(--v-font-display); font-weight: 500;
    font-size: .66rem; letter-spacing: .16em; text-transform: uppercase;
    color: var(--gold) !important;
}
.price-val, .price-amount, .lk-balance-amount, .lk-balance-big__amount {
    color: var(--gold) !important;
    font-family: var(--v-font-display); font-weight: 500;
}

/* FAQ-аккордеон */
.accordion-button {
    background: transparent !important; color: var(--text) !important;
    font-family: var(--v-font-display); font-weight: 400; letter-spacing: .03em;
    box-shadow: none !important;
}
.accordion-button:not(.collapsed) { color: var(--gold) !important; }
.accordion-body { color: var(--text-muted); line-height: 1.75; }
.accordion-item { margin-bottom: 12px; overflow: hidden; }

/* сообщения сайта (модальное окно) */
.site-msg-overlay { background: rgba(10, 2, 6, .7) !important; backdrop-filter: blur(6px); }
.site-msg__title { font-family: var(--v-font-display); letter-spacing: .1em; }

/* ── 8. Каталог ─────────────────────────────────────────────────── */
.anketa-grid { gap: 22px; }
.anketa-card {
    background: var(--v-panel) !important;
    border: 1px solid var(--v-hair) !important;
    border-radius: var(--v-radius) !important;
    box-shadow: var(--v-shadow) !important;
    overflow: hidden;
    transition: transform .35s var(--v-ease), box-shadow .35s var(--v-ease), border-color .35s !important;
}
.anketa-card:hover {
    transform: translateY(-6px) !important;
    border-color: rgba(227, 191, 134, .45) !important;
    box-shadow: 0 34px 70px -28px rgba(0, 0, 0, .95), 0 0 0 1px rgba(227, 191, 134, .12) !important;
}
.anketa-card__img-wrap { position: relative; }
/* мягкая винная виньетка снизу фото */
.anketa-card__img-wrap::after {
    content: ""; position: absolute; inset: auto 0 0 0; height: 38%;
    background: linear-gradient(180deg, transparent, rgba(27, 6, 16, .78));
    pointer-events: none;
}
.anketa-card__img-wrap img { transition: transform .8s var(--v-ease) !important; }
.anketa-card:hover .anketa-card__img-wrap img { transform: scale(1.045) !important; }
.anketa-card__body { padding: 14px 16px 16px !important; }
.anketa-card__name {
    font-family: var(--v-font-display) !important;
    font-weight: 500 !important; font-size: 1rem !important;
    letter-spacing: .08em; text-transform: uppercase; color: var(--text) !important;
}
.anketa-card__age { color: var(--text-muted) !important; font-size: .78rem !important; }
.anketa-card__price .price-amount { font-size: 1.05rem !important; }
.param-chip {
    background: rgba(227, 191, 134, .06) !important;
    border: 1px solid var(--v-hair) !important;
    border-radius: 999px !important; padding: 3px 10px !important;
}
.anketa-card__params { border-top-color: var(--v-hair) !important; }
.anketa-card--vip {
    border-color: rgba(227, 191, 134, .55) !important;
    box-shadow: 0 0 0 1px rgba(227, 191, 134, .25) inset, 0 24px 60px -24px rgba(142, 27, 60, .9) !important;
}
.card-vip-badge, .card-badge-vip, .lk-badge-vip {
    background: var(--v-gold-grad) !important; color: var(--v-on-gold) !important;
    border: 0 !important; letter-spacing: .14em;
}

/* фильтр */
.filter-toggle { padding: 16px 20px !important; }
.filter-chip {
    border: 1px solid var(--v-hair) !important; border-radius: 999px !important;
    background: transparent !important; color: var(--text-muted) !important;
}
.filter-chip:hover, .filter-chip.active, .filter-chip input:checked + span {
    border-color: var(--gold) !important; color: var(--gold) !important;
    background: rgba(227, 191, 134, .08) !important;
}

/* постраничная навигация */
.catalog-pagination .page-link {
    background: transparent !important; border: 1px solid var(--v-hair) !important;
    border-radius: 999px !important; color: var(--text-muted) !important;
    font-family: var(--v-font-display);
}
.catalog-pagination .page-item.active .page-link {
    background: var(--v-gold-grad) !important; color: var(--v-on-gold) !important; border-color: transparent !important;
}

/* сториз: кольцо — бархатный градиент */
.stories-ring { background: conic-gradient(from 200deg, #f6e2b8, #dcb27a, #ef4d73, #8e1b3c, #f6e2b8) !important; }

/* ── 9. Страница анкеты ─────────────────────────────────────────── */
.m-gallery { display: none; }
.photo-stage { position: relative; }
.update-date { color: var(--text-muted) !important; font-size: .72rem; letter-spacing: .06em; }
.profile-num { color: var(--text-muted) !important; letter-spacing: .2em; font-size: .72rem; }
.profile-desc { color: var(--text-muted) !important; font-style: normal !important; line-height: 1.75; font-size: .95rem; }
.main-photo-wrap {
    border-radius: 22px !important;
    border: 1px solid var(--v-hair);
    box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .95), 0 0 0 1px rgba(227, 191, 134, .08) !important;
}
.thumbs-list a { border-radius: 12px !important; border: 1px solid var(--v-hair) !important; opacity: .8; transition: opacity .2s, border-color .2s; }
.thumbs-list a:hover, .thumbs-list a.active { opacity: 1; border-color: var(--gold) !important; }
.photo-count-badge {
    background: rgba(20, 4, 10, .6) !important; backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px !important;
}
.char-label, .row-lbl, .spec-label { color: var(--text-muted) !important; font-size: .78rem; }
.char-value, .spec-value { color: var(--text) !important; font-weight: 500; }
.detail-inactive-banner {
    background: linear-gradient(90deg, rgba(142, 27, 60, .25), rgba(142, 27, 60, .12)) !important;
    border: 1px solid rgba(239, 77, 115, .3) !important; border-radius: var(--v-radius-sm) !important;
    color: #f5b6c6 !important;
}

@media (min-width: 768px) {
    .gallery-col { align-self: flex-start; position: sticky; top: 92px; }
    .main-photo-wrap img { aspect-ratio: 3 / 4; object-fit: cover; }
    /* дополнительные фото — лента под главным, листается колесом, свайпом и стрелками */
    .main-photo-area { flex-direction: column; align-items: stretch !important; gap: 14px !important; padding-left: 0 !important; }
    .thumbs-carousel { position: relative; }
    .thumbs-list {
        position: static !important; width: auto !important; height: auto !important;
        display: flex !important; flex-direction: row !important; gap: 10px !important;
        overflow-x: auto !important; overflow-y: hidden;
        scroll-snap-type: x mandatory; scroll-behavior: smooth;
        scrollbar-width: none; padding: 2px;
    }
    .thumbs-list::-webkit-scrollbar { display: none; }
    .thumbs-list a {
        flex: 0 0 calc((100% - 30px) / 4) !important; max-height: none !important;
        aspect-ratio: 3 / 4; scroll-snap-align: start;
    }
    .thumbs-list img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .thumbs-list a:nth-child(n+5) { display: block !important; }   /* style.css прятал их на планшете */
    .thumbs-nav {
        position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
        width: 38px; height: 38px; border-radius: 50%;
        display: flex; align-items: center; justify-content: center;
        background: rgba(20, 4, 10, .72); color: var(--gold);
        border: 1px solid var(--v-hair-strong); cursor: pointer;
        backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
        transition: background .2s, opacity .2s;
    }
    .thumbs-nav[hidden] { display: none; }
    .thumbs-nav:hover { background: rgba(42, 8, 20, .9); border-color: var(--gold); }
    .thumbs-nav:disabled { opacity: .35; cursor: default; }
    .thumbs-nav--prev { left: -12px; }
    .thumbs-nav--next { right: -12px; }
    .profile-name { font-size: 3rem !important; letter-spacing: .04em !important; }
}
@media (min-width: 1200px) {
    /* главное фото + лента миниатюр помещаются в экран: колонка с фото «прилипает» при прокрутке */
    .main-photo-wrap img { max-height: max(380px, calc(100vh - 320px)); width: 100%; }
}

/* карты Leaflet: тайлы приглушены в винный тон, элементы управления — бархат */
:root:not([data-theme="light"]) .leaflet-tile-pane {
    filter: grayscale(.7) sepia(.2) hue-rotate(-38deg) saturate(1.2) brightness(.78) contrast(1.05);
}
.leaflet-container { background: #1b0610 !important; border-radius: var(--v-radius); font-family: var(--v-font-text) !important; }
.leaflet-bar a, .leaflet-bar a:hover {
    background: var(--v-panel-flat) !important; color: var(--gold) !important;
    border-bottom-color: var(--v-hair) !important;
}
.leaflet-bar { border: 1px solid var(--v-hair-strong) !important; border-radius: 10px !important; overflow: hidden; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip {
    background: var(--v-panel-flat) !important; color: var(--text) !important;
    border: 1px solid var(--v-hair); box-shadow: var(--v-shadow) !important;
}
.leaflet-control-attribution { background: rgba(27, 6, 16, .7) !important; color: var(--text-muted) !important; }
.leaflet-control-attribution a { color: var(--gold) !important; }
.marker-cluster-small, .marker-cluster-medium, .marker-cluster-large { background: rgba(227, 191, 134, .3) !important; }
.marker-cluster-small div, .marker-cluster-medium div, .marker-cluster-large div {
    background: var(--v-gold-grad) !important; color: var(--v-on-gold) !important; font-weight: 600;
}
.map-wrap { overflow: hidden; padding: 0 !important; }

/* ── 10. Кабинет ─────────────────────────────────────────────────── */
.lk-tab {
    font-family: var(--v-font-display); letter-spacing: .12em; text-transform: uppercase; font-size: .7rem;
    color: var(--text-muted) !important; border-color: var(--v-hair) !important; background: transparent !important;
}
.lk-tab.active, .lk-tab:hover { color: var(--gold) !important; border-bottom-color: var(--gold) !important; }
.lk-anketa-row { margin-bottom: 14px; }
.lk-anketa-name { font-family: var(--v-font-display); letter-spacing: .06em; color: var(--text) !important; }
.lk-anketa-photo, .lk-anketa-photo img { border-radius: 12px !important; }
.lk-btn {
    border-radius: 999px !important;
    font-family: var(--v-font-display); letter-spacing: .08em; font-size: .66rem !important;
    text-transform: uppercase;
}
.lk-btn--green { background: linear-gradient(180deg, #2f8a63, #1d5c41) !important; border: 0 !important; color: #fff !important; }
.lk-btn--danger { background: linear-gradient(180deg, #a3263f, #7a1a2d) !important; border: 0 !important; color: #fff !important; }
.lk-btn--top { background: linear-gradient(180deg, #ef5a7e, #b8264a) !important; border: 0 !important; color: #fff !important;
    box-shadow: 0 8px 20px -10px rgba(239, 77, 115, .8) !important; }
.lk-btn--vip { background: var(--v-gold-grad) !important; border: 0 !important; color: var(--v-on-gold) !important; }
.lk-btn--vip:disabled { background: transparent !important; color: var(--text-muted) !important; border: 1px solid var(--v-hair) !important; }
.owner-btns a, .owner-btns .btn, .owner-row a {
    border: 1px solid var(--v-hair-strong) !important; border-radius: 999px !important;
    background: transparent !important; color: var(--gold) !important;
    font-family: var(--v-font-display); font-size: .66rem !important; letter-spacing: .12em; text-transform: uppercase;
    padding: .5em 1.2em !important;
}
.lk-btn--edit { background: rgba(227, 191, 134, .1) !important; border: 1px solid var(--v-hair-strong) !important; color: var(--gold) !important; }
.lk-badge { border-radius: 999px !important; letter-spacing: .08em; }
.lk-status-dot { box-shadow: 0 0 0 3px rgba(227, 191, 134, .12); }

/* ── 11. Формы входа, регистрации, анкеты ───────────────────────── */
.reg-container {
    max-width: 460px !important;
    padding: 40px 36px !important;
    margin-top: 40px !important; margin-bottom: 40px !important;
}
.reg-title { text-align: center; font-size: 1.8rem !important; letter-spacing: .1em !important; }
.reg-btn { width: 100%; padding: 1em !important; margin-top: 8px; }
.reg-note, .reg-note a { color: var(--text-muted); font-size: .82rem; }
.reg-note a { color: var(--gold); }
.af-section { padding: 26px 26px !important; margin-bottom: 18px !important; }
.af-title { font-size: 1.9rem !important; letter-spacing: .06em !important; }
.af-photo-card { border-radius: 14px !important; border: 1px solid var(--v-hair) !important; overflow: hidden; }
.af-photo-card--main { border-color: var(--gold) !important; box-shadow: 0 0 0 1px var(--gold) !important; }

/* ── 12. Тикеты и отзывы ────────────────────────────────────────── */
.ticket-row { border-bottom: 1px solid var(--v-hair) !important; transition: background .2s; }
.ticket-row:hover { background: rgba(227, 191, 134, .05) !important; }
.chat-msg__bubble { border-radius: 16px !important; border: 1px solid var(--v-hair) !important; }
.chat-msg--user .chat-msg__bubble { background: rgba(142, 27, 60, .35) !important; }
.chat-msg--staff .chat-msg__bubble { background: rgba(227, 191, 134, .08) !important; }
.ticket-status { border-radius: 999px !important; letter-spacing: .08em; }
.rv-stars, .review-stars, .latest-review-card__stars, .site-review-card__stars, .star { color: var(--v-gold-2) !important; }

/* ── 13. Мобильная версия ───────────────────────────────────────── */
@media (max-width: 767.98px) {
    .header { position: sticky; }
    .brand-logo { font-size: 1.05rem; letter-spacing: .36em; }

    /* страница анкеты: фото во всю ширину, листается свайпом */
    .main-photo-area { display: none; }
    .gallery-col { padding-left: 0; padding-right: 0; }
    .m-gallery { display: block; position: relative; background: var(--bg-card); }
    .m-gallery__track {
        display: flex; overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
    }
    .m-gallery__track::-webkit-scrollbar { display: none; }
    .m-gallery__slide {
        flex: 0 0 100%; scroll-snap-align: center; scroll-snap-stop: always;
        aspect-ratio: 4 / 5; display: block; overflow: hidden; position: relative;
    }
    .m-gallery__slide::after {
        content: ""; position: absolute; inset: auto 0 0 0; height: 30%;
        background: linear-gradient(180deg, transparent, rgba(27, 6, 16, .7)); pointer-events: none;
    }
    .m-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .m-gallery__counter {
        position: absolute; top: 12px; right: 12px; z-index: 2;
        background: rgba(20, 4, 10, .6); color: #fff;
        font-family: var(--v-font-display); font-size: .7rem; font-weight: 500; letter-spacing: .12em;
        padding: 4px 11px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .14);
        backdrop-filter: blur(8px);
    }
    .m-gallery__dots {
        position: absolute; left: 0; right: 0; bottom: 14px; z-index: 2;
        display: flex; justify-content: center; gap: 6px; pointer-events: none;
    }
    .m-gallery__dots span {
        width: 6px; height: 6px; border-radius: 50%;
        background: rgba(255, 255, 255, .45); transition: background .2s, transform .2s, width .2s;
    }
    .m-gallery__dots span.on { background: var(--v-gold-1); width: 18px; border-radius: 3px; }
    .m-gallery .like-btn { top: auto; bottom: 10px; right: 12px; z-index: 2; }
    .photo-stage .stories-badge { top: 12px; left: 12px; }

    .info-col { margin-top: 18px; }
    .profile-name { font-size: 2rem !important; }
    .phone-row { flex-wrap: wrap; }
    .phone-reveal-wrap { flex: 1 1 100%; }
    .phone-reveal-btn, .phone-link { width: 100%; justify-content: center; }

    /* каталог: лента, как в Instagram */
    .anketa-grid { grid-template-columns: 1fr; gap: 0; margin: 0 -15px; }
    .anketa-card {
        border-radius: 0 !important; border-left: 0 !important; border-right: 0 !important;
        border-top: 0 !important; border-bottom: 1px solid var(--v-hair) !important;
        background: transparent !important; box-shadow: none !important;
        padding-bottom: 8px;
    }
    .anketa-card:hover { transform: none !important; box-shadow: none !important; }
    .anketa-card:hover .anketa-card__img-wrap img { transform: none !important; }
    .anketa-card--vip { box-shadow: none !important; }
    .anketa-card__head { display: flex; align-items: center; gap: 12px; padding: 12px 16px; }
    .anketa-card__avatar {
        flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; padding: 2px;
        background: conic-gradient(from 200deg, #f6e2b8, #dcb27a, #ef4d73, #8e1b3c, #f6e2b8);
    }
    .anketa-card__avatar img {
        width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block;
        border: 2px solid var(--bg);
    }
    .anketa-card__who { flex: 1; min-width: 0; line-height: 1.25; }
    .anketa-card__who-name {
        display: block; color: var(--text); text-decoration: none;
        font-family: var(--v-font-display); font-weight: 500; font-size: .9rem;
        letter-spacing: .08em; text-transform: uppercase;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .anketa-card__who-sub { display: block; color: var(--text-muted); font-size: .76rem; }
    .anketa-card__who-price { color: var(--gold); font-family: var(--v-font-display); font-weight: 500; font-size: .95rem; white-space: nowrap; }
    .anketa-card__who-price small { color: var(--text-muted); font-weight: 400; font-size: .7rem; margin-left: 2px; }
    .anketa-card__img-wrap { aspect-ratio: 4 / 5; }
    .anketa-card .like-btn { top: auto; bottom: 12px; right: 14px; padding: 6px 13px; font-size: .85rem; z-index: 2; }
    .card-status-badges { bottom: 12px; right: auto; left: 14px; flex-direction: row; z-index: 2; }
    .anketa-card__body { padding: 10px 16px 6px !important; }
    .anketa-card__name, .anketa-card__metro, .anketa-card__price { display: none !important; }
    .anketa-card__age { font-size: .84rem !important; margin-bottom: 8px; color: var(--text) !important; }
    .anketa-card__params { border-top: 0 !important; padding-top: 0 !important; }

    .reg-container { padding: 30px 22px !important; margin: 24px 4px !important; }
    .af-section { padding: 20px 16px !important; }

    /* нижняя навигация */
    body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
    .tabbar {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
        display: flex; justify-content: space-around;
        padding: 7px 4px calc(7px + env(safe-area-inset-bottom));
        background: rgba(27, 6, 16, .9);
        backdrop-filter: blur(18px) saturate(1.3); -webkit-backdrop-filter: blur(18px) saturate(1.3);
        border-top: 1px solid var(--v-hair);
    }
    [data-theme="light"] .tabbar { background: rgba(255, 250, 246, .94); }
    .tabbar a {
        flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
        padding: 4px 0; color: var(--text-muted); text-decoration: none;
        font-family: var(--v-font-display); font-size: .58rem; font-weight: 500;
        letter-spacing: .1em; text-transform: uppercase;
    }
    .tabbar a svg { width: 23px; height: 23px; stroke-width: 1.5; }
    .tabbar a.on { color: var(--gold); }
    .tabbar a.on svg { fill: currentColor; fill-opacity: .14; }
    .pwa-install, #pwaInstall { bottom: calc(76px + env(safe-area-inset-bottom)); }
}
@media (min-width: 768px) {
    .tabbar, .anketa-card__head { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .anketa-card, .anketa-card__img-wrap img, .btn-primary, .reg-btn { transition: none !important; }
    .anketa-card:hover { transform: none !important; }
}
