diff --git a/core/modules/system/css/components/item-list.theme.css b/core/modules/system/css/components/item-list.theme.css
index 9a1088e..185e450 100644
--- a/core/modules/system/css/components/item-list.theme.css
+++ b/core/modules/system/css/components/item-list.theme.css
@@ -2,21 +2,6 @@
  * @file
  * Visual styles for item list.
  */
-
-.item-list .title {
-  font-weight: bold;
-}
-.item-list ul {
-  margin: 0 0 0.75em 0;
-  padding: 0;
-}
-.item-list ul li {
-  margin: 0 0 0.25em 1.5em; /* LTR */
-  padding: 0;
-}
-[dir="rtl"] .item-list ul li {
-  margin: 0 1.5em 0.25em 0;
-}
 ul.item-list__comma-list {
   display: inline;
 }
diff --git a/core/themes/bartik/css/components/item-list.css b/core/themes/bartik/css/components/item-list.css
index 698bd56..eeb4e77 100644
--- a/core/themes/bartik/css/components/item-list.css
+++ b/core/themes/bartik/css/components/item-list.css
@@ -10,10 +10,3 @@
 [dir="rtl"] .item-list ul li {
   padding: 0.2em 0 0 0.5em;
 }
-.item-list .item-list__comma-list,
-.item-list .item-list__comma-list li,
-[dir="rtl"] .item-list .item-list__comma-list,
-[dir="rtl"] .item-list .item-list__comma-list li {
-  margin: 0;
-  padding: 0;
-}
diff --git a/core/themes/classy/classy.libraries.yml b/core/themes/classy/classy.libraries.yml
index a5bde77..2a0831a 100644
--- a/core/themes/classy/classy.libraries.yml
+++ b/core/themes/classy/classy.libraries.yml
@@ -3,6 +3,9 @@ base:
   css:
     theme:
       css/layout.css: {}
+      # We can not attach this in the item-list.html.twig template since it is
+      # often used during RendererInterface::renderPlain().
+      css/dataset/item-list.css: {}
 
 book-navigation:
   version: VERSION
diff --git a/core/themes/classy/css/dataset/item-list.css b/core/themes/classy/css/dataset/item-list.css
new file mode 100644
index 0000000..bce0456
--- /dev/null
+++ b/core/themes/classy/css/dataset/item-list.css
@@ -0,0 +1,38 @@
+/**
+ * @file
+ * Styling for item lists.
+ */
+.item-list .title {
+  font-weight: bold;
+}
+.item-list ul {
+  margin: 0 0 0.75em 0;
+  padding: 0;
+}
+.item-list ul li {
+  margin: 0 0 0.25em 1.5em; /* LTR */
+  padding: 0;
+}
+[dir="rtl"] .item-list ul li {
+  margin: 0 1.5em 0.25em 0;
+}
+div.item-list__comma-list {
+  display: inline;
+}
+/**
+ * Comma separated lists inside lists.
+ */
+.item-list ul.item-list__comma-list {
+  display: inline;
+}
+.item-list ul.item-list__comma-list li {
+  display: inline;
+  list-style-type: none;
+}
+.item-list .item-list__comma-list,
+.item-list .item-list__comma-list li,
+[dir="rtl"] .item-list .item-list__comma-list,
+[dir="rtl"] .item-list .item-list__comma-list li {
+  margin: 0;
+  padding: 0;
+}
diff --git a/core/themes/classy/templates/dataset/item-list.html.twig b/core/themes/classy/templates/dataset/item-list.html.twig
index 7ba8be4..abecd47 100644
--- a/core/themes/classy/templates/dataset/item-list.html.twig
+++ b/core/themes/classy/templates/dataset/item-list.html.twig
@@ -18,11 +18,14 @@
  * @see template_preprocess_item_list()
  */
 #}
-{% if context.list_style %}
-  {% set attributes = attributes.addClass('item-list__' ~ context.list_style) %}
-{% endif %}
+{%- if context.list_style -%}
+  {%- set attributes = attributes.addClass('item-list__' ~ context.list_style) -%}
+  {%- set wrapper_class = 'item-list item-list__' ~ context.list_style -%}
+{%- else -%}
+  {%- set wrapper_class = 'item-list' -%}
+{%- endif -%}
 {%- if items or empty -%}
-  <div class="item-list">
+  <div class="{{ wrapper_class }}">
     {%- if title is not empty -%}
       <h3>{{ title }}</h3>
     {%- endif -%}
