/*
 * Venta cruzada — bloque "Completa tu compra" en la ficha de producto.
 * Todo con prefijo kdv-xs: el bloque vive dentro del <form id="fich"> del tema.
 * Lista con casillas: el principal arriba (siempre incluido) y los recomendados
 * debajo; pie con el total y el botón del pack.
 * Corte móvil/tablet = 991.98px, el mismo en que la ficha pasa a una columna.
 */
.kdv-xs{
	--kdv-xs-text:#1d2430;
	--kdv-xs-muted:#5b6573;
	--kdv-xs-off:#8a94a3;
	--kdv-xs-line:#edf0f3;
	--kdv-xs-blue:#0b6cbf;
	--kdv-xs-blue-dark:#08508f;
	--kdv-xs-blue-soft:#eef5fc;
	--kdv-xs-blue-line:#cfe0f2;
	--kdv-xs-bg-img:#f3f5f8;
	--kdv-xs-bg-soft:#fafbfc;
	--kdv-xs-stock:#0d7a3a;
	--kdv-xs-green:#0f8a3e;
	--kdv-xs-green-dark:#0b6f31;
	--kdv-xs-font-title:Montserrat,"Roboto",sans-serif;
	--kdv-xs-font-text:"Nunito Sans","Open Sans",sans-serif;
	margin:0;border:1px solid var(--kdv-xs-blue-line);border-radius:14px;overflow:hidden;background:#fff;
	font-family:var(--kdv-xs-font-text);font-size:14px;color:var(--kdv-xs-text);
}
.kdv-xs *{box-sizing:border-box}

/* Cabecera */
.kdv-xs__head{display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--kdv-xs-blue-soft)}
.kdv-xs__title{margin:0;padding:0;font-family:var(--kdv-xs-font-title);font-size:15px;line-height:1.3;font-weight:700;text-transform:none;letter-spacing:0;color:var(--kdv-xs-text)}
.kdv-xs__hint{font-size:12px;line-height:1.3;color:#4b5563}

/* Filas */
.kdv-xs__list{list-style:none;margin:0;padding:0}
.kdv-xs__row{display:flex;align-items:center;gap:14px;min-height:48px;margin:0;padding:12px 20px;border-bottom:1px solid var(--kdv-xs-line)}
.kdv-xs__item{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease}
.kdv-xs__item:hover{background:#f7fafd}
.kdv-xs__check{flex:0 0 20px;width:20px;height:20px;margin:0;accent-color:var(--kdv-xs-blue);cursor:pointer}
.kdv-xs__fixed{display:flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border-radius:5px;background:var(--kdv-xs-off)}
.kdv-xs__img{flex:0 0 48px;width:48px;height:48px;border-radius:8px;background:var(--kdv-xs-bg-img);object-fit:contain;mix-blend-mode:multiply;transition:opacity .15s ease}
.kdv-xs__info{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.kdv-xs__name{
	display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;
	margin:0;padding:0;font-size:13px;line-height:1.35;font-weight:600;color:var(--kdv-xs-text);cursor:pointer;
}
.kdv-xs__row--main .kdv-xs__name{font-weight:700;cursor:default}
.kdv-xs__stock{font-size:12px;line-height:1.4;color:var(--kdv-xs-stock)}
.kdv-xs__price{flex:0 0 auto;font-family:var(--kdv-xs-font-title);font-size:14px;font-weight:700;white-space:nowrap;color:var(--kdv-xs-text)}

/* "Ver detalle": abre la ficha rápida; enlace discreto dentro de la línea de stock */
.kdv-xs__more{display:inline;margin:0;padding:0;font:inherit;color:var(--kdv-xs-blue);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.kdv-xs__more:hover{color:var(--kdv-xs-blue-dark)}
.kdv-xs__more.is-loading{opacity:.6;cursor:progress}

/* Sin marcar: atenuado y precio tachado */
.kdv-xs__item:not(.is-selected) .kdv-xs__name,
.kdv-xs__item:not(.is-selected) .kdv-xs__price{color:var(--kdv-xs-off)}
.kdv-xs__item:not(.is-selected) .kdv-xs__price{text-decoration:line-through}
.kdv-xs__item:not(.is-selected) .kdv-xs__img{opacity:.55}

/* Pie: total y botón */
.kdv-xs__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--kdv-xs-bg-soft)}
.kdv-xs__sum{display:flex;flex-direction:column;min-width:0}
.kdv-xs__label{font-size:12px;line-height:1.4;color:var(--kdv-xs-muted)}
.kdv-xs__total{font-family:var(--kdv-xs-font-title);font-size:24px;line-height:1.2;font-weight:800;white-space:nowrap;color:var(--kdv-xs-text)}
.kdv-xs__buy{
	display:inline-flex;align-items:center;justify-content:center;gap:10px;flex:0 0 auto;height:48px;padding:0 22px;
	border:0;border-radius:10px;cursor:pointer;
	font-family:var(--kdv-xs-font-title);font-size:14px;line-height:1.2;font-weight:700;letter-spacing:.3px;text-transform:none;color:#fff;
	background:var(--kdv-xs-green);transition:background-color .15s ease,opacity .15s ease;
}
.kdv-xs__buy:hover{background:var(--kdv-xs-green-dark)}
.kdv-xs__buy-cart{flex:0 0 auto}
.kdv-xs__buy.is-loading .kdv-xs__buy-cart,.kdv-xs__buy.is-done .kdv-xs__buy-cart{display:none}
.kdv-xs__buy.is-loading,.kdv-xs__buy.is-loading:disabled{cursor:progress;opacity:.85}
.kdv-xs__buy.is-done,.kdv-xs__buy.is-done:disabled{opacity:1;cursor:default;background:var(--kdv-xs-green-dark)}
.kdv-xs__buy-icon:not(.fa){display:none}

/* Aviso bajo el pie: éxito o error */
.kdv-xs__msg{display:none;align-items:flex-start;gap:8px;margin:0 20px 16px;padding:10px 12px;border-radius:8px;font-size:13px;line-height:18px}
.kdv-xs__msg.is-visible{display:flex;animation:kdv-xs-in .2s ease-out}
.kdv-xs__msg.is-ok{color:#0f6b33;background:#e7f7ee;border:1px solid #bfe8cf}
.kdv-xs__msg.is-error{color:#9b1c1c;background:#fdecec;border:1px solid #f5c2c2}
.kdv-xs__msg .fa{margin-top:2px;font-size:15px}
@keyframes kdv-xs-in{from{transform:translateY(-4px)}to{transform:none}}

/* Foco visible (teclado) */
.kdv-xs__check:focus-visible,.kdv-xs__buy:focus-visible,.kdv-xs__more:focus-visible,.kdv-xs-qv__toggle:focus-visible,.kdv-xs-qv__thumb:focus-visible,.kdv-xs-qv__close:focus-visible{outline:3px solid rgba(11,108,191,.45);outline-offset:2px}

/* ------------------------------------------------------------------------
 * Móvil / tablet: la ficha va a una columna y el bloque se mueve bajo la compra
 * --------------------------------------------------------------------- */
@media (max-width: 991.98px){
	/* Mientras siga bajo la galería (antes de moverlo) no se ve: sin parpadeo */
	#fich .left #kdv-xs{display:none}
}
@media (max-width: 600px){
	.kdv-xs__row{padding:12px 14px;gap:12px}
	.kdv-xs__head,.kdv-xs__bar{padding-left:14px;padding-right:14px}
	.kdv-xs__msg{margin-left:14px;margin-right:14px}
	.kdv-xs__buy{width:100%}
}

/* ------------------------------------------------------------------------
 * Ficha rápida (lightbox "Más info")
 * --------------------------------------------------------------------- */
.kdv-xs-qv{
	position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;
	max-width:860px;margin:30px auto;padding:28px;background:#fff;border-radius:8px;
	font-family:"Open Sans",sans-serif;color:#3c3c3c;box-shadow:0 10px 40px rgba(0,0,0,.25);
}
.kdv-xs-qv *{box-sizing:border-box}
.kdv-xs-qv__stage{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:#fff;border:1px solid #eceff1;border-radius:6px;overflow:hidden}
.kdv-xs-qv__big{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.kdv-xs-qv__thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.kdv-xs-qv__thumb{width:60px;height:60px;padding:2px;background:#fff;border:2px solid #e0e4e8;border-radius:4px;cursor:pointer}
.kdv-xs-qv__thumb.is-active{border-color:#0b6cbf}
.kdv-xs-qv__thumb img{display:block;width:100%;height:100%;object-fit:contain}
.kdv-xs-qv__body{display:flex;flex-direction:column;min-width:0;padding-right:18px}
.kdv-xs-qv__name{margin:0 0 6px;padding:0;font-family:"Roboto",sans-serif;font-size:21px;line-height:27px;font-weight:700;text-transform:uppercase;color:#3c3c3c}
.kdv-xs-qv__ref{font-size:13px;color:#6f7478;padding-bottom:12px;border-bottom:1px solid #e3e6e8}
.kdv-xs-qv__buyline{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:14px 0 10px}
.kdv-xs-qv__price{font-family:"Catamaran",sans-serif;font-size:32px;line-height:36px;font-weight:700;letter-spacing:-.4px;color:#3c3c3c}
.kdv-xs-qv__stock{font-size:13px;color:#1a9e3c;font-weight:600}
.kdv-xs-qv__desc{margin:0 0 16px;font-size:14px;line-height:21px;color:#4a4f54;max-height:14em;overflow:auto}
.kdv-xs-qv__actions{margin-top:auto;padding-top:10px}
.kdv-xs-qv__toggle{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:10px 18px;
	font-family:"Open Sans",sans-serif;font-size:15px;font-weight:700;border-radius:999px;cursor:pointer;
	color:#fff;background:#0b6cbf;border:2px solid #0b6cbf;transition:background-color .15s ease,color .15s ease;
}
.kdv-xs-qv__toggle:hover{background:#08508f;border-color:#08508f}
.kdv-xs-qv__on{display:none}
.kdv-xs-qv__toggle.is-selected{color:#0b6cbf;background:#fff}
.kdv-xs-qv__toggle.is-selected:hover{background:#eef5fc}
.kdv-xs-qv__toggle.is-selected .kdv-xs-qv__on{display:inline}
.kdv-xs-qv__toggle.is-selected .kdv-xs-qv__off{display:none}
.kdv-xs-qv .mfp-close.kdv-xs-qv__close,.kdv-xs-qv-overlay .kdv-xs-qv__close{
	position:absolute;top:8px;right:8px;width:44px;height:44px;padding:0;margin:0;line-height:44px;text-align:center;
	font-size:30px;font-family:Arial,sans-serif;color:#3c3c3c;opacity:1;background:#f1f3f5;border:0;border-radius:50%;cursor:pointer;
}
.kdv-xs-qv .mfp-close.kdv-xs-qv__close:hover{background:#e3e6e9}
.kdv-xs-qv-mfp .mfp-container{padding:0 12px}
/* Por encima de la cabecera fija del tema y de los widgets flotantes */
.mfp-bg.kdv-xs-qv-mfp{z-index:100040}
.mfp-wrap.kdv-xs-qv-mfp{z-index:100041}

/* Capa propia solo si no hay magnificPopup */
.kdv-xs-qv-overlay{position:fixed;inset:0;z-index:10060;overflow:auto;background:rgba(41,41,41,.8);padding:12px}
.kdv-xs-qv-overlay__box{position:relative;max-width:860px;margin:0 auto}

@media (max-width: 767.98px){
	.kdv-xs-qv{grid-template-columns:minmax(0,1fr);gap:14px;margin:0 auto;padding:56px 16px 16px;min-height:100vh;border-radius:0;box-shadow:none}
	.kdv-xs-qv-mfp .mfp-container{padding:0}
	.kdv-xs-qv__stage{max-height:46vh;aspect-ratio:auto;height:46vh}
	.kdv-xs-qv__body{padding-right:0}
	.kdv-xs-qv__name{font-size:18px;line-height:24px}
	.kdv-xs-qv__price{font-size:28px}
	.kdv-xs-qv__desc{max-height:none}
	.kdv-xs-qv__actions{position:sticky;bottom:0;margin:0 -16px -16px;padding:12px 16px;background:#fff;box-shadow:0 -4px 12px rgba(0,0,0,.08)}
	.kdv-xs-qv .mfp-close.kdv-xs-qv__close{position:fixed;top:8px;right:8px;z-index:2}
}

@media (prefers-reduced-motion: reduce){
	.kdv-xs__item,.kdv-xs__buy,.kdv-xs__img,.kdv-xs-qv__toggle{transition:none}
	.kdv-xs__msg.is-visible{animation:none}
}
