Hé bien une fois qu'on a compris le principe... c'est plutôt facile :
J'ai appliqué mon Hidden conditionnel à l'élément supérieur <div class="product-quantité Row sm-bottom"> au lieu de simplement l'appliquer à <div class="qty">, puisque cet élément supérieur contient le label que je voulais faire disparaitre
{block name='product_quantity'} <div class="product-quantity row sm-bottom{if $product.is_virtual} hidden{/if}"> <label class="form-control-label col-3">{l s='Quantity' d='Shop.Theme.Catalog'}</label> <div class="col-9"> <div class="qty"> <input type="number" name="qty" id="quantity_wanted" value="{$product.quantity_wanted}" class="form-control" min="{$product.minimal_quantity}" aria-label="{l s='Quantity' d='Shop.Theme.Actions'}" /> </div> </div> </div> {/block}