/* =========================================================
   MOBILE (≤768px) — Cartes produit (clean & robuste)
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){

  /* — Variables mobile — */
  :root{
    --card-media-ratio: 4 / 5;
    --title-lh: 1.32;
    --title-lines: 2;             /* clamp fermé (shop) */
    --title-lines-open: 4;        /* nb de lignes en état ouvert */
  }

  /* — Grille 2 colonnes (shop) — */
  .woocommerce ul.products{
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    padding: 0 12px !important;
  }

  /* — Vignette (shop) — */
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap{
    aspect-ratio: var(--card-media-ratio) !important;
    min-height: clamp(180px, 46vw, 320px) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    position: relative !important;
    background-size: cover !important;
    background-position: center !important;
    margin-bottom: 12px !important;
    transform: none !important;
  }
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap img{
    position:absolute !important; inset:0 !important;
    width:100% !important; height:100% !important;
    object-fit:cover !important; border-radius:inherit !important;
  }

  /* — Price pill compact (shop) — */
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap .price-overlay{
    position:absolute; right:8px; bottom:8px;
    padding:4px 7px; border-radius:10px;
    background:rgba(255,255,255,.85);
    -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
    box-shadow:0 1px 4px rgba(0,0,0,.06);
    display:inline-flex; align-items:center;
    max-width:calc(100% - 16px);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    z-index: 1; /* ← shop = 1, conservé */
  }
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap .price-overlay *,
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap .price-overlay bdi{
    font-size:12px !important; line-height:1.2 !important; font-weight:600 !important;
  }

  /* — Résumé (SHOP/ARCHIVES) : ouvert + grille simple — */
  .woocommerce ul.products li.product .astra-shop-summary-wrap{
    display: grid !important;
    grid-template-rows:
      auto
      minmax(calc(var(--title-lines) * 1em * var(--title-lh)),
             calc(var(--title-lines) * 1em * var(--title-lh)))
      auto;
    row-gap: 8px;
    align-items: center;
    padding: 0 10px 10px;
    margin-top: 8px;
    height: auto !important;
    overflow: visible !important;
  }

  /* — Titre (shop & related/upsells) — */
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .single-product .related.products ul.products li.product .woocommerce-loop-product__title{
    font-family: var(--heading-font, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(13px, 3.7vw, 15px) !important;
    font-weight: 500 !important;
    line-height: var(--title-lh) !important;
    color: var(--ink) !important;
    text-align: center !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: var(--title-lines) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-height: calc(var(--title-lines) * 1em * var(--title-lh)) !important;
    max-height: calc(var(--title-lines) * 1em * var(--title-lh)) !important;
    margin: 3px 0 10px !important;
  }

  /* — Masque le prix texte dans le résumé (on conserve le pill) — */
  .woocommerce ul.products li.product .astra-shop-summary-wrap .price{ display:none !important; }

  /* — Fournisseur : affiché seulement quand carte “ouverte” (active) — */
  .woocommerce ul.products li.product .lh-supplier-loop{ display:none !important; }
  .woocommerce ul.products li.product.active .lh-supplier-loop{
    display:inline-flex !important; align-items:center; justify-content:center; gap:.42rem;
    font-size:12.5px; color:var(--muted); opacity:.96;
  }

  /* — Feedback visuel carte ouverte — */
  .woocommerce ul.products li.product.active::after{
    content:""; position:absolute; inset:0; border-radius:12px; pointer-events:none;
    box-shadow: inset 0 0 0 .6px color-mix(in srgb, var(--lh-stroke, var(--doré-naturel)) 40%, #fff 60%);
  }
  .woocommerce ul.products li.product.active{
    box-shadow: var(--ombre-hover, 0 10px 22px rgba(0,0,0,.08));
  }

  /* — Pas de halo au tap — */
  .woocommerce ul.products li.product,
  .woocommerce ul.products li.product a,
  .woocommerce ul.products li.product button{
    -webkit-tap-highlight-color: transparent;
  }
  .woocommerce ul.products li.product a:focus,
  .woocommerce ul.products li.product a:focus-visible{
    outline: none !important; box-shadow: none !important;
  }
		
}

	@media (hover:none) and (pointer:coarse), (max-width:768px){
  /* LAISSE le focus visible pour clavier */
  .woocommerce ul.products li.product a:focus-visible{
    outline: 2px solid var(--ring) !important;
    outline-offset: 3px !important;
    border-radius: 6px !important;
    box-shadow: none !important;
  }
  /* Le polyfill .no-focus-ring gère la suppression au tap */
}

/* =========================================================
   MOBILE — CTA : reset total (anti-thème & anti-swatches)
   + reconstruction, EN FLUX (pas d’absolu)
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){

  /* 0) Supprimer tout bouton overlay dans l’image (Astra/plugins) */
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap a[class*="on-card"],
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap a[class*="select-options"],
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap a.ast-on-card-button,
  .woocommerce ul.products li.product .astra-shop-thumbnail-wrap a.ast-select-options-trigger{
    display: none !important;
  }

  /* 1) RESET + BUILD — cible UNIQUEMENT le CTA du résumé */
  .woocommerce ul.products li.product .astra-shop-summary-wrap > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    all: unset !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    place-self: center !important;
    box-sizing: border-box !important;
    height: 34px !important;
    padding: 0 14px !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;

    background: var(--cta-strong) !important;
    border: 1px solid var(--cta-strong-border) !important;
    color: #fff !important; -webkit-text-fill-color:#fff !important;
    border-radius: 999px !important;

    font: 600 12.5px/1 var(--body-font, Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial) !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;

    cursor: pointer !important;
    user-select: none !important;
    position: relative !important; z-index: 2;
  }

  /* 2) Libellés longs (variable/external/grouped) : compaction douce */
  .woocommerce ul.products li.product .astra-shop-summary-wrap > a[class*="product_type_"]{
    font-size: 12px !important;
    letter-spacing: .045em !important;
    padding: 0 12px !important;
  }

  /* 3) Aucune icône / pseudo-élément ne doit rester */
  .woocommerce ul.products li.product .astra-shop-summary-wrap > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"])::before,
  .woocommerce ul.products li.product .astra-shop-summary-wrap > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"])::after{
    content: none !important;
  }
  .woocommerce ul.products li.product .astra-shop-summary-wrap > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]) i,
  .woocommerce ul.products li.product .astra-shop-summary-wrap > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]) svg{
    display: none !important;
  }

  /* 4) États Woo (loading/added) — pas de text-indent/marge fantôme */
  .woocommerce a.button,
  .woocommerce a.button.add_to_cart_button,
  .woocommerce a.button.product_type_variable,
  .woocommerce a.button.loading,
  .woocommerce a.button.added,
  .woocommerce a.added_to_cart{
    text-indent: 0 !important;
    margin: 0 !important;
    padding-left: 0 !important;
  }

  /* 5) RELATED/UPSELLS : le CTA apparaît seulement quand la carte est ouverte */
  .single-product .related.products ul.products li.product .astra-shop-summary-wrap > a,
  .woocommerce .upsells ul.products li.product .astra-shop-summary-wrap > a{
    display: none !important;
  }
  .single-product .related.products ul.products li.product.active .astra-shop-summary-wrap > a,
  .woocommerce .upsells ul.products li.product.active .astra-shop-summary-wrap > a{
    display: inline-flex !important;
  }
}






/* =========================================================
   MOBILE — CTA seulement en .active + titre visible au tap
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){

  /* 1) Par défaut : masquer le CTA (shop/archives/related/upsells) */
  .woocommerce ul.products li.product .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    display: none !important;
  }

  /* 2) Afficher le CTA uniquement quand la carte est ouverte */
  .woocommerce ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    display: inline-flex !important;
  }

  /* 3) Ouvrir vraiment le résumé au tap */
  .woocommerce ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap{
    display: grid !important;
    grid-auto-columns: 1fr !important;
    grid-template-rows:
      auto
      minmax(calc(3 * 1em * var(--title-lh, 1.32)),
             calc(3 * 1em * var(--title-lh, 1.32)))
      auto !important;
    row-gap: 8px !important;
    align-items: center !important;

    height: auto !important;
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    margin-top: 8px !important;
  }

  /* 4) Titre bien visible au tap (3 lignes) */
  .woocommerce ul.products li.product:is(.active, :focus-within)
  .woocommerce-loop-product__title{
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
            line-clamp: 3 !important;
    min-height: calc(3 * 1em * var(--title-lh, 1.32)) !important;
    max-height: calc(3 * 1em * var(--title-lh, 1.32)) !important;
    white-space: normal !important;
    text-overflow: ellipsis !important;
    -webkit-mask-image: none !important;
            mask-image: none !important;
    color: var(--ink, #111) !important;
    opacity: 1 !important;
    visibility: visible !important;
    margin: 4px 0 10px !important;
  }
}

/* =========================================================
   MOBILE — .active = marge visuelle + CTA + titre visible
   ========================================================= */
/*@media (hover:none) and (pointer:coarse), (max-width:768px){

  /* A) Marge visuelle en .active : on scale toute la carte */
  /*.woocommerce ul.products li.product{
    will-change: transform;
    transform: translateZ(0);
    transition: transform .26s cubic-bezier(.22,.61,.36,1);
  }
  .woocommerce ul.products li.product:is(.active, :focus-within){
    --card-active-scale: 0.9;   /* ≈ 10–12px/side */
   /* --card-active-lift: -2px;
    transform: translateY(var(--card-active-lift)) scale(var(--card-active-scale));
    transform-origin: top center;
    box-shadow: var(--ombre-hover, 0 10px 22px rgba(0,0,0,.08));
  }
  .woocommerce ul.products li.product:is(.active, :focus-within)::after{
    content:""; position:absolute; inset:0; border-radius:12px; pointer-events:none;
    box-shadow: inset 0 0 0 .6px color-mix(in srgb, var(--lh-stroke, var(--doré-naturel)) 40%, #fff 60%);
  }
}*/

@media (hover:none) and (pointer:coarse), (max-width:768px){
  .woocommerce ul.products li.product{
    will-change: transform;
    transform: translateZ(0);
    transition: transform .26s cubic-bezier(.22,.61,.36,1);
  }
  .woocommerce ul.products li.product:is(.active, :focus-within){
    --card-active-scale: 0.9;
    --card-active-lift: -2px;
    transform: translateY(var(--card-active-lift)) scale(var(--card-active-scale));
    transform-origin: top center;
    box-shadow: var(--ombre-hover, 0 10px 22px rgba(0,0,0,.08));
  }
  
    .woocommerce ul.products li.product:is(.active, :focus-within)::after{
    content:""; position:absolute; inset:0; border-radius:12px; pointer-events:none;
    box-shadow: inset 0 0 0 .6px color-mix(in srgb, var(--lh-stroke, var(--doré-naturel)) 40%, #fff 60%);
  }
}


/* =========================================================
   MOBILE — Titre sur 4 lignes en état ouvert (.active)
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){
  .woocommerce ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap{
    grid-template-rows:
      auto
      minmax(calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)),
             calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)))
      auto !important;
  }
  .woocommerce ul.products li.product:is(.active, :focus-within) .woocommerce-loop-product__title{
    -webkit-line-clamp: var(--title-lines-open) !important;
            line-clamp: var(--title-lines-open) !important;
    min-height: calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)) !important;
    max-height: calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)) !important;
  }
}

/* =========================================================
   MOBILE (≤768px) — RELATED & UPSELLS = PARITÉ SHOP
   (grille, vignette, résumé, titre, CTA)
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){

  /* 1) Grille identique au shop (ici on force display) */
  .single-product .related.products ul.products,
  .woocommerce .upsells ul.products{
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    padding: 0 12px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* 2) Vignette : reset dur + centrage */
  .single-product .related.products ul.products li.product .astra-shop-thumbnail-wrap,
  .woocommerce .upsells ul.products li.product .astra-shop-thumbnail-wrap{
    aspect-ratio: var(--card-media-ratio, 4 / 5) !important;
    min-height: clamp(180px, 46vw, 320px) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    position: relative !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    transform: none !important;
    margin-bottom: 12px !important;
  }
  .single-product .related.products ul.products li.product .astra-shop-thumbnail-wrap img,
  .woocommerce .upsells ul.products li.product .astra-shop-thumbnail-wrap img{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important; height: 100% !important;
    object-fit: cover !important; object-position: center center !important;
    border-radius: inherit !important;
    transform: none !important; margin: 0 !important;
  }
  /* pas de boutons overlay dans l'image */
  .single-product .related.products ul.products li.product .astra-shop-thumbnail-wrap a[class*="on-card"],
  .single-product .related.products ul.products li.product .astra-shop-thumbnail-wrap a[class*="select-options"],
  .woocommerce .upsells ul.products li.product .astra-shop-thumbnail-wrap a[class*="on-card"],
  .woocommerce .upsells ul.products li.product .astra-shop-thumbnail-wrap a[class*="select-options"]{
    display: none !important;
  }

  /* 3) Price pill : compact, jamais rogné */
  .single-product .related.products ul.products li.product .astra-shop-thumbnail-wrap .price-overlay,
  .woocommerce .upsells ul.products li.product .astra-shop-thumbnail-wrap .price-overlay{
    right: 8px !important; bottom: 8px !important;
    padding: 4px 7px !important; border-radius: 10px !important;
    background: rgba(255,255,255,.85) !important;
    -webkit-backdrop-filter: blur(4px) !important; backdrop-filter: blur(4px) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.06) !important;
    display: inline-flex !important; align-items: center !important;
    max-width: calc(100% - 16px) !important;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
    z-index: 2 !important; /* ← related/upsells = 2, conservé */
  }
  .single-product .related.products ul.products li.product .astra-shop-thumbnail-wrap .price-overlay *,
  .woocommerce .upsells ul.products li.product .astra-shop-thumbnail-wrap .price-overlay *{
    font-size: 12px !important; line-height: 1.2 !important; font-weight: 600 !important;
  }

  /* 4) Résumé OUVERT (parité shop) */
  .single-product .related.products ul.products li.product .astra-shop-summary-wrap,
  .woocommerce .upsells ul.products li.product .astra-shop-summary-wrap{
    display: grid !important;
    grid-auto-columns: 1fr !important;
    grid-template-rows:
      auto
      minmax(calc(var(--title-lines, 2) * 1em * var(--title-lh, 1.32)),
             calc(var(--title-lines, 2) * 1em * var(--title-lh, 1.32)))
      auto !important;
    row-gap: 8px !important; align-items: center !important;
    padding: 0 10px 10px !important; margin-top: 8px !important;
    height: auto !important; max-height: none !important;
    opacity: 1 !important; overflow: visible !important; visibility: visible !important;
    position: relative !important; z-index: 2;
  }

  /* 5) Titre = parité shop (2 lignes), centré H/V ; 4 lignes en .active */
  .single-product .related.products ul.products li.product .woocommerce-loop-product__title,
  .woocommerce .upsells ul.products li.product .woocommerce-loop-product__title{
    font-family: var(--heading-font, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(13px, 3.7vw, 15px) !important;
    font-weight: 500 !important; line-height: var(--title-lh, 1.32) !important;
    color: var(--ink, #111) !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: var(--title-lines, 2) !important;
            line-clamp: var(--title-lines, 2) !important;

    min-height: calc(var(--title-lines, 2) * 1em * var(--title-lh, 1.32)) !important;
    max-height: calc(var(--title-lines, 2) * 1em * var(--title-lh, 1.32)) !important;

    text-align: center !important; white-space: normal !important; text-overflow: ellipsis !important;
    margin: 3px 0 10px !important;
    justify-self: center !important; align-self: center !important;
  }
  .single-product .related.products ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap,
  .woocommerce .upsells ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap{
    grid-template-rows:
      auto
      minmax(calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)),
             calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)))
      auto !important;
  }
  .single-product .related.products ul.products li.product:is(.active, :focus-within) .woocommerce-loop-product__title,
  .woocommerce .upsells ul.products li.product:is(.active, :focus-within) .woocommerce-loop-product__title{
    -webkit-line-clamp: var(--title-lines-open) !important;
            line-clamp: var(--title-lines-open) !important;
    min-height: calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)) !important;
    max-height: calc(var(--title-lines-open) * 1em * var(--title-lh, 1.32)) !important;
  }

  /* 6) CTA : en FLUX (jamais absolute), caché hors .active, visible en .active */
  .single-product .related.products ul.products li.product .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]),
  .woocommerce .upsells ul.products li.product .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    position: static !important; inset: auto !important;
    margin: 4px auto 2px !important; max-width: 100% !important;
    display: none !important; /* caché par défaut */
  }
  .single-product .related.products ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]),
  .woocommerce .upsells ul.products li.product:is(.active, :focus-within) .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    display: inline-flex !important;
  }

  /* 7) Pas de translate sur la carte entière (évite la “remontée”) */
  .single-product .related.products ul.products li.product,
  .woocommerce .upsells ul.products li.product{
    transform: none !important;
  }
}

/* MOBILE — RELATED/UPSELLS : RESET IMAGE = comme sur shop (zéro transform) */
@media (hover:none) and (pointer:coarse), (max-width:768px){
  /* (rappel) reset image dans le <a> : déjà couvert via img direct ↑ */
  .single-product .related.products ul.products li.product
  .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link,
  .woocommerce .upsells ul.products li.product
  .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link{
    position: relative !important;
    display: block !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .single-product .related.products ul.products li.product
  .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link::before,
  .single-product .related.products ul.products li.product
  .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link::after,
  .woocommerce .upsells ul.products li.product
  .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link::before,
  .woocommerce .upsells ul.products li.product
  .astra-shop-thumbnail-wrap > a.woocommerce-LoopProduct-link::after{
    content: none !important;
  }
}

/* MOBILE — RELATED/UPSELLS : scale du CONTENEUR en .active (marge visuelle) */
@media (hover:none) and (pointer:coarse), (max-width:768px){
  .single-product .related.products ul.products li.product:is(.active, :focus-within) .astra-shop-thumbnail-wrap,
  .woocommerce .upsells ul.products li.product:is(.active, :focus-within) .astra-shop-thumbnail-wrap{
    transform: scale(.9) translateZ(0) !important;
    transform-origin: center !important;
    transition: transform .22s cubic-bezier(.22,.61,.36,1) !important;
    overflow: hidden !important;
    border-radius: 14px !important;
  }

  .single-product .related.products ul.products li.product:is(.active, :focus-within) .astra-shop-thumbnail-wrap img,
  .woocommerce .upsells ul.products li.product:is(.active, :focus-within) .astra-shop-thumbnail-wrap img{
    transform: none !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* =========================================================
   MOBILE — RELATED/UPSELLS : titre centré + CTA plus petit
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){

  /* Centre horizontalement le contenu texte du résumé */
  .single-product .related.products ul.products li.product .astra-shop-summary-wrap,
  .woocommerce .upsells ul.products li.product .astra-shop-summary-wrap{
    justify-items: center !important;
    text-align: center !important;
  }

  /* Titre parfaitement centré horizontalement */
  .single-product .related.products ul.products li.product .woocommerce-loop-product__title,
  .woocommerce .upsells ul.products li.product .woocommerce-loop-product__title{
    text-align: center !important;
    justify-self: center !important;
  }

  /* CTA : police plus petite + centrage + compaction douce */
  .single-product .related.products ul.products li.product .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]),
  .woocommerce .upsells ul.products li.product .astra-shop-summary-wrap
  > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    font-size: clamp(10px, 3vw, 11px) !important;
    letter-spacing: .04em !important;
    padding: 0 12px !important;
    margin-inline: auto !important;
  }
}

/* =========================================================
   TITRES — centrage horizontal garanti (shop / related / upsells)
   ========================================================= */
.woocommerce ul.products li.product .astra-shop-summary-wrap,
.single-product .related.products ul.products li.product .astra-shop-summary-wrap,
.woocommerce .upsells ul.products li.product .astra-shop-summary-wrap{
  justify-items: center !important;
  text-align: center !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
.woocommerce .upsells ul.products li.product .woocommerce-loop-product__title{
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  justify-self: stretch !important;
  text-align: center !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  align-self: center !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title > a,
.single-product .related.products ul.products li.product .woocommerce-loop-product__title > a,
.woocommerce .upsells ul.products li.product .woocommerce-loop-product__title > a{
  display: inline-block !important;
  width: 100% !important;
  text-align: inherit !important;
  white-space: normal !important;
  line-height: inherit !important;
}

/* =========================================================
   MOBILE — Cartes "only-child" (une seule carte dans la liste)
   Réduction douce des tailles + CTA compact
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){

  .woocommerce ul.products li.product:only-child,
  .woocommerce ul.products li.product:first-child:last-child{
    /* descendant rules only */
  }

  /* Titre un peu plus petit */
  .woocommerce ul.products li.product:only-child .woocommerce-loop-product__title,
  .woocommerce ul.products li.product:first-child:last-child .woocommerce-loop-product__title{
    font-size: clamp(12.5px, 3.1vw, 13.8px) !important;
    line-height: var(--title-lh, 1.32) !important;
    text-align: center !important;
    justify-self: center !important;
  }

  /* Fournisseur (si affiché) légèrement réduit */
  .woocommerce ul.products li.product:only-child .lh-supplier-loop,
  .woocommerce ul.products li.product:first-child:last-child .lh-supplier-loop{
    font-size: 12px !important;
  }

  /* CTA compact (texte + hauteur) */
  .woocommerce ul.products li.product:only-child .astra-shop-summary-wrap > a.button,
  .woocommerce ul.products li.product:first-child:last-child .astra-shop-summary-wrap > a.button{
    height: 32px !important;
    padding: 0 12px !important;
    font-size: 10.5px !important;
    letter-spacing: .04em !important;
  }
}


}

@media (hover:none) and (pointer:coarse), (max-width:768px){
  .woocommerce ul.products li.product
  .astra-shop-summary-wrap > a:is(.button, .add_to_cart_button, .added_to_cart, [class*="product_type_"]){
    height: 44px !important;
    padding-inline: 18px !important;

    /* 👇 élargit le bouton en fonction du libellé, sans dépasser la carte */
    min-width: clamp(140px, calc(12ch + 24px), 100%) !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: visible !important;     /* plus d’ellipse/coupe */
    text-overflow: unset !important;

    font-size: 13px !important;
  }
}

/* =========================================================
   MOBILE — CTA un peu plus large (catégories / related / upsells)
   ========================================================= */
@media (hover:none) and (pointer:coarse), (max-width:768px){
  body.tax-product_cat ul.products li.product:is(.active,:focus-within) .astra-shop-summary-wrap
  > a:is(.button,.add_to_cart_button,.added_to_cart,[class*="product_type_"]),
  .woocommerce .upsells ul.products li.product:is(.active,:focus-within) .astra-shop-summary-wrap
  > a:is(.button,.add_to_cart_button,.added_to_cart,[class*="product_type_"]){
    height: 44px !important;
    padding-inline: 18px !important;
    /* largeur un poil plus généreuse que le shop */
    min-width: clamp(160px, calc(14ch + 28px), 100%) !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: unset !important;
    margin-inline: auto !important;
  }

  /* s'assure que rien ne coupe visuellement le bouton */
  body.tax-product_cat ul.products li.product .astra-shop-summary-wrap,
  .woocommerce .upsells ul.products li.product .astra-shop-summary-wrap{
    overflow: visible !important;
  }
}


/* WooCommerce : désactiver le scroll-to-top sur shop + archives/catégories */
body.woocommerce.archive .ast-scroll-to-top,
body.post-type-archive-product .ast-scroll-to-top,
body.tax-product_cat .ast-scroll-to-top,
body.woocommerce.archive [class*="scroll-to-top"],
body.post-type-archive-product [class*="scroll-to-top"],
body.tax-product_cat [class*="scroll-to-top"]{
  display: none !important;
}



