/* ===========================================================
   pages.css — РЕМОНТ-ХОЛЛ · каркас остальных страниц
   Премиум dark blue→violet. Реюзает токены из premium.css
   (--bg, --grad, --blue, --violet, --text, --muted, --line …).
   Источник истины для передачи в Claude Code.
   =========================================================== */

/* ---- page shell ---- */
.page { position: relative; z-index: 1; padding-top: 96px; }
.pwrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; }

/* breadcrumbs — hidden per request (JSON-LD BreadcrumbList kept for SEO) */
.pbread { display: none; }

/* Yandex map embed */
.ymap { width: 100%; border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; background: #0b0d1a; }
.ymap iframe { display: block; width: 100%; border: 0; }

/* page hero */
.phero { padding: 30px 0 50px; }
.phero .eyebrow { margin-bottom: 22px; }
.phero h1 { font-family: 'Geologica'; font-weight: 600; font-size: 56px; line-height: 1.04; letter-spacing: -.025em; max-width: 16ch; }
.phero h1 .g { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.phero .sub { margin-top: 20px; font-size: 19px; line-height: 1.6; color: var(--muted); max-width: 60ch; }
.phero .hero-actions { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; }
.phero-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; }

/* section shell */
.psec { padding: 70px 0; }
.psec.tint { background: linear-gradient(180deg, rgba(124,58,237,.05), transparent 60%); }
.phead { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }
.phead .ht { max-width: 720px; }
.phead h2 { font-family: 'Geologica'; font-weight: 600; font-size: 38px; line-height: 1.08; letter-spacing: -.02em; }
.phead h2 .g { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.phead p { margin-top: 14px; font-size: 17px; line-height: 1.6; color: var(--muted); }
.phead .section-link { font: 700 14px/1 'Manrope'; color: var(--violet-2); display: inline-flex; align-items: center; gap: 7px; }

/* grids */
.pgrid { display: grid; gap: 18px; }
.pgrid-2 { grid-template-columns: repeat(2, 1fr); }
.pgrid-3 { grid-template-columns: repeat(3, 1fr); }
.pgrid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .pgrid-3, .pgrid-4 { grid-template-columns: repeat(2, 1fr); } .phero-split { grid-template-columns: 1fr; } .phero h1 { font-size: 44px; } }
@media (max-width: 620px) { .pgrid-2, .pgrid-3, .pgrid-4 { grid-template-columns: 1fr; } .pwrap { padding: 0 22px; } }

/* generic card */
.pcard { position: relative; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px; transition: transform .3s var(--ease), border-color .3s, box-shadow .3s; }
.pcard.hover:hover { transform: translateY(-4px); border-color: rgba(139,92,246,.4); box-shadow: 0 24px 50px -22px rgba(0,0,0,.8), 0 0 40px -20px rgba(124,58,237,.6); }
.pcard .ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: rgba(124,58,237,.12); border: 1px solid rgba(139,92,246,.3); margin-bottom: 16px; }
.pcard h3 { font: 700 17px/1.25 'Manrope'; }
.pcard p { margin-top: 8px; font-size: 14px; line-height: 1.55; color: var(--muted); }
.pcard .meta { margin-top: 14px; font: 600 13px/1 'IBM Plex Mono', monospace; color: var(--violet-2); }
.pcard .arrow { position: absolute; top: 22px; right: 22px; color: var(--muted); transition: transform .25s, color .25s; }
.pcard.hover:hover .arrow { color: var(--text); transform: translate(3px,-3px); }

/* image placeholder */
.ph { position: relative; border-radius: var(--r-md); overflow: hidden; background:
  linear-gradient(135deg, rgba(77,124,255,.16), rgba(168,85,247,.14)), #0b0d1a;
  border: 1px solid var(--line); display: grid; place-items: center; color: var(--muted); font: 600 12px/1 'IBM Plex Mono', monospace; letter-spacing: .12em; text-transform: uppercase; min-height: 160px; }
.ph::after { content: attr(data-ph); opacity: .6; }

/* chips */
.chiprow { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,.03); font: 600 13px/1 'Manrope'; color: #c3c7da; cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.chip:hover { color: #fff; border-color: rgba(255,255,255,.25); }
.chip.active { color: #fff; background: var(--grad); border-color: transparent; }

/* category / brand / model cards */
.cat-card { display: flex; flex-direction: column; gap: 14px; }
.cat-card .ph { min-height: 130px; }
.cat-card .cc-name { font: 700 16px/1.2 'Manrope'; }
.cat-card .cc-count { font: 600 12px/1 'IBM Plex Mono', monospace; color: var(--muted); }
.brand-card { display: grid; place-items: center; gap: 10px; text-align: center; min-height: 110px; }
.brand-card .bc-logo { font-family: 'Geologica'; font-weight: 600; font-size: 18px; color: #d7dbf0; }
.brand-card .bc-sub { font: 600 11px/1 'IBM Plex Mono', monospace; color: var(--muted); }

/* branch card */
.branch-card { display: flex; flex-direction: column; gap: 12px; }
.branch-card .bh { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.branch-card .bh b { font: 700 16px/1.2 'Manrope'; }
.branch-card .badge { font: 700 11px/1 'IBM Plex Mono', monospace; color: #8ad9ad; padding: 5px 9px; border-radius: 999px; background: rgba(16,185,129,.12); border: 1px solid rgba(16,185,129,.3); }
.branch-card .row { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--muted); }
.branch-card .row svg { flex: 0 0 auto; }

/* article card */
.article-card { display: flex; flex-direction: column; gap: 14px; padding: 0; overflow: hidden; }
.article-card .ph { border-radius: 0; min-height: 180px; }
.article-card .ab { padding: 0 22px 22px; display: flex; flex-direction: column; gap: 10px; }
.article-card .atag { font: 700 11px/1 'IBM Plex Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--violet-2); }
.article-card h3 { font: 700 18px/1.3 'Manrope'; }
.article-card .adate { font: 500 12px/1 'Manrope'; color: var(--muted); margin-top: auto; }

/* status tracker */
.tracker { display: grid; gap: 0; margin-top: 8px; }
.tracker .tstep { display: grid; grid-template-columns: 40px 1fr; gap: 16px; padding-bottom: 26px; position: relative; }
.tracker .tstep::before { content: ''; position: absolute; left: 19px; top: 36px; bottom: -6px; width: 2px; background: var(--line); }
.tracker .tstep:last-child::before { display: none; }
.tracker .tstep .dot { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #0b0d1a; border: 2px solid var(--line); color: var(--muted); font: 700 13px/1 'IBM Plex Mono', monospace; z-index: 1; }
.tracker .tstep.done .dot { background: var(--grad); border-color: transparent; color: #fff; }
.tracker .tstep.now .dot { border-color: var(--violet); color: var(--violet-2); box-shadow: 0 0 0 4px rgba(139,92,246,.18); }
.tracker .tstep h4 { font: 700 16px/1.2 'Manrope'; }
.tracker .tstep small { display: block; color: var(--muted); font-size: 13px; margin-top: 4px; }

/* warranty table */
.wtable { width: 100%; border-collapse: collapse; border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.wtable th, .wtable td { text-align: left; padding: 16px 20px; border-bottom: 1px solid var(--line); font-size: 15px; }
.wtable th { font: 700 13px/1 'Manrope'; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); background: rgba(255,255,255,.02); }
.wtable tr:last-child td { border-bottom: none; }
.wtable td b { background: var(--grad-soft); -webkit-background-clip: text; background-clip: text; color: transparent; font-family: 'Geologica'; }

/* faq accordion */
.pfaq { display: grid; gap: 12px; }
.pfaq .qa { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--panel); overflow: hidden; }
.pfaq .q { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; cursor: pointer; font: 700 16px/1.35 'Manrope'; }
.pfaq .q .pm { flex: 0 0 auto; width: 24px; height: 24px; position: relative; transition: transform .3s; }
.pfaq .q .pm::before, .pfaq .q .pm::after { content: ''; position: absolute; left: 50%; top: 50%; background: var(--violet-2); border-radius: 2px; transform: translate(-50%,-50%); }
.pfaq .q .pm::before { width: 14px; height: 2px; }
.pfaq .q .pm::after { width: 2px; height: 14px; transition: opacity .3s; }
.pfaq .qa.open .q .pm::after { opacity: 0; }
.pfaq .a { max-height: 0; overflow: hidden; transition: max-height .35s var(--ease); }
.pfaq .a p { padding: 0 22px 22px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.pfaq .qa.open .a { max-height: 320px; }

/* form */
.pform { display: grid; gap: 16px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px; }
.pform .field { display: grid; gap: 8px; }
.pform label { font: 600 13px/1 'Manrope'; color: var(--muted); }
.pform .input { background: #0b0d1a; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; font: 500 15px/1 'Manrope'; color: var(--text); transition: border-color .2s; }
.pform .input:focus { outline: none; border-color: rgba(139,92,246,.6); }
.pform .input::placeholder { color: #5a5f7a; }

/* steps (ghost) */
.gsteps { display: grid; gap: 14px; }
.gstep { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; }
.gstep .gn { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; border: 1px dashed rgba(139,92,246,.45); font: 700 14px/1 'IBM Plex Mono', monospace; color: var(--violet-2); }
.gstep b { font: 700 16px/1.25 'Manrope'; display: block; }
.gstep small { color: var(--muted); font-size: 14px; }

/* mini cta band */
.pcta { position: relative; overflow: hidden; border-radius: var(--r-lg); padding: 48px; text-align: center;
  background: linear-gradient(120deg, #182142, #1b1530); border: 1px solid var(--line); margin: 30px 0; }
.pcta h2 { font-family: 'Geologica'; font-weight: 600; font-size: 34px; letter-spacing: -.02em; }
.pcta h2 .g { background: var(--grad-soft); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pcta p { margin: 14px auto 26px; color: var(--muted); max-width: 50ch; }
.pcta .actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* TODO marker for handoff */
.todo { display: inline-block; font: 600 11px/1 'IBM Plex Mono', monospace; letter-spacing: .08em; text-transform: uppercase; color: #b9a3ff; background: rgba(139,92,246,.12); border: 1px dashed rgba(139,92,246,.45); border-radius: 7px; padding: 5px 9px; }

/* Reveal-on-scroll is handled centrally in premium.css via .rv .r-sec → .in-view
   (added by the IntersectionObserver in site.js). The old .rv .psec/.phero{.in}
   system was orphaned — nothing added .in, so sections stayed invisible. */

/* review card */
.rev { display: flex; flex-direction: column; gap: 14px; }
.rev .rh { display: flex; align-items: center; gap: 12px; }
.rev .av { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font: 700 16px/1 'Geologica'; color: #fff; background: var(--grad); flex: 0 0 auto; }
.rev .rn b { font: 700 15px/1.2 'Manrope'; display: block; }
.rev .rn small { color: var(--muted); font-size: 12px; }
.rev .stars { color: #ffd479; letter-spacing: 2px; font-size: 14px; }
.rev p { color: #c3c7da; font-size: 14px; line-height: 1.6; }
.rev .src { font: 600 11px/1 'IBM Plex Mono', monospace; color: var(--muted); margin-top: auto; }

/* stat grid (about / service trust) */
.statgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.statg { text-align: center; padding: 26px 18px; }
.statg .sn { font-family: 'Geologica'; font-weight: 600; font-size: 40px; background: var(--grad-soft); -webkit-background-clip: text; background-clip: text; color: transparent; }
.statg .sl { color: var(--muted); font-size: 14px; margin-top: 6px; }
@media (max-width: 700px) { .statgrid { grid-template-columns: repeat(2, 1fr); } }

/* checklist of problems */
.checklist { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 26px; }
.checklist .ci { display: flex; align-items: center; gap: 11px; font-size: 15px; color: #d2d6ea; }
.checklist .ci svg { flex: 0 0 auto; }
@media (max-width: 620px) { .checklist { grid-template-columns: 1fr; } }

/* price emphasis (service hero card) */
.priceblock { display: flex; align-items: baseline; gap: 12px; }
.priceblock .pv { font-family: 'Geologica'; font-weight: 600; font-size: 40px; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.priceblock .pu { color: var(--muted); font-size: 15px; }

/* clear the floating prototype switcher */
.site-foot .foot-inner { padding-bottom: 100px; }

/* ---------------- MOBILE ---------------- */
@media (max-width: 900px) {
  .phero { padding: 18px 0 36px; }
  .pbread { padding-top: 96px; }
  .psec { padding: 52px 0; }
  .phead { margin-bottom: 30px; }
  .phead h2 { font-size: 30px; }
  .pcta { padding: 36px 24px; }
  .pcta h2 { font-size: 27px; }
}
@media (max-width: 620px) {
  .phero h1 { font-size: 34px; }
  .phero .sub { font-size: 16px; }
  .phead h2 { font-size: 25px; }
  .psec { padding: 42px 0; }
  /* tables scroll horizontally instead of squishing */
  .wtable { display: block; overflow-x: auto; white-space: nowrap; }
  /* switcher hugs the bottom, thumb-reachable */
  .pswitch { left: 12px; right: 12px; transform: none; max-width: none; justify-content: flex-start; }
  .pform { padding: 22px; }
  .pcard { padding: 18px; }
}
