/* Загадки Казани — общие стартовые токены, редакция 2026-10-04.
 * Прочитать README.md и Правила.md. Это не готовая вёрстка.
 * Нет привязок цветов, масштаба или композиции к названию экскурсии.
 * Для равноправных элементов выбирать общие классы и параметры.
 * Подключить отдельно Lora (400–700, normal/italic) и Golos Text (400–700)
 * с кириллицей. В образце они загружаются из Google Fonts.
 */
.zk-landing {
  --zk-brand: #1a4a63;
  --zk-accent: #07689d;
  --zk-text: #263c44;
  --zk-text-secondary: #405961;
  --zk-white: #ffffff;
  --zk-paper: #f7f4ec;
  --zk-soft: #edf4f1;
  --zk-surface-dark: #102f3b;
  --zk-on-dark: #fff9e9;
  --zk-warm-on-dark: #f2d598;
  /* Совместимость со старым эскизом: night не означает отдельный продукт. */
  --zk-night: var(--zk-surface-dark);
  --zk-on-night: var(--zk-on-dark);
  --zk-warm-on-night: var(--zk-warm-on-dark);
  --zk-award: #9b7136;
  --zk-divider: #bfcbd0;
  --zk-font-display: "Lora", Georgia, serif;
  --zk-font-text: "Golos Text", "Segoe UI", sans-serif;
  color: var(--zk-text);
  font: 400 1.0625rem / 1.6 var(--zk-font-text);
}
/* Роль выбирается по содержанию; не назначать одну роль всем h2. */
.zk-landing .zk-heading-story {
  color: var(--zk-brand);
  font-family: var(--zk-font-display);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.025em;
}
.zk-landing .zk-heading-practical {
  color: var(--zk-text);
  font-family: var(--zk-font-text);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -0.025em;
}
.zk-landing .zk-role-name {
  color: var(--zk-text);
  font-family: var(--zk-font-display);
  font-weight: 600;
  line-height: 1.3;
}
.zk-landing .zk-accent { color: var(--zk-accent); }
.zk-landing .zk-inline-emphasis {
  display: inline;
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  font-style: normal;
  font-weight: 600;
  line-height: inherit;
}
.zk-landing .zk-atmosphere-caption {
  /* Только на тёмной поверхности; подпись необязательна и не привязана к продукту. */
  color: var(--zk-warm-on-dark);
  font-family: var(--zk-font-display);
  font-style: italic;
  font-weight: 400;
  line-height: 1.4;
}
.zk-landing .zk-award-mark {
  color: var(--zk-award);
  flex: none;
  width: 44px;
  height: 44px;
  stroke-width: 1.6;
}
/* Рабочая шкала: адаптировать к сетке и применять одинаково внутри ряда.
 * zk-size-program — прежнее имя общего заголовка элемента, не особый стиль.
 */
.zk-landing .zk-size-hero { font-size: clamp(2.4375rem, 6.55vw, 3.0625rem); }
.zk-landing .zk-size-item-heading,
.zk-landing .zk-size-program { font-size: clamp(1.75rem, 3vw, 2.25rem); }
.zk-landing .zk-size-practical { font-size: clamp(1.75rem, 4.15vw, 1.9375rem); }
.zk-landing .zk-size-offer { font-size: clamp(1.5625rem, 3.75vw, 1.75rem); }
.zk-landing .zk-size-role { font-size: 1.375rem; }
.zk-landing .zk-button-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-width: 100%;
  padding: 14px 23px;
  border: 0;
  border-radius: 25px;
  background: var(--zk-accent);
  color: var(--zk-white);
  font: 600 0.9375rem / 1.4 var(--zk-font-text);
  text-align: center;
  text-decoration: none;
  white-space: normal;
}
.zk-landing .zk-button-primary:focus-visible {
  outline: 3px solid var(--zk-award);
  outline-offset: 4px;
}
