/*
 * iSKV — вариант «Стекло ближе к макету» — ОСНОВА стиля, v1.0 (утверждено 2026-10-30).
 * Подключается ПОСЛЕ tokens.css, preview.css и home.css и только переопределяет их — прежние файлы не меняются.
 * Замеры по макету (белый поверх фона): поля поиска α≈0,35–0,50, подвал α≈0,30, тело карточек ≈0,45–0,60
 * с бирюзовым просветом к низу. Фон bg-glow.svg уже размыт, поэтому блокам над фоном backdrop-filter не нужен —
 * прозрачность почти бесплатна; размытие оставлено только там, где под блоком проходит контент.
 */

:root {
  --iskv-glass-light-bg:       rgba(255, 255, 255, .50);
  --iskv-glass-light-border:   rgba(255, 255, 255, .75);
  --iskv-glass-regular-bg:     rgba(255, 255, 255, .40);
  --iskv-glass-regular-border: rgba(255, 255, 255, .65);
  --iskv-glass-dense-bg:       rgba(255, 255, 255, .72);
  --iskv-glass-dense-border:   rgba(255, 255, 255, .80);
  --glass-edge:   inset 0 1px 0 rgba(255, 255, 255, .85), inset 0 0 0 1px rgba(255, 255, 255, .25);
  --glass-shadow: 0 10px 30px rgba(31, 45, 58, .07), 0 1px 2px rgba(31, 45, 58, .04);
}

/* ---------- Карточки объектов: белое стекло сверху → бирюзовый просвет к низу ---------- */
.pcard {
  background: linear-gradient(180deg, rgba(255, 255, 255, .58) 0%, rgba(255, 255, 255, .42) 50%, rgba(214, 238, 236, .48) 100%);
  border: 1px solid rgba(255, 255, 255, .70);
  box-shadow: var(--glass-shadow), var(--glass-edge);
}
.pcard:hover { box-shadow: 0 16px 40px rgba(31, 45, 58, .11), var(--glass-edge); }
.pcard-img { box-shadow: 0 1px 0 rgba(255, 255, 255, .6); }

/* Нижняя полоса: тот же утверждённый #007F75, но с глянцем — блик сверху и мягкий градиент */
.pcard-bar {
  background: linear-gradient(180deg, rgba(0, 143, 132, .96) 0%, rgba(0, 127, 117, .96) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28);
}
.pcard:hover .pcard-bar { background: linear-gradient(180deg, rgba(0, 128, 118, .97), rgba(0, 120, 110, .97)); }

/* Капсулы меток на фото — чуть прозрачнее, с бликом */
.bdg.on-photo { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 1px 3px rgba(31, 45, 58, .10); }

/* ---------- Поиск: поля — лёгкое стекло, фон просвечивает ---------- */
.sf .field {
  background-color: rgba(255, 255, 255, .48);
  border-color: rgba(255, 255, 255, .75);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 4px 14px rgba(31, 45, 58, .05);
}
.sf .field:hover { background-color: rgba(255, 255, 255, .60); }
.sf .field:focus { background-color: rgba(255, 255, 255, .72); }
.of-panel { background: rgba(255, 255, 255, .42); border-color: rgba(255, 255, 255, .70); -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: var(--glass-shadow), var(--glass-edge); }

/* ---------- Типы объектов ---------- */
.ttabs { background: rgba(255, 255, 255, .38); border-color: rgba(255, 255, 255, .70); -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: var(--glass-shadow), var(--glass-edge); }
.ttab:hover { background: rgba(255, 255, 255, .80); }

/* ---------- Кнопка «Посмотреть все объекты» ---------- */
.btn-secondary { background: rgba(255, 255, 255, .52); border-color: rgba(255, 255, 255, .80); box-shadow: var(--glass-shadow), inset 0 1px 0 rgba(255, 255, 255, .85); }
.btn-secondary:hover { background: rgba(255, 255, 255, .75); }

/* ---------- Герой: плашка на фото остаётся плотной (поверх снимка нужен блюр) ---------- */
.hs-plate { background: rgba(255, 255, 255, .70); }

/* ---------- Подвал: очень лёгкое стекло, как в макете ---------- */
.ft-panel {
  background: linear-gradient(115deg, rgba(222, 242, 240, .48) 0%, rgba(255, 255, 255, .34) 45%, rgba(255, 255, 255, .40) 100%);
  border-color: rgba(255, 255, 255, .70);
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: 0 18px 50px rgba(31, 45, 58, .06), var(--glass-edge);
}

/* ---------- Шапка при прокрутке: под ней едет контент — стекло с размытием сохраняем ---------- */
.masthead.is-stuck { background: rgba(255, 255, 255, .55); }

/* Без поддержки backdrop-filter: плотнее там, где он нужен */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .masthead.is-stuck, .submenu, .hs-plate { background: rgba(255, 255, 255, .94); }
}

/* Читаемость на прозрачном стекле: вторичный текст в карточках и плейсхолдеры чуть темнее (≥ 4,5:1 на самом тёмном участке фона) */
.pcard-loc, .pcard-meta { color: #4A5A68; }
.sf .field::placeholder { color: #4A5A68; }
.sf .field { color: var(--iskv-color-heading); }

/* ---------- «Другие особенности»: каждый пункт — стеклянная капсула-переключатель (основа, 2026-10-30) ---------- */
/* Разметка та же (label.chk > input[type=checkbox] + span). Чекбокс остаётся настоящим — работает клавиатура и экранные чтецы. */
.of-panel { gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); column-gap: 32px; align-items: start; }
.of-group legend { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--iskv-color-text-muted); margin-bottom: 10px; padding: 0; }
.of-items { display: flex; flex-wrap: wrap; gap: 8px; }
.chk { position: relative; display: inline-flex; gap: 0; cursor: pointer; }
.chk input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; appearance: none; border: 0; background: none; }
.chk input::after { display: none; }
.chk span {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 12px; border-radius: var(--iskv-radius-pill);
  background: rgba(255, 255, 255, .55); border: 1px solid rgba(255, 255, 255, .80);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 2px 8px rgba(31, 45, 58, .05);
  font-size: 14px; font-weight: 500; color: var(--iskv-color-text); white-space: nowrap; user-select: none;
  transition: background-color var(--iskv-dur-fast) var(--iskv-ease), border-color var(--iskv-dur-fast) var(--iskv-ease), color var(--iskv-dur-fast) var(--iskv-ease), box-shadow var(--iskv-dur-fast) var(--iskv-ease), transform var(--iskv-dur-fast) var(--iskv-ease); }
.chk span::before {
  content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; box-sizing: border-box;
  border: 1.5px solid #B9C5CD; background: rgba(255, 255, 255, .9) center / 10px 8px no-repeat;
  transition: background-color var(--iskv-dur-fast) var(--iskv-ease), border-color var(--iskv-dur-fast) var(--iskv-ease); }
.chk:hover span { background: rgba(255, 255, 255, .82); border-color: var(--iskv-teal-200); }
.chk:active span { transform: scale(.98); }
.chk input:checked + span { background: rgba(217, 242, 239, .92); border-color: var(--iskv-teal-300); color: var(--iskv-color-link); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 4px 12px rgba(0, 127, 117, .12); }
.chk input:checked + span::before {
  border-color: var(--iskv-color-accent-strong); background-color: var(--iskv-color-accent-strong);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8'%3E%3Cpath d='M1 4.2 3.7 7 9 1' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.chk input:focus-visible + span { box-shadow: var(--iskv-focus-ring); }
.of-actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 4px; border-top: 1px solid rgba(44, 62, 80, .08); }
.of-count { font-size: 13px; color: var(--iskv-color-text-muted); padding-top: 12px; }
.of-reset { border: 0; background: transparent; padding: 12px 0 0; font: var(--iskv-fw-medium) 13px var(--iskv-font-sans); color: var(--iskv-color-link); cursor: pointer; }
.of-reset:hover { text-decoration: underline; }
.of-reset[disabled] { color: var(--iskv-color-text-muted); opacity: .6; cursor: default; text-decoration: none; }
@media (max-width: 575px) {
  .of-panel { padding: 16px; gap: 18px; }
  .chk span { height: 44px; padding: 0 14px 0 12px; font-size: 14px; } /* касание пальцем — не меньше 44 px */
  .of-items { gap: 8px; }
}
@media (max-width: 340px) {
  .of-items { display: grid; grid-template-columns: 1fr; }
  .chk span { width: 100%; white-space: normal; }
}

/* ---------- Главное меню — единый стеклянный блок с пунктами внутри (решение владельца 2026-10-30: стили меню и видов недвижимости поменяны местами) ----------
   Как прежний блок видов недвижимости: подложка-стекло радиусом 16 px, пункты 40 px радиусом 12 px; наведение — белая подложка. */
.hdr-menu { gap: 4px; padding: 5px; border-radius: 16px;
  background: rgba(255, 255, 255, .38); border: 1px solid rgba(255, 255, 255, .70); box-shadow: var(--glass-shadow), var(--glass-edge); }
.hdr-menu > a, .hdr-menu > .has-sub > a {
  display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border-radius: var(--iskv-radius-md);
  color: var(--iskv-color-heading); letter-spacing: .03em; background: transparent;
  transition: background-color var(--iskv-dur-fast) var(--iskv-ease), color var(--iskv-dur-fast) var(--iskv-ease), box-shadow var(--iskv-dur-fast) var(--iskv-ease); }
.hdr-menu > a::after, .hdr-menu > .has-sub > a::after { display: none; }
.hdr-menu > a:hover, .hdr-menu > .has-sub:hover > a, .hdr-menu > .has-sub.is-open > a { background: rgba(255, 255, 255, .85); color: var(--iskv-color-link); box-shadow: var(--iskv-shadow-glass); }
.hdr-menu > a.is-current { background: rgba(255, 255, 255, .95); color: var(--iskv-color-link); box-shadow: var(--iskv-shadow-glass), inset 0 -2px 0 var(--iskv-color-accent); }
.hdr-menu a:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring); }
.hdr-menu .chev { margin-left: 8px; transform: translateY(-2px) rotate(45deg); }
.has-sub:hover > a .chev, .has-sub.is-open > a .chev { transform: translateY(1px) rotate(-135deg); }
.submenu { top: calc(100% + 12px); }
.masthead.is-stuck .hdr-menu { background: rgba(255, 255, 255, .5); }
.masthead.is-stuck .hdr-menu > a, .masthead.is-stuck .hdr-menu > .has-sub > a { height: 36px; }
@media (max-width: 1199px) {
  .hdr-menu { gap: 2px; padding: 4px; }
  .hdr-menu > a, .hdr-menu > .has-sub > a { height: 36px; padding: 0 12px; font-size: 12px; }
}

/* ---------- Виды недвижимости — плитки с иконкой и числом объектов (1.2.0, inc/ere.php sitefix_type_tiles) ---------- */
/* От 1024 px — один ряд на всю ширину содержимого (как форма поиска): плитки равной ширины, новый вид сужает все поровну (решение владельца 2026-11-02).
   Ниже 1024 px — сетка в 3 колонки (телефон, планшет в портрете). */
.types .ptiles { flex: 1 1 auto; }
.ptiles { display: flex; flex-wrap: nowrap; gap: 12px; width: 100%; margin: 0; padding: 0 0 8px; list-style: none; }
.ptiles li { display: flex; flex: 1 1 0; min-width: 0; }
.ptile {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px;
  width: 100%; min-height: 108px; padding: 20px 10px 14px; border-radius: var(--iskv-radius-lg, 16px);
  background: rgba(255, 255, 255, .46); border: 1px solid rgba(255, 255, 255, .78);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 6px 18px rgba(31, 45, 58, .06);
  color: var(--iskv-color-heading); text-decoration: none;
  transition: background-color var(--iskv-dur-fast) var(--iskv-ease), color var(--iskv-dur-fast) var(--iskv-ease), box-shadow var(--iskv-dur-fast) var(--iskv-ease), transform var(--iskv-dur-fast) var(--iskv-ease);
}
.ptile .i { width: 34px; height: 34px; stroke-width: 1.6; color: var(--iskv-color-accent-strong); }
.ptile-t { font-size: 14px; font-weight: 500; line-height: 1.2; text-align: center; text-wrap: balance; overflow-wrap: anywhere; }
.ptile-n { position: absolute; top: 8px; right: 11px; font-size: 12px; font-weight: 600; line-height: 1; color: var(--iskv-color-text-muted); font-variant-numeric: tabular-nums; }
/* «Выбранная» плитка — белая, бирюзовый текст, стрелка вниз (как в образце): при наведении, фокусе и на странице этого вида */
.ptile::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 13px; height: 13px; margin-left: -6.5px; border-radius: 2px; background: #fff; transform: rotate(45deg) scale(0); transition: transform var(--iskv-dur-fast) var(--iskv-ease); }
.ptile:hover, .ptile:focus-visible, .ptile.is-current { background: #fff; border-color: #fff; color: var(--iskv-color-accent-strong); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 95, 88, .16); }
.ptile:hover .ptile-n, .ptile:focus-visible .ptile-n, .ptile.is-current .ptile-n { color: var(--iskv-color-accent-strong); }
.ptile:hover::after, .ptile:focus-visible::after, .ptile.is-current::after { transform: rotate(45deg) scale(1); }
.ptile:active { transform: translateY(0) scale(.98); }
.ptile:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring), 0 12px 28px rgba(0, 95, 88, .16); }
@media (max-width: 1023px) {
  .ptiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
}
@media (max-width: 767px) {
  .ptile { min-height: 96px; padding: 18px 6px 12px; gap: 7px; }
  .ptile .i { width: 30px; height: 30px; }
  .ptile-t { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .ptile, .ptile::after { transition: none; } .ptile:hover, .ptile:focus-visible, .ptile.is-current { transform: none; } }

/* ---------- Логотип: одноцветный (#00A699), на компьютере на 20 % меньше (решение владельца 2026-10-30) ----------
   Файлы assets/iskv-logo-mono.png и @2x. Компьютер: 44 → 35 px (при прокрутке 38 → 30 px). Телефоны и планшеты (≤ 991 px) — без изменений, 36 px. */
.hdr-logo img { height: 35px; }
.masthead.is-stuck .hdr-logo img { height: 30px; }
@media (max-width: 991px) { .hdr-logo img, .masthead.is-stuck .hdr-logo img { height: 36px; } }

/* ---------- Телефон в шапке — без плашки: иконка + номер текстом, главный тёмно-бирюзовый #007F75 (решение владельца 2026-10-30) ---------- */
.hdr-phone {
  width: auto; height: 44px; padding: 0 2px; border: 0; border-radius: 8px; background: none; box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none; color: var(--iskv-color-accent-strong);
  transition: color var(--iskv-dur-fast) var(--iskv-ease); }
.hdr-phone:hover { transform: none; box-shadow: none; color: var(--iskv-teal-900); }
.hdr-phone .ph-stack { gap: 10px; }
.hdr-phone svg { width: 20px; height: 20px; opacity: 1; stroke-width: 1.9; }
.hdr-phone .ph-num { font-size: 20px; font-weight: 600; letter-spacing: .015em; text-shadow: none; position: relative; }
.hdr-phone .ph-num::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1.5px; border-radius: 2px; background: currentColor; opacity: 0; transform: scaleX(.6); transition: opacity var(--iskv-dur-fast) var(--iskv-ease), transform var(--iskv-dur-fast) var(--iskv-ease); }
.hdr-phone:hover .ph-num::after { opacity: .55; transform: scaleX(1); }
.hdr-phone:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring); }
.masthead.is-stuck .hdr-phone { height: 40px; }
@media (max-width: 1199px) { .hdr-phone { width: auto; height: 44px; padding: 0 2px; } .hdr-phone .ph-num { font-size: 18px; } .hdr-phone svg { width: 18px; height: 18px; } }
@media (max-width: 991px) {
  .hdr-phone { width: 44px; height: 44px; padding: 0; border-radius: 12px; justify-content: center; }
  .hdr-phone svg { width: 24px; height: 24px; }
  .hdr-phone:hover { background: var(--iskv-tint-teal); }
}
