diff --git a/district/blocks.py b/district/blocks.py
index 4bf6dc93c7787e8f72c90d4f43468a5811488626..9915b4247d4cfe49dbfde5f592bd3c1c002840a3 100644
--- a/district/blocks.py
+++ b/district/blocks.py
@@ -45,6 +45,14 @@ class CandidateListBlock(StructBlock):
     call_to_action_button_text = CharBlock(
         label="Text tlačítka 'call-to-action' baneru", max_length=24, required=False
     )
+    candidate_list_big_count = IntegerBlock(
+        label="Počet kanditátů s velkým náhledem", default=7
+    )
+    candidate_list_shown_count = IntegerBlock(
+        label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)",
+        default=16,
+    )
+
     candidate_list = ListBlock(
         PageChooserBlock(label="Osoba", page_type=["district.DistrictPersonPage"]),
         label="Kandidáti",
diff --git a/district/migrations/0030_alter_districtelectionpage_content.py b/district/migrations/0030_alter_districtelectionpage_content.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad7705f02e6011183de110064d33c93878ae0b21
--- /dev/null
+++ b/district/migrations/0030_alter_districtelectionpage_content.py
@@ -0,0 +1,83 @@
+# Generated by Django 3.2.8 on 2021-11-28 16:13
+
+import wagtail.core.blocks
+import wagtail.core.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("district", "0029_alter_districtcenterpage_sidebar_content"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="districtelectionpage",
+            name="content",
+            field=wagtail.core.fields.StreamField(
+                [
+                    (
+                        "candidate_list",
+                        wagtail.core.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.core.blocks.CharBlock(
+                                        label="Titulek", required=True
+                                    ),
+                                ),
+                                (
+                                    "call_to_action_text",
+                                    wagtail.core.blocks.CharBlock(
+                                        label="Text 'call-to-action' baneru"
+                                    ),
+                                ),
+                                (
+                                    "call_to_action_link",
+                                    wagtail.core.blocks.URLBlock(
+                                        label="Odkaz 'call-to-action' baneru",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "call_to_action_button_text",
+                                    wagtail.core.blocks.CharBlock(
+                                        label="Text tlačítka 'call-to-action' baneru",
+                                        max_length=24,
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "candidate_list_big_count",
+                                    wagtail.core.blocks.IntegerBlock(
+                                        default=7,
+                                        label="Počet kanditátů s velkým náhledem",
+                                    ),
+                                ),
+                                (
+                                    "candidate_list_shown_count",
+                                    wagtail.core.blocks.IntegerBlock(
+                                        default=16,
+                                        label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)",
+                                    ),
+                                ),
+                                (
+                                    "candidate_list",
+                                    wagtail.core.blocks.ListBlock(
+                                        wagtail.core.blocks.PageChooserBlock(
+                                            label="Osoba",
+                                            page_type=["district.DistrictPersonPage"],
+                                        ),
+                                        label="Kandidáti",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                verbose_name="Obsah stránky",
+            ),
+        ),
+    ]
diff --git a/district/templates/district/blocks/candidate_list_block.html b/district/templates/district/blocks/candidate_list_block.html
index 8b08652d6f1ce5ec1774aa9fdc5d4e39ca748b20..1d9702be7020e6e46ea9970e40f3f81bb83954a7 100644
--- a/district/templates/district/blocks/candidate_list_block.html
+++ b/district/templates/district/blocks/candidate_list_block.html
@@ -1,10 +1,10 @@
-
 <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">
-  Kandidáti do zastupitelstva Pardubického kraje
+  {{ self.title }}
 </h1>
+
 <div class="candidate-card-list grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
   {% for person_page in self.candidate_list %}
-    {% if forloop.counter < 8 %}
+    {% if forloop.counter <= self.candidate_list_big_count %}
       {% include "shared/full_candidate_snippet.html" %}
     {% endif %}
   {% endfor %}
@@ -29,15 +29,15 @@
     <div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto"
          :class="{'candidate-table--fadeout': !isCurrentView('fullCandidateTable')}">
       {% for person_page in self.candidate_list %}
-        {# Záměrně neomezuju list přes indexy, abych si držel counter pro snippet #}
-        {% if forloop.counter >= 8 and forloop.counter < 16  %}
+        {# Záměrně neomezuju list přes indexy, ale ifuju, abych si držel counter pro snippet #}
+        {% if forloop.counter > self.candidate_list_big_count and forloop.counter <= self.candidate_list_shown_count  %}
           {% include "shared/compact_candidate_snippet.html" %}
         {% endif %}
       {% endfor %}
       <template v-if="isCurrentView('fullCandidateTable')">
         {% for person_page in self.candidate_list %}
-          {# Záměrně neomezuju list přes indexy, abych si držel counter pro snippet #}
-          {% if forloop.counter >= 16  %}
+          {# Záměrně neomezuju list přes indexy, ale ifuju, abych si držel counter pro snippet #}
+          {% if forloop.counter > self.candidate_list_shown_count  %}
             {% include "shared/compact_candidate_snippet.html" %}
           {% endif %}
         {% endfor %}
diff --git a/region/blocks.py b/region/blocks.py
index 9e2eacd5b29da24b3217b3896a14916618d1232a..7ec56447f5d57a38a9af60837bcbb8bf1496ad35 100644
--- a/region/blocks.py
+++ b/region/blocks.py
@@ -45,6 +45,14 @@ class CandidateListBlock(StructBlock):
     call_to_action_button_text = CharBlock(
         label="Text tlačítka 'call-to-action' baneru", max_length=24, required=False
     )
+    candidate_list_big_count = IntegerBlock(
+        label="Počet kanditátů s velkým náhledem", default=7
+    )
+    candidate_list_shown_count = IntegerBlock(
+        label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)",
+        default=16,
+    )
+
     candidate_list = ListBlock(
         PageChooserBlock(label="Osoba", page_type=["region.RegionPersonPage"]),
         label="Kandidáti",
diff --git a/region/migrations/0007_alter_regionelectionpage_content.py b/region/migrations/0007_alter_regionelectionpage_content.py
new file mode 100644
index 0000000000000000000000000000000000000000..71ff15f40e932da28defa0812fa0722a3dfc464a
--- /dev/null
+++ b/region/migrations/0007_alter_regionelectionpage_content.py
@@ -0,0 +1,83 @@
+# Generated by Django 3.2.8 on 2021-11-28 16:13
+
+import wagtail.core.blocks
+import wagtail.core.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("region", "0006_alter_regioncenterpage_sidebar_content"),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name="regionelectionpage",
+            name="content",
+            field=wagtail.core.fields.StreamField(
+                [
+                    (
+                        "candidate_list",
+                        wagtail.core.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.core.blocks.CharBlock(
+                                        label="Titulek", required=True
+                                    ),
+                                ),
+                                (
+                                    "call_to_action_text",
+                                    wagtail.core.blocks.CharBlock(
+                                        label="Text 'call-to-action' baneru"
+                                    ),
+                                ),
+                                (
+                                    "call_to_action_link",
+                                    wagtail.core.blocks.URLBlock(
+                                        label="Odkaz 'call-to-action' baneru",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "call_to_action_button_text",
+                                    wagtail.core.blocks.CharBlock(
+                                        label="Text tlačítka 'call-to-action' baneru",
+                                        max_length=24,
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "candidate_list_big_count",
+                                    wagtail.core.blocks.IntegerBlock(
+                                        default=7,
+                                        label="Počet kanditátů s velkým náhledem",
+                                    ),
+                                ),
+                                (
+                                    "candidate_list_shown_count",
+                                    wagtail.core.blocks.IntegerBlock(
+                                        default=16,
+                                        label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)",
+                                    ),
+                                ),
+                                (
+                                    "candidate_list",
+                                    wagtail.core.blocks.ListBlock(
+                                        wagtail.core.blocks.PageChooserBlock(
+                                            label="Osoba",
+                                            page_type=["region.RegionPersonPage"],
+                                        ),
+                                        label="Kandidáti",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                verbose_name="Obsah stránky",
+            ),
+        ),
+    ]
diff --git a/region/templates/region/blocks/candidate_list_block.html b/region/templates/region/blocks/candidate_list_block.html
index 8b08652d6f1ce5ec1774aa9fdc5d4e39ca748b20..06df7bad3368e2eb5fd3e1121541c3071ffff77c 100644
--- a/region/templates/region/blocks/candidate_list_block.html
+++ b/region/templates/region/blocks/candidate_list_block.html
@@ -1,15 +1,15 @@
-
 <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">
-  Kandidáti do zastupitelstva Pardubického kraje
+  {{ self.title }}
 </h1>
+
 <div class="candidate-card-list grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4">
   {% for person_page in self.candidate_list %}
-    {% if forloop.counter < 8 %}
+    {% if forloop.counter <= self.candidate_list_big_count %}
       {% include "shared/full_candidate_snippet.html" %}
     {% endif %}
   {% endfor %}
   <aside class="banner bg-black text-white container-padding--zero sm:container-padding--auto">
-    <i class="ico--pirati banner__icon"></i>
+    <i class="ico--pirati banner__icon"></i>k
     <div class="banner__body">
       <h1 class="head-alt-lg banner__cta">
         {{ self.call_to_action_text }}
@@ -29,15 +29,15 @@
     <div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto"
          :class="{'candidate-table--fadeout': !isCurrentView('fullCandidateTable')}">
       {% for person_page in self.candidate_list %}
-        {# Záměrně neomezuju list přes indexy, abych si držel counter pro snippet #}
-        {% if forloop.counter >= 8 and forloop.counter < 16  %}
+        {# Záměrně neomezuju list přes indexy, ale ifuju, abych si držel counter pro snippet #}
+        {% if forloop.counter > self.candidate_list_big_count and forloop.counter <= self.candidate_list_shown_count  %}
           {% include "shared/compact_candidate_snippet.html" %}
         {% endif %}
       {% endfor %}
       <template v-if="isCurrentView('fullCandidateTable')">
         {% for person_page in self.candidate_list %}
-          {# Záměrně neomezuju list přes indexy, abych si držel counter pro snippet #}
-          {% if forloop.counter >= 16  %}
+          {# Záměrně neomezuju list přes indexy, ale ifuju, abych si držel counter pro snippet #}
+          {% if forloop.counter > self.candidate_list_shown_count  %}
             {% include "shared/compact_candidate_snippet.html" %}
           {% endif %}
         {% endfor %}