/* ==========================================================================
   vtagile_temp — стили шапки .site-header (портировано из шаблона vtagile).
   Подключается последним в head.php, чтобы перебивать глобальные правила
   старого шаблона. Все стили скоупятся в пределах шапки.
   ========================================================================== */

/* --- Переменные (из vtagile) ----------------------------------------- */
:root {
	--c-text:        #1c1c1c;
	--c-text-muted:  #707479;
	--c-link:        #1976ff;
	--c-link-hover:  #0e54c5;
	--c-bg:          #ffffff;
	--c-bg-soft:     #f6f7f8;
	--c-border:      #e3e6ea;
	--c-border-soft: #ececec;

	--container: 1230px;
	--gap: 24px;
	--header-h: 70px;
}

/* --- Скоуп-ресеты (только внутри шапки), чтобы старый CSS не ломал верстку */
.site-header *, .site-header *::before, .site-header *::after { box-sizing: border-box; }
.site-header button { font: inherit; cursor: pointer; }
.site-logo,
.site-menu a,
.site-social a,
.vt-soc-link,
.site-search-toggle,
.site-search__close,
.site-search__submit { text-decoration: none; }

/* --- Container -------------------------------------------------------- */
.site-header .vt-container,
.vt-container { max-width: var(--container); margin: 0 auto; padding: 0 16px; }

/* --- Header ----------------------------------------------------------- */
.site-header {
	background: var(--c-bg);
	border-bottom: 1px solid var(--c-border);
	/* relative (а не sticky) — шапка прокручивается как обычная, но остаётся
	   контекстом позиционирования для .site-search и моб. .site-menu (top:100%). */
	position: relative; z-index: 50;
}
.site-header__inner {
	display: flex; align-items: center; align-content: center; gap: var(--gap);
	min-height: var(--header-h);
}
.site-logo {
	flex: 0 0 auto;
	display: inline-flex; align-items: center;
	line-height: 0;
	text-decoration: none !important;
	border: 0;
}
.site-logo img,
.site-logo svg {
	display: block; height: 44px; width: auto;
	max-width: 320px; object-fit: contain; object-position: left center;
	border: 0; outline: none; vertical-align: middle;
}

.site-menu { flex: 1 1 auto; min-width: 0; align-self: stretch; }
.site-menu__wrap { display: contents; } /* на десктопе обёртка не участвует в layout */
.site-menu ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: nowrap;
	/* gap пропорционально ширине окна: от 10px на узких десктопах до 36px на широких */
	gap: clamp(10px, 1.8vw, 36px);
	height: 100%; align-items: stretch;
}
.site-menu li { position: relative; display: flex; align-items: center; margin: 0; }
/* Нейтрализация старых правил .menucat из template.css (меню рендерится
   модулем как <ul class="menucat"> и наследует чужие margin/padding/bold) */
.site-menu .menucat { padding: 0; font-weight: 400; }
.site-menu .menucat li { margin: 0; }
.site-menu li.active a,
.site-menu li.current a { color: var(--c-link); }
.site-menu a {
	display: inline-flex; align-items: center;
	color: var(--c-text); font-weight: 500;
	/* Шрифт уменьшается на узких десктопах чтобы все пункты влезали в строку */
	font-size: clamp(13px, 0.6vw + 8px, 15px);
	/* Фиксированный line-height (px), не зависящий от font-size: иначе при
	   плавном уменьшении шрифта (clamp) высота пункта «плывёт» и центрирование
	   прыгает на 1-2px при изменении ширины окна. */
	line-height: 30px;
	transition: color 0.15s;
	white-space: nowrap;
	text-decoration: none;
}
.site-menu a:hover { color: var(--c-link); text-decoration: none; }
.site-menu .current > a,
.site-menu .active > a,
.site-menu li.current > a,
.site-menu li.active > a { color: var(--c-link); }
/* Подчёркивание активного пункта прилипает к нижней границе шапки */
.site-menu li.current::after,
.site-menu li.active::after,
.site-menu .current::after,
.site-menu .active::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 3px;
	background: var(--c-link);
	border-radius: 2px 2px 0 0;
}

.site-header__aside { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; line-height: 0; }
.site-social { display: none; gap: 8px; align-items: center; line-height: 0; font-size: 0; }
.site-social .moduletable,
.site-social .module,
.site-social .custom,
.site-social > div {
	background: transparent; border: 0; padding: 0; margin: 0;
	display: contents;
}
.site-social a, .vt-soc-link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px;
	transition: transform 0.15s, opacity 0.15s;
	opacity: 0.95;
}
.site-social a:hover, .vt-soc-link:hover { text-decoration: none; transform: translateY(-1px); opacity: 1; }
.site-social img, .vt-soc-link img { display: block; width: 31px; height: 31px; border-radius: 50%; vertical-align: middle; }

.vt-soc-max { flex-shrink: 0; overflow: hidden; }
.vt-soc-max img { border-radius: 50%; }

.site-search-toggle, .site-menu-toggle {
	background: none; border: 0; padding: 8px; color: var(--c-text);
	border-radius: 50%;
	width: 36px; height: 36px;            /* перебиваем старый joomla button{height:42px} → круг, а не овал */
	line-height: 0; float: none; margin: 0; font-size: inherit;
	display: inline-flex; align-items: center; justify-content: center;
}
/* Лупа: серый круг на ховере, иконка остаётся чёрной
   (старый joomla button:hover красил в #fff — лупа «исчезала») */
.site-search-toggle:hover { background: var(--c-bg-soft); color: var(--c-text); }
/* Бургер: гасим жёлтый фон от старого joomla button:hover (#fec64d) */
.site-menu-toggle:hover, .site-menu-toggle:focus, .site-menu-toggle:active { background: none; color: var(--c-text); }

.site-menu-toggle {
	display: none;
	position: relative;
	width: 42px; height: 42px;
	padding: 0;
	background: none; border: 0;
	cursor: pointer;
}
.site-menu-toggle span {
	display: block;
	position: absolute;
	left: 10px; right: 10px;
	height: 2px;
	background: var(--c-text);
	border-radius: 2px;
	transition: transform 0.22s ease, opacity 0.18s ease, top 0.22s ease;
}
.site-menu-toggle span:nth-child(1) { top: 14px; }
.site-menu-toggle span:nth-child(2) { top: 20px; }
.site-menu-toggle span:nth-child(3) { top: 26px; }
/* При активном меню — превращается в крестик */
.site-menu-toggle[aria-expanded="true"] span:nth-child(1) { top: 20px; transform: rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.site-menu-toggle[aria-expanded="true"] span:nth-child(3) { top: 20px; transform: rotate(-45deg); }

/* Выезжающая панель поиска */
.site-search {
	position: absolute;
	top: 100%; left: 0; right: 0;
	background: var(--c-bg);
	border-bottom: 1px solid var(--c-border-soft);
	transform: translateY(-8px);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.22s ease, opacity 0.22s ease;
	z-index: 60;
}
.site-search[hidden] { display: block; }
.site-search.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }

.site-search__inner {
	position: relative;
	max-width: var(--container);
	margin: 0 auto;
	padding: 20px 56px 20px 16px;
}

/* Крестик-закрыть */
.site-search__close {
	position: absolute;
	top: 50%; right: 14px;
	transform: translateY(-50%);
	width: 36px; height: 36px;
	padding: 0; float: none; margin: 0;     /* перебиваем joomla button{padding:0 25px;height:42px} → круг */
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	border: 0;
	background: transparent;
	color: var(--c-text-muted);
	font-size: 24px; line-height: 1;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}
.site-search__close:hover { background: var(--c-bg-soft); color: var(--c-text); }

/* Форма поиска */
.site-search__form {
	display: flex; align-items: center; gap: 12px;
	padding: 4px 0;
}
.site-search__input {
	flex: 1 1 auto; min-width: 0;
	border: 0; background: transparent;
	padding: 12px 4px;
	font-size: 20px; font-weight: 400;
	color: var(--c-text);
	outline: none;
}
.site-search__input::placeholder { color: var(--c-text-muted); font-weight: 300; }
/* убираем нативный «крестик» от type=search в Chrome/Safari */
.site-search__input::-webkit-search-cancel-button,
.site-search__input::-webkit-search-decoration { display: none; -webkit-appearance: none; }
.site-search__input::-ms-clear { display: none; }

.site-search__submit {
	flex: 0 0 auto;
	border: 0;
	padding: 0; float: none; margin: 0; line-height: 0;   /* гасим joomla button{float:left;margin;padding} */
	width: 44px; height: 44px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--c-link); color: #fff;
	cursor: pointer;
	transition: background 0.18s, transform 0.18s;
}
.site-search__submit:hover { background: var(--c-link-hover); transform: scale(1.05); }
.site-search__submit svg { display: block; }

/* Полупрозрачная подложка */
.site-search-overlay {
	position: fixed; inset: 0;
	background: rgba(15, 23, 42, 0.25);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.22s ease;
	z-index: 49;
}
.site-search-overlay[hidden] { display: block; }
.site-search-overlay.is-open { opacity: 1; pointer-events: auto; }

/* Когда открыт поиск — иконка-триггер активна */
.site-header.is-search-open .site-search-toggle { background: var(--c-bg-soft); color: var(--c-link); }

/* Широкие экраны (≥1150px): показываем уменьшенные соц-иконки справа,
   между меню и поиском. На 970–1150px они скрыты (мало места), а ≤970px
   снова появляются в мобильной шапке (правило ниже). */
@media (min-width: 1150px) {
	.site-social { display: flex; }
	.site-social a, .vt-soc-link { width: 28px; height: 28px; }
	.site-social img, .vt-soc-link img { width: 24px; height: 24px; }
}

/* --- Адаптив (только правила, относящиеся к шапке) ------------------- */
@media (max-width: 1024px) {
	.site-menu ul { gap: 18px; }
}

@media (max-width: 970px) {
	.site-menu-toggle { display: inline-flex; order: 3; }
	/* Меню — выпадающим оверлеем под шапкой */
	.site-menu {
		position: absolute;
		top: 100%; left: 0; right: 0;
		display: block;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.22s ease;
		background: var(--c-bg);
		z-index: 49;
	}
	.site-menu__wrap { display: block; padding: 2px 16px 2px; border-top: 1px solid var(--c-border); box-shadow: 0 8px 16px rgba(0,0,0,0.06); }
	.site-menu.is-open {
		max-height: calc(100vh - 60px);     /* высота шапки 60px */
		overflow-y: auto;                   /* пункты, не влезающие в viewport, прокручиваются */
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}
	/* inline-block → ширина меню по самому длинному пункту,
	   поэтому border-bottom у всех пунктов одинаковой ширины */
	.site-menu ul {
		display: inline-block !important;
		gap: 0;
		margin: 0; padding: 0;
	}
	.site-menu li { display: block; }
	.site-menu li::after { display: none; }
	/* .site-menu li a (0,1,2) перебивает старое .menucat li a {display:inline-block} (0,1,2)
	   по порядку загрузки → ссылка block заполняет пункт → бордеры по самому длинному пункту */
	.site-menu li a {
		display: block;
		padding: 5px 0;
		border-bottom: 1px solid var(--c-border-soft);
	}
	.site-menu li:last-child a { border-bottom: 0; }
	.site-menu a:hover { border-bottom-color: var(--c-link); }
	.site-menu li:last-child a:hover { border-bottom-color: transparent; }
	.site-header__inner {
		flex-wrap: nowrap;
		align-items: center;
		height: 64px;
		min-height: 0;
		padding: 0;
	}
	.site-logo { flex: 1 1 auto; min-width: 0; align-self: center; }
	.site-header__aside { order: 2; align-self: center; flex: 0 0 auto; }
	.site-social { display: flex; align-items: center; flex: 0 0 auto; }
}

@media (max-width: 580px) {
	.vt-container { padding: 0 12px; }
	/* Шапка — компактнее, всё в одной строке */
	.site-header__inner {
		height: 60px;
		min-height: 0;
		gap: 8px;
		padding: 0;
		flex-wrap: nowrap !important;
		align-items: center !important;
	}
	.site-logo,
	.site-menu-toggle,
	.site-search-toggle,
	.site-header__aside,
	.site-social { align-self: center !important; }
	.site-logo img { height: 40px; }
	.site-social { gap: 8px; }
	.site-social a, .vt-soc-link { width: 30px; height: 30px; flex: 0 0 30px; }
	.site-social img, .vt-soc-link img { width: 27px; height: 27px; }

	/* Поиск-панель — компактнее на мобильном */
	.site-search__inner { padding: 14px 52px 14px 12px; }
	.site-search__close { right: 8px; width: 32px; height: 32px; font-size: 22px; }
	.site-search__input { font-size: 17px; padding: 10px 2px; }
	.site-search__submit { width: 40px; height: 40px; }
}

@media (max-width: 360px) {
	.vt-container { padding: 0 8px; }
	.site-logo img { height: 32px; }
	.site-social { gap: 6px; }
	.site-social a, .vt-soc-link { width: 26px; height: 26px; flex: 0 0 26px; }
	.site-social img, .vt-soc-link img { width: 26px; height: 26px; }
	.site-search-toggle { padding: 6px; }
}

/* ===================================================================
   Кнопка «Подробнее» в листинге K2-категории — портирована из vtagile
   (.vt-item-more). Светло-голубая «пилюля» со стрелкой-шевроном.
   =================================================================== */
.vt-item-more {
	align-self: flex-start;   /* работает только если родитель — flex (в vtagile так); иначе игнорируется */
	margin-top: 7px;          /* отступ сверху от .itemIntroText */
	padding: 7px 18px 7px 20px;
	background: #e8f1fd;
	color: var(--c-link);
	border-radius: 6px;
	font-size: 14px;
	font-weight: 500;
	display: inline-flex; align-items: center; gap: 6px;
	text-decoration: none;
	transition: background 0.15s, color 0.15s;
}
.vt-item-more::after {
	content: ''; width: 6px; height: 6px;
	border-right: 2px solid currentColor;
	border-top: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.15s;
}
.vt-item-more:hover { background: var(--c-link); color: #fff; text-decoration: none; }
.vt-item-more:hover::after { transform: rotate(45deg) translate(2px, -2px); }
/* Перебиваем старые ID-правила #gkMainbody a {color:#4d90fe} и :hover {color:#363636} */
#gkMainbody .vt-item-more { color: var(--c-link); }
#gkMainbody .vt-item-more:hover { color: #fff; }
/* Без подчёркивания: перебиваем .itemBody a {text-decoration:underline} (0,1,1) */
a.vt-item-more, a.vt-item-more:hover,
#gkMainbody .vt-item-more, #gkMainbody .vt-item-more:hover { text-decoration: none; }

@media (max-width: 580px) {
	.vt-item-more { padding: 6px 14px 6px 16px; font-size: 13px; }
}
/* Кнопку «Подробнее» показываем только на ширине ~650px и больше — на узких
   экранах вместо неё работает клик по картинке/заголовку. */
@media (max-width: 650px) {
	.vt-item-more { display: none; }
}
