/* ============================================================================
 *  Home v7 (donatov-filter)
 *  Scoped under .page-home-v7 to avoid affecting other pages.
 *  Source mockup: /public/mock/home-v7.html (после полировки 5 + brand-frame).
 *  С шагом «unification header/footer» (cv 4.3.0) шапка/футер вынесены
 *  в /css/components/header_footer_v7.css и применяются на ВСЕХ страницах
 *  через partials/header.ejs. Здесь — только .page-home-v7 specific правила.
 * ============================================================================ */

body {
  font-family: 'Nunito', system-ui, sans-serif;
  font-weight: 700;
  -webkit-font-smoothing: antialiased;
}

.page-home-v7 {
  background: #1a0533;
  color: #fff;
  min-height: 100%;
  font-family: 'Nunito', system-ui, sans-serif;
}
.page-home-v7 a { color: inherit; text-decoration: none; }
.page-home-v7 .v7-main * { box-sizing: border-box; }


/* === MAIN === */
.page-home-v7 .v7-main {
  max-width: 1000px;
  margin: 0 auto;
  padding: 24px;
  color: #fff;
}

/* === HERO CAROUSEL === */
.page-home-v7 .hc {
  position: relative;
  margin-bottom: 22px;
  overflow: hidden;
  border-radius: 14px;
}
.page-home-v7 .hc-track {
  display: flex;
  transition: transform 0.5s cubic-bezier(0.32, 0.72, 0, 1);
  will-change: transform;
}
.page-home-v7 .hc-slide {
  flex: 0 0 100%;
  height: 160px;
  /* padding-inline 72px: prev/next-стрелки занимают зону 12..48px от края `.hc` —
     текст начинается на 72px (gap ≥24px от стрелки), не перекрывается. На мобиле
     (≤767px) стрелки скрыты → там padding меньше (16px 18px). */
  padding: 22px 72px;
  display: flex; flex-direction: column; justify-content: space-between;
  position: relative; overflow: hidden;
}
.page-home-v7 .hc-slide-bg-icon {
  position: absolute; right: -16px; bottom: -16px;
  font-size: 140px; opacity: 0.10; color: #fff; line-height: 1;
  pointer-events: none;
}
.page-home-v7 .hc-tag {
  display: inline-block; align-self: flex-start;
  padding: 3px 9px; border-radius: 6px;
  background: rgba(255,255,255,0.18);
  font-size: 10px; font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase;
}
.page-home-v7 .hc-title { font-size: 22px; font-weight: 900; line-height: 1.15; }
.page-home-v7 .hc-sub { font-size: 12.5px; color: rgba(255,255,255,0.85); margin-top: 5px; font-weight: 700; }
.page-home-v7 .hc-cta {
  display: inline-flex; align-items: center; gap: 5px;
  align-self: flex-start;
  padding: 7px 15px; border-radius: 9px;
  background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.25);
  font-size: 12px; font-weight: 800; color: #fff;
  transition: background 0.15s;
}
.page-home-v7 .hc-cta:hover { background: rgba(255,255,255,0.28); }
.page-home-v7 .hc-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(0,0,0,0.55);
  border: 1px solid rgba(255,255,255,0.18);
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; font-size: 13px;
  cursor: pointer;
  z-index: 5;
  transition: background 0.15s;
}
.page-home-v7 .hc-arrow:hover { background: rgba(124,58,237,0.7); }
.page-home-v7 .hc-prev { left: 12px; }
.page-home-v7 .hc-next { right: 12px; }
.page-home-v7 .hc-dots {
  position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 6px; z-index: 5;
}
.page-home-v7 .hc-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: rgba(255,255,255,0.4);
  transition: background 0.15s, transform 0.15s;
  cursor: pointer;
  border: 0; padding: 0;
}
.page-home-v7 .hc-dot.is-active { background: #fff; transform: scale(1.3); }

/* === QUICK-ICONS === */
.page-home-v7 .qi { margin-bottom: 22px; }
.page-home-v7 .qi-track {
  display: flex; gap: 12px;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 4px 0 12px;
}
.page-home-v7 .qi-track::-webkit-scrollbar { display: none; }
.page-home-v7 .qi-item {
  flex: 0 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  width: 78px;
  cursor: pointer;
  background: none; border: 0; padding: 0;
  color: inherit;
  font: inherit;
}
.page-home-v7 .qi-tile {
  position: relative;
  width: 72px; height: 72px;
  border-radius: 18px;
  background: rgba(255,255,255,0.06);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  transition: background 0.18s, transform 0.18s;
}
/* Hover: осветляем фон тайла + лёгкий scale. БЕЗ filter: brightness (антипаттерн №5 —
   осветляет лого внутри тайла). */
.page-home-v7 .qi-item:hover .qi-tile {
  transform: scale(1.05);
  background: rgba(255,255,255,0.10);
}
.page-home-v7 .qi-tile img {
  width: 100%; height: 100%;
  object-fit: contain;
  padding: 10px;
  box-sizing: border-box;
  display: block;
  max-width: 100%;
}
.page-home-v7 .qi-tile--cover img { padding: 0; object-fit: cover; }
.page-home-v7 .qi-tile--fa { font-size: 26px; color: #c4b5fd; }

/* §100 — Apple-тайл в QI-ленте: SVG apple.svg занимает только ~40% площади из-за
   собственного viewBox-маржина (24×24, apple shape ~18×24) + 8px tile padding.
   Соседние cover-тайлы (Free Fire/PUBG/Genshin) заполняют 100% — Apple выпадает.
   Убираем padding и слегка увеличиваем — становится App-Store-style тяжелее. */
.page-home-v7 .qi-item[data-slug="apple"] .qi-tile img {
    padding: 0;
    transform: scale(1.15);
}
.page-home-v7 .qi-item.is-active .qi-tile {
  box-shadow: inset 0 0 0 2px #7c3aed;
}
.page-home-v7 .qi-name {
  font-size: 11px; font-weight: 700; line-height: 1.2;
  color: rgba(255,255,255,0.85);
  text-align: center;
  max-width: 78px; word-wrap: break-word;
}

/* === FILTER BAR === */
.page-home-v7 .fl-bar {
  position: sticky; top: 62px; z-index: 50;
  margin: 0 -22px 10px;
  padding: 12px 22px 10px;
  background: #1a0533;
}
.page-home-v7 .fl-row {
  display: flex; gap: 7px;
  flex-wrap: wrap;
}
.page-home-v7 .fl-row-1 { padding-bottom: 0; }
.page-home-v7 .fl-row-2 {
  margin-top: 9px; padding-top: 9px;
  border-top: 1px solid rgba(255,255,255,0.06);
  max-height: 0; overflow: hidden;
  transition: max-height 0.3s ease, margin-top 0.3s ease, padding-top 0.3s ease, border-top-color 0.3s ease;
  border-top-color: transparent;
  justify-content: center; /* level-2 chips центрируются (level-1 остаётся flex-start) */
}
.page-home-v7 .fl-row-2.is-open {
  max-height: 200px;
  border-top-color: rgba(255,255,255,0.06);
}
.page-home-v7 .fl-tab {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; gap: 5px;
  height: 32px; padding: 0 13px;
  border-radius: 9px;
  font-size: 12px; font-weight: 800;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(124,58,237,0.22);
  color: rgba(255,255,255,0.85);
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, color 0.18s;
}
.page-home-v7 .fl-tab:hover {
  background: rgba(124,58,237,0.15);
  border-color: rgba(124,58,237,0.45);
  color: #fff;
}
/* HARD-RESET активного фильтр-таба: ТОЛЬКО чистый linear-gradient.
   ⚠ НЕ возвращать `border-color: transparent` поверх унаследованного `border: 1px solid`
   от `.fl-tab` — антипаттерн №6: 1px transparent border + дефолтные
   background-origin: padding-box / background-repeat: repeat → градиент тайлится, в 1px
   border-ring видны обёрнутые/зеркальные цвета → дискретная цветная полоса по периметру.
   `border: 0` → padding-box ≡ border-box, нет тайлинга. box-sizing уже border-box
   (см. `.page-home-v7 .v7-main *`), высота 32px остаётся той же. */
.page-home-v7 .fl-tab.is-active {
  background: linear-gradient(135deg, #7c3aed 0%, #ec4899 100%);
  background-color: transparent;
  background-clip: border-box;
  background-origin: border-box;
  background-repeat: no-repeat;
  border: 0;
  color: #fff;
  box-shadow: none;
  filter: none;
}
.page-home-v7 .fl-tab.is-active::before,
.page-home-v7 .fl-tab.is-active::after { content: none !important; }
.page-home-v7 .fl-tab:focus-visible {
  outline: 2px solid rgba(124,58,237,0.6);
  outline-offset: 2px;
}
.page-home-v7 .fl-count {
  display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 800; line-height: 1;
  color: rgba(255,255,255,0.6);
  margin-left: 1px;
}
.page-home-v7 .fl-tab.is-active .fl-count {
  color: #fff;
  opacity: 0.75;
}
.page-home-v7 .fl-tab--lvl2 { height: 28px; padding: 0 11px; font-size: 11px; }
.page-home-v7 .fl-tab-ic {
  font-size: 1.05em; line-height: 1;
  display: inline-flex; align-items: center;
}

/* === GRID-SEARCH === */
.page-home-v7 .gs-wrap {
  display: flex; justify-content: center;
  margin: 8px 0 14px;
}
.page-home-v7 .gs-wrap.is-hidden { display: none; }
.page-home-v7 .gs-field {
  position: relative;
  width: 56%;
  min-width: 260px;
  max-width: 520px;
  display: flex; align-items: center; gap: 9px;
  height: 38px; padding: 0 13px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 10px;
  transition: border-color 0.18s, background 0.18s;
}
/* Focus-state — на контейнере (ярче рамка + фон + лёгкий outer glow), не на input. */
.page-home-v7 .gs-field:focus-within {
  border-color: rgba(124,58,237,0.7);
  background: rgba(124,58,237,0.08);
  box-shadow: 0 0 0 3px rgba(124,58,237,0.12);
}
.page-home-v7 .gs-field > i { color: #a78bfa; font-size: 12.5px; flex-shrink: 0; }
/* input внутри — полный сброс: никакого собственного border/outline/box-shadow/фона. */
.page-home-v7 .gs-field input {
  flex: 1;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0;
  color: #fff; font: inherit; font-weight: 700; font-size: 13px;
}
.page-home-v7 .gs-field input:focus,
.page-home-v7 .gs-field input:focus-visible {
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.page-home-v7 .gs-field input::placeholder { color: rgba(255,255,255,0.6); }
.page-home-v7 .gs-clear {
  width: 22px; height: 22px; border-radius: 7px;
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.6); font-size: 10px;
  display: none; align-items: center; justify-content: center;
  transition: background 0.15s, color 0.15s;
  flex-shrink: 0;
  cursor: pointer;
  border: 0; padding: 0;
}
.page-home-v7 .gs-clear:hover { background: rgba(124,58,237,0.18); color: #fff; }
.page-home-v7 .gs-clear.is-visible { display: inline-flex; }

/* === GRID === */
.page-home-v7 .g-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px 14px;
  margin-bottom: 30px;
}
@media (max-width: 1024px) { .page-home-v7 .g-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 800px)  { .page-home-v7 .g-grid { grid-template-columns: repeat(3, 1fr); gap: 18px 14px; } }
@media (max-width: 600px)  { .page-home-v7 .g-grid { grid-template-columns: repeat(2, 1fr); gap: 14px 10px; } }

.page-home-v7 .g-card {
  display: flex; flex-direction: column; gap: 8px;
  transition: transform 0.2s, opacity 0.22s ease;
}
.page-home-v7 .g-card:hover { transform: translateY(-2px); }
.page-home-v7 .g-card.is-hidden { display: none; }

.page-home-v7 .g-card-frame {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 18px;
  overflow: hidden;
  transition: transform 0.2s;
  background: linear-gradient(135deg, #2a1454, #15082a);
}
.page-home-v7 .g-card:hover .g-card-frame { transform: scale(1.015); }

/* --cover — game-art (Free Fire/PUBG/HoK/ML/Delta/Lords/Doomsday/Undawn): полное заполнение */
.page-home-v7 .g-card-art--cover {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
/* --contain — transparent logos (Steam/Xbox/Razer/EA/Roblox/Minecraft/etc.):
   логотип ~65% по центру frame, по краям виден бренд-цвет. */
.page-home-v7 .g-card-art--contain {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 65%; height: 65%;
  object-fit: contain;
  display: block;
}
.page-home-v7 .g-card-art--fa {
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 44px; color: rgba(255,255,255,0.9);
}
.page-home-v7 .g-card-badge {
  position: absolute; bottom: 10px; left: 10px; z-index: 2;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 10px;
  background: rgba(0,0,0,0.65);
  border-radius: 8px;
  font-size: 12px; font-weight: 800; color: #fff;
  letter-spacing: 0.1px;
  line-height: 1;
}
.page-home-v7 .g-card-title {
  font-size: 13px; font-weight: 800; line-height: 1.25;
  color: #fff;
  text-align: center;
  padding: 0 4px;
}

/* Empty state */
.page-home-v7 .g-empty {
  display: none;
  grid-column: 1 / -1;
  padding: 60px 20px;
  text-align: center;
  color: rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.06);
  border: 1px dashed rgba(124,58,237,0.25);
  border-radius: 16px;
}
.page-home-v7 .g-empty i { font-size: 32px; color: rgba(124,58,237,0.55); margin-bottom: 12px; }
.page-home-v7 .g-empty-title { font-size: 16px; font-weight: 800; color: rgba(255,255,255,0.85); margin-bottom: 4px; }
.page-home-v7 .g-empty-sub { font-size: 13px; }
.page-home-v7 .g-grid.is-empty .g-empty { display: block; }

/* === TRUST === */
.page-home-v7 .v7-trust {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin: 28px 0;
}
.page-home-v7 .v7-trust-card {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  transition: border-color 0.2s, background 0.2s;
}
.page-home-v7 .v7-trust-card:hover { border-color: rgba(124,58,237,0.35); background: rgba(124,58,237,0.05); }
.page-home-v7 .v7-trust-icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: rgba(124,58,237,0.15);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; color: #c4b5fd; flex-shrink: 0;
}
.page-home-v7 .v7-trust-text { display: flex; flex-direction: column; gap: 2px; }
.page-home-v7 .v7-trust-title { font-size: 13px; font-weight: 900; color: #fff; }
.page-home-v7 .v7-trust-sub { font-size: 11.5px; color: rgba(255,255,255,0.6); font-weight: 700; }

/* ============================================================================
 * === MOBILE ADAPT (≤767px) — полная мобильная адаптация (cv 4.4.0) ===
 * Viewport-таргеты: 375 (SE/12mini) · 390 (12/13/14) · 414 (11ProMax/XR).
 * Шапка/футер v7 — в header_footer_v7.css (применяются на всех страницах).
 * ============================================================================ */
@media (max-width: 767px) {
  /* §98 — compaction: top/inter-block paddings/margins сжаты ~1.7x */
  .page-home-v7 .v7-main { padding: 8px 12px 22px; }

  /* --- HERO CAROUSEL --- */
  .page-home-v7 .hc { margin-bottom: 10px; border-radius: 14px; }
  .page-home-v7 .hc-slide {
    height: auto;
    aspect-ratio: 16 / 9;
    min-height: 168px;
    max-height: 280px; /* кап для широких viewport (iPad portrait 767px) */
    padding: 16px 18px;
  }
  .page-home-v7 .hc-tag { font-size: 13px; padding: 4px 9px; }
  .page-home-v7 .hc-title { font-size: 20px; }
  .page-home-v7 .hc-sub { font-size: 13px; margin-top: 4px; }
  .page-home-v7 .hc-cta { font-size: 13px; padding: 8px 14px; }
  /* стрелки prev/next скрыты на мобиле — только swipe */
  .page-home-v7 .hc-arrow { display: none !important; }
  .page-home-v7 .hc-dots { bottom: 10px; gap: 8px; }
  .page-home-v7 .hc-dot { width: 12px; height: 12px; }
  .page-home-v7 .hc-dot.is-active { transform: scale(1.3); }

  /* --- QUICK-ICONS — горизонтальный скролл, bleed к краям экрана --- */
  .page-home-v7 .qi {
    margin-bottom: 8px;
    /* §101 — scroll hint: fade-gradient + chevron на правом краю,
       показывает что лента листается горизонтально (всего 12 тайлов, видно ~5). */
    position: relative;
  }
  /* Fade-градиент справа — тайлы «уходят» в фон, hint что есть продолжение. */
  .page-home-v7 .qi::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 18px;             /* не накрываем подпись под последним тайлом */
    right: -12px;             /* совпадает с margin: 0 -12px у .qi-track */
    width: 72px;
    background: linear-gradient(to right,
      rgba(26,5,51,0)   0%,
      rgba(26,5,51,0.4) 35%,
      rgba(26,5,51,0.95) 80%);
    pointer-events: none;
    z-index: 2;
  }
  /* Чевн-индикатор «листай вправо» — круглая «pill»-кнопка поверх fade. */
  .page-home-v7 .qi::before {
    content: '\f054';         /* fa-chevron-right */
    font-family: 'Font Awesome 7 Free';
    font-weight: 900;
    position: absolute;
    right: 4px;
    top: 32px;                /* по центру тайла 60×60 (padding-top 2 + tile/2 30) */
    transform: translateY(-50%);
    width: 24px; height: 24px;
    border-radius: 50%;
    background: rgba(124,58,237,0.9);
    border: 1px solid rgba(255,255,255,0.3);
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; color: #fff; line-height: 1;
    padding-left: 1px;        /* визуально центрируем chevron-right (форма с лёгким сдвигом) */
    pointer-events: none;
    z-index: 3;
    box-shadow: 0 2px 8px rgba(0,0,0,0.45);
    animation: qiHintNudge 1.6s ease-in-out 0.4s 3 both;   /* 3 цикла мягкого пульса, затем статика */
  }
  @keyframes qiHintNudge {
    0%, 100% { transform: translateY(-50%) translateX(0); }
    50%      { transform: translateY(-50%) translateX(4px); }
  }
  .page-home-v7 .qi-track {
    gap: 10px;
    margin: 0 -12px;
    padding: 2px 12px 6px;
  }
  .page-home-v7 .qi-item { width: 68px; }
  .page-home-v7 .qi-tile { width: 60px; height: 60px; border-radius: 16px; }
  .page-home-v7 .qi-tile img { padding: 8px; }
  .page-home-v7 .qi-tile--fa { font-size: 24px; }
  .page-home-v7 .qi-name {
    font-size: 13px; max-width: 68px; line-height: 1.15;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }

  /* --- FILTER BAR — §98a: grid 2 cols × 3 rows, чипы крупнее (touch target ≥40px).
       §103 пытался залипить блок наверху (sticky+top 56px). §106 (переоценка UX-интента,
       не баг): на mobile сетка чипов 3 ряда × 2 колонки занимает 25-30% viewport и
       перекрывает карточки grid при скролле — возвращаемся в общий поток.
       Desktop ≥768px остаётся sticky (line 168 — не задет). --- */
  .page-home-v7 .fl-bar {
    position: static;
    top: auto;
    z-index: auto;
    isolation: auto;
    box-shadow: none;
    margin: 0 -12px 8px;
    padding: 6px 12px 4px;
    background: #1a0533;
  }
  .page-home-v7 .fl-row {
    flex-wrap: wrap;
    overflow-x: visible;
    gap: 8px;
    align-items: stretch;
    min-height: 0;
  }
  .page-home-v7 .fl-row-1 {
    display: grid;
    grid-template-columns: 1fr 1fr;   /* 2 чипа в ряд, ровно по 50% */
    gap: 8px;
    padding-bottom: 0;
  }
  .page-home-v7 .fl-row-2 {
    justify-content: flex-start;
    margin-top: 6px; padding-top: 6px;
  }
  .page-home-v7 .fl-row-2.is-open { max-height: 200px; }
  .page-home-v7 .fl-row-1 .fl-tab {
    width: 100%;
    height: auto;
    min-height: 46px;
    padding: 6px 12px;
    font-size: 13px;
    border-radius: 10px;
    gap: 8px;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
  }
  .page-home-v7 .fl-tab--lvl2 { height: 28px; padding: 0 9px; font-size: 11.5px; }
  .page-home-v7 .fl-count { font-size: 12px; margin-left: auto; flex-shrink: 0; }
  .page-home-v7 .fl-tab-ic { font-size: 1.1em; flex-shrink: 0; line-height: 1; }
  .page-home-v7 .fl-tab-lbl {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
    line-height: 1.15;
    white-space: normal;
    /* clamp до 2 строк — на узких viewport длинные лейблы переносятся вместо ellipsis */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* --- GRID-SEARCH (когда активно) --- */
  .page-home-v7 .gs-wrap { margin: 0 0 8px; }
  .page-home-v7 .gs-field {
    width: 100%; min-width: 0; max-width: none;
    height: 44px; padding: 0 14px;
    border-radius: 10px;
  }
  .page-home-v7 .gs-field > i { font-size: 14px; }
  /* 16px шрифт — иначе iOS зумит viewport при фокусе на input */
  .page-home-v7 .gs-field input { font-size: 16px; }
  .page-home-v7 .gs-clear { width: 26px; height: 26px; }

  /* --- CARD --- */
  .page-home-v7 .g-card { gap: 6px; }
  .page-home-v7 .g-card-frame { border-radius: 16px; }
  /* badge currency — верхний правый угол на мобиле */
  .page-home-v7 .g-card-badge {
    top: 6px; right: 6px; left: auto; bottom: auto;
    padding: 3px 6px; font-size: 11px; border-radius: 7px;
  }
  .page-home-v7 .g-card-art--fa { font-size: 38px; }
  .page-home-v7 .g-card-title {
    font-size: 13px; padding: 6px 2px 0;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* --- EMPTY STATE --- */
  .page-home-v7 .g-empty { padding: 40px 16px; }
  .page-home-v7 .g-empty-title { font-size: 15px; }
  .page-home-v7 .g-empty-sub { font-size: 13px; }

  /* --- TRUST --- */
  .page-home-v7 .v7-trust { grid-template-columns: 1fr; gap: 10px; margin: 22px 0; }
  .page-home-v7 .v7-trust-title { font-size: 14px; }
  .page-home-v7 .v7-trust-sub { font-size: 13px; }
}
