{# Reusable button macro. Variants: primary | secondary | ghost (default: primary). Sizes: sm | md | lg (default: md). #} {%- macro button(text, href='#', variant='primary', size='md', icon=None, target=None, rel=None, as_button=False, type='button') -%} {%- set variants = { 'primary': 'grad-bg shadow-cta hover:shadow-cta-hover hover:-translate-y-px', 'secondary': 'bg-white text-brand-navy border border-brand-border hover:bg-brand-bg', 'ghost': 'text-white border border-white/[0.08] hover:bg-white/[0.05]' } -%} {%- set sizes = { 'sm': 'px-3 py-1.5 text-sm', 'md': 'px-5 py-2.5 text-[15px]', 'lg': 'px-6 py-3 text-base' } -%} {%- set classes = variants.get(variant, variants['primary']) -%} {%- set sizing = sizes.get(size, sizes['md']) -%} {%- if as_button -%} {%- else -%} {{ text }} {%- if icon -%}{%- endif -%} {%- endif -%} {%- endmacro -%}