/* Правки дочерней темы. Секции пронумерованы по списку клиента от 2026-08-04. */

/* --- Типографика: Inter — основной, Cormorant Garamond — заголовки и имена --- */
body,
button,
input,
select,
textarea,
.woocommerce-Price-amount,
.widget,
#masthead .width-navigation,
.thim-menu-wrapper {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Родительская тема задаёт шрифт заголовкам через свои переменные — перебиваем явно */
h1, h2, h3, h4, h5, h6,
.page-title,
.page-title-bar .page-title,
.entry-title,
.product_title,
.woocommerce-loop-product__title,
.products .product h3,
.thim-title,
.widget-title,
.author-name,
.top_site_main .heading__secondary {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
	font-weight: 500 !important;
	letter-spacing: 0;
}

/* Заголовок в шапке страницы: мельче штатных 60px */
.top_site_main .heading__secondary {
	font-size: 36px !important;
}

@media (max-width: 767px) {
	.top_site_main .heading__secondary {
		font-size: 26px !important;
	}
}

/* --- Текст по ширине на страницах и в записях (включая авторов) --- */
.page .entry-content p,
.single-post .entry-content p,
.blog .entry-content p,
.blog .entry-summary p {
	text-align: justify;
	text-justify: inter-word;
}

/* Заголовки записей в блоге и анонсах — тем же шрифтом, что и остальные */
.entry-title,
.entry-title a,
.post-title,
.post-title a,
.blog-title,
.thim-blog-title,
h2.entry-title a,
h3.entry-title a {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
	font-weight: 600 !important;
}

/* --- Ценовой фильтр: диапазон не помещался в строку --- */
.widget_price_filter .price_slider_amount {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
}

.widget_price_filter .price_slider_amount .price_label {
	white-space: nowrap;
	font-size: 13px;
}

.widget_price_filter .price_slider_amount .button {
	flex: 0 0 auto;
}

/* --- Иконка корзины: тема рисует её шрифтом Font Awesome 4, а загружена только 5-я версия --- */
.add_to_cart_button:before,
.product-grid .product__title a.button.product_type_variable:before,
.added_to_cart:before {
	content: "\f07a" !important;
	font-family: "Font Awesome 5 Free" !important;
	font-weight: 900 !important;
}

/* --- Товарная сетка: ровные квадраты ---
   В каталоге и у авторов превью должны быть одинаковыми квадратами — работы
   заполняют ячейку целиком, лишнее по краям срезается. Работу целиком
   посетитель видит на её странице: там галерея вписывает изображение
   полностью (см. sailing_child_gallery_fit_mode в functions.php). */
.product_thumb {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background-color: #f7f7f7;
}

.product_thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center;
}

/* Названия работ: тема набирала их шрифтом с засечками (Roboto Slab) и меняла
   регистр — в каталоге ЗАГЛАВНЫМИ, у автора С Заглавной Каждое Слово. Из-за
   этого названия выбивались из остального текста. Приводим к основному шрифту
   и обычному регистру, жирность оставляем. */
.product__title .title,
.product__title a.title,
.product__title a,
.woocommerce-loop-product__title,
.woocommerce-loop-product__title a,
.products .product .product__title a,
/* В каталоге и на главной регистр задан в шаблоне конструктора (post-31893)
   тоже через !important, и его файл подключается после нашего. Повторяем селектор
   с удвоенным классом — так он весомее и выигрывает без правки шаблона. */
.product-grid .product__title a.title.title,
.product-grid .product__title .title.title,
.product-grid .product__title a.title,
.product-grid .product__title .title {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* Быстрый просмотр отключён, поэтому вся площадь превью ведёт на страницу товара */
.product_thumb .link-images-product {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 3;
}

/* --- В шапке товара тоже убираем строку «Home > …» --- */
.elementor-widget-thim-ekits-breadcrumb {
	display: none !important;
}

/* --- «Другие работы автора:» — это последний абзац описания перед сеткой работ --- */
.thim-ekit-single-product__content p:has(+ .woocommerce) {
	margin-top: 1.4em;
	font-weight: 700;
}

/* --- Кнопка «наверх»: лежала в потоке внизу страницы и перекрывалась товарами --- */
.scrollup {
	position: fixed !important;
	right: 16px !important;
	bottom: 16px !important;
	top: auto !important;
	left: auto !important;
	z-index: 999 !important;
	width: 38px !important;
	height: 38px !important;
	line-height: 38px !important;
	font-size: 15px !important;
	text-align: center;
	opacity: .75;
}

.scrollup:hover {
	opacity: 1;
}

/* Поле количества больше не прячем стилями: этим занимается
   woocommerce_is_sold_individually в functions.php — оно скрывает поле там,
   где товар в единственном экземпляре, и оставляет, где штук больше. */

/* --- Быстрый просмотр --- */
.mfp-content .quickview a.quick-view-detail {
	display: inline-block !important;
	margin-top: 10px !important;
	padding: 10px 24px !important;
	border: none !important;
	background: #3ab1b4 !important;
	color: #fff !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
}

.mfp-content .quickview a.quick-view-detail:hover {
	background: #2a9da0 !important;
}

@media (max-width: 767px) {
	.mfp-content .quickview .left,
	.mfp-content .quickview .right {
		float: none !important;
		width: 100% !important;
	}
}

/* --- Подпись разработчика в подвале --- */
.site-credit {
	margin: 0;
	padding: 6px 0;
	font-size: 13px;
	line-height: 1.5;
	text-align: center;
	opacity: .7;
}

.site-credit a {
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

.site-credit a:hover {
	opacity: 1;
}

/* --- Блок подписки: заголовок, поле и кнопка по центру --- */
.subscribe-widget,
.subscribe-widget .widget-title,
.subscribe-widget .textwidget,
.subscribe-widget .mailpoet_form,
.subscribe-widget .mailpoet_paragraph {
	text-align: center;
}

.subscribe-widget .mailpoet_form form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	justify-content: center;
}

.subscribe-widget .mailpoet_paragraph {
	margin-bottom: 0;
}

/* На узком экране поле и кнопка не помещались в строку и жались друг к другу —
   ставим их одно под другим во всю ширину. */
@media (max-width: 767px) {
	.subscribe-widget .mailpoet_form form {
		flex-direction: column;
		gap: 12px;
	}

	.subscribe-widget .mailpoet_paragraph,
	.subscribe-widget .mailpoet_form_column {
		width: 100%;
	}

	.subscribe-widget .mailpoet_text,
	.subscribe-widget input[type="email"],
	.subscribe-widget .mailpoet_submit,
	.subscribe-widget input[type="submit"] {
		width: 100% !important;
		box-sizing: border-box;
	}
}

.subscribe-widget .mailpoet_submit,
.subscribe-widget input[type="submit"] {
	float: none !important;
	display: inline-block;
}

/* Суммы вида «180 000 ₽» рвались на две строки в итогах заказа */
.woocommerce-Price-amount {
	white-space: nowrap;
}

/* --- Оформление заказа: галочка налезала на свою же подпись --- */
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
	display: block;
	position: relative;
	padding-left: 26px;
}

.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	position: absolute;
	top: 3px;
	left: 0;
	margin: 0 !important;
}

/* --- «Выставки и проекты»: лупа при наведении, чтобы было видно, что картинка кликабельна --- */
.page-id-5557 .sow-image-container a {
	display: block;
	position: relative;
	overflow: hidden;
}

.page-id-5557 .sow-image-container a::before,
.page-id-5557 .sow-image-container a::after {
	opacity: 0;
	transition: opacity .25s ease;
	pointer-events: none;
}

.page-id-5557 .sow-image-container a::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	background: rgba(0, 0, 0, .35);
}

.page-id-5557 .sow-image-container a::after {
	content: "\f002";
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	transform: translate(-50%, -50%);
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	font-size: 30px;
	color: #fff;
}

.page-id-5557 .sow-image-container a:hover::before,
.page-id-5557 .sow-image-container a:hover::after {
	opacity: 1;
}

/* --- Имена авторов, кураторов и названия выставок: были 24px, слишком крупно ---
   Ограничиваемся содержимым страниц, чтобы не задеть заголовки виджетов
   в подвале — например, блок подписки. */
.page-id-5557 .so-panel .widget-title,
.page-id-4227 .so-panel .widget-title,
.page-id-4206 .so-panel .widget-title,
.page-id-4230 .so-panel .widget-title,
.page-id-1904 .so-panel .widget-title,
.page-id-4565 .so-panel .widget-title {
	font-size: 19px !important;
	line-height: 1.35;
}

@media (max-width: 767px) {
	.page-id-5557 .so-panel .widget-title,
	.page-id-4227 .so-panel .widget-title,
	.page-id-4206 .so-panel .widget-title,
	.page-id-4230 .so-panel .widget-title,
	.page-id-1904 .so-panel .widget-title,
	.page-id-4565 .so-panel .widget-title {
		font-size: 17px !important;
	}
}

/* --- Переключатель языков: сворачиваем в выпадающий список ---
   Семь языков в строку занимали пол-экрана и перетягивали на себя внимание.
   Показываем только текущий, остальные раскрываются по наведению или клику. */
.qtranxs_widget .language-chooser {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: 0;
	list-style: none;
	vertical-align: middle;
}

.qtranxs_widget .language-chooser > li {
	display: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* текущий язык виден всегда, справа от него — стрелка */
.qtranxs_widget .language-chooser > li.active {
	display: block;
	position: relative;
	padding-right: 16px;
	cursor: pointer;
}

.qtranxs_widget .language-chooser > li.active::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2px;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	opacity: .6;
	transition: transform .2s ease;
}

/* Остальные языки скрипт складывает в этот блок — он выпадает поверх страницы
   и не раздвигает шапку */
.lang-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	z-index: 1200;
	padding: 8px 14px;
	/* лёгкая подложка с размытием: список читается на любом фоне,
	   но не выглядит тяжёлой панелью */
	background: rgba(28, 28, 28, .72);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-radius: 4px;
	text-align: left;
}

.qtranxs_widget .language-chooser.is-open .lang-dropdown,
.qtranxs_widget .language-chooser:hover .lang-dropdown {
	display: block;
}

.lang-dropdown li {
	display: block !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Флажок выводится фоном самой ссылки, поэтому слева нужен отступ под него */
.lang-dropdown li a {
	display: block;
	padding: 5px 2px 5px 24px;
	white-space: nowrap;
	color: #fff !important;
	font-size: 13px;
	line-height: 1.4;
	text-decoration: none;
	background-repeat: no-repeat !important;
	background-position: left center !important;
	transition: color .15s ease;
}

.lang-dropdown li a span {
	color: inherit !important;
}

.lang-dropdown li a:hover,
.lang-dropdown li a:hover span {
	color: #3ab1b4 !important;
}

/* флажок не должен «прыгать» по высоте строки */
.lang-dropdown li a img {
	display: inline-block;
	vertical-align: middle;
	margin: 0;
}

.qtranxs_widget .language-chooser.is-open > li.active::after,
.qtranxs_widget .language-chooser:hover > li.active::after {
	transform: rotate(-135deg);
}

/* --- Переключатель валют ---
   Цены на сайте рублёвые, здесь только выбор, в чём их показывать.
   Пересчёт делает браузер, поэтому кэшированные страницы не мешают. */
.currency-switcher {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 2px;
	align-items: center;
	vertical-align: middle;
}

.currency-switcher__item {
	padding: 3px 9px;
	border: 1px solid rgba(0, 0, 0, .14);
	border-radius: 3px;
	background: transparent;
	color: inherit;
	font-size: 12px;
	line-height: 1.5;
	letter-spacing: .04em;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease;
}

.currency-switcher__item:hover {
	border-color: #3ab1b4;
	color: #3ab1b4;
}

.currency-switcher__item.is-active {
	border-color: #3ab1b4;
	background: #3ab1b4;
	color: #fff;
}

/* Пояснение про оплату в рублях — показывается, только когда выбрана не она */
.currency-note {
	margin-top: 6px;
	font-size: 12px;
	line-height: 1.45;
	opacity: .68;
}

@media (max-width: 767px) {
	.currency-switcher__item {
		padding: 4px 10px;
		font-size: 13px;
	}
}

/* --- Обрезаем водяной знак на круглых портретах в виджете --- */
.so-widget-sow-image .sow-image-container {
	max-height: 277px !important;
	overflow: hidden !important;
}

/* --- Кнопка поиска по товарам ---
   Тема выводит поле и кнопку без отступа, из-за чего они наезжают друг на друга. */
.widget_product_search .woocommerce-product-search {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}

.widget_product_search .search-field {
	width: 100%;
}

.widget_product_search button[type="submit"] {
	border: none !important;
	background-color: #3ab1b4 !important;
	color: #fff !important;
}

.widget_product_search button[type="submit"]:hover {
	background-color: #2a9da0 !important;
}

/* --- Меню категорий над каталогом ---
   До того как отработает скрипт, пункты выстраиваются в столбик и занимают 180px
   вместо итоговых 34–68px. В момент схлопывания весь каталог прыгает вверх.
   Ограничиваем высоту заранее; при наведении и фокусе ограничение снимается,
   чтобы выпадающие пункты работали как обычно. */
.e-n-menu {
	max-height: 34px;
	overflow: hidden;
}

.e-n-menu:hover,
.e-n-menu:focus-within,
.e-n-menu.e-n-menu--open {
	max-height: none;
	overflow: visible;
}

@media (max-width: 767px) {
	.e-n-menu {
		max-height: 68px;
	}
}

/* --- Резервируем место под галерею работы ---
   Галерея собирается скриптом несколько секунд. Пока её нет, место не занято,
   и в момент появления весь контент под ней прыгает вниз — это и выглядит как
   «мигание» при переходах. Высоты взяты из настроек самой галереи. */
[id^="uc_uc_compact_image_theme_elementor"],
[id^="uc_uc_compact_image_theme_elementor"][id$="-wrapper"],
.elementor-widget-uc_compact_image_theme_elementor .uc-items-wrapper {
	min-height: 500px !important;
}

@media (max-width: 1024px) {
	[id^="uc_uc_compact_image_theme_elementor"],
	[id^="uc_uc_compact_image_theme_elementor"][id$="-wrapper"],
	.elementor-widget-uc_compact_image_theme_elementor .uc-items-wrapper {
		min-height: 400px !important;
	}
}

/* Виджет запускается с чёрной подложкой — при открытии карточки это выглядит
   как тёмная вспышка перед появлением работы. Делаем подложку светлой,
   в тон странице, чтобы переход был незаметным. */
.ug-gallery-wrapper,
.ug-slider-wrapper,
.ug-slider-inner,
.ug-canvas-pie,
[id^="uc_uc_compact_image_theme_elementor"] {
	background-color: #f7f7f7 !important;
}

.ug-slider-preloader,
.ug-loader {
	filter: invert(1);
}

/* --- Полноэкранный просмотр в галерее товара: увеличенная зона нажатия --- */
.ug-button-fullscreen.ug-skin-default {
	width: 32px !important;
	height: 32px !important;
	opacity: .85 !important;
}

.ug-button-fullscreen.ug-skin-default svg {
	width: 100% !important;
	height: 100% !important;
}

/* --- Планшетная шапка --- */
@media (min-width: 768px) and (max-width: 991px) {
	#masthead > .container {
		width: 100%;
		height: 70px;
	}

	#masthead .navigation {
		position: relative;
		float: none;
		padding: 10px 15px;
	}

	#masthead .tm-table {
		display: block;
		width: 100%;
		height: 29px;
	}

	#masthead .navbar-toggle {
		display: block !important;
		position: absolute;
		top: 0;
		right: 15px;
		width: 52px;
		padding: 14px 15px;
	}

	#masthead .navbar-toggle .icon-bar {
		background: #fff;
	}

	#masthead .sailing-child-search {
		position: absolute !important;
		top: 0;
		right: 67px;
	}

	#masthead .mobile-logo {
		display: block !important;
	}

	#masthead .no-mobile-logo {
		display: none !important;
	}

	#masthead .width-navigation {
		display: block;
		position: fixed;
		top: 0;
		left: -300px;
		z-index: 9999;
		width: 300px;
		height: 100vh;
		padding: 20px 0 0;
	}

	#masthead .top-header {
		padding: 10px 0 0;
	}

	#masthead .inner-navigation {
		display: inline-block;
		width: 300px;
	}

	.elementor-element-6813068 > .e-con-inner {
		flex-wrap: wrap !important;
	}

	.elementor-element-158ceef,
	.elementor-element-2ec9aaa {
		width: 100% !important;
	}
}

@media (min-width: 992px) {
	.sailing-child-search {
		display: none !important;
	}
}

/* --- Строка с короткой информацией в баннере главной ---
   Прижата к низу баннера и вынесена из потока: содержимое баннера выровнено
   по центру по вертикали, и строка в потоке сдвигала бы заголовок вверх —
   на невысоких экранах он наезжал на меню. */
.home-notice {
	position: absolute;
	right: 0;
	bottom: 26px;
	left: 0;
	z-index: 2;
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 0 16px;
	pointer-events: none;
}

.home-notice span {
	display: inline-block;
	max-width: 640px;
	padding: 8px 18px;
	border-radius: 3px;
	background: rgba(255, 255, 255, .78);
	color: #1c1c1c;
	font-size: 13px;
	line-height: 1.5;
	text-align: center;
	letter-spacing: .01em;
	pointer-events: auto;
}

.home-notice a {
	color: #1c1c1c;
	text-decoration: underline;
}

/* На телефоне полоса шире — почти во весь экран, и прижата к низу шапки,
   чтобы заголовок остался по центру. */
@media (max-width: 767px) {
	.home-notice {
		bottom: 18px;
		padding: 0 10px;
	}

	.home-notice span {
		display: block;
		max-width: none;
		width: 100%;
		padding: 7px 12px;
		font-size: 12px;
	}
}

/* --- Галерея товара: обрезаем соседние слайды в ленте ---
   UniteGallery держит соседние кадры за границей ленты. Обрезаем ТОЛЬКО саму
   ленту слайдера, но НЕ внешний контейнер .ug-gallery-wrapper: при открытии
   фото на весь экран UniteGallery растягивает именно его, и overflow:hidden
   на нём обрезал полноэкранный просмотр — пропадала возможность сохранить фото
   на телефоне. */
.ug-slider-wrapper {
	overflow: hidden !important;
}

/* --- Галерея товара: возвращаем «Сохранить изображение» на телефоне ---
   UniteGallery ставит на свои картинки -webkit-touch-callout: none и
   user-select: none, чтобы их нельзя было перетащить. Побочный эффект — на
   iPhone пропадает меню «Сохранить фото» при долгом нажатии. Разрешаем его
   обратно: посетители галереи должны иметь возможность сохранить работу. */
.ug-gallery-wrapper,
.ug-gallery-wrapper *,
.uc-items-wrapper,
.uc-items-wrapper *,
.ug-slider-wrapper,
.ug-slider-inner,
.ug-item-wrapper,
.ug-slide-wrapper,
.ug-item-wrapper img,
.ug-slide-wrapper img,
.ug-slider-inner img,
.ug-gallery-wrapper img,
.ug-lightbox img {
	-webkit-touch-callout: default !important;
	-webkit-user-select: auto !important;
	user-select: auto !important;
}

/* --- Кнопка «Скачать» в галерее товара ---
   Открывает полное фото отдельной страницей, где сохранение долгим нажатием
   работает без помех со стороны свайп-обработчика галереи. */
.sailing-child-save {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 20;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(28, 28, 28, .55);
	color: #fff !important;
	font-size: 16px;
	text-decoration: none;
	cursor: pointer;
	transition: background .2s;
}

.sailing-child-save:hover {
	background: rgba(28, 28, 28, .8);
}
