/*
 * Ficha de producto.
 */

.or-pdp-wrap { padding-top: 20px; padding-bottom: 32px; }
.or-pdp { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: start; }
.or-pdp__summary { display: flex; flex-direction: column; gap: 20px; }

/* Galería */
.or-gallery { display: flex; flex-direction: column; gap: 12px; }
.or-gallery__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; border-radius: 20px; scrollbar-width: none; }
.or-gallery__track::-webkit-scrollbar { display: none; }
.or-gallery__slide { flex: 0 0 100%; scroll-snap-align: start; border-radius: 20px; }
.or-gallery__thumbs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.or-gallery__thumbs::-webkit-scrollbar { display: none; }
.or-gallery__thumb { flex: 0 0 64px; width: 64px; height: 64px; border-radius: var(--or-r-sm); overflow: hidden; border: 1.5px solid var(--or-line); }
.or-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.or-gallery__thumb.is-active { border-color: var(--or-ink); }

/* Cabecera */
.or-pdp__head { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.or-pdp__title { margin: 0; font-size: 28px; line-height: 1.15; font-weight: 800; }
.or-pdp__short p { margin: 0; color: var(--or-muted); }
.or-pdp__rating { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: var(--or-ink); text-decoration: none; min-height: 32px; }

/* Precios */
.or-pricegrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: 1px solid #ECE4E1; padding: 18px 0; }
.or-pricegrid.is-single { grid-template-columns: minmax(0, 1fr); }
.or-pricegrid > div { display: flex; flex-direction: column; gap: 4px; padding: 0 16px; }
.or-pricegrid > div:first-child { padding-left: 0; }
.or-pricegrid > div + div { border-left: 1px solid #ECE4E1; }
.or-pricegrid__main, .or-pricegrid__transfer { font-size: 24px; font-weight: 800; }
.or-pricegrid__transfer { color: var(--or-coral-deep); }
.or-pricegrid__note { font-size: var(--or-fs-sm); color: var(--or-muted); }

/* Formulario de compra */
form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 0; }
form.cart .or-btn, form.cart .single_add_to_cart_button { flex: 1 1 200px; }
form.cart.or-buyform { flex-direction: column; align-items: stretch; gap: 16px; }
.or-buyform__row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.or-sizes { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.or-sizes__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.or-sizes legend { padding: 0; float: left; }
.or-sizes__guide { font-size: var(--or-fs-xs); }
.or-sizes__opts { display: flex; flex-wrap: wrap; gap: 8px; clear: both; }
.or-sizes__err { margin: 0; color: var(--or-error); font-size: var(--or-fs-xs); font-weight: 600; }
.or-buynow { flex: 1 1 100%; }
.stock.out-of-stock { color: var(--or-error); font-weight: 600; }

/* Caja de información */
.or-infobox { border: 1px solid #ECE4E1; border-radius: 12px; }
.or-infobox > div { display: flex; gap: 16px; padding: 18px 20px; align-items: flex-start; }
.or-infobox > div + div { border-top: 1px solid #ECE4E1; }
.or-infobox svg { flex: none; margin-top: 2px; color: var(--or-coral-deep); }
.or-infobox > div > span { display: flex; flex-direction: column; }
.or-infobox > div > span > span { color: var(--or-muted); }
.or-countdown { display: inline-flex; align-self: flex-start; margin-top: 10px; padding: 8px 12px; border-radius: 8px; background: #FBEDEA; color: #8E2F1C !important; font-weight: 700; font-size: var(--or-fs-sm); }

/* Guía de talles dentro del acordeón */
.or-guide p { margin: 10px 0; }
.or-guide__table { width: 100%; border-collapse: collapse; font-size: var(--or-fs-sm); }
.or-guide__table th, .or-guide__table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--or-line); }
.or-guide__table thead th { font-size: var(--or-fs-xs); color: var(--or-violet); text-transform: uppercase; letter-spacing: 0.06em; }

/* Relacionados y reseñas */
.related.products { padding-top: 56px; }
.related.products > h2 { margin: 0 0 24px; font-size: var(--or-fs-xl); font-weight: 800; }
.or-pdp-wrap .or-reviews { padding-inline: 0; }

/* Barra fija de compra (móvil) */
.or-buybar {
	/* Fija y no sticky: sticky se soltaba al terminar la ficha y en el pie la
	 * barra desaparecía mientras WhatsApp seguía corrido hacia arriba. */
	display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; background: var(--or-white); border-top: 1px solid var(--or-line);
	padding: 12px 16px; gap: 12px; align-items: center; box-shadow: 0 -8px 20px rgb(17 17 17 / 0.06);
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s;
}
/* Mientras el formulario de compra está en pantalla, la barra sobra. */
.or-buybar.is-off { transform: translateY(110%); opacity: 0; pointer-events: none; }
.or-buybar__size { color: var(--or-coral-deep); font-weight: 700; }
.or-buybar__size:not(:empty)::before { content: " · "; color: var(--or-muted-2); font-weight: 400; }
.or-buybar__info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.or-buybar__name { font-size: var(--or-fs-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (min-width: 961px) {
	.or-pdp-wrap { padding-top: 24px; padding-bottom: 64px; }
	.or-pdp { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; }
	.or-pdp__media { position: sticky; top: calc(var(--or-hdr-h) + 24px); }
	.or-pdp__title { font-size: var(--or-fs-h2); }
	.or-pricegrid__main, .or-pricegrid__transfer { font-size: 28px; }
	.or-pricegrid > div { padding: 0 20px; }
	.or-buybar { display: none; }
	.or-buynow { flex: 1 1 200px; }
	.related.products { padding-top: 88px; }
}


/* ---------- Ficha en móvil ---------- */

@media (max-width: 960px) {
	/* Los 6 talles en una sola fila, a todo el ancho (antes el 21 caía solo
	 * a una segunda fila). */
	.or-sizes__opts { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
	.or-sizes__opts .or-sz { width: 100%; }

	/* Cantidad y «Agregar» en la misma fila; «Comprar ahora» debajo. */
	form.cart .single_add_to_cart_button { flex: 1 1 140px; }
	.or-buynow { flex-basis: 100%; }
	.or-pdp__summary { gap: 18px; }
	/* Espacio para que la barra fija no tape el final del pie. */
	.single-product .or-foot > .or-wrap { padding-bottom: 120px; }
}
