{% set c = module.content %} {% set s = module.style %} {% set b = module.behavior %} {% set spacing = module.spacing %} {% set a = module.advanced %} {# Build CSS classes. Visual styling comes from the global accordion system (css/components/accordion.css); this module only adds module-chrome classes plus the global .accordion--* variant hooks for icon type / position. #} {% set module_classes = "accordion" %} {% set module_classes = module_classes ~ " accordion--align-" ~ s.layout.alignment %} {% if s.icon_style.position == "left" %} {% set module_classes = module_classes ~ " accordion--icon-left" %} {% endif %} {% if s.icon_style.type == "plus" %} {% set module_classes = module_classes ~ " accordion--plus" %} {% elif s.icon_style.type == "arrow" %} {% set module_classes = module_classes ~ " accordion--arrow" %} {% elif s.icon_style.type == "none" %} {% set module_classes = module_classes ~ " accordion--none" %} {% endif %} {% if s.layout.dividers %} {% set module_classes = module_classes ~ " accordion--dividers" %} {% endif %} {% if s.card_style.border %} {% set module_classes = module_classes ~ " accordion--bordered" %} {% endif %} {% if s.card_style.shadow == "sm" %} {% set module_classes = module_classes ~ " accordion--shadow" %} {% endif %} {% if a.custom_class %} {% set module_classes = module_classes ~ " " ~ a.custom_class %} {% endif %} {# Generate unique ID for JS targeting #} {% set accordion_id = a.custom_id ? a.custom_id : "accordion-" ~ module.id %}
{# Section Header #} {% if c.section_heading or c.section_subheading %}
{% if c.section_heading %}

{{ c.section_heading|escape }}

{% endif %} {% if c.section_subheading %}

{{ c.section_subheading|escape }}

{% endif %}
{% endif %} {# Accordion Items — native
/ styled by the global accordion system. The expand/collapse icon is supplied by the global summary::after (icon type/position come from the .accordion--* classes on the section). #}
{% for item in c.items %}
{{ item.question|escape }}
{{ item.answer }}
{% endfor %}
{# FAQ Schema Markup for SEO #} {% if b.enable_schema and c.items|length > 0 %} {% endif %} {# module.css is auto-attached by HubSpot for custom modules — no explicit require_css needed (it risked a duplicate stylesheet request). #} {% if not b.allow_multiple %} {% require_js position="footer" defer=true %} {% end_require_js %} {% endif %}