diff --git a/config/sync/block.block.facetsblock_searchpage.yml b/config/sync/block.block.facetsblock_searchpage.yml
index 7ab9a5693dc3bc59f61264aaace664d62dea53df..e2aa7ebfa6d6dfca6695b3ec5ca5edfa5e2a55b9 100644
--- a/config/sync/block.block.facetsblock_searchpage.yml
+++ b/config/sync/block.block.facetsblock_searchpage.yml
@@ -22,31 +22,11 @@ settings:
   exclude_empty_facets: true
   hide_empty_block: false
   facets_to_include:
-    'facet_block:topic': 'facet_block:topic'
-    'facet_block:type': 'facet_block:type'
-    'facet_block:spatial_coverage': 'facet_block:spatial_coverage'
-    'facet_block:creation_date': 'facet_block:creation_date'
-    'facets_summary_block:summary': '0'
-    'facet_block:collection_topic': '0'
-    'facet_block:collection_type': '0'
-    'facet_block:aggregated_changed': '0'
-    'facet_block:group': '0'
-    'facet_block:solution_type': '0'
-    'facet_block:solution_topic': '0'
-    'facet_block:solution_spatial_coverage': '0'
-    'facet_block:solution_my_content': '0'
-    'facet_block:solution_content_bundle': '0'
-    'facet_block:event_date': '0'
-    'facet_block:content_listing_type': '0'
-    'facet_block:authoredon': '0'
-    'facet_block:csv_solution_type': '0'
-    'facet_block:csv_changed': '0'
-    'facet_block:csv_authoredon': '0'
-    'facet_block:content_my_content': '0'
-    'facet_block:content_bundle': '0'
-    'facet_block:collection_my_content': '0'
-    'facet_block:collection_event_type': '0'
-    'facet_block:user_content_bundle': '0'
+    - 'facet_block:topic'
+    - 'facet_block:type'
+    - 'facet_block:spatial_coverage'
+    - 'facet_block:creation_date'
+    - 'facet_block:status'
   add_js_classes: true
 visibility:
   request_route:
diff --git a/config/sync/core.entity_form_display.node.custom_page.default.yml b/config/sync/core.entity_form_display.node.custom_page.default.yml
index b5c2b9d0377c0fea42d181d5bd01b09530a55398..e66591dc5d747ff38df01d8bc42466cbf2984779 100644
--- a/config/sync/core.entity_form_display.node.custom_page.default.yml
+++ b/config/sync/core.entity_form_display.node.custom_page.default.yml
@@ -6,14 +6,16 @@ dependencies:
     - field.field.node.custom_page.field_attachment
     - field.field.node.custom_page.field_custom_page_logo
     - field.field.node.custom_page.field_paragraphs_body
+    - field.field.node.custom_page.field_state
     - field.field.node.custom_page.og_audience
     - image.style.thumbnail
     - node.type.custom_page
   module:
     - file
-    - image
+    - joinup_workflow
     - paragraphs
     - path
+    - svg_image
 id: node.custom_page.default
 targetEntityType: node
 bundle: custom_page
@@ -53,6 +55,13 @@ content:
         collapse_edit_all: collapse_edit_all
         duplicate: '0'
     third_party_settings: {  }
+  field_state:
+    type: state_machine_buttons
+    weight: 7
+    region: content
+    settings:
+      use_transition_label: 1
+    third_party_settings: {  }
   langcode:
     type: language_select
     weight: 1
@@ -62,22 +71,15 @@ content:
     third_party_settings: {  }
   path:
     type: path
-    weight: 7
+    weight: 6
     region: content
     settings: {  }
     third_party_settings: {  }
   simple_sitemap:
-    weight: 10
+    weight: 8
     region: content
     settings: {  }
     third_party_settings: {  }
-  status:
-    type: boolean_checkbox
-    weight: 6
-    region: content
-    settings:
-      display_label: true
-    third_party_settings: {  }
   title:
     type: string_textfield
     weight: 0
@@ -97,5 +99,6 @@ hidden:
   og_audience: true
   promote: true
   published_at: true
+  status: true
   sticky: true
   uid: true
diff --git a/config/sync/core.entity_form_display.rdf_entity.solution.default.yml b/config/sync/core.entity_form_display.rdf_entity.solution.default.yml
index 5ae68ae6226193672d521688c283eeae419a6a97..f3671e5ac7a9dd9ceed641fd47fa767ede18a15d 100644
--- a/config/sync/core.entity_form_display.rdf_entity.solution.default.yml
+++ b/config/sync/core.entity_form_display.rdf_entity.solution.default.yml
@@ -52,10 +52,11 @@ dependencies:
     - allowed_formats
     - field_group
     - file_url
-    - image_library_widget
     - inline_entity_form
+    - joinup_core
     - joinup_workflow
     - link
+    - search_api_field
     - text
 third_party_settings:
   field_group:
@@ -118,6 +119,7 @@ third_party_settings:
         - field_is_metrics_page
         - field_is_eif_recommendation
         - field_is_eif_category
+        - field_is_content
       label: 'Additional fields'
       region: content
       parent_name: group_general
@@ -185,6 +187,14 @@ content:
       collapsible: false
       collapsed: false
       revision: false
+      removed_reference: optional
+    third_party_settings: {  }
+  field_is_content:
+    type: search_api_field_default
+    weight: 17
+    region: content
+    settings:
+      query_builder: true
     third_party_settings: {  }
   field_is_content_creation:
     type: options_buttons
@@ -278,6 +288,7 @@ content:
       collapsible: false
       collapsed: false
       revision: false
+      removed_reference: optional
     third_party_settings: {  }
   field_is_product_type:
     type: entity_reference_autocomplete
@@ -377,6 +388,11 @@ content:
       size: 60
       placeholder: ''
     third_party_settings: {  }
+  simple_sitemap:
+    weight: 10
+    region: content
+    settings: {  }
+    third_party_settings: {  }
   transition_motivation:
     weight: 17
     region: content
@@ -385,7 +401,6 @@ content:
 hidden:
   created: true
   field_is_affiliations_requests: true
-  field_is_content: true
   field_is_distribution: true
   field_is_has_version: true
   field_is_included_asset: true
diff --git a/config/sync/core.entity_view_display.node.custom_page.carousel.yml b/config/sync/core.entity_view_display.node.custom_page.carousel.yml
index a39b188f24a0b43f39cac49d820d49e6283724a8..47b54a33bf39f2856ba06f8952301e1c72752006 100644
--- a/config/sync/core.entity_view_display.node.custom_page.carousel.yml
+++ b/config/sync/core.entity_view_display.node.custom_page.carousel.yml
@@ -7,6 +7,7 @@ dependencies:
     - field.field.node.custom_page.field_attachment
     - field.field.node.custom_page.field_custom_page_logo
     - field.field.node.custom_page.field_paragraphs_body
+    - field.field.node.custom_page.field_state
     - field.field.node.custom_page.og_audience
     - node.type.custom_page
     - responsive_image.styles.iop_carousel
@@ -91,8 +92,11 @@ content:
     region: content
 hidden:
   field_attachment: true
+  field_state: true
   langcode: true
   links: true
   og_audience: true
   published_at: true
+  read_more: true
   search_api_excerpt: true
+  share_link: true
diff --git a/config/sync/core.entity_view_display.node.custom_page.default.yml b/config/sync/core.entity_view_display.node.custom_page.default.yml
index 960c541e6765bf9abb43ae4033301def8d5f51e1..b079234b8767dba38ba57a7d2bfef470132d4d02 100644
--- a/config/sync/core.entity_view_display.node.custom_page.default.yml
+++ b/config/sync/core.entity_view_display.node.custom_page.default.yml
@@ -6,6 +6,7 @@ dependencies:
     - field.field.node.custom_page.field_attachment
     - field.field.node.custom_page.field_custom_page_logo
     - field.field.node.custom_page.field_paragraphs_body
+    - field.field.node.custom_page.field_state
     - field.field.node.custom_page.og_audience
     - node.type.custom_page
   module:
@@ -79,7 +80,10 @@ content:
     region: content
 hidden:
   field_custom_page_logo: true
+  field_state: true
   langcode: true
   og_audience: true
   published_at: true
+  read_more: true
   search_api_excerpt: true
+  share_link: true
diff --git a/config/sync/core.entity_view_display.node.custom_page.tile_two.yml b/config/sync/core.entity_view_display.node.custom_page.tile_two.yml
index d1a43d8ad4f64fb4c75723a3aefe6df681d06530..13b88b3b700f9b92f8644b2d199b7ed340f99f6e 100644
--- a/config/sync/core.entity_view_display.node.custom_page.tile_two.yml
+++ b/config/sync/core.entity_view_display.node.custom_page.tile_two.yml
@@ -7,6 +7,7 @@ dependencies:
     - field.field.node.custom_page.field_attachment
     - field.field.node.custom_page.field_custom_page_logo
     - field.field.node.custom_page.field_paragraphs_body
+    - field.field.node.custom_page.field_state
     - field.field.node.custom_page.og_audience
     - node.type.custom_page
     - responsive_image.styles.spotlight
@@ -106,7 +107,10 @@ content:
     weight: 4
     region: content
 hidden:
+  field_state: true
   langcode: true
   og_audience: true
   published_at: true
+  read_more: true
   search_api_excerpt: true
+  share_link: true
diff --git a/config/sync/core.entity_view_display.node.custom_page.view_mode_featured.yml b/config/sync/core.entity_view_display.node.custom_page.view_mode_featured.yml
index 1fbf8054560162cf04a7b87a0b235e14db4c9e64..0da254208d272b4f2932b0e78cd75803e119b2cd 100644
--- a/config/sync/core.entity_view_display.node.custom_page.view_mode_featured.yml
+++ b/config/sync/core.entity_view_display.node.custom_page.view_mode_featured.yml
@@ -7,6 +7,7 @@ dependencies:
     - field.field.node.custom_page.field_attachment
     - field.field.node.custom_page.field_custom_page_logo
     - field.field.node.custom_page.field_paragraphs_body
+    - field.field.node.custom_page.field_state
     - field.field.node.custom_page.og_audience
     - node.type.custom_page
   module:
@@ -34,9 +35,12 @@ content:
 hidden:
   field_attachment: true
   field_custom_page_logo: true
+  field_state: true
   langcode: true
   links: true
   og_audience: true
   published_at: true
+  read_more: true
   report: true
   search_api_excerpt: true
+  share_link: true
diff --git a/config/sync/core.entity_view_display.node.custom_page.view_mode_tile.yml b/config/sync/core.entity_view_display.node.custom_page.view_mode_tile.yml
index ae7fbff8252a0fc7cf22c12fc093edb40a4a29cb..315e16344b10a48e837f3a910a67adf49aa1204d 100644
--- a/config/sync/core.entity_view_display.node.custom_page.view_mode_tile.yml
+++ b/config/sync/core.entity_view_display.node.custom_page.view_mode_tile.yml
@@ -7,6 +7,7 @@ dependencies:
     - field.field.node.custom_page.field_attachment
     - field.field.node.custom_page.field_custom_page_logo
     - field.field.node.custom_page.field_paragraphs_body
+    - field.field.node.custom_page.field_state
     - field.field.node.custom_page.og_audience
     - node.type.custom_page
     - responsive_image.styles.tile
@@ -54,9 +55,12 @@ content:
     region: content
 hidden:
   field_attachment: true
+  field_state: true
   langcode: true
   links: true
   og_audience: true
   published_at: true
+  read_more: true
   report: true
   search_api_excerpt: true
+  share_link: true
diff --git a/config/sync/facets.facet.content_listing_status.yml b/config/sync/facets.facet.content_listing_status.yml
new file mode 100644
index 0000000000000000000000000000000000000000..218912d61eb66c1500972ffe16f5bfe2ffc82516
--- /dev/null
+++ b/config/sync/facets.facet.content_listing_status.yml
@@ -0,0 +1,66 @@
+uuid: 1db850b1-f7c4-4678-8d30-75d9b8b2bb78
+langcode: en
+status: true
+dependencies: {  }
+id: content_listing_status
+name: Status
+weight: 0
+min_count: 0
+missing: false
+missing_label: others
+url_alias: status
+facet_source_id: 'search_api_field:paragraph.content_listing.content_listing'
+field_identifier: entity_status
+query_operator: or
+hard_limit: 0
+exclude: false
+use_hierarchy: false
+keep_hierarchy_parents_active: false
+hierarchy:
+  type: taxonomy
+  config: {  }
+expand_hierarchy: false
+enable_parent_when_child_gets_disabled: true
+widget:
+  type: checkbox
+  config:
+    show_numbers: false
+    arbitrary_facet_plugin: _none
+    soft_limit: -1
+    show_reset_link: false
+    reset_text: 'Show all'
+    hide_reset_when_no_selection: false
+    soft_limit_settings:
+      show_less_label: 'Show less'
+      show_more_label: 'Show more'
+empty_behavior:
+  behavior: none
+only_visible_when_facet_source_is_visible: false
+show_only_one_result: false
+show_title: false
+processor_configs:
+  exclude_specified_items:
+    processor_id: exclude_specified_items
+    weights:
+      build: 50
+    settings:
+      exclude: archived
+      regex: false
+      invert: true
+  hierarchy_processor:
+    processor_id: hierarchy_processor
+    weights:
+      build: 100
+    settings: {  }
+  replace:
+    processor_id: replace
+    weights:
+      post_query: 50
+    settings:
+      replacements: 'archived|Show archived'
+  url_processor_handler:
+    processor_id: url_processor_handler
+    weights:
+      pre_query: 50
+      build: 15
+    settings: {  }
diff --git a/config/sync/facets.facet.content_listing_type.yml b/config/sync/facets.facet.content_listing_type.yml
index 04b64cc2a525d71ef516ff2596096fdec79073bf..338759ee0ef2d24ac24a094906357d51221c2183 100644
--- a/config/sync/facets.facet.content_listing_type.yml
+++ b/config/sync/facets.facet.content_listing_type.yml
@@ -4,7 +4,7 @@ status: true
 dependencies: {  }
 id: content_listing_type
 name: 'Content type'
-weight: 0
+weight: -1
 min_count: 1
 missing: false
 missing_label: others
diff --git a/config/sync/facets.facet.creation_date.yml b/config/sync/facets.facet.creation_date.yml
index 96e4900bf5c995cba4db1eb20724362ca683a140..8b23ff8b0c466323ef20a7b4a5c5fc7631c22581 100644
--- a/config/sync/facets.facet.creation_date.yml
+++ b/config/sync/facets.facet.creation_date.yml
@@ -9,7 +9,7 @@ dependencies:
     - search_api
 id: creation_date
 name: 'Creation Date'
-weight: 0
+weight: 1
 min_count: 1
 missing: false
 missing_label: others
diff --git a/config/sync/facets.facet.field_collection_content_status.yml b/config/sync/facets.facet.field_collection_content_status.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5e9b34545bc6ef415d3f46841c89e63d590392ff
--- /dev/null
+++ b/config/sync/facets.facet.field_collection_content_status.yml
@@ -0,0 +1,66 @@
+uuid: 4014eb03-1f84-459a-b8cd-c78a51afcc1e
+langcode: en
+status: true
+dependencies: {  }
+id: field_collection_content_status
+name: Status
+weight: 0
+min_count: 0
+missing: false
+missing_label: others
+url_alias: status
+facet_source_id: 'search_api_field:rdf_entity.collection.field_collection_content'
+field_identifier: entity_status
+query_operator: or
+hard_limit: 0
+exclude: false
+use_hierarchy: false
+keep_hierarchy_parents_active: false
+hierarchy:
+  type: taxonomy
+  config: {  }
+expand_hierarchy: false
+enable_parent_when_child_gets_disabled: true
+widget:
+  type: checkbox
+  config:
+    show_numbers: false
+    arbitrary_facet_plugin: _none
+    soft_limit: -1
+    show_reset_link: false
+    reset_text: 'Show all'
+    hide_reset_when_no_selection: false
+    soft_limit_settings:
+      show_less_label: 'Show less'
+      show_more_label: 'Show more'
+empty_behavior:
+  behavior: none
+only_visible_when_facet_source_is_visible: false
+show_only_one_result: false
+show_title: false
+processor_configs:
+  exclude_specified_items:
+    processor_id: exclude_specified_items
+    weights:
+      build: 50
+    settings:
+      exclude: archived
+      regex: false
+      invert: true
+  hierarchy_processor:
+    processor_id: hierarchy_processor
+    weights:
+      build: 100
+    settings: {  }
+  replace:
+    processor_id: replace
+    weights:
+      post_query: 50
+    settings:
+      replacements: 'archived|Show archived'
+  url_processor_handler:
+    processor_id: url_processor_handler
+    weights:
+      pre_query: 50
+      build: 15
+    settings: {  }
diff --git a/config/sync/facets.facet.field_is_content_status.yml b/config/sync/facets.facet.field_is_content_status.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d1780405b81d3c97729198ff4c418d4f82365441
--- /dev/null
+++ b/config/sync/facets.facet.field_is_content_status.yml
@@ -0,0 +1,66 @@
+uuid: f12592e5-4f67-446e-b774-04623f13c8e3
+langcode: en
+status: true
+dependencies: {  }
+id: field_is_content_status
+name: Status
+weight: 0
+min_count: 0
+missing: false
+missing_label: others
+url_alias: status
+facet_source_id: 'search_api_field:rdf_entity.solution.field_is_content'
+field_identifier: entity_status
+query_operator: or
+hard_limit: 0
+exclude: false
+use_hierarchy: false
+keep_hierarchy_parents_active: false
+hierarchy:
+  type: taxonomy
+  config: {  }
+expand_hierarchy: false
+enable_parent_when_child_gets_disabled: true
+widget:
+  type: checkbox
+  config:
+    show_numbers: false
+    arbitrary_facet_plugin: _none
+    soft_limit: -1
+    show_reset_link: false
+    reset_text: 'Show all'
+    hide_reset_when_no_selection: false
+    soft_limit_settings:
+      show_less_label: 'Show less'
+      show_more_label: 'Show more'
+empty_behavior:
+  behavior: none
+only_visible_when_facet_source_is_visible: true
+show_only_one_result: false
+show_title: false
+processor_configs:
+  exclude_specified_items:
+    processor_id: exclude_specified_items
+    weights:
+      build: -9
+    settings:
+      exclude: archived
+      regex: false
+      invert: true
+  hierarchy_processor:
+    processor_id: hierarchy_processor
+    weights:
+      build: -8
+    settings: {  }
+  replace:
+    processor_id: replace
+    weights:
+      post_query: 50
+    settings:
+      replacements: 'archived|Show archived'
+  url_processor_handler:
+    processor_id: url_processor_handler
+    weights:
+      pre_query: -10
+      build: -10
+    settings: {  }
diff --git a/config/sync/facets.facet.group.yml b/config/sync/facets.facet.group.yml
index 4af1af4a1f4dc54b8d15507bae43a5b9f4ff5874..f5ecded3290a78d2983377ee2406e69f2d5d9cc5 100644
--- a/config/sync/facets.facet.group.yml
+++ b/config/sync/facets.facet.group.yml
@@ -9,7 +9,7 @@ dependencies:
     - search_api
 id: group
 name: Collection/Solution
-weight: 0
+weight: -1
 min_count: 1
 missing: false
 missing_label: others
diff --git a/config/sync/facets.facet.spatial_coverage.yml b/config/sync/facets.facet.spatial_coverage.yml
index fed1b0891608e8f5f7ede0f92edf322d22e42ea1..4dedb124e4323a0ae6e299e6be666c2bac29eb3b 100644
--- a/config/sync/facets.facet.spatial_coverage.yml
+++ b/config/sync/facets.facet.spatial_coverage.yml
@@ -9,7 +9,7 @@ dependencies:
     - search_api
 id: spatial_coverage
 name: 'Geographic coverage'
-weight: -1
+weight: -2
 min_count: 1
 missing: false
 missing_label: others
diff --git a/config/sync/facets.facet.status.yml b/config/sync/facets.facet.status.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7575926e8667c8b010718087b0e6ae49ecff0513
--- /dev/null
+++ b/config/sync/facets.facet.status.yml
@@ -0,0 +1,71 @@
+uuid: 75f47834-f133-4d23-ae71-cc82eae0ce8f
+langcode: en
+status: true
+dependencies:
+  config:
+    - search_api.index.published
+    - views.view.search
+  module:
+    - search_api
+id: status
+name: Status
+weight: 0
+min_count: 0
+missing: false
+missing_label: others
+url_alias: status
+facet_source_id: 'search_api:views_page__search__page_1'
+field_identifier: entity_status
+query_operator: or
+hard_limit: 0
+exclude: false
+use_hierarchy: false
+keep_hierarchy_parents_active: false
+hierarchy:
+  type: taxonomy
+  config: {  }
+expand_hierarchy: false
+enable_parent_when_child_gets_disabled: true
+widget:
+  type: checkbox
+  config:
+    show_numbers: false
+    arbitrary_facet_plugin: _none
+    soft_limit: -1
+    show_reset_link: false
+    reset_text: 'Show all'
+    hide_reset_when_no_selection: false
+    soft_limit_settings:
+      show_less_label: 'Show less'
+      show_more_label: 'Show more'
+empty_behavior:
+  behavior: none
+only_visible_when_facet_source_is_visible: false
+show_only_one_result: false
+show_title: false
+processor_configs:
+  exclude_specified_items:
+    processor_id: exclude_specified_items
+    weights:
+      build: 50
+    settings:
+      exclude: archived
+      regex: false
+      invert: true
+  hierarchy_processor:
+    processor_id: hierarchy_processor
+    weights:
+      build: 100
+    settings: {  }
+  replace:
+    processor_id: replace
+    weights:
+      post_query: 50
+    settings:
+      replacements: 'archived|Show Archived items'
+  url_processor_handler:
+    processor_id: url_processor_handler
+    weights:
+      pre_query: -10
+      build: -10
+    settings: {  }
diff --git a/config/sync/facets.facet.topic.yml b/config/sync/facets.facet.topic.yml
index 8cafa2387c090a532d923e889473c701b2fc8404..cc575f140aa6ba368a5922d7265cdf884ac2ea29 100644
--- a/config/sync/facets.facet.topic.yml
+++ b/config/sync/facets.facet.topic.yml
@@ -9,7 +9,7 @@ dependencies:
     - search_api
 id: topic
 name: Topics
-weight: -3
+weight: -4
 min_count: 1
 missing: false
 missing_label: others
diff --git a/config/sync/facets.facet.type.yml b/config/sync/facets.facet.type.yml
index 638d42bafe7c3c71240f053177e5d879c46551c7..0451814c3ae8a6e96fbe0e7e6507ae2dfade6789 100644
--- a/config/sync/facets.facet.type.yml
+++ b/config/sync/facets.facet.type.yml
@@ -9,7 +9,7 @@ dependencies:
     - search_api
 id: type
 name: 'Content types'
-weight: -2
+weight: -3
 min_count: 1
 missing: false
 missing_label: others
diff --git a/config/sync/facets.facet.user_status.yml b/config/sync/facets.facet.user_status.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ae77a1ac42511b819ca15f1c3f07cd33d3bc8786
--- /dev/null
+++ b/config/sync/facets.facet.user_status.yml
@@ -0,0 +1,66 @@
+uuid: a8ec4ac2-d885-4727-9204-9dbb1c4d6edf
+langcode: en
+status: true
+dependencies: {  }
+id: user_status
+name: Status
+weight: 0
+min_count: 0
+missing: false
+missing_label: others
+url_alias: status
+facet_source_id: 'search_api_field:user.user.field_user_content'
+field_identifier: entity_status
+query_operator: or
+hard_limit: 0
+exclude: false
+use_hierarchy: false
+keep_hierarchy_parents_active: false
+hierarchy:
+  type: taxonomy
+  config: {  }
+expand_hierarchy: false
+enable_parent_when_child_gets_disabled: true
+widget:
+  type: checkbox
+  config:
+    show_numbers: false
+    arbitrary_facet_plugin: _none
+    soft_limit: -1
+    show_reset_link: false
+    reset_text: 'Show all'
+    hide_reset_when_no_selection: false
+    soft_limit_settings:
+      show_less_label: 'Show less'
+      show_more_label: 'Show more'
+empty_behavior:
+  behavior: none
+only_visible_when_facet_source_is_visible: false
+show_only_one_result: false
+show_title: false
+processor_configs:
+  exclude_specified_items:
+    processor_id: exclude_specified_items
+    weights:
+      build: 50
+    settings:
+      exclude: archived
+      regex: false
+      invert: true
+  hierarchy_processor:
+    processor_id: hierarchy_processor
+    weights:
+      build: 100
+    settings: {  }
+  replace:
+    processor_id: replace
+    weights:
+      post_query: 50
+    settings:
+      replacements: 'archived|Show archived'
+  url_processor_handler:
+    processor_id: url_processor_handler
+    weights:
+      pre_query: 50
+      build: 15
+    settings: {  }
diff --git a/config/sync/facets.facet_source.search_api_field__paragraph.content_listing.content_listing.yml b/config/sync/facets.facet_source.search_api_field__paragraph.content_listing.content_listing.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f569f42e35d328d4d27687a2acedaaa134d4347c
--- /dev/null
+++ b/config/sync/facets.facet_source.search_api_field__paragraph.content_listing.content_listing.yml
@@ -0,0 +1,9 @@
+uuid: ca4371d4-0b20-42c0-ac92-369ca597b0bc
+langcode: en
+status: true
+dependencies: {  }
+id: search_api_field__paragraph.content_listing.content_listing
+name: 'search_api_field:paragraph.content_listing.content_listing'
+filter_key: null
+url_processor: query_string
+breadcrumb: {  }
diff --git a/config/sync/field.field.node.custom_page.field_state.yml b/config/sync/field.field.node.custom_page.field_state.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1431b55c28dde855af11b47038d2aa0c2bdb5a7a
--- /dev/null
+++ b/config/sync/field.field.node.custom_page.field_state.yml
@@ -0,0 +1,25 @@
+uuid: e38d9c37-a074-4ea6-b24f-7ceb4078cd1f
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_state
+    - node.type.custom_page
+  module:
+    - state_machine
+id: node.custom_page.field_state
+field_name: field_state
+entity_type: node
+bundle: custom_page
+label: State
+description: ''
+required: true
+translatable: false
+default_value:
+  -
+    value: __new__
+default_value_callback: ''
+settings:
+  workflow: custom_page_workflow
+  workflow_callback: ''
+field_type: state
diff --git a/config/sync/field.field.paragraph.content_listing.content_listing.yml b/config/sync/field.field.paragraph.content_listing.content_listing.yml
index 4aab327278f4396c4da018264b2c550bf5a7a94c..120cc54d761ba3a443d1de0e0c954da04dcaec1a 100644
--- a/config/sync/field.field.paragraph.content_listing.content_listing.yml
+++ b/config/sync/field.field.paragraph.content_listing.content_listing.yml
@@ -22,7 +22,11 @@ default_value:
         content_listing_type:
           weight: 0
           region: top
+        content_listing_status:
+          weight: 1
+          region: top
       enabled: 1
+      show_archived: unarchived
       query_presets: ''
       limit: 12
       global_search: false
@@ -53,6 +57,7 @@ settings:
       eif_interoperability_layer: default
       eif_principle: default
       eif_recommendation: default
+      topic: default
     'entity:user':
       user: view_mode_tile
 field_type: search_api_field
diff --git a/config/sync/field.field.rdf_entity.collection.field_collection_content.yml b/config/sync/field.field.rdf_entity.collection.field_collection_content.yml
index 83b5c8617e844d095bb9240b7331d890e18fd9a4..d69b4a9db06a44f524bafc14045cc0d3cd3d9eae 100644
--- a/config/sync/field.field.rdf_entity.collection.field_collection_content.yml
+++ b/config/sync/field.field.rdf_entity.collection.field_collection_content.yml
@@ -24,8 +24,11 @@ default_value:
         collection_type:
           weight: 0
           region: top
+        field_collection_content_status:
+          weight: 1
+          region: top
         collection_event_type:
-          weight: -1
+          weight: 0
           region: inline_facets
         collection_topic:
           weight: 0
@@ -33,6 +36,7 @@ default_value:
       enabled: 1
       query_presets: ''
       limit: 12
+      show_archived: unarchived
 default_value_callback: ''
 settings:
   index: published
@@ -46,14 +50,21 @@ settings:
       document: view_mode_tile
       event: view_mode_tile
       news: view_mode_tile
-      newsletter: view_mode_tile
+      tallinn_report: default
       video: view_mode_tile
     'entity:rdf_entity':
       asset_distribution: view_mode_tile
       asset_release: default
       collection: view_mode_tile
-      contact_information: default
       licence: default
-      owner: ''
       solution: view_mode_tile
+      spdx_licence: default
+    'entity:taxonomy_term':
+      eif_conceptual_model: default
+      eif_interoperability_layer: default
+      eif_principle: default
+      eif_recommendation: default
+      topic: default
+    'entity:user':
+      user: default
 field_type: search_api_field
diff --git a/config/sync/field.field.rdf_entity.solution.field_is_content.yml b/config/sync/field.field.rdf_entity.solution.field_is_content.yml
index 795a03502cf11bd456ec7dcab79a81a487900684..4b2a4028d796d144561a9408bb021fee7a84b6e0 100644
--- a/config/sync/field.field.rdf_entity.solution.field_is_content.yml
+++ b/config/sync/field.field.rdf_entity.solution.field_is_content.yml
@@ -24,15 +24,19 @@ default_value:
         solution_content_bundle:
           weight: 0
           region: top
-        solution_topic:
+        field_is_content_status:
           weight: 1
-          region: inline_facets
+          region: top
         solution_spatial_coverage:
           weight: 2
           region: inline_facets
+        solution_topic:
+          weight: 3
+          region: inline_facets
       enabled: 1
       query_presets: ''
       limit: 12
+      show_archived: unarchived
 default_value_callback: ''
 settings:
   index: published
@@ -46,14 +50,21 @@ settings:
       document: view_mode_tile
       event: view_mode_tile
       news: view_mode_tile
-      newsletter: default
+      tallinn_report: default
       video: view_mode_tile
     'entity:rdf_entity':
       asset_distribution: view_mode_tile
       asset_release: view_mode_tile
       collection: view_mode_tile
-      contact_information: default
       licence: default
-      owner: ''
       solution: view_mode_tile
+      spdx_licence: default
+    'entity:taxonomy_term':
+      eif_conceptual_model: default
+      eif_interoperability_layer: default
+      eif_principle: default
+      eif_recommendation: default
+      topic: default
+    'entity:user':
+      user: default
 field_type: search_api_field
diff --git a/config/sync/field.field.user.user.field_user_content.yml b/config/sync/field.field.user.user.field_user_content.yml
index fb5e58d139ddb82a4f845879b4244d8621d193ee..9a965a539397d12e197a807cf8c6f40d3f1bcee6 100644
--- a/config/sync/field.field.user.user.field_user_content.yml
+++ b/config/sync/field.field.user.user.field_user_content.yml
@@ -24,9 +24,13 @@ default_value:
         user_content_bundle:
           weight: 0
           region: top
+        user_status:
+          weight: 1
+          region: top
       enabled: 1
       query_presets: ''
       limit: 12
+      show_archived: all
 default_value_callback: ''
 settings:
   index: published
@@ -38,9 +42,7 @@ settings:
       discussion: view_mode_tile
       document: view_mode_tile
       event: view_mode_tile
-      glossary: view_mode_tile
       news: view_mode_tile
-      newsletter: view_mode_tile
       tallinn_report: view_mode_tile
       video: view_mode_tile
     'entity:rdf_entity':
@@ -49,6 +51,13 @@ settings:
       collection: view_mode_tile
       licence: view_mode_tile
       solution: view_mode_tile
+      spdx_licence: default
+    'entity:taxonomy_term':
+      eif_conceptual_model: default
+      eif_interoperability_layer: default
+      eif_principle: default
+      eif_recommendation: default
+      topic: default
     'entity:user':
       user: view_mode_tile
 field_type: search_api_field
diff --git a/config/sync/field.storage.node.field_state.yml b/config/sync/field.storage.node.field_state.yml
index f2a96bff99dc1656c1f97a789f5589f586a5f985..c97a78db75d21b24604e6a62617badb3f2be4d14 100644
--- a/config/sync/field.storage.node.field_state.yml
+++ b/config/sync/field.storage.node.field_state.yml
@@ -3,8 +3,12 @@ langcode: en
 status: true
 dependencies:
   module:
+    - field_permissions
     - node
     - state_machine
+third_party_settings:
+  field_permissions:
+    permission_type: public
 _core:
   default_config_hash: mWWriNBJGTYGEp8zL-zNRsoPiXrBioR4rno2D6NxRh8
 id: node.field_state
diff --git a/config/sync/field.storage.rdf_entity.field_collection_content.yml b/config/sync/field.storage.rdf_entity.field_collection_content.yml
index 84a533d3e0804bcc2e8bef29ead90df9b38effb7..f99c31a9a30015445178115cc0354167ec16a847 100644
--- a/config/sync/field.storage.rdf_entity.field_collection_content.yml
+++ b/config/sync/field.storage.rdf_entity.field_collection_content.yml
@@ -3,14 +3,18 @@ langcode: en
 status: true
 dependencies:
   module:
+    - field_permissions
     - rdf_entity
     - search_api_field
+    - sparql_entity_storage
 third_party_settings:
   sparql_entity_storage:
     mapping:
       value:
         predicate: 'http://joinup.eu/search'
         format: 'xsd:string'
+  field_permissions:
+    permission_type: public
 id: rdf_entity.field_collection_content
 field_name: field_collection_content
 entity_type: rdf_entity
diff --git a/config/sync/field.storage.rdf_entity.field_is_content.yml b/config/sync/field.storage.rdf_entity.field_is_content.yml
index b7507db669a8c434a10e375fc20956856c82ce4f..eeb1ef224f512fead5984d4c776442f89b01c5a3 100644
--- a/config/sync/field.storage.rdf_entity.field_is_content.yml
+++ b/config/sync/field.storage.rdf_entity.field_is_content.yml
@@ -3,14 +3,18 @@ langcode: en
 status: true
 dependencies:
   module:
+    - field_permissions
     - rdf_entity
     - search_api_field
+    - sparql_entity_storage
 third_party_settings:
   sparql_entity_storage:
     mapping:
       value:
         predicate: 'http://joinup.eu/search'
         format: 'xsd:string'
+  field_permissions:
+    permission_type: public
 id: rdf_entity.field_is_content
 field_name: field_is_content
 entity_type: rdf_entity
diff --git a/config/sync/field.storage.user.field_user_content.yml b/config/sync/field.storage.user.field_user_content.yml
index c32632eb0944299a0201f8958030c9d17d95c1c0..fa0fbfaee0300e5214a691f55331e415841ddda5 100644
--- a/config/sync/field.storage.user.field_user_content.yml
+++ b/config/sync/field.storage.user.field_user_content.yml
@@ -3,8 +3,12 @@ langcode: en
 status: true
 dependencies:
   module:
+    - field_permissions
     - search_api_field
     - user
+third_party_settings:
+  field_permissions:
+    permission_type: public
 _core:
   default_config_hash: cCb7Y5IzQUuZBxU3lcCFpsDxC83Tsu4A8tU189Sz5sQ
 id: user.field_user_content
diff --git a/config/sync/joinup_community_content.permission_scheme.yml b/config/sync/joinup_community_content.permission_scheme.yml
index 10c5c8847e64af7e3a4c504e7239e5d4e84e71cf..a050edeae5df82fc856f5bc8a1b52b83577ae2cf 100644
--- a/config/sync/joinup_community_content.permission_scheme.yml
+++ b/config/sync/joinup_community_content.permission_scheme.yml
@@ -322,6 +322,20 @@ update:
           roles:
             - authenticated
     archived:
+      draft:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
+      proposed:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
       validated:
         any:
           roles:
@@ -329,6 +343,20 @@ update:
           og_roles:
             - rdf_entity-collection-facilitator
             - rdf_entity-solution-facilitator
+      needs_update:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
+      deletion_request:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
   'node:post_moderated':
     draft:
       draft:
@@ -428,6 +456,20 @@ update:
           roles:
             - authenticated
     archived:
+      draft:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
+      proposed:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
       validated:
         any:
           roles:
@@ -435,6 +477,13 @@ update:
           og_roles:
             - rdf_entity-collection-facilitator
             - rdf_entity-solution-facilitator
+      needs_update:
+        any:
+          roles:
+            - moderator
+          og_roles:
+            - rdf_entity-collection-facilitator
+            - rdf_entity-solution-facilitator
 delete:
   'node:pre_moderated':
     draft:
diff --git a/config/sync/og.og_role.rdf_entity-collection-facilitator.yml b/config/sync/og.og_role.rdf_entity-collection-facilitator.yml
index cad3cacacb1f77bbbe8b7f5c9579a9da8e724024..7ff8cc01078f6feae344d8fb99dc9c240109f152 100644
--- a/config/sync/og.og_role.rdf_entity-collection-facilitator.yml
+++ b/config/sync/og.og_role.rdf_entity-collection-facilitator.yml
@@ -19,13 +19,6 @@ permissions:
   - 'administer tallinn settings'
   - 'approve and deny subscription'
   - 'change tallinn report author'
-  - 'create paragraph content row'
-  - 'create paragraph content 1_column_layout'
-  - 'create paragraph content 2_column_featured_left'
-  - 'create paragraph content 2_column_featured_right'
-  - 'create paragraph content 2_column_layout'
-  - 'create paragraph content 3_column_layout'
-  - 'create paragraph content call_to_action'
   - 'create asset_distribution rdf_entity'
   - 'create asset_release rdf_entity'
   - 'create custom_page content'
@@ -34,7 +27,14 @@ permissions:
   - 'create event content'
   - 'create glossary content'
   - 'create news content'
+  - 'create paragraph content 1_column_layout'
+  - 'create paragraph content 2_column_featured_left'
+  - 'create paragraph content 2_column_featured_right'
+  - 'create paragraph content 2_column_layout'
+  - 'create paragraph content 3_column_layout'
+  - 'create paragraph content call_to_action'
   - 'create paragraph content json_map'
+  - 'create paragraph content row'
   - 'create rdf entity news'
   - 'create solution rdf_entity'
   - 'delete any custom_page content'
@@ -44,21 +44,14 @@ permissions:
   - 'delete any glossary content'
   - 'delete any news content'
   - 'delete contact_information rdf entity'
-  - 'delete paragraph content json_map'
   - 'delete paragraph content 1_column_layout'
   - 'delete paragraph content 2_column_featured_left'
   - 'delete paragraph content 2_column_featured_right'
   - 'delete paragraph content 2_column_layout'
   - 'delete paragraph content 3_column_layout'
   - 'delete paragraph content call_to_action'
+  - 'delete paragraph content json_map'
   - 'delete paragraph content row'
-  - 'update paragraph content 1_column_layout'
-  - 'update paragraph content 2_column_featured_left'
-  - 'update paragraph content 2_column_featured_right'
-  - 'update paragraph content 2_column_layout'
-  - 'update paragraph content 3_column_layout'
-  - 'update paragraph content call_to_action'
-  - 'update paragraph content row'
   - 'edit any custom_page content'
   - 'edit any discussion content'
   - 'edit any document content'
@@ -79,22 +72,32 @@ permissions:
   - 'manage members'
   - 'pin group content'
   - 'request collection archival'
+  - 'resend email confirmation request'
   - 'transition any message announcement from draft to sent using the announcement - announcement workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from proposed to validated using the community_content - node:pre_moderated workflow'
-  - 'transition any node discussion from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -103,19 +106,30 @@ permissions:
   - 'transition any node discussion from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node document from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node document from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node document from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node document from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -124,19 +138,30 @@ permissions:
   - 'transition any node document from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node event from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node event from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node event from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node event from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -145,19 +170,30 @@ permissions:
   - 'transition any node event from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node news from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node news from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node news from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node news from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node news from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node news from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -183,11 +219,17 @@ permissions:
   - 'update any navigation ogmenu_instance'
   - 'update collection_settings meta-entity'
   - 'update group'
+  - 'update paragraph content 1_column_layout'
+  - 'update paragraph content 2_column_featured_left'
+  - 'update paragraph content 2_column_featured_right'
+  - 'update paragraph content 2_column_layout'
+  - 'update paragraph content 3_column_layout'
+  - 'update paragraph content call_to_action'
   - 'update paragraph content json_map'
+  - 'update paragraph content row'
   - 'view all revisions'
   - 'view any tallinn_report content'
   - 'view any unpublished content'
   - 'view rdf_entity draft graph'
   - 'view unpublished rdf entity'
-  - 'resend email confirmation request'
 role_type: null
diff --git a/config/sync/og.og_role.rdf_entity-solution-facilitator.yml b/config/sync/og.og_role.rdf_entity-solution-facilitator.yml
index 07c4f6761ade16fa3a079e8813ccf8a74172f7bd..93aeb0b84985517afa5e59210a46896c14f81ef7 100644
--- a/config/sync/og.og_role.rdf_entity-solution-facilitator.yml
+++ b/config/sync/og.og_role.rdf_entity-solution-facilitator.yml
@@ -35,6 +35,7 @@ permissions:
   - 'delete contact_information rdf entity'
   - 'edit any custom_page content'
   - 'edit any discussion content'
+  - 'edit any document content'
   - 'edit any event content'
   - 'edit any glossary content'
   - 'edit any news content'
@@ -48,22 +49,32 @@ permissions:
   - 'manage group announcements'
   - 'manage members'
   - 'pin group content'
+  - 'resend email confirmation request'
   - 'transition any message announcement from draft to sent using the announcement - announcement workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from proposed to validated using the community_content - node:pre_moderated workflow'
-  - 'transition any node discussion from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -72,19 +83,30 @@ permissions:
   - 'transition any node discussion from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node document from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node document from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node document from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node document from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -93,19 +115,30 @@ permissions:
   - 'transition any node document from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node event from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node event from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node event from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node event from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -114,19 +147,30 @@ permissions:
   - 'transition any node event from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node news from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node news from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node news from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node news from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node news from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node news from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -162,5 +206,4 @@ permissions:
   - 'view rdf entity'
   - 'view rdf_entity draft graph'
   - 'view unpublished rdf entity'
-  - 'resend email confirmation request'
 role_type: null
diff --git a/config/sync/search_api.index.published.yml b/config/sync/search_api.index.published.yml
index a15e7dd8949b7574e357e90f68219b44a8e34d6e..a450aebbac40ee6a6cb68a220325f3f17fac6245 100644
--- a/config/sync/search_api.index.published.yml
+++ b/config/sync/search_api.index.published.yml
@@ -3,50 +3,50 @@ langcode: en
 status: true
 dependencies:
   config:
-    - field.storage.node.body
-    - field.storage.rdf_entity.field_ad_description
-    - field.storage.rdf_entity.field_ar_abstract
-    - field.storage.rdf_entity.field_ar_description
-    - field.storage.taxonomy_term.field_eif_identifier
-    - field.storage.taxonomy_term.field_eif_related_term
     - field.storage.node.field_event_agenda
+    - field.storage.node.field_paragraphs_body
+    - field.storage.paragraph.field_body
+    - field.storage.node.body
     - field.storage.node.field_event_date
-    - field.storage.rdf_entity.field_is_description
-    - field.storage.rdf_entity.field_is_eif_category
-    - field.storage.rdf_entity.field_is_eif_recommendation
-    - field.storage.rdf_entity.field_is_solution_type
-    - field.storage.rdf_entity.field_isr_description
-    - field.storage.rdf_entity.field_isr_release_notes
-    - field.storage.rdf_entity.field_licence_description
-    - field.storage.rdf_entity.field_licence_spdx_licence
-    - field.storage.node.field_location
+    - field.storage.meta_entity.field_featured
     - field.storage.node.field_news_headline
+    - field.storage.node.field_location
     - field.storage.node.field_organisation
+    - field.storage.meta_entity.field_pinned_in
     - field.storage.node.field_scope
     - field.storage.node.field_short_title
-    - field.storage.user.field_user_family_name
-    - field.storage.user.field_user_first_name
-    - field.storage.user.field_user_organisation
     - field.storage.meta_entity.count
+    - field.storage.rdf_entity.field_ar_abstract
     - field.storage.rdf_entity.field_ci_name
     - field.storage.rdf_entity.field_is_contact_information
+    - field.storage.rdf_entity.field_isr_contact_information
+    - field.storage.rdf_entity.field_licence_spdx_licence
+    - field.storage.rdf_entity.field_ad_description
+    - field.storage.rdf_entity.field_ar_description
+    - field.storage.rdf_entity.field_is_description
+    - field.storage.rdf_entity.field_isr_description
+    - field.storage.rdf_entity.field_licence_description
+    - field.storage.rdf_entity.field_is_eif_category
+    - field.storage.rdf_entity.field_is_eif_recommendation
     - field.storage.rdf_entity.field_is_owner
     - field.storage.rdf_entity.field_owner_name
-    - field.storage.rdf_entity.field_isr_contact_information
     - field.storage.rdf_entity.field_isr_owner
-    - field.storage.meta_entity.field_featured
-    - field.storage.meta_entity.field_pinned_in
-    - field.storage.node.field_paragraphs_body
-    - field.storage.paragraph.field_body
+    - field.storage.rdf_entity.field_isr_release_notes
+    - field.storage.rdf_entity.field_is_solution_type
+    - field.storage.taxonomy_term.field_eif_identifier
+    - field.storage.taxonomy_term.field_eif_related_term
+    - field.storage.user.field_user_family_name
+    - field.storage.user.field_user_first_name
+    - field.storage.user.field_user_organisation
     - search_api.server.joinup
   module:
     - search_api_solr
     - node
+    - paragraphs
     - meta_entity
     - rdf_entity
-    - taxonomy
-    - paragraphs
     - publication_date
+    - taxonomy
     - rdf_taxonomy
     - user
     - search_api
@@ -194,6 +194,17 @@ field_settings:
         - 'entity:rdf_entity/collection'
         - 'entity:rdf_entity/field_isr_is_version_of'
         - 'entity:rdf_entity/og_audience'
+  entity_status:
+    label: Status
+    property_path: aggregated_field
+    type: string
+    configuration:
+      type: union
+      fields:
+        - 'entity:node/field_state'
+        - 'entity:rdf_entity/field_ar_state'
+        - 'entity:rdf_entity/field_is_state'
+        - 'entity:rdf_entity/field_isr_state'
   field_ad_description:
     label: 'Description » Processed text'
     datasource_id: 'entity:rdf_entity'
diff --git a/config/sync/search_api_autocomplete.search.search.yml b/config/sync/search_api_autocomplete.search.search.yml
index 343081d81171357e26d6df65bbd922125e88b8e3..e788af1083060a405c2e0be78a42e79e9273efc7 100644
--- a/config/sync/search_api_autocomplete.search.search.yml
+++ b/config/sync/search_api_autocomplete.search.search.yml
@@ -8,7 +8,6 @@ dependencies:
   module:
     - views
     - search_api_autocomplete
-    - search_api_solr_autocomplete
 id: search
 label: Search
 index_id: published
@@ -18,6 +17,7 @@ suggester_settings:
     highlight:
       enabled: false
       field: ''
+    suggest_keys: true
     view_modes:
       'entity:node':
         custom_page: ''
@@ -42,23 +42,10 @@ suggester_settings:
         topic: ''
       'entity:user':
         user: ''
-  server:
-    fields: {  }
-  search_api_solr_spellcheck: {  }
-  search_api_solr_suggester:
-    search_api_solr/site_hash: 1
-    search_api/index: published
-    drupal/langcode: any
 suggester_weights:
   live_results: 0
-  server: 0
-  search_api_solr_spellcheck: 0
-  search_api_solr_suggester: 0
 suggester_limits:
   live_results: 2
-  server: 2
-  search_api_solr_spellcheck: 2
-  search_api_solr_suggester: 2
 search_settings:
   'views:search':
     displays:
diff --git a/config/sync/user.role.moderator.yml b/config/sync/user.role.moderator.yml
index d0a2baa6408f8c2fbd30422c0da93b7da3312ec1..12d7133e5d4962ec089975e3d5839caeb2cf9375 100644
--- a/config/sync/user.role.moderator.yml
+++ b/config/sync/user.role.moderator.yml
@@ -26,6 +26,7 @@ dependencies:
     - field_permissions
     - file
     - joinup
+    - joinup_community_content
     - joinup_core
     - joinup_featured
     - joinup_group
@@ -196,15 +197,26 @@ permissions:
   - 'transition any message announcement from rejected to sent using the announcement - announcement workflow'
   - 'transition any message announcement from sent to delivered using the announcement - announcement workflow'
   - 'transition any message announcement from sent to rejected using the announcement - announcement workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node discussion from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node discussion from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from proposed to validated using the community_content - node:post_moderated workflow'
@@ -219,19 +231,32 @@ permissions:
   - 'transition any node discussion from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node discussion from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node discussion from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node document from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node document from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node document from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node document from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node document from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node document from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -240,19 +265,32 @@ permissions:
   - 'transition any node document from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node document from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node document from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node event from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node event from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node event from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node event from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node event from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node event from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -261,19 +299,32 @@ permissions:
   - 'transition any node event from validated to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node event from validated to validated using the community_content - node:post_moderated workflow'
   - 'transition any node event from validated to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:post_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from archived to __new__ using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from deletion_request to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from deletion_request to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from deletion_request to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from draft to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from draft to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to draft using the community_content - node:post_moderated workflow'
   - 'transition any node news from draft to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node news from draft to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from draft to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from needs_update to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from needs_update to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from needs_update to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node news from needs_update to proposed using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from proposed to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from proposed to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from proposed to proposed using the community_content - node:post_moderated workflow'
   - 'transition any node news from proposed to proposed using the community_content - node:pre_moderated workflow'
   - 'transition any node news from proposed to validated using the community_content - node:post_moderated workflow'
   - 'transition any node news from proposed to validated using the community_content - node:pre_moderated workflow'
+  - 'transition any node news from validated to archived using the community_content - node:post_moderated workflow'
+  - 'transition any node news from validated to archived using the community_content - node:pre_moderated workflow'
   - 'transition any node news from validated to draft using the community_content - node:post_moderated workflow'
   - 'transition any node news from validated to draft using the community_content - node:pre_moderated workflow'
   - 'transition any node news from validated to needs_update using the community_content - node:post_moderated workflow'
@@ -317,6 +368,7 @@ permissions:
   - 'transition group from validated to proposed using the solution - solution_workflow workflow'
   - 'transition group from validated to validated using the collection - collection_workflow workflow'
   - 'transition group from validated to validated using the solution - solution_workflow workflow'
+  - 'unarchived community content'
   - 'unfeature entity'
   - 'update collection_settings meta-entity'
   - 'update eif wrapper entity'
diff --git a/config/sync/views.view.group_content_management.yml b/config/sync/views.view.group_content_management.yml
index 27b912910eadbc30b8597b1bfe5a5c376ad1b40b..f481960474caa5d408d9d47666b9b8ba9e16ca9c 100644
--- a/config/sync/views.view.group_content_management.yml
+++ b/config/sync/views.view.group_content_management.yml
@@ -21,6 +21,7 @@ dependencies:
     - node
     - rest
     - serialization
+    - state_machine
     - user
     - views_bulk_operations
     - views_data_export
@@ -656,6 +657,50 @@ display:
             default_group: All
             default_group_multiple: {  }
             group_items: {  }
+        field_state_value:
+          id: field_state_value
+          table: node__field_state
+          field: field_state_value
+          relationship: none
+          group_type: group
+          admin_label: ''
+          plugin_id: state_machine_state
+          operator: in
+          value: {  }
+          group: 1
+          exposed: true
+          expose:
+            operator_id: field_state_value_op
+            label: State
+            description: ''
+            use_operator: false
+            operator: field_state_value_op
+            operator_limit_selection: false
+            operator_list: {  }
+            identifier: state
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+              licence_manager: '0'
+              anonymous: '0'
+              moderator: '0'
+              administrator: '0'
+              rdf_graph_manager: '0'
+            reduce: false
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
       filter_groups:
         operator: AND
         groups:
@@ -1302,6 +1347,14 @@ display:
               action_id: joinup_change_group
               preconfiguration:
                 label_override: ''
+            -
+              action_id: joinup_archive
+              preconfiguration:
+                add_confirmation: false
+            -
+              action_id: joinup_unarchive
+              preconfiguration:
+                add_confirmation: false
         type:
           id: type
           table: node_field_data
diff --git a/scripts/check_status_report.php b/scripts/check_status_report.php
index 084347da7257b801a9c9e8b7d49273b7a72eb5bb..26d532362d78854fd27e7c4ffc7d6612ad176efc 100755
--- a/scripts/check_status_report.php
+++ b/scripts/check_status_report.php
@@ -18,15 +18,18 @@
 $ignored_requirements = getenv('DRUPAL_STATUS_REPORT_IGNORE') ?: 'update status,joinup_core_root_user_blocked,search_api_solr_schema_joinup_modifications,deprecated_modules,deprecated_themes,metatag_maintenance_mode,search_api_pending_tasks';
 $ignored_option = "--ignore='$ignored_requirements'";
 
-function run_status_report(bool $title_only): ?string {
+function run_status_report(bool $title_only, bool $display_command = FALSE): ?string {
   global $ignored_option;
   $command = __DIR__ . "/../vendor/bin/drush core:requirements --severity=1 $ignored_option ";
-  $command .= $title_only ? '--field=title' : '--fields=title,severity,value,description';
+  $command .= $title_only ? '--field=title' : '--fields=title,severity,value,description --format=sections';
+  if ($display_command) {
+    print $command . "\n";
+  }
   return shell_exec($command);
 }
 
 if (run_status_report(TRUE) !== NULL) {
   print "Status Report shows errors & warnings\n";
-  print run_status_report(FALSE) . "\n";
+  print run_status_report(FALSE, TRUE) . "\n";
   exit(1);
 }
diff --git a/tests/features/collection/collection_overview.feature b/tests/features/collection/collection_overview.feature
index a2d12831b169ce289f4e4c2b5cbbb8454b1bbb59..ae6467c16a88f432c16fa937ac61b875d2035997 100644
--- a/tests/features/collection/collection_overview.feature
+++ b/tests/features/collection/collection_overview.feature
@@ -94,8 +94,8 @@ Feature: Collections Overview
       | title                             | body                             | collection | topic                   | spatial coverage | state     |
       | Jira will be down for maintenance | As always, during business hours | Jira       | Statistics and Analysis | Luxembourg       | validated |
     And custom_page content:
-      | title            | body                                       | collection |
-      | Maintenance page | Jira is re-indexing. Go and drink a coffee | Jira       |
+      | title            | body                                       | collection | state     |
+      | Maintenance page | Jira is re-indexing. Go and drink a coffee | Jira       | published |
     When I go to the homepage of the "Jira" collection
     Then I should see the "Jira will be down for maintenance" tile
     And I should not see the "Maintenance page" tile
diff --git a/tests/features/collection/last_update_time.feature b/tests/features/collection/last_update_time.feature
index 980d231eb551223d15526b5641b27b6ccafc51b0..d93802bd9538fb25a6aa6c3a1a4fce8da629e2a9 100644
--- a/tests/features/collection/last_update_time.feature
+++ b/tests/features/collection/last_update_time.feature
@@ -67,8 +67,8 @@ Feature: Tests the collection last update time.
     But the response should contain "2014-06-06T22:46"
 
     Given custom_page content:
-      | title          | changed          | created    | collection       |
-      | The Kids Space | 2016-05-06T05:29 | 2001-01-07 | Household Wizard |
+      | title          | changed          | created    | collection       | state     |
+      | The Kids Space | 2016-05-06T05:29 | 2001-01-07 | Household Wizard | published |
 
     And I reload the page
     # The custom page is the newest thus will give the collection updated time.
diff --git a/tests/features/collection/propose.feature b/tests/features/collection/propose.feature
index 7f02d7e2a1afab46c16bf45c5101a0dc00d8de12..0eeaa829ec9b6f19d5bdb94c34836f9c4b48a616 100644
--- a/tests/features/collection/propose.feature
+++ b/tests/features/collection/propose.feature
@@ -94,7 +94,7 @@ Feature: Proposing a collection
     When I fill in the following:
       | Title | About this group                                               |
       | Body  | <p>Some more<em>information</em><br />about the collection.<p> |
-    And I press "Save"
+    And I press "Publish"
     Then I should see the success message "Custom page About this group has been created."
     And the page should contain the html text "<p>Some more<em>information</em><br>about the collection.</p>"
 
diff --git a/tests/features/comments/freeze_comment.feature b/tests/features/comments/freeze_comment.feature
new file mode 100644
index 0000000000000000000000000000000000000000..882d20f06fb9fcbfef12612674b9d0f2c3e25f69
--- /dev/null
+++ b/tests/features/comments/freeze_comment.feature
@@ -0,0 +1,35 @@
+@api @group-e
+Feature: Freeze comments on archived content
+  As a visitor of the website I can only view comment on archived community content.
+
+  Background:
+    Given the following collections:
+      | title             | state     |
+      | Gossip collection | validated |
+    And users:
+      | Username        | E-mail                      | Roles | First name | Family name |
+      | Sons of anarchy | sons-of-anarchy@example.com |       | Sons       | Anarchy     |
+
+  Scenario Outline: Comment in 'View Only' state.
+    Given <type> content:
+      | title                              | body      | collection        | state    |
+      | Test freeze of comments for <type> | body test | Gossip collection | archived |
+    And comments:
+      | subject                        | field_body       | author          | parent                             |
+      | Comment with 'View Only' state | Let's all use it | Sons of anarchy | Test freeze of comments for <type> |
+
+    When I am logged in as "Sons of anarchy"
+    And I go to the content page of the type "<type>" with the title "Test freeze of comments for <type>"
+
+    Then comment #1 should contain the markup "Let's all use it"
+    And I should not see the button "Post comment" in the "Comment" region
+    And I should not see the button "Delete" in the "Comment" region
+    And I should not see the button "Edit" in the "Comment" region
+    And I should not see the button "Reply" in the "Comment" region
+
+    Examples:
+      | type       |
+      | news       |
+      | event      |
+      | discussion |
+      | document   |
\ No newline at end of file
diff --git a/tests/features/communities/interoperable_europe/interoperable_europe.feature b/tests/features/communities/interoperable_europe/interoperable_europe.feature
index fdea585f5ff8982e8a12e4a1cca868914a8a558b..b6ed709cf7236b16984a37145b90117620e59a72 100644
--- a/tests/features/communities/interoperable_europe/interoperable_europe.feature
+++ b/tests/features/communities/interoperable_europe/interoperable_europe.feature
@@ -90,7 +90,7 @@ Feature:
   Scenario: Report link and eTranslate button are not available in IOP custom pages.
     Given custom_page content:
       | title    | collection           | state     |
-      | IOP page | Interoperable Europe | validated |
+      | IOP page | Interoperable Europe | published |
 
     When I am logged in as a user with the authenticated role
     And I go to the "IOP page" custom page
diff --git a/tests/features/communities/interoperable_europe/iop_paragraphs.feature b/tests/features/communities/interoperable_europe/iop_paragraphs.feature
index f55cac19a1b03f39cc65a3708edf93462a8419d4..52d6b43a7d40c4cf42fc904b404360ced3df408b 100644
--- a/tests/features/communities/interoperable_europe/iop_paragraphs.feature
+++ b/tests/features/communities/interoperable_europe/iop_paragraphs.feature
@@ -96,7 +96,7 @@ Feature:
         """
         entity_bundle|news
         """
-    When I press "Save"
+    When I press "Publish"
 
     # Ensure that listings are restricted only for group content by default.
     Then I should see the "Some news 1" tile
@@ -108,9 +108,9 @@ Feature:
       | Carousel c1 | validated |
     And custom_page content:
       | title       | collection           | content       | state     |
-      | Some page 1 | Interoperable Europe | Some content. | validated |
-      | Some page 2 | Carousel c1          | Some content. | validated |
-      | Some page 3 | Carousel c1          | Some content. | validated |
+      | Some page 1 | Interoperable Europe | Some content. | published |
+      | Some page 2 | Carousel c1          | Some content. | published |
+      | Some page 3 | Carousel c1          | Some content. | published |
 
     When I am logged in as a moderator
     And I go to the homepage
@@ -127,7 +127,7 @@ Feature:
     And I select "Custom page" from "Available filters"
     And I press "Add and configure filter"
     And I fill in "Custom page" with "Some page 1"
-    When I press "Save"
+    When I press "Publish"
 
     Then I should see the "Some page 1" tile
     But I should not see the "Some page 2" tile
@@ -135,7 +135,7 @@ Feature:
 
     When I go to the edit form of the "Pages carousel" "custom page"
     And I fill in "Custom page" with "Some page 3"
-    And I press "Save"
+    And I press "Update"
 
     # Global search is not checked. No tiles should be shown.
     Then I should not see the "Some page 1" tile
@@ -144,7 +144,7 @@ Feature:
 
     When I go to the edit form of the "Pages carousel" "custom page"
     And I check "Global search"
-    And I press "Save"
+    And I press "Update"
     Then I should see the "Some page 3" tile
     But I should not see the "Some page 1" tile
     And I should not see the "Some page 2" tile
@@ -171,7 +171,7 @@ Feature:
         """
         entity_bundle|news
         """
-    When I press "Save"
+    When I press "Publish"
     Then I should see the following tiles in the correct order:
       | Some news 3 |
       | Some news 1 |
@@ -199,7 +199,7 @@ Feature:
         """
         entity_bundle|event
         """
-    When I press "Save"
+    When I press "Publish"
     Then I should see the following tiles in the correct order:
       | Some event 1 |
       | Some event 2 |
diff --git a/tests/features/community_content/archive.feature b/tests/features/community_content/archive.feature
new file mode 100644
index 0000000000000000000000000000000000000000..cc247597b2b1b08609e29935d46fc01d29fb1d94
--- /dev/null
+++ b/tests/features/community_content/archive.feature
@@ -0,0 +1,110 @@
+@api @group-g
+Feature: Content archival.
+
+  Scenario Outline: All community content can be archived any time.
+    Given collection:
+      | title      | Some collection |
+      | state      | validated       |
+      # Set the moderation to yes to be able to access all states.
+      # Deletion request is not available in a post moderation workflow.
+      | moderation | yes             |
+    Given <type> content:
+      | title       | state   | collection      | body | content | headline    |
+      | Test <type> | <state> | Some collection | Test | Test    | Test <type> |
+    When I am logged in as a moderator
+    And I go to the edit form of the "Test <type>" <type>
+    Then I should see the button "Archive"
+
+    When I press "Archive"
+    Then I should see the message "<type label> Test <type> has been updated."
+    And I should see the text "Archive" in the "Page title" region
+    When I go to the edit form of the "Test <type>" <type>
+    Then I should not see the button "Archive"
+    And I should see the button "Unarchive"
+
+    When I press "Unarchive"
+    Then I should see the message '<type label> "Test <type>" has been unarchived.'
+    And I should not see the text "Archive" in the "Page title" region
+    When I go to the edit form of the "Test <type>" <type>
+    Then I should see the button "Archive"
+    And the current workflow state should be "<state label>"
+
+    Examples:
+      | type       | type label | state            | state label      |
+      | discussion | Discussion | draft            | Draft            |
+      | discussion | Discussion | proposed         | Proposed         |
+      | discussion | Discussion | validated        | Published        |
+      | discussion | Discussion | needs_update     | Needs update     |
+      | discussion | Discussion | deletion_request | Deletion request |
+      | document   | Document   | draft            | Draft            |
+      | document   | Document   | proposed         | Proposed         |
+      | document   | Document   | validated        | Published        |
+      | document   | Document   | needs_update     | Needs update     |
+      | document   | Document   | deletion_request | Deletion request |
+      | event      | Event      | draft            | Draft            |
+      | event      | Event      | proposed         | Proposed         |
+      | event      | Event      | validated        | Published        |
+      | event      | Event      | needs_update     | Needs update     |
+      | event      | Event      | deletion_request | Deletion request |
+      | news       | News       | draft            | Draft            |
+      | news       | News       | proposed         | Proposed         |
+      | news       | News       | validated        | Published        |
+      | news       | News       | needs_update     | Needs update     |
+      | news       | News       | deletion_request | Deletion request |
+
+  Scenario Outline: Group facilitators can not unarchived community content
+    Given <group type>:
+      | title      | Some group |
+      | state      | validated  |
+      # Set the moderation to yes to be able to access all states.
+      # Deletion request is not available in a post moderation workflow.
+      | moderation | yes        |
+    Given <type> content:
+      | title       | state   | <group type> | body | content | headline    |
+      | Test <type> | <state> | Some group   | Test | Test    | Test <type> |
+    When I am logged in as a facilitator of the "Some group" <group type>
+    And I go to the edit form of the "Test <type>" <type>
+    Then I should see the button "Archive"
+
+    When I press "Archive"
+    Then I should see the message "<type label> Test <type> has been updated."
+    When I go to the edit form of the "Test <type>" <type>
+    Then I should not see the button "Archive"
+    And I should not see the button "Unarchive"
+
+    Examples:
+      | group type | type       | type label | state            |
+      | collection | discussion | Discussion | proposed         |
+      | collection | discussion | Discussion | validated        |
+      | collection | discussion | Discussion | needs_update     |
+      | collection | discussion | Discussion | deletion_request |
+      | collection | document   | Document   | proposed         |
+      | collection | document   | Document   | validated        |
+      | collection | document   | Document   | needs_update     |
+      | collection | document   | Document   | deletion_request |
+      | collection | event      | Event      | proposed         |
+      | collection | event      | Event      | validated        |
+      | collection | event      | Event      | needs_update     |
+      | collection | event      | Event      | deletion_request |
+      | collection | news       | News       | proposed         |
+      | collection | news       | News       | validated        |
+      | collection | news       | News       | needs_update     |
+      | collection | news       | News       | deletion_request |
+      | solution   | discussion | Discussion | proposed         |
+      | solution   | discussion | Discussion | validated        |
+      | solution   | discussion | Discussion | needs_update     |
+      | solution   | discussion | Discussion | deletion_request |
+      | solution   | document   | Document   | proposed         |
+      | solution   | document   | Document   | validated        |
+      | solution   | document   | Document   | needs_update     |
+      | solution   | document   | Document   | deletion_request |
+      | solution   | event      | Event      | draft            |
+      | solution   | event      | Event      | proposed         |
+      | solution   | event      | Event      | validated        |
+      | solution   | event      | Event      | needs_update     |
+      | solution   | event      | Event      | deletion_request |
+      | solution   | news       | News       | draft            |
+      | solution   | news       | News       | proposed         |
+      | solution   | news       | News       | validated        |
+      | solution   | news       | News       | needs_update     |
+      | solution   | news       | News       | deletion_request |
diff --git a/tests/features/community_content/archive.listings.feature b/tests/features/community_content/archive.listings.feature
new file mode 100644
index 0000000000000000000000000000000000000000..5c447b9c060cc9b1929ed2671ba371d58588a9d3
--- /dev/null
+++ b/tests/features/community_content/archive.listings.feature
@@ -0,0 +1,191 @@
+@api @group-g @terms
+Feature: Archived content on content listings - groups and paragraphs.
+
+  Background:
+    Given owner:
+      | name       |
+      | Some owner |
+    And contact:
+      | name | Some contact |
+    And collections:
+      | title           | description | topic             | owner      | contact information | state     |
+      | Some collection | Test        | Supplier exchange | Some owner | Some contact        | validated |
+      | Poly screens    | Test        | Supplier exchange | Some owner | Some contact        | validated |
+    And news content:
+      | title          | headline       | state     | collection      | body | content |
+      | Archived news  | Archived news  | validated | Some collection | Test | Test    |
+      | Published news | Published news | validated | Some collection | Test | Test    |
+      | Poly news 1    | Poly news 1    | validated | Poly screens    | Test | Test    |
+      | Poly news 2    | Poly news 2    | validated | Poly screens    | Test | Test    |
+      | Poly news 3    | Poly news 3    | validated | Poly screens    | Test | Test    |
+      | Poly news 4    | Poly news 4    | validated | Poly screens    | Test | Test    |
+    # We need the "Archived news" content to be archived by altering its state
+    # because "Unarchiving" it restored the previous revision and thus, needs
+    # to have a previous revision (created as validated).
+    And the workflow state of the "Archived news" content is set to "archived"
+
+  Scenario: Collection content listing can control archived content visibility.
+    When I am logged in as a moderator
+    And I go to the edit form of the "Some collection" collection
+    And I check "Enable the search field"
+    And I press "Publish"
+    Then I should see the heading "Some collection"
+    # By default, 'Show archived content' is set to 'unarchived'.
+    And I should see the "Published news" tile
+    But I should not see the "Archived news" tile
+
+    When I go to the edit form of the "Some collection" collection
+    And I select "Archived" from "Show archived content"
+    And I press "Publish"
+    Then I should see the heading "Some collection"
+    And I should see the "Archived news" tile
+    But I should not see the "Published news" tile
+
+    When I go to the edit form of the "Some collection" collection
+    And I select "All" from "Show archived content"
+    And I press "Publish"
+    Then I should see the heading "Some collection"
+    And I should see the "Published news" tile
+    # By default, the toggle to show archived content is disabled.
+    But I should not see the "Archived news" tile
+
+  Scenario: Content listing paragraph can control visibility of archived items.
+    When I am logged in as a moderator
+    And I go to the "Some collection" collection
+    And I click "Add custom page"
+    And I fill in "Title" with "Some page"
+    And I press "Add Content listing"
+    And I fill in "Query presets" with "entity_bundle|news"
+    And I press "Save"
+    Then I should see the heading "Some page"
+    # By default, 'Show archived content' is set to 'unarchived'.
+    And I should see the "Published news" tile
+    But I should not see the "Archived news" tile
+
+    And I go to the "Poly screens" collection
+    And I click "Add custom page"
+    And I fill in "Title" with "Poly page"
+    And I press "Add Content listing"
+    And I select "All" from "Show archived content"
+    And I fill in "Query presets" with "entity_bundle|news"
+    And I press "Save"
+
+    When I go to the "Some page" custom page
+    And I click "Edit"
+    And I select "Archived" from "Show archived content"
+    And I press "Save"
+    Then I should see the heading "Some page"
+    And I should see the "Archived news" tile
+    But I should not see the "Published news" tile
+
+    When I go to the "Poly page" custom page
+    Then I should see the heading "Poly page"
+    And I should not see the text "Show archived"
+
+    When I go to the "Some page" custom page
+    And I click "Edit"
+    And I select "All" from "Show archived content"
+    And I press "Save"
+    Then I should see the heading "Some page"
+    Then I should see the following facet items "News, Show archived" in this order
+    And I should see the text "Show archived"
+    And I should not see the "Archived news" tile
+    And I should see the "Published news" tile
+
+    When I click "Show archived"
+    And I should see the "Archived news" tile
+    And I should not see the "Published news" tile
+
+    When I go to the "Poly page" custom page
+    Then I should see the heading "Poly page"
+    And I should not see the text "Show archived"
+
+    When I go to the "Some page" custom page
+    And I click "Edit"
+    And I select "Archived" from "Show archived content"
+    And I press "Save"
+    Then I should see the heading "Some page"
+    And I should not see the text "Show archived"
+    And I should see the "Archived news" tile
+    And I should not see the "Published news" tile
+
+    When I go to the "Poly page" custom page
+    Then I should see the heading "Poly page"
+    And I should not see the text "Show archived"
+
+    When I go to the "Some page" custom page
+    And I click "Edit"
+    And I select "Unarchived" from "Show archived content"
+    And I press "Save"
+    Then I should see the heading "Some page"
+    And I should not see the text "Show archived"
+    And I should not see the "Archived news" tile
+    And I should see the "Published news" tile
+
+    When I go to the "Poly page" custom page
+    Then I should see the heading "Poly page"
+    And I should not see the text "Show archived"
+
+  Scenario: Carousel listings can also control archived items visibility.
+    Given collection:
+      | uri   | http://data.europa.eu/w21/8e30f798-ff2b-478b-9c09-5ed5a63b4c8c |
+      | title | Interoperable Europe                                           |
+      | state | validated                                                      |
+    And news content:
+      | title              | headline           | state     | collection           | body | content |
+      | IOP archived news  | IOP archived news  | archived  | Interoperable Europe | Test | Test    |
+      | IOP published news | IOP published news | validated | Interoperable Europe | Test | Test    |
+
+    When I am logged in as a moderator
+    And I go to the "Interoperable Europe" collection
+    And I click "Add custom page"
+    And I fill in "Title" with "IOP page"
+    And I press "Add Row"
+    And I press "Add 1 column layout"
+    And I press "Add Carousel"
+    And I fill in "Query presets" with "entity_bundle|news"
+    And I press "Save"
+    Then I should see the heading "IOP page"
+    # By default, 'Show archived content' is set to 'unarchived'.
+    And I should see the "IOP published news" tile
+    But I should not see the "IOP archived news" tile
+
+    When I go to the "IOP page" custom page
+    And I click "Edit"
+    And I select "Archived" from "Show archived content"
+    And I press "Save"
+    Then I should see the heading "IOP page"
+    And I should see the "IOP archived news" tile
+    But I should not see the "IOP published news" tile
+
+    When I go to the "IOP page" custom page
+    And I click "Edit"
+    And I select "All" from "Show archived content"
+    And I press "Save"
+    Then I should see the heading "IOP page"
+    And I should see the "IOP archived news" tile
+    And I should see the "IOP published news" tile
+
+  Scenario: "Show archived" facet does not show up when there are no archived items.
+    Given the "Some collection" collection is configured to show "All" community content in the overview
+    When I go to the "Some collection" collection
+    Then I should see the "collection content archived toggle" facet
+
+    When I am logged in as a moderator
+    And I go to the edit form of the "Archived news" news
+    And I press "Unarchive"
+    Then I should see the heading "Archived news"
+
+    And I go to the "Some collection" collection
+    # @todo Fix this in ISAICP-7756.
+    # Then I should see the heading "Some collection"
+    And I should see the "Published news" tile
+    And I should see the "Archived news" tile
+    But I should not see the "collection content archived toggle" facet
+
+    When I go to the edit form of the "Archived news" news
+    And I press "Archive"
+    And I go to the "Some collection" collection
+    Then I should see the "Published news" tile
+    But I should not see the "Archived news" tile
+    And I should see the "collection content archived toggle" facet
diff --git a/tests/features/community_content/notification.muted.feature b/tests/features/community_content/notification.muted.feature
new file mode 100644
index 0000000000000000000000000000000000000000..bc01fc0580f23277966042b902ac8345237b64b3
--- /dev/null
+++ b/tests/features/community_content/notification.muted.feature
@@ -0,0 +1,39 @@
+@api @group-b
+Feature: Notifications are muted when entity is archived/unarchived.
+  As a member of a collection
+  I dont want to receive a notification when an entity is archived or unarchived.
+
+  Background:
+    Given the following collections:
+      | title     | state     |
+      | Milky Way | validated |
+    And users:
+      | Username | E-mail            | First name | Family name  | Notification frequency |
+      | hristo   | hristo@example.bg | Hristo     | Draganov     | daily                  |
+      | bisera   | bisera@example.bg | Bisera     | Kaloyancheva | weekly                 |
+      | kalin    | kalin@primer.bg   | Kalin      | Antov        | monthly                |
+    And the following collection user memberships:
+      | collection | user   | roles       |
+      | Milky Way  | hristo |             |
+      | Milky Way  | bisera | owner       |
+      | Milky Way  | kalin  | facilitator |
+    And the following collection content subscriptions:
+      | collection | user   | subscriptions                                 |
+      | Milky Way  | hristo | discussion, discussion, event, news, solution |
+      | Milky Way  | bisera | discussion, document, news                    |
+      | Milky Way  | kalin  | document, event                               |
+
+  Scenario Outline: Updates to archive and unarchive state does not trigger notifications.
+    Given <type> content:
+      | title            | state     | collection | body | content | headline    |
+      | Milky Way <type> | validated | Milky Way  | Test | Test    | Test <type> |
+    And I mark all emails as read
+    When I am logged in as "bisera"
+    And I go to the edit form of the "Milky Way <type>" <type>
+    And I press "Archive"
+
+    Examples:
+      | type     |
+      | document |
+      | event    |
+      | news     |
diff --git a/tests/features/contact_form/prefill.feature b/tests/features/contact_form/prefill.feature
index e0218ba3d11d12ddbfe398711938b2167ca20c99..51006e2028a8de136ef8f7cce44460b0e09f2a93 100644
--- a/tests/features/contact_form/prefill.feature
+++ b/tests/features/contact_form/prefill.feature
@@ -19,7 +19,7 @@ Feature: Prefill contact form fields
     When I fill in the following:
       | Title | Change management                                                                    |
       | Body  | <p>Follow this <a href="../../contact?subject=CAMSS%20Change%20Request">link</a></p> |
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "Change management"
 
     When I click "link"
diff --git a/tests/features/custom_page/add_custom_page.feature b/tests/features/custom_page/add_custom_page.feature
index 6ccec953665ee3e602425727e078316ac3a3bdad..7687eb6fb0310df9f84612becc93eeb936cf1170 100644
--- a/tests/features/custom_page/add_custom_page.feature
+++ b/tests/features/custom_page/add_custom_page.feature
@@ -67,11 +67,11 @@ Feature: "Add custom page" visibility options.
     And I should see the contextual link "Add new page" in the "Header bottom" region
     When I click the contextual link "Add new page" in the "Header bottom" region
     Then I should see the heading "Add custom page"
-    And the following fields should be present "Title, Body, Published"
+    And the following fields should be present "Title, Body"
 
     # The sections about managing revisions and groups should not be visible.
     And I should not see the text "Revision information"
-    And the following fields should not be present "Groups audience, Other groups, Create new revision, Revision log message"
+    And the following fields should not be present "Groups audience, Other groups, Create new revision, Revision log message, Published"
 
     When I fill in the following:
       | Title | About us |
@@ -84,9 +84,10 @@ Feature: "Add custom page" visibility options.
     And I press "Upload"
     And I fill in the 2nd "Description" field of the "Attachments" file field with "Alan"
     And I uncheck the 2nd "Display" checkbox of the "Attachments" file field
+    Then I should not see the button "Archive"
+    And I should not see the button "Delete"
 
-    And I uncheck "Published"
-    And I press "Save"
+    And I press "Save as draft"
     Then I should see the heading "About us"
     And I should see the success message "Custom page About us has been created."
     And I should see the text "Attachments"
@@ -134,9 +135,9 @@ Feature: "Add custom page" visibility options.
     # Create custom pages with 5 and 6 attachments.
     # 5 is the limit before adding the "Show more" functionality.
     And custom_page content:
-      | title          | body                 | collection        | attachments                                                                                                                                                                                                          |
-      | Rubber bands   | The aggressive ones. | Aggressive Rubber | target_id: empty.rdf - display: 1, target_id: empty_pdf.pdf - display: 1, target_id: invalid_adms.rdf - display: 1, target_id: test.zip - display: 1, target_id: text.pdf - display: 1                               |
-      | Elastic rubber | Also aggressive.     | Aggressive Rubber | target_id: ada.png - display: 1, target_id: alan.jpg - display: 1, target_id: blaise.jpg - display: 1, target_id: charles.jpg - display: 1, target_id: leonardo.jpg - display: 1, target_id: linus.jpeg - display: 1 |
+      | title          | body                 | collection        | state     | attachments                                                                                                                                                                                                          |
+      | Rubber bands   | The aggressive ones. | Aggressive Rubber | published | target_id: empty.rdf - display: 1, target_id: empty_pdf.pdf - display: 1, target_id: invalid_adms.rdf - display: 1, target_id: test.zip - display: 1, target_id: text.pdf - display: 1                               |
+      | Elastic rubber | Also aggressive.     | Aggressive Rubber | published | target_id: ada.png - display: 1, target_id: alan.jpg - display: 1, target_id: blaise.jpg - display: 1, target_id: charles.jpg - display: 1, target_id: leonardo.jpg - display: 1, target_id: linus.jpeg - display: 1 |
 
     When I go to the "Rubber bands" custom page
     Then the "empty.rdf" link in the Content region should be visible
@@ -171,8 +172,8 @@ Feature: "Add custom page" visibility options.
 
   Scenario Outline: Creating a custom page with a title that already exists.
     And custom_page content:
-      | title        | body        | <group>       | creation date       |
-      | Rubber boots | For outside | <first title> | 2014-08-30 23:59:00 |
+      | title        | body        | <group>       | creation date       | state     |
+      | Rubber boots | For outside | <first title> | 2014-08-30 23:59:00 | published |
 
     # It should not be possible to create a custom page with a duplicate title.
     Given I am logged in as a facilitator of the "<first title>" <group>
@@ -183,7 +184,7 @@ Feature: "Add custom page" visibility options.
     When I fill in the following:
       | Title | Rubber boots |
     And I enter "We love mud!" in the "Body" wysiwyg editor
-    And I press "Save"
+    And I press "Publish"
     Then I should see the error message "The Custom page title value (Rubber boots) is already taken by Rubber boots."
 
     # It should still be possible to create a custom page with the existing
@@ -196,7 +197,7 @@ Feature: "Add custom page" visibility options.
     When I fill in the following:
       | Title | Rubber boots |
     And I enter "We love mud!" in the "Body" wysiwyg editor
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "Rubber boots"
     And I should see the success message "Custom page Rubber boots has been created."
 
diff --git a/tests/features/custom_page/api.feature b/tests/features/custom_page/api.feature
index 14e073caeacb64a2ef688b4b87a4b53cfb8ac44d..771484ba491c4c2b00c137dd127840f53538ca78 100644
--- a/tests/features/custom_page/api.feature
+++ b/tests/features/custom_page/api.feature
@@ -16,8 +16,8 @@ Feature: Custom page API
       | content creation | facilitators and authors |
       | state            | validated                |
     And custom_page content:
-      | title      | body                                     | collection      |
-      | Dummy page | This is some dummy content like foo:bar. | Le Foie Heureux |
+      | title      | body                                     | collection      | state     |
+      | Dummy page | This is some dummy content like foo:bar. | Le Foie Heureux | published |
      # @Fixme unimplemented. See ISAICP-2369
      # | Exclude from menu |                                              |
     Then I should have a "Custom page" page titled "Dummy page"
diff --git a/tests/features/custom_page/carousel_paragraphs.feature b/tests/features/custom_page/carousel_paragraphs.feature
index 711ebb5b96fe721b134222ee145461f13f7e569f..e75ee002b073ec06cbd5e8d136f24bc05f914658 100644
--- a/tests/features/custom_page/carousel_paragraphs.feature
+++ b/tests/features/custom_page/carousel_paragraphs.feature
@@ -61,9 +61,9 @@ Feature:
       | Sparta      | validated |
     And custom_page content:
       | title       | headline    | collection  | content       | state     |
-      | Some page 1 | Some page 1 | Roman ruins | Some content. | validated |
-      | Some page 2 | Some page 2 | Sparta      | Some content. | validated |
-      | Some page 3 | Some page 3 | Sparta      | Some content. | validated |
+      | Some page 1 | Some page 1 | Roman ruins | Some content. | published |
+      | Some page 2 | Some page 2 | Sparta      | Some content. | published |
+      | Some page 3 | Some page 3 | Sparta      | Some content. | published |
 
     When I am logged in as a moderator
     And I go to the homepage
diff --git a/tests/features/custom_page/community_content.view_mode.feature b/tests/features/custom_page/community_content.view_mode.feature
index 3600867a733e40a97b312250d8048396387e9832..4495a1307122a5e1421a9fa34a2a94a384a3f731 100644
--- a/tests/features/custom_page/community_content.view_mode.feature
+++ b/tests/features/custom_page/community_content.view_mode.feature
@@ -48,7 +48,7 @@ Feature:
         """
         entity_bundle|asset_distribution,asset_release,discussion,document,event,news|IN
         """
-    When I press "Save"
+    When I press "Publish"
 
     Then I should see the "Tile release" tile
     And I should see the text "v0.1" in the "Tile release" tile
@@ -94,7 +94,7 @@ Feature:
         """
         entity_bundle|discussion,document,event,news|IN
         """
-    When I press "Save"
+    When I press "Publish"
 
     And I should see the "Tile news" tile
     And I should see the "Tile event" tile
diff --git a/tests/features/custom_page/community_content_listing.feature b/tests/features/custom_page/community_content_listing.feature
index 490ae1a0071cc5a1bc6ab7f8dca394e3553466a3..092b857e322ca237fd0868d99d23d50ee56ceae2 100644
--- a/tests/features/custom_page/community_content_listing.feature
+++ b/tests/features/custom_page/community_content_listing.feature
@@ -11,7 +11,7 @@ Feature:
       | Emulators  | logo.png | banner.jpg | validated |
     And custom_page content:
       | title               | collection | created           | body                               | state     | pinned |
-      | Latest news listing | Nintendo64 | 2019-10-01 4:26am | You can find the latest news here. | validated | no     |
+      | Latest news listing | Nintendo64 | 2019-10-01 4:26am | You can find the latest news here. | published | no     |
     And news content:
       | title                                 | collection | created           | content                          | state     | pinned |
       | Rare Nintendo64 disk drive discovered | Nintendo64 | 2018-10-01 4:26am | Magnetic drive called 64DD.      | validated | no     |
@@ -77,7 +77,7 @@ Feature:
     And I should see the text "Display content shared from other communities."
     And I should see the text "Note: the content shown is dynamic, filtered live each time users will visualise the page. As a result, new content might be shown and old content can be altered or deleted."
 
-    When I press "Save"
+    When I press "Publish"
     Then I should see the heading "Latest content"
     And I should see the "Rare Nintendo64 disk drive discovered" tile
     And I should see the "20 year anniversary" tile
@@ -93,7 +93,7 @@ Feature:
       | Title | Latest news                        |
       | Body  | Shows all news for this collection |
     And I fill in "Query presets" with "entity_bundle|news"
-    And I press "Save"
+    And I press "Update"
     Then I should see the heading "Latest news"
     And I should see the "Rare Nintendo64 disk drive discovered" tile
     But I should not see the "20 year anniversary" tile
@@ -103,7 +103,7 @@ Feature:
     And I go to the "Latest news" custom page
     When I click "Edit" in the "Entity actions" region
     And I check "Allow shared content"
-    And I press "Save"
+    And I press "Update"
     # Only news are displayed.
     Then I should see the "Rare Nintendo64 disk drive discovered" tile
     But I should not see the "20 year anniversary" tile
@@ -135,7 +135,7 @@ Feature:
 
     When I click "Edit" in the "Entity actions" region
     And I uncheck "Show related content"
-    And I press "Save"
+    And I press "Update"
     Then I should not see the "Rare Nintendo64 disk drive discovered" tile
     And I should not see the "20 year anniversary" tile
     And I should not see the "NEC VR4300 CPU" tile
@@ -169,7 +169,7 @@ Feature:
     And I press "Add and configure filter"
     And I fill in "Event" with "20 year anniversary"
     Then I drag the table row in the "Content listing field filter form" region at position 4 up
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "Chosen content"
     And I should see the following tiles in the correct order:
       | Searching for green pad.              |
@@ -181,7 +181,7 @@ Feature:
     And I click "Edit" in the "Entity actions" region
     And I drag the table row in the "Content listing field filter form" region at position 3 up
     And I drag the table row in the "Content listing field filter form" region at position 2 up
-    And I press "Save"
+    And I press "Update"
     And I should see the following tiles in the correct order:
       | 20 year anniversary                   |
       | Searching for green pad.              |
@@ -195,7 +195,7 @@ Feature:
     And I press "Add and configure filter"
     And I fill in the 2nd "News" with "NEC VR4300 CPU" in the "Custom content listing" field
     And I check "Allow shared content"
-    And I press "Save"
+    And I press "Update"
     Then I should see the following tiles in the correct order:
       | 20 year anniversary                   |
       | Searching for green pad.              |
@@ -220,7 +220,7 @@ Feature:
     When I open the header local tasks menu
     And I click "Edit" in the "Entity actions" region
     And I uncheck "Allow shared content"
-    And I press "Save"
+    And I press "Update"
     Then I should see the following tiles in the correct order:
       | 20 year anniversary                   |
       | Searching for green pad.              |
@@ -248,7 +248,7 @@ Feature:
     And I fill in "Solution" with "N64 cartridge cleaner"
     And I drag the table row in the "Content listing field filter form" region at position 4 up
     And I drag the table row in the "Content listing field filter form" region at position 3 up
-    And I press "Save"
+    And I press "Update"
     Then I should see the following tiles in the correct order:
       | Searching for green pad.        |
       | N64 cartridge cleaner           |
@@ -260,7 +260,7 @@ Feature:
     And I open the header local tasks menu
     And I click "Edit" in the "Entity actions" region
     And I fill in "Query presets" with "entity_bundle|solution"
-    And I press "Save"
+    And I press "Update"
     Then I should see the following tiles in the correct order:
       | N64 cartridge cleaner |
 
@@ -300,7 +300,7 @@ Feature:
     And I select "News" from "Available filters"
     And I press "Add and configure filter"
     And I fill in "News" with "Rare Nintendo64 disk drive discovered"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "Collection content"
     # Verify that unwanted facets are not shown in the page.
     And I should see the following facet items "Discussion, Event, News" in this order
@@ -339,7 +339,7 @@ Feature:
         entity_bundle|document
         keywords|"nintendo64 manuals"
         """
-    When I press "Save"
+    When I press "Publish"
 
     Then I should see the "User's Guide" tile
     But I should not see the "Licence" tile
@@ -356,7 +356,7 @@ Feature:
         entity_bundle|document
         keywords|"nintendo64 licences"
         """
-    When I press "Save"
+    When I press "Publish"
 
     Then I should see the "Licence" tile
     But I should not see the "User's Guide" tile
@@ -369,13 +369,13 @@ Feature:
     When I fill in "Title" with "Query presets validation"
     And I press "Add Content listing"
     And I fill in "Query presets" with "wrongvalue"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the error message "Invalid query preset line added: wrongvalue."
     When I fill in "Query presets" with "unknown_field|news"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the error message "Invalid search field specified: unknown_field."
     When I fill in "Query presets" with "entity_bundle|news|equal"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the error message "Invalid operator specified: equal. Allowed operators are '=', '<>', 'IN', 'NOT IN'."
     # Verify that errors are reported when multiline values are added.
     When I fill in "Query presets" with:
@@ -383,7 +383,7 @@ Feature:
         entity_bundle|news
         unknown_field|test
         """
-    And I press "Save"
+    And I press "Publish"
     Then I should see the error message "Invalid search field specified: unknown_field."
 
   Scenario: Empty query presets and query builder field show a validation error.
@@ -393,7 +393,7 @@ Feature:
     Then I should see the heading "Add custom page"
     When I fill in "Title" with "Empty queries"
     And I press "Add Content listing"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the error message "You need to add a filter in the Content listing block"
 
   @terms
@@ -411,7 +411,7 @@ Feature:
         entity_bundle|discussion,event,news|IN
         """
     And I check "Global search"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "All content"
     # All tiles are available.
     And I should see the following tiles in the correct order:
@@ -475,8 +475,8 @@ Feature:
       | The Green Alliance   | Nintendo64 | validated |
 
     And custom_page content:
-      | title   | collection |
-      | Forests | Nintendo64 |
+      | title   | collection | state     |
+      | Forests | Nintendo64 | published |
 
     Given I am logged in as a facilitator of the "Nintendo64" collection
     And I go to the edit form of the "Forests" "custom page"
@@ -514,8 +514,8 @@ Feature:
       | Black Noise        | Nintendo64 | validated |
 
     And custom_page content:
-      | title | collection |
-      | Bikes | Nintendo64 |
+      | title | collection | state     |
+      | Bikes | Nintendo64 | published |
 
     Given I am logged in as a facilitator of the "Nintendo64" collection
     And I go to the edit form of the "Bikes" "custom page"
@@ -542,7 +542,7 @@ Feature:
 
     And I press latest "Add and configure filter"
     And I fill in the latest "Solution" field with "Fight battery mode"
-    Then I press "Save"
+    Then I press "Update"
     And I should see the heading "Bikes"
 
     When I go to the edit form of the "Bikes" "custom page"
diff --git a/tests/features/custom_page/custom_page.edit.feature b/tests/features/custom_page/custom_page.edit.feature
index 6da287bc49d97d3c4771ee0e4537164e629c1af4..c3e0fd2d4d1726882098e8e6b1de3ad0132c9c4b 100644
--- a/tests/features/custom_page/custom_page.edit.feature
+++ b/tests/features/custom_page/custom_page.edit.feature
@@ -17,8 +17,8 @@ Feature: "Custom page" editing.
       | Dumbo Collective | Mickey Mouse | facilitator |
       | Dumbo Collective | Pluto        | member      |
     And "custom_page" content:
-      | title                            | <group>          | body | logo     |
-      | Buena Vista Distribution Company | Dumbo Collective | N/A  | logo.png |
+      | title                            | <group>          | body | logo     | state     |
+      | Buena Vista Distribution Company | Dumbo Collective | N/A  | logo.png | published |
 
     # Group owner should see the button.
     When I am logged in as "Mickey Mouse"
@@ -34,8 +34,8 @@ Feature: "Custom page" editing.
     Then I should see the link "Edit"
     When I click "Edit"
     Then I should see the heading "Edit Custom page Buena Vista Distribution Company"
-    And the following fields should be present "Title, Body, Published"
-    And the following fields should not be present "Groups audience, Other groups, Generate automatic URL alias, URL alias"
+    And the following fields should be present "Title, Body"
+    And the following fields should not be present "Groups audience, Other groups, Generate automatic URL alias, URL alias, Published"
     And I should not see the following lines of text:
       | Authored on                                  |
       | Create new revision                          |
@@ -64,8 +64,8 @@ Feature: "Custom page" editing.
     And I go to the "Buena Vista Distribution Company" custom page
     And I click "Edit"
     Then I should see the heading "Edit Custom page Buena Vista Distribution Company"
-    And the following fields should be present "Title, Body, Published"
-    And the following fields should not be present "Groups audience, Other groups, URL alias"
+    And the following fields should be present "Title, Body"
+    And the following fields should not be present "Groups audience, Other groups, URL alias, Published"
     And the following fields should not be present "Groups audience, Other groups, Generate automatic URL alias, URL alias"
     And I should not see the following lines of text:
       | Authored on                                  |
@@ -81,7 +81,7 @@ Feature: "Custom page" editing.
       | Sticky at top of lists                       |
 
     When I fill in "Title" with "Walt Disney Studios Motion Pictures"
-    And I press "Save"
+    And I press "Update"
     Then I should have a "Custom page" content page titled "Walt Disney Studios Motion Pictures"
 
     Examples:
diff --git a/tests/features/custom_page/custom_page.file_download.feature b/tests/features/custom_page/custom_page.file_download.feature
index bd74a671ed9425880755437f57e228ccf32e802e..1de2e08fa1664da2b623a6596552a48b777c654f 100644
--- a/tests/features/custom_page/custom_page.file_download.feature
+++ b/tests/features/custom_page/custom_page.file_download.feature
@@ -6,9 +6,9 @@ Feature: Permalinks for custom page attachments.
       | title | Predictable name |
       | state | validated        |
     And custom_page content:
-      | title           | body        | collection       | attachments                                                          |
-      | Predictable CP1 | Lorem ipsum | Predictable name | empty.rdf, empty_pdf.pdf, invalid_adms.rdf, test.zip, text.pdf       |
-      | Predictable CP2 | Lorem ipsum | Predictable name | ada.png, alan.jpg, blaise.jpg, charles.jpg, leonardo.jpg, linus.jpeg |
+      | title           | body        | collection       | attachments                                                          | state     |
+      | Predictable CP1 | Lorem ipsum | Predictable name | empty.rdf, empty_pdf.pdf, invalid_adms.rdf, test.zip, text.pdf       | published |
+      | Predictable CP2 | Lorem ipsum | Predictable name | ada.png, alan.jpg, blaise.jpg, charles.jpg, leonardo.jpg, linus.jpeg | published |
     And news content:
       | title           | headline        | collection       | state     | attachments |
       | Predictable NC1 | Predictable NC1 | Predictable name | validated | empty.rdf   |
diff --git a/tests/features/custom_page/custom_page.view.feature b/tests/features/custom_page/custom_page.view.feature
index f597b6978ac9effb3fc270f25a63aceccbb14333..9d0b8591663d0bdaa1170d73fc269576ffa0ef7f 100644
--- a/tests/features/custom_page/custom_page.view.feature
+++ b/tests/features/custom_page/custom_page.view.feature
@@ -10,9 +10,9 @@ Feature:
       | Drafty things   | draft     |
       | Validated tools | validated |
     And custom_page content:
-      | title        | body         | collection      | logo     |
-      | About means  | Sample text. | Drafty things   | logo.png |
-      | About places | Sample text. | Validated tools | logo.png |
+      | title        | body         | collection      | logo     | state     |
+      | About means  | Sample text. | Drafty things   | logo.png | published |
+      | About places | Sample text. | Validated tools | logo.png | published |
 
     # An anonymous user can see only the custom pages of the published
     # groups.
diff --git a/tests/features/custom_page/navigation_menu.feature b/tests/features/custom_page/navigation_menu.feature
index fc6526f06ff6713ec670449fa18fc10d6b5c7ae1..b203732550ec1be4c66a7a750ecc0b9713e9ec96 100644
--- a/tests/features/custom_page/navigation_menu.feature
+++ b/tests/features/custom_page/navigation_menu.feature
@@ -33,7 +33,7 @@ Feature: Navigation menu for custom pages
     When I fill in the following:
       | Title | About us |
     And I enter "A short introduction." in the "Body" wysiwyg editor
-    And I press "Save"
+    And I press "Publish"
     Then I should see the success message "Custom page About us has been created."
     And the navigation menu of the "Rainbow tables" <group> should have <visible items 2> visible items
 
@@ -71,9 +71,9 @@ Feature: Navigation menu for custom pages
     # Create a few custom pages in the second collection so we can check if the
     # right menu shows up in each collection.
     Given custom_page content:
-      | title           | body                                                                                                                                  | <group>          |
-      | Eights are wild | You cannot Cripple Mr Onion if your running flush contains more wild eights than the Lesser or Great Onion you are trying to cripple. | Cripple Mr Onion |
-      | Eights are null | They can be included in an existing Onion in order to improve its size by one card.                                                   | Cripple Mr Onion |
+      | title           | body                                                                                                                                  | <group>          | state     |
+      | Eights are wild | You cannot Cripple Mr Onion if your running flush contains more wild eights than the Lesser or Great Onion you are trying to cripple. | Cripple Mr Onion | published |
+      | Eights are null | They can be included in an existing Onion in order to improve its size by one card.                                                   | Cripple Mr Onion | published |
 
     # Test as a normal member of the group.
     Given I am logged in as a member of the "Rainbow tables" <group>
@@ -137,10 +137,10 @@ Feature: Navigation menu for custom pages
       | title | Plaster molds |
       | state | validated     |
     And custom_page content:
-      | title             | body                   | collection    |
-      | Molds for crafts  | This is a sample body. | Plaster molds |
-      | Molds for pottery | This is a sample body. | Plaster molds |
-      | Molds for walls   | This is a sample body. | Plaster molds |
+      | title             | body                   | collection    | state     |
+      | Molds for walls   | This is a sample body. | Plaster molds | published |
+      | Molds for crafts  | This is a sample body. | Plaster molds | published |
+      | Molds for pottery | This is a sample body. | Plaster molds | published |
     # A menu with 6 items is displayed normally
     When I go to the "Plaster molds" collection
     Then I should see the link "Molds for pottery" in the "Navigation menu"
@@ -148,8 +148,9 @@ Feature: Navigation menu for custom pages
     # A menu with more than 6 items has the first 5 displayed normally
     # Then the rest of items is wrapped in a dropdown
     Given custom_page content:
-      | title           | body                   | collection    |
-      | Vintage molds   | This is a sample body. | Plaster molds |
+      | title           | body                   | collection    | state     |
+      | Vintage molds   | This is a sample body. | Plaster molds | published |
+      | Plaster casting | This is a sample body. | Plaster molds | published |
     When I go to the "Plaster molds" collection
     Then I should see the text "See more" in the "Navigation menu"
     But I should not see the text "Molds for walls" in the "Navigation menu"
@@ -168,8 +169,8 @@ Feature: Navigation menu for custom pages
       | logo  | logo.png     |
       | state | validated    |
     And custom_page content:
-      | title           | body                   | <group>      |
-      | Mists of dreams | This is a sample body. | Prism Gazers |
+      | title           | body                   | <group>      | state     |
+      | Mists of dreams | This is a sample body. | Prism Gazers | published |
     When I am logged in as a facilitator of the "Prism Gazers" <group>
     And I go to the homepage of the "Prism Gazers" <group>
     Then I should see the contextual links button in the "Navigation menu"
@@ -195,8 +196,8 @@ Feature: Navigation menu for custom pages
       | title | Ravenous wood-munching alphabeavers |
       | state | validated                           |
     And custom_page content:
-      | title       | body                                                                | <group>                             |
-      | Tree eaters | Given time, they will most likely strip the entire region of trees. | Ravenous wood-munching alphabeavers |
+      | title       | body                                                                | <group>                             | state     |
+      | Tree eaters | Given time, they will most likely strip the entire region of trees. | Ravenous wood-munching alphabeavers | published |
     When I am logged in as a facilitator of the "Ravenous wood-munching alphabeavers" "<group>"
     And I go to the homepage of the "Ravenous wood-munching alphabeavers" <group>
     Then I should see the link "Tree eaters" in the "Navigation menu"
@@ -205,7 +206,7 @@ Feature: Navigation menu for custom pages
     When I click "Tree eaters"
     And I click "Edit" in the "Entity actions" region
     And I fill in "Title" with "An army of furry little killing machines"
-    And I press "Save"
+    And I press "Update"
     And I go to the homepage of the "Ravenous wood-munching alphabeavers" <group>
     Then I should see the link "An army of furry little killing machines" in the "Navigation menu"
     And I should not see the link "Tree eaters" in the "Navigation menu"
@@ -220,16 +221,16 @@ Feature: Navigation menu for custom pages
       | title                   | state     |
       | Table of contents group | validated |
     And custom_page content:
-      | title         | <group>                 |
-      | Page 1        | Table of contents group |
-      | Page 2        | Table of contents group |
-      | Page 3        | Table of contents group |
-      | Subpage 1-1   | Table of contents group |
-      | Subpage 1-1-1 | Table of contents group |
-      | Subpage 1-2   | Table of contents group |
-      | Subpage 1-2-1 | Table of contents group |
-      | Subpage 1-2-2 | Table of contents group |
-      | Subpage 2-1   | Table of contents group |
+      | title         | <group>                 | state     |
+      | Page 1        | Table of contents group | published |
+      | Page 2        | Table of contents group | published |
+      | Page 3        | Table of contents group | published |
+      | Subpage 1-1   | Table of contents group | published |
+      | Subpage 1-1-1 | Table of contents group | published |
+      | Subpage 1-2   | Table of contents group | published |
+      | Subpage 1-2-1 | Table of contents group | published |
+      | Subpage 1-2-2 | Table of contents group | published |
+      | Subpage 2-1   | Table of contents group | published |
     And the following custom page menu structure:
       | title         | parent      | weight |
       | Page 1        |             | 1      |
@@ -319,7 +320,7 @@ Feature: Navigation menu for custom pages
       | title | Ergonomic backpacks |
       | state | validated           |
     And custom_page content:
-      | title              | <group>             | status    |
+      | title              | <group>             | state     |
       | Types of backpacks | Ergonomic backpacks | published |
       | Frameless          | Ergonomic backpacks | published |
       | External frame     | Ergonomic backpacks | published |
@@ -465,7 +466,7 @@ Feature: Navigation menu for custom pages
       | title                     | state     |
       | Table of contents outline | validated |
     And custom_page content:
-      | title      | <group>                   | status      |
+      | title      | <group>                   | state       |
       | TOCO 1     | Table of contents outline | published   |
       | TOCO 2     | Table of contents outline | published   |
       | TOCO 1-1   | Table of contents outline | published   |
@@ -552,7 +553,7 @@ Feature: Navigation menu for custom pages
       | title                            | state     |
       | Table of contents outline cached | validated |
     And custom_page content:
-      | title           | <group>                          | status    |
+      | title           | <group>                          | state     |
       | TOCO cached 1   | Table of contents outline cached | published |
       | TOCO cached 1-1 | Table of contents outline cached | published |
     And the following custom page menu structure:
diff --git a/tests/features/custom_page/search.feature b/tests/features/custom_page/search.feature
index 4291dc32f194387b14f5ee375f43a6c3cd2fce95..1a66fb3727f9a8f2de843b8ffaec41e75957a0a1 100644
--- a/tests/features/custom_page/search.feature
+++ b/tests/features/custom_page/search.feature
@@ -16,7 +16,7 @@ Feature: Custom pages enhance search results for their collections/solutions
     Then I should see "No content found for your search."
 
     Given custom_page content:
-      | title                          | <group>         | body                         | status      |
+      | title                          | <group>         | body                         | state       |
       | Splitting and coalescing       | Buddy system    | Memory split in blocks       | published   |
       | Reduces memory fragmentation   | Buddy system    | Binary tree                  | unpublished |
       | Memory initialization overhead | Slab allocation | Significant performance drop | unpublished |
diff --git a/tests/features/glossary/glossary.feature b/tests/features/glossary/glossary.feature
index 42fed226f87f59a39368269d3ad65a7c76b8d22b..b6a2fb99629e17528c175ed44ab2873314801052 100644
--- a/tests/features/glossary/glossary.feature
+++ b/tests/features/glossary/glossary.feature
@@ -169,8 +169,8 @@ Feature: As a moderator or group facilitator I want to be able to add, edit and
       | Distro1 | Alphabet & CLR       | Under The Bridge | http://example.com |
       | Distro2 | Colors & ABC & colrs | Summer of 69     | http://example.com |
     And custom_page content:
-      | title    | body              | solution         |
-      | Schedule | Colors everywhere | Under The Bridge |
+      | title    | body              | solution         | state     |
+      | Schedule | Colors everywhere | Under The Bridge | published |
     And discussion content:
       | title        | content                   | collection               | state     |
       | The Big Talk | The Alphabet. Call it ABC | Collection With Glossary | validated |
diff --git a/tests/features/joinup_core/manage_content.feature b/tests/features/joinup_core/manage_content.feature
index 4f6ef70811e20ac8b76891b5b65dc2e4ae14afd4..b861ef1ddb7cc08d76cf89f63237282ec6a19dae 100644
--- a/tests/features/joinup_core/manage_content.feature
+++ b/tests/features/joinup_core/manage_content.feature
@@ -24,9 +24,9 @@ Feature:
       | title                              | collection  | state     |
       | Exports Leap Despite Currency Gain | Vintage Art | validated |
     And custom_page content:
-      | title                | collection  |
-      | HOWTOs               | Vintage Art |
-      | Looking for Support? | Vintage Art |
+      | title                | collection  | state     |
+      | HOWTOs               | Vintage Art | published |
+      | Looking for Support? | Vintage Art | published |
     And the following custom page menu structure:
       | title                | parent | weight |
       | Looking for Support? | HOWTOs | 1      |
@@ -80,6 +80,42 @@ Feature:
     Given I click "Manage content"
     Then I should see the heading "Manage content"
 
+    # Archive action.
+    Given I select the "The Panama Papers" row
+    And I select the "The Ultimate Debate" row
+    And I select "Archive content" from "Action"
+    And I press "Apply to selected items"
+    And I wait for the batch process to finish
+    Then I should see "Proceeded updates to 2 entities"
+
+    # Check archived state.
+    Given I select "Archived" from "State"
+    And I press "Apply"
+    Then I should see the link "The Panama Papers"
+    And I should see the link "The Ultimate Debate"
+
+    # Unarchive action.
+    Given I select the "The Panama Papers" row
+    And I select the "The Ultimate Debate" row
+    And I select "Unarchive content" from "Action"
+    And I press "Apply to selected items"
+    And I wait for the batch process to finish
+    Then I should see "Proceeded updates to 2 entities"
+
+    # Check published state.
+    Given I select "validated" from "State"
+    And I press "Apply"
+    Then I should see the link "The Panama Papers"
+    And I should see the link "The Ultimate Debate"
+
+    # Check warning message.
+    Given I press "Reset"
+    And I select the "HOWTOs" row
+    And I select "Archive content" from "Action"
+    And I press "Apply to selected items"
+    And I wait for the batch process to finish
+    Then I should see "Proceeded updates to 1 entities"
+
     # Select rows.
     Given I select the "The Panama Papers" row
     And I select the "The Ultimate Debate" row
diff --git a/tests/features/joinup_core/pathauto.feature b/tests/features/joinup_core/pathauto.feature
index 9faaadac625f5b6a3654e87ebe030f89bead6c21..a30ccb62a2b1d5ffe1969a073135a494582dd11c 100644
--- a/tests/features/joinup_core/pathauto.feature
+++ b/tests/features/joinup_core/pathauto.feature
@@ -45,8 +45,8 @@ Feature:
       | Pathauto news 2 | Pathauto news 2 |                     | Pathauto solution | validated |
     And custom_page content:
       | title                    | body          | collection          | solution          | state     |
-      | Pathauto collection page | Pathauto page | Pathauto collection |                   | validated |
-      | Pathauto solution page   | Pathauto page |                     | Pathauto solution | validated |
+      | Pathauto collection page | Pathauto page | Pathauto collection |                   | published |
+      | Pathauto solution page   | Pathauto page |                     | Pathauto solution | published |
 
     When I go to the "Pathauto collection" collection
     Then the url should match "collection/pathauto-collection"
diff --git a/tests/features/joinup_core/persistent_uris.feature b/tests/features/joinup_core/persistent_uris.feature
index cc8b864c6f9de47747797e9d256f95e84195f9b4..b762997d5bb73487f159ea88b490f5d481b890d6 100644
--- a/tests/features/joinup_core/persistent_uris.feature
+++ b/tests/features/joinup_core/persistent_uris.feature
@@ -61,7 +61,7 @@ Feature:
       | Persistent news | Persistent news | Persistent collection | validated |
     And custom_page content:
       | title           | body            | collection            | state     |
-      | Persistent page | Persistent page | Persistent collection | validated |
+      | Persistent page | Persistent page | Persistent collection | published |
 
     When I go to the "Persistent collection" collection
     And I click "About"
diff --git a/tests/features/joinup_discussion/discussion.moderation.feature b/tests/features/joinup_discussion/discussion.moderation.feature
index a7d21f945aaedbf16d30b2c3a772e8c632bd9a0e..87cb832a18d81630bafb3f04f60bd6b3d0f03861 100644
--- a/tests/features/joinup_discussion/discussion.moderation.feature
+++ b/tests/features/joinup_discussion/discussion.moderation.feature
@@ -78,7 +78,7 @@ Feature: Discussion moderation
     And I go to the "Best method to cut Eucalyptus wood logs" discussion
     And I click "Edit" in the "Entity actions" region
     Then the current workflow state should be "Published"
-    When I press "Disable"
+    When I press "Archive"
     # The discussion is kept published.
     Then I should see the heading "Best method to cut Eucalyptus wood logs"
     # But no further changes can be done.
@@ -123,7 +123,7 @@ Feature: Discussion moderation
     When I am logged in as "Lance Rustici"
     And I go to the "What's the best escape gift?" discussion
     And I click "Edit" in the "Entity actions" region
-    And I press "Disable"
+    And I press "Archive"
     Then I should see the message "Discussion What's the best escape gift? has been updated"
 
     # The comments should still be visible.
diff --git a/tests/features/joinup_discussion/discussion.subscribe.feature b/tests/features/joinup_discussion/discussion.subscribe.feature
index f34a37c19c17f09f7b86b99f043577e87804be51..f1048f0ec093655e151502f2a0522c54eb3732ac 100644
--- a/tests/features/joinup_discussion/discussion.subscribe.feature
+++ b/tests/features/joinup_discussion/discussion.subscribe.feature
@@ -122,6 +122,17 @@ Feature: Following discussions
     # Check that no other mails have been unexpectedly sent.
     Then 2 e-mails should have been sent
 
+    # Followers should not receive emails when discussion is archived/unarchived.
+    Given I mark all emails as read
+    And I am logged in as a moderator
+    When I go to the edit form of the "Rare Butter" discussion
+    And I fill in "Content" with "This content was archived"
+    And I press "Archive"
+    When I go to the edit form of the "Rare Butter" discussion
+    And I fill in "Content" with "This content was archived"
+    And I press "Unarchive"
+    And 0 e-mail should have been sent
+
     # If the discussion is moved from 'validated' to any other state, no
     # notification will be sent, regardless if a relevant field is changed.
     Given I mark all emails as read
diff --git a/tests/features/joinup_group/landing_page.feature b/tests/features/joinup_group/landing_page.feature
index 61065b6cc73b3260f64b8660334d65c13304d619..c7e25b9b84b35aa3aaa8b577fdf0103987caab49 100644
--- a/tests/features/joinup_group/landing_page.feature
+++ b/tests/features/joinup_group/landing_page.feature
@@ -137,9 +137,9 @@ Feature: Tests the group landing page customization.
       | title          | state     |
       | Rally fanatics | validated |
     And "custom_page" content:
-      | title         | group          | body                      |
-      | Custom Page 1 | Rally fanatics | The custom page 1 content |
-      | Custom Page 2 | My own book    | The custom page 2 content |
+      | title         | group          | body                      | state     |
+      | Custom Page 1 | Rally fanatics | The custom page 1 content | published |
+      | Custom Page 2 | My own book    | The custom page 2 content | published |
     Given I am logged in as a moderator
     When I go to the homepage of the "Rally fanatics" collection
     And I click "Settings"
@@ -154,9 +154,7 @@ Feature: Tests the group landing page customization.
     Then I should see "Are you sure you want to delete the content item Custom Page 2?"
     When I go to the "Custom Page 1" custom page
     And I click "Edit" in the "Entity actions" region
-    And I uncheck "Published"
-    And I press "Save"
-    Then I should see the error message "This page acts as landing page for the collection. In order to unpublish it should be first unset as landing page."
+    Then I should not see the button "Unpublish"
     When I go to the homepage of the "Rally fanatics" collection
     And I click "Settings"
     And I select "- Standard landing page -" from "Landing page"
diff --git a/tests/features/joinup_group/member_permissions_table.feature b/tests/features/joinup_group/member_permissions_table.feature
index 81197e1cfb09f0389f4a41d1300a73cb0898a756..b5f82ef34672db15f165040a62b24c193e9b1e30 100644
--- a/tests/features/joinup_group/member_permissions_table.feature
+++ b/tests/features/joinup_group/member_permissions_table.feature
@@ -64,6 +64,7 @@ Feature: Group member permissions table
       | Delete own content                          |        | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     # Quick check to verify the permissions are actually matching what is
     # displayed in the table. Only the most common case ("member") is checked.
@@ -97,6 +98,7 @@ Feature: Group member permissions table
       | Delete own content                          |        | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     Given I am logged in as a member of the "Illiberal studies" collection
     When I go to the homepage of the "Illiberal studies" collection
@@ -133,6 +135,7 @@ Feature: Group member permissions table
       | Delete own content without approval                        |        | ✓      | ✓           | ✓     |
       | Delete any content                                         |        |        | ✓           | ✓     |
       | Manage users                                               |        |        | ✓           | ✓     |
+      | Archive content                                            |        |        | ✓           | ✓     |
 
     Given I am logged in as "Horace Worblehat"
     When I go to the homepage of the "Approximate accuracy" collection
@@ -176,6 +179,7 @@ Feature: Group member permissions table
       | Delete own content                          | ✓      | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     Given I am logged in as "Ponder Stibbons"
     When I go to the homepage of the "Dust, miscellaneous particles and filaments" collection
@@ -225,6 +229,7 @@ Feature: Group member permissions table
       | Delete own content without approval                        |        | ✓      | ✓           | ✓     |
       | Delete any content                                         |        |        | ✓           | ✓     |
       | Manage users                                               |        |        | ✓           | ✓     |
+      | Archive content                                            |        |        | ✓           | ✓     |
 
     Given I am logged in as "Henry Porter"
     When I go to the homepage of the "Creative uncertainty" collection
@@ -268,6 +273,7 @@ Feature: Group member permissions table
       | Delete own content                          | ✓      | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     Given I am logged in as "Rincewind"
     When I go to the homepage of the "Woolly thinking" collection
@@ -311,6 +317,7 @@ Feature: Group member permissions table
       | Delete own content                          |        | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     Given I am logged in as a member of the "Applied anthropics" solution
     When I go to the homepage of the "Applied anthropics" solution
@@ -341,6 +348,7 @@ Feature: Group member permissions table
       | Delete own content                          |        | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     Given I am logged in as a member of the "Extreme horticulture" solution
     When I go to the homepage of the "Extreme horticulture" solution
@@ -377,6 +385,7 @@ Feature: Group member permissions table
       | Delete own content without approval                        |        | ✓      | ✓           | ✓     |
       | Delete any content                                         |        |        | ✓           | ✓     |
       | Manage users                                               |        |        | ✓           | ✓     |
+      | Archive content                                            |        |        | ✓           | ✓     |
 
     Given I am logged in as "Dr. John Hicks"
     When I go to the homepage of the "Prehumous morbid bibliomancy" solution
@@ -420,6 +429,7 @@ Feature: Group member permissions table
       | Delete own content                          | ✓      | ✓      | ✓           | ✓     |
       | Delete any content                          |        |        | ✓           | ✓     |
       | Manage users                                |        |        | ✓           | ✓     |
+      | Archive content                             |        |        | ✓           | ✓     |
 
     Given I am logged in as "Hex"
     When I go to the homepage of the "Posthumous morbid bibliomancy" solution
diff --git a/tests/features/joinup_group/unpublished_content.feature b/tests/features/joinup_group/unpublished_content.feature
index 1130bc354f06c42badeddf38f75cfca29a65e95f..57ea5dbd84a6328f36e9f54596c6bcaba7832ea6 100644
--- a/tests/features/joinup_group/unpublished_content.feature
+++ b/tests/features/joinup_group/unpublished_content.feature
@@ -22,7 +22,7 @@ Feature:
       | IOP document 1 | Interoperable Europe | draft    |
       | IOP document 2 | Interoperable Europe | proposed |
     And custom_page content:
-      | title             | collection           | status      |
+      | title             | collection           | state       |
       | IOP custom page 1 | Interoperable Europe | unpublished |
 
     When I am logged in as a moderator
@@ -59,7 +59,7 @@ Feature:
       | Some group document 1 | Some group | draft    |
       | Some group document 2 | Some group | proposed |
     And custom_page content:
-      | title                    | collection | status      |
+      | title                    | collection | state       |
       | Some group custom page 1 | Some group | unpublished |
 
     When I am logged in as a facilitator of the "Some group" collection
diff --git a/tests/features/joinup_like/like.feature b/tests/features/joinup_like/like.feature
index 074d70564f7a8ab879981700b6ccf36a000e9bbe..4505e4c91ad96adcbe41ccd5358756a58afcafb8 100644
--- a/tests/features/joinup_like/like.feature
+++ b/tests/features/joinup_like/like.feature
@@ -46,8 +46,8 @@ Feature: Like/unlike feature.
 
   Scenario Outline: User can like/unlike solution's content
     Given <content type> content:
-      | title                        | solution            | state     |
-      | Liked <content type> content | Very liked solution | validated |
+      | title                        | solution            | state   |
+      | Liked <content type> content | Very liked solution | <state> |
 
     When I am logged in as "Gregory Like"
     And I go to the content page of the type "<content type>" with the title "Liked <content type> content"
@@ -62,9 +62,9 @@ Feature: Like/unlike feature.
     And I see the text "Like (0)" in the "Like block" region
 
     Examples:
-      | content type |
-      | news         |
-      | event        |
-      | discussion   |
-      | document     |
-      | custom_page  |
+      | content type | state     |
+      | news         | validated |
+      | event        | validated |
+      | discussion   | validated |
+      | document     | validated |
+      | custom_page  | published |
diff --git a/tests/features/joinup_rss/collection_feed.feature b/tests/features/joinup_rss/collection_feed.feature
index cd2048cb012dd4be0d168b0be13ea7e1f12af1a2..bc4a006ac0f11b765fd449474bff680497e9e764 100644
--- a/tests/features/joinup_rss/collection_feed.feature
+++ b/tests/features/joinup_rss/collection_feed.feature
@@ -42,8 +42,8 @@ Feature: Collection RSS feed.
       | Is the indigo coloration caused by their food? | I was reading the technical paper and it seems their main food is the indigo cherries. | validated | alejake | 2019-01-21 13:00 | Indigo Monkey |
     And custom_page content:
       | title             | body                                            | state     | author | created          | collection        |
-      | Indigo variations | The four major tones of indigo are listed here. | validated | forest | 2017-10-15 18:30 | Indigo Monkey     |
-      | List of devices   | Available remote electrical devices.            | validated |        | 2019-02-08 09:00 | Remote Electrical |
+      | Indigo variations | The four major tones of indigo are listed here. | published | forest | 2017-10-15 18:30 | Indigo Monkey     |
+      | List of devices   | Available remote electrical devices.            | published |        | 2019-02-08 09:00 | Remote Electrical |
 
     When I am an anonymous user
     And I go to the homepage of the "Indigo Monkey" collection
diff --git a/tests/features/joinup_rss/solution_feed.feature b/tests/features/joinup_rss/solution_feed.feature
index 34fb00417b523b9761daef5c5c5e71483596b80d..e59055349aa5a4e5eb6abe1e9880fd6211d31820 100644
--- a/tests/features/joinup_rss/solution_feed.feature
+++ b/tests/features/joinup_rss/solution_feed.feature
@@ -32,8 +32,8 @@ Feature: Solution RSS feed.
       | Is the indigo coloration caused by their smile? | I was reading the technical paper and it seems their main food is the indigo cherries. | validated | scorlan | 2019-01-21 13:00 | Deuteron Lonesome |
     And custom_page content:
       | title             | body                                            | state     | author  | created          | solution          |
-      | Indigo variations | The four major tones of indigo are listed here. | validated | scorlan | 2017-10-15 19:30 | Lantern Domestic  |
-      | List of devices   | Available remote electrical devices.            | validated | scorlan | 2019-02-08 10:00 | Deuteron Lonesome |
+      | Indigo variations | The four major tones of indigo are listed here. | published | scorlan | 2017-10-15 19:30 | Lantern Domestic  |
+      | List of devices   | Available remote electrical devices.            | published | scorlan | 2019-02-08 10:00 | Deuteron Lonesome |
 
     When I am an anonymous user
     And I go to the homepage of the "Lantern Domestic" solution
diff --git a/tests/features/joinup_search/archive.feature b/tests/features/joinup_search/archive.feature
new file mode 100644
index 0000000000000000000000000000000000000000..5c8f24e00cca42698b04ac2646dcf13677d5ce2a
--- /dev/null
+++ b/tests/features/joinup_search/archive.feature
@@ -0,0 +1,71 @@
+@api @terms @group-f
+Feature: Global search with archive content
+
+  Scenario Outline: Group content has an 'Show archived' facet.
+    Given the following owner:
+      | name       | type    |
+      | Some owner | Company |
+    And the following contact:
+      | name  | Some contact             |
+      | email | some-contact@example.com |
+    And the following <group type>s:
+      | title             | description | state     |
+      | Some <group type> | Description | validated |
+      | Rare <group type> | Description | validated |
+    And event content:
+      | title   | short title | body      | spatial coverage | agenda      | location   | organisation        | scope         | <group type>      | state     |
+      | Event 1 | Event 1     | Some body | Greece           | Some agenta | Some place | European Commission | International | Some <group type> | validated |
+      | Event 2 | Event 2     | Some body | Greece           | Some agenta | Some place | European Commission | International | Rare <group type> | validated |
+      | Event 3 | Event 3     | Some body | Greece           | Some agenta | Some place | European Commission | International | Rare <group type> | validated |
+      | Event 4 | Event 4     | Some body | Greece           | Some agenta | Some place | European Commission | International | Rare <group type> | validated |
+    And document content:
+      | title           | document type | short title     | body      | spatial coverage | <group type>      | state     |
+      | Some document 1 | Document      | Some document 1 | Some body | Luxembourg       | Some <group type> | validated |
+
+    When the "Some <group type>" <group type> is configured to show "All" community content in the overview
+    And the "Some <group type>" <group type> is configured to show the "<bundle label> content archived toggle" facet in the "Top" region
+    When the "Rare <group type>" <group type> is configured to show "All" community content in the overview
+    And the "Rare <group type>" <group type> is configured to show the "<bundle label> content archived toggle" facet in the "Top" region
+    When I go to the homepage of the "Some <group type>" <group type>
+    Then I should not see the "<group type> content archived toggle" facet
+    And I should see the following tiles in the correct order:
+      | Event 1         |
+      | Some document 1 |
+
+    When I go to the homepage of the "Rare <group type>" <group type>
+    Then I should not see the "<group type> content archived toggle" facet
+
+    Given event content:
+      | title   | short title | body      | spatial coverage | agenda      | location   | organisation        | scope         | <group type>      | state    |
+      | Event 2 | Event 2     | Some body | Greece           | Some agenta | Some place | European Commission | International | Some <group type> | archived |
+    And document content:
+      | title           | document type | short title     | body      | spatial coverage | <group type>      | state    |
+      | Some document 2 | Document      | Some document 2 | Some body | Luxembourg       | Some <group type> | archived |
+    When I go to the homepage of the "Some <group type>" <group type>
+    Then I should see the "<group type> content archived toggle" facet
+    And I should see the following tiles in the correct order:
+      | Event 1         |
+      | Some document 1 |
+
+    # By default, the toggle is inactive.
+    But I should not see the "Event 2" tile
+    And I should not see the "Some document 2" tile
+
+    # When the toggle is active, archived content is shown.
+    When I click "Show archived"
+    Then I should see the following tiles in the correct order:
+      | Event 2         |
+      | Some document 2 |
+    And I should see the text "Archived" in the "Event 2" tile
+    And I should see the text "Archived" in the "Some document 2" tile
+
+    And I should not see the "Event 1" tile
+    And I should not see the "Some document 1" tile
+
+    When I go to the homepage of the "Rare <group type>" <group type>
+    Then I should not see the "<group type> content archived toggle" facet
+
+    Examples:
+      | bundle label | group type |
+      | Collection   | collection |
+      | Solution     | solution   |
diff --git a/tests/features/joinup_search/group_search.feature b/tests/features/joinup_search/group_search.feature
index eaaf6260979ce26e9648f3fa1af72ce3ce560975..50156ad67f021411bceee9fa9ff2590746ae6168 100644
--- a/tests/features/joinup_search/group_search.feature
+++ b/tests/features/joinup_search/group_search.feature
@@ -45,9 +45,9 @@ Feature: Search inside groups
       | Natural materials | Materials natural | Ground feel     | Chalet construction |                      | Statistics and Analysis | Switzerland      | validated |
       | Still frozen      | Frozen still      | Maybe next week |                     | Inclined foundations |                         | Austria          | validated |
     And custom_page content:
-      | title     | body                             | collection          | solution             |
-      | Resources | Here are some interesting links. | Chalet construction |                      |
-      | Geography | A collection of height maps.     |                     | Inclined foundations |
+      | title     | body                             | collection          | solution             | state     |
+      | Resources | Here are some interesting links. | Chalet construction |                      | published |
+      | Geography | A collection of height maps.     |                     | Inclined foundations | published |
     And releases:
       | title     | release number | release notes              | is version of        | state     |
       | Pre-alpha | 0.0-alpha0     | Only works on flat ground. | Inclined foundations | validated |
diff --git a/tests/features/joinup_search/search.feature b/tests/features/joinup_search/search.feature
index c2b1a942a19d7b45c9591796f726b1835687caf4..9ae46f52f1a6c642193887d6223e86a23da45c41 100644
--- a/tests/features/joinup_search/search.feature
+++ b/tests/features/joinup_search/search.feature
@@ -22,6 +22,13 @@ Feature: Global search
       | Dummy title 2        | Dummy news 2          | Dummy body       | Molecular cooking collection | E-inclusion             | Luxembourg       | validated |
       | Dummy title 3        | Dummy news 3          | Dummy body       | Molecular cooking collection | E-inclusion             | Luxembourg       | validated |
       | Dummy title 4        | Dummy news 4          | Dummy body       | Molecular cooking collection | E-inclusion             | Luxembourg       | validated |
+    When I visit the search page
+    Then the response should not contain "data-drupal-facet-id=\"status\""
+
+    Given news content:
+      | title         | headline     | body       | collection                   | topic       | spatial coverage | state    |
+      | Rummy title 5 | Rummy news 5 | Dummy body | Molecular cooking collection | E-inclusion | Luxembourg       | archived |
+      | Rummy title 6 | Rummy news 6 | Dummy body | Molecular cooking collection | E-inclusion | Luxembourg       | archived |
 
     Given I am logged in as a user with the "authenticated" role
     Then I visit the search page
@@ -47,6 +54,8 @@ Feature: Global search
     And I should see the "Dummy news 2" tile
     And I should see the "Dummy news 3" tile
     And I should see the "Dummy news 4" tile
+    And I should not see the "Rummy news 5" tile
+    And I should not see the "Rummy news 6" tile
 
     # Test ability to tick many topics.
     When I check the "Demography (2)" checkbox from the "topic" facet
@@ -114,6 +123,31 @@ Feature: Global search
     But I should not see the "Spherification" tile
     And I should not see the "El Celler de Can Roca" tile
 
+    Given I am on the search page
+    When I check the "Show Archived items" checkbox from the "Status" facet
+    And I should not see the "Molecular cooking collection" tile
+    And I should not see the "Spherification" tile
+    And I should not see the "Foam" tile
+    And I should not see the "El Celler de Can Roca" tile
+    And I should not see the "Dummy news 1" tile
+    And I should not see the "Dummy news 2" tile
+    And I should not see the "Dummy news 3" tile
+    And I should not see the "Dummy news 4" tile
+    And I should see the "Rummy news 5" tile
+    And I should see the "Rummy news 6" tile
+
+    Then I check the "Show Archived items" checkbox from the "Status" facet
+    And I should see the "Molecular cooking collection" tile
+    And I should see the "Spherification" tile
+    And I should see the "Foam" tile
+    And I should see the "El Celler de Can Roca" tile
+    And I should see the "Dummy news 1" tile
+    And I should see the "Dummy news 2" tile
+    And I should see the "Dummy news 3" tile
+    And I should see the "Dummy news 4" tile
+    And I should not see the "Rummy news 5" tile
+    And I should not see the "Rummy news 6" tile
+
   @javascript
   Scenario: Alphabetical order for the spatial coverage in the search page.
     Given the following owner:
@@ -185,8 +219,8 @@ Feature: Global search
       | title            | body                                                              | solution       | state     |
       | Discussion omega | <p>Does anybody has idea why this <em>epsilon</em> is everywhere? | Solution alpha | validated |
     And custom_page content:
-      | title      | body                                     | collection       |
-      | Page omega | This is just an epsilon but should work. | Collection alpha |
+      | title      | body                                     | collection       | state     |
+      | Page omega | This is just an epsilon but should work. | Collection alpha | published |
     And video content:
       | title       | body          | field_video                                 | collection       |
       | Video alpha | Slap like now | https://www.youtube.com/watch?v=JhGf8ZY0tN8 | Collection alpha |
@@ -295,8 +329,8 @@ Feature: Global search
       | description | Exotic wings and where to find them. |
       | state       | validated                            |
     And custom_page content:
-      | title           | body                                  | collection                      |
-      | Disturbed birds | Flocks of trained pigeons flying off. | Ornithology: the study of birds |
+      | title           | body                                  | collection                      | state     |
+      | Disturbed birds | Flocks of trained pigeons flying off. | Ornithology: the study of birds | published |
     And news content:
       | title                               | headline                            | body                            | collection                      | state     |
       | Chickens are small birds            | Chickens are small birds            | Birds domesticated in India.    | Ornithology: the study of birds | validated |
@@ -421,10 +455,10 @@ Feature: Global search
 
     # Add a new distribution, child of a release.
     Given the following release:
-      | title           | Releazz   |
-      | release number  | 1         |
-      | state           | validated |
-      | is version of   | Zzolution |
+      | title          | Releazz   |
+      | release number | 1         |
+      | state          | validated |
+      | is version of  | Zzolution |
 
     When I enter "ReleazzDistro" in the search bar and press enter
     Then I should see "No content found for your search."
@@ -620,16 +654,17 @@ Feature: Global search
     Given I am logged in as a user with the "authenticated" role
     When I visit the search page
     And I should not see search bar icon in navbar
-    And I enter "funn" in the search bar
+    And I enter "fu" in the search bar
     And I wait for AJAX to finish
     Then I should see the following search suggestions:
-      | funni |
-      | funny |
+      | Spheres  |
+      | Movistar |
 
-    When I enter "bott" in the search bar
+    When I enter "cook" in the search bar
     And I wait for AJAX to finish
     Then I should see the following search suggestions:
-      | best |
+      | Movistar                 |
+      | Radio cooking collection |
 
     When I check the "Solutions (2)" checkbox from the "Content types" facet
     And I check the "News (5)" checkbox from the "Content types" facet
@@ -651,20 +686,20 @@ Feature: Global search
     When I visit the collection overview
     And I should see search bar icon in navbar
     Then I should toggle search bar in navbar
-    And I enter "funn" in the search bar
+    And I enter "fu" in the search bar
     And I wait for AJAX to finish
     Then I should see the following search suggestions:
-      | funni |
-      | funny |
+      | Spheres  |
+      | Movistar |
 
     # Check if search autocomplete works in homepage's header search bar.
     Given I am on the homepage
     Then I should see the search bar in homepage's header
-    And I enter "funn" in the search bar
+    And I enter "fu" in the search bar
     And I wait for AJAX to finish
     Then I should see the following search suggestions:
-      | funni |
-      | funny |
+      | Spheres  |
+      | Movistar |
 
     # Check if search did you mean works.
     Given I visit the search page
@@ -684,12 +719,8 @@ Feature: Global search
     Then I enter "sp" in the search bar
     And I wait for AJAX to finish
     Then I should see the following search suggestions:
-      | Spheres        |
-      | Movistar       |
-      | spheres        |
-      | spherification |
-      | sphere         |
-      | spherif        |
+      | Spheres                  |
+      | Movistar                 |
 
   @terms
   Scenario: Filter on date
diff --git a/tests/features/joinup_seo/sitemap.feature b/tests/features/joinup_seo/sitemap.feature
index 8daa95212ab840fb31bbe27cb2411cdfc4d1fb4f..4780e29866353684602b78779fbb0ea2d9030675 100644
--- a/tests/features/joinup_seo/sitemap.feature
+++ b/tests/features/joinup_seo/sitemap.feature
@@ -39,21 +39,25 @@ Feature:
       | Sitemap news draft                       | Sitemap news | Sitemap news body | Sitemap solution validated | draft     |                           |
       | Sitemap news validated and recent        | Sitemap news | Sitemap news body | Sitemap solution validated | validated | 1 day ago                 |
       | Sitemap news validated but old           | Sitemap news | Sitemap news body | Sitemap solution validated | validated | 2 months ago              |
+      | Sitemap news archived                    | Sitemap news | Sitemap news body | Sitemap solution validated | archived  | 2 months ago              |
       | Sitemap news validated but parent is not | Sitemap news | Sitemap news body | Sitemap solution draft     | validated | Sun, 01 Dec 2019 13:00:00 |
     And event content:
       | title                                     | short title             | body                      | agenda        | location   | organisation        | scope         | solution                   | state     |
       | Sitemap event draft                       | Sitemap event draft     | It will include fireworks | Event agenda. | Some place | European Commission | International | Sitemap solution validated | draft     |
       | Sitemap event validated                   | Sitemap event validated | It will include fireworks | Event agenda. | Some place | European Commission | International | Sitemap solution validated | validated |
+      | Sitemap event archived                    | Sitemap event archived  | It will include fireworks | Event agenda. | Some place | European Commission | International | Sitemap solution validated | archived  |
       | Sitemap event validated but parent is not | Sitemap event validated | It will include fireworks | Event agenda. | Some place | European Commission | International | Sitemap solution draft     | validated |
     And document content:
       | title                                        | document type | short title                | body         | solution                   | state     |
       | Sitemap document draft                       | Document      | Sitemap document draft     | Read more... | Sitemap solution validated | draft     |
       | Sitemap document validated                   | Document      | Sitemap document validated | Read more... | Sitemap solution validated | validated |
+      | Sitemap document archived                    | Document      | Sitemap document archived  | Read more... | Sitemap solution validated | archived  |
       | Sitemap document validated but parent is not | Document      | Sitemap document validated | Read more... | Sitemap solution draft     | validated |
     And discussion content:
       | title                                          | body                  | solution                   | state     |
       | Sitemap discussion draft                       | Wanna discuss this??? | Sitemap solution validated | draft     |
       | Sitemap discussion validated                   | Wanna discuss this??? | Sitemap solution validated | validated |
+      | Sitemap discussion archived                    | Wanna discuss this??? | Sitemap solution validated | archived  |
       | Sitemap discussion validated but parent is not | Wanna discuss this??? | Sitemap solution draft     | validated |
 
     Given I run cron
@@ -65,9 +69,13 @@ Feature:
     And I should see the absolute urls of the following content entities:
       | Sitemap custom page of validated |
       | Sitemap discussion validated     |
+      | Sitemap discussion archived      |
       | Sitemap document validated       |
+      | Sitemap document archived        |
       | Sitemap event validated          |
+      | Sitemap event archived           |
       | Sitemap news validated but old   |
+      | Sitemap news archived            |
 
     But I should not see the absolute urls of the following RDF entities:
       | Sitemap collection draft |
@@ -114,15 +122,19 @@ Feature:
       | Sitemap custom page of draft                   |
       | Sitemap discussion draft                       |
       | Sitemap discussion validated                   |
+      | Sitemap discussion archived                    |
       | Sitemap discussion validated but parent is not |
       | Sitemap document draft                         |
       | Sitemap document validated                     |
+      | Sitemap document archived                      |
       | Sitemap document validated but parent is not   |
       | Sitemap event draft                            |
       | Sitemap event validated                        |
+      | Sitemap event archived                         |
       | Sitemap event validated but parent is not      |
       | Sitemap news draft                             |
       | Sitemap news validated but old                 |
+      | Sitemap news archived                          |
       | Sitemap news validated but parent is not       |
 
     # Simulate that 2 days have passed since last time the sitemaps have been created.
@@ -138,10 +150,14 @@ Feature:
     And I should see the absolute urls of the following content entities:
       | Sitemap custom page of validated  |
       | Sitemap discussion validated      |
+      | Sitemap discussion archived       |
       | Sitemap document validated        |
+      | Sitemap document archived         |
       | Sitemap event validated           |
+      | Sitemap event archived            |
       | Sitemap news validated and recent |
       | Sitemap news validated but old    |
+      | Sitemap news archived             |
 
     But I should not see the absolute urls of the following RDF entities:
       | Sitemap collection draft |
diff --git a/tests/features/machine_translation.feature b/tests/features/machine_translation.feature
index 1a646c8fbb631c609a224730140cfc344f19a910..819555287ad005ee1de034840a6322c12dbd2b83 100644
--- a/tests/features/machine_translation.feature
+++ b/tests/features/machine_translation.feature
@@ -23,7 +23,7 @@ Feature: Machine translation
       | Restriction on animal-based food imports | Brexit     | validated |
     And custom_page content:
       | title                      | collection | state     |
-      | Increased credit card fees | Brexit     | validated |
+      | Increased credit card fees | Brexit     | published |
     And glossary content:
       | title               | abbreviation | summary                 | definition                | collection |
       | Digital portability | DP           | Availability of content | Across streaming services | Brexit     |
diff --git a/tests/features/outdated_content.feature b/tests/features/outdated_content.feature
index b09ac9e147ed163d66312a24b87bbc470af01d2c..ef60b1bc1e80a2f4b0ea14e41816fed5b64fa966 100644
--- a/tests/features/outdated_content.feature
+++ b/tests/features/outdated_content.feature
@@ -26,10 +26,11 @@ Feature:
       | Outdated published event | Outdated content | -1 year -1 second | -1 year -1 second | validated |
       | Not published event      | Outdated content |                   | -31 years         | draft     |
     And news content:
-      | title                   | collection       | publication date  | created           | state     |
-      | Recent published news   | Outdated content | -7 months         | -7 months         | validated |
-      | Outdated published news | Outdated content | -3 years -1 month | -3 years -1 month | validated |
-      | Not published news      | Outdated content |                   | -40 years         | draft     |
+      | title                            | collection       | publication date  | created           | state     |
+      | Recent published news            | Outdated content | -7 months         | -7 months         | validated |
+      | Outdated published news          | Outdated content | -3 years -1 month | -3 years -1 month | validated |
+      | Outdated archived published news | Outdated content | -3 years -1 month | -3 years -1 month | archived  |
+      | Not published news               | Outdated content |                   | -40 years         | draft     |
 
     Given I am logged in as a moderator
     When I click "Outdated content thresholds"
@@ -77,6 +78,10 @@ Feature:
     Then I should see the heading "Outdated published news"
     And the text "This news is more than 3 years old" should appear 1 time
 
+    When I go to the "Outdated archived published news" news
+    Then I should see the heading "Outdated archived published news"
+    And the text "This news is more than 3 years old" should appear 0 time
+
     # Login as moderator to test content that was never published.
     Given I am logged in as a moderator
 
diff --git a/tests/features/paragraphs/custom_page.paragraphs.feature b/tests/features/paragraphs/custom_page.paragraphs.feature
index 9a1cd4b5b04bc65469d5adc7a7b2e9543d26fafc..41c445ee8b8b16bbc03df6c28129a7c37d5c2cf9 100644
--- a/tests/features/paragraphs/custom_page.paragraphs.feature
+++ b/tests/features/paragraphs/custom_page.paragraphs.feature
@@ -16,7 +16,7 @@ Feature:
     And I open the plus button menu
     And I click "Add custom page"
     And I fill in "Title" with "Paragraphs page"
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "Paragraphs page"
 
     When I open the header local tasks menu
@@ -38,7 +38,7 @@ Feature:
     And I enter "BBBBBBBBBB" in the "Body" wysiwyg editor in the "Custom page body" field for paragraph 2
 
     And I drag the table row at position 2 up
-    And I press "Save"
+    And I press "Update"
     Then there should be 2 paragraphs in the page
     And I should see the following paragraphs in the given order:
       | BBBBBBBBBB |
@@ -52,8 +52,8 @@ Feature:
       | collection            | user  |
       | Paragraphs collection | Zohan |
     And custom_page content:
-      | title                     | body        | collection            | author |
-      | Don't Mess with the Zohan | Wanna mess? | Paragraphs collection | Zohan  |
+      | title                     | body        | collection            | author | state     |
+      | Don't Mess with the Zohan | Wanna mess? | Paragraphs collection | Zohan  | published |
 
     # Normal members cannot add maps.
     When I am logged in as "Zohan"
@@ -70,7 +70,7 @@ Feature:
     But I should not see the button "Add IFrame"
 
     When I fill in "Body" with "I'm half Australian, half Mt. Everest"
-    And I press "Save"
+    And I press "Update"
     Then I should see the success message "Custom page Don't Mess with the Zohan has been updated."
     And I should see "I'm half Australian, half Mt. Everest"
 
@@ -84,7 +84,7 @@ Feature:
     When I press "Add Map"
     # As the Webtools Map a webservice, we only test a fake JSON.
     And I fill in "JSON" with "{\"foo\":\"bar\"}"
-    And I press "Save"
+    And I press "Update"
     Then I should see the success message "Custom page Don't Mess with the Zohan has been updated."
     And I should see "I'm half Australian, half Mt. Everest"
     And the response should contain "{\"foo\":\"bar\"}"
@@ -92,7 +92,7 @@ Feature:
     When I go to the edit form of the "Don't Mess with the Zohan" "custom page"
     And I press "Add IFrame"
     And I fill in "Iframe URL" with "http://example.com"
-    And I press "Save"
+    And I press "Update"
     # We only test that the <iframe .../> element is in page. Unfortunately, we
     # cannot do precision RegExp search in page source, so we only check for the
     # existence of the iframe and its URL.
@@ -125,7 +125,7 @@ Feature:
     And I fill in the 2nd "Item label" with "Duper" in the "Custom page body" field
     And I enter "Crunchy text" in the 2nd "Body" wysiwyg editor in the "Custom page body" field
 
-    And I press "Save"
+    And I press "Publish"
     Then I should see the heading "Paragraphs accordion page"
     And I should see the text "Super"
     And I should see the text "Duper"
diff --git a/tests/features/report.feature b/tests/features/report.feature
index 17d1e11eed38a417cef9abd46742d974d8ff67fd..e44339ad8d0643b14b101807d80c2f49b35a1b3d 100644
--- a/tests/features/report.feature
+++ b/tests/features/report.feature
@@ -9,8 +9,8 @@ Feature: Report inappropriate content
       | title | Deployment tools |
       | state | validated        |
     And "<type>" content:
-      | title   | body   | collection       | state     |
-      | <title> | <body> | Deployment tools | validated |
+      | title   | body   | collection       | state   |
+      | <title> | <body> | Deployment tools | <state> |
     Given I am not logged in
     When I go to the content page of the type "<type>" with the title "<title>"
     And I click "Report"
@@ -30,9 +30,9 @@ Feature: Report inappropriate content
     Then I should see the heading "<title>"
 
     Examples:
-      | type        | title                        | body                    |
-      | discussion  | Git is not a deployment tool | Use tarballs to deploy. |
-      | custom_page | The best tools               | Current best-in-class.  |
-      | news        | Now deploying to containers  | Long awaited feature.   |
-      | document    | Deployment strategies        | Deploy faster.          |
-      | event       | GovDeploy Bootcamp 2017      | Submit your session.    |
+      | type        | title                        | body                    | state     |
+      | discussion  | Git is not a deployment tool | Use tarballs to deploy. | validated |
+      | custom_page | The best tools               | Current best-in-class.  | published |
+      | news        | Now deploying to containers  | Long awaited feature.   | validated |
+      | document    | Deployment strategies        | Deploy faster.          | validated |
+      | event       | GovDeploy Bootcamp 2017      | Submit your session.    | validated |
diff --git a/tests/features/solution/about.feature b/tests/features/solution/about.feature
index b06101f6f3ec1b101d9a9d67a13e1ce39bc64133..0370a668bdba18eecf3e456392839f7030656e36 100644
--- a/tests/features/solution/about.feature
+++ b/tests/features/solution/about.feature
@@ -375,7 +375,7 @@ Feature: About this solution
     And I click "Add custom page"
     And I fill in "Title" with "Some custom contact test"
     And I press the button "Contact us" in the "Body" wysiwyg editor
-    And I press "Save"
+    And I press "Publish"
     And I should see the heading "Some custom contact test"
 
     When I go to the edit form of the "Some custom contact test" "custom page"
diff --git a/tests/features/solution/homepage.feature b/tests/features/solution/homepage.feature
index 6ac8fb6888c0b2d1426e04db11d339a3d62ed58e..69110306f97ba279db3bba3ecf8116d350ae715a 100644
--- a/tests/features/solution/homepage.feature
+++ b/tests/features/solution/homepage.feature
@@ -56,8 +56,8 @@ Feature: Solution homepage
       | title                             | body                             | solution        | topic                   | spatial coverage | state     |
       | Jira will be down for maintenance | As always, during business hours | Jira restarters | Statistics and Analysis | Luxembourg       | validated |
     And custom_page content:
-      | title            | body                                       | solution        |
-      | Maintenance page | Jira is re-indexing. Go and drink a coffee | Jira restarters |
+      | title            | body                                       | solution        | state     |
+      | Maintenance page | Jira is re-indexing. Go and drink a coffee | Jira restarters | published |
     When I go to the homepage of the "Jira restarters" solution
     Then a tour should be available
     And I should see the "Jira will be down for maintenance" tile
diff --git a/tests/features/taxonomy/curated_homepage_topics.feature b/tests/features/taxonomy/curated_homepage_topics.feature
index 82b688bb137561ac967e665ca0539683e296420b..0ff1fb89faf253bcd5351d508a85193bc3bd0664 100644
--- a/tests/features/taxonomy/curated_homepage_topics.feature
+++ b/tests/features/taxonomy/curated_homepage_topics.feature
@@ -408,8 +408,8 @@ Feature:
 
   Scenario Outline: Images should be shown for tile-two view modes.
     Given <type> content:
-      | title       | headline    | short title | state     | logo       | published |
-      | Custom tile | Custom tile | Custom tile | validated | linus.jpeg | yes       |
+      | title       | headline    | short title | state   | logo       | published |
+      | Custom tile | Custom tile | Custom tile | <state> | linus.jpeg | yes       |
     And the following topics are enabled in the homepage:
       | E-justice |
     And I am logged in as a moderator
@@ -428,18 +428,18 @@ Feature:
     Then I <should> see the image "linus.jpeg" in the "Custom tile" tile
 
     Examples:
-      | type        | should     | list style |
-      | custom_page | should     | list       |
-      | custom_page | should     | grid       |
-      | news        | should     | list       |
-      | news        | should     | grid       |
-      | event       | should     | list       |
-      | event       | should     | grid       |
-      | document    | should     | list       |
-      | document    | should     | grid       |
+      | type        | should     | list style | state     |
+      | custom_page | should     | list       | published |
+      | custom_page | should     | grid       | published |
+      | news        | should     | list       | validated |
+      | news        | should     | grid       | validated |
+      | event       | should     | list       | validated |
+      | event       | should     | grid       | validated |
+      | document    | should     | list       | validated |
+      | document    | should     | grid       | validated |
       # Discussions don't have logos.
-      | discussion  | should not | list       |
-      | discussion  | should not | grid       |
+      | discussion  | should not | list       | validated |
+      | discussion  | should not | grid       | validated |
 
   Scenario: Up to 4 topics should be shown for tile-two view modes.
     Given news content:
@@ -508,7 +508,7 @@ Feature:
   Scenario: Ampersand character is not decoded properly under a topic page.
     Given custom_page content:
       | title                    | body                                          | state     |
-      | Legislation & Technology | What do we mean by Legislation & Technology?  | validated |
+      | Legislation & Technology | What do we mean by Legislation & Technology?  | published |
     And the following topics are enabled in the homepage:
       | E-justice               |
     And I am logged in as a moderator
diff --git a/tests/features/update/archive.7450.feature b/tests/features/update/archive.7450.feature
new file mode 100644
index 0000000000000000000000000000000000000000..4a3f7e6ad287880f5ec9ca79d4f92fdbfc2cbec9
--- /dev/null
+++ b/tests/features/update/archive.7450.feature
@@ -0,0 +1,26 @@
+@api @group-clone
+Feature: Test post update functionality for the ISAICP-7450 EPIC.
+
+  Scenario Outline: New groups archive switch is on the top region by default.
+    Given <group>:
+      | title | Some <group> |
+      | state | validated    |
+    And news content:
+      | title                  | <group>      | state     |
+      | Some non archived news | Some <group> | validated |
+      | Some archived news     | Some <group> | archived  |
+
+    When I go to the "Some <group>" <group>
+    Then I should not see the "<group> content archived toggle" facet
+    When the "Some <group>" <group> is configured to show "All" community content in the overview
+    And I go to the "Some <group>" <group>
+    Then I should see the "<group> content archived toggle" facet
+
+    Examples:
+      | group      |
+      | collection |
+      | solution   |
+
+  Scenario: The groups are updated to have the status on top by.
+    Then the "Joinup" collection should be configured to show the "collection content archived toggle" facet in the "top" region
+    Then the "Joinup source code" solution should be configured to show the "solution content archived toggle" facet in the "top" region
diff --git a/tests/features/user/profile.feature b/tests/features/user/profile.feature
index 0663bc4f22306a63b01178876ec1f431050f0b99..1729c651684bdb90fca2b570cc61e6fd7a69c232 100644
--- a/tests/features/user/profile.feature
+++ b/tests/features/user/profile.feature
@@ -245,3 +245,53 @@ Feature: User profile
     And I click "My account"
     Then I should not see the link "Subscription settings"
     And I should not see the link "Persistent Logins"
+
+  Scenario: See archived content in user profile.
+    Given users:
+      | Username          | E-mail                        |
+      | Janny Robert      | janny.robert@example.com      |
+      | Clarise Edwardson | clarise.edwardson@example.com |
+    And the following collections:
+      | title            | description                           | logo     | banner     | state     | creation date    | author             |
+      | Lake E.D.E.N.    | European Deep Earth Nurturing project | logo.png | banner.jpg | validated | 2017-02-23 10:00 | Janny Robert       |
+      | Rose is red      | Better descriptions ever              | logo.png | banner.jpg | validated | 2017-02-23 10:00 | Clarise Edwardson  |
+      | Lone handling    | Because even flowers have feelings.   | logo.png | banner.jpg | archived  | 2017-02-23 12:00 | Janny Robert       |
+    And discussion content:
+      | title                   | author          | collection    | state     | created         |
+      | Repopulating green iris | Janny Robert   | Lake E.D.E.N. | validated | 2018-06-15 16:00 |
+      | Best plant comfort      | Janny Robert   | Lone handling | validated | 2018-09-01 19:30 |
+    And document content:
+      | title           | author       | collection    | state     | created          |
+      | Cherry schedule | Janny Robert | Lake E.D.E.N. | validated | 2017-05-13 16:00 |
+      | Cherry arch     | Janny Robert | Lake E.D.E.N. | archived  | 2017-05-13 16:00 |
+    And news content:
+      | title             | author       | collection    | state     | created         |
+      | Discovered flower | Janny Robert | Lake E.D.E.N. | validated | 2018-11-15 9:01 |
+      | Purple flower     | Janny Robert | Lake E.D.E.N. | validated | 2018-11-15 9:01 |
+      | Blue flower       | Janny Robert | Lake E.D.E.N. | archived  | 2018-11-15 9:01 |
+
+    When I am an anonymous user
+    And I go to the public profile of "Clarise Edwardson"
+    Then I should see the heading "Clarise Edwardson"
+    And I should see the text "Show archived"
+    When I click "Show archived"
+    And I should see 0 tiles
+
+    When I am an anonymous user
+    And I go to the public profile of "Janny Robert"
+    Then I should see the heading "Janny Robert"
+    And I should see the text "Show archived"
+    Then I should see the following tiles in the correct order:
+      | Discovered flower         |
+      | Purple flower             |
+      | Best plant comfort        |
+      | Repopulating green iris   |
+      | Cherry schedule           |
+      | Lake E.D.E.N.             |
+    And I should not see the "Archive news" tile
+
+    When I click "Show archived"
+    Then I should see the following tiles in the correct order:
+      | Blue flower   |
+      | Cherry arch   |
+      | Lone handling |
diff --git a/tests/src/Context/JoinupContext.php b/tests/src/Context/JoinupContext.php
index ba6295a0b184ca60098a1cc3a6a203a82bbebe55..ee3e6d61a578939a8cecca7ef84464c8af838a3a 100644
--- a/tests/src/Context/JoinupContext.php
+++ b/tests/src/Context/JoinupContext.php
@@ -762,6 +762,7 @@ protected static function getNodeFieldNameFromAlias($type, $alias) {
         'attachments' => 'field_attachment',
         'body' => 'field_paragraphs_body',
         'logo' => 'field_custom_page_logo',
+        'state' => 'field_state',
       ],
       'discussion' => [
         'attachments' => 'field_attachment',
diff --git a/tests/src/Context/JoinupCoreContext.php b/tests/src/Context/JoinupCoreContext.php
index d0b6a7daa92e3656b570fda47155b320bc3a74c7..61566e7d6a8c048876d8c22cfbf983fba2fef2c9 100644
--- a/tests/src/Context/JoinupCoreContext.php
+++ b/tests/src/Context/JoinupCoreContext.php
@@ -370,4 +370,29 @@ public function theDefaultCacheBackendIsSetTo(string $expected): void {
     Assert::assertSame($expected, $actual);
   }
 
+  /**
+   * Alters the state of an entity programmatically.
+   *
+   * @param string $label
+   *   The label of the entity.
+   * @param string $entity_type_id
+   *   The entity type ID of the entity.
+   * @param string $state
+   *   The state to set.
+   *
+   * @Given the workflow state of the :label :entity_type_id is set to :state
+   */
+  public function changeEntityWorkflowState(string $label, string $entity_type_id, string $state): void {
+    $mapping = [
+      'content' => 'node',
+      'rdf entity' => 'rdf_entity',
+    ];
+    Assert::assertArrayHasKey($entity_type_id, $mapping, "The entity type $entity_type_id is not supported. Use one of " . implode(', ', array_keys($mapping)));
+
+    $entity = $this->getEntityByLabel($mapping[$entity_type_id], $label);
+    $entity->setNewRevision();
+    $entity->set('field_state', $state);
+    $entity->save();
+  }
+
 }
diff --git a/tests/src/Context/JoinupSearchContext.php b/tests/src/Context/JoinupSearchContext.php
index f5c50235e215bdc2ac6aaf8ded92898fcebd2182..ae20909f1a3fa97389bf866f78b63cd232a230a1 100644
--- a/tests/src/Context/JoinupSearchContext.php
+++ b/tests/src/Context/JoinupSearchContext.php
@@ -9,6 +9,7 @@
 use Behat\Mink\Exception\ElementNotFoundException;
 use Drupal\DrupalExtension\Context\RawDrupalContext;
 use Drupal\joinup\Traits\BootstrapTrait;
+use Drupal\joinup\Traits\EntityTrait;
 use Drupal\joinup\Traits\JavascriptTrait;
 use Drupal\joinup\Traits\KeyboardInteractionTrait;
 use Drupal\joinup\Traits\SearchTrait;
@@ -22,6 +23,7 @@
 class JoinupSearchContext extends RawDrupalContext {
 
   use BootstrapTrait;
+  use EntityTrait;
   use JavascriptTrait;
   use KeyboardInteractionTrait;
   use SearchTrait;
@@ -169,7 +171,7 @@ public function assertContentFacetCheckboxSelected(string $bundle): void {
    */
   public function assertContentTypeFacetItemsPresent(string $labels): void {
     $labels = $this->explodeCommaSeparatedStepArgument($labels);
-    $xpath = "//a[@data-drupal-facet-item-id]//span[contains(concat(' ', normalize-space(@class), ' '), ' tab__text--type ')]";
+    $xpath = "//a[@data-drupal-facet-item-id]//span[contains(concat(' ', normalize-space(@class), ' '), ' tab__text--type ') or contains(concat(' ', normalize-space(@class), ' '), ' facet-item__value ')]";
 
     $elements = $this->getSession()->getPage()->findAll('xpath', $xpath);
     $present = [];
@@ -518,6 +520,33 @@ public function assertNumberOfTopicsInCards(int $number, string $heading): void
     Assert::assertSame(count($topics), $number);
   }
 
+  /**
+   * Asserts that a facet exists in the page.
+   *
+   * @param string $facet
+   *   The facet name.
+   *
+   * @Then I should see the :facet facet
+   */
+  public function iShouldSeeTheFacet(string $facet): void {
+    $facet_element = $this->findFacetByAlias($facet);
+    Assert::assertNotEmpty($facet_element->getText(), "The facet '{$facet}' was not found in the page.");
+  }
+
+  /**
+   * Asserts that a facet does not exist in the page.
+   *
+   * @param string $facet
+   *   The facet name.
+   *
+   * @Then I should not see the :facet facet
+   */
+  public function iShouldNotSeeTheFacet(string $facet): void {
+    $element = $this->findFacetByAlias($facet, NULL, '*', FALSE);
+    // The facet might be present but with no options.
+    Assert::assertTrue(empty($element) || empty($element->getText()), "The facet '{$facet}' was found in the page.");
+  }
+
   /**
    * Opens the dropdown for the given facet element.
    *
@@ -1017,4 +1046,87 @@ public function assertDifferentIdsInSearchInputs(): void {
     Assert::assertNotEquals($getNavbarInputId, $getHeaderInputId, 'The two search inputs have the same id.');
   }
 
+  /**
+   * Sets the group content listing archived option.
+   *
+   * @param string $label
+   *   The group label.
+   * @param string $bundle
+   *   The group bundle.
+   * @param string $option
+   *   The option to set.
+   *
+   * @When the :label :bundle is configured to show :option community content( in the overview)
+   */
+  public function setGroupContentArchivedOption(string $label, string $bundle, string $option): void {
+    $option = strtolower($option);
+    $options = ['all', 'archived', 'unarchived'];
+    Assert::assertTrue(in_array($option, $options), sprintf('The option should be one of: %s', implode(', ', $options)));
+    $entity = $this->getEntityByLabel('rdf_entity', $label, $bundle);
+    $field_name = $bundle === 'collection' ? 'field_collection_content' : 'field_is_content';
+    $data = $entity->get($field_name)->getValue();
+    if (!empty($data)) {
+      $data[0]['value']['show_archived'] = 'all';
+      $entity->set($field_name, $data);
+      $entity->save();
+    }
+  }
+
+  /**
+   * Sets a facet for the group content listing.
+   *
+   * @param string $label
+   *   The group label.
+   * @param string $bundle
+   *   The group bundle.
+   * @param string $facet
+   *   The facet to set.
+   * @param string $region
+   *   The facet region.
+   *
+   * @When the :label :bundle is configured to show the :facet facet in the :region region
+   */
+  public function setGroupContentFacet(string $label, string $bundle, string $facet, string $region): void {
+    $facet = strtolower($facet);
+    $facet = self::getFacetIdFromAlias($facet);
+    $entity = $this->getEntityByLabel('rdf_entity', $label, $bundle);
+    $region = strtolower($region);
+    $field_name = $bundle === 'collection' ? 'field_collection_content' : 'field_is_content';
+    $data = $entity->get($field_name)->getValue();
+    if (!empty($data)) {
+      $data[0]['value']['fields'][$facet] = [
+        'region' => $region,
+        'weight' => 0,
+      ];
+      $entity->set($field_name, $data);
+      $entity->save();
+    }
+  }
+
+  /**
+   * Asserts that a group listing field facet is configured in a given region.
+   *
+   * @param string $label
+   *   The label of the group.
+   * @param string $bundle
+   *   The group bundle.
+   * @param string $facet
+   *   The facet to set.
+   * @param string $region
+   *   The facet region.
+   *
+   * @When the :label :bundle should be configured to show the :facet facet in the :region region
+   */
+  public function assertGroupContentFacet(string $label, string $bundle, string $facet, string $region): void {
+    $facet = strtolower($facet);
+    $facet = self::getFacetIdFromAlias($facet);
+    $entity = $this->getEntityByLabel('rdf_entity', $label, $bundle);
+    $region = strtolower($region);
+    $field_name = $bundle === 'collection' ? 'field_collection_content' : 'field_is_content';
+    $data = $entity->get($field_name)->getValue();
+    if (empty($data) || !isset($data[0]['value']['fields'][$facet]) || ($data[0]['value']['fields'][$facet]['region'] !== $region)) {
+      throw new \RuntimeException(sprintf('The %s facet is not configured in the %s region.', $facet, $region));
+    }
+  }
+
 }
diff --git a/tests/src/Traits/TraversingTrait.php b/tests/src/Traits/TraversingTrait.php
index bff8a79a3bfffeaf4bb8f15b48276e17472f03f7..84a0f67395c6433e89ec602018e0675a32636a66 100644
--- a/tests/src/Traits/TraversingTrait.php
+++ b/tests/src/Traits/TraversingTrait.php
@@ -336,22 +336,25 @@ protected function getListingByHeading(string $type, string $heading): NodeEleme
    *   (optional) Limit to a specific html tag when searching for an element.
    *   This can be useful in cases where the data drupal facet id is placed in
    *   more than one html tag e.g. the dropdown has the id placed in both the
-   *   <li> tag of links as well as the <select> element.
+   *   <li> tag of links and the <select> element.
+   * @param bool $throw_exception
+   *   (optional) Whether to throw an exception if the facet is not found.
+   *   Defaults to TRUE.
    *
-   * @return \Behat\Mink\Element\NodeElement
+   * @return \Behat\Mink\Element\NodeElement|null
    *   The facet node element.
    *
    * @throws \Exception
    *   Thrown when the facet is not found in the designated area.
    */
-  protected function findFacetByAlias(string $alias, ?NodeElement $region = NULL, string $html_tag = '*'): NodeElement {
+  protected function findFacetByAlias(string $alias, ?NodeElement $region = NULL, string $html_tag = '*', bool $throw_exception = TRUE): ?NodeElement {
     if ($region === NULL) {
       $region = $this->getSession()->getPage();
     }
     $facet_id = self::getFacetIdFromAlias($alias);
     $element = $region->find('xpath', "//{$html_tag}[@data-drupal-facet-id='{$facet_id}']");
 
-    if (!$element) {
+    if (!$element && $throw_exception) {
       throw new \Exception("The facet '$alias' was not found in the page.");
     }
 
@@ -374,25 +377,28 @@ protected function findFacetByAlias(string $alias, ?NodeElement $region = NULL,
    */
   protected static function getFacetIdFromAlias(string $alias): string {
     $mappings = [
-      'collection type' => 'collection_type',
-      'collection topic' => 'collection_topic',
-      'collection/solution' => 'group',
-      'topic' => 'topic',
-      'solution topic' => 'solution_topic',
-      'solution spatial coverage' => 'solution_spatial_coverage',
-      'spatial coverage' => 'spatial_coverage',
-      'My solutions content' => 'solution_my_content',
+      'Collection event date' => 'collection_event_type',
+      'Content listing types' => 'content_listing_type',
+      'Content types' => 'type',
+      'EIF recommendations' => 'category',
+      'Event date' => 'event_date',
       'My collections content' => 'collection_my_content',
       'My content' => 'content_my_content',
+      'My solutions content' => 'solution_my_content',
+      'Status' => 'status',
       'User content' => 'user_content_bundle',
-      'Event date' => 'event_date',
-      'EIF recommendations' => 'category',
-      'Collection event date' => 'collection_event_type',
-      'Content types' => 'type',
-      'Content listing types' => 'content_listing_type',
-      'eif principle' => 'principle',
-      'eif interoperability layer' => 'interoperability_layer',
+      'collection content archived toggle' => 'field_collection_content_status',
+      'collection topic' => 'collection_topic',
+      'collection type' => 'collection_type',
+      'collection/solution' => 'group',
       'eif conceptual model' => 'conceptual_model',
+      'eif interoperability layer' => 'interoperability_layer',
+      'eif principle' => 'principle',
+      'solution content archived toggle' => 'field_is_content_status',
+      'solution spatial coverage' => 'solution_spatial_coverage',
+      'solution topic' => 'solution_topic',
+      'spatial coverage' => 'spatial_coverage',
+      'topic' => 'topic',
     ];
 
     if (!isset($mappings[$alias])) {
diff --git a/web/modules/custom/custom_page/config/schema/custom_page.schema.yml b/web/modules/custom/custom_page/config/schema/custom_page.schema.yml
index ed4ebda9661c62a90575e137235f58008fd6b83c..588cc9b715fb6bfe9c4722a9864bd74daae0caba 100644
--- a/web/modules/custom/custom_page/config/schema/custom_page.schema.yml
+++ b/web/modules/custom/custom_page/config/schema/custom_page.schema.yml
@@ -29,6 +29,9 @@ custom_page_search_api_widget:
               enabled:
                 type: integer
                 label: 'Enabled'
+              show_archived:
+                type: string
+                label: 'Show archived'
               query_presets:
                 type: string
                 label: 'Query presets'
diff --git a/web/modules/custom/custom_page/custom_page.info.yml b/web/modules/custom/custom_page/custom_page.info.yml
index 3c8bfeecdd888e1e36e30c7d978bb25bbe6d79fb..65453e14a12a1b846657c4728d4427fa4add82ab 100644
--- a/web/modules/custom/custom_page/custom_page.info.yml
+++ b/web/modules/custom/custom_page/custom_page.info.yml
@@ -15,3 +15,4 @@ dependencies:
   - 'og:og'
   - 'search_api:search_api'
   - 'smart_trim:smart_trim'
+  - 'state_machine:state_machine'
diff --git a/web/modules/custom/custom_page/custom_page.services.yml b/web/modules/custom/custom_page/custom_page.services.yml
index e78dc82ddc4cb8e1a5e15b516bd107ec052bef4b..5b7e95b39cf6eac9d4b8cfbc2d95886391294b1d 100644
--- a/web/modules/custom/custom_page/custom_page.services.yml
+++ b/web/modules/custom/custom_page/custom_page.services.yml
@@ -15,3 +15,17 @@ services:
     arguments: ['@entity_type.manager']
     tags:
       - { name: event_subscriber }
+  custom_page.unchanged_workflow_state:
+    class: Drupal\custom_page\EventSubscriber\CustomPageUnchangedWorkflowState
+    arguments: ['@entity_type.manager']
+    tags:
+      - { name: event_subscriber }
+  custom_page.workflow_transition:
+    class: Drupal\custom_page\EventSubscriber\CustomPageWorkflowTransition
+    tags:
+      - { name: event_subscriber }
+  custom_page.custom_page_guard:
+    class: Drupal\custom_page\Guard\CustomPageGuard
+    arguments: ['@plugin.manager.workflow']
+    tags:
+      - { name: state_machine.guard, group: custom_page }
diff --git a/web/modules/custom/custom_page/custom_page.workflow_groups.yml b/web/modules/custom/custom_page/custom_page.workflow_groups.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4185af16eecb9c60a5c3a1229f5b814cc3916028
--- /dev/null
+++ b/web/modules/custom/custom_page/custom_page.workflow_groups.yml
@@ -0,0 +1,3 @@
+custom_page:
+  label: 'Custom page'
+  entity_type: node
diff --git a/web/modules/custom/custom_page/custom_page.workflows.yml b/web/modules/custom/custom_page/custom_page.workflows.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9742daae16635bfac18f18e44615a36d8811a27f
--- /dev/null
+++ b/web/modules/custom/custom_page/custom_page.workflows.yml
@@ -0,0 +1,39 @@
+custom_page_workflow:
+  id: custom_page_workflow
+  label: 'Default'
+  group: custom_page
+  states:
+    __new__:
+      label: New
+      published: true
+    draft:
+      label: Draft
+    published:
+      label: Published
+      published: true
+    unpublished:
+      label: Unpublished
+    archived:
+      label: Archived
+      published: true
+  transitions:
+    save_as_draft:
+      label: 'Save as draft'
+      from: [ __new__ ]
+      to: draft
+    publish:
+      label: Publish
+      from: [ __new__, draft, unpublished ]
+      to: published
+    unpublish:
+      label: Unpublish
+      from: [ published ]
+      to: unpublished
+    archive:
+      label: Archive
+      from: [ published ]
+      to: archived
+    unarchive:
+      label: Unarchive
+      from: [ archived ]
+      to: published
diff --git a/web/modules/custom/custom_page/src/Entity/CustomPage.php b/web/modules/custom/custom_page/src/Entity/CustomPage.php
index d3e0da30af75ae86e7f82092c8713d74a1f75af8..ca45b77810bce31a6b8c652b5533dcd233be19ef 100644
--- a/web/modules/custom/custom_page/src/Entity/CustomPage.php
+++ b/web/modules/custom/custom_page/src/Entity/CustomPage.php
@@ -6,8 +6,11 @@
 
 use Drupal\collection\Entity\NodeCollectionContentTrait;
 use Drupal\joinup_bundle_class\DescriptionTrait;
+use Drupal\joinup_bundle_class\JoinupBundleClassFieldAccessTrait;
 use Drupal\joinup_bundle_class\LogoTrait;
 use Drupal\joinup_publication_date\Entity\EntityPublicationTimeTrait;
+use Drupal\joinup_workflow\ArchivableEntityTrait;
+use Drupal\joinup_workflow\EntityWorkflowStateTrait;
 use Drupal\node\Entity\Node;
 
 /**
@@ -15,8 +18,11 @@
  */
 class CustomPage extends Node implements CustomPageInterface {
 
+  use ArchivableEntityTrait;
   use DescriptionTrait;
+  use JoinupBundleClassFieldAccessTrait;
   use EntityPublicationTimeTrait;
+  use EntityWorkflowStateTrait;
   use LogoTrait;
   use NodeCollectionContentTrait;
 
@@ -34,6 +40,13 @@ public function getDescriptionField(): string {
     return 'field_paragraphs_body';
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getWorkflowStateFieldName(): string {
+    return 'field_state';
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -46,4 +59,19 @@ public function isGroupLandingPage(): bool {
     return FALSE;
   }
 
+  /**
+   * Returns an array of field names to skip in ::hasTranslationChanges.
+   *
+   * @return array
+   *   An array of field names.
+   */
+  protected function getFieldsToSkipFromTranslationChangesCheck() {
+    $fields = parent::getFieldsToSkipFromTranslationChangesCheck();
+
+    // Prevents auto updates to changed date when we update only state.
+    $fields[] = $this->getWorkflowStateFieldName();
+
+    return $fields;
+  }
+
 }
diff --git a/web/modules/custom/custom_page/src/Entity/CustomPageInterface.php b/web/modules/custom/custom_page/src/Entity/CustomPageInterface.php
index b1f6a25389ff81e0d9cc4c2fa9e5773107761a7d..8aeceef073d94ca1beb1ebe4ec863818904202f9 100644
--- a/web/modules/custom/custom_page/src/Entity/CustomPageInterface.php
+++ b/web/modules/custom/custom_page/src/Entity/CustomPageInterface.php
@@ -9,12 +9,14 @@
 use Drupal\joinup_bundle_class\LogoInterface;
 use Drupal\joinup_group\Entity\GroupContentInterface;
 use Drupal\joinup_publication_date\Entity\EntityPublicationTimeInterface;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
+use Drupal\joinup_workflow\EntityWorkflowStateInterface;
 use Drupal\node\NodeInterface;
 
 /**
  * Interface for content page node entities.
  */
-interface CustomPageInterface extends NodeInterface, GroupContentInterface, CollectionContentInterface, EntityPublicationTimeInterface, LogoInterface, DescriptionInterface {
+interface CustomPageInterface extends NodeInterface, GroupContentInterface, CollectionContentInterface, EntityPublicationTimeInterface, LogoInterface, DescriptionInterface, EntityWorkflowStateInterface, ArchivableEntityInterface {
 
   /**
    * Checks if this custom page is set as a landing page of the group.
diff --git a/web/modules/custom/custom_page/src/EventSubscriber/CustomPageUnchangedWorkflowState.php b/web/modules/custom/custom_page/src/EventSubscriber/CustomPageUnchangedWorkflowState.php
new file mode 100644
index 0000000000000000000000000000000000000000..17fe90cb6f9e478606983a67ae7a89932de5f439
--- /dev/null
+++ b/web/modules/custom/custom_page/src/EventSubscriber/CustomPageUnchangedWorkflowState.php
@@ -0,0 +1,47 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\custom_page\EventSubscriber;
+
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drupal\custom_page\Entity\CustomPageInterface;
+use Drupal\joinup_workflow\Event\UnchangedWorkflowStateUpdateEvent;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Event subscribers for the "joinup_workflow.unchanged_workflow_state_update".
+ */
+class CustomPageUnchangedWorkflowState implements EventSubscriberInterface {
+
+  use StringTranslationTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents(): array {
+    return [
+      'joinup_workflow.unchanged_workflow_state_update' => 'onUnchangedWorkflowStateUpdate',
+    ];
+  }
+
+  /**
+   * Determines if the content can be updated without changing workflow state.
+   *
+   * @param \Drupal\joinup_workflow\Event\UnchangedWorkflowStateUpdateEvent $event
+   *   The event.
+   */
+  public function onUnchangedWorkflowStateUpdate(UnchangedWorkflowStateUpdateEvent $event): void {
+    $entity = $event->getEntity();
+    if (!$entity instanceof CustomPageInterface) {
+      return;
+    }
+
+    if (in_array($event->getState(), ['__new__', 'archived'])) {
+      $access = AccessResult::forbidden();
+      $event->setAccess($access);
+    }
+  }
+
+}
diff --git a/web/modules/custom/custom_page/src/EventSubscriber/CustomPageWorkflowTransition.php b/web/modules/custom/custom_page/src/EventSubscriber/CustomPageWorkflowTransition.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ce2c3157db8f5fdf286b876833c7caa6458f593
--- /dev/null
+++ b/web/modules/custom/custom_page/src/EventSubscriber/CustomPageWorkflowTransition.php
@@ -0,0 +1,40 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\custom_page\EventSubscriber;
+
+use Drupal\custom_page\Entity\CustomPageInterface;
+use Drupal\state_machine\Event\WorkflowTransitionEvent;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Event subscriber to handle actions on workflow transition.
+ */
+class CustomPageWorkflowTransition implements EventSubscriberInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents(): array {
+    return [
+      'state_machine.pre_transition' => ['handleAction', -100],
+    ];
+  }
+
+  /**
+   * Handle action based on the workflow.
+   *
+   * @param \Drupal\state_machine\Event\WorkflowTransitionEvent $event
+   *   The state change event.
+   */
+  public function handleAction(WorkflowTransitionEvent $event): void {
+    $entity = $event->getEntity();
+    if (!$entity instanceof CustomPageInterface) {
+      return;
+    }
+
+    $entity->isDefaultRevision(TRUE);
+  }
+
+}
diff --git a/web/modules/custom/custom_page/src/Guard/CustomPageGuard.php b/web/modules/custom/custom_page/src/Guard/CustomPageGuard.php
new file mode 100644
index 0000000000000000000000000000000000000000..a6ff856ac3c008591bac14f70c8858d7ac37f4f5
--- /dev/null
+++ b/web/modules/custom/custom_page/src/Guard/CustomPageGuard.php
@@ -0,0 +1,40 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\custom_page\Guard;
+
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\custom_page\Entity\CustomPageInterface;
+use Drupal\state_machine\Guard\GuardInterface;
+use Drupal\state_machine\Plugin\Workflow\WorkflowInterface;
+use Drupal\state_machine\Plugin\Workflow\WorkflowTransition;
+use Drupal\state_machine\WorkflowManagerInterface;
+
+/**
+ * Guard class for custom page group.
+ */
+class CustomPageGuard implements GuardInterface {
+
+  /**
+   * Constructs a new CustomPageGuard object.
+   *
+   * @param \Drupal\state_machine\WorkflowManagerInterface $workflowManager
+   *   Workflow manager.
+   */
+  public function __construct(protected WorkflowManagerInterface $workflowManager) {
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function allowed(WorkflowTransition $transition, WorkflowInterface $workflow, EntityInterface $entity): bool {
+    $toState = $transition->getToState()->getId();
+    if ($entity instanceof CustomPageInterface && $entity->isGroupLandingPage() && $toState === 'unpublished') {
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
+}
diff --git a/web/modules/custom/custom_page/tests/src/Kernel/CustomPageOgMenuLinksManagerTest.php b/web/modules/custom/custom_page/tests/src/Kernel/CustomPageOgMenuLinksManagerTest.php
index 08dd1fbee22332ce5d539a8efaf0ee5998102c80..504a57a3095f9c449c116ffd34246d377f358a25 100644
--- a/web/modules/custom/custom_page/tests/src/Kernel/CustomPageOgMenuLinksManagerTest.php
+++ b/web/modules/custom/custom_page/tests/src/Kernel/CustomPageOgMenuLinksManagerTest.php
@@ -127,6 +127,32 @@ protected function setUp(): void {
     $mocked_custom_page_type->og_target_type = 'rdf_entity';
     $mocked_custom_page_type->og_target_bundles = ['collection'];
     $mocked_custom_page_type->save();
+
+    // The state field plays a big part of the project so we cannot go around
+    // that much without it. We create it here manually.
+    FieldStorageConfig::create([
+      'type' => 'state',
+      'entity_type' => 'node',
+      'field_name' => 'field_state',
+      'settings' => [
+        'workflow' => 'custom_page_workflow',
+      ],
+    ])->save();
+
+    $field = [
+      'field_name' => 'field_state',
+      'entity_type' => 'node',
+      'bundle' => 'custom_page',
+      'label' => 'State',
+      'required' => TRUE,
+      'settings' => [
+        'workflow' => 'custom_page_workflow',
+      ],
+    ];
+    $instance = \Drupal::service('entity_type.manager')
+      ->getStorage('field_config')
+      ->create($field);
+    $instance->save();
   }
 
   /**
diff --git a/web/modules/custom/joinup_community_content/joinup_community_content.info.yml b/web/modules/custom/joinup_community_content/joinup_community_content.info.yml
index f7db2baa7172022d3093bd200eecddfaec9673ab..766e5bdc8faff0d98af1198463f1edbad2b563f4 100644
--- a/web/modules/custom/joinup_community_content/joinup_community_content.info.yml
+++ b/web/modules/custom/joinup_community_content/joinup_community_content.info.yml
@@ -21,3 +21,4 @@ dependencies:
   - joinup:workflow_state_permission
   - publication_date:publication_date
   - state_machine:state_machine
+  - state_machine_permissions:state_machine_permissions
diff --git a/web/modules/custom/joinup_community_content/joinup_community_content.module b/web/modules/custom/joinup_community_content/joinup_community_content.module
index 2efc86bca64172294ffbd74b22d982e024a79d68..d0e1808d86e41bf7689cc7f5f08f2dc6312cf772 100644
--- a/web/modules/custom/joinup_community_content/joinup_community_content.module
+++ b/web/modules/custom/joinup_community_content/joinup_community_content.module
@@ -17,6 +17,7 @@
 use Drupal\joinup_community_content\CommunityContentHelper;
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
 use Drupal\joinup_community_content\JoinupCommunityContentCommentAccessControlHandler;
+use Drupal\joinup_community_content\Plugin\views\filter\JoinupContentState;
 use Drupal\joinup_discussion\Entity\DiscussionInterface;
 use Drupal\joinup_group\Exception\MissingGroupException;
 use Drupal\node\NodeInterface;
@@ -81,7 +82,8 @@ function joinup_community_content_node_access(NodeInterface $entity, string $ope
   if (!$entity instanceof CommunityContentInterface) {
     return AccessResult::neutral();
   }
-  return \Drupal::service('joinup_community_content.community_content_workflow_access')->entityAccess($entity, $operation, $account);
+  return \Drupal::service('joinup_community_content.community_content_workflow_access')
+    ->entityAccess($entity, $operation, $account);
 }
 
 /**
@@ -162,6 +164,15 @@ function joinup_community_content_workflow_selector(EntityInterface $entity): ?s
   return 'node:pre_moderated';
 }
 
+/**
+ * Implements hook_views_plugins_filter_alter().
+ */
+function joinup_community_content_views_plugins_filter_alter(array &$plugins): void {
+  if (isset($plugins['state_machine_state'])) {
+    $plugins['state_machine_state']['class'] = JoinupContentState::class;
+  }
+}
+
 /**
  * Implements hook_theme().
  */
diff --git a/web/modules/custom/joinup_community_content/joinup_community_content.permissions.yml b/web/modules/custom/joinup_community_content/joinup_community_content.permissions.yml
index 46c9420329ecb304f57cc436533124daa79801dc..280c12ca747f49505321486ce0701dfaee7f2a76 100644
--- a/web/modules/custom/joinup_community_content/joinup_community_content.permissions.yml
+++ b/web/modules/custom/joinup_community_content/joinup_community_content.permissions.yml
@@ -1,2 +1,4 @@
 delete own comments:
   title: Delete own comments
+unarchived community content:
+  title: Unarchive community content
diff --git a/web/modules/custom/joinup_community_content/joinup_community_content.workflows.yml b/web/modules/custom/joinup_community_content/joinup_community_content.workflows.yml
index 53ebd161bee3473c77cd8c2e3e2c07427b05c552..58bdfcae1bf6c5c7ca6af582b312857597593c48 100644
--- a/web/modules/custom/joinup_community_content/joinup_community_content.workflows.yml
+++ b/web/modules/custom/joinup_community_content/joinup_community_content.workflows.yml
@@ -68,10 +68,14 @@ node:pre_moderated:
       label: 'Reject deletion'
       from: [deletion_request]
       to: validated
-    disable:
-      label: Disable
-      from: [validated]
+    archive:
+      label: Archive
+      from: [draft, validated, needs_update, proposed, deletion_request]
       to: archived
+    unarchive:
+      label: Unarchive
+      from: [archived]
+      to: __new__
 # The workflow of the community content for a post moderated parent.
 node:post_moderated:
   id: post_moderated
@@ -121,7 +125,11 @@ node:post_moderated:
       label: 'Request changes'
       from: [validated]
       to: proposed
-    disable:
-      label: Disable
-      from: [validated]
+    archive:
+      label: Archive
+      from: [draft, validated, needs_update, proposed]
       to: archived
+    unarchive:
+      label: Unarchive
+      from: [archived]
+      to: __new__
diff --git a/web/modules/custom/joinup_community_content/src/CommunityContentWorkflowAccessControlHandler.php b/web/modules/custom/joinup_community_content/src/CommunityContentWorkflowAccessControlHandler.php
index e2b7212645ddaa6069f4584410cfe88227606c81..591bd9109b7d37c21a75d489f2be047cde360429 100644
--- a/web/modules/custom/joinup_community_content/src/CommunityContentWorkflowAccessControlHandler.php
+++ b/web/modules/custom/joinup_community_content/src/CommunityContentWorkflowAccessControlHandler.php
@@ -236,6 +236,10 @@ protected function entityCreateAccess(CommunityContentInterface $content, Accoun
    *   The access result check.
    */
   protected function entityUpdateAccess(CommunityContentInterface $content, AccountInterface $account): AccessResultInterface {
+    if ($this->workflowHelper->accountCanNotUnarchive($content, $account)) {
+      return AccessResult::forbidden()->addCacheableDependency($content);
+    }
+
     $allowed_states = $this->workflowHelper->getAvailableTargetStates($content, $account);
     if (empty($allowed_states)) {
       return AccessResult::forbidden()->addCacheableDependency($content);
diff --git a/web/modules/custom/joinup_community_content/src/JoinupCommunityContentCommentAccessControlHandler.php b/web/modules/custom/joinup_community_content/src/JoinupCommunityContentCommentAccessControlHandler.php
index c31bb536e998dd9c7bcb1d59007ffe2bb41d6e6a..8fa26b0f93950928dc7d3f590ca8f35216c8641e 100644
--- a/web/modules/custom/joinup_community_content/src/JoinupCommunityContentCommentAccessControlHandler.php
+++ b/web/modules/custom/joinup_community_content/src/JoinupCommunityContentCommentAccessControlHandler.php
@@ -12,6 +12,7 @@
 use Drupal\Core\Session\AccountInterface;
 use Drupal\comment\CommentAccessControlHandler;
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 use Drupal\og\OgAccessInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -58,6 +59,13 @@ protected function checkAccess(EntityInterface $comment, $operation, AccountInte
     if (!$community_content instanceof CommunityContentInterface) {
       return parent::checkAccess($comment, $operation, $account);
     }
+
+    // If commented entity is archived, comment is in 'View Only' state.
+    if ($operation !== 'view' && $community_content instanceof ArchivableEntityInterface && $community_content->isArchived()) {
+      return AccessResult::forbidden('Commented entity is archived')
+        ->addCacheableDependency($community_content);
+    }
+
     $is_comment_admin = $this->isAllowedIfHasPermission('administer comments', $community_content, $account);
 
     if ($operation == 'approve') {
@@ -126,4 +134,18 @@ protected function isAllowedIfHasPermission(string $permission, CommunityContent
       || $this->ogAccess->userAccess($community_content->getGroup(), $permission, $account)->isAllowed();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
+    $commented_entity = $context['commented_entity'] ?? NULL;
+
+    if ($commented_entity instanceof ArchivableEntityInterface && $commented_entity->isArchived()) {
+      return AccessResult::forbidden('Commented entity is archived')
+        ->addCacheableDependency($commented_entity);
+    }
+
+    return parent::checkCreateAccess($account, $context, $entity_bundle);
+  }
+
 }
diff --git a/web/modules/custom/joinup_community_content/src/Plugin/views/filter/JoinupContentState.php b/web/modules/custom/joinup_community_content/src/Plugin/views/filter/JoinupContentState.php
new file mode 100644
index 0000000000000000000000000000000000000000..b1e7458224dfc4448c03f24f68e55655dd6f62d7
--- /dev/null
+++ b/web/modules/custom/joinup_community_content/src/Plugin/views/filter/JoinupContentState.php
@@ -0,0 +1,87 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\joinup_community_content\Plugin\views\filter;
+
+use Drupal\Core\Entity\EntityFieldManagerInterface;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\state_machine\Plugin\views\filter\State;
+use Drupal\state_machine\WorkflowManagerInterface;
+use Drupal\state_machine_permissions\StateMachinePermissionsHelperInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Joinup content state.
+ *
+ * Workflow for nodes are calculated based on the associated group. We can not
+ * use the standard approach because state filter does not use a real entity,
+ * it does not have associated group, so workflows can not be defined.
+ *
+ * @see joinup_community_content_workflow_selector()
+ */
+class JoinupContentState extends State {
+
+  /**
+   * Constructs a new joinup content state object.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin_id for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager.
+   * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager
+   *   The entity field manager.
+   * @param \Drupal\state_machine\WorkflowManagerInterface $workflowManager
+   *   The workflow manager service.
+   * @param \Drupal\state_machine_permissions\StateMachinePermissionsHelperInterface $stateMachinePermissionsHelper
+   *   State machine permissions helper.
+   */
+  public function __construct(
+    array $configuration,
+    $plugin_id,
+    $plugin_definition,
+    EntityTypeManagerInterface $entity_type_manager,
+    EntityFieldManagerInterface $entity_field_manager,
+    protected WorkflowManagerInterface $workflowManager,
+    protected StateMachinePermissionsHelperInterface $stateMachinePermissionsHelper
+  ) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $entity_field_manager);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition): self {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('entity_type.manager'),
+      $container->get('entity_field.manager'),
+      $container->get('plugin.manager.workflow'),
+      $container->get('state_machine_permissions.helper')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getWorkflows(EntityTypeInterface $entity_type, $field_name): array {
+    if ($entity_type->id() !== 'node') {
+      return parent::getWorkflows($entity_type, $field_name);
+    }
+
+    $workflows = [];
+    foreach ($this->stateMachinePermissionsHelper->getPossibleWorkflowsForEntityType($entity_type->id()) as $definition) {
+      $workflows[$definition['id']] = $this->workflowManager->createInstance($definition['id']);
+    }
+
+    return $workflows;
+  }
+
+}
diff --git a/web/modules/custom/joinup_community_content/tests/src/ExistingSite/CommunityContentWorkflowTestBase.php b/web/modules/custom/joinup_community_content/tests/src/ExistingSite/CommunityContentWorkflowTestBase.php
index 7bc354c95e23f8f9fa269108c9e9336f435fc02a..b8317401ecb35d837576f6cd3f9afe6e823096ee 100644
--- a/web/modules/custom/joinup_community_content/tests/src/ExistingSite/CommunityContentWorkflowTestBase.php
+++ b/web/modules/custom/joinup_community_content/tests/src/ExistingSite/CommunityContentWorkflowTestBase.php
@@ -589,6 +589,17 @@ protected function viewAccessProvider(): array {
             'userOgFacilitator',
           ],
         ],
+        'archived' => [
+          'own' => TRUE,
+          'any' => [
+            'userAnonymous',
+            'userAuthenticated',
+            'userModerator',
+            'userOgMember',
+            'userOgFacilitator',
+            'userOgAdministrator',
+          ],
+        ],
       ],
       'solution' => [
         'draft' => [
@@ -630,6 +641,17 @@ protected function viewAccessProvider(): array {
             'userOgFacilitator',
           ],
         ],
+        'archived' => [
+          'own' => TRUE,
+          'any' => [
+            'userAnonymous',
+            'userAuthenticated',
+            'userModerator',
+            'userOgMember',
+            'userOgFacilitator',
+            'userOgAdministrator',
+          ],
+        ],
       ],
     ];
   }
@@ -680,11 +702,13 @@ protected function updateAccessProvider(): array {
               'draft',
               'proposed',
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'draft',
               'proposed',
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -696,10 +720,12 @@ protected function updateAccessProvider(): array {
             'userModerator' => [
               'proposed',
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'proposed',
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -715,12 +741,14 @@ protected function updateAccessProvider(): array {
               'proposed',
               'needs_update',
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'draft',
               'proposed',
               'needs_update',
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -731,9 +759,11 @@ protected function updateAccessProvider(): array {
           'any' => [
             'userModerator' => [
               'proposed',
+              'archived',
             ],
             'userOgFacilitator' => [
               'proposed',
+              'archived',
             ],
           ],
         ],
@@ -741,9 +771,11 @@ protected function updateAccessProvider(): array {
           'any' => [
             'userModerator' => [
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -758,10 +790,12 @@ protected function updateAccessProvider(): array {
             'userModerator' => [
               'draft',
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'draft',
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -773,10 +807,12 @@ protected function updateAccessProvider(): array {
             'userModerator' => [
               'proposed',
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'proposed',
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -791,12 +827,14 @@ protected function updateAccessProvider(): array {
               'proposed',
               'needs_update',
               'validated',
+              'archived',
             ],
             'userOgFacilitator' => [
               'draft',
               'proposed',
               'needs_update',
               'validated',
+              'archived',
             ],
           ],
         ],
@@ -807,9 +845,11 @@ protected function updateAccessProvider(): array {
           'any' => [
             'userModerator' => [
               'proposed',
+              'archived',
             ],
             'userOgFacilitator' => [
               'proposed',
+              'archived',
             ],
           ],
         ],
@@ -914,6 +954,17 @@ protected function deleteAccessProvider(): array {
               'userOgFacilitator',
             ],
           ],
+          'archived' => [
+            'own' => [
+              'member' => TRUE,
+              'blocked' => FALSE,
+              'non-member' => FALSE,
+            ],
+            'any' => [
+              'userModerator',
+              'userOgFacilitator',
+            ],
+          ],
         ],
         GroupInterface::POST_MODERATION => [
           'draft' => [
@@ -960,6 +1011,17 @@ protected function deleteAccessProvider(): array {
               'userOgFacilitator',
             ],
           ],
+          'archived' => [
+            'own' => [
+              'member' => TRUE,
+              'blocked' => FALSE,
+              'non-member' => FALSE,
+            ],
+            'any' => [
+              'userModerator',
+              'userOgFacilitator',
+            ],
+          ],
         ],
       ],
       'solution' => [
@@ -1018,6 +1080,17 @@ protected function deleteAccessProvider(): array {
               'userOgFacilitator',
             ],
           ],
+          'archived' => [
+            'own' => [
+              'member' => TRUE,
+              'blocked' => FALSE,
+              'non-member' => FALSE,
+            ],
+            'any' => [
+              'userModerator',
+              'userOgFacilitator',
+            ],
+          ],
         ],
         GroupInterface::POST_MODERATION => [
           'draft' => [
@@ -1064,6 +1137,17 @@ protected function deleteAccessProvider(): array {
               'userOgFacilitator',
             ],
           ],
+          'archived' => [
+            'own' => [
+              'member' => TRUE,
+              'blocked' => FALSE,
+              'non-member' => FALSE,
+            ],
+            'any' => [
+              'userModerator',
+              'userOgFacilitator',
+            ],
+          ],
         ],
       ],
     ];
diff --git a/web/modules/custom/joinup_core/joinup_core.deploy.php b/web/modules/custom/joinup_core/joinup_core.deploy.php
index b7283c0381edec9beea65e5ef60c373597440fe4..cd0d7aeed5ef2937f677f3e9a4eaaf56272f0b72 100644
--- a/web/modules/custom/joinup_core/joinup_core.deploy.php
+++ b/web/modules/custom/joinup_core/joinup_core.deploy.php
@@ -14,6 +14,9 @@
 
 declare(strict_types = 1);
 
+use Drupal\paragraphs\Entity\Paragraph;
+use Drupal\sparql_entity_storage\Entity\Query\Sparql\SparqlArg;
+
 /**
  * Clean up problematic graph in the production database.
  */
@@ -35,3 +38,145 @@ function joinup_core_deploy_109300(): string {
   \Drupal::getContainer()->get('sparql.endpoint')->query($query);
   return "Graph has been deleted";
 }
+
+/**
+ * Update the 'show archived' for the group content fields.
+ */
+function joinup_core_deploy_109301(): void {
+  $graphs = [
+    'http://joinup.eu/collection/published' => 'field_collection_content_status',
+    'http://joinup.eu/collection/draft' => 'field_collection_content_status',
+    'http://joinup.eu/solution/published' => 'field_is_content_status',
+    'http://joinup.eu/solution/draft' => 'field_is_content_status',
+  ];
+
+  $sparql = \Drupal::service('sparql.endpoint');
+  foreach ($graphs as $graph => $field) {
+    $query = <<<QUERY
+WITH <$graph>
+SELECT ?entity_id ?data
+WHERE {
+  ?entity_id a ?type .
+  ?entity_id <http://joinup.eu/search> ?data .
+}
+QUERY;
+
+    $results = $sparql->query($query);
+    foreach ($results as $result) {
+      $data = unserialize($result->data->getValue(), [
+        'allowed_classes' => FALSE,
+      ]);
+      $data['show_archived'] = 'all';
+      $data['fields'][$field] = [
+        'region' => 'top',
+        'weight' => 10,
+      ];
+
+      $value = SparqlArg::serialize(serialize($data), 'literal');
+      $update_query = <<<QUERY
+WITH <$graph>
+DELETE { ?entity_id <http://joinup.eu/search> ?data }
+INSERT { ?entity_id <http://joinup.eu/search> {$value} }
+WHERE {
+?entity_id a ?type .
+?entity_id <http://joinup.eu/search> ?data .
+}
+QUERY;
+      $sparql->update($update_query);
+    }
+  }
+}
+
+/**
+ * Update the 'show archived' for the paragraph content listing fields.
+ */
+function joinup_core_deploy_109302(): void {
+  $query = \Drupal::entityQuery('paragraph')
+    ->condition('type', [
+      'content_listing',
+      'carousel',
+      'configurable_listing',
+    ], 'IN');
+  $paragraph_ids = $query->execute();
+  $paragraphs = Paragraph::loadMultiple($paragraph_ids);
+  foreach ($paragraphs as $paragraph) {
+    $data = $paragraph->get('content_listing')->getValue();
+    if (!empty($data)) {
+      $data[0]['value']['show_archived'] = 'all';
+      if ($paragraph->bundle() === 'content_listing') {
+        $data[0]['value']['fields']['content_listing_status'] = [
+          'region' => 'top',
+          'weight' => 10,
+        ];
+      }
+      $paragraph->set('content_listing', $data);
+      $paragraph->save();
+    }
+  }
+}
+
+/**
+ * Add state value to custom page nodes.
+ */
+function joinup_core_deploy_109303(?array &$sandbox = []): string {
+  $columns = [
+    'bundle',
+    'entity_id',
+    'revision_id',
+    'langcode',
+    'delta',
+    'field_state_value',
+  ];
+  $db = \Drupal::database();
+
+  if (!isset($sandbox['revisions'])) {
+    $query = $db->select('node_field_revision', 'r')
+      ->fields('r', ['nid', 'vid', 'status']);
+    $query->join('node', 'n', 'r.nid = n.nid');
+    $query->addExpression('IF(r.vid = n.vid, 1, 0)', 'current_revision');
+    $sandbox['revisions'] = $query
+      ->condition('n.type', 'custom_page')
+      ->orderBy('r.nid')
+      ->orderBy('r.vid')
+      ->execute()
+      ->fetchAll(\PDO::FETCH_NUM);
+    $sandbox['total'] = count($sandbox['revisions']);
+    $sandbox['progress'] = 0;
+  }
+
+  $revisions = array_splice($sandbox['revisions'], 0, 200);
+
+  $query = $db->insert('node__field_state')->fields($columns);
+  $query_revision = $db->insert('node_revision__field_state')->fields($columns);
+  foreach ($revisions as $revision) {
+    [$nid, $vid, $status, $is_current_revision] = $revision;
+    $value = [
+      'bundle' => 'custom_page',
+      'entity_id' => $nid,
+      'revision_id' => $vid,
+      'langcode' => 'en',
+      'delta' => 0,
+      'field_state_value' => $status ? 'published' : 'unpublished',
+    ];
+    if ($is_current_revision) {
+      $query->values($value);
+    }
+    $query_revision->values($value);
+  }
+  $query->execute();
+  $query_revision->execute();
+
+  $sandbox['progress'] += count($revisions);
+  $sandbox['#finished'] = (int) empty($sandbox['revisions']);
+
+  return "Processed {$sandbox['progress']} out of {$sandbox['total']} custom page revisions";
+}
+
+/**
+ * Update the user__field_user_content values.
+ */
+function joinup_core_deploy_109304(): void {
+  \Drupal::database()->update('user__field_user_content')
+    ->fields(['field_user_content_value' => 'a:5:{s:6:"fields";a:2:{s:19:"user_content_bundle";a:2:{s:6:"weight";i:0;s:6:"region";s:3:"top";}s:19:"user_content_status";a:2:{s:6:"weight";i:0;s:6:"region";s:3:"top";}}s:7:"enabled";i:1;s:13:"query_presets";s:0:"";s:5:"limit";i:12;s:13:"show_archived";s:3:"all";}'])
+    ->execute();
+}
diff --git a/web/modules/custom/joinup_core/joinup_core.module b/web/modules/custom/joinup_core/joinup_core.module
index 6e6dbe0b7660857f78096e0a7b4b18d185172c2f..d526796a648a7f5cc53cd2bca813b5a14b6e8dce 100644
--- a/web/modules/custom/joinup_core/joinup_core.module
+++ b/web/modules/custom/joinup_core/joinup_core.module
@@ -26,6 +26,7 @@
 use Drupal\joinup_core\JoinupSiteAlertListBuilder;
 use Drupal\joinup_core\Plugin\Field\FieldType\OutdatedContentFieldItemList;
 use Drupal\joinup_core\Plugin\Field\FieldWidget\ImageLibraryWidget;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 use Drupal\node\NodeInterface;
 
 /**
@@ -399,6 +400,11 @@ function joinup_core_entity_bundle_field_info(EntityTypeInterface $entity_type,
  * Implements hook_entity_view_alter().
  */
 function joinup_core_entity_view_alter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display): void {
+  // Don't show information about outdated content if entity is archived.
+  if ($entity instanceof ArchivableEntityInterface && $entity->isArchived()) {
+    return;
+  }
+
   if ($entity instanceof OutdatedContentInterface && $display->getMode() === 'default') {
     /** @var \Drupal\Core\Entity\EntityTypeBundleInfoInterface $bundle_info */
     $bundle_info = \Drupal::service('entity_type.bundle.info');
diff --git a/web/modules/custom/joinup_discussion/src/DiscussionObserver.php b/web/modules/custom/joinup_discussion/src/DiscussionObserver.php
index 50b54e8670b437764f1c731ed7b57485a8b9c98b..c75452506a11977aaf744ffbbef16bce4d647a60 100644
--- a/web/modules/custom/joinup_discussion/src/DiscussionObserver.php
+++ b/web/modules/custom/joinup_discussion/src/DiscussionObserver.php
@@ -9,6 +9,7 @@
 use Drupal\joinup_discussion\Entity\DiscussionInterface;
 use Drupal\joinup_discussion\Event\DiscussionEvents;
 use Drupal\joinup_discussion\Event\DiscussionUpdateEvent;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 
 /**
  * Triggers a DiscussionUpdateEvent when fields in a discussion are updated.
@@ -17,21 +18,13 @@
  */
 class DiscussionObserver implements ObserverInterface {
 
-  /**
-   * The event dispatcher service.
-   *
-   * @var \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher
-   */
-  protected $eventDispatcher;
-
   /**
    * Builds a new discussion observer.
    *
-   * @param \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher $event_dispatcher
+   * @param \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher $eventDispatcher
    *   The event dispatcher service.
    */
-  public function __construct(ContainerAwareEventDispatcher $event_dispatcher) {
-    $this->eventDispatcher = $event_dispatcher;
+  public function __construct(protected ContainerAwareEventDispatcher $eventDispatcher) {
   }
 
   /**
@@ -59,10 +52,19 @@ public function update(\SplSubject $entity_subject): void {
     /** @var \Drupal\changed_fields\EntitySubject $entity_subject */
     /** @var \Drupal\node\NodeInterface $discussion */
     $discussion = $entity_subject->getEntity();
+    if (!$discussion instanceof DiscussionInterface) {
+      return;
+    }
+
     $changed_fields = $entity_subject->getChangedFields();
+    $state = $discussion->get('field_state')->getString();
+    $was_archived = isset($discussion->original) && $discussion->original instanceof ArchivableEntityInterface ?
+      $discussion->original->isArchived() : FALSE;
+
     // Dispatch the update event only if there are changes of relevant fields
-    // and the discussion is in the 'validated' state.
-    if ($discussion instanceof DiscussionInterface && $changed_fields && $discussion->get('field_state')->value === 'validated') {
+    // and the discussion is in the 'validated' state
+    // and previous state was not archived.
+    if ($changed_fields && $state === 'validated' && !$was_archived) {
       $event = new DiscussionUpdateEvent($discussion, $changed_fields);
       $this->eventDispatcher->dispatch($event, DiscussionEvents::UPDATE);
     }
diff --git a/web/modules/custom/joinup_discussion/tests/src/ExistingSite/DiscussionWorkflowTest.php b/web/modules/custom/joinup_discussion/tests/src/ExistingSite/DiscussionWorkflowTest.php
index 3973f9371ceeead39dee79cea9b839d539734b6d..ef5d9e321d3fa6fb449f0077ac02bc9c64bcc6a0 100644
--- a/web/modules/custom/joinup_discussion/tests/src/ExistingSite/DiscussionWorkflowTest.php
+++ b/web/modules/custom/joinup_discussion/tests/src/ExistingSite/DiscussionWorkflowTest.php
@@ -5,7 +5,6 @@
 namespace Drupal\Tests\joinup_discussion\ExistingSite;
 
 use Drupal\Tests\joinup_community_content\ExistingSite\CommunityContentWorkflowTestBase;
-use Drupal\joinup_group\Entity\GroupInterface;
 
 /**
  * Tests CRUD operations and workflow transitions for the discussion node.
@@ -21,69 +20,4 @@ protected function getEntityBundle(): string {
     return 'discussion';
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function viewAccessProvider(): array {
-    $data = parent::viewAccessProvider();
-    foreach (['collection', 'solution'] as $bundle) {
-      $data[$bundle]['archived']['own'] = TRUE;
-      $data[$bundle]['archived']['any'] = [
-        'userAnonymous',
-        'userAuthenticated',
-        'userModerator',
-        'userOgMember',
-        'userOgFacilitator',
-        'userOgAdministrator',
-      ];
-    }
-
-    return $data;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function updateAccessProvider(): array {
-    $data = parent::updateAccessProvider();
-    foreach (['collection', 'solution'] as $bundle) {
-      foreach (['userModerator', 'userOgFacilitator'] as $user) {
-        $data[$bundle][GroupInterface::PRE_MODERATION]['validated']['any'][$user][] = 'archived';
-        $data[$bundle][GroupInterface::POST_MODERATION]['validated']['any'][$user][] = 'archived';
-      }
-    }
-
-    return $data;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function deleteAccessProvider(): array {
-    $data = parent::deleteAccessProvider();
-    foreach (['collection', 'solution'] as $bundle) {
-      $data[$bundle][GroupInterface::POST_MODERATION]['archived']['own'] = [
-        'member' => TRUE,
-        'blocked' => FALSE,
-        'non-member' => FALSE,
-      ];
-      $data[$bundle][GroupInterface::POST_MODERATION]['archived']['any'] = [
-        'userModerator',
-        'userOgFacilitator',
-      ];
-
-      $data[$bundle][GroupInterface::PRE_MODERATION]['archived']['own'] = [
-        'member' => TRUE,
-        'blocked' => FALSE,
-        'non-member' => FALSE,
-      ];
-      $data[$bundle][GroupInterface::PRE_MODERATION]['archived']['any'] = [
-        'userModerator',
-        'userOgFacilitator',
-      ];
-    }
-
-    return $data;
-  }
-
 }
diff --git a/web/modules/custom/joinup_document/src/Entity/Document.php b/web/modules/custom/joinup_document/src/Entity/Document.php
index 7b09e99e44b37c079b08099fed7e7cdea4d1335c..32a1df45e3bd8e2b78d82bf00d9a2fca5ddd6dc3 100644
--- a/web/modules/custom/joinup_document/src/Entity/Document.php
+++ b/web/modules/custom/joinup_document/src/Entity/Document.php
@@ -6,6 +6,7 @@
 
 use Drupal\joinup_bundle_class\LogoTrait;
 use Drupal\joinup_community_content\Entity\CommunityContentBase;
+use Drupal\joinup_workflow\ArchivableEntityTrait;
 
 /**
  * Entity subclass for the 'document' bundle.
@@ -13,6 +14,7 @@
 class Document extends CommunityContentBase implements DocumentInterface {
 
   use LogoTrait;
+  use ArchivableEntityTrait;
 
   /**
    * {@inheritdoc}
diff --git a/web/modules/custom/joinup_document/src/Entity/DocumentInterface.php b/web/modules/custom/joinup_document/src/Entity/DocumentInterface.php
index 2019aaa771d8e6f7dd8878e556a928f2bf2a0fec..f3a509798ea41393ee5ae82d60a600abdbf47af3 100644
--- a/web/modules/custom/joinup_document/src/Entity/DocumentInterface.php
+++ b/web/modules/custom/joinup_document/src/Entity/DocumentInterface.php
@@ -6,10 +6,11 @@
 
 use Drupal\joinup_bundle_class\LogoInterface;
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 
 /**
  * Interface for document entities in Joinup.
  */
-interface DocumentInterface extends CommunityContentInterface, LogoInterface {
+interface DocumentInterface extends CommunityContentInterface, LogoInterface, ArchivableEntityInterface {
 
 }
diff --git a/web/modules/custom/joinup_eulogin/tests/src/ExistingSite/Anonymous403RedirectCacheTest.php b/web/modules/custom/joinup_eulogin/tests/src/ExistingSite/Anonymous403RedirectCacheTest.php
index 2cbe932dd9c897bd0a227707addfa1e0149860a1..56216580f0c79cbe3ea6e2511d8d0a5902a14ee4 100644
--- a/web/modules/custom/joinup_eulogin/tests/src/ExistingSite/Anonymous403RedirectCacheTest.php
+++ b/web/modules/custom/joinup_eulogin/tests/src/ExistingSite/Anonymous403RedirectCacheTest.php
@@ -29,20 +29,22 @@ class Anonymous403RedirectCacheTest extends JoinupExistingSiteTestBase {
    * Tests the 403 redirection cache.
    */
   public function testRedirectCache(): void {
-    foreach ($this->getEntities() as $field_name => $entity) {
-      // Visit the unpublished entity to warm-up the redirect cache.
-      $this->drupalGet($entity->toUrl());
-      $this->assertSession()->pageTextContains('Sign in to continue');
-
-      // Publish the entity.
-      $value = $entity->bundle() === 'custom_page' ? TRUE : 'validated';
-      $entity->set($field_name, $value)->save();
-
-      // Revisit the entity. It should be visible.
-      $this->drupalGet($entity->toUrl());
-      $this->assertSession()->pageTextNotContains('Sign in to continue');
-      $this->assertSession()->pageTextContains($entity->label());
-      $this->assertSession()->addressEquals($entity->toUrl());
+    foreach ($this->getEntities() as $field_name => $entities) {
+      foreach ($entities as $entity) {
+        // Visit the unpublished entity to warm-up the redirect cache.
+        $this->drupalGet($entity->toUrl());
+        $this->assertSession()->pageTextContains('Sign in to continue');
+
+        // Publish the entity.
+        $value = $entity->bundle() === 'custom_page' ? 'published' : 'validated';
+        $entity->set($field_name, $value)->save();
+
+        // Revisit the entity. It should be visible.
+        $this->drupalGet($entity->toUrl());
+        $this->assertSession()->pageTextNotContains('Sign in to continue');
+        $this->assertSession()->pageTextContains($entity->label());
+        $this->assertSession()->addressEquals($entity->toUrl());
+      }
     }
   }
 
@@ -61,7 +63,7 @@ protected function getEntities(): array {
       'title' => $this->randomString(),
     ]);
     $collection->save();
-    $entities['field_ar_state'] = $collection;
+    $entities['field_ar_state'][] = $collection;
 
     $solution = $this->createRdfEntity([
       'rid' => 'solution',
@@ -70,7 +72,7 @@ protected function getEntities(): array {
       'collection' => $collection,
     ]);
     $solution->save();
-    $entities['field_is_state'] = $solution;
+    $entities['field_is_state'][] = $solution;
 
     $release = $this->createRdfEntity([
       'rid' => 'asset_release',
@@ -79,16 +81,7 @@ protected function getEntities(): array {
       'field_isr_is_version_of' => $solution,
     ]);
     $release->save();
-    $entities['field_isr_state'] = $release;
-
-    $custom_page = $this->createNode([
-      'type' => 'custom_page',
-      'status' => FALSE,
-      'title' => $this->randomString(),
-      'og_audience' => $collection,
-    ]);
-    $custom_page->save();
-    $entities['status'] = $custom_page;
+    $entities['field_isr_state'][] = $release;
 
     $discussion = $this->createNode([
       'type' => 'discussion',
@@ -97,7 +90,7 @@ protected function getEntities(): array {
       'og_audience' => $collection,
     ]);
     $discussion->save();
-    $entities['field_state'] = $discussion;
+    $entities['field_state'][] = $discussion;
 
     $document = $this->createNode([
       'type' => 'document',
@@ -106,7 +99,7 @@ protected function getEntities(): array {
       'og_audience' => $collection,
     ]);
     $document->save();
-    $entities['field_state'] = $document;
+    $entities['field_state'][] = $document;
 
     $event = $this->createNode([
       'type' => 'event',
@@ -115,7 +108,7 @@ protected function getEntities(): array {
       'og_audience' => $collection,
     ]);
     $event->save();
-    $entities['field_state'] = $event;
+    $entities['field_state'][] = $event;
 
     $news = $this->createNode([
       'type' => 'news',
@@ -124,7 +117,7 @@ protected function getEntities(): array {
       'og_audience' => $collection,
     ]);
     $news->save();
-    $entities['field_state'] = $news;
+    $entities['field_state'][] = $news;
 
     return $entities;
   }
diff --git a/web/modules/custom/joinup_event/src/Entity/Event.php b/web/modules/custom/joinup_event/src/Entity/Event.php
index 7253097affdf93e9a9e273401f4bef8d05995375..d42be6684f2ead76a6ec638f2951234f3fe5c99d 100644
--- a/web/modules/custom/joinup_event/src/Entity/Event.php
+++ b/web/modules/custom/joinup_event/src/Entity/Event.php
@@ -8,6 +8,7 @@
 use Drupal\joinup_bundle_class\JoinupBundleClassFieldAccessTrait;
 use Drupal\joinup_bundle_class\LogoTrait;
 use Drupal\joinup_community_content\Entity\CommunityContentBase;
+use Drupal\joinup_workflow\ArchivableEntityTrait;
 
 /**
  * Entity subclass for the 'event' bundle.
@@ -16,6 +17,7 @@ class Event extends CommunityContentBase implements EventInterface {
 
   use JoinupBundleClassFieldAccessTrait;
   use LogoTrait;
+  use ArchivableEntityTrait;
 
   /**
    * {@inheritdoc}
diff --git a/web/modules/custom/joinup_event/src/Entity/EventInterface.php b/web/modules/custom/joinup_event/src/Entity/EventInterface.php
index ad6745eb7ad5e458c7084c51f3ba50fbdb748c01..a60f1217f6090ac14e2000adda43b637a3f9c1fc 100644
--- a/web/modules/custom/joinup_event/src/Entity/EventInterface.php
+++ b/web/modules/custom/joinup_event/src/Entity/EventInterface.php
@@ -7,11 +7,12 @@
 use Drupal\Core\Url;
 use Drupal\joinup_bundle_class\LogoInterface;
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 
 /**
  * Interface for event entities in Joinup.
  */
-interface EventInterface extends CommunityContentInterface, LogoInterface {
+interface EventInterface extends CommunityContentInterface, LogoInterface, ArchivableEntityInterface {
 
   /**
    * Returns the event location.
diff --git a/web/modules/custom/joinup_group/src/Form/GroupMembershipPermissionsInformationForm.php b/web/modules/custom/joinup_group/src/Form/GroupMembershipPermissionsInformationForm.php
index 43198a8b614b2eb4f2e59b9861aedf0610bf6e16..7e7bec8a57f5c213d682a37ee5e6e51121b75fd7 100644
--- a/web/modules/custom/joinup_group/src/Form/GroupMembershipPermissionsInformationForm.php
+++ b/web/modules/custom/joinup_group/src/Form/GroupMembershipPermissionsInformationForm.php
@@ -254,6 +254,15 @@ protected function getPermissionInfo(GroupInterface $group): array {
           'owner' => TRUE,
         ],
       ],
+      [
+        'description' => $this->t('Archive content'),
+        'permitted' => [
+          'member' => FALSE,
+          'author' => FALSE,
+          'facilitator' => TRUE,
+          'owner' => TRUE,
+        ],
+      ],
     ];
   }
 
diff --git a/web/modules/custom/joinup_group_content_management/src/Exception/ActionException.php b/web/modules/custom/joinup_group_content_management/src/Exception/ActionException.php
new file mode 100644
index 0000000000000000000000000000000000000000..4078ab6933264999482deae4ddae087a9cc0f28f
--- /dev/null
+++ b/web/modules/custom/joinup_group_content_management/src/Exception/ActionException.php
@@ -0,0 +1,12 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\joinup_group_content_management\Exception;
+
+/**
+ * Exception thrown when the action can not be performed on entity.
+ */
+class ActionException extends \Exception {
+
+}
diff --git a/web/modules/custom/joinup_group_content_management/src/Plugin/Action/ArchiveAction.php b/web/modules/custom/joinup_group_content_management/src/Plugin/Action/ArchiveAction.php
new file mode 100644
index 0000000000000000000000000000000000000000..824f518a71c39672c9d2b4398cdb40660305518c
--- /dev/null
+++ b/web/modules/custom/joinup_group_content_management/src/Plugin/Action/ArchiveAction.php
@@ -0,0 +1,97 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\joinup_group_content_management\Plugin\Action;
+
+use Drupal\Component\Datetime\TimeInterface;
+use Drupal\Core\Render\RendererInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\joinup_group_content_management\Exception\ActionException;
+use Drupal\joinup_workflow\EntityWorkflowStateInterface;
+use Drupal\node\NodeInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Provides a VBO action that archive content.
+ *
+ * @Action(
+ *   id = "joinup_archive",
+ *   label = @Translation("Archive content"),
+ *   type = "node"
+ * )
+ */
+class ArchiveAction extends StateActionBase {
+
+  /**
+   * Constructs object.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $pluginId
+   *   The plugin_id for the plugin instance.
+   * @param mixed $pluginDefinition
+   *   The plugin implementation definition.
+   * @param \Drupal\Core\Render\RendererInterface $renderer
+   *   The renderer service.
+   * @param \Drupal\Component\Datetime\TimeInterface $time
+   *   The time service.
+   * @param \Drupal\Core\Session\AccountInterface $currentUser
+   *   The current user.
+   */
+  public function __construct(array $configuration, $pluginId, $pluginDefinition, protected RendererInterface $renderer, protected TimeInterface $time, protected AccountInterface $currentUser) {
+    parent::__construct($configuration, $pluginId, $pluginDefinition);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $pluginId, $pluginDefinition): self {
+    return new static(
+      $configuration,
+      $pluginId,
+      $pluginDefinition,
+      $container->get('renderer'),
+      $container->get('datetime.time'),
+      $container->get('current_user')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   *
+   * @throws \Drupal\Core\Entity\EntityStorageException
+   */
+  public function execute(?NodeInterface $node = NULL): void {
+    if (!$node instanceof EntityWorkflowStateInterface) {
+      return;
+    }
+
+    $node->setNewRevision();
+    $node->isDefaultRevision(TRUE);
+    $node->setRevisionLogMessage('Updated state to ' . self::ARCHIVE_STATE . ' by VBO action');
+    $node->setRevisionUserId($this->currentUser->id());
+    $node->setRevisionCreationTime($this->time->getRequestTime());
+    $node->setWorkflowState(self::ARCHIVE_STATE);
+    $node->save();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function canBeExecuted(NodeInterface $node): void {
+    if (!$node instanceof EntityWorkflowStateInterface) {
+      throw new ActionException('This content does not support workflow.');
+    }
+
+    $actual = $node->getWorkflowState();
+    if ($actual == self::ARCHIVE_STATE) {
+      throw new ActionException('It is already ' . self::ARCHIVE_STATE);
+    }
+
+    if (!$node->isTargetWorkflowStateAllowed(self::ARCHIVE_STATE)) {
+      throw new ActionException('It is not allowed to move ' . $actual . ' to ' . self::ARCHIVE_STATE);
+    }
+  }
+
+}
diff --git a/web/modules/custom/joinup_group_content_management/src/Plugin/Action/StateActionBase.php b/web/modules/custom/joinup_group_content_management/src/Plugin/Action/StateActionBase.php
new file mode 100644
index 0000000000000000000000000000000000000000..ffa1ccb8de9b2b9ed1d5ed6014c802a340003278
--- /dev/null
+++ b/web/modules/custom/joinup_group_content_management/src/Plugin/Action/StateActionBase.php
@@ -0,0 +1,90 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\joinup_group_content_management\Plugin\Action;
+
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Messenger\MessengerInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\joinup_group_content_management\Exception\ActionException;
+use Drupal\node\NodeInterface;
+use Drupal\views_bulk_operations\Action\ViewsBulkOperationsActionBase;
+use Symfony\Component\HttpFoundation\RedirectResponse;
+
+/**
+ * State action base.
+ */
+abstract class StateActionBase extends ViewsBulkOperationsActionBase implements ContainerFactoryPluginInterface {
+
+  /**
+   * Archive state.
+   */
+  const ARCHIVE_STATE = 'archived';
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function finished($success, array $results, array $operations): ?RedirectResponse {
+    return NULL;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function access($object, ?AccountInterface $account = NULL, $return_as_object = FALSE) {
+    // The access is limited at the view level.
+    return $return_as_object ? AccessResult::allowed() : TRUE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function executeMultiple(array $objects): void {
+    $messages = [];
+
+    /** @var \Drupal\node\NodeInterface $entity */
+    foreach ($objects as $entity) {
+      try {
+        $this->canBeExecuted($entity);
+      }
+      catch (ActionException $e) {
+        $messages[] = $this->t('@entity can not not be processed: @error',
+          [
+            '@entity' => $entity->getTitle(),
+            '@error' => $e->getMessage(),
+          ]
+        );
+      }
+    }
+
+    if (!empty($messages)) {
+      $list = [
+        '#theme' => 'item_list',
+        '#items' => $messages,
+      ];
+      $this->messenger()
+        ->addMessage($this->renderer->render($list), MessengerInterface::TYPE_ERROR);
+      return;
+    }
+
+    foreach ($objects as $entity) {
+      $this->execute($entity);
+    }
+
+    $this->messenger()
+      ->addMessage($this->t('Proceeded updates to @count entities', ['@count' => count($objects)]));
+  }
+
+  /**
+   * Check if action can be executed on the entity.
+   *
+   * @param \Drupal\node\NodeInterface $node
+   *   Node entity.
+   *
+   * @throws \Drupal\joinup_group_content_management\Exception\ActionException
+   */
+  abstract protected function canBeExecuted(NodeInterface $node): void;
+
+}
diff --git a/web/modules/custom/joinup_group_content_management/src/Plugin/Action/UnarchiveAction.php b/web/modules/custom/joinup_group_content_management/src/Plugin/Action/UnarchiveAction.php
new file mode 100644
index 0000000000000000000000000000000000000000..db8f5db28bef6cca42959d3f9f7f13e823b133ea
--- /dev/null
+++ b/web/modules/custom/joinup_group_content_management/src/Plugin/Action/UnarchiveAction.php
@@ -0,0 +1,146 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\joinup_group_content_management\Plugin\Action;
+
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Entity\RevisionableInterface;
+use Drupal\Core\Render\RendererInterface;
+use Drupal\joinup_group_content_management\Exception\ActionException;
+use Drupal\joinup_workflow\EntityWorkflowStateInterface;
+use Drupal\joinup_workflow\WorkflowHelperInterface;
+use Drupal\node\NodeInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Provides a VBO action that unarchive content.
+ *
+ * @Action(
+ *   id = "joinup_unarchive",
+ *   label = @Translation("Unarchive content"),
+ *   type = "node"
+ * )
+ */
+class UnarchiveAction extends StateActionBase {
+
+  /**
+   * Constructs object.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $pluginId
+   *   The plugin_id for the plugin instance.
+   * @param mixed $pluginDefinition
+   *   The plugin implementation definition.
+   * @param \Drupal\Core\Render\RendererInterface $renderer
+   *   The renderer service.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
+   *   The entity type manager service.
+   * @param \Drupal\joinup_workflow\WorkflowHelperInterface $workflowHelper
+   *   Workflow helper.
+   */
+  public function __construct(array $configuration, $pluginId, $pluginDefinition, protected RendererInterface $renderer, protected EntityTypeManagerInterface $entityTypeManager, protected WorkflowHelperInterface $workflowHelper) {
+    parent::__construct($configuration, $pluginId, $pluginDefinition);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $pluginId, $pluginDefinition): self {
+    return new static(
+      $configuration,
+      $pluginId,
+      $pluginDefinition,
+      $container->get('renderer'),
+      $container->get('entity_type.manager'),
+      $container->get('joinup_workflow.workflow_helper')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function canBeExecuted(NodeInterface $node): void {
+    if (!$node instanceof EntityWorkflowStateInterface) {
+      throw new ActionException('This content does not support workflow.');
+    }
+
+    $actual = $node->getWorkflowState();
+    if ($actual != self::ARCHIVE_STATE) {
+      throw new ActionException('Entity must be ' . self::ARCHIVE_STATE);
+    }
+
+    $previous = $this->getPreviousRevision($node);
+    if (!$previous) {
+      throw new ActionException('Previous revision has not been found');
+    }
+  }
+
+  /**
+   * Gets previous revision.
+   *
+   * @param \Drupal\node\NodeInterface $node
+   *   Node entity.
+   *
+   * @return \Drupal\Core\Entity\RevisionableInterface|null
+   *   Revisionable entity.
+   */
+  protected function getPreviousRevision(NodeInterface $node): ?RevisionableInterface {
+    $previousRevisionId = $this->getPreviousRevisionId($node);
+    if (!$previousRevisionId) {
+      return NULL;
+    }
+
+    /** @var \Drupal\node\NodeStorageInterface $storage */
+    $storage = $this->entityTypeManager->getStorage($node->getEntityTypeId());
+
+    return $storage->loadRevision($previousRevisionId);
+  }
+
+  /**
+   * Get previous revision.
+   *
+   * @param \Drupal\node\NodeInterface $node
+   *   Node entity.
+   *
+   * @return int|null
+   *   Previous revision.
+   */
+  protected function getPreviousRevisionId(NodeInterface $node): ?int {
+    $entityTypeId = $node->getEntityTypeId();
+
+    if (!$storage = $this->entityTypeManager->getStorage($entityTypeId)) {
+      return NULL;
+    }
+
+    $revisionIds = $storage->getQuery()
+      ->accessCheck(FALSE)
+      ->allRevisions()
+      ->condition($this->entityTypeManager->getDefinition($entityTypeId)
+        ->getKey('id'), $node->id())
+      ->sort($this->entityTypeManager->getDefinition($entityTypeId)
+        ->getKey('revision'), 'DESC')
+      ->range(1, 1)
+      ->execute();
+    if ($revisionIds) {
+      return array_keys($revisionIds)[0];
+    }
+
+    return NULL;
+  }
+
+  /**
+   * {@inheritdoc}
+   *
+   * @throws \Drupal\Core\Entity\EntityStorageException
+   */
+  public function execute(?NodeInterface $node = NULL): void {
+    if (!$node instanceof EntityWorkflowStateInterface) {
+      return;
+    }
+
+    $this->workflowHelper->unarchiveEntity($node);
+  }
+
+}
diff --git a/web/modules/custom/joinup_news/src/Entity/News.php b/web/modules/custom/joinup_news/src/Entity/News.php
index 6d39e8d51edebe6fdcc6e60018932fabc4daf66c..65d0150383e9cf42aa4a3db062bc9c73c7af1f16 100644
--- a/web/modules/custom/joinup_news/src/Entity/News.php
+++ b/web/modules/custom/joinup_news/src/Entity/News.php
@@ -6,6 +6,7 @@
 
 use Drupal\joinup_bundle_class\LogoTrait;
 use Drupal\joinup_community_content\Entity\CommunityContentBase;
+use Drupal\joinup_workflow\ArchivableEntityTrait;
 
 /**
  * Entity subclass for the 'news' bundle.
@@ -13,6 +14,7 @@
 class News extends CommunityContentBase implements NewsInterface {
 
   use LogoTrait;
+  use ArchivableEntityTrait;
 
   /**
    * {@inheritdoc}
diff --git a/web/modules/custom/joinup_news/src/Entity/NewsInterface.php b/web/modules/custom/joinup_news/src/Entity/NewsInterface.php
index 28c8f048dbeea25ceb705dcdaa6029443294311a..94b7e0482961b1257807460ff429034c0c64018d 100644
--- a/web/modules/custom/joinup_news/src/Entity/NewsInterface.php
+++ b/web/modules/custom/joinup_news/src/Entity/NewsInterface.php
@@ -6,10 +6,11 @@
 
 use Drupal\joinup_bundle_class\LogoInterface;
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 
 /**
  * Interface for news entities in Joinup.
  */
-interface NewsInterface extends CommunityContentInterface, LogoInterface {
+interface NewsInterface extends CommunityContentInterface, LogoInterface, ArchivableEntityInterface {
 
 }
diff --git a/web/modules/custom/joinup_search/joinup_search.module b/web/modules/custom/joinup_search/joinup_search.module
index dc1a71153c74a12808f64266bac89458aa428f05..b28acaa1ed583dc10c40d372247cedc36c72526c 100644
--- a/web/modules/custom/joinup_search/joinup_search.module
+++ b/web/modules/custom/joinup_search/joinup_search.module
@@ -151,13 +151,22 @@ function joinup_search_search_api_index_items_alter(IndexInterface $index, array
  * first "s" stands for 'string' and the second one stands for single value.
  */
 function joinup_search_search_api_solr_documents_alter(&$documents, IndexInterface $index, array $items) {
-  /** @var \Solarium\QueryType\Update\Query\Document\Document[] $documents */
+  /** @var \Solarium\QueryType\Update\Query\Document[] $documents */
   foreach ($documents as $document) {
     if (empty($document->getFields()['bs_sticky'])) {
       $document->setField('bs_sticky', FALSE);
     }
-    if (empty($document->getFields()['ss_state']) && $index->id() === 'unpublished') {
-      $document->setField('ss_state', 'unpublished');
+    if (empty($document->getFields()['sm_entity_status']) && $index->id() === 'unpublished') {
+      $document->setField('sm_entity_status', 'unpublished');
+    }
+    if (empty($document->getFields()['sm_entity_status']) && $index->id() === 'published') {
+      // Because of the way the search API works, when we
+      // perform a search, it only returns items *with* a value for the
+      // conditions. Thus, when we search for an item that is not archived, if
+      // items do not have a value for the state field, they will not be
+      // included in the results. This is why we set the value to a special
+      // value that will never be used for the state field.
+      $document->setField('sm_entity_status', 'published');
     }
   }
 }
@@ -188,11 +197,13 @@ function joinup_search_search_api_solr_query_alter(SolariumQueryInterface $solar
     return;
   }
 
+  // Note: the Solarium query might affect the facets shown in the page. Refrain
+  // from using these functions for configurable dynamic queries.
   _joinup_search_apply_global_search_api_solr_settings($solarium_query, $query);
 }
 
 /**
- * Apply the global settings to all solarium queries on Joinup.
+ * Apply the global settings to all search_api_field solarium queries on Joinup.
  *
  * @param \Solarium\Core\Query\QueryInterface $solarium_query
  *   The solarium query.
@@ -210,7 +221,7 @@ function _joinup_search_apply_global_search_api_solr_settings(SolariumQueryInter
   // @see https://citnet.tech.ec.europa.eu/CITnet/jira/browse/ISAICP-4907
   $solarium_query->addParam('defType', 'edismax');
 
-  $value = $item->value;
+  $value = $item->getValue()['value'];
   if (empty($value['query_builder']['filters'])) {
     return;
   }
@@ -369,3 +380,45 @@ function joinup_search_views_pre_render(ViewExecutable $view): void {
     }
   }
 }
+
+/**
+ * Implements hook_entity_prepare_view().
+ */
+function joinup_search_entity_prepare_view(string $entity_type_id, array $entities, array $displays, string $view_mode): void {
+  if ($entity_type_id !== 'rdf_entity') {
+    return;
+  }
+
+  $entity_fields = [
+    'collection' => [
+      'field' => 'field_collection_content',
+      'facet' => 'field_collection_content_status',
+    ],
+    'solution' => [
+      'field' => 'field_is_content',
+      'facet' => 'field_is_content_status',
+    ],
+  ];
+
+  foreach ($entities as $entity) {
+    if (!isset($entity_fields[$entity->bundle()])) {
+      continue;
+    }
+
+    $field = $entity_fields[$entity->bundle()]['field'];
+    $facet = $entity_fields[$entity->bundle()]['facet'];
+    if (!isset($entity->{$field}) || $entity->{$field}->value['enabled'] === 0 || !isset($entity->{$field}->value['fields'][$facet])) {
+      continue;
+    }
+
+    // Because we are forcing the facet to show the values even when they are
+    // not narrowing the results, and we are altering the query as well, we need
+    // to also dynamically hide the facet when the 'show_archived' option is set
+    // to anything else than 'all' - because it will not hide automatically.
+    if ($entity->{$field}->value['show_archived'] !== 'all') {
+      $value = $entity->{$field}->getValue();
+      $value[0]['value']['fields'][$facet]['region'] = 'hidden';
+      $entity->{$field}->setValue($value);
+    }
+  }
+}
diff --git a/web/modules/custom/joinup_search/joinup_search.services.yml b/web/modules/custom/joinup_search/joinup_search.services.yml
index 61f5fe0b2e313adced12f0c135110b0a25deecf9..bf9f2f72cce1f9b539a4aa562f1d9d086c27121d 100644
--- a/web/modules/custom/joinup_search/joinup_search.services.yml
+++ b/web/modules/custom/joinup_search/joinup_search.services.yml
@@ -12,3 +12,8 @@ services:
     arguments: ['@facets.utility.date_handler']
     tags:
       - { name: event_subscriber }
+  joinup_search.search_api_status_subscriber:
+    class: Drupal\joinup_search\EventSubscriber\SearchApiStatusSubscriber
+    arguments: ['@facets.manager']
+    tags:
+      - { name: event_subscriber }
diff --git a/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiFieldTagSubscriber.php b/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiFieldTagSubscriber.php
index 4be55d8dee8e77bf7e58414b19272c537d55e0ba..6ee04c3906f4291af659c45fe7b0697e1e71f564 100644
--- a/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiFieldTagSubscriber.php
+++ b/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiFieldTagSubscriber.php
@@ -21,20 +21,21 @@ class SearchApiFieldTagSubscriber implements EventSubscriberInterface {
    */
   public static function getSubscribedEvents(): array {
     return [
-      SearchApiEvents::QUERY_PRE_EXECUTE . '.search_api_field' =>
-        ['queryAlter', -100],
+      SearchApiEvents::QUERY_PRE_EXECUTE . '.search_api_field' => [
+        ['communityContentParagraphQueryAlter', -100],
+      ],
     ];
   }
 
   /**
-   * Reacts to the query alter event.
+   * Reacts to the query alter event for listings in community content.
    *
    * @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
    *   The query alter event.
    *
    * @throws \Drupal\joinup_group\Exception\MissingGroupException
    */
-  public function queryAlter(QueryPreExecuteEvent $event): void {
+  public function communityContentParagraphQueryAlter(QueryPreExecuteEvent $event): void {
     $query = $event->getQuery();
     $entity = $query->getOption('search_api_field entity');
     $parent_entity = $entity;
diff --git a/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiStatusSubscriber.php b/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiStatusSubscriber.php
new file mode 100644
index 0000000000000000000000000000000000000000..b42d37fb61d9280d7c89194884faa857ded5f6dc
--- /dev/null
+++ b/web/modules/custom/joinup_search/src/EventSubscriber/SearchApiStatusSubscriber.php
@@ -0,0 +1,238 @@
+<?php
+
+declare(strict_types = 1);
+
+namespace Drupal\joinup_search\EventSubscriber;
+
+use Drupal\facets\FacetInterface;
+use Drupal\facets\FacetManager\DefaultFacetManager;
+use Drupal\paragraphs\ParagraphInterface;
+use Drupal\search_api\Event\QueryPreExecuteEvent;
+use Drupal\search_api\Event\SearchApiEvents;
+use Drupal\search_api\Query\ConditionGroupInterface;
+use Drupal\search_api\Query\QueryInterface;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Alter a search query when status 'archived' is enabled.
+ */
+class SearchApiStatusSubscriber implements EventSubscriberInterface {
+
+  /**
+   * Constructs a new SearchApiStatusSubscriber object.
+   *
+   * @param \Drupal\facets\FacetManager\DefaultFacetManager $facetManager
+   *   The facet manager.
+   */
+  public function __construct(protected DefaultFacetManager $facetManager) {}
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents(): array {
+    return [
+      SearchApiEvents::QUERY_PRE_EXECUTE => [
+        ['searchStatusQueryAlter', -100],
+        ['searchAutocompleteQueryAlter', -100],
+        ['groupContentListingQueryAlter', -10],
+      ],
+      SearchApiEvents::QUERY_PRE_EXECUTE . '.search_api_field' => [
+        ['paragraphContentListingQueryAlter'],
+      ],
+    ];
+  }
+
+  /**
+   * Reacts to the query alter event.
+   *
+   * @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
+   *   The query alter event.
+   */
+  public function searchStatusQueryAlter(QueryPreExecuteEvent $event): void {
+    $query = $event->getQuery();
+
+    // The facet below is only available on the search page.
+    if ($query->getSearchId() !== 'views_page:search__page_1') {
+      return;
+    }
+
+    $hasStatus = FALSE;
+    $conditions = &$query->getConditionGroup()->getConditions();
+    foreach ($conditions as $key => $condition) {
+      if (($condition instanceof ConditionGroupInterface) && $condition->hasTag('facet:entity_status')) {
+        unset($conditions[$key]);
+        $hasStatus = TRUE;
+      }
+    }
+
+    if ($hasStatus) {
+      $query->addCondition('entity_status', 'archived');
+    }
+    else {
+      $query->addCondition('entity_status', 'archived', '<>');
+    }
+  }
+
+  /**
+   * Reacts to the query alter event for group content listings.
+   *
+   * @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
+   *   The query alter event.
+   */
+  public function groupContentListingQueryAlter(QueryPreExecuteEvent $event): void {
+    $this->showArchivedStatusSetupQueryAlter($event);
+
+    $query = $event->getQuery();
+    if (!($query->getSearchId() !== 'paragraph.content_listing.content_listing')) {
+      return;
+    }
+
+    $this->getConditionGroupInterfaces($query);
+  }
+
+  /**
+   * Reacts to the query alter event for paragraph content listings.
+   *
+   * @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
+   *   The query alter event.
+   */
+  public function paragraphContentListingQueryAlter(QueryPreExecuteEvent $event): void {
+    $query = $event->getQuery();
+    $entity = $query->getOption('search_api_field entity');
+    if (!($entity instanceof ParagraphInterface)) {
+      return;
+    }
+
+    $this->getConditionGroupInterfaces($query);
+  }
+
+  /**
+   * Add archive condition in query.
+   *
+   * @param \Drupal\search_api\Query\QueryInterface $query
+   *   The query.
+   */
+  protected function getConditionGroupInterfaces(QueryInterface $query): void {
+    // Check the `show_archived` flag on the search API field settings in order
+    // to not perform any actions if teh flag is set to either 'archived' or
+    // 'unarchived'. The facet is only available when both archived and
+    // unarchived content is available in order to give the user the ability to
+    // further filter the results.
+    // @see \_joinup_search_apply_global_search_api_solr_settings
+    if (empty($query->getOption('search_api_field item'))) {
+      return;
+    }
+
+    $value = $query->getOption('search_api_field item')->getValue();
+    if (!isset($value['value']['show_archived']) || $value['value']['show_archived'] !== 'all') {
+      return;
+    }
+
+    if (empty($query->getOption('status_facet_name'))) {
+      // That means that the status switch is not set in the page, so ignore
+      // its effect.
+      return;
+    }
+
+    if (!$query->getOption('show_archived')) {
+      throw new \Exception('The show_archived option should be set. ::showArchivedStatusSetupQueryAlter should run first.');
+    }
+
+    $hasStatus = FALSE;
+    $conditions = &$query->getConditionGroup()->getConditions();
+    foreach ($conditions as $condition) {
+      if (($condition instanceof ConditionGroupInterface) && $condition->hasTag('facet:entity_status')) {
+        // If the facet is active, it appears in the conditions due to its only
+        // state.
+        $hasStatus = TRUE;
+      }
+    }
+
+    if (!$hasStatus && !$query->getOption('search_api_field archived')) {
+      $query->addCondition('entity_status', 'archived', '<>');
+    }
+  }
+
+  /**
+   * Sets up the show_archived flag and its related facets as options.
+   *
+   * @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
+   *   The query alter event.
+   */
+  protected function showArchivedStatusSetupQueryAlter(QueryPreExecuteEvent $event): void {
+    $query = $event->getQuery();
+    /** @var \Drupal\Core\Field\FieldItemInterface $item */
+    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
+    if (!($item = $query->getOption('search_api_field item')) || !($entity = $query->getOption('search_api_field entity'))) {
+      return;
+    }
+
+    $value = $item->getValue()['value'];
+    $showArchived = $value['show_archived'] ?? 'all';
+    $query->setOption('show_archived', $showArchived);
+    if ($archived = $query->getOption('search_api_field archived')) {
+      $query->addCondition('entity_status', 'archived');
+    }
+    if ($showArchived !== 'all' && !$archived) {
+      $query->addCondition('entity_status', 'archived', $showArchived === 'archived' ? '=' : '<>');
+    }
+    else {
+      $facets = $this->getEntityStatusFacets($query);
+      if (empty($facets)) {
+        return;
+      }
+
+      if (count($facets) > 1) {
+        throw new \Exception('There should be only one facet for the search_api_field facet source.');
+      }
+      $facet = reset($facets);
+      $value = $item->getValue()['value']['fields'];
+      if (isset($value[$facet->id()]) && $value[$facet->id()]['region'] !== 'hidden') {
+        $query->setOption('status_facet_name', $facet->id());
+      }
+    }
+  }
+
+  /**
+   * Returns facets for the status field given a search_api_field query.
+   *
+   * @param \Drupal\search_api\Query\QueryInterface $query
+   *   The search_api_field query.
+   *
+   * @return \Drupal\facets\FacetInterface[]
+   *   The facets.
+   */
+  protected function getEntityStatusFacets(QueryInterface $query): array {
+    $entity = $query->getOption('search_api_field entity');
+    $item = $query->getOption('search_api_field item');
+    $facetSourceId = 'search_api_field:' . $entity->getEntityTypeId() . '.' . $entity->bundle() . '.' . $item->getParent()->getName();
+
+    $facets = $this->facetManager->getFacetsByFacetSourceId($facetSourceId);
+    return array_filter($facets, function (FacetInterface $facet) {
+      return $facet->getFieldIdentifier() === 'entity_status';
+    });
+  }
+
+  /**
+   * Reacts to the autocomplete alter event.
+   *
+   * @param \Drupal\search_api\Event\QueryPreExecuteEvent $event
+   *   The query alter event.
+   */
+  public function searchAutocompleteQueryAlter(QueryPreExecuteEvent $event): void {
+    $query = $event->getQuery();
+
+    if ($query->getSearchId() !== 'search_api_autocomplete:search') {
+      return;
+    }
+
+    $conditions = &$query->getConditionGroup()->getConditions();
+    foreach ($conditions as $key => $condition) {
+      if (($condition instanceof ConditionGroupInterface) && $condition->hasTag('facet:entity_status')) {
+        unset($conditions[$key]);
+      }
+    }
+    $query->addCondition('entity_status', 'archived', '<>');
+  }
+
+}
diff --git a/web/modules/custom/joinup_workflow/joinup_workflow.services.yml b/web/modules/custom/joinup_workflow/joinup_workflow.services.yml
index b83ec49d1e2b8ee554c918e0d317ee8f42d29b50..97d05700687a9b04a3cd52c85d0edc1a982fb6a5 100644
--- a/web/modules/custom/joinup_workflow/joinup_workflow.services.yml
+++ b/web/modules/custom/joinup_workflow/joinup_workflow.services.yml
@@ -1,4 +1,4 @@
 services:
   joinup_workflow.workflow_helper:
     class: Drupal\joinup_workflow\WorkflowHelper
-    arguments: ['@current_user', '@account_switcher', '@entity_field.manager', '@og.membership_manager', '@workflow_state_permission.workflow_state_permission']
+    arguments: ['@current_user', '@account_switcher', '@entity_field.manager', '@og.membership_manager', '@workflow_state_permission.workflow_state_permission', '@entity_type.manager', '@datetime.time']
diff --git a/web/modules/custom/joinup_workflow/src/EntityWorkflowStateTrait.php b/web/modules/custom/joinup_workflow/src/EntityWorkflowStateTrait.php
index 50ada0450cbb43ae67b5a8a2f17af3278ec2ebbb..641af11341e814cd6fd626b18ed35e69640187b4 100644
--- a/web/modules/custom/joinup_workflow/src/EntityWorkflowStateTrait.php
+++ b/web/modules/custom/joinup_workflow/src/EntityWorkflowStateTrait.php
@@ -79,7 +79,7 @@ public function isTargetWorkflowStateAllowed(string $to_state, ?string $from_sta
     // by a transition. If no transition exists then the update is not allowed.
     if ($from_state !== $to_state) {
       $allowed_transitions = array_filter($this->getWorkflow()->getAllowedTransitions($from_state, $this), function (WorkflowTransition $transition) use ($to_state) {
-        return $transition->getToState() === $to_state;
+        return $transition->getToState()->getId() === $to_state;
       });
       return !empty($allowed_transitions);
     }
diff --git a/web/modules/custom/joinup_workflow/src/Plugin/Field/FieldWidget/StateMachineButtons.php b/web/modules/custom/joinup_workflow/src/Plugin/Field/FieldWidget/StateMachineButtons.php
index dbcb17c79812d130a9a7cc4f6a8a6d2573ecf8ca..aa3fdb7e6cacfccf38ab003cc91f501e070290c1 100644
--- a/web/modules/custom/joinup_workflow/src/Plugin/Field/FieldWidget/StateMachineButtons.php
+++ b/web/modules/custom/joinup_workflow/src/Plugin/Field/FieldWidget/StateMachineButtons.php
@@ -212,6 +212,18 @@ public static function processActions($element, FormStateInterface $form_state,
       unset($form['actions'][$key]['#dropbutton']);
     }
 
+    // Override the unarchive button to simply revert the entity to the previous
+    // state.
+    if (isset($form['actions']['state_machine___new__'])) {
+      $form['actions']['state_machine___new__'] = [
+        '#type' => 'submit',
+        '#value' => t('Unarchive'),
+        '#weight' => -10,
+        // Add a submit-handler to unarchive the entity.
+        '#submit' => [[static::class, 'unarchiveEntity']],
+      ];
+    }
+
     return $element;
   }
 
@@ -292,4 +304,25 @@ protected function getDefaultSameStateUpdateLabel(string $state): TranslatableMa
     }
   }
 
+  /**
+   * Form API submit callback: unarchives the entity.
+   *
+   * @see \Drupal\content_moderation\Plugin\Field\FieldWidget\ModerationStateWidget::unarchiveEntity()
+   */
+  public static function unarchiveEntity(array $form, FormStateInterface $form_state): void {
+    $entity = $form_state->getFormObject()->getEntity();
+    $entity_type = $entity->getEntityType();
+    $previous_revision = \Drupal::getContainer()->get('joinup_workflow.workflow_helper')->unarchiveEntity($entity);
+
+    // Redirect to the canonical URL of the previous revision.
+    $form_state->setRedirectUrl($previous_revision->toUrl('canonical'));
+
+    // Set a message to inform the user that the entity has been unarchived.
+    \Drupal::messenger()
+      ->addMessage(t('@bundle "%label" has been unarchived.', [
+        '@bundle' => ucfirst($entity->{$entity_type->getKey('bundle')}->entity->getSingularLabel()),
+        '%label' => $entity->label(),
+      ]));
+  }
+
 }
diff --git a/web/modules/custom/joinup_workflow/src/WorkflowHelper.php b/web/modules/custom/joinup_workflow/src/WorkflowHelper.php
index cfdefef6a649046ee380493a39727c42fce03cb6..1cf4a1faf68b29ac28b26fd834d05c9c54ab5f01 100644
--- a/web/modules/custom/joinup_workflow/src/WorkflowHelper.php
+++ b/web/modules/custom/joinup_workflow/src/WorkflowHelper.php
@@ -4,14 +4,17 @@
 
 namespace Drupal\joinup_workflow;
 
+use Drupal\Component\Datetime\TimeInterface;
 use Drupal\Component\Plugin\PluginInspectionInterface;
 use Drupal\Core\Entity\EntityFieldManagerInterface;
 use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\Session\AccountProxyInterface;
 use Drupal\Core\Session\AccountSwitcherInterface;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\og\MembershipManagerInterface;
 use Drupal\state_machine\Plugin\Workflow\WorkflowInterface;
 use Drupal\state_machine\Plugin\Workflow\WorkflowTransition;
@@ -22,40 +25,7 @@
  */
 class WorkflowHelper implements WorkflowHelperInterface {
 
-  /**
-   * The account switcher service.
-   *
-   * @var \Drupal\Core\Session\AccountSwitcherInterface
-   */
-  protected $accountSwitcher;
-
-  /**
-   * The current user proxy.
-   *
-   * @var \Drupal\Core\Session\AccountProxyInterface
-   */
-  protected $currentUser;
-
-  /**
-   * The entity field manager.
-   *
-   * @var \Drupal\Core\Entity\EntityFieldManagerInterface
-   */
-  protected $entityFieldManager;
-
-  /**
-   * The membership manager service.
-   *
-   * @var \Drupal\og\MembershipManagerInterface
-   */
-  protected $membershipManager;
-
-  /**
-   * The workflow state permission service.
-   *
-   * @var \Drupal\workflow_state_permission\WorkflowStatePermissionInterface
-   */
-  protected $workflowStatePermission;
+  use StringTranslationTrait;
 
   /**
    * Constructs a WorkflowHelper.
@@ -70,26 +40,32 @@ class WorkflowHelper implements WorkflowHelperInterface {
    *   The membership manager service.
    * @param \Drupal\workflow_state_permission\WorkflowStatePermissionInterface $workflowStatePermission
    *   The workflow state permission service.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
+   *   The entity type manager.
+   * @param \Drupal\Component\Datetime\TimeInterface $time
+   *   The time service.
    */
-  public function __construct(AccountProxyInterface $currentUser, AccountSwitcherInterface $accountSwitcher, EntityFieldManagerInterface $entityFieldManager, MembershipManagerInterface $membershipManager, WorkflowStatePermissionInterface $workflowStatePermission) {
-    $this->accountSwitcher = $accountSwitcher;
-    $this->currentUser = $currentUser;
-    $this->entityFieldManager = $entityFieldManager;
-    $this->membershipManager = $membershipManager;
-    $this->workflowStatePermission = $workflowStatePermission;
-  }
+  public function __construct(
+    protected AccountProxyInterface $currentUser,
+    protected AccountSwitcherInterface $accountSwitcher,
+    protected EntityFieldManagerInterface $entityFieldManager,
+    protected MembershipManagerInterface $membershipManager,
+    protected WorkflowStatePermissionInterface $workflowStatePermission,
+    protected EntityTypeManagerInterface $entityTypeManager,
+    protected TimeInterface $time
+  ) {}
 
   /**
    * {@inheritdoc}
    */
   public function getAvailableStatesLabels(FieldableEntityInterface $entity, ?AccountInterface $account = NULL): array {
-    $allowed_transitions = $this->getAvailableTransitions($entity, $account);
+    $allowedTransitions = $this->getAvailableTransitions($entity, $account);
 
-    $allowed_states = array_map(function (WorkflowTransition $transition) {
+    $allowedStates = array_map(function (WorkflowTransition $transition) {
       return (string) $transition->getToState()->getLabel();
-    }, $allowed_transitions);
+    }, $allowedTransitions);
 
-    return $allowed_states;
+    return $allowedStates;
   }
 
   /**
@@ -97,19 +73,19 @@ public function getAvailableStatesLabels(FieldableEntityInterface $entity, ?Acco
    */
   public function getAvailableTargetStates(FieldableEntityInterface $entity, ?AccountInterface $account = NULL): array {
     /** @var \Drupal\joinup_workflow\EntityWorkflowStateInterface $entity */
-    $allowed_transitions = $this->getAvailableTransitions($entity, $account);
+    $allowedTransitions = $this->getAvailableTransitions($entity, $account);
 
-    $allowed_states = array_map(function (WorkflowTransition $transition) {
+    $allowedStates = array_map(function (WorkflowTransition $transition) {
       return (string) $transition->getToState()->getId();
-    }, $allowed_transitions);
+    }, $allowedTransitions);
 
-    $current_state = $entity->getWorkflowState();
+    $currentState = $entity->getWorkflowState();
     $workflow = $entity->getWorkflow();
-    if ($this->workflowStatePermission->isStateUpdatePermitted($account, $entity, $workflow, $current_state, $current_state)) {
-      $allowed_states[$current_state] = $current_state;
+    if ($this->workflowStatePermission->isStateUpdatePermitted($account, $entity, $workflow, $currentState, $currentState)) {
+      $allowedStates[$currentState] = $currentState;
     }
 
-    return $allowed_states;
+    return $allowedStates;
   }
 
   /**
@@ -123,15 +99,15 @@ public function getAvailableTransitions(FieldableEntityInterface $entity, ?Accou
     // field method, to avoid these account switch trickeries.
     // @todo change this once the upstream issue is fixed.
     // @see https://www.drupal.org/node/2776969
-    $account_switched = FALSE;
+    $accountSwitched = FALSE;
     if ($account !== NULL && $account->id() !== $this->currentUser->id()) {
       $this->accountSwitcher->switchTo($account);
-      $account_switched = TRUE;
+      $accountSwitched = TRUE;
     }
 
     $transitions = $entity->getWorkflowStateField()->getTransitions();
 
-    if ($account_switched) {
+    if ($accountSwitched) {
       $this->accountSwitcher->switchBack();
     }
 
@@ -141,9 +117,9 @@ public function getAvailableTransitions(FieldableEntityInterface $entity, ?Accou
   /**
    * {@inheritdoc}
    */
-  public function getEntityStateFieldDefinition(string $entity_type_id, string $bundle_id): ?FieldDefinitionInterface {
-    if ($field_definitions = $this->getEntityStateFieldDefinitions($entity_type_id, $bundle_id)) {
-      return reset($field_definitions);
+  public function getEntityStateFieldDefinition(string $entityTypeId, string $bundle): ?FieldDefinitionInterface {
+    if ($fieldDefinitions = $this->getEntityStateFieldDefinitions($entityTypeId, $bundle)) {
+      return reset($fieldDefinitions);
     }
 
     return NULL;
@@ -152,8 +128,8 @@ public function getEntityStateFieldDefinition(string $entity_type_id, string $bu
   /**
    * {@inheritdoc}
    */
-  public function getEntityStateFieldDefinitions(string $entity_type_id, string $bundle_id): array {
-    return array_filter($this->entityFieldManager->getFieldDefinitions($entity_type_id, $bundle_id), function (FieldDefinitionInterface $field_definition) {
+  public function getEntityStateFieldDefinitions(string $entityTypeId, string $bundle): array {
+    return array_filter($this->entityFieldManager->getFieldDefinitions($entityTypeId, $bundle), function (FieldDefinitionInterface $field_definition) {
       return $field_definition->getType() == 'state';
     });
   }
@@ -170,7 +146,7 @@ public function getAvailableTransitionsLabels(FieldableEntityInterface $entity,
   /**
    * {@inheritdoc}
    */
-  public function isWorkflowStatePublished(string $state_id, WorkflowInterface $workflow): bool {
+  public function isWorkflowStatePublished(string $stateId, WorkflowInterface $workflow): bool {
     // We rely on being able to inspect the plugin definition. Throw an error if
     // this is not the case.
     if (!$workflow instanceof PluginInspectionInterface) {
@@ -180,8 +156,8 @@ public function isWorkflowStatePublished(string $state_id, WorkflowInterface $wo
 
     // Retrieve the raw plugin definition, as all additional plugin settings
     // are stored there.
-    $raw_workflow_definition = $workflow->getPluginDefinition();
-    return !empty($raw_workflow_definition['states'][$state_id]['published']);
+    $rawWorkflowDefinition = $workflow->getPluginDefinition();
+    return !empty($rawWorkflowDefinition['states'][$stateId]['published']);
   }
 
   /**
@@ -247,13 +223,52 @@ protected function getEntityParent(EntityInterface $entity) {
    * {@inheritdoc}
    */
   public function hasOgPermission(string $permission, EntityInterface $group, AccountInterface $user): bool {
-    $actual_permissions = [];
+    $actualPermissions = [];
     if ($membership = $this->membershipManager->getMembership($group, $user->id())) {
       foreach ($membership->getRoles() as $role) {
-        $actual_permissions = array_merge($actual_permissions, $role->getPermissions());
+        $actualPermissions = array_merge($actualPermissions, $role->getPermissions());
       }
     }
-    return in_array($permission, array_unique($actual_permissions));
+    return in_array($permission, array_unique($actualPermissions));
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function unarchiveEntity(EntityInterface $entity): EntityInterface {
+    // Revert to the previous revision of the node.
+    $entityType = $entity->getEntityType();
+    $entityStorage = $this->entityTypeManager->getStorage($entityType->id());
+
+    // Load the previous revision IDs.
+    $revisionIds = $entityStorage->getQuery()
+      ->accessCheck(FALSE)
+      ->allRevisions()
+      ->condition($entityType->getKey('id'), $entity->id())
+      ->sort($entity->getEntityType()->getKey('revision'), 'DESC')
+      ->range(1, 1)
+      ->execute();
+    $revisionIds = array_keys($revisionIds);
+
+    // Load the previous revision.
+    $previousRevision = $entityStorage->loadRevision(reset($revisionIds));
+    $previousRevision->setNewRevision(TRUE);
+    $previousRevision->isDefaultRevision(TRUE);
+    $previousRevision->setRevisionLogMessage($this->t('Unarchived by @user', [
+      '@user' => $this->currentUser->getAccountName(),
+    ]));
+    $previousRevision->setRevisionCreationTime($this->time->getRequestTime());
+    $previousRevision->setRevisionUserId($this->currentUser->id());
+    $previousRevision->save();
+
+    return $previousRevision;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function accountCanNotUnarchive(EntityInterface $entity, AccountInterface $account): bool {
+    return $entity->getWorkflowState() === 'archived' && !$account->hasPermission('unarchived community content');
   }
 
 }
diff --git a/web/modules/custom/joinup_workflow/src/WorkflowHelperInterface.php b/web/modules/custom/joinup_workflow/src/WorkflowHelperInterface.php
index 23e5a888e0317b972a4c6c43918c5b2f89ad08cb..31bad9fd084954a4f9e2481b2c22605227cb17df 100644
--- a/web/modules/custom/joinup_workflow/src/WorkflowHelperInterface.php
+++ b/web/modules/custom/joinup_workflow/src/WorkflowHelperInterface.php
@@ -68,15 +68,15 @@ public function getAvailableTransitions(FieldableEntityInterface $entity, ?Accou
   /**
    * Returns the state field definitions of an entity.
    *
-   * @param string $entity_type_id
+   * @param string $entityTypeId
    *   The entity type ID for which to return the state field definitions.
-   * @param string $bundle_id
+   * @param string $bundle
    *   The bundle ID for which to return the state field definitions.
    *
    * @return \Drupal\Core\Field\FieldDefinitionInterface[]
    *   Returns an array of state field definitions.
    */
-  public function getEntityStateFieldDefinitions(string $entity_type_id, string $bundle_id): array;
+  public function getEntityStateFieldDefinitions(string $entityTypeId, string $bundle): array;
 
   /**
    * Returns the state field definition of an entity.
@@ -85,21 +85,21 @@ public function getEntityStateFieldDefinitions(string $entity_type_id, string $b
    * so this method returns the first available field definitions of the
    * entity's field definitions otherwise it returns NULL.
    *
-   * @param string $entity_type_id
+   * @param string $entityTypeId
    *   The entity type ID for which to return the state field definition.
-   * @param string $bundle_id
+   * @param string $bundle
    *   The bundle ID for which to return the state field definition.
    *
    * @return \Drupal\Core\Field\FieldDefinitionInterface|null
    *   Returns the state field definition of the entity or NULL if none is
    *   found.
    */
-  public function getEntityStateFieldDefinition(string $entity_type_id, string $bundle_id): ?FieldDefinitionInterface;
+  public function getEntityStateFieldDefinition(string $entityTypeId, string $bundle): ?FieldDefinitionInterface;
 
   /**
    * Checks if a state is set as published in a certain workflow.
    *
-   * @param string $state_id
+   * @param string $stateId
    *   The ID of the state to check.
    * @param \Drupal\state_machine\Plugin\Workflow\WorkflowInterface $workflow
    *   The workflow the state belongs to.
@@ -111,7 +111,7 @@ public function getEntityStateFieldDefinition(string $entity_type_id, string $bu
    *   Thrown when the workflow is not plugin based, because this is required to
    *   retrieve the publication state from the workflow states.
    */
-  public function isWorkflowStatePublished(string $state_id, WorkflowInterface $workflow): bool;
+  public function isWorkflowStatePublished(string $stateId, WorkflowInterface $workflow): bool;
 
   /**
    * Checks if the user has at least one role with the given OG permission.
@@ -167,4 +167,29 @@ public function userHasOwnAnyRoles(EntityInterface $entity, AccountInterface $ac
    */
   public function userHasRoles(EntityInterface $entity, AccountInterface $account, array $roles): bool;
 
+  /**
+   * Unarchives an entity.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The entity to unarchive.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface
+   *   The unarchived entity.
+   */
+  public function unarchiveEntity(EntityInterface $entity): EntityInterface;
+
+  /**
+   * Checks whether the user can not unarchive content.
+   *
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   The group content entity.
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   The user account.
+   *
+   * @return bool
+   *   True if the entity is archived
+   *    and user has not unarchived community content permission.
+   */
+  public function accountCanNotUnarchive(EntityInterface $entity, AccountInterface $account): bool;
+
 }
diff --git a/web/modules/custom/search_api_field/config/schema/search_api_field.schema.yml b/web/modules/custom/search_api_field/config/schema/search_api_field.schema.yml
index 1583c7bcf21290a169ba2132e0103f803858de05..907a8cb0512fd8db703a7e189eff8e0e306ff130 100644
--- a/web/modules/custom/search_api_field/config/schema/search_api_field.schema.yml
+++ b/web/modules/custom/search_api_field/config/schema/search_api_field.schema.yml
@@ -60,6 +60,9 @@ field.value.search_api_field:
         limit:
           type: integer
           label: 'Limit'
+        show_archived:
+          type: string
+          label: 'Show archived'
         query_builder:
           type: mapping
           label: 'Content filter'
diff --git a/web/modules/custom/search_api_field/search_api_field.module b/web/modules/custom/search_api_field/search_api_field.module
index 3f1b526679c2605d430c4238e5493cfde939e0c4..8da13ac3b75a94d0d2f2b14d39177587c94a26ea 100644
--- a/web/modules/custom/search_api_field/search_api_field.module
+++ b/web/modules/custom/search_api_field/search_api_field.module
@@ -87,6 +87,9 @@ function search_api_field_entity_view(array &$build, EntityInterface $entity, En
       continue;
     }
 
+    // Check number of archived items.
+    $archived_items = array_key_exists($field_name, $build) ? $build[$field_name]['#archived_items'] : 0;
+
     // The facets available for the facet source offered by this field have been
     // organized into pseudo fields. Loop over the configuration to render them
     // in the correct place.
@@ -103,11 +106,24 @@ function search_api_field_entity_view(array &$build, EntityInterface $entity, En
         // Render the facet only if the pseudo field is enabled for this view
         // mode.
         if ($display->getComponent($name)) {
-          // Let the facet_manager build the facets.
-          $build[$name][] = $facet_manager->build($facets[$facet_name]);
-          // Keep track of created pseudo-fields so we can add wrappers later
-          // on.
-          $pseudo_fields[$name] = $facet_data['region'];
+          if (
+            !in_array($facet_name, [
+              'content_listing_status',
+              'field_collection_content_status',
+              'field_is_content_status',
+            ])
+            || (
+              $settings['show_archived'] === 'all'
+              && $archived_items
+              && $archived_items > 0
+            )
+          ) {
+            // Let the facet_manager build the facets.
+            $build[$name][] = $facet_manager->build($facets[$facet_name]);
+            // Keep track of created pseudo-fields so we can add wrappers later
+            // on.
+            $pseudo_fields[$name] = $facet_data['region'];
+          }
         }
       }
     }
@@ -169,6 +185,7 @@ function search_api_field_theme() {
         'field_name' => NULL,
         'entity' => NULL,
         'view_mode' => NULL,
+        'archived_items' => NULL,
       ],
     ],
     'search_api_field_result' => [
diff --git a/web/modules/custom/search_api_field/src/Plugin/Field/FieldFormatter/SearchFormatter.php b/web/modules/custom/search_api_field/src/Plugin/Field/FieldFormatter/SearchFormatter.php
index d40905004b7dcd176371edd8a8db964615965b78..47700f4b6ab4454e0f41a3a9516566b57ba4886f 100644
--- a/web/modules/custom/search_api_field/src/Plugin/Field/FieldFormatter/SearchFormatter.php
+++ b/web/modules/custom/search_api_field/src/Plugin/Field/FieldFormatter/SearchFormatter.php
@@ -183,6 +183,8 @@ public function viewElements(FieldItemListInterface $items, $langcode): array {
 
     $this->mergeQueryCacheMetadata($render, $query);
 
+    $archived_items = $this->getArchivedQuery($settings, $item);
+
     // Add some information about the field.
     // @see \Drupal\Core\Field\FormatterBase::view()
     $entity = $items->getEntity();
@@ -192,8 +194,11 @@ public function viewElements(FieldItemListInterface $items, $langcode): array {
       '#field_name' => $this->fieldDefinition->getName(),
       '#entity' => $entity,
       '#view_mode' => $this->viewMode,
+      '#archived_items' => $archived_items->execute()->getResultCount(),
     ];
 
+    $this->mergeQueryCacheMetadata($render, $archived_items);
+
     return $render;
   }
 
@@ -240,6 +245,47 @@ protected function getSearchQuery(array $settings, SearchItemInterface $item): Q
     return $query;
   }
 
+  /**
+   * Generates the search query to get number of archived content.
+   *
+   * @param array $settings
+   *   The settings configured in the field.
+   * @param \Drupal\search_api_field\Plugin\Field\FieldType\SearchItemInterface $item
+   *   The field item.
+   *
+   * @return \Drupal\search_api\Query\QueryInterface
+   *   The prepared query.
+   */
+  protected function getArchivedQuery(array $settings, SearchItemInterface $item): QueryInterface {
+    $field_definition = $this->fieldDefinition;
+
+    $options = [
+      'search_api_field entity' => $item->getEntity(),
+      'search_api_field item' => $item,
+      'search_api_field archived' => TRUE,
+    ];
+    $query = $this->getSearchApiIndex()->query($options);
+    $query->setSearchId($field_definition->id() . '.archived');
+    $query->setParseMode($this->parseModeManager->createInstance('direct'));
+
+    if (!empty($settings['query_presets'])) {
+      $this->applyPresets($query, $settings['query_presets']);
+    }
+
+    if (!empty($settings['query_builder'])) {
+      $this->applyQueryBuilderConfiguration($query, $settings['query_builder']);
+    }
+    $hooks = [
+      'search_api_field',
+      'search_api_field_' . $field_definition->getName(),
+      'search_api_field_' . $field_definition->getName() . '_archived',
+    ];
+    foreach ($hooks as $hook) {
+      $query->addTag($hook);
+    }
+    return $query;
+  }
+
   /**
    * Builds a renderable array for the search results.
    *
@@ -416,7 +462,8 @@ protected function mergeQueryCacheMetadata(array &$build, QueryInterface $query)
         'tags' => Cache::mergeTags(
           Cache::mergeTags(
             $build['#cache']['tags'],
-            ["search_api_list:{$query->getIndex()->id()}"]
+            ["search_api_list:{$query->getIndex()->id()}"],
+            ["search_api_list:{$query->getSearchId()}"]
           ),
           $query->getCacheTags()
         ),
diff --git a/web/modules/custom/search_api_field/src/Plugin/Field/FieldWidget/SearchWidget.php b/web/modules/custom/search_api_field/src/Plugin/Field/FieldWidget/SearchWidget.php
index 543357683608fdd06f65bba591c54970d52209cd..01e00f97542d045bd52f46b0a17e3d4d6ed52960 100644
--- a/web/modules/custom/search_api_field/src/Plugin/Field/FieldWidget/SearchWidget.php
+++ b/web/modules/custom/search_api_field/src/Plugin/Field/FieldWidget/SearchWidget.php
@@ -14,6 +14,7 @@
 use Drupal\Core\Form\SubformState;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\facets\Entity\Facet;
+use Drupal\facets\FacetInterface;
 use Drupal\search_api_field\Event\AlterQueryPresetsDescriptionEvent;
 use Drupal\search_api_field\Plugin\Field\FieldType\SearchItem;
 use Drupal\search_api_field\Plugin\FilterPluginManagerInterface;
@@ -168,7 +169,6 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     ];
 
     if (!empty($facets)) {
-
       $table = [
         '#type' => 'field_ui_table',
         '#header' => $this->getTableHeader(),
@@ -194,6 +194,13 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       ];
 
       $form['#attached']['library'][] = 'search_api_field/drupal.search_api_field';
+
+      // Order facets because ['#access'] = FALSE drops weight values,
+      // does not update correctly.
+      uasort($facets, function (FacetInterface $a, FacetInterface $b) {
+        return $a->getWeight() <=> $b->getWeight();
+      });
+
       foreach ($facets as $facet_id => $facet) {
         $table[$facet_id] = $this->buildFacetRow($facet, $item);
       }
@@ -222,6 +229,20 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       ],
     ];
 
+    // Show a select that allows users to choose whether to include all content
+    // items, show only unarchived content or show only archived content.
+    $element['wrapper']['show_archived'] = [
+      '#type' => 'select',
+      '#title' => $this->t('Show archived content'),
+      '#options' => [
+        'all' => $this->t('All'),
+        'archived' => $this->t('Archived'),
+        'unarchived' => $this->t('Unarchived'),
+      ],
+      '#default_value' => $default_values['show_archived'] ?? 'unarchived',
+      '#weight' => -12,
+    ];
+
     if (!empty($this->getSetting('query_builder'))) {
       $element['wrapper']['query_builder'] = $this->buildQueryBuilder($item, $delta, $form, $form_state);
     }
@@ -416,7 +437,6 @@ protected function buildFacetRow(Facet $facet, SearchItem $item) {
         }
       }
     }
-    $display_options = NULL;
     $regions = array_keys($this->getRegions());
     $extra_field_row = [
       '#attributes' => ['class' => ['draggable', 'tabledrag-leaf']],
@@ -430,7 +450,7 @@ protected function buildFacetRow(Facet $facet, SearchItem $item) {
         '#type' => 'textfield',
         '#title' => $this->t('Weight for @title', ['@title' => $facet->getName()]),
         '#title_display' => 'invisible',
-        '#default_value' => $display_options ? $display_options['weight'] : 0,
+        '#default_value' => $facet->getWeight(),
         '#size' => 3,
         '#attributes' => ['class' => ['field-weight']],
       ],
@@ -778,6 +798,7 @@ public function massageFormValues(array $values, array $form, FormStateInterface
 
       $cleaned_values[$delta]['value']['enabled'] = $values[$delta]['enabled'];
       $cleaned_values[$delta]['value']['query_presets'] = $values[$delta]['wrapper']['query_presets'];
+      $cleaned_values[$delta]['value']['show_archived'] = $values[$delta]['wrapper']['show_archived'];
       $cleaned_values[$delta]['value']['limit'] = $values[$delta]['wrapper']['limit'];
 
       if (!empty($values[$delta]['wrapper']['query_builder']['filters'])) {
diff --git a/web/modules/custom/workflow_state_permission/src/WorkflowStatePermission.php b/web/modules/custom/workflow_state_permission/src/WorkflowStatePermission.php
index 69370147ca244e6f674de7d6c57c779446c81472..41ac77df23901ad8b1ee64a23ab063f589e0e8fb 100644
--- a/web/modules/custom/workflow_state_permission/src/WorkflowStatePermission.php
+++ b/web/modules/custom/workflow_state_permission/src/WorkflowStatePermission.php
@@ -38,7 +38,10 @@ public function isStateUpdatePermitted(AccountInterface $account, EntityInterfac
       /** @var \Drupal\workflow_state_permission\WorkflowStatePermissionPluginInterface $plugin */
       $plugin = $this->pluginManager->createInstance($definition['id']);
       if ($plugin->applies($entity)) {
-        $result = ($to_state !== '__new__') && $plugin->isStateUpdatePermitted($account, $entity, $workflow, $from_state, $to_state);
+        // The "$form_state === 'archived'" check is to allow the transition
+        // from archived to '__new__' which is a fake transition that mainly
+        // reverts the entity to the previous revision.
+        $result = ($to_state !== '__new__' || $from_state === 'archived') && $plugin->isStateUpdatePermitted($account, $entity, $workflow, $from_state, $to_state);
         // Stop iterating as soon as any plugin denies access.
         if (!$result) {
           return FALSE;
diff --git a/web/profiles/joinup/src/ExportBatchedDataFormBase.php b/web/profiles/joinup/src/ExportBatchedDataFormBase.php
index 90c9b913fe4a45889f6edea0491f7fc7b74d88a8..ed0646391b941596bd9ed061515e60b759a42cc7 100644
--- a/web/profiles/joinup/src/ExportBatchedDataFormBase.php
+++ b/web/profiles/joinup/src/ExportBatchedDataFormBase.php
@@ -57,8 +57,8 @@ public function buildForm(array $form, FormStateInterface $form_state): array {
 
     if ($data = $this->cacheStorage->get($this->getCacheTagName())) {
       $form['help']['#markup'] = $this->t('Last dump was created at :date and will be removed by :expire', [
-        ':date' => $this->dateFormatter->format($data->created),
-        ':expire' => $this->dateFormatter->format($data->expire),
+        ':date' => $this->dateFormatter->format((int) $data->created),
+        ':expire' => $this->dateFormatter->format((int) $data->expire),
       ]);
 
       $form['actions']['download_link'] = [
diff --git a/web/profiles/joinup/src/Form/ExportStatisticsPerGroupForm.php b/web/profiles/joinup/src/Form/ExportStatisticsPerGroupForm.php
index f8db8a10daac95233d264f393b094c6d08df8c3e..281a38ddbbf52480df0b88558ebdcb6c26c42892 100644
--- a/web/profiles/joinup/src/Form/ExportStatisticsPerGroupForm.php
+++ b/web/profiles/joinup/src/Form/ExportStatisticsPerGroupForm.php
@@ -44,7 +44,6 @@ public function __construct(
     protected Connection $mysql,
     protected ConnectionInterface $sparql) {
     parent::__construct($cache, $dateFormatter, $time);
-
   }
 
   /**
@@ -143,13 +142,17 @@ public function generateGroupStatistics(string $entity_id, array &$context): voi
     /** @var \Drupal\collection\Entity\CollectionInterface|\Drupal\solution\Entity\SolutionInterface $group */
     $group = $rdf_storage->load((string) $entity_id);
     // Fetch the nodes that belong to the group.
-    $group_content_data = $this->mysql->query($this->getGroupContentQuery($entity_id))->fetchAll();
+    $group_content_data = $this->mysql->query(
+      $this->getGroupContentQuery(), [':parent_entity_id' => $entity_id]
+    )->fetchAll();
     $group_content = [
-      'custom_page' => 0,
-      'discussion' => 0,
-      'document' => 0,
-      'event' => 0,
-      'news' => 0,
+      // Node entities.
+      'custom_page' => ['active' => 0, 'archived' => 0],
+      'discussion' => ['active' => 0, 'archived' => 0],
+      'document' => ['active' => 0, 'archived' => 0],
+      'event' => ['active' => 0, 'archived' => 0],
+      'news' => ['active' => 0, 'archived' => 0],
+      // RDF entities.
       'solution' => 0,
       'asset_release' => 0,
       'asset_distribution' => 0,
@@ -157,8 +160,15 @@ public function generateGroupStatistics(string $entity_id, array &$context): voi
 
     $group_content_keys = array_keys($group_content);
     foreach ($group_content_data as $data) {
-      if (in_array($data->type, $group_content_keys)) {
-        $group_content[$data->type]++;
+      if (!in_array($data->type, $group_content_keys)) {
+        continue;
+      }
+
+      if ($data->state === 'archived') {
+        $group_content[$data->type]['archived'] += $data->entities;
+      }
+      else {
+        $group_content[$data->type]['active'] += $data->entities;
       }
     }
 
@@ -172,7 +182,7 @@ public function generateGroupStatistics(string $entity_id, array &$context): voi
 
     // For solutions, count releases and distributions.
     if ($group instanceof SolutionInterface) {
-      $releases_and_distributions_ids = $this->sparql->query($this->getRelasesAndDistributionsQuery($entity_id));
+      $releases_and_distributions_ids = $this->sparql->query($this->getReleasesAndDistributionsQuery($entity_id));
 
       /** @var \EasyRdf\Sparql\Result $result */
       foreach ($releases_and_distributions_ids as $result_id) {
@@ -198,21 +208,28 @@ public function generateGroupStatistics(string $entity_id, array &$context): voi
       'Last update date' => \Drupal::getContainer()
         ->get('date.formatter')
         ->format($group->getChangedTime(), 'c'),
-      'Custom pages' => $group_content['custom_page'],
-      'Discussions' => $group_content['discussion'],
-      'Documents' => $group_content['document'],
-      'Events' => $group_content['event'],
-      'News' => $group_content['news'],
+      'Custom pages' => $group_content['custom_page']['active'],
+      'Discussions' => $group_content['discussion']['active'],
+      'Documents' => $group_content['document']['active'],
+      'Events' => $group_content['event']['active'],
+      'News' => $group_content['news']['active'],
       'Solutions' => $group_content['solution'],
       'Releases' => $group_content['asset_release'],
       'Distributions' => $group_content['asset_distribution'],
-      'Total number of items' => $group_content['custom_page']
-      + $group_content['discussion']
-      + $group_content['document']
-      + $group_content['event']
-      + $group_content['news']
+      'Total number of items' =>
+      $group_content['custom_page']['active']
+      + $group_content['discussion']['active']
+      + $group_content['document']['active']
+      + $group_content['event']['active']
+      + $group_content['news']['active']
       + $group_content['asset_release']
       + $group_content['asset_distribution'],
+      'Total number of archived items' =>
+      $group_content['custom_page']['archived']
+      + $group_content['discussion']['archived']
+      + $group_content['document']['archived']
+      + $group_content['event']['archived']
+      + $group_content['news']['archived'],
       'Number of members' => $memberships,
       'Description word count' => str_word_count(strip_tags($description)),
       'Total number of likes' => !empty($content_ids) ? $this->getLikesCount($content_ids) : 0,
@@ -239,18 +256,17 @@ private function getLikesCount(array $entity_ids): string {
   /**
    * Helper method to return a query to fetch group content.
    *
-   * @param string $entity_id
-   *   The group entity ID.
-   *
    * @return string
    *   The query.
    */
-  private function getGroupContentQuery(string $entity_id): string {
+  private function getGroupContentQuery(): string {
     return <<<QUERY
-SELECT og.entity_id, n.type
+SELECT count(og.entity_id) as entities, n.type, s.field_state_value as state
 FROM {node__og_audience} og
 LEFT JOIN {node_field_data} n ON og.entity_id = n.nid
-WHERE og.og_audience_target_id = '{$entity_id}'
+LEFT JOIN {node__field_state} s ON n.nid = s.entity_id AND n.vid = s.revision_id
+WHERE og.og_audience_target_id = :parent_entity_id
+group by n.type, s.field_state_value
 QUERY;
   }
 
@@ -263,7 +279,7 @@ private function getGroupContentQuery(string $entity_id): string {
    * @return string
    *   The query.
    */
-  private function getRelasesAndDistributionsQuery(string $entity_id): string {
+  private function getReleasesAndDistributionsQuery(string $entity_id): string {
     return <<<QUERY
 SELECT DISTINCT ?entity_id
 FROM <http://joinup.eu/asset_release/published>
diff --git a/web/themes/ventuno/assets/css/tabs.min.css b/web/themes/ventuno/assets/css/tabs.min.css
index 3aab9f4224c7d1b10d712b7b695178827214b909..7602ca2d88500192ba8924c59c2b8ad2a320e9d9 100644
--- a/web/themes/ventuno/assets/css/tabs.min.css
+++ b/web/themes/ventuno/assets/css/tabs.min.css
@@ -1,2 +1,2 @@
-.tabs--content-type{border-bottom:1px solid #dadee0;margin-bottom:2rem;margin-top:3.5rem;overflow-x:auto;overflow-y:hidden;padding:0;position:relative;width:100%}.tabs--content-type .nav-tabs{-ms-overflow-style:none;border:none;display:inline-flex;flex-wrap:nowrap;overflow-x:auto;padding-right:2.5rem;scrollbar-width:none;width:100%}.tabs--content-type .nav-tabs::-webkit-scrollbar{display:none}.tabs--content-type .nav-tabs .tab--content-type{border:none;border-radius:0;box-shadow:0 4px 0 0 transparent;color:#1073de;margin-bottom:.25rem;margin-top:.25rem;padding:0 .25rem 1rem;white-space:nowrap}.tabs--content-type .nav-tabs .tab--content-type:not(:first-of-type){margin-left:.5rem}.tabs--content-type .nav-tabs .tab--content-type:not(:last-of-type){margin-right:.5rem}.tabs--content-type .nav-tabs .tab--content-type:hover{box-shadow:0 4px 0 0 #1073de;text-decoration:none}.tabs--content-type .nav-tabs .tab--content-type.active,.tabs--content-type .nav-tabs .tab--content-type.active.is-active,.tabs--content-type .nav-tabs .tab--content-type.is-active{background-color:unset;box-shadow:0 4px 0 0 #1073de;color:#1073de;font-weight:700}@media (min-width:992px){.tabs--content-type .nav-tabs .tab--content-type:not(:first-of-type){margin-left:1rem}.tabs--content-type .nav-tabs .tab--content-type:not(:last-of-type){margin-right:1rem}}.tabs--content-type .nav-tabs:after{background-image:linear-gradient(90deg,transparent 50%,#fff);content:"";height:100%;left:calc(100% - 7.5rem);pointer-events:none;position:absolute;right:0;top:0;width:7.5rem}@media (min-width:992px){.tabs--content-type .nav-tabs:after{display:none}}
+.tabs--content-type{overflow-x:auto;overflow-y:hidden;padding:0;position:relative}.tabs--content-type .nav-tabs{-ms-overflow-style:none;border:none;display:inline-flex;flex-wrap:nowrap;overflow-x:auto;padding-right:2.5rem;scrollbar-width:none}.tabs--content-type .nav-tabs::-webkit-scrollbar{display:none}.tabs--content-type .nav-tabs .tab--content-type{border:none;border-radius:0;box-shadow:0 4px 0 0 transparent;color:#1073de;margin-bottom:.25rem;margin-top:.25rem;padding:0 .25rem 1rem;white-space:nowrap}.tabs--content-type .nav-tabs .tab--content-type:not(:first-of-type){margin-left:.5rem}.tabs--content-type .nav-tabs .tab--content-type:not(:last-of-type){margin-right:.5rem}.tabs--content-type .nav-tabs .tab--content-type:hover{box-shadow:0 4px 0 0 #1073de;text-decoration:none}.tabs--content-type .nav-tabs .tab--content-type.active,.tabs--content-type .nav-tabs .tab--content-type.active.is-active,.tabs--content-type .nav-tabs .tab--content-type.is-active{background-color:unset;box-shadow:0 4px 0 0 #1073de;color:#1073de;font-weight:700}@media (min-width:992px){.tabs--content-type .nav-tabs .tab--content-type:not(:first-of-type){margin-left:1rem}.tabs--content-type .nav-tabs .tab--content-type:not(:last-of-type){margin-right:1rem}}.tabs--content-type .nav-tabs:after{background-image:linear-gradient(90deg,transparent 50%,#fff);content:"";height:100%;left:calc(100% - 7.5rem);pointer-events:none;position:absolute;right:0;top:0;width:7.5rem}@media (min-width:992px){.tabs--content-type .nav-tabs:after{display:none}}
 /*# sourceMappingURL=tabs.min.css.map */
\ No newline at end of file
diff --git a/web/themes/ventuno/assets/css/theme.min.css b/web/themes/ventuno/assets/css/theme.min.css
index 2fdb1dc49a41895d4d8decbf76256c54468eab1b..5e48534c6a2f247b7d4c18440af31ba750f34630 100644
--- a/web/themes/ventuno/assets/css/theme.min.css
+++ b/web/themes/ventuno/assets/css/theme.min.css
@@ -1,2 +1,2 @@
-@charset "UTF-8";@import "fonts/cyrillic-400.css";@import "fonts/latin-400.css";@import "fonts/latin-ext-400.css";@import "fonts/greek-400.css";@import "fonts/cyrillic-500.css";@import "fonts/latin-500.css";@import "fonts/latin-ext-500.css";@import "fonts/greek-500.css";@import "fonts/cyrillic-700.css";@import "fonts/latin-700.css";@import "fonts/latin-ext-700.css";@import "fonts/greek-700.css";@import "fonts/cyrillic-400-italic.css";@import "fonts/latin-400-italic.css";@import "fonts/latin-ext-400-italic.css";@import "fonts/greek-400-italic.css";@import "fonts/cyrillic-500-italic.css";@import "fonts/latin-500-italic.css";@import "fonts/latin-ext-500-italic.css";@import "fonts/greek-500-italic.css";@import "fonts/cyrillic-700-italic.css";@import "fonts/latin-700-italic.css";@import "fonts/latin-ext-700-italic.css";@import "fonts/greek-700-italic.css";.fs-sm,.fs-xs{color:#858a8c}.fw-medium{color:#555859}.fw-medium.h2,.fw-medium.h3,.fw-medium.h4,.h1,h1,h2.fw-medium,h3.fw-medium,h4.fw-medium{color:#113264}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#143b76;font-weight:400;line-height:1.2;margin-bottom:.5rem;margin-top:0}.h1,h1{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h1,h1{font-size:2rem}}.h2,h2{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h2,h2{font-size:1.5rem}}.h3,h3{font-size:1.25rem}.h4,.h5,.h6,h4,h5,h6{font-size:1rem}.small,small{font-size:.875em}.mark,mark{background-color:#fff3cd;padding:.1875em}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{color:#6d7173;font-size:.875em;margin-bottom:1rem;margin-top:-1rem}.blockquote-footer:before{content:"— "}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}a{text-underline-offset:2px}a:not(.text-underline-hover):not(.standalone){text-decoration-color:rgba(20,59,118,.3)}a:not(.text-underline-hover):not(.standalone):visited{text-decoration-color:rgba(111,66,193,.3)}a:not(.text-underline-hover):not(.standalone):hover{text-decoration-color:currentColor}a:not(.text-underline-hover):not(.standalone):hover:visited{text-decoration-color:#6f42c1}a.standalone,a.text-underline-hover{text-decoration-color:transparent}a.standalone:hover,a.text-underline-hover:hover{text-decoration-color:currentColor}a.standalone:hover:visited,a.text-underline-hover:hover:visited{text-decoration-color:#6f42c1}svg{fill:currentColor}@media (max-width:767.98px){.n-mx-container{margin-left:-1.5rem;margin-right:-1.5rem;padding-left:1.5rem;padding-right:1.5rem}}.bg-lighter{background-color:#fafbfc}.bg-gray-200{background-color:#f5f6f7}.bg-gray-400{background-color:#a2a8ab}.border-gray-300{border-color:#dadee0}.grid-3-9{grid-template-columns:25% 75%}.clearfix:after{clear:both;content:"";display:block}.text-bg-primary{background-color:RGBA(20,59,118,var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-secondary{background-color:RGBA(231,241,251,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-success{background-color:RGBA(24,191,128,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-info{background-color:RGBA(13,118,139,var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-warning{background-color:RGBA(235,168,67,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-danger{background-color:RGBA(235,52,52,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-light{background-color:RGBA(248,249,250,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-dark{background-color:RGBA(33,37,41,var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-brand{background-color:RGBA(16,115,222,var(--bs-bg-opacity,1))!important;color:#fff!important}.link-primary{color:#143b76!important}.link-primary:focus,.link-primary:hover{color:#102f5e!important}.link-secondary{color:#e7f1fb!important}.link-secondary:focus,.link-secondary:hover{color:#ecf4fc!important}.link-success{color:#18bf80!important}.link-success:focus,.link-success:hover{color:#46cc99!important}.link-info{color:#0d768b!important}.link-info:focus,.link-info:hover{color:#0a5e6f!important}.link-warning{color:#eba843!important}.link-warning:focus,.link-warning:hover{color:#efb969!important}.link-danger{color:#eb3434!important}.link-danger:focus,.link-danger:hover{color:#ef5d5d!important}.link-light{color:#f8f9fa!important}.link-light:focus,.link-light:hover{color:#f9fafb!important}.link-dark{color:#212529!important}.link-dark:focus,.link-dark:hover{color:#1a1e21!important}.link-brand{color:#1073de!important}.link-brand:focus,.link-brand:hover{color:#0d5cb2!important}.ratio{position:relative;width:100%}.ratio:before{content:"";display:block;padding-top:var(--bs-aspect-ratio)}.ratio>*{height:100%;left:0;position:absolute;top:0;width:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:60}.fixed-bottom{bottom:0}.sticky-top{position:sticky;top:0;z-index:50}.sticky-bottom{bottom:0;position:sticky;z-index:50}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:50}.sticky-sm-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:50}.sticky-md-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:50}.sticky-lg-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:50}.sticky-xl-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:50}.sticky-xxl-bottom{bottom:0;position:sticky;z-index:50}}.hstack{align-items:center;flex-direction:row}.hstack,.vstack{align-self:stretch;display:flex}.vstack{flex:1 1 auto;flex-direction:column}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.stretched-link:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{align-self:stretch;background-color:currentcolor;display:inline-block;min-height:1em;opacity:.25;width:1px}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .1rem .4rem .1rem rgba(0,0,0,.1)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 .5rem 1rem rgba(0,0,0,.163)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.mw-date{max-width:10rem!important}.mw-col-date{max-width:calc(10rem + var(--bs-gutter-x))!important}.mw-listing-img{max-width:10rem!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-2-5{margin:.75rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-2-5{margin-top:.75rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-2-5{margin-right:.75rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-2-5{margin-bottom:.75rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-2-5{margin-left:.75rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-2-5{padding:.75rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-2-5{padding-top:.75rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-2-5{padding-right:.75rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-2-5{padding-bottom:.75rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-2-5{padding-left:.75rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fs-sm{font-size:.875rem!important}.fs-xs{font-size:.75rem!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.fw-md,.fw-medium{font-weight:500!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-brand{--bs-text-opacity:1;color:rgba(var(--bs-brand-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#495057!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:hsla(0,0%,100%,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-brand{--bs-bg-opacity:1;background-color:rgba(var(--bs-brand-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-date{--bs-bg-opacity:1;background-color:#1698af!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important}.rounded-end,.rounded-top{border-top-right-radius:var(--bs-border-radius)!important}.rounded-bottom,.rounded-end{border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom,.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-start{border-top-left-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.col-gap-0{-moz-column-gap:0!important;column-gap:0!important}.col-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.col-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.col-gap-2-5{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.col-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.col-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.col-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-2-5{row-gap:.75rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.zi-0{z-index:0!important}.zi-1{z-index:1!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.border-sm{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-sm-0{border:0!important}.border-top-sm{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-sm-0{border-top:0!important}.border-bottom-sm{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-sm-0{border-bottom:0!important}.w-sm-25{width:25%!important}.w-sm-50{width:50%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}.w-sm-auto{width:auto!important}.h-sm-25{height:25%!important}.h-sm-50{height:50%!important}.h-sm-75{height:75%!important}.h-sm-100{height:100%!important}.h-sm-auto{height:auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-2-5{margin:.75rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-2-5{margin-top:.75rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-2-5{margin-right:.75rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-2-5{margin-bottom:.75rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-2-5{margin-left:.75rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-2-5{padding:.75rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-2-5{padding-top:.75rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-2-5{padding-right:.75rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-2-5{padding-bottom:.75rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-2-5{padding-left:.75rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.border-md{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-md-0{border:0!important}.border-top-md{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-md-0{border-top:0!important}.border-bottom-md{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-md-0{border-bottom:0!important}.w-md-25{width:25%!important}.w-md-50{width:50%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}.w-md-auto{width:auto!important}.h-md-25{height:25%!important}.h-md-50{height:50%!important}.h-md-75{height:75%!important}.h-md-100{height:100%!important}.h-md-auto{height:auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-2-5{margin:.75rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-2-5{margin-top:.75rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-2-5{margin-right:.75rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-2-5{margin-bottom:.75rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-2-5{margin-left:.75rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-2-5{padding:.75rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-2-5{padding-top:.75rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-2-5{padding-right:.75rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-2-5{padding-bottom:.75rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-2-5{padding-left:.75rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.border-lg{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-lg-0{border:0!important}.border-top-lg{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-lg-0{border-top:0!important}.border-bottom-lg{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-lg-0{border-bottom:0!important}.w-lg-25{width:25%!important}.w-lg-50{width:50%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}.w-lg-auto{width:auto!important}.h-lg-25{height:25%!important}.h-lg-50{height:50%!important}.h-lg-75{height:75%!important}.h-lg-100{height:100%!important}.h-lg-auto{height:auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-2-5{margin:.75rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-2-5{margin-top:.75rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-2-5{margin-right:.75rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-2-5{margin-bottom:.75rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-2-5{margin-left:.75rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-2-5{padding:.75rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-2-5{padding-top:.75rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-2-5{padding-right:.75rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-2-5{padding-bottom:.75rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-2-5{padding-left:.75rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.border-xl{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-xl-0{border:0!important}.border-top-xl{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-xl-0{border-top:0!important}.border-bottom-xl{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-xl-0{border-bottom:0!important}.w-xl-25{width:25%!important}.w-xl-50{width:50%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}.w-xl-auto{width:auto!important}.h-xl-25{height:25%!important}.h-xl-50{height:50%!important}.h-xl-75{height:75%!important}.h-xl-100{height:100%!important}.h-xl-auto{height:auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-2-5{margin:.75rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-2-5{margin-top:.75rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-2-5{margin-right:.75rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-2-5{margin-bottom:.75rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-2-5{margin-left:.75rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-2-5{padding:.75rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-2-5{padding-top:.75rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-2-5{padding-right:.75rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-2-5{padding-bottom:.75rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-2-5{padding-left:.75rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.border-xxl{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-xxl-0{border:0!important}.border-top-xxl{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-xxl-0{border-top:0!important}.border-bottom-xxl{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-xxl-0{border-bottom:0!important}.w-xxl-25{width:25%!important}.w-xxl-50{width:50%!important}.w-xxl-75{width:75%!important}.w-xxl-100{width:100%!important}.w-xxl-auto{width:auto!important}.h-xxl-25{height:25%!important}.h-xxl-50{height:50%!important}.h-xxl-75{height:75%!important}.h-xxl-100{height:100%!important}.h-xxl-auto{height:auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-2-5{margin:.75rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-bottom:0!important;margin-top:0!important}.my-xxl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xxl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xxl-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-xxl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xxl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xxl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xxl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-2-5{margin-top:.75rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-2-5{margin-right:.75rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-2-5{margin-bottom:.75rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-2-5{margin-left:.75rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-2-5{padding:.75rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-bottom:0!important;padding-top:0!important}.py-xxl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xxl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xxl-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-xxl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xxl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xxl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-2-5{padding-top:.75rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-2-5{padding-right:.75rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-2-5{padding-bottom:.75rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-2-5{padding-left:.75rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}a:hover:visited{text-decoration-color:currentColor!important}a.external:after{margin:0 0 0 .375rem}a.external:after,a.external:hover:after{background-color:currentColor;content:"";display:inline-block;height:1em;-webkit-mask-image:url(../icons/box-arrow-up-right.svg);mask-image:url(../icons/box-arrow-up-right.svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.125em;width:1em}.glossary-term{border-bottom:1px dotted #212529;cursor:help}.glossary-term,.glossary-term:hover{color:#212529;text-decoration:none}.shadow-hover{box-shadow:0 .1rem .4rem .1rem rgba(0,0,0,.1)}.shadow-hover:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.163)}
+@charset "UTF-8";@import "fonts/cyrillic-400.css";@import "fonts/latin-400.css";@import "fonts/latin-ext-400.css";@import "fonts/greek-400.css";@import "fonts/cyrillic-500.css";@import "fonts/latin-500.css";@import "fonts/latin-ext-500.css";@import "fonts/greek-500.css";@import "fonts/cyrillic-700.css";@import "fonts/latin-700.css";@import "fonts/latin-ext-700.css";@import "fonts/greek-700.css";@import "fonts/cyrillic-400-italic.css";@import "fonts/latin-400-italic.css";@import "fonts/latin-ext-400-italic.css";@import "fonts/greek-400-italic.css";@import "fonts/cyrillic-500-italic.css";@import "fonts/latin-500-italic.css";@import "fonts/latin-ext-500-italic.css";@import "fonts/greek-500-italic.css";@import "fonts/cyrillic-700-italic.css";@import "fonts/latin-700-italic.css";@import "fonts/latin-ext-700-italic.css";@import "fonts/greek-700-italic.css";.fs-sm,.fs-xs{color:#858a8c}.fw-medium{color:#555859}.fw-medium.h2,.fw-medium.h3,.fw-medium.h4,.h1,h1,h2.fw-medium,h3.fw-medium,h4.fw-medium{color:#113264}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#143b76;font-weight:400;line-height:1.2;margin-bottom:.5rem;margin-top:0}.h1,h1{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h1,h1{font-size:2rem}}.h2,h2{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h2,h2{font-size:1.5rem}}.h3,h3{font-size:1.25rem}.h4,.h5,.h6,h4,h5,h6{font-size:1rem}.small,small{font-size:.875em}.mark,mark{background-color:#fff3cd;padding:.1875em}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:400;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{list-style:none;padding-left:0}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{font-size:1.25rem;margin-bottom:1rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{color:#6d7173;font-size:.875em;margin-bottom:1rem;margin-top:-1rem}.blockquote-footer:before{content:"— "}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{height:auto;transition:width .35s ease;width:0}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}a{text-underline-offset:2px}a:not(.text-underline-hover):not(.standalone){text-decoration-color:rgba(20,59,118,.3)}a:not(.text-underline-hover):not(.standalone):visited{text-decoration-color:rgba(111,66,193,.3)}a:not(.text-underline-hover):not(.standalone):hover{text-decoration-color:currentColor}a:not(.text-underline-hover):not(.standalone):hover:visited{text-decoration-color:#6f42c1}a.standalone,a.text-underline-hover{text-decoration-color:transparent}a.standalone:hover,a.text-underline-hover:hover{text-decoration-color:currentColor}a.standalone:hover:visited,a.text-underline-hover:hover:visited{text-decoration-color:#6f42c1}svg{fill:currentColor}@media (max-width:767.98px){.n-mx-container{margin-left:-1.5rem;margin-right:-1.5rem;padding-left:1.5rem;padding-right:1.5rem}}.bg-lighter{background-color:#fafbfc}.bg-gray-200{background-color:#f5f6f7}.bg-gray-400{background-color:#a2a8ab}.border-gray-300{border-color:#dadee0}.grid-3-9{grid-template-columns:25% 75%}.clearfix:after{clear:both;content:"";display:block}.text-bg-primary{background-color:RGBA(20,59,118,var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-secondary{background-color:RGBA(231,241,251,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-success{background-color:RGBA(24,191,128,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-info{background-color:RGBA(13,118,139,var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-warning{background-color:RGBA(235,168,67,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-danger{background-color:RGBA(235,52,52,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-light{background-color:RGBA(248,249,250,var(--bs-bg-opacity,1))!important;color:#000!important}.text-bg-dark{background-color:RGBA(33,37,41,var(--bs-bg-opacity,1))!important;color:#fff!important}.text-bg-brand{background-color:RGBA(16,115,222,var(--bs-bg-opacity,1))!important;color:#fff!important}.link-primary{color:#143b76!important}.link-primary:focus,.link-primary:hover{color:#102f5e!important}.link-secondary{color:#e7f1fb!important}.link-secondary:focus,.link-secondary:hover{color:#ecf4fc!important}.link-success{color:#18bf80!important}.link-success:focus,.link-success:hover{color:#46cc99!important}.link-info{color:#0d768b!important}.link-info:focus,.link-info:hover{color:#0a5e6f!important}.link-warning{color:#eba843!important}.link-warning:focus,.link-warning:hover{color:#efb969!important}.link-danger{color:#eb3434!important}.link-danger:focus,.link-danger:hover{color:#ef5d5d!important}.link-light{color:#f8f9fa!important}.link-light:focus,.link-light:hover{color:#f9fafb!important}.link-dark{color:#212529!important}.link-dark:focus,.link-dark:hover{color:#1a1e21!important}.link-brand{color:#1073de!important}.link-brand:focus,.link-brand:hover{color:#0d5cb2!important}.ratio{position:relative;width:100%}.ratio:before{content:"";display:block;padding-top:var(--bs-aspect-ratio)}.ratio>*{height:100%;left:0;position:absolute;top:0;width:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{top:0}.fixed-bottom,.fixed-top{left:0;position:fixed;right:0;z-index:60}.fixed-bottom{bottom:0}.sticky-top{position:sticky;top:0;z-index:50}.sticky-bottom{bottom:0;position:sticky;z-index:50}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:50}.sticky-sm-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:50}.sticky-md-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:50}.sticky-lg-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:50}.sticky-xl-bottom{bottom:0;position:sticky;z-index:50}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:50}.sticky-xxl-bottom{bottom:0;position:sticky;z-index:50}}.hstack{align-items:center;flex-direction:row}.hstack,.vstack{align-self:stretch;display:flex}.vstack{flex:1 1 auto;flex-direction:column}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.stretched-link:after{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{align-self:stretch;background-color:currentcolor;display:inline-block;min-height:1em;opacity:.25;width:1px}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .1rem .4rem .1rem rgba(0,0,0,.1)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 .5rem 1rem rgba(0,0,0,.163)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.mw-date{max-width:10rem!important}.mw-col-date{max-width:calc(10rem + var(--bs-gutter-x))!important}.mw-listing-img{max-width:10rem!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-2-5{margin:.75rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-0{margin-bottom:0!important;margin-top:0!important}.my-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-2-5{margin-top:.75rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-2-5{margin-right:.75rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-2-5{margin-bottom:.75rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-2-5{margin-left:.75rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-2-5{padding:.75rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-2-5{padding-top:.75rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-2-5{padding-right:.75rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-2-5{padding-bottom:.75rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-2-5{padding-left:.75rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fs-sm{font-size:.875rem!important}.fs-xs{font-size:.75rem!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-semibold{font-weight:600!important}.fw-bolder{font-weight:bolder!important}.fw-md,.fw-medium{font-weight:500!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-brand{--bs-text-opacity:1;color:rgba(var(--bs-brand-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#495057!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:hsla(0,0%,100%,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-brand{--bs-bg-opacity:1;background-color:rgba(var(--bs-brand-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-date{--bs-bg-opacity:1;background-color:#1698af!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-2xl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important}.rounded-end,.rounded-top{border-top-right-radius:var(--bs-border-radius)!important}.rounded-bottom,.rounded-end{border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom,.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-start{border-top-left-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.col-gap-0{-moz-column-gap:0!important;column-gap:0!important}.col-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.col-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.col-gap-2-5{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.col-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.col-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.col-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-2-5{row-gap:.75rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.zi-0{z-index:0!important}.zi-1{z-index:1!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.border-sm{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-sm-0{border:0!important}.border-top-sm{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-sm-0{border-top:0!important}.border-bottom-sm{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-sm-0{border-bottom:0!important}.w-sm-25{width:25%!important}.w-sm-50{width:50%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}.w-sm-auto{width:auto!important}.h-sm-25{height:25%!important}.h-sm-50{height:50%!important}.h-sm-75{height:75%!important}.h-sm-100{height:100%!important}.h-sm-auto{height:auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-2-5{margin:.75rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right:auto!important}.my-sm-0{margin-bottom:0!important;margin-top:0!important}.my-sm-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-sm-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-sm-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-sm-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-sm-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-sm-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-sm-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-2-5{margin-top:.75rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-2-5{margin-right:.75rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-2-5{margin-bottom:.75rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-2-5{margin-left:.75rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-2-5{padding:.75rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right:3rem!important}.py-sm-0{padding-bottom:0!important;padding-top:0!important}.py-sm-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-sm-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-sm-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-sm-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-sm-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-sm-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-2-5{padding-top:.75rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-2-5{padding-right:.75rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-2-5{padding-bottom:.75rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-2-5{padding-left:.75rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.border-md{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-md-0{border:0!important}.border-top-md{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-md-0{border-top:0!important}.border-bottom-md{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-md-0{border-bottom:0!important}.w-md-25{width:25%!important}.w-md-50{width:50%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}.w-md-auto{width:auto!important}.h-md-25{height:25%!important}.h-md-50{height:50%!important}.h-md-75{height:75%!important}.h-md-100{height:100%!important}.h-md-auto{height:auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-2-5{margin:.75rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right:auto!important}.my-md-0{margin-bottom:0!important;margin-top:0!important}.my-md-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-md-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-md-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-md-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-md-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-md-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-md-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-2-5{margin-top:.75rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-2-5{margin-right:.75rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-2-5{margin-bottom:.75rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-2-5{margin-left:.75rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-2-5{padding:.75rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right:3rem!important}.py-md-0{padding-bottom:0!important;padding-top:0!important}.py-md-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-md-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-md-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-md-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-md-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-md-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-2-5{padding-top:.75rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-2-5{padding-right:.75rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-2-5{padding-bottom:.75rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-2-5{padding-left:.75rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.border-lg{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-lg-0{border:0!important}.border-top-lg{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-lg-0{border-top:0!important}.border-bottom-lg{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-lg-0{border-bottom:0!important}.w-lg-25{width:25%!important}.w-lg-50{width:50%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}.w-lg-auto{width:auto!important}.h-lg-25{height:25%!important}.h-lg-50{height:50%!important}.h-lg-75{height:75%!important}.h-lg-100{height:100%!important}.h-lg-auto{height:auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-2-5{margin:.75rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right:auto!important}.my-lg-0{margin-bottom:0!important;margin-top:0!important}.my-lg-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-lg-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-lg-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-lg-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-lg-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-lg-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-lg-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-2-5{margin-top:.75rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-2-5{margin-right:.75rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-2-5{margin-bottom:.75rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-2-5{margin-left:.75rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-2-5{padding:.75rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right:3rem!important}.py-lg-0{padding-bottom:0!important;padding-top:0!important}.py-lg-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-lg-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-lg-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-lg-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-lg-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-lg-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-2-5{padding-top:.75rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-2-5{padding-right:.75rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-2-5{padding-bottom:.75rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-2-5{padding-left:.75rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.border-xl{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-xl-0{border:0!important}.border-top-xl{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-xl-0{border-top:0!important}.border-bottom-xl{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-xl-0{border-bottom:0!important}.w-xl-25{width:25%!important}.w-xl-50{width:50%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}.w-xl-auto{width:auto!important}.h-xl-25{height:25%!important}.h-xl-50{height:50%!important}.h-xl-75{height:75%!important}.h-xl-100{height:100%!important}.h-xl-auto{height:auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-2-5{margin:.75rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right:auto!important}.my-xl-0{margin-bottom:0!important;margin-top:0!important}.my-xl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xl-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-xl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-2-5{margin-top:.75rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-2-5{margin-right:.75rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-2-5{margin-bottom:.75rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-2-5{margin-left:.75rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-2-5{padding:.75rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xl-0{padding-bottom:0!important;padding-top:0!important}.py-xl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xl-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-xl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-2-5{padding-top:.75rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-2-5{padding-right:.75rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-2-5{padding-bottom:.75rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-2-5{padding-left:.75rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.border-xxl{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-xxl-0{border:0!important}.border-top-xxl{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-xxl-0{border-top:0!important}.border-bottom-xxl{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-xxl-0{border-bottom:0!important}.w-xxl-25{width:25%!important}.w-xxl-50{width:50%!important}.w-xxl-75{width:75%!important}.w-xxl-100{width:100%!important}.w-xxl-auto{width:auto!important}.h-xxl-25{height:25%!important}.h-xxl-50{height:50%!important}.h-xxl-75{height:75%!important}.h-xxl-100{height:100%!important}.h-xxl-auto{height:auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-2-5{margin:.75rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-2-5{margin-left:.75rem!important;margin-right:.75rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}.my-xxl-0{margin-bottom:0!important;margin-top:0!important}.my-xxl-1{margin-bottom:.25rem!important;margin-top:.25rem!important}.my-xxl-2{margin-bottom:.5rem!important;margin-top:.5rem!important}.my-xxl-2-5{margin-bottom:.75rem!important;margin-top:.75rem!important}.my-xxl-3{margin-bottom:1rem!important;margin-top:1rem!important}.my-xxl-4{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.my-xxl-5{margin-bottom:3rem!important;margin-top:3rem!important}.my-xxl-auto{margin-bottom:auto!important;margin-top:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-2-5{margin-top:.75rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-2-5{margin-right:.75rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-2-5{margin-bottom:.75rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-2-5{margin-left:.75rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-2-5{padding:.75rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-2-5{padding-left:.75rem!important;padding-right:.75rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}.py-xxl-0{padding-bottom:0!important;padding-top:0!important}.py-xxl-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-xxl-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-xxl-2-5{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-xxl-3{padding-bottom:1rem!important;padding-top:1rem!important}.py-xxl-4{padding-bottom:1.5rem!important;padding-top:1.5rem!important}.py-xxl-5{padding-bottom:3rem!important;padding-top:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-2-5{padding-top:.75rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-2-5{padding-right:.75rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-2-5{padding-bottom:.75rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-2-5{padding-left:.75rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}a:hover:visited{text-decoration-color:currentColor!important}a.external:after{margin:0 0 0 .375rem}a.external:after,a.external:hover:after{background-color:currentColor;content:"";display:inline-block;height:1em;-webkit-mask-image:url(../icons/box-arrow-up-right.svg);mask-image:url(../icons/box-arrow-up-right.svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.125em;width:1em}.glossary-term{border-bottom:1px dotted #212529;cursor:help}.glossary-term,.glossary-term:hover{color:#212529;text-decoration:none}.shadow-hover{box-shadow:0 .1rem .4rem .1rem rgba(0,0,0,.1)}.shadow-hover:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.163)}
 /*# sourceMappingURL=theme.min.css.map */
\ No newline at end of file
diff --git a/web/themes/ventuno/assets/icons/icons.svg b/web/themes/ventuno/assets/icons/icons.svg
index cae987a7d41b0ea5cf3620782c75cf2696ed0b14..922f51a9e8b5f73da13f24143528578a913534c0 100644
--- a/web/themes/ventuno/assets/icons/icons.svg
+++ b/web/themes/ventuno/assets/icons/icons.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol class="bi bi-arrow-left" viewBox="0 0 16 16" id="arrow-left"><path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z"/></symbol><symbol class="bi bi-arrow-repeat" viewBox="0 0 16 16" id="arrow-repeat"><path d="M11.534 7h3.932a.25.25 0 0 1 .192.41l-1.966 2.36a.25.25 0 0 1-.384 0l-1.966-2.36a.25.25 0 0 1 .192-.41zm-11 2h3.932a.25.25 0 0 0 .192-.41L2.692 6.23a.25.25 0 0 0-.384 0L.342 8.59A.25.25 0 0 0 .534 9z"/><path fill-rule="evenodd" d="M8 3c-1.552 0-2.94.707-3.857 1.818a.5.5 0 1 1-.771-.636A6.002 6.002 0 0 1 13.917 7H12.9A5.002 5.002 0 0 0 8 3zM3.1 9a5.002 5.002 0 0 0 8.757 2.182.5.5 0 1 1 .771.636A6.002 6.002 0 0 1 2.083 9H3.1z"/></symbol><symbol class="bi bi-arrow-right" viewBox="0 0 16 16" id="arrow-right"><path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/></symbol><symbol class="bi bi-award" viewBox="0 0 16 16" id="award"><path d="M9.669.864 8 0 6.331.864l-1.858.282-.842 1.68-1.337 1.32L2.6 6l-.306 1.854 1.337 1.32.842 1.68 1.858.282L8 12l1.669-.864 1.858-.282.842-1.68 1.337-1.32L13.4 6l.306-1.854-1.337-1.32-.842-1.68L9.669.864zm1.196 1.193.684 1.365 1.086 1.072L12.387 6l.248 1.506-1.086 1.072-.684 1.365-1.51.229L8 10.874l-1.355-.702-1.51-.229-.684-1.365-1.086-1.072L3.614 6l-.25-1.506 1.087-1.072.684-1.365 1.51-.229L8 1.126l1.356.702 1.509.229z"/><path d="M4 11.794V16l4-1 4 1v-4.206l-2.018.306L8 13.126 6.018 12.1 4 11.794z"/></symbol><symbol class="bi bi-box-arrow-up-right" viewBox="0 0 16 16" id="box-arrow-up-right"><path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/><path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/></symbol><symbol class="bi bi-calendar" viewBox="0 0 16 16" id="calendar"><path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/></symbol><symbol class="bi bi-calendar-event" viewBox="0 0 16 16" id="calendar-event"><path d="M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1z"/><path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/></symbol><symbol class="bi bi-card-list" viewBox="0 0 16 16" id="card-list"><path d="M14.5 3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h13zm-13-1A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2h-13z"/><path d="M5 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 5 8zm0-2.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm0 5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-1-5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zM4 8a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm0 2.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z"/></symbol><symbol class="bi bi-caret-down-fill" viewBox="0 0 16 16" id="caret-down-fill"><path d="M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/></symbol><symbol class="bi bi-chat" viewBox="0 0 16 16" id="chat"><path d="M2.678 11.894a1 1 0 0 1 .287.801 10.97 10.97 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8.06 8.06 0 0 0 8 14c3.996 0 7-2.807 7-6 0-3.192-3.004-6-7-6S1 4.808 1 8c0 1.468.617 2.83 1.678 3.894zm-.493 3.905a21.682 21.682 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a9.68 9.68 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105z"/></symbol><symbol class="bi bi-chat-left-text" viewBox="0 0 16 16" id="chat-left-text"><path d="M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/><path d="M3 3.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zM3 6a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 6zm0 2.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-chat-square" viewBox="0 0 16 16" id="chat-square"><path d="M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-2.5a2 2 0 0 0-1.6.8L8 14.333 6.1 11.8a2 2 0 0 0-1.6-.8H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2.5a1 1 0 0 1 .8.4l1.9 2.533a1 1 0 0 0 1.6 0l1.9-2.533a1 1 0 0 1 .8-.4H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/></symbol><symbol class="bi bi-check-circle" viewBox="0 0 16 16" id="check-circle"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/></symbol><symbol class="bi bi-check-circle-fill" viewBox="0 0 16 16" id="check-circle-fill"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/></symbol><symbol class="bi bi-chevron-bar-left" viewBox="0 0 16 16" id="chevron-bar-left"><path fill-rule="evenodd" d="M11.854 3.646a.5.5 0 0 1 0 .708L8.207 8l3.647 3.646a.5.5 0 0 1-.708.708l-4-4a.5.5 0 0 1 0-.708l4-4a.5.5 0 0 1 .708 0zM4.5 1a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 1 0v-13a.5.5 0 0 0-.5-.5z"/></symbol><symbol class="bi bi-chevron-bar-right" viewBox="0 0 16 16" id="chevron-bar-right"><path fill-rule="evenodd" d="M4.146 3.646a.5.5 0 0 0 0 .708L7.793 8l-3.647 3.646a.5.5 0 0 0 .708.708l4-4a.5.5 0 0 0 0-.708l-4-4a.5.5 0 0 0-.708 0zM11.5 1a.5.5 0 0 1 .5.5v13a.5.5 0 0 1-1 0v-13a.5.5 0 0 1 .5-.5z"/></symbol><symbol class="bi bi-chevron-down" viewBox="0 0 16 16" id="chevron-down"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/></symbol><symbol class="bi bi-chevron-left" viewBox="0 0 16 16" id="chevron-left"><path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/></symbol><symbol class="bi bi-chevron-right" viewBox="0 0 16 16" id="chevron-right"><path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/></symbol><symbol class="bi bi-chevron-up" viewBox="0 0 16 16" id="chevron-up"><path fill-rule="evenodd" d="M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"/></symbol><symbol class="bi bi-clipboard2-check" viewBox="0 0 16 16" id="clipboard2-check"><path d="M9.5 0a.5.5 0 0 1 .5.5.5.5 0 0 0 .5.5.5.5 0 0 1 .5.5V2a.5.5 0 0 1-.5.5h-5A.5.5 0 0 1 5 2v-.5a.5.5 0 0 1 .5-.5.5.5 0 0 0 .5-.5.5.5 0 0 1 .5-.5h3Z"/><path d="M3 2.5a.5.5 0 0 1 .5-.5H4a.5.5 0 0 0 0-1h-.5A1.5 1.5 0 0 0 2 2.5v12A1.5 1.5 0 0 0 3.5 16h9a1.5 1.5 0 0 0 1.5-1.5v-12A1.5 1.5 0 0 0 12.5 1H12a.5.5 0 0 0 0 1h.5a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-12Z"/><path d="M10.854 7.854a.5.5 0 0 0-.708-.708L7.5 9.793 6.354 8.646a.5.5 0 1 0-.708.708l1.5 1.5a.5.5 0 0 0 .708 0l3-3Z"/></symbol><symbol class="bi bi-clock-history" viewBox="0 0 16 16" id="clock-history"><path d="M8.515 1.019A7 7 0 0 0 8 1V0a8 8 0 0 1 .589.022l-.074.997zm2.004.45a7.003 7.003 0 0 0-.985-.299l.219-.976c.383.086.76.2 1.126.342l-.36.933zm1.37.71a7.01 7.01 0 0 0-.439-.27l.493-.87a8.025 8.025 0 0 1 .979.654l-.615.789a6.996 6.996 0 0 0-.418-.302zm1.834 1.79a6.99 6.99 0 0 0-.653-.796l.724-.69c.27.285.52.59.747.91l-.818.576zm.744 1.352a7.08 7.08 0 0 0-.214-.468l.893-.45a7.976 7.976 0 0 1 .45 1.088l-.95.313a7.023 7.023 0 0 0-.179-.483zm.53 2.507a6.991 6.991 0 0 0-.1-1.025l.985-.17c.067.386.106.778.116 1.17l-1 .025zm-.131 1.538c.033-.17.06-.339.081-.51l.993.123a7.957 7.957 0 0 1-.23 1.155l-.964-.267c.046-.165.086-.332.12-.501zm-.952 2.379c.184-.29.346-.594.486-.908l.914.405c-.16.36-.345.706-.555 1.038l-.845-.535zm-.964 1.205c.122-.122.239-.248.35-.378l.758.653a8.073 8.073 0 0 1-.401.432l-.707-.707z"/><path d="M8 1a7 7 0 1 0 4.95 11.95l.707.707A8.001 8.001 0 1 1 8 0v1z"/><path d="M7.5 3a.5.5 0 0 1 .5.5v5.21l3.248 1.856a.5.5 0 0 1-.496.868l-3.5-2A.5.5 0 0 1 7 9V3.5a.5.5 0 0 1 .5-.5z"/></symbol><symbol class="bi bi-download" viewBox="0 0 16 16" id="download"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/></symbol><symbol class="bi bi-envelope-fill" viewBox="0 0 16 16" id="envelope-fill"><path d="M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414.05 3.555ZM0 4.697v7.104l5.803-3.558L0 4.697ZM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586l-1.239-.757Zm3.436-.586L16 11.801V4.697l-5.803 3.546Z"/></symbol><symbol class="bi bi-exclamation-circle-fill" viewBox="0 0 16 16" id="exclamation-circle-fill"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></symbol><symbol class="bi bi-exclamation-lg" viewBox="0 0 16 16" id="exclamation-lg"><path d="M7.005 3.1a1 1 0 1 1 1.99 0l-.388 6.35a.61.61 0 0 1-1.214 0L7.005 3.1ZM7 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z"/></symbol><symbol class="bi bi-exclamation-triangle-fill" viewBox="0 0 16 16" id="exclamation-triangle-fill"><path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/></symbol><symbol class="bi bi-exclamation-triangle-fill" viewBox="0 0 16 16" id="exclamation-triangle-fill"><path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/></symbol><symbol class="bi bi-eye" viewBox="0 0 16 16" id="eye"><path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/><path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/></symbol><symbol class="bi bi-facebook" viewBox="0 0 16 16" id="facebook"><path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951z"/></symbol><symbol class="bi bi-file-earmark" viewBox="0 0 16 16" id="file-earmark"><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/></symbol><symbol class="bi bi-file-earmark-medical" viewBox="0 0 16 16" id="file-earmark-medical"><path d="M7.5 5.5a.5.5 0 0 0-1 0v.634l-.549-.317a.5.5 0 1 0-.5.866L6 7l-.549.317a.5.5 0 1 0 .5.866l.549-.317V8.5a.5.5 0 1 0 1 0v-.634l.549.317a.5.5 0 1 0 .5-.866L8 7l.549-.317a.5.5 0 1 0-.5-.866l-.549.317V5.5zm-2 4.5a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 2a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5z"/><path d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z"/></symbol><symbol class="bi bi-file-earmark-play" viewBox="0 0 16 16" id="file-earmark-play"><path d="M6 6.883v4.234a.5.5 0 0 0 .757.429l3.528-2.117a.5.5 0 0 0 0-.858L6.757 6.454a.5.5 0 0 0-.757.43z"/><path d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z"/></symbol><symbol class="bi bi-file-earmark-plus" viewBox="0 0 16 16" id="file-earmark-plus"><path d="M8 6.5a.5.5 0 0 1 .5.5v1.5H10a.5.5 0 0 1 0 1H8.5V11a.5.5 0 0 1-1 0V9.5H6a.5.5 0 0 1 0-1h1.5V7a.5.5 0 0 1 .5-.5z"/><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/></symbol><symbol class="bi bi-file-earmark-post" viewBox="0 0 16 16" id="file-earmark-post"><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/><path d="M4 6.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5v-7zm0-3a.5.5 0 0 1 .5-.5H7a.5.5 0 0 1 0 1H4.5a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-file-earmark-richtext" viewBox="0 0 16 16" id="file-earmark-richtext"><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/><path d="M4.5 12.5A.5.5 0 0 1 5 12h3a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm0-2A.5.5 0 0 1 5 10h6a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm1.639-3.708 1.33.886 1.854-1.855a.25.25 0 0 1 .289-.047l1.888.974V8.5a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8s1.54-1.274 1.639-1.208zM6.25 6a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5z"/></symbol><symbol class="bi bi-file-earmark-text" viewBox="0 0 16 16" id="file-earmark-text"><path d="M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5z"/><path d="M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5L9.5 0zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/></symbol><symbol class="bi bi-file-earmark-zip" viewBox="0 0 16 16" id="file-earmark-zip"><path d="M5 7.5a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v.938l.4 1.599a1 1 0 0 1-.416 1.074l-.93.62a1 1 0 0 1-1.11 0l-.929-.62a1 1 0 0 1-.415-1.074L5 8.438V7.5zm2 0H6v.938a1 1 0 0 1-.03.243l-.4 1.598.93.62.929-.62-.4-1.598A1 1 0 0 1 7 8.438V7.5z"/><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1h-2v1h-1v1h1v1h-1v1h1v1H6V5H5V4h1V3H5V2h1V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/></symbol><symbol class="bi bi-file-font" viewBox="0 0 16 16" id="file-font"><path d="M10.943 4H5.057L5 6h.5c.18-1.096.356-1.192 1.694-1.235l.293-.01v6.09c0 .47-.1.582-.898.655v.5H9.41v-.5c-.803-.073-.903-.184-.903-.654V4.755l.298.01c1.338.043 1.514.14 1.694 1.235h.5l-.057-2z"/><path d="M4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H4zm0 1h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z"/></symbol><symbol class="bi bi-file-x" viewBox="0 0 16 16" id="file-x"><path d="M6.146 6.146a.5.5 0 0 1 .708 0L8 7.293l1.146-1.147a.5.5 0 1 1 .708.708L8.707 8l1.147 1.146a.5.5 0 0 1-.708.708L8 8.707 6.854 9.854a.5.5 0 0 1-.708-.708L7.293 8 6.146 6.854a.5.5 0 0 1 0-.708z"/><path d="M4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H4zm0 1h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z"/></symbol><symbol class="bi bi-filter" viewBox="0 0 16 16" id="filter"><path d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-folder2-open" viewBox="0 0 16 16" id="folder2-open"><path d="M1 3.5A1.5 1.5 0 0 1 2.5 2h2.764c.958 0 1.76.56 2.311 1.184C7.985 3.648 8.48 4 9 4h4.5A1.5 1.5 0 0 1 15 5.5v.64c.57.265.94.876.856 1.546l-.64 5.124A2.5 2.5 0 0 1 12.733 15H3.266a2.5 2.5 0 0 1-2.481-2.19l-.64-5.124A1.5 1.5 0 0 1 1 6.14V3.5zM2 6h12v-.5a.5.5 0 0 0-.5-.5H9c-.964 0-1.71-.629-2.174-1.154C6.374 3.334 5.82 3 5.264 3H2.5a.5.5 0 0 0-.5.5V6zm-.367 1a.5.5 0 0 0-.496.562l.64 5.124A1.5 1.5 0 0 0 3.266 14h9.468a1.5 1.5 0 0 0 1.489-1.314l.64-5.124A.5.5 0 0 0 14.367 7H1.633z"/></symbol><symbol class="bi bi-gear-fill" viewBox="0 0 16 16" id="gear-fill"><path d="M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z"/></symbol><symbol class="bi bi-geo-alt" viewBox="0 0 16 16" id="geo-alt"><path d="M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A31.493 31.493 0 0 1 8 14.58a31.481 31.481 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94zM8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10z"/><path d="M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"/></symbol><symbol class="bi bi-github" viewBox="0 0 16 16" id="github"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></symbol><symbol class="bi bi-hand-thumbs-up" viewBox="0 0 16 16" id="hand-thumbs-up"><path d="M8.864.046C7.908-.193 7.02.53 6.956 1.466c-.072 1.051-.23 2.016-.428 2.59-.125.36-.479 1.013-1.04 1.639-.557.623-1.282 1.178-2.131 1.41C2.685 7.288 2 7.87 2 8.72v4.001c0 .845.682 1.464 1.448 1.545 1.07.114 1.564.415 2.068.723l.048.03c.272.165.578.348.97.484.397.136.861.217 1.466.217h3.5c.937 0 1.599-.477 1.934-1.064a1.86 1.86 0 0 0 .254-.912c0-.152-.023-.312-.077-.464.201-.263.38-.578.488-.901.11-.33.172-.762.004-1.149.069-.13.12-.269.159-.403.077-.27.113-.568.113-.857 0-.288-.036-.585-.113-.856a2.144 2.144 0 0 0-.138-.362 1.9 1.9 0 0 0 .234-1.734c-.206-.592-.682-1.1-1.2-1.272-.847-.282-1.803-.276-2.516-.211a9.84 9.84 0 0 0-.443.05 9.365 9.365 0 0 0-.062-4.509A1.38 1.38 0 0 0 9.125.111L8.864.046zM11.5 14.721H8c-.51 0-.863-.069-1.14-.164-.281-.097-.506-.228-.776-.393l-.04-.024c-.555-.339-1.198-.731-2.49-.868-.333-.036-.554-.29-.554-.55V8.72c0-.254.226-.543.62-.65 1.095-.3 1.977-.996 2.614-1.708.635-.71 1.064-1.475 1.238-1.978.243-.7.407-1.768.482-2.85.025-.362.36-.594.667-.518l.262.066c.16.04.258.143.288.255a8.34 8.34 0 0 1-.145 4.725.5.5 0 0 0 .595.644l.003-.001.014-.003.058-.014a8.908 8.908 0 0 1 1.036-.157c.663-.06 1.457-.054 2.11.164.175.058.45.3.57.65.107.308.087.67-.266 1.022l-.353.353.353.354c.043.043.105.141.154.315.048.167.075.37.075.581 0 .212-.027.414-.075.582-.05.174-.111.272-.154.315l-.353.353.353.354c.047.047.109.177.005.488a2.224 2.224 0 0 1-.505.805l-.353.353.353.354c.006.005.041.05.041.17a.866.866 0 0 1-.121.416c-.165.288-.503.56-1.066.56z"/></symbol><symbol class="bi bi-hand-thumbs-up-fill" viewBox="0 0 16 16" id="hand-thumbs-up-fill"><path d="M6.956 1.745C7.021.81 7.908.087 8.864.325l.261.066c.463.116.874.456 1.012.965.22.816.533 2.511.062 4.51a9.84 9.84 0 0 1 .443-.051c.713-.065 1.669-.072 2.516.21.518.173.994.681 1.2 1.273.184.532.16 1.162-.234 1.733.058.119.103.242.138.363.077.27.113.567.113.856 0 .289-.036.586-.113.856-.039.135-.09.273-.16.404.169.387.107.819-.003 1.148a3.163 3.163 0 0 1-.488.901c.054.152.076.312.076.465 0 .305-.089.625-.253.912C13.1 15.522 12.437 16 11.5 16H8c-.605 0-1.07-.081-1.466-.218a4.82 4.82 0 0 1-.97-.484l-.048-.03c-.504-.307-.999-.609-2.068-.722C2.682 14.464 2 13.846 2 13V9c0-.85.685-1.432 1.357-1.615.849-.232 1.574-.787 2.132-1.41.56-.627.914-1.28 1.039-1.639.199-.575.356-1.539.428-2.59z"/></symbol><symbol class="bi bi-info-circle" viewBox="0 0 16 16" id="info-circle"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/></symbol><symbol class="bi bi-info-circle-fill" viewBox="0 0 16 16" id="info-circle-fill"><path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/></symbol><symbol class="bi bi-journal-text" viewBox="0 0 16 16" id="journal-text"><path d="M5 10.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"/><path d="M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2z"/><path d="M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1z"/></symbol><symbol class="bi bi-justify" viewBox="0 0 16 16" id="justify"><path fill-rule="evenodd" d="M2 12.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-lightning-charge" viewBox="0 0 16 16" id="lightning-charge"><path d="M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09zM4.157 8.5H7a.5.5 0 0 1 .478.647L6.11 13.59l5.732-6.09H9a.5.5 0 0 1-.478-.647L9.89 2.41 4.157 8.5z"/></symbol><symbol class="bi bi-link-45deg" viewBox="0 0 16 16" id="link-45deg"><path d="M4.715 6.542 3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1.002 1.002 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4.018 4.018 0 0 1-.128-1.287z"/><path d="M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 1 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 1 0-4.243-4.243L6.586 4.672z"/></symbol><symbol class="bi bi-linkedin" viewBox="0 0 16 16" id="linkedin"><path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4z"/></symbol><symbol class="bi bi-mastodon" viewBox="0 0 16 16" id="mastodon"><path d="M11.19 12.195c2.016-.24 3.77-1.475 3.99-2.603.348-1.778.32-4.339.32-4.339 0-3.47-2.286-4.488-2.286-4.488C12.062.238 10.083.017 8.027 0h-.05C5.92.017 3.942.238 2.79.765c0 0-2.285 1.017-2.285 4.488l-.002.662c-.004.64-.007 1.35.011 2.091.083 3.394.626 6.74 3.78 7.57 1.454.383 2.703.463 3.709.408 1.823-.1 2.847-.647 2.847-.647l-.06-1.317s-1.303.41-2.767.36c-1.45-.05-2.98-.156-3.215-1.928a3.614 3.614 0 0 1-.033-.496s1.424.346 3.228.428c1.103.05 2.137-.064 3.188-.189zm1.613-2.47H11.13v-4.08c0-.859-.364-1.295-1.091-1.295-.804 0-1.207.517-1.207 1.541v2.233H7.168V5.89c0-1.024-.403-1.541-1.207-1.541-.727 0-1.091.436-1.091 1.296v4.079H3.197V5.522c0-.859.22-1.541.66-2.046.456-.505 1.052-.764 1.793-.764.856 0 1.504.328 1.933.983L8 4.39l.417-.695c.429-.655 1.077-.983 1.934-.983.74 0 1.336.259 1.791.764.442.505.661 1.187.661 2.046v4.203z"/></symbol><symbol class="bi bi-newspaper" viewBox="0 0 16 16" id="newspaper"><path d="M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z"/><path d="M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z"/></symbol><symbol class="bi bi-patch-exclamation" viewBox="0 0 16 16" id="patch-exclamation"><path d="M7.001 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z"/><path d="m10.273 2.513-.921-.944.715-.698.622.637.89-.011a2.89 2.89 0 0 1 2.924 2.924l-.01.89.636.622a2.89 2.89 0 0 1 0 4.134l-.637.622.011.89a2.89 2.89 0 0 1-2.924 2.924l-.89-.01-.622.636a2.89 2.89 0 0 1-4.134 0l-.622-.637-.89.011a2.89 2.89 0 0 1-2.924-2.924l.01-.89-.636-.622a2.89 2.89 0 0 1 0-4.134l.637-.622-.011-.89a2.89 2.89 0 0 1 2.924-2.924l.89.01.622-.636a2.89 2.89 0 0 1 4.134 0l-.715.698a1.89 1.89 0 0 0-2.704 0l-.92.944-1.32-.016a1.89 1.89 0 0 0-1.911 1.912l.016 1.318-.944.921a1.89 1.89 0 0 0 0 2.704l.944.92-.016 1.32a1.89 1.89 0 0 0 1.912 1.911l1.318-.016.921.944a1.89 1.89 0 0 0 2.704 0l.92-.944 1.32.016a1.89 1.89 0 0 0 1.911-1.912l-.016-1.318.944-.921a1.89 1.89 0 0 0 0-2.704l-.944-.92.016-1.32a1.89 1.89 0 0 0-1.912-1.911l-1.318.016z"/></symbol><symbol class="bi bi-pencil-square" viewBox="0 0 16 16" id="pencil-square"><path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/><path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/></symbol><symbol class="bi bi-people" viewBox="0 0 16 16" id="people"><path d="M15 14s1 0 1-1-1-4-5-4-5 3-5 4 1 1 1 1h8Zm-7.978-1A.261.261 0 0 1 7 12.996c.001-.264.167-1.03.76-1.72C8.312 10.629 9.282 10 11 10c1.717 0 2.687.63 3.24 1.276.593.69.758 1.457.76 1.72l-.008.002a.274.274 0 0 1-.014.002H7.022ZM11 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM6.936 9.28a5.88 5.88 0 0 0-1.23-.247A7.35 7.35 0 0 0 5 9c-4 0-5 3-5 4 0 .667.333 1 1 1h4.216A2.238 2.238 0 0 1 5 13c0-1.01.377-2.042 1.09-2.904.243-.294.526-.569.846-.816ZM4.92 10A5.493 5.493 0 0 0 4 13H1c0-.26.164-1.03.76-1.724.545-.636 1.492-1.256 3.16-1.275ZM1.5 5.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm3-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"/></symbol><symbol class="bi bi-person-circle" viewBox="0 0 16 16" id="person-circle"><path d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/><path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-5.468 11.37C3.242 11.226 4.805 10 8 10s4.757 1.225 5.468 2.37A7 7 0 0 0 8 1z"/></symbol><symbol class="bi bi-person-workspace" viewBox="0 0 16 16" id="person-workspace"><path d="M4 16s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1H4Zm4-5.95a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"/><path d="M2 1a2 2 0 0 0-2 2v9.5A1.5 1.5 0 0 0 1.5 14h.653a5.373 5.373 0 0 1 1.066-2H1V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v9h-2.219c.554.654.89 1.373 1.066 2h.653a1.5 1.5 0 0 0 1.5-1.5V3a2 2 0 0 0-2-2H2Z"/></symbol><symbol class="bi bi-pin-angle-fill" viewBox="0 0 16 16" id="pin-angle-fill"><path d="M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146z"/></symbol><symbol class="bi bi-play-btn" viewBox="0 0 16 16" id="play-btn"><path d="M6.79 5.093A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814l-3.5-2.5z"/><path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z"/></symbol><symbol class="bi bi-plus" viewBox="0 0 16 16" id="plus"><path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z"/></symbol><symbol class="bi bi-question-lg" viewBox="0 0 16 16" id="question-lg"><path fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215 0 1.344-.665 2.288-1.79 2.973-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712 1.03-.632 1.397-1.135 1.397-2.028 0-.979-.758-1.698-1.926-1.698-1.009 0-1.71.529-1.938 1.402-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09 0-.618-.473-1.092-1.095-1.092-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"/></symbol><symbol class="bi bi-reply" viewBox="0 0 16 16" id="reply"><path d="M6.598 5.013a.144.144 0 0 1 .202.134V6.3a.5.5 0 0 0 .5.5c.667 0 2.013.005 3.3.822.984.624 1.99 1.76 2.595 3.876-1.02-.983-2.185-1.516-3.205-1.799a8.74 8.74 0 0 0-1.921-.306 7.404 7.404 0 0 0-.798.008h-.013l-.005.001h-.001L7.3 9.9l-.05-.498a.5.5 0 0 0-.45.498v1.153c0 .108-.11.176-.202.134L2.614 8.254a.503.503 0 0 0-.042-.028.147.147 0 0 1 0-.252.499.499 0 0 0 .042-.028l3.984-2.933zM7.8 10.386c.068 0 .143.003.223.006.434.02 1.034.086 1.7.271 1.326.368 2.896 1.202 3.94 3.08a.5.5 0 0 0 .933-.305c-.464-3.71-1.886-5.662-3.46-6.66-1.245-.79-2.527-.942-3.336-.971v-.66a1.144 1.144 0 0 0-1.767-.96l-3.994 2.94a1.147 1.147 0 0 0 0 1.946l3.994 2.94a1.144 1.144 0 0 0 1.767-.96v-.667z"/></symbol><symbol class="bi bi-search" viewBox="0 0 16 16" id="search"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/></symbol><symbol class="bi bi-star" viewBox="0 0 16 16" id="star"><path d="M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.523 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.565.565 0 0 0-.163-.505L1.71 6.745l4.052-.576a.525.525 0 0 0 .393-.288L8 2.223l1.847 3.658a.525.525 0 0 0 .393.288l4.052.575-2.906 2.77a.565.565 0 0 0-.163.506l.694 3.957-3.686-1.894a.503.503 0 0 0-.461 0z"/></symbol><symbol class="bi bi-three-dots" viewBox="0 0 16 16" id="three-dots"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"/></symbol><symbol class="bi bi-trash" viewBox="0 0 16 16" id="trash"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z"/><path fill-rule="evenodd" d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"/></symbol><symbol class="bi bi-twitter" viewBox="0 0 16 16" id="twitter"><path d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334 0-.14 0-.282-.006-.422A6.685 6.685 0 0 0 16 3.542a6.658 6.658 0 0 1-1.889.518 3.301 3.301 0 0 0 1.447-1.817 6.533 6.533 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.325 9.325 0 0 1-6.767-3.429 3.289 3.289 0 0 0 1.018 4.382A3.323 3.323 0 0 1 .64 6.575v.045a3.288 3.288 0 0 0 2.632 3.218 3.203 3.203 0 0 1-.865.115 3.23 3.23 0 0 1-.614-.057 3.283 3.283 0 0 0 3.067 2.277A6.588 6.588 0 0 1 .78 13.58a6.32 6.32 0 0 1-.78-.045A9.344 9.344 0 0 0 5.026 15z"/></symbol><symbol class="bi bi-type" viewBox="0 0 16 16" id="type"><path d="m2.244 13.081.943-2.803H6.66l.944 2.803H8.86L5.54 3.75H4.322L1 13.081h1.244zm2.7-7.923L6.34 9.314H3.51l1.4-4.156h.034zm9.146 7.027h.035v.896h1.128V8.125c0-1.51-1.114-2.345-2.646-2.345-1.736 0-2.59.916-2.666 2.174h1.108c.068-.718.595-1.19 1.517-1.19.971 0 1.518.52 1.518 1.464v.731H12.19c-1.647.007-2.522.8-2.522 2.058 0 1.319.957 2.18 2.345 2.18 1.06 0 1.716-.43 2.078-1.011zm-1.763.035c-.752 0-1.456-.397-1.456-1.244 0-.65.424-1.115 1.408-1.115h1.805v.834c0 .896-.752 1.525-1.757 1.525z"/></symbol><symbol class="bi bi-vimeo" viewBox="0 0 16 16" id="vimeo"><path d="M15.992 4.204c-.071 1.556-1.158 3.687-3.262 6.393-2.175 2.829-4.016 4.243-5.522 4.243-.933 0-1.722-.861-2.367-2.583L3.55 7.523C3.07 5.8 2.556 4.94 2.007 4.94c-.118 0-.537.253-1.254.754L0 4.724a209.56 209.56 0 0 0 2.334-2.081c1.054-.91 1.845-1.388 2.373-1.437 1.243-.123 2.01.728 2.298 2.553.31 1.968.526 3.19.646 3.666.36 1.631.756 2.446 1.186 2.445.334 0 .836-.53 1.508-1.587.671-1.058 1.03-1.863 1.077-2.415.096-.913-.263-1.37-1.077-1.37a3.022 3.022 0 0 0-1.185.261c.789-2.573 2.291-3.825 4.508-3.756 1.644.05 2.419 1.117 2.324 3.2z"/></symbol><symbol class="bi bi-x" viewBox="0 0 16 16" id="x"><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/></symbol><symbol class="bi bi-x-lg" viewBox="0 0 16 16" id="x-lg"><path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/></symbol><symbol class="bi bi-x-square-fill" viewBox="0 0 16 16" id="x-square-fill"><path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm3.354 4.646L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708z"/></symbol><symbol class="bi bi-youtube" viewBox="0 0 16 16" id="youtube"><path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z"/></symbol></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><symbol class="bi bi-archive-fill" viewBox="0 0 16 16" id="archive-fill"><path d="M12.643 15C13.979 15 15 13.845 15 12.5V5H1v7.5C1 13.845 2.021 15 3.357 15h9.286zM5.5 7h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1zM.8 1a.8.8 0 0 0-.8.8V3a.8.8 0 0 0 .8.8h14.4A.8.8 0 0 0 16 3V1.8a.8.8 0 0 0-.8-.8H.8z"/></symbol><symbol class="bi bi-arrow-left" viewBox="0 0 16 16" id="arrow-left"><path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z"/></symbol><symbol class="bi bi-arrow-repeat" viewBox="0 0 16 16" id="arrow-repeat"><path d="M11.534 7h3.932a.25.25 0 0 1 .192.41l-1.966 2.36a.25.25 0 0 1-.384 0l-1.966-2.36a.25.25 0 0 1 .192-.41zm-11 2h3.932a.25.25 0 0 0 .192-.41L2.692 6.23a.25.25 0 0 0-.384 0L.342 8.59A.25.25 0 0 0 .534 9z"/><path fill-rule="evenodd" d="M8 3c-1.552 0-2.94.707-3.857 1.818a.5.5 0 1 1-.771-.636A6.002 6.002 0 0 1 13.917 7H12.9A5.002 5.002 0 0 0 8 3zM3.1 9a5.002 5.002 0 0 0 8.757 2.182.5.5 0 1 1 .771.636A6.002 6.002 0 0 1 2.083 9H3.1z"/></symbol><symbol class="bi bi-arrow-right" viewBox="0 0 16 16" id="arrow-right"><path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/></symbol><symbol class="bi bi-award" viewBox="0 0 16 16" id="award"><path d="M9.669.864 8 0 6.331.864l-1.858.282-.842 1.68-1.337 1.32L2.6 6l-.306 1.854 1.337 1.32.842 1.68 1.858.282L8 12l1.669-.864 1.858-.282.842-1.68 1.337-1.32L13.4 6l.306-1.854-1.337-1.32-.842-1.68L9.669.864zm1.196 1.193.684 1.365 1.086 1.072L12.387 6l.248 1.506-1.086 1.072-.684 1.365-1.51.229L8 10.874l-1.355-.702-1.51-.229-.684-1.365-1.086-1.072L3.614 6l-.25-1.506 1.087-1.072.684-1.365 1.51-.229L8 1.126l1.356.702 1.509.229z"/><path d="M4 11.794V16l4-1 4 1v-4.206l-2.018.306L8 13.126 6.018 12.1 4 11.794z"/></symbol><symbol class="bi bi-box-arrow-up-right" viewBox="0 0 16 16" id="box-arrow-up-right"><path fill-rule="evenodd" d="M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z"/><path fill-rule="evenodd" d="M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z"/></symbol><symbol class="bi bi-calendar" viewBox="0 0 16 16" id="calendar"><path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/></symbol><symbol class="bi bi-calendar-event" viewBox="0 0 16 16" id="calendar-event"><path d="M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1z"/><path d="M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z"/></symbol><symbol class="bi bi-card-list" viewBox="0 0 16 16" id="card-list"><path d="M14.5 3a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h13zm-13-1A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2h-13z"/><path d="M5 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 5 8zm0-2.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm0 5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-1-5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zM4 8a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm0 2.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z"/></symbol><symbol class="bi bi-caret-down-fill" viewBox="0 0 16 16" id="caret-down-fill"><path d="M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/></symbol><symbol class="bi bi-chat" viewBox="0 0 16 16" id="chat"><path d="M2.678 11.894a1 1 0 0 1 .287.801 10.97 10.97 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8.06 8.06 0 0 0 8 14c3.996 0 7-2.807 7-6 0-3.192-3.004-6-7-6S1 4.808 1 8c0 1.468.617 2.83 1.678 3.894zm-.493 3.905a21.682 21.682 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a9.68 9.68 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105z"/></symbol><symbol class="bi bi-chat-left-text" viewBox="0 0 16 16" id="chat-left-text"><path d="M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/><path d="M3 3.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zM3 6a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 6zm0 2.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-chat-square" viewBox="0 0 16 16" id="chat-square"><path d="M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-2.5a2 2 0 0 0-1.6.8L8 14.333 6.1 11.8a2 2 0 0 0-1.6-.8H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2.5a1 1 0 0 1 .8.4l1.9 2.533a1 1 0 0 0 1.6 0l1.9-2.533a1 1 0 0 1 .8-.4H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"/></symbol><symbol class="bi bi-check-circle" viewBox="0 0 16 16" id="check-circle"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/></symbol><symbol class="bi bi-check-circle-fill" viewBox="0 0 16 16" id="check-circle-fill"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/></symbol><symbol class="bi bi-chevron-bar-left" viewBox="0 0 16 16" id="chevron-bar-left"><path fill-rule="evenodd" d="M11.854 3.646a.5.5 0 0 1 0 .708L8.207 8l3.647 3.646a.5.5 0 0 1-.708.708l-4-4a.5.5 0 0 1 0-.708l4-4a.5.5 0 0 1 .708 0zM4.5 1a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 1 0v-13a.5.5 0 0 0-.5-.5z"/></symbol><symbol class="bi bi-chevron-bar-right" viewBox="0 0 16 16" id="chevron-bar-right"><path fill-rule="evenodd" d="M4.146 3.646a.5.5 0 0 0 0 .708L7.793 8l-3.647 3.646a.5.5 0 0 0 .708.708l4-4a.5.5 0 0 0 0-.708l-4-4a.5.5 0 0 0-.708 0zM11.5 1a.5.5 0 0 1 .5.5v13a.5.5 0 0 1-1 0v-13a.5.5 0 0 1 .5-.5z"/></symbol><symbol class="bi bi-chevron-down" viewBox="0 0 16 16" id="chevron-down"><path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/></symbol><symbol class="bi bi-chevron-left" viewBox="0 0 16 16" id="chevron-left"><path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/></symbol><symbol class="bi bi-chevron-right" viewBox="0 0 16 16" id="chevron-right"><path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/></symbol><symbol class="bi bi-chevron-up" viewBox="0 0 16 16" id="chevron-up"><path fill-rule="evenodd" d="M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"/></symbol><symbol class="bi bi-clipboard2-check" viewBox="0 0 16 16" id="clipboard2-check"><path d="M9.5 0a.5.5 0 0 1 .5.5.5.5 0 0 0 .5.5.5.5 0 0 1 .5.5V2a.5.5 0 0 1-.5.5h-5A.5.5 0 0 1 5 2v-.5a.5.5 0 0 1 .5-.5.5.5 0 0 0 .5-.5.5.5 0 0 1 .5-.5h3Z"/><path d="M3 2.5a.5.5 0 0 1 .5-.5H4a.5.5 0 0 0 0-1h-.5A1.5 1.5 0 0 0 2 2.5v12A1.5 1.5 0 0 0 3.5 16h9a1.5 1.5 0 0 0 1.5-1.5v-12A1.5 1.5 0 0 0 12.5 1H12a.5.5 0 0 0 0 1h.5a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-12Z"/><path d="M10.854 7.854a.5.5 0 0 0-.708-.708L7.5 9.793 6.354 8.646a.5.5 0 1 0-.708.708l1.5 1.5a.5.5 0 0 0 .708 0l3-3Z"/></symbol><symbol class="bi bi-clock-history" viewBox="0 0 16 16" id="clock-history"><path d="M8.515 1.019A7 7 0 0 0 8 1V0a8 8 0 0 1 .589.022l-.074.997zm2.004.45a7.003 7.003 0 0 0-.985-.299l.219-.976c.383.086.76.2 1.126.342l-.36.933zm1.37.71a7.01 7.01 0 0 0-.439-.27l.493-.87a8.025 8.025 0 0 1 .979.654l-.615.789a6.996 6.996 0 0 0-.418-.302zm1.834 1.79a6.99 6.99 0 0 0-.653-.796l.724-.69c.27.285.52.59.747.91l-.818.576zm.744 1.352a7.08 7.08 0 0 0-.214-.468l.893-.45a7.976 7.976 0 0 1 .45 1.088l-.95.313a7.023 7.023 0 0 0-.179-.483zm.53 2.507a6.991 6.991 0 0 0-.1-1.025l.985-.17c.067.386.106.778.116 1.17l-1 .025zm-.131 1.538c.033-.17.06-.339.081-.51l.993.123a7.957 7.957 0 0 1-.23 1.155l-.964-.267c.046-.165.086-.332.12-.501zm-.952 2.379c.184-.29.346-.594.486-.908l.914.405c-.16.36-.345.706-.555 1.038l-.845-.535zm-.964 1.205c.122-.122.239-.248.35-.378l.758.653a8.073 8.073 0 0 1-.401.432l-.707-.707z"/><path d="M8 1a7 7 0 1 0 4.95 11.95l.707.707A8.001 8.001 0 1 1 8 0v1z"/><path d="M7.5 3a.5.5 0 0 1 .5.5v5.21l3.248 1.856a.5.5 0 0 1-.496.868l-3.5-2A.5.5 0 0 1 7 9V3.5a.5.5 0 0 1 .5-.5z"/></symbol><symbol class="bi bi-download" viewBox="0 0 16 16" id="download"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z"/></symbol><symbol class="bi bi-envelope-fill" viewBox="0 0 16 16" id="envelope-fill"><path d="M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414.05 3.555ZM0 4.697v7.104l5.803-3.558L0 4.697ZM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586l-1.239-.757Zm3.436-.586L16 11.801V4.697l-5.803 3.546Z"/></symbol><symbol class="bi bi-exclamation-circle-fill" viewBox="0 0 16 16" id="exclamation-circle-fill"><path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></symbol><symbol class="bi bi-exclamation-lg" viewBox="0 0 16 16" id="exclamation-lg"><path d="M7.005 3.1a1 1 0 1 1 1.99 0l-.388 6.35a.61.61 0 0 1-1.214 0L7.005 3.1ZM7 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0Z"/></symbol><symbol class="bi bi-exclamation-triangle-fill" viewBox="0 0 16 16" id="exclamation-triangle-fill"><path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/></symbol><symbol class="bi bi-exclamation-triangle-fill" viewBox="0 0 16 16" id="exclamation-triangle-fill"><path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/></symbol><symbol class="bi bi-eye" viewBox="0 0 16 16" id="eye"><path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/><path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/></symbol><symbol class="bi bi-facebook" viewBox="0 0 16 16" id="facebook"><path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951z"/></symbol><symbol class="bi bi-file-earmark" viewBox="0 0 16 16" id="file-earmark"><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/></symbol><symbol class="bi bi-file-earmark-medical" viewBox="0 0 16 16" id="file-earmark-medical"><path d="M7.5 5.5a.5.5 0 0 0-1 0v.634l-.549-.317a.5.5 0 1 0-.5.866L6 7l-.549.317a.5.5 0 1 0 .5.866l.549-.317V8.5a.5.5 0 1 0 1 0v-.634l.549.317a.5.5 0 1 0 .5-.866L8 7l.549-.317a.5.5 0 1 0-.5-.866l-.549.317V5.5zm-2 4.5a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zm0 2a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5z"/><path d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z"/></symbol><symbol class="bi bi-file-earmark-play" viewBox="0 0 16 16" id="file-earmark-play"><path d="M6 6.883v4.234a.5.5 0 0 0 .757.429l3.528-2.117a.5.5 0 0 0 0-.858L6.757 6.454a.5.5 0 0 0-.757.43z"/><path d="M14 14V4.5L9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2zM9.5 3A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5v2z"/></symbol><symbol class="bi bi-file-earmark-plus" viewBox="0 0 16 16" id="file-earmark-plus"><path d="M8 6.5a.5.5 0 0 1 .5.5v1.5H10a.5.5 0 0 1 0 1H8.5V11a.5.5 0 0 1-1 0V9.5H6a.5.5 0 0 1 0-1h1.5V7a.5.5 0 0 1 .5-.5z"/><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/></symbol><symbol class="bi bi-file-earmark-post" viewBox="0 0 16 16" id="file-earmark-post"><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/><path d="M4 6.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5v-7zm0-3a.5.5 0 0 1 .5-.5H7a.5.5 0 0 1 0 1H4.5a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-file-earmark-richtext" viewBox="0 0 16 16" id="file-earmark-richtext"><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/><path d="M4.5 12.5A.5.5 0 0 1 5 12h3a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm0-2A.5.5 0 0 1 5 10h6a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm1.639-3.708 1.33.886 1.854-1.855a.25.25 0 0 1 .289-.047l1.888.974V8.5a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8s1.54-1.274 1.639-1.208zM6.25 6a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5z"/></symbol><symbol class="bi bi-file-earmark-text" viewBox="0 0 16 16" id="file-earmark-text"><path d="M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1h-5zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5z"/><path d="M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5L9.5 0zm0 1v2A1.5 1.5 0 0 0 11 4.5h2V14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h5.5z"/></symbol><symbol class="bi bi-file-earmark-zip" viewBox="0 0 16 16" id="file-earmark-zip"><path d="M5 7.5a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v.938l.4 1.599a1 1 0 0 1-.416 1.074l-.93.62a1 1 0 0 1-1.11 0l-.929-.62a1 1 0 0 1-.415-1.074L5 8.438V7.5zm2 0H6v.938a1 1 0 0 1-.03.243l-.4 1.598.93.62.929-.62-.4-1.598A1 1 0 0 1 7 8.438V7.5z"/><path d="M14 4.5V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h5.5L14 4.5zm-3 0A1.5 1.5 0 0 1 9.5 3V1h-2v1h-1v1h1v1h-1v1h1v1H6V5H5V4h1V3H5V2h1V1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h-2z"/></symbol><symbol class="bi bi-file-font" viewBox="0 0 16 16" id="file-font"><path d="M10.943 4H5.057L5 6h.5c.18-1.096.356-1.192 1.694-1.235l.293-.01v6.09c0 .47-.1.582-.898.655v.5H9.41v-.5c-.803-.073-.903-.184-.903-.654V4.755l.298.01c1.338.043 1.514.14 1.694 1.235h.5l-.057-2z"/><path d="M4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H4zm0 1h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z"/></symbol><symbol class="bi bi-file-x" viewBox="0 0 16 16" id="file-x"><path d="M6.146 6.146a.5.5 0 0 1 .708 0L8 7.293l1.146-1.147a.5.5 0 1 1 .708.708L8.707 8l1.147 1.146a.5.5 0 0 1-.708.708L8 8.707 6.854 9.854a.5.5 0 0 1-.708-.708L7.293 8 6.146 6.854a.5.5 0 0 1 0-.708z"/><path d="M4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H4zm0 1h8a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z"/></symbol><symbol class="bi bi-filter" viewBox="0 0 16 16" id="filter"><path d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-folder2-open" viewBox="0 0 16 16" id="folder2-open"><path d="M1 3.5A1.5 1.5 0 0 1 2.5 2h2.764c.958 0 1.76.56 2.311 1.184C7.985 3.648 8.48 4 9 4h4.5A1.5 1.5 0 0 1 15 5.5v.64c.57.265.94.876.856 1.546l-.64 5.124A2.5 2.5 0 0 1 12.733 15H3.266a2.5 2.5 0 0 1-2.481-2.19l-.64-5.124A1.5 1.5 0 0 1 1 6.14V3.5zM2 6h12v-.5a.5.5 0 0 0-.5-.5H9c-.964 0-1.71-.629-2.174-1.154C6.374 3.334 5.82 3 5.264 3H2.5a.5.5 0 0 0-.5.5V6zm-.367 1a.5.5 0 0 0-.496.562l.64 5.124A1.5 1.5 0 0 0 3.266 14h9.468a1.5 1.5 0 0 0 1.489-1.314l.64-5.124A.5.5 0 0 0 14.367 7H1.633z"/></symbol><symbol class="bi bi-gear-fill" viewBox="0 0 16 16" id="gear-fill"><path d="M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z"/></symbol><symbol class="bi bi-geo-alt" viewBox="0 0 16 16" id="geo-alt"><path d="M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A31.493 31.493 0 0 1 8 14.58a31.481 31.481 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94zM8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10z"/><path d="M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"/></symbol><symbol class="bi bi-github" viewBox="0 0 16 16" id="github"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></symbol><symbol class="bi bi-hand-thumbs-up" viewBox="0 0 16 16" id="hand-thumbs-up"><path d="M8.864.046C7.908-.193 7.02.53 6.956 1.466c-.072 1.051-.23 2.016-.428 2.59-.125.36-.479 1.013-1.04 1.639-.557.623-1.282 1.178-2.131 1.41C2.685 7.288 2 7.87 2 8.72v4.001c0 .845.682 1.464 1.448 1.545 1.07.114 1.564.415 2.068.723l.048.03c.272.165.578.348.97.484.397.136.861.217 1.466.217h3.5c.937 0 1.599-.477 1.934-1.064a1.86 1.86 0 0 0 .254-.912c0-.152-.023-.312-.077-.464.201-.263.38-.578.488-.901.11-.33.172-.762.004-1.149.069-.13.12-.269.159-.403.077-.27.113-.568.113-.857 0-.288-.036-.585-.113-.856a2.144 2.144 0 0 0-.138-.362 1.9 1.9 0 0 0 .234-1.734c-.206-.592-.682-1.1-1.2-1.272-.847-.282-1.803-.276-2.516-.211a9.84 9.84 0 0 0-.443.05 9.365 9.365 0 0 0-.062-4.509A1.38 1.38 0 0 0 9.125.111L8.864.046zM11.5 14.721H8c-.51 0-.863-.069-1.14-.164-.281-.097-.506-.228-.776-.393l-.04-.024c-.555-.339-1.198-.731-2.49-.868-.333-.036-.554-.29-.554-.55V8.72c0-.254.226-.543.62-.65 1.095-.3 1.977-.996 2.614-1.708.635-.71 1.064-1.475 1.238-1.978.243-.7.407-1.768.482-2.85.025-.362.36-.594.667-.518l.262.066c.16.04.258.143.288.255a8.34 8.34 0 0 1-.145 4.725.5.5 0 0 0 .595.644l.003-.001.014-.003.058-.014a8.908 8.908 0 0 1 1.036-.157c.663-.06 1.457-.054 2.11.164.175.058.45.3.57.65.107.308.087.67-.266 1.022l-.353.353.353.354c.043.043.105.141.154.315.048.167.075.37.075.581 0 .212-.027.414-.075.582-.05.174-.111.272-.154.315l-.353.353.353.354c.047.047.109.177.005.488a2.224 2.224 0 0 1-.505.805l-.353.353.353.354c.006.005.041.05.041.17a.866.866 0 0 1-.121.416c-.165.288-.503.56-1.066.56z"/></symbol><symbol class="bi bi-hand-thumbs-up-fill" viewBox="0 0 16 16" id="hand-thumbs-up-fill"><path d="M6.956 1.745C7.021.81 7.908.087 8.864.325l.261.066c.463.116.874.456 1.012.965.22.816.533 2.511.062 4.51a9.84 9.84 0 0 1 .443-.051c.713-.065 1.669-.072 2.516.21.518.173.994.681 1.2 1.273.184.532.16 1.162-.234 1.733.058.119.103.242.138.363.077.27.113.567.113.856 0 .289-.036.586-.113.856-.039.135-.09.273-.16.404.169.387.107.819-.003 1.148a3.163 3.163 0 0 1-.488.901c.054.152.076.312.076.465 0 .305-.089.625-.253.912C13.1 15.522 12.437 16 11.5 16H8c-.605 0-1.07-.081-1.466-.218a4.82 4.82 0 0 1-.97-.484l-.048-.03c-.504-.307-.999-.609-2.068-.722C2.682 14.464 2 13.846 2 13V9c0-.85.685-1.432 1.357-1.615.849-.232 1.574-.787 2.132-1.41.56-.627.914-1.28 1.039-1.639.199-.575.356-1.539.428-2.59z"/></symbol><symbol class="bi bi-info-circle" viewBox="0 0 16 16" id="info-circle"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/><path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/></symbol><symbol class="bi bi-info-circle-fill" viewBox="0 0 16 16" id="info-circle-fill"><path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/></symbol><symbol class="bi bi-journal-text" viewBox="0 0 16 16" id="journal-text"><path d="M5 10.5a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm0-2a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"/><path d="M3 0h10a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2v-1h1v1a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v1H1V2a2 2 0 0 1 2-2z"/><path d="M1 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H1z"/></symbol><symbol class="bi bi-justify" viewBox="0 0 16 16" id="justify"><path fill-rule="evenodd" d="M2 12.5a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5zm0-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></symbol><symbol class="bi bi-lightning-charge" viewBox="0 0 16 16" id="lightning-charge"><path d="M11.251.068a.5.5 0 0 1 .227.58L9.677 6.5H13a.5.5 0 0 1 .364.843l-8 8.5a.5.5 0 0 1-.842-.49L6.323 9.5H3a.5.5 0 0 1-.364-.843l8-8.5a.5.5 0 0 1 .615-.09zM4.157 8.5H7a.5.5 0 0 1 .478.647L6.11 13.59l5.732-6.09H9a.5.5 0 0 1-.478-.647L9.89 2.41 4.157 8.5z"/></symbol><symbol class="bi bi-link-45deg" viewBox="0 0 16 16" id="link-45deg"><path d="M4.715 6.542 3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1.002 1.002 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4.018 4.018 0 0 1-.128-1.287z"/><path d="M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 1 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 1 0-4.243-4.243L6.586 4.672z"/></symbol><symbol class="bi bi-linkedin" viewBox="0 0 16 16" id="linkedin"><path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4z"/></symbol><symbol class="bi bi-mastodon" viewBox="0 0 16 16" id="mastodon"><path d="M11.19 12.195c2.016-.24 3.77-1.475 3.99-2.603.348-1.778.32-4.339.32-4.339 0-3.47-2.286-4.488-2.286-4.488C12.062.238 10.083.017 8.027 0h-.05C5.92.017 3.942.238 2.79.765c0 0-2.285 1.017-2.285 4.488l-.002.662c-.004.64-.007 1.35.011 2.091.083 3.394.626 6.74 3.78 7.57 1.454.383 2.703.463 3.709.408 1.823-.1 2.847-.647 2.847-.647l-.06-1.317s-1.303.41-2.767.36c-1.45-.05-2.98-.156-3.215-1.928a3.614 3.614 0 0 1-.033-.496s1.424.346 3.228.428c1.103.05 2.137-.064 3.188-.189zm1.613-2.47H11.13v-4.08c0-.859-.364-1.295-1.091-1.295-.804 0-1.207.517-1.207 1.541v2.233H7.168V5.89c0-1.024-.403-1.541-1.207-1.541-.727 0-1.091.436-1.091 1.296v4.079H3.197V5.522c0-.859.22-1.541.66-2.046.456-.505 1.052-.764 1.793-.764.856 0 1.504.328 1.933.983L8 4.39l.417-.695c.429-.655 1.077-.983 1.934-.983.74 0 1.336.259 1.791.764.442.505.661 1.187.661 2.046v4.203z"/></symbol><symbol class="bi bi-newspaper" viewBox="0 0 16 16" id="newspaper"><path d="M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z"/><path d="M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z"/></symbol><symbol class="bi bi-patch-exclamation" viewBox="0 0 16 16" id="patch-exclamation"><path d="M7.001 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.553.553 0 0 1-1.1 0L7.1 4.995z"/><path d="m10.273 2.513-.921-.944.715-.698.622.637.89-.011a2.89 2.89 0 0 1 2.924 2.924l-.01.89.636.622a2.89 2.89 0 0 1 0 4.134l-.637.622.011.89a2.89 2.89 0 0 1-2.924 2.924l-.89-.01-.622.636a2.89 2.89 0 0 1-4.134 0l-.622-.637-.89.011a2.89 2.89 0 0 1-2.924-2.924l.01-.89-.636-.622a2.89 2.89 0 0 1 0-4.134l.637-.622-.011-.89a2.89 2.89 0 0 1 2.924-2.924l.89.01.622-.636a2.89 2.89 0 0 1 4.134 0l-.715.698a1.89 1.89 0 0 0-2.704 0l-.92.944-1.32-.016a1.89 1.89 0 0 0-1.911 1.912l.016 1.318-.944.921a1.89 1.89 0 0 0 0 2.704l.944.92-.016 1.32a1.89 1.89 0 0 0 1.912 1.911l1.318-.016.921.944a1.89 1.89 0 0 0 2.704 0l.92-.944 1.32.016a1.89 1.89 0 0 0 1.911-1.912l-.016-1.318.944-.921a1.89 1.89 0 0 0 0-2.704l-.944-.92.016-1.32a1.89 1.89 0 0 0-1.912-1.911l-1.318.016z"/></symbol><symbol class="bi bi-pencil-square" viewBox="0 0 16 16" id="pencil-square"><path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/><path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/></symbol><symbol class="bi bi-people" viewBox="0 0 16 16" id="people"><path d="M15 14s1 0 1-1-1-4-5-4-5 3-5 4 1 1 1 1h8Zm-7.978-1A.261.261 0 0 1 7 12.996c.001-.264.167-1.03.76-1.72C8.312 10.629 9.282 10 11 10c1.717 0 2.687.63 3.24 1.276.593.69.758 1.457.76 1.72l-.008.002a.274.274 0 0 1-.014.002H7.022ZM11 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM6.936 9.28a5.88 5.88 0 0 0-1.23-.247A7.35 7.35 0 0 0 5 9c-4 0-5 3-5 4 0 .667.333 1 1 1h4.216A2.238 2.238 0 0 1 5 13c0-1.01.377-2.042 1.09-2.904.243-.294.526-.569.846-.816ZM4.92 10A5.493 5.493 0 0 0 4 13H1c0-.26.164-1.03.76-1.724.545-.636 1.492-1.256 3.16-1.275ZM1.5 5.5a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm3-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"/></symbol><symbol class="bi bi-person-circle" viewBox="0 0 16 16" id="person-circle"><path d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/><path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-5.468 11.37C3.242 11.226 4.805 10 8 10s4.757 1.225 5.468 2.37A7 7 0 0 0 8 1z"/></symbol><symbol class="bi bi-person-workspace" viewBox="0 0 16 16" id="person-workspace"><path d="M4 16s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1H4Zm4-5.95a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"/><path d="M2 1a2 2 0 0 0-2 2v9.5A1.5 1.5 0 0 0 1.5 14h.653a5.373 5.373 0 0 1 1.066-2H1V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v9h-2.219c.554.654.89 1.373 1.066 2h.653a1.5 1.5 0 0 0 1.5-1.5V3a2 2 0 0 0-2-2H2Z"/></symbol><symbol class="bi bi-pin-angle-fill" viewBox="0 0 16 16" id="pin-angle-fill"><path d="M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a5.927 5.927 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707-.195-.195.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a5.922 5.922 0 0 1 1.013.16l3.134-3.133a2.772 2.772 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146z"/></symbol><symbol class="bi bi-play-btn" viewBox="0 0 16 16" id="play-btn"><path d="M6.79 5.093A.5.5 0 0 0 6 5.5v5a.5.5 0 0 0 .79.407l3.5-2.5a.5.5 0 0 0 0-.814l-3.5-2.5z"/><path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z"/></symbol><symbol class="bi bi-plus" viewBox="0 0 16 16" id="plus"><path d="M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z"/></symbol><symbol class="bi bi-question-lg" viewBox="0 0 16 16" id="question-lg"><path fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215 0 1.344-.665 2.288-1.79 2.973-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712 1.03-.632 1.397-1.135 1.397-2.028 0-.979-.758-1.698-1.926-1.698-1.009 0-1.71.529-1.938 1.402-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09 0-.618-.473-1.092-1.095-1.092-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"/></symbol><symbol class="bi bi-reply" viewBox="0 0 16 16" id="reply"><path d="M6.598 5.013a.144.144 0 0 1 .202.134V6.3a.5.5 0 0 0 .5.5c.667 0 2.013.005 3.3.822.984.624 1.99 1.76 2.595 3.876-1.02-.983-2.185-1.516-3.205-1.799a8.74 8.74 0 0 0-1.921-.306 7.404 7.404 0 0 0-.798.008h-.013l-.005.001h-.001L7.3 9.9l-.05-.498a.5.5 0 0 0-.45.498v1.153c0 .108-.11.176-.202.134L2.614 8.254a.503.503 0 0 0-.042-.028.147.147 0 0 1 0-.252.499.499 0 0 0 .042-.028l3.984-2.933zM7.8 10.386c.068 0 .143.003.223.006.434.02 1.034.086 1.7.271 1.326.368 2.896 1.202 3.94 3.08a.5.5 0 0 0 .933-.305c-.464-3.71-1.886-5.662-3.46-6.66-1.245-.79-2.527-.942-3.336-.971v-.66a1.144 1.144 0 0 0-1.767-.96l-3.994 2.94a1.147 1.147 0 0 0 0 1.946l3.994 2.94a1.144 1.144 0 0 0 1.767-.96v-.667z"/></symbol><symbol class="bi bi-search" viewBox="0 0 16 16" id="search"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/></symbol><symbol class="bi bi-star" viewBox="0 0 16 16" id="star"><path d="M2.866 14.85c-.078.444.36.791.746.593l4.39-2.256 4.389 2.256c.386.198.824-.149.746-.592l-.83-4.73 3.522-3.356c.33-.314.16-.888-.282-.95l-4.898-.696L8.465.792a.513.513 0 0 0-.927 0L5.354 5.12l-4.898.696c-.441.062-.612.636-.283.95l3.523 3.356-.83 4.73zm4.905-2.767-3.686 1.894.694-3.957a.565.565 0 0 0-.163-.505L1.71 6.745l4.052-.576a.525.525 0 0 0 .393-.288L8 2.223l1.847 3.658a.525.525 0 0 0 .393.288l4.052.575-2.906 2.77a.565.565 0 0 0-.163.506l.694 3.957-3.686-1.894a.503.503 0 0 0-.461 0z"/></symbol><symbol class="bi bi-three-dots" viewBox="0 0 16 16" id="three-dots"><path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"/></symbol><symbol class="bi bi-trash" viewBox="0 0 16 16" id="trash"><path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z"/><path fill-rule="evenodd" d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"/></symbol><symbol class="bi bi-twitter" viewBox="0 0 16 16" id="twitter"><path d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334 0-.14 0-.282-.006-.422A6.685 6.685 0 0 0 16 3.542a6.658 6.658 0 0 1-1.889.518 3.301 3.301 0 0 0 1.447-1.817 6.533 6.533 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.325 9.325 0 0 1-6.767-3.429 3.289 3.289 0 0 0 1.018 4.382A3.323 3.323 0 0 1 .64 6.575v.045a3.288 3.288 0 0 0 2.632 3.218 3.203 3.203 0 0 1-.865.115 3.23 3.23 0 0 1-.614-.057 3.283 3.283 0 0 0 3.067 2.277A6.588 6.588 0 0 1 .78 13.58a6.32 6.32 0 0 1-.78-.045A9.344 9.344 0 0 0 5.026 15z"/></symbol><symbol class="bi bi-type" viewBox="0 0 16 16" id="type"><path d="m2.244 13.081.943-2.803H6.66l.944 2.803H8.86L5.54 3.75H4.322L1 13.081h1.244zm2.7-7.923L6.34 9.314H3.51l1.4-4.156h.034zm9.146 7.027h.035v.896h1.128V8.125c0-1.51-1.114-2.345-2.646-2.345-1.736 0-2.59.916-2.666 2.174h1.108c.068-.718.595-1.19 1.517-1.19.971 0 1.518.52 1.518 1.464v.731H12.19c-1.647.007-2.522.8-2.522 2.058 0 1.319.957 2.18 2.345 2.18 1.06 0 1.716-.43 2.078-1.011zm-1.763.035c-.752 0-1.456-.397-1.456-1.244 0-.65.424-1.115 1.408-1.115h1.805v.834c0 .896-.752 1.525-1.757 1.525z"/></symbol><symbol class="bi bi-vimeo" viewBox="0 0 16 16" id="vimeo"><path d="M15.992 4.204c-.071 1.556-1.158 3.687-3.262 6.393-2.175 2.829-4.016 4.243-5.522 4.243-.933 0-1.722-.861-2.367-2.583L3.55 7.523C3.07 5.8 2.556 4.94 2.007 4.94c-.118 0-.537.253-1.254.754L0 4.724a209.56 209.56 0 0 0 2.334-2.081c1.054-.91 1.845-1.388 2.373-1.437 1.243-.123 2.01.728 2.298 2.553.31 1.968.526 3.19.646 3.666.36 1.631.756 2.446 1.186 2.445.334 0 .836-.53 1.508-1.587.671-1.058 1.03-1.863 1.077-2.415.096-.913-.263-1.37-1.077-1.37a3.022 3.022 0 0 0-1.185.261c.789-2.573 2.291-3.825 4.508-3.756 1.644.05 2.419 1.117 2.324 3.2z"/></symbol><symbol class="bi bi-x" viewBox="0 0 16 16" id="x"><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/></symbol><symbol class="bi bi-x-lg" viewBox="0 0 16 16" id="x-lg"><path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/></symbol><symbol class="bi bi-x-square-fill" viewBox="0 0 16 16" id="x-square-fill"><path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm3.354 4.646L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 1 1 .708-.708z"/></symbol><symbol class="bi bi-youtube" viewBox="0 0 16 16" id="youtube"><path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408L6.4 5.209z"/></symbol></svg>
\ No newline at end of file
diff --git a/web/themes/ventuno/bcl-builder.config.js b/web/themes/ventuno/bcl-builder.config.js
index 0f73c05785055dd3ac6348c30370323fd5725d7d..05de6223b73692dfdb1fa675017e52c4393301db 100644
--- a/web/themes/ventuno/bcl-builder.config.js
+++ b/web/themes/ventuno/bcl-builder.config.js
@@ -710,6 +710,7 @@ module.exports = {
       options: {
         file: "icons.svg",
         list: [
+          "archive-fill.svg",
           "arrow-left.svg",
           "arrow-repeat.svg",
           "arrow-right.svg",
diff --git a/web/themes/ventuno/includes/facets.inc b/web/themes/ventuno/includes/facets.inc
new file mode 100644
index 0000000000000000000000000000000000000000..6d5dedf63859e9a1b57ae780f72460b11971a026
--- /dev/null
+++ b/web/themes/ventuno/includes/facets.inc
@@ -0,0 +1,52 @@
+<?php
+
+/**
+ * @file
+ * Facets specific procedural functions.
+ */
+
+declare(strict_types = 1);
+
+/**
+ * Implements hook_preprocess_facets_item_list__checkbox__field_collection_content_status().
+ *
+ * Adds the necessary classes to theme the facet checkbox as a switch.
+ */
+function ventuno_preprocess_facets_item_list__checkbox__field_collection_content_status(array &$variables): void {
+  _ventuno_preprocess_facets_item_list__checkbox__status($variables);
+}
+
+/**
+ * Implements hook_preprocess_facets_item_list__checkbox__field_is_content_status().
+ */
+function ventuno_preprocess_facets_item_list__checkbox__field_is_content_status(array &$variables): void {
+  _ventuno_preprocess_facets_item_list__checkbox__status($variables);
+}
+
+/**
+ * Implements hook_preprocess_facets_item_list__checkbox__user_status().
+ */
+function ventuno_preprocess_facets_item_list__checkbox__user_status(array &$variables): void {
+  _ventuno_preprocess_facets_item_list__checkbox__status($variables);
+}
+
+/**
+ * Implements hook_preprocess_facets_item_list__checkbox__content_listing_status().
+ */
+function ventuno_preprocess_facets_item_list__checkbox__content_listing_status(array &$variables): void {
+  _ventuno_preprocess_facets_item_list__checkbox__status($variables);
+}
+
+/**
+ * Adds the necessary classes to theme the facet checkbox as a switch.
+ *
+ * @param array $variables
+ *   The array of variables.
+ */
+function _ventuno_preprocess_facets_item_list__checkbox__status(array &$variables): void {
+  $variables['attributes']['class'][] = 'list-unstyled';
+  foreach ($variables['items'] as $key => $item) {
+    $variables['items'][$key]['attributes']['class'][] = 'form-check form-switch';
+    $variables['items'][$key]['value']['#attributes']['data-drupal-facet-widget-element-class'] = 'form-check-input';
+  }
+}
diff --git a/web/themes/ventuno/includes/layout.inc b/web/themes/ventuno/includes/layout.inc
index 2de8dfdb0a08bb10d227a4213fe374b57f42b112..28045da8a034c7f31d210ba584c65ef98b1681e7 100644
--- a/web/themes/ventuno/includes/layout.inc
+++ b/web/themes/ventuno/includes/layout.inc
@@ -145,3 +145,11 @@ function ventuno_preprocess_container(array &$variables): void {
     }
   }
 }
+
+/**
+ * Implements hook_preprocess_container__facet_region__top().
+ */
+function ventuno_preprocess_container__facet_region__top(array &$variables): void {
+  $classes = 'd-flex align-items-baseline border-bottom my-5 flex-wrap justify-content-between';
+  $variables['attributes']['class'][] = $classes;
+}
diff --git a/web/themes/ventuno/includes/page_title.inc b/web/themes/ventuno/includes/page_title.inc
index 3c46146bcfc785e8b7835cb1d403f8bd53a59d77..8a6bb62af58b006575fa9408985143b3349a9b25 100644
--- a/web/themes/ventuno/includes/page_title.inc
+++ b/web/themes/ventuno/includes/page_title.inc
@@ -8,6 +8,7 @@
 declare(strict_types = 1);
 
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 
 /**
  * Implements hook_preprocess_page_title().
@@ -41,6 +42,10 @@ function ventuno_preprocess_page_title(array &$variables): void {
     $solution = \Drupal::routeMatch()->getParameter('rdf_entity');
     $variables['title'] = t('EIF Perspective attributes of @title', ['@title' => $solution->label()]);
   }
+
+  if ($entity instanceof ArchivableEntityInterface) {
+    $variables['additional_content']['is_archived'] = $entity->isArchived();
+  }
 }
 
 /**
diff --git a/web/themes/ventuno/includes/tables.inc b/web/themes/ventuno/includes/tables.inc
index 5872f1a2292c1255d021603f9c4db9b08ec10669..f91cf92ab7feea37ba93e5a410850f9987eda4d0 100644
--- a/web/themes/ventuno/includes/tables.inc
+++ b/web/themes/ventuno/includes/tables.inc
@@ -30,7 +30,7 @@ function ventuno_preprocess_table__file_formatter_table(array &$variables): void
 function ventuno_preprocess_table(array &$variables): void {
   // Theme the table showing topics in
   // /admin/structure/entityqueue/homepage_topics/homepage_topics.
-  if ($variables['attributes']['id'] === 'items-values') {
+  if (array_key_exists('id', $variables['attributes']) && $variables['attributes']['id'] === 'items-values') {
     unset($variables['header']);
     $variables['attributes']['class'][] = 'form-table';
   }
diff --git a/web/themes/ventuno/includes/utility.inc b/web/themes/ventuno/includes/utility.inc
index 1c5097157ca7a667147e8cc604b0363644b2d6b9..f4ebb8a3aaf1bab6ddb39b770d64734b77a088e3 100644
--- a/web/themes/ventuno/includes/utility.inc
+++ b/web/themes/ventuno/includes/utility.inc
@@ -12,6 +12,7 @@
 use Drupal\joinup_bundle_class\LogoInterface;
 use Drupal\joinup_community_content\Entity\CommunityContentInterface;
 use Drupal\joinup_core\Controller\IdRedirect;
+use Drupal\joinup_workflow\ArchivableEntityInterface;
 use Drupal\smart_trim\Truncate\TruncateHTML;
 use Drupal\topic\Entity\TopicReferencingEntityInterface;
 
@@ -232,6 +233,13 @@ function _ventuno_preprocess_tile(array &$variables, string $entity_type_id): vo
       $variables['info'] = NULL;
       break;
   }
+
+  if ($entity instanceof ArchivableEntityInterface && $entity->isArchived()) {
+    $variables['extra_data'][] = [
+      'icon' => 'archive-fill',
+      'label' => t('Archived'),
+    ];
+  }
 }
 
 /**
diff --git a/web/themes/ventuno/src/scss/components/_tabs.scss b/web/themes/ventuno/src/scss/components/_tabs.scss
index b38849dc33ddf9fd6dd68aa6841fdd972f886df8..efdd57791fd7ac748c6996c43127d6605e8d3df6 100644
--- a/web/themes/ventuno/src/scss/components/_tabs.scss
+++ b/web/themes/ventuno/src/scss/components/_tabs.scss
@@ -1,14 +1,9 @@
 .tabs--content-type {
   position: relative;
-  width: 100%;
   padding: 0;
   overflow-x: auto;
   overflow-y: hidden;
-  border-bottom: 1px solid $gray-300;
-  margin-top: $spacer * 3.5;
-  margin-bottom: $spacer * 2;
   .nav-tabs {
-    width: 100%;
     overflow-x: auto;
     display: inline-flex;
     flex-wrap: nowrap;
diff --git a/web/themes/ventuno/src/scss/core/overrides/_utilities.scss b/web/themes/ventuno/src/scss/core/overrides/_utilities.scss
index e442fb027c8a7dc33bb3966a87b5851c6a003a89..52b6504ec072ed19b0d152c322391ac60bf0122c 100644
--- a/web/themes/ventuno/src/scss/core/overrides/_utilities.scss
+++ b/web/themes/ventuno/src/scss/core/overrides/_utilities.scss
@@ -41,7 +41,15 @@ $utilities: map-merge(
     "min-viewport-height": null,
     "flex": null,
     "flex-grow": null,
-    "flex-shrink": null,
+    "flex-shrink":  (
+      responsive: false,
+      property: flex-shrink,
+      class: flex,
+      values: (
+        shrink-0: 0,
+        shrink-1: 1,
+      )
+    ),
     "gap": null,
     "align-self": null,
     "negative-margin": null,
diff --git a/web/themes/ventuno/templates/content/page-title--node--custom-page.html.twig b/web/themes/ventuno/templates/content/page-title--node--custom-page.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..4deac4cc1d0e0d324988acb0661ecf666bf29185
--- /dev/null
+++ b/web/themes/ventuno/templates/content/page-title--node--custom-page.html.twig
@@ -0,0 +1,31 @@
+{#
+/**
+ * @file
+ * Template for the page title.
+ */
+#}
+{{ attach_library('ventuno/page-title') }}
+{{ title_prefix }}
+{% if title %}
+  <div class="page-title page__title-wrapper my-4">
+    <h1 class="page-title__title">
+      {{ title }}
+      {% if permalink %}
+        <a class="permalink" href="{{ permalink }}" title="{{ 'Permalink'|t }}">
+          {{ pattern('icon', {
+            name: 'link-45deg',
+            size: 'm'
+          }) }}
+        </a>
+      {% endif %}
+    </h1>
+
+    <div class="page-title__details mb-4">
+      {% if additional_content.is_archived %}
+        {% include '@ventuno/parts/page-title-detail-archive.html.twig' %}
+      {% endif %}
+    </div>
+  </div>
+{% endif %}
+{{ title_suffix }}
+{% block metadata %}{% endblock %}
diff --git a/web/themes/ventuno/templates/content/page-title--node--discussion.html.twig b/web/themes/ventuno/templates/content/page-title--node--discussion.html.twig
index 27ddfaac14893e875eddee4137e250acf05c1831..f82218600e76d7badf69a3a7ce4614cbbdaa39a7 100644
--- a/web/themes/ventuno/templates/content/page-title--node--discussion.html.twig
+++ b/web/themes/ventuno/templates/content/page-title--node--discussion.html.twig
@@ -29,7 +29,7 @@
     </h1>
 
     <div class="page-title__details mb-4">
-    <span class="page-title__detail">{{ additional_content.author }}</span>
+      <span class="page-title__detail">{{ additional_content.author }}</span>
       <span class="page-title__detail">{{ 'Published on'|t }}: {{ additional_content.published }}</span>
       {% if additional_content.published != additional_content.updated %}
         <span class="page-title__detail">{{ 'Last update'|t }}: {{ additional_content.updated }}</span>
@@ -39,10 +39,13 @@
           {{ bundle_label }}
         </span>
         {{ pattern('icon', {
-            name: 'chat-left-text',
-            size: 's'
-          }) }}
+          name: 'chat-left-text',
+          size: 's'
+        }) }}
       </span>
+      {% if additional_content.is_archived %}
+        {% include '@ventuno/parts/page-title-detail-archive.html.twig' %}
+      {% endif %}
     </div>
   </div>
 {% endif %}
diff --git a/web/themes/ventuno/templates/content/page-title--node--document.html.twig b/web/themes/ventuno/templates/content/page-title--node--document.html.twig
index fed836e6c1ae3b9f7e616bd0dfbf3669f4204033..060415a789192e6d90ecc3825b59bf3a7f5dc128 100644
--- a/web/themes/ventuno/templates/content/page-title--node--document.html.twig
+++ b/web/themes/ventuno/templates/content/page-title--node--document.html.twig
@@ -42,10 +42,13 @@
           {{ bundle_label }}
         </span>
         {{ pattern('icon', {
-            name: 'file-earmark-text',
-            size: 's'
-          }) }}
+          name: 'file-earmark-text',
+          size: 's'
+        }) }}
       </span>
+      {% if additional_content.is_archived %}
+        {% include '@ventuno/parts/page-title-detail-archive.html.twig' %}
+      {% endif %}
     </div>
   </div>
 {% endif %}
diff --git a/web/themes/ventuno/templates/content/page-title--node--event.html.twig b/web/themes/ventuno/templates/content/page-title--node--event.html.twig
index 7c084f762a51274dc7308b7ab259926c1cb02c05..8c8cea2cd4c71f02234fda6c14038cb4625174b5 100644
--- a/web/themes/ventuno/templates/content/page-title--node--event.html.twig
+++ b/web/themes/ventuno/templates/content/page-title--node--event.html.twig
@@ -29,7 +29,7 @@
     </h1>
 
     <div class="page-title__details mb-4">
-    <span class="page-title__detail">{{ additional_content.author }}</span>
+      <span class="page-title__detail">{{ additional_content.author }}</span>
       <span class="page-title__detail">{{ 'Published on'|t }}: {{ additional_content.published }}</span>
       {% if additional_content.published != additional_content.updated %}
         <span class="page-title__detail">{{ 'Last update'|t }}: {{ additional_content.updated }}</span>
@@ -39,10 +39,13 @@
           {{ bundle_label }}
         </span>
         {{ pattern('icon', {
-            name: 'calendar-event',
-            size: 's'
-          }) }}
+          name: 'calendar-event',
+          size: 's'
+        }) }}
       </span>
+      {% if additional_content.is_archived %}
+        {% include '@ventuno/parts/page-title-detail-archive.html.twig' %}
+      {% endif %}
     </div>
 
     <div class="bg-light p-3 rounded d-inline-flex flex-column flex-md-row mb-4">
diff --git a/web/themes/ventuno/templates/content/page-title--node--news.html.twig b/web/themes/ventuno/templates/content/page-title--node--news.html.twig
index 9125368b9c49f241eeee43a76cf504707b3a97e6..936c20467208a807d79384741658902586f21ddd 100644
--- a/web/themes/ventuno/templates/content/page-title--node--news.html.twig
+++ b/web/themes/ventuno/templates/content/page-title--node--news.html.twig
@@ -39,11 +39,14 @@
         {{ bundle_label }}
       </span>
       {{ pattern('icon', {
-          name: 'newspaper',
-          size: 's'
-        }) }}
+        name: 'newspaper',
+        size: 's'
+      }) }}
     </span>
+      {% if additional_content.is_archived %}
+        {% include '@ventuno/parts/page-title-detail-archive.html.twig' %}
+      {% endif %}
+    </div>
   </div>
-</div>
 {% endif %}
 {{ title_suffix }}
diff --git a/web/themes/ventuno/templates/facets/facets-item-list--checkbox--content-listing-status.html.twig b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--content-listing-status.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..067e0dee6f604a2e68dfe9a15fef58f483a7bcc8
--- /dev/null
+++ b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--content-listing-status.html.twig
@@ -0,0 +1,49 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a facets item list.
+ *
+ * Available variables:
+ * - items: A list of items. Each item contains:
+ *   - attributes: HTML attributes to be applied to each list item.
+ *   - value: The content of the list element.
+ * - title: The title of the list.
+ * - list_type: The tag for list element ("ul" or "ol").
+ * - wrapper_attributes: HTML attributes to be applied to the list wrapper.
+ * - attributes: HTML attributes to be applied to the list.
+ * - empty: A message to display when there are no items. Allowed value is a
+ *   string or render array.
+ * - context: A list of contextual data associated with the list. May contain:
+ *   - list_style: The ID of the widget plugin this facet uses.
+ * - facet: The facet for this result item.
+ *   - id: the machine name for the facet.
+ *   - label: The facet label.
+ *
+ * @see facets_preprocess_facets_item_list()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if cache_hash %}
+  <!-- facets cacheable metadata
+    hash: {{ cache_hash }}
+  {% if cache_contexts %}
+    contexts: {{ cache_contexts }}
+  {%- endif %}
+  {% if cache_tags %}
+    tags: {{ cache_tags }}
+  {%- endif %}
+  {% if cache_max_age %}
+    max age: {{ cache_max_age }}
+  {%- endif %}
+  -->
+{%- endif %}
+{%- if items -%}
+  <div{{ attributes.addClass('flex-shrink-0 mt-2 mb-3 align-self-flex-start') }}>
+    {%- for item in items -%}
+      <div{{ item.attributes }}>{{ item.value }}</div>
+    {%- endfor -%}
+  </div>
+{%- else -%}
+  {{- empty -}}
+{%- endif -%}
diff --git a/web/themes/ventuno/templates/facets/facets-item-list--checkbox--field-collection-content-status.html.twig b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--field-collection-content-status.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..067e0dee6f604a2e68dfe9a15fef58f483a7bcc8
--- /dev/null
+++ b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--field-collection-content-status.html.twig
@@ -0,0 +1,49 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a facets item list.
+ *
+ * Available variables:
+ * - items: A list of items. Each item contains:
+ *   - attributes: HTML attributes to be applied to each list item.
+ *   - value: The content of the list element.
+ * - title: The title of the list.
+ * - list_type: The tag for list element ("ul" or "ol").
+ * - wrapper_attributes: HTML attributes to be applied to the list wrapper.
+ * - attributes: HTML attributes to be applied to the list.
+ * - empty: A message to display when there are no items. Allowed value is a
+ *   string or render array.
+ * - context: A list of contextual data associated with the list. May contain:
+ *   - list_style: The ID of the widget plugin this facet uses.
+ * - facet: The facet for this result item.
+ *   - id: the machine name for the facet.
+ *   - label: The facet label.
+ *
+ * @see facets_preprocess_facets_item_list()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if cache_hash %}
+  <!-- facets cacheable metadata
+    hash: {{ cache_hash }}
+  {% if cache_contexts %}
+    contexts: {{ cache_contexts }}
+  {%- endif %}
+  {% if cache_tags %}
+    tags: {{ cache_tags }}
+  {%- endif %}
+  {% if cache_max_age %}
+    max age: {{ cache_max_age }}
+  {%- endif %}
+  -->
+{%- endif %}
+{%- if items -%}
+  <div{{ attributes.addClass('flex-shrink-0 mt-2 mb-3 align-self-flex-start') }}>
+    {%- for item in items -%}
+      <div{{ item.attributes }}>{{ item.value }}</div>
+    {%- endfor -%}
+  </div>
+{%- else -%}
+  {{- empty -}}
+{%- endif -%}
diff --git a/web/themes/ventuno/templates/facets/facets-item-list--checkbox--field-is-content-status.html.twig b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--field-is-content-status.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..067e0dee6f604a2e68dfe9a15fef58f483a7bcc8
--- /dev/null
+++ b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--field-is-content-status.html.twig
@@ -0,0 +1,49 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a facets item list.
+ *
+ * Available variables:
+ * - items: A list of items. Each item contains:
+ *   - attributes: HTML attributes to be applied to each list item.
+ *   - value: The content of the list element.
+ * - title: The title of the list.
+ * - list_type: The tag for list element ("ul" or "ol").
+ * - wrapper_attributes: HTML attributes to be applied to the list wrapper.
+ * - attributes: HTML attributes to be applied to the list.
+ * - empty: A message to display when there are no items. Allowed value is a
+ *   string or render array.
+ * - context: A list of contextual data associated with the list. May contain:
+ *   - list_style: The ID of the widget plugin this facet uses.
+ * - facet: The facet for this result item.
+ *   - id: the machine name for the facet.
+ *   - label: The facet label.
+ *
+ * @see facets_preprocess_facets_item_list()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if cache_hash %}
+  <!-- facets cacheable metadata
+    hash: {{ cache_hash }}
+  {% if cache_contexts %}
+    contexts: {{ cache_contexts }}
+  {%- endif %}
+  {% if cache_tags %}
+    tags: {{ cache_tags }}
+  {%- endif %}
+  {% if cache_max_age %}
+    max age: {{ cache_max_age }}
+  {%- endif %}
+  -->
+{%- endif %}
+{%- if items -%}
+  <div{{ attributes.addClass('flex-shrink-0 mt-2 mb-3 align-self-flex-start') }}>
+    {%- for item in items -%}
+      <div{{ item.attributes }}>{{ item.value }}</div>
+    {%- endfor -%}
+  </div>
+{%- else -%}
+  {{- empty -}}
+{%- endif -%}
diff --git a/web/themes/ventuno/templates/facets/facets-item-list--checkbox--user-status.html.twig b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--user-status.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..067e0dee6f604a2e68dfe9a15fef58f483a7bcc8
--- /dev/null
+++ b/web/themes/ventuno/templates/facets/facets-item-list--checkbox--user-status.html.twig
@@ -0,0 +1,49 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a facets item list.
+ *
+ * Available variables:
+ * - items: A list of items. Each item contains:
+ *   - attributes: HTML attributes to be applied to each list item.
+ *   - value: The content of the list element.
+ * - title: The title of the list.
+ * - list_type: The tag for list element ("ul" or "ol").
+ * - wrapper_attributes: HTML attributes to be applied to the list wrapper.
+ * - attributes: HTML attributes to be applied to the list.
+ * - empty: A message to display when there are no items. Allowed value is a
+ *   string or render array.
+ * - context: A list of contextual data associated with the list. May contain:
+ *   - list_style: The ID of the widget plugin this facet uses.
+ * - facet: The facet for this result item.
+ *   - id: the machine name for the facet.
+ *   - label: The facet label.
+ *
+ * @see facets_preprocess_facets_item_list()
+ *
+ * @ingroup themeable
+ */
+#}
+{% if cache_hash %}
+  <!-- facets cacheable metadata
+    hash: {{ cache_hash }}
+  {% if cache_contexts %}
+    contexts: {{ cache_contexts }}
+  {%- endif %}
+  {% if cache_tags %}
+    tags: {{ cache_tags }}
+  {%- endif %}
+  {% if cache_max_age %}
+    max age: {{ cache_max_age }}
+  {%- endif %}
+  -->
+{%- endif %}
+{%- if items -%}
+  <div{{ attributes.addClass('flex-shrink-0 mt-2 mb-3 align-self-flex-start') }}>
+    {%- for item in items -%}
+      <div{{ item.attributes }}>{{ item.value }}</div>
+    {%- endfor -%}
+  </div>
+{%- else -%}
+  {{- empty -}}
+{%- endif -%}
diff --git a/web/themes/ventuno/templates/parts/page-title-detail-archive.html.twig b/web/themes/ventuno/templates/parts/page-title-detail-archive.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..5f69147437175099af38f7c0c2764de817374409
--- /dev/null
+++ b/web/themes/ventuno/templates/parts/page-title-detail-archive.html.twig
@@ -0,0 +1,17 @@
+{#
+/**
+ * @file
+ * Page title detail archive.
+ *
+ * @ingroup themeable
+ */
+#}
+<span class="page-title__detail">
+  <span class="me-2">
+    {{ 'Archived'|t }}
+  </span>
+  {{ pattern('icon', {
+    name: 'archive-fill',
+    size: 's'
+  }) }}
+</span>