/**
 * Snabdent — каталог: блок подкатегорий + карточка товара.
 * Подключается последним, поэтому перебивает старые правила style.css.
 */

:root {
	--sd-accent: #0468c7;
	--sd-accent-dark: #03559f;
	--sd-text: #2f2f2f;
	--sd-muted: #8d8d97;
	--sd-border: #e8e9ee;
	--sd-radius: 12px;
}

/* ---------------------------------------------------------------------------
 * 1. Блок подкатегорий
 * ------------------------------------------------------------------------- */

.sd-subcats {
	margin: 0 0 40px;
}

.sd-subcats__title {
	position: relative;
	margin: 0 0 24px;
	padding-bottom: 12px;
	font-size: 26px;
	line-height: 1.25;
	font-weight: 600;
	color: #434343;
}

.sd-subcats__title:after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 60px;
	height: 2px;
	background: var(--sd-accent);
}

.sd-subcats__grid {
	display: grid;
	grid-template-columns: repeat(var(--sd-sub-cols, 4), minmax(0, 1fr));
	gap: 20px;
}

.sd-subcats--cols-2 { --sd-sub-cols: 2; }
.sd-subcats--cols-3 { --sd-sub-cols: 3; }
.sd-subcats--cols-4 { --sd-sub-cols: 4; }
.sd-subcats--cols-5 { --sd-sub-cols: 5; }
.sd-subcats--cols-6 { --sd-sub-cols: 6; }

.sd-subcat {
	display: flex;
	flex-direction: column;
	padding: 18px 16px 20px;
	background: #fff;
	border: 1px solid var(--sd-border);
	border-radius: var(--sd-radius);
	text-align: center;
	text-decoration: none;
	transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

a.sd-subcat:hover {
	transform: translateY(-3px);
	border-color: rgba(4, 104, 199, .35);
	box-shadow: 0 10px 24px rgba(17, 24, 39, .10);
}

.sd-subcat__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.sd-subcat__media img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.sd-subcat__name {
	margin-top: 14px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--sd-accent);
	transition: color .2s ease;
}

a.sd-subcat:hover .sd-subcat__name {
	color: var(--sd-accent-dark);
	text-decoration: underline;
}

@media only screen and (max-width: 1199px) {
	.sd-subcats--cols-4,
	.sd-subcats--cols-5,
	.sd-subcats--cols-6 { --sd-sub-cols: 3; }
}

@media only screen and (max-width: 767px) {
	.sd-subcats__grid { --sd-sub-cols: 2 !important; gap: 14px; }
	.sd-subcats__title { font-size: 20px; }
	.sd-subcat { padding: 12px 10px 14px; }
	.sd-subcat__name { font-size: 13px; margin-top: 10px; }
}

/* ---------------------------------------------------------------------------
 * 2. Сетка каталога
 * ------------------------------------------------------------------------- */

.sd-catalog .products {
	display: grid !important;
	grid-template-columns: repeat(var(--sd-cols, 4), minmax(0, 1fr));
	gap: 22px;
	margin: 0 0 30px !important;
	padding: 0 !important;
	list-style: none;
}

.sd-catalog .products:before,
.sd-catalog .products:after {
	display: none !important;
}

.sd-catalog.columns-2 .products { --sd-cols: 2; }
.sd-catalog.columns-3 .products { --sd-cols: 3; }
.sd-catalog.columns-4 .products { --sd-cols: 4; }
.sd-catalog.columns-5 .products { --sd-cols: 5; }
.sd-catalog.columns-6 .products { --sd-cols: 6; }

.sd-catalog .products > .product {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	border: 0 !important;
	min-width: 0;
}

/* ---------------------------------------------------------------------------
 * 3. Карточка товара
 * ------------------------------------------------------------------------- */

.sd-catalog .product .product-wrapper {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0 !important;
	padding: 14px 14px 16px !important;
	background: #fff;
	border: 1px solid var(--sd-border);
	border-radius: var(--sd-radius);
	transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

.sd-catalog .product .product-wrapper:hover {
	transform: translateY(-3px);
	border-color: rgba(4, 104, 199, .35);
	box-shadow: 0 12px 26px rgba(17, 24, 39, .10);
}

/* Картинка в фиксированном квадрате — карточки перестают «прыгать». */
.sd-catalog .thumbnail-wrapper {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	height: auto !important;
	min-height: 0 !important;
}

.sd-catalog .thumbnail-wrapper > a {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	width: 100%;
	overflow: hidden;
}

.sd-catalog .thumbnail-wrapper figure {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
}

.sd-catalog .thumbnail-wrapper figure img {
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform .35s ease;
}

.sd-catalog .product .product-wrapper:hover figure img {
	transform: scale(1.04);
}

/* Название */
.sd-catalog .product .product-name,
.sd-catalog .product h3.product-name {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	height: auto !important;
	min-height: 3.9em;
	margin: 14px 0 6px !important;
	padding: 0 !important;
	font-size: 14px !important;
	line-height: 1.35 !important;
	font-weight: 500 !important;
	text-align: center;
}

.sd-catalog .product .product-name a {
	color: var(--sd-text) !important;
	transition: color .2s ease;
}

.sd-catalog .product .product-name a:hover {
	color: var(--sd-accent) !important;
}

/* Артикул / производитель */
.sd-catalog .product .sd-card__meta {
	margin: 0 0 10px !important;
	font-size: 12px;
	line-height: 1.4;
	color: var(--sd-muted);
	text-align: center;
	min-height: 17px;
}

.sd-catalog .product .sd-card__meta span + span:before {
	content: " · ";
	color: #c9c9d1;
}

/* Цена */
.sd-catalog .product .price {
	display: block;
	margin: 0 0 10px !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	color: var(--sd-text) !important;
	text-align: center;
}

.sd-catalog .product .price ins {
	text-decoration: none;
}

.sd-catalog .product .price del {
	margin-right: 6px;
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--sd-muted) !important;
}

/* Нижняя часть карточки прижата к низу — кнопки в один уровень */
.sd-catalog .product .meta-wrapper {
	margin-top: auto !important;
	padding: 12px 0 0 !important;
	min-height: 0 !important;
	text-align: center;
}

.sd-catalog .product .meta-wrapper .product-categories,
.sd-catalog .product .meta-wrapper .product-sku,
.sd-catalog .product .short-description {
	font-size: 12px;
	color: var(--sd-muted);
}

/* Дубль кнопок поверх картинки не нужен — кнопка есть внизу карточки */
.sd-catalog .thumbnail-wrapper .product-group-button {
	display: none !important;
}

/* Кнопка «В корзину» */
.sd-catalog .product .product-group-button-meta {
	margin: 0 !important;
}

.sd-catalog .product .but-cat {
	margin: 0 !important;
	padding: 0 !important;
}

/* По умолчанию кнопка нейтральная — заливка появляется только при наведении. */
.sd-catalog section.product a.button,
.sd-catalog .product .but-cat a.button,
.sd-catalog .product .added_to_cart {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 44px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 12px !important;
	background: transparent !important;
	color: var(--sd-text) !important;
	border: 1px solid var(--sd-border) !important;
	border-radius: 8px !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-transform: none !important;
	letter-spacing: 0;
	text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.sd-catalog section.product a.button:hover,
.sd-catalog .product .but-cat a.button:hover,
.sd-catalog .product .added_to_cart:hover {
	background: var(--sd-accent) !important;
	border-color: var(--sd-accent) !important;
	color: #fff !important;
}

.sd-catalog .product .added_to_cart {
	margin-top: 8px !important;
}

/* Подпись внутри кнопки в теме сделана тултипом — возвращаем обычный текст */
.sd-catalog .product a.button .ts-tooltip,
.sd-catalog .product a.button .button-tooltip {
	position: static !important;
	display: inline !important;
	visibility: visible !important;
	opacity: 1 !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	color: inherit !important;
	font-size: inherit !important;
	line-height: 1 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	transform: none !important;
	white-space: nowrap;
}

.sd-catalog .product a.button .ts-tooltip:before,
.sd-catalog .product a.button .ts-tooltip:after {
	display: none !important;
}

/* Метки «Нет в наличии» / «Скидка» */
.sd-catalog .product .product-label {
	top: 0;
	left: 0;
}

.sd-catalog .product .product-label span {
	border-radius: 6px;
	font-size: 11px;
}

/* Плитки категорий внутри цикла товаров */
.sd-catalog .product-category .product-wrapper {
	text-align: center;
}

.sd-catalog .product-category .meta-wrapper {
	margin-top: auto !important;
}

/* ---------------------------------------------------------------------------
 * 4. Адаптив каталога
 * ------------------------------------------------------------------------- */

@media only screen and (max-width: 1199px) {
	.sd-catalog.columns-5 .products,
	.sd-catalog.columns-6 .products { --sd-cols: 4; }
}

@media only screen and (max-width: 991px) {
	.sd-catalog .products { --sd-cols: 3 !important; gap: 16px; }
}

@media only screen and (max-width: 767px) {
	.sd-catalog .products { --sd-cols: 2 !important; gap: 12px; }

	.sd-catalog .product .product-wrapper { padding: 10px 10px 12px !important; }

	.sd-catalog .product .product-name,
	.sd-catalog .product h3.product-name {
		font-size: 13px !important;
		min-height: 3.6em;
		margin-top: 10px !important;
	}

	.sd-catalog section.product a.button,
	.sd-catalog .product .but-cat a.button {
		height: 40px !important;
		font-size: 12px !important;
	}
}
