/* =========================================================
 * Santa Compra — área de compra da página de produto
 * Prefixo sbc- e escopo .single-product pra não vazar.
 * ======================================================= */

/* ---------- selo de estoque ---------- */

.single-product p.stock {
	display: inline-flex !important;
	align-items: center;
	gap: 7px;
	font-size: 13px !important;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 999px;
	margin: 0 0 14px;
}

.single-product p.stock::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex: none;
}

.single-product p.stock.in-stock {
	background: #e8f6ee;
	color: #1b7a45 !important;
}

.single-product p.stock.in-stock::before {
	background: #2eb872;
	animation: sbc-pulse 2s ease-out infinite;
}

/* pulso "ao vivo" da bolinha de estoque */
@keyframes sbc-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(46, 184, 114, .45); }
	70%  { box-shadow: 0 0 0 7px rgba(46, 184, 114, 0); }
	100% { box-shadow: 0 0 0 0 rgba(46, 184, 114, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.single-product p.stock.in-stock::before { animation: none; }
}

.single-product p.stock.out-of-stock {
	background: #fdecec;
	color: #b3261e !important;
}

.single-product p.stock.out-of-stock::before { background: #e05252; }

/* ---------- linha quantidade + botão ---------- */

.single-product form.cart:not(.variations_form),
.single-product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

/* ---------- stepper de quantidade ---------- */

.single-product form.cart .quantity.sbc-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1.5px solid #e3dded;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	margin: 0;
}

.single-product form.cart .quantity.sbc-qty:focus-within {
	border-color: var(--sbc-accent, #a10c9c);
	box-shadow: 0 0 0 3px rgba(161, 12, 156, .12);
}

.sbc-step {
	width: 44px;
	min-height: 48px;
	border: 0 !important;
	background: #faf7fc !important;
	color: var(--sbc-accent, #a10c9c) !important;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	border-radius: 0 !important;
	transition: background .15s, color .15s;
}

.sbc-step:hover {
	background: var(--sbc-accent, #a10c9c) !important;
	color: #fff !important;
}

.single-product form.cart .sbc-qty input.qty {
	width: 66px;
	min-height: 48px;
	border: 0 !important;
	border-radius: 0 !important;
	text-align: center;
	font-size: 16px;
	font-weight: 700;
	color: #333;
	background: #fff !important;
	outline: none;
	box-shadow: none !important;
	-moz-appearance: textfield;
	appearance: textfield;
	margin: 0;
}

.single-product form.cart .sbc-qty input.qty::-webkit-outer-spin-button,
.single-product form.cart .sbc-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---------- aviso de pedido mínimo ---------- */

.sbc-min-note {
	flex-basis: 100%;
	order: 10;
	font-size: 12.5px;
	color: #8a8494;
	margin: 0;
}

/* ---------- variações (swatches de cor) ----------
 * Estiliza o markup do Variation Swatches for WooCommerce já ativo no site.
 * Mesma linguagem do Santa Filtros: anel na cor selecionada. */

.single-product form.cart table.variations {
	border: 0;
	margin: 0 0 4px;
	width: 100%;
}

/* Rótulo numa linha, swatches na linha de baixo, tudo na margem esquerda. */
.single-product form.cart table.variations tbody,
.single-product form.cart table.variations tr,
.single-product form.cart table.variations th,
.single-product form.cart table.variations td {
	display: block !important;
	width: 100% !important;
	border: 0;
	padding: 0;
	background: transparent;
	text-align: left !important;
}

.single-product form.cart table.variations th.label,
.single-product form.cart table.variations td.label {
	font-size: 13.5px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: #555;
	padding: 0 0 8px;
}

.single-product form.cart table.variations td.value {
	padding: 0 0 12px;
}

.single-product .variable-items-wrapper {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: flex-start !important;
	gap: 10px;
	margin: 0 !important;
	padding: 2px !important;
	list-style: none;
}

.single-product form.cart .reset_variations {
	display: inline-block;
	margin: 8px 0 0;
}

.single-product .variable-item {
	border-radius: 12px !important;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12) !important;
	transition: transform .15s, box-shadow .15s !important;
	cursor: pointer;
	margin: 0 !important;
}

.single-product .variable-item:not(.selected):hover {
	transform: scale(1.07);
}

.single-product .variable-item.selected,
.single-product .variable-item.selected:hover {
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12),
		0 0 0 2px #fff,
		0 0 0 3px var(--sbc-accent, #a10c9c) !important;
}

.single-product .variable-item.image-variable-item img {
	border-radius: 10px !important;
	display: block;
}

/* Miniatura convertida em bolinha de cor padronizada (classe via JS). */
.single-product .variable-item.sbc-dot {
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	background: var(--sbc-swatch, #ccc) !important;
	overflow: hidden;
}

.single-product .variable-item.sbc-dot img,
.single-product .variable-item.sbc-dot .variable-item-contents {
	display: none !important;
}

.single-product .variable-item.sbc-dot.selected,
.single-product .variable-item.sbc-dot.selected:hover {
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .18),
		0 0 0 2px #fff,
		0 0 0 4px var(--sbc-accent, #a10c9c) !important;
}

.single-product .reset_variations {
	font-size: 12.5px;
	color: var(--sbc-accent, #a10c9c) !important;
	text-decoration: underline !important;
}

/* ---------- botão de compra ---------- */

.single-product form.cart .single_add_to_cart_button {
	background: var(--sbc-accent, #a10c9c) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	min-height: 48px;
	padding: 12px 34px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .02em;
	text-transform: none !important;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(161, 12, 156, .28);
	transition: filter .15s, transform .15s, box-shadow .15s;
}

.single-product form.cart .single_add_to_cart_button:hover {
	filter: brightness(1.1);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(161, 12, 156, .35);
}

.single-product form.cart .single_add_to_cart_button:active {
	transform: translateY(0);
	filter: brightness(.95);
}

.single-product form.cart .single_add_to_cart_button.disabled,
.single-product form.cart .single_add_to_cart_button:disabled {
	opacity: .45;
	box-shadow: none;
	cursor: not-allowed;
}

/* ---------- mobile ----------
 * Stepper em largura total com − e + nas pontas (alcance dos polegares),
 * botão de compra em largura total abaixo. Alvos de toque ≥ 48px;
 * fonte 16px no campo evita o zoom automático do iOS. */

@media (max-width: 600px) {
	.single-product form.cart .quantity.sbc-qty {
		flex: 1 1 100%;
		justify-content: space-between;
	}

	.single-product form.cart .sbc-qty input.qty {
		flex: 1;
		width: auto;
	}

	.sbc-step {
		width: 56px;
		min-height: 52px;
	}

	.single-product form.cart .single_add_to_cart_button {
		flex: 1 1 100%;
		min-height: 52px;
	}

	.sbc-min-note {
		text-align: center;
	}
}
