/* ============================================================================
   НАИТО — тема «Голос ассоциации» (task1346, раскатка утверждённого оформления
   design/golos-associacii.html на весь сайт). Газетный стиль: PT Serif
   (заголовки) + PT Sans (текст), палитра ink/paper/red/blue, без скруглений
   углов (как в утверждённом макете — ни одного border-radius). Мобильная
   вёрстка — база; планшет/десктоп добавляются media-запросами вверх
   (mobile-first), как в макете.

   Ни один из существующих CSS-классов, используемых в *.cshtml (см.
   task1346-plan.md, «Контекст и ограничения» — полный список 66 классов), не
   переименован и не удалён — только переопределён визуально. Шрифты
   подключаются отдельным файлом css/fonts.css (task1346.9, локально, без
   Google Fonts CDN) — здесь только font-family с системным fallback.
   ============================================================================ */

:root{
  --ink:#1a1a1a; --ink-soft:#5b5f66; --paper:#ffffff; --bg:#fafafa;
  --line:#e3e3e3; --red:#b3242c; --red-deep:#8f1c22; --blue:#1c3f73;
  --green:#2e6b3e;
  --muted-bg:#f2f2f0;
  --gap:20px; --pad:16px;
  --tap:44px; /* минимальный размер элемента под палец */
}

*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; -webkit-font-smoothing:antialiased; }
body{
  margin:0;
  font-family:'PT Sans', Arial, sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  font-size:16px;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }
ul, ol{ padding-left:1.25em; margin:0 0 1em; }
h1, h2, h3{
  font-family:'PT Serif', Georgia, serif; font-weight:700; line-height:1.3;
  color:var(--ink); overflow-wrap:anywhere; margin:0 0 .6em;
}
h1{ font-size:1.75rem; }
h2{ font-size:1.3rem; margin-top:1.4em; }
h3{ font-size:1.05rem; }
p{ margin:0 0 1em; overflow-wrap:anywhere; }

:focus-visible{ outline:2px solid var(--red); outline-offset:2px; }

/* Локальные SVG-иконки (task1346.9, _Icon.cshtml/NaitoIconHelper) — размер по
   умолчанию 1em, конкретные места переопределяют width/height в px. */
.icon{ width:1em; height:1em; display:inline-block; vertical-align:-0.125em; flex-shrink:0; }

/* ── Таблицы контента (BodyHtml) — не должны ломать мобильную раскладку ── */
.page-body table, .page-intro table{
  display:block; overflow-x:auto; max-width:100%; border-collapse:collapse; margin:1em 0;
}
.page-body table td, .page-body table th{ border:1px solid var(--line); padding:6px 10px; }

.wrap{ width:100%; max-width:1200px; margin:0 auto; padding:0 var(--pad); }

/* ============================================================================
   SECTION — общий блок-обёртка с заголовком (task1346.1, заменяет .line-heading
   в 1346.3/1346.5; .line-heading остаётся стилистически идентичным на время
   переходного периода, чтобы уже существующая разметка Index.cshtml не
   «выпадала» из новой темы до своей подзадачи).
   ============================================================================ */
.section{ padding:28px 0; }
.section-title, .line-heading{
  font-family:'PT Serif', Georgia, serif; font-weight:700; font-size:21px;
  margin-bottom:18px; padding-bottom:10px; border-bottom:3px solid var(--ink);
  color:var(--ink); text-transform:none; letter-spacing:normal;
}
.section-title.thin{ border-bottom-width:1px; font-size:18px; }

@media (min-width:900px){
  .section{ padding:34px 0; }
}

/* ============================================================================
   ВЕРХНЯЯ СТРОКА (task1346.2) — только e-mail и russiatravel.club, без
   телефона и телеграма.
   ============================================================================ */
.topline{ background:var(--ink); color:#d8d8d8; font-size:13px; padding:8px 0; }
.topline .wrap{ display:flex; flex-wrap:wrap; gap:6px 20px; justify-content:center; align-items:center; }
.topline a{ color:#fff; display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:4px 0; }
.topline a:hover{ text-decoration:underline; }
.topline .icon{ width:14px; height:14px; color:#9aa0a8; }

@media (min-width:900px){
  .topline .wrap{ justify-content:flex-end; }
}

/* ============================================================================
   HEADER — газетная шапка в духе .masthead макета (task1346.2). Классы
   brand-link/brand-title/brand-sub не переименованы; .brand-under — новый
   класс для подзаголовка под названием (в макете это .under).
   ============================================================================ */
.site-header{ background:var(--paper); text-align:center; padding:20px 0 14px; border-bottom:4px double var(--ink); }
.site-header .brand-link{ display:inline-flex; flex-direction:column; align-items:center; gap:2px; color:inherit; }
.site-header .brand-link:hover{ text-decoration:none; }
.brand-sub{
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
  margin-bottom:6px; font-family:'PT Sans', Arial, sans-serif;
}
.brand-title{
  font-family:'PT Serif', Georgia, serif; font-weight:700; color:var(--ink);
  font-size:clamp(32px, 10vw, 54px); letter-spacing:.02em; line-height:1.05;
}
.brand-under{ font-style:italic; color:var(--ink-soft); font-size:14px; margin-top:8px; }

/* ============================================================================
   НАВИГАЦИЯ (task1348, перекрашено task1346.2 под новую палитру) — механика
   чекбокса/hover/focus-within из task1348 не менялась, только цвета/типографика.
   ============================================================================ */
.nav-bar{ background:var(--paper); border-bottom:1px solid var(--line); position:relative; }
.nav-row{ display:flex; align-items:center; justify-content:space-between; min-height:52px; }
.nav-toggle{ display:none; }
.burger{
  display:inline-flex; width:var(--tap); height:var(--tap); align-items:center; justify-content:center;
  border:1px solid var(--line); cursor:pointer; background:var(--paper); color:var(--ink);
}
.burger .icon{ width:18px; height:18px; }
nav.site-nav{ display:none; position:absolute; left:0; right:0; top:100%; background:var(--paper); border:1px solid var(--line); border-top:none; z-index:20; }
nav.site-nav ul{ display:flex; flex-direction:column; list-style:none; margin:0; padding:0; }
nav.site-nav a{
  display:flex; align-items:center; min-height:var(--tap); padding:12px 18px; font-size:14px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--line); border-left:3px solid transparent;
  color:var(--ink);
}
nav.site-nav a:hover, nav.site-nav a.active{ border-left-color:var(--red); color:var(--red); }
.nav-toggle:checked ~ nav.site-nav{ display:block; }
/* Подменю: на телефоне разворачивается списком под пунктом */
nav.site-nav .subnav a{ padding-left:36px; font-size:13px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink-soft); background:var(--muted-bg); }

@media (min-width:900px){
  .burger{ display:none; }
  nav.site-nav{ display:block; position:static; border:none; flex:1; }
  nav.site-nav ul{ flex-direction:row; justify-content:center; flex-wrap:wrap; gap:2px; width:100%; }
  nav.site-nav a{ border-bottom:3px solid transparent; border-left:none; padding:13px 15px; font-size:13.5px; }
  nav.site-nav a:hover, nav.site-nav a.active{ border-bottom-color:var(--red); }
  /* Подменю: на десктопе выпадает под пунктом */
  nav.site-nav li{ position:relative; }
  nav.site-nav .subnav{
    display:none; position:absolute; left:0; top:100%; min-width:260px; flex-direction:column;
    background:var(--paper); border:1px solid var(--line); box-shadow:0 6px 18px rgba(0,0,0,.08); z-index:30;
  }
  nav.site-nav li.has-sub:hover .subnav, nav.site-nav li.has-sub:focus-within .subnav{ display:flex; }
  nav.site-nav .subnav a{ padding:11px 16px; border-bottom:1px solid var(--line); border-left:3px solid transparent; text-align:left; background:var(--paper); }
  nav.site-nav .subnav li:last-child a{ border-bottom:none; }
  nav.site-nav .subnav a:hover{ border-bottom-color:var(--line); border-left-color:var(--red); color:var(--red); }
}

.site-main{ padding:28px 0 56px; }

/* ============================================================================
   ПОДВАЛ (task1346.2) — расширен до колонок (footer-grid/footer-col — новые
   классы), .site-footer не переименован.
   ============================================================================ */
.site-footer{ background:var(--paper); border-top:4px double var(--ink); padding:30px 0 16px; margin-top:40px; }
.site-footer p{ margin:0; font-size:.85rem; color:var(--ink-soft); }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:24px; padding-bottom:20px; }
.footer-col h4{
  font-family:'PT Serif', Georgia, serif; font-size:14px; text-transform:uppercase; letter-spacing:.05em;
  margin-bottom:12px; border-bottom:2px solid var(--red); display:inline-block; padding-bottom:4px; color:var(--ink);
}
.footer-col p{ font-size:14px; color:var(--ink-soft); margin:0; }
.footer-col ul{ list-style:none; padding:0; margin:0; }
/* task1346.8 — замер Playwright нашёл пункты подвала («О Партнёрстве», «Реестр ТИЦ» и др.)
   с min-height:38px — те же ссылки в шапке (nav.site-nav a) уже используют var(--tap), подвал
   был единственным местом навигации сайта без выдержанного минимума под палец. */
.footer-col ul li a{ display:flex; align-items:center; min-height:var(--tap); font-size:14.5px; color:var(--ink); }
.footer-col a:hover{ color:var(--red); text-decoration:none; }
.footer-col .fc-item{ display:flex; gap:9px; align-items:center; font-size:14.5px; }
.footer-col .fc-item a{ display:flex; align-items:center; min-height:var(--tap); color:var(--ink); }
.footer-col .fc-item .icon{ width:16px; height:16px; color:var(--red); flex-shrink:0; }
.footer-bottom{ border-top:1px solid var(--line); padding-top:14px; font-size:12.5px; color:var(--ink-soft); display:flex; flex-direction:column; gap:6px; }

@media (min-width:620px){
  :root{ --pad:20px; }
  .footer-grid{ grid-template-columns:repeat(2, 1fr); }
  .footer-bottom{ flex-direction:row; justify-content:space-between; flex-wrap:wrap; gap:8px; }
}
@media (min-width:900px){
  .footer-grid{ grid-template-columns:2fr 1fr 1fr 1fr; }
}

/* ============================================================================
   BREADCRUMBS / TITLE / ARCHIVE BANNER / ПОМЕТКИ
   ============================================================================ */
.breadcrumbs{ font-size:.85rem; color:var(--ink-soft); margin-bottom:14px; }
.breadcrumbs a{ color:var(--ink-soft); }
.breadcrumbs a:hover{ color:var(--red); text-decoration:underline; }
.breadcrumbs span + a, .breadcrumbs span{ margin-left:6px; }

.page-title{ margin-bottom:.5em; }

.archive-banner{
  display:flex; align-items:center; gap:10px; background:var(--muted-bg); color:var(--ink-soft);
  border:1px solid var(--line); border-left:4px solid var(--ink-soft); padding:10px 14px; margin-bottom:20px; font-size:.9rem;
}
.badge-archive{
  display:inline-block; background:var(--ink-soft); color:#fff; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; margin-right:6px;
}
/* Свободная пометка (task1348) — «редакция 2015 года», «материал 2017 года». По решению
   владельца (task1350) сделана тихой подписью, а не ярлыком-предупреждением: без заливки,
   рамки и красной полосы слева — просто мелкий приглушённый текст обычного начертания. */
.note-banner{
  display:block; color:var(--ink-soft); margin-bottom:12px; font-size:.82rem;
}
.badge-note{
  display:inline-block; color:var(--ink-soft); font-family:'PT Sans', Arial, sans-serif;
  font-size:.78rem; font-weight:400; margin-right:6px;
}
/* "Свежие" элементы объединённой ленты (task1064, фаза 4.1) — живые новости nbcrs3 и одобренные
   материалы сайтового AI-конвейера task1060, в отличие от архива MODX (.badge-archive выше). */
.badge-live{
  display:inline-block; background:var(--red); color:#fff; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; margin-right:6px;
}
/* Материал подготовлен самой НАИТО (task1347.2, News.IsPreparedByNaito) — визуально выделяет
   слово ассоциации среди новостей центров и архива. Цвет — var(--blue), институциональный,
   не пересекается с .badge-live (красный)/.badge-archive (серый)/.badge-note (тихая подпись). */
.badge-association{
  display:inline-block; background:var(--blue); color:#fff; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; margin-right:6px;
}
/* Деловые события (task1349, BusinessCalendarItem.IsPreparedByNaito/IsSupportedByNaito) —
   две НОВЫЕ метки, визуально РАЗНЫЕ, а не общий бейдж «НАИТО» (решение владельца 01.09.2026).
   .badge-naito-main переиспользует var(--blue) — тот же институциональный смысл, что у
   .badge-association («это наше»); .badge-naito-supported — отдельный цвет var(--green),
   не пересекается ни с одним из badge-* выше. */
.badge-naito-main{
  display:inline-block; background:var(--blue); color:#fff; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; margin-right:6px;
}
.badge-naito-supported{
  display:inline-block; background:var(--green); color:#fff; font-size:.72rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; padding:2px 7px; margin-right:6px;
}

/* ============================================================================
   ARTICLE (news_detail)
   ============================================================================ */
.article-meta{ color:var(--ink-soft); font-size:.9rem; margin-bottom:14px; }
.article-cover{ aspect-ratio:4/3; overflow:hidden; margin-bottom:18px; background:var(--muted-bg); border:1px solid var(--line); }
.article-cover img{ width:100%; height:100%; object-fit:cover; }
.page-intro{ font-size:1.05rem; color:var(--ink-soft); margin-bottom:1em; }
.page-body{ font-size:1rem; }
.page-body p{ margin-bottom:1em; }
.back-link{ margin-top:24px; font-weight:700; }
.back-link a:hover{ color:var(--red); }
.article-source{ font-size:.85rem; color:var(--ink-soft); margin-top:1.2em; word-break:break-all; }

/* Ссылки внутри прозы (архивные статьи из MODX) — в отличие от навигации/карточек,
   в тексте статьи ссылка обязана визуально отличаться от окружающего текста. */
.page-body a, .page-intro a, .cc-intro a, .child-intro a, .tic-registry-howto a{
  color:var(--red); text-decoration:underline; text-underline-offset:2px;
}
.page-body a:hover, .page-intro a:hover, .cc-intro a:hover, .child-intro a:hover, .tic-registry-howto a:hover{ color:var(--red-deep); }

/* ============================================================================
   РЕЕСТР ТИЦ — iframe (task1064, фаза 4.3; перекрашено task1346.7)
   ============================================================================ */
.tic-registry-intro{ font-size:1.05rem; color:var(--ink-soft); margin-bottom:1em; max-width:720px; }
.tic-registry-howto{ margin-bottom:1.4em; max-width:720px; }
.tic-registry-fallback{ margin-bottom:16px; font-size:.92rem; color:var(--ink-soft); }
.tic-registry-frame-wrap{ border:1px solid var(--line); overflow:hidden; background:var(--paper); }
/* task1350: на узких экранах окно делали заметно выше — иначе внутри iframe появлялся
   собственный скролл поверх скролла страницы, а карта реестра обрезалась. */
.tic-registry-frame-wrap iframe{ display:block; width:100%; border:0; height:82vh; min-height:560px; }

@media (min-width:620px){
  .tic-registry-frame-wrap iframe{ height:85vh; min-height:640px; }
}

@media (min-width:900px){
  .tic-registry-frame-wrap iframe{ min-height:720px; }
}

/* ============================================================================
   CARD LIST (section) — карточки списков (новости/разделы), фото 4:3.
   ============================================================================ */
.card-list{ display:flex; flex-direction:column; gap:var(--gap); }
.content-card{
  display:flex; flex-direction:column; gap:14px; background:var(--paper); border:1px solid var(--line);
  padding:14px;
}
.content-card .cc-photo{ aspect-ratio:4/3; overflow:hidden; background:var(--muted-bg); border:1px solid var(--line); }
.content-card .cc-photo img{ width:100%; height:100%; object-fit:cover; }
.content-card .cc-body{ flex:1; min-width:0; }
.cc-meta{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:.8rem; color:var(--ink-soft); margin-bottom:4px; }
.cc-title{ margin:0 0 4px; font-family:'PT Serif', Georgia, serif; font-weight:700; font-size:1.05rem; line-height:1.3; }
.cc-title a:hover{ color:var(--red); }
.cc-intro{ margin:0; font-size:.92rem; color:var(--ink-soft); }

.empty-state{ background:var(--paper); border:1px dashed var(--line); padding:20px; color:var(--ink-soft); }

@media (min-width:620px){
  .content-card{ flex-direction:row; align-items:flex-start; }
  .content-card .cc-photo{ flex:0 0 160px; width:160px; }
}

.home-section{ margin-bottom:36px; }
.home-lead{ font-size:1.05rem; color:var(--ink-soft); max-width:640px; }
.home-news-list{ list-style:none; padding:0; margin:0 0 16px; display:flex; flex-direction:column; gap:10px; }
.home-news-list li{ display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; }
.home-news-date{ font-size:.82rem; color:var(--ink-soft); flex:0 0 auto; min-width:9em; }
.home-menu-list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr; gap:8px 20px; }

@media (min-width:620px){
  .home-menu-list{ grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
}

/* Разделы сайта (task1350) — три группы по направлениям вместо плоского списка всех
   корневых страниц из базы. Mobile-first: на телефоне группы идут одна под другой,
   с 620px — в колонки. */
.home-sections{ display:grid; grid-template-columns:1fr; gap:28px 32px; }
.home-sections-title{
  margin:0 0 10px; font-size:.82rem; font-weight:700; text-transform:uppercase;
  letter-spacing:.06em; color:var(--ink-soft);
}
.home-sections-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.home-sections-list a{ font-weight:600; }

@media (min-width:620px){
  .home-sections{ grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); }
}

/* ============================================================================
   КНОПКИ (task1346.1, по образцу .btn макета — контурная кнопка, инверсия
   на hover, без скруглений).
   ============================================================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:var(--tap);
  padding:11px 22px; font-size:15px; font-weight:700; border:2px solid var(--ink); color:var(--ink);
  background:transparent;
}
.btn:hover{ background:var(--ink); color:#fff; text-decoration:none; }
/* task1346.8 — замер Playwright нашёл .btn-sm ("Открыть"/"Все новости регионов" на главной)
   с min-height:40px, что ниже --tap (44px): реальная кнопка перехода, а не декоративный
   элемент. Собственный min-height убран — наследует var(--tap) от .btn, компактность
   остаётся за счёт padding/font-size. */
.btn-sm{ padding:8px 16px; font-size:14px; }
.btn-secondary{ background:var(--paper); color:var(--ink-soft); border:1px solid var(--line); }
.btn-secondary:hover{ background:var(--muted-bg); color:var(--ink); text-decoration:none; }
.btn-red{ border-color:var(--red); background:var(--red); color:#fff; }
.btn-red:hover{ background:var(--red-deep); border-color:var(--red-deep); color:#fff; }

/* ============================================================================
   CHILDREN LIST (page)
   ============================================================================ */
.children-list{ margin-top:12px; }
.child-card{ border-bottom:1px solid var(--line); padding:14px 0; }
.child-card:last-child{ border-bottom:none; }
.child-card a, .child-card .child-title{ font-family:'PT Serif', Georgia, serif; font-weight:700; font-size:1.02rem; }
.child-card a:hover{ color:var(--red); }
/* task1349: карточки рейтинга ТИЦ и деловых событий без ссылки (нет публичной страницы
   организации) — тот же заголовочный стиль, что у .child-card a выше, но без ссылки. */
.child-card .child-title{ display:block; }
.child-meta{ font-size:.8rem; color:var(--ink-soft); margin-top:2px; }
.child-intro{ font-size:.92rem; color:var(--ink-soft); margin-top:4px; }

/* ============================================================================
   PAGINATION — обводки/засечки, красный акцент активной страницы (тач-цели
   не мельче --tap).
   ============================================================================ */
.pagination{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:28px; flex-wrap:wrap; }
.pagination a, .pagination span{ font-size:.9rem; }
.pg-prev, .pg-next{
  display:inline-flex; align-items:center; min-height:var(--tap); padding:6px 16px;
  border:2px solid var(--ink); font-weight:700; color:var(--ink);
}
.pg-prev:hover, .pg-next:hover{ background:var(--ink); color:#fff; text-decoration:none; }
.pagination .disabled{ border-color:var(--line); color:var(--ink-soft); opacity:.5; }
.pagination .disabled:hover{ background:none; color:var(--ink-soft); }
.pg-numbers{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.pg-numbers a, .pg-numbers .pg-current, .pg-numbers .pg-ellipsis{
  min-width:var(--tap); min-height:var(--tap); display:inline-flex; align-items:center; justify-content:center;
  text-align:center; padding:4px 8px; border:1px solid var(--line); font-weight:700;
}
.pg-numbers a:hover{ border-color:var(--red); color:var(--red); text-decoration:none; }
.pg-numbers .pg-current{ background:var(--red); color:#fff; border-color:var(--red); }
.pg-numbers .pg-ellipsis{ color:var(--ink-soft); border-color:transparent; }

/* ============================================================================
   404
   ============================================================================ */
.not-found{ text-align:center; padding:60px 0; }
.not-found h1{ font-size:3rem; margin-bottom:.2em; }

/* ============================================================================
   МУЗЕЙНАЯ БРОДИЛКА /walker (перекрашено task1346.1/1346.6)
   ============================================================================ */
.walker-cta-row{ display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 8px; }

.walker-news-list{ display:flex; flex-direction:column; gap:var(--gap); }
.walker-news-card{ background:var(--paper); border:1px solid var(--line); padding:14px; }

.walker-filter-group{ margin-bottom:14px; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.walker-filter-label{ font-size:.85rem; color:var(--ink-soft); margin-right:2px; }
.walker-filter-chip{
  display:inline-flex; align-items:center; gap:5px; min-height:var(--tap); background:var(--paper);
  border:1px solid var(--line); padding:4px 14px; font-size:.85rem; color:var(--ink-soft);
}
.walker-filter-chip:hover{ border-color:var(--red); color:var(--red); text-decoration:none; }
.walker-filter-count{ color:var(--ink-soft); font-size:.78rem; }

.walker-museum-grid{ display:grid; grid-template-columns:1fr; gap:var(--gap); }
.walker-museum-card{
  display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line);
  overflow:hidden; color:inherit;
}
.walker-museum-card:hover{ text-decoration:none; border-color:var(--red); }
.walker-museum-card .wmc-photo{ aspect-ratio:4/3; overflow:hidden; background:var(--muted-bg); }
.walker-museum-card .wmc-photo img{ width:100%; height:100%; object-fit:cover; }
.walker-museum-card .wmc-body{ padding:12px 14px; flex:1; display:flex; flex-direction:column; }
.wmc-category{ font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--red); margin-bottom:4px; }
.wmc-title{ margin:0 0 4px; font-family:'PT Serif', Georgia, serif; font-weight:700; font-size:1rem; }
.wmc-region{ font-size:.82rem; color:var(--ink-soft); margin-bottom:6px; }
.wmc-lead{ margin:0; font-size:.88rem; color:var(--ink-soft); }

@media (min-width:620px){
  .walker-museum-grid{ grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
}

.walker-info-grid{ display:flex; flex-direction:column; gap:6px; margin:14px 0; font-size:.95rem; }

.walker-json-list{ list-style:none; padding:0; margin:0 0 1em; display:flex; flex-direction:column; gap:8px; }
.walker-json-list li{ background:var(--paper); border:1px solid var(--line); padding:10px 12px; }
/* Ссылки внутри JSON-рендер-блоков (WalkerJsonRenderer, раздел «Полезные ссылки» и т.п.) — та же
   логика видимости ссылки в прозе, что у .page-body a (site.css:241), иначе ссылка неотличима
   от обычного текста карточки. */
.walker-json-list a{ color:var(--red); text-decoration:underline; text-underline-offset:2px; }
.walker-json-list a:hover{ color:var(--red-deep); }
.walker-json-icon{ font-size:1.1rem; }
.walker-json-rating{ color:var(--red); font-weight:700; }
.walker-json-desc{ margin-top:4px; color:var(--ink-soft); font-size:.92rem; }
.walker-json-intro{ font-size:1.02rem; color:var(--ink-soft); }
.walker-json-tip{ color:var(--ink-soft); }

.walker-journey-cta{ margin:24px 0; }

.walker-map{ width:100%; height:60vh; min-height:320px; border:1px solid var(--line); margin-top:10px; }

@media (min-width:620px){
  .walker-map{ height:70vh; min-height:420px; }
}

/* ============================================================================
   task1346.3 — блоки главной страницы (новости, партнёрство ТИЦ, проекты
   партнёрства, лента регионов, карточка «Музейная бродилка»). Источник —
   единственный макет, описывающий структуру главной: wwwroot/design/
   golos-associacii.html:55-141,172-179,215-224. Токены/палитра переиспользованы
   из :root выше (не изобретены заново), брейкпоинты — 620px/900px, как везде.
   ============================================================================ */

/* Скрыт визуально, доступен для SEO/скринридеров — единственный видимый <h1>
   на главной дублировал бы .brand-title шапки (тоже «НАИТО»). Стандартный
   clip-паттерн, переиспользуем в других подзадачах при необходимости. */
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Альтернативный фон секции (в макете — inline style у блока «Партнёрство ТИЦ»). */
.section-alt{ background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }

/* ── Блок новостей (единственный на главной: .lead + .news-list) ── */
.news-block{ display:grid; grid-template-columns:1fr; gap:26px; }
.lead-photo{ aspect-ratio:4/3; overflow:hidden; margin:0 0 14px; background:var(--muted-bg); border:1px solid var(--line); }
.lead-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.lead h2{ font-size:clamp(23px,5.2vw,32px); line-height:1.28; margin-bottom:6px; margin-top:0; }
.lead h2 a:hover{ color:var(--red); }
.lead p{ color:var(--ink-soft); font-size:16px; }
.meta{ font-size:13px; color:var(--ink-soft); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.meta .icon{ width:14px; height:14px; }
.meta-top{ margin-bottom:12px; }

.news-list{ display:flex; flex-direction:column; gap:18px; padding-top:20px; border-top:2px solid var(--ink); }
.news-item{ padding-bottom:18px; border-bottom:1px solid var(--line); }
.news-item:last-of-type{ border-bottom:none; }
.news-item .ni-photo{ aspect-ratio:4/3; overflow:hidden; margin-bottom:10px; background:var(--muted-bg); border:1px solid var(--line); }
.news-item .ni-photo img{ width:100%; height:100%; object-fit:cover; }
.news-item h3{ font-size:17px; line-height:1.35; margin-bottom:4px; margin-top:0; }
.news-item h3 a:hover{ color:var(--red); }
.news-item p{ font-size:14px; color:var(--ink-soft); margin:6px 0 0; }
.news-item .meta{ margin-top:6px; }
.news-more{ padding-top:4px; }

/* ── Партнёрство ТИЦ (тайлы) ── */
.tiles{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.tile{ background:var(--paper); border:1px solid var(--line); padding:18px 14px; text-align:center; min-height:var(--tap); }
.tile:hover{ border-color:var(--red); text-decoration:none; }
.tile .icon{ width:22px; height:22px; color:var(--red); margin-bottom:10px; }
.tile h3{ font-size:14px; text-transform:uppercase; letter-spacing:.03em; margin-bottom:6px; margin-top:0; }
.tile p{ font-size:13px; color:var(--ink-soft); margin:0; }

/* ── Проекты партнёрства ── */
.proj-list{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.proj-item{ background:var(--paper); padding:15px 16px; display:flex; gap:12px; align-items:flex-start; }
.proj-item .icon{ color:var(--blue); width:16px; height:16px; margin-top:3px; flex-shrink:0; }
.proj-item h3{ font-size:15px; margin-bottom:3px; margin-top:0; }
.proj-item p{ font-size:13.5px; color:var(--ink-soft); margin:0; }

/* ── Присоединиться к Партнёрству ── */
.join{ background:#fdfaf6; border:1px solid #e6ded3; border-top:5px solid var(--red); padding:26px 20px 24px; margin-top:26px; }
.join h2{ font-size:clamp(21px,5vw,27px); margin-bottom:10px; margin-top:0; }
.join .join-lead{ color:var(--ink-soft); font-size:15.5px; max-width:760px; }
.join-benefits{ display:grid; grid-template-columns:1fr; gap:16px; margin:22px 0 24px; }
.jb{ display:flex; gap:12px; align-items:flex-start; }
.jb .icon{ color:var(--red); width:17px; height:17px; margin-top:3px; flex-shrink:0; }
.jb h3{ font-size:15px; margin-bottom:3px; margin-top:0; }
.jb p{ font-size:13.5px; color:var(--ink-soft); margin:0; }
.join-actions{ display:flex; flex-direction:column; gap:12px; align-items:stretch; }
.join-actions .btn-red{ flex-shrink:0; }
.join-note{ font-size:13.5px; color:var(--ink-soft); display:flex; align-items:center; }

/* ── Лента регионов + карточка «Музейная бродилка» ── */
.secondary-block{ background:var(--muted-bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.regions-columns{ display:grid; grid-template-columns:1fr; gap:28px; align-items:start; }
.rf-item{ display:flex; flex-direction:column; gap:2px; padding:7px 0; border-bottom:1px dotted #cfcfcb; }
.rf-item:last-child{ border-bottom:none; }
.rf-date{ font-size:12.5px; color:var(--ink-soft); padding-top:5px; }
.rf-title{ display:block; font-size:15.5px; line-height:1.4; padding:7px 0; }
.rf-title:hover{ color:var(--red); }
.rf-src{ font-size:12.5px; color:#8a8f96; }
.rf-more{ margin-top:18px; }
.walker-card{ background:var(--paper); border:1px solid var(--line); }
.walker-card .wc-photo{ aspect-ratio:16/9; overflow:hidden; background:var(--muted-bg); }
.walker-card .wc-photo img{ width:100%; height:100%; object-fit:cover; }
/* Карточка на главной без фото конкретного музея (task1346-plan.md, «Допущения») —
   общая иллюстрация раздела: крупная иконка landmark на фоне --muted-bg. */
.walker-card .wc-photo.wc-photo-icon{ display:flex; align-items:center; justify-content:center; }
.walker-card .wc-photo-icon .icon{ width:64px; height:64px; color:var(--ink-soft); opacity:.5; }
.walker-card .wc-body{ padding:18px; }
.walker-card h3{ font-size:19px; margin-bottom:6px; margin-top:0; }
.walker-card p{ color:var(--ink-soft); font-size:14.5px; margin-bottom:14px; }

@media (min-width:620px){
  .tiles{ grid-template-columns:repeat(3,1fr); }
  .rf-item{ flex-direction:row; align-items:baseline; gap:14px; }
  .rf-date{ min-width:90px; white-space:nowrap; }
  .join{ padding:30px 28px 28px; }
  .join-benefits{ grid-template-columns:repeat(2,1fr); gap:20px 26px; }
  .join-actions{ flex-direction:row; align-items:center; gap:20px; }
  .walker-card .wc-photo-icon .icon{ width:88px; height:88px; }
}

@media (min-width:900px){
  .news-block{ grid-template-columns:1.7fr 1fr; gap:34px; }
  .news-list{ border-top:none; padding-top:0; border-left:1px solid var(--line); padding-left:30px; }
  .tiles{ grid-template-columns:repeat(5,1fr); }
  .join-benefits{ grid-template-columns:repeat(4,1fr); }
  .regions-columns{ grid-template-columns:2.2fr 1fr; }
}
