:root {
  --primary:    #000;
  --accent:     #810517;
  --light-bg:   #fff;
  --white:      #ffffff;
  --text:       #000;
  --muted:      #6c7a89;
  --footer-bg:  #ddd;
  --header-h:   78px;
  --radius:     3px;
  --shadow:     0 4px 24px #e0ebd5;
  --transition: 0s ease;
}

::selection {
  background-color: #c5c5c5; /* Цвет фона выделения */
  color: #810517; /* Цвет текста */
}

/* ── Reset / Base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  font-size: 16px;
  color: var(--text);
  background: var(--light-bg);
  /* padding-top: var(--header-h); */
}

a { color: #810517; /* text-decoration: none;  */ transition: color var(--transition); }
img { max-width: 100%; display: block; }

/* ── HEADER ───────────────────────────────────────────────── */


/* Фиксация ТОЛЬКО для бордового меню на CSS */
  .sticky-nav {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1020;
}

/* Базовые стили для верхней панели */
.top-header-info {
/*   font-size: 0.9rem;
font-family: Arial, sans-serif; */
  background-color: #ffffff;
}

.top-header-info .company-title {
  color: #800020;
  font-weight: 700;
  line-height: 1.2;
}

.top-header-info .contact-link {
  color: #333333;
  text-decoration: none;
  font-weight: 600;
}

.top-header-info .contact-link:hover {
  color: #800020;
}

.top-header-info .email-link {
  color: #800020;
  text-decoration: none;
}

/* #mainHeader {
    Позволяет внутреннему меню «прилипать» к экрану, когда скрывается белая панель
    display: contents; 
} */

/* Навигационная панель */
#mainHeader .bg-maroon {
  background-color: #810517 !important;
  border: none;
}

#mainHeader .nav-custom .nav-item {
  border-right: 1px solid rgba(255, 255, 255, 0.3);
}

#mainHeader .nav-custom .nav-item:last-child {
  border-right: none;
}

#mainHeader .nav-custom .nav-link {
  color: #ffffff !important;
  text-transform: uppercase;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.5px;
  padding: 0.75rem 1rem !important;
  transition: background-color 0.2s;
}

#mainHeader .nav-custom .nav-link:hover,
#mainHeader .nav-custom .nav-item.active .nav-link {
  background-color: #720818;
}

/* Адаптивность */
@media (max-width: 991.98px) {
  #mainHeader .nav-custom .nav-item {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .border-end-sm {
    border-end: none !important;
  }
}
@media (min-width: 576px) {
  .border-end-sm {
    border-right: 1px solid #dee2e6 !important;
  }
}

/* Logo */
.logo-wrap { display: flex; align-items: center; gap: 11px; width: 130px; }
.logo-icon {
  width: 42px; height: 42px;
  background: var(--primary);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.logo-icon svg { fill: var(--accent); }
.logo-text {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary);
  letter-spacing: .04em;
  line-height: 1.1;
}
.logo-text span { color: var(--accent); }

/* Phone in header */
.header-phone {
  font-weight: 600;
  font-size: .95rem;
  color: var(--primary);
  letter-spacing: .02em;
  white-space: nowrap;
}
.header-phone i { color: var(--accent); margin-right: 5px; }
.header-phone:hover { color: var(--accent); }

/* Когда поиск закрыт (кнопка имеет класс .collapsed) */
.header-search-trigger.collapsed .icon-search {
  display: inline-block !important;
}
.header-search-trigger.collapsed .icon-close {
  display: none !important;
}

/* Когда поиск открыт (класс .collapsed удаляется Bootstrap'ом) */
.header-search-trigger:not(.collapsed) .icon-search {
  display: none !important;
}
.header-search-trigger:not(.collapsed) .icon-close {
  display: inline-block !important;
}

/* Стили поля поиска при активном фокусе */
.search-input:focus {
    border-color: #dee2e6;
    box-shadow: none;
    outline: 0;
}

/* Navbar */
.navbar { padding: 0; height: /* var(--header-h); */ }
.navbar-nav .nav-link {
  /* font-family: 'Raleway', sans-serif; */
  font-weight: 600;
  font-size: .88rem;
  color: var(--primary) !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 0 14px !important;
  /* height: var(--header-h); */
  /* display: flex; */
  align-items: center;
  position: relative;
}
.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-item.active .nav-link::after { transform: scaleX(1); }
.navbar-nav .nav-link:hover { color: var(--accent) !important; }

/* Для Bootstrap 4 и 5 открытие меню при наведении - не срабатывает*/
.navbar .nav-item:hover .dropdown-menu {
    display: block;
    margin-top: 0; /* Опционально: убирает разрыв между кнопкой и меню */
}
@media (min-width: 992px) {
    .navbar .nav-item:hover .dropdown-menu {
        display: block;
    }
}

/* Dropdown */
.dropdown-menu {
    border: none;
    border-top: 3px;
    border-radius: 0 0 var(--radius) var(--radius);
    min-width: 220px;
    padding: 0 0;

}
@keyframes dropIn {
  from { opacity:0; transform: translateY(-8px); }
  to   { opacity:1; transform: translateY(0); }
}
.dropdown-item {
  font-size: .85rem;
  font-weight: 400;
  text-transform: uppercase;
  background: #810517;
  color: var(--white);
  padding: 9px 22px;
  letter-spacing: .03em;
}
.dropdown-item:hover {
  background: #720818;
  color: #fff;
}

/* ── HERO / MAIN CONTENT ──*/
.hero-section {
  background: linear-gradient(315deg, #DDDDDD, #e9ecef);
  /* background: linear-gradient(-45deg, #efdfd9, #dce7db, #efeddd, #fbfbfb); */
  color: var(--white);
  padding: 60px 0 60px;
  position: relative;
  overflow: hidden;
}

.hero-section .badge-tag {
 display: inline-block;
 background: #810517;
/*  font-size: .78rem;
letter-spacing: .12em; */
 text-transform: uppercase;
 padding: 5px 14px;
 margin-bottom: 22px;
}
.hero-section h1 {
  color: var(--primary);
  /* font-size: clamp(2rem, 3vw, 3.4rem); */
  font-weight: 700;
  line-height: 1.18;
  margin-bottom: 24px;
}
.hero-section h1 em {
  font-style: normal;
  color: var(--primary);
}
.hero-section p.lead {
  color: var(--primary);
  font-size: 1.1rem;
  font-weight: 400;
  max-width: 650px;
}
.btn-accent {
  background: var(--accent);
  color: var(--white);
  border: none;
  font-weight: 700;
  font-size: .88rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 14px 34px;
  border-radius: var(--radius);
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
}
.btn-accent:hover {
  background: #720818;
  color: var(--white);
}
.btn-outline-light-custom {
  border: 1px solid rgba(255,255,255,.45);
  color: var(--white);
  background: transparent;
  font-weight: 600;
  font-size: .88rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 12px 32px;
  border-radius: var(--radius);
  transition: background var(--transition), border-color var(--transition), transform var(--transition);
}
.btn-outline-light-custom:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.8);
  color: var(--white);
}

.btn-download {
    background: #800020;
    color: #fff;
}

.btn-download:hover {
    background: #720818;
    color: #fff;
}

/* Блок новости на главной */
.news-section {
    /*background: #d5d5d5;*/
    background-color: rgba(255, 255, 255, 0.1); /* Полупрозрачный белый фон */
    backdrop-filter: blur(12px); /* Сила размытия заднего плана */
    -webkit-backdrop-filter: blur(12px); /* Поддержка для Safari */
    border: 1px solid rgba(255, 255, 255, 0.2); /* Тонкая светлая граница для объема */
    color: #212529;
}

/* --- ВАРИАНТ А: Если у вас ТЕМНЫЙ фон секции --- */
.news-item:hover {
  background-color: rgba(255, 255, 255, 0.15);
  cursor: pointer;
}

/* Stats ribbon */
.stats-ribbon {
  background: var(--white);
  box-shadow: var(--shadow);
  border-radius: var(--radius);
  padding: 30px 40px;
  margin-top: -40px;
  position: relative;
  z-index: 5;
}
.stat-item { text-align: center; }
.stat-item .num {
  font-family: "Lato", Arial, sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
}
.stat-item .num span { color: var(--accent); }
.stat-item .lbl {
  font-size: .8rem;
  font-weight: 500;
  color: var(--muted);
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-top: 4px;
}
.stat-divider {
  width: 1px;
  background: var(--light-bg);
  align-self: stretch;
}

/* Content section */
.content-section { padding: 30px 0; }
.content-section-article { padding: 40px 0; }
.section-label {
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.section-label-title {
  color: #810517;
  font-size: 2rem;
}
.section-title {
  font-family: "Lato", Arial, sans-serif;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 700;
  color: var(--primary);
  line-height: 1.25;
  margin-bottom: 20px;
}
.section-text {
  font-size: .98rem;
  line-height: 1.85;
  color: var(--muted);
  margin-bottom: 18px;
}

/* Таблица списка лабораторий */

/* Делаем всю строку визуально кликабельной */
.table-clickable tbody tr {
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

/* Карточка лаборатории */

.bg-lab-coll {
background: #810517;
color: #ffffff;
}

/* Service cards */
.service-card {
  background: var(--white);
  padding: 36px 30px;
  height: 100%;
/* border-bottom: 3px solid transparent; */
}
.service-card:hover {
  box-shadow: var(--shadow);
  border-bottom-color: var(--accent);
}
.service-card .icon {
  width: 52px; height: 52px;
  background: #e6f7f6;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px;
  font-size: 1.5rem;
  color: #1d9793;
  transition: background var(--transition), color var(--transition);
}
.service-card:hover .icon { color: var(--accent); }
.service-card h5 {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 10px;
}
.service-card p {
/*   font-size: .88rem;
line-height: 1.75; */
  color: var(--muted);
}

/* RUNNING LINE */

.marquee-wrapper {
  overflow: hidden;
  width: 100%;
}

.marquee-track {
  display: flex;
  width: max-content;
  animation: scrollRight 400s linear infinite;
}

/* Остановка бегущей строки при наведении курсора (опционально) */
/* .marquee-track:hover {
  animation-play-state: paused;
} */

@keyframes scrollRight {
  0% {
    /* Начинаем со сдвига влево на половину длины */
    transform: translateX(-50%);
  }
  100% {
    /* Возвращаем в исходную позицию */
    transform: translateX(0);
  }
}

/* ── FOOTER ───────────────────────────────────────────────── */
#mainFooter {
  background: #810517;
  color: rgba(255,255,255,.65);
  padding: 56px 0 0;
}
.footer-logo .logo-text { color: var(--white); }
.footer-desc {
  font-size: .88rem;
  color: #ffffff;
  line-height: 1.75;
  margin-top: 14px;
  max-width: 280px;
}
.footer-title {
  font-family: "Lato", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 18px;
  position: relative;
  padding-bottom: 10px;
}

.footer-links { list-style: none; padding: 0; margin: 0; color: #ffffff;}
.footer-links li { margin-bottom: 10px; }
.footer-links a {
  font-size: .98rem;
  color: #ffffff;
  transition: color var(--transition);
}
.footer-links a:hover { color: #edbbc2;}

.footer-link {
    text-decoration: none;
}

.footer-bottom {
  /* border-top: 1px solid rgba(255,255,255,.08); */
  background: #00000014;
  padding: 20px 0;
  margin-top: 40px;
  font-size: .82rem;
  color: #ffffff;
}
.footer-bottom a { color: #fff; }
.footer-bottom a:hover { color: #dbfbb9; }

/* Scroll-to-top */
#scrollTopBtn {
  position: fixed;
  bottom: 32px; right: 32px;
  z-index: 999;
  width: 46px; height: 46px;
  background: #000;
  color: var(--white);
  border: none;
 /*  border-radius: 50%; */
  cursor: pointer;
  font-size: 1.1rem;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity var(--transition), transform var(--transition), background var(--transition);
  display: flex; align-items: center; justify-content: center;
}
#scrollTopBtn.visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
#scrollTopBtn:hover { background: #242424; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 991px) {
  .navbar-collapse {
    background: #720823;
    padding: 16px 20px 20px;
    box-shadow: 0 8px 20px rgba(26,58,92,.12);
    margin-top: 4px;
  }
  .navbar-nav .nav-link {
    height: auto;
    padding: 10px 6px !important;
  }
  .navbar-nav .nav-link::after { display: none; }
  .header-phone { font-size: .85rem; }
  .stats-ribbon { padding: 24px 20px; }
  .stat-divider { display: none; }
}
@media (max-width: 576px) {
  .hero-section { padding: 60px 0 50px; }
  .stats-ribbon { margin-top: -20px; }
}