/*
 * iSKV — общие стили компонентов для HTML-превью (v1.0, утверждено 2026-10-30).
 * Источник — утверждённые образцы foundation.html; значения только из tokens.css.
 * Основа будущего CSS дочерней темы (там селекторы будут привязаны к классам темы и ERE).
 */
* { box-sizing: border-box; }
body { margin: 0; font: var(--iskv-fw-regular) var(--iskv-fs-base)/var(--iskv-lh-base) var(--iskv-font-sans); color: var(--iskv-color-text); background: var(--iskv-bg-page); -webkit-font-smoothing: antialiased; }
/* Фон вариант C: один закреплённый слой с SVG (размытие считается один раз; работает и в iOS Safari, где background-attachment: fixed не поддерживается) */
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: var(--iskv-bg-glow) center / 100% 100% no-repeat, var(--iskv-bg-page); }
img { max-width: 100%; }
a { color: var(--iskv-color-link); }
  /* glass */
  .glass { border-radius: var(--iskv-radius-lg); box-shadow: var(--iskv-shadow-glass), var(--iskv-glass-highlight); }
  .glass-light   { background: var(--iskv-glass-light-bg); border: 1px solid var(--iskv-glass-light-border); }
  .glass-regular { background: var(--iskv-glass-regular-bg); border: 1px solid var(--iskv-glass-regular-border); -webkit-backdrop-filter: blur(var(--iskv-glass-blur-md)) saturate(140%); backdrop-filter: blur(var(--iskv-glass-blur-md)) saturate(140%); }
  .glass-dense   { background: var(--iskv-glass-dense-bg); border: 1px solid var(--iskv-glass-dense-border); -webkit-backdrop-filter: blur(var(--iskv-glass-blur-lg)) saturate(140%); backdrop-filter: blur(var(--iskv-glass-blur-lg)) saturate(140%); }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .glass-regular, .glass-dense { background: var(--iskv-glass-fallback-bg); }
  }

  /* controls */
  .row { display: flex; flex-wrap: wrap; gap: var(--iskv-space-4); align-items: center; }
  .btn { height: var(--iskv-control-height); padding: 0 var(--iskv-space-6); border-radius: var(--iskv-radius-md); border: 1px solid transparent; font: var(--iskv-fw-semibold) var(--iskv-fs-base) var(--iskv-font-sans); cursor: pointer; display: inline-flex; align-items: center; gap: var(--iskv-space-2); transition: background-color var(--iskv-dur-base) var(--iskv-ease), box-shadow var(--iskv-dur-base) var(--iskv-ease), transform var(--iskv-dur-fast) var(--iskv-ease); }
  .btn:focus-visible, .field:focus-visible, .tab:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring); }
  .btn-cta { background: linear-gradient(180deg, var(--iskv-gold-400), var(--iskv-gold-500)); color: var(--iskv-color-cta-text); box-shadow: var(--iskv-glow-gold), inset 0 1px 0 rgba(255,255,255,.45); }
  .btn-cta:hover { background: var(--iskv-gold-400); transform: translateY(-1px); }
  .btn-secondary { background: var(--iskv-glass-dense-bg); border-color: var(--iskv-ink-200); color: var(--iskv-color-text); }
  .btn-secondary:hover { border-color: var(--iskv-teal-300); color: var(--iskv-color-link); }
  .btn[disabled] { opacity: .5; box-shadow: none; cursor: not-allowed; }
  .field { height: var(--iskv-control-height); padding: 0 var(--iskv-space-4); min-width: 220px; border-radius: var(--iskv-radius-md); border: 1px solid var(--iskv-glass-dense-border); background: var(--iskv-glass-dense-bg); font: var(--iskv-fs-base) var(--iskv-font-sans); color: var(--iskv-color-text); box-shadow: inset 0 1px 2px rgba(31,45,58,.04); }
  .field::placeholder { color: var(--iskv-color-text-muted); }
  .field.is-focus { border-color: var(--iskv-teal-400); box-shadow: 0 0 0 3px rgba(0,166,153,.18); }
  .field.is-error { border-color: var(--iskv-color-danger); }
  .err { display: block; color: var(--iskv-color-danger); font-size: var(--iskv-fs-sm); margin-top: var(--iskv-space-1); }
  select.field { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2300786E' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
  .badge { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--iskv-radius-pill); font-size: var(--iskv-fs-xs); font-weight: var(--iskv-fw-semibold); letter-spacing: var(--iskv-ls-caps); }
  .badge-status { background: var(--iskv-color-accent-strong); color: var(--iskv-white); }
  .badge-label { background: var(--iskv-color-cta); color: var(--iskv-color-cta-text); }
  .badge-soft { background: var(--iskv-tint-teal); color: var(--iskv-color-link); }
  .phone { display: inline-flex; align-items: center; gap: var(--iskv-space-2); height: 48px; padding: 0 var(--iskv-space-6); border-radius: var(--iskv-radius-pill); background: linear-gradient(135deg, rgba(0,166,153,.92), rgba(38,181,168,.85)); color: var(--iskv-white); font-weight: var(--iskv-fw-semibold); font-size: var(--iskv-fs-md); box-shadow: var(--iskv-glow-teal), inset 0 1px 0 rgba(255,255,255,.4); }
  .tabs { display: inline-flex; padding: 4px; gap: 4px; border-radius: var(--iskv-radius-pill); }
  .tab { border: 0; background: transparent; height: 40px; padding: 0 var(--iskv-space-5); border-radius: var(--iskv-radius-pill); font: var(--iskv-fw-medium) var(--iskv-fs-sm) var(--iskv-font-sans); color: var(--iskv-color-text-muted); cursor: pointer; }
  .tab.is-active { background: var(--iskv-glass-dense-bg); color: var(--iskv-color-heading); box-shadow: var(--iskv-shadow-glass); }

  /* ---------- Шапка по макету 1.2: без подложки, на фоне страницы; стекло только при прокрутке ---------- */
  .masthead { position: sticky; top: 0; z-index: 50; transition: background-color var(--iskv-dur-base) var(--iskv-ease), box-shadow var(--iskv-dur-base) var(--iskv-ease); }
  .masthead.is-stuck { background: var(--iskv-glass-regular-bg); -webkit-backdrop-filter: blur(var(--iskv-glass-blur-md)) saturate(140%); backdrop-filter: blur(var(--iskv-glass-blur-md)) saturate(140%); border-bottom: 1px solid var(--iskv-glass-regular-border); box-shadow: 0 6px 24px rgba(31,45,58,.06); }
  .hdr-inner { padding: 0 var(--iskv-page-gutter); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--iskv-space-6); height: 92px; transition: height var(--iskv-dur-base) var(--iskv-ease); }
  .masthead.is-stuck .hdr-inner { height: 72px; }
  .hdr-logo { justify-self: start; display: flex; align-items: center; }
  .hdr-logo img { height: 44px; width: auto; display: block; }
  .masthead.is-stuck .hdr-logo img { height: 38px; }
  .hdr-menu { justify-self: center; display: flex; align-items: center; gap: 22px; white-space: nowrap; }
  .hdr-menu a { font-size: 13px; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: var(--iskv-color-heading); text-decoration: none; padding: 6px 0; position: relative; transition: color var(--iskv-dur-base) var(--iskv-ease); cursor: pointer; }
  .hdr-menu a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--iskv-color-accent); transform: scaleX(0); transition: transform var(--iskv-dur-base) var(--iskv-ease); }
  .hdr-menu a:hover { color: var(--iskv-color-link); }
  .hdr-menu a:hover::after, .hdr-menu a.is-current::after { transform: scaleX(1); }
  .hdr-menu .chev { display: inline-block; margin-left: 6px; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
  /* Телефон — стеклянная плашка: бирюзовый градиент, блик, свечение; иконка над номером, блок прижат влево */
  .hdr-phone { justify-self: end; position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 280px; height: 60px; padding: 0 24px; box-sizing: border-box;
    border-radius: 20px; text-decoration: none; color: var(--iskv-white); cursor: pointer;
    background: linear-gradient(100deg, rgba(150, 222, 214, .80) 0%, rgba(38, 181, 168, .78) 55%, rgba(0, 156, 144, .82) 100%);
    border: 1px solid rgba(255, 255, 255, .55);
    -webkit-backdrop-filter: blur(var(--iskv-glass-blur-md)); backdrop-filter: blur(var(--iskv-glass-blur-md));
    box-shadow: 0 10px 28px rgba(0, 166, 153, .28), inset 0 1px 0 rgba(255, 255, 255, .65), inset 0 -10px 24px rgba(0, 120, 110, .18);
    transition: box-shadow var(--iskv-dur-base) var(--iskv-ease), transform var(--iskv-dur-fast) var(--iskv-ease); }
  .hdr-phone:hover { transform: translateY(-1px); box-shadow: 0 14px 34px rgba(0, 166, 153, .36), inset 0 1px 0 rgba(255,255,255,.7), inset 0 -10px 24px rgba(0,120,110,.18); }
  .hdr-phone:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring); }
  /* иконка и номер — одна строка, по центру плашки по обеим осям */
  .hdr-phone .ph-stack { display: inline-flex; flex-direction: row; align-items: center; gap: 10px; line-height: 1; }
  .hdr-phone svg { flex: none; width: 18px; height: 18px; display: block; opacity: .95; }
  .hdr-phone .ph-num { display: block; font-size: 19px; font-weight: 600; letter-spacing: .01em; line-height: 1; text-shadow: 0 1px 2px rgba(0, 90, 82, .25); font-variant-numeric: tabular-nums; }
  .masthead.is-stuck .hdr-phone { height: 52px; }
  .burger { display: none; width: 44px; height: 44px; border: 0; background: transparent; color: var(--iskv-color-heading); cursor: pointer; padding: 10px; }
  .burger span, .burger span::before, .burger span::after { display: block; width: 22px; height: 2px; border-radius: 2px; background: currentColor; position: relative; content: ""; }
  .burger span::before { position: absolute; top: -7px; } .burger span::after { position: absolute; top: 7px; }
  @media (max-width: 1199px) {
    .hdr-menu { gap: 16px; } .hdr-menu a { font-size: 12px; }
    .hdr-phone { width: 210px; height: 52px; padding: 0 16px; } .hdr-phone .ph-num { font-size: 17px; } .hdr-phone svg { width: 16px; height: 16px; }
  }
  @media (max-width: 991px) {
    .hdr-inner { grid-template-columns: auto 1fr auto; height: 64px; gap: var(--iskv-space-3); }
    .masthead.is-stuck .hdr-inner { height: 60px; }
    .hdr-menu { display: none; } .burger { display: inline-flex; align-items: center; justify-content: center; }
    .hdr-logo { justify-self: center; } .hdr-logo img { height: 36px; }
    .hdr-phone { width: 48px; height: 48px; padding: 0; border-radius: 16px; } .hdr-phone .ph-num { display: none; } .hdr-phone svg { width: 20px; height: 20px; }
  }

  /* status & label badges */
  .bdg { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
  .bdg::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
  .bdg.on-photo { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  .b-sale     { color: var(--iskv-badge-sale-text);     background: var(--iskv-badge-sale-bg); }
  .b-rent     { color: var(--iskv-badge-rent-text);     background: var(--iskv-badge-rent-bg); }
  .b-reserved { color: var(--iskv-badge-reserved-text); background: var(--iskv-badge-reserved-bg); }
  .b-newprice { color: var(--iskv-badge-newprice-text); background: var(--iskv-badge-newprice-bg); }
  .b-sold     { color: var(--iskv-badge-sold-text);     background: var(--iskv-badge-sold-bg); }
  .b-featured { color: var(--iskv-badge-featured-text); background: var(--iskv-badge-featured-bg); }
  .b-publish  { color: var(--iskv-badge-publish-text);  background: var(--iskv-badge-publish-bg); }
  .b-pending  { color: var(--iskv-badge-pending-text);  background: var(--iskv-badge-pending-bg); }
  .b-expired  { color: var(--iskv-badge-expired-text);  background: var(--iskv-badge-expired-bg); }
  .b-hidden   { color: var(--iskv-badge-hidden-text);   background: var(--iskv-badge-hidden-bg); }
  .b-draft    { color: var(--iskv-badge-draft-text);    background: var(--iskv-badge-draft-bg); }

  /* top bar + language switcher */
  .topbar { padding: 0 var(--iskv-page-gutter); display: flex; align-items: center; justify-content: space-between; height: 40px; }
  .topbar-wrap { border-bottom: 1px solid rgba(44, 62, 80, .06); }
  .topbar-link { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 14px; border-radius: 999px; font-size: 13px; font-weight: 500; color: var(--iskv-color-text); text-decoration: none; cursor: pointer; transition: background-color var(--iskv-dur-base) var(--iskv-ease); }
  .topbar-link:hover { background: var(--iskv-tint-teal); color: var(--iskv-color-link); }
  .tb-ico { font-size: 13px; }
  .lang { display: inline-flex; padding: 2px; gap: 2px; border-radius: 9px; background: var(--iskv-tint-ink); box-shadow: inset 0 1px 2px rgba(31,45,58,.06); }
  .lang-opt { min-width: 34px; height: 26px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; border-radius: 7px; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--iskv-color-text-muted); text-decoration: none; cursor: pointer; transition: background-color var(--iskv-dur-base) var(--iskv-ease), color var(--iskv-dur-base) var(--iskv-ease), box-shadow var(--iskv-dur-base) var(--iskv-ease); }
  .lang-opt:hover { color: var(--iskv-color-heading); }
  .lang-opt.is-active { background: var(--iskv-white); color: var(--iskv-color-heading); box-shadow: 0 1px 3px rgba(31,45,58,.12), 0 0 0 1px rgba(255,255,255,.8); }
  .lang-opt:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring); }
  .lang.lg .lang-opt { min-width: 48px; height: 36px; font-size: 14px; }
  .lang-opt::before { content: ""; position: absolute; inset: -9px -2px; } .lang-opt { position: relative; }
  @media (max-width: 991px) { .topbar { height: 38px; } .topbar-link .tb-txt { display: none; } }

  /* ---------- Подменю главного меню (стекло dense) ---------- */
  .has-sub { position: relative; display: inline-flex; }
  .has-sub > a .chev { transition: transform var(--iskv-dur-base) var(--iskv-ease); }
  .has-sub:hover > a .chev, .has-sub:focus-within > a .chev, .has-sub.is-open > a .chev { transform: translateY(0) rotate(-135deg); }
  .submenu { position: absolute; top: calc(100% + 14px); left: 50%; min-width: 260px; margin: 0; padding: 8px; list-style: none;
    border-radius: var(--iskv-radius-md); background: var(--iskv-glass-dense-bg); border: 1px solid var(--iskv-glass-dense-border);
    -webkit-backdrop-filter: blur(var(--iskv-glass-blur-lg)) saturate(140%); backdrop-filter: blur(var(--iskv-glass-blur-lg)) saturate(140%);
    box-shadow: var(--iskv-shadow-raised), var(--iskv-glass-highlight);
    opacity: 0; visibility: hidden; transform: translate(-50%, 6px);
    transition: opacity var(--iskv-dur-base) var(--iskv-ease), transform var(--iskv-dur-base) var(--iskv-ease), visibility 0s linear var(--iskv-dur-base);
    z-index: var(--iskv-z-dropdown); text-transform: none; }
  .submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; } /* мостик, чтобы меню не закрывалось по пути курсора */
  .has-sub:hover .submenu, .has-sub:focus-within .submenu, .has-sub.is-open .submenu, .submenu.is-demo-open { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
  .submenu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--iskv-color-text); text-decoration: none; white-space: nowrap; transition: background-color var(--iskv-dur-fast) var(--iskv-ease), color var(--iskv-dur-fast) var(--iskv-ease); }
  .submenu a::after, .hdr-menu .submenu a::after, .hdr-menu .submenu a:hover::after { display: none; }
  .hdr-menu .submenu a { font-size: 14px; letter-spacing: 0; text-transform: none; padding: 10px 12px; }
  .submenu a::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--iskv-teal-200); flex: none; transition: background-color var(--iskv-dur-fast) var(--iskv-ease); }
  .submenu a:hover, .submenu a:focus-visible { background: var(--iskv-tint-teal); color: var(--iskv-color-link); outline: none; }
  .submenu a:hover::before, .submenu a:focus-visible::before { background: var(--iskv-color-accent); }
  .submenu a.is-current { color: var(--iskv-color-link); background: var(--iskv-color-accent-soft); }
  .submenu a.is-current::before { background: var(--iskv-color-accent); }
  .submenu .sep { height: 1px; margin: 6px 4px; background: rgba(44, 62, 80, .08); }

  /* ---------- Подвал по макету: светлая стеклянная панель + нижняя строка на фоне страницы ---------- */
  .site-footer { padding: var(--iskv-space-12) var(--iskv-page-gutter) var(--iskv-space-6); }
  .ft-panel { position: relative; overflow: hidden; border-radius: 20px;
    background: linear-gradient(115deg, rgba(214, 240, 237, .70) 0%, rgba(240, 249, 248, .62) 38%, rgba(255, 255, 255, .66) 100%);
    border: 1px solid var(--iskv-glass-regular-border);
    -webkit-backdrop-filter: blur(var(--iskv-glass-blur-md)) saturate(140%); backdrop-filter: blur(var(--iskv-glass-blur-md)) saturate(140%);
    box-shadow: 0 18px 50px rgba(31, 45, 58, .08), 0 2px 6px rgba(31, 45, 58, .04), var(--iskv-glass-highlight); }
  .ft-inner, .ft-bottom { max-width: 1240px; margin: 0 auto; }
  .ft-inner { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: var(--iskv-space-12); padding: 56px var(--iskv-space-8) 60px; }
  .ft-logo img { height: 46px; width: auto; display: block; filter: brightness(0) saturate(100%); opacity: .86; } /* белый логотип сайта → графит */
  .ft-about { margin: var(--iskv-space-4) 0 var(--iskv-space-5); font-size: 14px; line-height: 1.65; color: var(--iskv-color-text-muted); max-width: 40ch; }
  .ft-about b { color: var(--iskv-color-text); font-weight: 600; }
  .ft-social { display: flex; gap: 10px; }
  .ft-social a { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--iskv-ink-900); color: var(--iskv-white); text-decoration: none; font-size: 13px; font-weight: 700; transition: background-color var(--iskv-dur-base) var(--iskv-ease), transform var(--iskv-dur-fast) var(--iskv-ease), box-shadow var(--iskv-dur-base) var(--iskv-ease); }
  .ft-social a:hover { background: var(--iskv-color-accent); transform: translateY(-2px); box-shadow: var(--iskv-glow-teal); }
  .ft-social a:focus-visible { outline: none; box-shadow: var(--iskv-focus-ring); }
  .ft-social svg { width: 16px; height: 16px; }
  .ft-title { margin: 0 0 var(--iskv-space-5); font-size: 17px; font-weight: 600; color: var(--iskv-color-heading); letter-spacing: -.005em; }
  .ft-contacts { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
  .ft-contacts li { display: grid; grid-template-columns: 18px 1fr; gap: 12px; align-items: start; font-size: 14px; line-height: 1.55; color: var(--iskv-color-text); }
  .ft-contacts svg { width: 16px; height: 16px; margin-top: 3px; color: var(--iskv-color-accent); }
  .ft-contacts a, .ft-cities a { color: inherit; text-decoration: none; transition: color var(--iskv-dur-fast) var(--iskv-ease); }
  .ft-contacts a:hover, .ft-cities a:hover { color: var(--iskv-color-link); }
  .ft-cities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
  .ft-cities a { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--iskv-color-text); }
  .ft-cities a::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--iskv-color-accent); flex: none; transition: transform var(--iskv-dur-fast) var(--iskv-ease); }
  .ft-cities a:hover::before { transform: scale(1.5); }
  .ft-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--iskv-space-6); padding: var(--iskv-space-5) var(--iskv-space-8) 0; font-size: 13px; color: var(--iskv-color-text-muted); }
  .ft-bottom a.reg { color: var(--iskv-color-link); text-decoration: none; font-weight: 500; }
  .ft-bottom a.reg:hover { text-decoration: underline; }
  .ft-menu { display: flex; gap: 32px; }
  .ft-menu a { white-space: nowrap; font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--iskv-color-text-muted); text-decoration: none; transition: color var(--iskv-dur-fast) var(--iskv-ease); }
  .ft-menu a:hover { color: var(--iskv-color-link); }
  @media (max-width: 991px) {
    .ft-inner { grid-template-columns: 1fr 1fr; gap: var(--iskv-space-8); padding: 40px var(--iskv-space-6); }
    .ft-brand { grid-column: 1 / -1; }
    .ft-bottom { flex-direction: column-reverse; align-items: flex-start; gap: var(--iskv-space-3); padding: var(--iskv-space-5) var(--iskv-space-6) 0; }
    .ft-menu { flex-wrap: wrap; gap: 12px 24px; }
  }
  @media (max-width: 575px) {
    .ft-panel { border-radius: 16px; }
    .ft-inner { grid-template-columns: 1fr; padding: 32px 20px; }
    .ft-bottom { flex-direction: column-reverse; align-items: flex-start; gap: var(--iskv-space-4); padding: var(--iskv-space-5) var(--iskv-space-2) 0; }
    .ft-menu { flex-wrap: wrap; gap: 12px 20px; }
  }
