/* Tarjetas móviles compartidas por Tienda, Buscar y Favoritos. */
@media (max-width: 600px) {
    /* Buscar reserva espacio para sus controles y conserva imágenes legibles. */
    body.in-search-view { --mobile-product-image-height: clamp(112px, 32vw, 156px); }
    body.in-favorites-view { --mobile-product-image-height: clamp(28px, calc(50svh - 312px), 104px); }
    body:is(.in-search-view, .in-favorites-view) #pila-flotantes .as-boton {
        position: fixed; top: 90px; right: 12px; bottom: auto;
        width: 44px; height: 44px; border-radius: 12px; box-shadow: none;
    }
    body.in-search-view .search-controls-inner { padding: 6px 12px; }
    body.in-search-view .search-controls-row { grid-template-columns: 44px minmax(0, 1fr); gap: 8px; }
    body.in-search-view .search-field { grid-column: 2; grid-row: 1; }
    body.in-search-view #toggle-filters-btn { width: 44px; height: 44px; padding: 10px; }
    body.in-search-view #toggle-filter-label, body.in-search-view #search-result-count {
        position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
        overflow: hidden; clip-path: inset(50%); white-space: nowrap;
    }
    body.in-search-view .search-scope-row { flex-wrap: nowrap; padding-top: 4px; gap: 8px; }
    body.in-search-view .search-active-filters { flex-basis: auto; }
    body.in-search-view .search-filter-caption { display: none; }
    body.in-search-view #toggle-all-providers { font-size: 10px !important; }
    body.in-search-view .search-layout { padding: 8px 12px; }
    body.in-search-view #search-results-area > h1 { font-size: 14px; line-height: 20px; margin: 0 0 6px; }
    body.in-search-view #view-buscar #search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

    body.in-favorites-view #view-fav { padding-top: 8px; }
    body.in-favorites-view .favorites-heading { flex-direction: row; align-items: center; gap: 8px; margin-bottom: 6px; }
    body.in-favorites-view .favorites-title-row { gap: 6px; }
    body.in-favorites-view .favorites-title-row h1 { font-size: 22px; line-height: 28px; }
    body.in-favorites-view .favorites-heading p { display: none; }
    body.in-favorites-view #favorites-add-list { width: 44px; max-width: 44px; padding: 10px; flex-shrink: 0; }
    body.in-favorites-view #favorites-add-list span {
        position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
        overflow: hidden; clip-path: inset(50%); white-space: nowrap;
    }
    body.in-favorites-view .favorites-filters { margin-bottom: 6px; padding-bottom: 6px; gap: 6px; }
    body.in-favorites-view .favorites-filters button { min-height: 32px; padding: 5px 10px; font-size: 11px; }
    body.in-favorites-view #view-fav .fav-grupo-cab { flex-wrap: nowrap; gap: 6px; min-height: 32px; margin-bottom: 8px; padding: 0 0 8px; }
    body.in-favorites-view #view-fav .fav-grupo-cab > img { width: 24px; height: 24px; padding: 2px; }
    body.in-favorites-view .fav-grupo-copy h2 { font-size: 12px; line-height: 16px; }
    body.in-favorites-view .fav-grupo-copy p { display: none; }
    body.in-favorites-view .favorites-catalog-link { width: auto; max-width: none; padding: 4px; font-size: 10px; line-height: 14px; white-space: nowrap; }
    body.in-favorites-view #view-fav .fav-grupo { margin-bottom: 20px; }
    body.in-favorites-view #view-fav .fav-grupo-rejilla.product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.in-favorites-view #view-fav .card-price-row .card-frozen {
        position: absolute; top: 8px; left: 8px; max-width: calc(100% - 56px);
        padding: 2px 4px; font-size: 9px; line-height: 14px;
    }
    body.in-provider-store .store-layout { padding: 8px 12px 0; }
    body.in-provider-store #view-tienda #grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card { padding: 8px; border-radius: 12px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-toolbar { position: absolute; top: 4px; left: 4px; right: 4px; margin: 0; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-img-wrapper {
        height: var(--mobile-product-image-height, clamp(44px, calc(50svh - 288px), 124px)); min-height: 0; padding: 4px; margin-bottom: 4px;
    }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-brand { display: none; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-name {
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        height: 32px; min-height: 32px; margin-bottom: 2px; font-size: 12px; line-height: 16px;
    }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-desc {
        height: 14px; min-height: 14px; margin-bottom: 2px; font-size: 10px; line-height: 14px;
    }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .search-card-conservation {
        position: absolute; top: 8px; left: 8px; max-width: calc(100% - 56px); margin: 0; font-size: 9px;
    }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-footer { padding-top: 4px; gap: 4px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-price-row { min-height: 20px; margin: 0; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-price { font-size: 14px; line-height: 20px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-price-unit { font-size: 10px; line-height: 14px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-actions { flex-direction: row; gap: 4px; padding: 0; border: 0; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .qty-control { flex: 0 0 84px; width: 84px; height: 44px; padding: 0; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .qty-btn { width: 30px; min-width: 30px; height: 44px; min-height: 44px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .qty-input { width: 24px; min-width: 0; padding: 0; font-size: 16px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .btn-add-card { height: 44px; min-height: 44px; padding: 4px 2px; font-size: 10px; line-height: 14px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .btn-add-card::before { display: none; }
}

/* Móvil estrecho (09/10): en dos columnas no caben la cantidad y el botón uno
   al lado del otro (a 320 px el botón medía 36 px con letra de 10 px). Van uno
   encima del otro, a todo el ancho y con letra de 14 px. */
@media (max-width: 480px) {
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .card-actions { flex-direction: column; align-items: stretch; gap: 6px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .qty-control { display: flex; flex: 0 0 auto; width: 100%; height: 44px; justify-content: space-between; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .qty-btn { width: 44px; min-width: 44px; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .qty-input { flex: 1 1 auto; width: auto; text-align: center; }
    body:is(.in-provider-store, .in-search-view, .in-favorites-view) :is(#view-tienda #grid, #view-buscar #search-grid, #view-fav .fav-grupo-rejilla) .catalog-product.product-card .btn-add-card {
        flex: 0 0 auto; width: 100%; height: 44px; min-height: 44px; padding: 4px 8px; font-size: 14px; line-height: 18px;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
}

/* Buscar en móvil (09/10): el campo se fue a la cabecera y la fila del botón de
   filtros tiene sitio para el recuento de resultados. */
@media (max-width: 767px) {
    body.in-search-view #view-buscar .search-controls-row #search-result-count {
        position: static; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none;
        grid-column: 2; grid-row: 1; align-self: center; justify-self: start; font-size: 14px; white-space: normal;
    }
}
