{# noir override — hero; preserves styled-text {% set %} lines, herocontent macro, split/centered branches, {% img %} background calls + overlay conditionals, trustLogos loop verbatim. #} {% set eyebrowText = eyebrow|get:"text"|default:eyebrow %} {% set headlineText = headline|get:"text"|default:headline %} {% set subText = subheadline|get:"text"|default:subheadline %} {% set descText = description|get:"text"|default:description %} {% set pText = ctaPrimary.text %} {% set pUrl = ctaPrimary.url %} {% set sText = ctaSecondary.text %} {% set sUrl = ctaSecondary.url %} {% set variant = template|default:"centered" %} {% set hasImage = backgroundImage %} {# When there is a background image the content sits on a dark grayscale photo + dark scrim in BOTH modes, so text must be light regardless of mode. onImg switches foreground/muted-foreground reads to light utility classes. #} {% set showOverlay = hasImage %} {% macro herocontent(align, onImg) %} {% if eyebrowText %}
{{ eyebrowText }}
{% endif %} {% if headlineText %}

{{ headlineText }}

{% endif %} {% if subText %}

{{ subText }}

{% endif %} {% if descText %}

{{ descText }}

{% endif %} {% if pText or sText %}
{% if pText and pUrl %}{{ pText }}{% endif %} {% if sText and sUrl %}{{ sText }}{% endif %}
{% endif %} {% if trustLogos %}

Trusted by

{% for logo in trustLogos %}{% if logo.url %}{% img logo.image alt=logo.alt class="h-8 w-auto" %}{% else %}{% img logo.image alt=logo.alt class="h-8 w-auto opacity-60" %}{% endif %}{% endfor %}
{% endif %} {% endmacro %} {% if variant == "split" %}
{% if hasImage %}
{% img backgroundImage alt=headlineText class="absolute inset-0 h-full w-full object-cover" layout="hero" %}
{% endif %}
{{ herocontent("left", false) }}
{% else %} {% set align = "center" %} {% if variant == "left-aligned" %}{% set align = "left" %}{% endif %}
{% if hasImage %}
{% img backgroundImage alt=headlineText class="h-full w-full object-cover" layout="hero" %}{% if showOverlay %}
{% endif %}
{% endif %}
{{ herocontent(align, hasImage) }}
{% endif %}