/* ==========================================================================
   ActionMarketing — UX Quick Wins
   Page : liste & commande de produits (HikaShop category listing)
   --------------------------------------------------------------------------
   Fichier CSS ADDITIF, chargé APRÈS template.css. Purement présentationnel.
   - Aucune modification de markup / PHP, aucun hook JS touché.
   - Aucun repère métier retiré (surlignage jaune, rouge profit, vert/rouge
     stock, libellés de boutons conservés). Évolution, pas révolution.
   - Rollback = supprimer ce fichier + la ligne addStyleSheet dans index.php.
   ========================================================================== */

/* --------------------------------------------------------------------------
   QW#3 — Contraste du prix/unité (le critère d'achat le plus important)
   Le texte était vert sur fond jaune (contraste insuffisant). On CONSERVE le
   surlignage jaune (repère visuel fort et familier) et on fonce uniquement le
   texte pour le rendre lisible d'un coup d'œil.
   NB : id="prix_unite" est dupliqué par ligne dans le markup existant ; un
   sélecteur #id en CSS s'applique bien à toutes les occurrences.
   -------------------------------------------------------------------------- */
#prix_unite font {
  color: #1a1a1a !important;
}

/* --------------------------------------------------------------------------
   QW#6 — Commentaire promo (texte bleu) adouci
   Reste bleu (repère « promo » conservé) mais moins criard, et se distingue
   des liens produits. Améliore la hiérarchie sans rien déplacer.
   -------------------------------------------------------------------------- */
.hikashop_product_info_deal,
.hikashop_product_info_deal font,
.hikashop_product_info_deal span {
  color: #0b5aa6;
}
.hikashop_product_info_deal {
  font-size: 0.92em;
}

/* --------------------------------------------------------------------------
   QW#7 — Confort de lecture sur desktop (table dense)
   Survol de ligne léger + zébrure un peu plus marquée pour que l'œil ne
   « saute » pas d'une ligne à l'autre. Purement additif.
   -------------------------------------------------------------------------- */
.hikashop_products_table tbody tr:hover {
  background-color: #fbfbe8;
}
.hikashop_products_table.table-striped tbody tr:nth-child(odd) {
  background-color: #fafafa;
}

/* --------------------------------------------------------------------------
   QW#5 (partie CSS) — Aération de la colonne Prix/Caisse dense
   Un peu d'air avant le format/PDS pour séparer visuellement le bloc « prix »
   du bloc « rentabilité ». Un vrai séparateur bordé demanderait un changement
   de markup (à confier à php-tech-lead) ; ici on se limite à l'espacement.
   -------------------------------------------------------------------------- */
.hikashop_product_price_row .hikashop_product_width_main {
  display: inline-block;
  margin-top: 4px;
}

/* --------------------------------------------------------------------------
   QW#2 — Cibles tactiles agrandies sur mobile / tablette
   Boutons « Cartes » et « Ajouter au panier » portés à ≥44px (recommandation
   tactile) pour une clientèle peu habile au tactile. Desktop INCHANGÉ.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .hikashop_product_add_to_cart_row .hikashop_cart_input_button,
  .hikashop_product_add_to_cart_row input.hikashop_cart_input_button,
  .hikashop_product_add_to_cart_row button.hikashop_cart_input_button {
    min-height: 44px;
    padding: 10px 14px;
    font-size: 15px;
  }
}


/* --------------------------------------------------------------------------
   QW#8 — Panier qui suit le défilement (« freeze » à la Excel)
   La colonne de droite (#aside : Authentification, Menu Utilisateur, Panier)
   reste visible pendant le défilement de la longue liste de produits : le
   total du panier est consultable sans remonter en haut de page.

   Pourquoi #aside et pas seulement le module Panier : en position sticky un
   élément ne peut se déplacer que dans la hauteur de son parent. Le module
   Panier est le dernier bloc de #aside (~443px) ; le rendre collant seul ne
   lui laisserait presque aucune course. On colle donc la colonne entière,
   dont le parent (.row-fluid) fait toute la hauteur de la liste.

   Vérifié sur le site : aucun ancêtre en overflow≠visible ni en transform
   (les deux cassent position:sticky). Aucun markup / PHP touché.

   Sous 768px, .span3 passe en pleine largeur et #aside s'empile SOUS le
   contenu : coller n'aurait aucun sens, la règle ne s'y applique pas.
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
  #aside {
    position: sticky;
    top: 10px;
  }
}

/* Filet de sécurité UNIQUEMENT si la fenêtre est plus courte que la colonne
   (~443px + marges) : on rend alors #aside défilable pour ne jamais rogner le
   bas du panier. Volontairement limité aux petites hauteurs : appliqué en
   permanence, overflow-y force overflow-x à « auto » et fait apparaître une
   barre de défilement horizontale, le contenu du module Panier dépassant déjà
   de quelques pixels en largeur (176px pour 169px disponibles). */
@media (min-width: 768px) and (max-height: 520px) {
  #aside {
    max-height: calc(100vh - 20px);
    overflow-y: auto;
  }
}

/* --------------------------------------------------------------------------
   QW#9 — Dimensions des boutons -/+ de la liste (cibles de clic)
   Les dimensions vivaient en style inline dans add_to_cart_listing.php, ce qui
   interdisait toute adaptation au tactile (un attribut style ne peut pas
   porter de media query) et bloquait toute surcharge CSS. Elles sont
   remontées ici ; le markup ne porte plus que les classes.

   Desktop : 34x30 au lieu de 28x22. Mesuré sur le site, l'ancienne cible
   faisait rater des clics à la souris. On reste compact pour ne pas gonfler
   la hauteur des lignes d'une liste déjà très dense.

   Tactile : 44x44, le minimum recommandé, appliqué aussi via (pointer:coarse)
   pour couvrir les tablettes larges que le seuil en largeur rate.
   -------------------------------------------------------------------------- */
.am_qty_cell {
  width: 44px;
  text-align: right;
  white-space: nowrap;
  vertical-align: middle;
}
.am_qty_control {
  display: inline-block;
}
.am_qty_control .am_qty_btn {
  display: block;
  width: 34px;
  min-height: 30px;
  padding: 1px 0;
  font-weight: bold;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.am_qty_control .am_qty_plus {
  margin-bottom: 3px;
}

@media (max-width: 768px), (pointer: coarse) {
  .am_qty_cell {
    width: 54px;
  }
  .am_qty_control .am_qty_btn {
    width: 44px;
    min-height: 44px;
    font-size: 18px;
  }
  .am_qty_control .am_qty_plus {
    margin-bottom: 4px;
  }
}

/* --------------------------------------------------------------------------
   QW#10 — Barre de filtrage instantané de la liste de produits
   Interface construite par js/am-filtre-produits.js ; voir ce fichier pour le
   pourquoi. La page n'offrait aucune recherche sur des catégories allant
   jusqu'à 397 produits : les clients passaient par « Tous » puis le Ctrl+F du
   navigateur, ce qui est le cas le plus lourd du site.

   La barre est collante comme la colonne panier : sur une longue liste, le
   champ reste atteignable sans remonter en haut de page.
   -------------------------------------------------------------------------- */
.am-filtre-barre {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 10px;
  margin-bottom: 6px;
  background: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 3px;
}
@media (min-width: 768px) {
  .am-filtre-barre {
    position: sticky;
    top: 10px;
    z-index: 5;
  }
}
.am-filtre-etiquette {
  font-weight: bold;
  margin: 0;
}
.am-filtre-champ {
  flex: 1 1 220px;
  min-width: 160px;
  min-height: 34px;
  padding: 4px 8px;
  font-size: 15px;
}
.am-filtre-effacer {
  min-height: 34px;
  padding: 4px 12px;
  cursor: pointer;
}
.am-filtre-compteur {
  color: #555;
  white-space: nowrap;
}

/* Lignes ecartees par le filtre */
.am-filtre-masque {
  display: none !important;
}

/* Filtre actif : la zebrure nth-child ne veut plus rien dire une fois des
   lignes masquees. On la neutralise, le script la recalcule sur les seules
   lignes visibles. */
.hikashop_products_table.am-filtre-actif.table-striped tbody tr:nth-child(odd) {
  background-color: transparent;
}
.hikashop_products_table.am-filtre-actif tbody tr.am-filtre-impair {
  background-color: #fafafa;
}

/* Cibles tactiles de la barre */
@media (max-width: 768px), (pointer: coarse) {
  .am-filtre-champ,
  .am-filtre-effacer {
    min-height: 44px;
    font-size: 16px;
  }
}

/* --------------------------------------------------------------------------
   QW#11 — Nombre d'items sous le total du panier
   Rendu par views/product/tmpl/cart.php. Discret : le total reste l'information
   principale, le compte est un repère secondaire.
   -------------------------------------------------------------------------- */
.am_cart_items {
  margin-top: 2px;
  color: #555;
  font-size: 0.92em;
}
