/*
 * SKATE INSTITUTION — Single product page.
 * Gallery-led 7/5 layout derived from desings/single_product.html.
 */

/*
 * La página de producto usa todo el ancho de la pantalla, a diferencia del
 * resto del sitio: NO se aplica el tope de `--skc-max-width` (1440px), que en
 * un monitor de 1920 dejaba ~480px de margen muerto. El padding lateral se
 * conserva para que el contenido no toque el borde.
 *
 * `--skc-max-width` sigue vigente en home, carrito y archivo — acá se saca a
 * propósito, no por olvido.
 */
.skc-single-product {
	display: block;
	width: 100%;
	margin-inline: auto;
	padding: var(--skc-lg) var(--skc-margin-mobile) 0;
	box-sizing: border-box;
	overflow-x: clip;
}

/*
 * `.content-area` es del theme padre y es un flex item con `flex-basis: auto`
 * y sin grow: por defecto se dimensiona al contenido, así que un paso angosto
 * del configurador (por ejemplo el de armado, con dos cards) achicaba toda la
 * página. `flex: 1` la hace llenar el espacio disponible.
 *
 * El `min-width: 0` es lo que permite que TAMBIÉN se achique: sin él, el ancho
 * intrínseco del carrusel de piezas (hasta 22 cards, ~4000px) la inflaba y el
 * `overflow-x: clip` de arriba recortaba el contenido en mobile.
 *
 * Scopeado con `.single-product` (clase que agrega WooCommerce al body) para
 * no tocar el resto del sitio.
 */
.single-product .content-area {
	flex: 1;
	min-width: 0;
}

.skc-breadcrumb {
	margin: 0 0 var(--skc-lg);
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-label-md);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--skc-secondary);
}

.skc-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.skc-breadcrumb a:hover,
.skc-breadcrumb a:focus-visible {
	color: var(--skc-primary);
}

.skc-single-product__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--skc-xl);
	align-items: start;
	width: 100%;
	min-width: 0;
}

.skc-gallery,
.skc-summary {
	width: 100%;
	min-width: 0;
}

/* Override WC core summary rule (specificity 0,3,2) that ships with width: 48%.
   Keeps WC's float: right / clear: none so the layout still floats alongside the gallery,
   but forces the summary to take the full row width to match our grid layout. */
.woocommerce div.product div.summary,
.woocommerce-page div.product div.summary,
.woocommerce #content div.product div.summary,
.woocommerce-page #content div.product div.summary {
	float: right;
	width: 100%;
	clear: none;
}

.skc-gallery {
	display: flex;
	flex-direction: column;
	gap: var(--skc-sm);
	min-width: 0;
}

.skc-gallery__thumbs {
	display: flex;
	order: 2;
	gap: var(--skc-sm);
	width: 100%;
	overflow-x: auto;
	scrollbar-width: none;
}

.skc-gallery__thumbs::-webkit-scrollbar {
	display: none;
}

.skc-gallery__thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--skc-xl);
	min-width: var(--skc-xl);
	padding: var(--skc-xs);
	border: 1px solid var(--skc-surface-container-highest);
	background: var(--skc-surface-bright);
	aspect-ratio: 3 / 4;
	cursor: pointer;
	transition: border-color var(--skc-transition);
}

.skc-gallery__thumb.is-active {
	border: 2px solid var(--skc-primary);
}

.skc-gallery__thumb:focus-visible {
	outline: 2px solid var(--skc-primary);
	outline-offset: 2px;
}

.skc-gallery__thumb-img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.skc-gallery__main {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	padding: var(--skc-lg);
	box-sizing: border-box;
	background: var(--skc-surface-bright);
	border: 1px solid var(--skc-surface-container-highest);
	aspect-ratio: 3 / 4;
	overflow: hidden;
}

.skc-gallery__main-img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	transition: opacity 180ms ease, transform var(--skc-transition-slow);
}

.skc-gallery__main:hover .skc-gallery__main-img {
	transform: scale(1.025);
}

.skc-gallery__main-img.is-switching {
	opacity: 0;
}

.skc-summary__sticky {
	display: flex;
	flex-direction: column;
	gap: var(--skc-md);
	width: 100%;
	min-width: 0;
}

.skc-summary__header {
	display: flex;
	flex-direction: column;
	gap: var(--skc-xs);
}

.skc-summary__cat,
.skc-summary__sku {
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-label-md);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--skc-secondary);
}

.skc-summary__cat {
	font-weight: 600;
}

.skc-summary__title {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-display-lg);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--skc-primary);
}

.skc-summary__price {
	margin: var(--skc-xs) 0 0;
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-headline-md);
	font-weight: 700;
	line-height: 1;
}

.skc-summary__price,
.skc-summary__price .amount,
.skc-summary__price .woocommerce-Price-amount,
.skc-summary__price .woocommerce-Price-currencySymbol {
	color: var(--skc-primary);
}

.skc-summary__excerpt {
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-body-lg);
	line-height: 1.5;
	color: var(--skc-secondary);
}

.skc-summary__excerpt > :first-child,
.skc-summary__excerpt > :last-child {
	margin-top: 0;
	margin-bottom: 0;
}

.skc-add-to-cart,
.skc-single-product .variations_form.cart {
	display: flex;
	flex-direction: column;
	gap: var(--skc-sm);
	margin: 0;
}

.skc-add-to-cart .quantity,
.skc-product__variation-summary .quantity {
	display: flex;
	align-items: center;
}

.skc-add-to-cart .quantity .qty,
.skc-product__variation-summary .quantity .qty {
	width: 88px;
	height: 52px;
	padding: 0 var(--skc-sm);
	border: 2px solid var(--skc-primary);
	background: var(--skc-on-primary);
	color: var(--skc-primary);
	font: 600 var(--skc-body-md) 'Inter', sans-serif;
	text-align: center;
	-moz-appearance: textfield;
}

.skc-add-to-cart .quantity .qty::-webkit-outer-spin-button,
.skc-add-to-cart .quantity .qty::-webkit-inner-spin-button,
.skc-product__variation-summary .quantity .qty::-webkit-outer-spin-button,
.skc-product__variation-summary .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.skc-single-product .skc-add-to-cart .single_add_to_cart_button.button.alt,
.skc-single-product .skc-product__variation-summary .single_add_to_cart_button.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 0 var(--skc-md);
	border: 2px solid var(--skc-primary);
	border-radius: 0;
	background: var(--skc-primary);
	color: var(--skc-on-primary);
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-body-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: none;
	cursor: pointer;
	transition: background-color var(--skc-transition), color var(--skc-transition), opacity var(--skc-transition);
}

.skc-single-product .skc-add-to-cart .single_add_to_cart_button.button.alt:hover,
.skc-single-product .skc-add-to-cart .single_add_to_cart_button.button.alt:focus-visible,
.skc-single-product .skc-product__variation-summary .single_add_to_cart_button.button.alt:hover,
.skc-single-product .skc-product__variation-summary .single_add_to_cart_button.button.alt:focus-visible {
	background: var(--skc-on-primary);
	color: var(--skc-primary);
}

.skc-single-product .single_add_to_cart_button.disabled,
.skc-single-product .single_add_to_cart_button:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.skc-product__variation-summary .woocommerce-variation-add-to-cart {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--skc-sm);
	align-items: center;
}

.skc-add-to-cart .stock,
.skc-product__variation-summary .stock {
	display: inline-block;
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-label-md);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.skc-details {
	display: flex;
	flex-direction: column;
	margin-top: var(--skc-md);
	border-top: 1px solid var(--skc-surface-container-highest);
}

.skc-details__item {
	border-bottom: 1px solid var(--skc-surface-container-highest);
}

.skc-details__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--skc-md) 0;
	cursor: pointer;
	list-style: none;
}

.skc-details__item summary::-webkit-details-marker {
	display: none;
}

.skc-details__item summary:focus-visible {
	outline: 2px solid var(--skc-primary);
	outline-offset: 2px;
}

.skc-details__item summary .skc-label-md {
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-label-md);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.skc-details__icon {
	font-size: var(--skc-headline-md);
	transition: transform var(--skc-transition);
}

.skc-details__item[open] .skc-details__icon {
	transform: rotate(180deg);
}

.skc-details__body {
	padding: 0 0 var(--skc-md);
	color: var(--skc-secondary);
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-body-md);
	line-height: 1.6;
}

.skc-details__body > :first-child {
	margin-top: 0;
}

.skc-details__body > :last-child {
	margin-bottom: 0;
}

.skc-details__body table.shop_attributes {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.skc-details__body table.shop_attributes th,
.skc-details__body table.shop_attributes td {
	padding: var(--skc-xs) 0;
	border-bottom: 1px solid var(--skc-surface-container-highest);
	background: transparent;
	font-family: inherit;
	font-size: var(--skc-body-md);
	color: var(--skc-primary);
}

.skc-details__body table.shop_attributes th {
	width: 40%;
	color: var(--skc-secondary);
}

.skc-related {
	margin-top: var(--skc-xl);
	padding-top: var(--skc-xl);
	border-top: 2px solid var(--skc-primary);
}

.skc-related__head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: var(--skc-md);
	margin-bottom: var(--skc-lg);
}

.skc-related__title {
	margin: 0 0 var(--skc-xs);
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-headline-lg);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}

.skc-related__subtitle {
	margin: 0;
	color: var(--skc-secondary);
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-label-md);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.skc-related__all {
	padding-bottom: var(--skc-xs);
	border-bottom: 2px solid var(--skc-primary);
	color: var(--skc-primary);
	font-family: 'Inter', sans-serif;
	font-size: var(--skc-label-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-decoration: none;
}

.skc-related__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--skc-gutter);
}

@media (min-width: 768px) {
	.skc-single-product {
		padding: var(--skc-lg) var(--skc-margin-desktop) 0;
	}

	.skc-single-product__grid {
		grid-template-columns: minmax(0, 7fr) minmax(360px, 5fr);
	}

	.skc-gallery {
		flex-direction: row;
	}

	.skc-gallery__main {
		flex: 1 1 auto;
	}

	.skc-gallery__thumbs {
		order: 0;
		flex-direction: column;
		width: 15%;
		max-height: 720px;
		overflow-x: hidden;
		overflow-y: auto;
	}

	.skc-summary__sticky {
		position: sticky;
		top: calc(var(--skc-header-height) + var(--skc-lg));
	}

	.skc-related__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.skc-related__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.skc-single-product {
		padding-top: var(--skc-md);
	}

	.skc-breadcrumb {
		margin-bottom: var(--skc-md);
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.skc-single-product__grid {
		gap: var(--skc-lg);
	}

	.skc-gallery__main {
		padding: var(--skc-sm);
		aspect-ratio: 4 / 5;
	}

	.skc-summary__title {
		overflow-wrap: anywhere;
	}

	.skc-related {
		margin-top: var(--skc-lg);
		padding-top: var(--skc-lg);
	}
}

@media (max-width: 480px) {
	.skc-product__variation-summary .woocommerce-variation-add-to-cart {
		grid-template-columns: 1fr;
	}

	.skc-add-to-cart .quantity .qty,
	.skc-product__variation-summary .quantity .qty {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.skc-gallery__main-img,
	.skc-details__icon {
		transition: none;
	}

	.skc-gallery__main:hover .skc-gallery__main-img {
		transform: none;
	}
}
