/* =========================================================
 * Single product Sugar Sun
 * Layout: info (izq) | imagen + 3 stickers giratorios (der)
 * ========================================================= */

.ss-single {
	background: transparent;
	padding: 60px 0 0;
	font-family: var(--OZ-Font-Base, Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
}

.ss-single__container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}

/* =========================================================
 *  Entrada al cargar: fade + slide-up, escalonado.
 * ========================================================= */
.ss-single__title,
.ss-single__price,
.ss-single__chips,
.ss-single__spec,
.ss-single__desc,
.ss-single__cta-row {
	opacity: 0;
	transform: translateY(20px);
	animation: ss-rise .7s cubic-bezier(.2, .8, .25, 1) forwards;
}
.ss-single__title     { animation-delay: .05s; }
.ss-single__price    { animation-delay: .15s; }
.ss-single__chips    { animation-delay: .25s; }
.ss-single__spec     { animation-delay: .30s; }
.ss-single__desc     { animation-delay: .35s; }
.ss-single__cta-row  { animation-delay: .45s; }

.ss-single__media {
	opacity: 0;
	transform: translateY(30px) scale(.95);
	animation: ss-rise-scale 1s cubic-bezier(.2, .8, .25, 1) forwards;
	animation-delay: .2s;
}

@keyframes ss-rise {
	to { opacity: 1; transform: translateY(0); }
}
@keyframes ss-rise-scale {
	to { opacity: 1; transform: translateY(0) scale(1); }
}

/* =========================================================
 *  Columna izquierda: info
 * ========================================================= */
.ss-single__info {
	min-width: 0;
}

.ss-single__title {
	margin: 0 0 16px;
	font-size: clamp(32px, 4.5vw, 64px);
	font-weight: 900;
	line-height: 1.02;
	color: #111;
	text-transform: uppercase;
	letter-spacing: -.01em;
}

/* Precio en estilo H2 con la tipografía Venice Blvd (display de marca),
   tamaño grande (~49pt ≈ 65px), color magenta. Todo el bloque ("S/15")
   va en un solo renglón con peso máximo. */
.ss-single__price {
	display: block;
	margin: 0 0 28px;
	font-family: "venice-blvd", "Venice Blvd", var(--OZ-Font-Display, Inter, system-ui, sans-serif);
	font-size: 65px;             /* ~49pt */
	font-weight: 900;
	color: #C8147C;
	line-height: 1;
	letter-spacing: -.02em;
	text-transform: uppercase;
	font-style: normal;
}
.ss-single__price .woocommerce-Price-amount,
.ss-single__price bdi {
	color: inherit;
	font: inherit;
}
/* Símbolo de moneda al mismo tamaño y peso (sin superíndice). */
.ss-single__price .woocommerce-Price-currencySymbol {
	font: inherit;
	margin-right: 0;
}
/* Precio rebajado: tachado en gris a la izquierda, más pequeño. */
.ss-single__price del {
	font-size: .5em;
	opacity: .45;
	font-weight: 800;
	margin-right: 14px;
	color: #555;
	vertical-align: middle;
}
.ss-single__price ins {
	text-decoration: none;
	background: transparent;
}

/* Responsive: en móvil reducimos el precio para que no domine el ancho. */
@media (max-width: 768px) {
	.ss-single__price { font-size: 52px; }
}
@media (max-width: 480px) {
	.ss-single__price { font-size: 44px; }
}

/* Chips: viñetas con check naranja, alineadas al texto. */
.ss-single__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 28px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.ss-single__chips li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 600;
	color: #111;
	transition: transform .25s ease;
	list-style: none;
}
.ss-single__chips li::marker { content: ""; } /* por si algún UA fuerza marker */

/* Disco naranja con check blanco (SVG inline como background) */
.ss-single__chips li::before {
	content: "";
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 7.5 6 10 11 4.5'/%3E%3C/svg%3E")
		center / 60% no-repeat,
		#FA5808;
	transition: background-color .25s ease, transform .25s ease;
}

.ss-single__chips li:hover { transform: translateX(4px); }
.ss-single__chips li:hover::before {
	background-color: #C8147C;
	transform: scale(1.1);
}

/* Especificación tipo "Contenido | 10ML" en una fila con borde */
.ss-single__spec {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 0;
	margin: 0 0 18px;
	border-top: 1px solid rgba(0, 0, 0, .12);
	border-bottom: 1px solid rgba(0, 0, 0, .12);
	font-size: 15px;
}
.ss-single__spec-label { font-weight: 600; color: #111; }
.ss-single__spec-value { font-weight: 800; color: #111; }

.ss-single__desc {
	margin: 0 0 28px;
	font-size: 15px;
	line-height: 1.6;
	color: #333;
	max-width: 560px;
}
.ss-single__desc p { margin: 0 0 .8em; }
.ss-single__desc p:last-child { margin-bottom: 0; }
.ss-single__desc strong { color: #111; font-weight: 800; }

/* Listas dentro de la descripción corta: chips con check naranja
   (mismo estilo que .ss-single__chips). */
.ss-single__desc ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}
.ss-single__desc ul li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 600;
	color: #111;
	list-style: none;
	transition: transform .25s ease;
}
.ss-single__desc ul li::before {
	content: "";
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 7.5 6 10 11 4.5'/%3E%3C/svg%3E")
		center / 60% no-repeat,
		#FA5808;
	transition: background-color .25s ease, transform .25s ease;
}
.ss-single__desc ul li:hover { transform: translateX(4px); }
.ss-single__desc ul li:hover::before {
	background-color: #C8147C;
	transform: scale(1.1);
}

/* CTAs */
.ss-single__cta-row {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}

.ss-single__cta {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 24px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
	cursor: pointer;
	border: 0;
	overflow: hidden;
	isolation: isolate;
}
.ss-single__cta::before {
	content: "";
	position: absolute;
	top: 0;
	left: -120%;
	width: 50%;
	height: 100%;
	background: linear-gradient(
		120deg,
		transparent 0%,
		rgba(255, 255, 255, .35) 50%,
		transparent 100%
	);
	transform: skewX(-20deg);
	transition: left .9s ease;
	pointer-events: none;
	z-index: 0;
}
.ss-single__cta > * { position: relative; z-index: 1; }
.ss-single__cta:hover { transform: translateY(-2px); }
.ss-single__cta:hover::before { left: 130%; }
.ss-single__cta:active { transform: translateY(-1px); transition-duration: .1s; }

.ss-single__cta--wa {
	background: #25D366;
	color: #ffffff;
	box-shadow: 0 6px 16px rgba(37, 211, 102, .35);
}
.ss-single__cta--wa:hover {
	background: #20BB5A;
	box-shadow: 0 8px 20px rgba(37, 211, 102, .45);
	color: #ffffff;
}

.ss-single__cta--ficha {
	background: #0F1422;
	color: #ffffff;
	box-shadow: 0 6px 16px rgba(0, 0, 0, .15);
}
.ss-single__cta--ficha:hover {
	background: #1A2235;
	color: #ffffff;
}

.ss-single__cta-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

/* =========================================================
 *  Columna derecha: media (imagen + stickers)
 * ========================================================= */
.ss-single__media {
	position: relative;
	min-height: 480px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Sticker de fondo (decoración): detrás de la imagen. */
.ss-single__sticker-bg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(0deg);
	width: 110%;
	max-width: 720px;
	height: auto;
	z-index: 0;
	opacity: .55;
	pointer-events: none;
	user-select: none;
	transition: opacity .5s ease, transform 1.2s cubic-bezier(.2, .8, .25, 1);
}
.ss-single__media.is-hovering .ss-single__sticker-bg {
	opacity: .9;
	transform: translate(-50%, -50%) rotate(8deg) scale(1.04);
}

/* Imagen del producto centrada, encima del sticker de fondo. */
.ss-single__image {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}
.ss-single__image-img,
.ss-single__image img {
	max-width: 80%;
	max-height: 480px;
	width: auto;
	height: auto;
	display: block;
	filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .25));
	/* Idle: flotación sutil arriba-abajo. */
	animation: ss-float 6s ease-in-out infinite;
	transition: filter .35s ease;
	will-change: transform;
	cursor: crosshair;
}
.ss-single__media.is-hovering .ss-single__image-img,
.ss-single__media.is-hovering .ss-single__image img {
	animation-play-state: paused;
	filter: drop-shadow(0 40px 56px rgba(0, 0, 0, .35));
}

@keyframes ss-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-10px); }
}

/* =========================================================
 *  Lupa: círculo flotante que muestra una zona ampliada de
 *  la imagen del producto siguiendo al cursor.
 * ========================================================= */
.ss-single__lens {
	position: absolute;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	border: 3px solid #ffffff;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .28),
	            inset 0 0 0 1px rgba(0, 0, 0, .08);
	background-color: #fff;
	background-repeat: no-repeat;
	pointer-events: none;
	opacity: 0;
	transform: scale(.6) translate(-50%, -50%);
	transform-origin: 0 0;
	transition: opacity .2s ease, transform .25s cubic-bezier(.2, .8, .25, 1);
	z-index: 5;
	will-change: transform, background-position;
}
.ss-single__media.is-hovering .ss-single__lens {
	opacity: 1;
	transform: scale(1) translate(-50%, -50%);
}

/* Stickers giratorios adelante de la imagen.
   Tamaño natural de la imagen (sin width/height forzados) para no deformarlos. */
.ss-single__sticker {
	position: absolute;
	width: auto;
	height: auto;
	max-width: 160px;   /* tope superior para que no domine el layout */
	z-index: 2;
	pointer-events: none;
	user-select: none;
	animation: ss-spin-cw 12s linear infinite;
	transform-origin: 50% 50%;
}

/* Sticker 1 (+50 FPS): abajo-izquierda */
.ss-single__sticker--1 {
	left: 0;
	bottom: 12%;
	animation-direction: normal;
	transition: transform .5s cubic-bezier(.2, .8, .25, 1), animation-duration .3s;
}

/* Sticker 2 (Protección alta): arriba-derecha, giro inverso */
.ss-single__sticker--2 {
	right: 0;
	top: 8%;
	animation-direction: reverse;
	animation-duration: 14s;
	transition: transform .5s cubic-bezier(.2, .8, .25, 1), animation-duration .3s;
}

/* Hover: stickers giran más rápido y se separan ligeramente. */
.ss-single__media.is-hovering .ss-single__sticker {
	animation-duration: 6s;
}
.ss-single__media.is-hovering .ss-single__sticker--1 {
	transform: translate(-10px, 10px);
}
.ss-single__media.is-hovering .ss-single__sticker--2 {
	transform: translate(10px, -10px);
}

@keyframes ss-spin-cw {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.ss-single__sticker,
	.ss-single__image-img,
	.ss-single__image img,
	.ss-single__title,
	.ss-single__price,
	.ss-single__chips,
	.ss-single__spec,
	.ss-single__desc,
	.ss-single__cta-row,
	.ss-single__media,
	.ss-single__sticker-bg,
	.ss-single__cta::before { animation: none !important; transition: none !important; }
	.ss-single__title,
	.ss-single__price,
	.ss-single__chips,
	.ss-single__spec,
	.ss-single__desc,
	.ss-single__cta-row,
	.ss-single__media { opacity: 1; transform: none; }
}

/* =========================================================
 *  Responsive
 * ========================================================= */
@media (max-width: 1024px) {
	.ss-single__container { gap: 40px; }
	.ss-single__media { min-height: 420px; }
	.ss-single__sticker { max-width: 130px; }
}

@media (max-width: 768px) {
	.ss-single { padding: 40px 0 60px; }
	.ss-single__container {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 0 20px;
	}
	.ss-single__info { order: 2; }
	.ss-single__media { order: 1; min-height: 360px; }
	.ss-single__sticker--1 { left: 2%; bottom: 8%; }
	.ss-single__sticker--2 { right: 2%; top: 4%; }
	.ss-single__title { text-align: left; }
	.ss-single__desc { max-width: 100%; }
}

@media (max-width: 480px) {
	.ss-single__media { min-height: 300px; }
	.ss-single__sticker { max-width: 90px; }
	.ss-single__cta { padding: 12px 18px; font-size: 14px; }
	.ss-single__cta-row { gap: 10px; }
}

/* =========================================================
 *  Oculta elementos heredados del single-product WooCommerce
 *  (tabs, related, breadcrumbs, etc.) por si algún hook los
 *  inyecta dentro del wrapper.
 * ========================================================= */
.ss-single .woocommerce-tabs,
.ss-single .related,
.ss-single .upsells,
.ss-single .woocommerce-product-gallery__trigger,
.ss-single .product_meta,
.ss-single .breadcrumb,
.ss-single .woocommerce-breadcrumb { display: none !important; }

/* =========================================================
 *  Sección CARACTERÍSTICAS
 *  Eyebrow pequeño + titular gigante a varias líneas.
 * ========================================================= */
.ss-single__features {
	max-width: 1280px;
	margin: 24px auto 16px;
	padding: 40px 32px 60px;
	text-align: center;
	position: relative;
}

.ss-single__features-eyebrow {
	display: inline-block;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .22em;
	color: #111;
	text-transform: uppercase;
	margin-bottom: 24px;
	position: relative;
}
/* Línea decorativa a ambos lados del eyebrow, que se expande al entrar. */
.ss-single__features-eyebrow::before,
.ss-single__features-eyebrow::after {
	content: "";
	display: inline-block;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent 0%, #C8147C 100%);
	vertical-align: middle;
	margin: 0 14px;
	transition: width .6s cubic-bezier(.2, .8, .25, 1);
}
.ss-single__features-eyebrow::after {
	background: linear-gradient(90deg, #C8147C 0%, transparent 100%);
}
.ss-single__features.is-in-view .ss-single__features-eyebrow::before,
.ss-single__features.is-in-view .ss-single__features-eyebrow::after {
	width: 48px;
}

.ss-single__features-title {
	margin: 0;
	font-size: clamp(40px, 6vw, 88px);
	font-weight: 900;
	line-height: 1.02;
	color: #111;
	text-transform: uppercase;
	letter-spacing: -.015em;
}
/* Animación de entrada por línea: cada <br> separa "líneas" lógicas,
   pero en CSS no podemos animar por línea, así que animamos el titular
   completo en escala desde abajo + un degradado de color que recorre. */
.ss-single__features-title {
	opacity: 0;
	transform: translateY(40px) scale(.94);
	transition: opacity .9s ease, transform .9s cubic-bezier(.2, .8, .25, 1);
}
.ss-single__features.is-in-view .ss-single__features-title {
	opacity: 1;
	transform: translateY(0) scale(1);
}

/* El eyebrow también entra (fade + slide) */
.ss-single__features-eyebrow {
	opacity: 0;
	transform: translateY(15px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .25, 1);
}
.ss-single__features.is-in-view .ss-single__features-eyebrow {
	opacity: 1;
	transform: translateY(0);
}

/* Hover sobre el titular: efecto sutil de "respiración" magenta. */
.ss-single__features-title:hover {
	animation: ss-feat-breathe 1.6s ease-in-out;
}
@keyframes ss-feat-breathe {
	0%, 100% { color: #111;     letter-spacing: -.015em; }
	50%      { color: #C8147C;  letter-spacing: 0em; }
}

/* =========================================================
 *  Acordeón
 * ========================================================= */
.ss-single__accordion-wrap {
	background: #ffffff;
	padding: 64px 32px 96px;
	margin: 0;
	/* Trucazo para que el fondo blanco se extienda de borde a borde de la
	   pantalla aunque el .ss-single tenga ancho contenido por el body. */
	box-shadow: 0 0 0 100vmax #ffffff;
	clip-path: inset(0 -100vmax);
}

.ss-single__accordion {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ss-acc__item {
	background: #FFF6E1;       /* crema claro, no tan amarillo */
	border: 1px solid #FAEBC8;
	border-radius: 999px;
	overflow: hidden;
	transition: background-color .35s ease,
	            border-radius .35s ease,
	            border-color .35s ease,
	            box-shadow .35s ease,
	            transform .35s cubic-bezier(.2, .8, .25, 1);
}
.ss-acc__item:hover {
	border-color: rgba(200, 20, 124, .25);
	box-shadow: 0 6px 18px rgba(0, 0, 0, .05);
	transform: translateY(-2px);
}
.ss-acc__item.is-open {
	border-radius: 28px;
	background: #FFFBF0;       /* casi blanco con un toque crema */
	border-color: rgba(200, 20, 124, .18);
	box-shadow: 0 10px 28px rgba(0, 0, 0, .08);
	transform: translateY(0);
}

.ss-acc__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 22px 32px;
	background: transparent;
	border: 0;
	cursor: pointer;
	font: inherit;
	text-align: left;
	color: #111;
}
.ss-acc__trigger:focus-visible {
	outline: 2px solid #C8147C;
	outline-offset: -4px;
	border-radius: inherit;
}

.ss-acc__title {
	font-size: clamp(15px, 1.4vw, 18px);
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.2;
}

.ss-acc__icon {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #FAEBC8;
	color: #111;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .35s cubic-bezier(.2, .8, .25, 1),
	            background-color .3s ease,
	            color .3s ease;
}
.ss-acc__item:hover .ss-acc__icon {
	background: #C8147C;
	color: #ffffff;
}
.ss-acc__item.is-open .ss-acc__icon {
	transform: rotate(180deg);
	background: #C8147C;
	color: #ffffff;
}
.ss-acc__icon svg { display: block; }

/* Panel: usa max-height + opacity para animar el despliegue. */
.ss-acc__panel {
	max-height: 0;
	overflow: hidden;
	transition: max-height .4s ease, opacity .3s ease;
	opacity: 0;
}
.ss-acc__item.is-open .ss-acc__panel {
	max-height: 800px;       /* tope amplio: suficiente para textos largos */
	opacity: 1;
}
.ss-acc__panel[hidden] { display: block; }   /* dejamos el wrapper en el flujo para animar */

.ss-acc__body {
	padding: 0 64px 24px 32px;
	font-size: 15px;
	line-height: 1.65;
	color: #2b2b2b;
}
.ss-acc__body p { margin: 0; }

@media (prefers-reduced-motion: reduce) {
	.ss-acc__item,
	.ss-acc__icon,
	.ss-acc__panel { transition: none !important; }
}

/* Responsive */
@media (max-width: 768px) {
	.ss-single__features { padding: 32px 20px 40px; }
	.ss-single__accordion-wrap { padding: 48px 20px 64px; }
	.ss-acc__trigger { padding: 18px 22px; }
	.ss-acc__body { padding: 0 30px 20px 22px; font-size: 14px; }
	.ss-acc__icon { width: 28px; height: 28px; }
}

@media (max-width: 480px) {
	.ss-acc__title { font-size: 14px; letter-spacing: .03em; }
	.ss-acc__trigger { padding: 16px 18px; gap: 10px; }
	.ss-acc__body { padding: 0 22px 18px 18px; }
}
