/* Carrito y mensajes en una pantalla (Deiber, 2026-11-11: «que no tenga que hacer scroll para nada»), con la técnica de la pasarela de pago y la cuenta:
   cabecera en una fila, dos columnas en escritorio, listas largas con su propia caja de scroll y pie compacto. Solo tokens de la página; va DESPUÉS de
   tienda-pagina.css y tienda-chat.css. Las reglas de escritorio no se aplican bajo 900 px: en el teléfono la página sí puede bajar. */
.flujo-cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 1.5rem; }
.flujo-cabeza > p { margin: 0; }
.flujo-cabeza p { display: flex; gap: 0 1.5rem; }
.flujo-cabeza a { display: inline-flex; align-items: center; min-height: 44px; }
main.m-carrito .carrito__linea img, main.m-carrito .carrito__sinfoto { width: 56px; height: 56px; }
main.m-carrito .carrito__linea { grid-template-columns: 56px minmax(0, 1fr); padding: .5rem .75rem; gap: .25rem .75rem; }
main.m-carrito .carrito__datos h2 { font-size: 1rem; margin: 0; }
main.m-carrito .carrito__datos p { margin: 0; font-size: .9rem; }
main.m-carrito .carrito__cantidad .enlace, main.m-carrito .carrito__cantidad .boton-icono { min-height: 44px; min-width: 44px; }
main.m-carrito .carrito__cantidad .enlace { padding: 0 .5rem; }
main.m-carrito .carrito:focus-visible, main.m-mensajes :is(.chat-hilo__caja, .chat-conversaciones ul):focus-visible { outline: 3px solid var(--texto); outline-offset: 2px; }
main.m-carrito .carrito__resumen .aviso { margin: .5rem 0; font-size: .9rem; font-weight: 400; }
main.m-mensajes .chat-pagina { max-width: 72rem; }
main.m-mensajes .chat-hilo__forma { max-width: none; }
main.m-mensajes .chat-hilo__forma textarea { min-height: 44px; }
main.m-mensajes .chat-hilo__forma button { min-height: 44px; }
@media (min-width: 700px) { main.m-carrito .carrito__linea { grid-template-columns: 56px minmax(0, 1fr) auto; } }
@media (min-width: 900px) {
  body:has(main:is(.m-carrito, .m-mensajes)) { padding-bottom: 0; }  /* el pie ya deja sitio al botón de mensajes (padding derecho) */
  body :is(main.m-carrito, main.m-mensajes) { padding-top: .5rem; padding-bottom: .5rem; }
  body :is(main.m-carrito, main.m-mensajes) h1 { font-size: 1.6rem; margin: 0; }
  main.m-carrito .carrito-vista { gap: 1.25rem; margin-top: .25rem; }
  main.m-carrito .carrito { max-height: calc(100dvh - 12.5rem); min-height: 6rem; overflow-y: auto; overscroll-behavior: contain; padding: .125rem; gap: .5rem; }
  main.m-carrito .carrito__resumen { position: sticky; top: 5.5rem; padding: 1rem 1.25rem; }
  main.m-carrito .carrito__subtotal { margin: 0 0 .5rem; }
  main.m-carrito .carrito__resumen form p { margin: .5rem 0 0; }
  main.m-carrito .carrito__resumen .boton { min-height: 48px; }
  main.m-mensajes .chat-pagina > h1 { margin-bottom: .5rem; }
  main.m-mensajes .chat-pagina__cuerpo { gap: 1.25rem; }
  main.m-mensajes .chat-conversaciones h2 { font-size: 1rem; margin: 0 0 .5rem; }
  main.m-mensajes .chat-conversaciones ul { max-height: calc(100dvh - 15rem); overflow-y: auto; }
  main.m-mensajes .chat-hilo__caja { height: calc(100dvh - 32rem); min-height: 8rem; }
  main.m-mensajes .chat__mensaje { padding: .35rem .75rem; }
  main.m-mensajes .chat__lista { gap: .35rem; }
  main.m-mensajes:not(:has(.chat-conversaciones)) .chat-hilo__caja { height: calc(100dvh - 27rem); }
  main.m-mensajes .chat-hilo > h2 { padding: .5rem 1rem; }
  main.m-mensajes .chat-hilo { gap: .25rem; }
  main.m-mensajes .chat-hilo > p { margin: 0; padding: 0 1rem; }
  main.m-mensajes .chat-hilo__forma { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "l l" "t b" "a a"; gap: .25rem .75rem; padding: .5rem 1rem .6rem; align-items: end; }
  main.m-mensajes .chat-hilo__forma > label[for=texto] { grid-area: l; font-size: .9rem; }
  main.m-mensajes .chat-hilo__forma > textarea { grid-area: t; resize: none; height: 44px; }
  main.m-mensajes .chat-hilo__forma > button { grid-area: b; }
  main.m-mensajes .chat-hilo__forma > :is(p, input[type=hidden]) { grid-column: 1 / -1; margin: 0; font-size: .8rem; }
  main.m-mensajes .chat-hilo__forma > input[type=hidden] { display: none; }
}
/* Confirmar el pedido con su entrega (brief 2026-11-12; rediseño por la captura 173): dos columnas como el carrito, opciones como tarjetas con
   área de toque amplia, campos en rejilla y el domicilio oculto al elegir retiro (:has, sin JavaScript). Solo tokens de la página. */
main.m-entrega .entrega__paso { font-size: .9rem; color: var(--suave, inherit); }
main.m-entrega .entrega { margin-top: .5rem; max-width: none; }
main.m-entrega .entrega__principal { display: grid; gap: 1.25rem; min-width: 0; }
main.m-entrega .entrega__grupo { margin: 0; padding: 1.25rem; border: 1px solid color-mix(in srgb, var(--texto) 22%, transparent); border-radius: var(--radio);
  background: color-mix(in srgb, var(--texto) 3%, var(--fondo)); }
main.m-entrega .entrega__grupo legend { padding: 0 .4rem; font-weight: 700; font-size: 1.05rem; }
main.m-entrega .entrega__opciones { display: grid; gap: .75rem; }
main.m-entrega .entrega__opcion { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: .9rem; min-height: 64px; padding: .9rem 1rem;
  border: 2px solid color-mix(in srgb, var(--texto) 22%, transparent); border-radius: var(--radio); background: var(--fondo); cursor: pointer; }
main.m-entrega .entrega__opcion:has(input:checked) { border-color: var(--marca); background: color-mix(in srgb, var(--marca) 10%, var(--fondo)); }
main.m-entrega .entrega__opcion:has(input:focus-visible) { outline: 3px solid var(--texto); outline-offset: 2px; }
main.m-entrega .entrega__opcion input { width: 1.25rem; height: 1.25rem; min-height: 0; margin: 0; accent-color: var(--marca); }
main.m-entrega .entrega__icono { width: 28px; height: 28px; color: var(--marca); }
main.m-entrega .entrega__opcion b { display: block; font-size: 1rem; }
main.m-entrega .entrega__detalle { display: block; margin-top: .15rem; font-size: .9rem; color: var(--suave, inherit); }
main.m-entrega .entrega__domicilio { display: grid; gap: 1rem; }
main.m-entrega .entrega__campo { display: grid; gap: .35rem; min-width: 0; }
main.m-entrega .entrega__campo label { font-weight: 600; font-size: .95rem; }
main.m-entrega .entrega__campo input { width: 100%; min-height: 48px; }
main.m-entrega .entrega__opcional { font-weight: 400; color: var(--suave, inherit); }
main.m-entrega .entrega:has(input[value=retiro]:checked) .entrega__domicilio { display: none; }
main.m-entrega .entrega__lineas { list-style: none; margin: 0 0 .75rem; padding: 0; display: grid; gap: .5rem; }
main.m-entrega .entrega__lineas li { display: flex; justify-content: space-between; gap: 1rem; font-size: .95rem; }
main.m-entrega .entrega__cantidad { color: var(--suave, inherit); white-space: nowrap; }
main.m-entrega .entrega__total { display: flex; justify-content: space-between; align-items: baseline; margin: 0; padding-top: .75rem;
  border-top: 1px solid color-mix(in srgb, var(--texto) 22%, transparent); font-size: 1.1rem; }
main.m-entrega .entrega__total strong { font-size: 1.35rem; }
main.m-entrega .entrega__resumen .aviso { margin: .75rem 0; font-size: .85rem; font-weight: 400; }
@media (min-width: 700px) { main.m-entrega .entrega__domicilio { grid-template-columns: 1fr 1fr; } main.m-entrega .entrega__campo--ancho { grid-column: 1 / -1; } }
@media (min-width: 900px) { main.m-entrega .entrega__resumen { position: sticky; top: 5.5rem; } }
