/* Правки поверх mind.css (копія design/mockups/html43/css/index.css).
   Тут — лише те, чого немає у верстці або що змінено рішеннями (design/README.md). */

/* Атрибут hidden сильніший за display з mind.css (вкладки, архів проєктів) */
[hidden] { display: none !important; }

/* Кнопки шапки — <button> замість <a> з макета */
button.header_menu_button, button.header_search_button, button.header_user_button, button.close_button {
  padding: 0; font: inherit; color: inherit; background-color: transparent; cursor: pointer;
  background-repeat: no-repeat; background-position: center;
}
button.button_more { font: inherit; background: none; cursor: pointer; }
.header_logo a { display: block; }
.header_logo img { display: block; max-width: 100%; height: auto; }

/* Липка шапка (Figma 744-7): виїжджає згори після прокрутки */
.fixed_menu { display: block; visibility: hidden; transform: translateY(-100%); transition: transform .2s, visibility .2s; }
.fixed_menu.is_visible { visibility: visible; transform: none; }

/* Велике меню — чорне на весь екран (Figma header/megamenu/mind_m3) */
.dropdown_menu, .dropdown_menu.fixed_dropdown_menu {
  top: 0; height: 100vh; height: 100dvh; padding: 0; z-index: 103;
  background: #131313; color: #fff; border: 0;
}
.dropdown_menu a, .dropdown_menu .main_menu_title { color: #fff; }
.dropdown_menu .main_menu_title { border-bottom-color: #9a9a9a; }
.dropdown_menu .main_menu_unit_item a:hover { color: #6f97ff; }
.dropdown_menu .main_menu_unit_b .main_menu_unit_item a { color: var(--blue); }
.dropdown_menu .main_menu_unit_b .main_menu_unit_item a:hover { color: #6f97ff; }
.dropdown_menu .main_menu_unit_all { margin-top: 6px; padding-top: 12px; border-top: 1px solid #3a3a3a; }
.dropdown_menu .main_menu_wrapper .button_more { border-color: #fff; color: #fff; }
.dropdown_menu .main_menu_archive { padding-top: 0; }
.dropdown_menu .button_item { filter: invert(1); }
.menu_head { position: relative; padding: 14px 20px 0; }
.menu_head .header_logo { margin: 0; max-width: 296px; }
.menu_head .menu_button, .menu_head .menu_button:hover {
  margin-top: 12px; background-color: var(--blue); border-color: var(--blue);
  background-image: url(../i/ico_menu_w.svg) !important;
}
.menu_head .close_button {
  position: absolute; top: 14px; right: 20px; margin: 0; float: none;
  border-color: #fff; background-image: url(../i/ico_close_w.svg);
}
.menu_head .close_button:hover { border-color: #6f97ff; }

/* Фото в картках — однакова пропорція 8:5 (у макеті 640×400), фото на s.mind.ua бувають різні */
.article_story_grid:not(.article_story_grid_mind) .article_img { aspect-ratio: 8 / 5; object-fit: cover; }

/* Меню-пігулки на вузькому екрані гортаються без видимої смуги */
.header_menu_main, .top_menu { scrollbar-width: none; }
.header_menu_main::-webkit-scrollbar, .top_menu::-webkit-scrollbar { display: none; }

/* Чорна плашка (ексклюзив, спецпроєкт) — у mind.css є лише спільні правила */
.b_marker_black { background: #111; color: #fff; }

/* Випадайка розділу без карток (рейтинги, проєкти, Mind Brand): посилання в кілька колонок */
.info_layer_content_links .info_layer_menu_wrapper { width: 100%; }
.info_layer_content_links .info_layer_menu { columns: 4 200px; column-gap: 40px; }
.info_layer_content_links .info_layer_menu_item { break-inside: avoid; }
.info_layer_title a { color: inherit; }

/* Головна: термінова новина (articles_breaking старого сайту) над «Головним сьогодні» */
.breaking_bar { margin: 0 20px 24px; padding: 12px 0; border-top: 1px solid #111; border-bottom: 1px solid #111; font-weight: 700; font-size: 18px; }
.breaking_bar .b_marker_red { margin: 0 10px 0 0; vertical-align: middle; }
.breaking_bar a:hover { color: var(--blue); }
.rates_grid_header small { font-weight: 400; text-transform: none; }
.rates_grid_item .rates_grid_title a:hover { color: var(--blue); }
.prices_note { font-size: 10px; text-transform: uppercase; color: #888; padding-top: 10px; }

/* ── Сторінка матеріалу ─────────────────────────────────────────────── */
/* Класи зі старих текстів (редактор старої адмінки) у стилі html43 */
.article_structure_text .post__frame { background: #efefef; padding: 30px 20px; margin: 25px 0 30px; font-size: 19px; font-weight: 700; }
.article_structure_text .post__frame p { padding: 6px 0; }
.article_structure_text .post__incut { margin: 30px 0 20px; padding: 14px 0 10px; border-top: 1px solid var(--blue); color: var(--blue); font-size: 26px; line-height: 1.2em; font-weight: 700; }
.article_structure_text h2 { font-size: 24px; line-height: 1.2em; font-weight: 700; padding: 22px 0 6px; }
.article_structure_text h3, .article_structure_text h4 { font-size: 20px; line-height: 1.25em; font-weight: 700; padding: 18px 0 4px; }
.article_structure_text a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.article_structure_text a:hover { text-decoration: none; }
.article_structure_text img { max-width: 100%; height: auto; }
.article_structure_text iframe { max-width: 100%; }
.article_structure_text ol { padding: 10px 0 10px 25px; }
.article_structure_text ol li { padding: 6px 0; }
.article_structure_text blockquote { margin: 20px 0; padding-left: 18px; border-left: 3px solid var(--blue); font-style: italic; }
.article_structure_text hr { border: 0; border-top: 1px solid #111; margin: 24px 0; }
.article_structure_text .img_box2_c, .article_structure_text .img_box2_fl { margin: 16px 0; font-size: 13px; line-height: 1.3em; }
.article_structure_text .img_box2_c img, .article_structure_text .img_box2_fl img { display: block; width: 100%; height: auto; margin-bottom: 6px; }
.article_structure_text .img_box2_fl { float: left; width: 50%; margin: 6px 20px 10px 0; }
.article_structure_text .img_source { font-size: 12px; color: #666; padding: 4px 0; }
.article_structure_text .img_box2_c a, .article_structure_text .img_box2_fl a { text-decoration: none; }
.article_structure_text .table2, .article_structure_text table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 16px 0; font-size: 14px; line-height: 1.3em; }
.article_structure_text td, .article_structure_text th { border-bottom: 1px solid #d9d9d9; padding: 10px 12px 10px 0; vertical-align: top; }
.article_structure_text thead, .article_structure_text .header2 { font-weight: 700; }
.article_structure_text td p, .article_structure_text th p { padding: 0; }
.article_structure_text::after { content: ""; display: block; clear: both; }

/* Плашка партнера (partners): над тегами й заголовком */
.article_partner { margin-bottom: 14px; font-size: 12px; text-transform: uppercase; }
.article_partner a { display: inline-flex; align-items: center; gap: 12px; }
.article_partner img { max-height: 40px; width: auto; }
.article_partner a:hover span { color: var(--blue); }

/* Відео YouTube: заставка, плеєр — після кліку (без важкого iframe на старті) */
.video_embed { position: relative; aspect-ratio: 16 / 9; background: #111; cursor: pointer; overflow: hidden; }
.video_embed img, .video_embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.video_play { position: absolute; top: 50%; left: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border: 0; border-radius: 50%; background: var(--red); cursor: pointer; }
.video_play::before { content: ""; position: absolute; top: 24px; left: 29px; border-style: solid; border-width: 12px 0 12px 20px; border-color: transparent transparent transparent #fff; }

.article_audio { margin: 10px 0; }
.article_disclaimer { font-size: 12px; font-weight: 400; line-height: 1.45em; padding: 16px 20px; }
.article_related { margin-top: 30px; padding-top: 16px; border-top: 1px solid #111; }
.article_related_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.article_related_grid .article_story_grid { width: auto; margin: 0; padding: 0; }
.article_header_date time { white-space: nowrap; }

/* ── Сторінка компанії (Figma company/d1, d11) ───────────────────────── */
.company { padding: 10px 20px 0; }
.company_hero { display: flex; gap: 40px; align-items: flex-start; padding: 32px 44px 36px; background: #e8edfc; }
.company_hero_logo img { display: block; width: 140px; height: 140px; border-radius: 50%; object-fit: contain; background: #fff; }
.company_hero_content { flex: 1; min-width: 0; }
.company_hero_tags { margin-bottom: 10px; }
.company_hero_title { font-size: 40px; line-height: 1.1em; font-weight: 700; margin-bottom: 10px; }
.company_hero_lead { font-size: 16px; line-height: 1.35em; max-width: 1000px; }
.company_hero_links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 16px; }
.company_hero_links .button_item { margin: 0; }
.company_pill { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border: 1px solid #111; border-radius: 20px; font-size: 13px; background: #fff; }
.company_pill:hover { border-color: var(--blue); color: var(--blue); }
.company_hero_chips { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.company_chip { display: block; padding: 12px 28px 12px; border-radius: 40px; background: #fff; }
.company_chip:hover { box-shadow: 0 0 0 1px var(--blue); }
.company_chip_label { display: block; font-size: 11px; text-transform: uppercase; }
.company_chip_value { display: block; font-size: 16px; font-weight: 700; padding-top: 4px; }
.company_chip_value .rating_grid__value { vertical-align: -1px; }
.company_tabs { display: flex; flex-wrap: wrap; gap: 10px; padding: 30px 0 24px; }
.company_tabs a { padding: 12px 24px 10px; border-radius: 30px; background: #e8edfc; color: var(--blue); font-size: 13px; font-weight: 700; text-transform: uppercase; }
.company_tabs a.is_active, .company_tabs a:hover { background: var(--blue); color: #fff; }
.company_figures { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding: 18px 0 20px; border-top: 1px solid #111; border-bottom: 1px solid #111; margin-bottom: 10px; scroll-margin-top: 80px; }
.company_figure_label { font-size: 11px; text-transform: uppercase; }
.company_figure_value { font-size: 17px; font-weight: 700; padding-top: 6px; }
.company_figures_note { grid-column: 1 / -1; font-size: 9px; text-transform: uppercase; color: #888; margin-top: -10px; }
.company_block { margin-bottom: 26px; }
.company_block .section_title { margin: 0; }
.company_subtitle { margin-top: 20px !important; }
.company_pubs { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: auto auto; gap: 24px 30px; }
.company_pubs .article_story_grid { width: auto; margin: 0; padding: 0; }
.company_pubs_main { grid-row: span 2; }
.company_pubs_main .article_title { font-size: 34px !important; line-height: 1.1em !important; }
.company_authors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.company_author { display: flex; align-items: center; gap: 16px; }
.company_author img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.company_author b { display: block; font-size: 13px; text-transform: uppercase; }
.company_author small { display: block; font-size: 11px; color: var(--blue); text-transform: uppercase; padding-top: 3px; }
.company_author:hover b { color: var(--blue); }
.company_grid { display: flex; gap: 40px; }
.company_main { flex: 1; min-width: 0; }
.company_side { width: 300px; flex-shrink: 0; }
.company_text { font-size: 17px; }
.company_hero_benef { font-size: 14px; line-height: 1.4em; padding-top: 10px; }
.company_sdg { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; max-width: 720px; }
.company_sdg a { display: block; aspect-ratio: 1; opacity: .25; transition: opacity .2s; }
.company_sdg a.is_active { opacity: 1; }
.company_sdg a:hover { opacity: .8; }
.company_sdg img { display: block; width: 100%; height: 100%; }
.company_analysis_total { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 4px 0 8px; }
.company_analysis_total b { font-size: 34px; line-height: 1; }
.company_analysis_table { width: 100%; max-width: 720px; border-collapse: collapse; font-size: 15px; }
.company_analysis_table th { text-align: left; font-weight: 400; padding: 10px 12px 10px 0; border-bottom: 1px solid #ddd; }
.company_analysis_table td { padding: 10px 0 10px 12px; border-bottom: 1px solid #ddd; white-space: nowrap; font-weight: 700; }
.company_analysis_table td:last-child { text-align: right; }
.company_side_text { font-size: 16px; line-height: 1.4em; padding-top: 4px; }

@media screen and (max-width: 1024px) {
  .company_grid { flex-direction: column; gap: 0; }
  .company_side { width: 100%; }
  .company_pubs { grid-template-columns: 1fr 1fr; }
  .company_pubs_main { grid-column: 1 / -1; grid-row: auto; }
  .company_figures { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 780px) {
  .company { padding: 10px 16px 0; }
  .company_hero { flex-direction: column; gap: 16px; padding: 22px 18px; }
  .company_hero_logo img { width: 90px; height: 90px; }
  .company_hero_title { font-size: 28px; }
  .company_pubs, .company_authors { grid-template-columns: 1fr; }
  .company_pubs_main .article_title { font-size: 24px !important; }
  .company_tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .company_tabs a { white-space: nowrap; }
}

/* ── Сторінки-списки (компонування mind3003, компоненти html43) ─────────── */
.listing { display: flex; gap: 40px; padding: 10px 20px 0; }
.listing_main { flex: 1; min-width: 0; }
.listing_side { width: 300px; flex-shrink: 0; }
.listing_side .news_grid_side .section_title { margin: 0; padding-top: 0; border: 0; }
.listing_title h1, .listing_title_text { font-size: 32px; line-height: 1.1em; font-weight: 700; text-transform: uppercase; padding: 6px 0 22px; }
.listing_profile { margin-bottom: 26px; }
.listing_profile .article_author_info_name { font-size: 28px; line-height: 1.15em; }
.listing_tabs { margin: 0 0 24px; padding: 0; }
.listing_top { display: grid; gap: 24px; margin-bottom: 28px; }
.listing_top_2 { grid-template-columns: repeat(2, 1fr); }
.listing_top_3 { grid-template-columns: repeat(3, 1fr); padding-bottom: 28px; border-bottom: 1px solid #111; }
.listing .article_story_grid { width: auto; margin: 0; padding: 0; }
.listing_top_2 .article_story_grid .article_title { font-size: 24px; line-height: 1.15em; }
.listing_row { display: flex; gap: 24px; padding: 20px 0; border-bottom: 1px solid #e3e3e3; }
.listing_row_media { flex: 0 0 220px; }
.listing_row_media img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
.listing_row_content { flex: 1; min-width: 0; }
.listing_row_title { font-size: 22px; line-height: 1.2em; font-weight: 700; margin: 6px 0 8px; }
.listing_row_title a:hover { color: var(--blue); }
.listing_row_lead { font-size: 15px; line-height: 1.35em; margin-bottom: 8px; }
.listing_row .article_tags > span { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--blue); }
.listing_row .article_date, .entity .listing_row .article_date { font-size: 10px; line-height: 1.1em; color: #888; text-transform: uppercase; padding: 5px 0; }

/* Окремі сторінки: персона (кругле фото), компанія (логотип), подія */
.entity_head { display: flex; align-items: center; gap: 20px; }
.entity_photo img { display: block; width: 120px; height: 120px; border-radius: 50%; object-fit: cover; }
.entity_logo img { display: block; max-width: 160px; max-height: 90px; width: auto; height: auto; }
.entity_materials { margin-top: 30px; }
.entity_materials .section_title { margin: 0; }
.entity .event { margin-bottom: 20px; }
.listing_empty { padding: 30px 0; font-size: 18px; color: #666; }

.news_top { margin-bottom: 30px; }
.news_top_title { margin: 0; padding-top: 0; border: 0; }
.news_top_grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; }
.news_day { padding-top: 10px; }
.news_day_title { font-size: 26px; font-weight: 700; text-transform: uppercase; padding: 20px 0 10px; border-top: 1px solid #111; }
.news_day_item { display: flex; gap: 16px; padding: 10px 0; border-bottom: 1px solid #efefef; }
.news_day_item time { flex: 0 0 44px; font-size: 13px; color: #666; padding-top: 3px; }
.news_day_link { font-size: 17px; line-height: 1.3em; }
.news_day_link:hover { color: var(--blue); }
.news_day_item.is_bold .news_day_link { font-weight: 700; }
.news_day_lead { font-size: 13px; line-height: 1.35em; color: #555; padding-top: 4px; }
.news_day_body .b_marker, .news_day_body .b_marker_red, .news_day_body .b_marker_black { margin: 0 8px 4px 0; }

.alphabet { position: sticky; top: 60px; z-index: 5; display: flex; flex-wrap: wrap; gap: 4px; padding: 10px 0; margin-bottom: 10px; background: #fff; border-bottom: 1px solid #111; }
.alphabet a { min-width: 30px; padding: 5px 8px 3px; border: 1px solid #111; border-radius: 20px; font-size: 12px; font-weight: 700; text-align: center; }
.alphabet a:hover { border-color: var(--blue); color: var(--blue); }
.directory_group { display: flex; gap: 20px; padding: 18px 0; border-bottom: 1px solid #e3e3e3; scroll-margin-top: 120px; }
.directory_letter { flex: 0 0 40px; font-size: 30px; font-weight: 700; color: var(--blue); line-height: 1; }
.directory_list { flex: 1; columns: 3 200px; column-gap: 30px; }
.directory_list li { break-inside: avoid; padding: 4px 0; font-size: 15px; line-height: 1.3em; }
.directory_list a:hover { color: var(--blue); }

/* Архів: календарі (mind3003/calendar) і день з навігацією */
.archive_title { display: flex; align-items: center; gap: 14px; }
.archive_title h1 { padding: 6px 0 22px; }
.archive_nav { width: 38px; height: 38px; margin-bottom: 16px; flex-shrink: 0; border: 1px solid #111; border-radius: 50%; background: url(../i/ico_arr.svg) no-repeat center; }
.archive_nav:hover { border-color: var(--blue); }
.archive_prev { transform: rotate(90deg); }
.archive_next { transform: rotate(-90deg); }
.archive_group { margin-bottom: 20px; }
.archive_group .section_title { margin: 0; }
.archive_year .section_title { margin: 0 0 10px; }
.archive_months { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px 24px; margin-bottom: 26px; }
.archive_month_title { font-size: 13px; font-weight: 700; text-transform: uppercase; padding-bottom: 6px; }
.archive_cal { width: 100%; border-collapse: collapse; font-size: 12px; }
.archive_cal th { font-weight: 400; color: #888; padding: 3px 0; text-align: center; font-size: 10px; text-transform: uppercase; }
.archive_cal td { text-align: center; padding: 2px 0; }
.archive_cal a, .archive_cal span { display: inline-block; width: 24px; line-height: 24px; border-radius: 50%; }
.archive_cal a { font-weight: 700; }
.archive_cal a:hover { background: var(--blue); color: #fff; }
.archive_cal span { color: #bbb; }
@media screen and (max-width: 780px) { .archive_months { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; } }
@media screen and (max-width: 420px) { .archive_cal a, .archive_cal span { width: 21px; line-height: 21px; } .archive_cal { font-size: 11px; } }

/* Рейтинги: таблиця (banks/rating.tpl, ratings/rating_*.tpl) і список /ratings (ratings/default.tpl) */
.rating_above { font-size: 12px; font-weight: 700; text-transform: uppercase; padding-top: 6px; }
.rating_above a, a.rating_above { color: var(--blue); }
.rating_title h1 { padding-top: 8px; }
.rating_text { font-size: 17px; margin-bottom: 24px; }
.rating_pubs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 28px; }
.rating_pubs .article_story_grid { width: auto; margin: 0; padding: 0; }
.rating_bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 16px 0 14px; border-top: 1px solid #111; }
.rating_date { font-size: 13px; font-weight: 700; text-transform: uppercase; }
.rating_period label { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; text-transform: uppercase; }
.rating_period select { height: 38px; padding: 0 36px 0 16px; border: 1px solid #111; border-radius: 20px; font: inherit; font-size: 13px; font-weight: 700; text-transform: none; background: #fff url(../i/ico_arr.svg) no-repeat right 12px center; -webkit-appearance: none; appearance: none; cursor: pointer; }
.rating_period select:hover { border-color: var(--blue); }
.rating_years { display: flex; flex-wrap: wrap; gap: 8px; }
.rating_years a { padding: 10px 18px 8px; border-radius: 20px; background: #e8edfc; color: var(--blue); font-size: 13px; font-weight: 700; }
.rating_years a.is_active, .rating_years a:hover { background: var(--blue); color: #fff; }
.rating_table_wrap { overflow-x: auto; margin-bottom: 24px; -webkit-overflow-scrolling: touch; }
.rating_table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.3em; }
.rating_table th { padding: 10px 10px 9px; background: #111; color: #fff; font-size: 11px; font-weight: 700; line-height: 1.25em; text-transform: uppercase; text-align: right; vertical-align: bottom; }
.rating_table th button { font: inherit; color: inherit; text-transform: inherit; text-align: inherit; background: none; border: 0; padding: 0 14px 0 0; cursor: pointer; position: relative; }
.rating_table th button::after { content: ""; position: absolute; right: 0; bottom: 3px; border: 4px solid transparent; border-top-color: currentColor; opacity: .35; }
.rating_table th[aria-sort="ascending"] button::after { bottom: 7px; border-top-color: transparent; border-bottom-color: currentColor; opacity: 1; }
.rating_table th[aria-sort="descending"] button::after { opacity: 1; }
.rating_table td { padding: 11px 10px 10px; border-bottom: 1px solid #ddd; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rating_table tbody tr:hover td { background: #f3f5fd; }
.rating_table .rating_name { text-align: left; white-space: normal; min-width: 180px; font-weight: 700; }
.rating_table td.rating_name a:hover { color: var(--blue); }
.rating_table .rating_place { text-align: center; width: 60px; }
.rating_table .rating_stars { text-align: left; }
.rating_table td.rating_stars b { display: inline-block; min-width: 26px; }
.rating_table .rating_spec { white-space: normal; text-align: left; min-width: 160px; font-size: 13px; }
.rating_table th.rating_name, .rating_table th.rating_stars, .rating_table th.rating_spec { text-align: left; }
.rating_note { margin: -12px 0 24px; font-size: 13px; font-style: italic; color: #666; }
.ratings_page { padding: 10px 20px 20px; }
.ratings_top { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.ratings_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ratings_card { position: relative; display: block; overflow: hidden; background: #26135e; color: #fff; min-height: 200px; }
.ratings_card_main { grid-row: span 2; }
.ratings_card_img img { display: block; width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; transition: transform .3s; }
.ratings_card:hover .ratings_card_img img { transform: scale(1.03); }
.ratings_card_body { position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 20px 18px; background: linear-gradient(to bottom, rgba(38,19,94,0), rgba(38,19,94,.95) 55%); }
.ratings_card_title { display: block; font-size: 18px; line-height: 1.2em; font-weight: 700; }
.ratings_card_main .ratings_card_title { font-size: 30px; line-height: 1.1em; }
.ratings_card_lead { display: block; font-size: 15px; line-height: 1.35em; padding-top: 10px; }
@media screen and (max-width: 1024px) {
  .ratings_top { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
  .ratings_card_main { grid-column: 1 / -1; grid-row: auto; min-height: 380px; }
  .ratings_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating_pubs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating_pubs .article_story_grid:first-child { grid-column: 1 / -1; }
}
@media screen and (max-width: 780px) {
  .rating_pubs, .ratings_top, .ratings_grid { grid-template-columns: minmax(0, 1fr); }
  .rating_pubs .article_story_grid:not(:first-child) .article_media { display: none; }
  .ratings_card_main { min-height: 300px; }
  .ratings_card_main .ratings_card_title { font-size: 22px; }
  .rating_table { font-size: 13px; }
  .rating_table .rating_name { position: sticky; left: 0; background: #fff; min-width: 140px; box-shadow: 1px 0 0 #ddd; }
  .rating_table th.rating_name { background: #111; }
}

/* Події, курси, лоти (events/calendar.tpl, courses.tpl, auctions/default.tpl) і головна «Освіти» */
.event_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; margin-bottom: 28px; }
.event_card_img { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #e8edfc; margin-bottom: 12px; }
.event_card_img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.event_card:hover .event_card_img img { transform: scale(1.03); }
.event_card_date { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--blue); padding-bottom: 6px; }
.event_card_title { font-size: 18px; line-height: 1.2em; font-weight: 700; }
.event_card_title a:hover { color: var(--blue); }
.event_card_price { font-size: 13px; color: #555; padding-top: 8px; }
.education .section_title { margin-top: 0; }
.education_pubs { margin-top: 4px; }
.education_more { margin: -8px 0 30px; }
@media screen and (max-width: 1024px) { .event_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media screen and (max-width: 560px) { .event_grid { grid-template-columns: minmax(0, 1fr); } }

.post_promo h2 { font-size: 22px; line-height: 1.2em; margin: 0 0 10px; }
.post_promo_button { margin: 14px 0 0 !important; }
.post_promo_button a { display: inline-flex; align-items: center; height: 42px; padding: 0 22px; border-radius: 21px; background: var(--blue); color: #fff !important; font-size: 13px; font-weight: 700; text-transform: uppercase; text-decoration: none !important; }
.post_promo_button a:hover { background: #111; }
.article_structure_text .rating_table_wrap { margin: 20px 0; }
.article_structure_text .rating_table { display: table; font-size: 14px; }
.article_structure_text .rating_table td, .article_structure_text .rating_table th { border: 0; border-bottom: 1px solid #ddd; }
.article_structure_text .rating_table th { border-bottom: 0; }

/* Спецблоки рейтингів у тексті (житлові комплекси, інноваційні компанії, НАБУ) */
.rating_blocks { margin: 24px 0; border-top: 1px solid #111; }
.rating_blocks_legend { display: flex; justify-content: space-between; padding: 12px 16px; background: #e8edfc; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.rating_blocks_item { border-bottom: 1px solid #ddd; }
.rating_blocks_head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 16px; cursor: pointer; list-style: none; }
.rating_blocks_head::-webkit-details-marker { display: none; }
details.rating_blocks_item > summary::after { content: ""; width: 12px; height: 12px; flex-shrink: 0; background: url(../i/ico_arr.svg) no-repeat center / contain; transition: transform .2s; }
details.rating_blocks_item[open] > summary::after { transform: rotate(180deg); }
.rating_blocks_title { flex: 1; font-size: 17px; font-weight: 700; line-height: 1.25em; }
.rating_blocks_title small { display: block; font-size: 13px; font-weight: 400; color: #666; padding-top: 3px; }
.rating_blocks_score { font-size: 17px; font-weight: 700; white-space: nowrap; }
.rating_blocks_body { padding: 0 16px 16px; font-size: 15px; }
.rating_blocks_body dl { margin: 0; }
.rating_blocks_body dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; border-bottom: 1px dotted #ccc; }
.rating_blocks_body dd { margin: 0; font-weight: 700; }
.rating_blocks_bars { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 0 16px 14px; }
.rating_blocks_body .rating_blocks_bars { grid-template-columns: minmax(0, 1fr); padding: 0 0 12px; gap: 6px; }
.rating_blocks_bars span { display: block; position: relative; height: 22px; background: #eef1fb; overflow: hidden; }
.rating_blocks_bars i { position: absolute; left: 0; top: 0; bottom: 0; background: #b9c7fb; }
.rating_blocks_bars em { position: relative; display: block; padding: 0 8px; font-size: 11px; line-height: 22px; font-style: normal; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media screen and (max-width: 780px) { .rating_blocks_bars { grid-template-columns: minmax(0, 1fr); } }

/* Рамка «Підтримати проєкт» під безкоштовним матеріалом (boxes/article_donate_frame.tpl) */
.article_donate { margin: 30px 0; padding: 26px 30px; background: #e8edfc; font-size: 16px; line-height: 1.45em; }
.article_donate p { margin: 0 0 12px; }
.article_donate_buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 16px; }
.article_donate_buttons a { display: inline-flex; align-items: center; height: 44px; padding: 0 22px; border: 1px solid var(--blue); border-radius: 22px; color: var(--blue); font-size: 13px; font-weight: 700; text-transform: uppercase; }
.article_donate_buttons a.article_donate_main { background: var(--blue); color: #fff; }
.article_donate_buttons a:hover { background: #111; border-color: #111; color: #fff; }
.article_donate_note { font-size: 13px; color: #555; margin: 0 !important; }
.article_donate_note a { color: var(--blue); }

/* «Допомогти проекту» і «Розсилка» (subscribe/*.tpl, mailing/default.tpl) */
.support_text { font-size: 17px; }
.support_widget { margin: 24px 0; padding: 22px 24px; border: 1px dashed var(--blue); background: #f3f5fd; }
.support_widget_title { font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--blue); padding-bottom: 6px; }
.support_widget p { margin: 0; }
.support_side { padding: 20px 22px; background: #e8edfc; font-size: 15px; line-height: 1.4em; }
.support_side a { color: var(--blue); font-weight: 700; }
.support_event { margin-top: 24px; }
.support_mailing { max-width: 680px; padding: 28px 30px; background: #111; color: #fff; margin-bottom: 30px; }
.support_mailing_title { font-size: 22px; line-height: 1.25em; font-weight: 700; margin: 0 0 18px; }
.support_mailing_row { display: flex; gap: 10px; }
.support_mailing input { flex: 1; min-width: 0; height: 48px; padding: 0 20px; border: 0; border-radius: 24px; font: inherit; font-size: 16px; }
.support_mailing button { height: 48px; padding: 0 26px; border: 0; border-radius: 24px; background: var(--blue); color: #fff; font: inherit; font-size: 13px; font-weight: 700; text-transform: uppercase; cursor: pointer; }
.support_mailing_note { margin: 14px 0 0; font-size: 14px; color: #c9d5ff; }
@media screen and (max-width: 560px) { .support_mailing_row { flex-direction: column; } }

/* Пошук /search (search/default.tpl) */
.search_page_form { display: flex; gap: 10px; margin-bottom: 18px; }
.search_page_form input { flex: 1; min-width: 0; height: 48px; padding: 0 20px; border: 1px solid #111; border-radius: 24px; font: inherit; font-size: 16px; }
.search_page_form input:focus { outline: none; border-color: var(--blue); }
.search_page_form button { height: 48px; padding: 0 28px; border: 0; border-radius: 24px; background: var(--blue); color: #fff; font: inherit; font-size: 13px; font-weight: 700; text-transform: uppercase; cursor: pointer; }
.search_modes { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-bottom: 14px; font-size: 13px; }
.search_mode { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.search_mode span { color: #666; }
.search_mode a { padding: 5px 12px 4px; border-radius: 16px; }
.search_mode a.is_active { background: #111; color: #fff; }
.search_mode a:not(.is_active):hover { color: var(--blue); }
.search_tabs a span { color: #888; font-weight: 400; }
.search_event { display: flex; gap: 20px; padding: 18px 0; border-bottom: 1px solid #ddd; }
.search_event_img img { display: block; width: 150px; height: 100px; object-fit: cover; }
.search_event .article_tags span { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--blue); }
.search_entities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 22px; }
.search_entity { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: #e8edfc; }
.search_entity img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.search_entity small { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--blue); }
.search_entity b { display: block; font-size: 16px; line-height: 1.2em; padding-top: 3px; }
.search_entity:hover b { color: var(--blue); }
@media screen and (max-width: 780px) { .search_entities { grid-template-columns: minmax(0, 1fr); } .search_page_form button { padding: 0 18px; } }

/* Рейтинг книг /books (books/default.tpl, category.tpl) */
.books_page { padding: 10px 20px 20px; }
.books_hero { padding: 26px 40px 30px; margin-bottom: 20px; background: #111; color: #fff; }
.books_hero h1 { font-size: 40px; line-height: 1.1em; font-weight: 700; text-transform: uppercase; }
.books_hero_lead { font-size: 18px; line-height: 1.35em; max-width: 820px; padding-top: 12px; }
.books_hero_partner { font-size: 11px; text-transform: uppercase; color: #aaa; padding-top: 14px; }
.books_cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.books_cats a { padding: 9px 16px 7px; border-radius: 20px; background: #e8edfc; color: var(--blue); font-size: 12px; font-weight: 700; }
.books_cats a.is_active, .books_cats a:hover { background: var(--blue); color: #fff; }
.books_grid_wrap { display: flex; gap: 40px; }
.books_main { flex: 1; min-width: 0; }
.books_main .section_title { margin: 0; }
.books_side { width: 300px; flex-shrink: 0; }
.books_side .section_title { margin: 0; padding-top: 0; }
.books_side .article_story_grid { width: auto; margin: 0 0 20px; padding: 0; }
.books_column { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid #ddd; }
.books_column_img img { display: block; width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.books_column_title { display: block; font-size: 16px; line-height: 1.25em; font-weight: 700; }
.books_column_title:hover { color: var(--blue); }
.books_column_author { font-size: 12px; font-weight: 700; text-transform: uppercase; padding-top: 6px; }
.books_column_about { font-size: 12px; color: #666; padding-top: 2px; }
.books_grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; list-style: none; margin: 0 0 24px; padding: 0; }
.book_card a { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-content: start; column-gap: 14px; padding: 16px 0 14px; border-top: 1px solid #111; height: 100%; }
.book_card_num { grid-row: span 5; font-size: 40px; line-height: 1; font-weight: 700; color: var(--blue); }
.book_card_title { font-size: 18px; line-height: 1.2em; font-weight: 700; }
.book_card a:hover .book_card_title { color: var(--blue); }
.book_card_author { font-size: 13px; font-weight: 700; padding-top: 6px; }
.book_card_publisher { font-size: 12px; color: #666; padding-top: 2px; }
.book_card_body { font-size: 13px; line-height: 1.4em; color: #333; padding-top: 8px; }
.books_next { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; background: #e8edfc; color: var(--blue); font-size: 18px; font-weight: 700; margin-bottom: 20px; }
.books_next::after { content: ""; width: 24px; height: 24px; background: url(../i/ico_arr.svg) no-repeat center; transform: rotate(-90deg); }
.books_more { margin-bottom: 20px; }
.book_detail { margin-bottom: 30px; padding-bottom: 26px; border-bottom: 1px solid #111; }
.book_detail_nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.book_detail_arrows { display: flex; gap: 8px; }
.book_detail_arrows .archive_nav { margin: 0; }
.book_detail_main { display: flex; gap: 36px; align-items: flex-start; }
.book_detail_cover { width: 240px; flex-shrink: 0; }
.book_detail_cover img { display: block; width: 100%; height: auto; box-shadow: 0 6px 24px rgba(0,0,0,.15); }
.book_detail_text { flex: 1; min-width: 0; }
.book_detail_title { font-size: 34px; line-height: 1.1em; font-weight: 700; }
.book_detail_author { font-size: 16px; font-weight: 700; padding-top: 10px; }
.book_detail_original { font-size: 13px; color: #666; padding-top: 10px; line-height: 1.4em; }
.book_detail_body { font-size: 17px; padding-top: 16px; }
.book_detail_read { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; font-size: 13px; font-weight: 700; text-transform: uppercase; }
.book_detail_read a { padding: 9px 16px 7px; border: 1px solid #111; border-radius: 20px; font-size: 12px; text-transform: none; }
.book_detail_read a:hover { border-color: var(--blue); color: var(--blue); }
@media screen and (max-width: 780px) { .book_detail_main { flex-direction: column; gap: 18px; } .book_detail_cover { width: 160px; } .book_detail_title { font-size: 26px; } }
.books_description { font-size: 16px; padding-top: 10px; border-top: 1px solid #111; }
@media screen and (max-width: 1024px) { .books_grid_wrap { flex-direction: column; gap: 10px; } .books_side { width: 100%; } }
@media screen and (max-width: 780px) {
  .books_hero { padding: 20px; }
  .books_hero h1 { font-size: 28px; }
  .books_grid { grid-template-columns: minmax(0, 1fr); }
}

/* Курси валют над стрічкою /currency (currency/default.tpl) */
.currency { margin-bottom: 30px; }
.currency_title { font-size: 20px; line-height: 1.2em; font-weight: 700; padding: 14px 0 12px; border-top: 1px solid #111; }
.currency_cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 22px; }
.currency_card { padding: 18px 20px 14px; background: #e8edfc; }
.currency_card_title { font-size: 13px; font-weight: 700; text-transform: uppercase; padding-bottom: 8px; }
.currency_card_row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 2px 0; }
.currency_card_value { font-size: 26px; line-height: 1.2em; font-weight: 700; font-variant-numeric: tabular-nums; }
.currency_card_label { font-size: 13px; color: #555; }
.currency_change { font-size: 13px; font-weight: 700; white-space: nowrap; }
.currency_change.is_up { color: #1a8a3a; }
.currency_change.is_down { color: #d0302f; }
.currency_chart { margin: 12px 0 0; }
.currency_chart svg { display: block; width: 100%; height: 110px; overflow: visible; }
.currency_chart polyline { fill: none; stroke-width: 2; stroke-linejoin: round; }
.currency_line_ask { stroke: var(--blue); }
.currency_line_bid { stroke: #7fa0ff; }
.currency_chart figcaption { display: flex; justify-content: space-between; gap: 10px; padding-top: 6px; font-size: 11px; color: #555; }
.currency_legend i { display: inline-block; width: 14px; height: 2px; margin: 0 5px 3px 8px; vertical-align: middle; }
.currency_legend i.currency_line_ask { background: var(--blue); }
.currency_legend i.currency_line_bid { background: #7fa0ff; }
.currency_table_wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.currency_table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.3em; }
.currency_table th { padding: 10px 10px 9px; background: #111; color: #fff; font-size: 11px; font-weight: 700; text-transform: uppercase; text-align: right; }
.currency_table td { padding: 10px; border-bottom: 1px solid #ddd; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.currency_table th:nth-child(-n+2), .currency_table td:nth-child(-n+2) { text-align: left; }
.currency_table td:nth-child(2) { white-space: normal; }
.currency_note { margin: 10px 0 26px; font-size: 13px; font-style: italic; font-weight: 700; }
.listing_feed_title { margin: 0; }
.ovdp_intro { font-size: 17px; line-height: 1.45em; margin-bottom: 24px; }
.ovdp_sub { font-size: 14px; font-weight: 400; text-transform: none; color: #555; }
.ovdp_updated { margin: -4px 0 12px; }
.ovdp_table { margin-bottom: 30px; }
.ovdp_table th { vertical-align: bottom; line-height: 1.25em; }
.ovdp_table th span { text-transform: none; font-weight: 400; }
.ovdp_table tbody { border-top: 3px solid #e8edfc; }
.ovdp_table td { vertical-align: top; }
.ovdp_table td:nth-child(2) { white-space: normal; }
.ovdp_code strong { border-bottom: 3px solid #d9265f; }
.ovdp_series { display: block; padding-top: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; line-height: 1.1em; }
.ovdp_priced { display: block; font-size: 11px; color: #888; white-space: nowrap; }
@media screen and (max-width: 780px) {
  .currency_cards { grid-template-columns: minmax(0, 1fr); }
  .currency_table { font-size: 13px; }
}

.pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 30px 0 10px; }
.pagination a, .pagination span { min-width: 38px; height: 38px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #111; border-radius: 20px; font-size: 13px; font-weight: 700; }
.pagination a:hover { border-color: var(--blue); color: var(--blue); }
.pagination .pagination_current { background: #111; color: #fff; }
.pagination .pagination_gap { border: 0; min-width: 20px; padding: 0; }
.pagination_prev, .pagination_next { background: url(../i/ico_arr.svg) no-repeat center; }
.pagination_prev { transform: rotate(90deg); }
.pagination_next { transform: rotate(-90deg); }

@media screen and (max-width: 1024px) {
  .listing { flex-direction: column; gap: 20px; }
  .listing_side { width: 100%; }
}
@media screen and (max-width: 780px) {
  .listing_top_2, .listing_top_3, .news_top_grid { grid-template-columns: 1fr; }
  .listing_row { gap: 14px; }
  .listing_row_media { flex-basis: 110px; }
  .listing_row_title { font-size: 17px; }
  .listing_row_lead { display: none; }
  .directory_list { columns: 1; }
}

@media screen and (max-width: 780px) {
  .article_structure_text .img_box2_fl { float: none; width: 100%; margin: 16px 0; }
  .article_related_grid { grid-template-columns: 1fr; }
}

@media screen and (max-width: 1024px) {
  .info_layer { display: none !important; }
}
@media screen and (max-width: 780px) {
  .menu_head .header_logo img { width: 170px; }
}
/* /thankyou, /questions — сторінки на фразі та питання експертам (згортки) */
.support_lead { font-size: 20px; line-height: 1.45; margin: 8px 0 24px; }
.support_note { color: var(--grey, #6b6b6b); font-size: 14px; margin: 0 0 24px; }
.support_question { border-top: 1px solid #e3e3e3; padding: 14px 0; }
.support_question:last-of-type { border-bottom: 1px solid #e3e3e3; }
.support_question summary { cursor: pointer; font-weight: 700; font-size: 17px; line-height: 1.35; }
.support_question[open] summary { color: var(--blue); }
.support_question .article_structure_text { margin-top: 12px; }
/* Платформа відкритих інновацій Reactor (/innovativeteams) */
.inno { padding: 10px 20px 30px; }
.inno_bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0 18px; border-bottom: 2px solid #111; margin-bottom: 22px; }
.inno_brand { font-size: 22px; font-weight: 800; letter-spacing: .02em; }
.inno_brand span { color: var(--blue); }
.inno_nav { display: flex; flex-wrap: wrap; gap: 6px; }
.inno_nav a { padding: 8px 14px 6px; border-radius: 18px; font-size: 12px; font-weight: 700; text-transform: uppercase; background: #eef1fb; color: #111; }
.inno_nav a.is_active, .inno_nav a:hover { background: var(--blue); color: #fff; }
.inno_title { font-size: 30px; line-height: 1.15em; font-weight: 700; margin-bottom: 18px; }
.inno_filter { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 22px; }
.inno_filter_item span { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; color: #666; padding-bottom: 5px; }
.inno_filter_item select { width: 100%; padding: 9px 10px; border: 1px solid #ccc; border-radius: 4px; background: #fff; font-size: 14px; }
.inno_card { display: flex; gap: 18px; padding: 18px 0; border-bottom: 1px solid #e3e3e3; }
.inno_card_logo, .inno_team_logo { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 96px; height: 96px; border: 1px solid #e3e3e3; border-radius: 8px; overflow: hidden; background: #fff; }
.inno_card_logo img, .inno_team_logo img { width: 100%; height: 100%; object-fit: contain; }
.inno_card_logo span, .inno_team_logo span { font-size: 36px; font-weight: 800; color: #b5bdd6; }
.inno_card_main { min-width: 0; }
.inno_card_title { font-size: 19px; line-height: 1.25em; font-weight: 700; }
.inno_card_title a:hover { color: var(--blue); }
.inno_card_body { font-size: 14px; line-height: 1.45em; color: #444; padding-top: 6px; }
.inno_card_tags { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px; }
.inno_card_tags span { font-size: 11px; padding: 4px 9px 3px; border-radius: 12px; background: #f1f1f1; }
.inno_card_tags span.is_tech { background: #e8edfc; color: var(--blue); }
.inno_card_tags span.is_stage { background: #111; color: #fff; }
.inno_team { display: flex; gap: 28px; align-items: flex-start; }
.inno_team_logo { width: 160px; height: 160px; }
.inno_team_main { min-width: 0; flex: 1; }
.inno_team_main h1 { font-size: 36px; line-height: 1.1em; font-weight: 700; margin-bottom: 14px; }
.inno_team_contacts { display: flex; flex-wrap: wrap; gap: 8px 22px; list-style: none; padding: 16px 0 0; margin: 0; font-size: 14px; }
.inno_team_contacts a { color: var(--blue); }
.inno_team_cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 30px 0; padding: 22px 0; border-top: 1px solid #e3e3e3; border-bottom: 1px solid #e3e3e3; }
.inno_team_cat_title { font-size: 12px; font-weight: 700; text-transform: uppercase; color: #666; padding-bottom: 8px; }
.inno_team_cat ul { list-style: none; padding: 0; margin: 0; font-size: 14px; line-height: 1.6em; }
.inno_guarantor { font-size: 14px; color: #444; }
.inno_guarantor a { font-weight: 700; color: var(--blue); }
.inno_index td:nth-child(n+4), .inno_index th:nth-child(n+4) { text-align: center; }
@media (max-width: 768px) {
    .inno { padding: 6px 16px 24px; }
    .inno_filter, .inno_team_cats { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .inno_team { flex-direction: column; gap: 16px; }
    .inno_team_main h1 { font-size: 28px; }
    .inno_card_logo { width: 64px; height: 64px; }
}
/* 404 */
.error_page { max-width: 640px; margin: 0 auto; padding: 60px 20px 80px; text-align: center; }
.error_page_code { font-size: 96px; line-height: 1; font-weight: 800; color: var(--blue); }
.error_page h1 { font-size: 30px; line-height: 1.2em; font-weight: 700; padding: 14px 0 10px; }
.error_page p { font-size: 16px; color: #555; margin-bottom: 22px; }
.error_page .search_page_form { margin-bottom: 22px; }
/* Цілі сталого розвитку (/sustainable) */
.sdg { padding: 10px 20px 40px; }
.sdg_banner { display: block; margin-bottom: 26px; }
.sdg_banner img { display: block; width: 100%; height: auto; }
.sdg_title { font-size: 36px; line-height: 1.1em; font-weight: 700; }
.sdg_lead { font-size: 18px; line-height: 1.45em; color: #333; padding: 12px 0 20px; max-width: 860px; }
.sdg_intro { max-width: 860px; margin-bottom: 26px; }
.sdg_mini { display: grid; grid-template-columns: repeat(auto-fill, minmax(44px, 58px)); gap: 6px; margin-bottom: 34px; }
.sdg_mini a { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 4px; transition: opacity .2s; }
.sdg_mini a:not(.is_current) { background-color: #c9c9c9 !important; }
.sdg_mini a:hover { opacity: .8; }
.sdg_mini img { width: 70%; height: 70%; object-fit: contain; }
.sdg_grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; list-style: none; padding: 0; margin: 0 0 40px; }
.sdg_grid a { position: relative; display: flex; flex-direction: column; min-height: 200px; padding: 16px; color: #fff; border-radius: 4px; }
.sdg_grid_num { font-size: 34px; font-weight: 800; line-height: 1; }
.sdg_grid_title { font-size: 15px; font-weight: 700; line-height: 1.2em; text-transform: uppercase; padding-top: 8px; }
.sdg_grid img { margin-top: auto; align-self: center; filter: brightness(0) invert(1); }
.sdg_grid_more { position: absolute; right: 12px; bottom: 10px; font-size: 11px; font-weight: 700; text-transform: uppercase; opacity: 0; transition: opacity .2s; }
.sdg_grid a:hover .sdg_grid_more { opacity: 1; }
.sdg_companies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 30px; margin-bottom: 36px; }
.sdg_company { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid #e3e3e3; }
.sdg_company img { flex-shrink: 0; width: 80px; height: 80px; object-fit: contain; border: 1px solid #eee; }
.sdg_company b { display: block; font-size: 16px; line-height: 1.25em; }
.sdg_company:hover b { color: var(--blue); }
.sdg_company small { display: block; font-size: 13px; line-height: 1.4em; color: #555; padding-top: 4px; }
.sdg_pubs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 30px; padding-top: 30px; border-top: 1px solid #ddd; }
.sdg_pubs .article_story_grid { width: auto; margin: 0; padding: 0; }
@media (max-width: 768px) {
    .sdg { padding: 6px 16px 30px; }
    .sdg_title { font-size: 28px; }
    .sdg_companies, .sdg_pubs { grid-template-columns: minmax(0, 1fr); }
    .sdg_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* KMBS Alumni */
.kmbs { padding: 10px 20px 40px; }
.kmbs_bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0 18px; border-bottom: 2px solid #012e5f; margin-bottom: 22px; }
.kmbs_brand { font-size: 22px; font-weight: 800; color: #012e5f; }
.kmbs_brand span { font-weight: 400; }
.kmbs_nav { display: flex; flex-wrap: wrap; gap: 6px; }
.kmbs_nav a { padding: 8px 12px 6px; border-radius: 18px; font-size: 12px; font-weight: 700; text-transform: uppercase; background: #eef1f6; }
.kmbs_nav a.is_active, .kmbs_nav a:hover { background: #012e5f; color: #fff; }
.kmbs_title { font-size: 34px; line-height: 1.15em; font-weight: 700; margin-bottom: 20px; }
.kmbs_meta { display: block; font-size: 12px; color: #6b7280; text-transform: uppercase; letter-spacing: .02em; }
.kmbs_cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 30px; margin-bottom: 20px; }
.kmbs_cards .article_story_grid { width: auto; margin: 0; padding: 0; }
.kmbs_projects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 30px; }
.kmbs_project_card { display: flex; flex-direction: column; border: 1px solid #e3e3e3; border-radius: 6px; overflow: hidden; }
.kmbs_project_img { display: block; aspect-ratio: 420 / 160; background: #f3f4f6; }
.kmbs_project_img img { width: 100%; height: 100%; object-fit: cover; }
.kmbs_project_main { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.kmbs_project_title { font-size: 19px; line-height: 1.25em; font-weight: 700; }
.kmbs_project_title a:hover { color: var(--blue); }
.kmbs_project_lead { font-size: 14px; line-height: 1.45em; color: #444; }
.kmbs_owner { display: flex; gap: 10px; align-items: center; margin-top: auto; padding-top: 8px; }
.kmbs_owner img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.kmbs_owner b { display: block; font-size: 14px; }
.kmbs_owner small { display: block; font-size: 12px; color: #6b7280; }
.kmbs_project_cover { margin-bottom: 18px; }
.kmbs_project_cover img { display: block; max-width: 100%; height: auto; }
.kmbs_site { display: inline-block; color: var(--blue); margin-bottom: 18px; }
.kmbs_project_grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; margin-bottom: 30px; }
.kmbs_owner_card { border-left: 3px solid #012e5f; padding-left: 20px; }
.kmbs_owner_card .kmbs_owner img { width: 64px; height: 64px; }
.kmbs_owner_card blockquote { font-size: 16px; line-height: 1.45em; font-style: italic; margin: 16px 0; }
.kmbs_social { display: flex; gap: 14px; font-size: 13px; }
.kmbs_social a { color: var(--blue); }
.kmbs_residents { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px 24px; margin-bottom: 30px; }
.kmbs_resident { display: flex; flex-direction: column; gap: 6px; }
.kmbs_resident_img { display: block; aspect-ratio: 1; background: #eef1f6; border-radius: 6px; overflow: hidden; }
.kmbs_resident_img img { width: 100%; height: 100%; object-fit: cover; }
.kmbs_resident b { font-size: 16px; line-height: 1.25em; }
.kmbs_resident:hover b { color: var(--blue); }
.kmbs_resident small { font-size: 13px; color: #555; }
.kmbs_events { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 30px; }
.kmbs_event_card { display: flex; flex-direction: column; gap: 8px; }
.kmbs_event_card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 4px; }
.kmbs_event_card b { font-size: 17px; line-height: 1.3em; }
.kmbs_event_card:hover b { color: var(--blue); }
.kmbs_event_meta { margin-bottom: 16px; }
.kmbs_static { font-size: 16px; line-height: 1.6em; max-width: 900px; }
.kmbs_static h2 { font-size: 24px; line-height: 1.25em; font-weight: 700; margin: 24px 0 12px; }
.kmbs_static h3 { font-size: 19px; font-weight: 700; margin: 20px 0 10px; }
.kmbs_static p, .kmbs_static ul, .kmbs_static ol { margin-bottom: 14px; }
.kmbs_static ul { padding-left: 20px; list-style: disc; }
.kmbs_static img { max-width: 100%; height: auto; }
.kmbs_static .columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 20px 0; }
.kmbs_static .contact-block { list-style: none; padding: 0; }
.kmbs_static .contact-block strong { display: block; }
.kmbs_static blockquote { border-left: 3px solid #012e5f; padding-left: 16px; margin: 18px 0; }
.kmbs_static .kmbs_avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; display: block; margin: 8px 0; }
.kmbs_static .media { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin: 20px 0; }
.kmbs_static .statistics { list-style: none; padding: 0; display: flex; gap: 30px; flex-wrap: wrap; }
.kmbs_static iframe { max-width: 100%; }
@media (max-width: 768px) {
    .kmbs { padding: 6px 16px 30px; }
    .kmbs_title { font-size: 26px; }
    .kmbs_cards, .kmbs_projects, .kmbs_events, .kmbs_project_grid, .kmbs_static .columns { grid-template-columns: minmax(0, 1fr); }
    .kmbs_residents { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* /shame — іноземні топ-менеджери в російських компаніях */
.sanctions { padding: 10px 20px 40px; }
.sanctions_title { font-size: 34px; line-height: 1.15em; font-weight: 700; margin-bottom: 16px; }
.sanctions_intro { max-width: 900px; margin-bottom: 24px; }
.sanctions_person { border-top: 1px solid #e3e3e3; }
.sanctions_person:last-child { border-bottom: 1px solid #e3e3e3; }
.sanctions_person summary { display: grid; grid-template-columns: 72px minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.4fr) 90px; gap: 16px; align-items: center; padding: 14px 0; cursor: pointer; list-style: none; }
.sanctions_person summary::-webkit-details-marker { display: none; }
.sanctions_photo { width: 72px; height: 96px; background: #eee; overflow: hidden; }
.sanctions_photo img { width: 100%; height: 100%; object-fit: cover; }
.sanctions_who b { display: block; font-size: 17px; line-height: 1.25em; }
.sanctions_who small { display: block; font-size: 13px; color: #555; padding-top: 4px; }
.sanctions_col { font-size: 14px; line-height: 1.4em; }
.sanctions_col em { display: none; font-style: normal; font-size: 11px; font-weight: 700; text-transform: uppercase; color: #777; }
.sanctions_flag b { display: block; font-size: 20px; font-weight: 700; color: #d9265e; }
.sanctions_flag b.is_yes { color: #211643; }
.sanctions_person[open] summary .sanctions_who b { color: var(--blue); }
.sanctions_more { padding: 0 0 18px 88px; font-size: 14px; line-height: 1.5em; }
.sanctions_more a { color: var(--blue); }
.sanctions_company { display: flex; gap: 14px; margin-top: 14px; }
.sanctions_company img { flex-shrink: 0; width: 80px; height: 80px; object-fit: contain; border: 1px solid #eee; }
.sanctions_company small { display: block; color: #666; }
@media (max-width: 768px) {
    .sanctions { padding: 6px 16px 30px; }
    .sanctions_person summary { grid-template-columns: 60px minmax(0, 1fr); }
    .sanctions_photo { width: 60px; height: 80px; }
    .sanctions_col { grid-column: 2; }
    .sanctions_col em { display: block; }
    .sanctions_more { padding-left: 0; }
}
/* Спецпроєкти /projects/<id> */
.special_project_intro { margin-bottom: 26px; }
.special_project_lead { font-size: 19px; line-height: 1.45em; color: #333; margin-bottom: 18px; }
.special_project_top .article_story_grid { width: auto; margin: 0 0 22px; padding: 0; }
.special_project_intro .article_structure_text { margin-bottom: 18px; }
.archive_month_nav { display: flex; gap: 10px; margin: -6px 0 16px; }
/* «Пульс енергетики» */
.pulse { margin-bottom: 30px; }
.pulse_now { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.pulse_value { font-size: 64px; line-height: 1; font-weight: 800; }
.pulse_change { font-size: 22px; font-weight: 700; }
.pulse_change.is_up { color: #1a9e4b; }
.pulse_change.is_down { color: #d9265e; }
.pulse_date { font-size: 13px; color: #777; }
.pulse_about { margin-bottom: 20px; }
.pulse_chart { width: 100%; height: auto; display: block; margin-bottom: 10px; }
.pulse_line { fill: none; stroke: var(--blue); stroke-width: 1.5; }
.pulse_grid { stroke: #e5e5e5; stroke-width: 1; }
.pulse_axis { font-size: 11px; fill: #888; }
/* Тести */
.tests { padding: 10px 20px 40px; max-width: 900px; }
.tests_title { font-size: 34px; line-height: 1.15em; font-weight: 700; margin-bottom: 18px; }
.tests_grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 30px; }
.tests_card { display: flex; flex-direction: column; gap: 8px; }
.tests_card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; }
.tests_card b { font-size: 19px; line-height: 1.25em; }
.tests_card:hover b { color: var(--blue); }
.tests_card small { font-size: 14px; color: #555; line-height: 1.45em; }
.test_cover { display: block; width: 100%; height: auto; border-radius: 4px; margin-bottom: 18px; }
.test_lead { font-size: 19px; line-height: 1.45em; margin-bottom: 14px; }
.test_button { display: inline-block; margin: 20px 0; padding: 14px 28px 12px; border: 0; border-radius: 24px; background: var(--blue); color: #fff; font-size: 14px; font-weight: 700; text-transform: uppercase; cursor: pointer; }
.test_button:hover { background: #111; }
.test_progress { font-size: 12px; font-weight: 700; text-transform: uppercase; color: #777; margin-bottom: 12px; }
.test_q_title { font-size: 22px; line-height: 1.3em; font-weight: 700; margin-bottom: 18px; }
.test_q_img, .test_result_img { display: block; max-width: 100%; height: auto; margin-bottom: 16px; border-radius: 4px; }
.test_answers { display: grid; gap: 10px; }
.test_answer { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 14px 16px; border: 1px solid #d9d9d9; border-radius: 6px; background: #fff; font: inherit; font-size: 16px; line-height: 1.35em; cursor: pointer; }
.test_answer:hover:not(:disabled) { border-color: var(--blue); }
.test_answer.is_true { border-color: #1a9e4b; background: #eefaf2; }
.test_answer.is_false { border-color: #d9265e; background: #fdf0f4; }
.test_a_img { width: 80px; height: auto; flex-shrink: 0; }
.test_feedback { margin-top: 16px; padding: 14px 16px; border-radius: 6px; background: #f5f5f5; font-size: 15px; line-height: 1.45em; }
.test_feedback.is_true b { color: #1a9e4b; }
.test_feedback.is_false b { color: #d9265e; }
.test_result h2 { font-size: 26px; line-height: 1.25em; font-weight: 700; margin: 6px 0 12px; }
.test_less { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e3e3e3; }
.test_less h3, .test_mistakes h3 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.test_mistakes { margin-top: 20px; }
.test_mistake { padding: 10px 0; border-bottom: 1px solid #eee; }
.test_mistake .test_q_title { font-size: 16px; margin-bottom: 4px; }
.test_footer { margin-top: 20px; }
@media (max-width: 768px) {
    .tests { padding: 6px 16px 30px; }
    .tests_title { font-size: 26px; }
    .tests_grid { grid-template-columns: minmax(0, 1fr); }
}
.sdg_more { margin: 0 0 26px; text-align: left; }
/* Сторінки з власного HTML, чиї стилі лежать у шарі «page» (App\Support\CustomHtml): на обгортці вмісту й усередині
   неї правила сайту відкочуються до стилів самої сторінки — вона виглядає як самостійний експорт. Потрійний клас — щоб відкат був
   сильніший за будь-яке правило сайту, що випадково зачепить елемент сторінки. */
.custom_page.custom_page.custom_page, .custom_page.custom_page.custom_page *, .custom_page.custom_page.custom_page *::before, .custom_page.custom_page.custom_page *::after { all: revert-layer; }
/* Коментарі Facebook під матеріалом: місце під блок, поки SDK не підвантажився, щоб сторінка не стрибала */
.article_comments { margin: 30px 0; min-height: 180px; }
.article_comments .fb-comments, .article_comments .fb-comments span, .article_comments iframe { width: 100% !important; }
/* Mind Brand: сторінка /mindbrand і блок компаній збоку на /companies */
.mindbrand_head { padding: 32px 44px 34px; margin: 0 20px 30px; background: #e8edfc; } /* поля — як у .section_title (20px) */
.mindbrand_title { font-size: 48px; line-height: 1em; font-weight: 700; text-transform: uppercase; margin: 0 0 12px; }
.mindbrand_title span { color: var(--blue); }
.mindbrand_lead { font-size: 18px; line-height: 1.4em; max-width: 760px; margin: 0; }
.mindbrand_grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 20px 20px 44px; }
.mindbrand_card { display: flex; gap: 18px; align-items: flex-start; padding: 22px; border-radius: 20px; background: #f3f5fd; color: inherit; transition: box-shadow .15s; }
.mindbrand_card:hover { box-shadow: 0 0 0 1px var(--blue); }
.mindbrand_card_logo { flex: 0 0 88px; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; background: #fff; display: flex; align-items: center; justify-content: center; }
.mindbrand_card_logo img { width: 100%; height: 100%; object-fit: contain; }
.mindbrand_card_nologo { font-size: 34px; font-weight: 700; color: var(--blue); }
.mindbrand_card_body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.mindbrand_card_name { font-size: 18px; line-height: 1.2em; font-weight: 700; }
.mindbrand_card:hover .mindbrand_card_name { color: var(--blue); }
.mindbrand_card_lead { font-size: 14px; line-height: 1.35em; color: #333; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.mindbrand_card_count { font-size: 11px; text-transform: uppercase; color: #666; margin-top: 2px; }
.mindbrand_materials_title { margin-top: 10px; }
.mindbrand_materials { margin-bottom: 40px; }
@media (max-width: 1100px) { .mindbrand_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .mindbrand_head { padding: 22px 16px; }
    .mindbrand_title { font-size: 34px; }
    .mindbrand_lead { font-size: 16px; }
    .mindbrand_grid { grid-template-columns: minmax(0, 1fr); }
    .mindbrand_card { padding: 16px; }
    .mindbrand_card_logo { flex-basis: 64px; width: 64px; height: 64px; }
}
.directory_brand { margin-left: 6px; padding: 1px 7px; border-radius: 10px; background: #e8edfc; color: var(--blue); font-size: 10px; font-weight: 700; text-transform: uppercase; white-space: nowrap; vertical-align: 1px; }
.side_brand { margin-bottom: 36px; }
.side_brand_list { display: flex; flex-direction: column; }
.side_brand_item { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px dashed #ccc; color: inherit; }
.side_brand_item img, .side_brand_nologo { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; object-fit: contain; background: #f3f5fd; }
.side_brand_text { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.side_brand_name { font-size: 14px; font-weight: 700; line-height: 1.2em; }
.side_brand_item:hover .side_brand_name { color: var(--blue); }
.side_brand_lead { font-size: 12px; line-height: 1.3em; color: #555; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Панель редакції над шапкою (лише для груп 2 і 3 старого сайту, показує site.js) */
.staff_bar { background: #131313; color: #9a9a9a; font-size: 13px; line-height: 32px; }
.staff_bar .container_main { display: flex; gap: 20px; align-items: center; padding: 0 20px; white-space: nowrap; overflow-x: auto; }
.staff_bar a { color: #fff; font-weight: 700; }
.staff_bar a:hover { color: #6f97ff; }
.staff_bar_title { text-transform: uppercase; letter-spacing: .04em; font-size: 11px; }
.error_page_login { margin-bottom: 26px; }
.error_page_login_title { font-weight: 700; margin-bottom: 10px; }
.error_page_login .button_more { display: inline-block; margin: 0 6px; }
