/* ============================================================================
   Скин «Гранат и туф» — ереван-плаза.рф
   Слой 2 из трёх: канон (main.css) -> скин (токены) -> семья (family-plaza.css).
   Палитра выведена из материала объекта: светлый камень облицовки (туф),
   гранат как цвет-акцент, бронза на деталях портала.
   Family-agnostic: работает с любой семьёй.
   ========================================================================= */

/* ── Шрифты: self-hosted woff2, кириллица + латиница ─────────────────────── */
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/PlayfairDisplay/playfair-display-cyrillic-500-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/PlayfairDisplay/playfair-display-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2192, U+2212, U+2215;
}
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/PlayfairDisplay/playfair-display-cyrillic-700-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/PlayfairDisplay/playfair-display-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2192, U+2212, U+2215;
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-cyrillic-400-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2192, U+2212, U+2215;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-cyrillic-500-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2192, U+2212, U+2215;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-cyrillic-700-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2192, U+2212, U+2215;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-cyrillic-800-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Manrope/manrope-latin-800-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2192, U+2212, U+2215;
}

/* ── Токены ──────────────────────────────────────────────────────────────── */
:root {
  /* палитра объекта */
  --ep-garnet: #7c2233;
  --ep-garnet-hover: #63182a;
  --ep-dark: #2a1b1e;
  --ep-bronze: #8a5f22;
  --ep-tuff: #f7f2ea;
  --ep-card: #fdfbf8;
  --ep-stone: #e6dccc;
  --ep-stone-soft: #f1e9dc;
  --ep-ink: #241b19;
  --ep-muted: #6a5d55;
  --ep-white: #ffffff;
  --ep-shadow: rgba(42, 27, 30, 0.08);
  --ep-scrim: rgba(42, 27, 30, 0.55);

  /* типографика */
  --ep-font-display: "Playfair Display", Georgia, serif;
  --ep-font-body: "Manrope", "Helvetica Neue", Arial, sans-serif;

  /* шкала отступов (кратность 4) */
  --ep-s1: 4px;
  --ep-s2: 8px;
  --ep-s3: 16px;
  --ep-s4: 24px;
  --ep-s5: 32px;
  --ep-s6: 48px;

  /* перекрытие токенов канона */
  --color-primary-text: var(--ep-ink);
  --color-secondary-text: var(--ep-muted);
  --color-secondary: var(--ep-garnet);
  --color-grey: var(--ep-stone);
  --color-light: var(--ep-card);
  --color-grey-bg: var(--ep-stone-soft);
  --shadow-color: var(--ep-shadow);
  --border-radius: 8px;
  --border-radius-min: 4px;
  --border-radius-arrow: 4px;
  --font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
}

/* ── База ────────────────────────────────────────────────────────────────── */
body {
  background: var(--ep-tuff);
  color: var(--ep-ink);
  font-family: var(--ep-font-body);
  line-height: 1.55;
}

h1, h2, h3, .title-large, .title-color {
  font-family: var(--ep-font-display);
  font-weight: 700;
  line-height: 1.15;
  text-wrap: balance;
  color: var(--ep-ink);
}

.title-color span,
h2 span {
  color: var(--ep-garnet);
}

a { color: var(--ep-garnet); }
a:hover { color: var(--ep-garnet-hover); }

.color-secondary { color: var(--ep-garnet); }
.color-grey { color: var(--ep-muted); }

/* цифры в спеках и таблицах — моноширинные по ширине */
table, .card_title, .card_text, .charact-row, .office-card p {
  font-variant-numeric: tabular-nums;
}

/* видимый фокус клавиатуры: канон местами гасит outline */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--ep-garnet);
  outline-offset: 2px;
}

/* ── Иконки набора ardera_icon_pack ──────────────────────────────────────── */
/* ard_icon() снимает с SVG атрибуты width/height — размер задаётся здесь.
   Без этих правил иконка растягивается на всю ширину родителя. */
.ard-ico {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  color: currentColor;
  vertical-align: middle;
}
.ard-ico--xs { width: 14px; height: 14px; }
.ard-ico--sm { width: 18px; height: 18px; }
.ard-ico--lg { width: 28px; height: 28px; }

/* ── Кнопки ──────────────────────────────────────────────────────────────── */
.btn-secondary {
  background: var(--ep-garnet);
  border: 1px solid var(--ep-garnet);
  color: var(--ep-white);
  border-radius: var(--border-radius-min);
  text-decoration: none;
  font-family: var(--ep-font-body);
  font-weight: 700;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.btn-secondary:hover,
.btn-secondary:focus {
  background: var(--ep-garnet-hover);
  border-color: var(--ep-garnet-hover);
  color: var(--ep-white);
}

/* ── Шапка ───────────────────────────────────────────────────────────────── */
header.header-white,
header.header-white.fixed,
header.header-white.active {
  background-color: var(--ep-card);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 1px solid var(--ep-stone);
}
/* Канон рассчитывает .header-white на тёмную подложку и красит всё внутри
   в #fff (селектор с классом бьёт наши элементные) — на светлой шапке текст
   пропадает. Перебиваем той же специфичностью, кнопку возвращаем белой. */
header.header-white li > a,
header.header-white li > p,
header.header-white a,
header.header-white p {
  color: var(--ep-ink);
  text-decoration: none;
}
header.header-white nav ul li a {
  font-size: 15px;
  font-weight: 500;
}
header.header-white li > a:hover,
header.header-white li > a.active,
header.header-white li > p.active {
  color: var(--ep-garnet);
}
header.header-white svg g path {
  fill: var(--ep-ink);
}
header.header-white a.btn-secondary,
header.header-white a.btn-secondary:hover {
  color: var(--ep-white);
}
header.header-white .burger .burger__line {
  background: var(--ep-ink);
}
header.header-white.active .burger .burger__line {
  background: var(--ep-ink);
}

/* ── Футер: тёмный нейтральный в тон объекта, не заливка акцентом ────────── */
footer {
  background-color: var(--ep-dark);
}
footer a { color: var(--ep-white); }

/* ── Витрина: перекраска канонных хардкодов ──────────────────────────────── */
.js-office-btn { color: var(--ep-garnet); }
.js-office-btn.is-active { color: var(--color-primary-text); }
.js-office-btn.disabled { color: var(--ep-muted); }
.office-deal-nav__sep { color: var(--ep-muted); }

.histogram .stand { background-color: var(--ep-stone); }
.histogram .count_label {
  background-color: var(--ep-card);
  border-color: var(--ep-stone);
  color: var(--ep-ink);
}

/* слайдер канона: cover вместо letterbox (используется на карточках лотов) */
.office-slider img {
  -o-object-fit: cover;
  object-fit: cover;
}

/* кликабельные слайды площадей */
.office-card-link {
  color: inherit;
  text-decoration: none;
}

/* ── Формы и карточки: радиус-система скина вместо канонных хардкодов ────── */
.input-basic input,
.input-basic textarea,
.form-input input,
.form-input textarea {
  border-radius: var(--border-radius-min);
}
.card .card_image {
  border-radius: var(--border-radius) var(--border-radius) 0 0;
}
.card {
  background-color: var(--ep-card);
  border: 1px solid var(--ep-stone);
}

/* ── Согласие на обработку ПД ────────────────────────────────────────────── */
.form-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
}

.form-consent__input {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  min-width: 1.125rem;
  margin: 0.15rem 0 0;
  accent-color: var(--color-secondary);
  cursor: pointer;
}

.form-consent__label {
  margin: 0;
  line-height: 1.45;
  flex: 1;
  text-align: left;
}

.form-consent .form-consent__label.form-policy {
  text-align: left;
}

@media (max-width: 767.98px) {
  .form-consent .form-consent__label.form-policy {
    text-align: left;
  }
}

/* ── Статус отправки формы (inline) ─────────────────────────────────────── */
.form-feedback {
  margin-bottom: 1rem;
  padding: 0.875rem 1rem;
  border-radius: var(--border-radius-min);
  font-size: 0.9375rem;
  line-height: 1.45;
}

.form-feedback--success {
  background: #e8f5e9;
  border: 1px solid #81c784;
  color: #1b5e20;
}

.form-feedback--error {
  background: #ffebee;
  border: 1px solid #e57373;
  color: #b71c1c;
}

/* ── Движение ────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
