{# Reusable pricing card macro. FlexiHub style — recommended tier gets a grad-bg outer border (1.5px gradient frame). Args: slug : URL-safe identifier (goes into href, NOT piped through | safe — autoescape protects URL) name : Display name (piped through | safe — may contain entities; current names like "DictIA 8" are entity-free) price_setup : Setup price string with NBSP (e.g. '3 450 $') — piped through | safe price_monthly : Monthly price string with NBSP (e.g. '173 $') — piped through | safe target : Target audience tagline — piped through | safe (may contain entities) features : List of feature strings, each piped through | safe (will contain   entities) recommended : If True, wraps the card in grad-bg gradient frame + RECOMMANDÉ badge cta_url : Base URL for the CTA — slug appended (NOT piped through | safe — URL injection guard) Note: CTA label is "Réserver [name]" not "Choisir" because product is in pre-launch (cf. trust bar "Pré-inscription ouverte") — LPC art. 219 hygiene. The button macro autoescapes its `text` arg, so `name` MUST NOT contain HTML entities (verified: "DictIA 8", "DictIA 16", "DictIA Cloud" are all entity-free). #} {%- macro pricing_card(slug, name, price_setup, price_monthly, target, features, recommended=False, cta_url='/checkout') -%} {%- endmacro -%}