/* === HOME BLOCKS — scoped to .home-portal === */

.home-portal,
.home-portal *{ box-sizing: border-box; }

/* === Общая раскладка главной === */
.home-portal{
  padding: 0 0 34px;
}

/* layout */
.home-portal .home-layout{
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(300px, 1.12fr);
  gap: 26px;
  align-items: flex-start;
}

.home-portal .home-layout.no-sidebar{
  grid-template-columns: minmax(0, 1fr);
}

/* На планшетах и телефонах — одна колонка */
@media (max-width: 900px){
  .home-portal .home-layout{ grid-template-columns: 1fr; }
}

/* === Базовый стиль блока === */
.home-portal .home-block{
  --block-bg: rgba(255,255,255,.78);
  --block-accent: var(--theme-color, #0088cc);
  --block-text: var(--text, #111827);
  --block-muted: var(--muted, #6b7280);
  --block-border: rgba(190, 205, 227, 0.32);

  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.74));
  border-radius: 22px;
  box-shadow:
    0 14px 34px rgba(71, 85, 105, 0.06),
    inset 0 1px 0 rgba(255,255,255,.64);
  border: 1px solid var(--block-border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 18px 20px 20px;
  margin-bottom: 18px;
  transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.home-portal .home-block:hover{
  box-shadow:
    0 18px 40px rgba(71, 85, 105, 0.08),
    inset 0 1px 0 rgba(255,255,255,.70);
  border-color: rgba(167, 188, 221, 0.44);
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.78));
}

.home-portal .home-sidebar .home-block{
  padding: 14px 16px 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.80), rgba(255,255,255,.72));
  box-shadow:
    0 12px 28px rgba(71,85,105,.05),
    inset 0 1px 0 rgba(255,255,255,.58);
}

/* заголовок блока */
.home-portal .home-block-title{
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  font-size: 1.14rem;
  font-weight: 900;
  color: #1f4f86;
  letter-spacing: -.012em;
}

/* подпись под заголовком (если понадобится) */
.home-portal .home-block-subtitle{
  margin-top: -6px;
  margin-bottom: 10px;
  font-size: 0.85rem;
  color: var(--block-muted);
}

/* контейнер внутри блока */
.home-portal .home-block-body{ width: 100%; }

/* ссылки "Все ..." */
.home-portal .home-block-footer{
  margin-top: 14px;
  text-align: right;
}
.home-portal .home-block-footer .more-link{
  font-size: 0.9rem;
  font-weight: 800;
  color: #315f98;
  text-decoration: none;
}
.home-portal .home-block-footer .more-link:hover{ text-decoration: underline; }

/* скрытие на мобилке */
.home-portal .home-block.hide-on-mobile{ display: block; }
@media (max-width: 768px){
  .home-portal .home-block.hide-on-mobile{ display: none !important; }
}

/* Для sidebar-блоков можно чуть уменьшить заголовок */
.home-portal .home-sidebar .home-block-title{ font-size: 1.02rem; }

/* ====== БЛОК: закреплённая новость ====== */
.home-portal .home-block-pinned_news .pinned-layout{
  display: flex;
  gap: 18px;
  align-items: flex-start;
}

.home-portal .home-block-pinned_news .pinned-thumb{
  flex: 0 0 320px;
  max-width: 360px;
}

.home-portal .home-block-pinned_news .pinned-thumb img{
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 10px 22px rgba(71,85,105,.06);
}

.home-portal .home-block-pinned_news .pinned-body{
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.home-portal .home-block-pinned_news .pinned-title a{
  font-size: 1.16rem;
  font-weight: 900;
  color: var(--block-text);
  text-decoration: none;
  line-height: 1.25;
}
.home-portal .home-block-pinned_news .pinned-title a:hover{ text-decoration: underline; }

.home-portal .home-block-pinned_news .pinned-meta{
  font-size: 0.85rem;
  color: var(--block-muted);
}

.home-portal .home-block-pinned_news .pinned-desc{
  font-size: 0.95rem;
  color: #374151;
  line-height: 1.58;
}

.home-portal .home-block-pinned_news .pinned-readmore{
  margin-top: auto;
  font-size: 0.9rem;
}
.home-portal .home-block-pinned_news .pinned-readmore a{
  color: var(--block-accent);
  text-decoration: none;
  font-weight: 700;
}
.home-portal .home-block-pinned_news .pinned-readmore a:hover{ text-decoration: underline; }

/* pinned в сайдбаре — компактный режим */
.home-portal .home-sidebar .home-block-pinned_news .pinned-layout{ flex-direction: column; }
.home-portal .home-sidebar .home-block-pinned_news .pinned-thumb{
  flex: 0 0 auto;
  max-width: 100%;
}
.home-portal .home-sidebar .home-block-pinned_news .pinned-thumb img{ height: 160px; }

/* pinned на мобиле — тоже колонкой */
@media (max-width: 900px){
  .home-portal .home-block-pinned_news .pinned-layout{ flex-direction: column; }
  .home-portal .home-block-pinned_news .pinned-thumb{
    flex: 0 0 auto;
    max-width: 100%;
  }
  .home-portal .home-block-pinned_news .pinned-thumb img{
    height: auto;
    max-height: 260px;
  }
}

/* ====== pinned: список остальных ====== */
.home-portal .home-block-pinned_news .pinned-more{
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.home-portal .home-block-pinned_news .pinned-more-item{
  border-top: 1px solid rgba(229, 231, 235, 0.9);
  padding-top: 8px;
}
.home-portal .home-block-pinned_news .pinned-more-item a{
  text-decoration: none;
  color: var(--block-text);
  font-weight: 700;
}
.home-portal .home-block-pinned_news .pinned-more-item a:hover{ text-decoration: underline; }

/* ====== БЛОК: рекламные слоты на главной ====== */
.home-portal .home-block-stats_row .stats-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.home-portal .home-block-stats_row .stat-item{
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
  overflow: hidden;
  background: var(--home-card-bg, rgba(255,255,255,.76));
  border-radius: var(--home-radius-lg, 18px);
  border: 1px solid rgba(155,176,211,.22);
  box-shadow:
    0 8px 20px rgba(57,75,110,.045),
    inset 0 1px 0 rgba(255,255,255,.42);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.home-portal .home-block-stats_row .stat-item:hover{
  transform: translateY(-1px);
  border-color: rgba(126,151,190,.32);
  box-shadow: var(--home-shadow-lift, 0 12px 28px rgba(57,75,110,.08));
}

.home-portal .home-block-stats_row .stat-item.is-empty{
  background:
    linear-gradient(180deg, rgba(255,255,255,.68), rgba(248,250,252,.92));
}

.home-portal .home-block-stats_row .stat-ad-media{
  position: relative;
  aspect-ratio: 16 / 10;
  flex: 0 0 auto;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(226,232,240,.55), rgba(241,245,249,.85));
}

.home-portal .home-block-stats_row .stat-ad-img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-portal .home-block-stats_row .stat-ad-media-placeholder{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 100%;
  color: #64748b;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.75), transparent 55%),
    linear-gradient(180deg, rgba(241,245,249,.95), rgba(226,232,240,.75));
}

.home-portal .home-block-stats_row .stat-item.is-empty .stat-ad-media-placeholder{
  border-bottom: 1px dashed rgba(148,163,184,.35);
}

.home-portal .home-block-stats_row .stat-ad-media-placeholder__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  font-size: 24px;
  line-height: 1;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(148,163,184,.22);
  box-shadow: 0 6px 16px rgba(57,75,110,.06);
}

.home-portal .home-block-stats_row .stat-ad-media-placeholder__label{
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #64748b;
}

.home-portal .home-block-stats_row .stat-ad-badge{
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #334155;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(148,163,184,.22);
  box-shadow: 0 4px 12px rgba(57,75,110,.08);
}

.home-portal .home-block-stats_row .stat-ad-body{
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px 10px;
  min-height: 118px;
}

.home-portal .home-block-stats_row .stat-ad-title{
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.015em;
  color: #1e293b;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.home-portal .home-block-stats_row .stat-ad-text{
  margin: 0;
  flex: 1 1 auto;
  font-size: var(--home-card-text-size, 13px);
  line-height: 1.55;
  color: var(--home-card-text-color, #64748b);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.home-portal .home-block-stats_row .stat-ad-footer{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding: 12px 16px 16px;
  border-top: 1px solid rgba(148,163,184,.16);
}

.home-portal .home-block-stats_row .stat-ad-cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  text-decoration: none;
  background: linear-gradient(180deg, rgba(43,55,77,.94), rgba(63,76,101,.94));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 8px 18px rgba(31,41,55,.12);
  transition: transform .12s ease, box-shadow .12s ease;
}

.home-portal .home-block-stats_row .stat-ad-cta:hover{
  color: #fff;
  text-decoration: none;
  transform: translateY(-1px);
}

.home-portal .home-block-stats_row .stat-ad-cta--ghost{
  color: #1e293b;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(148,163,184,.28);
  box-shadow: 0 4px 12px rgba(57,75,110,.05);
}

.home-portal .home-block-stats_row .stat-ad-cta--ghost:hover{
  color: #1e293b;
  background: #fff;
}

.home-portal .home-block-stats_row .stat-ad-until,
.home-portal .home-block-stats_row .stat-ad-muted{
  margin-left: auto;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--home-card-meta-color, #64748b);
  white-space: nowrap;
}

@media (max-width: 900px){
  .home-portal .home-block-stats_row .stats-grid{
    grid-template-columns: 1fr;
  }

  .home-portal .home-block-stats_row .stat-ad-body{
    min-height: 0;
  }

  .home-portal .home-block-stats_row .stat-ad-until{
    white-space: normal;
    text-align: right;
  }
}

/* legacy aliases (старые классы в других partials) */
.home-portal .home-block-stats_row .stat-title{ font-weight:700; margin-bottom:6px; }
.home-portal .home-block-stats_row .stat-muted-block{ margin:0 0 10px; }
.home-portal .home-block-stats_row .stat-muted{
  font-size: 0.82rem;
  color: var(--block-muted, #64748b);
}
.home-portal .home-block-stats_row .stat-actions{ margin-top: auto; }
.home-portal .home-block-stats_row .stat-item a.stat-btn,
.home-portal .home-block-stats_row .stat-item a:not(.stat-ad-cta){
  color: var(--block-accent, #2563eb);
  text-decoration: none;
  font-weight: 600;
}
.home-portal .home-block-stats_row .stat-item h4{
  margin: 0 0 4px;
  font-size: 0.92rem;
  font-weight: 700;
}

/* ====== БЛОК: новости (карточки) ====== */
.home-portal .home-block-news .news-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

.home-portal .home-block-news .news-card{
  background: linear-gradient(180deg, rgba(255,255,255,.76), rgba(255,255,255,.68));
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(190,205,227,.28);
  display: flex;
  flex-direction: column;
  position: relative;
  box-shadow: 0 10px 22px rgba(71,85,105,.05);
  transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.home-portal .home-block-news .news-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(71,85,105,.08);
  border-color: rgba(167,188,221,.38);
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.74));
}

.home-portal .home-block-news .news-thumb{
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
}

.home-portal .home-block-news .news-content{
  padding: 13px 14px 15px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.home-portal .home-block-news .news-title a{
  font-size: 15px;
  font-weight: 600;
  line-height: 1.48;
  color: var(--block-text);
  letter-spacing: -.015em;
  text-decoration: none;
  text-wrap: pretty;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-portal .home-block-news .news-title a:hover{ color: #174f86; text-decoration: none; }

.home-portal .home-block-news .news-meta{
  font-size: 12px;
  font-weight: 500;
  color: #94a3b8;
  letter-spacing: .01em;
}

.home-portal .home-block-news .news-readmore{
  margin-top: auto;
  padding-top: 2px;
  font-size: 13px;
}
.home-portal .home-block-news .news-readmore a{
  color: #2563eb;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: -.01em;
}
.home-portal .home-block-news .news-readmore a:hover{ color: #1d4ed8; text-decoration: none; }

/* ====== БЛОК: афиша ====== */

/* --- НОВЫЙ (grouped) вариант: постерные карточки --- */
.home-portal .home-block-afisha .afisha-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}

/* чуть крупнее в основной колонке */
@media (min-width: 1024px){
  .home-portal .home-block-afisha .afisha-grid{
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  }
}

.home-portal .home-block-afisha .afisha-card{
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(190,205,227,.34);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(71,85,105,.05);
  display: flex;
  flex-direction: column;
  min-width: 0;
  transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.home-portal .home-block-afisha .afisha-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(71,85,105,.08);
  border-color: rgba(167,188,221,.46);
  background: rgba(255,255,255,.88);
}

.home-portal .home-block-afisha .afisha-card-pic{
  display: block;
  width: 100%;
  background: #f3f4f6;
  overflow: hidden;
  aspect-ratio: 2 / 3;
}

.home-portal .home-block-afisha .afisha-card-pic img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.home-portal .home-block-afisha .afisha-card-body{
  padding: 12px 12px 14px;
}

.home-portal .home-block-afisha .afisha-card-title{
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.25;

  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-block-afisha .afisha-card-title a{
  text-decoration: none;
  color: #111827;
}
.home-portal .home-block-afisha .afisha-card-title a:hover{ text-decoration: underline; }

.home-portal .home-block-afisha .afisha-card-loc{
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 10px;

  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-block-afisha .afisha-sessions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-portal .home-block-afisha .afisha-session{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  border: 1px solid rgba(147,197,253,.9);
  background: rgba(219,234,254,.65);
  color: #111827;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}

.home-portal .home-block-afisha .afisha-session-more{
  border-style: dashed;
  opacity: .85;
  cursor: default;
}

@media (max-width: 520px){
  .home-portal .home-block-afisha .afisha-grid{
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}

/* --- СТАРЫЙ вариант (не grouped) — тоже постерный --- */
.home-portal .home-block-afisha .afisha-list{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.home-portal .home-block-afisha .afisha-item{
  border-radius: 14px;
  border: 1px solid rgba(190,205,227,.34);
  background: rgba(255,255,255,.82);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.home-portal .home-block-afisha .afisha-pic{
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  display: block;
  background: #ffffff;
}

.home-portal .home-block-afisha .afisha-body{
  padding: 9px 11px 11px;
  font-size: 0.9rem;
}

.home-portal .home-block-afisha .afisha-title{
  margin: 0 0 3px;
  font-size: 0.95rem;
  font-weight: 700;
}
.home-portal .home-block-afisha .afisha-title a{
  color: var(--block-text);
  text-decoration: none;
}
.home-portal .home-block-afisha .afisha-title a:hover{ text-decoration: underline; }

.home-portal .home-block-afisha .afisha-meta{
  font-size: 0.82rem;
  color: var(--block-muted);
}

/* --- Афиша на главной: ближайший сеанс + покупка --- */
.home-portal .home-block-afisha .afisha-card-body--flex{
  display: flex;
  flex-direction: column;
  min-height: 180px;
}

.home-portal .home-block-afisha .afisha-next{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  font-size: 13px;
  color: #374151;
  font-weight: 700;
}
.home-portal .home-block-afisha .afisha-next-label{
  color: #6b7280;
  font-weight: 700;
}
.home-portal .home-block-afisha .afisha-next-time{
  font-weight: 900;
}

/* ====== БЛОК: топ организаций (карусель) ====== */
.home-portal .home-block-top_orgs .toporgs-carousel{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.home-portal .home-block-top_orgs .toporgs-btn{
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--block-border);
  background: #fff;
  cursor: pointer;
  font-size: 18px;
  flex: 0 0 auto;
}
.home-portal .home-block-top_orgs .toporgs-btn:hover{ background: #f9fafb; }

.home-portal .home-block-top_orgs .toporgs-viewport{
  overflow: hidden;
  width: 100%;
  min-width: 0;
}

.home-portal .home-block-top_orgs .toporgs-track{
  display: flex;
  gap: 12px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
}
.home-portal .home-block-top_orgs .toporgs-track::-webkit-scrollbar{ display: none; }

.home-portal .home-block-top_orgs .toporgs-track .org-card{
  flex: 0 0 calc((100% - 24px) / 3);
  max-width: calc((100% - 24px) / 3);
  min-width: 0;
  scroll-snap-align: start;
}

@media (max-width: 980px){
  .home-portal .home-block-top_orgs .toporgs-track .org-card{
    flex: 0 0 calc((100% - 12px) / 2);
    max-width: calc((100% - 12px) / 2);
  }
}

.home-portal .home-block-top_orgs .org-card{
  border-radius: 16px;
  border: 1px solid rgba(190,205,227,.34);
  overflow: hidden;
  background: rgba(255,255,255,.8);
  display: flex;
  flex-direction: column;
  box-shadow: 0 8px 18px rgba(71,85,105,.05);
  transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.home-portal .home-block-top_orgs .org-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(71,85,105,.08);
  border-color: rgba(167,188,221,.46);
  background: rgba(255,255,255,.86);
}

.home-portal .home-block-top_orgs .org-logo{
  width: 100%;
  height: 130px;
  object-fit: cover;
  display: block;
  background: #f3f4f6;
}

.home-portal .home-block-top_orgs .org-info{
  padding: 9px 11px 11px;
  font-size: 0.9rem;
}

.home-portal .home-block-top_orgs .org-name a{
  font-weight: 700;
  color: var(--block-text);
  text-decoration: none;
}
.home-portal .home-block-top_orgs .org-name a:hover{ text-decoration: underline; }

.home-portal .home-block-top_orgs .org-address{
  font-size: 0.82rem;
  color: var(--block-muted);
  margin-top: 2px;
}

.home-portal .home-block-top_orgs .org-rating{
  margin-top: 4px;
  font-size: 0.82rem;
  color: #f59e0b;
}

@media (max-width: 520px){
  .home-portal .home-block-top_orgs .toporgs-btn{ display: none !important; }
  .home-portal .home-block-top_orgs .toporgs-track .org-card{
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* ====== БЛОК: объявления ====== */
.home-portal .home-block-ads .board-grid{
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

@media (max-width: 1100px){
  .home-portal .home-block-ads .board-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px){
  .home-portal .home-block-ads .board-grid{ grid-template-columns: 1fr; }
}

.home-portal .home-block-ads .board-card{
  min-width: 0;
  border-radius: 18px;
  border: 1px solid rgba(190,205,227,.26);
  background: linear-gradient(180deg, rgba(255,255,255,.76), rgba(255,255,255,.68));
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  box-shadow: 0 8px 18px rgba(71,85,105,.04);
  transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.home-portal .home-block-ads .board-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(71,85,105,.07);
  border-color: rgba(167,188,221,.36);
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.74));
}

.home-portal .home-block-ads .board-thumb{
  width: 100%;
  height: 170px;
  object-fit: cover;
  display: block;
  background: #f3f4f6;
}

.home-portal .home-block-ads .board-body{
  padding: 10px 12px 12px;
  font-size: 0.9rem;
}

.home-portal .home-block-ads .board-title a{
  font-weight: 800;
  color: var(--block-text);
  text-decoration: none;
}
.home-portal .home-block-ads .board-title a:hover{ text-decoration: underline; }

.home-portal .home-block-ads .board-text{
  margin-top: 4px;
  font-size: 0.86rem;
  color: #374151;
}

.home-portal .home-block-ads .board-meta{
  margin-top: 4px;
  font-size: 0.8rem;
  color: var(--block-muted);
}

/* ====== БЛОК: новости организаций ====== */
.home-portal .home-block-org_news .org-news-list{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.home-portal .home-block-org_news .org-news-item{
  display: flex;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--block-border);
}

.home-portal .home-block-org_news .org-news-thumb{ flex: 0 0 110px; }

.home-portal .home-block-org_news .org-news-thumb img{
  display: block;
  width: 110px;
  height: 90px;
  object-fit: cover;
  border-radius: 12px;
}

.home-portal .home-block-org_news .org-news-body{
  flex: 1;
  min-width: 0;
}

.home-portal .home-block-org_news .org-news-title a{
  color: var(--block-text);
  text-decoration: none;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-portal .home-block-org_news .org-news-title a:hover{ text-decoration: underline; }

.home-portal .home-block-org_news .org-news-text{
  margin-top: 4px;
  color: #374151;
  font-size: 0.88rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-block-org_news .org-news-meta{
  margin-top: 6px;
  font-size: 0.8rem;
  color: var(--block-muted);
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

/* ====== БЛОК: пользователи онлайн (сайдбар) ====== */
.home-portal .home-block-online .online-list{
  list-style: none;
  padding: 0;
  margin: 0;
}

.home-portal .home-block-online .online-item{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(229,231,235,.72);
  font-size: 0.9rem;
}
.home-portal .home-block-online .online-item:last-child{ border-bottom: none; }

.home-portal .home-block-online .online-name a{
  text-decoration: none;
  color: var(--block-text);
}
.home-portal .home-block-online .online-name a:hover{ text-decoration: underline; }

.home-portal .home-block-online .online-status{
  font-size: 0.78rem;
  color: #10b981;
}

.home-portal .home-block-online .online-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #22c55e;
  display: inline-block;
  margin-right: 6px;
  vertical-align: middle;
}

/* ====== БЛОК: последние комментарии (сайдбар) ====== */
.home-portal .home-block-comments .comments-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.home-portal .home-block-comments .comment-item{
  padding: 8px 0;
  border-bottom: 1px solid rgba(190,205,227,.22);
}
.home-portal .home-block-comments .comment-item:last-child{ border-bottom: none; }

.home-portal .home-block-comments .comment-author{
  font-weight: 800;
  font-size: 0.9rem;
  color: var(--block-text);
}

.home-portal .home-block-comments .comment-date{
  font-weight: 500;
  font-size: 0.78rem;
  color: var(--block-muted);
  white-space: nowrap;
}

.home-portal .home-block-comments .comment-target{
  margin-top: 2px;
  margin-bottom: 4px;
}

.home-portal .home-block-comments .comment-target a{
  font-size: 0.82rem;
  text-decoration: none;
  color: var(--block-accent);
  font-weight: 700;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.home-portal .home-block-comments .comment-target a:hover{ text-decoration: underline; }

.home-portal .home-block-comments .comment-target-muted{
  font-size: 0.82rem;
  color: #9ca3af;
}

.home-portal .home-block-comments .comment-text{
  font-size: 0.88rem;
  color: #465166;
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* =========================================================
   HOME BLOCKS — overlays (просмотры + избранное)
   ========================================================= */
.home-portal .home-card-media{ position: relative; }
.home-portal .home-card-link{ display:block; }

.home-portal .home-overlay-badge{
  position:absolute;
  top:10px;
  left:10px;
  z-index:5;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(148,163,184,.24);
  font-size:12px;
  font-weight:900;
  color:#0f172a;
  backdrop-filter:blur(6px);
  box-shadow: 0 4px 10px rgba(71,85,105,.04);
  pointer-events:none;
}

.home-portal .home-fav-btn{
  position:absolute;
  top:10px;
  right:10px;
  z-index:6;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(148,163,184,.24);
  font-size:16px;
  font-weight:900;
  color:#0f172a;
  cursor:pointer;
  backdrop-filter:blur(6px);
  box-shadow: 0 4px 10px rgba(71,85,105,.04);
  text-decoration:none;
  transition: filter .15s ease, transform .08s ease;
}

.home-portal .home-fav-btn:hover{ filter: brightness(.98); }
.home-portal .home-fav-btn:active{ transform: translateY(1px); }

.home-portal .home-fav-btn.active{
  background: rgba(255, 245, 200, .95);
  border-color: rgba(245, 158, 11, .55);
}

/* Новости на главной: компактная кнопка избранного */
.home-portal .home-block-news .home-fav-btn--compact{
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  font-size: 0;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 2px 6px rgba(71,85,105,.06);
  opacity: .82;
}

.home-portal .home-block-news .home-fav-btn--compact .home-fav-btn__icon{
  font-size: 14px;
  line-height: 1;
  color: #94a3b8;
  transition: color .15s ease, transform .12s ease;
}

.home-portal .home-block-news .home-fav-btn--compact:hover{
  opacity: 1;
  background: rgba(255,255,255,.92);
}

.home-portal .home-block-news .home-fav-btn--compact:hover .home-fav-btn__icon{
  color: #64748b;
}

.home-portal .home-block-news .home-fav-btn--compact.active{
  opacity: 1;
  background: rgba(255,252,235,.92);
  border-color: rgba(245,158,11,.35);
}

.home-portal .home-block-news .home-fav-btn--compact.active .home-fav-btn__icon{
  color: #d97706;
}

/* screen-reader only */
.home-portal .home-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Сообщение об отсутствующем шаблоне блока */
.home-portal .home-block-missing{
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(239, 68, 68, 0.25);
  background: rgba(254, 242, 242, 0.9);
  color: #b91c1c;
  font-weight: 700;
}

/* ===== AFISHA (главная): ближайший сеанс + покупка + места ===== */

.home-portal .home-block-afisha .afisha-grid-nextonly{
  gap: 14px;
}

.home-portal .home-block-afisha .afisha-card-nextonly{
  display: flex;
  flex-direction: column;
}

.home-portal .home-block-afisha .afisha-nextline{
  margin-top: 6px;
  font-size: 13px;
  color: #374151;
  font-weight: 700;
}

.home-portal .home-block-afisha .afisha-actions{
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.home-portal .home-block-afisha .afisha-buy,
.home-portal .home-block-afisha .afisha-remind{
  flex: 1 1 auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 13px;
  font-weight: 900;
  border: 0;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(49,58,75,.92), rgba(61,72,92,.92));
  color: #fff;
  text-decoration: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 18px rgba(17,24,39,.12);
}
.home-portal .home-block-afisha .afisha-buy:hover,
.home-portal .home-block-afisha .afisha-remind:hover{
  filter: brightness(1.02);
  text-decoration: none;
}

.home-portal .home-block-afisha .afisha-places{
  flex: 0 0 auto;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid rgba(190,205,227,.26);
  background: rgba(255,255,255,.84);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.26);
  font-weight: 900;
  color: #111827;
}

.home-portal .home-block-afisha .afisha-buy-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 13px;
  font-weight: 900;
  text-decoration: none;
  background: linear-gradient(180deg, rgba(49,58,75,.92), rgba(61,72,92,.92));
  color: #fff;
  line-height: 1;
  flex: 1 1 auto;
  min-width: 0;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 18px rgba(17,24,39,.12);
}

.home-portal .home-block-afisha .afisha-buy-btn:hover{ filter: brightness(1.02); text-decoration:none; }

.home-portal .home-block-afisha .afisha-places-badge{
  flex: 0 0 auto;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 10px;
  border-radius: 12px;
  border: 1px solid rgba(190,205,227,.26);
  background: rgba(255,255,255,.84);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.26);
  font-weight: 900;
  font-size: 0.92rem;
  color: rgba(17,24,39,.88);
}

.home-portal .home-block-afisha .afisha-remind-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 13px;
  font-weight: 900;
  text-decoration: none;
  background: linear-gradient(180deg, rgba(49,58,75,.92), rgba(61,72,92,.92));
  color: #fff;
  line-height: 1;
  width: 100%;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 18px rgba(17,24,39,.12);
}
.home-portal .home-block-afisha .afisha-remind-btn:hover{ filter: brightness(1.02); text-decoration:none; }

/* ===== SIDEBAR: компактные элементы (горизонтально) ===== */
.home-portal .home-sidebar .home-block-afisha .afisha-mini-list{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini{
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 10px;
  border: 1px solid rgba(190,205,227,.24);
  border-radius: 16px;
  padding: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.68));
  box-shadow: 0 8px 18px rgba(71,85,105,.04);
  transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(71,85,105,.07);
  border-color: rgba(167,188,221,.34);
  background: linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.74));
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-pic{
  display: block;
  width: 70px;
  height: 104px;
  border-radius: 12px;
  overflow: hidden;
  background: #f3f4f6;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-pic img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-title{
  font-size: 0.94rem;
  font-weight: 900;
  line-height: 1.18;
  margin-bottom: 4px;

  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-title a{
  text-decoration: none;
  color: #111827;
}
.home-portal .home-sidebar .home-block-afisha .afisha-mini-title a:hover{
  text-decoration: underline;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-loc{
  font-size: 0.78rem;
  color: #6b7280;
  margin-bottom: 5px;

  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-next{
  font-size: 0.80rem;
  color: #374151;
  font-weight: 700;
  margin-bottom: 8px;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-actions{
  display: flex;
  align-items: center;
  gap: 8px;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-buy,
.home-portal .home-sidebar .home-block-afisha .afisha-mini-remind{
  flex: 1 1 auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 10px;
  border-radius: 12px;
  font-weight: 900;
  border: 0;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(49,58,75,.92), rgba(61,72,92,.92));
  color: #fff;
  text-decoration: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 7px 16px rgba(17,24,39,.11);
}
.home-portal .home-sidebar .home-block-afisha .afisha-mini-buy:hover,
.home-portal .home-sidebar .home-block-afisha .afisha-mini-remind:hover{
  filter: brightness(1.02);
  text-decoration: none;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-places{
  flex: 0 0 auto;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 9px;
  border-radius: 12px;
  border: 1px solid rgba(190,205,227,.24);
  background: rgba(255,255,255,.82);
  font-weight: 900;
  color: #111827;
}

/* ===== MODAL (iframe) ===== */
.kw-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.kw-modal--hidden{
  display: none;
}

.kw-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
}

.kw-modal__dialog{
  position: relative;
  width: min(980px, calc(100vw - 20px));
  height: min(740px, calc(100vh - 20px));
  margin: 10px auto;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
}

.kw-modal__dialog--home{
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 10001;
  width: min(980px, calc(100vw - 24px));
  height: min(740px, calc(100vh - 24px));
  margin: 0;
  transform: translate(-50%, -50%);
}

.kw-modal__close{
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid rgba(229,231,235,.9);
  background: rgba(255,255,255,.95);
  cursor: pointer;
  font-size: 18px;
  font-weight: 900;
}

.kw-modal__frame{
  width: 100%;
  height: 100%;
  border: 0;
}

html.kw-modal-open,
html.kw-modal-open body{
  overflow: hidden;
}

.apk-dl-card{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px;
  border: 1px solid rgba(181,194,222,.28);
  border-radius: 16px;
  background: var(--block-bg, rgba(255,255,255,.74));
  box-shadow:
    0 10px 24px rgba(71,85,105,.045),
    inset 0 1px 0 rgba(255,255,255,.58);
}

.apk-dl-left{
  min-width: 240px;
  flex: 1 1 320px;
}

.apk-dl-title{
  margin: 0 0 6px;
  color: #1d426a;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 720;
}

.apk-dl-text{
  margin: 0 0 8px;
  color: rgba(37,52,75,.68);
  font-size: 13px;
  line-height: 1.35;
}

.apk-dl-note{
  margin: 0;
  color: rgba(37,52,75,.56);
  font-size: 12px;
}

.apk-dl-actions{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.apk-dl-btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 0;
  border-radius: 14px;
  font-weight: 660;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}

.apk-dl-btn-primary{
  background: linear-gradient(180deg, var(--theme-color, #0088cc), #0576ad);
  color: #fff;
}

.apk-dl-btn-secondary{
  background: rgba(255,255,255,.58);
  color: #1b2a40;
  border: 1px solid rgba(181,194,222,.28);
}

.online-summary{
  margin-bottom: 8px;
}

/* мобилка — карточки плотнее и удобнее */
@media (max-width: 900px){
  .home-portal{
    padding-top: 16px;
  }

  .home-portal .home-layout{
    gap: 18px;
  }

  .home-portal .home-block{
    border-radius: 18px;
    padding: 15px 16px 16px;
    margin-bottom: 14px;
  }

  .home-portal .home-block-news .news-grid{
    gap: 14px;
  }

  .home-portal .home-block-news .news-card{
    border-radius: 16px;
  }
}

/* =========================================================
   FINAL POLISH — homepage cards
   ========================================================= */

.home-portal .home-layout{
  gap: 22px;
}

.home-portal .home-block{
  --block-bg: rgba(255,255,255,.64);
  --block-border: rgba(190,205,227,.24);

  background: var(--block-bg);
  border: 1px solid var(--block-border);
  box-shadow:
    0 8px 22px rgba(71,85,105,.04),
    inset 0 1px 0 rgba(255,255,255,.40);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.home-portal .home-block:hover{
  border-color: rgba(167,188,221,.30);
  box-shadow:
    0 14px 28px rgba(71,85,105,.055),
    inset 0 1px 0 rgba(255,255,255,.46);
}

.home-portal .home-block-title{
  color: #204f85;
}

.home-portal .home-block-news .news-grid{
  gap: 14px;
}

.home-portal .home-block-news .news-card{
  background: rgba(255,255,255,.60);
  border: 1px solid rgba(190,205,227,.22);
  box-shadow: 0 6px 16px rgba(71,85,105,.035);
}

.home-portal .home-block-news .news-card:hover{
  background: rgba(255,255,255,.70);
  border-color: rgba(167,188,221,.30);
  box-shadow: 0 12px 24px rgba(71,85,105,.05);
}

.home-portal .home-block-news .news-content{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.home-portal .home-block-news .news-meta{
  color: #7a8698;
}

.home-portal .home-sidebar .home-block{
  background: rgba(255,255,255,.66);
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini{
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(190,205,227,.20);
  box-shadow: 0 5px 12px rgba(71,85,105,.03);
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini:hover{
  background: rgba(255,255,255,.72);
  border-color: rgba(167,188,221,.28);
  box-shadow: 0 10px 20px rgba(71,85,105,.045);
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-title{
  line-height: 1.2;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-loc{
  color: #7b8796;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-buy,
.home-portal .home-sidebar .home-block-afisha .afisha-mini-remind,
.home-portal .home-block-afisha .afisha-buy,
.home-portal .home-block-afisha .afisha-remind{
  background: linear-gradient(180deg, rgba(48,58,77,.88), rgba(60,71,92,.90));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 8px 16px rgba(31,41,55,.10);
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-buy:hover,
.home-portal .home-sidebar .home-block-afisha .afisha-mini-remind:hover,
.home-portal .home-block-afisha .afisha-buy:hover,
.home-portal .home-block-afisha .afisha-remind:hover{
  filter: brightness(1.03);
  text-decoration: none;
}

.home-portal .home-block-comments .comment-item{
  border-bottom: 1px solid rgba(190,205,227,.18);
}

.home-portal .home-block-comments .comment-text{
  color: #4b5563;
}

.home-portal .home-overlay-badge,
.home-portal .home-fav-btn{
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(148,163,184,.20);
  box-shadow: 0 3px 8px rgba(71,85,105,.03);
}

@media (max-width: 900px){
  .home-portal{
    padding-top: 12px;
  }

  .home-portal .home-layout{
    gap: 16px;
  }

  .home-portal .home-block{
    padding: 15px 16px 16px;
    border-radius: 18px;
  }
}

/* =========================================================
   APP DOWNLOADS SIDEBAR BLOCK
========================================================= */

.home-block-app_downloads .home-block-body{
  padding-top: 2px;
}

.app-downloads-sidebar{
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.app-downloads-sidebar__text{
  min-width: 0;
}

.app-downloads-sidebar__desc{
  margin: 0;
  color: rgba(15, 23, 42, .68);
  font-size: 15px;
  line-height: 1.5;
  text-align: left;
}

.app-downloads-sidebar__badges{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.app-downloads-sidebar__badge-link{
  display: inline-flex;
  justify-content: center;
  text-decoration: none;
  border-radius: 10px;
  transition: transform .14s ease, opacity .14s ease, filter .14s ease;
}

.app-downloads-sidebar__badge-link:hover{
  transform: translateY(-1px);
  opacity: .98;
  filter: drop-shadow(0 10px 18px rgba(15, 23, 42, .10));
}

.app-downloads-sidebar__badge-link:active{
  transform: translateY(0);
}

.app-downloads-sidebar__badge{
  display: block;
  width: 132px;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

/* News cards typography polish */
.home-portal .home-block-news .news-content{
  gap: 10px;
  padding: 16px 16px 18px;
  flex: 1 1 auto;
}

.home-portal .home-block-news .news-title a{
  font-size: 15px;
  font-weight: 600;
  line-height: 1.48;
  color: #1e293b;
  letter-spacing: -.015em;
  text-wrap: pretty;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-block-news .news-title a:hover{
  color: #174f86;
  text-decoration: none;
}

.home-portal .home-block-news .news-meta{
  color: #94a3b8;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .01em;
}

.home-portal .home-block-news .news-readmore{
  margin-top: auto;
  padding-top: 2px;
}

.home-portal .home-block-news .news-readmore a{
  color: #2563eb;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -.01em;
}

.home-portal .home-block-news .news-readmore a:hover{
  color: #1d4ed8;
  text-decoration: none;
}

@media (max-width: 860px){
  .app-downloads-sidebar__desc{
    font-size: 14px;
  }

  .app-downloads-sidebar__badges{
    gap: 8px;
  }

  .app-downloads-sidebar__badge{
    width: 128px;
  }
}

/* =========================================================
   HOME DESIGN REFINEMENT
   A calmer, richer layer for desktop and mobile homepage blocks.
========================================================= */

.home-portal{
  --home-radius-xl: 22px;
  --home-radius-lg: 18px;
  --home-radius-md: 14px;
  --home-ink: #17243a;
  --home-ink-soft: #52627a;
  --home-blue: #1f5f9f;
  --home-border-soft: rgba(155, 176, 211, .24);
  --home-card-bg: rgba(255,255,255,.76);
  --home-card-bg-hover: rgba(255,255,255,.88);
  --home-shadow-soft: 0 10px 26px rgba(57, 75, 110, .055);
  --home-shadow-lift: 0 18px 38px rgba(57, 75, 110, .085);
}

.home-portal .home-layout{
  gap: clamp(18px, 1.5vw, 26px);
}

.home-portal .home-block{
  border-radius: var(--home-radius-xl);
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.64));
  border: 1px solid var(--home-border-soft);
  box-shadow:
    var(--home-shadow-soft),
    inset 0 1px 0 rgba(255,255,255,.52);
}

.home-portal .home-block:hover{
  background:
    linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.70));
  box-shadow:
    0 14px 32px rgba(57, 75, 110, .07),
    inset 0 1px 0 rgba(255,255,255,.62);
}

.home-portal .home-block-title{
  color: #1c4e84;
  font-size: 1.06rem;
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: 0;
}

.home-portal .home-sidebar .home-block-title{
  font-size: 1rem;
}

.home-portal .news-card,
.home-portal .board-card,
.home-portal .afisha-card,
.home-portal .org-card,
.home-portal .stat-item{
  border-radius: var(--home-radius-lg);
}

.home-portal .home-block-news .news-card,
.home-portal .home-block-ads .board-card,
.home-portal .home-block-afisha .afisha-card,
.home-portal .home-block-top_orgs .org-card{
  background: var(--home-card-bg);
  border: 1px solid rgba(155,176,211,.22);
  box-shadow:
    0 8px 20px rgba(57,75,110,.045),
    inset 0 1px 0 rgba(255,255,255,.38);
}

.home-portal .home-block-news .news-card:hover,
.home-portal .home-block-ads .board-card:hover,
.home-portal .home-block-afisha .afisha-card:hover,
.home-portal .home-block-top_orgs .org-card:hover{
  transform: translateY(-1px);
  background: var(--home-card-bg-hover);
  border-color: rgba(126,151,190,.32);
  box-shadow: var(--home-shadow-lift);
}

.home-portal .home-block-news .news-thumb,
.home-portal .home-block-ads .board-thumb{
  height: 166px;
}

.home-portal .home-card-media::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.18));
}

.home-portal .home-overlay-badge,
.home-portal .home-fav-btn{
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(128,148,178,.20);
  box-shadow:
    0 4px 12px rgba(57,75,110,.06),
    inset 0 1px 0 rgba(255,255,255,.65);
}

.home-portal .home-fav-btn{
  color: #11203a;
  transition: transform .12s ease, background .16s ease, box-shadow .16s ease;
}

.home-portal .home-fav-btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.96);
}

.home-portal .home-block-news .news-content,
.home-portal .home-block-ads .board-body{
  padding: 14px 15px 16px;
}

.home-portal .home-block-ads .board-title a,
.home-portal .home-block-afisha .afisha-card-title a,
.home-portal .home-block-top_orgs .org-name a{
  color: var(--home-ink);
  font-weight: 780;
  line-height: 1.34;
  letter-spacing: 0;
}

.home-portal .home-block-ads .board-text,
.home-portal .home-block-org_news .org-news-text,
.home-portal .home-block-comments .comment-text{
  color: var(--home-ink-soft);
}

.home-portal .home-block-footer{
  margin-top: 14px;
}

.home-portal .home-block-footer .more-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 12px;
  background: rgba(232, 242, 255, .70);
  color: #22598f;
  font-weight: 800;
  text-decoration: none;
  transition: background .16s ease, color .16s ease, transform .12s ease;
}

.home-portal .home-block-footer .more-link:hover{
  background: rgba(214, 232, 255, .86);
  color: #174a7d;
  text-decoration: none;
  transform: translateY(-1px);
}

.home-portal .home-sidebar .home-block{
  background:
    linear-gradient(180deg, rgba(255,255,255,.74), rgba(255,255,255,.58));
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini{
  border-radius: var(--home-radius-lg);
  background: rgba(255,255,255,.72);
  border-color: rgba(155,176,211,.22);
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-pic{
  border-radius: var(--home-radius-md);
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-title{
  font-weight: 780;
  line-height: 1.24;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-buy,
.home-portal .home-sidebar .home-block-afisha .afisha-mini-remind,
.home-portal .home-block-afisha .afisha-buy,
.home-portal .home-block-afisha .afisha-remind,
.home-portal .home-block-afisha .afisha-buy-btn,
.home-portal .home-block-afisha .afisha-remind-btn{
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(43,55,77,.94), rgba(63,76,101,.94));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 10px 20px rgba(31,41,55,.12);
}

.home-portal .home-block-stats_row .stat-item{
  padding: 0;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.76), rgba(255,255,255,.62));
  border-color: rgba(155,176,211,.22);
  box-shadow:
    0 8px 20px rgba(57,75,110,.045),
    inset 0 1px 0 rgba(255,255,255,.42);
}

.home-portal .app-downloads-sidebar__desc{
  color: #52627a;
}

.home-portal .app-downloads-sidebar__badges{
  align-items: center;
}

@media (min-width: 1025px){
  .home-portal .home-sidebar{
    padding-top: 0;
  }
}

@media (max-width: 900px){
  .home-portal{
    padding-top: 10px;
  }

  .home-portal .home-layout{
    gap: 14px;
  }

  .home-portal .home-block{
    border-radius: 20px;
    padding: 15px;
    margin-bottom: 14px;
  }

  .home-portal .home-block-title{
    font-size: 1rem;
    margin-bottom: 12px;
  }

  .home-portal .home-block-news .news-grid,
  .home-portal .home-block-ads .board-grid,
  .home-portal .home-block-afisha .afisha-grid{
    gap: 12px;
  }

  .home-portal .home-block-news .news-card,
  .home-portal .home-block-ads .board-card,
  .home-portal .home-block-afisha .afisha-card{
    border-radius: 18px;
  }

  .home-portal .home-block-news .news-thumb,
  .home-portal .home-block-ads .board-thumb{
    height: auto;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 560px){
  .home-portal .home-block{
    border-radius: 18px;
    padding: 13px;
  }

  .home-portal .home-block-news .news-content,
  .home-portal .home-block-ads .board-body{
    padding: 12px 13px 14px;
  }

  .home-portal .home-block-news .news-title a,
  .home-portal .home-block-ads .board-title a{
    font-size: 14px;
    line-height: 1.46;
  }
}

/* =========================================================
   HOME BLOCKS — unified Manrope typography (all blocks)
   ========================================================= */

.home-portal{
  font-family: inherit;
  --home-card-title-size: 15px;
  --home-card-title-weight: 600;
  --home-card-title-lh: 1.48;
  --home-card-title-ls: -.015em;
  --home-card-title-color: #1e293b;
  --home-card-meta-size: 12px;
  --home-card-meta-color: #94a3b8;
  --home-card-text-size: 14px;
  --home-card-text-color: #64748b;
  --home-card-link-size: 13px;
  --home-card-link-color: #2563eb;
  --home-block-title-size: 17px;
  --home-block-title-weight: 700;
}

.home-portal .home-block-title{
  font-family: inherit;
  font-size: var(--home-block-title-size);
  font-weight: var(--home-block-title-weight);
  letter-spacing: -.02em;
  color: #1e4a7a;
}

.home-portal .home-sidebar .home-block-title{
  font-size: 16px;
}

.home-portal .home-block-footer .more-link{
  font-family: inherit;
  font-weight: 600;
  font-size: var(--home-card-link-size);
  letter-spacing: -.01em;
  color: #2563eb;
}

.home-portal .home-block-footer .more-link:hover{
  color: #1d4ed8;
  text-decoration: none;
}

/* Card titles */
.home-portal :is(
  .home-block-news .news-title a,
  .home-block-ads .board-title a,
  .home-block-afisha .afisha-card-title a,
  .home-block-afisha .afisha-title a,
  .home-sidebar .home-block-afisha .afisha-mini-title a,
  .home-block-top_orgs .org-name a,
  .home-block-org_news .org-news-title a,
  .home-block-pinned_news .pinned-title a,
  .home-block-pinned_news .pinned-more-item a,
  .home-block-online .online-name a,
  .home-block-comments .comment-target a
){
  font-family: inherit;
  font-size: var(--home-card-title-size);
  font-weight: var(--home-card-title-weight);
  line-height: var(--home-card-title-lh);
  letter-spacing: var(--home-card-title-ls);
  color: var(--home-card-title-color);
  text-decoration: none;
  text-wrap: pretty;
}

.home-portal :is(
  .home-block-news .news-title a,
  .home-block-ads .board-title a,
  .home-block-afisha .afisha-card-title a,
  .home-block-top_orgs .org-name a,
  .home-sidebar .home-block-afisha .afisha-mini-title a,
  .home-block-org_news .org-news-title a
){
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-portal .home-sidebar .home-block-afisha .afisha-mini-title a{
  -webkit-line-clamp: 2;
}

.home-portal :is(
  .home-block-news .news-title a,
  .home-block-ads .board-title a,
  .home-block-afisha .afisha-card-title a,
  .home-block-afisha .afisha-title a,
  .home-sidebar .home-block-afisha .afisha-mini-title a,
  .home-block-top_orgs .org-name a,
  .home-block-org_news .org-news-title a,
  .home-block-pinned_news .pinned-title a,
  .home-block-pinned_news .pinned-more-item a,
  .home-block-online .online-name a,
  .home-block-comments .comment-target a
):hover{
  color: #174f86;
  text-decoration: none;
}

.home-portal .home-block-pinned_news .pinned-title a{
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.38;
}

/* Meta / dates */
.home-portal :is(
  .home-block-news .news-meta,
  .home-block-ads .board-meta,
  .home-block-afisha .afisha-meta,
  .home-block-afisha .afisha-card-loc,
  .home-block-afisha .afisha-mini-loc,
  .home-block-afisha .afisha-mini-next,
  .home-block-top_orgs .org-address,
  .home-block-top_orgs .org-rating,
  .home-block-org_news .org-news-meta,
  .home-block-pinned_news .pinned-meta,
  .home-block-comments .comment-date,
  .home-block-online .online-status,
  .home-block-stats_row .stat-muted
){
  font-size: var(--home-card-meta-size);
  font-weight: 500;
  color: var(--home-card-meta-color);
  letter-spacing: .01em;
}

/* Body / excerpt text */
.home-portal :is(
  .home-block-ads .board-text,
  .home-block-org_news .org-news-text,
  .home-block-comments .comment-text,
  .home-block-pinned_news .pinned-desc,
  .home-block-stats_row .stat-muted-block,
  .home-block-stats_row .stat-ad-text
){
  font-size: var(--home-card-text-size);
  font-weight: 400;
  line-height: 1.58;
  color: var(--home-card-text-color);
}

.home-portal .home-block-comments .comment-author{
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  letter-spacing: -.01em;
}

.home-portal .home-block-comments .comment-target-muted{
  font-size: var(--home-card-meta-size);
  color: var(--home-card-meta-color);
}

.home-portal .home-block-stats_row .stat-item h4,
.home-portal .home-block-stats_row .stat-title,
.home-portal .home-block-stats_row .stat-ad-title{
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -.015em;
  color: #1e293b;
}

.home-portal .home-block-stats_row .stat-item a:not(.stat-ad-cta){
  font-weight: 600;
}

/* Action links */
.home-portal :is(
  .home-block-news .news-readmore a,
  .home-block-pinned_news .pinned-readmore a
){
  font-size: var(--home-card-link-size);
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--home-card-link-color);
  text-decoration: none;
}

.home-portal :is(
  .home-block-news .news-readmore a,
  .home-block-pinned_news .pinned-readmore a
):hover{
  color: #1d4ed8;
  text-decoration: none;
}

/* Card bodies — even vertical rhythm */
.home-portal :is(
  .home-block-ads .board-body,
  .home-block-afisha .afisha-card-body,
  .home-block-top_orgs .org-info,
  .home-block-org_news .org-news-body,
  .home-block-pinned_news .pinned-body
){
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.home-portal :is(
  .home-block-ads .board-card,
  .home-block-afisha .afisha-card,
  .home-block-top_orgs .org-card,
  .home-block-news .news-card
){
  font-family: inherit;
}

.home-portal :is(
  .home-block-ads .board-body,
  .home-block-afisha .afisha-card-body,
  .home-block-top_orgs .org-info
){
  flex: 1 1 auto;
  padding: 16px 16px 18px;
}

.home-portal .home-block-pinned_news .pinned-body{
  gap: 12px;
}

.home-portal .text-muted{
  font-size: 14px;
  color: var(--home-card-meta-color);
}

/* Afisha buttons — lighter but still readable */
.home-portal .home-block-afisha :is(
  .afisha-buy,
  .afisha-remind,
  .afisha-buy-btn,
  .afisha-remind-btn,
  .afisha-mini-buy,
  .afisha-mini-remind,
  .afisha-session,
  .afisha-next,
  .afisha-nextline
){
  font-family: inherit;
  font-weight: 600;
  letter-spacing: -.01em;
}

.home-portal .apk-dl-title{
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -.015em;
  color: #1e293b;
}

.home-portal :is(.apk-dl-text, .app-downloads-sidebar__desc){
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #64748b;
}

.home-portal :is(.apk-dl-note, .app-downloads-sidebar__text){
  font-size: 12px;
  font-weight: 500;
  color: #94a3b8;
}

.home-portal .apk-dl-btn{
  font-family: inherit;
  font-weight: 600;
}

@media (max-width: 560px){
  .home-portal{
    --home-card-title-size: 14px;
    --home-block-title-size: 16px;
  }

  .home-portal .home-block-pinned_news .pinned-title a{
    font-size: 16px;
  }
}

/* Restore comfortable gap between the global search bar and homepage blocks */
.home-portal{
  padding-top: 18px;
}

@media (max-width: 900px){
  .home-portal{
    padding-top: 12px;
  }
}

/* Топ организаций — категория на карточке */
.home-portal .org-category{
  font-size: .78rem;
  font-weight: 600;
  color: #315f98;
  margin-bottom: 2px;
}
