/* Марс Прокат: сравнение прокатов. Мир «Акт приёма-передачи», режим «ведомость».
   Токены — раздел 2.2 ТЗ дизайна v2. Контраст на --paper записан в комментариях. */

@font-face{font-family:'Geologica';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/Geologica-400_500.woff2) format('woff2')}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400 500;font-display:swap;src:url(../fonts/GolosText-400_500.woff2) format('woff2')}
/* Один файл на семейство: кириллица + Basic Latin + цифры + пунктуация + ₽ (собран из google/fonts, OFL), wght 400–500.
   Метрический фолбэк, чтобы подмена шрифта не двигала строки */
@font-face{font-family:'Golos Fallback';src:local('Arial');size-adjust:105.6%;ascent-override:92.8%;descent-override:20.8%;line-gap-override:0%}
@font-face{font-family:'Geologica Fallback';src:local('Arial');size-adjust:108.4%;ascent-override:90%;descent-override:25.4%;line-gap-override:0%}

:root {
  /* «Марсианский закат»: пыльно-розовое небо, коричневый базальт, холодный голубой закат как действие, ржавчина в отметках и линиях.
     Контраст на --paper посчитан по WCAG и записан справа. */
  --paper: #ffffff;          /* холст: белый (Стас 07.10.2026) */
  --surface: #f6f5f3;        /* поля, шторки, выпадашки, плашки */
  --ink: #2e201b;            /* коричневый базальт, 12,3:1 */
  --ink-2: #5d534f;          /* ≈7:1 на белом */
  --line: #e7e3df;           /* декор */
  --line-control: #8c8480;   /* ≈3,6:1 на белом */
  --pen: #2c5a78;            /* голубой закат: ссылки, кнопки, выбранное, 5,8:1; белый на ней 7,4:1 */
  --pen-hover: #20475f;      /* белый 9,9:1 */
  --pen-tint: #e6eef3;       /* --pen на нём 5,8:1 */
  --rule: #7a3519;           /* ржавая линия графы бланка, 7,0:1 */
  --mark: #a6431f;           /* ржавая отметка ручкой: овал минимальной цены, номера шагов, 4,8:1 */
  --ok: #2f6b45; --ok-tint: #e2ebde;            /* 5,2:1 */
  --warn: #7e5710; --warn-tint: #f2e2cb;        /* охра, 5,1:1 */
  --danger: #9c1f3a; --danger-tint: #f5dce0;    /* малиновый, 6,2:1; от ржавчины отличается иконкой, текстом и пунктиром */
  --white: #fff;
  --chev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2363504a' stroke-width='1.5'/%3E%3C/svg%3E");

  --display: "Geologica", "Geologica Fallback", system-ui, sans-serif;
  --text: "Golos Text", "Golos Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;

  --wrap: 1200px;
  --gutter: 24px;
  --section-y: 48px;
  --header-h: 64px;
  --radius: 2px;
  --shadow-pop: 0 8px 24px rgba(60, 30, 22, .14);

  --dur-fast: 150ms;
  --dur-base: 180ms;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-drawer: cubic-bezier(.32, .72, 0, 1);

  color-scheme: light;
  accent-color: var(--pen);
  scroll-padding-top: 16px;
}
@media (max-width: 767px) {
  :root { --gutter: 16px; --section-y: 40px; --header-h: 56px; }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
main { overflow-x: clip; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 17px/1.6 var(--text);
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
@media (max-width: 767px) { body { font-size: 16px; line-height: 1.55; } }
img { max-width: 100%; height: auto; display: block; }
svg { flex: none; }
::selection { background: var(--pen); color: var(--white); }
:focus-visible { outline: 2px solid var(--pen); outline-offset: 2px; }
button, input, select, textarea { font: inherit; color: inherit; }
button { touch-action: manipulation; }

a { color: var(--pen); text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
    transition: color var(--dur-fast) var(--ease-out), text-decoration-thickness var(--dur-fast) var(--ease-out); }
a:hover { color: var(--pen-hover); text-decoration-thickness: 2px; }

h1, h2, h3 { font-family: var(--display); font-weight: 500; text-wrap: balance; margin: 0; color: var(--ink); }
h1 { font-size: 40px; line-height: 1.15; letter-spacing: -0.02em; }
h2 { font-size: 28px; line-height: 1.2; letter-spacing: -0.012em; }
h3 { font-size: 20px; line-height: 1.3; letter-spacing: -0.005em; }
.display { font-size: 48px; line-height: 1.1; }
@media (max-width: 767px) {
  h1 { font-size: 28px; line-height: 1.2; }
  .display { font-size: 32px; line-height: 1.15; }
  h2 { font-size: 22px; line-height: 1.25; }
  h3 { font-size: 18px; }
}
p { margin: 0 0 12px; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }
strong, b { font-weight: 500; }

.wrap { max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; background: var(--pen); color: var(--white); padding: 10px 14px; z-index: 60; border-radius: var(--radius); }
.skip:focus { top: 12px; color: var(--white); }
.muted { color: var(--ink-2); }
.small { font-size: 14px; line-height: 1.4; }

/* ───────── Иконки ───────── */
.i { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.5; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.i--16 { width: 16px; height: 16px; }

/* ───────── Шапка ───────── */
.hdr { border-bottom: 1px solid var(--line); background: var(--paper); position: relative; z-index: 30; }
.hdr__row { display: flex; align-items: center; gap: 28px; height: var(--header-h); }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; min-height: 44px; }
.brand:hover { color: var(--ink); }
.brand__mark { color: var(--pen); width: 28px; height: 28px; }
.brand__name { font: 500 18px/1.1 var(--display); letter-spacing: -0.01em; white-space: nowrap; }
.brand__desc { font-size: 14px; color: var(--ink-2); white-space: nowrap; }
.brand__txt { display: flex; align-items: baseline; gap: 10px; }
.nav { margin-left: auto; }
.nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 24px; }
.nav a { color: var(--ink); text-decoration: none; font-size: 16px; padding: 10px 0; border-bottom: 1px solid transparent;
         transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.nav a:hover { color: var(--pen); border-bottom-color: currentColor; }
.nav a[aria-current="page"] { border-bottom-color: var(--pen); }
.city-btn {
  display: inline-flex; align-items: center; gap: 8px; min-width: 176px; height: 40px; padding: 0 12px;
  background: none; border: 1px solid var(--line-control); border-radius: var(--radius); cursor: pointer; color: var(--pen);
  font-size: 16px; font-weight: 500; transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.city-btn:hover { background: var(--pen-tint); border-color: var(--pen); }
.city-btn .i { color: var(--pen); }
.city-btn__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-btn { display: none; width: 44px; height: 44px; background: none; border: 0; padding: 0; cursor: pointer; color: var(--ink); align-items: center; justify-content: center; }
.menu-btn:hover { color: var(--pen); }

@media (max-width: 1099px) {
  .nav { display: none; }
  .menu-btn { display: inline-flex; }
  .city-btn { margin-left: auto; }
}
@media (max-width: 767px) {
  .hdr__row { gap: 8px; }
  .brand__txt { flex-direction: column; gap: 0; align-items: flex-start; }
  .brand__name { font-size: 17px; }
  .brand__desc { font-size: 14px; line-height: 1.3; }
  .brand__mark { width: 24px; height: 24px; }
  .city-btn { min-width: 0; max-width: 132px; height: 44px; padding: 0 10px; font-size: 15px; }
  .menu-btn { margin-right: -10px; }
}

/* ───────── Крошки ───────── */
.crumbs { padding-top: 20px; }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; gap: 0 8px; font-size: 14px; color: var(--ink-2); white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
.crumbs ol::-webkit-scrollbar { display: none; }
.crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--line-control); }
.crumbs a { color: var(--ink-2); text-decoration: none; }
.crumbs a:hover { color: var(--pen); text-decoration: underline; }
@media (pointer: coarse) { .crumbs a, .crumbs span { display: inline-block; padding: 12px 0; } .crumbs { padding-top: 4px; } }

/* ───────── Заголовок страницы ───────── */
.head { padding-top: 16px; }
.head h1 { max-width: 22em; }
.lede { font-size: 18px; line-height: 1.55; max-width: 760px; margin: 14px 0 0; }
.updated { font-size: 14px; color: var(--ink-2); margin: 8px 0 0; }
@media (max-width: 767px) { .lede { font-size: 16px; } .head { padding-top: 4px; } }
.head:last-child, main > .head { padding-bottom: 8px; }

/* ───────── Графы: подпись над значением, линия снизу ───────── */
.grafy { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 24px 0 0; padding: 0; border-top: 1px solid var(--rule); }
.grafy--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grafy--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grafa { padding: 10px 16px 12px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.grafa + .grafa { padding-left: 16px; border-left: 1px solid var(--line); }
.grafa dt { font-size: 14px; line-height: 1.4; color: var(--ink-2); }
.grafa dd { margin: 4px 0 0; font: 500 20px/1.3 var(--display); font-variant-numeric: tabular-nums; letter-spacing: -0.005em; }
.grafa dd small { display: block; font: 400 14px/1.4 var(--text); color: var(--ink-2); margin-top: 2px; letter-spacing: 0; }
.grafa dd a { color: var(--pen); }
.grafa--text dd { font: 400 17px/1.4 var(--text); }
@media (max-width: 767px) {
  .grafy, .grafy--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grafa:nth-child(odd) { padding-left: 0; border-left: 0; }
  .grafa:nth-child(even) { padding-left: 12px; border-left: 1px solid var(--line); }
  .grafa dd { font-size: 18px; }
  .grafa--text dd { font-size: 16px; }
  .grafy--3 .grafa:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* ───────── Кнопки ───────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px;
  background: var(--pen); color: var(--white); text-decoration: none; border: 1px solid var(--pen); border-radius: var(--radius);
  font: 500 16px/1.25 var(--text); cursor: pointer; text-align: center;
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform 100ms var(--ease-out);
}
.btn:hover { background: var(--pen-hover); border-color: var(--pen-hover); color: var(--white); text-decoration: none; }
.btn:active { transform: scale(.98); }
.btn[aria-disabled="true"], .btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.btn[aria-busy="true"] { cursor: progress; }
.btn--ghost { background: transparent; color: var(--pen); border-color: var(--pen); }
.btn--ghost:hover { background: var(--pen-tint); color: var(--pen-hover); border-color: var(--pen-hover); }
.btn--block { width: 100%; }
.btn--plain { background: none; border-color: transparent; color: var(--pen); padding: 0 8px; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; }
.btn--plain:hover { background: none; color: var(--pen-hover); border-color: transparent; text-decoration-thickness: 2px; }
@media (max-width: 767px) { .btn { min-height: 52px; } }
.btn-note { font-size: 14px; line-height: 1.4; color: var(--ink); margin: 8px 0 0; }
.ad-label { font-size: 14px; line-height: 1.4; color: var(--ink-2); margin: 2px 0 0; min-height: 20px; }
[data-ad-label="off"] .ad-label { visibility: hidden; }
.cta { margin-top: 24px; max-width: 420px; }
.cta .btn { min-width: 280px; }
@media (max-width: 767px) { .cta { max-width: none; } .cta .btn { width: 100%; min-width: 0; } }

/* ───────── Секции ───────── */
.section { padding: var(--section-y) 0; border-top: 1px solid var(--line); }
.section--flush { border-top: 0; }
.section > .wrap > h2 { margin-bottom: 20px; }
.sec-lead { max-width: 760px; margin: -8px 0 24px; color: var(--ink-2); }
.disclosure { font-size: 14px; line-height: 1.45; color: var(--ink-2); margin: 16px 0 0; max-width: 860px; }
.sources { font-size: 14px; line-height: 1.45; color: var(--ink-2); margin: 16px 0 0; }
.sources a, .disclosure a { color: var(--ink-2); }
.sources a:hover, .disclosure a:hover { color: var(--pen); }
.prose { max-width: 760px; }
.prose h3 { margin: 24px 0 8px; }
.prose h2 { margin: 36px 0 10px; }
.prose > h2:first-child { margin-top: 0; }
.prose ul, .prose ol { padding-left: 1.2em; margin: 0 0 12px; }
.prose li { margin: 4px 0; }
.prose li::marker { color: var(--ink-2); }

.split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; }
.split--57 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.split--84 { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
@media (max-width: 899px) { .split, .split--57, .split--84 { grid-template-columns: minmax(0, 1fr); gap: 28px; } }

/* врезка «Коротко» — граф-список, не коробка */
.kratko { border-top: 1px solid var(--rule); padding-top: 12px; }
.kratko h3 { font-size: 17px; font-family: var(--text); font-weight: 500; margin-bottom: 4px; }
.kratko ul { list-style: none; margin: 0; padding: 0; }
.kratko li { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.45; }

/* ───────── Поиск: город или аэропорт + срок (даты выбирают на сайте партнёра) ───────── */
.search { margin-top: 24px; max-width: 640px; }
.seg { display: inline-flex; gap: 20px; margin: 0 0 8px; padding: 0; border: 0; }
.seg label { position: relative; cursor: pointer; }
.seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.seg span { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; color: var(--ink-2); border-bottom: 2px solid transparent;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.seg label:hover span { color: var(--ink); }
.seg input:checked + span { color: var(--ink); border-bottom-color: var(--pen); }
.seg input:focus-visible + span { outline: 2px solid var(--pen); outline-offset: 2px; }
.search__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-top: 1px solid var(--rule); background: var(--surface); }
.search__row > .fld-wrap { border-bottom: 1px solid var(--line-control); padding: 8px 14px 6px; min-width: 0; position: relative; }
.search__go { display: flex; align-items: stretch; }
.search__go .btn { min-height: 64px; border-radius: 0; padding: 0 28px; }
.fld-label { display: block; font-size: 14px; line-height: 1.3; color: var(--ink-2); }
.fld-input { display: block; width: 100%; border: 0; background: transparent; padding: 2px 0 4px; font-size: 17px; line-height: 1.4; color: var(--ink); min-height: 32px; border-radius: 0; }
.fld-input::placeholder { color: var(--ink-2); opacity: 1; }
.fld-input:focus { outline: 0; }
.fld-wrap:focus-within { box-shadow: inset 0 -2px 0 var(--pen); }
.check { display: inline-flex; align-items: flex-start; gap: 10px; min-height: 44px; cursor: pointer; font-size: 16px; padding-top: 10px; }
.check input { width: 22px; height: 22px; margin: 0; accent-color: var(--pen); flex: none; }
.radio { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
.radio input { width: 20px; height: 20px; margin: 0; accent-color: var(--pen); }
.fld-err { font-size: 14px; font-weight: 500; color: var(--danger); margin: 6px 0 0; display: flex; gap: 6px; align-items: flex-start; }
.fld-err[hidden] { display: none; }
@media (max-width: 599px) {
  .search__row { grid-template-columns: 1fr; }
  .search__go { padding-top: 12px; background: var(--paper); }
  .search__go .btn { width: 100%; min-height: 52px; border-radius: var(--radius); }
  .fld-input { min-height: 44px; }
}

/* автоподсказка */
.ac { position: absolute; left: -1px; right: -1px; top: 100%; z-index: 40; background: var(--surface); box-shadow: var(--shadow-pop); border: 1px solid var(--line);
  max-height: 380px; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 6px 0; list-style: none; min-width: 300px;
  opacity: 0; transform: translateY(4px); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.ac.is-open { opacity: 1; transform: none; }
.ac[hidden] { display: none; }
.ac__grp { font-size: 14px; color: var(--ink-2); padding: 8px 14px 4px; }
.ac__opt { display: flex; flex-direction: column; padding: 8px 14px; cursor: pointer; min-height: 44px; justify-content: center; }
.ac__opt[aria-selected="true"], .ac__opt:hover { background: var(--pen-tint); }
.ac__name { font-size: 17px; color: var(--ink); }
.ac__name mark { background: var(--pen-tint); color: inherit; font-weight: 500; }
.ac__meta { font-size: 14px; color: var(--ink-2); }
.ac__none { padding: 10px 14px; font-size: 16px; }



/* ───────── Строка классов ───────── */
.cstrip { margin: 20px 0 0; padding: 0; list-style: none; display: flex; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  overflow-x: auto; scroll-snap-type: x proximity; overscroll-behavior-x: contain; scrollbar-width: thin; }
.cstrip li { flex: 1 0 auto; scroll-snap-align: start; }
.cstrip li + li { border-left: 1px solid var(--line); }
.cstrip a { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 10px 18px; min-height: 64px; text-decoration: none; color: var(--ink); white-space: nowrap;
  transition: background-color var(--dur-fast) var(--ease-out); }
.cstrip a:hover { background: none; }
.cstrip a:hover .cstrip__name { color: var(--pen); text-decoration: underline; text-underline-offset: 3px; }
.cstrip__name { font-size: 16px; color: var(--pen); }
.cstrip__price { font: 500 16px/1.3 var(--display); font-variant-numeric: tabular-nums; color: var(--ink); }
.cstrip__price small { font: 400 14px var(--text); color: var(--ink-2); }
.cstrip li:first-child a { padding-left: 0; }
@media (max-width: 767px) { .cstrip li:first-child a { padding-left: 0; } .cstrip li { flex: 0 0 auto; } }

/* чипы */
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 12px; border: 1px solid var(--line-control); border-radius: var(--radius);
  color: var(--ink); text-decoration: none; font-size: 15px; background: transparent; cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.chip:hover { border-color: var(--pen); color: var(--pen); }
.chip--on { background: transparent; border-color: var(--pen); color: var(--ink); box-shadow: inset 0 0 0 1px var(--pen); }
@media (pointer: coarse) { .chip { min-height: 44px; } }

/* ───────── Панель партнёров ───────── */
.partners { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.prow { display: grid; grid-template-columns: minmax(150px, 2fr) minmax(0, 6fr) minmax(220px, 3fr); gap: 16px 24px; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: start; }
.prow__name { font: 500 20px/1.3 var(--display); }
.prow__name a { color: var(--ink); text-decoration: none; }
.prow__name a:hover { color: var(--pen); text-decoration: underline; }
.prow__type { font-size: 14px; color: var(--ink-2); margin-top: 2px; }
.prow .grafy { margin: 0; border-top: 0; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.5fr); }
.prow .grafa { padding-top: 0; border-bottom: 0; }
.prow .grafa dd { font-size: 18px; }
.prow__act .btn { width: 100%; }
@media (max-width: 899px) {
  .prow { grid-template-columns: 1fr; gap: 12px; }
  .prow .grafy { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .prow .grafa:nth-child(odd), .prow .grafa:nth-child(even) { padding-left: 12px; border-left: 1px solid var(--line); }
  .prow .grafa:first-child { padding-left: 0; border-left: 0; }
}
@media (max-width: 479px) { .prow .grafy { grid-template-columns: 1fr 1fr; } .prow .grafa:nth-child(3) { padding-left: 0; border-left: 0; grid-column: 1 / -1; } }

/* ───────── Карточки классов (без рамки) ───────── */
.ccards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.ccard { display: flex; flex-direction: column; min-width: 0; }
.ccard__img { background: var(--paper); aspect-ratio: 3 / 2; overflow: hidden; margin: 0 0 12px; border-bottom: 1px solid var(--line); }
.ccard__img img { width: 100%; height: 100%; object-fit: contain; transition: filter var(--dur-base) var(--ease-out); }
.ccard:hover .ccard__img img { filter: brightness(.96); }
 [data-palette] .tile:hover .tile__img:not(.tile__img--photo) img { filter: brightness(1.0) contrast(1.08); }
.ccard__name { font: 500 20px/1.3 var(--display); color: var(--ink); text-decoration: none; }
a.ccard__name { color: var(--ink); }
a.ccard__name:hover { color: var(--pen); text-decoration: underline; text-decoration-thickness: 1px; }
.ccard__eg { font-size: 14px; color: var(--ink-2); margin: 4px 0 0; }
.ccard__spec { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 8px 0 0; font-size: 15px; color: var(--ink-2); }
.ccard__spec span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ccard__price { font: 500 24px/1.2 var(--display); font-variant-numeric: tabular-nums; margin: 12px 0 0; letter-spacing: -0.01em; }
.ccard__base { font-size: 14px; color: var(--ink-2); margin: 2px 0 0; }
.ccard__act { margin-top: auto; padding-top: 14px; }
.ccard__act .btn { width: 100%; }
@media (max-width: 1023px) { .ccards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .ccards--scroll { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter);
    overscroll-behavior-x: contain; touch-action: pan-x pan-y; scrollbar-width: none; }
  .ccards--scroll::-webkit-scrollbar { display: none; }
  .ccards--scroll .ccard { flex: 0 0 82%; scroll-snap-align: start; }
  .ccard__price { font-size: 22px; }
}

/* ───────── Ведомость ───────── */
.tbl-wrap { overflow-x: auto; overscroll-behavior-x: contain; }
.vedomost, .tbl { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.vedomost caption, .tbl caption { caption-side: bottom; text-align: left; font-size: 14px; color: var(--ink-2); padding-top: 12px; line-height: 1.45; }
.vedomost th, .tbl th { text-align: left; font-weight: 400; font-size: 14px; color: var(--ink-2); padding: 0 16px 8px 0; border-bottom: 1px solid var(--rule); vertical-align: bottom; }
.vedomost td, .tbl td { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--line); vertical-align: baseline; }
.vedomost th:last-child, .vedomost td:last-child, .tbl th:last-child, .tbl td:last-child { padding-right: 0; }
.vedomost tbody th, .tbl tbody th { font-size: 17px; color: var(--ink); padding: 14px 16px 14px 0; border-bottom: 1px solid var(--line); vertical-align: baseline; }
.vedomost a, .tbl a { color: var(--pen); }
.tbl tbody tr { transition: background-color var(--dur-fast) var(--ease-out); }
.tbl--rows tbody tr:hover { background: var(--surface); }
.price { font: 500 20px/1.2 var(--display); white-space: nowrap; letter-spacing: -0.005em; }
.price small { font: 400 14px var(--text); color: var(--ink-2); }
.cell-r { text-align: right; }
.vedomost .cell-r, .tbl .cell-r { text-align: right; }
.min-mark { position: relative; display: inline-block; }
.oval { position: absolute; left: -12px; top: -6px; width: calc(100% + 24px); height: calc(100% + 12px); pointer-events: none; overflow: visible; }
.oval path { fill: none; stroke: var(--mark); stroke-width: 1.6; stroke-linecap: round; }
.js .oval path { stroke-dasharray: 300; stroke-dashoffset: 300; }
.js .oval.is-drawn path { stroke-dashoffset: 0; transition: stroke-dashoffset 600ms var(--ease-out); }
.tbl-more summary { cursor: pointer; color: var(--pen); padding: 12px 0; min-height: 44px; list-style: none; font-size: 16px; text-decoration: underline; text-underline-offset: 3px; }
.tbl-more summary::-webkit-details-marker { display: none; }
.tbl-more[open] summary { display: none; }
@media (max-width: 767px) {
  /* ведомость в виде карточек-строк */
  .vedomost--cards thead { display: none; }
  .vedomost--cards, .vedomost--cards tbody, .vedomost--cards tr { display: block; }
  .vedomost--cards tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .vedomost--cards tbody tr:first-child { border-top: 1px solid var(--rule); }
  .vedomost--cards td, .vedomost--cards tbody th { display: block; border: 0; padding: 0; }
  .vedomost--cards [data-col="name"] { grid-column: 1; font-size: 17px; }
  .vedomost--cards [data-col="price"] { grid-column: 2; grid-row: 1 / span 2; text-align: right; align-self: center; }
  .vedomost--cards [data-col="meta"] { grid-column: 1; font-size: 14px; color: var(--ink-2); }
  .vedomost--cards [data-col="act"] { grid-column: 1 / -1; font-size: 15px; padding-top: 4px; }
  .vedomost--cards [data-col="hide-m"] { display: none; }
  .vedomost--cards caption { display: block; }
}

/* ───────── Плитки условий (данные со снимка) ───────── */
/* .ctiles и .prov — компоненты ТЗ 5.4 и 5.9 для WP: в прототипе не выводятся (нет счётчиков и providers.json) */
.ctiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule); }
.ctile { padding: 14px 16px 16px 0; border-bottom: 1px solid var(--line); }
.ctile + .ctile { padding-left: 16px; border-left: 1px solid var(--line); }
.ctile__name { font-size: 16px; }
.ctile__num { font: 500 24px/1.2 var(--display); font-variant-numeric: tabular-nums; margin: 6px 0 2px; }
.ctile__src { font-size: 14px; color: var(--ink-2); }
@media (max-width: 767px) {
  .ctiles { grid-template-columns: 1fr 1fr; }
  .ctile:nth-child(odd) { padding-left: 0; border-left: 0; }
  .ctile:nth-child(even) { padding-left: 12px; }
}

/* ───────── Как получить: шаги + схема ───────── */
.steps { list-style: none; counter-reset: s; margin: 0; padding: 0; }
.steps li { counter-increment: s; position: relative; padding: 14px 0 14px 40px; border-bottom: 1px solid var(--line); }
.steps li:first-child { border-top: 1px solid var(--rule); }
.steps li::before { content: counter(s) "."; position: absolute; left: 0; top: 14px; font: 500 17px/1.55 var(--display); color: var(--pen); font-variant-numeric: tabular-nums; }
.steps b { font-weight: 500; display: block; }
.fig { margin: 0; }
.fig img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.fig figcaption { font-size: 14px; color: var(--ink-2); margin-top: 8px; line-height: 1.45; }

/* ───────── Строки прокатов ───────── */
.prov { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.prov li { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); gap: 8px 24px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.prov__name { font: 500 18px/1.3 var(--display); }
.prov__name a { color: var(--ink); }
.prov__name a:hover { color: var(--pen); }
.prov__tag { display: inline-block; font: 500 14px/1 var(--text); color: var(--pen); background: var(--pen-tint); padding: 4px 6px; border-radius: var(--radius); margin-left: 6px; vertical-align: 2px; }
.prov__type { font-size: 14px; color: var(--ink-2); }
.prov dl { margin: 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 16px; font-size: 15px; }
.prov dt { color: var(--ink-2); }
.prov dd { margin: 0; }
.prov__act { font-size: 15px; }
@media (max-width: 899px) { .prov li { grid-template-columns: 1fr; } }

/* ───────── FAQ ───────── */
.faq { max-width: 820px; border-top: 1px solid var(--rule); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 16px 40px 16px 0; position: relative; min-height: 44px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary h3 { font-size: 18px; line-height: 1.35; display: inline; }
.faq summary::after { content: ""; position: absolute; right: 4px; top: 22px; width: 10px; height: 10px; border-right: 1.5px solid var(--ink-2); border-bottom: 1.5px solid var(--ink-2); transform: rotate(45deg); transition: transform var(--dur-base) var(--ease-out); }
.faq details[open] summary::after { transform: rotate(-135deg); top: 27px; }
.faq summary:hover h3 { color: var(--pen); }
.faq .ans { padding: 0 0 18px; max-width: 760px; }

/* ───────── Рядом, колонки ссылок ───────── */
.near { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 32px; }
.near li { break-inside: avoid; padding: 8px 0; border-bottom: 1px solid var(--line); }
.near a { font-size: 17px; }
.near .muted { display: block; font-size: 14px; }
@media (max-width: 899px) { .near { columns: 2; } }
@media (max-width: 599px) { .near { columns: 1; } }
@media (pointer: coarse) { .near li { padding: 0; } .near a { display: block; padding: 11px 0 0; } .near li .muted { padding-bottom: 10px; } .near li > a:only-child { padding-bottom: 11px; } }

/* ───────── Главная ───────── */
.hero { padding: 32px 0 0; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: center; }
.hero__fig { margin: 0; }
.hero__fig img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  -webkit-mask-image: linear-gradient(to right, transparent, #1b1e24 10%, #1b1e24 90%, transparent), linear-gradient(to bottom, transparent, #1b1e24 12%, #1b1e24 88%, transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent, #1b1e24 10%, #1b1e24 90%, transparent), linear-gradient(to bottom, transparent, #1b1e24 12%, #1b1e24 88%, transparent);
  mask-composite: intersect; }
/* LCP не прячем целиком: стартуем с открытой трети, затем .hero-done снимает анимацию */
.js .hero__fig img { animation: akt-reveal 800ms var(--ease-out) both; }
.js .hero__fig.hero-done img { animation: none; clip-path: none; }
@keyframes akt-reveal { from { clip-path: inset(0 66% 0 0); } to { clip-path: inset(0 0 0 0); } }
.popular { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 18px; margin: 18px 0 0; padding: 0 0 28px; list-style: none; font-size: 16px; }
.popular__k { color: var(--ink-2); font-size: 14px; }
@media (pointer: coarse) { .popular a { display: inline-block; padding: 10px 0; } }
@media (max-width: 899px) {
  .hero__grid { grid-template-columns: 1fr; gap: 0; }
  .hero__fig { order: 3; margin-top: 8px; }
  .hero__fig img { aspect-ratio: 21 / 9; }
}
@media (max-width: 767px) {
  .hero { padding-top: 16px; }
  .hero__fig { display: none; }
  .popular { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); padding-bottom: 20px; }
  .popular::-webkit-scrollbar { display: none; }
}

/* мозаика курортов: 1 крупная + 5 малых, без рамок */
.mosaic { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: auto; gap: 24px; }
.mosaic li:first-child { grid-column: span 2; grid-row: span 2; }
.mtile { display: block; text-decoration: none; color: var(--ink); }
.mtile__img { overflow: hidden; aspect-ratio: 3 / 2; background: var(--line); }
.mosaic li:first-child .mtile__img { aspect-ratio: auto; height: calc(100% - 0px); }
.mtile__img img { width: 100%; height: 100%; object-fit: cover; transition: filter var(--dur-base) var(--ease-out), transform 600ms var(--ease-out); }
.mtile:hover .mtile__img img { filter: brightness(.94); }
.mtile__name { display: block; font: 500 18px/1.3 var(--display); margin-top: 10px; color: var(--ink); transition: color var(--dur-fast) var(--ease-out); }
.mtile:hover .mtile__name { color: var(--pen); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.mtile__why { display: block; font-size: 15px; color: var(--ink-2); margin-top: 2px; line-height: 1.45; }
.mosaic li:first-child { display: flex; flex-direction: column; }
.mosaic li:first-child .mtile { display: flex; flex-direction: column; height: 100%; }
.mosaic li:first-child .mtile__img { flex: 1; min-height: 280px; }
.mosaic li:first-child .mtile__name { font-size: 22px; }
.credits-line { font-size: 14px; color: var(--ink-2); margin-top: 16px; line-height: 1.5; }
.credits-line a { color: var(--ink-2); }
@media (max-width: 899px) {
  .mosaic { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .mosaic li:first-child { grid-column: 1 / -1; grid-row: auto; }
  .mosaic li:first-child .mtile__img { min-height: 0; aspect-ratio: 3 / 2; flex: none; }
}
@media (max-width: 479px) { .mtile__name { font-size: 16px; } .mtile__why { font-size: 14px; } }

/* ───── Главная: навигатор «где + какая машина» ───── */
.hero--nav { padding: 40px 0 0; }
.finder { margin-top: 24px; max-width: 1000px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "where go" "what what"; }
.finder__where { grid-area: where; position: relative; min-width: 0; background: var(--surface); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--line-control); padding: 10px 18px 8px; }
.finder__where:focus-within { box-shadow: inset 0 -2px 0 var(--pen); }
.finder__inp { display: flex; align-items: center; gap: 10px; }
.finder__inp > .i { width: 22px; height: 22px; color: var(--mark); }
.finder .fld-input { font-size: 20px; min-height: 40px; }
.finder__go { grid-area: go; display: flex; align-items: stretch; }
.finder__go .btn { min-height: 76px; border-radius: 0; padding: 0 32px; font-size: 18px; }
.finder__what { grid-area: what; min-width: 0; margin: 0; padding: 16px 0 0; border: 0; }
.finder__k { float: left; padding: 0; margin: 0 16px 0 0; line-height: 44px; font-size: 15px; color: var(--ink-2); }
.finder__chips { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 767px) {
  .hero--nav { padding-top: 20px; }
  .finder { margin-top: 16px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "where" "what" "go"; }
  .finder__where { padding: 8px 14px 6px; }
  .finder .fld-input { font-size: 18px; min-height: 44px; }
  .finder__what { padding-top: 12px; }
  .finder__k { float: none; display: block; line-height: 1.3; margin: 0 0 8px; font-size: 14px; }
  .finder__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); scroll-snap-type: x proximity; }
  .finder__chips::-webkit-scrollbar { display: none; }
  .finder__go { padding-top: 12px; }
  .finder__go .btn { width: 100%; min-height: 52px; border-radius: var(--radius); font-size: 17px; }
}

/* направления: фото, цена «от», число предложений */
.section--tight { padding-top: 40px; }
.dtiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.dtile { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
.dtile:hover { color: var(--ink); text-decoration: none; }
.dtile__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--surface); border-radius: var(--radius); }
.dtile__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out), filter var(--dur-base) var(--ease-out); }
.dtile__name { font: 500 20px/1.25 var(--display); margin-top: 12px; color: var(--ink); transition: color var(--dur-fast) var(--ease-out); }
.dtile__price { font: 500 18px/1.3 var(--display); font-variant-numeric: tabular-nums; margin-top: 4px; }
.dtile__price small, .kcard__price small { font: 400 15px var(--text); color: var(--ink-2); }
.dtile__meta, .kcard__meta, .mcard__meta { font-size: 15px; line-height: 1.4; color: var(--ink-2); margin-top: 2px; }
.dtile:hover .dtile__name { color: var(--pen); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.dtile:focus-visible { outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) { .dtile:hover .dtile__img img { transform: scale(1.03); filter: brightness(.97); } }
@media (max-width: 767px) {
  .section--tight { padding-top: 28px; }
  .dtiles { grid-template-columns: 1fr 1fr; gap: 20px 12px; }
  .dtile__name { font-size: 17px; margin-top: 8px; }
  .dtile__price { font-size: 16px; }
  .dtile__price small, .kcard__price small { font-size: 14px; }
  .dtile__meta, .kcard__meta, .mcard__meta { font-size: 14px; }
}

/* классы: схема кузова в одном масштабе, цена, предложения, «Показать» */
.kcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.kcard__a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--ink); }
.kcard__a:hover { color: var(--ink); text-decoration: none; }
.kcard__img { display: block; aspect-ratio: 3 / 2; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.kcard__img img { width: 100%; height: 100%; object-fit: contain; }
.kcard__name { font: 500 20px/1.25 var(--display); }
.kcard__price { font: 500 22px/1.25 var(--display); font-variant-numeric: tabular-nums; margin-top: 6px; letter-spacing: -0.01em; }
.kcard__go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 12px; min-height: 44px; color: var(--pen); font-size: 16px;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.kcard__go .i { transition: transform var(--dur-base) var(--ease-out); }
.kcard__a:hover .kcard__go { color: var(--pen-hover); text-decoration-thickness: 2px; }
.kcard__a:hover .kcard__go .i { transform: translateX(3px); }
@media (max-width: 899px) { .kcards { grid-template-columns: 1fr 1fr; gap: 28px 16px; } }
@media (max-width: 767px) { .kcard__name { font-size: 17px; } .kcard__price { font-size: 18px; } .kcard__go { font-size: 15px; } }

/* модели: свои фото, характеристики из справочника */
.mcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px 20px; }
.mcard { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
.mcard:hover { color: var(--ink); text-decoration: none; }
.mcard__img { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--surface); border-radius: var(--radius); }
.mcard__img img { width: 100%; height: 100%; object-fit: cover; transition: filter var(--dur-base) var(--ease-out); }
.mcard__name { font: 500 16px/1.3 var(--display); margin-top: 10px; transition: color var(--dur-fast) var(--ease-out); }
.mcard:hover .mcard__name { color: var(--pen); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
@media (hover: hover) and (pointer: fine) { .mcard:hover .mcard__img img { filter: brightness(.94); } }
.more-link { margin: 20px 0 0; }
@media (max-width: 1023px) { .mcards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .mcards { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); }
  .mcards::-webkit-scrollbar { display: none; }
  .mcards li { flex: 0 0 44%; scroll-snap-align: start; }
  .more-link a { display: inline-block; padding: 10px 0; }
}

/* как это работает: три шага на ржавой линии графы */
.howto { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; }
.howto li { border-top: 1px solid var(--rule); padding-top: 16px; }
.howto__ic { display: block; color: var(--mark); margin-bottom: 10px; }
.howto__ic .i { width: 28px; height: 28px; }
.howto__t { font-size: 19px; line-height: 1.3; }
.howto p { margin: 6px 0 0; font-size: 16px; line-height: 1.55; color: var(--ink-2); max-width: 36ch; }
.prose--after { margin-top: 28px; }
@media (max-width: 767px) { .howto { grid-template-columns: 1fr; gap: 20px; } .howto__t { font-size: 18px; } }

/* колонки-определения (на что смотреть) */
.defs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
.defs > div { border-top: 1px solid var(--rule); padding-top: 12px; }
.defs dt { font: 500 18px/1.3 var(--display); }
.defs dd { margin: 6px 0 0; font-size: 16px; line-height: 1.55; color: var(--ink); }
@media (max-width: 1023px) { .defs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .defs { grid-template-columns: 1fr; gap: 20px; } }

/* список условий в три колонки */
.conds { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; border-top: 1px solid var(--rule); }
.conds li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.conds a { font-size: 17px; }
.conds p { font-size: 15px; color: var(--ink-2); margin: 2px 0 0; }
@media (max-width: 899px) { .conds { grid-template-columns: 1fr 1fr; } }
@media (max-width: 599px) { .conds { grid-template-columns: 1fr; } }

/* партнёры и покрытие */
.cover { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.cover li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.cover b { font: 500 18px/1.3 var(--display); display: block; }
.cover span { font-size: 15px; color: var(--ink-2); }

/* все города по округам */
.districts { border-top: 1px solid var(--rule); }
.districts details { border-bottom: 1px solid var(--line); }
.districts summary { cursor: pointer; padding: 14px 32px 14px 0; position: relative; list-style: none; font: 500 18px/1.3 var(--display); min-height: 44px; }
.districts summary::-webkit-details-marker { display: none; }
.districts summary::after { content: ""; position: absolute; right: 4px; top: 20px; width: 9px; height: 9px; border-right: 1.5px solid var(--ink-2); border-bottom: 1.5px solid var(--ink-2); transform: rotate(45deg); transition: transform var(--dur-base) var(--ease-out); }
.districts details[open] summary::after { transform: rotate(-135deg); top: 25px; }
.districts summary small { font: 400 14px var(--text); color: var(--ink-2); margin-left: 8px; }
.districts summary:hover { color: var(--pen); }
.districts ul { list-style: none; margin: 0; padding: 0 0 16px; columns: 3; column-gap: 32px; }
.districts li { padding: 4px 0; break-inside: avoid; }
.districts li .muted { font-size: 14px; }
@media (max-width: 767px) { .districts ul { columns: 1; } }
@media (pointer: coarse) { .districts li { padding: 0; } .districts li a { display: inline-block; padding: 10px 0; } }

/* ───────── Модель ───────── */
.mhero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: start; margin-top: 24px; }
.mhero .fig img { aspect-ratio: 3 / 2; object-fit: cover; }
.variants { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.variants > div { border-top: 1px solid var(--rule); padding-top: 12px; }
.variants h3 { margin-bottom: 6px; }
@media (max-width: 899px) { .mhero { grid-template-columns: 1fr; gap: 20px; } .specs { grid-template-columns: 1fr; } }
@media (max-width: 599px) { .variants { grid-template-columns: 1fr; gap: 20px; } }
.alts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 899px) { .alts { grid-template-columns: 1fr 1fr; } }

/* форум */
.post { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; border-top: 1px solid var(--rule); padding-top: 16px; }
.post__who { font-size: 14px; color: var(--ink-2); }
.post__who b { display: block; color: var(--ink); font-size: 16px; }
@media (max-width: 767px) { .post { grid-template-columns: 1fr; gap: 8px; } }

/* ───────── Формы ───────── */
.form { max-width: 560px; }
.fld { margin: 0 0 20px; }
.fld > label, .fld > .fld-legend { display: block; font-size: 16px; font-weight: 500; margin-bottom: 6px; }
.fld fieldset { border: 0; margin: 0; padding: 0; }
.fld .opt { font-weight: 400; color: var(--ink-2); }
.inp { width: 100%; font-size: 17px; line-height: 1.45; border: 0; border-bottom: 1px solid var(--line-control); border-radius: 0; background: var(--surface); padding: 10px 12px; color: var(--ink);
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.inp::placeholder { color: var(--ink-2); opacity: 1; }
.inp:hover { border-bottom-color: var(--ink); }
.inp:focus { outline: 2px solid var(--pen); outline-offset: 2px; border-bottom-color: var(--pen); }
.inp[aria-invalid="true"] { border-bottom-color: var(--danger); box-shadow: inset 0 -1px 0 var(--danger); }
textarea.inp { min-height: 120px; resize: vertical; }
.radios { display: flex; flex-wrap: wrap; gap: 0 24px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__hint { font-size: 14px; color: var(--ink-2); margin: 8px 0 0; }
.done { border-top: 2px solid var(--ok); background: var(--ok-tint); padding: 16px 18px; max-width: 560px; }
.done[hidden] { display: none; }
.done h3 { font-size: 20px; color: var(--ok); margin-bottom: 4px; }

/* плашка предупреждения */
.plate { font-size: 15px; line-height: 1.45; padding: 12px 14px; border-radius: var(--radius); margin-top: 12px; display: flex; gap: 10px; align-items: flex-start; }
.plate--warn { background: var(--warn-tint); color: var(--warn); }
.plate--warn .i { color: var(--warn); margin-top: 1px; }
.plate b { font-weight: 500; }

/* ───────── Каталог ───────── */
.cat { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 40px; align-items: start; margin-top: 28px; }
.filters { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain; padding-right: 8px; scrollbar-width: thin; }
.fgroup { border: 0; margin: 0; padding: 0 0 12px; }
.fgroup + .fgroup { border-top: 1px solid var(--line); padding-top: 12px; }
.fgroup legend { font: 500 17px/1.3 var(--display); padding: 0 0 4px; }
.fopt { display: flex; align-items: center; gap: 10px; min-height: 36px; cursor: pointer; font-size: 16px; }
.fopt input { width: 20px; height: 20px; margin: 0; accent-color: var(--pen); flex: none; }
.fopt__n { margin-left: auto; color: var(--ink-2); font-size: 14px; font-variant-numeric: tabular-nums; }
.fopt[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
@media (pointer: coarse) { .fopt { min-height: 44px; } }
.filters__head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--rule); padding-bottom: 8px; margin-bottom: 8px; }
.filters__head h2 { font-size: 20px; }
.reset { background: none; border: 0; color: var(--pen); cursor: pointer; padding: 6px 0; min-height: 36px; text-decoration: underline; text-underline-offset: 3px; font-size: 15px; }
.reset[hidden] { display: none; }
.cat__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid var(--rule); padding-bottom: 10px; margin-bottom: 20px; flex-wrap: wrap; }
.cat__found { font: 500 18px/1.3 var(--display); }
.sort { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; color: var(--ink-2); }
.sort select { font-size: 16px; color: var(--ink); background: var(--surface); border: 1px solid var(--line-control); border-radius: var(--radius); padding: 8px 32px 8px 10px; min-height: 40px; appearance: none; -webkit-appearance: none;
  background-image: var(--chev); background-repeat: no-repeat; background-position: right 10px center; cursor: pointer; }
.grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.tile { display: block; text-decoration: none; color: var(--ink); }
.tile__img { aspect-ratio: 3 / 2; background: var(--paper); border-bottom: 1px solid var(--line); overflow: hidden; }
.tile__img img { width: 100%; height: 100%; object-fit: contain; transition: filter var(--dur-base) var(--ease-out); }
.tile__img--photo img { object-fit: cover; }
.tile:hover .tile__img img { filter: brightness(.95); }
.tile__name { display: block; font: 500 18px/1.3 var(--display); margin-top: 10px; transition: color var(--dur-fast) var(--ease-out); }
.tile:hover .tile__name { color: var(--pen); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.tile__cls { display: block; font-size: 14px; color: var(--ink-2); margin-top: 2px; }
.tile__spec { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; font-size: 14px; color: var(--ink-2); }
.tile__spec span { display: inline-flex; align-items: center; gap: 6px; }
.empty { border-top: 1px solid var(--rule); padding: 20px 0; max-width: 560px; }
.empty[hidden] { display: none; }
.empty h3 { margin-bottom: 6px; }
.pager { display: flex; gap: 8px; align-items: center; margin-top: 32px; font-size: 16px; }
.pager a, .pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 10px; border: 1px solid var(--line-control); border-radius: var(--radius); text-decoration: none; }
.pager [aria-current="page"] { background: var(--pen-tint); border-color: var(--pen); color: var(--pen); }
.pager a:hover { border-color: var(--pen); }
.pager[hidden] { display: none; }
mark.hl { background: var(--pen-tint); color: inherit; }
.cat__mbar { display: none; }
@media (max-width: 1023px) and (min-width: 768px) { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .cat { grid-template-columns: 1fr; gap: 0; margin-top: 16px; }
  .js .cat > .filters { display: none; }
  html:not(.js) .cat > .filters { position: static; max-height: none; margin-bottom: 20px; }
  .js .cat__mbar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
  .cat__mbar .btn { min-height: 48px; }
  .grid { grid-template-columns: 1fr; gap: 0; }
  .grid > li { border-bottom: 1px solid var(--line); }
  .tile { display: grid; grid-template-columns: 40% minmax(0, 1fr); gap: 14px; padding: 12px 0; align-items: center; }
  .tile__name { margin-top: 0; font-size: 17px; }
  .tile__img { border-bottom: 0; }
  .sheet .filters { position: static; max-height: none; overflow: visible; padding: 0; }
}

/* ───────── Шторки, меню, выбор города ───────── */
.backdrop { position: fixed; inset: 0; background: rgba(60, 30, 22, .36); z-index: 70; opacity: 0; transition: opacity 300ms var(--ease-drawer); }
.backdrop.is-open { opacity: 1; }
.backdrop[hidden] { display: none; }
.sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: var(--surface); max-height: 88vh; max-height: 88dvh; display: flex; flex-direction: column;
  border-radius: 8px 8px 0 0; box-shadow: var(--shadow-pop); transform: translateY(100%); transition: transform 300ms var(--ease-drawer); overscroll-behavior: contain; }
.sheet.is-open { transform: none; }
.sheet.is-closing { transition-duration: 200ms; }
.sheet[hidden] { display: none; }
.sheet__grip { width: 40px; height: 4px; border-radius: 2px; background: var(--line-control); margin: 8px auto 0; flex: none; }
.sheet__head { display: flex; justify-content: space-between; align-items: center; padding: 4px 8px 8px 16px; border-bottom: 1px solid var(--line); flex: none; }
.sheet__title { font: 500 20px/1.3 var(--display); margin: 0; }
.sheet__body { overflow-y: auto; padding: 16px 16px 16px; overscroll-behavior: contain; flex: 1; }
.sheet__foot { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); flex: none; background: var(--surface); }
.sheet__foot .btn { width: 100%; }
.x-btn { width: 44px; height: 44px; border: 0; background: none; cursor: pointer; color: var(--ink); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius); }
.x-btn:hover { color: var(--pen); background: var(--pen-tint); }
@media (min-width: 768px) {
  .sheet { left: 50%; right: auto; bottom: auto; top: 50%; width: min(720px, calc(100vw - 48px)); max-height: 84vh; border-radius: 2px; transform: translate(-50%, calc(-50% + 12px)); opacity: 0;
    transition: transform 300ms var(--ease-out), opacity 300ms var(--ease-out); }
  .sheet.is-open { transform: translate(-50%, -50%); opacity: 1; }
  .sheet__grip { display: none; }
  .sheet--side { left: auto; right: 0; top: 0; bottom: 0; width: 380px; max-height: none; transform: translateX(100%); opacity: 1; border-radius: 0; }
  .sheet--side.is-open { transform: none; }
}
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(360px, 88vw); z-index: 80; background: var(--surface); box-shadow: var(--shadow-pop);
  transform: translateX(100%); transition: transform 300ms var(--ease-drawer); display: flex; flex-direction: column; overscroll-behavior: contain; }
.drawer.is-open { transform: none; }
.drawer[hidden] { display: none; }
.drawer__head { display: flex; justify-content: space-between; align-items: center; height: var(--header-h); padding: 0 8px 0 16px; border-bottom: 1px solid var(--line); flex: none; }
.drawer__body { overflow-y: auto; padding: 8px 16px 24px; }
.drawer nav ul { list-style: none; margin: 0; padding: 0; }
.drawer nav a { display: flex; align-items: center; min-height: 52px; font-size: 18px; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
.drawer nav a:hover { color: var(--pen); }
.drawer__k { font-size: 14px; color: var(--ink-2); margin: 20px 0 4px; }
.drawer .pop2 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.drawer .pop2 a { display: block; padding: 11px 0; font-size: 16px; }

/* выпадашка выбора города (десктоп) */
.picker { position: absolute; z-index: 50; right: var(--gutter); top: calc(var(--header-h) - 4px); width: 760px; max-width: calc(100vw - 48px); background: var(--surface); box-shadow: var(--shadow-pop); border: 1px solid var(--line);
  padding: 20px 24px 16px; max-height: calc(100vh - 96px); overflow-y: auto; overscroll-behavior: contain;
  opacity: 0; transform: translateY(-4px); transform-origin: top right; transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.picker.is-open { opacity: 1; transform: none; }
.picker[hidden] { display: none; }
.picker__search { position: relative; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--line-control); background: var(--paper); padding: 8px 12px 6px; margin-bottom: 16px; }
.picker__k { font-size: 14px; color: var(--ink-2); margin: 0 0 6px; }
.picker__pop { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 16px; }
.picker__pop a { display: block; padding: 6px 0; font-size: 16px; }
@media (max-width: 767px) { .picker__pop { grid-template-columns: 1fr 1fr; } .picker__pop a { padding: 10px 0; } }
.picker .districts summary { font-size: 17px; padding: 10px 32px 10px 0; }
.picker .districts summary::after { top: 16px; }
.picker .districts details[open] summary::after { top: 21px; }

/* ───────── Подвал ───────── */
.ftr { border-top: 1px solid var(--rule); margin-top: 0; padding: 40px 0 28px; font-size: 15px; }
.ftr__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 32px; }
.ftr__col summary { list-style: none; font-size: 14px; color: var(--ink-2); margin-bottom: 8px; pointer-events: none; }
.ftr__col summary::-webkit-details-marker { display: none; }
.ftr ul { list-style: none; margin: 0; padding: 0; }
.ftr li { padding: 3px 0; }
.ftr a { color: var(--ink); text-decoration: none; }
.ftr a:hover { color: var(--pen); text-decoration: underline; }
.ftr__legal { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--ink-2); font-size: 14px; line-height: 1.55; max-width: 980px; }
.ftr__legal p { margin: 0 0 8px; }
.ftr__legal a { color: var(--ink-2); text-decoration: underline; }
@media (max-width: 767px) {
  .ftr { padding-top: 16px; }
  .ftr__cols { grid-template-columns: 1fr; gap: 0; }
  .ftr__col { border-bottom: 1px solid var(--line); }
  .ftr__col summary { pointer-events: auto; cursor: pointer; font: 500 17px/1.3 var(--display); color: var(--ink); padding: 14px 28px 14px 0; margin: 0; position: relative; min-height: 48px; }
  .ftr__col summary::after { content: ""; position: absolute; right: 4px; top: 19px; width: 9px; height: 9px; border-right: 1.5px solid var(--ink-2); border-bottom: 1.5px solid var(--ink-2); transform: rotate(45deg); }
  .ftr__col[open] summary::after { transform: rotate(-135deg); top: 24px; }
  .ftr__col ul { padding-bottom: 12px; }
  .ftr li { padding: 0; }
  .ftr li a { display: block; padding: 10px 0; }
}
@media (min-width: 768px) { .ftr__col > summary { cursor: default; } }

/* ───────── Липкая полоса, cookie, toast ───────── */
.sbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; background: var(--surface); border-top: 1px solid var(--rule); box-shadow: 0 -6px 18px rgba(60, 30, 22, .08);
  padding: 8px var(--gutter) calc(8px + env(safe-area-inset-bottom)); display: none; align-items: center; gap: 12px; min-height: 64px;
  transform: translateY(110%); transition: transform 260ms var(--ease-out); }
.sbar.is-on { transform: none; }
.sbar__info { flex: 1; min-width: 0; background: none; border: 0; padding: 4px 0; text-align: left; cursor: pointer; min-height: 44px; }
.sbar__where { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--pen); font-size: 15px; line-height: 1.25; overflow: hidden; }
.sbar__price { display: block; font-size: 14px; color: var(--ink); font-variant-numeric: tabular-nums; }
.sbar .btn { min-height: 48px; padding: 0 12px; flex: none; max-width: 50%; font-size: 15px; line-height: 1.2; }
@media (max-width: 767px) { [data-sticky-bar="on"] .sbar { display: flex; } }
[data-sticky-bar="on"] main { padding-bottom: 0; }
@media (max-width: 767px) { [data-sticky-bar="on"] body.has-sbar { padding-bottom: 72px; } }
.cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 58; background: var(--surface); border-top: 1px solid var(--line-control); box-shadow: 0 -6px 18px rgba(60, 30, 22, .08); }
.cookie[hidden] { display: none; }
.cookie__row { display: flex; align-items: center; gap: 12px 20px; min-height: 56px; padding-top: 6px; padding-bottom: calc(6px + env(safe-area-inset-bottom)); }
.cookie p { margin: 0; font-size: 15px; line-height: 1.35; flex: 1; }
.cookie__btns { display: flex; gap: 8px; flex: none; }
.cookie .btn { min-height: 44px; padding: 0 14px; font-size: 15px; }
@media (max-width: 599px) {
  .cookie__row { gap: 8px; }
  .cookie p { font-size: 14px; }
  .cookie .btn { padding: 0 10px; font-size: 14px; }
}
.toast { position: fixed; left: 50%; bottom: 88px; z-index: 90; transform: translate(-50%, 12px); opacity: 0; background: var(--ink); color: var(--paper); padding: 12px 16px; border-radius: var(--radius);
  font-size: 15px; max-width: calc(100vw - 32px); transition: opacity 250ms var(--ease-out), transform 250ms var(--ease-out); pointer-events: none; }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ───────── Экраны 404 и /go/ ───────── */
.screen { padding: 40px 0 56px; }
.screen__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px; align-items: center; }
.screen__fig img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; opacity: .9;
  -webkit-mask-image: radial-gradient(ellipse at center, #1b1e24 55%, transparent 78%); mask-image: radial-gradient(ellipse at center, #1b1e24 55%, transparent 78%); }
.screen__acts { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: 24px; align-items: center; }
.links-row { display: flex; flex-wrap: wrap; gap: 4px 20px; list-style: none; margin: 12px 0 0; padding: 0; }
@media (pointer: coarse) { .links-row a { display: inline-block; padding: 10px 0; } }
@media (max-width: 899px) { .screen__grid { grid-template-columns: 1fr; } .screen__fig { display: none; } }
.code { font: 400 15px/1.5 ui-monospace, Menlo, monospace; background: var(--surface); padding: 2px 6px; border-radius: var(--radius); }

/* ───────── Индекс прототипа ───────── */
.pindex { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); counter-reset: n; }
.pindex li { display: grid; grid-template-columns: 40px minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr); gap: 4px 20px; padding: 14px 0; border-bottom: 1px solid var(--line); counter-increment: n; align-items: baseline; }
.pindex li::before { content: counter(n) "."; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.pindex a { font: 500 18px/1.3 var(--display); }
.pindex .muted { font-size: 15px; }
.pindex code { font-size: 14px; color: var(--ink-2); }
@media (max-width: 767px) { .pindex li { grid-template-columns: 32px minmax(0, 1fr); } .pindex li > :nth-child(n+3) { grid-column: 2; } }

/* ───────── reduced-motion: тихая версия ───────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-delay: 0ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; transition-delay: 0ms !important; scroll-behavior: auto !important; }
  .js .oval path { stroke-dashoffset: 0; }
  .js .hero__fig img { animation: none; }
  .dtile:hover .dtile__img img, .mcard:hover .mcard__img img, .kcard__a:hover .kcard__go .i { transform: none; }
}

/* ───── мобильные тач-цели: и pointer: coarse, и узкий экран ───── */
.city-btn__short { display: none; }
@media (max-width: 767px) {
  .city-btn__full { display: none; }
  .city-btn__short { display: inline; }
    .fld-input { min-height: 44px; }
  .crumbs a, .crumbs span { display: inline-block; padding: 12px 0; }
  .crumbs { padding-top: 4px; }
  .near li { padding: 0; } .near a { display: block; padding: 11px 0; } .near li .muted { margin-top: -8px; padding-bottom: 10px; }
  .districts li { padding: 0; } .districts li a { display: inline-block; padding: 11px 0; }
  .popular a { display: inline-block; padding: 11px 0; }
  .links-row a { display: inline-block; padding: 11px 0; }
  .chip { min-height: 44px; }
  .ftr li a { padding: 12px 0; }
  .cover b a, .prow__name a, .prov__name a, a.ccard__name, .pindex a, .prov__act a { display: inline-block; padding: 11px 0; }
  .cstrip a { min-height: 64px; }
  .vedomost th a, .tbl th a, .conds a, .picker__pop a { display: inline-block; padding: 11px 0; }
  .vedomost--cards tr { padding: 4px 0; }
  .fopt { min-height: 44px; }
  .cat__mbar > :not(.sr) { min-width: 0; width: 100%; }
  .cat__bar .sort { display: none; }
  .tbl td, .tbl tbody th { padding-top: 10px; padding-bottom: 10px; }
  .sources a { padding: 4px 0; }
  .kratko li a { display: block; margin: -11px 0; padding: 11px 0; }
}
.cat > * { min-width: 0; }
.cat__mbar .btn { gap: 6px; padding: 0 10px; font-size: 15px; }
.cat__mbar select.btn { text-align: center; text-align-last: center; }
.mhero > * { min-width: 0; }

@media (min-width: 768px) { .toast { left: auto; right: 24px; bottom: 24px; transform: translateY(12px); } .toast.is-on { transform: none; } }
/* строка характеристик текстом (не чипы: статичная метка не должна выглядеть контролом) */
/* активные фильтры над выдачей */
.actives { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; align-items: center; }
.actives[hidden] { display: none; }
.actives .chip .i { width: 14px; height: 14px; }
/* сортировка в шапке ведомости */
.th-sort { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; min-height: 32px; }
.th-sort:hover { color: var(--pen); }
.th-sort svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 1.5; opacity: .5; }
th[aria-sort] .th-sort svg { opacity: 1; color: var(--pen); }
th[aria-sort="descending"] .th-sort svg { transform: rotate(180deg); }
.proto-note { font-size: 14px; color: var(--warn); margin-top: 6px; }
@media (max-width: 1023px) {
  .cat { grid-template-columns: 1fr; gap: 0; margin-top: 16px; }
  .js .cat > .filters { display: none; }
  html:not(.js) .cat > .filters { position: static; max-height: none; margin-bottom: 20px; }
  .js .cat__mbar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; max-width: 520px; }
  .cat__bar .sort { display: none; }
  .sheet .filters { position: static; max-height: none; overflow: visible; padding: 0; }
}

.sheet .filters__head h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sheet .filters__head { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; justify-content: flex-end; }
.tbl td.cell-r, .tbl th.cell-r { white-space: nowrap; }
@media (max-width: 767px) { .tbl td, .tbl th, .tbl tbody th { padding-right: 10px; } .tbl { font-size: 15px; } }
/* текстовые таблицы на мобайле — строки-карточки с подписью графы */
@media (max-width: 767px) {
  .tbl--stack thead { display: none; }
  .tbl--stack, .tbl--stack tbody, .tbl--stack tr, .tbl--stack td, .tbl--stack tbody th { display: block; width: auto; }
  .tbl--stack tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .tbl--stack tbody tr:first-child { border-top: 1px solid var(--rule); }
  .tbl--stack td, .tbl--stack tbody th { border: 0; padding: 2px 0; }
  .tbl--stack tbody th { font-size: 17px; padding-bottom: 6px; }
  .tbl--stack td[data-label]::before { content: attr(data-label); display: block; font-size: 14px; color: var(--ink-2); }
  .tbl--stack td + td { padding-top: 6px; }
  .tbl--stack caption { display: block; }
}
@media (max-width: 899px) { .toc-col { order: -1; } .toc-col .kratko { position: static !important; } }
@media (max-width: 599px) { .alts { grid-template-columns: 1fr; gap: 0; } .alts > li { border-bottom: 1px solid var(--line); } }

.fld > label.check { display: inline-flex; font-weight: 400; font-size: 15px; margin: 0; }
.nw { white-space: nowrap; }

/* знак: «М» по умолчанию, вариант «горизонт с кратером» для марсианских палитр */


/* ═════════ Круг правок 07.10 (QA round 1 + палитра «Марсианский закат») ═════════ */

/* схемы Codex на бумаге #EEDDD5 — подтягиваем до тона холста */
/* фон схем выровнен по холсту #F0E1D9 при подготовке файлов (из assets-src в proto), CSS-подкраски нет */
.ccard:hover .ccard__img img, .tile:hover .tile__img:not(.tile__img--photo) img { filter: brightness(.97); }

/* значения граф одним голосом: Geologica 500, текстовые чуть мельче */
.grafa--text dd { font: 500 18px/1.35 var(--display); letter-spacing: -0.005em; }
@media (max-width: 767px) { .grafa--text dd { font-size: 16px; } }
/* 2 и 3 колонки: первая ячейка каждого ряда без левой линии */
@media (min-width: 768px) {
  .grafy--3 .grafa:nth-child(3n+1), .grafy--2 .grafa:nth-child(2n+1) { padding-left: 0; border-left: 0; }
  .grafy--3 .grafa:nth-child(3n+2), .grafy--3 .grafa:nth-child(3n), .grafy--2 .grafa:nth-child(2n) { padding-left: 16px; border-left: 1px solid var(--line); }
}

/* панель партнёров в первом экране */
.pblock { margin-top: 20px; }
.pblock .partners { border-top: 1px solid var(--rule); }
.pblock .prow { grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 8px 24px; padding: 14px 0; align-items: center; }
.pblock .prow__act .btn { width: 100%; }
.pblock .btn-note { margin-top: 6px; }
.pblock .disclosure { margin-top: 10px; }
.pblock .btn--plain { margin-left: -8px; }
@media (max-width: 767px) {
  .pblock .prow { grid-template-columns: 1fr; gap: 8px; padding: 12px 0; }
  .pblock .prow__name { font-size: 18px; }
}
.head { padding-bottom: 8px; }
.head .chips { margin-top: 16px; }

/* карточки классов: подпись и иконки одной высоты, цена на одной линии */
.ccard__eg { min-height: 2.8em; }
.ccard__spec { flex-wrap: nowrap; gap: 12px; font-size: 14px; }
.ccard__pnum { font: 500 24px/1.2 var(--display); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.ccard__price .min-mark .oval { left: -10px; width: calc(100% + 20px); }
.ccard__price .min-mark { margin-right: 12px; }
.ccard__price { margin-top: 14px; }
@media (max-width: 767px) { .ccard__pnum { font-size: 22px; } }

/* овал не обрезается краем таблицы */
.tbl-wrap { padding-right: 16px; margin-right: -16px; }
td.cell-r .min-mark { margin-right: 4px; }
.cell-note { display: block; font: 400 14px/1.3 var(--text); color: var(--ink-2); }
.vedomost td + td, .vedomost th + th { padding-left: 16px; }

/* мозаика курортов на мобайле: без налезаний, последняя плитка во всю ширину */
@media (max-width: 899px) {
  .mosaic li:first-child { display: block; }
  .mosaic li:first-child .mtile { display: block; height: auto; }
  .mosaic li:first-child .mtile__img { height: auto; min-height: 0; flex: none; aspect-ratio: 3 / 2; }
  .mosaic li:last-child { grid-column: 1 / -1; }
  .mosaic li:last-child .mtile__img { aspect-ratio: 21 / 9; }
}

/* «Рядом» и колонки ссылок: сетка вместо CSS-колонок */
.near { columns: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; }
@media (max-width: 899px) { .near { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .near { grid-template-columns: 1fr; } }

/* cookie на узких экранах: текст строкой выше, кнопки поровну */
@media (max-width: 359px) {
  .cookie__row { flex-wrap: wrap; gap: 6px 8px; padding-top: 8px; }
  .cookie p { flex-basis: 100%; }
  .cookie__btns { width: 100%; }
  .cookie__btns .btn { flex: 1; }
}

/* шапка на 320–359: у кнопки города только значок (подпись — aria-label) */
@media (max-width: 359px) {
  .city-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .city-btn { width: 44px; justify-content: center; padding: 0; }
  .brand__desc { font-size: 13px; }
}

/* выбор города: 4 колонки популярных */
.picker__pop { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 767px) { .picker__pop { grid-template-columns: 1fr 1fr; } }
.ac__none b { font-weight: 500; }

/* минивэны: пара фото и список моделей строками */
.figpair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mlist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.mlist li { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.mlist b { font-weight: 500; }
.mlist span { color: var(--ink-2); font-size: 15px; }
@media (max-width: 599px) { .figpair { grid-template-columns: 1fr; } .mlist li { grid-template-columns: 1fr; } }

/* модель: компактная таблица характеристик в первом экране */
.spec1 { width: 100%; border-collapse: collapse; border-top: 1px solid var(--rule); }
.spec1 th { text-align: left; font-weight: 400; color: var(--ink-2); font-size: 15px; padding: 8px 12px 8px 0; border-bottom: 1px solid var(--line); width: 46%; }
.spec1 td { padding: 8px 0; border-bottom: 1px solid var(--line); }
.mhero .cta { margin-top: 20px; }

/* каталог */
.fgroup legend { float: left; width: 100%; padding: 0 0 4px; }
.fgroup legend + * { clear: both; }
.fgroup + .fgroup { border-top: 1px solid var(--line); }
.fgroup--fold { border-top: 1px solid var(--line); padding: 0; }
.fgroup--fold summary { cursor: pointer; list-style: none; font: 500 17px/1.3 var(--display); padding: 12px 24px 12px 0; position: relative; min-height: 44px; }
.fgroup--fold summary::-webkit-details-marker { display: none; }
.fgroup--fold summary::after { content: ""; position: absolute; right: 4px; top: 17px; width: 8px; height: 8px; border-right: 1.5px solid var(--ink-2); border-bottom: 1.5px solid var(--ink-2); transform: rotate(45deg); }
.fgroup--fold[open] summary::after { transform: rotate(-135deg); top: 21px; }
.fgroup--fold fieldset { border: 0; margin: 0; padding: 0 0 12px; }
.filters--static { position: static; max-height: none; overflow: visible; }
.fld--q { margin-bottom: 12px; }
.sel-btn { appearance: none; -webkit-appearance: none; }
.sbar > .btn, .sbar > [data-open-filters] { flex: 1; max-width: none; }

/* 404 и /go/: верх выровнен, схема не выше 280 px */
.screen__grid { align-items: start; }
.screen__fig img { max-height: 280px; width: auto; max-width: 100%; margin-left: auto; }
.screen--404 .search { margin-top: 20px; }
.links-k { margin-top: 20px; }
.screen__acts { align-items: flex-start; }
.screen__acts .btn-note { margin-top: 6px; }
@media (max-width: 599px) { .screen__acts > div, .screen__acts .btn { width: 100%; } }
.steps--short { margin-top: 24px; max-width: 560px; }
.lost { max-width: 640px; border-top: 1px solid var(--rule); padding-top: 16px; }
.lost p { margin-top: 8px; }

/* мелочи */
.sub-h { margin: 32px 0 12px; }
.ftr__tag { color: var(--ink); }
.toc { position: sticky; top: 16px; }
.toc__k { font: 500 17px/1.3 var(--text); margin: 0 0 4px; }
@media (max-width: 899px) { .toc { position: static; } }
.form-gap { margin-top: 24px; }
.form__lead { margin-bottom: 16px; }
.index-head { padding-bottom: 40px; }
.index-head .pindex { margin-top: 24px; }
.end-cta { padding-bottom: 40px; }
.fig--akt img { aspect-ratio: 3 / 2; object-fit: contain; }
.inp[aria-invalid="true"], .fld-input[aria-invalid="true"] { border-bottom: 2px dashed var(--danger); box-shadow: none; }
.steps li::before { color: var(--mark); }
.check span a { display: inline; }
@media (max-width: 599px) { .head h1 { font-size: 26px; } }
@media (max-width: 767px) { .variants h3 a { display: inline-block; padding: 11px 0; } }
/* мобайл: кнопки партнёров выше строки граф, чтобы путь до партнёра был в первом экране */
@media (max-width: 767px) {
  .head { display: flex; flex-direction: column; }
  .head > .chips { order: 1; }
  .head > .pblock, .head > .cta { order: 2; }
  .head > .grafy { order: 3; margin-top: 20px; }
  .head > .grafy + .sources { order: 4; }
  .pblock .prow__type { font-size: 14px; }
}
@media (max-width: 767px) {
  .pblock .prow { padding: 10px 0; gap: 6px; }
  .pblock .prow__name { font-size: 17px; }
  .pblock .prow__type { margin-top: 0; }
  .pblock .btn-note { font-size: 14px; }
  .pblock .ad-label { min-height: 0; }
  [data-ad-label="off"] .pblock .ad-label { display: none; }
}
@media (max-width: 359px) { .display { font-size: 28px; } }
.brand__sun { fill: var(--mark); }

/* ═════════ Круг 2 ═════════ */
/* ржавчина: линии граф 2 px */
.grafy, .pblock .partners, .faq, .districts, .kratko, .mlist, .spec1, .steps li:first-child, .vedomost thead th, .tbl thead th { border-top-color: var(--rule); }
.grafy { border-top-width: 2px; }
.pblock .partners { border-top: 2px solid var(--rule); }
@media (min-width: 768px) { .head > .grafy + .pblock .partners { border-top: 0; } .head > .grafy + .pblock { margin-top: 0; } }
.vedomost th, .tbl th { border-bottom-width: 2px; }
/* подписи под ценой не попадают под овал */
.cell-note, .ccard__base, .ccard__price .small { position: relative; }
.ccard__base { margin-top: 8px; }
.cell-note { margin-top: 8px; }
td .min-mark + br + .small, td .min-mark ~ .small { display: inline-block; margin-top: 8px; }
.tbl-wrap { padding-right: 24px; margin-right: -24px; }
@media (max-width: 767px) { .ccards--scroll { padding-left: 14px; margin-left: -14px; scroll-padding-left: 14px; } }
/* 5 карточек классов на десктопе */
.ccards--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px 20px; }
@media (max-width: 1199px) and (min-width: 768px) { .ccards--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ccards--5 .ccard__spec { flex-wrap: wrap; gap: 2px 12px; min-height: 2.9em; }
/* липкая полоса: скрытая не попадает в Tab */
.sbar { visibility: hidden; transition: transform 260ms var(--ease-out), visibility 0s linear 260ms; }
.sbar.is-on { visibility: visible; transition: transform 260ms var(--ease-out), visibility 0s; }
.sbar .btn { white-space: nowrap; }
.sbar__where { -webkit-line-clamp: 1; white-space: nowrap; display: block; text-overflow: ellipsis; }
/* мобайл: обрез лент виден */
@media (max-width: 767px) {
  .popular, .cstrip { -webkit-mask-image: linear-gradient(to right, var(--ink) 82%, transparent); mask-image: linear-gradient(to right, var(--ink) 82%, transparent); }
}
@media (min-width: 600px) and (max-width: 899px) { .mosaic li:last-child .mtile__img { aspect-ratio: 16 / 7; } }
/* без JS: меню строкой, кнопки, которым нужен скрипт, не показываем */
html:not(.js) .city-btn, html:not(.js) [data-open-picker], html:not(.js) .menu-btn { display: none; }
@media (max-width: 1099px) {
  html:not(.js) .hdr__row { flex-wrap: wrap; height: auto; padding-top: 8px; padding-bottom: 4px; gap: 0 16px; }
  html:not(.js) .nav { display: block; width: 100%; margin: 0; }
  html:not(.js) .nav ul { flex-wrap: wrap; gap: 0 18px; }
  html:not(.js) .nav a { display: inline-block; padding: 11px 0; }
}
.tbl caption, .vedomost caption { padding-bottom: 4px; }
@media (max-width: 767px) { .mhero .cta { order: -1; margin: 0 0 16px; } .mhero > div { display: flex; flex-direction: column; } }
.screen__acts .btn { white-space: normal; }
@media (max-width: 767px) { .mhero .fig img { aspect-ratio: 16 / 9; } .mhero { gap: 12px; } }
.links-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 4px 20px; } /* строки не зависят от ширины шрифта: без CLS при подмене */
.sbar { min-height: 63px; } /* 63 + линия 1 px = 64 */

/* Карточки классов: общие строки для всех карточек ряда (кнопки и подписи на одной линии); схемы с прозрачным фоном */
.ccard__img { background: none; }
@media (min-width: 768px) {
  .ccards:not(.ccards--scroll-only) { grid-auto-rows: auto; }
  .ccards .ccard { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
  .ccards .ccard > * { min-width: 0; }
  .ccards .ccard__act { margin-top: 0; align-self: start; }
  .ccards .ccard__base { align-self: start; }
}

/* Первый экран места: строка «что есть» + одна большая кнопка + сразу машины */
.hero-line { font-size: 18px; line-height: 1.45; color: var(--ink); margin: 12px 0 0; max-width: 760px; }
.hero-line b { font-weight: 500; }
.hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin: 20px 0 0; }
.btn--lg { min-height: 56px; padding: 0 32px; font-size: 18px; }
.hero-cta__alt { color: var(--pen); text-underline-offset: 3px; }
.hero-note { font-size: 14px; color: var(--ink-2); margin: 10px 0 0; }
.ccards--hero { margin-top: 32px; }
.head .sources { margin-top: 16px; }
.ccard__name { margin-top: 4px; }
.ccard__price { margin-top: 8px; }
.ccard__base { margin-top: 2px; }
.ccard__act { padding-top: 12px; }
@media (max-width: 767px) {
  .hero-line { font-size: 16px; }
  .hero-cta .btn--lg { width: 100%; }
  .hero-cta__alt { padding: 6px 0; }
  .ccards--hero { margin-top: 24px; }
}
.ccards--hero .ccard__img { aspect-ratio: 2 / 1; margin-bottom: 8px; }
.ccards--hero .ccard__img img { object-fit: cover; object-position: 50% 62%; }
@media (max-width: 767px) { .ccards--hero .ccards--scroll .ccard, .ccards--hero.ccards--scroll .ccard { flex-basis: 62%; } }

/* Каталог Localrent (White Label) в первом экране: место под виджет заранее, чтобы не прыгала вёрстка */
.lrw { margin: 24px 0 0; min-height: 720px; position: relative; z-index: 0; isolation: isolate; } /* слой виджета (внутри z-index 10000) не выше шапки, выпадашки города, шторок и липкой полосы */
.wl-alt { margin: 16px 0 0; }
.wl-alt a { color: var(--pen); text-underline-offset: 3px; }
@media (max-width: 767px) { .lrw { min-height: 900px; margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); } }

/* Выбор города на страницах уровня России: та же графа бланка, что у навигатора главной */
.picker-block { margin: 24px 0 0; padding: 0; background: none; border: 0; max-width: 1000px; }
.picker-block__t { font: 500 22px/1.3 var(--display); margin: 0 0 12px; color: var(--ink); }
.picker-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; background: var(--surface); border-top: 1px solid var(--rule); }
.picker-form select { appearance: none; -webkit-appearance: none; min-width: 0; min-height: 68px; padding: 0 48px 0 18px; font: 400 19px var(--text); color: var(--ink); cursor: pointer;
  background: transparent var(--chev) no-repeat right 20px center; border: 0; border-bottom: 1px solid var(--line-control); border-radius: 0; }
.picker-form select:focus-visible { outline: 0; box-shadow: inset 0 -2px 0 var(--pen); }
.picker-form .btn { min-height: 68px; border-radius: 0; padding: 0 32px; }
.picker-chips { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.picker-chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--line-control); border-radius: var(--radius); color: var(--ink); font-size: 16px; text-decoration: none;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.picker-chips a:hover { border-color: var(--pen); color: var(--pen); text-decoration: none; }
@media (max-width: 767px) {
  .picker-form { grid-template-columns: minmax(0, 1fr); background: none; border-top: 0; }
  .picker-form select { background-color: var(--surface); border-top: 1px solid var(--rule); min-height: 56px; font-size: 17px; }
  .picker-form .btn, .picker-form .btn--lg { width: 100%; margin-top: 12px; min-height: 52px; border-radius: var(--radius); }
  .picker-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); }
  .picker-chips::-webkit-scrollbar { display: none; }
  .picker-chips li { flex: none; }
}
.lede--after { margin-top: 24px; }

/* ═════════ Визуальный проход 07.10.2026: чипсы места, плитки хабов, текстура текста, движение ═════════ */

/* чипсы под H1 места: классы с ценой, условия, аэропорт, курорты */
.pchips { margin: 18px 0 0; }
.pchips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pchip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line-control); border-radius: var(--radius); background: var(--paper);
  font: 400 16px/1.2 var(--text); color: var(--ink); text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform 100ms var(--ease-out); }
.pchip .i { width: 22px; height: 22px; color: var(--ink-2); }
.pchip small { font-size: 14px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.pchip:hover { border-color: var(--pen); color: var(--ink); text-decoration: none; }
.pchip:hover .i:not(.pchip__x) { color: var(--pen); }
.pchip:active { transform: scale(.97); }
.pchip.is-on { background: var(--pen-tint); border-color: var(--pen); box-shadow: inset 0 0 0 1px var(--pen); color: var(--pen-hover); }
.pchip.is-on .i { color: var(--pen); }
.pchip__x { width: 16px; height: 16px; margin-left: 2px; }
.pchip .i--16 { width: 16px; height: 16px; }
@media (max-width: 767px) {
  .pchips ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); scroll-snap-type: x proximity; }
  .pchips ul::-webkit-scrollbar { display: none; }
  .pchips li { flex: none; scroll-snap-align: start; }
}

/* город без каталога: фото места рядом с первым экраном */
.head__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: center; }
.head__fig { margin: 0; }
.head__fig img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 899px) { .head__grid { grid-template-columns: 1fr; gap: 20px; } .head__fig img { aspect-ratio: 16 / 9; } }

/* плитки хабов: классы схемами с ценой, условия иконками, остальное — оглавлением */
.htiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 32px; }
.htiles--class { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.htile { display: flex; flex-direction: column; height: 100%; color: var(--ink); text-decoration: none; }
.htile:hover { color: var(--ink); text-decoration: none; }
.htiles--cond .htile, .htiles--text .htile { border-top: 1px solid var(--rule); padding-top: 16px; }
.htile__img { display: block; aspect-ratio: 3 / 2; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.htile__img img { width: 100%; height: 100%; object-fit: contain; }
.htile__ic { display: block; color: var(--mark); margin-bottom: 10px; }
.htile__ic .i { width: 28px; height: 28px; }
.htile__name { font: 500 19px/1.3 var(--display); color: var(--pen); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: transparent;
  transition: text-decoration-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.htile:hover .htile__name { text-decoration-color: currentColor; color: var(--pen-hover); }
.htile__price { font: 500 18px/1.3 var(--display); font-variant-numeric: tabular-nums; margin-top: 4px; }
.htile__price small { font: 400 14px var(--text); color: var(--ink-2); }
.htile__d { font-size: 15px; line-height: 1.5; color: var(--ink-2); margin-top: 6px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 1023px) { .htiles--class { grid-template-columns: repeat(2, minmax(0, 1fr)); } .htiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  .htiles { grid-template-columns: 1fr; gap: 0; }
  .htiles--cond .htile, .htiles--text .htile { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; padding: 14px 0; border-top: 0; border-bottom: 1px solid var(--line); }
  .htiles--cond li:first-child .htile, .htiles--text li:first-child .htile { border-top: 1px solid var(--rule); }
  .htiles--cond .htile__ic { grid-row: span 2; margin: 2px 0 0; }
  .htiles--text .htile { grid-template-columns: minmax(0, 1fr); }
  .htiles--class { grid-template-columns: 1fr 1fr; gap: 24px 12px; }
  .htile__name { font-size: 17px; }
  .htile__d { font-size: 14px; }
}

/* характеристики модели с иконками */
.spec1 th .i { width: 18px; height: 18px; color: var(--ink-2); vertical-align: -4px; margin-right: 10px; }

/* текстура длинного текста: оглавление, буквица, списки и врезки */
.otoc { margin: 0; padding: 20px 0 4px; border-top: 1px solid var(--rule); }
.otoc__k { font-size: 14px; color: var(--ink-2); margin: 0 0 8px; }
.otoc ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 40px; max-width: 900px; }
.otoc li { break-inside: avoid; padding: 4px 0; font-size: 16px; line-height: 1.4; }
.otoc a { text-underline-offset: 3px; }
.otoc + .section { border-top: 0; }
@media (max-width: 767px) { .otoc ul { columns: 1; } .otoc li { padding: 0; } .otoc a { display: inline-flex; align-items: center; min-height: 44px; padding: 4px 0; } }
.prose--drop > p:first-child::first-letter { float: left; font: 500 3.5em/.82 var(--display); color: var(--mark); margin: .1em .12em 0 0; }
.prose li::marker { color: var(--mark); }
.prose blockquote { margin: 20px 0; padding: 2px 0 2px 20px; border-left: 2px solid var(--rule); font: 400 19px/1.5 var(--display); color: var(--ink); }
.prose table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 16px; border-top: 1px solid var(--rule); font-variant-numeric: tabular-nums; }
.prose th, .prose td { text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose th { font-weight: 500; }

/* строки ведомостей реагируют на курсор */
@media (hover: hover) and (pointer: fine) {
  .vedomost tbody tr { transition: background-color var(--dur-fast) var(--ease-out); }
  .vedomost tbody tr:hover { background: var(--surface); }
}

/* каталог Localrent: скелет формы виджета, пока он грузится, затем плавное появление */
.lrw > :not(script) { transition: opacity 420ms var(--ease-out); }
.lrw.is-wait > :not(script) { opacity: 0; }
.lrw.is-wait::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 640px; pointer-events: none; animation: lrw-pulse 1.2s ease-in-out 8 alternate;
  background:
    linear-gradient(var(--surface), var(--surface)) 0 0 / 100% 88px no-repeat,
    repeating-linear-gradient(90deg, var(--surface) 0 13%, transparent 13% 14.5%) 0 108px / 100% 120px no-repeat,
    linear-gradient(var(--surface), var(--surface)) 0 252px / 24% 22px no-repeat,
    repeating-linear-gradient(90deg, var(--surface) 0 18.9%, transparent 18.9% 20.3%) 0 292px / 100% 180px no-repeat,
    linear-gradient(var(--surface), var(--surface)) 0 500px / 30% 22px no-repeat,
    repeating-linear-gradient(90deg, var(--surface) 0 32%, transparent 32% 34%) 0 540px / 100% 100px no-repeat; }
@keyframes lrw-pulse { from { opacity: .6; } to { opacity: 1; } }
@media (max-width: 767px) {
  .lrw.is-wait::before { left: var(--gutter); right: var(--gutter);
    background:
      linear-gradient(var(--surface), var(--surface)) 0 0 / 100% 132px no-repeat,
      repeating-linear-gradient(90deg, var(--surface) 0 30%, transparent 30% 33.5%) 0 152px / 100% 110px no-repeat,
      linear-gradient(var(--surface), var(--surface)) 0 286px / 50% 22px no-repeat,
      repeating-linear-gradient(90deg, var(--surface) 0 47%, transparent 47% 53%) 0 326px / 100% 160px no-repeat,
      linear-gradient(var(--surface), var(--surface)) 0 510px / 100% 120px no-repeat; }
}

/* появление по скроллу: только блоки ниже первого экрана (класс .rv ставит site.js), один список «волной», схемы «проводятся ручкой» */
.js .rv[data-reveal="stagger"] > li { opacity: 0; transform: translateY(14px); transition: opacity 560ms var(--ease-out), transform 560ms var(--ease-out); }
.js .rv.is-in[data-reveal="stagger"] > li { opacity: 1; transform: none; }
.js .rv[data-reveal] > li:nth-child(2) { transition-delay: 70ms; }
.js .rv[data-reveal] > li:nth-child(3) { transition-delay: 140ms; }
.js .rv[data-reveal] > li:nth-child(4) { transition-delay: 210ms; }
.js .rv[data-reveal] > li:nth-child(5) { transition-delay: 280ms; }
.js .rv[data-reveal] > li:nth-child(n+6) { transition-delay: 350ms; }
.js .rv[data-reveal="draw"] img { clip-path: inset(0 100% 0 0); transition: clip-path 900ms cubic-bezier(.65, 0, .35, 1); }
.js .rv.is-in[data-reveal="draw"] img { clip-path: inset(0 0 0 0); }
.js .rv[data-reveal="draw"] > li:nth-child(2) img { transition-delay: 120ms; }
.js .rv[data-reveal="draw"] > li:nth-child(3) img { transition-delay: 240ms; }
.js .rv[data-reveal="draw"] > li:nth-child(4) img { transition-delay: 360ms; }
.js .rv[data-reveal="draw"] > li:nth-child(n+5) img { transition-delay: 420ms; }
@media (prefers-reduced-motion: reduce) {
  .js .rv[data-reveal] > li, .js .rv[data-reveal] img { transform: none !important; clip-path: none !important; }
  .js .rv[data-reveal="stagger"] > li { transition: opacity 200ms linear; }
  .lrw.is-wait::before { animation: none; }
  .pchip:active, .rchip:active { transform: none; }
}

/* ═════════ Навигатор по контракту navigator.js (07.10.2026): чипсы-кнопки, подсказки, честная строка, развилка GetRentacar ═════════ */
.finder { grid-template-areas: "where go" "what what" "note note" "alts alts"; }
.finder__lbl { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.finder__geo { border: 0; background: none; padding: 0; min-height: 24px; font: 400 14px/1.3 var(--text); color: var(--pen); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.finder__geo:hover { color: var(--pen-hover); text-decoration-thickness: 2px; }
.finder__geo[hidden] { display: none; }
.finder__k { float: left; margin: 0 16px 0 0; line-height: 44px; font-size: 15px; color: var(--ink-2); }
.rchip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line-control); border-radius: var(--radius); background: var(--paper);
  font: 400 16px/1.2 var(--text); color: var(--ink); cursor: pointer; white-space: nowrap;
  transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform 100ms var(--ease-out); }
.rchip .i { width: 24px; height: 24px; color: var(--ink-2); transition: color var(--dur-fast) var(--ease-out); }
.rchip:hover { border-color: var(--pen); }
.rchip:active { transform: scale(.97); }
.rchip[aria-pressed="true"] { border-color: var(--pen); background: var(--pen-tint); color: var(--pen-hover); box-shadow: inset 0 0 0 1px var(--pen); }
.rchip[aria-pressed="true"] .i { color: var(--pen); }
.finder [data-nav-go] { white-space: normal; text-wrap: balance; }
.finder [data-nav-go]:disabled { opacity: .72; cursor: default; }
.finder [data-nav-go].is-ext::after { content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E") center / contain no-repeat; }
.finder__note { grid-area: note; margin: 12px 0 0; font-size: 15px; line-height: 1.45; color: var(--ink); max-width: 720px; }
.finder.is-none .finder__note { color: var(--warn); }
.finder__alts { grid-area: alts; list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.finder__alts[hidden], .finder__note[hidden] { display: none; }
.nav-alt { font-size: 16px; }
.nav-alt a { display: inline-block; padding: 8px 0; }
.nav-alt .muted { font-size: 14px; color: var(--ink-2); margin-left: 6px; }

/* подсказки «где» */
.nav-list { position: absolute; left: -1px; right: -1px; top: 100%; z-index: 40; margin: 0; padding: 4px 0; list-style: none; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow-pop);
  max-height: min(420px, 60vh); overflow-y: auto; opacity: 0; transform: translateY(-4px); transform-origin: top; transition: opacity 160ms var(--ease-out), transform 160ms var(--ease-out); }
.nav-list.is-open { opacity: 1; transform: none; }
.nav-list[hidden] { display: none; }
.nav-grp { font-size: 13px; color: var(--ink-2); padding: 10px 16px 4px; }
.nav-opt { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 16px; cursor: pointer; }
.nav-opt.is-active, .nav-opt:hover { background: var(--pen-tint); }
.nav-opt__n { font-size: 17px; color: var(--ink); }
.nav-opt__m { font-size: 14px; color: var(--ink-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nav-none { padding: 12px 16px; font-size: 15px; color: var(--ink-2); }

/* «Где взять X?» на страницах уровня России */
.pick { margin: 24px 0 0; max-width: 1000px; }
.finder__t { grid-column: 1 / -1; font: 500 22px/1.3 var(--display); margin: 0 0 12px; color: var(--ink); }
.finder--pick { margin: 0; grid-template-areas: "t t" "where go" "what what" "note note" "alts alts"; }
.finder--pick .finder__t { grid-area: t; }
.pchips--places { margin-top: 16px; }
.pchips__k { font-size: 14px; color: var(--ink-2); margin: 0 0 8px; }
.pchip--link small { margin-left: 2px; }

/* навигатор в выпадашке шапки и в шторке */
.finder--hdr { margin: 0 0 20px; max-width: none; }
.finder--hdr .finder__go .btn { min-height: 72px; padding: 0 24px; font-size: 16px; }
.finder--hdr .finder__k { display: none; }
.finder--hdr .finder__chips { gap: 6px; }

/* развилка города только с GetRentacar */
.fork { margin: 16px 0 0; display: grid; gap: 10px; }
.fork__row { display: flex; align-items: flex-start; gap: 12px; }
.fork__k { flex: none; width: 92px; line-height: 44px; font-size: 14px; color: var(--ink-2); }
.fork ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pchip--ext .i--16 { color: var(--ink-2); }
.pchip--ext:hover .i--16 { color: var(--pen); transform: translate(1px, -1px); transition: transform var(--dur-fast) var(--ease-out); }
button.pchip { -webkit-appearance: none; appearance: none; }

/* мобильная сводка навигатора: «Сочи · Минивэн ✎» → шторка */
.nsum { display: none; }
@media (max-width: 767px) {
  .js .nsum { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; margin: 16px 0 0; padding: 0 14px; background: var(--surface); border: 0; border-top: 1px solid var(--rule);
    border-radius: 0; font: 400 16px/1.3 var(--text); color: var(--ink); text-align: left; cursor: pointer; }
  .nsum span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .nsum b { font-weight: 500; }
  .nsum > .i:first-child { color: var(--mark); }
  .nsum > .i:last-child { color: var(--pen); }
  .finder__k { float: none; display: block; line-height: 1.3; margin: 0 0 8px; font-size: 14px; }
  .finder__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); scroll-snap-type: x proximity; }
  .finder__chips::-webkit-scrollbar { display: none; }
  .rchip { flex: none; scroll-snap-align: start; }
  .finder, .finder--pick { grid-template-areas: "t" "where" "what" "go" "note" "alts"; }
  .finder--hdr .finder__chips { flex-wrap: wrap; overflow: visible; margin-right: 0; padding-right: 0; }
  .finder--hdr .finder__go .btn { min-height: 52px; }
  .fork__row { flex-direction: column; gap: 6px; }
  .fork__k { width: auto; line-height: 1.3; }
  .fork ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: calc(100% + var(--gutter)); margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); }
  .fork ul::-webkit-scrollbar { display: none; }
  .fork li { flex: none; }
  .nav-list { position: static; box-shadow: none; border: 0; border-top: 1px solid var(--line); max-height: none; margin: 8px -14px -6px; }
}

/* липкая полоса: сводка слева — кнопка навигатора */
button.sbar__info { font: inherit; color: inherit; }
.sbar__where .i { margin-left: 6px; vertical-align: -2px; color: var(--pen); }

/* классы города: плитка-кнопка фильтра выглядит как ссылка-плитка */
button.kcard__a { width: 100%; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.near--rel a .i { margin-left: 4px; vertical-align: -2px; color: var(--ink-2); }
.hero-cta .btn .i, .btn .i--16 { width: 16px; height: 16px; }

/* «Где взять X?»: с JS список мест даёт навигатор (правило 10) — серверную строку прячем, подсказки-места выглядят чипсами */
.js .pick:has(.finder__alts:not([hidden])) > .pchips--places { display: none; }  /* подмена серверного списка на список навигатора без сдвига: одинаковая высота */
.finder--pick .finder__note { font-size: 14px; line-height: 1.3; color: var(--ink-2); margin: 16px 0 8px; }
.finder--pick .finder__alts { margin: 0; }
.pchips--places { margin-top: 16px; }
.pchips--places .pchips__k { line-height: 1.3; }
.finder__alts { gap: 8px; }
.nav-alt { display: inline-flex; align-items: center; min-height: 44px; border: 1px solid var(--line-control); border-radius: var(--radius); background: var(--paper); padding-right: 12px;
  transition: border-color var(--dur-fast) var(--ease-out); }
.nav-alt:hover { border-color: var(--pen); }
.nav-alt a { display: inline-flex; align-items: center; align-self: stretch; padding: 0 8px 0 14px; color: var(--ink); text-decoration: none; font-size: 16px; }
.nav-alt a:hover { color: var(--pen); }
.nav-alt .muted { margin-left: 0; white-space: nowrap; }
@media (max-width: 767px) { .finder__alts { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(var(--gutter) * -1); padding-right: var(--gutter); } .nav-alt { flex: none; } }
.head__grid > div, .pick, .finder > * { min-width: 0; }  /* ленты чипсов с nowrap не распирают колонку */
/* шторка навигатора: на всю высоту, кнопка прилипает к низу */
#city-sheet { max-height: 100vh; max-height: 100dvh; height: 100dvh; }
#city-sheet .finder__go { position: sticky; bottom: 0; z-index: 2; background: var(--surface); padding: 12px 0 calc(12px + env(safe-area-inset-bottom)); margin-top: 4px; }
#city-sheet .finder__go .btn { margin-top: 0; }

.finder__geo { min-height: 44px; margin: -12px 0; display: inline-flex; align-items: center; }
.linkbtn { border: 0; background: none; padding: 0; font: inherit; font-size: 17px; color: var(--pen); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; cursor: pointer; text-align: left; }
.linkbtn:hover { color: var(--pen-hover); text-decoration-thickness: 2px; }
@media (pointer: coarse) { .near .linkbtn { display: block; padding: 11px 0 0; } }

/* ───── Каталог машин Localrent своим видом (inc/ui.php mars_lr_widget, js: site.js «каталог машин») ───── */
.lrc { margin: 24px 0 0; }
.lrc__sum { margin: 0; font-size: 16px; color: var(--ink-2); }
.lrc__sum b { font: 500 20px/1.3 var(--display); color: var(--ink); }
.lrc__sum span { white-space: nowrap; }
.lrc__bar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin: 12px 0 0; }
.lrc__f { margin: 0; flex: 1 1 520px; min-width: 0; }
.lrc__f .pchip { min-height: 40px; padding: 0 12px; font-size: 15px; }
.lrc__sort { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-2); }
.lrc__sort select { min-height: 44px; padding: 0 36px 0 12px; border: 1px solid var(--line-control); border-radius: var(--radius); background: var(--paper) var(--chev) no-repeat right 12px center; appearance: none; font: 400 16px var(--text); color: var(--ink); }
.lrc__grid { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.car article { height: 100%; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); transition: border-color var(--dur-fast) var(--ease-out); }
.car article:hover { border-color: var(--line-control); }
.car__img { display: block; aspect-ratio: 3 / 2; background: var(--surface); overflow: hidden; }
.car__img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-base) var(--ease-out); }
.car__img .i { width: 64px; height: 64px; margin: 18% auto; display: block; color: var(--line-control); }
.car article:hover .car__img img { transform: scale(1.03); }
.car__body { flex: 1; display: flex; flex-direction: column; padding: 14px 16px 16px; }
.car__name { margin: 0; font: 500 18px/1.3 var(--display); }
.car__name span { color: var(--ink-2); font-weight: 400; }
.car__spec { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 6px 0 0; font-size: 14px; color: var(--ink-2); }
.car__spec span { display: inline-flex; align-items: center; gap: 6px; }
.car__tags { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.car__tags li { font-size: 13px; line-height: 1.3; padding: 3px 8px; border-radius: var(--radius); background: var(--surface); color: var(--ink-2); }
.car__tags li.is-ok { background: var(--ok-tint); color: var(--ok); }
.car__foot { margin-top: auto; padding-top: 14px; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.car__price { margin: 0; font-size: 14px; color: var(--ink-2); line-height: 1.3; }
.car__price b { display: block; font: 500 22px/1.2 var(--display); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.car__price span { font-size: 13px; }
.car__price small { display: block; font-size: 13px; margin-top: 2px; white-space: nowrap; }
.car__go { min-height: 44px; padding: 0 16px; gap: 6px; white-space: nowrap; }
.lrc.is-js .car[data-more], .car.is-off { display: none; }
.lrc__more { margin: 24px 0 0; text-align: center; }
.lrc__empty { margin: 20px 0 0; }
.lrc__note { margin: 16px 0 0; font-size: 14px; color: var(--ink-2); max-width: 72ch; }
@media (max-width: 1023px) { .lrc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  .lrc__grid { grid-template-columns: 1fr; gap: 16px; }
  .lrc__sort { width: 100%; } .lrc__sort select { flex: 1; }
}

/* ───── «Прокаты в <городе>» на странице места (inc/pages.php mars_city_prokaty_block) ───── */
.prks { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.prk__a { overflow: hidden; height: 100%; display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); text-decoration: none; transition: border-color var(--dur-fast) var(--ease-out); }
.prk__a:hover { border-color: var(--pen); text-decoration: none; }
.prk__name { font: 500 19px/1.3 var(--display); }
.prk__a:hover .prk__name { color: var(--pen); }
.prk__kind { font-size: 14px; color: var(--ink-2); }
.prk__tags { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--ink-2); }
.prk__tags li { display: inline-flex; align-items: center; gap: 6px; }
.prk__best { font-size: 15px; line-height: 1.45; }
.prk__go { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 6px; font-size: 15px; color: var(--pen); }
@media (max-width: 767px) { .prks { grid-template-columns: 1fr; gap: 12px; } }

/* ───── Карточка проката (inc/prokaty.php) ───── */
.pcard__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: 32px 48px; align-items: start; }
.pcard h1 { font-size: clamp(28px, 3vw, 40px); }
.pcard__meta { margin: 8px 0 0; font-size: 17px; color: var(--ink-2); }
.pcard__meta a { color: var(--pen); text-underline-offset: 3px; }
.pcard__tags { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px 24px; font-size: 16px; }
.pcard__tags li { display: inline-flex; align-items: center; gap: 8px; }
.pcard__tags .i { width: 20px; height: 20px; color: var(--pen); }
.pcard__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; }
.pcard__cta .btn { gap: 8px; }
.pcard .updated { margin-top: 16px; }
.pcard__shot { margin: 0; border: 1px solid var(--line-control); border-radius: 6px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow-pop); }
.pcard__bar { display: flex; align-items: center; gap: 6px; padding: 8px 12px; background: var(--surface); border-bottom: 1px solid var(--line); font-size: 13px; color: var(--ink-2); }
.pcard__bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--line); }
.pcard__bar span { margin-left: 10px; }
.pcard__shot img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; }
.ved { margin: 20px 0 0; border-top: 2px solid var(--rule); }
.ved__row { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 8px 24px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.ved dt { display: flex; align-items: flex-start; gap: 10px; font: 500 17px/1.4 var(--display); }
.ved dt .i { width: 22px; height: 22px; flex: none; color: var(--rule); }
.ved dd { margin: 0; }
.ved dd ul { margin: 0; padding-left: 18px; }
.ved dd li + li { margin-top: 6px; }
.ved__city { margin: 32px 0 0; font: 500 20px/1.3 var(--display); }
.verdicts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.verdict { padding: 18px 20px; border-radius: var(--radius); border-left: 3px solid; }
.verdict h3 { display: flex; align-items: center; gap: 8px; margin: 0; font: 500 18px/1.3 var(--display); }
.verdict h3 .i { width: 20px; height: 20px; }
.verdict p { margin: 8px 0 0; }
.verdict--ok { background: var(--ok-tint); border-color: var(--ok); } .verdict--ok h3 { color: var(--ok); }
.verdict--warn { background: var(--warn-tint); border-color: var(--warn); } .verdict--warn h3 { color: var(--warn); }
.altgo { margin-top: 16px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.altgo p { margin: 0; max-width: 60ch; }
.altgo .btn { gap: 8px; }
.prk__shot { display: block; margin: -16px -18px 8px; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); border-bottom: 1px solid var(--line); }
.prk__shot img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform var(--dur-base) var(--ease-out); }
.prk__a:hover .prk__shot img { transform: scale(1.02); }
.prks:has(.prk__shot) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.car__city { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: 13px; color: var(--ink-2); }
@media (max-width: 1023px) { .pcard__grid { grid-template-columns: 1fr; } .prks:has(.prk__shot) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .pcard__tags { grid-template-columns: 1fr; }
  .ved__row { grid-template-columns: 1fr; }
  .verdicts { grid-template-columns: 1fr; }
  .prks:has(.prk__shot) { grid-template-columns: 1fr; }
}
.ved__d { border-bottom: 1px solid var(--line); }
.ved__d summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; padding: 14px 0; }
.ved__d summary::-webkit-details-marker { display: none; }
.ved__d summary::after { content: ''; width: 12px; height: 8px; background: var(--chev) no-repeat center; transition: transform var(--dur-fast) var(--ease-out); }
.ved__d[open] summary::after { transform: rotate(180deg); }
.ved__d .ved__city { margin: 0; }
.ved__d .ved { margin-top: 0; }
/* источник карточки — картинкой (текст домена не попадает в HTML страницы) */
.car__act { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.car__src { display: block; line-height: 0; opacity: .85; transition: opacity var(--dur-fast) var(--ease-out); }
.car__src img { display: block; height: 13px; width: auto; max-width: 160px; }
a.car__src:hover { opacity: 1; }
/* партнёр GetRentacar первой широкой карточкой там, где нет машин Localrent */
.lrc__cta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 20px 24px; border: 1px solid var(--pen); border-radius: var(--radius); background: var(--pen-tint); }
.lrc__cta b { display: block; font: 500 20px/1.3 var(--display); }
.lrc__cta span { display: block; margin-top: 4px; color: var(--ink-2); max-width: 60ch; }
.lrc__cta .btn { gap: 8px; }

/* каталог GetRentacar по городам (страница партнёра) */
.grc-grid { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.grc-city { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); transition: border-color var(--dur-fast) var(--ease-out); }
.grc-city:hover { border-color: var(--line-control); }
.grc-city b { font: 500 19px/1.3 var(--display); }
.grc-city span { color: var(--ink-2); font-size: 15px; line-height: 1.4; flex: 1; }
.grc-city .btn { align-self: flex-start; margin-top: 8px; }
.grc-city__our { font-size: 14px; margin-top: 2px; }
.grc-more { margin-top: 16px; }
.grc-more summary { cursor: pointer; font-weight: 500; }
@media (max-width: 1023px) { .grc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .grc-grid { grid-template-columns: 1fr; gap: 12px; } }
