.yyb-selector{
	margin:32px 0 28px;
	--yyb-cols:3;
	--yyb-radius:20px;
	--yyb-border:rgba(24,24,24,.10);
	--yyb-soft:#f7f5f2;
	--yyb-text:#191919;
	color:var(--yyb-text)
}
.yyb-selector[data-columns="2"]{--yyb-cols:2}
.yyb-selector[data-columns="4"]{--yyb-cols:4}
.yyb-header{margin-bottom:20px;max-width:760px}
.yyb-header h3{margin:0 0 8px;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.15}
.yyb-header p{margin:0;opacity:.7;line-height:1.6}
.yyb-layout{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(0,1.45fr);gap:28px;align-items:start}
.yyb-preview{
	position:sticky;top:28px;border:1px solid var(--yyb-border);border-radius:var(--yyb-radius);
	overflow:hidden;background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.07)
}
.yyb-preview-media{aspect-ratio:4/3;background:var(--yyb-soft);overflow:hidden}
.yyb-preview-media img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s ease,transform .35s ease}
.yyb-preview:hover .yyb-preview-media img{transform:scale(1.015)}
.yyb-preview-content{padding:24px}
.yyb-eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.69rem;font-weight:700;opacity:.55;margin:0 0 8px}
.yyb-preview h4{margin:0 0 10px;font-size:clamp(1.15rem,1.8vw,1.5rem);line-height:1.25}
.yyb-preview-text{margin:0;line-height:1.65}
.yyb-preview-text p:first-child{margin-top:0}.yyb-preview-text p:last-child{margin-bottom:0}
.yyb-preview-text ul{padding-left:1.15em;margin:12px 0 0}
.yyb-preview-text li{margin:4px 0}
.yyb-specs{display:none}
.yyb-preview-price{font-weight:700;font-size:1.18rem;margin-top:18px}
.yyb-cards{display:grid;grid-template-columns:repeat(var(--yyb-cols),minmax(0,1fr));gap:14px}
.yyb-card{
	position:relative;text-align:left;border:1px solid var(--yyb-border);background:#fff;border-radius:18px;
	padding:0;overflow:hidden;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
	color:inherit;min-width:0
}
.yyb-card:hover,.yyb-card:focus-visible{transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,0,0,.09);outline:none}
.yyb-card.is-selected{border-color:currentColor;box-shadow:0 0 0 2px currentColor,0 16px 34px rgba(0,0,0,.08)}
.yyb-card.is-disabled{opacity:.42;cursor:not-allowed}
.yyb-card-media{aspect-ratio:1/1;background:var(--yyb-soft);display:block;overflow:hidden}
.yyb-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.yyb-card:hover .yyb-card-media img{transform:scale(1.035)}
.yyb-card-body{display:flex;flex-direction:column;gap:6px;padding:15px}
.yyb-card-body strong{font-size:1rem;line-height:1.25}
.yyb-card-body>span:not(.yyb-card-price){opacity:.68;font-size:.84rem;line-height:1.45}
.yyb-card-price{font-weight:700;margin-top:2px}
.yyb-card-body small{opacity:.58}
.yyb-check{
	position:absolute;right:10px;top:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
	background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.12);opacity:0;transform:scale(.75);transition:.18s
}
.yyb-card.is-selected .yyb-check{opacity:1;transform:scale(1)}
.yyb-native-hidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:999px){
	.yyb-layout{grid-template-columns:1fr}
	.yyb-preview{position:relative;top:auto;display:grid;grid-template-columns:minmax(180px,.8fr) 1fr}
	.yyb-preview-media{aspect-ratio:1/1}
	.yyb-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
	.yyb-selector{margin:24px 0 20px}
	.yyb-preview{display:block;border-radius:16px}
	.yyb-preview-content{padding:18px}
	.yyb-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;gap:12px;-webkit-overflow-scrolling:touch}
	.yyb-card{min-width:78%;scroll-snap-align:start;border-radius:16px}
	.yyb-card:hover{transform:none}
	.yyb-header{margin-bottom:16px}
}
@media(prefers-reduced-motion:reduce){
	.yyb-card,.yyb-card-media img,.yyb-preview-media img,.yyb-check{transition:none}
}


/* Plantilla especial de producto */
body.yyb-product-layout .container-wrap,
body.yyb-product-layout .main-content {
	padding-top:0;
}
body.yyb-product-layout .yyb-product-hero{
	position:relative;
	width:100vw;
	min-height:clamp(420px,68vh,760px);
	margin-left:calc(50% - 50vw);
	overflow:hidden;
	display:flex;
	align-items:flex-end;
	isolation:isolate;
	background:#111;
}
.yyb-product-hero__media,
.yyb-product-hero__shade{
	position:absolute;
	inset:0;
}
.yyb-product-hero__media img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}
.yyb-product-hero__shade{
	z-index:1;
	background:
		linear-gradient(180deg,rgba(0,0,0,.06) 30%,rgba(0,0,0,.68) 100%),
		linear-gradient(90deg,rgba(0,0,0,.22),transparent 58%);
}
.yyb-product-hero__content{
	position:relative;
	z-index:2;
	width:min(1240px,calc(100% - 48px));
	margin:0 auto;
	padding:clamp(40px,7vw,92px) 0;
	color:#fff;
}
.yyb-product-hero__eyebrow{
	margin:0 0 10px;
	font-size:.73rem;
	font-weight:700;
	letter-spacing:.16em;
	text-transform:uppercase;
	opacity:.82;
}
.yyb-product-hero h1{
	color:#fff;
	margin:0;
	max-width:850px;
	font-size:clamp(2.6rem,7vw,6.8rem);
	line-height:.92;
	letter-spacing:-.045em;
	text-wrap:balance;
	text-shadow:0 4px 28px rgba(0,0,0,.22);
}
.yyb-product-hero__price{
	margin-top:18px;
	font-size:clamp(1.15rem,2vw,1.55rem);
	font-weight:650;
}
.yyb-product-hero__price,
.yyb-product-hero__price .amount,
.yyb-product-hero__price ins{
	color:#fff;
}
.yyb-product-hero__price del{opacity:.62}
.yyb-product-hero__cta{
	display:inline-flex;
	align-items:center;
	gap:10px;
	margin-top:24px;
	padding:12px 18px;
	border:1px solid rgba(255,255,255,.5);
	border-radius:999px;
	color:#fff;
	text-decoration:none;
	backdrop-filter:blur(8px);
	background:rgba(255,255,255,.10);
	transition:background .2s ease,transform .2s ease;
}
.yyb-product-hero__cta:hover{
	color:#fff;
	background:rgba(255,255,255,.2);
	transform:translateY(-2px);
}
.yyb-configurator-shell{
	width:100vw;
	margin-left:calc(50% - 50vw);
	padding:clamp(38px,6vw,80px) max(24px,calc((100vw - 1240px)/2));
	background:#fff;
}
.yyb-configurator-shell__inner{max-width:1240px;margin:0 auto}
body.yyb-product-layout .yyb-configurator-shell form.variations_form{
	width:100%;
	margin:0;
}
body.yyb-product-layout .yyb-configurator-shell .yyb-selector{margin-top:0}
body.yyb-product-layout .yyb-configurator-shell .single_variation_wrap{
	max-width:620px;
	margin:26px 0 0 auto;
	padding:22px;
	border:1px solid rgba(24,24,24,.1);
	border-radius:18px;
	background:#faf9f7;
}
body.yyb-product-layout .product > .woocommerce-product-gallery,
body.yyb-product-layout .product > .summary .product_title,
body.yyb-product-layout .product > .summary > .price,
body.yyb-product-layout .product > .summary form.variations_form{
	display:none!important;
}
body.yyb-product-layout .product > .summary{
	float:none!important;
	width:100%!important;
	max-width:1240px;
	margin:40px auto!important;
}
@media(max-width:690px){
	body.yyb-product-layout .yyb-product-hero{min-height:70svh}
	.yyb-product-hero__content{width:calc(100% - 32px);padding-bottom:42px}
	.yyb-product-hero h1{font-size:clamp(2.4rem,13vw,4rem)}
	.yyb-configurator-shell{padding:34px 16px}
	body.yyb-product-layout .yyb-configurator-shell .single_variation_wrap{margin-top:20px}
}


/* Ocultación reforzada de la plantilla nativa en Salient/WooCommerce */
body.yyb-product-layout .yyb-native-block-hidden,
body.yyb-product-layout div.product .woocommerce-product-gallery,
body.yyb-product-layout div.product .product-main,
body.yyb-product-layout div.product .product-gallery,
body.yyb-product-layout div.product .summary.entry-summary,
body.yyb-product-layout div.product .summary:not(.yyb-configurator-shell .summary){
	display:none!important;
}
body.yyb-product-layout div.product{
	display:block!important;
	width:100%!important;
	max-width:none!important;
}
body.yyb-product-layout .yyb-configurator-shell .variations_form,
body.yyb-product-layout .yyb-configurator-shell .single_variation_wrap,
body.yyb-product-layout .yyb-configurator-shell .woocommerce-variation-add-to-cart{
	display:block!important;
	visibility:visible!important;
	opacity:1!important;
}
body.yyb-product-layout .yyb-configurator-shell .single_add_to_cart_button:not(.disabled){
	pointer-events:auto!important;
	opacity:1!important;
	cursor:pointer!important;
}
body.yyb-product-layout .yyb-configurator-shell .single_add_to_cart_button.disabled{
	pointer-events:none!important;
}


/* Vista previa izquierda: formato 1:1 y visualización completa */
.yyb-preview-media{
	aspect-ratio:1 / 1!important;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:20px;
	box-sizing:border-box;
	background:#f7f5f2;
	overflow:hidden;
}
.yyb-preview-media img{
	width:100%;
	height:100%;
	object-fit:contain!important;
	object-position:center;
}

/* Descripción propia de la variación dentro de las tarjetas */
.yyb-card-description{
	display:block;
	white-space:pre-line;
	font-size:.84rem;
	line-height:1.5;
	opacity:.72;
}


/* Cabecera simplificada */
body.yyb-product-layout .yyb-product-hero{
	width:100vw;
	min-height:auto;
	margin-left:calc(50% - 50vw);
	display:block;
	background:#f7f5f2;
	color:#191919;
	overflow:visible;
}
body.yyb-product-layout .yyb-product-hero__media,
body.yyb-product-layout .yyb-product-hero__shade,
body.yyb-product-layout .yyb-product-hero__eyebrow,
body.yyb-product-layout .yyb-product-hero__cta{
	display:none!important;
}
body.yyb-product-layout .yyb-product-hero__content{
	width:min(1240px,calc(100% - 48px));
	margin:0 auto;
	padding:clamp(28px,4vw,52px) 0 clamp(24px,3.5vw,44px);
	color:#191919;
}
body.yyb-product-layout .yyb-product-hero h1{
	max-width:100%;
	margin:0;
	color:#191919;
	font-size:clamp(2rem,4.6vw,4.8rem);
	line-height:1;
	letter-spacing:-.035em;
	text-shadow:none;
}
body.yyb-product-layout .yyb-product-hero__price{
	margin-top:12px;
	color:#191919;
	font-size:clamp(1.05rem,1.6vw,1.35rem);
}
body.yyb-product-layout .yyb-product-hero__price,
body.yyb-product-layout .yyb-product-hero__price .amount,
body.yyb-product-layout .yyb-product-hero__price ins{
	color:#191919;
}
body.yyb-product-layout .yyb-configurator-shell{
	padding-top:clamp(26px,4vw,48px);
	padding-bottom:clamp(34px,5vw,64px);
}
@media(max-width:690px){
	body.yyb-product-layout .yyb-product-hero{
		min-height:auto;
	}
	body.yyb-product-layout .yyb-product-hero__content{
		width:calc(100% - 32px);
		padding:24px 0 22px;
	}
	body.yyb-product-layout .yyb-product-hero h1{
		font-size:clamp(2rem,10vw,3.2rem);
		line-height:1.02;
	}
	body.yyb-product-layout .yyb-product-hero__price{
		margin-top:10px;
	}
	body.yyb-product-layout .yyb-configurator-shell{
		padding-top:24px;
	}
}


/* Acceso rápido desde el panel de detalle hasta la zona de compra */
.yyb-preview-cart-cta{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	width:100%;
	margin-top:20px;
	padding:13px 18px;
	border:0;
	border-radius:999px;
	background:#191919;
	color:#fff;
	font:inherit;
	font-weight:700;
	line-height:1.2;
	cursor:pointer;
	box-shadow:0 10px 24px rgba(0,0,0,.12);
	transition:transform .2s ease,box-shadow .2s ease;
}
.yyb-preview-cart-cta:hover,
.yyb-preview-cart-cta:focus-visible{
	transform:translateY(-2px);
	box-shadow:0 14px 28px rgba(0,0,0,.16);
	outline:none;
}
.yyb-preview-cart-cta[hidden]{
	display:none!important;
}
@media(max-width:600px){
	.yyb-preview-cart-cta{
		margin-top:16px;
		padding:12px 16px;
	}
}
@media(prefers-reduced-motion:reduce){
	.yyb-preview-cart-cta{
		transition:none;
	}
}


/* Descripciones: solo se muestran los BR normalizados por PHP */
.yyb-card-description,
.yyb-specs,
.yyb-specs p{
	white-space:normal!important;
}



/* Acción directa de carrito en cada variación */
.yyb-card-cart{
	position:absolute;
	top:12px;
	left:12px;
	z-index:4;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	border-radius:999px;
	background:#fff;
	color:#191919;
	box-shadow:0 4px 14px rgba(0,0,0,.12);
	cursor:pointer;
	transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.yyb-card-cart svg{
	width:17px;
	height:17px;
	fill:none;
	stroke:currentColor;
	stroke-width:1.8;
	stroke-linecap:round;
	stroke-linejoin:round;
}
.yyb-card-cart:hover,
.yyb-card-cart:focus-visible{
	transform:translateY(-1px);
	background:#191919;
	color:#fff;
	box-shadow:0 7px 18px rgba(0,0,0,.18);
	outline:none;
}
.yyb-card .yyb-check{
	top:12px;
	right:12px;
	left:auto;
}
.yyb-card.is-disabled .yyb-card-cart{
	display:none;
}
@media(max-width:600px){
	.yyb-card-cart{
		top:10px;
		left:10px;
		width:32px;
		height:32px;
	}
	.yyb-card .yyb-check{
		top:10px;
		right:10px;
	}
}


/* Estados del botón de carrito AJAX */
.yyb-card-cart.is-loading{
	pointer-events:none;
	opacity:.65;
}
.yyb-card-cart.is-loading svg{
	animation:yyb-cart-spin .8s linear infinite;
}
.yyb-card-cart.is-added{
	background:#2f7d32;
	color:#fff;
}
.yyb-card-cart.is-error{
	background:#a83232;
	color:#fff;
}
@keyframes yyb-cart-spin{
	to{transform:rotate(360deg);}
}
@media(prefers-reduced-motion:reduce){
	.yyb-card-cart.is-loading svg{
		animation:none;
	}
}


/* Compatibilidad visual con el AJAX de Salient */
.yyb-card-cart.is-loading{
	cursor:wait;
}
.yyb-card-cart.is-added::after{
	content:"✓";
	position:absolute;
	font-size:15px;
	font-weight:700;
	line-height:1;
}
.yyb-card-cart.is-added svg{
	opacity:0;
}


/* Alineación superior del contenido de las tarjetas */
.yyb-card{
	align-items:start!important;
	align-content:start!important;
	justify-content:start!important;
}
.yyb-card-media{
	align-self:start!important;
}
.yyb-card-body{
	align-self:start!important;
	justify-content:flex-start!important;
}


/* Distribución vertical: contenido arriba y precio abajo */
.yyb-card{
	display:flex!important;
	flex-direction:column!important;
	align-items:stretch!important;
	justify-content:flex-start!important;
	height:100%;
}
.yyb-card-media{
	flex:0 0 auto!important;
	align-self:stretch!important;
}
.yyb-card-body{
	display:flex!important;
	flex:1 1 auto!important;
	flex-direction:column!important;
	align-items:flex-start!important;
	justify-content:flex-start!important;
	width:100%;
	box-sizing:border-box;
}
.yyb-card-body .yyb-card-price{
	margin-top:auto!important;
	padding-top:14px;
	align-self:flex-start;
}
