/**
 * Strongway — ficha de producto.
 *
 * Viste el marcado nativo de WooCommerce (galería, formulario, pestañas y
 * reseñas) con el lenguaje del tema: tinta, rojo de marca, Oswald en mayúsculas
 * y tarjetas con relieve. La funcionalidad no se toca.
 */

/* ==================================================================
   Estructura: galería + resumen
   ================================================================== */

.sw-product-main {
	padding-top: clamp(18px, 3vw, 34px);
}

.sw-product-main > * {
	max-width: var(--sw-maxw);
	margin-inline: auto;
	padding-inline: var(--sw-gutter);
}

.sw-product-main div.product {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(26px, 4.5vw, 64px);
	align-items: start;
}

/* WooCommerce reparte galería y resumen con flotados al 48% mediante
   selectores muy específicos (.woocommerce div.product div.images); aquí se
   igualan y superan para que cada uno ocupe su columna completa. */
.sw-product-main div.product div.images.woocommerce-product-gallery,
.sw-product-main div.product div.summary.entry-summary {
	width: 100%;
	float: none;
	margin: 0;
}

/* Entrada suave de las dos columnas. El keyframe final está declarado:
   sin él, fill-mode dejaría el contenido invisible. */
@keyframes sw-pd-in {
	from {
		opacity: 0;
		transform: translateY(18px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

html.js .sw-product-main .woocommerce-product-gallery,
html.js .sw-product-main .summary {
	animation: sw-pd-in 0.7s var(--sw-ease) both;
}

html.js .sw-product-main .summary {
	animation-delay: 0.12s;
}

@media (prefers-reduced-motion: reduce) {
	html.js .sw-product-main .woocommerce-product-gallery,
	html.js .sw-product-main .summary {
		animation: none;
	}
}

/* ==================================================================
   Galería
   ================================================================== */

.sw-product-main .woocommerce-product-gallery {
	position: relative;
}

/* Halo de marca detrás de la foto: profundidad sin ruido. Sin extenderse en
   horizontal: un inset negativo lateral crea desbordamiento de página. */
.sw-product-main .woocommerce-product-gallery::before {
	content: "";
	position: absolute;
	inset: -8% 0 auto;
	height: 70%;
	background:
		radial-gradient(48% 42% at 30% 30%, color-mix(in srgb, var(--sw-red) 10%, transparent), transparent 70%),
		radial-gradient(40% 36% at 78% 62%, color-mix(in srgb, var(--sw-ink) 7%, transparent), transparent 72%);
	filter: blur(2px);
	pointer-events: none;
	z-index: 0;
}

.sw-product-main .woocommerce-product-gallery__wrapper {
	position: relative;
	z-index: 1;
	border-radius: var(--sw-radius-lg);
	overflow: hidden;
	background: var(--sw-grey-100);
	box-shadow: var(--sw-shadow-lg);
}

.sw-product-main .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Disparador del zoom, discreto y de marca. */
.sw-product-main .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 9;
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgb(255 255 255 / 92%);
	box-shadow: var(--sw-shadow);
	transition: transform var(--sw-fast) ease, background var(--sw-fast) ease;
}

.sw-product-main .woocommerce-product-gallery__trigger:hover {
	transform: scale(1.08);
	background: #fff;
}

/* Miniaturas del carrusel. Con la especificidad de WooCommerce
   (.woocommerce div.product div.images .flex-control-thumbs li) igualada. */
.sw-product-main div.product div.images .flex-control-thumbs li {
	width: auto;
	float: none;
}

.sw-product-main .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	position: relative;
	z-index: 1;
}

.sw-product-main .flex-control-thumbs li {
	margin: 0;
}

.sw-product-main .flex-control-thumbs img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--sw-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	opacity: 0.65;
	transition: opacity var(--sw-fast) ease, border-color var(--sw-fast) ease, transform var(--sw-fast) ease;
}

.sw-product-main .flex-control-thumbs img:hover {
	opacity: 1;
	transform: translateY(-2px);
}

.sw-product-main .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--sw-red);
}

/* ==================================================================
   Resumen
   ================================================================== */

.sw-pd-kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

.sw-pd-cat,
.sw-pd-cat a {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sw-red);
	text-decoration: none;
}

.sw-pd-cat a:hover {
	color: var(--sw-red-dark);
}

.sw-pd-off,
.sw-pd-out {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.08em;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--sw-red);
	color: var(--sw-on-brand);
}

.sw-pd-out {
	background: var(--sw-grey-800);
}

.sw-product-main .product_title {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(30px, 3.4vw, 44px);
	line-height: 1.04;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	color: var(--sw-ink);
	margin: 0 0 12px;
}

/* Valoración media enlazada a las reseñas. El enlace baja entero a su
   propia línea en pantallas estrechas, en vez de partirse junto a las
   estrellas. */
.sw-product-main .woocommerce-product-rating {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 2px 10px;
	margin-bottom: 14px;
}

.sw-product-main .woocommerce-review-link {
	white-space: nowrap;
}

.sw-product-main .woocommerce-product-rating .star-rating {
	color: var(--sw-gold);
}

.sw-product-main .woocommerce-review-link {
	font-size: 14px;
	color: var(--sw-grey-500);
	text-decoration: none;
}

.sw-product-main .woocommerce-review-link:hover {
	color: var(--sw-ink);
	text-decoration: underline;
}

/* Precio: el actual manda, el anterior acompaña tachado. */
.sw-product-main .summary > p.price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 16px;
	font-family: var(--sw-head);
}

.sw-product-main .summary > p.price .woocommerce-Price-amount {
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 700;
	color: var(--sw-red);
}

.sw-product-main .summary > p.price del {
	order: -1;
	text-decoration: none;
}

.sw-product-main .summary > p.price del .woocommerce-Price-amount {
	font-size: clamp(17px, 1.8vw, 21px);
	font-weight: 500;
	color: var(--sw-grey-500);
	text-decoration: line-through;
}

.sw-product-main .summary > p.price ins {
	text-decoration: none;
}

.sw-product-main .woocommerce-product-details__short-description {
	font-size: 16px;
	line-height: 1.65;
	color: var(--sw-ink-2);
	margin-bottom: 18px;
}

/* Disponibilidad. */
.sw-product-main .stock {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0 0 14px;
}

.sw-product-main .stock.in-stock {
	color: var(--sw-green);
}

.sw-product-main .stock.in-stock::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--sw-green);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--sw-green) 14%, transparent);
}

.sw-product-main .stock.out-of-stock {
	color: var(--sw-red-dark);
}

/* ==================================================================
   Formulario de compra
   ================================================================== */

.sw-product-main form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 20px;
}

/* Cantidad con botones −/+ que añade product.js. */
.sw-product-main .sw-qty {
	display: flex;
	align-items: stretch;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-sm);
	overflow: hidden;
	background: #fff;
}

.sw-product-main .sw-qty-btn {
	width: 42px;
	border: 0;
	background: transparent;
	font-size: 20px;
	line-height: 1;
	color: var(--sw-ink);
	cursor: pointer;
	transition: background var(--sw-fast) ease;
}

.sw-product-main .sw-qty-btn:hover {
	background: var(--sw-grey-100);
}

.sw-product-main form.cart .quantity {
	display: flex;
}

.sw-product-main form.cart input.qty {
	width: 56px;
	border: 0;
	text-align: center;
	font-family: var(--sw-head);
	font-weight: 600;
	font-size: 17px;
	color: var(--sw-ink);
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
}

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

/* Botón principal. */
.sw-product-main form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 28px;
	border: 0;
	border-radius: var(--sw-radius-sm);
	background: var(--sw-red);
	color: var(--sw-on-brand);
	font-family: var(--sw-head);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: var(--sw-shadow-red);
	transition: background var(--sw-fast) ease, transform var(--sw-fast) ease, box-shadow var(--sw-fast) ease;
}

.sw-product-main form.cart .single_add_to_cart_button:hover {
	background: var(--sw-red-dark);
	transform: translateY(-2px);
}

.sw-product-main form.cart .single_add_to_cart_button:active {
	transform: translateY(0);
}

/* ==================================================================
   Fila de confianza y chips
   ================================================================== */

.sw-pd-usps {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 18px;
	margin: 0 0 20px;
	padding: 16px 18px;
	list-style: none;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius);
	background: var(--sw-grey-100);
}

.sw-pd-usps li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.sw-pd-usp-ic {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: #fff;
	color: var(--sw-red);
	box-shadow: var(--sw-shadow);
}

.sw-pd-usp-txt {
	font-size: 13.5px;
	font-weight: 500;
	color: var(--sw-ink-2);
	line-height: 1.35;
}

.sw-pd-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sw-pd-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1.5px solid var(--sw-grey-200);
	font-size: 13px;
	font-weight: 500;
	color: var(--sw-ink-2);
	text-decoration: none;
	background: #fff;
}

.sw-pd-chip > span {
	font-family: var(--sw-cond);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sw-grey-500);
	font-size: 12px;
}

.sw-pd-chip.is-link {
	transition: border-color var(--sw-fast) ease, color var(--sw-fast) ease, transform var(--sw-fast) ease;
}

.sw-pd-chip.is-link:hover {
	border-color: var(--sw-red);
	color: var(--sw-red);
	transform: translateY(-1px);
}

/* ==================================================================
   Pestañas: descripción, ficha técnica y reseñas
   ================================================================== */

.sw-product-main div.product .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: clamp(30px, 5vw, 56px);
}

.sw-product-main div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 0;
	padding: 6px;
	list-style: none;
	width: fit-content;
	border-radius: 999px;
	background: var(--sw-grey-100);
	border: 1.5px solid var(--sw-grey-200);
}

.sw-product-main div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
}

.sw-product-main div.product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	padding: 9px 20px;
	border-radius: 999px;
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sw-grey-500);
	text-decoration: none;
	transition: color var(--sw-fast) ease, background var(--sw-fast) ease, box-shadow var(--sw-fast) ease;
}

.sw-product-main div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--sw-ink);
}

.sw-product-main div.product .woocommerce-tabs ul.tabs li.active a {
	background: var(--sw-ink);
	color: #fff;
	box-shadow: var(--sw-shadow);
}

.sw-product-main div.product .woocommerce-tabs .panel {
	margin-top: 22px;
	padding: clamp(20px, 3vw, 34px);
	border-radius: var(--sw-radius-lg);
	border: 1.5px solid var(--sw-grey-200);
	background: #fff;
	box-shadow: var(--sw-shadow);
}

.sw-product-main div.product .woocommerce-tabs .panel > h2:first-of-type,
.sw-product-main .woocommerce-Reviews-title {
	font-family: var(--sw-head);
	font-weight: 700;
	font-size: clamp(20px, 2.2vw, 26px);
	text-transform: uppercase;
	color: var(--sw-ink);
	margin: 0 0 14px;
}

.sw-product-main div.product .woocommerce-tabs .panel p {
	line-height: 1.7;
	color: var(--sw-ink-2);
}

/* Tabla de información adicional. */
.sw-product-main table.woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
}

.sw-product-main table.woocommerce-product-attributes tr {
	border-bottom: 1px solid var(--sw-grey-200);
}

.sw-product-main table.woocommerce-product-attributes tr:last-child {
	border-bottom: 0;
}

.sw-product-main table.woocommerce-product-attributes th,
.sw-product-main table.woocommerce-product-attributes td {
	padding: 12px 10px;
	text-align: left;
	font-size: 15px;
}

.sw-product-main table.woocommerce-product-attributes th {
	font-family: var(--sw-cond);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sw-grey-500);
	width: 38%;
}

.sw-product-main table.woocommerce-product-attributes td {
	color: var(--sw-ink-2);
}

.sw-product-main table.woocommerce-product-attributes td p {
	margin: 0;
}

/* ==================================================================
   Reseñas
   ================================================================== */

.sw-product-main #reviews .commentlist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 14px;
}

.sw-product-main #reviews .commentlist > li {
	margin: 0;
	padding: 18px;
	border-radius: var(--sw-radius);
	border: 1.5px solid var(--sw-grey-200);
	background: var(--sw-grey-100);
}

.sw-product-main #reviews .comment_container {
	display: flex;
	gap: 14px;
}

.sw-product-main #reviews .comment_container > img.avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	flex: 0 0 auto;
}

.sw-product-main #reviews .comment-text {
	flex: 1;
}

.sw-product-main #reviews .comment-text .star-rating {
	color: var(--sw-gold);
	float: right;
}

.sw-product-main #reviews .meta {
	font-size: 14px;
	color: var(--sw-grey-500);
	margin: 0 0 6px;
}

.sw-product-main #reviews .meta strong {
	color: var(--sw-ink);
}

.sw-product-main #reviews .description p {
	margin: 0;
	line-height: 1.6;
}

/* Formulario de reseña. */
.sw-product-main #review_form_wrapper {
	margin-top: 22px;
}

.sw-product-main #reviews .comment-reply-title {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 17px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sw-ink);
	display: block;
	margin-bottom: 10px;
}

.sw-product-main #reviews .comment-form input[type="text"],
.sw-product-main #reviews .comment-form input[type="email"],
.sw-product-main #reviews .comment-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--sw-grey-200);
	border-radius: var(--sw-radius-sm);
	font: inherit;
	background: #fff;
	transition: border-color var(--sw-fast) ease;
}

.sw-product-main #reviews .comment-form input:focus,
.sw-product-main #reviews .comment-form textarea:focus {
	outline: none;
	border-color: var(--sw-ink);
}

.sw-product-main #reviews .comment-form .stars a {
	color: var(--sw-gold);
}

.sw-product-main #reviews .form-submit input[type="submit"] {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 26px;
	border: 0;
	border-radius: var(--sw-radius-sm);
	background: var(--sw-ink);
	color: #fff;
	font-family: var(--sw-head);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--sw-fast) ease, transform var(--sw-fast) ease;
}

.sw-product-main #reviews .form-submit input[type="submit"]:hover {
	background: var(--sw-red);
	transform: translateY(-2px);
}

/* ==================================================================
   Relacionados
   ================================================================== */

/* La ficha es una rejilla de dos columnas (galería + resumen). Sin esto la
   sección caía dentro de una sola columna y las tarjetas salían
   estranguladas a media pantalla. */
.sw-pd-related {
	grid-column: 1 / -1;

	/* Banda a ancho completo: se sale del contenedor de la ficha y ocupa
	   todo el viewport. El recorte de <html> evita la barra horizontal
	   cuando 100vw incluye el ancho de la barra de desplazamiento. */
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	margin-top: clamp(48px, 7vw, 92px);
	padding-block: clamp(44px, 6vw, 78px);
	padding-inline: clamp(20px, 5vw, 40px);

	background:
		radial-gradient(70% 100% at 50% 0%, color-mix(in srgb, var(--sw-red) 5%, transparent), transparent 62%),
		var(--sw-grey-100);
	border-top: 1px solid var(--sw-grey-200);
}

/* El contenido se vuelve a alinear con el resto del sitio. */
.sw-pd-related > * {
	max-width: var(--sw-maxw, 1440px);
	margin-inline: auto;
}

.sw-rel-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 26px);
	margin-top: clamp(24px, 3vw, 36px);
}

@media (max-width: 1100px) {
	.sw-rel-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* La cuarta se oculta: con tres columnas quedaría sola en su fila. */
	.sw-rel-grid > *:nth-child(4) {
		display: none;
	}
}

@media (max-width: 780px) {
	.sw-rel-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	/* Con dos columnas vuelven a caber las cuatro, en dos filas. */
	.sw-rel-grid > *:nth-child(4) {
		display: block;
	}
}

/* El respiro inferior de la ficha vivía como estilo en línea en la plantilla,
   donde ganaba a cualquier hoja y no se podía anular. Ahora vive aquí, y la
   banda de relacionados —que ya trae el suyo— lo retira para pegarse al pie
   sin dejar una franja blanca. */
.sw-product-main {
	padding-bottom: clamp(36px, 5vw, 60px);
}

.sw-product-main:has(.sw-pd-related) {
	padding-bottom: 0;
}

.wp-site-blocks:has(.sw-product-main .sw-pd-related) > footer {
	margin-block-start: 0;
}

/* ==================================================================
   Barra de compra fija
   ================================================================== */

/* Panel animado: gestiona su propia visibilidad, fuera de la regla [hidden]. */
.sw-buybar {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	z-index: 240;
	background: color-mix(in srgb, var(--sw-ink) 96%, transparent);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-top: 2px solid var(--sw-red);
	transform: translateY(105%);
	transition: transform 0.4s var(--sw-ease);
}

.sw-buybar.is-visible {
	transform: translateY(0);
}

.sw-buybar-inner {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-block: 10px;
}

.sw-buybar-img {
	width: 48px;
	height: 48px;
	border-radius: var(--sw-radius-sm);
	object-fit: cover;
	flex: 0 0 auto;
}

.sw-buybar-info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.sw-buybar-name {
	font-family: var(--sw-cond);
	font-weight: 600;
	font-size: 15px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sw-buybar-price,
.sw-buybar-price .woocommerce-Price-amount {
	font-family: var(--sw-head);
	font-weight: 600;
	font-size: 15px;
	color: var(--sw-red-light);
}

.sw-buybar-price del {
	display: none;
}

.sw-buybar .sw-btn {
	flex: 0 0 auto;
}

/* ==================================================================
   Responsive
   ================================================================== */

@media (max-width: 900px) {
	.sw-product-main div.product {
		grid-template-columns: 1fr;
	}

	/* La rejilla de relacionados tiene sus propios cortes (1100 y 780 px)
	   junto a su bloque. La regla que había aquí los pisaba por venir
	   después en el archivo y dejaba dos columnas en tableta. */
}

@media (max-width: 560px) {
	.sw-pd-usps {
		grid-template-columns: 1fr;
	}

	.sw-product-main form.cart .single_add_to_cart_button {
		width: 100%;
	}

	.sw-product-main .flex-control-thumbs {
		grid-template-columns: repeat(4, 1fr);
	}

	.sw-buybar-img {
		display: none;
	}
}

/* ==================================================================
   Detalles de vida: pulso de disponibilidad y brillo del botón
   ================================================================== */

@keyframes sw-stock-pulse {
	0%, 100% {
		box-shadow: 0 0 0 4px color-mix(in srgb, var(--sw-green) 14%, transparent);
	}

	50% {
		box-shadow: 0 0 0 7px color-mix(in srgb, var(--sw-green) 6%, transparent);
	}
}

.sw-product-main .stock.in-stock::before {
	animation: sw-stock-pulse 2.4s ease-in-out infinite;
}

/* Barrido de luz al pasar por el botón principal. */
.sw-product-main form.cart .single_add_to_cart_button {
	position: relative;
	overflow: hidden;
}

.sw-product-main form.cart .single_add_to_cart_button::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 35%, rgb(255 255 255 / 28%) 50%, transparent 65%);
	transform: translateX(-120%);
}

.sw-product-main form.cart .single_add_to_cart_button:hover::after {
	transition: transform 0.7s ease;
	transform: translateX(120%);
}

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

	.sw-product-main form.cart .single_add_to_cart_button::after {
		display: none;
	}
}
