/* ==========================================
   1. GLOBAL SETTINGS (JEDAI STYLE)
   ========================================== */
@import url('https://fonts.googleapis.com/css2?family=Russo+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');

:root {
  
  /* палитра */
  --ink: #0A0A0A;
  --paper: #FFFFFF;
  --accent: #ff8500;
  --accent-hover: #FF7A29;
  --red:#ef4444;
  --green:#22c55e;
  --blue:#39b7ff;
  --orange:#f59e0b;
  --sky:#38bdf8;
  
  /* ТАБЫ / ТАБЛИЦЫ */
  --comic-accent: #fff700;    /* Акцент (Желтый по дефолту) */
  --comic-bg: #FFFFFF;        /* Фон кнопок/таблиц */
  --comic-ink: #000000;       /* Цвет текста и границ */

  --comic-border: 2px solid var(--comic-ink); /* Толщина рамок */
  --comic-radius: 12px;       /* Скругление */
  --comic-shadow: 4px 4px 0px var(--comic-ink); /* Жесткая тень */
  
  /* 🏁 DASHBOARD SPECIFIC (ТЕМНАЯ ТЕМА)                       */
  
    /* Цвета текста и фона */
    --kp-bg: #1c1c1e;           /* Основной фон дашборда */
    --kp-paper: #ffffff;        /* Белый цвет (текст, фоны) */
    --kp-ink: #111111;          /* Черный цвет (текст) */
    --kp-ink-muted: #8e8e93;    /* Серый текст */
    
    /* Акцентные цвета */
    --kp-accent: #f5e320;       /* Ваш фирменный Желтый */
    --kp-stroke: rgba(255, 255, 255, 0.1); /* Тонкие линии границ */
    --kp-status-green: #2fd32f; /* Точка "Открыто" */ 
  
  /* --- ЦВЕТА ДЛЯ ТЕКСТА ЗАГОЛОВКОВ --- */
  --title-orange: var(--accent);
  --title-amber: #ffb400;
  
  /* ВИДЖЕТ */
  --sm-accent: #fbbf24;        /* янтарный */
  --sm-accent-hover: #fcd34d;  /* ховер янтаря */  
  
  /* --- КАРТОЧКИ (как на втором скрине) --- */
  --card-bg: #FFF5F0;   
  --card-border: var(--accent); 
  
  /* единый “цвет заголовков” (не такой оранжевый как accent) */
  --kp-title: #fff;
  --kp-title-bg: #ffb400;  /* amber / тёплый янтарь */
  --kp-title-fg: #000;     /* текст чёрный */ 

  /* ЖЕСТКАЯ ТЕНЬ (важно: blur = 0px) */
  --shadow: 4px 4px 0px var(--ink);
  --shadow-hover: 2px 2px 0px var(--ink); /* Тень при нажатии */  
  
  --font-head:'Russo One', Arial, sans-serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI",
               Roboto, Helvetica, Arial, sans-serif;

  /* карточки */
  --kp-gap:18px;
  --kp-radius:14px;
  --kp-radius-lg:18px;

  /* карта */
  --kp-map-mobile-h:60svh;
  --kp-map-desktop-max:560px;
  --kp-map-gap-m:16px;
  --kp-map-gap-d:28px;
  --kp-map-radius:12px;

  /* геометрия */
  --stroke:3px;
  --stroke-thin:1px;
  --radius:14px;
  --spine-width:5px;
  --shadow-sm:4px 4px 0 var(--ink);
  --gap:clamp(14px,2.5vw,24px);
  --kp-hdd-gap: -6px;

  /* виджеты legacy */
  --drawer-pt:calc(100px + env(safe-area-inset-top));
  --resorts-max-h:150px;
}

/* Базовый скролл */
html { scroll-behavior: smooth; scroll-padding-top: 70px; }
[id]{ scroll-margin-top:50px; }

/* Утилита для скрытия (была в вашем коде) */
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; overflow: hidden;
}

/* ====== БАЗОВЫЙ ТЕКСТ СТАТЬИ ====== */
.kp-comic{
  font-family: var(--font-body) !important;
  color: var(--ink);
}

/* Типографика Героя */
.kp-hero2__h1 {
  font-family: var(--font-head); /* Russo One */
  font-size: clamp(28px, 8.5vw, 46px); line-height: 1.1;
  margin: 0; color: var(--kp-title);
  text-shadow: 3px 3px 0 #000;
  text-transform: uppercase;
}
.kp-hero2__h1{
  font-family: var(--font-head) !important; /* Russo One */
  font-weight: 200;
}
.text-orange {
  color: var(--title-orange);
}
.text-amber {
  color: var(--title-amber);
}

/* ====== ВКЛЮЧАЕМ 2 СТРОКИ ТОЛЬКО ГДЕ НАДО ====== */
.kp-hero2__h1.kp-h1--2lines{
  display:block;               /* обычный поток */
}

.kp-hero2__h1.kp-h1--2lines .kp-h1line{
  display:block;               /* каждая строка — отдельный блок */
  white-space:nowrap;          /* не рвём внутри строки */
}

/* если совсем узкий телефон — разрешим перенос внутри строки */
@media (max-width: 420px){
  .kp-hero2__h1.kp-h1--2lines .kp-h1line{
    white-space:normal;
  }
}


/* (если захочешь переносить после 1-го или 3-го — меняешь цифру) */
@media (max-width: 899px){
  .kp-hero2__h1{
    font-size: clamp(24px, 7.8vw, 38px);
    line-height: 1.12;
  }
  .kp-hero2__h1 .text-amber{
    font-size: .95em;
  }
}

/* телефон */
@media (max-width: 600px){
  .kp-hero2__h1{
    font-size: clamp(22px, 9.2vw, 26px);
    line-height: 1.15;
  }
  .kp-hero2__h1 .text-amber{
    font-size: .9em;
  }
}

.kp-hero2__sub {
  font-family: Arial, sans-serif; font-weight: 400;
  font-size: clamp(14px, 1.7vw, 22px);
  display: inline-block;
  background: var(--kp-title-bg); color: var(--kp-title-fg);
  border: 3px solid var(--ink); border-radius: 12px;
  padding: .5em .85em; margin-top: .45em;
  box-shadow: 6px 6px 0 var(--ink);
  margin-bottom: 18px;
}

/* ====== H2 / H3 — RUSSO ONE ВЕЗДЕ В КОМИКСЕ ====== */
.kp-comic .kp-comic__body h2,
.kp-comic .kp-comic__body h3{
  font-family: var(--font-head) !important;
  font-weight: 100;   /* Russo One и так жирный */
  color: var(--kp-title-fg);
  -webkit-text-fill-color: var(--ink); /* тильда/сafarи фикс */
  line-height: 1.2;
  letter-spacing: 0.02em;
}

/* перебиваем вложенные span от тильды */
.kp-comic .kp-comic__body h2 *,
.kp-comic .kp-comic__body h3 *{
  font-family: inherit !important;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

/* ====== ТВОЙ СТИЛЬ H2 (плашка) ====== */
.kp-comic .kp-comic__body h2{
  font-size: clamp(18px,2.3vw,24px);
  margin: 1em .4em .6em;
  display: inline-block;
  background: var(--kp-title-bg);
  border: var(--stroke) solid var(--ink);
  border-radius: 10px;
  padding: .2em .5em;
  text-shadow: none;
}

/* ====== H3 В ТОМ ЖЕ КЛЮЧЕ, НО СКРОМНЕЕ ====== */
.kp-comic .kp-comic__body h3{
  font-size: clamp(16px,2vw,20px);
  margin: 1.2em .4em .6em;
  display: inline-block;
  background: #fff;                 /* чтобы отличался от h2 */
  padding: .18em .45em;
}

/* параграфы как у тебя */
.kp-comic .kp-comic__body p{ margin:.4em 0 .6em; }

/* Адаптив шрифтов */
@media (max-width: 600px) {
  .kp-comic { font-size: 16px; }
  .kp-comic__body h2 { font-size: 24px; }
  .kp-comic__body h3 { font-size: 20px; }
}

/*ТАЙТЛ панель под h1*/
.kp-comic .kp-comic__title{
  display: table;
  font-family: var(--font-head) !important; /* Russo One */
  font-weight: 1;              /* Russo One сам жирный */
  line-height: 1.05;
  font-size: clamp(28px,4.8vw,46px);

  color: var(--kp-title-fg);
  -webkit-text-fill-color: var(--kp-title-fg); /* тильдовский фикс */

  background: var(--kp-title-bg);
  border: var(--stroke) solid var(--ink);
  border-radius: 12px;
  padding: .35em .55em;
  max-width: 1200px;

  transform: rotate(-1.5deg);
  transform-origin: center;
  box-shadow: 6px 6px 0 var(--ink);
  margin: 0 auto 18px;
  text-transform: uppercase;
}

/* =========================
   Контент карточки
   ========================= */
.kp-comic .kp-comic__body{ padding:14px 16px 18px; min-width:0; }
.kp-comic .kp-comic__body p{ margin:.4em 0 .6em; }

/* ==========================================
   2. WIDGETS & UI COMPONENTS
   ========================================== */

/* --- A. ЛЕГЕНДА КАРТЫ (КРУЖКИ) --- */
.kp-map-legend {
  margin: 0 0 8px; display: grid; gap: 6px; padding: 10px;
  border: 1px solid rgba(0,0,0,.08); border-radius: 10px; background: #fff;
  font: 500 14px/1.25 var(--font-body);
}
.kp-map-legend__item { display: flex; align-items: center; gap: 8px; }
.kp-legend__dot {
  --dot: 14px; flex: 0 0 var(--dot); width: var(--dot); height: var(--dot);
  border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 2px rgba(0,0,0,.15);
  background-color: var(--c, #ccc); /* Фолбэк цвет */
}
/* Цвета легенды */
.kp-legend__dot[data-color="red"], .kp-legend__dot[data-color="warning"] { --c: var(--red); }
.kp-legend__dot[data-color="orange"], .kp-legend__dot[data-color="rental"] { --c: var(--orange); }
.kp-legend__dot[data-color="yellow"], .kp-legend__dot[data-color="carsharing"] { --c: #facc15; }
.kp-legend__dot[data-color="green"], .kp-legend__dot[data-color="free"] { --c: var(--green); }
.kp-legend__dot[data-color="blue"], .kp-legend__dot[data-color="parking"] { --c: #3b82f6; }
.kp-legend__dot[data-color="ev"] { --c: var(--sky); }
@media (max-width:420px){ .kp-map-legend{ font-size:13px; } }


/* ==========================================================================
   B. STICKY MINI BUTTON (WIDGET) — FINAL FIX
   ========================================================================== */

/* === ИНФОГРАФИКА === */

.kp-infographic {
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    margin: 20px 0;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    font-family: sans-serif; /* Подстраховка шрифта только для блока */
}

/* Новый контейнер для расположения "Картинка + Таблица" в ряд */
.kp-info-row {
    display: flex;
    align-items: center; /* Центрируем по вертикали */
    gap: 20px;
    padding: 20px;
}

/* Настройки для "мини" картинки */
.kp-mini-image {
    flex: 0 0 40%; /* Занимает 40% ширины блока */
    max-width: 400px; /* Не даем ей стать гигантской */
    height: auto;
    border-radius: 8px;
    border: 1px solid #eee;
    cursor: zoom-in; /* Добавил курсор, так как есть зум */
    display: block;
}

/* Таблица занимает оставшееся место */
.kp-weather-table {
    flex: 1; 
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    line-height: 1.35;
    font-family: sans-serif;
}

.kp-weather-table th {
    background: #2c3e50; 
    color: #fff;
    padding: 8px 10px;
    text-align: left;
    font-weight: 400;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.kp-weather-table td {
    padding: 10px;
    border-bottom: 1px solid #eee;
    vertical-align: middle;
    color: #333;
}
        
/* Убираем рамку у последней строки */
.kp-weather-table tr:last-child td {
    border-bottom: none;
}

/* Мобильная адаптация: на телефоне все становится в столбик */
@media (max-width: 768px) {
    .kp-info-row {
        flex-direction: column;
        padding: 0;
    }
    .kp-mini-image {
        flex: none;
        width: 100%;
        max-width: 100%;
        border: none;
        border-bottom: 1px solid #eee;
        border-radius: 0;
    }
    .kp-weather-table {
        font-size: 0.85rem;
    }
    .kp-weather-table th, 
    .kp-weather-table td {
         padding: 10px;
    }
}

/* Цвета этапов */
.step-1 { border-left: 4px solid #3498db; background: #f0f8ff; }
.step-2 { border-left: 4px solid #f1c40f; background: #fffdf0; }
.step-3 { border-left: 4px solid #e74c3c; background: #fff5f5; }
.step-4 { border-left: 4px solid #95a5a6; background: #f9f9f9; }

/* === СТИЛИ ДЛЯ ЗУМА (МОДАЛКА) - Безопасные, не ломают сайт === */
.kp-zoom-modal {
    display: none;
    position: fixed;
    z-index: 99999;
    padding-top: 50px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.9);
}

.kp-zoom-content {
    margin: auto;
    display: block;
    width: 90%;
    max-width: 1200px;
    max-height: 85vh;
    object-fit: contain;
}

.kp-zoom-close {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #fff;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}

/* ==========================================================================
   C. TABLES, TABS & PRICING (FINAL)
   ========================================================================== */
/* --- 1. ТАБЛИЦЫ (TABLES) — CLEAN & READABLE --- */

/* Контейнер с прокруткой */
.kp-tablewrap {
  background: var(--paper);
  border: var(--stroke) solid var(--ink);
  border-radius: 12px;
  box-shadow: var(--shadow);
  margin: 0 0 24px; /* Отступ снизу побольше */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  position: relative;
}

/* Сама таблица */
.kp-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  /* table-layout: fixed; — Убрал, чтобы колонки подстраивались под контент */
}

/* Общие стили ячеек */
.kp-table th,
.kp-table td {
  padding: 12px 16px; /* Больше воздуха */
  border-bottom: 1px solid var(--ink);
  border-right: 1px solid var(--ink);
  vertical-align: top;
  line-height: 1.4; /* Чтобы строки не слипались */
}

/* ШАПКА (Header) — Стиль, но без грязи */
.kp-table thead th {
  background: var(--comic-accent);
  color: var(--ink);
  font-family: var(--font-head);
  font-weight: 200; /* Russo One сам по себе жирный, 700 не нужно */
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-shadow: none;
  border-bottom: var(--stroke) solid var(--ink);
  border-top: 0;
  text-align: left;
}

/* ТЕЛО (Body) — Максимальная читаемость */
.kp-table tbody td {
  font-family: var(--font-body); /* Читаемый шрифт (Inter) */
  font-size: 15px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.6); /* Легкая прозрачность */
}

/* Убираем лишние границы */
.kp-table tbody tr:last-child td { border-bottom: none; }
.kp-table tbody tr td:last-child { border-right: none; }
.kp-table thead th:last-child { border-right: none; }

/* Стиль даты внутри таблицы (если используется) */
.kp-dates-row .dates-label {
  font-weight: 400; margin-right: .25em; display: inline-block;
}

/* Адаптив и Скролл */
@media (max-width: 899px) {
  .kp-tablewrap {
    /* Маска для индикации скролла */
    mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
  }

  .kp-table { min-width: 600px; } /* Минимальная ширина, чтобы включился скролл */
  
  .kp-table th,
  .kp-table td {
    padding: 10px 12px; /* Чуть компактнее на мобильном */
    font-size: 14px;
  }
  
  /* Сохраняем вашу логику колонок */
  .kp-table--wide thead tr > th:first-child:nth-last-child(3),
  .kp-table--wide thead tr > th:first-child:nth-last-child(3) ~ th { width: 33.33%; }
  
  .kp-table--wide thead tr > th:first-child:nth-last-child(4),
  .kp-table--wide thead tr > th:first-child:nth-last-child(4) ~ th { width: 25%; }
  
  .kp-table--wide thead tr > th:first-child:nth-last-child(5),
  .kp-table--wide thead tr > th:first-child:nth-last-child(5) ~ th { width: 20%; }
}

/* Не даём caption.visually-hidden раздувать ширину таблицы */
.kp-table caption.visually-hidden{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  border: 0;
  overflow: hidden;
  caption-side: bottom;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: normal;
}

/* --- 2. ТАБЫ И ПЕРЕКЛЮЧАТЕЛИ (.kp-note) — COMPACT STYLE --- */
.kp-note__tabs,
.kp-season__switch {
  display: flex;
  flex-wrap: wrap;
  gap: 8px; 
  margin-bottom: 20px;
}

/* --- СТИЛЬ КНОПОК --- */
.kp-note__tab, 
.kp-season__switch button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 5px 14px; 
  
  /* ТИПОГРАФИКА: Мелкая, но жирная */
  font-family: var(--font-head);
  font-size: 10px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background-color: var(--paper);
  color: var(--ink);
  border: 2px solid #000;
  
  /* ТЕНЬ: Аккуратная, не огромная */
  box-shadow: 2px 2px 0px #000; 
  
  cursor: pointer;
  transition: all 0.15s ease;
}

.kp-note__tab:hover,
.kp-season__switch button:hover {
  background-color: #f3f4f6;
  transform: translateY(-1px);
  box-shadow: 3px 3px 0px #000;
}

/* АКТИВНАЯ КНОПКА (Инверсия: Черная) */
.kp-note__tab.is-active,
.kp-season__switch button.is-active {
  background-color: var(--comic-accent);
  color: #000;
  border-color: #000000;
  box-shadow: none; 
  transform: translate(2px, 2px);
}
/* --- 2. ТАБЫ И ПЕРЕКЛЮЧАТЕЛИ (.kp-note) — COMPACT STYLE --- */
.kp-note__tab:hover {
  background-color: #f9f9f9;
  transform: translate(-1px, -1px);
  box-shadow: 5px 5px 0px var(--comic-ink);
}

/* Активная кнопка */
.kp-note__tab.is-active {
  background-color: var(--comic-accent); /* Красится в цвет страницы! */
  transform: translate(2px, 2px); /* Эффект нажатия */
  box-shadow: 2px 2px 0px var(--comic-ink); /* Тень уменьшается */
}

/* Фокус (доступность) */
.kp-note__tab:focus-visible {
  outline: 2px dashed var(--comic-ink);
  outline-offset: 4px;
}

/* Область контента (Без рамки и лишних отступов) */
.kp-note__panes {
  position: relative;
  display: grid;
  grid-auto-rows: 1fr;
  height: var(--note-max-h, 200px);
  overflow: hidden;

  /* фон для хинта (если фон статьи другой — можно переопределить) */
  --note-hint-bg: var(--paper, #fffef7);

  border: none;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

.kp-note__pane {
  grid-area: 1 / 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease;
  height: 100%;
  overflow-y: auto;

  padding: 0;
  padding-right: 8px;

  /* Firefox */
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.25) transparent;
}
.kp-note__pane.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* WebKit (Chrome/Safari) — чтобы скролл реально было видно */
.kp-note__pane::-webkit-scrollbar {
  width: 6px;
}
.kp-note__pane::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.25);
  border-radius: 6px;
}
.kp-note__pane::-webkit-scrollbar-track {
  background: transparent;
}

/* === SCROLL HINT: мягкий градиент снизу === */
.kp-note__panes::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: 34px;              /* сколько “съедаем” низ */
  pointer-events:none;
  z-index:2;

  background: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--note-hint-bg) 0%, transparent) 0%,
    color-mix(in srgb, var(--note-hint-bg) 80%, transparent) 80%,
    var(--note-hint-bg) 100%
  );

  opacity: .9;
  transform: translateY(0);
  transition: transform .22s ease, opacity .22s ease;
}

/* лёгкий hover: хинт чуть сдвигается вниз */
.kp-note__panes:hover::after{
  transform: translateY(6px);
  opacity: 1;
}

/* Модификаторы высоты (Ваш код) */
@media (min-width: 769px) {
  .kp-note--h100 { --note-max-h: 100px; }
  .kp-note--h125 { --note-max-h: 125px; }
  .kp-note--h150 { --note-max-h: 150px; }
  .kp-note--h175 { --note-max-h: 175px; }
  .kp-note--h200 { --note-max-h: 200px; }
  .kp-note--h220 { --note-max-h: 220px; }
  .kp-note--h225 { --note-max-h: 225px; }
  .kp-note--h250 { --note-max-h: 250px; }
  .kp-note--h300 { --note-max-h: 300px; }
  .kp-note--h400 { --note-max-h: 400px; }
  .kp-note--h550 { --note-max-h: 550px; }
  .kp-note--h1000 { --note-max-h: 1000px; }
}
@media (max-width: 768px) {
  .kp-note { --note-max-h: 250px; } /* Фикс высота для мобайла */
}

/* --- 3. ВЫБОР КУРОРТА (Resorts Table Switching) --- */
.kp-resorts { margin-top: 24px; }

.kp-resorts__panes {
  position: relative; margin-top: 16px;
  min-height: var(--resorts-max-h, 150px);
}

.kp-resorts__pane {
  position: absolute; inset: 0;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.2s ease;
}
.kp-resorts__pane.is-active {
  position: relative; opacity: 1; visibility: visible; pointer-events: auto;
}

@media (max-width: 768px) { .kp-resorts { --resorts-max-h: auto; } }
/* Высоты для десктопа */
@media (min-width: 769px) {
  .kp-resorts--h300 { --resorts-max-h: 300px; }
  .kp-resorts--h450 { --resorts-max-h: 450px; }
  .kp-resorts--h600 { --resorts-max-h: 600px; }
}

/* ========================================================================
   📦 КОНТЕЙНЕР ДАШБОРДА (ОБЩАЯ ОБЕРТКА)
   ======================================================================== */
.kp-dashboard {
    width: 100%;
    box-sizing: border-box;
    background: var(--kp-bg);
    color: var(--kp-paper);
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 30px;
    font-family: var(--font-body); /* Inter как базовый */
    overflow: hidden;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Russo One только на заголовках и акцентах */
.kp-dash-title,
.kp-dashboard h2,
.kp-dashboard h3,
.kp-breaking-label,
.kp-season__label,
.kp-pricing__select, {
    font-family: var(--font-head); /* Russo One */
    font-weight: 400;
}


/* ========================================================================
   TOP HEADER (Заголовок + Время UPD)
   ======================================================================== */
.kp-dash-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}

.kp-dash-title {
    margin: 0;
    font-family: var(--font-head);
    font-size: 32px;
    font-weight: 1;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.kp-dash-time {
    font-family: monospace;
    font-size: 13px;
    color: var(--kp-accent);
    border: 1px solid var(--kp-accent);
    background: rgba(0,0,0,0.3);
    padding: 4px 8px;
    border-radius: 4px;
    white-space: nowrap;
}

/* ========================================================================
   📢 БЕГУЩАЯ СТРОКА (BREAKING NEWS)
   ======================================================================== */
.kp-breaking-news {
    background: var(--kp-accent, #f5e320);
    color: #000000;
    height: 44px;
    display: flex;
    align-items: center;
    margin-bottom: 24px;
    border-radius: 4px;
    position: relative;
    font-weight: 1;
    text-transform: uppercase;
    /* На ПК скрываем всё, что вылезает, но на мобильном переопределим */
    overflow: hidden; 
}

.kp-breaking-label {
    background: #000000;
    color: var(--kp-accent, #f5e320);
    padding: 0 16px;
    height: 100%;
    display: flex;
    align-items: center;
    font-size: 13px;
    letter-spacing: 0.5px;
    z-index: 2;
    position: relative;
    flex-shrink: 0;
}

/* Треугольник (стрелка) на ПК */
.kp-breaking-label::after {
    content: '';
    position: absolute;
    top: 0; 
    right: -14px;
    border-top: 44px solid #000000;
    border-right: 14px solid transparent;
    width: 0;
    z-index: 3;
}

.kp-ticker-wrap {
    width: 100%;
    overflow: hidden;
    /* Убираем маску, если хотите четкий текст, или оставляем для красоты */
    mask-image: linear-gradient(to right, transparent, black 20px);
    -webkit-mask-image: linear-gradient(to right, transparent, black 20px);
    white-space: nowrap; /* Важно: запрещаем перенос строк */
    display: flex;       /* Выравнивание */
}

.kp-ticker-move {
    display: inline-block;
    white-space: nowrap;
    
    /* 👇 УБИРАЕМ padding-left: 100%, чтобы не было паузы на старте */
    padding-left: 0; 
    
    /* 👇 Оптимизация для плавности */
    will-change: transform;
    
    /* 👇 Время анимации. 
       Поскольку мы убрали пустой прогон, 80s может быть медленно.
       Поставьте 60s или 40s для подбора идеальной скорости. */
    animation: kp-ticker 60s linear infinite;
}

/* Элементы внутри строки */
.kp-ticker-item {
    display: inline-flex;
    align-items: center;
    /* Отступ между повторами текста */
    padding-right: 80px; 
    font-size: 14px;
}

/* 👇 ИЗМЕНЕННАЯ АНИМАЦИЯ (Двигаем только на половину) */
/* Так как в JS мы дублируем контент 4 раза, сдвиг на -50% 
   даст идеально бесшовный стык */
@keyframes kp-ticker {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); }
}

/* ========================================================================
   🔴🟢 ИНДИКАТОРЫ СТАТУСА (ТОЧКИ)
   ======================================================================== */

.kp-status-dot {
    display: inline-block;
    width: 12px;     /* Размер точки */
    height: 12px;
    border-radius: 50%;
    margin-left: 5px; /* Отступ от названия курорта */
    vertical-align: middle;
    
    /* Плавная анимация "дыхания" */
    animation: kp-pulse 2s infinite ease-in-out;
}

/* Зеленая точка (Открыто) + небольшое свечение */
.kp-status-dot.is-open {
    background-color: #2fd32f;
    box-shadow: 0 0 8px rgba(47, 211, 47, 0.6); 
}

/* Красная точка (Закрыто) */
.kp-status-dot.is-closed {
    background-color: #ff3b30;
    box-shadow: 0 0 5px rgba(255, 59, 48, 0.4);
}

/* Сама анимация (меняем прозрачность и чуть-чуть размер) */
@keyframes kp-pulse {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.5; /* Точка становится полупрозрачной */
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* ========================================================================
   📱 МОБИЛЬНАЯ АДАПТАЦИЯ СТРОКИ ("Корешок папки")
   ======================================================================== */
@media (max-width: 768px) {
    
    .kp-breaking-news {
        /* Разрешаем элементам вылезать за границы (чтобы корешок торчал сверху) */
        overflow: visible; 
        /* Добавляем отступ сверху, чтобы корешок влез */
        margin-top: 35px; 
        /* Убираем скругление слева сверху, чтобы сливалось с корешком */
        border-top-left-radius: 0;
    }

    .kp-breaking-label {
        /* 👇 2. ВЫТАСКИВАЕМ КОРЕШОК НАВЕРХ */
        position: absolute;
        top: -28px;  /* Высота корешка */
        left: 0;
        height: 28px;
        
        /* Стили корешка */
        background: var(--kp-accent, #f5e320); /* Желтый фон (как у самой строки) */
        color: #000;                            /* Черный текст */
        font-size: 11px;
        padding: 0 12px;
        
        /* Скругление только верхних углов */
        border-radius: 4px 4px 0 0;
        
        /* Небольшая тень или граница для объема (опционально) */
        box-shadow: 2px -2px 5px rgba(0,0,0,0.1); 
    }

    /* Убираем черный треугольник, он тут не нужен */
    .kp-breaking-label::after {
        display: none;
    }

    .kp-ticker-wrap {
        padding-left: 10px; /* Уменьшаем отступ текста */
        mask-image: none;   /* Убираем маску на мобильном для четкости */
        -webkit-mask-image: none;
    }
}
/* ========================================================================
   ⛅️ ПОГОДНЫЕ КАРТОЧКИ (Weather Grid)
   Адаптированы под глобальные переменные
   ======================================================================== */
.kp-weather-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
}

.kp-card {
    /* Полупрозрачный фон на темном дашборде */
    background: rgba(255, 255, 255, 0.05); 
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: transform 0.2s, background 0.2s;
}

.kp-card:hover {
    background: rgba(255, 255, 255, 0.08);
    transform: translateY(-2px);
}

/* Верхняя часть карточки (Высота + Название) */
.kp-card-top {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
    width: 100%;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 8px;
}

.kp-card-top span:first-child { /* Высота (2320 м) */
    font-family: monospace;
    color: var(--kp-accent); /* Желтый */
    font-size: 11px;
    background: rgba(0,0,0,0.3);
    padding: 2px 6px;
    border-radius: 4px;
    align-self: center;
}

.kp-card-top span:last-child { /* Название (Пик) */
    font-size: 13px;
    font-weight: 1;
    text-transform: uppercase;
    color: #fff;
    letter-spacing: 0.5px;
}

/* Основная часть (Температура + Иконка) */
.kp-card-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 12px;
}

.kp-temp {
    font-size: 28px;
    font-weight: 1;
    color: #fff;
    line-height: 1;
}

.kp-icon {
    width: 32px;
    height: 32px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    /* Фильтр, чтобы иконки стали белыми (если они черные) */
    filter: brightness(0) invert(1); 
    opacity: 0.8;
}

/* Нижние параметры (Ветер / Видимость) */
.kp-params {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: var(--kp-ink-muted); /* Серый текст */
    margin-top: auto; /* Прижимаем к низу */
}

/* ========================================================================
   📹 СЕТКА И КАРТОЧКИ КАМЕР (Стиль плеера)
   ======================================================================== */
.kp-cams-grid {
    /* 1. Объявляем переменную: по умолчанию 3 колонки */
    --kp-cols: 3;
    
    display: grid;
    /* 2. Используем переменную в формуле */
    grid-template-columns: repeat(var(--kp-cols), 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

/* АДАПТИВ (Обязательно добавь это, иначе на телефоне будет мелко) */
@media screen and (max-width: 960px) {
    .kp-cams-grid {
        --kp-cols: 2; /* На планшетах 2 колонки */
    }
}

@media screen and (max-width: 600px) {
    .kp-cams-grid {
        --kp-cols: 1; /* На мобильных 1 колонка (друг под другом) */
    }
}

/* --- ОСТАЛЬНОЕ БЕЗ ИЗМЕНЕНИЙ (Твой код) --- */

/* Сама карточка камеры */
.kp-cam {
    position: relative;
    aspect-ratio: 16/9;          
    background: #000;            
    border-radius: 12px;
    overflow: hidden;            
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: transform 0.2s, box-shadow 0.2s;
    /* Фикс для Safari, чтобы скругления не слетали при трансформации */
    transform: translateZ(0); 
}

.kp-cam:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
    z-index: 5;
}

/* Постер (Картинка-заглушка) */
.kp-cam-poster {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 1;
    transition: opacity 0.3s;
}

/* Затемнение снизу */
.kp-cam-header-overlay {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 60px; 
    background: linear-gradient(to top, rgba(0,0,0,0.9), transparent);
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding: 10px 12px;
    pointer-events: none;
}

.kp-cam-label {
    font-size: 13px;
    font-weight: 600; /* Чуть жирнее для читаемости */
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,0,0,0.8);
}

.kp-cam-alt {
    font-size: 11px;
    font-family: monospace;
    color: var(--kp-accent, #f5e320); 
    background: rgba(0,0,0,0.6);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Кнопка PLAY по центру */
.kp-play-btn {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 48px; height: 48px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.5);
    border: 2px solid rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(4px);
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

/* Треугольник внутри кнопки */
.kp-play-btn::after {
    content: '';
    display: block;
    width: 0; height: 0;
    border-style: solid;
    border-width: 8px 0 8px 14px;
    border-color: transparent transparent transparent #fff;
    margin-left: 4px; /* Визуальная центровка треугольника */
}

/* Ховер эффект кнопки */
.kp-cam:hover .kp-play-btn {
    background: var(--kp-accent, #f5e320);
    border-color: var(--kp-accent, #f5e320);
    transform: translate(-50%, -50%) scale(1.1);
}
.kp-cam:hover .kp-play-btn::after {
    border-color: transparent transparent transparent #000;
}

/* Значок LIVE (красная точка) */
.kp-cam-live {
    position: absolute;
    top: 10px; left: 10px;
    font-size: 9px;
    font-weight: 1;
    color: #fff;
    background: rgba(220, 38, 38, 0.9); /* Красный */
    padding: 2px 6px;
    border-radius: 4px;
    z-index: 3;
    pointer-events: none;
    display: none; /* Скрыт по умолчанию, можно включить в JS */
}

/* IFRAME (Видео поток) - скрыт до клика */
.kp-cam iframe {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    border: 0;
    z-index: 0;
    opacity: 0;
    pointer-events: none;
}

/* === СОСТОЯНИЕ PLAY (Когда нажали) === */
.kp-cam.is-active .kp-cam-poster,
.kp-cam.is-active .kp-play-btn,
.kp-cam.is-active .kp-cam-header-overlay {
    opacity: 0;
    pointer-events: none;
}

.kp-cam.is-active iframe {
    z-index: 10; /* Поднимаем видео наверх */
    opacity: 1;
    pointer-events: auto;
}
/* ========================================================================
   🛠 УНИВЕРСАЛЬНЫЙ ТУЛБАР (СЕЛЕКТОРЫ)
   Используется для цен, карт и веб-камер
   ======================================================================== */
.kp-pricing__toolbar {
    background: rgba(255, 255, 255, 0.03); /* Чуть светлее фона */
    border: 1px solid var(--kp-stroke);
    border-radius: 12px; /* Чуть мягче углы */
    padding: 16px 20px;
    display: flex;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: stretch;
}

/* Группа (Лейбл + Селектор) */
.kp-pricing__group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1 1 100%;       /* каждый селектор на всю ширину */
    min-width: 100%;
}

/* Надпись над селектором ("Курорт", "Сезон" и т.д.) */
.kp-season__label {
    color: var(--kp-accent); /* Желтый */
    font-size: 11px;
    font-weight: 1;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.9;
}

.kp-pricing__select-wrap {
    position: relative;
    width: 100%;
}

/* Сам выпадающий список */
.kp-pricing__select {
    width: 100%;
    height: 48px; /* Удобная высота для пальца */
    box-sizing: border-box;
    
    background-color: var(--kp-paper);
    color: var(--kp-ink);
    
    border: 1px solid transparent;
    border-radius: 8px;
    padding: 0 40px 0 16px; /* Справа отступ под стрелку */
    
    font-family: inherit;
    font-size: 15px;
    font-weight: 100;
    
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    
    /* Кастомная стрелочка SVG */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 18px;
    
    transition: box-shadow 0.2s, transform 0.1s;
}

.kp-pricing__select:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(245, 227, 32, 0.5); /* Желтая подсветка при клике */
}

/* ========================================================================
   📱 МОБИЛЬНАЯ АДАПТАЦИЯ (Дашборд + Камеры + Погода)
   ======================================================================== */
@media (max-width: 600px) {
    .kp-cams-grid {
        grid-template-columns: 1fr; 
    }

    /* Погода (Ваши стили) */
    .kp-weather-grid {
        grid-template-columns: 1fr; /* Карточки в столбик */
        gap: 8px;
    }
    
    .kp-card {
        flex-direction: row; /* Горизонтальная карточка */
        justify-content: space-between;
        align-items: center;
        padding: 12px 16px;
        text-align: left;
        min-height: 60px;
    }
    
    .kp-card-top {
        border-bottom: none;
        padding-bottom: 0;
        margin-bottom: 0;
        width: auto;
        flex-direction: column-reverse; /* Сначала название, потом высота */
        align-items: flex-start;
        gap: 2px;
    }
    
    /* Название места крупнее */
    .kp-card-top span:last-child {
        font-size: 14px;
    }
    
    .kp-card-main {
        margin-bottom: 0;
        flex-direction: row-reverse; /* Иконка слева от цифры */
    }
    
    .kp-temp { 
        font-size: 20px; 
        margin-left: 8px;
    }
    
    .kp-icon { 
        width: 24px; 
        height: 24px; 
    }

    /* Скрываем подробности ветра на мобильном, если мешают, или уменьшаем */
    .kp-params {
        font-size: 11px;
        flex-direction: column;
        gap: 2px;
        align-items: flex-end;
        text-align: right;
    }
}
/* ==========================================
   3. NAVIGATION (MENU) & BURGER (FINAL)
   ========================================== */
.kp-nav {
  position: sticky; top: 0; z-index: 50;
}

/* Фон меню с размытием */
.kp-nav__bar {
  background: rgba(255, 254, 247, 0.9);
  border-bottom: var(--stroke) solid var(--ink);
  box-shadow: 0 4px 0 var(--ink);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.kp-nav__container { max-width: 1400px; margin: 0 auto; padding: 10px 14px; }
.kp-nav__grid-12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; align-items: center; }

/* Логотип */
.kp-nav__brand {
  display: inline-block; text-decoration: none; color: var(--ink);
  background: var(--accent); border: var(--stroke) solid var(--ink);
  border-radius: 8px; padding: .25em .5em; box-shadow: 4px 4px 0 var(--ink);
  transform: rotate(-1deg); transition: 0.15s;
}
.kp-nav__brand:hover { transform: rotate(0deg) scale(1.02); }

.kp-nav__brand-text {
  font-family: var(--font-head); font-size: clamp(18px, 3.5vw, 24px);
  line-height: 1; text-transform: uppercase;
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important; /* важный фикс для тильды/сфарика */
}

/* Ссылки меню (Десктоп) */
.kp-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.kp-nav__link {
  display: inline-block;
  text-decoration: none;

  /* было: Arial 700 — меняем как на HERO */
  font-family: var(--font-head) !important;   /* Russo One */
  font-weight: 100;               /* Russo One сам жирный */
  text-transform: uppercase;
  letter-spacing: .6px;
  font-size: 13px;                           /* как у херо-кнопок */
  line-height: 1.1;

  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important; /* фикс тильды/сфарика */

  background: #fff;
  border: 2px solid var(--ink);
  border-radius: 8px;
  padding: .35em .6em;
  transition: 0.15s;
}
.kp-nav__list,
.kp-nav .kp-file-item{
  margin-top: 8px; /* подними/опусти число по вкусу */
}

.kp-nav__link:hover {
  transform: translateY(-2px); background: #fffbe8; box-shadow: 2px 2px 0 var(--ink);
}
.kp-nav__link.is-active { background: var(--accent); border-width: 3px; }

/* Кнопка в меню (CTA) */
.kp-nav__btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-head); text-transform: uppercase;
  background: var(--accent); color: var(--ink);
  border: var(--stroke) solid var(--ink); border-radius: var(--radius);
  padding: .4em .7em; box-shadow: 4px 4px 0 var(--ink);
  text-decoration: none; cursor: pointer; transition: 0.15s;
}
.kp-nav__btn:hover { background: var(--accent-hover); transform: translateY(-2px); }


/* =========================
   БУРГЕР (Только для открытия)
   ========================= */
.kp-burger {
  all: unset; cursor: pointer; 
  position: relative; 
  z-index: 1001; 
  width: 44px; height: 44px; 
  display: inline-grid; place-items: center;
  background: #fff; 
  border: var(--stroke) solid var(--ink); 
  border-radius: 8px;
  box-shadow: 4px 4px 0 var(--ink);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.kp-burger__line {
  position: absolute; left: 9px; right: 9px; height: 3px;
  background: var(--ink); border-radius: 2px;
  transition: 0.2s ease;
}
.kp-burger__line:nth-child(1) { top: 13px; }
.kp-burger__line:nth-child(2) { top: 20px; }
.kp-burger__line:nth-child(3) { top: 27px; }

/* При открытии меню СКРЫВАЕМ основной бургер (он больше не нужен, у нас есть крестик внутри) */
.kp-nav.is-open .kp-burger {
  opacity: 0;
  pointer-events: none;
}

/* =========================
   НОВАЯ КНОПКА ЗАКРЫТИЯ (ВНУТРИ МЕНЮ)
   ========================= */
.kp-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid rgba(0,0,0,0.1);
}

.kp-drawer__title {
  font-family: var(--font-head);
  font-size: 24px; color: var(--ink); text-transform: uppercase;
}

.kp-close-btn {
  appearance: none; border: none; outline: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  background: var(--accent);
  border: var(--stroke) solid var(--ink);
  border-radius: 8px;
  box-shadow: 4px 4px 0 var(--ink);
  color: var(--ink); cursor: pointer;
  transition: transform 0.1s ease;
}
.kp-close-btn:active {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}
/* Иконка крестика внутри кнопки */
.kp-close-btn svg {
  width: 24px; height: 24px;
}

/* ==========================================================================
   4. HERO SECTION & DROPDOWNS (ГЕРОЙ + ВЫПАДАЮЩИЕ КНОПКИ)
   ========================================================================== */

.kp-hero2{
  /* Фон и отступы */
  --hero2-height: clamp(420px, 58vh, 760px);
  --hero2-pt: clamp(140px, 16vh, 220px);
  --hero2-pb: clamp(48px, 8vh, 96px);
  --hero2-pos: 50% 50%;
  --hero2-dark: .35;

  /* Управление контентом (ПК дефолты) */
  --hero2-nudge-x: 0px;          /* точный сдвиг по X */
  --hero2-nudge-y: 0px;          /* точный сдвиг по Y */
  --hero2-content-align: center; /* start | center | end */
  --hero2-col-start: 1;
  --hero2-col-end: 8;

  /* Управление контентом (мобилка дефолты) */
  --hero2-nudge-x-m: var(--hero2-nudge-x);
  --hero2-nudge-y-m: var(--hero2-nudge-y);
  --hero2-content-align-m: var(--hero2-content-align);
  --hero2-slot-pad-m: clamp(8px, 3vw, 14px);

  position: relative;
  color:#fff;
  min-height: var(--hero2-height);
  padding-block: var(--hero2-pt) var(--hero2-pb);
  text-align:left;

  border:6px solid var(--ink);
  border-radius:28px;
  background-color: var(--paper);

  background-position: var(--hero2-pos);
  background-repeat:no-repeat;
  background-size:cover;

  overflow:visible;
}

/* Затемнение фона */
.kp-hero2::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgb(0 0 0 / var(--hero2-dark, .35));
  border-radius: inherit;
  pointer-events:none;
}

/* Логика смены фона */
.kp-hero2--bg{
  background-image: var(--hero2-img, var(--hero2-bg-16x9-1x));
}
@media (orientation: landscape){
  .kp-hero2--bg{ --hero2-img: var(--hero2-bg-16x9-1x); }
}
@media (orientation: portrait){
  .kp-hero2--bg{ --hero2-img: var(--hero2-bg-9x16-1x); }
}

/* Контейнер */
.kp-hero2__container{
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding-inline: clamp(12px, 3vw, 20px);
}

/* Сетка */
.kp-hero2__grid-12{
  display:grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(10px, 1.4vw, 16px);
  min-height: inherit;
  align-content: var(--hero2-content-align, center);
  padding-bottom: clamp(8px, 2vh, 20px);
}

.kp-hero2{ overflow-x: clip; }

/* Слот контента на ПК + сдвиг */
.kp-hero2__slot{
  grid-column-start: var(--hero2-col-start, 1);
  grid-column-end: var(--hero2-col-end, 8);

  transform: translate3d(
    var(--hero2-nudge-x, 0px),
    var(--hero2-nudge-y, 0px),
    0
  );
  will-change: transform;

  box-sizing: border-box;
  max-width: 100%;
}

/* страховка от вылезания детей */
.kp-hero2__slot > *{
  max-width: 100%;
  box-sizing: border-box;
}

/* Мобилка */
@media (max-width: 899px){

  .kp-hero2__grid-12{
    align-content: var(--hero2-content-align-m, center);
  }

  .kp-hero2__slot{
    grid-column: 1 / -1;
    display:grid;
    row-gap:12px;

    padding-inline: var(--hero2-slot-pad-m);

    transform: translate3d(
      var(--hero2-nudge-x-m, 0px),
      var(--hero2-nudge-y-m, 0px),
      0
    );
  }

  /* мягкая типографика внутри hero, чтобы строки не лезли за края */
  .kp-hero2 :where(h1, .kp-hero2__title, .t-title){
    font-size: clamp(24px, 6.2vw, 34px);
    line-height: 1.1;
    text-wrap: balance;
  }
  .kp-hero2 :where(.kp-hero2__subtitle, .t-descr){
    font-size: clamp(15px, 4.1vw, 18px);
    line-height: 1.35;
  }
}

/* ==========================================
   HERO BUTTONS: SMOOTH SLIDE UP EFFECT
   ========================================== */
.kp-hero2__actions {
  display: flex; 
  align-items: center; 
  gap: 16px; 
  flex-wrap: nowrap;
  /* Важно для слоев */
  position: relative; 
  z-index: 20; 
  /* Чтобы выпадающее вверх меню не обрезалось */
  overflow: visible; 
}

/* --- КОНТЕЙНЕР (.kp-hitem) --- */
.kp-hitem {
  position: relative;
  display: inline-block;
  perspective: 800px; /* Глубина 3D */
  z-index: 1; /* Базовый слой */
}

/* При наведении поднимаем весь контейнер выше соседей, 
   чтобы выпадающий список перекрывал соседние кнопки */
.kp-hitem:hover,
.kp-hitem.is-open {
  z-index: 100;
}


/* --- КНОПКА-ПАПКА (.kp-hbtn) --- */
.kp-hbtn {
  /* --- ВАЖНО: КНОПКА ВСЕГДА ВЫШЕ МЕНЮ --- */
  z-index: 20; 
  
  /* Настройки */
  --spine-color: var(--accent, #FF5E00);
  --spine-width: 6px;
  
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 44px;
  padding: 0 24px 0 calc(var(--spine-width) + 16px);
  
  font-family: var(--font-head, sans-serif);
  font-size: 12px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--ink, #000) !important;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  
  /* Градиентный фон */
  background: linear-gradient(90deg, color-mix(in srgb, var(--spine-color) 15%, #fff) 0%, #fff 100%);
  border: 2px solid var(--ink, #000);
  border-radius: 6px;
  
  /* Тень */
  box-shadow: 4px 4px 0 var(--ink, #000);
  
  /* Анимация кнопки */
  transform-origin: 50% 100%;
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), 
              box-shadow 0.3s ease, 
              background 0.2s;
}

/* Корешок */
.kp-hbtn::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0;
  width: var(--spine-width);
  background: var(--spine-color);
  border-right: 2px solid var(--ink, #000);
  border-radius: 4px 0 0 4px;
}

/* HOVER ЭФФЕКТ КНОПКИ */
.kp-hitem:hover .kp-hbtn,
.kp-hitem.is-open .kp-hbtn {
  transform: rotateX(-12deg); /* поднимается только верх */
  box-shadow: 0 12px 20px -6px rgba(0,0,0,0.25); /* тень вверх */
  background: linear-gradient(90deg,
              color-mix(in srgb, var(--spine-color) 20%, #fff) 0%,
              #f3f4f6 100%); /* hover чуть темнее, НЕ белый */
}

/* =========================================================
   DROPDOWN (.kp-hdd) — VARIANT A (TRANSITION DIAGONAL) [ACTIVE]
   Плавный выезд вверх + диагональный наклон за счёт transform
   ========================================================= */
.kp-hdd {
  z-index: 10;

  position: absolute;
  left: 0;
  bottom: calc(100% + var(--kp-hdd-gap)); /* меню всегда “над” кнопкой */

  min-width: 220px;
  background: #fff;
  border: 2px solid var(--ink, #000);
  border-radius: 6px;
  box-shadow: 6px 6px 0 rgba(0,0,0,0.15);

  padding: 10px 0;
  display: flex;
  flex-direction: column;
  gap: 2px;

  /* скрыто */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  /* СТАРТ: как будто “внутри папки” + диагональ */
  transform:
    translateY(18px)    /* прячем вниз */
    translateX(-8px)    /* уводим влево для диагонали */
    scale(.96)
    rotateZ(7deg);      /* стартовый наклон */

  transform-origin: bottom left;

  will-change: transform, opacity;

  transition:
    opacity .18s ease,
    transform .52s cubic-bezier(.22,.61,.36,1), /* мягкий “easeOut” */
    visibility 0s linear .52s;                  /* синхронизируем с transform */
}

/* ОТКРЫТО */
.kp-hitem:hover .kp-hdd,
.kp-hitem.is-open .kp-hdd {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;

  /* ФИНАЛ: выехало вверх и “лист” слегка наклонён */
  transform:
    translateY(0)
    translateX(0)
    scale(1)
    rotateZ(-4deg);

  transition-delay: 0s, 0s, 0s;
}

/* --- ССЫЛКИ ВНУТРИ (как текст на херо-кнопках) --- */
.kp-hdd__link{
  display:block;
  padding:8px 16px;

  font-family: var(--font-head) !important; /* Russo One */
  font-size: 13px;
  font-weight: 200;             /* Russo One сам жирный */
  letter-spacing: .5px;
  line-height: 1.25;

  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important; /* тильда/сафари фикс */
  text-decoration:none !important;

  text-transform: uppercase; /* если не хочешь капсом — закомментируй */

  border-left:3px solid transparent;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}

/* перебиваем возможные span/стили тильды внутри ссылок */
.kp-hdd__link *{
  font-family: inherit !important;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  text-transform: inherit !important;
}

/* чтобы "visited" не красил в оранжевый/фиолетовый */
.kp-hdd__link:visited{ 
  color: var(--ink) !important; 
  -webkit-text-fill-color: var(--ink) !important;
}

.kp-hdd__link:hover,
.kp-hdd__link:focus-visible{
  background:#eef0f3;                 /* чуть темнее, не белая */
  color: var(--ink) !important;
  border-left-color: var(--accent);
  outline: none;
}
/* --- МОБИЛЬНАЯ АДАПТАЦИЯ (СЕТКА 2x2) --- */
@media (max-width: 899px) {

  /* 1. Контейнер кнопок */
  .kp-hero2__actions {
    display: flex;
    flex-wrap: wrap !important; /* Разрешаем перенос */
    gap: 8px !important;        /* Уменьшаем отступ между кнопками (было 16 или 10) */
    justify-content: space-between; /* Распределяем по ширине */
  }

  /* 2. Сами элементы (Кнопки) - СТРОГО 2 В РЯД */
  .kp-hitem {
    /* Формула: (100% - отступ) / 2 */
    width: calc(50% - 4px) !important; 
    flex-grow: 0;
    flex-shrink: 0;
    margin: 0 !important;
  }

  /* 3. Стиль кнопки внутри */
  .kp-hbtn {
    width: 100% !important;      /* Растягиваем на всю ширину ячейки */
    justify-content: center;     /* Текст по центру */
    padding-left: 8px !important;  /* Уменьшаем внутренние отступы */
    padding-right: 8px !important;
    font-size: 11px !important;  /* Чуть меньше шрифт, чтобы влез длинный текст */
    box-sizing: border-box;      /* Чтобы padding не ломал ширину */
  }

  /* --- ДАЛЕЕ ВАШ КОД ДЛЯ ВЫПАДАШЕК (KP-HDD) ОСТАВЛЯЕМ КАК ЕСТЬ --- */
  
  .kp-hitem:hover .kp-hdd {
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(18px) translateX(-8px) scale(.96) rotateZ(7deg);
  }

  .kp-hdd {
    left: 0; right: auto;
    min-width: 200px; /* Чуть уменьшил, чтобы не вылезало */
    max-width: 90vw;
    rotate: 0deg;
    transform-origin: bottom left;
  }

  /* Верхний ряд открываем вверх */
  .kp-hero2__actions .kp-hitem:nth-child(-n+2) .kp-hdd {
    bottom: calc(100% + 10px); top: auto;
    transform: translateY(18px) translateX(-8px) scale(.96) rotateZ(7deg);
    transform-origin: bottom left;
  }
  .kp-hero2__actions .kp-hitem:nth-child(-n+2).is-open .kp-hdd {
    transform: translateY(0) translateX(0) scale(1) rotateZ(-4deg);
  }

  /* Нижний ряд открываем вниз */
  .kp-hero2__actions .kp-hitem:nth-child(n+3) .kp-hdd {
    top: calc(100% + 10px); bottom: auto;
    transform: translateY(-18px) translateX(-8px) scale(.96) rotateZ(-7deg);
    transform-origin: top left;
  }
  .kp-hero2__actions .kp-hitem:nth-child(n+3).is-open .kp-hdd {
    transform: translateY(0) translateX(0) scale(1) rotateZ(4deg);
  }

  .kp-hitem.is-open .kp-hdd {
    opacity: 1; visibility: visible; pointer-events: auto;
  }
}

/* БЭКДРОП — базово (чтобы не ломать парсинг и был один источник правды) */
.kp-nav__backdrop{
  position:fixed; inset:0;
  background:rgba(0,0,0,.55);
  z-index:1500;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s ease, visibility 0s linear .3s;
}

/* открыт */
.kp-nav.is-open .kp-nav__backdrop{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s,0s;
}

@media (max-width: 899px){

  /* --- ДРОВЕР --- */
  .kp-nav__drawer{
    position:fixed; top:0; right:0; bottom:0; z-index:2000;
    width:min(86vw, 420px);
    height:100dvh;
    background:var(--paper);
    border-left:var(--stroke) solid var(--ink);
    padding:20px 16px;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;

    transform:translate3d(100%,0,0);
    transition:transform .3s cubic-bezier(.22,.61,.36,1);
    display:flex; flex-direction:column;
  }
  .kp-nav.is-open .kp-nav__drawer{ transform:translate3d(0,0,0); }

  /* Шапка мобайл */
  .kp-nav__desk, .kp-nav__actions{ display:none; }
  .kp-nav__brand{ grid-column:1/11; }
  .kp-burger{
    grid-column:11/13;
    justify-self:end;
    display:inline-grid;
  }

  /* Моб. список */
  .kp-nav__mob{ padding:0; }
  .kp-nav__list--mob{
    display:flex; flex-direction:column; gap:10px;
    align-items:stretch;
  }

  /* --- АККОРДЕОН --- */
  .kp-acc{ width:100%; }

  .kp-acc__btn{
    width:85%;
    display:flex; align-items:center; justify-content:space-between;
    text-align:left;
    padding:12px 16px;

    background:#fffef7;
    color:var(--ink);
    font-family:var(--font-head);
    font-size:16px;
    text-transform:uppercase;

    border:var(--stroke) solid var(--ink);
    border-radius:10px;
    box-shadow:3px 3px 0 var(--ink);
    cursor:pointer;
    transition:.15s ease;
  }
  .kp-acc__btn:hover{ background:#fffbe8; }
  .kp-acc__btn:active{ transform:translateY(1px); box-shadow:1px 1px 0 var(--ink); }

  .kp-acc__caret{ display:inline-grid; transition:transform .2s ease; }
  .kp-acc__btn[aria-expanded="true"] .kp-acc__caret svg{ transform:rotate(180deg); }

  .kp-acc__panel{
    display:flex; flex-direction:column; gap:8px;
    padding:8px 0 8px 12px;
    margin-left:6px;
    border-left:3px solid rgba(0,0,0,.15);
  }
  .kp-acc__panel[hidden]{ display:none !important; }

  .kp-acc__panel .kp-nav__link{
    display:block;
    font-family:var(--font-body);
    font-weight: 400; font-size:14px;
    padding:10px 14px;

    background:#fff;
    color:var(--ink);
    text-decoration:none;

    border:2px solid var(--ink);
    border-radius:8px;
    box-shadow:2px 2px 0 var(--ink);
  }
  .kp-acc__panel .kp-nav__link:active{
    transform:translateY(1px);
    box-shadow:none;
  }
}

@media (max-width: 899px){

  /* Текст в кнопках-заголовках аккордеона */
  .kp-nav__drawer .kp-acc__btn,
  .kp-nav__drawer .kp-acc__btn *{
    font-family: var(--font-head) !important;
    color: var(--ink) !important;
    -webkit-text-fill-color: var(--ink) !important;
    text-transform: uppercase !important;
  }

  /* Текст в ссылках внутри дровера (список/панели) */
  .kp-nav__drawer .kp-nav__link,
  .kp-nav__drawer .kp-nav__link *{
    font-family: var(--font-body) !important;
    color: var(--ink) !important;
    -webkit-text-fill-color: var(--ink) !important;
  }

}

/* --- UTILITIES & VISIBILITY --- */

/* На десктопе моб.части скрываем ЖЁСТКО */
@media (min-width: 900px){
  .kp-burger,
  .kp-nav__drawer,
  .kp-nav__backdrop{
    display:none !important;
  }

  .kp-nav__brand{ grid-column:1/3; justify-self:start; }
  .kp-nav__desk { grid-column:3/11; justify-self:center; }
  .kp-nav__actions{ grid-column:11/13; justify-self:end; }
}

/* Reduce Motion */
@media (prefers-reduced-motion: reduce){
  .kp-nav__drawer,
  .kp-nav__backdrop,
  .kp-burger__line,
  .kp-file-drop,
  .kp-file-btn{
    transition:none !important;
  }
}

/* ==========================================
   3D КАРТОЧКИ (FULL GRADIENT EDITION)
   Фон: Градиент (цвет -> белый)
   Корешок: Градиент (яркий -> темный)
   ========================================== */

.kp-hero__cards {
  position: absolute; left: 66%; top: 60%;
  transform: translate(-50%, 70%);
  width: min(880px, calc(100% - clamp(24px, 6vw, 64px)));
  display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr));
  z-index: 5; perspective: 1000px;
}

.kp-hcard {
  position: relative; 
  display: flex; 
  flex-direction: column; 
  justify-content: space-between;
  gap: 8px; 
  min-height: 130px; 
  padding: 16px;
  border-radius: 6px; 
  text-decoration: none; 
  text-align: left;

  /* 1. Базовый цвет */
  --card-local: var(--accent); 

  /* 2. ГРАДИЕНТНЫЙ ФОН ТЕЛА КАРТОЧКИ (Слева направо) */
  /* Слева насыщенно (15%), справа чисто белый */
  background: linear-gradient(
    90deg, 
    color-mix(in srgb, var(--card-local) 15%, #ffffff) 0%, 
    #ffffff 100%
  );

  color: var(--ink) !important;
  border: 3px solid var(--ink); 
  box-shadow: 6px 6px 0 var(--ink);
  
  transform-origin: left center;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
}

/* --- 3. ГРАДИЕНТНЫЙ КОРЕШОК (ИЗМЕНЕНО) --- */
.kp-hcard::before {
  content: ""; 
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 12px; 
  
  /* Вертикальный градиент для объема корешка */
  /* Сверху: Чистый цвет */
  /* Снизу: Смесь с черным (затемнение на 15%) */
  background: linear-gradient(
    180deg, 
    var(--card-local) 0%, 
    color-mix(in srgb, var(--card-local), #000 15%) 100%
  );
  
  border-right: 3px solid var(--ink); 
  z-index: 1;
}

/* Ховер */
.kp-hcard:hover {
  transform: rotateY(-12deg) translateY(-5px);
  box-shadow: 15px 20px 10px rgba(0,0,0,0.15), 6px 6px 0 var(--ink);
  
  /* При ховере фон тела становится чуть насыщеннее (25%) */
  background: linear-gradient(
    90deg, 
    color-mix(in srgb, var(--card-local) 25%, #ffffff) 0%, 
    #ffffff 100%
  );
  z-index: 10;
}

.kp-hcard__title {
  margin-left: 14px; font-family: var(--font-head);
  font-weight: 400; font-size: clamp(16px, 2.2vw, 22px); line-height: 1.1;
  text-transform: uppercase; z-index: 2; pointer-events: none;
}

.kp-hcard__icon { width: 40px; height: 40px; margin-left: 14px; z-index: 2; }

.kp-hcard__icon svg { 
  width: 100%; height: 100%; 
  stroke: var(--card-local); 
  stroke-width: 2.5; fill: none; 
}

/* Цвета (градиенты подстроятся сами) */
.kp-hcard.is-amber { --card-local: #ffb400; }
.kp-hcard.is-sky   { --card-local: #39b7ff; }
.kp-hcard.is-green { --card-local: #00e676; }

/* Адаптив */
@media (max-width: 1024px) { .kp-hero__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
  .kp-hero__cards {
    top: auto; bottom: -70px; left: 50%; transform: translateX(-50%, 70%);
    width: 94%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;
    perspective: none;
  }
  .kp-hcard {
    min-height: 90px; padding: 8px 6px; border-width: 2px; border-radius: 8px;
    box-shadow: 3px 3px 0 var(--ink); transform-origin: center;
    /* Мобильный градиент чуть слабее (10%) */
    background: linear-gradient(90deg, color-mix(in srgb, var(--card-local) 10%, #ffffff) 0%, #ffffff 100%);
  }
  .kp-hcard:hover { transform: translateY(-2px); box-shadow: 2px 2px 0 var(--ink); }
  .kp-hcard::before { width: 5px; border-right-width: 2px; }
  .kp-hcard__icon { width: 24px; height: 24px; margin-left: 4px; }
  .kp-hcard__icon svg { stroke-width: 2; }
  .kp-hcard__title { font-size: 11px; margin-left: 4px; }
}

/* ==========================================
   1. КОНТЕЙНЕР СПИСКА
   ========================================== */
.kp-menu-list {
  display: flex;           
  flex-wrap: wrap;         
  align-items: center;     
  gap: 12px;               
  
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  
  width: auto;
  max-width: 100%;
  position: relative;
  z-index: 10;
}

/* ==========================================
   2. СТИЛИ ЭЛЕМЕНТА
   ========================================== */
.kp-file-item {
  position: relative;
  display: inline-flex;    
  align-items: center;
  height: auto;            
  
  perspective: 1000px; 
  z-index: 1;
  margin: 0;               
}

.kp-file-item:hover {
  z-index: 100;
}

/* ==========================================
   3. КНОПКА-ОБЛОЖКА (С КОРЕШКОМ И ГРАДИЕНТОМ)
   ========================================== */
.kp-file-btn {
  /* --- ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ --- */
  --btn-stroke: 1.5px;
  --btn-shadow: 2px;
  --btn-radius: 6px;
  --spine-width: 6px; /* Ширина корешка */
  /* Цвет корешка по умолчанию (оранжевый) */
  --card-local: var(--accent);

  position: relative;
  z-index: 10;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;

  min-height: 30px;
  /* Отступ слева учитывает ширину корешка */
  padding: 4px 12px 4px calc(var(--spine-width) + 10px);

  white-space: nowrap;
  font-family: var(--font-head);

  /* --- ТИПОГРАФИКА --- */
  font-size: 14px;
  letter-spacing: 0.8px;
  font-weight: 400;
  text-transform: uppercase;
  line-height: 1;
  color: var(--ink);

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  appearance: none;

  /* --- ФОН КНОПКИ (ГРАДИЕНТ ОТ КОРЕШКА) --- */
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--card-local) 15%, #ffffff) 0%,
    #ffffff 100%
  );

  /* --- РАМКА И ТЕНЬ --- */
  border: var(--btn-stroke) solid var(--ink);
  border-radius: var(--btn-radius);
  box-shadow: var(--btn-shadow) var(--btn-shadow) 0 var(--ink);

  cursor: pointer;
  transform-origin: 50% 0%;
  backface-visibility: hidden;
  transform: translateZ(0);
  will-change: transform;

  transition:
    transform .2s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow .2s cubic-bezier(0.2, 0.8, 0.2, 1),
    background .15s;
}

/* --- ВОТ ОН, КОРЕШОК! (ПСЕВДОЭЛЕМЕНТ) --- */
.kp-file-btn::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: var(--spine-width); /* Ширина из переменной */

  /* Цвет корешка */
  background: var(--card-local);

  /* Черная полоска-разделитель справа от корешка */
  border-right: var(--btn-stroke) solid var(--ink);

  /* Скругление только левых углов, чтобы совпадало с кнопкой */
  border-radius: calc(var(--btn-radius) - var(--btn-stroke)) 0 0 calc(var(--btn-radius) - var(--btn-stroke));

  z-index: 1; /* Корешок поверх фона кнопки */
}

/* --- ИКОНКА СТРЕЛОЧКИ --- */
.kp-file-btn svg {
  width: 10px; height: 10px;
  flex-shrink: 0;
  transition: transform .2s ease;
  opacity: 0.8;
  stroke-width: 2.5px;
}
/* ==========================================
   4. ВЫПАДАЮЩЕЕ МЕНЮ
   ========================================== */
.kp-file-drop {
  position: absolute;
  left: 0;
  min-width: 190px;
  width: max-content;      

  background: var(--paper);
  border: 1.5px solid var(--ink); 
  border-radius: 6px; 
  box-shadow: 3px 3px 0 rgba(0,0,0,0.15);
  
  padding: 6px; 
  display: flex;
  flex-direction: column;
  gap: 2px;

  z-index: 5;
  top: 100%;
  margin-top: -10px; 
  padding-top: 26px;       

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transform-origin: top left; 
  transform: translateY(-15px) rotateX(-10deg) rotateZ(-3deg); 

  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  
  backface-visibility: hidden; 
  -webkit-font-smoothing: subpixel-antialiased;
}


/* ==========================================
   5. СОСТОЯНИЯ (HOVER / OPEN)
   ========================================== */

.kp-file-item:hover .kp-file-btn,
.kp-file-item:focus-within .kp-file-btn,
.kp-file-item.is-open .kp-file-btn {
  /* --- ИЗМЕНЕНИЕ: ПРИ НАВЕДЕНИИ ФОН ЯРЧЕ --- */
  background: linear-gradient(
    90deg, 
    color-mix(in srgb, var(--card-local) 25%, #ffffff) 0%, 
    #ffffff 100%
  );
  
  transform: rotateX(12deg) translateZ(0);
  box-shadow: 0 6px 12px -3px rgba(0,0,0,0.1); 
  z-index: 20;
}

.kp-file-item:hover .kp-file-btn svg,
.kp-file-item.is-open .kp-file-btn svg {
  transform: rotate(180deg);
}

/* Остальное без изменений */
.kp-file-item:hover .kp-file-drop,
.kp-file-item:focus-within .kp-file-drop,
.kp-file-item.is-open .kp-file-drop {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) rotateX(0deg) rotateZ(4.5deg);
}

/* ==========================================
   6. ССЫЛКИ ВНУТРИ (ЧИСТАЯ ЧИТАЕМОСТЬ)
   ========================================== */
.kp-file-link {
  display: block;
  padding: 9px 14px;

  /* было Inter — делаем как HERO */
  font-family: var(--font-head) !important;   /* Russo One */
  font-weight: 400;
  font-size: 13px !important;
  line-height: 1.15;
  letter-spacing: .6px;
  text-transform: uppercase;
  white-space: nowrap;

  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important; /* тильда/сфарик фикс */

  text-decoration: none !important;
  border: none !important;
  background-image: none !important;
  opacity: 1 !important;

  transition: background .15s ease, color .15s ease;
}

.kp-file-link:hover {
  background: #f4f4f5 !important;         
  color: #000000 !important;  
  /* Добавил микро-тень тексту при наведении для контраста */
  text-shadow: 0 0 0.5px rgba(0,0,0,0.1);            
}

/* Цвета */
.kp-file-btn{ --card-local: var(--accent); }


/* ==========================================
   7. МОБИЛЬНАЯ ВЕРСИЯ (ACCORDION MODE)
   ========================================== */
@media (max-width: 960px) {
  
  /* Контейнер: превращаем строку в колонку */
  .kp-menu-list {
    flex-direction: column;
    align-items: stretch; /* Кнопки на всю ширину */
    gap: 8px;
    width: 100%;
  }

  /* Элемент: занимает 100% */
  .kp-file-item {
    display: block; /* Block чтобы вложенные элементы вели себя предсказуемо */
    width: 100%;
    margin-bottom: 4px;
  }

  /* Кнопка: на всю ширину, стрелка справа */
  .kp-file-btn {
    width: 100%;
    display: flex;
    justify-content: space-between; /* Текст слева, стрелка справа */
    
    font-size: 12px; /* Чуть крупнее для пальцев */
    padding: 10px 16px 10px calc(var(--spine-width) + 12px);
    height: auto;
    min-height: 44px; /* Стандартный тач-таргет */
  }

  /* Отключаем 3D эффекты на мобиле (они тормозят и выглядят странно при скролле) */
  .kp-file-btn,
  .kp-file-item:hover .kp-file-btn,
  .kp-file-item.is-open .kp-file-btn {
    transform: none !important; 
    box-shadow: 2px 2px 0 var(--ink); /* Оставляем простую тень */
    background: var(--paper); /* Без белой вспышки */
  }

  /* Выпадающее меню: Становится АККОРДЕОНОМ */
  .kp-file-drop {
    position: static; /* Важно! Толкает контент вниз */
    width: 100%;
    min-width: 100%;
    
    transform: none !important; /* Без диагоналей и поворотов */
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    
    /* Стили аккордеона */
    box-shadow: none;
    border: none;
    border-left: 2px solid var(--card-local); /* Цветная линия слева вместо рамки */
    border-radius: 0 0 6px 6px;
    background: rgba(255,255,255, 0.5); /* Чуть прозрачный фон */
    
    margin-top: 0;
    padding: 0 0 0 12px; /* Отступ слева */
    
    /* Скрываем по умолчанию (через display none, так надежнее для аккордеона) */
    display: none; 
  }

  /* Когда открыто (класс .is-open добавляется JS-ом) */
  .kp-file-item.is-open .kp-file-drop {
    display: flex;
    animation: mobileFadeIn 0.2s ease;
  }
  
  @keyframes mobileFadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* Ссылки на мобиле */
  .kp-file-link {
    padding: 12px 16px; /* Крупные зоны клика */
    font-size: 14px !important;
    border-bottom: 1px solid rgba(0,0,0,0.05) !important; /* Разделители */
    color: #000 !important; /* Принудительный черный */
  }
  
  .kp-file-link:last-child {
    border-bottom: none !important;
  }
}

/* ==========================================================================
   5. TOC (GTA STYLE) — HARD SHADOWS & BOLD LINES
   ========================================================================== */
.kp-toc2 {
  position: sticky; top: 0px; z-index: 40;
  margin: 14px 0;
}

.kp-toc2__container {
  max-width: 100%; margin: 0 auto;
  padding-inline: clamp(12px, 3vw, 20px);
}

/* Обёртка кнопок */
.kp-toc2__wrap {
  display: flex; flex-wrap: wrap; gap: 12px;
  justify-content: center;
  
  /* --- НАСТРОЙКА КОНТЕЙНЕРА --- */
  /* По умолчанию прозрачный (как на скринах) */
  background: transparent; 
  border: none;
  padding: 8px 0;
  box-shadow: none;


  background: #fffbe8;
  border: 3px solid #000000;
  border-radius: 14px;
  padding: 12px;
  box-shadow: 6px 6px 0 #000000;
}

/* Кнопки навигации */
.kp-toc2__btn {
  display: inline-flex; align-items: center; justify-content: center;
  
  /* Шрифт */
  font-family: 'Arial Black', 'Helvetica Neue', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(12px, 1.5vw, 14px);
  letter-spacing: 0.05em;
  
  /* Цвета и Форма */
  color: #000000 !important;
  background: #ffffff;
  border: 2px solid #000000; /* Чуть тоньше рамка кнопки, если есть общая рамка */
  border-radius: 8px;       
  padding: 0.6em 1.2em;
  
  /* Тень кнопки */
  box-shadow: 3px 3px 0 #000000; 
  
  text-decoration: none; cursor: pointer; user-select: none;
  transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.15s;
}

/* Ховер эффект */
.kp-toc2__btn:hover {
  background: #fff;
  transform: translate(-2px, -2px);
  box-shadow: 5px 5px 0 #000000;
}

/* Эффект нажатия */
.kp-toc2__btn:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 #000000;
}

/* МОБИЛЬНАЯ ВЕРСИЯ */
@media (max-width: 899px) {
  .kp-toc2__wrap {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 10px 12px;
    scrollbar-width: none; 
  }
  .kp-toc2__wrap::-webkit-scrollbar { display: none; }
  
  .kp-toc2__btn { 
    flex: 0 0 auto; 
    white-space: nowrap;
  }
}

/* --- ПОДСКАЗКА (МИНИМАЛИЗМ - ТЕКСТ СО СТРЕЛКОЙ) --- */
.kp-toc2__hint { display: none; }

@media (max-width: 899px) {
  .kp-toc2__hint {
    display: inline-flex; 
    align-items: center;
    gap: 4px;
    
    /* Отступы: чуть ниже меню */
    margin: 4px 0 10px 8px;
    padding: 0; /* Без паддингов, так как нет рамки */
    
    /* Стиль текста: просто аккуратная надпись */
    font-family: 'Arial', sans-serif;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #000;
    opacity: 0.7; /* Чуть приглушаем, чтобы не спорила с кнопками */
    
    background: transparent;
    border: none;
    box-shadow: none;
    pointer-events: none;
  }

  /* Анимированная стрелка */
  .kp-toc2__hint::after {
    content: "→"; 
    display: inline-block;
    font-weight: bold;
    font-size: 12px;
    animation: kp-hint-bounce 1s infinite;
  }

  @keyframes kp-hint-bounce {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(3px); }
  }
}

/* ==========================================================================
   4. КОНТЕНТ СТРАНИЦЫ И ПОДВАЛ (FINAL BLOCK)
   ========================================================================== */

/* --- A. ХЛЕБНЫЕ КРОШКИ (Breadcrumbs) --- */
.kp-breadcrumbs {
  margin: 8px 0 14px;
  --bc-ink: var(--ink);
  --bc-dim: rgba(0,0,0,.55);
}
.kp-breadcrumbs__list { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.kp-breadcrumbs__item { display: inline-flex; align-items: center; gap: 6px; }

/* Ссылки */
.kp-breadcrumbs__link {
  color: var(--bc-dim); text-decoration: none; font-weight: 700; font-size: 14px;
  border: none; background: none; padding: 0; transition: 0.2s;
}
.kp-breadcrumbs__link:hover { color: var(--bc-ink); text-decoration: underline; }

/* Текущая страница */
.kp-breadcrumbs__current { font-weight: 700; color: var(--bc-ink); font-size: 14px; }

/* Разделитель */
.kp-breadcrumbs__sep::before { content: "›"; color: var(--bc-dim); font-weight: 400; }


/* --- B. ФОТО ОТЕЛЕЙ (Адаптивные) --- */
.kp-hotel__photo {
  position: relative; width: 100%;
  padding-top: 56.25%; /* 16:9 Aspect Ratio */
  border-radius: 12px; margin-top: 20px; overflow: hidden;
  border: 2px solid var(--ink); /* Добавил рамку для стиля */
  box-shadow: 4px 4px 0 var(--ink);
}
.kp-hotel__photo img {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;
}

/* ==========================================================================
   C. ТИПОГРАФИКА СТАТЬИ (.kp-comic) — CLEAN & READABLE
   ========================================================================== */

/* Основной текст */
.kp-comic {
  font-family: var(--font-body); /* Inter / Roboto */
  color: var(--ink);
  line-height: 1.6; /* Важно! Воздух между строками */
  font-size: 18px;  /* Комфортный размер для чтения */
}

/* --- СПИСКИ (UL, OL) --- */
.kp-comic__body ul,
.kp-comic__body ol {
  margin-bottom: 1.5em;
  padding-left: 20px;
}

.kp-comic__body li {
  margin-bottom: 8px;
  line-height: 1.55;
  /* Убираем лишнюю жирность, делаем текст спокойнее */
  font-weight: 700; 
}

/* Маркеры списка */
.kp-comic__body ul li::marker {
  color: var(--accent); /* Желтые точки */
  font-size: 1.2em;
}

/* --- ДЕКОР (Акцентный блок) --- */
.kp-subtle-bg {
  background: #fffef0; /* Очень легкий желтый */
  border-left: 4px solid var(--accent);
  border-radius: 4px;
  padding: 16px 20px;
  margin: 24px 0;
  font-style: normal; /* Убрал курсив, он часто мылит */
}
/* Убираем лишние отступы у последнего абзаца в плашке */
.kp-subtle-bg > *:last-child { margin-bottom: 0; }

/* Адаптив шрифтов */
@media (max-width: 600px) {
  .kp-comic { font-size: 16px; }
  .kp-comic__body h2 { font-size: 24px; }
  .kp-comic__body h3 { font-size: 20px; }
}


/* ==========================================
   D. ПОДВАЛ (FOOTER) — CUSTOM GTA STYLE
   ========================================== */
.kp-footer {
  /* Используем глобальные переменные, но можно переопределить локально */
  margin-top: 40px;
  padding: 20px 0;
  font-family: var(--font-body);
  color: var(--ink);
}

/* Жесткий сброс цветов для Tilda */
.kp-footer, .kp-footer * {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink) !important;
}

/* Подложка и рамка (Лист бумаги) */
.kp-footer__bg {
  background: radial-gradient(circle at 8px 8px, rgba(0,0,0,.06) 2px, transparent 2px) 0 0/16px 16px, var(--paper);
  border: var(--stroke) solid var(--ink);
  border-radius: calc(var(--radius) + 6px);
  padding: clamp(16px, 3vw, 28px);
  box-shadow: var(--shadow); /* Глобальная тень */
}

/* Верхняя полоса */
.kp-footer__top {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: var(--gap);
}

/* Бренд — жёлтый бейдж */
.kp-footer__brand {
  display: inline-block; text-decoration: none;
  background: var(--accent); color: var(--ink);
  border: var(--stroke) solid var(--ink); border-radius: 12px;
  padding: .35em .6em; box-shadow: 6px 6px 0 var(--ink);
  font-family: var(--font-head); /* Russo One */
  font-size: clamp(20px, 3.2vw, 28px); line-height: 1.05;
  transform: rotate(-1deg);
}
.kp-footer__tag { margin: 0; font-weight: 700; font-family: var(--font-body); }

/* Сетка колонок */
.kp-footer__grid {
  display: grid; gap: var(--gap);
  grid-template-columns: 1fr;
  margin-bottom: var(--gap);
}
@media (min-width: 860px) {
  .kp-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Карточки-колонки */
.kp-footer__col {
  background: #fff;
  border: var(--stroke) solid var(--ink);
  border-radius: var(--radius);
  box-shadow: 6px 6px 0 var(--ink);
  padding: 14px 16px 16px;
}

/* Заголовки колонок — белые пилюли */
.kp-footer__heading {
  display: inline-block;
  font-family: var(--font-head); /* Russo One */
  font-size: 18px; text-transform: uppercase;
  background: #fff;
  border: var(--stroke) solid var(--ink); border-radius: 10px;
  padding: .25em .6em; margin: 0 0 .8em 0;
}

/* Списки ссылок */
.kp-footer__list { list-style: none; margin: 0; padding: 0; }
.kp-footer__list li { margin: .45em 0; }
.kp-footer__list a {
  text-decoration: none; color: var(--ink); font-weight: 700;
  border-bottom: 2px solid transparent;
  transition: transform .1s ease, border-color .15s ease, background .15s ease;
  padding: 2px 4px; border-radius: 8px; display: inline-block;
}
.kp-footer__list a:hover {
  border-color: var(--ink); background: #fffbe8; transform: translateX(4px);
}

/* Соцсети */
.kp-footer__social { display: flex; gap: 10px; margin-top: .8em; }
.kp-social {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 10px;
  background: #fff; color: var(--ink);
  border: var(--stroke) solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  transition: transform .1s ease, background .15s ease;
}
.kp-social:hover { transform: translateY(-2px); background: var(--accent); }

/* Форма подписки */
.kp-footer__form { display: flex; gap: 8px; margin-top: .4em; }
.kp-input {
  flex: 1 1 auto; min-width: 0;
  background: #fff; border: var(--stroke) solid var(--ink);
  border-radius: 10px; padding: .6em .75em; font-weight: 700;
  font-family: var(--font-body);
}
.kp-btn {
  background: var(--accent); color: var(--ink);
  border: var(--stroke) solid var(--ink);
  border-radius: 12px; padding: .6em .9em; font-weight: 700;
  box-shadow: 6px 6px 0 var(--ink); cursor: pointer;
  transition: transform .1s ease, background .15s ease;
  font-family: var(--font-head); text-transform: uppercase;
}
.kp-btn:hover { transform: translateY(-1px); background: var(--accent-hover); }
.kp-footer__note { font-size: .9em; opacity: .9; margin: .6em 0 0; }

/* Нижняя полоса */
.kp-footer__bottom {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  justify-content: space-between;
  border-top: var(--stroke) solid var(--ink);
  padding-top: 12px;
}
.kp-footer__legal { list-style: none; display: flex; gap: 12px; margin: 0; padding: 0; }
.kp-footer__legal a { color: inherit; text-decoration: none; border-bottom: 2px solid transparent; }
.kp-footer__legal a:hover { border-color: var(--ink); }

/* Кнопка «Наверх» */
.kp-footer__totop {
  background: #fff;
  border: var(--stroke) solid var(--ink);
  border-radius: 12px;
  width: 42px; height: 42px; line-height: 1;
  display: grid; place-items: center;
  box-shadow: 6px 6px 0 var(--ink);
  font-weight: 700; cursor: pointer;
  transition: transform .1s ease, background .15s ease;
}
.kp-footer__totop:hover { background: var(--accent); transform: translateY(-2px); }

/* Адаптив */
@media (max-width: 600px) {
  .kp-footer__form { flex-direction: column; }
  .kp-input { width: 100%; box-sizing: border-box; }
  .kp-btn { width: 100%; box-sizing: border-box; margin-top: 8px; }
}

/* --- E. ФИЛЬТРЫ (ЕСЛИ ЕСТЬ НА СТРАНИЦЕ) --- */
#kp-guides .kp-filter {
  position: sticky; top: 70px; z-index: 40;
  background: #fff; border: 2px solid var(--ink); border-radius: 12px;
  padding: 10px; margin: 12px 0; box-shadow: 4px 4px 0 rgba(0,0,0,0.1);
}
.kp-chip {
  display: inline-flex; align-items: center; height: 32px; padding: 0 12px;
  border-radius: 99px; border: 2px solid var(--ink); background: #fff;
  font-weight: 700; font-size: 13px; cursor: pointer; margin-right: 8px;
  transition: 0.1s;
}
.kp-chip.is-active { background: var(--ink); color: #fff; }

/* КАРТОЧКИ НА ГЛАВНЙ */
.kp-artmenu { position: relative; margin: 28px 0 8px; }
.kp-artmenu__wrap { position: relative; padding: 0; }

.kp-artmenu__head {
  display: flex; align-items: center; justify-content: space-between; margin: 0 0 12px;
}
.kp-artmenu__title { 
  margin: 0; font: 800 24px/1.25 system-ui, -apple-system, Segoe UI, Roboto, Arial; color: #000; 
}

/* ==========================================================================
   ЛЕНТА КАРТОЧЕК (СЕТКА + ЖИРНЫЙ СКРОЛЛ)
   ========================================================================== */

.kp-artmenu__row {
  /* 1. ВЕРНУЛИ СЕТКУ (Чтобы карточки встали в ряд, а не на весь экран) */
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 320px); /* Фиксируем ширину карточек */
  gap: var(--kp-gap); /* Или поставьте gap: 20px; если переменная не задана */
  
  /* 2. НАСТРОЙКИ ПРОКРУТКИ */
  overflow-x: auto; 
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;

  /* 3. ОТСТУП ПОД СКРОЛЛ */
  /* Важно: делаем отступ снизу 24px, чтобы жирный скролл не перекрывал тень карточек */
  padding: 6px 2px 24px; 
  
  /* 4. ЦВЕТА СКРОЛЛА (Firefox) */
  scrollbar-width: auto; /* Делаем стандартную толщину, чтобы было видно */
  scrollbar-color: #ff8500 #ffffff; /* Ползунок / Трек */
}

/* --- СТИЛИ СКРОЛЛБАРА (Chrome, Safari) --- */

/* Сама полоса прокрутки (делаем её высокой/жирной) */
.kp-artmenu__row::-webkit-scrollbar {
  height: 16px; 
}

/* Фон (Трек) - Белый с черной рамкой */
.kp-artmenu__row::-webkit-scrollbar-track {
  background: #ffffff;
  border: 2px solid #000000;
  border-radius: 99px;
  margin: 0 20px; /* Отступ по краям */
}

/* Ползунок (Бегунок) - Оранжевый с черной рамкой */
.kp-artmenu__row::-webkit-scrollbar-thumb {
  background-color: #ff8500; 
  border: 3px solid #000000;
  border-radius: 99px;
}

/* Ползунок при наведении */
.kp-artmenu__row::-webkit-scrollbar-thumb:hover {
  background-color: #d97706;
}

/* КАРТОЧКА — комикс-стиль */
.kp-artcard {
  position: relative;
  display: flex; flex-direction: column;
  background: #fff;
  border: 4px solid #000;
  border-radius: 18px;
  text-decoration: none; color: #000;
  scroll-snap-align: start;
  outline: none;
  
  /* Тень по умолчанию */
  box-shadow: 6px 6px 0 #000;

  /* --- АНИМАЦИЯ (НОВОЕ) --- */
  /* Плавный переход для трансформации, тени и цвета */
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), 
              box-shadow 0.2s cubic-bezier(0.34, 1.56, 0.64, 1),
              border-color 0.2s ease;
  
  /* Чтобы зум картинки не вылезал за границы */
  overflow: hidden; 
}

/* --- HOVER ЭФФЕКТ (НОВОЕ) --- */
@media (hover: hover) {
  .kp-artcard:hover {
    /* Карточка "взлетает" вверх и влево */
    transform: translate(-4px, -4px);
    /* Тень растет, компенсируя полет */
    box-shadow: 10px 10px 0 #000;
    
    /* Опционально: можно красить рамку в акцент */
    /* border-color: var(--kp-accent); */
  }
}

/* --- ACTIVE ЭФФЕКТ (НАЖАТИЕ) --- */
.kp-artcard:active {
  /* Вдавливаем обратно */
  transform: translate(2px, 2px) !important; 
  box-shadow: 2px 2px 0 #000 !important;
  transition: transform 0.05s ease, box-shadow 0.05s ease;
}

/* Превью */
.kp-artcard__thumb {
  position: relative; overflow: hidden;
  /* Радиус чуть меньше, чтобы вписывался в бордер */
  border-bottom: 4px solid #000; /* Разделитель между фото и текстом */
  aspect-ratio: 16/9; background: #f3f5f7;
}

.kp-artcard__thumb img { 
  width: 100%; height: 100%; 
  object-fit: cover; display: block;
  
  /* --- АНИМАЦИЯ КАРТИНКИ --- */
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* При наведении на карточку зумим картинку */
.kp-artcard:hover .kp-artcard__thumb img {
  transform: scale(1.06);
}

/* Бейдж */
.kp-artcard__badge {
  position: absolute; top: 10px; left: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 28px; height: 28px; padding: 0 8px;
  border-radius: 8px; background: var(--kp-accent); color: #000;
  font-weight: 700; border: 3px solid #000;
  font-size: 12px; 
  z-index: 2;
  box-shadow: 2px 2px 0 #000; /* Добавил маленькую тень бейджу для стиля */
}

/* Заголовок */
.kp-artcard__title {
  padding: 14px 16px 16px; /* Чуть больше воздуха */
  font: 900 16px/1.3 system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color: #000; letter-spacing: .2px;
  
  /* Убрал обрезку, обычно заголовки лучше показывать целиком, или оставь как было */
  /* white-space: nowrap; overflow: hidden; text-overflow: ellipsis; */
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;

  transition: color 0.2s ease;
}

/* При наведении красим заголовок (опционально) */
.kp-artcard:hover .kp-artcard__title {
  color: #d97706; 
}

/* АДАПТИВ (твой код + мелкие правки) */
@media (max-width: 1200px) {
  .kp-artmenu__wrap { padding: 0 48px; }
  .kp-artmenu__row { grid-auto-columns: minmax(260px, 300px); }
}
@media (max-width: 960px) {
  .kp-artmenu__wrap { padding: 0 36px; }
  .kp-artmenu__row { gap: 14px; grid-auto-columns: 72vw; }
  .kp-artmenu__title { font-size: 22px; }
}
@media (max-width: 560px) {
  .kp-artmenu__wrap { padding: 0 16px; }
  .kp-artmenu__row { grid-auto-columns: 80vw; } /* Чуть шире на моб */
  .kp-artmenu__nav { display: none; }             
  .kp-artcard__title { font-size: 15px; padding: 12px; }
  
  /* На мобилках убираем ховер-эффекты, оставляем только active */
  .kp-artcard:hover { transform: none; box-shadow: 6px 6px 0 #000; }
  .kp-artcard:active { transform: scale(0.98); box-shadow: 2px 2px 0 #000; }
}

.kp-text-small {
  font-size: 0.875rem; 
  line-height: 1.4;
}

/* ---  FAQ  --- */
.kp-faq__title{font-size:22px;margin:0 0 16px}
.kp-faq__list{display:grid;gap:8px}
.kp-faq__item{
  border:1px solid var(--stroke,rgba(0,0,0,.12));
  border-radius:12px;
  background:var(--card,rgba(0,0,0,.03));
  overflow:hidden;
  transition:box-shadow .15s ease, transform .12s ease;
}
.kp-faq__item:hover{box-shadow:0 1px 0 rgba(0,0,0,.06);transform:translateY(-1px)}

/* Стили кнопки */
.kp-faq__q{
  cursor:pointer; padding:12px 16px; min-height: 50px;
  font-weight: 700; list-style:none; position:relative; color:inherit;
  display: flex; align-items: center; /* Центрируем текст */
}
.kp-faq__q::-webkit-details-marker{display:none}

/* Иконка справа */
.kp-faq__q::after{
  content:"❓"; /* Значок вопроса */
  position:absolute; right:16px; top:50%; transform:translateY(-50%);
  font-size: 1.2em;
}

/* --- МАГИЯ ПОДМЕНЫ ТЕКСТА (INLINE SWAP) --- */

/* 1. Прячем стандартный блок ответа снизу (он там только для SEO) */
.kp-faq--inline .kp-faq__a { display: none !important; }

/* 2. Настраиваем тексты внутри заголовка */
.kp-swap-q, .kp-swap-a {
  display: block;
  padding-right: 25px; /* Место под иконку */
}

/* 3. По умолчанию: Ответ скрыт */
.kp-swap-a { display: none; opacity: 0; }

/* 4. КОГДА ОТКРЫТО [open]: */
/* Скрываем вопрос */
.kp-faq--inline[open] .kp-swap-q { display: none; }

/* Показываем ответ с анимацией */
.kp-faq--inline[open] .kp-swap-a { 
  display: block; 
  opacity: 1; 
  font-weight: 400; /* Ответ делаем чуть тоньше, чтобы отличался */
  animation: kpFadeIn 0.3s ease;
}

/* Меняем иконку на стрелку возврата */
.kp-faq--inline[open] .kp-faq__q::after { content:"↩"; }

/* Анимация появления */
@keyframes kpFadeIn {
  from { opacity: 0; transform: translateY(2px); }
  to { opacity: 1; transform: translateY(0); }
}

/* =========================
   “Лист” комикса (фон, рамка)
   ========================= */
.kp-comic .kp-comic__bg{
  position:relative;
  background:
    radial-gradient(circle at 8px 8px,rgba(0,0,0,.06) 2px,transparent 2px) 0 0/16px 16px,
    var(--paper);
  border:var(--stroke) solid var(--ink);
  border-radius:calc(var(--radius) + 6px);
  padding:clamp(16px,3vw,28px);
}

/* =========================
   РЕМАРКА/ЛИД-блок
   ========================= */
.kp-comic .kp-comic__narration {
  --panel-width: 1200px; 

  background: var(--paper);
  border: var(--stroke) solid var(--ink);
  border-radius: 12px;
  box-shadow: 6px 6px 0 var(--ink);
  font-weight: 200;
  margin-bottom: var(--gap);
  margin-top: 1em;
  
  box-sizing: border-box;
  padding: 10px; 
}

.kp-comic .kp-comic__narration.is-wide {
  --panel-width: 1400px;
}

/* Отступы между параграфами */
.kp-comic__narration p + p { margin-top: 1.2em; }

/* --- АДАПТИВ (ПК) --- */
@media (min-width: 1024px){
  .kp-comic .kp-comic__narration {
    max-width: var(--panel-width); 
    
    margin-left: auto;
    margin-right: auto;
    
    padding: 25px; 
  }
}

/* --- АДАПТИВ (МОБИЛЬНЫЙ) --- */
@media (max-width: 767.98px) {
  .kp-comic .kp-comic__narration {
    margin-left: 0;
    margin-right: 0;
  }
}
/* =========================
   Сетка карточек
   ========================= */
.kp-comic .kp-comic__panels{ display:grid; grid-template-columns:1fr; gap:var(--gap); }
/* Наклон карточек к центру */
@media (min-width:860px){
  .kp-comic .kp-comic__panels{ grid-template-columns:1fr 1fr; }
}
.kp-comic__panels + .kp-comic__panels { margin-top: 32px; }

/* =========================
   Карточка: база + “въезд” при скролле
   ========================= */
.kp-comic .kp-comic__panel{
  background:var(--paper);
  border:var(--stroke) solid var(--ink);
  border-radius:var(--radius);
  box-shadow:6px 6px 0 var(--ink);
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:260px;
}

/* анимация вспышки */
@keyframes kp-ping {
  0%   { box-shadow:6px 6px 0 var(--ink); }
  30%  { box-shadow:0 0 0 4px var(--ink), 0 0 0 10px var(--accent), 6px 6px 0 var(--ink); }
  100% { box-shadow:6px 6px 0 var(--ink); }
}

/* если URL совпадает с id карточки */
.kp-comic__panel:target {
  animation: kp-ping 10s ease;
}
/* =========================
   Медиа в карточке
   ========================= */
.kp-comic .kp-comic__media{
  --radius: 12px;              /* настраиваемый радиус */
  border-radius: var(--radius);
  overflow: hidden;            /* обрезаем содержимое по радиусу */
  aspect-ratio: 16/9;
  background: #f2f2f2;
  position: relative;
  margin:15px 0 15px
}
.kp-comic .kp-comic__media img{
  width:100%; height:100%; object-fit:cover; display:block;
}
/* =========================
   ССЫЛКИ В СТАТЬЕ
========================= */
.kp-link{
  color:#0057ff !important;
  font-weight: 700;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:.15em;
  transition:
    color .15s ease,
    background .15s ease,
    box-shadow .15s ease,
    text-decoration-thickness .15s ease;
}

.kp-link:hover{
  color:#003ec9 !important;               /* чуть темнее */
  background:rgba(0,87,255,.08);          /* лёгкая подсветка */
  box-shadow:0 0 0 3px rgba(0,87,255,.08);/* мягкий “ореол” */
  border-radius:4px;                      /* чтобы подсветка была аккуратной */
  text-decoration-thickness:3px;          /* подчёрк чуть жирнее */
}
/* =========================
   CTA-кнопка
   ========================= */
.kp-comic .kp-comic__cta,
.kp-comic .kp-comic__cta:link,
.kp-comic .kp-comic__cta:visited,
.kp-comic .kp-comic__cta:hover,
.kp-comic .kp-comic__cta:active{
  display:inline-block; margin-top:var(--gap);
  text-decoration:none; color:var(--ink) !important; -webkit-text-fill-color:var(--ink) !important;
  background:var(--accent);
  border:var(--stroke) solid var(--ink); border-radius:14px;
  padding:.7em 1rem; box-shadow:6px 6px 0 var(--ink);
  font-weight: 400; transform:translateY(0); transition:transform .15s ease;
}
.kp-comic .kp-comic__cta:hover{ transform:translateY(-2px); }
.kp-comic .kp-comic__cta *, .kp-comic .kp-comic__cta svg, .kp-comic .kp-comic__cta svg *{
  color:currentColor !important; fill:currentColor !important; stroke:currentColor !important;
}
/* =========================
   Respect: reduced motion
   ========================= */
@media (prefers-reduced-motion:reduce){
  .kp-comic .kp-comic__panel{ transition:none; transform:none; translate:0 0; opacity:1; }
  .kp-comic .kp-comic__cta{ transition:none; }
}
/* CSS ДЛЯ КАРТ НА САЙТЕ */
/* --- БАЗОВЫЕ СТИЛИ --- */
.kp-map-wrapper {
    position: relative;
    width: 100%;
    background: #000;
    border: 2px solid #000;
    box-shadow: 6px 6px 0px rgba(0,0,0,0.2);
    overflow: hidden;
    aspect-ratio: 16/9; 
}

/* Режим Fullscreen */
.kp-map-wrapper.is-fullscreen {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 99999;
    width: 100vw;
    height: 100dvh; 
        
    /* 2. ВАЖНО: Включаем режим, где padding "съедает" место внутри высоты, а не снаружи */
    box-sizing: border-box; 
    padding-bottom: calc(env(safe-area-inset-bottom) + 0px);
        
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: #000;
}

/* 4. ВАЖНО: Заставляем Iframe слушаться этого отступа */
.kp-map-wrapper.is-fullscreen .kp-map-iframe {
    height: 100%; /* Теперь 100% — это высота МИНУС наш padding */
    width: 100%;
    position: relative; /* Меняем с absolute на relative, чтобы он уважал границы */
}

/* ПРЕВЬЮ (Обложка) */
.kp-map-preview {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    z-index: 10;
    display: flex;
    /* По умолчанию (ПК) - по центру */
    justify-content: center;
    align-items: center;
    transition: opacity 0.3s;
}
.kp-map-wrapper.is-loaded .kp-map-preview {
    opacity: 0;
    pointer-events: none;
}

/* КНОПКА ЗАГРУЗКИ */
.kp-map-load-btn {
    background: #FF8500;
    color: #000;
    font-weight: 900;
    text-transform: uppercase;
    padding: 15px 30px;
    border: 3px solid #000;
    box-shadow: 4px 4px 0px #000;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: transform 0.1s;
}
.kp-map-preview:hover .kp-map-load-btn { transform: scale(1.05); }

.kp-map-iframe {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    border: none;
    background: #111;
    z-index: 5;
}

/* КНОПКА СВЕРНУТЬ/РАЗВЕРНУТЬ (В углу) */
.kp-fs-btn {
    position: absolute;
    top: 15px; right: 15px;
    width: 40px; height: 40px;
    background: #fff;
    border: 2px solid #000;
    box-shadow: 2px 2px 0px #000;
    z-index: 20;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}
.kp-fs-btn:hover { background: #f0f0f0; }
.kp-map-wrapper.is-fullscreen .kp-fs-btn { background: #FF8500; }

/* --- МОБИЛЬНЫЙ АДАПТИВ --- */
@media screen and (max-width: 900px) {
    .kp-map-preview {
        padding: 0;
    }
        
    /* 2. Кнопку позиционируем жестко руками */
    .kp-map-preview .kp-map-load-btn {
        position: absolute;
            
        left: 10px;
        bottom: 10px;
            
        margin: 0;
        transform: none;
    }
        
    /* 3. Кнопка закрытия (без изменений) */
    .kp-map-wrapper.is-fullscreen .kp-fs-btn {
        top: 80px; 
        right: 15px;
    }
}


/* ДЛЯ РЕКЛАМЫ НА СТРАНИЦЕ */
.kp-alert-warning {
  background-color: #fff8e1;
  border-left: 4px solid #f5c518;
  color: #333;
  padding: 15px;
  margin-bottom: 20px;
  border-radius: 4px;
  font-size: 0.95rem;
  line-height: 1.5;
}
  
/* Блок доверия (оплата/чек) */
.kp-trust-box {
  display: flex;
  align-items: center;
  background-color: #f0fdf4; /* Светло-зеленый */
  border: 1px solid #bbf7d0;
  padding: 12px 16px;
  border-radius: 8px;
  margin: 20px 0;
  color: #166534;
}
  
.kp-trust-icon {
  margin-right: 12px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
  
/* Настройка SVG иконки */
.kp-trust-icon svg {
  width: 32px;
  height: 32px;
  fill: #166534; /* Цвет иконки */
}
  
/* Бейдж выгоды */
.kp-badge-hot {
  background-color: #dc2626;
  color: white;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.8em;
  font-weight: bold;
  text-transform: uppercase;
  vertical-align: middle;
  margin-left: 8px;
}
 /* Кнопки контактов */
.kp-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-top: 15px;
}
@media (max-width: 600px) { .kp-cta-grid { grid-template-columns: 1fr; } }
  
.kp-btn-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 20px;
  border-radius: 8px;
  text-decoration: none !important;
  font-weight: 400;
  color: white !important;
  transition: opacity 0.2s;
  text-align: center;
}
.kp-btn-contact:hover { opacity: 0.9; }
.kp-btn-tg { background-color: #2481cc; }
.kp-btn-wa { background-color: #25D366; }
