/*
 * PC Shop — стили одиночной страницы товара.
 * Подгружается только на is_product().
 */

/* === ОБЩИЙ КОНТЕЙНЕР === */

body.single-product .pc-container {
	max-width: 1320px;
}

/* === ОБЩАЯ СТРУКТУРА .product ===
 * В WC дефолте .product содержит как ПРЯМЫХ детей:
 *   - gallery + summary (через before/after_single_product_summary)
 *   - woocommerce-tabs, related, upsells (тоже прямые дети!)
 *
 * Мы оборачиваем gallery + summary в .pc-product-top (см. functions.php hook).
 * Тогда .product = блочный контейнер: [pc-product-top] [tabs] [related] [upsells].
 * Sticky-картинка ограничена высотой .pc-product-top (= высота summary),
 * а табы/related идут чистой полосой во всю ширину снизу. */
.single-product div.product {
	display: block !important;
	margin: 24px 0 !important;
	position: relative;
}

/* === ВЕРХНИЙ БЛОК: gallery + summary в 2 колонки ===
 * Gallery-колонка задана через clamp(340, 38%, 500px) — это:
 *   - на широких экранах ограничивает картинку до ~500px ширины
 *     → для портретной (1080×1500) высота получается ~695px, влезает в окно
 *   - на средних — масштабируется ~38% от грида
 *   - на узких ≥ 901px — гарантирует минимум 340px чтобы не схлопывалась
 * Summary берёт всё остальное место (1fr).
 *
 * Без max-height на картинке — она показана в натуральном aspect ratio,
 * заполняет ширину колонки полностью, нет «пропасти» по бокам. */
.single-product div.product .pc-product-top {
	display: grid;
	grid-template-columns: clamp(340px, 38%, 500px) minmax(0, 1fr);
	gap: 48px;
	align-items: start; /* нужно для sticky галереи слева */
	margin-bottom: 48px;
}

/* === ЛЕВАЯ КОЛОНКА — обёртка с onsale + gallery (см. functions.php hook).
 * Sticky навешан на КОЛОНКУ, а не на саму галерею — чтобы лейбл «Распродажа»
 * (span.onsale, position: absolute) был позиционирован относительно колонки
 * и липнул ВМЕСТЕ с картинкой при скролле. */
.single-product div.product .pc-product-gallery-col {
	position: relative; /* containing block для span.onsale */
	width: 100%;
}

/* === ГАЛЕРЕЯ === */

.single-product div.product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	opacity: 1 !important;
}

/* Sticky колонка на desktop — картинка + onsale остаются видны при скролле,
 * как на Ozon. Прилипает под шапкой (top: 100px = header + gap).
 * Отлипает в конце .pc-product-top (= конец summary). Tabs/related идут чисто.
 *
 * ВАЖНО: для работы sticky родители НЕ должны иметь overflow:hidden/auto/scroll. */
@media (min-width: 901px) {
	.single-product div.product,
	.single-product div.product .pc-product-top {
		overflow: visible !important;
	}
	.single-product div.product .pc-product-gallery-col {
		position: sticky !important;
		top: 100px !important;
		align-self: start !important;
	}
}

.single-product div.product .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery__image--placeholder,
.single-product div.product .woocommerce-product-gallery .flex-viewport {
	border-radius: var(--pc-radius-md);
	overflow: hidden;
	/* Убран background — как на Ozon, картинка сидит прямо на page-фоне без card.
	 * Для плейсхолдера (когда нет фото) можно вернуть через .placeholder-fallback. */
	background: transparent;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

/* Для плейсхолдера (нет фото товара) возвращаем фон чтобы не сливался с страницей */
.single-product div.product .woocommerce-product-gallery__image--placeholder {
	background: var(--pc-bg-card);
}

.single-product div.product .woocommerce-product-gallery__image img,
.single-product div.product .woocommerce-product-gallery__image--placeholder img,
.single-product div.product .woocommerce-placeholder {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

.single-product div.product .woocommerce-product-gallery__image img {
	display: block;
	/* Viewport-aware скейлинг (как на Ozon): картинка-источник одна и та же,
	 * визуально подгоняется под available height экрана.
	 *
	 * - width: auto + max-width: 100% — заполняет ширину колонки если хватает
	 *   места, иначе ужимается пропорционально по натуральному aspect ratio.
	 * - max-height: calc(100vh - 160px) — никогда не вылезает за viewport.
	 *   160px = sticky header (100px) + дыхание сверху/снизу.
	 * - margin: 0 auto — центрируем если max-height ужал картинку и она
	 *   стала уже колонки (для портретных изображений на низких экранах).
	 *
	 * БЕЗ object-fit — нет фикс.высоты контейнера, картинка сама управляет
	 * своими габаритами через max-* → не возникает «пропасти» из-за contain. */
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: calc( 100vh - 160px );
	margin: 0 auto;
}

.single-product div.product .flex-control-thumbs {
	display: flex !important;
	gap: 8px;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	list-style: none;
}

.single-product div.product .flex-control-thumbs li {
	width: 80px !important;
	margin: 0 !important;
}

.single-product div.product .flex-control-thumbs img {
	border-radius: var(--pc-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	transition: border-color 0.15s ease;
	opacity: 0.7;
}

.single-product div.product .flex-control-thumbs img:hover,
.single-product div.product .flex-control-thumbs img.flex-active {
	border-color: var(--pc-accent);
	opacity: 1;
}

/* Sale флешка на товаре */
.single-product div.product span.onsale {
	background: var(--pc-accent) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--pc-radius-sm) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.8px !important;
	text-transform: uppercase !important;
	padding: 6px 12px !important;
	min-height: 0 !important;
	min-width: 0 !important;
	height: auto !important;
	width: auto !important;
	top: 16px !important;
	left: 16px !important;
	position: absolute !important;
	z-index: 5 !important;
	margin: 0 !important;
}

/* === ПРАВАЯ КОЛОНКА (SUMMARY) === */

.single-product div.product .summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	align-self: start;
	/* НЕ sticky — пусть инфа справа скроллится нормально.
	 * Sticky только у галереи слева (см. .woocommerce-product-gallery). */
}

.single-product div.product .product_title {
	color: var(--pc-text);
	font-size: clamp(24px, 2.5vw, 32px);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 20px;
}

/* Цена */
.single-product div.product p.price,
.single-product div.product .price {
	font-size: 32px !important;
	font-weight: 800 !important;
	color: var(--pc-text) !important;
	margin: 0 0 24px !important;
	display: flex !important;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
}

.single-product div.product .price del,
.single-product div.product .price del .amount {
	color: var(--pc-text-dim) !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	text-decoration: line-through;
	opacity: 0.7;
}

.single-product div.product .price ins,
.single-product div.product .price ins .amount {
	background: none !important;
	color: var(--pc-accent) !important;
	text-decoration: none !important;
	font-weight: 800;
}

/* Краткое описание */
.single-product div.product .woocommerce-product-details__short-description {
	color: var(--pc-text-muted);
	font-size: 15px;
	line-height: 1.6;
	margin: 0 0 28px;
	padding: 18px 22px;
	background: var(--pc-bg-card);
	border-left: 3px solid var(--pc-accent);
	border-radius: var(--pc-radius-sm);
}

.single-product div.product .woocommerce-product-details__short-description p {
	margin: 0;
	color: var(--pc-text-muted);
}

/* Форма "Купить" — кнопка слева большая, каунтер справа компактный.
 * Жёсткий reset: margin/padding 0 по горизонтали, width 100%, без выравнивания
 * (чтобы Astra/WC не подмешивали свои padding-left). */
.single-product div.product form.cart {
	display: flex !important;
	align-items: stretch;
	justify-content: flex-start !important;
	gap: 12px;
	margin: 28px 0 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	flex-wrap: nowrap;
	text-align: left !important;
}

/* WC clearfix ::before/::after — в flex-контейнере они становятся items
 * и съедают пространство. Убираем полностью. */
.single-product div.product form.cart::before,
.single-product div.product form.cart::after {
	display: none !important;
	content: none !important;
}

.single-product div.product form.cart .quantity {
	float: none !important; /* WC дефолт float:left — ломает flex */
	display: flex;
	align-items: stretch;
	justify-content: center;
	background: var(--pc-bg-card);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-sm);
	overflow: hidden;
	order: 2; /* перемещаем quantity ВПРАВО */
	flex: 0 0 80px; /* фиксированная ширина 80px — counter не убегает за края */
	width: 80px;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
}

.single-product div.product form.cart .quantity input.qty {
	background: transparent !important;
	color: var(--pc-text) !important;
	border: none !important;
	width: 100%; /* заполняет parent (80px) полностью — текст центрируется ровно */
	text-align: center !important;
	font-size: 16px;
	font-weight: 700;
	padding: 14px 0 !important; /* убираем горизонтальный padding для точного центра */
	margin: 0 !important;
	box-sizing: border-box;
	-moz-appearance: textfield;
}

/* Убираем стрелки spinner в Chrome/Safari чтобы не смещать число */
.single-product div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product div.product form.cart .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.single-product div.product form.cart button.single_add_to_cart_button {
	float: none !important; /* WC дефолт float:left — ломает flex + order */
	flex: 1 1 0;
	min-width: 0;
	background: var(--pc-accent) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--pc-radius-sm) !important;
	padding: 16px 24px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.8px !important;
	transition: background 0.15s ease, transform 0.1s ease;
	cursor: pointer;
	order: 1; /* кнопка купить ЛЕВЕЕ */
}

.single-product div.product form.cart button.single_add_to_cart_button:hover {
	background: var(--pc-accent-hover) !important;
	transform: translateY(-1px);
}

/* === Share-кнопка на товаре — прямо под "Купить", читаемый secondary стиль === */
.pc-share-row--product {
	margin-top: 12px;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100%;
	padding: 0;
	box-sizing: border-box;
}

.pc-share-row--product .pc-share-btn {
	width: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: var(--pc-bg-card);
	border: 1px solid var(--pc-border);
	color: var(--pc-text, #e8eaed);
	border-radius: var(--pc-radius-sm);
	padding: 14px 24px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}

.pc-share-row--product .pc-share-btn:hover {
	border-color: var(--pc-accent, #ff2a2a);
	color: var(--pc-accent, #ff2a2a);
	background: rgba(255, 42, 42, 0.05);
}

.pc-share-row--product .pc-share-btn:active {
	transform: scale(0.99);
}

/* Состояние «Скопировано» — кнопка с заметной accent-подсветкой */
.pc-share-btn.is-success,
.pc-share-btn.is-success:hover {
	border-color: var(--pc-accent, #ff2a2a);
	color: var(--pc-accent, #ff2a2a);
	background: rgba(255, 42, 42, 0.12);
}

/* === БЛОК ПРЕИМУЩЕСТВ ПОД КНОПКОЙ === */

.pc-product-perks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-top: 16px;
}

.pc-product-perks__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 14px 10px;
	background: var(--pc-bg-card);
	border: 1px solid var(--pc-border);
	border-radius: var(--pc-radius-sm);
	text-align: center;
	transition: border-color 0.15s ease;
}

.pc-product-perks__item:hover {
	border-color: var(--pc-accent);
}

.pc-product-perks__icon {
	color: var(--pc-accent);
	display: inline-flex;
	margin-bottom: 2px;
}

.pc-product-perks__title {
	font-size: 12px;
	font-weight: 700;
	color: var(--pc-text);
	letter-spacing: 0.3px;
}

.pc-product-perks__desc {
	font-size: 11px;
	color: var(--pc-text-muted);
	line-height: 1.3;
}

/* === МЕТА (SKU, категории) === */

.single-product div.product .product_meta {
	border-top: 1px solid var(--pc-border);
	padding-top: 20px;
	margin-top: 28px;
	font-size: 13px;
	color: var(--pc-text-muted);
}

.single-product div.product .product_meta > span {
	display: block;
	margin-bottom: 6px;
}

.single-product div.product .product_meta a {
	color: var(--pc-text);
	text-decoration: none;
}

.single-product div.product .product_meta a:hover {
	color: var(--pc-accent);
}

.single-product div.product .sku_wrapper,
.single-product div.product .posted_in,
.single-product div.product .tagged_as {
	color: var(--pc-text-muted);
}

/* === ТАБЫ === */

.single-product div.product .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: 56px;
}

.woocommerce-tabs ul.tabs {
	display: flex !important;
	gap: 0;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid var(--pc-border) !important;
	background: transparent !important;
	flex-wrap: wrap;
}

.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after {
	display: none !important;
}

.woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
}

.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.woocommerce-tabs ul.tabs li a {
	display: block !important;
	padding: 16px 24px !important;
	color: var(--pc-text-muted) !important;
	text-decoration: none !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	border-bottom: 2px solid transparent !important;
	transition: color 0.15s, border-color 0.15s !important;
	margin-bottom: -1px !important;
	position: relative;
	background: transparent !important;
}

.woocommerce-tabs ul.tabs li a:hover {
	color: var(--pc-text) !important;
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--pc-accent) !important;
	border-bottom-color: var(--pc-accent) !important;
}

.woocommerce-tabs .panel {
	padding: 32px 0 !important;
	color: var(--pc-text);
	background: transparent !important;
	border: none !important;
	margin: 0 !important;
}

.woocommerce-tabs .panel h2 {
	color: var(--pc-text);
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 18px;
}

.woocommerce-tabs .panel h3 {
	color: var(--pc-text);
	font-size: 16px;
	font-weight: 700;
	margin: 24px 0 12px;
}

.woocommerce-tabs .panel p,
.woocommerce-tabs .panel li {
	color: var(--pc-text-muted);
	line-height: 1.6;
	font-size: 15px;
}

.woocommerce-tabs .panel ul,
.woocommerce-tabs .panel ol {
	padding-left: 22px;
	margin: 0 0 14px;
}

.woocommerce-tabs .panel ul li {
	margin-bottom: 6px;
}

.woocommerce-tabs .panel strong {
	color: var(--pc-text);
}

/* Таблица атрибутов */
.woocommerce-tabs .shop_attributes {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	background: transparent !important;
}

.woocommerce-tabs .shop_attributes th,
.woocommerce-tabs .shop_attributes td {
	padding: 14px 18px !important;
	border: 1px solid var(--pc-border) !important;
	color: var(--pc-text) !important;
	text-align: left !important;
	background: transparent !important;
	font-style: normal !important;
}

.woocommerce-tabs .shop_attributes tr:nth-child(odd) th,
.woocommerce-tabs .shop_attributes tr:nth-child(odd) td {
	background: var(--pc-bg-card) !important;
}

.woocommerce-tabs .shop_attributes th {
	color: var(--pc-text-muted) !important;
	font-weight: 600;
	width: 38%;
	text-transform: none;
	letter-spacing: 0;
}

/* === ПОХОЖИЕ И UPSELL === */

.single-product div.product .related,
.single-product div.product .upsells {
	grid-column: 1 / -1;
	margin-top: 56px;
	clear: both;
}

.single-product .related > h2,
.single-product .upsells > h2 {
	color: var(--pc-text) !important;
	font-size: 24px !important;
	font-weight: 800 !important;
	margin: 0 0 24px !important;
}

.single-product .related ul.products,
.single-product .upsells ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
	gap: 20px !important;
}

/* === ОТЗЫВЫ === */

.woocommerce #reviews {
	color: var(--pc-text);
}

.woocommerce-Reviews-title,
.woocommerce #reviews .woocommerce-Reviews-title,
#reviews #review_form #reply-title,
#reviews #respond #reply-title {
	color: var(--pc-text) !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	margin: 0 0 20px !important;
}

.woocommerce .woocommerce-noreviews,
.woocommerce p.no-comments {
	color: var(--pc-text-muted);
	font-size: 15px;
	margin-bottom: 20px;
}

.woocommerce #reviews #respond,
.woocommerce #review_form_wrapper {
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

#review_form .comment-form,
.woocommerce #reviews #review_form .comment-form {
	display: block;
}

#review_form .comment-form label,
.woocommerce #reviews #review_form label,
.comment-form-rating label,
.comment-form-comment label,
.comment-form-author label,
.comment-form-email label {
	color: var(--pc-text) !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	margin-bottom: 8px !important;
	display: inline-block !important;
	opacity: 1 !important;
}

#review_form .comment-form .required {
	color: var(--pc-accent) !important;
}

/* Поля ввода и textarea */
#review_form textarea,
#review_form input[type="text"],
#review_form input[type="email"],
.woocommerce #reviews #review_form textarea#comment,
.woocommerce #reviews #review_form .comment-form-comment textarea,
.woocommerce #reviews #review_form input.input-text {
	background: var(--pc-bg-card) !important;
	color: var(--pc-text) !important;
	border: 1px solid var(--pc-border) !important;
	border-radius: var(--pc-radius-sm) !important;
	padding: 12px 16px !important;
	font-size: 15px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	font-family: inherit !important;
	line-height: 1.5;
}

.woocommerce #reviews #review_form textarea#comment {
	min-height: 140px !important;
	resize: vertical;
}

#review_form textarea:focus,
#review_form input:focus,
.woocommerce #reviews #review_form textarea#comment:focus {
	outline: none !important;
	border-color: var(--pc-accent) !important;
	background: var(--pc-bg-card) !important;
}

/* Звёзды рейтинга — перебиваем оранжевый дефолт WC */
.woocommerce .star-rating,
.woocommerce p.stars a,
.woocommerce p.stars,
.comment-form-rating .stars a {
	color: var(--pc-accent) !important;
}

.woocommerce p.stars a::before,
.woocommerce p.stars a:not(.active)::before {
	color: var(--pc-text-dim) !important;
}

.woocommerce p.stars a:hover::before,
.woocommerce p.stars a:hover ~ a::before,
.woocommerce p.stars.selected a:not(.active)::before,
.woocommerce p.stars.selected a.active::before,
.woocommerce p.stars a.active::before {
	color: var(--pc-accent) !important;
}

.woocommerce p.stars a.active ~ a::before {
	color: var(--pc-text-dim) !important;
}

/* Уже выставленный звёздный рейтинг (на отзыве) */
.woocommerce .star-rating::before {
	color: var(--pc-text-dim) !important;
}

.woocommerce .star-rating span::before {
	color: var(--pc-accent) !important;
}

/* Кнопка "Отправить" */
.woocommerce #reviews #review_form .form-submit input[type="submit"],
#review_form #respond .form-submit .submit,
#review_form .form-submit input.submit {
	background: var(--pc-accent) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--pc-radius-sm) !important;
	padding: 14px 28px !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	cursor: pointer;
	transition: background 0.15s ease;
}

.woocommerce #reviews #review_form .form-submit input[type="submit"]:hover,
#review_form #respond .form-submit .submit:hover {
	background: var(--pc-accent-hover) !important;
}

/* Список отзывов */
.woocommerce #reviews #comments ol.commentlist,
.woocommerce #reviews #comments ol.commentlist li {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.woocommerce #reviews #comments ol.commentlist li {
	padding: 20px 0 !important;
	border-bottom: 1px solid var(--pc-border);
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
	border: 1px solid var(--pc-border) !important;
	background: var(--pc-bg-card) !important;
	border-radius: 50% !important;
	padding: 0 !important;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
	background: var(--pc-bg-card) !important;
	border: 1px solid var(--pc-border) !important;
	border-radius: var(--pc-radius-md) !important;
	padding: 16px 20px !important;
	color: var(--pc-text) !important;
	margin-left: 70px !important;
}

.woocommerce #reviews #comments ol.commentlist li .meta {
	color: var(--pc-text-muted) !important;
	font-size: 13px;
	margin-bottom: 8px;
}

.woocommerce #reviews #comments ol.commentlist li .meta strong {
	color: var(--pc-text) !important;
	font-weight: 700;
}

.woocommerce #reviews #comments ol.commentlist li .description p {
	color: var(--pc-text);
	margin: 0;
}

/* Чекбокс "Сохранить имя/email" */
#review_form .comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 16px 0;
}

#review_form .comment-form-cookies-consent label {
	color: var(--pc-text-muted) !important;
	font-weight: 400 !important;
	font-size: 13px !important;
}

/* === АДАПТИВ === */

@media (max-width: 900px) {
	.single-product div.product .pc-product-top {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.single-product div.product .summary {
		position: static;
	}

	.woocommerce-tabs ul.tabs li a {
		padding: 12px 16px !important;
		font-size: 12px !important;
	}
}

@media (max-width: 480px) {
	.single-product div.product .product_title {
		font-size: 22px;
	}

	.single-product div.product p.price,
	.single-product div.product .price {
		font-size: 24px !important;
	}

	/* На мобиле оставляем КУПИТЬ + counter в одну строку (как на десктопе).
	 * Кнопка большая слева, counter компактный справа. */
	.single-product div.product form.cart {
		flex-direction: row;
		gap: 10px;
	}

	/* Counter компактнее на мобиле — 64px width, не убегает за края */
	.single-product div.product form.cart .quantity {
		flex: 0 0 64px;
		width: 64px;
	}

	.single-product div.product form.cart .quantity input.qty {
		width: 100%;
		font-size: 15px;
		padding: 12px 0 !important;
	}

	.single-product div.product form.cart button.single_add_to_cart_button {
		padding: 14px 16px !important;
		font-size: 13px !important;
	}

	.pc-product-perks {
		grid-template-columns: 1fr;
	}
}

/* === Mobile overflow fix (v1.13.517) === */
@media (max-width: 900px) {
	.single-product div.product .pc-product-top {
		grid-template-columns: 1fr !important;
		gap: 32px !important;
	}
	.single-product div.product .pc-product-gallery-col,
	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .summary,
	.single-product div.product .summary.entry-summary {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: none !important;
	}
}
/* Safety net — если что-то всё равно растягивает, режем horizontal scroll */
body.single-product {
	overflow-x: clip;
}
