/* ══════ ТЕСТОВЫЕ СТРАНИЦЫ НОВЫХ НИШ ══════
   Оболочка и форма — стили /расчет/ (style.css, calc3.css, body.page-calc3).
   Здесь — только то, чего на /расчет/ нет: карты и таблицы каждой системы
   (подача как у лидеров ниш, niches/COMPETITORS.md), гармошка расшифровки,
   цена, разбор после оплаты.
   Карты рисуются на светлой «бумаге»: на тёмном фоне сайта мелкие градусы и
   номера ворот иначе не читаются. Кнопки на золотом — тёмный текст (js-rules §9).
   Никаких backdrop-filter (js-rules §10). */

.nq-hidden { display: none !important; }
.niche-page .main { max-width: 980px; }

/* ── Форма: у нумерологии, психологии, матрицы полей мало — растягиваем ── */
.niche-page .form-card { max-width: 820px; }
.niche-page[data-niche="matrix"] .form-inline-row > #grp-name,
.niche-page[data-niche="numerology"] .form-inline-row > #grp-name,
.niche-page[data-niche="numerology_date"] .form-inline-row > #grp-name,
.niche-page[data-niche="psychology"] .form-inline-row > #grp-name { flex: 1 1 auto; }
.niche-page[data-niche="matrix"] .form-inline-row > #grp-date,
.niche-page[data-niche="numerology"] .form-inline-row > #grp-date,
.niche-page[data-niche="numerology_date"] .form-inline-row > #grp-date,
.niche-page[data-niche="psychology"] .form-inline-row > #grp-date { flex: 0 0 200px; }
.niche-page .form-group.has-error .form-input { border-color: #e0806a !important; }
/* Кнопка расчёта: длинная надпись («Рассчитать квадрат Пифагора») на телефоне не помещалась в строку,
   перенос запрещал style.css — текст уезжал вправо, поля слева и справа выходили разными (владелец, 17.09.2026). */
.niche-page .btn-calculate {
    display: flex; align-items: center; justify-content: center; gap: .5rem;
    white-space: normal; text-wrap: balance; line-height: 1.3; text-align: center;
}
.niche-page .btn-calculate .btn-spinner { margin-right: 0; flex: 0 0 auto; }
@media (max-width: 768px) {
    .niche-page.page-calc3 .btn-calculate { padding: .9rem 1rem; font-size: .88rem; letter-spacing: .04em; min-height: 3.1rem; }
}
.nq-unknown { margin-top: .6rem; }
.nq-note {
    margin: .5rem 0 0; padding: .7rem .9rem; font-size: .84rem; line-height: 1.5;
    background: rgba(212,165,74,.08); border: 1px solid rgba(212,165,74,.25); border-radius: 8px; color: var(--cream);
}
.nq-note a { color: var(--gold); }
#nqFormErr { margin-top: .6rem; color: #f0a08a; font-size: .85rem; text-align: center; }

/* ── Результат: шапка ── */
#nqResult, #nqPaid { margin-top: 2.2rem; }
.nq-h2 {
    font-family: 'Cormorant Garamond', serif; font-weight: 500; color: var(--cream);
    font-size: clamp(1.6rem, 3.4vw, 2.2rem); margin: 0 0 .3rem; text-align: center;
}
.nq-h3 { font-family: 'Nunito Sans', sans-serif; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin: 1.6rem 0 .6rem; font-weight: 700; }
.nq-h3 span { text-transform: none; letter-spacing: 0; color: var(--text-muted); font-weight: 400; }
.nq-who { text-align: center; color: var(--text-muted); font-size: .9rem; margin-bottom: 1.4rem; }

/* плитки чисел */
.nq-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; margin: 1.2rem 0; }
.nq-tile { background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.14); border-radius: 10px; padding: .8rem .9rem; }
.nq-tile__v { font-family: 'Cormorant Garamond', serif; font-size: 1.9rem; line-height: 1; color: var(--gold); }
.nq-tile__t { font-size: .8rem; color: var(--cream); margin-top: .35rem; font-weight: 600; }
.nq-tile__s { font-size: .76rem; color: var(--text-muted); margin-top: .15rem; }
.nq-tile--gold { background: rgba(212,165,74,.12); border-color: rgba(212,165,74,.4); }

/* ── Нумерология: цепочка и таблица 4×4 ── */
.nq-chain { text-align: center; font-size: 1.05rem; color: var(--cream); margin-bottom: 1rem; }
.nq-chain b { color: var(--gold); font-weight: 700; }
.nq-chain span { display: block; font-size: .72rem; color: var(--text-muted); letter-spacing: .06em; text-transform: uppercase; margin-top: .2rem; }
.nq-psq-wrap { overflow-x: auto; }
.nq-psq { width: 100%; max-width: 640px; margin: 0 auto; border-collapse: separate; border-spacing: 6px; table-layout: fixed; }
.nq-psq td { border-radius: 10px; text-align: center; padding: .8rem .3rem; vertical-align: middle; }
.nq-psq__cell { background: #fbf6ec; }
.nq-psq__cell.is-empty { background: rgba(255,255,255,.05); border: 1px dashed rgba(251,246,236,.25); }
.nq-psq__cell.is-empty .nq-psq__n { color: rgba(251,246,236,.45); }
.nq-psq__cell.is-empty .nq-psq__l { color: rgba(251,246,236,.7); }
.nq-psq__cell.is-strong { background: #f3e2bb; }
.nq-psq__line { background: rgba(212,165,74,.12); border: 1px solid rgba(212,165,74,.3); }
.nq-psq__n { display: block; font-size: 1.35rem; font-weight: 700; color: #2b2218; letter-spacing: .04em; min-height: 1.6rem; word-break: break-all; }
.nq-psq__l { display: block; font-size: .7rem; color: #6b5a3e; margin-top: .2rem; line-height: 1.2; }
.nq-psq__line .nq-psq__n { color: var(--gold); }
.nq-psq__line .nq-psq__l { color: var(--text-soft, #c8b898); }
.nq-psq__add .nq-psq__n { font-size: 1.05rem; }

/* ── Цифровая психология ── */
.nq-codes { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin-bottom: 1.2rem; }
.nq-code { text-align: center; background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.18); border-radius: 12px; padding: 1rem .6rem; }
.nq-code--main { background: rgba(212,165,74,.12); border-color: rgba(212,165,74,.45); }
.nq-code__v { font-family: 'Cormorant Garamond', serif; font-size: 3.2rem; line-height: 1; color: var(--gold); }
.nq-code__t { font-size: .85rem; font-weight: 700; color: var(--cream); margin-top: .3rem; }
.nq-code__s { font-size: .74rem; color: var(--text-muted); margin-top: .2rem; }
.nq-dm { display: grid; grid-template-columns: minmax(0, 360px) 1fr; gap: 1.2rem; align-items: start; }
.nq-dm__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.nq-dm__cell { background: #fbf6ec; border-radius: 10px; text-align: center; padding: .9rem .3rem; }
.nq-dm__cell.is-empty { background: rgba(255,255,255,.05); border: 1px dashed rgba(251,246,236,.25); }
.nq-dm__cell.is-empty .nq-dm__l { color: rgba(251,246,236,.7); }
.nq-dm__n { display: block; font-size: 1.4rem; font-weight: 700; color: #2b2218; word-break: break-all; }
.nq-dm__cell.is-empty .nq-dm__n { color: rgba(251,246,236,.45); }
.nq-dm__l { display: block; font-size: .68rem; color: #6b5a3e; margin-top: .2rem; line-height: 1.2; }
.nq-dm__line { display: flex; gap: .5rem; align-items: baseline; padding: .55rem .8rem; border-radius: 8px; margin-bottom: .45rem; background: rgba(255,255,255,.035); color: var(--cream); font-size: .88rem; }
.nq-dm__line b { color: var(--gold); }
.nq-dm__line span { margin-left: auto; font-size: .75rem; color: var(--text-muted); }
.nq-dm__line.is-full span { color: #8fd19e; }
.nq-dm__miss { margin-top: .6rem; font-size: .88rem; color: var(--text-muted); }
.nq-dm__miss b { color: var(--cream); }

/* ── Матрица судьбы ── */
.nq-mx { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.2rem; align-items: center; }
.nq-mx__chart { background: rgba(8,5,16,.35); border-radius: 16px; padding: .4rem; }
.nq-mx__chart .mx-wheel { max-width: 100%; }
.nq-ck { width: 100%; border-collapse: collapse; font-size: .86rem; }
.nq-ck th { font-size: .7rem; font-weight: 600; color: var(--text-muted); text-align: center; padding: .35rem; border-bottom: 1px solid rgba(212,165,74,.2); }
.nq-ck th:first-child, .nq-ck td:first-child { text-align: left; }
.nq-ck td { text-align: center; padding: .45rem .35rem; color: var(--cream); border-bottom: 1px solid rgba(255,255,255,.05); }
.nq-ck td i { font-style: normal; display: inline-block; width: 1.3rem; height: 1.3rem; line-height: 1.3rem; border-radius: 50%; text-align: center; font-size: .72rem; color: #fff; margin-right: .3rem; }
.ck-sahasrara i { background: #8B5CD6; } .ck-ajna i { background: #3D63D2; } .ck-vishuddha i { background: #46A6DE; }
.ck-anahata i { background: #49B07C; } .ck-manipura i { background: #F2C53D; color: #2b2218 !important; }
.ck-svadhisthana i { background: #EE8F35; } .ck-muladhara i { background: #E2504A; }
.nq-ck__tot td { font-weight: 700; color: var(--gold); border-bottom: none; }
.nq-purp { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin-top: 1.2rem; }
.nq-purp__i { background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.14); border-radius: 10px; padding: .8rem .9rem; color: var(--cream); font-size: .86rem; }
.nq-purp__i h4 { margin: 0 0 .5rem; font-size: .88rem; color: var(--cream); }
.nq-purp__i h4 small { display: block; font-weight: 400; color: var(--text-muted); font-size: .72rem; }
.nq-purp__i p { margin: .45rem 0 0; color: var(--gold); font-size: .82rem; }
.nq-chip { display: inline-block; min-width: 1.9rem; height: 1.9rem; line-height: 1.75rem; border: 1.5px solid var(--gold); border-radius: 50%; text-align: center; font-weight: 700; color: var(--cream); margin: 0 .1rem; }
.nq-tiles--5 { grid-template-columns: repeat(5, 1fr); }

/* ── Готовые модули визуала (js/vendor, MIT) ── */
.nq-mount svg { display: block; width: 100%; height: auto; }
.nq-mx__chart .dm-chart { max-width: 100%; }
.nq-ac { background: #fbf6ec; border-radius: 16px; overflow: hidden; max-width: 760px; margin: 0 auto; }
.nq-ac svg { margin: 0 auto; }

/* ── Дизайн человека: активации | бодиграф hdkit | активации ── */
.nq-hd__chart { display: grid; grid-template-columns: 88px minmax(0, 1fr) 88px; gap: .5rem; align-items: start; background: #fbf6ec; border-radius: 16px; padding: .8rem .5rem; }
.nq-bg { max-width: 420px; margin: 0 auto; width: 100%; }
.nq-act { border-collapse: collapse; font-size: .82rem; width: 100%; }
.nq-act caption { font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding-bottom: .35rem; }
.nq-act td { padding: .22rem .1rem; font-weight: 700; }
.nq-act td.g { font-size: 1rem; width: 1.4rem; text-align: center; font-family: 'DejaVu Sans','Segoe UI Symbol',sans-serif; font-weight: 400; }
.nq-act--d, .nq-act--d caption { color: #c8372b; }
.nq-act--p, .nq-act--p caption { color: #1f1a14; }

/* ── Дизайн человека ── */
.nq-hd { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.nq-natal__wheel svg { display: block; }
.nq-kv { width: 100%; border-collapse: collapse; font-size: .9rem; }
.nq-kv th { text-align: left; font-weight: 600; color: var(--text-muted); padding: .55rem .5rem .55rem 0; width: 42%; vertical-align: top; font-size: .8rem; }
.nq-kv td { color: var(--cream); padding: .55rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.nq-kv tr:first-child td { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; color: var(--gold); }
.nq-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .7rem; font-size: .76rem; color: var(--text-muted); }
.nq-legend span::before { content: ''; display: inline-block; width: 14px; height: 4px; border-radius: 2px; margin-right: .35rem; vertical-align: middle; }
.lg-d::before { background: #c8372b; } .lg-p::before { background: #ece2cf; } .lg-c::before { background: linear-gradient(90deg,#f3cd48,#e05a4e,#bf9360); }

/* ── Натальная карта ── */
/* Круг — крупно во всю ширину, как просил владелец: градусы должны читаться.
   Под ним две колонки: таблица планет | место, стихии, сетка аспектов. */
.nq-natal { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1rem 1.4rem; align-items: start; }
.nq-natal__wheel { grid-column: 1 / -1; max-width: 760px; width: 100%; margin: 0 auto; }
.nq-natal__info { grid-column: 2; grid-row: 2; }
.nq-natal__tables { grid-column: 1; grid-row: 2 / span 2; }
.nq-natal__grid-wrap { grid-column: 2; }
.nq-natal__meta { font-size: .86rem; color: var(--cream); line-height: 1.55; margin-bottom: .8rem; }
.nq-elbar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: rgba(255,255,255,.06); }
.nq-ellegend { display: flex; flex-wrap: wrap; gap: .2rem .9rem; font-size: .78rem; color: var(--cream); margin-top: .45rem; }
.nq-ellegend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: .3rem; }
.nq-natal__modes { font-size: .78rem; color: var(--text-muted); margin-top: .45rem; }
.nq-natal__tables { display: flex; flex-direction: column; gap: 1rem; }
.nq-ptab { width: 100%; border-collapse: collapse; font-size: .86rem; background: #fbf6ec; border-radius: 12px; overflow: hidden; }
.nq-ptab th { font-size: .68rem; color: #6b5a3e; font-weight: 700; text-align: left; padding: .45rem .5rem; border-bottom: 1px solid #e3d8c3; }
.nq-ptab td { color: #2b2218; padding: .32rem .5rem; border-bottom: 1px solid #efe6d5; }
.nq-ptab td.g { font-size: 1.05rem; text-align: center; width: 1.8rem; font-family: 'DejaVu Sans','Segoe UI Symbol',sans-serif; }
.nq-ptab .rx { color: #c0392b; }
.nq-natal__grid { background: #fbf6ec; border-radius: 12px; padding: .7rem; overflow-x: auto; }
.nq-natal__grid h4, .nq-cusps h4 { margin: 0 0 .4rem; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: #6b5a3e; }
.nq-asgrid { border-collapse: collapse; font-family: 'DejaVu Sans','Segoe UI Symbol',sans-serif; }
.nq-asgrid th { font-weight: 400; color: #2b2218; width: 26px; height: 24px; font-size: .95rem; }
.nq-asgrid td { width: 24px; height: 24px; text-align: center; border: 1px solid #e3d8c3; font-size: .85rem; font-weight: 700; }
.nq-aslegend { display: flex; flex-wrap: wrap; gap: .2rem .8rem; font-size: .72rem; margin-top: .45rem; font-weight: 600; }
.nq-cusps { grid-column: 1 / -1; background: rgba(255,255,255,.03); border-radius: 12px; padding: .7rem .9rem; }
.nq-cusps h4 { color: var(--gold); }
.nq-cusps div { display: grid; grid-template-columns: repeat(6, 1fr); gap: .3rem .6rem; font-size: .8rem; color: var(--cream); }
.nq-cusps b { color: var(--gold); margin-right: .2rem; }

/* ── Расшифровка гармошкой ── */
#nqRef { margin-top: 2.4rem; }
.nq-acc { display: block; background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.12); border-radius: 10px; margin-bottom: .45rem; }
.nq-acc summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .8rem; padding: .85rem 1rem; color: var(--cream); font-weight: 600; font-size: .95rem; }
.nq-acc summary::-webkit-details-marker { display: none; }
.nq-acc summary::after { content: '⌄'; margin-left: .4rem; color: var(--gold); transition: transform .2s; }
.nq-acc[open] summary::after { transform: rotate(180deg); }
.nq-acc__t { flex: 1; }
.nq-acc__t small { display: block; font-weight: 400; color: var(--text-muted); font-size: .8rem; margin-top: .15rem; }
.nq-acc__b { font-size: .8rem; color: var(--gold); font-weight: 700; white-space: nowrap; }
.nq-acc__body { padding: 0 1rem .9rem; color: var(--text-light, #e8e0d8); font-size: .93rem; line-height: 1.65; }
.nq-acc__body p { margin: 0 0 .6rem; }
.nq-acc--locked { display: flex; gap: .8rem; align-items: center; padding: .8rem 1rem; text-decoration: none; color: var(--cream); font-weight: 600; font-size: .95rem; border-style: dashed; }
.nq-acc--locked:hover { border-color: rgba(212,165,74,.5); }
.nq-acc__lock { font-size: 1rem; opacity: .8; }

/* ── Цена и оплата ── */
#nqOffer { margin: 1.4rem 0 0; background: linear-gradient(160deg, rgba(212,165,74,.14), rgba(107,63,160,.12)); border: 1px solid rgba(212,165,74,.35); border-radius: 16px; padding: 1.4rem; }
.nq-price { display: flex; gap: 1rem; align-items: flex-start; }
.nq-price__t { font-family: 'Cormorant Garamond', serif; font-size: 1.55rem; color: var(--cream); line-height: 1.15; }
.nq-price__s { font-size: .86rem; color: var(--text-muted); margin-top: .35rem; line-height: 1.5; }
.nq-price__v { margin-left: auto; font-family: 'Cormorant Garamond', serif; font-size: 2.4rem; color: var(--gold); white-space: nowrap; }
.nq-bump { display: flex; gap: .7rem; align-items: flex-start; margin-top: 0; margin-bottom: .9rem; padding: .8rem .9rem; border: 1px dashed rgba(212,165,74,.45); border-radius: 10px; cursor: pointer; color: var(--cream); font-size: .9rem; }
.nq-bump input { margin-top: .25rem; accent-color: var(--gold); width: 18px; height: 18px; }
.nq-bump small { display: block; color: var(--text-muted); font-size: .8rem; margin-top: .15rem; }
.nq-pay { display: flex; gap: .7rem; align-items: flex-end; margin-top: 1rem; }
.nq-pay .form-group { flex: 1 1 auto; margin-bottom: 0; }
.nq-pay .form-label { display: block; font-size: .62rem; color: var(--text-muted); margin-bottom: .2rem; letter-spacing: .05em; text-transform: uppercase; }
.nq-pay .form-input { width: 100%; padding: .75rem .9rem; font-size: .95rem; background: rgba(255,255,255,.06); border: 1px solid rgba(212,165,74,.25); border-radius: 8px; color: var(--cream); }
.nq-pay .has-error .form-input { border-color: #e0806a; }
.niche-page .nq-paybtn { flex: 0 0 auto; width: auto; margin: 0; padding: .85rem 1.4rem; color: #080510 !important; -webkit-text-fill-color: #080510 !important; }
.nq-agree { display: flex; gap: .45rem; align-items: center; font-size: .78rem; color: var(--text-muted); margin-top: .6rem; }
.nq-agree a { color: var(--gold); }
.nq-err { margin-top: .6rem; color: #f0a08a; font-size: .85rem; }

/* ── Другие расчёты ── */
.nq-cross { margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid rgba(212,165,74,.12); }
.nq-cross__d > summary { list-style: none; cursor: pointer; }
.nq-cross__d > summary::-webkit-details-marker { display: none; }
.nq-cross__d > summary::after { content: ' ⌄'; }
.nq-cross__d[open] > summary::after { content: ' ⌃'; }
.nq-cross__d[open] .nq-cross__grid { margin-top: .6rem; }
.nq-cross__h { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 0; text-align: center; }
.nq-cross__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .5rem; }
.nq-cross__i { display: block; padding: .8rem .9rem; border-radius: 10px; background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.12); text-decoration: none; }
.nq-cross__i b { display: block; color: var(--cream); font-size: .92rem; }
.nq-cross__i span { color: var(--text-muted); font-size: .78rem; }
.nq-cross__i:hover { border-color: rgba(212,165,74,.45); }

/* ── После оплаты ── */
.nq-paid__head { text-align: center; }
.nq-paid__p { color: var(--text-muted); margin: .2rem 0 1rem; }
.nq-progress__row { display: flex; justify-content: space-between; font-size: .85rem; color: var(--cream); margin-bottom: .35rem; }
.nq-bar { height: 6px; background: rgba(255,255,255,.07); border-radius: 4px; overflow: hidden; }
.nq-bar__f { display: block; height: 100%; background: var(--gold); transition: width .5s; }
.nq-toc { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.nq-toc a { font-size: .8rem; color: var(--gold); text-decoration: none; padding: .3rem .6rem; border: 1px solid rgba(212,165,74,.25); border-radius: 999px; }
.nq-card { background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.14); border-radius: 12px; padding: 1.1rem 1.2rem; margin-bottom: .8rem; color: var(--text-light, #e8e0d8); line-height: 1.7; font-size: .95rem; min-height: 180px; }
.nq-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; color: var(--gold); margin: 0 0 .6rem; font-weight: 500; }
.nq-card p { margin: 0 0 .7rem; }
.nq-card .nq-sub { font-family: 'Nunito Sans', sans-serif; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin: 1.1rem 0 .45rem; }
.nq-card .nq-sub:first-of-type { margin-top: .2rem; }
.nq-card .nq-list { list-style: none; margin: 0 0 .8rem; padding: 0; }
.nq-card .nq-list li { position: relative; padding-left: 1.1rem; margin: 0 0 .45rem; }
.nq-card .nq-list li::before { content: ''; position: absolute; left: .15rem; top: .72em; width: .38rem; height: .38rem; border-radius: 50%; background: var(--gold); opacity: .8; }
.nq-skel__l { height: 12px; border-radius: 6px; background: rgba(255,255,255,.06); margin: .7rem 0; animation: nqpulse 1.4s ease-in-out infinite; }
.nq-skel__l:nth-child(3) { width: 85%; } .nq-skel__l:nth-child(4) { width: 70%; }
@keyframes nqpulse { 50% { opacity: .45; } }
#nqPaidView { margin-bottom: 1.4rem; }

/* ── Телефон ── */


/* ── Нумерология по дате рождения и Ба-цзы (17.09.2026) ── */
.niche-page[data-niche="bazi"] .form-inline-row > #grp-name { flex: 0 0 120px; }
.niche-page .form-inline-row > #grp-gender { flex: 0 0 104px; }
.nq-gender { display: flex; gap: .35rem; height: 44px; align-items: stretch; }
.nq-gender label { flex: 1; position: relative; cursor: pointer; }
.nq-gender input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.nq-gender span { display: flex; height: 100%; align-items: center; justify-content: center; border: 1px solid rgba(212,165,74,.25); border-radius: 8px; background: rgba(255,255,255,.06); color: var(--cream); font-weight: 700; }
.nq-gender input:checked + span { background: var(--gold); color: #080510; border-color: var(--gold); }
.nq-gender input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
#grp-gender.has-error .nq-gender span { border-color: #e0806a; }
.nq-tile--main { border-color: rgba(212,165,74,.45); background: rgba(212,165,74,.08); }
.nq-muted { color: var(--text-muted); font-weight: 400; }
.nq-stages { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; margin: .6rem 0 1rem; }
.nq-stage { background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.14); border-radius: 10px; padding: .75rem .85rem; }
.nq-stage.is-current { border-color: var(--gold); background: rgba(212,165,74,.1); }
.nq-stage__h { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); font-weight: 800; }
.nq-stage__ages { color: var(--cream); font-weight: 700; margin: .25rem 0 .5rem; }
.nq-stage__ages small { display: block; color: var(--text-muted); font-weight: 400; font-size: .78rem; }
.nq-stage__row { display: flex; justify-content: space-between; align-items: baseline; color: var(--text-muted); font-size: .85rem; }
.nq-stage__row b { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; color: var(--gold); font-weight: 500; }
.nq-karma { display: grid; gap: .5rem; margin: .4rem 0 1rem; color: var(--cream); font-size: .9rem; }
.nq-karma b { margin-right: .5rem; }
.nq-pill { display: inline-block; margin: .15rem .25rem .15rem 0; padding: .2rem .6rem; border: 1px solid rgba(212,165,74,.35); border-radius: 999px; font-weight: 700; color: var(--cream); font-size: .85rem; }
.nq-pill small { color: var(--text-muted); font-weight: 400; }
.nq-bz-wrap { overflow-x: auto; margin: .4rem 0 .4rem; }
.nq-bz { width: 100%; border-collapse: separate; border-spacing: 5px; min-width: 460px; }
.nq-bz th { color: var(--text-muted); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; text-align: center; padding: .2rem; }
.nq-bz tbody th { text-align: left; width: 76px; }
.nq-bz thead th.is-day { color: var(--gold); }
.nq-bz td { background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.12); border-radius: 9px; text-align: center; padding: .45rem .3rem; color: var(--cream); font-size: .84rem; vertical-align: middle; }
.nq-bz td small { display: block; color: var(--text-muted); font-size: .74rem; margin-top: .1rem; }
.nq-bz__gods td { font-weight: 700; font-size: .8rem; }
.nq-bz__dm { color: var(--gold); }
.nq-hz { font-family: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; font-size: 2.4rem; line-height: 1.1; display: block; font-weight: 600; }
.nq-hz--s { font-size: 1.35rem; display: inline-block; }
.el-wood { color: #5fbf7a; } .el-fire { color: #ef6b5b; } .el-earth { color: #d6a651; } .el-metal { color: #cfd3dc; } .el-water { color: #5e9cf0; }
.nq-bal__bar i.el-wood { background: #5fbf7a; } .nq-bal__bar i.el-fire { background: #ef6b5b; } .nq-bal__bar i.el-earth { background: #d6a651; }
.nq-bal__bar i.el-metal { background: #cfd3dc; } .nq-bal__bar i.el-water { background: #5e9cf0; }
.nq-hid { display: block; font-size: .74rem; color: var(--text-muted); line-height: 1.35; }
.nq-hid i { font-style: normal; font-weight: 700; margin-right: .25rem; font-size: .95rem; }
.nq-bz__note { font-size: .8rem; color: var(--text-muted); margin: .2rem 0 .8rem; }
.nq-bal { display: grid; gap: .4rem; margin: .4rem 0 1rem; }
.nq-bal__r { display: grid; grid-template-columns: 72px 1fr 44px 190px; gap: .6rem; align-items: center; font-size: .85rem; color: var(--cream); }
.nq-bal__bar { height: 10px; background: rgba(255,255,255,.06); border-radius: 6px; overflow: hidden; }
.nq-bal__bar i { display: block; height: 100%; border-radius: 6px; }
.nq-bal__r small { color: var(--text-muted); }
.nq-luck { display: flex; gap: .45rem; overflow-x: auto; padding-bottom: .4rem; margin: .4rem 0 1rem; }
.nq-luck__i { flex: 0 0 88px; text-align: center; background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.12); border-radius: 9px; padding: .45rem .3rem; }
.nq-luck__i.is-current { border-color: var(--gold); background: rgba(212,165,74,.1); }
.nq-luck__a { font-size: .75rem; color: var(--gold); font-weight: 800; margin-bottom: .1rem; }
.nq-luck__i small { display: block; font-size: .7rem; color: var(--cream); line-height: 1.25; }
.nq-luck__i small.nq-muted { color: var(--text-muted); }

/* ── Оффер v2 (16.09.2026): заголовок из расчёта, что внутри, фрагмент, оплата, вопросы ── */
.nq-ctabar { display: flex; align-items: center; gap: 1rem; margin: 1.2rem 0 1.4rem; padding: .85rem 1rem; border-radius: 12px; background: linear-gradient(120deg, rgba(212,165,74,.16), rgba(107,63,160,.14)); border: 1px solid rgba(212,165,74,.35); }
.nq-ctabar__t { flex: 1; min-width: 0; }
.nq-ctabar__t b { display: block; color: var(--cream); font-size: .98rem; }
.nq-ctabar__t span { display: block; color: var(--text-muted); font-size: .82rem; margin-top: .1rem; }
.niche-page a.nq-ctabar__btn { flex: 0 0 auto; padding: .65rem 1.1rem; border-radius: 10px; background: linear-gradient(135deg, #e8c46a, var(--gold, #d4a54a)); color: #080510 !important; -webkit-text-fill-color: #080510 !important; font-weight: 800; font-size: .9rem; text-decoration: none; white-space: nowrap; }
.nq-offer__eyebrow { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); font-weight: 800; }
.nq-offer__h { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 1.75rem; line-height: 1.18; color: var(--cream); margin: .3rem 0 .9rem; }
.nq-stack { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
.nq-stack li { position: relative; padding-left: 1.6rem; color: var(--text-light, #e8e0d8); font-size: .93rem; line-height: 1.5; }
.nq-stack li::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--gold); font-weight: 800; }
.nq-stack b { color: var(--cream); }
.nq-sample { position: relative; margin: 0 0 1.1rem; padding: .85rem 1rem 1rem; border: 1px solid rgba(212,165,74,.25); border-radius: 10px; background: rgba(8,5,16,.35); }
.nq-sample__cap { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); font-weight: 800; margin-bottom: .45rem; }
/* Открыт сразу, но подрезан: видно товар, а цена не уезжает на экран вниз. */
.nq-sample__body { position: relative; color: var(--text-light, #e8e0d8); font-size: .92rem; line-height: 1.65; max-height: 300px; overflow: hidden; }
.nq-sample__body::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(to bottom, rgba(8,5,16,0), rgba(8,5,16,.92)); pointer-events: none; }
.nq-sample.is-open .nq-sample__body { max-height: none; overflow: visible; }
.nq-sample.is-open .nq-sample__body::after { display: none; }
.nq-sample__more { display: block; width: 100%; margin: .5rem 0 0; padding: .5rem .8rem; border-radius: 9px; border: 1px solid rgba(212,165,74,.4); background: rgba(255,255,255,.04); color: var(--gold); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.nq-sample__more:hover { border-color: var(--gold); }
.nq-sample__h { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; color: var(--gold); margin-bottom: .3rem; }
.nq-sample__body .nq-sub { font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); margin: .9rem 0 .35rem; }
.nq-sample__body .nq-list { list-style: none; padding: 0; margin: 0 0 .7rem; }
.nq-sample__body .nq-list li { padding-left: 1rem; position: relative; margin-bottom: .35rem; }
.nq-sample__body .nq-list li::before { content: '•'; position: absolute; left: .1rem; color: var(--gold); }
.nq-sample__body p { margin: 0 0 .6rem; }
.nq-sample__note { margin-top: .6rem; font-size: .78rem; color: var(--text-muted); font-style: italic; }
.nq-trust { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .9rem; margin-top: .9rem; font-size: .78rem; color: var(--text-muted); }
.nq-payicons { display: inline-flex; align-items: center; gap: .45rem; opacity: .75; }
.nq-payicons svg { height: 16px; width: auto; }
.nq-payicons b { font-size: .72rem; font-weight: 800; color: var(--cream); letter-spacing: .02em; }
.nq-faq { margin: 1.4rem 0 0; }
.nq-paid__acts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .8rem; }
.nq-actbtn { padding: .55rem .9rem; border-radius: 9px; border: 1px solid rgba(212,165,74,.4); background: rgba(255,255,255,.04); color: var(--cream); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.nq-actbtn:hover { border-color: var(--gold); }

/* ── Связный текст ПЕРЕД схемой (3–4 раздела бесплатно) ── */
#nqLead { margin-bottom: 2rem; }
#nqLead .nq-h2 { margin-bottom: .3rem; }
.nq-lead__note { text-align: center; color: var(--text-muted); font-size: .84rem; margin-bottom: 1.2rem; }
.nq-lead__i { padding: 1rem 1.1rem; margin-bottom: .6rem; border-radius: 12px; background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.14); }
.nq-lead__t { display: flex; align-items: baseline; gap: .7rem; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 1.3rem; line-height: 1.2; color: var(--cream); margin: 0 0 .5rem; }
.nq-lead__b { margin-left: auto; font-family: 'Nunito Sans', sans-serif; font-size: .8rem; font-weight: 700; color: var(--gold); white-space: nowrap; }
.nq-lead__body { color: var(--text-light, #e8e0d8); font-size: .95rem; line-height: 1.7; }
.nq-lead__body p { margin: 0 0 .6rem; }
.nq-lead__body p:last-child { margin-bottom: 0; }
.nq-lead__body .nq-list { list-style: none; padding: 0; margin: 0 0 .6rem; }
.nq-lead__body .nq-list li { padding-left: 1rem; position: relative; margin-bottom: .3rem; }
.nq-lead__body .nq-list li::before { content: '\2022'; position: absolute; left: .1rem; color: var(--gold); }

/* Печать = «Сохранить в PDF»: только сам разбор, тёмный текст на белом. */
@media print {
    html, body { height: auto !important; overflow: visible !important; background: #fff !important; }
    body.niche-page * { box-shadow: none !important; text-shadow: none !important; }
    nav, header, footer, .bottom-nav, .mobile-bottom-nav, #nqTop, #nqResult, #nqToc, #nqPaidCross, #nqPaidActs, #nqProgress, .breadcrumbs, #bottomNav { display: none !important; }
    #nqPaid { display: block !important; }
    .main { max-width: none !important; padding: 0 !important; margin: 0 !important; transform: none !important; }
    .nq-h2, .nq-paid__p { color: #111 !important; }
    .nq-card { background: none !important; border: 0 !important; color: #111 !important; padding: 0 0 .8rem !important; min-height: 0 !important; }
    .nq-card h3 { color: #6b4a12 !important; break-after: avoid; }
    .nq-card .nq-sub { color: #6b4a12 !important; break-after: avoid; }
    .nq-card .nq-list li::before { background: #6b4a12 !important; }
    #nqPaidView { break-after: page; }
}

@media (max-width: 760px) {
    .nq-lead__i { padding: .85rem .9rem; }
    .nq-lead__t { flex-wrap: wrap; font-size: 1.15rem; }
    .nq-lead__b { margin-left: 0; }
    .nq-sample__body { max-height: 260px; }
    .nq-mx, .nq-hd, .nq-natal, .nq-dm { grid-template-columns: 1fr; }
    /* Бодиграф на телефоне — во всю ширину, активации двумя таблицами под ним. */
    .nq-hd__chart { grid-template-columns: 1fr 1fr; padding: .6rem; }
    .nq-hd__chart .nq-bg { grid-column: 1 / -1; order: -1; max-width: none; }
    /* Явные места колонок с ПК тут сбрасываются — иначе сетка достраивает вторую колонку
       и таблицы уезжают за экран (замер 390 px). */
    .nq-natal__wheel, .nq-natal__info, .nq-natal__tables { grid-column: 1 / -1; grid-row: auto; }
    .nq-natal__wheel { margin: 0 -10px; width: calc(100% + 20px); max-width: none; }
    .nq-natal__wheel { order: 1; } .nq-natal__tables { order: 2; } .nq-natal__info { order: 3; } .nq-cusps { order: 4; }
    .nq-ptab td { padding: .3rem .35rem; font-size: .82rem; }
    .niche-page .nq-paybtn .btn-text { white-space: normal; letter-spacing: .02em; }
    .nq-purp { grid-template-columns: 1fr; }
    .nq-tiles--5 { grid-template-columns: repeat(2, 1fr); }
    .nq-codes { grid-template-columns: repeat(3, 1fr); gap: .4rem; }
    .nq-code__v { font-size: 2.4rem; } .nq-code__s { display: none; }
    .nq-psq { border-spacing: 4px; } .nq-psq td { padding: .55rem .15rem; }
    .nq-psq__n { font-size: 1.05rem; } .nq-psq__l { font-size: .62rem; }
    .nq-cusps div { grid-template-columns: repeat(3, 1fr); }
    .nq-price { flex-direction: column; } .nq-price__v { margin-left: 0; }
    .nq-ctabar { flex-direction: column; align-items: stretch; text-align: left; }
    .nq-stages { grid-template-columns: repeat(2, 1fr); }
    .nq-bal__r { grid-template-columns: 62px 1fr 40px; }
    .nq-bal__r small { display: none; }
    .nq-hz { font-size: 1.9rem; }
    .niche-page[data-niche="bazi"] .form-inline-row > #grp-name,
    .niche-page .form-inline-row > #grp-gender { flex: 1 1 45% !important; }
    .niche-page a.nq-ctabar__btn { text-align: center; }
    .nq-offer__h { font-size: 1.45rem; }
    .nq-pay { flex-direction: column; align-items: stretch; }
    .niche-page .nq-paybtn { width: 100%; }
    .niche-page[data-niche="matrix"] .form-inline-row > #grp-date,
    .niche-page[data-niche="psychology"] .form-inline-row > #grp-date { flex: 1 1 100% !important; }
}

/* ── SEO-блок страниц продуктов (17.09.2026): виден до расчёта, скрыт в результате и разборе ── */
/* SEO-блок продукта: отступ от калькулятора и золотые ссылки — как на /расчет/.
   Правило `.page-calc3 .seo-extra` живёт в вёрстке самой /расчет/ и в css/rect.css,
   зазор между калькулятором и блоком 0 px, ссылки браузерно-синие rgb(0,0,238)
   вместо золотых rgb(212,165,74). */
.page-calc3 .nq-seo { max-width: 880px; margin: 3rem auto 1.5rem; padding: 0 2rem; }
.page-calc3 .nq-seo a {
    color: var(--gold, #D4A54A);
    text-decoration: underline; text-decoration-color: rgba(212,165,74,.35);
    text-underline-offset: 2px;
}
@media (max-width: 600px) {
    .page-calc3 .nq-seo { margin: 2rem auto 1rem; padding: 0 1rem; }
}
body.nq-in-product .nq-seo { display: none; }
.nq-seo .seo-block ol, .nq-seo .seo-block ul { padding-left: 1.2rem; color: var(--text-light, #e8e0d8); line-height: 1.7; }
.nq-seo .seo-block li { margin-bottom: .35rem; }

/* ══════════════════════════════════════════════════════════════
   ВОРОНКА ПОСЛЕ РАСЧЁТА (23.09.2026)
   Вёрстка и классы взяты с /расчет/: .form-compact, .result-block,
   .spheres-map, #paymentModal — их стили лежат в style.css / style-v2.css /
   calc3.css, которые страницы ниш уже подключают. Здесь — ТОЛЬКО то, чего
   там нет: лоадер портрета, слайдер купленного разбора, свёрнутый справочник,
   подложка попапа о лимите и копия стилей отзывов (на /расчет/ они инлайн).
   ══════════════════════════════════════════════════════════════ */

/* — лоадер портрета — */
.nq-freewrap { margin: 1.5rem 0; }
.nq-loader { text-align: center; padding: 2.2rem 1rem; }
.nq-loader__ring { width: 54px; height: 54px; margin: 0 auto 1.1rem; border-radius: 50%;
    border: 2px solid rgba(212,165,74,.18); border-top-color: var(--gold); animation: nqSpin 1.1s linear infinite; }
@keyframes nqSpin { to { transform: rotate(360deg) } }
.nq-loader__msg { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; color: var(--cream); min-height: 1.6em; }
.nq-loader__bar { height: 3px; max-width: 320px; margin: 1rem auto .6rem; background: rgba(255,255,255,.08); border-radius: 2px; overflow: hidden; }
.nq-loader__bar span { display: block; height: 100%; width: 2%; background: linear-gradient(90deg, rgba(212,165,74,.6), var(--gold)); transition: width .4s linear; }
.nq-loader__hint { font-size: .8rem; color: var(--text-muted); }
.nq-free__fail { padding: 1.2rem; border: 1px solid rgba(212,165,74,.25); border-radius: 12px; text-align: center; }
.nq-caret { display: inline-block; width: 2px; height: 1.05em; background: var(--gold); vertical-align: text-bottom; animation: nqBlink 1s steps(2) infinite; }
@keyframes nqBlink { 50% { opacity: 0 } }

/* — свёрнутый справочник — */
.nq-fold { margin: 1.4rem 0; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.02); }
.nq-fold > summary { cursor: pointer; padding: .85rem 1rem; font-size: .92rem; color: var(--gold); list-style: none; }
.nq-fold > summary::-webkit-details-marker { display: none; }
.nq-fold > summary::after { content: '▾'; float: right; opacity: .6; }
.nq-fold[open] > summary::after { content: '▴'; }
.nq-fold > *:not(summary) { padding: 0 1rem 1rem; }

/* — подложка попапа «лимит исчерпан»: как у #paymentModal в style.css — */
.nq-overlay { display: none; position: fixed; inset: 0; z-index: 9000; align-items: center; justify-content: center;
    background: rgba(8,5,16,.85); backdrop-filter: blur(12px); overflow-y: auto; padding: 1rem; }
.nq-overlay.visible { display: flex; }
body.nq-modal-open { overflow: hidden; }

/* — купленный разбор слайдером (как /разбор/) — */
.nq-sl { border: 1px solid rgba(212,165,74,.2); border-radius: 16px; background: rgba(255,255,255,.02); padding: 1.3rem 1.1rem 1rem; }
.nq-sl__head { margin-bottom: 1rem; }
.nq-sl__ix { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); opacity: .85; }
.nq-sl__t { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 600; color: var(--cream); margin: .2rem 0 0; line-height: 1.2; }
.nq-sl__body { font-size: 1.02rem; line-height: 1.75; color: var(--cream); min-height: 160px; }
.nq-sl__body p { margin: 0 0 .9rem; }
.nq-sl__wait { font-size: .85rem; color: var(--text-muted); }
.nq-sl__dots { display: flex; justify-content: center; flex-wrap: wrap; gap: .4rem; margin: 1.1rem 0 .9rem; }
.nq-sl__dot { width: 9px; height: 9px; border-radius: 50%; border: none; cursor: pointer; padding: 0;
    background: rgba(255,255,255,.18); transition: background .2s, transform .2s; }
.nq-sl__dot.is-on { background: var(--gold); transform: scale(1.25); }
.nq-sl__dot.is-wait { background: rgba(212,165,74,.25); }
.nq-sl__nav { display: flex; gap: .6rem; }
.nq-sl__btn { flex: 1; padding: .75rem 1rem; border-radius: 10px; cursor: pointer; font-family: inherit; font-size: .92rem;
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); color: var(--cream); }
.nq-sl__btn:disabled { opacity: .35; cursor: default; }
.nq-sl__btn--next { background: linear-gradient(135deg, #e0b95f, var(--gold)); border: none; color: #1a1206 !important;
    -webkit-text-fill-color: #1a1206; font-weight: 700; }

/* — отзывы: копия стилей с /расчет/ (там они инлайн в странице) — */
/* ══ Social Proof + слайдер отзывов (перенос с расчет3) ══ */
    .social-proof-inline{display:inline-flex;align-items:center;gap:.4rem;margin:.6rem auto .2rem;padding:.3rem .7rem;font-family:'Nunito Sans',sans-serif;font-size:.78rem;color:rgba(255,255,255,.55);background:rgba(212,165,74,.05);border:1px solid rgba(212,165,74,.14);border-radius:999px}
    .social-proof-stars{color:var(--gold,#d4a54a);letter-spacing:.08em;font-size:.82rem;line-height:1}
    .social-proof-rating{color:rgba(255,255,255,.78);font-weight:600}
    .social-proof-sep{color:rgba(255,255,255,.2)}
    .social-proof-count{color:rgba(255,255,255,.55)}
    .reviews-slider{max-width:820px;margin:1.5rem auto .3rem;padding:0 2rem;font-family:'Nunito Sans',sans-serif}
    .reviews-slider-title{text-align:center;font-size:.72rem;letter-spacing:.12em;color:rgba(255,255,255,.42);margin-bottom:.7rem;text-transform:uppercase}
    .reviews-track{position:relative;display:grid}
    /* Все отзывы лежат в ОДНОЙ ячейке сетки: высота блока равна самому
       длинному отзыву и при перелистывании не меняется. Раньше в потоке
       стоял только активный слайд, и каждые 5 секунд страница ниже
       прыгала на 48 px на ПК и до 142 px на телефоне (BUG-2026-08-29-01). */
    .review-slide{grid-area:1/1;display:flex;flex-direction:column;justify-content:center;opacity:0;transition:opacity .22s ease;margin:0;padding:.9rem 1.1rem;background:rgba(212,165,74,.05);border:1px solid rgba(212,165,74,.18);border-radius:14px;text-align:left}
    /* Спрятанный отзыв длиннее активного свисает вниз и невидимо накрывает точки —
       клик по ним переставал срабатывать. Кликам сквозь спрятанные слайды — путь. */
    .review-slide:not(.is-active){pointer-events:none}
    .review-slide.is-active{opacity:1;transition:opacity .28s ease .22s}
    .reviews-dots{position:relative;z-index:2}
    .review-stars{color:var(--gold,#d4a54a);letter-spacing:.1em;font-size:.9rem;line-height:1}
    .review-quote{margin:.5rem 0 0;padding-left:.75rem;border-left:2px solid rgba(212,165,74,.55);font-style:italic;font-size:.9rem;line-height:1.5;color:rgba(255,255,255,.85)}
    .review-author{margin-top:.5rem;font-size:.78rem;color:rgba(255,255,255,.5);text-align:right}
    .reviews-dots{display:flex;justify-content:center;gap:.42rem;margin-top:.8rem}
    .reviews-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.2);border:none;padding:0;cursor:pointer;transition:background .3s}
    .reviews-dot.is-active{background:var(--gold,#d4a54a)}
    

/* — зачёркнутая цена и таймер скидки: копия с /расчет/ (там они инлайн в странице) — */
.price-old{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:300;color:rgba(255,255,255,.35);text-decoration:line-through;text-decoration-color:rgba(255,255,255,.3);margin-right:.3rem}
.modal-amount-num .price-old{font-size:1.2rem}
.discount-timer{display:inline-block;padding:.35rem .9rem;background:rgba(212,165,74,.12);border:1px solid rgba(212,165,74,.35);border-radius:8px;color:var(--gold,#d4a54a);font-size:.82rem;font-weight:500;letter-spacing:.02em}
.discount-timer span{font-variant-numeric:tabular-nums;font-weight:700;color:var(--gold,#d4a54a)}
.spheres-cta .discount-timer{margin:.4rem auto .6rem;display:block;width:fit-content}
.modal-amount .discount-timer{margin-top:.8rem}
.discount-timer.timer-urgent{background:rgba(212,165,74,.18);border-color:rgba(212,165,74,.5);animation:timerPulse 1s ease-in-out infinite}
.discount-timer.timer-expired{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.35)}
.discount-timer.timer-expired span{color:rgba(255,255,255,.35)}
@keyframes timerPulse{0%,100%{opacity:1}50%{opacity:.7}}

/* Таблица столпов Ба-цзы на телефоне — все четыре столпа без прокрутки вбок:
   подписи строк узкие вертикальные, ячейки плотнее. Такты удачи ниже листаются, как раньше. */
@media (max-width: 600px) {
    .nq-bz-wrap { overflow-x: visible; }
    .nq-bz { min-width: 0; table-layout: fixed; border-spacing: 3px; }
    .nq-bz thead th:first-child { width: 18px; padding: 0; }
    .nq-bz thead th { font-size: .66rem; letter-spacing: .04em; padding: .15rem 0; }
    .nq-bz tbody th { width: 18px; padding: 0; text-align: center; font-size: .56rem; letter-spacing: .08em;
        writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
    .nq-bz td { padding: .35rem .12rem; font-size: .74rem; border-radius: 7px; overflow-wrap: anywhere; hyphens: auto; }
    .nq-bz td small { font-size: .64rem; line-height: 1.25; }
    .nq-bz__gods td { font-size: .7rem; line-height: 1.2; }
    .nq-bz .nq-hz { font-size: 1.6rem; }
    .nq-bz .nq-hid { font-size: .64rem; line-height: 1.25; margin-bottom: .2rem; }
    .nq-bz .nq-hid i { display: block; font-size: .9rem; margin: 0; }
}

/* Ба-цзы на год: период, годы против карты, 12 месяцев с тоном. Дни месяцев — в платном прогнозе. */
.nq-by { display: flex; flex-direction: column; gap: .9rem; }
.nq-by__period { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); font-weight: 700; }
.nq-by__years { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .6rem; }
.nq-by__yr { display: flex; gap: .8rem; align-items: center; padding: .8rem .9rem; border-radius: 10px;
    background: rgba(255,255,255,.035); border: 1px solid rgba(212,165,74,.18); }
.nq-by__gz { display: flex; gap: .15rem; flex-shrink: 0; }
.nq-by__yt { display: flex; flex-direction: column; gap: .15rem; min-width: 0; color: var(--cream); font-size: .86rem; }
.nq-by__yt b { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 600; color: var(--gold-light, #f3d991); }
.nq-by__yt span { color: var(--text-muted); font-size: .8rem; line-height: 1.4; }
.nq-by__months { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.nq-by__m { padding: .65rem .7rem; border-radius: 9px; background: rgba(255,255,255,.03);
    border: 1px solid rgba(212,165,74,.12); border-left-width: 3px; display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.nq-by__m.is-support { border-left-color: #5fbf7a; }
.nq-by__m.is-strain  { border-left-color: #ef6b5b; }
.nq-by__m.is-mixed   { border-left-color: #d6a651; }
.nq-by__ml { font-size: .8rem; color: var(--cream); font-weight: 700; }
.nq-by__mn { font-size: .76rem; color: var(--text-muted); }
.nq-by__mt { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: var(--gold); }
.nq-by__m.is-support .nq-by__mt { color: #5fbf7a; }
.nq-by__m.is-strain .nq-by__mt  { color: #ef6b5b; }
.nq-by__md { font-size: .7rem; color: var(--text-muted); opacity: .8; }
.nq-by__chart { margin-top: .4rem; }
@media (max-width: 760px) { .nq-by__months { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .nq-by__years { grid-template-columns: minmax(0, 1fr); } .nq-by__m { padding: .55rem .55rem; } .nq-by__md { display: none; } }
@media (max-width: 330px) { .nq-by__months { grid-template-columns: minmax(0, 1fr); } }

/* Сюцай: плотная схема — матрица и коды в одной строке, без пустоты справа. */
.nq-su { display: grid; gap: .7rem; margin-bottom: 1.1rem; }
/* На узком экране числа идут первыми, и каждое — строкой: в три колонки
   разложение «1 + 2 + 1 + …» ломалось на четыре строки и давило карточку. */
.nq-su__codes { display: grid; gap: .45rem; order: -1; }
.nq-su__codes .nq-code { display: grid; grid-template-columns: 3.2rem 1fr; align-items: center; gap: .7rem; text-align: left; padding: .6rem .8rem; }
.nq-su__codes .nq-code__v { grid-row: span 3; font-size: 2rem; line-height: 1; text-align: center; align-self: center; }
.nq-su__codes .nq-code__t { align-self: end; }
/* Общее правило ниш прячет подпись на телефоне (.nq-code__s{display:none}) —
   здесь карточка идёт строкой, место есть, и подпись нужна: без неё у числа
   миссии пропадало «Строить опору». */
.nq-su__codes .nq-code__s { align-self: center; display: block; }
.nq-su__codes .nq-code__f { align-self: start; margin-top: .15rem; }
.nq-su .nq-dm__cell { padding: .62rem .3rem; }
.nq-su .nq-dm__grid { gap: 5px; }
.nq-su .nq-dm__miss { margin-top: .55rem; font-size: .88rem; line-height: 1.5; }
.nq-su .nq-dm__miss span { display: block; opacity: .72; }
/* Как получилось число — мелкой строкой под подписью. */
.nq-code__f { margin-top: .35rem; font-size: .76rem; line-height: 1.4; opacity: .62; font-variant-numeric: tabular-nums; }
@media (min-width: 760px) {
    .nq-su { grid-template-columns: minmax(0, 330px) minmax(0, 1fr); align-items: start; gap: 1rem; }
    .nq-su__codes { grid-template-columns: 1fr; gap: .6rem; order: 0; }
    .nq-su__codes .nq-code { display: grid; grid-template-columns: 4.2rem 1fr; align-items: center; gap: .8rem; text-align: left; padding: .7rem .9rem; }
    .nq-su__codes .nq-code__v { grid-row: span 3; font-size: 2.3rem; line-height: 1; text-align: center; align-self: center; }
    .nq-su__codes .nq-code__t { align-self: end; }
    .nq-su__codes .nq-code__s { align-self: center; }
    .nq-su__codes .nq-code__f { align-self: start; margin-top: .15rem; }
}

/* Форма расчёта: поля по центру, а ошибка НЕ двигает их (норма от 17.10.2026).
   Раньше сообщение появлялось под полем, группа становилась выше, и соседние
   поля съезжали вверх — строка разъезжалась прямо под рукой у человека.
   Теперь подпись об ошибке одна и стоит между полями и кнопкой (#nqFormErr),
   а само поле только подсвечивается рамкой. */
.niche-page .form-inline-row { justify-content: center; flex-wrap: wrap; row-gap: .6rem; }
.niche-page .form-inline-row .form-error { display: none !important; }
.niche-page #nqFormErr, .niche-page #mxFormErr {
    margin-top: .7rem; color: #f0a08a; font-size: .85rem; line-height: 1.45; text-align: center;
}
