diff --git a/web/themes/custom/opdavies/templates/view/views-view--blog-posts.html.twig b/web/themes/custom/opdavies/templates/view/views-view--blog-posts.html.twig
new file mode 100644
index 0000000..7000322
--- /dev/null
+++ b/web/themes/custom/opdavies/templates/view/views-view--blog-posts.html.twig
@@ -0,0 +1,71 @@
+{#
+/**
+ * @file
+ * Theme override for main view template.
+ *
+ * Available variables:
+ * - attributes: Remaining HTML attributes for the element.
+ * - css_name: A CSS-safe version of the view name.
+ * - css_class: The user-specified classes names, if any.
+ * - header: The optional header.
+ * - footer: The optional footer.
+ * - rows: The results of the view query, if any.
+ * - empty: The content to display if there are no rows.
+ * - pager: The optional pager next/prev links to display.
+ * - exposed: Exposed widget form/info to display.
+ * - feed_icons: Optional feed icons to display.
+ * - more: An optional link to the next page of results.
+ * - title: Title of the view, only used when displaying in the admin preview.
+ * - title_prefix: Additional output populated by modules, intended to be
+ * displayed in front of the view title.
+ * - title_suffix: Additional output populated by modules, intended to be
+ * displayed after the view title.
+ * - attachment_before: An optional attachment view to be displayed before the
+ * view content.
+ * - attachment_after: An optional attachment view to be displayed after the
+ * view content.
+ * - dom_id: Unique id for every view being printed to give unique class for
+ * Javascript.
+ *
+ * @see template_preprocess_views_view()
+ */
+#}
+{%
+ set classes = [
+ dom_id ? 'js-view-dom-id-' ~ dom_id,
+ ]
+%}
+
+ {{ title_prefix }}
+ {{ title }}
+ {{ title_suffix }}
+
+ {% if header %}
+
+ {% endif %}
+
+ {{ exposed }}
+ {{ attachment_before }}
+
+
+ {% if rows -%}
+ {{ rows }}
+ {% elseif empty -%}
+ {{ empty }}
+ {% endif %}
+ {{ pager }}
+
+
+ {{ attachment_after }}
+ {{ more }}
+
+ {% if footer %}
+
+ {% endif %}
+
+ {{ feed_icons }}
+
diff --git a/web/themes/custom/opdavies/templates/view/views-view--talks.html.twig b/web/themes/custom/opdavies/templates/view/views-view--talks.html.twig
new file mode 100644
index 0000000..7000322
--- /dev/null
+++ b/web/themes/custom/opdavies/templates/view/views-view--talks.html.twig
@@ -0,0 +1,71 @@
+{#
+/**
+ * @file
+ * Theme override for main view template.
+ *
+ * Available variables:
+ * - attributes: Remaining HTML attributes for the element.
+ * - css_name: A CSS-safe version of the view name.
+ * - css_class: The user-specified classes names, if any.
+ * - header: The optional header.
+ * - footer: The optional footer.
+ * - rows: The results of the view query, if any.
+ * - empty: The content to display if there are no rows.
+ * - pager: The optional pager next/prev links to display.
+ * - exposed: Exposed widget form/info to display.
+ * - feed_icons: Optional feed icons to display.
+ * - more: An optional link to the next page of results.
+ * - title: Title of the view, only used when displaying in the admin preview.
+ * - title_prefix: Additional output populated by modules, intended to be
+ * displayed in front of the view title.
+ * - title_suffix: Additional output populated by modules, intended to be
+ * displayed after the view title.
+ * - attachment_before: An optional attachment view to be displayed before the
+ * view content.
+ * - attachment_after: An optional attachment view to be displayed after the
+ * view content.
+ * - dom_id: Unique id for every view being printed to give unique class for
+ * Javascript.
+ *
+ * @see template_preprocess_views_view()
+ */
+#}
+{%
+ set classes = [
+ dom_id ? 'js-view-dom-id-' ~ dom_id,
+ ]
+%}
+
+ {{ title_prefix }}
+ {{ title }}
+ {{ title_suffix }}
+
+ {% if header %}
+
+ {% endif %}
+
+ {{ exposed }}
+ {{ attachment_before }}
+
+
+ {% if rows -%}
+ {{ rows }}
+ {% elseif empty -%}
+ {{ empty }}
+ {% endif %}
+ {{ pager }}
+
+
+ {{ attachment_after }}
+ {{ more }}
+
+ {% if footer %}
+
+ {% endif %}
+
+ {{ feed_icons }}
+