/* TZ14–16: общие элементы и цвета недвижимости. Не прогонять через monochrome. */
:root {
  --gc-bg: #f7f5f0;
  --gc-ink: #14151a;
  --gc-muted: #595b64;
  --gc-green: #1a5c38;
  --gc-deep: #0f3d28;
  --gc-navy: #1e3a5f;
  --primary: #1a5c38;
  --primary-soft: #e8f2ec;
  --felt: #1a5c38;
  --felt-soft: #e8f2ec;
}

/* ТЗ15: общая шапка, равнозначные предложения и компактные карточки. */
.gc-bar-inner { max-width: 96rem; flex-wrap: wrap; }
.gc-logo, .gc-logo span { color: var(--gc-green) !important; }
.gc-top { flex: 1; }
.gc-top a { font-size: .8rem; padding: .4rem .45rem; }
.tz-menu-tour { display: grid; gap: .3rem; margin-left: auto; border: 1px solid var(--gc-green); border-radius: .8rem; padding: .65rem .85rem; background: #e8f2ec; color: var(--gc-green); cursor: pointer; font: inherit; text-align: left; }
.tz-menu-tour small { font-size: .65rem; white-space: nowrap; }
.tz-menu-tour i { display: inline-block; width: .45rem; height: .45rem; background: var(--gc-green); border-radius: 50%; }
.tz-plaques { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; }
.tz-plaques .tz-plaque { display: flex; flex-direction: column; justify-content: center; gap: .65rem; padding: 1.15rem; background: #e8f2ec !important; color: var(--gc-green) !important; border: 1px solid #c8dbce; border-radius: 1rem; }
.tz-plaques .tz-num { font-size: clamp(1.1rem,2vw,1.65rem) !important; font-weight: 800; line-height: 1.35; white-space: normal !important; }
.tz-plaques small { font-size: .72rem; color: var(--gc-muted); }
.tz-hero-transit { display: flex; justify-content: flex-end; gap: .5rem; }
.tz-hero-transit .tz-ico { width: 1.5rem; height: 1.5rem; }
.tz-terms { display: grid !important; grid-template-columns: 1fr 1fr 2fr; gap: .65rem; padding: 0 !important; list-style: none; }
.tz-terms li { padding: .85rem !important; border: 1px solid #d8dfd9 !important; border-radius: .75rem !important; background: #fff !important; color: var(--gc-ink) !important; font-size: .8rem !important; }
.tz-stock-bar { display: flex; overflow: hidden; height: .7rem; border-radius: 1rem; background: #e8f2ec; margin: .75rem 0 .4rem; }
.tz-stock-sold { background: #87928a; }
.tz-stock-free { background: var(--gc-green); }
.tz-stock-reserved { background: #d9ad43; }
.tz-availability small { display: block; font-size: .72rem; line-height: 1.5; }
.tz-sum-v { white-space: normal !important; font-size: clamp(1.15rem,2vw,1.8rem) !important; }
.tz-sum-s { line-height: 1.5; }
/* ТЗ16: шесть полных категорий; названия над метаданными и расстоянием. */
.tz-infra-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap: 1.5rem; }
.tz-infra-cat { min-width: 0; }
.tz-infra-cat li { display: grid; grid-template-columns: minmax(0,1fr) max-content; align-items: start; gap: .35rem .6rem; padding: .65rem 0; }
.tz-infra-name { font-weight: 600; line-height: 1.3; }
.tz-infra-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; min-width: 0; color: var(--gc-muted); }
.tz-infra-meta small { font-size: .75rem; line-height: 1.5; }
.tz-infra-meta .tz-logo { max-width: 5rem; height: .9rem; margin: 0; }
.tz-infra-cat li em { font-size: .75rem; white-space: nowrap; line-height: 1.5; }
.tz-infra-pending p { font-size: .85rem; color: var(--gc-muted); line-height: 1.6; }
.tz-car-summary { display: block; margin: .5rem 0; font-size: clamp(1rem,2vw,1.3rem); color: var(--gc-green); line-height: 1.5; }
.tz-slider[data-lightbox="finish-photos"] { width: 100%; max-width: 100%; }
@media(max-width: 1000px) { .tz-sum-4 { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width: 520px) { .tz-sum-4 { grid-template-columns: minmax(0,1fr); } }
.tz-village-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 1rem; }
.zv-pts { display: grid; gap: .8rem; }
.zq-eng { grid-template-columns: repeat(auto-fit,minmax(170px,1fr)) !important; }
.zq-eng-t { font-size: 1.3rem !important; line-height: 1.4; }
.tz-transport-title { font-size: clamp(1.6rem,3vw,2.5rem) !important; }
.tz-route-numbers { display: flex; flex-wrap: nowrap; align-items: center; gap: .35rem; white-space: nowrap; }
.tz-route-numbers .zt-num { font-size: .95rem; min-width: 2.7rem; font-weight: 800; }
.tz-metro-line { display: block; font-size: .72rem; margin-top: .4rem; }
.tz-metro-line > span { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; font-weight: 800; }
.line-3 > span { background: #0078bf; color: white; }
.line-8 > span { background: #ffcb31; color: #14151a; }
.tz-direction { margin: .5rem 0; font-weight: 600; }
.tz-station-trip { display: flex; gap: .75rem; align-items: center; padding: 1rem; border-radius: .75rem; background: #e8f2ec !important; color: var(--gc-green) !important; font-weight: 800; font-size: 1.1rem !important; }
.tz-parking-compare { padding: 1.2rem; border: 1px solid #c8dbce; border-radius: 1rem; background: #e8f2ec; margin-bottom: 1rem; }
.tz-parking-compare > strong { display: block; font-size: clamp(1.5rem,3vw,2.5rem); color: var(--gc-green); }
.tz-parking-compare progress { display: block; width: 100%; height: 1rem; accent-color: var(--gc-green); margin: .4rem 0 .8rem; }
.zo { grid-template-columns: minmax(0,1fr) !important; }
.zo-photo { min-height: 12rem; display: grid; place-items: center; border-radius: 1rem; border: 1px dashed #a6b8ab; background: #edf0e9; }
.zo-body { padding: 1rem 0 !important; }
.zo-contacts { grid-template-columns: minmax(0,1fr) !important; }
.zo-contacts b { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.zo-contacts [data-open-now] { display: inline-flex !important; align-items: center; margin: 0 !important; font-size: .75rem; }
.tz-contacts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .6rem; margin-top: .5rem; }
.tz-contact { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 4.5rem; padding: .7rem; border: 1px solid #c8dbce; border-radius: .75rem; background: #fff; color: var(--gc-green); text-decoration: none; font: 600 .75rem/1.5 Montserrat,sans-serif; cursor: pointer; text-align: center; overflow-wrap: anywhere; }
.tz-map-logo { display: inline-grid; place-items: center; font-size: 1.3rem; font-weight: 800; }
.tz-yandex { color: #fc3f1d; }
.tz-google { color: #4285f4; }
.tz-fin-cards { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
.tz-fin-card { display: flex; flex-direction: column; gap: .7rem; padding: 1rem !important; }
.tz-fin-card .tz-plaque { display: block; width: 100%; font-size: clamp(1.5rem,3vw,2.2rem) !important; padding: .7rem 0 !important; background: none !important; color: var(--gc-green) !important; border: none !important; }
.tz-finish-preview { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: .7rem; }
.zm-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; align-items: start; }
.zm-grid fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.tz-bank-field { grid-column: 1/-1; }
.tz-bank-field[hidden] { display: none; }
.tz-bank-field p, [data-finance-status] { font-size: .75rem; line-height: 1.6; }
.tz-calc-chips, .tz-bank-choices, .tz-payment-mode { display: flex; flex-wrap: wrap; gap: .5rem; margin: .65rem 0; }
.tz-calc-chips button, .tz-bank-choices button, .tz-payment-mode button { border: 1px solid #c8dbce; border-radius: .6rem; padding: .65rem .85rem; background: #fff; color: var(--gc-green); font: 600 .8rem Montserrat,sans-serif; cursor: pointer; }
.tz-bank-choices small { display: block; font-size: .65rem; margin-top: .35rem; }
button[aria-pressed="true"] { background: var(--gc-green) !important; color: #fff !important; }
.tz-tour-dialog { width: min(38rem,calc(100% - 2rem)); max-height: calc(100svh - 2rem); overflow: auto; border: 1px solid #c8dbce; border-radius: 1.25rem; padding: 1.5rem; background: var(--gc-bg); color: var(--gc-ink); }
.tz-tour-dialog::backdrop { background: rgba(15,35,25,.6); }
.tz-tour-close { float: right; border: 0; background: none; font-size: 2rem; cursor: pointer; }
.tz-tour-active { overflow: hidden; }
.tz-tour-dialog .ze-days { flex-wrap: wrap; }
.tz-tour-dialog .ze-row { flex-wrap: wrap; }
.tz-tour-dialog input[type="tel"] { min-width: 0; }
@media(max-width: 1000px) {
  .gc-bar-inner { gap: .5rem; }
  .gc-top { order: 3; flex-basis: 100%; margin-left: 0; }
  .tz-menu-tour { padding: .5rem .6rem; font-size: .7rem; }
  .tz-contacts { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width: 600px) {
  .gc-logo { font-size: 1rem; }
  .tz-plaques, .tz-terms, .tz-fin-cards, .zm-grid { grid-template-columns: minmax(0,1fr) !important; }
  .tz-plaques .tz-plaque { padding: 1rem; }
  .tz-hero-transit { margin-top: -.4rem; }
  .tz-tour-dialog { padding: 1rem; }
  .tz-tour-dialog .ze { padding: 0; }
}

html { scroll-behavior: smooth; }

html,
body {
  background: var(--gc-bg) !important;
  background-image: none !important;
  color: var(--gc-ink);
}

body img,
body svg { filter: none !important; }

[id] { scroll-margin-top: 5.75rem; }

a { color: var(--gc-green); }
a:hover { color: var(--gc-deep); }

.gc-bar {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--gc-bg);
  box-shadow: none;
  border: 0;
}

.gc-bar-inner {
  display: flex;
  align-items: center;
  gap: 0.75rem 1.25rem;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0.85rem 1.25rem;
}

.gc-logo {
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  color: var(--gc-green);
  font-weight: 800;
  font-size: 1.35rem;
  letter-spacing: -0.03em;
  text-decoration: none;
  line-height: 1;
}

.gc-logo:hover { color: var(--gc-deep); }

.gc-top {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  min-width: 0;
  overflow-x: auto;
  flex-wrap: nowrap;
  margin-left: 0.5rem;
}

.gc-top a {
  flex: 0 0 auto;
  color: var(--gc-muted);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.4rem 0.7rem;
  border-radius: 0;
  background: none;
  white-space: nowrap;
}

.gc-top a:hover { color: var(--gc-ink); }

.gc-top a[aria-current="page"] {
  color: var(--gc-green);
  box-shadow: inset 0 -2px 0 var(--gc-green);
}

.gc-frame {
  display: grid;
  grid-template-columns: 12.25rem minmax(0, 1fr);
  gap: 1.5rem 2.25rem;
  align-items: start;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0.5rem 1.25rem 3rem;
}

.gc-main,
.gc-main.container,
.gc-frame > main,
.gc-frame > main.container {
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
}

.gc-toc {
  position: sticky;
  top: 4.75rem;
  max-height: calc(100svh - 6rem);
  overflow: auto;
}

.gc-toc nav {
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 1.5rem;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.7);
  padding: 0.85rem 0.75rem;
  backdrop-filter: blur(16px);
}

.gc-toc p {
  margin: 0;
  padding: 0.15rem 0.45rem 0.55rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gc-muted);
}

.gc-toc a {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.35rem 0.4rem;
  border-radius: 0.75rem;
  color: var(--gc-muted);
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
}

.gc-toc a:hover,
.gc-toc a.is-on {
  background: rgba(255, 255, 255, 0.7);
  color: var(--gc-ink);
}

.gc-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  border-radius: 0.35rem;
  color: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.gc-ico svg { width: 0.9rem; height: 0.9rem; display: block; }
.gc-ico.g { background: #1a5c38; }
.gc-ico.n { background: #1e3a5f; }
.gc-ico.d { background: #0f3d28; }

.gc-word { color: var(--gc-green); font-weight: 700; }

/* Glance / stat cards: крупная зелёная цифра, подпись, боковая тень. */
.tz-hero .tz-plaque,
.tz-plaques > .tz-plaque,
.tz-sum-card,
.tz-price-big,
.tz-glance .tz-card,
.cards > .card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: #fff !important;
  color: var(--gc-ink) !important;
  border: 2px solid #14151a !important;
  border-radius: 2px !important;
  box-shadow: 3px 3px 0 0 #14151a !important;
  padding: 0.95rem 1rem !important;
}

.tz-hero .tz-plaque .tz-num,
.tz-plaques > .tz-plaque .tz-num,
.tz-sum-v,
.tz-price-big b,
.cards > .card .num {
  color: var(--gc-deep) !important;
  font-size: clamp(1.7rem, 2.4vw, 2.15rem) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.03em;
}

.tz-hero .tz-plaque small,
.tz-plaques > .tz-plaque small,
.tz-sum-k,
.tz-sum-s,
.tz-price-big span {
  color: var(--gc-ink);
  font-weight: 700;
}

.tz-sum-s,
.tz-hero .tz-plaque small,
.tz-plaques > .tz-plaque small,
.tz-price-big span {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gc-muted);
  text-transform: none;
  letter-spacing: 0;
}

.tz-plaque-green {
  background: #fff !important;
  color: var(--gc-ink) !important;
  border-color: #14151a !important;
}

.tz-btn-primary,
.zo-cta,
.ze button {
  background: var(--gc-green) !important;
  border-color: var(--gc-green) !important;
  color: #fff !important;
}

.tz-btn-primary:hover,
.zo-cta:hover { background: var(--gc-deep) !important; }

.tz-btn-ghost {
  background: transparent;
  border: 2px solid #14151a;
  color: var(--gc-ink);
  box-shadow: 3px 3px 0 0 #14151a;
  border-radius: 2px;
}

/* FAQ: ответы зелёные, как базовый цвет бренда. */
.zf details { border-bottom: 1px solid rgba(26, 92, 56, 0.22); }
.zf summary { color: var(--gc-ink); font-weight: 700; }
.zf p { color: var(--gc-green) !important; font-weight: 600; }

/* Дорога: не перекраивать таблицы, вернуть узнаваемые цвета номеров. */
.zt-metro {
  background: #0078be !important;
  color: #fff !important;
  border-color: #0078be !important;
  border-radius: 50% !important;
}
.zt-num {
  color: var(--gc-green) !important;
  border-color: var(--gc-green) !important;
}
.zt-h i,
.zt-rows em,
.tz-bus em { color: var(--gc-green) !important; }

footer .green,
footer span.gc-word { color: var(--gc-green); }

@media (max-width: 960px) {
  .gc-frame { display: block; padding-top: 0.25rem; }
  .gc-toc {
    position: sticky;
    top: 3.35rem;
    z-index: 30;
    max-height: none;
    margin: 0 0 1rem;
    overflow: visible;
  }
  .gc-toc nav {
    display: flex;
    gap: 0.25rem;
    overflow-x: auto;
    border-radius: 1rem;
    padding: 0.45rem;
  }
  .gc-toc p { display: none; }
  .gc-toc a { flex: 0 0 auto; white-space: nowrap; }
}

/* Завершающие правила предложений: приоритет над прежними карточками ТЗ14. */
.tz-hero .tz-plaques { grid-template-columns: repeat(3,minmax(0,1fr)) !important; max-width: none; }
.tz-hero .tz-plaques > .tz-plaque { background: #e8f2ec !important; border: 1px solid #c8dbce !important; border-radius: 1rem !important; box-shadow: none !important; padding: 1.15rem !important; }
.tz-hero .tz-plaques > .tz-plaque .tz-num { font-size: clamp(1.1rem,2vw,1.65rem) !important; line-height: 1.35 !important; letter-spacing: -.02em; }
.tz-sum-card .tz-sum-v { font-size: clamp(1.15rem,2vw,1.8rem) !important; line-height: 1.3 !important; }
.gc-top a { font-size: .8rem; padding: .4rem .45rem; }
footer .footer-inner > div:first-child { color: var(--gc-green); }
.tz-contact .tz-ico { flex: 0 0 1.35rem; }
.tz-map-logo { width: 1.5rem; height: 1.5rem; vertical-align: middle; }
.ze-day:focus-within, .ze-chip:focus-within { outline: 2px solid var(--gc-green); outline-offset: 3px; border-radius: .5rem; }
.tz-address { font-size: clamp(.75rem,1.4vw,1rem); }
.tz-terms { border: 0; background: transparent; }
.gc-bar-inner { max-width: 96rem; }
@media(max-width: 1000px) { .gc-top { margin-left: 0; } }
@media(max-width: 960px) { .gc-toc { top: 7.5rem; } [id] { scroll-margin-top: 12rem; } }
@media(max-width: 600px) {
  .tz-hero .tz-plaques { grid-template-columns: minmax(0,1fr) !important; }
  .tz-hero .tz-plaques > .tz-plaque { padding: 1rem !important; }
  .tz-hero .tz-plaques > .tz-plaque .tz-num { font-size: 1.25rem !important; }
  .tz-hero .tz-plaques > .tz-plaque .tz-hero-transit { align-self: flex-end; }
}

/* ТЗ voice msg81–83: крупный блок обследования, Основа, инфра, коммерция */
.zq-survey-block{display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:1.25rem 1.5rem;margin:1.25rem 0 1.5rem;padding:1.25rem;background:#fff;border:1px solid rgba(20,21,26,.12);border-radius:12px;box-shadow:0 1px 2px rgba(20,21,26,.04)}
.zq-survey-visual{min-width:0}
.zq-survey-visual img{width:100%;height:auto;display:block;border-radius:10px}
.zq-eyebrow{margin:0 0 .35rem;font-size:.6875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#1a5c38}
.zq-survey-body h3{margin:0 0 .6rem;font-size:1.25rem;font-weight:800;line-height:1.25;letter-spacing:-.015em;max-width:42rem}
.zq-survey-lead{margin:0 0 1rem;font-size:.875rem;line-height:1.6;max-width:42rem;color:#333}
.zq-survey-lead strong{color:#1a5c38;font-weight:700}
.zq-survey-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem .9rem;margin:0 0 1.1rem}
.zq-survey-facts div{margin:0;padding:.55rem .7rem;background:#f7f5f0;border-radius:10px;border:1px solid rgba(20,21,26,.08)}
.zq-survey-facts dt{margin:0;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#595b64}
.zq-survey-facts dd{margin:.2rem 0 0;font-size:.9rem;line-height:1.35}
.zq-survey-facts strong{font-weight:800;color:#14151a}
.zq-contractor{padding:1rem;border-radius:10px;background:#e8f2ec;border:1px solid #c8dbce}
.zq-contractor h4{margin:0 0 .5rem;font-size:1rem;font-weight:800}
.zq-contractor-name{margin:0 0 .45rem;font-size:.95rem}
.zq-sro{margin:.2rem 0 .55rem;padding-left:1.1rem;font-size:.85rem;line-height:1.45}
.zq-sro b{font-weight:700}
.zq-contractor p{margin:.25rem 0;font-size:.85rem;line-height:1.45;max-width:none}
.zq-nostroy{display:inline-block;margin-top:.55rem;font-weight:700;color:#1a5c38}
.zq-dev{padding:1.25rem;background:#fff;border:1px solid rgba(20,21,26,.12);border-radius:12px;box-shadow:0 1px 2px rgba(20,21,26,.04)}
.zq-dev-name{margin:.2rem 0 .75rem;font-size:1.35rem;font-weight:800;color:#1a5c38;letter-spacing:-.02em}
.zq-dev-text{margin:0;font-size:.875rem;line-height:1.6;max-width:42rem;color:#333}
.zq-comm{margin-top:1.25rem;padding:1.15rem 1.25rem;background:#fff;border:1px solid rgba(20,21,26,.12);border-radius:12px}
.zq-comm h3{margin:0 0 .5rem;font-size:1.15rem;font-weight:800}
.zq-comm p{margin:0 0 .7rem;font-size:.875rem;line-height:1.55;max-width:42rem}
.zq-comm-list{margin:0;padding-left:1.15rem;font-size:.875rem;line-height:1.55}
.zq-comm-list li{margin:.2rem 0}
.zq-comm-note{margin:.7rem 0 0!important;font-size:.75rem!important;color:#595b64}
.tz-infra-lead{margin:0 0 .9rem;font-size:.875rem;color:#595b64}
.tz-infra-row,.tz-infra-pvz{display:flex!important;align-items:center;justify-content:space-between;gap:.65rem;padding:.45rem 0!important;border-bottom:1px dashed rgba(20,21,26,.1)}
.tz-infra-main{display:flex;align-items:center;gap:.45rem;min-width:0;flex:1}
.tz-infra-row .tz-infra-name{display:flex;flex-direction:column;gap:.05rem;font-weight:600;line-height:1.3;min-width:0}
.tz-infra-row .tz-infra-name small{font-weight:400;font-size:.75rem;color:#595b64}
.tz-infra-pvz .tz-logo-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.55rem;min-width:0}
.tz-infra-pvz .tz-logo{height:18px;max-width:4.5rem;margin:0}
.tz-infra-cat h3{display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.tz-infra-cat h3 i{flex:none}
@media(max-width:720px){
  .zq-survey-block{grid-template-columns:1fr}
  .zq-survey-facts{grid-template-columns:1fr}
  .zq-survey-visual{max-width:16rem}
}
