/* Доработки оформления и адаптивности; подключается последним, после style.css и Bootstrap.
   Фирменные цвета прежние, синий — на тон темнее (#0083c3 → #0072aa): текст и ссылки этим цветом и белый
   текст на нём проходят норму контраста WCAG 2.1 AA (4,5:1, ГОСТ Р 52872-2019). Подача — светлый фон,
   скруглённые карточки с мягкой тенью, фильтры-«таблетки» */

:root {
	--t-blue: #0072aa;
	--t-blue-soft: #e8f4fb;
	--t-orange: #ef7f1a;
	--t-heading: #152242;
	--t-muted: #5f6877;
	--t-bg: #f3f5f7;
	--t-border: #e3e7ec;
	--t-radius: .75rem;
	--t-radius-lg: 1rem;
	--t-shadow: 0 2px 10px rgba(21, 34, 66, .07);
	--t-shadow-hover: 0 10px 28px rgba(21, 34, 66, .14);
}

/* Шрифт Golos Text — SIL Open Font License 1.1 (текст лицензии: fonts/golos-text/OFL.txt).
   Файлы лежат в теме: сторонние CDN не используются. Один вариативный файл на алфавит, начертания 400–900 */
@font-face {font-family: "Golos Text"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/golos-text/golos-text-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face {font-family: "Golos Text"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/golos-text/golos-text-cyrillic-ext-wght-normal.woff2") format("woff2"); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face {font-family: "Golos Text"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/golos-text/golos-text-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: "Golos Text"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/golos-text/golos-text-latin-ext-wght-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}

:root {
	/* Запасные — только стандартные шрифты систем: обращение к прочим установленным шрифтам Firefox
	   с защитой от отслеживания блокирует и пишет в консоль «Request for font … blocked» */
	--t-font: "Golos Text", system-ui, "Segoe UI", Arial, sans-serif;
	--bs-font-sans-serif: var(--t-font);
	--bs-body-font-family: var(--t-font);
	--bs-body-line-height: 1.55;
}
html, body, button, input, select, textarea {font-family: var(--t-font);}
h1, h2, h3, .h1, .h2, .h3 {letter-spacing: -.01em;}
/* Жирный внутри жирного (<b> в заголовке таблицы, <strong> в выделенной строке прайса) браузер по умолчанию
   делает ещё жирнее — у вариативного Golos это 900, буквы слипаются. Жирный везде один */
b, strong {font-weight: 700;}

/* Текст в блоках контента: 16px вместо 15px, свободнее межстрочный */
.pr-content, .tender-content {font-size: 1rem; line-height: 1.6;}

/* Большие экраны. Все размеры темы — в rem: с базовым размером шрифта пропорционально растёт весь дизайн.
   На Full HD сайт только шире. Мониторы 2K/4K почти всегда работают с масштабом Windows 125–200 %,
   и браузер уже показывает всё крупнее, поэтому шрифт растёт слегка, а заметно — только на 4K
   без масштабирования (ширина окна от 3400 px). Проценты, а не px, — чтобы учитывался размер шрифта
   из настроек браузера; высота в условиях отделяет такие экраны от широких мониторов меньшей высоты */
@media (min-width: 1200px) {
	:root {--t-container: 75rem;}
	.container {max-width: var(--t-container);}
	body #block-search {max-width: calc(var(--t-container) - 1.5rem);}
}
@media (min-width: 1400px) {:root {--t-container: 82.5rem;}}
@media (min-width: 1800px) {:root {--t-container: 90rem;}}
@media (min-width: 2400px) and (min-height: 1200px) {
	html {font-size: 106.25%;}
	/* Форма TravelLine рисуется в iframe в px: увеличиваем её вместе с сайтом */
	#block-search .tl-container {zoom: 1.0625;}
}
@media (min-width: 3400px) and (min-height: 1800px) {
	html {font-size: 137.5%;}
	#block-search .tl-container {zoom: 1.375;}
}

/* style.css задаёт фон с !important */
body {background-color: var(--t-bg) !important;}
h1, .h1 {font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem); font-weight: 700; color: var(--t-heading);}
h2, .h2 {font-weight: 700; color: var(--t-heading);}
.breadcrumbs {margin: 1rem 0; font-size: 0.875rem; color: var(--t-muted);}

/* Шапка: на ПК закреплена сверху */
header {position: relative; z-index: 1030; background: #fff; box-shadow: 0 1px 0 var(--t-border), 0 4px 14px rgba(21, 34, 66, .04);}
@media (min-width: 992px) {
	header {position: sticky; top: 0;}
	.admin-bar header {top: 2rem;}
}
.navbar-nav .nav-link {font-weight: 500; border-radius: 0.5rem; transition: background-color .15s ease, color .15s ease;}
.navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus, .navbar-nav .nav-panel-toggle[aria-expanded="true"] {background: var(--t-blue-soft); color: var(--t-blue); text-decoration: none;}

/* Меню разделов («Объекты», «Тендеры», «Документы»): на ПК панель выезжает под шапкой во всю ширину,
   как строка поиска, и ложится поверх страницы; в меню телефона раскрывается под пунктом */
.navbar-nav .nav-panel-toggle {display: inline-flex; width: 100%; height: auto; align-items: center; gap: 0.375rem; line-height: inherit; text-align: left;}
.navbar-nav .nav-panel-toggle.active {color: var(--t-blue);}
.nav-panel-toggle__icon {font-size: 0.625em; transition: transform .2s ease;}
.nav-panel-toggle[aria-expanded="true"] .nav-panel-toggle__icon {transform: rotate(180deg);}
.nav-panel__inner {padding-top: 1.25rem; padding-bottom: 1.5rem;}
.nav-panel__grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem 2rem;}
.nav-panel__group:only-child {grid-column: 1 / -1;}
.nav-panel__group:only-child .nav-panel__list {columns: 3 15rem; column-gap: 2rem;}
.nav-panel__group-title {display: block; margin-bottom: 0.25rem; padding: 0.375rem 0.75rem; color: var(--t-muted); font-size: 0.8125rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; text-transform: uppercase;}
.nav-panel__group-title:hover {color: var(--t-blue); text-decoration: none;}
.nav-panel__list {margin: 0; padding: 0; list-style: none;}
.nav-panel__list li {break-inside: avoid;}
.nav-panel__link {display: block; padding: 0.5rem 0.75rem; border-radius: 0.5rem; color: var(--t-heading); line-height: 1.35; text-decoration: none; transition: background-color .15s ease, color .15s ease;}
.nav-panel__link:hover, .nav-panel__link:focus-visible {background: var(--t-blue-soft); color: var(--t-blue); text-decoration: none;}
.nav-panel__link[aria-current="page"] {color: var(--t-blue); font-weight: 600;}
.nav-panel__all {display: inline-flex; align-items: center; gap: 0.375rem; margin: 1rem 0 0 0.75rem;}
@media (min-width: 992px) {
	.navbar-nav .nav-panel-toggle {width: auto;}
	.nav-panel {position: absolute; top: 100%; left: 0; right: 0; z-index: 2; border-top: 1px solid var(--t-border); background: #fff; box-shadow: 0 16px 28px rgba(21, 34, 66, .1);}
}
@media (max-width: 991.98px) {
	.nav-panel .container {padding: 0 0 0 0.75rem;}
	.nav-panel__inner {padding-top: 0.25rem; padding-bottom: 0.5rem;}
	.nav-panel__grid {grid-template-columns: 1fr; gap: 0.5rem;}
	.nav-panel__group:only-child .nav-panel__list {columns: auto;}
}
.info_tel p {font-weight: 600;}
.info_tel i {color: var(--t-muted);}

/* Форма бронирования TravelLine: travelline-style.css подключается после темы */
body #block-search {border-radius: var(--t-radius-lg); box-shadow: var(--t-shadow); overflow: hidden;}

/* Главная: слайдер с подписью и плитки разделов */
/* Слайды из рубрики «Слайды» бывают любой пропорции: фото заполняет рамку с обрезкой по краям, а высоту
   блока на ПК задаёт меню слева, на телефоне — рамка 16:9 */
.home-hero {position: relative; aspect-ratio: 16 / 9; border-radius: var(--t-radius-lg); overflow: hidden; box-shadow: var(--t-shadow);}
.home-hero .carousel-inner, .home-hero .carousel-item {height: 100%;}
.home-hero .carousel-item img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;}
@media (min-width: 768px) {
	.home-hero {height: 100%; min-height: 17.5rem; aspect-ratio: auto;}
}
.hero-caption {position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 3rem 1.75rem 1.5rem; color: #fff; background: linear-gradient(transparent, rgba(10, 25, 45, .65)); pointer-events: none;}
.hero-title {font-size: clamp(1.35rem, 1rem + 1.6vw, 2.1rem); font-weight: 700; line-height: 1.15; text-shadow: 0 1px 6px rgba(0, 0, 0, .3);}
.hero-text {margin-top: 0.375rem; font-size: clamp(.9rem, .85rem + .3vw, 1.05rem); opacity: .95;}

.navSidebar {display: flex; flex-direction: column; height: 100%; border: 0; border-radius: var(--t-radius-lg); overflow: hidden; box-shadow: var(--t-shadow); background: #fff;}
.navSidebar .navSidebarBanner {display: flex; flex: 1; align-items: center; gap: 0.875rem; padding: 1rem 2.75rem 1rem 1.25rem; border-bottom-color: var(--t-border);}
.navSidebarBanner::after {content: "\f054"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); font-family: "Font Awesome 7 Free"; font-weight: 900; font-size: 0.8125rem; color: #b6bec9; transition: transform .15s ease;}
.navSidebarBanner:hover::after {color: #fff; transform: translate(3px, -50%);}
.navSidebarBanner__text {padding: 0;}
.navSidebarBanner__title {font-size: 1rem;}
.navSidebarBanner__link {color: var(--t-muted); font-size: 0.875rem;}
.navSidebarBanner__icon {flex: 0 0 2.75rem; height: 2.75rem; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--t-blue-soft); color: var(--t-blue); font-size: 1.125rem; transition: background-color .15s ease;}
.navSidebarBanner:hover .navSidebarBanner__icon {background: rgba(255, 255, 255, .9);}
.navSidebarBanner:hover .navSidebarBanner__link {color: #fff;}

/* Заголовок раздела со ссылкой «Все …» справа */
.section-head {display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.25rem 1rem; margin-bottom: 1rem;}
.section-head h2 {margin: 0; padding: 0; font-size: clamp(1.4rem, 1.15rem + .9vw, 1.85rem);}
.section-more {font-weight: 500; white-space: nowrap;}
.section-more i {margin-left: 0.25rem; font-size: .85em; transition: transform .15s ease;}
.section-more:hover i {transform: translateX(3px);}

/* Фильтр по регионам: на телефоне прокручивается вбок */
.region-chips {display: flex; gap: 0.5rem; margin-bottom: 1.25rem; padding-bottom: 0.25rem; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;}
.region-chips::-webkit-scrollbar {display: none;}
.region-chip {flex: 0 0 auto; display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.5rem 1rem; border: 1px solid var(--t-border); border-radius: 999px; background: #fff; color: var(--t-heading); font-size: 0.875rem; font-weight: 500; white-space: nowrap; transition: border-color .15s ease, color .15s ease, background-color .15s ease;}
.region-chip:hover {border-color: var(--t-blue); color: var(--t-blue); text-decoration: none;}
.region-chip.active {border-color: var(--t-blue); background: var(--t-blue); color: #fff;}
.region-chip-count {color: var(--t-muted); font-size: 0.75rem; font-weight: 400;}
.region-chip.active .region-chip-count {color: rgba(255, 255, 255, .8);}

/* Карточки объектов: вся карточка — ссылка (stretched-link) */
/* При наведении карточка только чуть глубже тенью и заголовок синеет — без подпрыгивания и увеличения фото */
.objects-grid .card {border: 0; border-radius: var(--t-radius); overflow: hidden; box-shadow: var(--t-shadow); transition: box-shadow .2s ease;}
.objects-grid .card:hover {box-shadow: var(--t-shadow-hover);}
.objects-grid .card-img-wrap {position: relative; overflow: hidden; background: var(--t-blue-soft);}
.objects-grid .card-img-top {border-radius: 0;}
.card-badge {position: absolute; top: 0.625rem; left: 0.625rem; padding: 0.25rem 0.625rem; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--t-heading); font-size: 0.75rem; font-weight: 600; line-height: 1.3;}
.objects-grid .card-body {padding: 1rem 1.125rem 0.5rem;}
.objects-grid .card-title {margin: 0 0 0.5rem; font-size: 1.125rem; font-weight: 700; line-height: 1.25;}
.objects-grid .card-title a {color: var(--t-heading); text-decoration: none;}
.objects-grid .card:hover .card-title a {color: var(--t-blue);}
.objects-grid .card-text {display: flex; gap: 0.375rem; margin-bottom: 0.5rem; color: var(--t-muted); font-size: 0.875rem; line-height: 1.4;}
.objects-grid .card-text i {margin-top: 0.15em; color: var(--t-muted);}
.card-season {display: inline-flex; align-items: center; gap: 0.375rem; margin: 0; padding: 0.25rem 0.625rem; border-radius: 999px; background: var(--t-bg); color: var(--t-heading); font-size: 0.8125rem; font-weight: 500;}
.objects-grid .card-footer {display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin: 0.25rem 1.125rem 0; padding: 0.75rem 0 1rem; border: 0; border-top: 1px solid var(--t-border); background: transparent;}
.card-price {color: var(--t-heading); font-size: 1.25rem; font-weight: 700; white-space: nowrap;}
.card-price-from {color: var(--t-muted); font-size: 0.875rem; font-weight: 500;}
.card-more {color: var(--t-blue); font-weight: 600;}
.card-arrow {display: inline-flex; flex: 0 0 2.25rem; height: 2.25rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--t-bg); color: var(--t-heading); transition: background-color .15s ease, color .15s ease;}
.objects-grid .card:hover .card-arrow {background: var(--t-blue); color: #fff;}

/* Кнопка «Показать все» */
.objects_all.link, .tender_back.link {display: inline-block; margin-top: 0.5rem; padding: 0.625rem 1.625rem; border: 1px solid var(--t-blue); border-radius: 999px; background: #fff; color: var(--t-blue); font-size: 0.9375rem; font-weight: 500;}
.objects_all.link:hover, .tender_back.link:hover {border-color: var(--t-blue); background: var(--t-blue); color: #fff; text-decoration: none;}

/* Блоки контента: скругления и мягкая тень вместо рамок */
.pr-content, .tender-content {border: 0; border-radius: var(--t-radius); box-shadow: var(--t-shadow);}
.hc_m_hd {border-bottom-width: 2px;}
.hc_m_hd h2 {font-weight: 700;}
#slider_post, #slider_news {border-radius: var(--t-radius); box-shadow: var(--t-shadow);}
#Slider_Marks2 {margin-bottom: 0; border-radius: var(--t-radius-lg);}
.acf-map, .map {border-radius: var(--t-radius); overflow: hidden;}
/* Код карты из конструктора Яндекса задаёт ширину в px: растягиваем на всю колонку, высота — как у карты по координатам */
.object-map {margin-top: 0.625rem; border-radius: var(--t-radius); overflow: hidden;}
.object-map iframe {display: block; width: 100% !important; height: 28.125rem; border: 0;}


/* Постраничная навигация */
.wp-pagenavi a, .wp-pagenavi span {display: inline-block; min-width: 2.375rem; margin: 0 2px 0.375rem; padding: 0.4375rem 0.75rem; border: 1px solid var(--t-border); border-radius: 0.5rem; box-shadow: none; text-align: center;}

/* Формы (Contact Form 7) */
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 input[type=number], .wpcf7 textarea {width: 100%; height: auto; padding: 0.625rem 0.875rem; border: 1px solid #cfd6de; border-radius: 0.625rem; box-shadow: none; font-size: 0.9375rem;}
.wpcf7 input:focus, .wpcf7 textarea:focus {border-color: var(--t-blue); box-shadow: 0 0 0 3px rgba(0, 114, 170, .15);}
/* style.css задаёт кнопкам отправки высоту и межстрочный 55 px и шрифт 22 px — с отступами текст съезжал вниз */
.wpcf7 input[type=submit] {height: auto; padding: 0.75rem 1.75rem; border: 0; border-radius: 0.625rem; background: var(--t-blue); color: #fff; font-size: 1rem; font-weight: 600; line-height: 1.3; transition: background-color .15s ease;}
.wpcf7 input[type=submit]:hover {background: #005a87;}
/* Поле-ловушка для ботов (functions.php, раздел 19): убрано с экрана, но не display:none — его не пропускают и простые боты */
.form-trap {position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden;}
/* Форма обратной связи (разметка формы в Contact Form 7 обёрнута в .permit): белая карточка вместо синей плиты */
.permit {padding: 1.25rem 1.5rem; border: 0; border-radius: var(--t-radius-lg); background: #fff; box-shadow: var(--t-shadow); color: var(--t-heading);}
.permit h1 {margin: 0 0 0.25rem; padding: 0; color: var(--t-heading); font-size: 1.5rem;}
.permit p {margin: 0.75rem 0 0.375rem; font-size: 0.9375rem; font-weight: 500;}
.permit p:last-child {margin-top: 1rem; color: var(--t-muted); font-size: 0.8125rem; font-weight: 400; line-height: 1.5;}
.permit a {color: var(--t-blue);}
.permit a:hover {color: var(--t-blue); text-decoration: underline;}

/* Шапка: на узких экранах телефоны выводятся в раскрытом меню */
.info_tel a {color: inherit; text-decoration: none;}
.navbar-nav .nav-link, .info_tel p {white-space: nowrap;}
/* style.css красит любую кнопку при наведении в оранжевый (button:hover); на телефоне после нажатия
   «наведение» залипает. Кнопкам интерфейса без своего вида при наведении возвращаем фон */
.navbar-toggler:hover, .gallery-thumbs__item:hover {background: transparent;}
.navbar-toggler {color: var(--t-heading); font-size: 1.5rem; line-height: 1;}
.carousel-btn:disabled:hover {background: #fff;}
/* Рамка фокуса — только при переходе с клавиатуры, не после нажатия пальцем или мышью */
.navbar-toggler:focus:not(:focus-visible) {box-shadow: none;}

/* style.css сдвигает подпись влево (right: 1.25rem) — она наезжала на лупу */
.info_text {right: auto;}
@media (min-width: 992px) {
	.header-contacts {flex-wrap: nowrap !important; gap: 1rem; margin-left: 1rem;}
}
/* В контейнер Bootstrap 960 px меню, лупа и телефоны не помещаются в одну строку: на этих ширинах
   страница во всю ширину окна, логотип и телефоны компактнее. До 1000 px телефоны скрыты (style.css),
   они есть в подвале */
@media (min-width: 992px) and (max-width: 1199.98px) {
	.container {max-width: none;}
	body #block-search {margin-left: 0.75rem; margin-right: 0.75rem;}
	.navbar-brand img {width: 6.5rem;}
	.navbar-expand-lg .navbar-nav .nav-link {padding-left: .35rem; padding-right: .35rem;}
	.info_tel p {font-size: 0.875rem;}
	.info_tel i {display: none;}
}
@media (max-width: 991.98px) {
	.navbar-collapse .info_tel {display: block; float: none; width: 100%; margin-top: 0.5rem; padding: 0.625rem 0 0.25rem; border-top: 1px solid #eee;}
	.navbar-collapse .info_tel p {margin: 0.375rem 0;}
}

/* Изображения в тексте записей: без height:auto атрибут height искажает пропорции на телефоне */
.pr-content img, .hc_m_content img {height: auto;}

/* Страница 404 */
.error-page {padding-top: 1.5rem; padding-bottom: 5rem;}
.error-message-404 {margin-bottom: 0; font-size: clamp(6rem, 20vw, 12rem); line-height: 1.1;}
.error-page .error-message {margin-bottom: 1rem;}
.error-page__text {max-width: 40rem; margin: 0 auto 1.5rem; color: var(--t-muted); font-size: 1.125rem;}
.error-page__search .site-search {max-width: 32rem; margin: 0 auto 1.5rem;}

/* Партнёры над подвалом: логотипы без ссылок в одинаковых белых плитках. В сером цвете часть логотипов
   не читалась (Гин-Сервис, Рюкзак путешествий), поэтому они в своих цветах */
.partners-strip {padding: 2rem 0 2.5rem;}
.partners-strip__title {margin: 0 0 1rem; color: var(--t-heading); font-size: 1.25rem; font-weight: 700;}
.partners-strip__list {display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin: 0; padding: 0; list-style: none;}
.partners-strip__item {display: flex; height: 4.5rem; align-items: center; justify-content: center; margin: 0; padding: 0.625rem; border-radius: var(--t-radius); background: #fff; box-shadow: var(--t-shadow);}
.partners-strip__item img {max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;}
@media (min-width: 992px) {
	.partners-strip__list {grid-template-columns: repeat(9, 1fr);}
	.partners-strip__item {height: 5rem;}
}

/* Подвал: белый, как шапка, четыре колонки — логотип, разделы, контакты (виджет «Подвал - контакты»), документы */
#footer {padding: 2.5rem 0 1.5rem; border-top: 1px solid var(--t-border); background: #fff; color: var(--t-heading); font-size: 0.9375rem;}
.footer-logo {display: block; max-width: 11rem; margin-bottom: 1.25rem;}
/* У виджета контактов заголовок — первый абзац его текста */
#footer .footer-title, .footer-contacts .textwidget > p:first-child {margin: 0 0 0.75rem; color: var(--t-heading); font-size: 1rem; font-weight: 700;}
.footer-links, #footer .awesome-icons {margin: 0; padding: 0; list-style: none;}
.footer-links li, #footer .awesome-icons li {margin: 0 0 0.5rem; padding: 0; line-height: 1.4;}
#footer .awesome-icons li {display: flex; gap: 0.5rem;}
/* Оранжевый из style.css (значки подвала, подчёркивание заголовков таблиц, текущая страница) делал сайт
   пёстрым: акцентный цвет один — синий, и только там, где можно нажать */
#footer i {flex: 0 0 1.25em; margin: 0.15em 0 0; color: var(--t-muted); font-size: 1em; text-align: center;}
#footer a {color: var(--t-heading); text-decoration: none;}
#footer a:hover, #footer a:focus-visible {color: var(--t-blue); text-decoration: underline;}
#footer .footer-bottom p {margin: 0; color: var(--t-muted);}
.footer-bottom {display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 2rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--t-border); font-size: 0.8125rem;}

/* «Наверх»: появляется после первого экрана (js/theme.js). Стоит выше кнопки сообщений ВК в правом нижнем углу */
.to-top {position: fixed; right: 1.25rem; bottom: 6rem; z-index: 1020; display: flex; width: 3rem; height: 3rem; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--t-border); border-radius: 50%; background: #fff; box-shadow: var(--t-shadow-hover); color: var(--t-heading); font-size: 1.125rem; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease, background-color .15s ease, color .15s ease;}
.to-top.is-visible {opacity: 1; visibility: visible;}
.to-top:hover, .to-top:focus-visible {border-color: var(--t-blue); background: var(--t-blue); color: #fff;}
thead, th {border-bottom-color: var(--t-border);}
.wp-pagenavi span.current {border-color: var(--t-blue); background-color: var(--t-blue);}
/* Стили плагина для кнопки подключаются после темы — отсюда #footer; высоту 55 px и запрет переноса кнопкам задаёт style.css */
#footer .bvi-shortcode {max-width: 100%; padding: 0.5rem 0.875rem; border: 1px solid var(--t-border); border-radius: 0.625rem;}
#footer .bvi-shortcode .bvi-open {height: auto; text-align: left; white-space: normal;}
#footer .bvi-shortcode .bvi-svg-eye {font-size: 1.5em;}

@media (max-width: 767.98px) {
	/* Широкие таблицы в тексте (прайсы) прокручиваются по горизонтали */
	.pr-content table {display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;}

}

/* Тендеры (template-parts/tender-list.php, tender-single.php): список — таблица, на телефоне — карточки;
   страница процедуры — сведения «подпись — значение» и документы */
.tender-content {margin-bottom: 1.5rem; padding: 1.75rem 2rem; background: #fff;}
.tender-kicker {margin: 0 0 0.25rem; color: var(--t-muted); font-size: 0.8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;}
.tender-title {margin: 0 0 1.25rem; padding: 0; border: 0;}
.tender-subtitle {margin: 2rem 0 0.75rem; padding: 0; border: 0; color: var(--t-heading); font-size: 1.25rem; font-weight: 700;}
.tender-table-wrap {overflow-x: auto; border: 1px solid var(--t-border); border-radius: var(--t-radius);}
.tender-table {width: 100%; border-collapse: collapse; font-size: 0.9375rem; line-height: 1.45;}
.tender-table th {padding: 0.75rem; background: var(--t-blue-soft); color: var(--t-heading); font-size: 0.8125rem; font-weight: 700; text-align: left; vertical-align: bottom;}
.tender-table td {padding: 0.75rem; border-top: 1px solid var(--t-border); text-align: left; vertical-align: top;}
.tender-table tbody tr:hover {background: #fafbfc;}
.tender-table__date, .tender-table__price {white-space: nowrap;}
.tender-table .tender-table__price {text-align: right;}
td.tender-table__date, td.tender-table__price {color: var(--t-heading); font-weight: 600;}
td.tender-table__title a {font-weight: 500;}
.tender-table p {margin: 0;}
.tender-table .doc-link {margin: 0; padding: 0.125rem 0; gap: 0.5rem;}
/* Файлы в редакторе разделены переносом строки, а ссылка на файл уже отдельная строка */
.doc-link + br {display: none;}
.tender-details {display: grid; grid-template-columns: minmax(12rem, 32%) 1fr; margin: 0;}
.tender-details dt, .tender-details dd {margin: 0; padding: 0.75rem 1rem 0.75rem 0; border-top: 1px solid var(--t-border);}
.tender-details dt {color: var(--t-muted); font-weight: 500;}
.tender-details dd {color: var(--t-heading); font-weight: 600; overflow-wrap: anywhere;}
.tender-details dd p {margin: 0 0 0.5rem;}
.tender-details dd p:last-child {margin-bottom: 0;}
.tender-details__html {font-weight: 400;}
.price {white-space: nowrap;}
@media (max-width: 767.98px) {
	.tender-content {padding: 1.25rem 1rem;}
	.tender-table-wrap {overflow: visible; border: 0;}
	.tender-table thead {display: none;}
	.tender-table, .tender-table tbody, .tender-table tr, .tender-table td {display: block;}
	.tender-table tbody tr {margin-bottom: 0.75rem; padding: 0.625rem 0.875rem; border: 1px solid var(--t-border); border-radius: var(--t-radius);}
	.tender-table td {display: flex; gap: 0.75rem; padding: 0.25rem 0; border: 0; text-align: left; white-space: normal;}
	.tender-table td::before {content: attr(data-label); flex: 0 0 38%; color: var(--t-muted); font-size: 0.8125rem; font-weight: 400;}
	.tender-table td:empty {display: none;}
	.tender-details {grid-template-columns: 1fr;}
	.tender-details dt {padding-bottom: 0;}
	.tender-details dd {padding-top: 0.25rem; border-top: 0;}
}

/* Прайс-листы объектов: единый вид таблиц из Word (оформление вычищает tavrika_clean_price_html) */
.price-list {margin: 1rem 0 1.25rem; font-size: 0.9375rem; line-height: 1.45;}
.price-list h2, .price-list h3 {margin: 1.5rem 0 0.75rem; padding: 0; font-size: 1.25rem; font-weight: 700; color: var(--t-heading);}
.price-list h4, .price-list h5, .price-list h6 {margin: 0; padding: 0; font-size: inherit; font-weight: 700; color: inherit;}
.price-table {margin-bottom: 1.25rem; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--t-border); border-radius: var(--t-radius);}
.pr-content .price-list table {display: table; width: 100%; margin: 0; border-collapse: collapse; box-shadow: none; background: #fff; text-align: center;}
/* Широкие таблицы (от 4 колонок) на телефоне прокручиваются вбок, а не сжимаются в столбики по слову */
.price-list table:has(tr > :nth-child(4)) {min-width: 37.5rem;}
.price-list th, .price-list td {padding: 0.625rem 0.75rem; border: 0; border-bottom: 1px solid var(--t-border); line-height: 1.4; vertical-align: middle;}
.price-list tr > :first-child {text-align: left;}
.price-list tr:last-child > * {border-bottom: 0;}
.price-list thead, .price-list th {border-bottom: 0;}
.price-list thead th, .price-list thead td, .price-list th {background: var(--t-blue-soft); color: var(--t-heading); font-weight: 700;}
.price-list .price-accent, .price-list td[colspan] {background: #f5f7fa; font-weight: 600;}
.price-list td p, .price-list th p {margin: 0; padding: 0;}
.price-list td p + p, .price-list th p + p {margin-top: 2px;}
.price-list .alert {border-radius: var(--t-radius);}
/* Таблица без <thead>: шапка — первая строка */
.price-list table:not(:has(thead)) tr:first-child > *, .price-list table:not(:has(thead)) tr:first-child:has(> [rowspan]) + tr > * {background: var(--t-blue-soft); color: var(--t-heading); font-weight: 700;}
/* В прайсах на 6–8 колонок (даты сезонов в шапке) обычные отступы не помещаются в колонку страницы */
.price-list table:has(tr > :nth-child(6)) {font-size: 0.8438rem;}
.price-list table:has(tr > :nth-child(6)) :is(td, th) {padding: 0.5rem 0.375rem;}

/* Страница объекта: галерея и карточка бронирования в одном ряду, ниже — описание и прайс на всю ширину */
.single #slider_post {height: auto; max-height: none; aspect-ratio: 16 / 10; border-radius: var(--t-radius-lg);}
#slider_post .slide_n img {height: 100%; object-fit: cover; border: 0;}
.booking-card {height: 100%; padding: 1.375rem 1.5rem; border-radius: var(--t-radius-lg); background: #fff; box-shadow: var(--t-shadow); font-size: 0.9375rem;}
.booking-card__label {display: block; margin-bottom: 0.625rem; color: var(--t-muted); font-size: 0.8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;}
.booking-card__period {margin-bottom: 1.125rem; padding-bottom: 1.125rem; border-bottom: 1px solid var(--t-border);}
.booking-card__season {display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 999px; background: var(--t-bg); color: var(--t-heading); font-size: 1rem; font-weight: 700;}
.booking-card__season p {display: inline; margin: 0;}
.booking-card__contacts p {display: flex; align-items: baseline; gap: 0.625rem; margin: 0 0 0.625rem; overflow-wrap: anywhere;}
.booking-card__contacts i {flex: 0 0 1.125rem; color: var(--t-muted); text-align: center;}
.booking-card__phone {font-size: 1.125rem; font-weight: 700;}
.booking-card__phone a {color: var(--t-heading);}
.booking-card__button {width: 100%; margin-top: 0.75rem; padding: 0.75rem 1.25rem; border: 0; border-radius: 0.625rem; background: var(--t-blue); color: #fff; font-weight: 600; transition: background-color .15s ease;}
.booking-card__button:hover {background: #005a87; color: #fff;}

@media (min-width: 992px) {
	.single .object-gallery, .single #slider-wrap {height: 100%;}
	.single #slider_post {height: 100%; min-height: 23.75rem; aspect-ratio: auto;}
}

/* «Информация» об объекте: подпись слева, значение справа, на всю ширину блока (было float в display: table) */
.hc_m_content {display: grid; grid-template-columns: minmax(10.625rem, 24%) 1fr; width: 100%; margin-bottom: 1rem; padding: 0;}
.hc_m_content h3, .hc_m_content p {float: none; width: auto; padding: 0.75rem 1rem 0.75rem 0; border-top: 1px solid var(--t-border);}
.hc_m_content h3 {color: var(--t-heading);}
@media (max-width: 767.98px) {
	.hc_m_content {grid-template-columns: 1fr;}
	.hc_m_content h3 {padding-bottom: 0;}
	.hc_m_content p {border-top: 0; padding-top: 0.25rem;}
}
.hc_m_content {align-items: baseline;}
.hc_m_content h3 {font-size: .9375rem; line-height: 1.6;}
.hc_m_content p {line-height: 1.6;}

/* Сетка объектов на главной: на телефоне — лента, которую листают пальцем, вместо 8 карточек подряд */
@media (max-width: 767.98px) {
	.objects-grid--scroll {flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-top: 0.25rem;}
	.objects-grid--scroll::-webkit-scrollbar {display: none;}
	.objects-grid--scroll > * {scroll-snap-align: start;}
}

/* Карусель карточек (js/theme.js): лента с прокруткой по карточкам, кнопки листают на ширину ленты */
.card-carousel__controls {display: flex; align-items: center; gap: 0.5rem;}
.card-carousel__controls .section-more {margin-right: 0.5rem;}
.carousel-btn {display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--t-border); border-radius: 50%; background: #fff; color: var(--t-heading); line-height: 1; transition: background-color .15s ease, color .15s ease, border-color .15s ease;}
.carousel-btn:hover:not(:disabled) {border-color: var(--t-blue); background: var(--t-blue); color: #fff;}
.carousel-btn:disabled {opacity: .4; cursor: default;}
.card-carousel.is-static .carousel-btn {display: none;}
.card-carousel__track {flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-top: 0.25rem;}
.card-carousel__track::-webkit-scrollbar {display: none;}
.card-carousel__track > * {scroll-snap-align: start;}
@media (max-width: 575.98px) {
	.carousel-btn {display: none;}
}

/* Новости: дата, карточка на главной, строка в списке новостей */
.news-date {color: var(--t-muted); font-size: 0.875rem;}
.news-meta {display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem;}
.news-card {border: 0; border-radius: var(--t-radius); overflow: hidden; box-shadow: var(--t-shadow); transition: box-shadow .2s ease;}
.news-card:hover {box-shadow: var(--t-shadow-hover);}
.news-card__img, .news-item__img {position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: var(--t-blue-soft);}
.news-card__img img, .news-item__img img {width: 100%; height: 100%; object-fit: cover;}
/* Афиши с текстом не обрезаются: показываются целиком на фирменном фоне */
.news-card__img.is-portrait img, .news-item__img.is-portrait img {object-fit: contain;}
.news-card .card-body {display: flex; flex-direction: column; gap: 0.375rem; padding: 1rem 1.125rem 1.25rem;}
.news-card__title, .news-item__title {margin: 0; padding: 0; font-size: 1.125rem; font-weight: 700; line-height: 1.3;}
.news-card__title a, .news-item__title a {color: var(--t-heading); text-decoration: none;}
.news-card:hover .news-card__title a, .news-item:hover .news-item__title a {color: var(--t-blue);}
.news-card__excerpt, .news-item__excerpt {display: -webkit-box; margin: 0; overflow: hidden; color: #4a5361; font-size: 0.9375rem; line-height: 1.5; -webkit-line-clamp: 3; -webkit-box-orient: vertical;}
/* Строка списка: фото во всю высоту карточки слева, дата и стрелка прижаты к низу */
.news-item {position: relative; display: grid; grid-template-columns: min(40%, 22rem) minmax(0, 1fr); margin-bottom: 1.25rem; border-radius: var(--t-radius); overflow: hidden; background: #fff; box-shadow: var(--t-shadow); transition: box-shadow .2s ease;}
.news-item:hover {box-shadow: var(--t-shadow-hover);}
.news-item:not(:has(.news-item__img)) {grid-template-columns: 1fr;}
/* Высоту фото задаёт текст справа; пропорция рамки — только на телефоне, где фото над текстом */
.news-item__img {height: 100%; min-height: 13rem; aspect-ratio: auto;}
.news-item__img img {position: absolute; inset: 0;}
.news-item__body {display: flex; flex-direction: column; gap: 0.625rem; padding: 1.25rem 1.5rem;}
.news-item__title {font-size: 1.25rem;}
.news-item__footer {display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 0.5rem;}
.news-item:hover .card-arrow {background: var(--t-blue); color: #fff;}
@media (max-width: 767.98px) {
	.news-item {grid-template-columns: 1fr;}
	.news-item__img {height: auto; min-height: 0; aspect-ratio: 16 / 10;}
	.news-item__img img {position: static;}
	.news-item__body {padding: 1rem 1.125rem 1.125rem;}
}

/* Страница новости: фото, анонс, текст в колонке 2/3 ширины — строка не длиннее 90 знаков */
.news-article {font-size: 1.0625rem; line-height: 1.7;}
.news-views {display: inline-flex; align-items: center; gap: 0.375rem; color: var(--t-muted); font-size: 0.875rem;}
.news-cover {margin: 0 0 1.5rem; border-radius: var(--t-radius-lg); overflow: hidden; background: var(--t-blue-soft); box-shadow: var(--t-shadow);}
.news-cover img {display: block; width: 100%; height: auto; max-height: 36rem; object-fit: cover;}
.news-cover.is-portrait img {max-height: 75vh; object-fit: contain;}
.news-lead {margin: 0 0 1.5rem; padding: 1.25rem 1.5rem; border-radius: var(--t-radius); background: var(--t-blue-soft); color: var(--t-heading); font-size: 1.0625rem; line-height: 1.6;}

/* «Поделиться»: спокойные серые кнопки, синие при наведении */
.news-share {margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--t-border);}
.news-article .news-share__title {margin: 0 0 0.875rem; padding: 0; font-size: 1.125rem;}
.news-article .news-share__list {display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none;}
.news-article .news-share__list li {margin: 0; padding: 0 !important;}
.news-article .news-share__list li::before {content: none;}
.share-link {display: inline-flex; height: auto; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border: 0; border-radius: 999px; background: var(--t-bg); color: var(--t-heading); font-size: 0.9375rem; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background-color .15s ease, color .15s ease;}
.share-link:hover, .share-link:focus-visible, button.share-link:hover {background: var(--t-blue); color: #fff; text-decoration: none;}

/* Боковая колонка новостей: популярные или последние записи */
.news-aside {position: sticky; top: 6.5rem; padding: 1.25rem 1.5rem 0.5rem; border-radius: var(--t-radius); background: #fff; box-shadow: var(--t-shadow);}
.news-aside__title {margin: 0 0 0.5rem; padding: 0; font-size: 1.25rem;}
.news-aside__list {margin: 0; padding: 0; list-style: none;}
.news-aside__item {display: flex; flex-direction: column; gap: 0.375rem; padding: 0.875rem 0; border-top: 1px solid var(--t-border);}
.news-aside__item:first-child {border-top: 0;}
.news-aside__link {color: var(--t-heading); font-weight: 500; line-height: 1.4; text-decoration: none;}
.news-aside__link:hover {color: var(--t-blue);}
@media (max-width: 991.98px) {
	.news-aside {position: static;}
}

/* Страница объекта: адрес под заголовком, переходы к разделам, кнопки действий */
.object-address {display: flex; gap: 0.375rem; margin-bottom: 0.75rem; color: var(--t-muted);}
.object-address i {margin-top: 0.2em; color: var(--t-muted);}
.anchor-nav {display: flex; gap: 0.5rem; margin-bottom: 1.25rem; overflow-x: auto; scrollbar-width: none;}
.anchor-nav::-webkit-scrollbar {display: none;}
#info, #prices, #map, #other-objects, #block-search {scroll-margin-top: 6rem;}
.booking-card__actions {display: grid; gap: 0.5rem; margin-bottom: 1.25rem;}
.booking-card__actions .booking-card__button {display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; margin: 0; text-decoration: none;}
.booking-card__button--outline {border: 1px solid var(--t-blue); background: #fff; color: var(--t-blue);}
.booking-card__button--outline:hover {background: var(--t-blue); color: #fff;}

/* Меню раздела «Документы» / «Тендеры»: на ПК — колонка слева, на телефоне — лента «таблеток» */
.section-nav {position: sticky; top: 6rem; display: flex; flex-direction: column; padding: 0.75rem; border-radius: var(--t-radius); background: #fff; box-shadow: var(--t-shadow);}
.section-nav__title {padding: 0.5rem 0.75rem; color: var(--t-muted); font-size: 0.8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;}
.section-nav__link {padding: 0.5rem 0.75rem; border-radius: 0.5rem; color: var(--t-heading); font-size: 0.9375rem; line-height: 1.35; text-decoration: none; transition: background-color .15s ease, color .15s ease;}
.section-nav__link:hover {background: var(--t-blue-soft); color: var(--t-blue); text-decoration: none;}
.section-nav__link.active {background: var(--t-blue); color: #fff; font-weight: 600;}
@media (max-width: 991.98px) {
	.section-nav {position: static; flex-direction: row; gap: 0.5rem; padding: 0 0 0.25rem; overflow-x: auto; background: transparent; box-shadow: none; scrollbar-width: none;}
	.section-nav::-webkit-scrollbar {display: none;}
	.section-nav__title {display: none;}
	.section-nav__link {flex: 0 0 auto; border: 1px solid var(--t-border); border-radius: 999px; background: #fff; font-size: 0.875rem; white-space: nowrap;}
	.section-nav__link.active {border-color: var(--t-blue);}
}

/* Ссылки на файлы (tavrika_document_links): значок типа, название, формат и размер */
:is(.pr-content, .tender-documents, .tender-table) ul:has(.doc-link) {padding: 0; list-style: none;}
:is(.pr-content, .tender-documents, .tender-table) li:has(> .doc-link) {padding: 0 !important;}
:is(.pr-content, .tender-documents, .tender-table) li:has(> .doc-link)::before {content: none !important;}
:is(.pr-content, .tender-documents, .tender-table) .doc-link {display: flex; align-items: center; gap: 0.875rem; margin: 0 -0.75rem; padding: 0.625rem 0.75rem; border-radius: 0.625rem; color: var(--t-heading); line-height: 1.35; text-decoration: none; transition: background-color .15s ease;}
:is(.pr-content, .tender-documents, .tender-table) .doc-link:hover {background: var(--t-blue-soft); text-decoration: none;}
:is(.pr-content, .tender-documents, .tender-table) .doc-link:hover .doc-link__title {color: var(--t-blue);}
.doc-link__icon {flex: 0 0 1.5rem; font-size: 1.375rem;}
.doc-link__icon--file-pdf {color: #d93a2b;}
.doc-link__icon--file-word {color: #2b62c4;}
.doc-link__icon--file-excel {color: #1e8449;}
.doc-link__icon--file-zipper {color: #8a6d3b;}
.doc-link__title {flex: 1;}
.doc-link__meta {flex: 0 0 auto; padding: 0.125rem 0.5rem; border-radius: 999px; background: var(--t-bg); color: var(--t-muted); font-size: 0.75rem; font-weight: 600; white-space: nowrap;}
:is(.pr-content, .tender-documents, .tender-table) h3:has(+ ul .doc-link), :is(.pr-content, .tender-documents, .tender-table) h4:has(+ ul .doc-link), :is(.pr-content, .tender-documents, .tender-table) h4:has(+ p .doc-link) {margin: 1.5rem 0 0.5rem; padding: 0 0 0.5rem; border-bottom: 1px solid var(--t-border); font-size: 1.125rem; font-weight: 700;}
@media (max-width: 575.98px) {
	:is(.pr-content, .tender-documents, .tender-table) .doc-link {flex-wrap: wrap; row-gap: 0.25rem;}
	.doc-link__title {flex-basis: calc(100% - 2.5rem);}
	.doc-link__meta {margin-left: 2.375rem;}
}

/* Просмотр изображений поверх страницы (js/theme.js) */
.lightbox {width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0; padding: 3rem 4.5rem; border: 0; background: transparent; overflow: hidden;}
.lightbox::backdrop {background: rgba(10, 20, 35, .88);}
.lightbox[open] {display: flex; align-items: center; justify-content: center;}
.lightbox__image {max-width: 100%; max-height: 100%; border-radius: 0.5rem; box-shadow: 0 10px 40px rgba(0, 0, 0, .4); background: #fff;}
.lightbox__close, .lightbox__nav {position: fixed; display: inline-flex; width: 3rem; height: 3rem; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1.25rem; line-height: 1;}
.lightbox__close:hover, .lightbox__nav:hover {background: rgba(255, 255, 255, .28);}
.lightbox__close {top: 1rem; right: 1rem;}
.lightbox__nav--prev {left: 1rem; top: 50%; transform: translateY(-50%);}
.lightbox__nav--next {right: 1rem; top: 50%; transform: translateY(-50%);}
.lightbox--single .lightbox__nav {display: none;}
.lightbox__counter {position: fixed; bottom: 1rem; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .85); font-size: 0.875rem;}
@media (max-width: 575.98px) {
	.lightbox {padding: 4rem 0.5rem;}
	.lightbox__nav {top: auto; bottom: 0.75rem; transform: none;}
}
/* Сканы документов в тексте страниц: сетка превью */
.pr-content a[href$=".jpg" i] img, .pr-content a[href$=".jpeg" i] img, .pr-content a[href$=".png" i] img {border-radius: 0.375rem; box-shadow: var(--t-shadow); transition: transform .2s ease, box-shadow .2s ease; cursor: zoom-in;}
.pr-content a[href$=".jpg" i]:hover img, .pr-content a[href$=".jpeg" i]:hover img, .pr-content a[href$=".png" i]:hover img {box-shadow: var(--t-shadow-hover);}
/* Новость без фото: логотип на фирменном фоне вместо пустой рамки */
.news-card__img.is-empty {background: var(--t-blue-soft) url("../images/logo.svg") no-repeat center / 40% auto;}

/* Галерея объекта: слайдер, под ним лента миниатюр; щелчок по фото открывает его на весь экран */
.object-gallery {display: flex; flex-direction: column; gap: 0.5rem;}
.object-gallery #Slider_Marks2 {flex: 1 1 auto; min-height: 0;}
.slide-link {display: block; height: 100%; cursor: zoom-in;}
/* Слайдер (tavrikaSlider в js/theme.js): фото лежат друг на друге, видно активное */
.slider-ready .slide_n {position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity var(--slide-speed, .7s) ease, visibility 0s linear var(--slide-speed, .7s);}
.slider-ready .slide_n.is-active {opacity: 1; visibility: visible; transition-delay: 0s;}
.slider-nav {position: absolute; top: 50%; z-index: 3; display: inline-flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .85); color: var(--t-heading); line-height: 1; transform: translateY(-50%); box-shadow: var(--t-shadow); opacity: .85; transition: opacity .15s ease, background-color .15s ease;}
.slider-nav:hover {background: #fff; opacity: 1;}
.slider-nav--prev {left: 0.75rem;}
.slider-nav--next {right: 0.75rem;}
.gallery-thumbs {display: flex; flex: 0 0 auto; gap: 0.5rem; padding-bottom: 2px; overflow-x: auto; scrollbar-width: thin;}
.gallery-thumbs__item {flex: 0 0 4.5rem; height: 3.25rem; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 0.5rem; background: none; opacity: .65; transition: opacity .15s ease, border-color .15s ease;}
.gallery-thumbs__item img {display: block; width: 100%; height: 100%; object-fit: cover;}
.gallery-thumbs__item:hover {opacity: 1;}
.gallery-thumbs__item.active {border-color: var(--t-blue); opacity: 1;}

/* Поиск по сайту (searchform.php): кнопка-лупа и раскрывающаяся строка под шапкой на ПК, поле в меню на телефоне */
.site-search {display: flex; align-items: center; border: 1px solid var(--t-border); border-radius: 999px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease;}
.site-search:focus-within {border-color: var(--t-blue); box-shadow: 0 0 0 3px rgba(0, 114, 170, .15);}
.site-search__input {flex: 1; min-width: 0; height: auto; padding: 0.625rem 1.125rem; border: 0; border-radius: 999px; background: transparent; box-shadow: none; font-size: 1rem; outline: none;}
.site-search__input:focus {box-shadow: none;}
.site-search__button {display: inline-flex; flex: 0 0 auto; width: 2.5rem; height: 2.5rem; margin: 0.125rem; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: var(--t-blue); color: #fff; font-size: 1rem; line-height: 1; transition: background-color .15s ease;}
.site-search__button:hover {background: var(--t-heading);}
.nav-search-toggle {flex: none; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--t-border); border-radius: 50%; background: #fff; color: var(--t-heading); font-size: 1rem; line-height: 1; transition: background-color .15s ease, color .15s ease, border-color .15s ease;}
.nav-search-toggle:hover, .nav-search-toggle[aria-expanded="true"] {border-color: var(--t-blue); background: var(--t-blue); color: #fff;}
.header-search {border-top: 1px solid var(--t-border); background: #fff;}
.header-search .container {padding-top: 0.75rem; padding-bottom: 0.75rem;}
.header-search .site-search, .search-page-form .site-search {max-width: 40rem;}

/* Спецпредложения: карточки в списке, срок действия, объекты-метки; прошедшие акции приглушены */
.offer-card {border: 0; border-radius: var(--t-radius); box-shadow: var(--t-shadow); transition: box-shadow .2s ease;}
.offer-card:hover {box-shadow: var(--t-shadow-hover);}
.offer-card .card-body {display: flex; flex-direction: column; gap: 0.75rem; padding: 1.25rem 1.25rem 0.5rem;}
.offer-card__icon {display: inline-flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--t-blue-soft); color: var(--t-blue); font-size: 1.125rem;}
.offer-card__title {margin: 0; padding: 0; font-size: 1.25rem; font-weight: 700; line-height: 1.3;}
.offer-card__title a {color: var(--t-heading); text-decoration: none;}
.offer-card:hover .offer-card__title a {color: var(--t-blue);}
.offer-card__excerpt {margin: 0; color: #4a5361; font-size: 0.9375rem; line-height: 1.5;}
.offer-card .card-footer {display: flex; align-items: center; justify-content: space-between; margin: 0.5rem 1.25rem 0; padding: 0.75rem 0 1rem; border: 0; border-top: 1px solid var(--t-border); background: transparent;}
.offer-card:hover .card-arrow {background: var(--t-blue); color: #fff;}
/* Закончившееся предложение — серыми метками, а не полупрозрачностью: прозрачный текст становится нечитаемым */
.offer-card--ended .offer-card__icon, .offer-card--ended .offer-period {background: var(--t-bg); color: var(--t-muted);}
.offer-meta {display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;}
.offer-period {display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.75rem; border-radius: 999px; background: var(--t-blue-soft); color: var(--t-blue); font-size: 0.875rem; font-weight: 600;}
.offer-status {padding: 0.25rem 0.75rem; border-radius: 999px; background: var(--t-bg); color: var(--t-muted); font-size: 0.875rem; font-weight: 600;}
.offer-objects {display: flex; flex-wrap: wrap; gap: 0.375rem;}
.offer-object {padding: 0.1875rem 0.625rem; border: 1px solid var(--t-border); border-radius: 999px; color: var(--t-heading); font-size: 0.8125rem;}
.offer-header {display: flex; flex-direction: column; gap: 0.75rem;}

/* Партнёры: логотипы в одинаковых плитках сеткой */
.partners-list {display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: 1rem; margin: 0;}
.col-partners {display: block; padding: 0;}
.partners-box {display: flex; height: 7rem; align-items: center; justify-content: center; padding: 1rem; border: 1px solid var(--t-border); border-radius: var(--t-radius); background: #fff; transition: box-shadow .2s ease, transform .2s ease;}
.partners-box:hover {box-shadow: var(--t-shadow-hover);}
.partners-list .partners-box > a {display: flex; width: 100%; height: 100%; align-items: center; justify-content: center;}
.partners-list img {float: none; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; opacity: 1;}
@media (max-width: 575.98px) {
	.partners-list {grid-template-columns: repeat(2, 1fr); gap: 0.75rem;}
	.partners-box {height: 5.5rem; padding: 0.75rem;}
}

/* Движение */
/* Переход по ссылке на раздел страницы (вкладки объекта) — плавной прокруткой */
@media (prefers-reduced-motion: no-preference) {
	html {scroll-behavior: smooth;}
}
/* Если в системе включено «Уменьшить движение» (людям с вестибулярными нарушениями анимация мешает),
   переходы и анимации срабатывают мгновенно */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important;}
}

/* Версия для слабовидящих (плагин «Button visually impaired»): плагин оборачивает страницу в .bvi-body,
   перекрашивает всё в цвета выбранной схемы и задаёт крупный шрифт с !important. Сетки, ленты
   с прокруткой, подписи поверх фото и высоты в rem рассчитаны на обычный шрифт, поэтому в этом
   режиме страница перестраивается: меню переносится, колонки идут друг под другом, ленты — сеткой */
.bvi-body * {background-image: none !important;}
.bvi-body header {position: static;}
.bvi-body .navbar, .bvi-body .navbar-collapse, .bvi-body .navbar-nav, .bvi-body .header-contacts {flex-wrap: wrap;}
.bvi-body .navbar-brand {white-space: normal;}
/* Длинные слова, адреса почты и ссылки при крупном шрифте шире экрана телефона */
.bvi-body {overflow-wrap: break-word;}
.bvi-body a {overflow-wrap: anywhere;}
.bvi-body .region-chip {white-space: normal;}
.bvi-body .row > [class*="col-"] {flex: 0 0 auto; width: 100%;}
@media (min-width: 768px) {
	.bvi-body :is(.objects-grid, .card-grid) > [class*="col-"] {width: 50%;}
}
.bvi-body :is(.objects-grid--scroll, .card-carousel__track, .region-chips, .section-nav, .anchor-nav) {flex-wrap: wrap; overflow: visible;}
.bvi-body .carousel-btn {display: none;}
/* Псевдоэлементы плагин не перекрашивает: подписи полей в карточках закупок, маркеры списков, стрелки плиток
   оставались серыми и синими на фоне схемы */
.bvi-body *::before, .bvi-body *::after {color: inherit !important;}
.bvi-body .hero-text {opacity: 1;}
/* Плагин заливает все кнопки цветом текста. Кнопки шапки («Объекты», «Тендеры», «Документы», поиск, меню)
   и «Скопировать ссылку» стоят в ряду ссылок, поэтому выглядят как ссылки; при наведении заливаются, как ссылки.
   Специфичность выше правила плагина */
body .bvi-body[data-bvi-theme] :not(.bvi-no-styles) :is(.nav-panel-toggle, .nav-search-toggle, .navbar-toggler, .share-link--copy)[type]:not(.bvi-no-styles):not(.bvi-link):not(.bvi-link-active) {background-color: var(--bvi-site-bg) !important; color: var(--bvi-site-color) !important;}
/* В режиме плагин прячет кнопку включения, а её рамка в подвале оставалась пустой */
.bvi-body #footer .bvi-shortcode {display: none;}
/* Без изображений плагин пишет вместо логотипов названия партнёров — плитки по ширине текста */
.bvi-body .partners-strip__list {display: flex; flex-wrap: wrap;}
.bvi-body .partners-strip__item {height: auto; min-height: 4.5rem;}
.bvi-body .partners-strip__item img {max-height: 4rem;}
/* Логотипы рассчитаны на светлый фон: на чёрной и коричневой схеме тёмные (Ласпи, Алеан) пропадали */
body .bvi-body[data-bvi-theme] .partners-strip :is(.partners-strip__item, .partners-strip__item img) {background-color: #fff !important;}
.bvi-body .section-nav {position: static;}
.bvi-body .news-aside {position: static;}
/* Метки и подписи поверх фото — обычным текстом над и под ним */
.bvi-body .card-badge {position: static; display: inline-block; margin: 0.5rem;}
.bvi-body :is(.home-hero, .home-hero .carousel-inner, .home-hero .carousel-item) {height: auto; min-height: 0; aspect-ratio: auto;}
.bvi-body .home-hero .carousel-item img {position: static; height: auto; max-height: 28rem; aspect-ratio: 16 / 9;}
.bvi-body .hero-caption {position: static; padding: 1rem 1.25rem;}
.bvi-body .news-item {grid-template-columns: minmax(0, 1fr);}
.bvi-body .news-item__img {height: auto; min-height: 0; aspect-ratio: 16 / 10;}
.bvi-body .news-item__img img {position: static;}
.bvi-body .news-cover img {object-fit: contain;}
/* Без картинок пустые рамки под фото не нужны: остаётся подпись плагина «Изображение: …» */
.bvi-body[data-bvi-images="false"] :is(.news-card__img, .news-item__img, .card-img-wrap, .news-cover, .home-hero .carousel-item) {height: auto; min-height: 0; aspect-ratio: auto;}
/* Высоты строк и кнопок в rem: при крупном шрифте строки наезжали друг на друга, текст кнопок обрезался */
.bvi-body :is(td, th) {line-height: 1.4 !important;}
.bvi-body :is(button, input[type=submit], .share-link) {height: auto; line-height: 1.3 !important; white-space: normal;}
.bvi-body .card-arrow {flex: 0 0 auto; width: auto; height: auto;}
/* Подписи полей в карточках закупок — над значением: плагин не увеличивает текст псевдоэлементов, задаём сами */
@media (max-width: 767.98px) {
	.bvi-body .tender-table td {flex-direction: column; gap: 0;}
	.bvi-body .tender-table td::before {flex: none; font-size: 0.8em;}
	.bvi-body .tender-table .tender-table__price {text-align: left;}
}
