/* ==========================================================================
   Cartes produit : le même composant partout (catalogue, accueil, associés,
   ventes croisées du panier). <ul class="wc-block-product-template grille-produits"> > li.wc-block-product
   Catalogue : archive-product.html et product-search-results.html (patterns/catalogue.php).
   ========================================================================== */

/* ---------- Grille et carte ---------- */
.grille-produits.wc-block-product-template{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0}
.grille-produits .wc-block-product{position:relative;display:flex;flex-direction:column;gap:0;margin:0;width:auto;min-width:0;padding:10px 10px 16px;
  background:var(--surface);color:var(--texte);border-radius:var(--rayon-grand);text-align:center;transition:transform .6s var(--courbe),box-shadow .6s var(--courbe)}
@media (hover:hover){.grille-produits .wc-block-product:hover{transform:translateY(-6px);box-shadow:0 30px 60px color-mix(in srgb,var(--texte) 14%,transparent)}}
/* PIÈGE : WooCommerce ajoute 12 px sous chaque enfant de la carte et sous le résumé */
.grille-produits .wc-block-product>*{margin-block:0}
.grille-produits .wc-block-components-product-summary{margin:0}

/* image : le produit détouré, entier, sur blanc */
.grille-produits .carte-image{position:relative;margin:0;aspect-ratio:4/5;display:grid;place-items:center;border-radius:var(--rayon);overflow:hidden;background:var(--surface)}
.grille-produits .carte-image a{display:grid;place-items:center;width:100%;height:100%}
.grille-produits .carte-image img{width:100%;height:100%;padding:6%;transition:transform .5s}
@media (hover:hover){.grille-produits .wc-block-product:hover .carte-image img{transform:scale(1.06)}}
/* WooCommerce pose object-fit:cover en ligne sur les images de cartes */
.carte-image img,.wc-block-components-product-image img{object-fit:contain!important}

/* textes */
.carte-infos{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;padding:14px 10px 16px;text-align:center}
.carte-cat{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sourdine)}
.carte-cat a{text-decoration:none;color:inherit;pointer-events:none}
.carte-titre{font:400 28px/1.05 var(--police-titres);margin:2px 0 4px}
.carte-titre a{text-decoration:none}
.carte-prix{font-size:16px;font-weight:600;color:var(--texte)}
.carte-prix del{color:var(--sourdine);margin-right:6px}
.carte-prix ins{text-decoration:none;color:var(--promo)}

/* bouton */
.carte-bouton{display:flex;justify-content:center;margin:0 10px}
.carte-bouton .wp-block-button__link,.carte-bouton .wc-block-components-product-button__button{width:100%;justify-content:center}
.carte-bouton .added_to_cart{display:none}
.grille-produits .carte-bouton .wp-block-button__link,.grille-produits .carte-bouton .wc-block-components-product-button__button{
  width:100%;min-height:46px;background:var(--fond);color:var(--texte);border:1px solid var(--trait);font-size:15px;font-weight:600}   /* qualifié : WooCommerce fixe la largeur à 3 classes */
@media (hover:hover){.grille-produits .carte-bouton .wc-block-components-product-button__button:hover{background:var(--surface-rose);border-color:var(--surface-rose);color:var(--texte)}}
.wc-block-components-product-button{justify-content:center;align-items:center}
.wc-block-components-product-button__button{justify-content:center!important;text-align:center!important}

/* pastilles posées sur l'image (inc/boutique.php) : promotion, offre, bientôt disponible */
.wc-block-components-product-sale-badge,.carte-badge .wc-block-components-product-sale-badge{border:0;border-radius:var(--rayon-bouton);padding:6px 12px;
  font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:none;background:var(--promo)!important;color:var(--sur-accent)!important}
.wc-block-components-product-image .wc-block-components-product-sale-badge{top:12px;right:auto;left:12px}
.carte-offre,.carte-bientot{position:absolute;top:12px;left:12px;z-index:2;padding:6px 12px;border-radius:999px;color:#fff;font-size:13px;font-weight:700}
.carte-offre{letter-spacing:.03em;background:var(--degrade-promo);box-shadow:0 8px 18px -8px var(--rose-vif)}
.carte-bientot{letter-spacing:.06em;text-transform:uppercase;background:var(--nuit)}
.bouton-bientot{background:var(--surface-rose)!important;border-color:var(--surface-rose)!important;color:var(--texte)!important}
.wc-block-components-product-stock-indicator--out-of-stock{color:var(--alerte)}
.section-titre{font-size:var(--wp--preset--font-size--titre-2)}

/* ---------- Catalogue ---------- */
.catalogue-entete{padding-block:56px 32px}
.catalogue-titre{margin-top:16px;font-size:clamp(40px,5.8vw,86px);font-weight:400;line-height:.95}
.catalogue-intro{margin-top:14px;max-width:60ch;color:var(--sourdine);font-size:var(--wp--preset--font-size--chapeau)}
.catalogue-garanties{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px}
/* petite gamme, grandes cartes */
.catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px}
.boutique-onglets{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 40px}
.boutique-onglets .onglet>.wp-block-button__link{min-height:46px;padding:0 22px;border-radius:999px;background:var(--surface);color:var(--texte);border:1px solid var(--trait);font-size:15px;font-weight:600}
@media (hover:hover){.boutique-onglets .onglet>.wp-block-button__link:hover{border-color:var(--accent);background:var(--surface);color:var(--texte)}}
.boutique-onglets .onglet.est-actif>.wp-block-button__link{background:var(--accent);color:var(--sur-accent);border-color:var(--accent)}
.pagination{margin-top:56px;gap:8px}
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:40px;height:40px;border-radius:var(--rayon-bouton);text-decoration:none}
.pagination .page-numbers.current{background:var(--texte);color:var(--fond)}
.aucun-resultat{padding:48px 0;display:grid;gap:20px;justify-items:start}

@media (max-width:1100px){
  .grille-produits.wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}
}
@media (max-width:640px){
  .grille-produits .wc-block-product{padding:6px 6px 12px;border-radius:var(--rayon)}
  .carte-infos{padding:10px 6px 12px}
  .carte-titre{font-size:21px}
  .carte-prix{font-size:15px}
  .carte-bouton{margin:0 4px}
  .grille-produits .carte-bouton .wc-block-components-product-button__button{min-height:44px;padding:0 10px;font-size:13px}
  .catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .boutique-onglets{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1 * var(--gouttiere));padding-inline:var(--gouttiere);scrollbar-width:none}
  .boutique-onglets .onglet{flex:none}
}

/* Cadres et textes partagés avec la fiche et le panier. */
.grille-produits .wc-block-product{border:1px solid #e0dfe7;box-shadow:0 12px 30px -25px #20294e45}
.grille-produits .carte-image{background:linear-gradient(145deg,#fff,#f0eff4)}
.grille-produits .carte-cat,.grille-produits .carte-prix del{color:#555b71}

/* ---------- 1.8.18 : cartes en aplat teinté, plus d'image, coloris, carte du Pack ---------- */
/* chaque produit a sa teinte (inc/boutique.php, post_class) ; plus de contour ni d'ombre au repos */
.grille-produits .wc-block-product{--teinte:#F1EFF6;background:var(--teinte);border:0;box-shadow:none;padding:12px 12px 16px}
.grille-produits .carte--aera{--teinte:#F2EDE4}
.grille-produits .carte--nocturne{--teinte:#E5E8F3}
.grille-produits .carte--cocon{--teinte:#ECE7F8}
.grille-produits .carte--nomade{--teinte:#F7E9EE}
.grille-produits .carte-image{aspect-ratio:1/1;background:transparent;border-radius:calc(var(--rayon-grand) - 8px)}
.grille-produits .carte-image img{padding:13% 5% 3%}   /* place des étiquettes en haut à gauche */
.grille-produits .carte-prix{font-size:18px}
@media (hover:hover){.grille-produits .wc-block-product:hover{box-shadow:0 26px 50px -28px #20294e66}}
/* coloris, carte du Pack, effets : assets/css/vitrine.css */

/* ---------- Boutique plus dense : en-tête compact, garanties en bandeau bleu nuit, 3 colonnes ---------- */
.page-catalogue .catalogue-entete{padding-block:28px 22px}
.page-catalogue .catalogue-titre{margin-top:10px;font-size:clamp(34px,4vw,56px);line-height:1}
.page-catalogue .catalogue-intro{margin-top:8px}
.page-catalogue .catalogue-garanties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 20px;margin-top:20px;padding:16px 24px;border-radius:20px;background:var(--nuit);color:#fff}
.page-catalogue .catalogue-garanties .promesse{justify-content:center;margin:0;font-size:14px;font-weight:600;color:#fff}
.page-catalogue .catalogue-garanties .promesse::before{width:22px;height:22px;background-color:var(--rose)}
.page-catalogue .boutique-onglets{margin-bottom:24px}
.boutique-onglets .onglet>.wp-block-button__link{border-color:transparent;background:#fff}
.catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media (max-width:1100px){.catalogue .grille-produits.wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:781px){
  .page-catalogue .catalogue-garanties{gap:6px;padding:12px 8px}
  .page-catalogue .catalogue-garanties .promesse{flex-direction:column;gap:6px;text-align:center;font-size:13px;line-height:1.3}
  .page-catalogue .catalogue-garanties .promesse::before{width:20px;height:20px}
}
@media (max-width:640px){
  .grille-produits .wc-block-product{padding:8px 8px 12px}
  .grille-produits .carte-prix{font-size:16px}
  .catalogue .grille-produits.wc-block-product-template{gap:10px}
}

/* Ordinateur : la photo d'une carte se réduit sur un écran bas, pour voir la carte entière avec son bouton (1.8.21). */
@media (min-width:1025px){
  /* hauteur explicite (carré, plafonné) : la photo s'y ajuste entière, au lieu d'être rognée par un plafond seul */
  .grille-produits .wc-block-product{container-type:inline-size}
  .grille-produits .carte-image{aspect-ratio:auto;height:min(100cqw,max(150px,calc(var(--vue) - 390px)));grid-template:minmax(0,1fr)/minmax(0,1fr)}
  .grille-produits .carte-image a{grid-template:minmax(0,1fr)/minmax(0,1fr)}
  .grille-produits .carte-image img{max-height:100%}
}
