/* ==========================================================================
   Más Ofertas · ficha de producto
   ========================================================================== */

.mo-main--shop .product { margin-top: 16px; }

.single-product div.product {
	display: grid;
	gap: 20px;
}

/* --- Galería ------------------------------------------------------------ */
.mo-gallery { position: relative; }
.mo-gallery__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 100%;
	gap: 8px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	border-radius: var(--mo-radius);
	-webkit-overflow-scrolling: touch;
}
.mo-gallery__track::-webkit-scrollbar { display: none; }
.mo-gallery__slide {
	scroll-snap-align: center;
	border-radius: var(--mo-radius);
	overflow: hidden;
	background: var(--mo-gray-50);
	border: 1px solid var(--mo-gray-200);
}
.mo-gallery__img, .mo-gallery__slide img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: var(--mo-white);
}

.mo-gallery__dots { display: flex; justify-content: center; gap: 6px; margin-top: 10px; }
.mo-gallery__dot {
	width: 8px; height: 8px;
	padding: 0; border: 0;
	border-radius: 999px;
	background: var(--mo-gray-200);
	cursor: pointer;
	transition: width .2s ease, background-color .2s ease;
}
.mo-gallery__dot.is-active { width: 22px; background: var(--mo-red); }

.mo-gallery__thumbs { display: none; }

/* --- Resumen ------------------------------------------------------------ */
.single-product .product_title { font-size: 22px; margin: 0 0 10px; }

.mo-single__pricebox {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 4px;
}
.mo-single__price .price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0; }
.mo-single__price .amount {
	font-family: var(--mo-display);
	font-size: 30px;
	color: var(--mo-red);
	line-height: 1.1;
}
.mo-single__price del {
	order: 2;
	font-family: var(--mo-font);
	font-size: 16px;
	font-weight: 500;
	color: var(--mo-muted);
	opacity: 1;
}
.mo-single__price del .amount { font-family: var(--mo-font); font-size: 16px; color: var(--mo-muted); }
.mo-single__price ins { order: 1; text-decoration: none; background: none; }
.mo-single__price .woocommerce-Price-currencySymbol { font-size: .75em; }

.single-product .mo-installments { font-size: 14px; margin-bottom: 10px; }
.single-product .mo-stock--single { font-size: 14px; margin-bottom: 14px; }

.woocommerce-product-details__short-description {
	color: var(--mo-ink-soft);
	font-size: 15px;
	margin-bottom: 16px;
}

/* --- Comprar ------------------------------------------------------------ */
.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 8px;
}
.single-product form.cart .mo-qty { flex: none; }
.single-product form.cart .single_add_to_cart_button {
	flex: 1 1 200px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 12px 22px;
	border: 0;
	border-radius: var(--mo-radius-sm);
	background: var(--mo-red);
	color: var(--mo-white);
	font-family: var(--mo-font);
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s ease;
}
.single-product form.cart .single_add_to_cart_button:hover { background: var(--mo-red-dark); }
.single-product form.cart .single_add_to_cart_button.disabled { background: var(--mo-gray-100); color: var(--mo-muted); cursor: not-allowed; }
.single-product form.cart .mo-qty__max { flex-basis: 100%; }

.single-product .variations { width: 100%; border-collapse: collapse; }
.single-product .variations th, .single-product .variations td { display: block; text-align: left; padding: 0 0 8px; }
.single-product .variations label { font-weight: 600; font-size: 14px; }
.single-product .variations select {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 2px solid var(--mo-gray-200);
	border-radius: var(--mo-radius-sm);
	font: inherit;
	background: var(--mo-white);
}
.single-product .woocommerce-variation-price .amount { font-family: var(--mo-display); font-size: 24px; color: var(--mo-red); }
.single-product .reset_variations { font-size: 13px; color: var(--mo-muted); }

.mo-anchor { height: 1px; }

/* --- Entrega: una sola línea, el detalle va en la ventana ---------------- */
.mo-delivery {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 14px 0;
	padding: 10px 12px;
	border: 1px solid var(--mo-gray-200);
	border-radius: var(--mo-radius-sm);
	background: var(--mo-gray-50);
	font-size: 14px;
	line-height: 1.35;
}
.mo-delivery__icon { color: var(--mo-red); flex: none; line-height: 0; }
.mo-delivery__text { flex: 1; min-width: 0; }
.mo-delivery__text strong { color: var(--mo-green); }
.mo-delivery__text .amount { font-weight: 600; }
.mo-delivery__more {
	flex: none;
	padding: 2px 4px;
	border: 0;
	background: none;
	color: var(--mo-red);
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.mo-delivery__more:hover { color: var(--mo-red-dark); }

.mo-btn--wa { width: 100%; }

/* --- Beneficios con ventana --------------------------------------------- */
.mo-benefits {
	display: grid;
	gap: 8px;
	margin: 18px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--mo-gray-200);
	list-style: none;
}
.mo-benefit {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid var(--mo-gray-200);
	border-radius: var(--mo-radius-sm);
	background: var(--mo-white);
	text-align: left;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}
.mo-benefit:hover { border-color: var(--mo-red); background: var(--mo-red-soft); }
.mo-benefit > svg:first-child { color: var(--mo-red); flex: none; }
.mo-benefit__title { flex: 1; font-size: 14px; font-weight: 600; }
.mo-benefit > svg:last-child { color: var(--mo-muted); flex: none; }

/* --- Ventanas de detalle ------------------------------------------------- */
.mo-modal {
	width: min(94vw, 460px);
	max-height: 86vh;
	padding: 0;
	border: 0;
	border-radius: var(--mo-radius);
	background: var(--mo-white);
	color: var(--mo-ink);
	box-shadow: 0 10px 50px rgba(26, 26, 26, .25);
	overflow: visible;
}
.mo-modal::backdrop { background: rgba(26, 26, 26, .55); }
.mo-modal__box { display: flex; flex-direction: column; max-height: 86vh; }
.mo-modal__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 16px 16px 12px;
	border-bottom: 1px solid var(--mo-gray-200);
}
.mo-modal__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex: none;
	border-radius: 999px;
	background: var(--mo-red-soft);
	color: var(--mo-red);
}
.mo-modal__title { flex: 1; margin: 0; font-size: 18px; }
.mo-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	flex: none;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--mo-gray-100);
	cursor: pointer;
}
.mo-modal__close:hover { background: var(--mo-gray-200); }
.mo-modal__body {
	padding: 16px;
	overflow-y: auto;
	font-size: 15px;
	line-height: 1.55;
	color: var(--mo-ink-soft);
}
.mo-modal__body p { margin: 0 0 12px; }
.mo-modal__body p:last-child { margin-bottom: 0; }
.mo-modal__body strong { color: var(--mo-ink); }
.mo-modal__body .amount { font-family: var(--mo-display); color: var(--mo-ink); }
.mo-modal__free { color: var(--mo-green); font-weight: 600; }
.mo-modal__free .amount { color: var(--mo-green); }
.mo-modal__note { color: var(--mo-muted); font-size: 14px; }

/* --- Acordeón ----------------------------------------------------------- */
.mo-accordion { margin: 26px 0; border-top: 1px solid var(--mo-gray-200); }
.mo-accordion__item { border-bottom: 1px solid var(--mo-gray-200); }
.mo-accordion__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 2px;
	font-family: var(--mo-display);
	font-size: 16px;
	cursor: pointer;
	list-style: none;
}
.mo-accordion__head::-webkit-details-marker { display: none; }
.mo-accordion__head svg { flex: none; transition: transform .2s ease; color: var(--mo-red); }
.mo-accordion__item[open] .mo-accordion__head svg { transform: rotate(180deg); }
.mo-accordion__body { padding: 0 2px 20px; }

/* --- Barra fija de compra ----------------------------------------------- */
.mo-sticky-atc {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 85;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
	background: var(--mo-white);
	border-top: 1px solid var(--mo-gray-200);
	box-shadow: 0 -4px 20px rgba(26, 26, 26, .1);
	transform: translateY(110%);
	transition: transform .22s ease;
}
.mo-sticky-atc.is-visible { transform: translateY(0); }
.mo-sticky-atc__info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.mo-sticky-atc__name {
	font-size: 13px;
	color: var(--mo-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.mo-sticky-atc__price { font-family: var(--mo-display); font-size: 17px; }
.mo-sticky-atc__price del { display: none; }
.mo-sticky-atc__price ins { text-decoration: none; background: none; color: var(--mo-red); }
.mo-sticky-atc__btn { flex: none; min-width: 140px; }

@media (min-width: 768px) {
	.single-product div.product {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
		gap: 40px;
		align-items: start;
	}
	.single-product div.product > .mo-gallery { grid-row: span 2; }
	.single-product .summary { margin: 0; }
	.single-product .product_title { font-size: 30px; }
	.mo-accordion, .related { grid-column: 1 / -1; }

	.mo-gallery__thumbs {
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		gap: 8px;
		margin-top: 10px;
	}
	.mo-gallery__thumbs button {
		display: block;
		width: 100%;
		padding: 0;
		border: 2px solid var(--mo-gray-200);
		border-radius: var(--mo-radius-sm);
		background: var(--mo-white);
		overflow: hidden;
		cursor: pointer;
		aspect-ratio: 1 / 1;
	}
	.mo-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
	.mo-gallery__thumb.is-active { border-color: var(--mo-red); }
	.mo-gallery__dots { display: none; }

	.mo-btn--wa { width: auto; }
	.mo-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mo-sticky-atc { display: none !important; }
}
