/* =========================================================
   Ficha de producto ampliada — Synapse
   Colores de marca: magenta #881f92 · verde oliva CTA
   ========================================================= */
.single-product{
	--sw-accent:#881f92;
	--sw-care:#7c8a3c;
	--sw-ink:#333b37;
	--sw-muted:#6a716a;
	--sw-faint:#8b938b;
	--sw-border:#e4e5df;
	--sw-soft:#f5f6f2;
}

.swi{
	width:1.15em;
	height:1.15em;
	flex:none;
	vertical-align:-.15em;
}

/* --- Cuidados de un vistazo (dos líneas) --- */
.sw-specs{
	display:flex;
	flex-direction:column;
	gap:.2rem;
	margin:1.1em 0 1.3em;
}
.sw-spec{
	display:flex;
	flex-direction:row;
	align-items:center;
	gap:.65rem;
	padding:.55rem .2rem;
}
.sw-spec + .sw-spec{
	border-top:1px solid var(--sw-border);
}
.sw-spec__k{
	order:1;
	font-size:.8rem;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:var(--sw-faint);
	min-width:64px;
}
.sw-spec__v{
	order:2;
	font-size:.95rem;
	font-weight:700;
	color:var(--sw-ink);
}
.sw-spec__ic{
	order:3;
	margin-left:auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:48px;
	height:48px;
	color:var(--sw-care);
	flex:none;
}
.sw-spec__ic .swi{width:34px;height:34px;}
.sw-spec__img{
	width:48px;
	height:48px;
	object-fit:contain;
}

/* --- Envío gratis + confianza --- */
.sw-ship{margin:1em 0 .6em;}
.sw-ship:empty{display:none;}
.sw-trust{
	list-style:none;
	margin:.9em 0 .4em;
	padding:0;
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
	gap:.5rem .9rem;
}
.sw-trust li{
	display:flex;
	align-items:center;
	gap:.5rem;
	font-size:1rem;
	color:var(--sw-muted);
	margin:0;
}
.sw-trust .swi{color:var(--sw-care);width:1.05em;height:1.05em;}
.sw-trust b{color:var(--sw-ink);font-weight:600;}

.sw-cats{
	font-size:.83rem;
	color:var(--sw-muted);
	margin:1em 0 .2em;
}
.sw-cats a{color:var(--sw-accent);}

/* --- Bloque de confianza bajo la galería (lista vertical, icono a la izquierda) --- */
.sw-gtrust{
	display:flex;
	flex-direction:column;
	gap:1rem;
	font-size:1.1rem;
	margin:1.4rem 0 .8rem;
	padding-top:1.3rem;
	border-top:1px solid var(--sw-border);
}
/* En escritorio: bajo la galería, en la columna izquierda (GeneratePress: div.images a 50%). */
@media (min-width:768px){
	.single-product div.product .sw-gtrust{
		float:left;
		clear:left;
		width:50%;
		margin:1.6rem 0 0;
	}
	/* Que el contenido posterior (cross-sell, pestañas) no se solape con el float. */
	.single-product div.product .sw-xsell,
	.single-product div.product .woocommerce-tabs,
	.single-product div.product .related,
	.single-product div.product .up-sells{
		clear:both !important;
	}
}
.sw-gtrust__item{
	display:flex;
	flex-direction:row;
	align-items:center;
	text-align:left;
	gap:.75rem;
}
.sw-gtrust__item + .sw-gtrust__item{
	border-top:1px solid var(--sw-border);
	padding-top:1rem;
}
.sw-gtrust__ic{
	display:grid;
	place-items:center;
	width:46px;
	height:46px;
	border-radius:50%;
	background:var(--sw-soft);
	color:var(--sw-care);
	flex:none;
}
.sw-gtrust__ic .swi{width:22px;height:22px;}
.sw-gtrust__body{display:flex;flex-direction:column;gap:.2rem;}
.sw-gtrust__t{font-weight:700;color:var(--sw-ink);font-size:1.4rem;line-height:1.2;}
.sw-gtrust__d{font-size:1em;color:var(--sw-muted);line-height:1.45;margin:0;}

/* Miniaturas: rellenan el ancho de la imagen principal repartiéndose por igual,
   máximo 4 por fila (2 -> 50%, 3 -> 33%, 4 -> 25%). El nº de columnas lo fija
   el filtro PHP thumbnail_columns(). !important para ganar a GeneratePress. */
body.single-product .woocommerce div.product div.images .flex-control-thumbs{
	display:flex !important;
	flex-wrap:wrap;
	gap:.5rem;
	margin:.6em 0 0 !important;
	padding:0;
}
body.single-product .woocommerce div.product div.images .flex-control-thumbs li{
	float:none !important;
	margin:0 !important;
	max-width:none !important;
	list-style:none;
}
body.single-product .woocommerce div.product div.images .flex-control-thumbs li img{
	width:100% !important;
	height:auto;
	display:block;
}
body.single-product .woocommerce-product-gallery--columns-1 .flex-control-thumbs li{width:100% !important;}
body.single-product .woocommerce-product-gallery--columns-2 .flex-control-thumbs li{width:calc((100% - .5rem) / 2) !important;}
body.single-product .woocommerce-product-gallery--columns-3 .flex-control-thumbs li{width:calc((100% - 1rem) / 3) !important;}
body.single-product .woocommerce-product-gallery--columns-4 .flex-control-thumbs li{width:calc((100% - 1.5rem) / 4) !important;}

/* --- Acordeones --- */
.sw-acc-group{
	margin-top:1.3em;
	border-top:1px solid var(--sw-border);
}
.sw-acc{border-bottom:1px solid var(--sw-border);}
.sw-acc__sum{
	display:flex;
	align-items:center;
	gap:.75rem;
	padding:1rem .2rem;
	cursor:pointer;
	list-style:none;
	font-weight:600;
	color:var(--sw-ink);
}
.sw-acc__sum::-webkit-details-marker{display:none;}
.sw-acc__sum:hover{color:var(--sw-accent);}
.sw-acc__sum:focus-visible{outline:2px solid var(--sw-accent);outline-offset:2px;border-radius:6px;}
.sw-acc__ic{color:var(--sw-accent);width:1.25em;height:1.25em;}
.sw-acc__label{
	flex:1;
	margin:0;
	padding:0;
	font-size:1.25rem;
	font-weight:600;
	line-height:1.3;
	color:var(--accent, var(--sw-accent));
}
.sw-acc__chev{color:var(--sw-faint);transition:transform .25s ease;}
.sw-acc[open] .sw-acc__chev{transform:rotate(180deg);}
.sw-acc__body{
	padding:0 .2rem 1.25rem;
	color:var(--sw-muted);
	line-height:1.6;
}
.sw-acc__body :is(p,ul,ol){margin:0 0 .8em;}
.sw-acc__body :is(ul,ol){padding-left:1.2em;}
.sw-acc__body b,.sw-acc__body strong{color:var(--sw-ink);}
.sw-acc__body a{color:var(--sw-accent);}
.sw-acc__body h3{font-size:1.05em;font-weight:700;color:var(--sw-ink);margin:1.2em 0 .4em;}
.sw-acc__body h3:first-child{margin-top:0;}

.sw-faq+.sw-faq{margin-top:.8em;padding-top:.8em;border-top:1px dashed var(--sw-border);}
.sw-faq__q{font-size:1.05rem;font-weight:700;line-height:1.35;color:var(--sw-ink);margin:0 0 .2em;}
.sw-faq__a{margin:0;}

/* Ficha técnica (lista de definición, extraíble) */
.sw-spec-list{
	display:grid;
	grid-template-columns:auto 1fr;
	gap:.55em 1.2em;
	margin:0;
}
.sw-spec-list dt{
	display:flex;
	align-items:center;
	gap:.5em;
	font-weight:600;
	color:var(--sw-ink);
	border-bottom:1px solid var(--sw-border);
	padding-bottom:.4em;
}
.sw-spec-list dd{margin:0;color:var(--sw-muted);border-bottom:1px solid var(--sw-border);padding-bottom:.4em;}
.sw-spec-list dt:last-of-type,.sw-spec-list dd:last-of-type{border-bottom:0;}
.sw-spec-list__ic{width:1.15em;height:1.15em;color:var(--sw-care);flex:none;}

/* --- Cross-sell "Completa el cuidado" --- */
.sw-xsell{
	margin:2.2em 0;
	clear:both;
}
.sw-xsell__title{
	font-size:1.6rem;
	font-weight:700;
	color:var(--sw-ink);
	margin:0 0 .9rem;
}
.sw-xsell__grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:.8rem;
}
.sw-xcard{
	display:flex;
	flex-direction:column;
	background:#fff;
	border:1px solid var(--sw-border,#e4e5df);
	border-radius:12px;
	padding:.7rem;
	gap:.3rem;
}
.sw-xcard__img{display:block;border-radius:8px;overflow:hidden;}
.sw-xcard__img img{width:100%;height:auto;display:block;}
.sw-xcard__b{display:flex;flex-direction:column;gap:.1rem;padding:.3rem 0;flex:1;}
.sw-xcard__cat{
	font-size:.66rem;
	text-transform:uppercase;
	letter-spacing:.05em;
	color:#8b938b;
	font-weight:700;
}
.sw-xcard__n{
	font-size:.9rem;
	font-weight:600;
	color:#333b37;
	line-height:1.25;
	text-decoration:none;
}
.sw-xcard__n:hover{color:#881f92;}
.sw-xcard__p{font-size:.95rem;font-weight:700;color:#881f92;margin:0;}
.sw-xcard__p del{color:#8b938b;font-weight:400;}
/* Precio y botón en la misma línea (el botón baja si no cabe). */
.sw-xcard__buy{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:.4rem .7rem;
	margin-top:.5rem;
}
/* Botón compacto (CTA secundario); especificidad extra para ganar al .button del tema. */
.single-product div.product .sw-xsell .sw-xcard__add{
	margin:0;
	padding:.5rem .95rem;
	font-size:.85rem;
	line-height:1.25;
	white-space:nowrap;
}

@media (max-width:600px){
	.sw-xsell__grid{grid-template-columns:1fr;}
	.sw-xcard{flex-direction:row;align-items:center;gap:.85rem;padding:.6rem;}
	.sw-xcard__img{width:84px;flex:none;}
}

/* --- Barra fija móvil --- */
.sw-sticky{display:none;}
@media (max-width:768px){
	.sw-sticky{
		position:fixed;
		left:0;
		right:0;
		bottom:0;
		z-index:9990;
		display:flex;
		align-items:center;
		gap:.7rem;
		padding:.6rem .8rem;
		padding-bottom:calc(.6rem + env(safe-area-inset-bottom, 0px));
		background:#fff;
		border-top:1px solid #e4e5df;
		box-shadow:0 -6px 20px rgba(20,25,20,.12);
		transform:translateY(115%);
		transition:transform .3s cubic-bezier(.2,.8,.2,1);
	}
	.sw-sticky.is-visible{transform:none;}
	.sw-sticky__img{width:44px;height:44px;flex:none;border-radius:8px;overflow:hidden;}
	.sw-sticky__img img{width:100%;height:100%;object-fit:cover;display:block;}
	.sw-sticky__info{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.2;}
	.sw-sticky__name{font-size:.8rem;font-weight:600;color:#333b37;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
	.sw-sticky__price{font-size:.95rem;font-weight:700;color:#881f92;}
	.sw-sticky__price del{color:#8b938b;font-weight:400;font-size:.85em;}
	.sw-sticky__btn{flex:none;margin:0;white-space:nowrap;}
}

/* Aviso visual al llevar al selector de variaciones */
.sw-flash{animation:sw-flash 1.2s ease;}
@keyframes sw-flash{
	0%,100%{box-shadow:0 0 0 0 rgba(136,31,146,0);}
	30%{box-shadow:0 0 0 3px rgba(136,31,146,.35);}
}

@media (prefers-reduced-motion:reduce){
	.sw-sticky,.sw-acc__chev{transition:none;}
	.sw-flash{animation:none;}
}
