/* Prolift · W28 (01-11-2026): arreglos de la revisión final con sesión de cliente
   (Prolift-KB/Web/revision-final-sesion-cliente-2026-11-01.md). Va detrás de w27.css (OCMOD «Prolift · W28…», delante
   de </head>). Solo tokens de la guía §7. */

/* n.º 2 · cesta: la línea con más cantidad que stock lleva un aviso neutro, no de error (fila 219.6: pedidos sin tope;
   Prolift confirma el plazo al contactar). El texto, en uni_cart.twig (OCMOD prolift_w28) */
html body .checkout-cart .checkout-cart__stock.pl-w28-stock { color: #4B5259; font-size: 13px; line-height: 1.4; margin-top: 2px; }

/* n.º 9 · cesta en el móvil: el precio por unidad o por envase de cada línea, como en el ordenador (el tema lo ocultaba
   con hidden-xs) */
@media (max-width: 767px) {
	html body .checkout-cart .checkout-cart__price.hidden-xs { display: block !important; margin-top: 4px; font-size: 14px; }
	html body .checkout-cart .checkout-cart__price.hidden-xs .checkout-cart__price-text { font-size: 13px; color: #4B5259; }
}

/* n.º 11 · familias de la portada: nunca una tarjeta sola en la última fila. Con un número de familias que la deja suelta
   (hoy 9: 4 + 4 + 1 en 4 columnas y 2 + 2 + 2 + 2 + 1 en 2), 3 columnas: 3 + 3 + 3. Una tarjeta a todo el ancho en 2
   columnas quedaba con una foto enorme (medido a 900 px) */
@media (min-width: 992px) {
	html body .pl-home__familias .pl-fams:has(> :last-child:nth-child(4n+1)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 768px) and (max-width: 991px) {
	html body .pl-home__familias .pl-fams:has(> :last-child:nth-child(odd)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* n.º 3 · buscador vivo: «desde» y «sin IVA» junto al precio (uni_live_search.php, OCMOD prolift_w28) */
html body .live-search__price .pl-w28-desde, html body .live-search__price .pl-w28-iva { font-size: 13px; font-weight: 400; color: #4B5259; }

/* 1.2 (W28b) · la cesta y el pedido con una línea, en la escala y con los tokens de la guía (comprobar_maquetacion
   «cesta-llena» y «pedido-lleno»; antes solo se medían vacíos): la variante (10-10,5 px) y la nota del envase, los rótulos
   de precio y total (12 px) a 13; las cifras (16,8) a 16; los títulos de bloque del móvil (16,8) a 18; «Cantidad
   (unidades)» con peso 500, no 600; el resumen fijo sin el gris #F7F7F7 del tema (el cálido de la guía); y el «1» de
   «Productos en la cesta», que lleva a las líneas, con 44 px de toque sin moverse */
html body .checkout-cart .checkout-cart__options-item,
html body .checkout-cart .checkout-cart__options-item.pl-envase-nota,
html body .checkout-cart .checkout-cart__price-text,
html body .checkout-cart .checkout-cart__total-text,
html body .checkout-cart .checkout-cart__price.hidden-xs .checkout-cart__price-text { font-size: 13px; }
html body .checkout-cart .checkout-cart__price,
html body .checkout-cart .checkout-cart__total { font-size: 16px; }
html body .checkout-cart .pl-unidad__cant { font-weight: 500; }
html body .unicheckout__shipping .shipping-method__label .shipping-method__quote { font-weight: 500 !important; }
html body .unicheckout__payment .payment-method__title, html body .payment-method .payment-method__title { font-weight: 500 !important; }
html body #content .checkout-cart .checkout-cart__total-text.hidden-xs, html body .unicheckout-sticky small, html body .pl-pedido .pl-pedido__total small { font-size: 13px; }
/* «Confirmar pedido», con el alto (48) del botón de los demás formularios (M7: un solo componente) */
html body #confirm_checkout.btn { min-height: 48px !important; }
html body .unicheckout-sticky__wrapper { background-color: #F4F3F0; }
html body .unicheckout-sticky__total-text > a { display: inline-block; padding: 13px 20px; margin: -13px -20px; }
/* M17 de la cesta llena (W28b, medido: 0,012 a ~500 ms en .unicheckout__custom-field): vista-m12.js pone después de
   pintar una etiqueta visible (.pl-etiqueta, 20 px + 8 de margen) encima de cada campo del pedido, y todo lo de debajo
   bajaba. El hueco de la etiqueta se guarda desde el principio en el campo que aún no la tiene (sin data-pl-et) */
html body #content [class*="unicheckout"] .checkout-customer input.form-control[placeholder]:not([data-pl-et]):not([type="hidden"]) { margin-top: 25px; }
/* los campos personalizados de texto («Empresa», «CIF o NIF») no traen etiqueta: también se les pone. Aquí el hueco va
   en el grupo (padding), porque el margen del campo se juntaba con el del grupo de encima y faltaban 15 px */
html body #content .unicheckout__custom-field .form-group:has(> input.form-control[placeholder]:not([data-pl-et]):not([type="hidden"])) { padding-top: 28px; }
html body .pl-w28-etiqueta { display: block; font-size: 14px; font-weight: 500; color: #1E2124; margin: 0 0 6px; }
/* 1.3 (W28d) · la línea de la cesta a 320 px: la miniatura (90 + 15) y la papelera dejaban 133 px a la cantidad, que
   mide 169 (44 + 81 + 44, el campo con sitio para «9900»), y la página medía 343 de ancho. Con la miniatura a 56 + 10
   caben 172 */
@media (max-width: 359px) {
	html body .checkout-cart .checkout-cart__image { flex: 0 0 56px; width: 56px; margin-right: 10px; }
	html body .checkout-cart .checkout-cart__image img { max-width: 100%; height: auto; }
	html body .checkout-cart .checkout-cart__item-wrapper { min-width: 0; }
}
@media (max-width: 767px) {
	html body #content [class*="unicheckout"] .heading, html body #content .heading[id^="pl-h-"] { font-size: 18px; }
	html body .checkout-cart .checkout-cart__price.hidden-xs { font-size: 16px; }
}
