/* PharmNews — дизайн-токены (из «Pharmnews - Design Spec») + база и компоненты. */
@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700;800;900&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
    /* цвета */
    --primary: #0f766e;
    --primary-deep: #0a534d;
    --primary-tint: #e4f1ef;
    --cyan: #4accd4;
    --accent: #d9603a;
    --accent-deep: #b8502c;
    --accent-tint: #fbe9e2;
    --gold: #b98a2e;
    --ink: #101e26;
    --ink-soft: #2c3e48;
    --muted: #647782;
    --faint: #93a2ab;
    --line: #e3e8e8;
    --line-2: #eef1f1;
    --slate: #495568;
    --bg: #ffffff;
    --surface: #ffffff;
    --surface-2: #f6f8f8;
    /* форма */
    --radius: 14px;
    --radius-sm: 8px;
    --pill: 999px;
    --shadow: 0 1px 2px rgba(16,30,38,.04), 0 8px 28px -12px rgba(16,30,38,.14);
    --shadow-lg: 0 24px 60px -28px rgba(16,30,38,.4);
    --maxw: 1280px;
    /* типографика */
    --font-sans: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --font-serif: "Source Serif 4", Georgia, serif;
    --font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;
}

* { box-sizing: border-box; }

/* без горизонтальной прокрутки: full-bleed секции (calc(50% - 50vw)) шире окна на ширину
   вертикального скроллбара — лишнее обрезаем (clip не ломает position:sticky) */
html { overflow-x: hidden; overflow-x: clip; }

body {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 15px;
    line-height: 1.6;
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
    font-family: var(--font-serif);
    color: var(--ink);
    line-height: 1.15;
    letter-spacing: -.015em;
    font-weight: 700;
    margin: 0 0 .4em;
}
h1 { font-size: 30px; }
h2 { font-size: 24px; }
h3 { font-size: 19px; }
h4 { font-size: 16px; }

a { color: #4accd4; text-decoration: none; }
a:hover { text-decoration: underline; }

code, .mono { font-family: var(--font-mono); font-size: .92em; }

.kicker {
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 12px;
    color: var(--muted);
}

/* --- поля ввода --- */
input[type=text], input[type=password], input[type=email], input[type=search],
input:not([type]), select, textarea {
    font-family: inherit;
    font-size: 14px;
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--ink);
    max-width: 100%; /* длинные <option> не должны распирать страницу на мобильных */
}
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-tint);
}

/* --- кнопки (пилюли, по дизайн-спеку) --- */
button, .btn {
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    padding: 9px 16px;
    border: none;
    border-radius: var(--pill);
    background: var(--primary);
    color: #fff;
    cursor: pointer;
}
button:hover, .btn:hover { background: var(--primary-deep); }
.btn-ghost { background: transparent; color: var(--ink-soft); border: 1px solid var(--line); }
.btn-ghost:hover { background: var(--surface-2); }
.btn-accent { background: var(--accent); }
.btn-accent:hover { background: var(--accent-deep); }

/* --- карточки --- */
.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

/* --- таблицы --- */
table { border-collapse: collapse; width: 100%; font-size: 14px; }
th { text-align: left; color: var(--ink-soft); font-weight: 600; border-bottom: 2px solid var(--line); padding: 9px 10px; }
td { border-bottom: 1px solid var(--line-2); padding: 9px 10px; }

/* --- бейджи --- */
/* Поиск внутри раздела: заголовок слева, светлое поле с лупой справа */
.sec-head-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.sec-head-row h1 { margin: 0; }
.sec-search { position: relative; width: 300px; max-width: 100%; flex: none; }
.sec-head-row > div > .sec-search { width: 100%; } /* ширину задаёт обёртка (разделы с нестандартным размером поля) */
.sec-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--faint); pointer-events: none; }
.sec-search input { width: 100%; height: 42px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); padding: 0 16px 0 42px; font: inherit; font-size: 14px; color: var(--ink); }
.sec-search input::placeholder { color: var(--faint); }
.sec-search input:focus { outline: none; border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 4px var(--primary-tint); }
@media (max-width: 560px) { .sec-search { width: 100%; } }

.pill { display: inline-block; padding: 3px 10px; border-radius: var(--pill); font-size: 12px; font-weight: 600; background: var(--primary-tint); color: var(--primary-deep); }
.pill-accent { background: var(--accent-tint); color: var(--accent-deep); }

/* --- новости / контент --- */
.pill-ghost { background: transparent; color: var(--ink-soft); border: 1px solid var(--line); }
.pill-ghost:hover { background: var(--surface-2); text-decoration: none; }
.news-meta { font-size: 13px; color: var(--muted); }
.news-lead { display: block; text-decoration: none; color: inherit; margin-bottom: 22px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow); }
.news-lead img { width: 100%; max-height: 360px; object-fit: cover; display: block; }
.news-lead-body { padding: 16px 18px; }
.news-lead-title { font-family: var(--font-serif); font-size: 26px; line-height: 1.15; margin: 6px 0; }
.news-lead-ann { color: var(--ink-soft); }
.news-lead:hover .news-lead-title { color: var(--primary); }
.news-list { display: flex; flex-direction: column; }
.news-item { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--line-2); text-decoration: none; color: inherit; }
.news-thumb { width: 120px; height: 80px; object-fit: cover; border-radius: var(--radius-sm); flex: 0 0 auto; }
.news-item-title { font-family: var(--font-serif); font-size: 18px; line-height: 1.2; font-weight: 700; margin-top: 4px; }
.news-item:hover .news-item-title { color: var(--primary); }
.article-body { font-size: 16px; line-height: 1.75; }
.article-body img { max-width: 100%; height: auto; border-radius: var(--radius-sm); margin: 12px 0; }
/* картинка, обтекаемая текстом (выравнивание влево/вправо в редакторе) — отступ от текста */
.article-body img[style*="float: left"], .article-body img[style*="float:left"] { margin: 6px 20px 12px 0; }
.article-body img[style*="float: right"], .article-body img[style*="float:right"] { margin: 6px 0 12px 20px; }
.article-body p { margin: 0 0 1em; text-align: justify; }  /* абзацы статей — по ширине по умолчанию */
@media (max-width: 560px) {
    .news-thumb { width: 88px; height: 64px; }
    .news-lead-title { font-size: 21px; }
}

/* --- модальное окно (вход) --- */
.modal { position: fixed; inset: 0; background: rgba(16,30,38,.55); display: none; align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
.modal.open { display: flex; }
.modal-card { background: var(--surface); border-radius: var(--radius); padding: 26px 28px 28px; width: 370px; max-width: 100%; position: relative; box-shadow: 0 24px 60px -20px rgba(16,30,38,.5); }
.modal-card label { display: block; font-size: 13px; margin: 12px 0 4px; color: var(--ink-soft); }
.modal-card input[type=text], .modal-card input[type=password], .modal-card input:not([type]) { width: 100%; }
.modal-card button[type=submit] { width: 100%; margin-top: 16px; }
.modal-close { position: absolute; top: 8px; right: 12px; background: none; border: none; font-size: 24px; color: var(--muted); cursor: pointer; padding: 0; line-height: 1; }
.modal-close:hover { background: none; color: var(--ink); }
.modal-links { display: flex; justify-content: space-between; margin-top: 14px; font-size: 14px; }

/* --- баннерные зоны --- */
.banner-zone { position: relative; margin: 0 0 16px; }
.banner-slide { display: none; position: relative; }
.banner-slide.active { display: block; }
.banner-link { display: block; }
.banner-link .banner { display: block; width: 100%; border-radius: var(--radius); }
.banner-card {
    display: flex; flex-direction: column; gap: 6px; text-decoration: none;
    padding: 18px 20px; border-radius: var(--radius); color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--primary-deep));
    box-shadow: var(--shadow);
}
.banner-card:hover { text-decoration: none; filter: brightness(1.04); }
.banner-kicker { font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .08em; font-size: 11px; color: #a7f3ef; }
.banner-title { font-family: var(--font-serif); font-size: 18px; font-weight: 700; line-height: 1.15; }
.banner-desc { font-size: 14px; color: #d6f3f0; }
.banner-cta { margin-top: 4px; font-weight: 700; font-size: 14px; }
.banner-ad-label { position: absolute; top: 8px; right: 10px; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: rgba(255,255,255,.7); }
.banner-dismiss { position: absolute; top: 6px; right: 8px; background: rgba(0,0,0,.18); border: none; color: #fff; width: 22px; height: 22px; border-radius: 50%; cursor: pointer; line-height: 1; padding: 0; z-index: 2; }
/* зона в полосе-лидерборде: без нижнего отступа */
.ad-leader .banner-zone { margin: 0; }
/* зона «Верхний» (site_top) над шапкой: пустая — полностью скрыта */
.topad-zone:empty { display: none; }
/* фон полосы по бокам от картинки — серый, как у шапки с логотипом */
.topad-zone:not(:empty) { background: #49ccd4; }   /* фон по бокам центрированного верхнего баннера — бирюзовый (как утилити-полоса) */
.topad-zone .banner-zone { margin: 0; }
/* карточка в верхней полосе — горизонтальная узкая, без скругления */
.topad-zone .banner-card { flex-direction: row; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; min-height: 56px; padding: 9px 28px; border-radius: 0; }
.topad-zone .banner-title { font-size: 15px; }
.topad-zone .banner-desc { font-size: 13.5px; }
.topad-zone .banner-kicker { border: 1px solid rgba(255,255,255,.32); padding: 3px 8px; border-radius: 5px; }
.topad-zone .banner-cta { margin: 0; background: #fff; color: var(--primary-deep, #0a534d); padding: 7px 16px; border-radius: 999px; font-size: 13px; }
/* картинка верхнего баннера — в оригинальном размере, по центру, без растягивания
   (max-width страхует только от выхода за экран на узких окнах) */
.topad-zone .banner-link { display: flex; justify-content: center; }
.topad-zone .banner-link .banner { width: auto; height: auto; max-width: 100%; border-radius: 0; }

/* --- шаринг материалов --- */
.share { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 22px 0 4px; padding: 14px 16px; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); }
.share-label { font-weight: 600; color: var(--ink); }
.share-btns { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sh { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
      border: none; cursor: pointer; color: #fff; font-weight: 700; font-size: 13px; text-decoration: none; padding: 0; }
.sh img { width: 18px; height: 18px; filter: brightness(0) invert(1); }
.sh:hover { opacity: .9; text-decoration: none; }
.sh-tg { background: #229ED9; }
.sh-vk { background: #0077FF; }
.sh-fb { background: #1877F2; }
.sh-ig { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
.sh-copy { background: var(--ink-soft); }
.sh.copied { outline: 2px solid var(--primary); outline-offset: 2px; }
.share-copied { font-size: 13px; color: var(--primary); opacity: 0; transition: opacity .2s; }
.share-btns:has(.copied) ~ .share-copied, .share:has(.copied) .share-copied { opacity: 1; }

/* --- адаптивные утилиты --- */
/* контентные/баннерные изображения не вылезают за контейнер */
main img, .card img, .banner img, .responsive-media { max-width: 100%; height: auto; }

/* сетка карточек: desktop 3-4 кол → tablet 2 → mobile 1 */
.cards-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* законодательство: 3-колоночная сетка → 2 (tablet) → 1 (mobile) */
.legis-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .legis-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .legis-grid { grid-template-columns: 1fr; } }
.legis-card {
    display: flex; flex-direction: column; gap: 8px;
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    padding: 16px 18px; text-decoration: none; color: var(--ink);
    box-shadow: var(--shadow); transition: box-shadow .15s, transform .15s;
}
.legis-card:hover { box-shadow: var(--shadow-lg, 0 6px 20px rgba(0,0,0,.10)); transform: translateY(-2px); }
.legis-card-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.legis-type {
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    color: var(--primary); background: var(--surface-2); padding: 3px 9px; border-radius: var(--pill);
}
.legis-date { font-size: 12px; color: var(--muted); }
.legis-title { font-weight: 600; line-height: 1.35; }
.legis-meta { font-size: 13px; color: var(--muted); margin-top: auto; }
.legis-file { font-size: 12px; color: var(--primary); font-weight: 600; }

/* видеогалерея: превью с play-оверлеем, 3→2→1 */
.video-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .video-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .video-grid { grid-template-columns: 1fr; } }
.video-card { display: flex; flex-direction: column; gap: 8px; text-decoration: none; color: var(--ink); }
.video-thumb {
    position: relative; display: block; aspect-ratio: 16/9; overflow: hidden;
    border-radius: var(--radius); background: var(--surface-2); box-shadow: var(--shadow);
}
.video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s; }
.video-card:hover .video-thumb img { transform: scale(1.04); }
.video-play {
    position: absolute; inset: 0; margin: auto; width: 54px; height: 54px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(15,118,110,.88); color: #fff; border-radius: 50%;
    font-size: 20px; padding-left: 4px; transition: background .15s;
}
.video-card:hover .video-play { background: var(--primary); }
.video-info { display: flex; flex-direction: column; gap: 3px; }
.video-title { font-weight: 600; line-height: 1.35; }
/* адаптивный плеер 16:9 для iframe */
.video-player { position: relative; aspect-ratio: 16/9; border-radius: var(--radius); overflow: hidden; background: #000; }
.video-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-external img { width: 100%; border-radius: var(--radius); }

/* --- календарь событий --- */
.cal-layout { display: grid; grid-template-columns: 1fr 280px; gap: 28px; align-items: start; }
@media (max-width: 860px) { .cal-layout { grid-template-columns: minmax(0, 1fr); } .cal-aside { order: -1; } }
.cal-filter-note { background: var(--surface-2); padding: 8px 14px; border-radius: var(--radius-sm); font-size: 14px; }

.event-list { display: flex; flex-direction: column; gap: 14px; }
.event-item {
    display: flex; gap: 16px; text-decoration: none; color: var(--ink);
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
    padding: 14px 16px; box-shadow: var(--shadow); transition: box-shadow .15s;
}
.event-item:hover { box-shadow: var(--shadow-lg, 0 6px 20px rgba(0,0,0,.10)); }
.event-date-badge {
    flex: 0 0 56px; height: 56px; border-radius: var(--radius-sm);
    background: var(--surface-2); color: var(--muted);
    display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
}
.event-date-badge.is-upcoming { background: var(--primary); color: #fff; }
/* картинка события в списке календаря (баннеры со старого сайта) */
.event-thumb { flex: 0 0 96px; height: 72px; border-radius: var(--radius-sm); overflow: hidden; background: var(--surface-2); }
.event-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.event-thumb-broken::after { content: "📅"; font-size: 22px; display: flex; align-items: center; justify-content: center; height: 100%; color: var(--muted); }
.event-day { font-size: 22px; font-weight: 700; }
.event-mon { font-size: 11px; text-transform: uppercase; margin-top: 2px; }
.event-cal-ico { font-size: 22px; }
.event-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; overflow-wrap: anywhere; }
.event-meta { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); }
.event-title { font-weight: 600; font-size: 16px; }
.event-place { font-size: 13px; color: var(--muted); }
.event-ann { font-size: 14px; color: var(--ink-soft); margin: 2px 0 0; }
.event-fmt { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: var(--pill); color: #fff; }
.fmt-1 { background: #2563eb; }   /* офлайн */
.fmt-2 { background: #0f766e; }   /* онлайн */
.fmt-3 { background: #7c3aed; }   /* гибрид */

/* мини-календарь */
.mini-cal { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; background: var(--surface); box-shadow: var(--shadow); }
.mini-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.mini-cal-title { font-weight: 600; text-transform: capitalize; font-size: 14px; }
.mini-cal-nav { text-decoration: none; color: var(--primary); font-size: 20px; padding: 0 6px; border-radius: var(--radius-sm); }
.mini-cal-nav:hover { background: var(--surface-2); }
.mini-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.mini-cal-dow { font-size: 11px; color: var(--muted); padding: 4px 0; }
.mini-cal-cell { font-size: 13px; padding: 6px 0; border-radius: var(--radius-sm); color: var(--ink); }
.mini-cal-cell.empty { visibility: hidden; }
.mini-cal-cell.today { outline: 1px solid var(--primary); font-weight: 700; }
a.mini-cal-cell.has-events { background: var(--primary); color: #fff; font-weight: 600; text-decoration: none; }
a.mini-cal-cell.has-events:hover { opacity: .85; }

.cal-fmt-filter { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 6px; }
.cal-fmt-title { width: 100%; font-size: 13px; color: var(--muted); margin-bottom: 2px; }

/* --- Новые ЛС: таблица, фильтры, экспорт --- */
.nd-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 14px 0; }
.nd-filters input[type=text] { min-width: 220px; flex: 1; }
.nd-filters input, .nd-filters select { padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.btn-ghost-link { color: var(--muted); text-decoration: none; font-size: 14px; }
.nd-export { display: flex; gap: 8px; margin-bottom: 12px; }
.btn-export {
    display: inline-block; padding: 7px 14px; border: 1px solid var(--line); border-radius: var(--pill);
    background: var(--surface); color: var(--ink); text-decoration: none; font-size: 13px; font-weight: 600;
}
.btn-export:hover { border-color: var(--primary); color: var(--primary); }
.data-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.data-table thead th {
    text-align: left; font-size: 13px; color: var(--muted); font-weight: 600;
    padding: 11px 14px; border-bottom: 2px solid var(--line); background: var(--surface-2);
}
.data-table tbody td { padding: 11px 14px; border-bottom: 1px solid var(--line); font-size: 14px; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: var(--surface-2); }

/* --- справочник организаций --- */
.section-title { font-size: 20px; margin: 6px 0 12px; }
.leaders-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); margin-bottom: 22px; }
.leader-card {
    position: relative; text-align: center; background: var(--surface); border: 1px solid var(--line);
    border-radius: var(--radius); padding: 16px 12px; box-shadow: var(--shadow); cursor: default;
}
.leader-photo {
    width: 84px; height: 84px; margin: 0 auto 10px; border-radius: 50%; overflow: hidden;
    background: var(--surface-2); display: flex; align-items: center; justify-content: center;
}
.leader-photo img { width: 100%; height: 100%; object-fit: cover; }
.leader-initials { font-size: 32px; font-weight: 700; color: var(--primary); }
.leader-name { font-weight: 600; }
.leader-pos { font-size: 13px; color: var(--muted); margin-top: 2px; }
.leader-tip {
    position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%);
    width: 240px; background: var(--ink, #1e293b); color: #fff; text-align: left;
    padding: 12px 14px; border-radius: var(--radius-sm); font-size: 13px; line-height: 1.45;
    opacity: 0; visibility: hidden; transition: opacity .15s; z-index: 30; box-shadow: 0 8px 28px rgba(0,0,0,.25);
}
.leader-tip p { margin: 6px 0 0; }
.leader-card:hover .leader-tip, .leader-card:focus .leader-tip,
.leader-card:focus-within .leader-tip { opacity: 1; visibility: visible; }

.org-alpha { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0 14px; }
.org-alpha a {
    min-width: 30px; text-align: center; padding: 5px 8px; border: 1px solid var(--line);
    border-radius: var(--radius-sm); text-decoration: none; color: var(--ink); font-size: 13px;
}
.org-alpha a.active, .org-alpha a:hover { background: var(--primary); color: #fff; border-color: var(--primary); }

.org-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.org-updated { color: var(--muted); font-size: 13px; }
.btn-report {
    background: var(--surface); border: 1px solid var(--line); color: var(--ink); padding: 7px 14px;
    border-radius: var(--pill); font-size: 13px; font-weight: 600; cursor: pointer;
}
.btn-report:hover { border-color: #dc2626; color: #dc2626; }
.org-cat-tag { font-size: 11px; color: var(--primary); margin-top: 2px; }
.org-report-link { color: #d97706; text-decoration: none; font-size: 16px; }
.org-report-link:hover { color: #dc2626; }

/* --- каркас-заглушки разделов (в разработке) --- */
.soon-badge { display: inline-block; background: #fef3c7; color: #92400e; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: var(--pill); margin-bottom: 12px; }
.soon-hero { padding: 10px 0 18px; }
.soon-sub { font-size: 18px; color: var(--ink-soft); }
.soon-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 14px 0; }
.soon-card { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; }
.soon-card h3 { margin: 0 0 4px; font-size: 15px; }
.soon-card p { margin: 0; font-size: 13px; color: var(--muted); }
.soon-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 16px; }
.soon-chips span { background: var(--surface); border: 1px solid var(--line); border-radius: var(--pill); padding: 5px 12px; font-size: 13px; color: var(--ink-soft); }
.soon-disclaimer { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; padding: 10px 14px; border-radius: var(--radius-sm); font-size: 14px; margin-top: 16px; }

/* --- Главная (витрина) --- */
.home-top { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; align-items: start; margin-bottom: 8px; }
@media (max-width: 820px) { .home-top { grid-template-columns: 1fr; } }
.home-aside { display: flex; flex-direction: column; gap: 14px; }
.home-section { margin: 22px 0; }
.home-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; border-bottom: 2px solid var(--line); padding-bottom: 6px; }
.home-head h2 { margin: 0; font-size: 20px; }
.home-head a { font-size: 14px; color: var(--primary); text-decoration: none; white-space: nowrap; }
.home-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 820px) { .home-cols { grid-template-columns: 1fr; } }
.home-video-list { display: flex; flex-direction: column; gap: 12px; }
.hv-item { display: flex; gap: 12px; align-items: center; text-decoration: none; color: var(--ink); }
.hv-thumb { position: relative; flex: 0 0 120px; aspect-ratio: 16/9; border-radius: var(--radius-sm); overflow: hidden; background: var(--surface-2); }
.hv-thumb img { width: 100%; height: 100%; object-fit: cover; }
.hv-thumb .video-play { width: 34px; height: 34px; font-size: 13px; }
.hv-title { font-weight: 600; font-size: 14px; line-height: 1.35; }
.home-subscribe { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin: 28px 0; padding: 22px 24px; background: var(--primary); color: #fff; border-radius: var(--radius); }
.home-subscribe h2 { color: #fff; margin: 0 0 4px; }
.home-subscribe p { margin: 0; opacity: .9; }
.subscribe-form { display: flex; gap: 8px; flex-wrap: wrap; }
.subscribe-form input { padding: 10px 12px; border: 0; border-radius: var(--radius-sm); min-width: 160px; }
.subscribe-form button { background: #fff; color: var(--primary); font-weight: 700; padding: 10px 20px; border: 0; border-radius: var(--radius-sm); cursor: pointer; }

/* --- Партнёры / Производители --- */
.partners-marquee { display: flex; align-items: center; gap: 14px; overflow: hidden; background: var(--surface-2); border-bottom: 1px solid var(--line); padding: 8px 0; }
.pm-label { flex: 0 0 auto; padding-left: 16px; font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--muted); letter-spacing: .04em; }
.pm-track { display: flex; gap: 36px; align-items: center; white-space: nowrap; animation: pm-scroll 35s linear infinite; }
.partners-marquee:hover .pm-track { animation-play-state: paused; }
.pm-item { flex: 0 0 auto; display: inline-flex; align-items: center; height: 32px; color: var(--ink-soft); text-decoration: none; font-weight: 600; }
.pm-item img { max-height: 32px; max-width: 120px; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .15s, opacity .15s; }
.pm-item:hover img { filter: none; opacity: 1; }
@keyframes pm-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .pm-track { animation: none; } }

.mf-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.mf-card { display: flex; flex-direction: column; gap: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); text-decoration: none; color: var(--ink); }
.mf-card:hover { box-shadow: var(--shadow-lg, 0 6px 20px rgba(0,0,0,.10)); }
.mf-logo { height: 56px; display: flex; align-items: center; }
.mf-logo img { max-height: 56px; max-width: 100%; object-fit: contain; }
.mf-logo span { font-weight: 700; }
.mf-name { font-weight: 600; }
.mf-country { font-size: 13px; color: var(--muted); }
.mf-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.mf-badge { font-size: 11px; font-weight: 600; padding: 2px 8px; border: 1px solid var(--line); border-radius: var(--pill); color: var(--muted); }

.mf-hero { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); margin-bottom: 18px; }
.mf-hero-logo img { max-height: 90px; max-width: 200px; object-fit: contain; }
.mf-hero-info { flex: 1; min-width: 240px; }
.mf-cta { display: inline-block; margin-top: 12px; color: #fff; padding: 10px 20px; border-radius: var(--pill); text-decoration: none; font-weight: 700; }
.mf-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--line); margin-bottom: 18px; }
.mf-tab { background: none; border: none; padding: 10px 16px; cursor: pointer; font-size: 14px; color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -2px; }
.mf-tab.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: 600; }
.mf-panel { display: none; }

/* --- История фармации --- */
.hist-hero { padding: 8px 0 18px; }
.hist-sub { font-size: 18px; color: var(--ink-soft); margin-top: 4px; }
.hist-desc { color: var(--muted); max-width: 760px; }
.hist-suggest { margin-top: 26px; padding: 20px 22px; background: var(--surface-2); border-radius: var(--radius); }
.book-block {
    display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-start; margin-top: 26px;
    padding: 22px; background: var(--primary); color: #fff; border-radius: var(--radius);
}
.book-block h2 { color: #fff; margin-bottom: 8px; }
.book-photo { width: 180px; border-radius: var(--radius-sm); box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.book-info { flex: 1; min-width: 240px; }
.book-prices { list-style: none; padding: 0; margin: 12px 0; display: flex; flex-direction: column; gap: 4px; }
.book-prices strong { color: #fff; }
.btn-whatsapp {
    display: inline-flex; align-items: center; gap: 8px; margin-top: 8px;
    background: #25D366; color: #fff; padding: 11px 20px; border-radius: var(--pill);
    text-decoration: none; font-weight: 700;
}
.btn-whatsapp:hover { background: #1ebe5a; }
.partner-block { margin-top: 26px; }
.partner-phones { font-weight: 600; }

/* форма обратной связи на статических страницах (Рекламодателю и т.п.) */
.feedback-block { margin-top: 26px; padding: 20px 22px; background: var(--surface-2); border-radius: var(--radius); }
.feedback-form .ff-row { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.feedback-form .ff-row > div { flex: 1; min-width: 200px; }
.feedback-form label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 4px; }
.feedback-form input { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: var(--radius-sm); }

/* факты события на детальной */
.event-facts {
    display: grid; gap: 6px; margin: 0 0 18px; padding: 14px 16px;
    background: var(--surface-2); border-radius: var(--radius); font-size: 14px;
}
.event-facts .ef-label { display: inline-block; min-width: 110px; color: var(--muted); font-weight: 600; }

/* формы: узкий контейнер, на мобильном — на всю ширину */
.form-narrow { max-width: 440px; }
.form-narrow input, .form-narrow select, .form-narrow textarea { width: 100%; }

/* баннерные места */
.banner { width: 100%; overflow: hidden; border-radius: var(--radius); }
.banner img { display: block; width: 100%; }

/* таблицы → карточки на мобильном (ТЗ §8.4). Требуется class="responsive" + td[data-label]. */
@media (max-width: 720px) {
    table.responsive thead { display: none; }
    table.responsive, table.responsive tbody, table.responsive tr, table.responsive td { display: block; width: 100%; }
    table.responsive tr {
        border: 1px solid var(--line); border-radius: var(--radius-sm);
        margin-bottom: 10px; padding: 8px 12px; background: var(--surface); box-shadow: var(--shadow);
    }
    table.responsive td { border: none; padding: 6px 0; display: flex; justify-content: space-between; gap: 14px; text-align: right; }
    table.responsive td::before {
        content: attr(data-label); font-weight: 600; color: var(--muted);
        text-align: left; flex: 0 0 auto;
    }
    table.responsive td[data-label=""]::before, table.responsive td:not([data-label])::before { content: ""; }
}

/* пагинация (публичная, формат ?p=N) */
.pager { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 22px 0 4px; }
.pager .pg {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 10px;
    border: 1px solid var(--line); border-radius: var(--radius-sm);
    background: var(--surface); color: var(--ink-soft); text-decoration: none;
    font-size: 14px; font-weight: 600; line-height: 1;
}
.pager a.pg:hover { border-color: var(--primary); color: var(--primary); text-decoration: none; }
.pager .pg-current { background: var(--primary); border-color: var(--primary); color: #fff; cursor: default; }
.pager .pg-disabled { color: var(--faint); background: var(--surface-2); cursor: default; }

/* ===== Дизайн-макет: шапка, навигация, тикер партнёров (PagesDesign/Главная) ===== */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* ===== Подвал (дизайн-макет) ===== */
footer{background:#495568;color:#cfd6e0;padding:54px 0 28px;margin-top:10px}
html[data-theme="dark"] footer{background:#152430}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.09)}
.foot-logo{height:50px;filter:brightness(0) invert(1)}
.foot-about{font-size:13.5px;line-height:1.6;color:#b6bfcd;margin-top:18px;max-width:36ch}
.foot-soc{display:flex;gap:10px;margin-top:20px}
.foot-soc a{width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;color:#aebbc0;transition:.18s}
.foot-soc a svg{width:18px;height:18px}
.foot-soc a:hover{background:#4accd4;border-color:#4accd4;color:#0a2725}
.foot-col h5{color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
.foot-col a{display:block;font-size:14px;color:#b6bfcd;padding:6px 0;transition:.15s;text-decoration:none}
.foot-col a:hover{color:#fff;padding-left:4px}
.foot-contact p{font-size:13.5px;line-height:1.6;color:#b6bfcd;margin-bottom:12px}
.foot-contact b{color:#fff;font-weight:600}
.foot-contact a{color:#7fd8cf;text-decoration:none}
/* телефон-ссылка (WhatsApp/звонок) — выглядит как текст, бирюзовый на наведении */
.foot-contact .foot-phone{color:#b6bfcd;text-decoration:none;transition:color .15s}
.foot-contact .foot-phone b{color:#fff}
.foot-contact .foot-phone:hover,.foot-contact .foot-phone:hover b{color:#7fd8cf}
.foot-reprint{display:flex;align-items:center;gap:9px;padding:16px 0 4px;font-size:13px;color:#9aa4b4}
.foot-reprint svg{width:16px;height:16px;flex:none;color:#7fd8cf}
.foot-reprint a{color:#7fd8cf;font-weight:600;transition:.15s;text-decoration:none}
.foot-reprint a:hover{color:#fff;text-decoration:underline}
.foot-bot{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:24px;font-size:12.5px;color:#9aa4b4;flex-wrap:wrap}
.foot-disc{max-width:70ch;line-height:1.5}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* Мобильный футер (2026-07-31): меньше зазор до футера и внутренние интервалы вдвое; соцсети справа от логотипа */
@media(max-width:760px){
  /* 1) расстояние «баннер → футер» ещё вдвое меньше (внешний отступ сверху) */
  footer{margin-top:2px;padding-top:27px;padding-bottom:14px}
  /* 2) внутренние интервалы футера; зазор «текст → КОНТАКТЫ» уменьшен вдвое:
        grid row-gap 20→10, нижний отступ текста 13.5→6, верхний отступ заголовка КОНТАКТЫ 21.7→11 */
  .foot-grid{gap:10px 20px;padding-bottom:20px}
  .foot-about{margin-top:9px}
  .foot-contact h5{margin-top:11px}
  .foot-contact p{margin-bottom:6px}
  .foot-reprint{padding:8px 0 2px}
  .foot-bot{padding-top:12px}
  /* 3) соцсети — в один ряд с логотипом, прижаты вправо; текст «о газете» уходит на строку ниже */
  .foot-brand{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px}
  .foot-brand .brand{order:0;margin:0}
  .foot-brand .foot-soc{order:1;margin:0 0 0 auto}
  .foot-brand .foot-about{order:2;flex:1 1 100%;margin-bottom:6px}
}

/* ===== Мобильное липкое нижнее меню (таб-бар) + лист «Ещё» ===== */
.mobile-tabbar{display:none}
.mobile-more{display:none}
@media(max-width:760px){
  .mobile-tabbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:var(--surface);border-top:1px solid var(--line);
    box-shadow:0 -6px 20px -12px rgba(16,30,38,.4);
    height:58px;padding-bottom:env(safe-area-inset-bottom,0px);
  }
  html[data-theme="dark"] .mobile-tabbar{background:#152430;border-top-color:rgba(255,255,255,.08)}
  .mobile-tabbar .mtab{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    background:none;border:none;font-family:inherit;cursor:pointer;text-decoration:none;
    color:var(--muted);font-size:11px;font-weight:600;padding:0;min-width:0;
  }
  .mobile-tabbar .mtab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-tabbar .mtab svg{width:22px;height:22px;flex:none}
  .mobile-tabbar .mtab:hover,.mobile-tabbar .mtab:active{color:var(--primary)}
  /* контент не перекрывается баром */
  body{padding-bottom:58px}
  /* лист «Ещё» — снизу, поверх бара */
  .mobile-more{display:block;position:fixed;inset:0;z-index:85;background:rgba(16,30,38,.5)}
  .mobile-more[hidden]{display:none}
  .mobile-more .mm-sheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface);
    border-radius:16px 16px 0 0;padding:6px 0 calc(10px + env(safe-area-inset-bottom,0px));
    max-height:72vh;overflow-y:auto;transform:translateY(100%);transition:transform .2s ease}
  .mobile-more.open .mm-sheet{transform:translateY(0)}
  html[data-theme="dark"] .mobile-more .mm-sheet{background:#1b2a36}
  .mobile-more .mm-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line-2)}
  .mobile-more .mm-head span{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:var(--ink)}
  .mobile-more .mm-close{background:none;border:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
  .mobile-more .mm-links a{display:block;padding:14px 18px;font-size:15px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-2)}
  .mobile-more .mm-links a:last-child{border-bottom:none}
  .mobile-more .mm-links a:active{background:var(--surface-2)}
  /* из подвала убираем колонки-ссылки «Разделы» — они продублированы нижним меню */
  footer .foot-col:not(.foot-contact){display:none}
}
.topad .wrap{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;min-height:56px;padding-top:9px;padding-bottom:9px;text-align:center}
@media(max-width:760px){
.topad .wrap{padding-right:48px;padding-left:14px}
}
.utility{
  background:#495568;
  color:#cfd6e0;
  font-size:13px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
html[data-theme="dark"] .utility{background:#1a8a92;border-bottom-color:rgba(255,255,255,.12)}
.utility .wrap{display:flex;align-items:center;justify-content:space-between;height:42px;gap:18px}
.utility-left{display:flex;align-items:center;gap:18px;min-width:0}
.util-date{display:flex;align-items:center;gap:8px;color:#9fb0b3;white-space:nowrap}
.util-date b{color:#fff;font-weight:600}
.util-tag{color:#7fd8cf;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.utility-right{display:flex;align-items:center;gap:6px}
.util-btn{
  display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;
  border-radius:999px;color:#cdd8da;font-size:13px;font-weight:500;
  border:1px solid transparent;transition:.18s;cursor:pointer;background:none;font-family:inherit;
  white-space:nowrap;flex:none;   /* текст кнопки («Sign in»/«Sign up») — в одну строку, без переноса */
}
.util-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.util-btn.primary{background:var(--primary);color:#fff}
.util-btn.primary:hover{background:var(--primary-deep)}
.icon{width:16px;height:16px;display:inline-block;vertical-align:middle;flex:none}
header.masthead{
  background:#495568;
  border-bottom:1px solid rgba(255,255,255,.1);
  position:sticky;top:0;z-index:60;
  transition:box-shadow .25s,padding .25s,background .3s;
}
header.masthead.scrolled{box-shadow:0 6px 24px -16px rgba(16,30,38,.55)}
html[data-theme="dark"] header.masthead, html[data-theme="dark"] nav.mainnav{background:#152430}
.masthead-inner{display:flex;align-items:center;gap:26px;height:88px;transition:height .25s}
header.masthead.scrolled .masthead-inner{height:66px}
.brand{display:flex;align-items:center;gap:14px;flex:none}
.brand-logo{height:46px;width:auto;display:block;transition:height .25s;filter:brightness(0) invert(1)}
header.masthead.scrolled .brand-logo{height:38px}
html[data-theme="dark"] .brand-logo{filter:brightness(0) invert(1)}
header.masthead.scrolled .brand-mark{width:40px;height:40px}
header.masthead.scrolled .brand-text .ru{font-size:17px}
/* Кнопка-бургер (мобильное меню) — по умолчанию скрыта, показывается на узких экранах */
.nav-burger{display:none;align-items:center;justify-content:center;width:42px;height:42px;flex:none;padding:0;border:none;background:none;color:#fff;cursor:pointer;border-radius:9px;margin-left:-6px}
.nav-burger:hover{background:rgba(255,255,255,.12)}
.nav-burger svg{width:24px;height:24px;display:block}
.nav-burger .ic-x{display:none}
.nav-burger.open .ic-bars{display:none}
.nav-burger.open .ic-x{display:block}
.search{flex:1;max-width:440px;position:relative}
.search input{
  width:100%;height:46px;border-radius:999px;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.1);padding:0 18px 0 46px;font-family:inherit;font-size:14.5px;color:#fff;
  transition:.18s;
}
.search input::placeholder{color:rgba(255,255,255,.6)}
.search input:focus{outline:none;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.16);box-shadow:0 0 0 4px rgba(255,255,255,.08)}
.search .icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.6);width:18px;height:18px}
.header-actions{display:flex;align-items:center;gap:10px;flex:none;margin-left:auto}
.lang-pick{display:flex;align-items:center;height:46px;padding:4px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);gap:2px;flex:none}
.lang-opt{height:38px;padding:0 12px;border:none;background:none;border-radius:999px;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:700;letter-spacing:.02em;color:rgba(255,255,255,.7);transition:.16s}
.lang-opt:hover{color:#fff}
.lang-opt.active{background:#fff;color:#495568}
.ghost-btn{
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);
  display:grid;place-items:center;cursor:pointer;color:rgba(255,255,255,.85);transition:.18s;flex:none;
}
.ghost-btn:hover{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.18)}
.header-soc{display:flex;align-items:center;gap:7px;flex:none}
.header-soc a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);transition:.16s}
.header-soc a svg{width:18px;height:18px}
.header-soc a:hover{background:#4accd4;border-color:#4accd4;color:#0a2725;transform:translateY(-2px)}
nav.mainnav{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:88px;z-index:55;transition:top .25s,background .3s}
header.masthead.scrolled + nav.mainnav{top:66px}
.mainnav .wrap{display:flex;align-items:center;justify-content:space-between;gap:0;height:52px}
.mainnav a, .mainnav .nav-parent{
  position:relative;font-weight:600;font-size:12.5px;color:var(--ink-soft);
  padding:0 7px;height:52px;display:inline-flex;align-items:center;white-space:nowrap;transition:.15s;letter-spacing:-.01em;
}
.mainnav .nav-parent{cursor:default}
.nav-item:hover > .nav-parent, .nav-item:focus-within > .nav-parent{color:var(--primary)}
.mainnav a::after{content:"";position:absolute;left:7px;right:7px;bottom:0;height:3px;background:var(--primary);transform:scaleX(0);transition:transform .2s;border-radius:3px 3px 0 0}
.mainnav a:hover{color:var(--primary)}
.mainnav a:hover::after, .mainnav a.active::after{transform:scaleX(1)}
.mainnav a.active{color:var(--primary)}
.mainnav a.accent{color:var(--accent)}
.mainnav a.accent::after{background:var(--accent)}
.nav-item{position:relative;display:inline-flex;align-items:center}
.nav-item > a, .nav-item > .nav-parent{padding-right:4px}
.nav-caret{display:inline-flex;align-items:center;margin-left:1px;color:var(--faint);transition:transform .2s}
.nav-caret svg{width:13px;height:13px}
.nav-item:hover .nav-caret, .nav-item:focus-within .nav-caret{transform:rotate(180deg);color:var(--primary)}
.nav-dropdown{
  position:absolute;top:100%;left:0;z-index:70;min-width:312px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px;
  box-shadow:var(--shadow-lg);padding:8px;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s;pointer-events:none;
}
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.nav-dropdown a{
  display:flex;align-items:center;gap:10px;height:auto;min-height:38px;padding:8px 12px;
  font-size:13.5px;font-weight:500;color:var(--ink-soft);border-radius:8px;white-space:normal;
  letter-spacing:0;line-height:1.3;transition:.13s;
}
.nav-dropdown a::after{display:none}
.nav-dropdown a:hover{background:var(--primary-tint);color:var(--primary)}
.nav-dropdown a .di{width:6px;height:6px;border-radius:50%;background:var(--line);flex:none;transition:.13s}
.nav-dropdown a:hover .di{background:var(--primary)}
.nav-dd-sep{height:1px;background:var(--line-2);margin:6px 8px}
@media(max-width:1080px){
.mainnav .wrap{flex-wrap:wrap;height:auto;justify-content:flex-start;padding-top:4px;padding-bottom:4px}
.mainnav a{height:42px}
}
.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:6px;animation:pulse 2s infinite}
.ticker{
  background:var(--surface);border-bottom:1px solid var(--line);
  display:flex;align-items:stretch;overflow:hidden;position:relative;
}
.ticker-label{
  flex:none;display:flex;align-items:center;gap:8px;padding:0 20px;
  background:#495568;color:#cfd6e0;font-size:11.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;z-index:2;
}
html[data-theme="dark"] .ticker-label{background:#152430}
.ticker-label svg{width:14px;height:14px;color:var(--primary-deep)}
html[data-theme="dark"] .ticker-label svg{color:var(--primary)}
.ticker-label .ticker-ico{width:16px;height:auto;flex:none;display:block}
.ticker-mask{flex:1;overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.ticker-track{display:flex;align-items:center;width:max-content;animation:ticker 42s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-logo{
  display:inline-flex;align-items:center;gap:10px;padding:0 30px;height:52px;
  white-space:nowrap;border-right:1px solid var(--line-2);
}
.ticker-logo .tm{
  width:30px;height:30px;border-radius:8px;flex:none;display:grid;place-items:center;
  font-family:"Source Serif 4",serif;font-weight:700;font-size:14px;color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--primary-deep));
}
/* настоящий логотип компании в ленте (вместо монограммы) */
.ticker-logo .tm-img{height:30px;max-width:96px;width:auto;flex:none;object-fit:contain;border-radius:6px}
.ticker-logo:nth-child(3n) .tm{background:linear-gradient(135deg,var(--accent),#b8502c)}
.ticker-logo:nth-child(3n+1) .tm{background:linear-gradient(135deg,#3a5a78,#1f3a52)}
.ticker-logo b{font-weight:700;font-size:15px;color:var(--ink-soft);letter-spacing:-.01em}
.ticker-logo span{font-size:11px;color:var(--faint);font-weight:500;display:block;letter-spacing:.02em}
.ticker-logo .tt{display:flex;flex-direction:column;line-height:1.15}
@media (prefers-reduced-motion: reduce){
.ticker-track{animation:none}
}
@media(max-width:760px){
/* на мобильном блок «ПАРТНЁРЫ» слева от бегущей строки скрыт — лента логотипов занимает всю ширину */
.ticker .ticker-label{display:none}
.ticker-logo{padding:0 22px}
.ticker-logo .tt{display:none}   /* подпись (название + подзаголовок) у логотипов скрыта — только логотипы */
}
section.block{padding:44px 0}
.ad-leader .wrap{padding-top:0;padding-bottom:0}
.trend-row .tm{font-size:11.5px;color:var(--faint);margin-top:3px}
.partners .wrap{display:flex;align-items:center;gap:34px;padding:22px 28px;overflow-x:auto;scrollbar-width:none}
.partners .wrap::-webkit-scrollbar{display:none}
@media(max-width:760px){
.wrap{padding:0 14px}
.util-date{display:none}
.util-tag{white-space:normal;font-size:12px;line-height:1.25}
.utility .wrap{height:auto;min-height:42px;padding-top:6px;padding-bottom:6px;gap:10px}
.header-soc{display:none}
.lang-pick{height:36px;padding:3px}
.lang-opt{padding:0 8px;font-size:11px;height:30px}
.ghost-btn{width:36px;height:36px}
.header-actions .ghost-btn svg{width:17px;height:17px}
.masthead .saved-menu{order:6;flex:none}   /* «Сохранённое» — справа от кнопки смены темы (строка 2) */
header.masthead{position:sticky;top:0;z-index:60}   /* шапка (лого/язык/тема/поиск/бургер) липкая на мобильном */
.masthead-inner{height:auto;min-height:64px;gap:10px 12px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
header.masthead.scrolled .masthead-inner{height:auto}
.brand-logo{height:36px}
header.masthead.scrolled .brand-logo{height:36px}
/* Раскладка шапки на мобильном: строка 1 = бургер + лого + переключатель языка;
   строка 2 = поле поиска + кнопка смены темы справа от него.
   header-actions → display:contents, чтобы язык/тема стали прямыми flex-элементами
   строки и раскидывались по строкам через order (иначе они в отдельном контейнере). */
.header-actions{display:contents}
.masthead .nav-burger{order:1}
.masthead .brand{order:2}
.masthead .lang-pick{order:3;margin-left:auto}   /* язык — в правый край строки 1 (и заполняет строку → поиск переносится вниз) */
.masthead .search{order:4;flex:1 1 auto;max-width:none;min-width:0;width:auto}   /* поиск уже не на всю ширину — рядом справа кнопка темы */
.masthead #themeToggle{order:5;flex:none}
.search input{height:40px;font-size:14px;padding:0 14px 0 42px}
.search .icon{left:14px}
/* ===== Бургер-меню: обычное меню прячется, раскрывается кнопкой вертикальным списком ===== */
.nav-burger{display:inline-flex}
nav.mainnav{position:relative;top:0;display:none;overflow-y:auto;transition:none}
/* открытое бургер-меню — фиксированная панель под липкой шапкой (top задаётся JS = низ шапки) */
nav.mainnav.open{display:block;position:fixed;left:0;right:0;bottom:0;z-index:59;box-shadow:0 14px 26px -14px rgba(16,30,38,.45)}
.mainnav .wrap{flex-direction:column;align-items:stretch;flex-wrap:nowrap;justify-content:flex-start;height:auto;gap:2px;padding:6px}
/* каждый пункт — строка на всю ширину */
.nav-item{position:static;display:flex;flex-wrap:wrap;align-items:center;width:100%}
.mainnav .wrap > a{width:100%;justify-content:flex-start}
.mainnav a, .mainnav .nav-parent{height:auto;min-height:46px;padding:0 12px;font-size:15px;border-radius:9px;letter-spacing:0}
.nav-item > a, .nav-item > .nav-parent{flex:1;padding-right:0}
.mainnav a::after{display:none}
.mainnav a.active{background:var(--primary-tint);color:var(--primary)}
/* каретка справа — кликабельна, вращается при раскрытии подменю */
.nav-caret{margin-left:auto;padding:12px 12px;color:var(--muted)}
.nav-caret svg{width:16px;height:16px}
.nav-item.open .nav-caret{transform:rotate(180deg);color:var(--primary)}
/* подменю — статичный список под пунктом, скрыт до раскрытия */
.nav-dropdown{position:static;left:auto;right:auto;top:auto;width:100%;min-width:0;order:3;
  background:transparent;border:none;box-shadow:none;border-radius:0;padding:0 0 6px 10px;margin:0;
  opacity:1;visibility:visible;transform:none;pointer-events:auto;display:none}
.nav-item.open .nav-dropdown{display:block}
.nav-dropdown a{min-height:42px;font-size:14px}
}
/* ===== Верхний рекламный баннер (topad) — дизайн-макет ===== */
.topad{position:relative;background:linear-gradient(100deg,#0a534d,#0f766e 55%,#d9603a 145%);color:#fff;overflow:hidden}
.topad::before{content:"";position:absolute;inset:0;background:radial-gradient(300px 160px at 85% -40%,rgba(255,255,255,.14),transparent 70%)}
.topad .wrap{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;min-height:56px;padding:9px 28px;text-align:center}
.topad .ta-pill{flex:none;font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.32);padding:3px 8px;border-radius:5px}
.topad a.ta-link{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;text-decoration:none}
.topad .ta-txt{font-size:14.5px;font-weight:500;color:rgba(255,255,255,.92)}
.topad .ta-txt b{font-weight:700;color:#fff}
.topad .ta-cta{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;border-radius:999px;background: var(--surface);color:#0a534d;font-weight:700;font-size:13px;transition:.18s;white-space:nowrap}
.topad .ta-cta:hover{background:#8de3da}
.topad .ta-cta svg{width:14px;height:14px}
.topad .ta-close{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:8px;border:none;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;display:grid;place-items:center;transition:.15s}
.topad .ta-close:hover{background:rgba(255,255,255,.28)}
.topad .ta-close svg{width:16px;height:16px}
.topad.hidden{display:none}
@media (max-width:760px){
  .topad .ta-pill{display:none}
  .topad .ta-txt{font-size:13px}
  .topad .wrap{padding-left:14px}
}

/* ===== Утилити-полоса: бирюзовый фон + тёмный текст (дизайн-макет) ===== */
.utility{background:#4accd4;border-bottom:none}
.utility .util-date, .utility .util-date b{color:#0f2f33}
.utility .util-tag{color:#2c3e48}
.utility .util-btn{color:#13343a;background:transparent}
.utility .util-btn:hover{color:#0a534d}
.utility .util-btn.primary{background:#495568;color:#fff}
.utility .util-btn.primary:hover{background:#3a4453}
.utility .icon{color:#0f2f33}

/* ===== Поле поиска в шапке: отступ под иконку + тёмный полупрозрачный фон (дизайн) ===== */
.masthead .search input{
  width:100%; height:46px; padding:0 18px 0 46px;
  border:1px solid rgba(255,255,255,.18); border-radius:var(--pill);
  background:rgba(255,255,255,.10); color:#fff; font-size:14.5px;
}
.masthead .search input::placeholder{color:rgba(255,255,255,.6)}
.masthead .search .icon{left:18px}

/* ===== Тёмная тема (день/ночь) — дизайн-макет ===== */
html[data-theme="dark"]{
  --bg:#0a1417;
  --surface:#0f1f25;
  --surface-2:#0c1a20;
  --ink:#f5fafa;
  --ink-soft:#d3dee0;
  --muted:#a3b5bc;
  --faint:#8398a0;
  --line:#1d3138;
  --line-2:#172a31;
  --primary:#2dd4bf;
  --primary-deep:#5eead4;
  --primary-tint:#11302f;
  --accent:#f0855f;
  --accent-tint:#3a1f17;
  --gold:#d6ac5c;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 30px -14px rgba(0,0,0,.6);
  --shadow-lg:0 30px 70px -30px rgba(0,0,0,.8);
}
html[data-theme="dark"] .utility{background:#1a8a92;border-bottom-color:rgba(255,255,255,.12)}
html[data-theme="dark"] header.masthead,
html[data-theme="dark"] nav.mainnav{background:#152430}
html[data-theme="dark"] .brand-logo{filter:brightness(0) invert(1)}
html[data-theme="dark"] .ticker-label{background:#152430}
html[data-theme="dark"] .ticker-label svg{color:var(--primary)}
html[data-theme="dark"] .data-block{background:linear-gradient(180deg,#3f4858,#2f3743)}
html[data-theme="dark"] footer{background:#152430}
/* акцентные span в заголовках секций — белые на тёмном фоне (по дизайну) */
html[data-theme="dark"] .sec-title h2 span,
html[data-theme="dark"] .front-aside h4 span,
html[data-theme="dark"] .widget-head h4 span{color:#fff!important}
/* заголовки секций и страниц — светлые в тёмной теме (слейт #495568 плохо читается на тёмном) */
html[data-theme="dark"] .home-page .sec-title h2,
html[data-theme="dark"] .home-page .front-aside h4,
html[data-theme="dark"] .home-page .widget-head h4,
html[data-theme="dark"] .newslist-page .page-head .page-title,
html[data-theme="dark"] .lawlist-page .page-head .page-title,
html[data-theme="dark"] .history-page .sec-head h2,
html[data-theme="dark"] .orgs-page .lead-title h2{color:#fff!important}
/* фикс: lang-opt — это <a>, нужен flex для центровки текста по высоте */
.lang-pick{align-items:center}
.lang-pick .lang-opt{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;line-height:1}
.lang-pick .lang-opt.active{background:#fff;color:#495568}
.lang-pick .lang-opt.active:hover{color:#495568}
/* иконки переключателя темы: солнце днём, луна ночью */
.ghost-btn .ic-moon{display:none}
html[data-theme="dark"] .ghost-btn .ic-sun{display:none}
html[data-theme="dark"] .ghost-btn .ic-moon{display:block}

/* фикс: кнопка темы — <button> получала глобальный padding, иконка смещалась */
.ghost-btn{padding:0;line-height:0}
.ghost-btn svg{display:block}
html[data-theme="dark"] .ghost-btn .ic-moon{display:block}

/* надёжная центровка иконок в круглых ghost-кнопках (тема/закладки) */
.header-actions .ghost-btn{display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:0}
.header-actions .ghost-btn svg{width:20px;height:20px;display:block;flex:none}
.header-actions .ghost-btn .ic-moon{display:none}
html[data-theme="dark"] .header-actions .ghost-btn .ic-sun{display:none}
html[data-theme="dark"] .header-actions .ghost-btn .ic-moon{display:block}

/* ===== Бегущая строка партнёров: полная ширина + анимация (дизайн) ===== */
.ticker{background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:stretch;overflow:hidden;position:relative}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-label{flex:none;display:flex;align-items:center;gap:8px;padding:0 20px;background:#495568;color:#cfd6e0;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;z-index:2}
.ticker-mask{flex:1;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker-track{display:flex;align-items:center;width:max-content;animation:ticker 42s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}

/* ===== Шрифт Kanyon (из дизайн-макета) для display-заголовков ===== */
@font-face{font-family:"Kanyon";src:url("/fonts/Kanyon.ttf?v=3") format("truetype");font-weight:400 700;font-display:swap}
/* Қ/қ дорисованы прямо в Kanyon.ttf (глиф К + хвостик; см. Kanyon.orig.ttf — оригинал).
   Ғ и Ұ в Kanyon нет — подставляем из узкого PT Sans Narrow (self-hosted сабсет;
   Regular — его штрих совпадает по толщине с Kanyon Bold), size-adjust подгоняет
   высоту, широкий font-weight отключает синтетический жир */
@font-face{
  font-family:"Kanyon";
  src:url("/fonts/PTSansNarrow-Reg-cyrext.woff2") format("woff2");
  font-weight:400 700;font-display:swap;
  size-adjust:89%;
  unicode-range:U+0492-0493;
}
@font-face{
  font-family:"Kanyon";
  src:url("/fonts/PTSansNarrow-Reg-cyr.woff2") format("woff2");
  font-weight:400 700;font-display:swap;
  size-adjust:89%;
  unicode-range:U+04B0-04B1;
}
/* заголовок виджета «Главные темы» / «PharmCenter Data» — Kanyon, слейт (как в дизайне) */
.home-page .widget-head h4{font-family:"Kanyon",var(--font-serif);font-weight:700;font-size:23px;letter-spacing:.02em;text-transform:uppercase;color:#495568;margin:0}

/* ── Единая акцентная черта перед заголовками секций ──────────────────────────
   Раньше черта была отдельным <span> с фиксированной высотой: на каждой странице
   свои размеры (5–6px × 28–40px) и разное вертикальное положение — центрировалась
   по всему блоку и съезжала вниз при подзаголовке или из-за отступа заголовка.
   Теперь это ::before самого заголовка: высота задана в em → пропорциональна
   размеру заголовка и одинаково (чуть выше и чуть ниже строки текста) выглядит
   на всех страницах, как перед «Главные темы». */

/* прячем старые span-полосы (заменены псевдоэлементом) */
.home-page .sec-title .sec-bar,
.home-page .widget-head .sec-bar,
.newslist-page .widget-head .sec-bar,
.artdetail-page .widget-head .sec-bar,
.newslist-page .page-head .page-bar,
.lawlist-page .page-head .page-bar,
.history-page .sec-head .sec-bar,
.orgs-page .lead-title .lead-bar{display:none}

/* геометрия черты + место под неё (одинаково везде) */
.home-page .sec-title h2,
.home-page .widget-head h4,
.newslist-page .widget-head h4,
.artdetail-page .widget-head h4,
.newslist-page .page-head .page-title,
.lawlist-page .page-head .page-title,
.history-page .sec-head h2,
.orgs-page .lead-title h2{position:relative;padding-left:17px}

.home-page .sec-title h2::before,
.home-page .widget-head h4::before,
.newslist-page .widget-head h4::before,
.artdetail-page .widget-head h4::before,
.newslist-page .page-head .page-title::before,
.lawlist-page .page-head .page-title::before,
.history-page .sec-head h2::before,
.orgs-page .lead-title h2::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:5px;height:1.45em;border-radius:3px;background:var(--cyan)}

/* «Лидеры отрасли» — золотой акцент (как в дизайне), геометрия та же */
.orgs-page .lead-title h2::before{background:var(--gold)}

/* подзаголовки под «обёрнутыми» заголовками выравниваем под текст заголовка */
.home-page .widget-head .sub,
.newslist-page .page-head .page-sub,
.lawlist-page .page-head .page-sub{padding-left:17px}

/* ── Страница «Правила перепечатки» (/page/reprint) ──────────────────────────
   Нумерованный список с бейджами-счётчиками и красными предупреждениями (по дизайну). */
.reprint-rules{max-width:94ch}
.reprint-rules .rr-lead{font-size:16px;font-weight:600;color:var(--ink);margin:0 0 6px}
.reprint-rules .rr-sub{font-size:15px;color:var(--ink-soft);margin:0 0 22px}
.reprint-rules ol{list-style:none;counter-reset:rule;display:flex;flex-direction:column;gap:18px;padding:0;margin:0}
.reprint-rules ol li{counter-increment:rule;position:relative;padding-left:44px;font-size:15px;color:var(--ink-soft);line-height:1.6}
.reprint-rules ol li::before{content:counter(rule);position:absolute;left:0;top:1px;width:30px;height:30px;border-radius:9px;background:var(--primary-tint);color:var(--primary-deep);font-weight:700;font-size:14px;display:grid;place-items:center}
.reprint-rules ol li b{color:var(--ink)}
.reprint-rules .rr-warn{color:var(--accent);font-weight:700}
/* ночной режим: бейджи-счётчики — яркая заливка с тёмной цифрой (по дизайну) */
html[data-theme="dark"] .reprint-rules ol li::before{background:var(--primary);color:#04201d}

/* ── Фильтры-чипы → выпадающий список на мобильном ───────────────────────────
   Экспертные материалы (.nl-filter-dd), законодательство (.lawlist-page),
   справочник организаций (.orgs-page): на ≤760px чипы скрываются, показывается <select>. */
.filter-select{
  display:none;width:100%;height:46px;padding:0 40px 0 14px;
  border:1px solid var(--line);border-radius:10px;background-color:var(--surface);
  color:var(--ink-soft);font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23647782' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;
}
@media(max-width:760px){
  .nl-filter-dd .filter-select,
  .lawlist-page .filter-select,
  .orgs-page .filter-select,
  .home-page .video-cats .filter-select{display:block}
  .nl-filter-dd .rubr .rubr-chip,
  .lawlist-page .cats .cat,
  .orgs-page .cats .cat,
  .home-page .video-cats .vcat{display:none}
  /* на мобильном ряд фильтров видео = только выпадающий список */
  .home-page .video-cats{display:block;margin-bottom:14px}
}
