/* Typography: Montserrat. Desktop sizing keeps the previously approved enlarged scale. */
:root {
  --green: #5c8f2d;
  --green-dark: #467526;
  --orange: #f39200;
  --cream: #fffbea;
  --border: #e3e6d5;
  --text: #181a17;
}

html { font-size: 120%; scroll-padding-top: 100px; }
body {
  color: var(--text);
  background: #fff;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 16.8px;
}
a { color: inherit; }
a:hover { color: var(--green-dark); }
img { display: block; max-width: 100%; }
.container { max-width: 1200px; }
.card { --bs-card-border-color: var(--border); --bs-card-border-radius: .3rem; box-shadow: none; }
.list-group-item { border-color: #eceee5; }
.skip-link { position: fixed; top: -80px; left: 12px; z-index: 9999; background: #fff; padding: 10px 14px; border: 1px solid var(--green); }
.skip-link:focus { top: 12px; }

.top-ad {
  position: relative;
  overflow: hidden;
  min-height: 120px;
  background: radial-gradient(circle at 25% 15%, rgba(255,255,255,.82), transparent 35%), linear-gradient(90deg, #fffbd0, #fff5aa);
  border-bottom: 1px solid #d9ddaf;
}
.top-ad__inner { min-height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--green-dark); line-height: 1.15; }
.top-ad__inner strong { font-size: clamp(30px, 2.1vw, 43.2px); }
.top-ad__inner span { font-size: clamp(24px, 1.6vw, 34.8px); margin-top: 5px; }
.top-ad__leaves { position: absolute; right: -30px; top: -45px; width: 330px; height: 220px; opacity: .26; transform: rotate(-8deg); background:
  radial-gradient(ellipse at 15% 25%, #8fb93b 0 15%, transparent 16%),
  radial-gradient(ellipse at 42% 14%, #b6cf45 0 16%, transparent 17%),
  radial-gradient(ellipse at 66% 28%, #6fa62e 0 16%, transparent 17%),
  radial-gradient(ellipse at 48% 58%, #9ebd32 0 17%, transparent 18%),
  radial-gradient(ellipse at 85% 63%, #79a826 0 14%, transparent 15%);
}
.top-ad__leaves::after { content: ""; position: absolute; inset: 40px 90px 0 auto; width: 180px; height: 2px; background: #759a2d; transform: rotate(35deg); box-shadow: 48px 25px 0 #759a2d, 85px 52px 0 #759a2d; }

.site-header { background: rgba(255,255,255,.98); border-bottom: 1px solid #dfe6c1; z-index: 1030; }
.header-container { min-height: 88px; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--green-dark); font-weight: 500; text-decoration: none; }
.brand:hover { color: var(--green-dark); }
.brand-mark { width: 64px; flex: 0 0 64px; }
.brand-text { font-size: 30px; line-height: .94; letter-spacing: -.3px; }
.header-nav { gap: clamp(14px, 2vw, 34px); }
.header-nav .nav-link { padding-inline: 0 !important; font-weight: 500; font-size: 16.8px; color: #111; white-space: nowrap; }
.header-nav .nav-link:hover { color: var(--green); }
.site-search { width: 250px; flex: 0 0 250px; }
.site-search .form-control { height: 38px; border-color: #e0e0dc; font-size: 15.6px; }
.site-search .btn { width: 42px; display: grid; place-items: center; border-color: #e0e0dc; color: #111; }
.site-search .btn svg { width: 18px; height: 18px; }
.header-actions { flex: 0 0 auto; }
.age-mark { font-size: 50.4px; color: var(--orange); line-height: 1; font-weight: 400; }
.navbar-toggler { border-color: #d9ddcf; }

.page-main { padding: 22px 0 0; }
.sidebar-stack { display: flex; flex-direction: column; gap: 16px; }
.panel .card-body { padding: 18px; }
.panel-title { margin: 0 0 16px; color: var(--green); font-size: 22.8px; font-weight: 500; }
.panel-title.orange { color: var(--orange); }
.panel-link { display: inline-block; margin-top: 11px; font-size: 14.4px; text-decoration: underline; color: #666; }

.weather-brand { font-size: 24px; margin-bottom: 4px; }
.weather-brand b { color: #e42118; }
.weather-city { font-size: 14.4px; color: #747474; margin-bottom: 13px; }
.weather-current { display: grid; grid-template-columns: 44px auto 1fr; gap: 8px; align-items: center; }
.weather-icon { font-size: 37.2px; }
.weather-temp { font-size: 30.2px; line-height: 1; }
.weather-desc { font-size: 13.2px; line-height: 1.45; }
.weather-details { margin: 14px 0 12px; border-bottom: 1px solid #eee; }
.weather-details .list-group-item { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-inline: 0; font-size: 13.2px; background: transparent; }
.weather-details b { font-weight: 400; white-space: nowrap; }
.weather-forecast-title { color: #666; font-size: 14.4px; margin-bottom: 9px; }
.weather-forecast .col { display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 13.2px; }
.weather-forecast b { color: var(--green); }
.weather-forecast span { font-size: 27.6px; }
.weather-forecast strong { font-size: 15.6px; }
.weather-forecast small { color: #999; }

.events-list { background: linear-gradient(180deg, #fff, #fffdf5); }
.event-list-group { margin-inline: -2px; }
.event-row { display: grid; grid-template-columns: 53px 1fr; gap: 10px; padding: 9px 0; background: transparent; }
.event-row time { color: var(--green); line-height: 1.15; text-align: center; }
.event-row time strong, .event-row time small { display: block; }
.event-row time strong { font-size: 13.2px; }
.event-row time small { font-size: 10.8px; margin-top: 2px; }
.event-row > span { min-width: 0; }
.event-row b { display: block; font-size: 13.2px; line-height: 1.25; }
.event-row > span small { display: block; color: #777; font-size: 12px; margin-top: 3px; }

.invest-ad { position: relative; min-height: 271px; overflow: hidden; border-color: #dce6b5; background: #eff6c8; color: var(--green-dark); text-decoration: none; }
.invest-ad img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.invest-ad::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(245,251,198,.96) 0 53%, rgba(245,251,198,.18) 80%, transparent); }
.invest-ad .card-img-overlay { z-index: 1; padding: 17px; }
.ad-eyebrow { display: block; font-size: 10.8px; color: #6d7466; margin-bottom: 13px; }
.invest-ad strong { display: block; font-size: 24px; line-height: 1.15; }
.invest-ad .card-img-overlay > span:not(.ad-eyebrow) { display: block; font-size: 20.4px; margin-top: 8px; }
.invest-ad em { margin-top: 20px; font-style: normal; color: #fff; background: var(--orange); border-color: var(--orange); }

.hero-card { position: relative; overflow: hidden; }
.hero-media { position: relative; height: 300px; overflow: hidden; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; }
.label-orange { position: absolute; top: 14px; left: 14px; background: var(--orange); color: #fff; padding: 5px 10px; font-size: 13.2px; font-weight: 500; }
.hero-body { padding: 17px 20px 18px; }
.hero-body h1, .hero-body h2 { margin: 0 0 10px; font-size: 24px; line-height: 1.16; font-weight: 500; letter-spacing: -.35px; }
.hero-body p { font-size: 16.8px; line-height: 1.45; margin: 0 0 13px; color: #333; }
.meta { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; color: #999; font-size: 13.2px; }

.news-section { margin-top: 19px; }
.section-heading { display: flex; align-items: center; gap: 15px; margin-bottom: 8px; }
.section-heading h2, .section-title-inline { margin: 0; color: var(--green); font-size: 22.8px; font-weight: 500; }
.section-heading span { height: 1px; background: #9abb4d; flex: 1; }
.news-item { display: flex; gap: 19px; padding: 12px 0; background: #fff; }
.news-thumb { width: 180px; height: 112px; overflow: hidden; border-radius: 3px; }
.news-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.news-thumb:hover img, .useful-grid article:hover img, .story-image:hover img { transform: scale(1.035); }
.news-copy h3 { margin: 2px 0 8px; font-size: 20.4px; line-height: 1.15; font-weight: 500; }
.news-copy h3 a { text-decoration: none; }
.news-copy p { font-size: 15.6px; line-height: 1.35; color: #444; margin: 0 0 9px; }
.all-news-link { display: inline-block; margin-top: 7px; color: var(--green-dark); font-size: 14.4px; text-decoration: underline; }

/* Ссылки на подразделы текущего раздела (class/283/FormPrefix.html,
   $nc_core->nav->get_sub()) */
.section-subnav { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 18px; }
.section-subnav__item {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border: 1px solid var(--border);
  border-radius: .3rem;
  background: #fff;
  color: var(--green-dark);
  font-size: 14.4px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.section-subnav__item:hover { border-color: var(--green); background: var(--cream); color: var(--green-dark); }
.section-subnav__item.is-active { background: var(--green); border-color: var(--green); color: #fff; }

.family-ad { min-height: 515px; overflow: hidden; border-color: #e9ddb7; background: linear-gradient(180deg, #fff8df, #fff2bf); color: var(--green-dark); text-decoration: none; }
.family-ad .card-body { min-height: 220px; padding: 18px 24px 8px; background: radial-gradient(circle at 0 0, #fff, transparent 65%); z-index: 1; }
.family-ad strong { display: block; font-size: 33.6px; line-height: 1.08; margin-top: 6px; }
.family-ad p { font-size: 21.6px; line-height: 1.25; margin: 16px 0 0; }
.family-ad em { margin-top: 18px; font-style: normal; color: #fff; background: var(--orange); border-color: var(--orange); }
.family-ad img { width: 100%; height: 295px; object-fit: cover; object-position: center top; }
.popular-panel .card-body { padding: 17px 16px; }
.popular-list { --bs-list-group-numbered-counter-name: section; }
.popular-list .list-group-item { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; background: transparent; border-inline: 0; }
.popular-list .list-group-item::before { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; background: var(--green); color: #fff; font-weight: 500; }
.popular-list .list-group-item:nth-child(4)::before { background: #b69f18; }
.popular-list .list-group-item:nth-child(5)::before { background: var(--orange); }
.popular-list a { display: block; font-size: 14.4px; font-weight: 500; line-height: 1.35; text-decoration: none; }
.popular-list small { display: block; margin-top: 5px; color: #9b9b9b; font-size: 12px; }

.featured-event, .stories-panel { overflow: hidden; border-color: #ece5c8; background: linear-gradient(90deg, #fffef7, #fff8d7); }
.featured-event__copy { padding: 15px 20px 17px; }
.event-date { flex: 0 0 65px; background: #fff; border-radius: 3px; text-align: center; padding: 8px 5px; line-height: 1; color: var(--green); }
.event-date strong, .event-date span, .event-date small { display: block; }
.event-date strong { font-size: 34.8px; }
.event-date span { font-size: 14.4px; font-weight: 500; margin: 5px 0 4px; }
.event-date small { font-size: 10.8px; }
.featured-event h2 { margin: 1px 0 9px; font-size: 25.2px; font-weight: 500; line-height: 1.15; }
.featured-event p { font-size: 14.4px; line-height: 1.35; margin: 0 0 13px; }
.event-meta { font-size: 13.2px; color: #666; }
.featured-event .btn { margin-top: 18px; background: #79a915; border-color: #79a915; padding: 8px 16px; }
.featured-event__media img { width: 100%; height: 100%; min-height: 255px; object-fit: cover; }
.stories-panel .card-body { padding: 15px 20px 14px; }
.story-image { display: block; position: relative; height: 112px; overflow: hidden; border-radius: 3px; }
.story-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.story-image span { position: absolute; left: 7px; bottom: 5px; background: var(--orange); color: #fff; padding: 3px 6px; font-size: 10.8px; font-weight: 500; }
.stories-panel h3 { margin: 8px 0 4px; font-size: 16.8px; line-height: 1.15; font-weight: 500; }
.stories-panel h3 a { text-decoration: none; }
.stories-panel p { margin: 0 0 5px; font-size: 13.2px; line-height: 1.35; color: #555; }
.story-link { font-size: 12px; color: var(--green-dark); }

.useful-section { border-color: #dce5bc; border-radius: 4px 4px 0 0; }
.useful-section .card-body { padding: 0 17px 18px; }
.section-heading--boxed { transform: translateY(-9px); margin-bottom: 0; }
.section-heading--boxed h2 { background: #fff; padding-right: 10px; }
.section-heading--boxed span { background: transparent; }
.useful-grid article { min-width: 0; }
.useful-grid a { text-decoration: none; }
.useful-grid img { width: 100%; aspect-ratio: 1.72; object-fit: cover; border-radius: 3px; transition: transform .3s ease; }
.useful-grid h3 { margin: 8px 0 3px; font-size: 14.4px; line-height: 1.18; font-weight: 500; }
.useful-grid p { margin: 0; color: #555; font-size: 12px; line-height: 1.3; }

.site-footer { background: linear-gradient(90deg, #558c28, #69a733); color: #fff; }
.footer-nav { gap: 8px 20px; }
.footer-nav .nav-link { color: #fff; font-size: 12px; padding: 0; }
.socials a { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: #fff; color: var(--green-dark); font-size: 9.6px; font-weight: 500; text-decoration: none; }

/* Responsive hardening for phones and tablets */
html, body { width: 100%; max-width: 100%; }
.row > *, .card-body, .news-copy, .event-row > span, .navbar-collapse { min-width: 0; }
h1, h2, h3, p, a, span, small { overflow-wrap: break-word; }
.site-search .form-control { min-width: 0; }
.navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(92,143,45,.2); }
.navbar-toggler, .site-search .btn, .btn { touch-action: manipulation; }

@media (min-width: 1200px) {
  .right-sidebar-grid { height: 100%; }
}

/* Small desktop and large landscape tablets: 992–1199 px */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .header-container { gap: 12px; }
  .brand { gap: 9px; }
  .brand-mark { width: 54px; flex-basis: 54px; }
  .brand-text { font-size: 25.2px; }
  .header-nav { gap: 12px; }
  .header-nav .nav-link { font-size: 15.6px; }
  .site-search { width: 205px; flex-basis: 205px; }
  .age-mark { font-size: 43.2px; }
  .hero-media { height: 280px; }
  .news-thumb { width: 160px; }
  .right-sidebar-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
  .family-ad, .popular-panel { height: 100%; }
}

/* Tablets: 768–991 px */
@media (min-width: 768px) and (max-width: 991.98px) {
  html { scroll-padding-top: 20px; }
  .top-ad, .top-ad__inner { min-height: 100px; }
  .top-ad__inner strong { font-size: clamp(27.6px, 4vw, 34.8px); }
  .top-ad__inner span { font-size: clamp(21.6px, 3vw, 27.6px); }
  .site-header { position: relative !important; }
  .header-container { min-height: 82px; padding-block: 8px; gap: 12px; }
  .brand { flex: 1 1 auto; }
  .brand-mark { width: 52px; flex-basis: 52px; }
  .brand-text { font-size: 25.2px; }
  .age-mark { font-size: 38.4px; }
  .navbar-toggler { min-width: 46px; min-height: 44px; }
  .navbar-collapse { flex-basis: 100%; padding-bottom: 10px; }
  .header-nav { gap: 0; margin-top: 5px; }
  .header-nav .nav-link { min-height: 46px; display: flex; align-items: center; padding: 10px 4px !important; border-top: 1px solid #eee; }
  .site-search { width: 100%; flex-basis: 100%; margin: 6px 0 2px; }
  .site-search .form-control, .site-search .btn { min-height: 46px; }
  .page-main { padding-top: 18px; }
  .hero-media { height: clamp(300px, 43vw, 390px); }
  .hero-body h1 { font-size: clamp(28.8px, 4vw, 36px); }
  .sidebar-stack:not(.right-sidebar-grid) {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    grid-template-areas: "weather events" "weather invest";
    align-items: stretch;
  }
  .sidebar-stack:not(.right-sidebar-grid) > .weather-card { grid-area: weather; }
  .sidebar-stack:not(.right-sidebar-grid) > .events-list { grid-area: events; }
  .sidebar-stack:not(.right-sidebar-grid) > .invest-ad { grid-area: invest; min-height: 250px; }
  .right-sidebar-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
  .right-sidebar-grid > * { height: 100%; }
  .family-ad { min-height: 475px; }
  .family-ad img { height: 270px; }
  .featured-event__media img { min-height: 285px; }
  .story-image { height: 165px; }
  .useful-grid h3 { font-size: 15.6px; }
  .useful-grid p { font-size: 13.2px; }
}

/* Small tablets and large phones: 576–767 px */
@media (min-width: 576px) and (max-width: 767.98px) {
  html { scroll-padding-top: 16px; }
  body { font-size: 15.6px; }
  .top-ad, .top-ad__inner { min-height: 92px; }
  .top-ad__inner strong { font-size: 27.6px; }
  .top-ad__inner span { font-size: 21.6px; }
  .site-header { position: relative !important; }
  .header-container { min-height: 78px; padding-block: 8px; gap: 10px; }
  .brand { flex: 1 1 auto; gap: 8px; }
  .brand-mark { width: 48px; flex-basis: 48px; }
  .brand-text { font-size: 24px; }
  .age-mark { font-size: 36px; }
  .navbar-toggler { min-width: 46px; min-height: 44px; }
  .navbar-collapse { flex-basis: 100%; padding-bottom: 10px; }
  .header-nav { gap: 0; margin-top: 5px; }
  .header-nav .nav-link { min-height: 46px; display: flex; align-items: center; padding: 10px 4px !important; border-top: 1px solid #eee; }
  .site-search { width: 100%; flex-basis: 100%; margin: 6px 0 2px; }
  .site-search .form-control, .site-search .btn { min-height: 46px; }
  .page-main { padding-top: 16px; }
  .hero-media { height: clamp(270px, 52vw, 360px); }
  .hero-body h1 { font-size: clamp(26.4px, 4.8vw, 32.4px); }
  .news-thumb { width: 155px; height: 105px; }
  .sidebar-stack:not(.right-sidebar-grid) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
  }
  .sidebar-stack:not(.right-sidebar-grid) > .weather-card { grid-column: 1 / -1; }
  .sidebar-stack:not(.right-sidebar-grid) > * { height: 100%; }
  .invest-ad { min-height: 315px; }
  .right-sidebar-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
  .right-sidebar-grid > * { height: 100%; }
  .family-ad { min-height: 490px; }
  .family-ad .card-body { padding-inline: 18px; }
  .family-ad strong { font-size: 30px; }
  .family-ad p { font-size: 19.2px; }
  .featured-event__media img { min-height: 280px; }
  .story-image { height: 180px; }
  .useful-grid h3 { font-size: 15.6px; }
  .useful-grid p { font-size: 13.2px; }
}

/* Phones: up to 575 px */
@media (max-width: 575.98px) {
  html { font-size: 112.5%; scroll-padding-top: 12px; }
  body { font-size: 15.6px; }
  .container { --bs-gutter-x: 1.25rem; }
  .top-ad, .top-ad__inner { min-height: 82px; }
  .top-ad__inner { padding-block: 10px; }
  .top-ad__inner strong { font-size: clamp(19.2px, 6vw, 25.2px); line-height: 1.08; }
  .top-ad__inner span { font-size: clamp(16.8px, 5vw, 20.4px); }
  .top-ad__leaves { width: 220px; opacity: .16; right: -80px; }
  .site-header { position: relative !important; }
  .header-container { min-height: 70px; padding-block: 7px; gap: 8px; }
  .brand { flex: 1 1 auto; gap: 7px; min-width: 0; }
  .brand-mark { width: 40px; flex-basis: 40px; }
  .brand-text { font-size: clamp(18px, 5vw, 21.6px); }
  .age-mark { font-size: clamp(28.8px, 8vw, 34.8px); white-space: nowrap; }
  .navbar-toggler { min-width: 44px; min-height: 44px; padding: 5px 8px; }
  .navbar-collapse { flex-basis: 100%; padding-bottom: 10px; }
  .header-nav { gap: 0; margin-top: 4px; }
  .header-nav .nav-link { min-height: 46px; display: flex; align-items: center; padding: 10px 3px !important; border-top: 1px solid #eee; font-size: 15.6px; }
  .site-search { width: 100%; flex-basis: 100%; margin: 6px 0 2px; }
  .site-search .form-control, .site-search .btn { min-height: 46px; }
  .page-main { padding-top: 14px; }
  .page-main > .container > .row { --bs-gutter-y: 1rem; }
  .panel .card-body { padding: 15px; }
  .panel-title, .section-heading h2, .section-title-inline { font-size: 21.6px; }
  .hero-media { height: clamp(215px, 61vw, 300px); }
  .label-orange { top: 10px; left: 10px; font-size: 12px; padding: 5px 8px; }
  .hero-body { padding: 14px; }
  .hero-body h1 { font-size: clamp(24px, 7vw, 30px); line-height: 1.13; }
  .hero-body p { font-size: 15.6px; }
  .meta { gap: 8px 12px; font-size: 12px; }
  .news-item { gap: 12px; }
  .news-thumb { width: 128px; height: 96px; }
  .news-copy h3 { margin-top: 0; font-size: 16.8px; line-height: 1.2; }
  .news-copy p { display: none; }
  .sidebar-stack:not(.right-sidebar-grid), .right-sidebar-grid { display: grid; grid-template-columns: 1fr; }
  .sidebar-stack > * { width: 100%; height: auto; }
  .weather-current { grid-template-columns: 42px auto minmax(0, 1fr); }
  .weather-details .list-group-item { font-size: 12.6px; }
  .invest-ad { min-height: 300px; }
  .family-ad { min-height: 500px; }
  .family-ad img { height: 275px; }
  .featured-event__copy { padding: 14px; }
  .featured-event__copy .d-flex { gap: 10px !important; }
  .event-date { flex-basis: 55px; }
  .event-date strong { font-size: 31.2px; }
  .featured-event h2 { font-size: 21.6px; }
  .event-meta { line-height: 1.55; }
  .featured-event__media img { min-height: 245px; }
  .story-image { height: 190px; }
  .useful-section .card-body { padding-inline: 14px; }
  .useful-grid h3 { font-size: 14.4px; }
  .useful-grid p { font-size: 12.6px; }
  .footer-nav { gap: 8px 18px; }
  .footer-nav .nav-link { min-height: 34px; display: flex; align-items: center; font-size: 13.2px; }
  .socials a { width: 38px; height: 38px; font-size: 12px; }
}

/* Narrow phones: up to 420 px */
@media (max-width: 420px) {
  .container { --bs-gutter-x: 1rem; }
  .brand-mark { width: 36px; flex-basis: 36px; }
  .brand-text { font-size: 17.4px; }
  .age-mark { font-size: 28.8px; }
  .navbar-toggler { min-width: 42px; width: 42px; }
  .hero-media { height: clamp(205px, 64vw, 255px); }
  .hero-body h1 { font-size: 24px; }
  .news-item { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 10px; }
  .news-thumb { width: 108px; height: 86px; }
  .news-copy h3 { font-size: 15.6px; }
  .news-copy .meta span:last-child { display: none; }
  .weather-brand { font-size: 21.6px; }
  .weather-temp { font-size: 26.9px; }
  .weather-desc { font-size: 12px; }
  .weather-details .list-group-item { align-items: flex-start; }
  .weather-details b { white-space: normal; text-align: right; }
  .featured-event__copy .d-flex { display: block !important; }
  .event-date { width: 70px; margin-bottom: 12px; }
  .useful-grid { --bs-gutter-x: .75rem; --bs-gutter-y: 1rem; }
  .useful-grid h3 { font-size: 13.8px; }
  .useful-grid p { display: none; }
  .footer-nav { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Extra-narrow phones: 320–359 px */
@media (max-width: 359.98px) {
  .top-ad__inner strong { font-size: 18px; }
  .top-ad__inner span { font-size: 15.6px; }
  .brand-text { font-size: 15.6px; }
  .brand-mark { width: 32px; flex-basis: 32px; }
  .age-mark { font-size: 25.2px; }
  .header-container { gap: 5px; }
  .navbar-toggler { min-width: 40px; width: 40px; padding-inline: 5px; }
  .hero-media { height: 195px; }
  .hero-body h1 { font-size: 22.8px; }
  .hero-body p { font-size: 14.4px; }
  .news-item { grid-template-columns: 96px minmax(0, 1fr); }
  .news-thumb { width: 96px; height: 80px; }
  .news-copy h3 { font-size: 14.4px; }
  .news-copy .meta { font-size: 10.8px; }
  .weather-current { grid-template-columns: 36px auto minmax(0, 1fr); gap: 6px; }
  .weather-icon { font-size: 31.2px; }
  .weather-temp { font-size: 24.4px; }
  .family-ad strong { font-size: 28.8px; }
  .family-ad p { font-size: 18px; }
  .footer-nav { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media only screen and (max-width: 768px) {
  body:not(.layout-admin) .section,
  body:not(.layout-admin) section {
    padding: 0;
  }

  #header .header-actions,
  #header .header-actions .age-mark {
    padding-right: 0 !important;
    border: 0 !important;
    border-right: 0 !important;
    border-inline-end: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
  }

  #header .header-actions::before,
  #header .header-actions::after,
  #header .header-actions .age-mark::before,
  #header .header-actions .age-mark::after {
    display: none !important;
    content: none !important;
    border: 0 !important;
  }
}

/* ==========================================================================
   Внутренняя страница новости: две колонки + interleaved mobile flow.
   ========================================================================== */
.article-page {
  padding-bottom: 32px;
}

.article-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  grid-template-areas:
    "primary sidebar"
    "secondary sidebar";
  gap: 28px 24px;
  align-items: start;
}

.article-page__primary {
  grid-area: primary;
}

.article-page__secondary {
  grid-area: secondary;
}

.article-page__sidebar {
  grid-area: sidebar;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  gap: 18px;
  min-width: 0;
  width: 100%;
  visibility: visible;
  opacity: 1;
  overflow: visible;
}

.article-page__weather,
.article-page__popular {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.article-page__popular {
  position: sticky;
  top: 0;
  z-index: 1;
  max-height: calc(100vh - 122px);
  overflow-y: auto;
  background: #fff;
}

.article-page .stream-article__header {
  padding-bottom: 22px;
}

.article-page .stream-article__lead {
  margin-bottom: 18px;
}

.article-page .stream-article__figure img,
.article-page .stream-article__inline-figure img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.stream-article__inline-figure,
.stream-article__video {
  margin: 28px 0;
}

.stream-article__inline-figure {
  padding: 0;
  background: #f2f4ee;
}

.stream-article__inline-figure figcaption,
.stream-article__video figcaption {
  padding: 9px 12px 0;
  color: #777c73;
  font-size: 12px;
  line-height: 1.45;
}

.stream-article__video iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.stream-article__read-more {
  margin: 28px 0;
  padding: 18px 20px;
  background: #f5f8ec;
  border: 1px solid #dce5bc;
  border-radius: 4px;
}

.stream-article__read-more-title {
  margin: 0 0 10px;
  color: var(--green-dark);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .035em;
}

.stream-article__read-more ul {
  margin: 0;
  padding-left: 20px;
}

.stream-article__read-more li + li {
  margin-top: 8px;
}

.stream-article__read-more a {
  color: #283121;
  font-size: 15px;
  line-height: 1.45;
}

.stream-article__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.stream-article__author {
  display: grid;
  gap: 3px;
}

.stream-article__author span {
  color: #858a80;
  font-size: 12px;
}

.stream-article__author strong {
  color: #252a22;
  font-size: 15px;
}

.stream-article__share-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.stream-article__share-links .btn {
  min-height: 40px;
  padding: 8px 12px;
  font-size: 12px;
}

.article-page__divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  color: #858a80;
  font-size: 11px;
  letter-spacing: .08em;
}

.article-page__divider::before,
.article-page__divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: #dfe3da;
}

.article-page__secondary .stream-article__title {
  font-size: clamp(29px, 3vw, 42px);
}

@media (max-width: 1199.98px) and (min-width: 992px) {
  .article-page-layout {
    grid-template-columns: minmax(0, 2fr) minmax(260px, .9fr);
  }

  .article-page__popular {
    top: 0;
  }
}

@media (max-width: 991.98px) {
  .article-page-layout {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .article-page__primary,
  .article-page__secondary,
  .article-page__sidebar {
    grid-area: auto;
  }

  .article-page__primary {
    order: 1;
  }

  .article-page__sidebar {
    order: 2;
    display: flex;
    flex-direction: column;
    align-self: auto;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  .article-page__popular {
    order: 2;
    position: static;
    inset: auto;
    z-index: auto;
    max-height: none;
    overflow: visible;
    transform: none;
  }

  .article-page__weather {
    order: 1;
    position: static;
    inset: auto;
    z-index: auto;
    transform: none;
  }

  .article-page__secondary {
    order: 3;
  }
}

@media (max-width: 767.98px) {
  .article-page {
    padding-bottom: 20px;
  }

  .article-page-layout {
    gap: 14px;
  }

  .article-page .stream-article__header,
  .article-page .stream-article__content {
    padding: 16px 14px;
  }

  .article-page .stream-article h1,
  .article-page .stream-article__title,
  .article-page__secondary .stream-article__title {
    font-size: clamp(23px, 7.2vw, 30px);
    line-height: 1.12;
  }

  .article-page .stream-article__lead {
    font-size: 15px;
  }

  .article-page .stream-article__figure figcaption {
    padding-inline: 14px;
  }

  .stream-article__footer {
    display: grid;
  }

  .stream-article__share-links .btn {
    min-height: 44px;
  }

  .stream-article__inline-figure,
  .stream-article__video,
  .stream-article__read-more {
    margin-block: 22px;
  }
}



/* ==========================================================================
   Main responsive layout — штатная сетка Bootstrap/SOW row/col/order.
   ========================================================================== */
.main-layout {
  --bs-gutter-x: 24px;
  --bs-gutter-y: 24px;
  align-items: start;
}

.main-content {
  min-width: 0;
  position: relative;
  z-index: 0;
}

.main-sidebar {
  min-width: 0;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  z-index: auto !important;
}

.main-layout .sidebar-stack,
.main-layout .right-sidebar-grid {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.main-layout .card,
.main-layout .panel,
.main-layout .invest-ad,
.main-layout .family-ad,
.main-layout .popular-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Phones and small tablets: one clear vertical stream. */
@media (max-width: 767.98px) {
  .main-layout {
    --bs-gutter-y: 18px;
  }

  .main-layout .sidebar-stack,
  .main-layout .sidebar-stack:not(.right-sidebar-grid),
  .main-layout .right-sidebar-grid {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .main-layout .sidebar-stack > * {
    height: auto;
    min-height: 0;
  }

  .main-layout .invest-ad { min-height: 280px; }
  .main-layout .family-ad { min-height: 0; }
  .main-layout .family-ad img { height: auto; aspect-ratio: 16 / 10; }

  /* Порядок на телефоне: первая новость → погода (кратко) → самое читаемое. */
  .main-content { order: 1; }
  .main-sidebar--left { order: 2; }
  .main-sidebar--right { order: 3; }

  /* Погода на телефоне — укороченная карточка: без деталей и прогноза на 4 дня. */
  .main-sidebar--left .weather-card .weather-details,
  .main-sidebar--left .weather-card .weather-forecast-title,
  .main-sidebar--left .weather-card .weather-forecast {
    display: none;
  }
}

/* Tablets and small notebooks: content first, sidebars side by side below it. */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .main-layout {
    --bs-gutter-y: 24px;
  }

  .main-layout .sidebar-stack,
  .main-layout .sidebar-stack:not(.right-sidebar-grid),
  .main-layout .right-sidebar-grid {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .main-layout .sidebar-stack > * {
    width: 100%;
    height: auto;
  }

  .main-layout .weather-card,
  .main-layout .events-list,
  .main-layout .popular-panel,
  .main-layout .invest-ad,
  .main-layout .family-ad {
    min-height: 0;
  }

  .main-layout .family-ad img {
    height: auto;
    aspect-ratio: 16 / 10;
  }
}

/* Desktop: stable three-column composition. */
@media (min-width: 1200px) {
  .main-sidebar--left,
  .main-sidebar--right,
  .main-content {
    align-self: start;
  }

  .main-layout .sidebar-stack,
  .main-layout .right-sidebar-grid {
    display: flex !important;
    flex-direction: column;
    grid-template-columns: none !important;
    height: auto;
  }
}

/* ==========================================================================
   Header fixes: equal search controls and closable mobile offcanvas menu.
   ========================================================================== */
.header-offcanvas {
  flex: 1 1 auto;
  min-width: 0;
}

.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.mobile-menu-brand {
  flex: 1 1 auto;
  min-width: 0;
}

.mobile-menu-brand .brand-mark {
  width: 46px;
  flex: 0 0 46px;
}

.mobile-menu-brand .brand-text {
  font-size: 22px;
}

.mobile-menu-close-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin: 0 -8px 0 0;
  padding: 0;
  color: #202020;
  background: transparent;
  border: 0;
  border-radius: 0;
  font: inherit;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}

.mobile-menu-close-icon span {
  display: block;
  transform: translateY(-1px);
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
}

.mobile-menu-close-icon:hover,
.mobile-menu-close-icon:focus-visible {
  color: var(--green-dark);
  background: transparent;
  outline: none;
}

.mobile-menu-close-icon:focus-visible {
  box-shadow: 0 0 0 3px rgba(92, 143, 45, .2);
}

.site-search > .form-control,
.site-search > .btn {
  height: 40px;
  min-height: 40px;
  box-sizing: border-box;
}

.site-search > .btn {
  flex: 0 0 40px;
  width: 40px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.site-search > .btn svg {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

@media (min-width: 992px) {
  .header-offcanvas {
    position: static;
    z-index: auto;
    display: block !important;
    width: auto !important;
    height: auto !important;
    visibility: visible !important;
    transform: none !important;
    background: transparent;
    border: 0;
  }

  .header-offcanvas .offcanvas-body {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0;
    overflow: visible;
  }
}

@media (max-width: 991.98px) {
  .header-offcanvas {
    --bs-offcanvas-width: min(88vw, 380px);
    color: var(--text);
    background: #fff;
    box-shadow: -12px 0 40px rgba(0, 0, 0, .18);
  }

  .header-offcanvas .offcanvas-header {
    position: sticky;
    top: 0;
    z-index: 3;
    min-height: 68px;
    padding: max(12px, env(safe-area-inset-top)) 16px 12px;
    background: #fff;
    border-bottom: 1px solid #e6e9df;
  }

  .header-offcanvas .offcanvas-body {
    display: block;
    padding: 10px 16px calc(24px + env(safe-area-inset-bottom));
    overflow-y: auto;
  }

  .header-offcanvas .header-nav {
    margin-top: 0;
  }

  .header-offcanvas .header-nav .nav-link {
    min-height: 52px;
    padding: 12px 2px !important;
    border-top: 0;
    border-bottom: 1px solid #eceee7;
    font-size: 16px;
  }

  .header-offcanvas .site-search {
    width: 100%;
    max-width: none;
    margin: 18px 0 0;
  }

  .header-offcanvas .site-search > .form-control,
  .header-offcanvas .site-search > .btn {
    height: 46px;
    min-height: 46px;
  }

  .header-offcanvas .site-search > .btn {
    flex-basis: 46px;
    width: 46px;
  }

  .header-offcanvas .site-search > .btn svg {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
  }
}

/* ==========================================================================
   Detailed news page — explicit three-item grid
   ========================================================================== */

.hero-body h1 a {
  color: inherit;
  text-decoration: none;
}

/*
 * Важное исправление:
 * 1-я статья, сайдбар и 2-я статья — три соседних элемента одной CSS Grid.
 * Вторая статья занимает всю следующую строку. Поэтому она физически
 * не может оказаться под сайдбаром или быть им перекрыта.
 */
.news-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  grid-template-areas:
    "primary sidebar"
    "secondary secondary";
  gap: 24px 25px;
  align-items: start;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.stream-article--primary {
  grid-area: primary;
}

.news-detail-sidebar {
  grid-area: sidebar;
}

.stream-article--secondary {
  grid-area: secondary;
}

.stream-article,
.news-detail-sidebar,
.article-sidebar-stack {
  min-width: 0;
  max-width: 100%;
}

.stream-article {
  overflow: hidden;
  position: static !important;
  width: 100%;
  margin: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transform: none !important;
  z-index: auto !important;
}

.stream-article__header,
.stream-article__content {
  padding: 26px 30px;
}

.stream-article__category {
  margin-bottom: 9px;
  color: var(--orange);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .07em;
}

.stream-article h1,
.stream-article__title {
  margin: 0 0 14px;
  color: #20241d;
  font-size: clamp(34px, 3.55vw, 50px);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

.stream-article__title {
  font-size: clamp(32px, 3.2vw, 45px);
}

.stream-article__lead {
  max-width: 900px;
  margin: 0 0 17px;
  color: #454b40;
  font-size: 20px;
  line-height: 1.47;
}

.stream-article__meta {
  padding-top: 2px;
}

.stream-article__figure {
  margin: 0;
  background: #f2f4ee;
}

.stream-article__figure img {
  display: block;
  width: 100%;
  max-height: 540px;
  object-fit: cover;
}

.stream-article__figure figcaption {
  padding: 10px 30px 12px;
  color: #777c73;
  font-size: 12px;
  line-height: 1.45;
}

.stream-article__content {
  padding-top: 27px;
}

.stream-article__content p {
  margin: 0 0 20px;
  color: #272b25;
  font-size: 18px;
  line-height: 1.72;
}

.stream-article__content h2 {
  margin: 31px 0 14px;
  color: var(--green-dark);
  font-size: 27px;
  font-weight: 500;
  line-height: 1.2;
}

.stream-article__list {
  margin: 0 0 25px;
  padding-left: 25px;
}

.stream-article__list li {
  margin-bottom: 9px;
  padding-left: 4px;
  color: #272b25;
  font-size: 17px;
  line-height: 1.55;
}

.stream-article__list li::marker {
  color: var(--orange);
}

.stream-article__quote {
  margin: 28px 0;
  padding: 22px 24px;
  background: #fff9df;
  border-left: 5px solid var(--orange);
}

.stream-article__quote p {
  margin-bottom: 10px;
  color: #31372d;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.48;
}

.stream-article__quote footer {
  color: #74796f;
  font-size: 13px;
}

.stream-article__source {
  margin-top: 28px;
  padding-top: 16px;
  color: #777c73;
  border-top: 1px solid var(--border);
  font-size: 13px;
}

.stream-article__share {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-top: 18px;
}

.stream-article__share > span {
  margin-right: 3px;
  font-size: 14px;
  font-weight: 500;
}

.stream-article__share a {
  display: inline-grid;
  place-items: center;
  width: 37px;
  height: 37px;
  color: #fff;
  background: var(--green);
  border-radius: 50%;
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
}

.stream-article__share a:hover {
  color: #fff;
  background: var(--green-dark);
}

.stream-article__continuation {
  display: grid;
  grid-template-columns: minmax(25px, 1fr) auto minmax(25px, 1fr);
  align-items: center;
  gap: 14px;
  padding: 28px 30px 0;
  color: #92978e;
}

.stream-article__continuation span {
  height: 1px;
  background: #e1e4dc;
}

.stream-article__continuation b {
  font-size: 11px;
  letter-spacing: .085em;
}

/* Сайдбар полностью сброшен в обычный поток Grid. */
.news-detail-sidebar {
  display: block;
  position: static !important;
  inset: auto !important;
  float: none !important;
  width: 310px;
  max-width: 310px;
  margin: 0;
  padding: 0;
  align-self: start;
  transform: none !important;
  translate: none !important;
  z-index: auto !important;
}

.article-sidebar-stack {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
  width: 100%;
  margin: 0;
  position: static !important;
  transform: none !important;
}

.article-sidebar-stack > * {
  flex: 0 0 auto;
  position: relative;
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  transform: none !important;
  overflow: hidden;
}

.article-sidebar-stack .card-body,
.article-sidebar-stack .list-group,
.article-sidebar-stack .list-group-item {
  min-width: 0;
  max-width: 100%;
}

.article-sidebar-stack a,
.article-sidebar-stack span,
.article-sidebar-stack b,
.article-sidebar-stack strong,
.article-sidebar-stack small {
  overflow-wrap: anywhere;
}

.article-sidebar-stack .family-ad,
.article-sidebar-stack .invest-ad {
  height: auto;
}

.article-sidebar-stack .family-ad img {
  height: auto;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

/* Планшеты: статья, затем вторая статья, после них правая колонка. */
@media (max-width: 1199.98px) {
  .news-detail-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "primary"
      "secondary"
      "sidebar";
    gap: 24px;
  }

  .news-detail-sidebar {
    width: 100%;
    max-width: 100%;
  }

  .article-sidebar-stack {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}

@media (max-width: 767.98px) {
  .stream-article__header,
  .stream-article__content {
    padding: 20px 18px;
  }

  .stream-article h1,
  .stream-article__title {
    font-size: clamp(28px, 8.2vw, 37px);
    line-height: 1.1;
  }

  .stream-article__lead {
    font-size: 17px;
    line-height: 1.48;
  }

  .stream-article__figure figcaption {
    padding-inline: 18px;
  }

  .stream-article__content p {
    font-size: 16px;
    line-height: 1.65;
  }

  .stream-article__content h2 {
    font-size: 23px;
  }

  .stream-article__quote {
    padding: 18px;
  }

  .stream-article__quote p {
    font-size: 17px;
  }

  .stream-article__continuation {
    padding: 24px 18px 0;
  }

  .article-sidebar-stack {
    display: flex !important;
    flex-direction: column;
  }
}

@media (max-width: 575.98px) {
  .news-detail-grid {
    gap: 18px;
  }

  .stream-article {
    margin-inline: calc(var(--bs-gutter-x) * -.5);
    width: calc(100% + var(--bs-gutter-x));
    max-width: none;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .stream-article__figure img {
    min-height: 225px;
  }
}

@media (max-width: 359.98px) {
  .stream-article__header,
  .stream-article__content {
    padding-inline: 15px;
  }

  .stream-article h1,
  .stream-article__title {
    font-size: 26px;
  }

  .stream-article__continuation {
    padding-inline: 15px;
  }
}


/* ==========================================================================
   Главная страница: H1 и сетка новостей перед афишей
   ========================================================================== */

.home-page-heading {
  margin: 0 0 24px;
  padding: 4px 0 18px;
  border-bottom: 1px solid var(--border);
}

.home-page-heading h1 {
  margin: 0;
  color: #252a22;
  font-size: clamp(30px, 3.2vw, 44px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.035em;
}

.home-news-cards {
  margin-top: 28px;
}

.home-news-cards__heading {
  margin-bottom: 16px;
}

.home-news-cards__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.home-news-card {
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  background: #fff;
}

.home-news-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #eef1e9;
}

.home-news-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}

.home-news-card:hover .home-news-card__media img {
  transform: scale(1.035);
}

.home-news-card .card-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 15px 16px 16px;
}

.home-news-card__category {
  margin-bottom: 7px;
  color: var(--orange);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .065em;
}

.home-news-card h3 {
  margin: 0 0 9px;
  color: #242820;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.27;
}

.home-news-card h3 a {
  color: inherit;
  text-decoration: none;
}

.home-news-card h3 a:hover {
  color: var(--green-dark);
}

.home-news-card p {
  margin: 0 0 14px;
  color: #61665d;
  font-size: 14px;
  line-height: 1.48;
}

.home-news-card .meta {
  margin-top: auto;
  padding-top: 3px;
}

@media (max-width: 1199.98px) {
  .home-news-cards__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .home-page-heading {
    margin-bottom: 20px;
  }

  .home-news-cards__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .home-page-heading {
    margin-bottom: 16px;
    padding-bottom: 14px;
  }

  .home-page-heading h1 {
    font-size: clamp(27px, 8.4vw, 34px);
  }

  .home-news-cards {
    margin-top: 22px;
  }

  .home-news-cards__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .home-news-card {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
  }

  .home-news-card__media {
    height: 100%;
    min-height: 150px;
    aspect-ratio: auto;
  }

  .home-news-card .card-body {
    padding: 12px;
  }

  .home-news-card h3 {
    font-size: 15px;
    line-height: 1.25;
  }

  .home-news-card p {
    display: -webkit-box;
    margin-bottom: 9px;
    overflow: hidden;
    font-size: 13px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .home-news-card .meta {
    gap: 7px;
    font-size: 11px;
  }
}

@media (max-width: 379.98px) {
  .home-news-card {
    grid-template-columns: 108px minmax(0, 1fr);
  }

  .home-news-card__media {
    min-height: 142px;
  }

  .home-news-card p {
    -webkit-line-clamp: 2;
  }
}


/* ==========================================================================
   Redesign 2026-08: Montserrat, 12-material grid, mobile compact mode
   ========================================================================== */

button,
input,
select,
textarea {
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
}

/* 12 материалов: 4 карточки × 3 ряда на desktop. */
.home-news-cards {
  margin-top: 26px;
}

.home-news-cards__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.home-news-card__media {
  position: relative;
}

.home-news-card__badge {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  color: #fff;
  background: var(--orange);
  border-radius: 2px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .065em;
  line-height: 1;
}

.home-news-card--special .home-news-card__media::after {
  content: "";
  position: absolute;
  inset: 55% 0 0;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .34));
  pointer-events: none;
}

/* Новый блок афиши: слева баннер, справа список. */
.featured-event {
  background: #fff;
  border-color: var(--border);
}

.featured-event__copy.event-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  gap: 0;
  padding: 0;
}

.event-showcase__banner {
  position: relative;
  display: block;
  min-height: 360px;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}

.event-showcase__banner:hover {
  color: #fff;
}

.event-showcase__banner img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

.event-showcase__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.05) 32%, rgba(0,0,0,.76) 100%);
}

.event-showcase__banner-copy {
  position: absolute;
  right: 20px;
  bottom: 20px;
  left: 20px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.event-showcase__banner-copy small {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
}

.event-showcase__banner-copy strong {
  font-size: 25px;
  font-weight: 500;
  line-height: 1.08;
}

.event-showcase__banner-copy em {
  max-width: 360px;
  font-size: 13px;
  font-style: normal;
  line-height: 1.35;
}

.event-showcase__list {
  padding: 20px 20px 16px;
  background: #fffdf4;
}

.event-showcase__list .section-title-inline {
  margin-bottom: 9px;
}

.event-showcase__item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 11px 0;
  color: inherit;
  border-bottom: 1px solid #e8e4d3;
  text-decoration: none;
}

.event-showcase__item:hover {
  color: var(--green-dark);
}

.event-showcase__item time {
  display: grid;
  place-items: center;
  min-height: 50px;
  padding: 5px;
  color: var(--green-dark);
  background: #fff;
  border: 1px solid #e2e4d8;
  border-radius: 3px;
  line-height: 1;
}

.event-showcase__item time strong {
  font-size: 22px;
}

.event-showcase__item time span {
  margin-top: 4px;
  font-size: 9px;
  font-weight: 500;
}

.event-showcase__item > span {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.32;
}

.event-showcase__more {
  display: inline-block;
  margin-top: 13px;
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 500;
  text-decoration: underline;
}

/* Плейсхолдер счётчика Яндекс Метрики в футере. */
.yandex-counter-placeholder {
  display: block;
  width: 88px;
  height: 31px;
  border-radius: 3px;
}

/* Новый стандартный Bootstrap Offcanvas. На desktop он становится частью navbar. */
@media (min-width: 992px) {
  .header-offcanvas.offcanvas {
    position: static;
    inset: auto;
    z-index: auto;
    display: block !important;
    flex: 1 1 auto;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    visibility: visible !important;
    transform: none !important;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
}

/* Планшеты: 2 материала в ряд. */
@media (min-width: 576px) and (max-width: 991.98px) {
  .home-news-cards__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ==========================================================================
   Mobile: compact typography/spacing and stable menu
   ========================================================================== */
@media (max-width: 767.98px) {
  /* Базовая шкала уменьшена примерно на 30% относительно прежней увеличенной мобильной версии. */
  html {
    font-size: 84%;
    scroll-padding-top: 72px;
  }

  body {
    font-size: 12px;
  }

  .home-page-heading {
    display: block !important;
  }

  .home-page-heading h1 {
    font-size: 16px;
    line-height: 1.25;
  }

  .top-ad {
    min-height: 76px;
  }

  .top-ad__inner {
    min-height: 76px;
  }

  .top-ad__inner strong {
    font-size: 19px;
  }

  .top-ad__inner span {
    margin-top: 3px;
    font-size: 15px;
  }

  .header-container {
    min-height: 62px;
    gap: 10px;
  }

  .navbar-brand.brand > .brand-mark {
    width: 46px;
    flex-basis: 46px;
  }

  .navbar-brand.brand > .brand-text {
    font-size: 14px;
  }

  .age-mark {
    font-size: 30px;
  }

  .page-main {
    padding-top: 12px;
  }

  .main-layout {
    --bs-gutter-y: 14px;
  }

  .sidebar-stack,
  .right-sidebar-grid,
  .article-sidebar-stack {
    gap: 10px !important;
  }

  .panel .card-body {
    padding: 12px;
  }

  .panel-title {
    margin-bottom: 10px;
    font-size: 16px;
  }

  .hero-media {
    height: 215px;
  }

  .hero-body {
    padding: 12px 14px;
  }

  .hero-body h1,
  .hero-body h2 {
    margin-bottom: 7px;
    font-size: 17px;
    line-height: 1.12;
  }

  .hero-body p {
    margin-bottom: 8px;
    font-size: 12px;
    line-height: 1.38;
  }

  .meta {
    gap: 6px;
    font-size: 9px;
  }

  .section-heading,
  .section-title-inline {
    font-size: 16px;
  }

  .home-news-cards {
    margin-top: 16px;
  }

  .home-news-cards__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  /* На мобильном изображение только сверху, текст ниже. */
  .home-news-card {
    display: block;
  }

  .home-news-card__media {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .home-news-card .card-body {
    padding: 10px 11px 11px;
  }

  .home-news-card__category {
    margin-bottom: 5px;
    font-size: 8px;
  }

  .home-news-card h3 {
    margin-bottom: 6px;
    font-size: 12.5px;
    line-height: 1.24;
  }

  .home-news-card p {
    display: block;
    margin-bottom: 7px;
    font-size: 10px;
    line-height: 1.4;
    overflow: visible;
    -webkit-line-clamp: unset;
  }

  .home-news-card .meta {
    font-size: 8.5px;
  }

  .home-news-card__badge {
    left: 7px;
    bottom: 7px;
    min-height: 21px;
    padding: 3px 7px;
    font-size: 8px;
  }

  .featured-event__copy.event-showcase {
    grid-template-columns: minmax(0, 1fr);
  }

  .event-showcase__banner,
  .event-showcase__banner img {
    min-height: 230px;
  }

  .event-showcase__banner-copy {
    right: 13px;
    bottom: 13px;
    left: 13px;
    gap: 5px;
  }

  .event-showcase__banner-copy small {
    font-size: 8px;
  }

  .event-showcase__banner-copy strong {
    font-size: 18px;
  }

  .event-showcase__banner-copy em {
    font-size: 9px;
  }

  .event-showcase__list {
    padding: 12px;
  }

  .event-showcase__item {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 8px;
    padding: 8px 0;
  }

  .event-showcase__item time {
    min-height: 42px;
  }

  .event-showcase__item time strong {
    font-size: 17px;
  }

  .event-showcase__item time span {
    font-size: 7px;
  }

  .event-showcase__item > span {
    font-size: 10px;
  }

  .event-showcase__more {
    margin-top: 9px;
    font-size: 9px;
  }

  .stories-panel .card-body,
  .useful-section .card-body {
    padding: 10px;
  }

  .stories-panel h3 {
    margin: 6px 0 3px;
    font-size: 12px;
  }

  .stories-panel p {
    margin-bottom: 4px;
    font-size: 9.5px;
  }

  .story-link {
    font-size: 9px;
  }

  .useful-grid {
    --bs-gutter-x: 10px;
    --bs-gutter-y: 10px;
  }

  .useful-grid h3 {
    margin-top: 5px;
    font-size: 10px;
  }

  .useful-grid p {
    font-size: 8.5px;
  }

  .footer-nav {
    gap: 6px 12px;
  }

  .footer-nav .nav-link {
    font-size: 9px;
  }

  .site-footer .row {
    --bs-gutter-y: 10px;
  }

  .yandex-counter-placeholder {
    margin-inline: auto;
  }
}

@media (max-width: 991.98px) {
  .header-offcanvas {
    --bs-offcanvas-width: min(90vw, 340px);
  }

  .header-offcanvas .offcanvas-header {
    min-height: 52px;
    padding: max(8px, env(safe-area-inset-top)) 11px 8px;
  }

  .mobile-menu-header {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  /* Логотип в меню уменьшен на 20% от предыдущей версии. */
  .mobile-menu-brand {
    flex: 1 1 auto;
    max-width: calc(100% - 40px);
    gap: 8px;
  }

  .mobile-menu-brand .brand-mark {
    width: 37px;
    flex: 0 0 37px;
  }

  .mobile-menu-brand .brand-text {
    font-size: 17.5px;
    line-height: .94;
  }

  .mobile-menu-close-icon {
    position: static !important;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0 0 0 auto;
    padding: 0;
    z-index: 5;
  }

  .mobile-menu-close-icon span {
    transform: none;
    font-size: 31px;
    line-height: 1;
  }

  .header-offcanvas .offcanvas-body {
    padding: 7px 11px calc(16px + env(safe-area-inset-bottom));
  }

  .header-offcanvas .header-nav .nav-link {
    min-height: 44px;
    padding: 7px 1px !important;
    font-size: 11px;
  }

  .header-offcanvas .site-search {
    margin-top: 11px;
  }

  .header-offcanvas .site-search > .form-control,
  .header-offcanvas .site-search > .btn {
    height: 44px;
    min-height: 44px;
  }

  .header-offcanvas .site-search > .form-control {
    padding: 6px 9px;
    font-size: 11px;
  }

  .header-offcanvas .site-search > .form-control::placeholder {
    font-size: 11px;
  }

  .header-offcanvas .site-search > .btn {
    flex-basis: 44px;
    width: 44px;
  }

  .header-offcanvas .site-search > .btn svg {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
  }
}

@media (max-width: 575.98px) {
  .home-news-card {
    grid-template-columns: none;
  }

  .home-news-card__media {
    min-height: 0;
  }

  .stories-panel .row {
    --bs-gutter-x: 10px;
    --bs-gutter-y: 10px;
  }
}


/* ==========================================================================
   Афиша: 50% анонс + 50% мероприятия в 2 колонки
   ========================================================================== */

.featured-event--split {
  position: relative;
  overflow: hidden;
}

.featured-event-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 410px;
}

.featured-event-split__hero {
  position: relative;
  display: block;
  min-height: 410px;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}

.featured-event-split__hero:hover {
  color: #fff;
}

.featured-event-split__hero img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.featured-event-split__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.04) 28%, rgba(0,0,0,.8) 100%);
}

.featured-event-split__hero-copy {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.featured-event-split__label {
  margin-bottom: 12px;
  padding: 6px 9px;
  color: #fff;
  background: var(--orange);
  border-radius: 2px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .065em;
}

.featured-event-split__hero-copy time {
  margin-bottom: 7px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .055em;
}

.featured-event-split__hero-copy strong {
  max-width: 560px;
  font-size: clamp(27px, 3vw, 40px);
  font-weight: 500;
  line-height: 1.06;
}

.featured-event-split__hero-copy em {
  max-width: 520px;
  margin-top: 10px;
  font-size: 14px;
  font-style: normal;
  line-height: 1.45;
}

.featured-event-split__place {
  margin-top: 13px;
  font-size: 12px;
  font-weight: 500;
}

.featured-event-split__schedule {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 22px;
  background: #fffdf4;
}

.featured-event-split__schedule .section-title-inline {
  margin-bottom: 14px;
}

.featured-event-split__events {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
}

.featured-event-split__item {
  position: relative;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 13px 0;
  color: inherit;
  border-bottom: 1px solid #e7e3d4;
  text-decoration: none;
}

.featured-event-split__item:hover {
  color: var(--green-dark);
}

.featured-event-split__item time {
  display: grid;
  place-items: center;
  min-height: 50px;
  padding: 5px 4px;
  color: var(--green-dark);
  background: #fff;
  border: 1px solid #e0e2d8;
  border-radius: 3px;
  line-height: 1;
}

.featured-event-split__item time strong {
  font-size: 21px;
}

.featured-event-split__item time span {
  margin-top: 4px;
  font-size: 8px;
  font-weight: 500;
}

.featured-event-split__item-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.featured-event-split__item-copy b {
  font-size: 13px;
  line-height: 1.25;
}

.featured-event-split__item-copy small {
  color: #74786f;
  font-size: 10px;
  line-height: 1.3;
}

.featured-event-split__all {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 14px;
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 500;
  text-decoration: underline;
}

@media (max-width: 991.98px) {
  .featured-event-split {
    grid-template-columns: minmax(0, 1fr);
  }

  .featured-event-split__hero {
    min-height: 350px;
  }
}

@media (max-width: 767.98px) {
  .featured-event--split {
    margin-top: 14px !important;
  }

  .featured-event-split__hero {
    min-height: 250px;
  }

  .featured-event-split__hero-copy {
    right: 14px;
    bottom: 14px;
    left: 14px;
  }

  .featured-event-split__label {
    margin-bottom: 7px;
    padding: 4px 6px;
    font-size: 7.5px;
  }

  .featured-event-split__hero-copy time {
    margin-bottom: 5px;
    font-size: 8.5px;
  }

  .featured-event-split__hero-copy strong {
    font-size: 20px;
  }

  .featured-event-split__hero-copy em {
    margin-top: 6px;
    font-size: 9.5px;
  }

  .featured-event-split__place {
    margin-top: 7px;
    font-size: 8.5px;
  }

  .featured-event-split__schedule {
    padding: 12px;
  }

  .featured-event-split__schedule .section-title-inline {
    margin-bottom: 6px;
  }

  .featured-event-split__events {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 8px;
  }

  .featured-event-split__item {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 6px;
    padding: 8px 0;
  }

  .featured-event-split__item time {
    min-height: 38px;
    padding: 3px;
  }

  .featured-event-split__item time strong {
    font-size: 15px;
  }

  .featured-event-split__item time span {
    font-size: 6px;
  }

  .featured-event-split__item-copy {
    gap: 2px;
  }

  .featured-event-split__item-copy b {
    font-size: 8.5px;
    line-height: 1.2;
  }

  .featured-event-split__item-copy small {
    font-size: 7px;
  }

  .featured-event-split__all {
    padding-top: 10px;
    font-size: 8.5px;
  }
}

@media (max-width: 420px) {
  .featured-event-split__events {
    grid-template-columns: minmax(0, 1fr);
  }

  .featured-event-split__item {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .featured-event-split__item-copy b {
    font-size: 9.5px;
  }

  .featured-event-split__item-copy small {
    font-size: 7.5px;
  }
}

/* All emphasized elements use the heaviest available local face: 500. */
body :is(b, strong, h1, h2, h3, h4, h5, h6, .fw-semibold, .fw-bold, .fw-bolder) {
  font-weight: 500 !important;
}

/* Final mobile heading guard: overrides late SOW/template visibility rules. */
@media only screen and (max-width: 768px) {
  body:not(.layout-admin) .page-main > .container > .home-page-heading {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    margin: 0 0 14px !important;
    padding: 0 0 10px !important;
  }

  body:not(.layout-admin) .page-main > .container > .home-page-heading h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
    color: #252a22 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
  }

  #header .navbar-toggler {
    border-right: 0 !important;
    border-inline-end: 0 !important;
  }
}

/* Mobile article inserts must always remain in the document flow. */
@media (max-width: 991.98px) {
  body:not(.layout-admin) .article-page .stream-article__content {
    position: relative;
    z-index: auto;
  }

  body:not(.layout-admin) .article-page .stream-article__read-more {
    display: block !important;
    position: static !important;
    inset: auto !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    z-index: auto !important;
    overflow: visible !important;
    transform: none !important;
    translate: none !important;
    box-sizing: border-box;
  }
}

/* Final mobile sidebar guard: sidebar cards stay between the two articles. */
@media only screen and (max-width: 991.98px) {
  body:not(.layout-admin) .article-page .article-page-layout {
    display: flex !important;
    flex-direction: column !important;
    position: static !important;
    grid-template: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    transform: none !important;
    isolation: auto !important;
  }

  body:not(.layout-admin) .article-page .article-page__primary {
    order: 1 !important;
  }

  body:not(.layout-admin) .article-page .article-page__sidebar {
    order: 2 !important;
    display: flex !important;
    flex: 0 0 auto !important;
    flex-direction: column !important;
    align-self: stretch !important;
    position: static !important;
    inset: auto !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: auto !important;
    transform: none !important;
    translate: none !important;
    contain: none !important;
  }

  body:not(.layout-admin) .article-page .article-page__sidebar > .article-page__popular,
  body:not(.layout-admin) .article-page .article-page__sidebar > .article-page__weather {
    display: block !important;
    flex: 0 0 auto !important;
    align-self: stretch !important;
    position: static !important;
    inset: auto !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-inline: 0 !important;
    overflow: visible !important;
    z-index: auto !important;
    transform: none !important;
    translate: none !important;
  }

  body:not(.layout-admin) .article-page .article-page__sidebar > .article-page__popular {
    order: 2 !important;
  }

  body:not(.layout-admin) .article-page .article-page__sidebar > .article-page__weather {
    order: 1 !important;
  }

  body:not(.layout-admin) .article-page .article-page__secondary {
    order: 3 !important;
  }
}

/* ==========================================================================
   Журналисты: список /journalists/, страница автора, карточка в новости
   ========================================================================== */

.journalists-page {
  padding: 28px 0 40px;
}

.journalists-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.journalist-card {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: #fff;
}

.journalist-card__photo {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: #eef1e9;
}

.journalist-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.journalist-card .card-body {
  padding: 14px 16px 16px;
}

.journalist-card h3 {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 500;
}

.journalist-card h3 a {
  color: inherit;
  text-decoration: none;
}

.journalist-card h3 a:hover {
  color: var(--green-dark);
}

.journalist-card__position {
  margin: 0;
  color: #666;
  font-size: 13px;
}

.journalist-page-layout {
  margin: 0 auto;
  padding: 28px 0 40px;
}

.journalist-header {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 24px;
}

.journalist-header__photo {
  flex: 0 0 160px;
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 4px;
  background: #eef1e9;
}

.journalist-header__info h1 {
  margin: 0 0 6px;
  font-size: 28px;
  font-weight: 500;
}

.journalist-header__position {
  margin: 0 0 10px;
  color: var(--orange);
  font-size: 14px;
  font-weight: 500;
}

.journalist-header__short-info {
  margin: 0 0 10px;
  color: #444;
  font-size: 15px;
  line-height: 1.45;
}

.journalist-header__badge {
  display: inline-block;
  margin-bottom: 10px;
  padding: 3px 8px;
  color: #666;
  background: #f1f1f1;
  border-radius: 2px;
  font-size: 12px;
}

.journalist-header__contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  color: #666;
  font-size: 13px;
}

.journalist-bio {
  margin-bottom: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  color: #272b25;
  font-size: 16px;
  line-height: 1.65;
}

.journalist-articles__title {
  margin: 0 0 16px;
  color: var(--green);
  font-size: 20px;
  font-weight: 500;
}

.journalist-mini-card {
  display: flex;
  align-items: center;
  gap: 14px;
}

.journalist-mini-card__photo {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  background: #eef1e9;
}

.journalist-mini-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.journalist-mini-card__name {
  font-size: 15px;
  font-weight: 500;
  color: #252a22;
}

.journalist-mini-card__position {
  font-size: 12px;
  color: #858a80;
}

.journalist-mini-card__link {
  display: inline-block;
  margin-top: 2px;
  color: var(--green-dark);
  font-size: 12px;
  text-decoration: underline;
}

.news-pager {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
}

.feed-batch,
.news-feed-loader {
  display: contents;
}

.news-feed-loader__link {
  grid-column: 1 / -1;
  justify-self: center;
  margin-top: 8px;
}

.js-feed-sentinel {
  grid-column: 1 / -1;
  height: 1px;
}

/* Ссылки редактирования в админку на витринах главной (см.
   nc_home_item_edit_link()/nc_home_infoblock_edit_link() в
   netcat/modules/default/home_spots.inc.php). Карандаш — оверлей внутри
   карточки (position:absolute, сама карточка — position:relative), в
   поток/сетку не встраивается и не может её сломать. */
.nc-home-edit-link {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: rgba(255, 255, 255, .92);
  border: 1px solid #d5dbe0;
  border-radius: 4px;
  color: #1a87c2;
  font-size: 15px;
  line-height: 1;
  text-decoration: none;
}

.nc-home-edit-link:hover {
  background: #eef4f8;
}

.nc-home-edit-link--compact {
  top: 4px;
  right: 4px;
  width: 20px;
  height: 20px;
  font-size: 11px;
}

.nc-home-block-edit-link {
  display: inline-block;
  margin: 6px 0;
  font-size: 12px;
  color: #1a87c2;
  text-decoration: underline;
}

/* Афиша (class/339): герой и строки списка раньше были САМИ ссылкой <a> на
   всю карточку — вложенный <a> редактирования внутри такого <a> невалиден
   и ломает клики. Вместо этого карточка — div, а переход на статью даёт
   прозрачная ссылка на всю площадь под остальным содержимым (z-index ниже
   кнопки редактирования). */
.featured-event-split__hero-link,
.featured-event-split__item-link {
  position: absolute;
  inset: 0;
  /* Выше featured-event-split__hero-copy (z-index: 2), иначе клик по
     тексту/дате поверх фото перестаёт переходить на статью — сама ссылка
     не имеет видимого содержимого, так что перекрытие текста ничего не
     скрывает. Кнопка редактирования (.nc-home-edit-link, z-index: 5) всё
     равно остаётся выше и кликабельной. */
  z-index: 3;
}

@media (max-width: 991.98px) {
  .journalists-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .journalist-header {
    flex-direction: column;
  }

  .journalist-header__photo {
    width: 120px;
    height: 120px;
  }
}

@media (max-width: 575.98px) {
  .journalists-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Поиск по сайту (netcat_module_search_result) — чисто CSS поверх штатной
   разметки модуля (классы nc_search_*), логика/php-шаблоны не переписаны. */
.nc_search_form { margin: 4px 0 28px; }
.nc_search_form .nc_search { display: flex; flex-wrap: wrap; gap: 8px; max-width: 480px; }
.nc_search_form .nc_search input[type="text"] {
  flex: 1 1 220px;
  height: 42px;
  border: 1px solid var(--border);
  border-radius: .3rem;
  padding: 0 12px;
  font-size: 15.6px;
}
.nc_search_form .nc_search input[type="submit"],
.nc_search_form .nc_search button[type="submit"] {
  height: 42px;
  padding: 0 20px;
  border: 1px solid var(--green);
  border-radius: .3rem;
  background: var(--green);
  color: #fff;
  font-weight: 500;
  cursor: pointer;
}
.nc_search_form .nc_search input[type="submit"]:hover,
.nc_search_form .nc_search button[type="submit"]:hover { background: var(--green-dark); border-color: var(--green-dark); }
.nc_search_form .nc_search_input { flex: 1 1 auto; max-width: 480px; }
.nc_search_form .nc_search_arrow { display: none; }

.nc_search_status {
  padding: 14px 16px;
  border-radius: .3rem;
  margin: 16px 0;
  font-size: 15.6px;
}
.nc_search_no_results { background: var(--cream); border: 1px solid var(--border); color: var(--text); }
.nc_search_error { background: #fdecea; border: 1px solid #f3c2bd; color: #7a2e26; }

.nc_search_query_suggesion { margin-bottom: 14px; font-size: 15.6px; }
.nc_search_sort { color: #747474; font-size: 14.4px; margin-bottom: 14px; }
.nc_search_sort a { color: var(--green); text-decoration: underline; }
.nc_search_sort span { font-weight: 500; color: var(--text); }
.nc_search_range { color: #747474; font-size: 14.4px; margin-bottom: 10px; }

/* Сами результаты — те же карточки .home-news-card, что и в ленте новостей
   (см. RecordTemplate.html), в такой же CSS-грид-сетке, как
   .home-news-cards__grid — проект нигде не использует Bootstrap row/col для
   карточных сеток, только CSS Grid. */
.nc_search_results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 767.98px) {
  .nc_search_results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}
@media (max-width: 575.98px) {
  .nc_search_results { grid-template-columns: minmax(0, 1fr); }
}

.nc_search_pages { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.nc_search_nav { display: flex; align-items: center; gap: 12px; font-size: 14.4px; color: #747474; }
.nc_search_nav strong { color: var(--text); font-weight: 500; }
.nc_search_nav a { color: var(--green); text-decoration: underline; }
.nc_search_nav .nc_search_inactive { color: #bbb; }
.nc_search_pages a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--border);
  border-radius: .3rem;
  text-decoration: none !important;
  color: var(--text);
}
.nc_search_pages a:hover { border-color: var(--green); color: var(--green); }
