{% set minimal_styling = settings.minimal_styling ?? false %}
{% set modifier = modifier ?? false %}
{% if (attributes['data-bem-modifier']|trim is not empty) %}
  {% set modifier = attributes['data-bem-modifier']|clean_class %}
{% endif %}
{% set label = settings.label ?? false %}
{% if label %}
  {% set label = settings.label|clean_class %}
{% endif %}
{% set template = layout.template ?? false %}
{% if template %}
  {% set template = layout.template|clean_class %}
{% endif %}

{# Variant options #}
{% set background_stretched = settings.backgrounds_full|default(true) %}
{% set background_color = false %}
{% if settings.background_color and settings.background_color != '_none' %}
  {% set background_color = settings.background_color|split('/')[0] %}
{% else %}
  {% set background_color = false %}
{% endif %}
{% set background_image = false %}
{% if content.layout_background_image %}
  {% set background_image = true %}
{% endif %}
{% set section_spacing_top = settings.top_layout_spacing ?? 1 %}
{% set section_spacing_bottom = settings.bottom_layout_spacing ?? 1 %}
{% set section_purpose = settings.section_purpose ?? 'content' %}

{# Classes on layout wrapper #}

{% set classes = [
    'layout',
    'layout-section',
    'layout' ~ '--' ~ '1-col',
    modifier ? 'layout' ~ '--mod-' ~ modifier,
    label ? 'layout' ~ '--' ~ 'label-' ~ label,

] %}

{% if minimal_styling %}
  {% set classes = classes|merge([
    template ? 'layout' ~ '--' ~ template,
  ]) %}
{% else %}
  {% set classes = classes|merge([
    'layout' ~ '--' ~ 'content-blocks',
    'layout--1-col--content-blocks',
    section_spacing_top ? 'layout' ~ '--' ~ 'v-space-top-'  ~ section_spacing_top,
    section_spacing_bottom ? 'layout' ~ '--' ~ 'v-space-bottom-' ~ section_spacing_bottom,
    background_stretched ? 'layout--bg-stretched',
    background_color or background_image ? 'layout--bg',
    background_image ? 'layout--bg-image',
    background_color ? 'layout--bg-color',
    background_color ? 'layout--bg--' ~ background_color,
  ]) %}
{% endif %}

{# Classes on region wrapper #}

{% set region_classes = [
  'layout-builder__region',
  'layout__region',
  'layout__region' ~ '--' ~ '1-col',
  modifier ? 'layout__region' ~ '--mod-' ~ modifier,
] %}

{% if layout_reset == false %}
  {% set region_classes = region_classes|merge([
    'layout__region'  ~ '--' ~ 'content-blocks',
    'layout__region'  ~ '--' ~ '1-col' ~ '--content-blocks'
  ]) %}
{% endif %}

{% if section_purpose %}
  {% if section_purpose == 'header' or section_purpose == 'footer' or section_purpose == 'aside' %}
    {% set region_classes = region_classes|merge([
      'layout__region'  ~ '--' ~ 'type-' ~ section_purpose,
      modifier ? 'layout__region'  ~ '--' ~ 'type-' ~ section_purpose ~ '--mod-' ~ modifier
    ]) %}
  {% endif %}
{% endif %}

{# Classes on optional subregions #}

{% set subregion_classes_01 = [
  'layout__subregion',
  'layout__subregion-01',
] %}
{% if modifier %}
  {% set subregion_classes_01 = subregion_classes_01|merge([
    'layout__subregion' ~ '--1-col' ~  '--mod-' ~ modifier,
    'layout__subregion-01' ~ '--1-col' ~ '--mod-' ~ modifier,
  ]) %}
{% endif %}

{% set subregion_classes_02 = [
  'layout__subregion',
  'layout__subregion-02',
] %}
{% if modifier %}
  {% set subregion_classes_02 = subregion_classes_02|merge([
    'layout__subregion' ~ '--1-col' ~  '--mod-' ~ modifier,
    'layout__subregion-02' ~ '--1-col' ~ '--mod-' ~ modifier,
  ]) %}
{% endif %}

{% set subregion_classes_01 = [
  'layout__subregion',
  'layout__subregion-01',
  modifier ? 'layout__subregion' ~ '--1-col' ~  '--mod-' ~ modifier,
  modifier ?  'layout__subregion-01' ~ '--1-col' ~ '--mod-' ~ modifier,
] %}

{% set subregion_classes_02 = [
  'layout__subregion',
  'layout__subregion-02',
  modifier ? 'layout__subregion' ~ '--1-col' ~ '--mod-' ~ modifier,
  modifier ? 'layout__subregion-02' ~ '--1-col' ~  '--mod-' ~ modifier,
] %}

{% set sub = {
    content: content.subregion,
    position: settings.subregion_position ?? 'after',
    attributes: region_attributes.subregion.addClass(subregion_classes_01),
} %}
{% set sub_02 = {
    content: content.subregion_02,
    position: settings.subregion_position_02 ?? 'after',
    attributes: region_attributes.subregion_02.addClass(subregion_classes_02),
} %}

{% if content.content or content.top or content.bottom %}
  <div{{ attributes.addClass(classes) }}>

    {% set top_classes = [
    'layout__top',
    'layout__top' ~ '--1-col',
      modifier ?  'layout__top' ~ '--mod-' ~ modifier,
    ] %}
    {% set top_classes = top_classes|merge(region_classes) %}
    {% if content.top %}
      <div {{ region_attributes.top.addClass(top_classes) }}>
        {{ content.top }}
      </div>
    {% endif %}

    {% if content.content %}
      {% include "@rocketship_core/region/region.html.twig" with {'content': content.content, 'attributes': region_attributes.content.addClass(region_classes), 'sub': sub, 'sub_02': sub_02} only %}
    {% endif %}

    {% set bottom_classes = [
      'layout__bottom',
      'layout__bottom' ~ '--1-col',
      modifier ?  'layout__bottom' ~ '--mod-' ~ modifier,
    ] %}
    {% set bottom_classes = bottom_classes|merge(region_classes) %}
    {% if content.bottom %}
      <div {{ region_attributes.bottom.addClass(bottom_classes) }}>
        {{ content.bottom }}
      </div>
    {% endif %}

    {% if content.layout_background_image %}
      {{ content.layout_background_image }}
    {% endif %}
  </div>
{% endif %}
