Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 Pre-release v5.0.0-internal.0 #4373

Merged
merged 1 commit into from
Oct 24, 2023
Merged

Conversation

36degrees
Copy link
Member

No description provided.

@govuk-design-system-ci govuk-design-system-ci temporarily deployed to govuk-frontend-pr-4373 October 24, 2023 10:10 Inactive
@github-actions
Copy link

Other changes to dist

diff --git a/dist/VERSION.txt b/dist/VERSION.txt
index f6cdf4098..ee0fa49fc 100644
--- a/dist/VERSION.txt
+++ b/dist/VERSION.txt
@@ -1 +1 @@
-4.7.0
+5.0.0-internal.0
diff --git a/dist/assets/images/govuk-logotype-crown.png b/dist/assets/images/govuk-logotype-crown.png
deleted file mode 100644
index a6cdbfd47..000000000
Binary files a/dist/assets/images/govuk-logotype-crown.png and /dev/null differ
diff --git a/dist/assets/images/govuk-mask-icon.svg b/dist/assets/images/govuk-mask-icon.svg
index 2cf32d6ce..d7dc2bbd0 100644
--- a/dist/assets/images/govuk-mask-icon.svg
+++ b/dist/assets/images/govuk-mask-icon.svg
@@ -1,7 +1,7 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="132" height="97" viewBox="0 0 132 97" version="1.1">
-  <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-    <g fill="#000000">
-      <path d="M25 30.2C28.5 31.7 32.7 30 34.1 26.5 35.6 22.9 33.9 18.7 30.2 17.3 26.6 15.9 22.6 17.6 21.1 21.2 19.7 24.7 21.4 28.7 25 30.2L25 30.2ZM9 39.5C12.6 41 16.8 39.3 18.2 35.8 19.7 32.2 18 28 14.3 26.7 10.7 25.2 6.7 26.9 5.2 30.5 3.8 34 5.5 38 9 39.5L9 39.5ZM4.4 57.2C7.9 58.7 12.1 57 13.5 53.4 15 49.8 13.3 45.7 9.6 44.3 6.1 42.8 2 44.6 0.5 48.1 -0.9 51.6 0.8 55.7 4.4 57.2L4.4 57.2ZM42.7 35.8C46.2 37.3 50.4 35.6 51.8 32 53.3 28.4 51.6 24.3 47.9 22.9 44.3 21.4 40.3 23.2 38.8 26.7 37.5 30.3 39.2 34.4 42.7 35.8L42.7 35.8ZM107.1 30.2C103.5 31.7 99.3 30 98 26.5 96.5 22.9 98.2 18.7 101.8 17.3 105.4 15.9 109.5 17.6 111 21.2 112.3 24.7 110.6 28.7 107.1 30.2L107.1 30.2ZM123 39.5C119.4 41 115.3 39.3 113.9 35.8 112.4 32.2 114.1 28 117.6 26.7 121.2 25.2 125.3 26.9 126.8 30.5 128.3 34 126.5 38 123 39.5L123 39.5ZM127.7 57.2C124.1 58.7 119.9 57 118.5 53.4 117 49.8 118.7 45.7 122.4 44.3 126 42.8 130.1 44.6 131.6 48.1 132.9 51.6 131.2 55.7 127.7 57.2L127.7 57.2ZM89.3 35.8C85.7 37.3 81.5 35.6 80.1 32 78.7 28.4 80.3 24.3 84 22.9 87.6 21.4 91.7 23.2 93.2 26.7 94.6 30.3 92.9 34.4 89.3 35.8L89.3 35.8ZM69.7 17.7L69.7 17.7 78.6 22.4 78.6 9.3 69.7 12.1 69.7 12.1C69.5 11.8 69.2 11.5 68.8 11.2L68.8 11.2 72.4 0 66 0 59.6 0 63.1 11.2 63.1 11.2C62.8 11.5 62.5 11.7 62.2 12.1L62.2 12.1 53.4 9.3 53.4 22.4 62.2 17.7 62.2 17.7C62.5 18 62.8 18.4 63.1 18.6L58.1 34C58.1 34 58.1 34 58.1 34.1L58.1 34.1 58.1 34.1C57.9 34.9 57.7 35.7 57.7 36.5 57.7 40.6 60.8 44 64.7 44.6L64.9 44.6C65.2 44.6 65.6 44.7 65.9 44.7 66.3 44.7 66.6 44.7 66.9 44.6L67.1 44.6C71.1 44 74.2 40.5 74.2 36.5 74.2 35.7 74.1 34.8 73.8 34.1L73.8 34.1 73.8 34.1C73.8 34.1 73.8 34.1 73.8 34L68.7 18.6C69.1 18.4 69.4 18 69.7 17.7L69.7 17.7ZM66 92.8C82.9 92.8 98.8 93.9 113.1 96 117.1 79.1 122 69.3 127.1 62.5L117.5 59.1C118.5 64 118.6 66.3 117.5 69.3 116 67.9 114.5 65 113.3 60.6L108.6 76C111.4 74 113.6 72.8 116.1 72.7 111.7 82.1 106.1 84.6 102.5 83.9 98.2 83.1 96.2 79.3 96.9 76 97.9 71.3 102.6 70.1 104.9 75.5 109.2 66.8 101.9 64.1 97.3 66.7 104.4 59.5 105.2 53.2 99.4 45.6 91.4 51.7 91.3 57.9 94.9 66.4 90.2 61 82.8 63.9 85.4 72.6 88.8 67.4 93.3 70.6 92.6 75.7 92 80 86.2 83.5 79.1 82.9 68.8 82 68.2 74.9 67.9 69.1 70.4 68.6 75 70.9 78.9 76.4L80.2 60C76.1 64.4 72.2 65.3 67.9 65.4 69.3 61 75.9 53.8 75.9 53.8L66.4 53.8 66.4 53.8 66.4 53.8 55.5 53.8C55.5 53.8 61.9 61 63.4 65.4 59.2 65.3 55.4 64.4 51.1 60L52.5 76.4C56.4 70.9 61 68.7 63.4 69.1 63.1 74.9 62.5 81.9 52.3 82.9 45.1 83.5 39.4 80 38.8 75.7 38.1 70.7 42.6 67.4 45.9 72.6 48.6 63.9 41.3 61 36.5 66.4 40.2 57.9 40.1 51.7 31.9 45.6 26.1 53.2 26.9 59.5 34.1 66.7 29.4 64.1 22.2 66.8 26.4 75.5 28.7 70 33.5 71.3 34.5 76 35.2 79.3 33.2 83.1 28.8 83.9 25.3 84.6 19.8 82.1 15.3 72.7 17.8 72.8 20 74 22.8 76L18.1 60.6C16.9 65 15.4 67.8 13.8 69.3 12.7 66.3 12.9 64 13.8 59.1L4.3 62.5C9.3 69.4 14.2 79.2 18.3 96 33.1 93.9 49.1 92.8 66 92.8L66 92.8Z"/>
-    </g>
-  </g>
-</svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="132" height="97" viewBox="0 0 132 97" version="1.1">
+  <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+    <g fill="#000000">
+      <path d="M25 30.2C28.5 31.7 32.7 30 34.1 26.5 35.6 22.9 33.9 18.7 30.2 17.3 26.6 15.9 22.6 17.6 21.1 21.2 19.7 24.7 21.4 28.7 25 30.2L25 30.2ZM9 39.5C12.6 41 16.8 39.3 18.2 35.8 19.7 32.2 18 28 14.3 26.7 10.7 25.2 6.7 26.9 5.2 30.5 3.8 34 5.5 38 9 39.5L9 39.5ZM4.4 57.2C7.9 58.7 12.1 57 13.5 53.4 15 49.8 13.3 45.7 9.6 44.3 6.1 42.8 2 44.6 0.5 48.1 -0.9 51.6 0.8 55.7 4.4 57.2L4.4 57.2ZM42.7 35.8C46.2 37.3 50.4 35.6 51.8 32 53.3 28.4 51.6 24.3 47.9 22.9 44.3 21.4 40.3 23.2 38.8 26.7 37.5 30.3 39.2 34.4 42.7 35.8L42.7 35.8ZM107.1 30.2C103.5 31.7 99.3 30 98 26.5 96.5 22.9 98.2 18.7 101.8 17.3 105.4 15.9 109.5 17.6 111 21.2 112.3 24.7 110.6 28.7 107.1 30.2L107.1 30.2ZM123 39.5C119.4 41 115.3 39.3 113.9 35.8 112.4 32.2 114.1 28 117.6 26.7 121.2 25.2 125.3 26.9 126.8 30.5 128.3 34 126.5 38 123 39.5L123 39.5ZM127.7 57.2C124.1 58.7 119.9 57 118.5 53.4 117 49.8 118.7 45.7 122.4 44.3 126 42.8 130.1 44.6 131.6 48.1 132.9 51.6 131.2 55.7 127.7 57.2L127.7 57.2ZM89.3 35.8C85.7 37.3 81.5 35.6 80.1 32 78.7 28.4 80.3 24.3 84 22.9 87.6 21.4 91.7 23.2 93.2 26.7 94.6 30.3 92.9 34.4 89.3 35.8L89.3 35.8ZM69.7 17.7L69.7 17.7 78.6 22.4 78.6 9.3 69.7 12.1 69.7 12.1C69.5 11.8 69.2 11.5 68.8 11.2L68.8 11.2 72.4 0 66 0 59.6 0 63.1 11.2 63.1 11.2C62.8 11.5 62.5 11.7 62.2 12.1L62.2 12.1 53.4 9.3 53.4 22.4 62.2 17.7 62.2 17.7C62.5 18 62.8 18.4 63.1 18.6L58.1 34C58.1 34 58.1 34 58.1 34.1L58.1 34.1 58.1 34.1C57.9 34.9 57.7 35.7 57.7 36.5 57.7 40.6 60.8 44 64.7 44.6L64.9 44.6C65.2 44.6 65.6 44.7 65.9 44.7 66.3 44.7 66.6 44.7 66.9 44.6L67.1 44.6C71.1 44 74.2 40.5 74.2 36.5 74.2 35.7 74.1 34.8 73.8 34.1L73.8 34.1 73.8 34.1C73.8 34.1 73.8 34.1 73.8 34L68.7 18.6C69.1 18.4 69.4 18 69.7 17.7L69.7 17.7ZM66 92.8C82.9 92.8 98.8 93.9 113.1 96 117.1 79.1 122 69.3 127.1 62.5L117.5 59.1C118.5 64 118.6 66.3 117.5 69.3 116 67.9 114.5 65 113.3 60.6L108.6 76C111.4 74 113.6 72.8 116.1 72.7 111.7 82.1 106.1 84.6 102.5 83.9 98.2 83.1 96.2 79.3 96.9 76 97.9 71.3 102.6 70.1 104.9 75.5 109.2 66.8 101.9 64.1 97.3 66.7 104.4 59.5 105.2 53.2 99.4 45.6 91.4 51.7 91.3 57.9 94.9 66.4 90.2 61 82.8 63.9 85.4 72.6 88.8 67.4 93.3 70.6 92.6 75.7 92 80 86.2 83.5 79.1 82.9 68.8 82 68.2 74.9 67.9 69.1 70.4 68.6 75 70.9 78.9 76.4L80.2 60C76.1 64.4 72.2 65.3 67.9 65.4 69.3 61 75.9 53.8 75.9 53.8L66.4 53.8 66.4 53.8 66.4 53.8 55.5 53.8C55.5 53.8 61.9 61 63.4 65.4 59.2 65.3 55.4 64.4 51.1 60L52.5 76.4C56.4 70.9 61 68.7 63.4 69.1 63.1 74.9 62.5 81.9 52.3 82.9 45.1 83.5 39.4 80 38.8 75.7 38.1 70.7 42.6 67.4 45.9 72.6 48.6 63.9 41.3 61 36.5 66.4 40.2 57.9 40.1 51.7 31.9 45.6 26.1 53.2 26.9 59.5 34.1 66.7 29.4 64.1 22.2 66.8 26.4 75.5 28.7 70 33.5 71.3 34.5 76 35.2 79.3 33.2 83.1 28.8 83.9 25.3 84.6 19.8 82.1 15.3 72.7 17.8 72.8 20 74 22.8 76L18.1 60.6C16.9 65 15.4 67.8 13.8 69.3 12.7 66.3 12.9 64 13.8 59.1L4.3 62.5C9.3 69.4 14.2 79.2 18.3 96 33.1 93.9 49.1 92.8 66 92.8L66 92.8Z"/>
+    </g>
+  </g>
+</svg>

Action run for 39ff9de

@github-actions
Copy link

JavaScript changes to dist

diff --git a/dist/govuk-frontend-4.7.0.min.js b/dist/govuk-frontend-5.0.0-internal.0.min.js
index 1c322ad48..79046da7f 100644
--- a/dist/govuk-frontend-4.7.0.min.js
+++ b/dist/govuk-frontend-5.0.0-internal.0.min.js
@@ -1,703 +1,459 @@
-! function(t, e) {
-    "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define("GOVUKFrontend", ["exports"], e) : e(t.GOVUKFrontend = {})
-}(this, (function(t) {
-    "use strict";
+const version = "5.0.0-internal.0";
 
-    function e(t, e) {
-        if (window.NodeList.prototype.forEach) return t.forEach(e);
-        for (var n = 0; n < t.length; n++) e.call(window, t[n], n, t)
+function mergeConfigs(...t) {
+    function flattenObject(t) {
+        const e = {};
+        return function flattenLoop(t, i) {
+            for (const [s, n] of Object.entries(t)) {
+                const t = i ? `${i}.${s}` : s;
+                n && "object" == typeof n ? flattenLoop(n, t) : e[t] = n
+            }
+        }(t), e
     }
-
-    function n() {
-        for (var t = function(t) {
-                var e = {},
-                    n = function(t, i) {
-                        for (var o in t)
-                            if (Object.prototype.hasOwnProperty.call(t, o)) {
-                                var s = t[o],
-                                    r = i ? i + "." + o : o;
-                                "object" == typeof s ? n(s, r) : e[r] = s
-                            }
-                    };
-                return n(t), e
-            }, e = {}, n = 0; n < arguments.length; n++) {
-            var i = t(arguments[n]);
-            for (var o in i) Object.prototype.hasOwnProperty.call(i, o) && (e[o] = i[o])
-        }
-        return e
+    const e = {};
+    for (const i of t) {
+        const t = flattenObject(i);
+        for (const [i, s] of Object.entries(t)) e[i] = s
     }
+    return e
+}
 
-    function i(t, e) {
-        if (!t || "object" != typeof t) throw new Error('Provide a `configObject` of type "object".');
-        if (!e || "string" != typeof e) throw new Error('Provide a `namespace` of type "string" to filter the `configObject` by.');
-        var n = {};
-        for (var i in t) {
-            var o = i.split(".");
-            if (Object.prototype.hasOwnProperty.call(t, i) && o[0] === e) o.length > 1 && o.shift(), n[o.join(".")] = t[i]
+function extractConfigByNamespace(t, e) {
+    const i = {};
+    for (const [s, n] of Object.entries(t)) {
+        const t = s.split(".");
+        if (t[0] === e) {
+            t.length > 1 && t.shift();
+            i[t.join(".")] = n
         }
-        return n
     }
+    return i
+}
 
-    function o(t) {
-        if ("string" != typeof t) return t;
-        var e = t.trim();
-        return "true" === e || "false" !== e && (e.length > 0 && isFinite(Number(e)) ? Number(e) : t)
-    }
+function getFragmentFromUrl(t) {
+    if (-1 !== t.indexOf("#")) return t.split("#").pop()
+}
 
-    function s(t) {
-        var e = {};
-        for (var n in t) e[n] = o(t[n]);
-        return e
-    }
+function isSupported(t = document.body) {
+    return t.classList.contains("govuk-frontend-supported")
+}
 
-    function r(t, e) {
-        this.translations = t || {}, this.locale = e && e.locale || document.documentElement.lang || "en"
-    }(function(t) {
-        var e, n, i, o;
-        "defineProperty" in Object && function() {
-            try {
-                return Object.defineProperty({}, "test", {
-                    value: 42
-                }), !0
-            } catch (t) {
-                return !1
-            }
-        }() || (e = Object.defineProperty, n = Object.prototype.hasOwnProperty("__defineGetter__"), i = "Getters & setters cannot be defined on this javascript engine", o = "A property cannot both have accessors and be writable or have a value", Object.defineProperty = function(t, s, r) {
-            if (e && (t === window || t === document || t === Element.prototype || t instanceof Element)) return e(t, s, r);
-            if (null === t || !(t instanceof Object || "object" == typeof t)) throw new TypeError("Object.defineProperty called on non-object");
-            if (!(r instanceof Object)) throw new TypeError("Property description must be an object");
-            var a = String(s),
-                l = "value" in r || "writable" in r,
-                c = "get" in r && typeof r.get,
-                u = "set" in r && typeof r.set;
-            if (c) {
-                if ("function" !== c) throw new TypeError("Getter must be a function");
-                if (!n) throw new TypeError(i);
-                if (l) throw new TypeError(o);
-                Object.__defineGetter__.call(t, a, r.get)
-            } else t[a] = r.value;
-            if (u) {
-                if ("function" !== u) throw new TypeError("Setter must be a function");
-                if (!n) throw new TypeError(i);
-                if (l) throw new TypeError(o);
-                Object.__defineSetter__.call(t, a, r.set)
-            }
-            return "value" in r && (t[a] = r.value), t
-        })
-    }).call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "Document" in this || "undefined" == typeof WorkerGlobalScope && "function" != typeof importScripts && (this.HTMLDocument ? this.Document = this.HTMLDocument : (this.Document = this.HTMLDocument = document.constructor = new Function("return function Document() {}")(), this.Document.prototype = document))
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "Element" in this && "HTMLElement" in this || function() {
-                if (!window.Element || window.HTMLElement) {
-                    window.Element = window.HTMLElement = new Function("return function Element() {}")();
-                    var t, e = document.appendChild(document.createElement("body")),
-                        n = e.appendChild(document.createElement("iframe")).contentWindow.document,
-                        i = Element.prototype = n.appendChild(n.createElement("*")),
-                        o = {},
-                        s = function(t, e) {
-                            var n, i, r, a = t.childNodes || [],
-                                l = -1;
-                            if (1 === t.nodeType && t.constructor !== Element)
-                                for (n in t.constructor = Element, o) i = o[n], t[n] = i;
-                            for (; r = e && a[++l];) s(r, e);
-                            return t
-                        },
-                        r = document.getElementsByTagName("*"),
-                        a = document.createElement,
-                        l = 100;
-                    i.attachEvent("onpropertychange", (function(t) {
-                        for (var e, n = t.propertyName, s = !o.hasOwnProperty(n), a = i[n], l = o[n], c = -1; e = r[++c];) 1 === e.nodeType && (s || e[n] === l) && (e[n] = a);
-                        o[n] = a
-                    })), i.constructor = Element, i.hasAttribute || (i.hasAttribute = function(t) {
-                        return null !== this.getAttribute(t)
-                    }), c() || (document.onreadystatechange = c, t = setInterval(c, 25)), document.createElement = function(t) {
-                        var e = a(String(t).toLowerCase());
-                        return s(e)
-                    }, document.removeChild(e)
-                } else window.HTMLElement = window.Element;
+function normaliseString(t) {
+    if ("string" != typeof t) return t;
+    const e = t.trim();
+    return "true" === e || "false" !== e && (e.length > 0 && isFinite(Number(e)) ? Number(e) : t)
+}
 
-                function c() {
-                    return l-- || clearTimeout(t), !(!document.body || document.body.prototype || !/(complete|interactive)/.test(document.readyState)) && (s(document, !0), t && document.body.prototype && clearTimeout(t), !!document.body.prototype)
-                }
-            }()
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            (function() {
-                if (!document.documentElement.dataset) return !1;
-                var t = document.createElement("div");
-                return t.setAttribute("data-a-b", "c"), t.dataset && "c" == t.dataset.aB
-            })() || Object.defineProperty(Element.prototype, "dataset", {
-                get: function() {
-                    for (var t = this.attributes, e = {}, n = 0; n < t.length; n++) {
-                        var i = t[n];
-                        if (i && i.name && /^data-\w[.\w-]*$/.test(i.name)) {
-                            var o = i.name,
-                                s = i.value,
-                                r = o.substr(5).replace(/-./g, (function(t) {
-                                    return t.charAt(1).toUpperCase()
-                                }));
-                            "__defineGetter__" in Object.prototype && "__defineSetter__" in Object.prototype ? Object.defineProperty(e, r, {
-                                enumerable: !0,
-                                get: function() {
-                                    return this.value
-                                }.bind({
-                                    value: s || ""
-                                }),
-                                set: function(t, e) {
-                                    void 0 !== e ? this.setAttribute(t, e) : this.removeAttribute(t)
-                                }.bind(this, o)
-                            }) : e[r] = s
-                        }
-                    }
-                    return e
-                }
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "trim" in String.prototype || (String.prototype.trim = function() {
-                return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), r.prototype.t = function(t, e) {
-            if (!t) throw new Error("i18n: lookup key missing");
-            e && "number" == typeof e.count && (t = t + "." + this.getPluralSuffix(t, e.count));
-            var n = this.translations[t];
-            if ("string" == typeof n) {
-                if (n.match(/%{(.\S+)}/)) {
-                    if (!e) throw new Error("i18n: cannot replace placeholders in string if no option data provided");
-                    return this.replacePlaceholders(n, e)
-                }
-                return n
-            }
-            return t
-        }, r.prototype.replacePlaceholders = function(t, e) {
-            var n;
-            return this.hasIntlNumberFormatSupport() && (n = new Intl.NumberFormat(this.locale)), t.replace(/%{(.\S+)}/g, (function(t, i) {
-                if (Object.prototype.hasOwnProperty.call(e, i)) {
-                    var o = e[i];
-                    return !1 === o || "number" != typeof o && "string" != typeof o ? "" : "number" == typeof o ? n ? n.format(o) : o.toString() : o
-                }
-                throw new Error("i18n: no data found to replace " + t + " placeholder in string")
-            }))
-        }, r.prototype.hasIntlPluralRulesSupport = function() {
-            return Boolean(window.Intl && "PluralRules" in window.Intl && Intl.PluralRules.supportedLocalesOf(this.locale).length)
-        }, r.prototype.hasIntlNumberFormatSupport = function() {
-            return Boolean(window.Intl && "NumberFormat" in window.Intl && Intl.NumberFormat.supportedLocalesOf(this.locale).length)
-        }, r.prototype.getPluralSuffix = function(t, e) {
-            if (e = Number(e), !isFinite(e)) return "other";
-            var n;
-            if (t + "." + (n = this.hasIntlPluralRulesSupport() ? new Intl.PluralRules(this.locale).select(e) : this.selectPluralFormUsingFallbackRules(e)) in this.translations) return n;
-            if (t + ".other" in this.translations) return console && "warn" in console && console.warn('i18n: Missing plural form ".' + n + '" for "' + this.locale + '" locale. Falling back to ".other".'), "other";
-            throw new Error('i18n: Plural form ".other" is required for "' + this.locale + '" locale')
-        }, r.prototype.selectPluralFormUsingFallbackRules = function(t) {
-            t = Math.abs(Math.floor(t));
-            var e = this.getPluralRulesForLocale();
-            return e ? r.pluralRules[e](t) : "other"
-        }, r.prototype.getPluralRulesForLocale = function() {
-            var t = this.locale,
-                e = t.split("-")[0];
-            for (var n in r.pluralRulesMap)
-                if (Object.prototype.hasOwnProperty.call(r.pluralRulesMap, n))
-                    for (var i = r.pluralRulesMap[n], o = 0; o < i.length; o++)
-                        if (i[o] === t || i[o] === e) return n
-        }, r.pluralRulesMap = {
-            arabic: ["ar"],
-            chinese: ["my", "zh", "id", "ja", "jv", "ko", "ms", "th", "vi"],
-            french: ["hy", "bn", "fr", "gu", "hi", "fa", "pa", "zu"],
-            german: ["af", "sq", "az", "eu", "bg", "ca", "da", "nl", "en", "et", "fi", "ka", "de", "el", "hu", "lb", "no", "so", "sw", "sv", "ta", "te", "tr", "ur"],
-            irish: ["ga"],
-            russian: ["ru", "uk"],
-            scottish: ["gd"],
-            spanish: ["pt-PT", "it", "es"],
-            welsh: ["cy"]
-        }, r.pluralRules = {
-            arabic: function(t) {
-                return 0 === t ? "zero" : 1 === t ? "one" : 2 === t ? "two" : t % 100 >= 3 && t % 100 <= 10 ? "few" : t % 100 >= 11 && t % 100 <= 99 ? "many" : "other"
-            },
-            chinese: function() {
-                return "other"
-            },
-            french: function(t) {
-                return 0 === t || 1 === t ? "one" : "other"
-            },
-            german: function(t) {
-                return 1 === t ? "one" : "other"
-            },
-            irish: function(t) {
-                return 1 === t ? "one" : 2 === t ? "two" : t >= 3 && t <= 6 ? "few" : t >= 7 && t <= 10 ? "many" : "other"
-            },
-            russian: function(t) {
-                var e = t % 100,
-                    n = e % 10;
-                return 1 === n && 11 !== e ? "one" : n >= 2 && n <= 4 && !(e >= 12 && e <= 14) ? "few" : 0 === n || n >= 5 && n <= 9 || e >= 11 && e <= 14 ? "many" : "other"
-            },
-            scottish: function(t) {
-                return 1 === t || 11 === t ? "one" : 2 === t || 12 === t ? "two" : t >= 3 && t <= 10 || t >= 13 && t <= 19 ? "few" : "other"
-            },
-            spanish: function(t) {
-                return 1 === t ? "one" : t % 1e6 == 0 && 0 !== t ? "many" : "other"
-            },
-            welsh: function(t) {
-                return 0 === t ? "zero" : 1 === t ? "one" : 2 === t ? "two" : 3 === t ? "few" : 6 === t ? "many" : "other"
+function normaliseDataset(t) {
+    const e = {};
+    for (const [i, s] of Object.entries(t)) e[i] = normaliseString(s);
+    return e
+}
+class GOVUKFrontendError extends Error {
+    constructor(...t) {
+        super(...t), this.name = "GOVUKFrontendError"
+    }
+}
+class SupportError extends GOVUKFrontendError {
+    constructor() {
+        super("GOV.UK Frontend is not supported in this browser"), this.name = "SupportError"
+    }
+}
+class ConfigError extends GOVUKFrontendError {
+    constructor(...t) {
+        super(...t), this.name = "ConfigError"
+    }
+}
+class ElementError extends GOVUKFrontendError {
+    constructor(t) {
+        let e = "string" == typeof t ? t : "";
+        if ("object" == typeof t) {
+            const {
+                componentName: i,
+                identifier: s,
+                element: n,
+                expectedType: o
+            } = t;
+            e = `${i}: ${s}`, e += n ? ` is not of type ${o||"HTMLElement"}` : " not found"
+        }
+        super(e), this.name = "ElementError"
+    }
+}
+class GOVUKFrontendComponent {
+    constructor() {
+        this.checkSupport()
+    }
+    checkSupport() {
+        if (!isSupported()) throw new SupportError
+    }
+}
+class I18n {
+    constructor(t = {}, e = {}) {
+        this.translations = void 0, this.locale = void 0, this.translations = t, this.locale = e.locale || document.documentElement.lang || "en"
+    }
+    t(t, e) {
+        if (!t) throw new Error("i18n: lookup key missing");
+        e && "number" == typeof e.count && (t = `${t}.${this.getPluralSuffix(t,e.count)}`);
+        const i = this.translations[t];
+        if ("string" == typeof i) {
+            if (i.match(/%{(.\S+)}/)) {
+                if (!e) throw new Error("i18n: cannot replace placeholders in string if no option data provided");
+                return this.replacePlaceholders(i, e)
             }
-        },
-        function(t) {
-            var e;
-            "DOMTokenList" in this && (!("classList" in (e = document.createElement("x"))) || !e.classList.toggle("x", !1) && !e.className) || function(e) {
-                var n;
-                "DOMTokenList" in e && e.DOMTokenList && (!document.createElementNS || !document.createElementNS("http://www.w3.org/2000/svg", "svg") || document.createElementNS("http://www.w3.org/2000/svg", "svg").classList instanceof DOMTokenList) || (e.DOMTokenList = function() {
-                        var e = !0,
-                            i = function(t, n, i, o) {
-                                Object.defineProperty ? Object.defineProperty(t, n, {
-                                    configurable: !1 === e || !!o,
-                                    get: i
-                                }) : t.__defineGetter__(n, i)
-                            };
-                        try {
-                            i({}, "support")
-                        } catch (n) {
-                            e = !1
-                        }
-                        return function(e, n) {
-                            var o = this,
-                                s = [],
-                                r = {},
-                                a = 0,
-                                l = 0,
-                                c = function(t) {
-                                    i(o, t, (function() {
-                                        return d(), s[t]
-                                    }), !1)
-                                },
-                                u = function() {
-                                    if (a >= l)
-                                        for (; l < a; ++l) c(l)
-                                },
-                                d = function() {
-                                    var t, i, o = arguments,
-                                        l = /\s+/;
-                                    if (o.length)
-                                        for (i = 0; i < o.length; ++i)
-                                            if (l.test(o[i])) throw (t = new SyntaxError('String "' + o[i] + '" contains an invalid character')).code = 5, t.name = "InvalidCharacterError", t;
-                                    for ("" === (s = "object" == typeof e[n] ? ("" + e[n].baseVal).replace(/^\s+|\s+$/g, "").split(l) : ("" + e[n]).replace(/^\s+|\s+$/g, "").split(l))[0] && (s = []), r = {}, i = 0; i < s.length; ++i) r[s[i]] = !0;
-                                    a = s.length, u()
-                                };
-                            return d(), i(o, "length", (function() {
-                                return d(), a
-                            })), o.toLocaleString = o.toString = function() {
-                                return d(), s.join(" ")
-                            }, o.item = function(t) {
-                                return d(), s[t]
-                            }, o.contains = function(t) {
-                                return d(), !!r[t]
-                            }, o.add = function() {
-                                d.apply(o, t = arguments);
-                                for (var t, i, l = 0, c = t.length; l < c; ++l) r[i = t[l]] || (s.push(i), r[i] = !0);
-                                a !== s.length && (a = s.length >>> 0, "object" == typeof e[n] ? e[n].baseVal = s.join(" ") : e[n] = s.join(" "), u())
-                            }, o.remove = function() {
-                                d.apply(o, t = arguments);
-                                for (var t, i = {}, l = 0, c = []; l < t.length; ++l) i[t[l]] = !0, delete r[t[l]];
-                                for (l = 0; l < s.length; ++l) i[s[l]] || c.push(s[l]);
-                                s = c, a = c.length >>> 0, "object" == typeof e[n] ? e[n].baseVal = s.join(" ") : e[n] = s.join(" "), u()
-                            }, o.toggle = function(e, n) {
-                                return d.apply(o, [e]), t !== n ? n ? (o.add(e), !0) : (o.remove(e), !1) : r[e] ? (o.remove(e), !1) : (o.add(e), !0)
-                            }, o
-                        }
-                    }()), "classList" in (n = document.createElement("span")) && (n.classList.toggle("x", !1), n.classList.contains("x") && (n.classList.constructor.prototype.toggle = function(e) {
-                        var n = arguments[1];
-                        if (n === t) {
-                            var i = !this.contains(e);
-                            return this[i ? "add" : "remove"](e), i
-                        }
-                        return this[(n = !!n) ? "add" : "remove"](e), n
-                    })),
-                    function() {
-                        var t = document.createElement("span");
-                        if ("classList" in t && (t.classList.add("a", "b"), !t.classList.contains("b"))) {
-                            var e = t.classList.constructor.prototype.add;
-                            t.classList.constructor.prototype.add = function() {
-                                for (var t = arguments, n = arguments.length, i = 0; i < n; i++) e.call(this, t[i])
-                            }
-                        }
-                    }(),
-                    function() {
-                        var t = document.createElement("span");
-                        if ("classList" in t && (t.classList.add("a"), t.classList.add("b"), t.classList.remove("a", "b"), t.classList.contains("b"))) {
-                            var e = t.classList.constructor.prototype.remove;
-                            t.classList.constructor.prototype.remove = function() {
-                                for (var t = arguments, n = arguments.length, i = 0; i < n; i++) e.call(this, t[i])
-                            }
-                        }
-                    }()
-            }(this)
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            var e;
-            "document" in this && "classList" in document.documentElement && "Element" in this && "classList" in Element.prototype && ((e = document.createElement("span")).classList.add("a", "b"), e.classList.contains("b")) || function(t) {
-                var n = !0,
-                    i = function(t, e, i, o) {
-                        Object.defineProperty ? Object.defineProperty(t, e, {
-                            configurable: !1 === n || !!o,
-                            get: i
-                        }) : t.__defineGetter__(e, i)
-                    };
-                try {
-                    i({}, "support")
-                } catch (e) {
-                    n = !1
-                }
-                var o = function(t, e, s) {
-                    i(t.prototype, e, (function() {
-                        var t, r = this,
-                            a = "__defineGetter__DEFINE_PROPERTY" + e;
-                        if (r[a]) return t;
-                        if (r[a] = !0, !1 === n) {
-                            for (var l, c = o.mirror || document.createElement("div"), u = c.childNodes, d = u.length, h = 0; h < d; ++h)
-                                if (u[h]._R === r) {
-                                    l = u[h];
-                                    break
-                                } l || (l = c.appendChild(document.createElement("div"))), t = DOMTokenList.call(l, r, s)
-                        } else t = new DOMTokenList(r, s);
-                        return i(r, e, (function() {
-                            return t
-                        })), delete r[a], t
-                    }), !0)
-                };
-                o(t.Element, "classList", "className"), o(t.HTMLElement, "classList", "className"), o(t.HTMLLinkElement, "relList", "rel"), o(t.HTMLAnchorElement, "relList", "rel"), o(t.HTMLAreaElement, "relList", "rel")
-            }(this)
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "document" in this && "matches" in document.documentElement || (Element.prototype.matches = Element.prototype.webkitMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || function(t) {
-                for (var e = this, n = (e.document || e.ownerDocument).querySelectorAll(t), i = 0; n[i] && n[i] !== e;) ++i;
-                return !!n[i]
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "document" in this && "closest" in document.documentElement || (Element.prototype.closest = function(t) {
-                for (var e = this; e;) {
-                    if (e.matches(t)) return e;
-                    e = "SVGElement" in window && e instanceof SVGElement ? e.parentNode : e.parentElement
-                }
-                return null
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "Window" in this || "undefined" == typeof WorkerGlobalScope && "function" != typeof importScripts && function(t) {
-                t.constructor ? t.Window = t.constructor : (t.Window = t.constructor = new Function("return function Window() {}")()).prototype = this
-            }(this)
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            (function(t) {
-                if (!("Event" in t)) return !1;
-                if ("function" == typeof t.Event) return !0;
-                try {
-                    return new Event("click"), !0
-                } catch (e) {
-                    return !1
-                }
-            })(this) || function() {
-                var e = {
-                    click: 1,
-                    dblclick: 1,
-                    keyup: 1,
-                    keypress: 1,
-                    keydown: 1,
-                    mousedown: 1,
-                    mouseup: 1,
-                    mousemove: 1,
-                    mouseover: 1,
-                    mouseenter: 1,
-                    mouseleave: 1,
-                    mouseout: 1,
-                    storage: 1,
-                    storagecommit: 1,
-                    textinput: 1
-                };
-                if ("undefined" != typeof document && "undefined" != typeof window) {
-                    var n = window.Event && window.Event.prototype || null;
-                    window.Event = Window.prototype.Event = function(e, n) {
-                        if (!e) throw new Error("Not enough arguments");
-                        var i;
-                        if ("createEvent" in document) {
-                            i = document.createEvent("Event");
-                            var o = !(!n || n.bubbles === t) && n.bubbles,
-                                s = !(!n || n.cancelable === t) && n.cancelable;
-                            return i.initEvent(e, o, s), i
-                        }
-                        return (i = document.createEventObject()).type = e, i.bubbles = !(!n || n.bubbles === t) && n.bubbles, i.cancelable = !(!n || n.cancelable === t) && n.cancelable, i
-                    }, n && Object.defineProperty(window.Event, "prototype", {
-                        configurable: !1,
-                        enumerable: !1,
-                        writable: !0,
-                        value: n
-                    }), "createEvent" in document || (window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function() {
-                        var t = this,
-                            n = arguments[0],
-                            o = arguments[1];
-                        if (t === window && n in e) throw new Error("In IE8 the event: " + n + " is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.");
-                        t._events || (t._events = {}), t._events[n] || (t._events[n] = function(e) {
-                            var n, o = t._events[e.type].list,
-                                s = o.slice(),
-                                r = -1,
-                                a = s.length;
-                            for (e.preventDefault = function() {
-                                    !1 !== e.cancelable && (e.returnValue = !1)
-                                }, e.stopPropagation = function() {
-                                    e.cancelBubble = !0
-                                }, e.stopImmediatePropagation = function() {
-                                    e.cancelBubble = !0, e.cancelImmediate = !0
-                                }, e.currentTarget = t, e.relatedTarget = e.fromElement || null, e.target = e.target || e.srcElement || t, e.timeStamp = (new Date).getTime(), e.clientX && (e.pageX = e.clientX + document.documentElement.scrollLeft, e.pageY = e.clientY + document.documentElement.scrollTop); ++r < a && !e.cancelImmediate;) r in s && -1 !== i(o, n = s[r]) && "function" == typeof n && n.call(t, e)
-                        }, t._events[n].list = [], t.attachEvent && t.attachEvent("on" + n, t._events[n])), t._events[n].list.push(o)
-                    }, window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function() {
-                        var t, e = this,
-                            n = arguments[0],
-                            o = arguments[1];
-                        e._events && e._events[n] && e._events[n].list && -1 !== (t = i(e._events[n].list, o)) && (e._events[n].list.splice(t, 1), e._events[n].list.length || (e.detachEvent && e.detachEvent("on" + n, e._events[n]), delete e._events[n]))
-                    }, window.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function(t) {
-                        if (!arguments.length) throw new Error("Not enough arguments");
-                        if (!t || "string" != typeof t.type) throw new Error("DOM Events Exception 0");
-                        var e = this,
-                            n = t.type;
-                        try {
-                            if (!t.bubbles) {
-                                t.cancelBubble = !0;
-                                var i = function(t) {
-                                    t.cancelBubble = !0, (e || window).detachEvent("on" + n, i)
-                                };
-                                this.attachEvent("on" + n, i)
-                            }
-                            this.fireEvent("on" + n, t)
-                        } catch (o) {
-                            t.target = e;
-                            do {
-                                t.currentTarget = e, "_events" in e && "function" == typeof e._events[n] && e._events[n].call(e, t), "function" == typeof e["on" + n] && e["on" + n].call(e, t), e = 9 === e.nodeType ? e.parentWindow : e.parentNode
-                            } while (e && !t.cancelBubble)
-                        }
-                        return !0
-                    }, document.attachEvent("onreadystatechange", (function() {
-                        "complete" === document.readyState && document.dispatchEvent(new Event("DOMContentLoaded", {
-                            bubbles: !0
-                        }))
-                    })))
-                }
-
-                function i(t, e) {
-                    for (var n = -1, i = t.length; ++n < i;)
-                        if (n in t && t[n] === e) return n;
-                    return -1
-                }
-            }()
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "bind" in Function.prototype || Object.defineProperty(Function.prototype, "bind", {
-                value: function(t) {
-                    var e, n = Array,
-                        i = Object,
-                        o = i.prototype,
-                        s = n.prototype,
-                        r = function() {},
-                        a = o.toString,
-                        l = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag,
-                        c = Function.prototype.toString;
-                    e = function(t) {
-                        if ("function" != typeof t) return !1;
-                        if (l) return function(t) {
-                            try {
-                                return c.call(t), !0
-                            } catch (e) {
-                                return !1
-                            }
-                        }(t);
-                        var e = a.call(t);
-                        return "[object Function]" === e || "[object GeneratorFunction]" === e
-                    };
-                    var u = s.slice,
-                        d = s.concat,
-                        h = s.push,
-                        p = Math.max,
-                        f = this;
-                    if (!e(f)) throw new TypeError("Function.prototype.bind called on incompatible " + f);
-                    for (var m, v = u.call(arguments, 1), b = p(0, f.length - v.length), g = [], y = 0; y < b; y++) h.call(g, "$" + y);
-                    return m = Function("binder", "return function (" + g.join(",") + "){ return binder.apply(this, arguments); }")((function() {
-                        if (this instanceof m) {
-                            var e = f.apply(this, d.call(v, u.call(arguments)));
-                            return i(e) === e ? e : this
-                        }
-                        return f.apply(t, d.call(v, u.call(arguments)))
-                    })), f.prototype && (r.prototype = f.prototype, m.prototype = new r, r.prototype = null), m
-                }
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {});
-    var a = {
-        hideAllSections: "Hide all sections",
-        hideSection: "Hide",
-        hideSectionAriaLabel: "Hide this section",
-        showAllSections: "Show all sections",
-        showSection: "Show",
-        showSectionAriaLabel: "Show this section"
-    };
-
-    function l(t, e) {
-        if (!(t instanceof HTMLElement)) return this;
-        this.$module = t;
-        var o = {
-            i18n: a,
-            rememberExpanded: !0
-        };
-        this.config = n(o, e || {}, s(t.dataset)), this.i18n = new r(i(this.config, "i18n")), this.controlsClass = "govuk-accordion__controls", this.showAllClass = "govuk-accordion__show-all", this.showAllTextClass = "govuk-accordion__show-all-text", this.sectionClass = "govuk-accordion__section", this.sectionExpandedClass = "govuk-accordion__section--expanded", this.sectionButtonClass = "govuk-accordion__section-button", this.sectionHeaderClass = "govuk-accordion__section-header", this.sectionHeadingClass = "govuk-accordion__section-heading", this.sectionHeadingDividerClass = "govuk-accordion__section-heading-divider", this.sectionHeadingTextClass = "govuk-accordion__section-heading-text", this.sectionHeadingTextFocusClass = "govuk-accordion__section-heading-text-focus", this.sectionShowHideToggleClass = "govuk-accordion__section-toggle", this.sectionShowHideToggleFocusClass = "govuk-accordion__section-toggle-focus", this.sectionShowHideTextClass = "govuk-accordion__section-toggle-text", this.upChevronIconClass = "govuk-accordion-nav__chevron", this.downChevronIconClass = "govuk-accordion-nav__chevron--down", this.sectionSummaryClass = "govuk-accordion__section-summary", this.sectionSummaryFocusClass = "govuk-accordion__section-summary-focus", this.sectionContentClass = "govuk-accordion__section-content";
-        var l = this.$module.querySelectorAll("." + this.sectionClass);
-        if (!l.length) return this;
-        this.$sections = l, this.browserSupportsSessionStorage = c.checkForSessionStorage(), this.$showAllButton = null, this.$showAllIcon = null, this.$showAllText = null
-    }
-    l.prototype.init = function() {
-        if (this.$module && this.$sections) {
-            this.initControls(), this.initSectionHeaders();
-            var t = this.checkIfAllSectionsOpen();
-            this.updateShowAllButton(t)
+            return i
         }
-    }, l.prototype.initControls = function() {
+        return t
+    }
+    replacePlaceholders(t, e) {
+        const i = Intl.NumberFormat.supportedLocalesOf(this.locale).length ? new Intl.NumberFormat(this.locale) : void 0;
+        return t.replace(/%{(.\S+)}/g, (function(t, s) {
+            if (Object.prototype.hasOwnProperty.call(e, s)) {
+                const t = e[s];
+                return !1 === t || "number" != typeof t && "string" != typeof t ? "" : "number" == typeof t ? i ? i.format(t) : `${t}` : t
+            }
+            throw new Error(`i18n: no data found to replace ${t} placeholder in string`)
+        }))
+    }
+    hasIntlPluralRulesSupport() {
+        return Boolean("PluralRules" in window.Intl && Intl.PluralRules.supportedLocalesOf(this.locale).length)
+    }
+    getPluralSuffix(t, e) {
+        if (e = Number(e), !isFinite(e)) return "other";
+        const i = this.hasIntlPluralRulesSupport() ? new Intl.PluralRules(this.locale).select(e) : this.selectPluralFormUsingFallbackRules(e);
+        if (`${t}.${i}` in this.translations) return i;
+        if (`${t}.other` in this.translations) return console.warn(`i18n: Missing plural form ".${i}" for "${this.locale}" locale. Falling back to ".other".`), "other";
+        throw new Error(`i18n: Plural form ".other" is required for "${this.locale}" locale`)
+    }
+    selectPluralFormUsingFallbackRules(t) {
+        t = Math.abs(Math.floor(t));
+        const e = this.getPluralRulesForLocale();
+        return e ? I18n.pluralRules[e](t) : "other"
+    }
+    getPluralRulesForLocale() {
+        const t = this.locale.split("-")[0];
+        for (const e in I18n.pluralRulesMap)
+            for (const i of I18n.pluralRulesMap[e])
+                if (i === this.locale || i === t) return e
+    }
+}
+I18n.pluralRulesMap = {
+    arabic: ["ar"],
+    chinese: ["my", "zh", "id", "ja", "jv", "ko", "ms", "th", "vi"],
+    french: ["hy", "bn", "fr", "gu", "hi", "fa", "pa", "zu"],
+    german: ["af", "sq", "az", "eu", "bg", "ca", "da", "nl", "en", "et", "fi", "ka", "de", "el", "hu", "lb", "no", "so", "sw", "sv", "ta", "te", "tr", "ur"],
+    irish: ["ga"],
+    russian: ["ru", "uk"],
+    scottish: ["gd"],
+    spanish: ["pt-PT", "it", "es"],
+    welsh: ["cy"]
+}, I18n.pluralRules = {
+    arabic: t => 0 === t ? "zero" : 1 === t ? "one" : 2 === t ? "two" : t % 100 >= 3 && t % 100 <= 10 ? "few" : t % 100 >= 11 && t % 100 <= 99 ? "many" : "other",
+    chinese: () => "other",
+    french: t => 0 === t || 1 === t ? "one" : "other",
+    german: t => 1 === t ? "one" : "other",
+    irish: t => 1 === t ? "one" : 2 === t ? "two" : t >= 3 && t <= 6 ? "few" : t >= 7 && t <= 10 ? "many" : "other",
+    russian(t) {
+        const e = t % 100,
+            i = e % 10;
+        return 1 === i && 11 !== e ? "one" : i >= 2 && i <= 4 && !(e >= 12 && e <= 14) ? "few" : 0 === i || i >= 5 && i <= 9 || e >= 11 && e <= 14 ? "many" : "other"
+    },
+    scottish: t => 1 === t || 11 === t ? "one" : 2 === t || 12 === t ? "two" : t >= 3 && t <= 10 || t >= 13 && t <= 19 ? "few" : "other",
+    spanish: t => 1 === t ? "one" : t % 1e6 == 0 && 0 !== t ? "many" : "other",
+    welsh: t => 0 === t ? "zero" : 1 === t ? "one" : 2 === t ? "two" : 3 === t ? "few" : 6 === t ? "many" : "other"
+};
+class Accordion extends GOVUKFrontendComponent {
+    constructor(e, i = {}) {
+        if (super(), this.$module = void 0, this.config = void 0, this.i18n = void 0, this.controlsClass = "govuk-accordion__controls", this.showAllClass = "govuk-accordion__show-all", this.showAllTextClass = "govuk-accordion__show-all-text", this.sectionClass = "govuk-accordion__section", this.sectionExpandedClass = "govuk-accordion__section--expanded", this.sectionButtonClass = "govuk-accordion__section-button", this.sectionHeaderClass = "govuk-accordion__section-header", this.sectionHeadingClass = "govuk-accordion__section-heading", this.sectionHeadingDividerClass = "govuk-accordion__section-heading-divider", this.sectionHeadingTextClass = "govuk-accordion__section-heading-text", this.sectionHeadingTextFocusClass = "govuk-accordion__section-heading-text-focus", this.sectionShowHideToggleClass = "govuk-accordion__section-toggle", this.sectionShowHideToggleFocusClass = "govuk-accordion__section-toggle-focus", this.sectionShowHideTextClass = "govuk-accordion__section-toggle-text", this.upChevronIconClass = "govuk-accordion-nav__chevron", this.downChevronIconClass = "govuk-accordion-nav__chevron--down", this.sectionSummaryClass = "govuk-accordion__section-summary", this.sectionSummaryFocusClass = "govuk-accordion__section-summary-focus", this.sectionContentClass = "govuk-accordion__section-content", this.$sections = void 0, this.browserSupportsSessionStorage = !1, this.$showAllButton = null, this.$showAllIcon = null, this.$showAllText = null, !(e instanceof HTMLElement)) throw new ElementError({
+            componentName: "Accordion",
+            element: e,
+            identifier: "Root element (`$module`)"
+        });
+        this.$module = e, this.config = mergeConfigs(Accordion.defaults, i, normaliseDataset(e.dataset)), this.i18n = new I18n(extractConfigByNamespace(this.config, "i18n"));
+        const s = this.$module.querySelectorAll(`.${this.sectionClass}`);
+        if (!s.length) throw new ElementError({
+            componentName: "Accordion",
+            identifier: `Sections (\`<div class="${this.sectionClass}">\`)`
+        });
+        this.$sections = s, this.browserSupportsSessionStorage = t.checkForSessionStorage(), this.initControls(), this.initSectionHeaders();
+        const n = this.checkIfAllSectionsOpen();
+        this.updateShowAllButton(n)
+    }
+    initControls() {
         this.$showAllButton = document.createElement("button"), this.$showAllButton.setAttribute("type", "button"), this.$showAllButton.setAttribute("class", this.showAllClass), this.$showAllButton.setAttribute("aria-expanded", "false"), this.$showAllIcon = document.createElement("span"), this.$showAllIcon.classList.add(this.upChevronIconClass), this.$showAllButton.appendChild(this.$showAllIcon);
-        var t = document.createElement("div");
-        t.setAttribute("class", this.controlsClass), t.appendChild(this.$showAllButton), this.$module.insertBefore(t, this.$module.firstChild), this.$showAllText = document.createElement("span"), this.$showAllText.classList.add(this.showAllTextClass), this.$showAllButton.appendChild(this.$showAllText), this.$showAllButton.addEventListener("click", this.onShowOrHideAllToggle.bind(this)), "onbeforematch" in document && document.addEventListener("beforematch", this.onBeforeMatch.bind(this))
-    }, l.prototype.initSectionHeaders = function() {
-        var t = this;
-        e(this.$sections, (function(e, n) {
-            var i = e.querySelector("." + t.sectionHeaderClass);
-            i && (t.constructHeaderMarkup(i, n), t.setExpanded(t.isExpanded(e), e), i.addEventListener("click", t.onSectionToggle.bind(t, e)), t.setInitialState(e))
+        const t = document.createElement("div");
+        t.setAttribute("class", this.controlsClass), t.appendChild(this.$showAllButton), this.$module.insertBefore(t, this.$module.firstChild), this.$showAllText = document.createElement("span"), this.$showAllText.classList.add(this.showAllTextClass), this.$showAllButton.appendChild(this.$showAllText), this.$showAllButton.addEventListener("click", (() => this.onShowOrHideAllToggle())), "onbeforematch" in document && document.addEventListener("beforematch", (t => this.onBeforeMatch(t)))
+    }
+    initSectionHeaders() {
+        this.$sections.forEach(((t, e) => {
+            const i = t.querySelector(`.${this.sectionHeaderClass}`);
+            if (!i) throw new ElementError({
+                componentName: "Accordion",
+                identifier: `Section headers (\`<div class="${this.sectionHeaderClass}">\`)`
+            });
+            this.constructHeaderMarkup(i, e), this.setExpanded(this.isExpanded(t), t), i.addEventListener("click", (() => this.onSectionToggle(t))), this.setInitialState(t)
         }))
-    }, l.prototype.constructHeaderMarkup = function(t, e) {
-        var n = t.querySelector("." + this.sectionButtonClass),
-            i = t.querySelector("." + this.sectionHeadingClass),
-            o = t.querySelector("." + this.sectionSummaryClass);
-        if (n && i) {
-            var s = document.createElement("button");
-            s.setAttribute("type", "button"), s.setAttribute("aria-controls", this.$module.id + "-content-" + (e + 1).toString());
-            for (var r = 0; r < n.attributes.length; r++) {
-                var a = n.attributes.item(r);
-                "id" !== a.nodeName && s.setAttribute(a.nodeName, a.nodeValue)
-            }
-            var l = document.createElement("span");
-            l.classList.add(this.sectionHeadingTextClass), l.id = n.id;
-            var c = document.createElement("span");
-            c.classList.add(this.sectionHeadingTextFocusClass), l.appendChild(c), c.innerHTML = n.innerHTML;
-            var u = document.createElement("span");
-            u.classList.add(this.sectionShowHideToggleClass), u.setAttribute("data-nosnippet", "");
-            var d = document.createElement("span");
-            d.classList.add(this.sectionShowHideToggleFocusClass), u.appendChild(d);
-            var h = document.createElement("span"),
-                p = document.createElement("span");
-            if (p.classList.add(this.upChevronIconClass), d.appendChild(p), h.classList.add(this.sectionShowHideTextClass), d.appendChild(h), s.appendChild(l), s.appendChild(this.getButtonPunctuationEl()), o) {
-                var f = document.createElement("span"),
-                    m = document.createElement("span");
-                m.classList.add(this.sectionSummaryFocusClass), f.appendChild(m);
-                for (var v = 0, b = o.attributes.length; v < b; ++v) {
-                    var g = o.attributes.item(v).nodeName,
-                        y = o.attributes.item(v).nodeValue;
-                    f.setAttribute(g, y)
-                }
-                m.innerHTML = o.innerHTML, o.parentNode.replaceChild(f, o), s.appendChild(f), s.appendChild(this.getButtonPunctuationEl())
-            }
-            s.appendChild(u), i.removeChild(n), i.appendChild(s)
-        }
-    }, l.prototype.onBeforeMatch = function(t) {
-        var e = t.target;
-        if (e instanceof Element) {
-            var n = e.closest("." + this.sectionClass);
-            n && this.setExpanded(!0, n)
+    }
+    constructHeaderMarkup(t, e) {
+        const i = t.querySelector(`.${this.sectionButtonClass}`),
+            s = t.querySelector(`.${this.sectionHeadingClass}`),
+            n = t.querySelector(`.${this.sectionSummaryClass}`);
+        if (!s) throw new ElementError({
+            componentName: "Accordion",
+            identifier: `Section heading (\`.${this.sectionHeadingClass}\`)`
+        });
+        if (!i) throw new ElementError({
+            componentName: "Accordion",
+            identifier: `Section button placeholder (\`<span class="${this.sectionButtonClass}">\`)`
+        });
+        const o = document.createElement("button");
+        o.setAttribute("type", "button"), o.setAttribute("aria-controls", `${this.$module.id}-content-${e+1}`);
+        for (const u of Array.from(i.attributes)) "id" !== u.nodeName && o.setAttribute(u.nodeName, u.nodeValue);
+        const r = document.createElement("span");
+        r.classList.add(this.sectionHeadingTextClass), r.id = i.id;
+        const a = document.createElement("span");
+        a.classList.add(this.sectionHeadingTextFocusClass), r.appendChild(a), a.innerHTML = i.innerHTML;
+        const l = document.createElement("span");
+        l.classList.add(this.sectionShowHideToggleClass), l.setAttribute("data-nosnippet", "");
+        const c = document.createElement("span");
+        c.classList.add(this.sectionShowHideToggleFocusClass), l.appendChild(c);
+        const h = document.createElement("span"),
+            d = document.createElement("span");
+        if (d.classList.add(this.upChevronIconClass), c.appendChild(d), h.classList.add(this.sectionShowHideTextClass), c.appendChild(h), o.appendChild(r), o.appendChild(this.getButtonPunctuationEl()), n && n.parentNode) {
+            const t = document.createElement("span"),
+                e = document.createElement("span");
+            e.classList.add(this.sectionSummaryFocusClass), t.appendChild(e);
+            for (const i of Array.from(n.attributes)) t.setAttribute(i.nodeName, i.nodeValue);
+            e.innerHTML = n.innerHTML, n.parentNode.replaceChild(t, n), o.appendChild(t), o.appendChild(this.getButtonPunctuationEl())
         }
-    }, l.prototype.onSectionToggle = function(t) {
-        var e = this.isExpanded(t);
+        o.appendChild(l), s.removeChild(i), s.appendChild(o)
+    }
+    onBeforeMatch(t) {
+        const e = t.target;
+        if (!(e instanceof Element)) return;
+        const i = e.closest(`.${this.sectionClass}`);
+        i && this.setExpanded(!0, i)
+    }
+    onSectionToggle(t) {
+        const e = this.isExpanded(t);
         this.setExpanded(!e, t), this.storeState(t)
-    }, l.prototype.onShowOrHideAllToggle = function() {
-        var t = this,
-            n = this.$sections,
-            i = !this.checkIfAllSectionsOpen();
-        e(n, (function(e) {
-            t.setExpanded(i, e), t.storeState(e)
-        })), t.updateShowAllButton(i)
-    }, l.prototype.setExpanded = function(t, e) {
-        var n = e.querySelector("." + this.upChevronIconClass),
-            i = e.querySelector("." + this.sectionShowHideTextClass),
-            o = e.querySelector("." + this.sectionButtonClass),
-            s = e.querySelector("." + this.sectionContentClass);
-        if (n && i instanceof HTMLElement && o && s) {
-            var r = t ? this.i18n.t("hideSection") : this.i18n.t("showSection");
-            i.innerText = r, o.setAttribute("aria-expanded", t.toString());
-            var a = [],
-                l = e.querySelector("." + this.sectionHeadingTextClass);
-            l instanceof HTMLElement && a.push(l.innerText.trim());
-            var c = e.querySelector("." + this.sectionSummaryClass);
-            c instanceof HTMLElement && a.push(c.innerText.trim());
-            var u = t ? this.i18n.t("hideSectionAriaLabel") : this.i18n.t("showSectionAriaLabel");
-            a.push(u), o.setAttribute("aria-label", a.join(" , ")), t ? (s.removeAttribute("hidden"), e.classList.add(this.sectionExpandedClass), n.classList.remove(this.downChevronIconClass)) : (s.setAttribute("hidden", "until-found"), e.classList.remove(this.sectionExpandedClass), n.classList.add(this.downChevronIconClass));
-            var d = this.checkIfAllSectionsOpen();
-            this.updateShowAllButton(d)
-        }
-    }, l.prototype.isExpanded = function(t) {
+    }
+    onShowOrHideAllToggle() {
+        const t = !this.checkIfAllSectionsOpen();
+        this.$sections.forEach((e => {
+            this.setExpanded(t, e), this.storeState(e)
+        })), this.updateShowAllButton(t)
+    }
+    setExpanded(t, e) {
+        const i = e.querySelector(`.${this.upChevronIconClass}`),
+            s = e.querySelector(`.${this.sectionShowHideTextClass}`),
+            n = e.querySelector(`.${this.sectionButtonClass}`),
+            o = e.querySelector(`.${this.sectionContentClass}`);
+        if (!o) throw new ElementError({
+            componentName: "Accordion",
+            identifier: `Section content (\`<div class="${this.sectionContentClass}">\`)`
+        });
+        if (!i || !s || !n) return;
+        const r = t ? this.i18n.t("hideSection") : this.i18n.t("showSection");
+        s.textContent = r, n.setAttribute("aria-expanded", `${t}`);
+        const a = [],
+            l = e.querySelector(`.${this.sectionHeadingTextClass}`);
+        l && a.push(l.textContent.trim());
+        const c = e.querySelector(`.${this.sectionSummaryClass}`);
+        c && a.push(c.textContent.trim());
+        const h = t ? this.i18n.t("hideSectionAriaLabel") : this.i18n.t("showSectionAriaLabel");
+        a.push(h), n.setAttribute("aria-label", a.join(" , ")), t ? (o.removeAttribute("hidden"), e.classList.add(this.sectionExpandedClass), i.classList.remove(this.downChevronIconClass)) : (o.setAttribute("hidden", "until-found"), e.classList.remove(this.sectionExpandedClass), i.classList.add(this.downChevronIconClass));
+        const d = this.checkIfAllSectionsOpen();
+        this.updateShowAllButton(d)
+    }
+    isExpanded(t) {
         return t.classList.contains(this.sectionExpandedClass)
-    }, l.prototype.checkIfAllSectionsOpen = function() {
-        return this.$sections.length === this.$module.querySelectorAll("." + this.sectionExpandedClass).length
-    }, l.prototype.updateShowAllButton = function(t) {
-        var e = t ? this.i18n.t("hideAllSections") : this.i18n.t("showAllSections");
-        this.$showAllButton.setAttribute("aria-expanded", t.toString()), this.$showAllText.innerText = e, t ? this.$showAllIcon.classList.remove(this.downChevronIconClass) : this.$showAllIcon.classList.add(this.downChevronIconClass)
-    };
-    var c = {
-        checkForSessionStorage: function() {
-            var t, e = "this is the test string";
-            try {
-                return window.sessionStorage.setItem(e, e), t = window.sessionStorage.getItem(e) === e.toString(), window.sessionStorage.removeItem(e), t
-            } catch (n) {
-                return !1
-            }
-        }
-    };
-    l.prototype.storeState = function(t) {
+    }
+    checkIfAllSectionsOpen() {
+        return this.$sections.length === this.$module.querySelectorAll(`.${this.sectionExpandedClass}`).length
+    }
+    updateShowAllButton(t) {
+        this.$showAllButton && this.$showAllText && this.$showAllIcon && (this.$showAllButton.setAttribute("aria-expanded", t.toString()), this.$showAllText.textContent = t ? this.i18n.t("hideAllSections") : this.i18n.t("showAllSections"), this.$showAllIcon.classList.toggle(this.downChevronIconClass, !t))
+    }
+    storeState(t) {
         if (this.browserSupportsSessionStorage && this.config.rememberExpanded) {
-            var e = t.querySelector("." + this.sectionButtonClass);
+            const e = t.querySelector(`.${this.sectionButtonClass}`);
             if (e) {
-                var n = e.getAttribute("aria-controls"),
+                const t = e.getAttribute("aria-controls"),
                     i = e.getAttribute("aria-expanded");
-                n && i && window.sessionStorage.setItem(n, i)
+                t && i && window.sessionStorage.setItem(t, i)
             }
         }
-    }, l.prototype.setInitialState = function(t) {
+    }
+    setInitialState(t) {
         if (this.browserSupportsSessionStorage && this.config.rememberExpanded) {
-            var e = t.querySelector("." + this.sectionButtonClass);
+            const e = t.querySelector(`.${this.sectionButtonClass}`);
             if (e) {
-                var n = e.getAttribute("aria-controls"),
-                    i = n ? window.sessionStorage.getItem(n) : null;
-                null !== i && this.setExpanded("true" === i, t)
+                const i = e.getAttribute("aria-controls"),
+                    s = i ? window.sessionStorage.getItem(i) : null;
+                null !== s && this.setExpanded("true" === s, t)
             }
         }
-    }, l.prototype.getButtonPunctuationEl = function() {
-        var t = document.createElement("span");
+    }
+    getButtonPunctuationEl() {
+        const t = document.createElement("span");
         return t.classList.add("govuk-visually-hidden", this.sectionHeadingDividerClass), t.innerHTML = ", ", t
-    };
+    }
+}
+Accordion.moduleName = "govuk-accordion", Accordion.defaults = Object.freeze({
+    i18n: {
+        hideAllSections: "Hide all sections",
+        hideSection: "Hide",
+        hideSectionAriaLabel: "Hide this section",
+        showAllSections: "Show all sections",
+        showSection: "Show",
+        showSectionAriaLabel: "Show this section"
+    },
+    rememberExpanded: !0
+});
+const t = {
+    checkForSessionStorage: function() {
+        const t = "this is the test string";
+        let e;
+        try {
+            return window.sessionStorage.setItem(t, t), e = window.sessionStorage.getItem(t) === t.toString(), window.sessionStorage.removeItem(t), e
+        } catch (i) {
+            return !1
+        }
+    }
+};
+class Button extends GOVUKFrontendComponent {
+    constructor(t, e = {}) {
+        if (super(), this.$module = void 0, this.config = void 0, this.debounceFormSubmitTimer = null, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Button",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        this.$module = t, this.config = mergeConfigs(Button.defaults, e, normaliseDataset(t.dataset)), this.$module.addEventListener("keydown", (t => this.handleKeyDown(t))), this.$module.addEventListener("click", (t => this.debounce(t)))
+    }
+    handleKeyDown(t) {
+        const e = t.target;
+        32 === t.keyCode && e instanceof HTMLElement && "button" === e.getAttribute("role") && (t.preventDefault(), e.click())
+    }
+    debounce(t) {
+        if (this.config.preventDoubleClick) return this.debounceFormSubmitTimer ? (t.preventDefault(), !1) : void(this.debounceFormSubmitTimer = window.setTimeout((() => {
+            this.debounceFormSubmitTimer = null
+        }), 1e3))
+    }
+}
 
-    function u(t, e) {
-        if (!(t instanceof HTMLElement)) return this;
-        this.$module = t, this.debounceFormSubmitTimer = null;
-        this.config = n({
-            preventDoubleClick: !1
-        }, e || {}, s(t.dataset))
-    }
-    u.prototype.init = function() {
-            this.$module && (this.$module.addEventListener("keydown", this.handleKeyDown), this.$module.addEventListener("click", this.debounce.bind(this)))
-        }, u.prototype.handleKeyDown = function(t) {
-            var e = t.target;
-            32 === t.keyCode && e instanceof HTMLElement && "button" === e.getAttribute("role") && (t.preventDefault(), e.click())
-        }, u.prototype.debounce = function(t) {
-            if (this.config.preventDoubleClick) return this.debounceFormSubmitTimer ? (t.preventDefault(), !1) : void(this.debounceFormSubmitTimer = setTimeout(function() {
-                this.debounceFormSubmitTimer = null
-            }.bind(this), 1e3))
-        },
-        function(t) {
-            "Date" in self && "now" in self.Date && "getTime" in self.Date.prototype || (Date.now = function() {
-                return (new Date).getTime()
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {});
-    var d = {
+function closestAttributeValue(t, e) {
+    const i = t.closest(`[${e}]`);
+    return i ? i.getAttribute(e) : null
+}
+Button.moduleName = "govuk-button", Button.defaults = Object.freeze({
+    preventDoubleClick: !1
+});
+class CharacterCount extends GOVUKFrontendComponent {
+    constructor(t, e = {}) {
+        if (super(), this.$module = void 0, this.$textarea = void 0, this.$visibleCountMessage = void 0, this.$screenReaderCountMessage = void 0, this.lastInputTimestamp = null, this.lastInputValue = "", this.valueChecker = null, this.config = void 0, this.i18n = void 0, this.maxLength = void 0, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Character count",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        const i = t.querySelector(".govuk-js-character-count");
+        if (!(i instanceof HTMLTextAreaElement || i instanceof HTMLInputElement)) throw new ElementError({
+            componentName: "Character count",
+            element: i,
+            expectedType: "HTMLTextareaElement or HTMLInputElement",
+            identifier: "Form field (`.govuk-js-character-count`)"
+        });
+        const s = normaliseDataset(t.dataset);
+        let n = {};
+        ("maxwords" in s || "maxlength" in s) && (n = {
+            maxlength: void 0,
+            maxwords: void 0
+        }), this.config = mergeConfigs(CharacterCount.defaults, e, n, s);
+        const o = function(t, e) {
+            const i = [];
+            for (const [s, n] of Object.entries(t)) {
+                const t = [];
+                for (const {
+                        required: i,
+                        errorMessage: s
+                    }
+                    of n) i.every((t => !!e[t])) || t.push(s);
+                "anyOf" !== s || n.length - t.length >= 1 || i.push(...t)
+            }
+            return i
+        }(CharacterCount.schema, this.config);
+        if (o[0]) throw new ConfigError(`Character count: ${o[0]}`);
+        this.i18n = new I18n(extractConfigByNamespace(this.config, "i18n"), {
+            locale: closestAttributeValue(t, "lang")
+        }), this.maxLength = this.config.maxwords || this.config.maxlength || 1 / 0, this.$module = t, this.$textarea = i;
+        const r = `${this.$textarea.id}-info`,
+            a = document.getElementById(r);
+        if (!a) throw new ElementError({
+            componentName: "Character count",
+            element: a,
+            identifier: `Count message (\`id="${r}"\`)`
+        });
+        a.textContent.match(/^\s*$/) && (a.textContent = this.i18n.t("textareaDescription", {
+            count: this.maxLength
+        })), this.$textarea.insertAdjacentElement("afterend", a);
+        const l = document.createElement("div");
+        l.className = "govuk-character-count__sr-status govuk-visually-hidden", l.setAttribute("aria-live", "polite"), this.$screenReaderCountMessage = l, a.insertAdjacentElement("afterend", l);
+        const c = document.createElement("div");
+        c.className = a.className, c.classList.add("govuk-character-count__status"), c.setAttribute("aria-hidden", "true"), this.$visibleCountMessage = c, a.insertAdjacentElement("afterend", c), a.classList.add("govuk-visually-hidden"), this.$textarea.removeAttribute("maxlength"), this.bindChangeEvents(), window.addEventListener("pageshow", (() => this.updateCountMessage())), this.updateCountMessage()
+    }
+    bindChangeEvents() {
+        this.$textarea.addEventListener("keyup", (() => this.handleKeyUp())), this.$textarea.addEventListener("focus", (() => this.handleFocus())), this.$textarea.addEventListener("blur", (() => this.handleBlur()))
+    }
+    handleKeyUp() {
+        this.updateVisibleCountMessage(), this.lastInputTimestamp = Date.now()
+    }
+    handleFocus() {
+        this.valueChecker = window.setInterval((() => {
+            (!this.lastInputTimestamp || Date.now() - 500 >= this.lastInputTimestamp) && this.updateIfValueChanged()
+        }), 1e3)
+    }
+    handleBlur() {
+        this.valueChecker && window.clearInterval(this.valueChecker)
+    }
+    updateIfValueChanged() {
+        this.$textarea.value !== this.lastInputValue && (this.lastInputValue = this.$textarea.value, this.updateCountMessage())
+    }
+    updateCountMessage() {
+        this.updateVisibleCountMessage(), this.updateScreenReaderCountMessage()
+    }
+    updateVisibleCountMessage() {
+        const t = this.maxLength - this.count(this.$textarea.value) < 0;
+        this.$visibleCountMessage.classList.toggle("govuk-character-count__message--disabled", !this.isOverThreshold()), this.$textarea.classList.toggle("govuk-textarea--error", t), this.$visibleCountMessage.classList.toggle("govuk-error-message", t), this.$visibleCountMessage.classList.toggle("govuk-hint", !t), this.$visibleCountMessage.textContent = this.getCountMessage()
+    }
+    updateScreenReaderCountMessage() {
+        this.isOverThreshold() ? this.$screenReaderCountMessage.removeAttribute("aria-hidden") : this.$screenReaderCountMessage.setAttribute("aria-hidden", "true"), this.$screenReaderCountMessage.textContent = this.getCountMessage()
+    }
+    count(t) {
+        if (this.config.maxwords) {
+            return (t.match(/\S+/g) || []).length
+        }
+        return t.length
+    }
+    getCountMessage() {
+        const t = this.maxLength - this.count(this.$textarea.value),
+            e = this.config.maxwords ? "words" : "characters";
+        return this.formatCountMessage(t, e)
+    }
+    formatCountMessage(t, e) {
+        if (0 === t) return this.i18n.t(`${e}AtLimit`);
+        const i = t < 0 ? "OverLimit" : "UnderLimit";
+        return this.i18n.t(`${e}${i}`, {
+            count: Math.abs(t)
+        })
+    }
+    isOverThreshold() {
+        if (!this.config.threshold) return !0;
+        const t = this.count(this.$textarea.value);
+        return this.maxLength * this.config.threshold / 100 <= t
+    }
+}
+CharacterCount.moduleName = "govuk-character-count", CharacterCount.defaults = Object.freeze({
+    threshold: 0,
+    i18n: {
         charactersUnderLimit: {
             one: "You have %{count} character remaining",
             other: "You have %{count} characters remaining"
@@ -719,494 +475,500 @@
         textareaDescription: {
             other: ""
         }
-    };
-
-    function h(t, e) {
-        if (!(t instanceof HTMLElement)) return this;
-        var o = t.querySelector(".govuk-js-character-count");
-        if (!(o instanceof HTMLTextAreaElement || o instanceof HTMLInputElement)) return this;
-        var a, l, c, u = {
-                threshold: 0,
-                i18n: d
-            },
-            h = s(t.dataset),
-            p = {};
-        if (("maxwords" in h || "maxlength" in h) && (p = {
-                maxlength: !1,
-                maxwords: !1
-            }), this.config = n(u, e || {}, p, h), this.i18n = new r(i(this.config, "i18n"), {
-                locale: (a = t, l = "lang", c = a.closest("[" + l + "]"), c ? c.getAttribute(l) : null)
-            }), this.maxLength = Infinity, "maxwords" in this.config && this.config.maxwords) this.maxLength = this.config.maxwords;
-        else {
-            if (!("maxlength" in this.config) || !this.config.maxlength) return;
-            this.maxLength = this.config.maxlength
-        }
-        this.$module = t, this.$textarea = o, this.$visibleCountMessage = null, this.$screenReaderCountMessage = null, this.lastInputTimestamp = null, this.lastInputValue = "", this.valueChecker = null
     }
-
-    function p(t) {
-        if (!(t instanceof HTMLElement)) return this;
-        var e = t.querySelectorAll('input[type="checkbox"]');
-        if (!e.length) return this;
-        this.$module = t, this.$inputs = e
-    }
-    h.prototype.init = function() {
-        if (this.$module && this.$textarea) {
-            var t = this.$textarea,
-                e = document.getElementById(t.id + "-info");
+}), CharacterCount.schema = Object.freeze({
+    anyOf: [{
+        required: ["maxwords"],
+        errorMessage: 'Either "maxlength" or "maxwords" must be provided'
+    }, {
+        required: ["maxlength"],
+        errorMessage: 'Either "maxlength" or "maxwords" must be provided'
+    }]
+});
+class Checkboxes extends GOVUKFrontendComponent {
+    constructor(t) {
+        if (super(), this.$module = void 0, this.$inputs = void 0, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Checkboxes",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        const e = t.querySelectorAll('input[type="checkbox"]');
+        if (!e.length) throw new ElementError({
+            componentName: "Checkboxes",
+            identifier: 'Form inputs (`<input type="checkbox">`)'
+        });
+        this.$module = t, this.$inputs = e, this.$inputs.forEach((t => {
+            const e = t.getAttribute("data-aria-controls");
             if (e) {
-                e.innerText.match(/^\s*$/) && (e.innerText = this.i18n.t("textareaDescription", {
-                    count: this.maxLength
-                })), t.insertAdjacentElement("afterend", e);
-                var n = document.createElement("div");
-                n.className = "govuk-character-count__sr-status govuk-visually-hidden", n.setAttribute("aria-live", "polite"), this.$screenReaderCountMessage = n, e.insertAdjacentElement("afterend", n);
-                var i = document.createElement("div");
-                i.className = e.className, i.classList.add("govuk-character-count__status"), i.setAttribute("aria-hidden", "true"), this.$visibleCountMessage = i, e.insertAdjacentElement("afterend", i), e.classList.add("govuk-visually-hidden"), t.removeAttribute("maxlength"), this.bindChangeEvents(), window.addEventListener("onpageshow" in window ? "pageshow" : "DOMContentLoaded", this.updateCountMessage.bind(this)), this.updateCountMessage()
-            }
-        }
-    }, h.prototype.bindChangeEvents = function() {
-        var t = this.$textarea;
-        t.addEventListener("keyup", this.handleKeyUp.bind(this)), t.addEventListener("focus", this.handleFocus.bind(this)), t.addEventListener("blur", this.handleBlur.bind(this))
-    }, h.prototype.handleKeyUp = function() {
-        this.updateVisibleCountMessage(), this.lastInputTimestamp = Date.now()
-    }, h.prototype.handleFocus = function() {
-        this.valueChecker = setInterval(function() {
-            (!this.lastInputTimestamp || Date.now() - 500 >= this.lastInputTimestamp) && this.updateIfValueChanged()
-        }.bind(this), 1e3)
-    }, h.prototype.handleBlur = function() {
-        clearInterval(this.valueChecker)
-    }, h.prototype.updateIfValueChanged = function() {
-        this.$textarea.value !== this.lastInputValue && (this.lastInputValue = this.$textarea.value, this.updateCountMessage())
-    }, h.prototype.updateCountMessage = function() {
-        this.updateVisibleCountMessage(), this.updateScreenReaderCountMessage()
-    }, h.prototype.updateVisibleCountMessage = function() {
-        var t = this.$textarea,
-            e = this.$visibleCountMessage,
-            n = this.maxLength - this.count(t.value);
-        this.isOverThreshold() ? e.classList.remove("govuk-character-count__message--disabled") : e.classList.add("govuk-character-count__message--disabled"), n < 0 ? (t.classList.add("govuk-textarea--error"), e.classList.remove("govuk-hint"), e.classList.add("govuk-error-message")) : (t.classList.remove("govuk-textarea--error"), e.classList.remove("govuk-error-message"), e.classList.add("govuk-hint")), e.innerText = this.getCountMessage()
-    }, h.prototype.updateScreenReaderCountMessage = function() {
-        var t = this.$screenReaderCountMessage;
-        this.isOverThreshold() ? t.removeAttribute("aria-hidden") : t.setAttribute("aria-hidden", "true"), t.innerText = this.getCountMessage()
-    }, h.prototype.count = function(t) {
-        return "maxwords" in this.config && this.config.maxwords ? (t.match(/\S+/g) || []).length : t.length
-    }, h.prototype.getCountMessage = function() {
-        var t = this.maxLength - this.count(this.$textarea.value),
-            e = "maxwords" in this.config && this.config.maxwords ? "words" : "characters";
-        return this.formatCountMessage(t, e)
-    }, h.prototype.formatCountMessage = function(t, e) {
-        if (0 === t) return this.i18n.t(e + "AtLimit");
-        var n = t < 0 ? "OverLimit" : "UnderLimit";
-        return this.i18n.t(e + n, {
-            count: Math.abs(t)
-        })
-    }, h.prototype.isOverThreshold = function() {
-        if (!this.config.threshold) return !0;
-        var t = this.$textarea,
-            e = this.count(t.value);
-        return this.maxLength * this.config.threshold / 100 <= e
-    }, p.prototype.init = function() {
-        if (this.$module && this.$inputs) {
-            var t = this.$module;
-            e(this.$inputs, (function(t) {
-                var e = t.getAttribute("data-aria-controls");
-                e && document.getElementById(e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
-            })), window.addEventListener("onpageshow" in window ? "pageshow" : "DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), t.addEventListener("click", this.handleClick.bind(this))
-        }
-    }, p.prototype.syncAllConditionalReveals = function() {
-        e(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
-    }, p.prototype.syncConditionalRevealWithInputState = function(t) {
-        var e = t.getAttribute("aria-controls");
-        if (e) {
-            var n = document.getElementById(e);
-            if (n && n.classList.contains("govuk-checkboxes__conditional")) {
-                var i = t.checked;
-                t.setAttribute("aria-expanded", i.toString()), n.classList.toggle("govuk-checkboxes__conditional--hidden", !i)
+                if (!document.getElementById(e)) throw new ElementError({
+                    componentName: "Checkboxes",
+                    identifier: `Conditional reveal (\`id="${e}"\`)`
+                });
+                t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls")
             }
+        })), window.addEventListener("pageshow", (() => this.syncAllConditionalReveals())), this.syncAllConditionalReveals(), this.$module.addEventListener("click", (t => this.handleClick(t)))
+    }
+    syncAllConditionalReveals() {
+        this.$inputs.forEach((t => this.syncConditionalRevealWithInputState(t)))
+    }
+    syncConditionalRevealWithInputState(t) {
+        const e = t.getAttribute("aria-controls");
+        if (!e) return;
+        const i = document.getElementById(e);
+        if (i && i.classList.contains("govuk-checkboxes__conditional")) {
+            const e = t.checked;
+            t.setAttribute("aria-expanded", e.toString()), i.classList.toggle("govuk-checkboxes__conditional--hidden", !e)
         }
-    }, p.prototype.unCheckAllInputsExcept = function(t) {
-        var n = this;
-        e(document.querySelectorAll('input[type="checkbox"][name="' + t.name + '"]'), (function(e) {
-            t.form === e.form && e !== t && (e.checked = !1, n.syncConditionalRevealWithInputState(e))
+    }
+    unCheckAllInputsExcept(t) {
+        document.querySelectorAll(`input[type="checkbox"][name="${t.name}"]`).forEach((e => {
+            t.form === e.form && e !== t && (e.checked = !1, this.syncConditionalRevealWithInputState(e))
         }))
-    }, p.prototype.unCheckExclusiveInputs = function(t) {
-        var n = this;
-        e(document.querySelectorAll('input[data-behaviour="exclusive"][type="checkbox"][name="' + t.name + '"]'), (function(e) {
-            t.form === e.form && (e.checked = !1, n.syncConditionalRevealWithInputState(e))
+    }
+    unCheckExclusiveInputs(t) {
+        document.querySelectorAll(`input[data-behaviour="exclusive"][type="checkbox"][name="${t.name}"]`).forEach((e => {
+            t.form === e.form && (e.checked = !1, this.syncConditionalRevealWithInputState(e))
         }))
-    }, p.prototype.handleClick = function(t) {
-        var e = t.target;
-        e instanceof HTMLInputElement && "checkbox" === e.type && (e.getAttribute("aria-controls") && this.syncConditionalRevealWithInputState(e), e.checked && ("exclusive" === e.getAttribute("data-behaviour") ? this.unCheckAllInputsExcept(e) : this.unCheckExclusiveInputs(e)))
-    };
-
-    function f(t) {
-        if (!(t instanceof HTMLElement)) return this;
-        this.$module = t, this.$summary = null, this.$content = null
     }
-
-    function m(t, e) {
-        if (!(t instanceof HTMLElement)) return this;
-        this.$module = t;
-        this.config = n({
-            disableAutoFocus: !1
-        }, e || {}, s(t.dataset))
-    }
-    f.prototype.init = function() {
-        this.$module && ("HTMLDetailsElement" in window && this.$module instanceof HTMLDetailsElement || this.polyfillDetails())
-    }, f.prototype.polyfillDetails = function() {
-        var t, e = this.$module,
-            n = this.$summary = e.getElementsByTagName("summary").item(0),
-            i = this.$content = e.getElementsByTagName("div").item(0);
-        n && i && (i.id || (i.id = "details-content-" + (t = (new Date).getTime(), "undefined" != typeof window.performance && "function" == typeof window.performance.now && (t += window.performance.now()), "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function(e) {
-            var n = (t + 16 * Math.random()) % 16 | 0;
-            return t = Math.floor(t / 16), ("x" === e ? n : 3 & n | 8).toString(16)
-        })))), e.setAttribute("role", "group"), n.setAttribute("role", "button"), n.setAttribute("aria-controls", i.id), n.tabIndex = 0, this.$module.hasAttribute("open") ? n.setAttribute("aria-expanded", "true") : (n.setAttribute("aria-expanded", "false"), i.style.display = "none"), this.polyfillHandleInputs(this.polyfillSetAttributes.bind(this)))
-    }, f.prototype.polyfillSetAttributes = function() {
-        return this.$module.hasAttribute("open") ? (this.$module.removeAttribute("open"), this.$summary.setAttribute("aria-expanded", "false"), this.$content.style.display = "none") : (this.$module.setAttribute("open", "open"), this.$summary.setAttribute("aria-expanded", "true"), this.$content.style.display = ""), !0
-    }, f.prototype.polyfillHandleInputs = function(t) {
-        this.$summary.addEventListener("keypress", (function(e) {
-            var n = e.target;
-            13 !== e.keyCode && 32 !== e.keyCode || n instanceof HTMLElement && "summary" === n.nodeName.toLowerCase() && (e.preventDefault(), n.click ? n.click() : t(e))
-        })), this.$summary.addEventListener("keyup", (function(t) {
-            var e = t.target;
-            32 === t.keyCode && e instanceof HTMLElement && "summary" === e.nodeName.toLowerCase() && t.preventDefault()
-        })), this.$summary.addEventListener("click", t)
-    }, m.prototype.init = function() {
-        if (this.$module) {
-            var t = this.$module;
-            this.setFocus(), t.addEventListener("click", this.handleClick.bind(this))
-        }
-    }, m.prototype.setFocus = function() {
-        var t = this.$module;
-        this.config.disableAutoFocus || (t.setAttribute("tabindex", "-1"), t.addEventListener("blur", (function() {
-            t.removeAttribute("tabindex")
-        })), t.focus())
-    }, m.prototype.handleClick = function(t) {
-        var e = t.target;
-        this.focusTarget(e) && t.preventDefault()
-    }, m.prototype.focusTarget = function(t) {
+    handleClick(t) {
+        const e = t.target;
+        if (!(e instanceof HTMLInputElement) || "checkbox" !== e.type) return;
+        if (e.getAttribute("aria-controls") && this.syncConditionalRevealWithInputState(e), !e.checked) return;
+        "exclusive" === e.getAttribute("data-behaviour") ? this.unCheckAllInputsExcept(e) : this.unCheckExclusiveInputs(e)
+    }
+}
+Checkboxes.moduleName = "govuk-checkboxes";
+class ErrorSummary extends GOVUKFrontendComponent {
+    constructor(t, e = {}) {
+        if (super(), this.$module = void 0, this.config = void 0, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Error summary",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        this.$module = t, this.config = mergeConfigs(ErrorSummary.defaults, e, normaliseDataset(t.dataset)), this.setFocus(), this.$module.addEventListener("click", (t => this.handleClick(t)))
+    }
+    setFocus() {
+        this.config.disableAutoFocus || (this.$module.setAttribute("tabindex", "-1"), this.$module.addEventListener("blur", (() => {
+            this.$module.removeAttribute("tabindex")
+        })), this.$module.focus())
+    }
+    handleClick(t) {
+        const e = t.target;
+        e && this.focusTarget(e) && t.preventDefault()
+    }
+    focusTarget(t) {
         if (!(t instanceof HTMLAnchorElement)) return !1;
-        var e = this.getFragmentFromUrl(t.href);
+        const e = getFragmentFromUrl(t.href);
         if (!e) return !1;
-        var n = document.getElementById(e);
-        if (!n) return !1;
-        var i = this.getAssociatedLegendOrLabel(n);
-        return !!i && (i.scrollIntoView(), n.focus({
+        const i = document.getElementById(e);
+        if (!i) return !1;
+        const s = this.getAssociatedLegendOrLabel(i);
+        return !!s && (s.scrollIntoView(), i.focus({
             preventScroll: !0
         }), !0)
-    }, m.prototype.getFragmentFromUrl = function(t) {
-        return -1 === t.indexOf("#") ? undefined : t.split("#").pop()
-    }, m.prototype.getAssociatedLegendOrLabel = function(t) {
-        var e = t.closest("fieldset");
+    }
+    getAssociatedLegendOrLabel(t) {
+        const e = t.closest("fieldset");
         if (e) {
-            var n = e.getElementsByTagName("legend");
-            if (n.length) {
-                var i = n[0];
-                if (t instanceof HTMLInputElement && ("checkbox" === t.type || "radio" === t.type)) return i;
-                var o = i.getBoundingClientRect().top,
-                    s = t.getBoundingClientRect();
-                if (s.height && window.innerHeight)
-                    if (s.top + s.height - o < window.innerHeight / 2) return i
+            const i = e.getElementsByTagName("legend");
+            if (i.length) {
+                const e = i[0];
+                if (t instanceof HTMLInputElement && ("checkbox" === t.type || "radio" === t.type)) return e;
+                const s = e.getBoundingClientRect().top,
+                    n = t.getBoundingClientRect();
+                if (n.height && window.innerHeight) {
+                    if (n.top + n.height - s < window.innerHeight / 2) return e
+                }
             }
         }
-        return document.querySelector("label[for='" + t.getAttribute("id") + "']") || t.closest("label")
-    };
-    var v = {
+        return document.querySelector(`label[for='${t.getAttribute("id")}']`) || t.closest("label")
+    }
+}
+ErrorSummary.moduleName = "govuk-error-summary", ErrorSummary.defaults = Object.freeze({
+    disableAutoFocus: !1
+});
+class ExitThisPage extends GOVUKFrontendComponent {
+    constructor(t, e = {}) {
+        if (super(), this.$module = void 0, this.config = void 0, this.i18n = void 0, this.$button = void 0, this.$skiplinkButton = null, this.$updateSpan = null, this.$indicatorContainer = null, this.$overlay = null, this.keypressCounter = 0, this.lastKeyWasModified = !1, this.timeoutTime = 5e3, this.keypressTimeoutId = null, this.timeoutMessageId = null, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Exit this page",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        const i = t.querySelector(".govuk-exit-this-page__button");
+        if (!(i instanceof HTMLAnchorElement)) throw new ElementError({
+            componentName: "Exit this page",
+            element: i,
+            expectedType: "HTMLAnchorElement",
+            identifier: "Button (`.govuk-exit-this-page__button`)"
+        });
+        this.config = mergeConfigs(ExitThisPage.defaults, e, normaliseDataset(t.dataset)), this.i18n = new I18n(extractConfigByNamespace(this.config, "i18n")), this.$module = t, this.$button = i;
+        const s = document.querySelector(".govuk-js-exit-this-page-skiplink");
+        s instanceof HTMLAnchorElement && (this.$skiplinkButton = s), this.buildIndicator(), this.initUpdateSpan(), this.initButtonClickHandler(), "govukFrontendExitThisPageKeypress" in document.body.dataset || (document.addEventListener("keyup", this.handleKeypress.bind(this), !0), document.body.dataset.govukFrontendExitThisPageKeypress = "true"), window.addEventListener("pageshow", this.resetPage.bind(this))
+    }
+    initUpdateSpan() {
+        this.$updateSpan = document.createElement("span"), this.$updateSpan.setAttribute("role", "status"), this.$updateSpan.className = "govuk-visually-hidden", this.$module.appendChild(this.$updateSpan)
+    }
+    initButtonClickHandler() {
+        this.$button.addEventListener("click", this.handleClick.bind(this)), this.$skiplinkButton && this.$skiplinkButton.addEventListener("click", this.handleClick.bind(this))
+    }
+    buildIndicator() {
+        this.$indicatorContainer = document.createElement("div"), this.$indicatorContainer.className = "govuk-exit-this-page__indicator", this.$indicatorContainer.setAttribute("aria-hidden", "true");
+        for (let t = 0; t < 3; t++) {
+            const t = document.createElement("div");
+            t.className = "govuk-exit-this-page__indicator-light", this.$indicatorContainer.appendChild(t)
+        }
+        this.$button.appendChild(this.$indicatorContainer)
+    }
+    updateIndicator() {
+        if (!this.$indicatorContainer) return;
+        this.$indicatorContainer.classList.toggle("govuk-exit-this-page__indicator--visible", this.keypressCounter > 0);
+        this.$indicatorContainer.querySelectorAll(".govuk-exit-this-page__indicator-light").forEach(((t, e) => {
+            t.classList.toggle("govuk-exit-this-page__indicator-light--on", e < this.keypressCounter)
+        }))
+    }
+    exitPage() {
+        this.$updateSpan && (this.$updateSpan.textContent = "", document.body.classList.add("govuk-exit-this-page-hide-content"), this.$overlay = document.createElement("div"), this.$overlay.className = "govuk-exit-this-page-overlay", this.$overlay.setAttribute("role", "alert"), document.body.appendChild(this.$overlay), this.$overlay.textContent = this.i18n.t("activated"), window.location.href = this.$button.href)
+    }
+    handleClick(t) {
+        t.preventDefault(), this.exitPage()
+    }
+    handleKeypress(t) {
+        this.$updateSpan && ("Shift" !== t.key && 16 !== t.keyCode && 16 !== t.which || this.lastKeyWasModified ? this.keypressTimeoutId && this.resetKeypressTimer() : (this.keypressCounter += 1, this.updateIndicator(), this.timeoutMessageId && (window.clearTimeout(this.timeoutMessageId), this.timeoutMessageId = null), this.keypressCounter >= 3 ? (this.keypressCounter = 0, this.keypressTimeoutId && (window.clearTimeout(this.keypressTimeoutId), this.keypressTimeoutId = null), this.exitPage()) : 1 === this.keypressCounter ? this.$updateSpan.textContent = this.i18n.t("pressTwoMoreTimes") : this.$updateSpan.textContent = this.i18n.t("pressOneMoreTime"), this.setKeypressTimer()), this.lastKeyWasModified = t.shiftKey)
+    }
+    setKeypressTimer() {
+        this.keypressTimeoutId && window.clearTimeout(this.keypressTimeoutId), this.keypressTimeoutId = window.setTimeout(this.resetKeypressTimer.bind(this), this.timeoutTime)
+    }
+    resetKeypressTimer() {
+        if (!this.$updateSpan) return;
+        this.keypressTimeoutId && (window.clearTimeout(this.keypressTimeoutId), this.keypressTimeoutId = null);
+        const t = this.$updateSpan;
+        this.keypressCounter = 0, t.textContent = this.i18n.t("timedOut"), this.timeoutMessageId = window.setTimeout((() => {
+            t.textContent = ""
+        }), this.timeoutTime), this.updateIndicator()
+    }
+    resetPage() {
+        document.body.classList.remove("govuk-exit-this-page-hide-content"), this.$overlay && (this.$overlay.remove(), this.$overlay = null), this.$updateSpan && (this.$updateSpan.setAttribute("role", "status"), this.$updateSpan.textContent = ""), this.updateIndicator(), this.keypressTimeoutId && window.clearTimeout(this.keypressTimeoutId), this.timeoutMessageId && window.clearTimeout(this.timeoutMessageId)
+    }
+}
+ExitThisPage.moduleName = "govuk-exit-this-page", ExitThisPage.defaults = Object.freeze({
+    i18n: {
         activated: "Loading.",
         timedOut: "Exit this page expired.",
         pressTwoMoreTimes: "Shift, press 2 more times to exit.",
         pressOneMoreTime: "Shift, press 1 more time to exit."
-    };
-
-    function b(t, e) {
-        var o = {
-            i18n: v
-        };
-        if (!(t instanceof HTMLElement)) return this;
-        var a = t.querySelector(".govuk-exit-this-page__button");
-        if (!(a instanceof HTMLElement)) return this;
-        this.config = n(o, e || {}, s(t.dataset)), this.i18n = new r(i(this.config, "i18n")), this.$module = t, this.$button = a, this.$skiplinkButton = document.querySelector(".govuk-js-exit-this-page-skiplink"), this.$updateSpan = null, this.$indicatorContainer = null, this.$overlay = null, this.keypressCounter = 0, this.lastKeyWasModified = !1, this.timeoutTime = 5e3, this.keypressTimeoutId = null, this.timeoutMessageId = null
-    }
-
-    function g(t) {
-        if (!(t instanceof HTMLElement)) return this;
-        this.$module = t, this.$menuButton = t.querySelector(".govuk-js-header-toggle"), this.$menu = this.$menuButton && t.querySelector("#" + this.$menuButton.getAttribute("aria-controls")), this.menuIsOpen = !1, this.mql = null
     }
-
-    function y(t, e) {
-        if (!(t instanceof HTMLElement)) return this;
+});
+class Header extends GOVUKFrontendComponent {
+    constructor(t) {
+        if (super(), this.$module = void 0, this.$menuButton = void 0, this.$menu = void 0, this.menuIsOpen = !1, this.mql = null, !t) throw new ElementError({
+            componentName: "Header",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
         this.$module = t;
-        this.config = n({
-            disableAutoFocus: !1
-        }, e || {}, s(t.dataset))
+        const e = t.querySelector(".govuk-js-header-toggle");
+        if (!e) return this;
+        const i = e.getAttribute("aria-controls");
+        if (!i) throw new ElementError({
+            componentName: "Header",
+            identifier: 'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'
+        });
+        const s = document.getElementById(i);
+        if (!s) throw new ElementError({
+            componentName: "Header",
+            element: s,
+            identifier: `Navigation (\`<ul id="${i}">\`)`
+        });
+        this.$menu = s, this.$menuButton = e, this.mql = window.matchMedia("(min-width: 48.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", (() => this.syncState())) : this.mql.addListener((() => this.syncState())), this.syncState(), this.$menuButton.addEventListener("click", (() => this.handleMenuButtonClick()))
     }
-
-    function w(t) {
-        if (!(t instanceof HTMLElement)) return this;
-        var e = t.querySelectorAll('input[type="radio"]');
-        if (!e.length) return this;
-        this.$module = t, this.$inputs = e
+    syncState() {
+        this.mql && this.$menu && this.$menuButton && (this.mql.matches ? (this.$menu.removeAttribute("hidden"), this.$menuButton.setAttribute("hidden", "")) : (this.$menuButton.removeAttribute("hidden"), this.$menuButton.setAttribute("aria-expanded", this.menuIsOpen.toString()), this.menuIsOpen ? this.$menu.removeAttribute("hidden") : this.$menu.setAttribute("hidden", "")))
     }
-
-    function E(t) {
-        if (!(t instanceof HTMLAnchorElement)) return this;
-        this.$module = t, this.$linkedElement = null, this.linkedElementListener = !1
+    handleMenuButtonClick() {
+        this.menuIsOpen = !this.menuIsOpen, this.syncState()
     }
-
-    function k(t) {
-        if (!(t instanceof HTMLElement)) return this;
-        var e = t.querySelectorAll("a.govuk-tabs__tab");
-        if (!e.length) return this;
-        this.$module = t, this.$tabs = e, this.keys = {
-            left: 37,
-            right: 39,
-            up: 38,
-            down: 40
-        }, this.jsHiddenClass = "govuk-tabs__panel--hidden", this.boundTabClick = this.onTabClick.bind(this), this.boundTabKeydown = this.onTabKeydown.bind(this), this.boundOnHashChange = this.onHashChange.bind(this), this.changingHash = !1
-    }
-    b.prototype.initUpdateSpan = function() {
-            this.$updateSpan = document.createElement("span"), this.$updateSpan.setAttribute("role", "status"), this.$updateSpan.className = "govuk-visually-hidden", this.$module.appendChild(this.$updateSpan)
-        }, b.prototype.initButtonClickHandler = function() {
-            this.$button.addEventListener("click", this.handleClick.bind(this)), this.$skiplinkButton && this.$skiplinkButton.addEventListener("click", this.handleClick.bind(this))
-        }, b.prototype.buildIndicator = function() {
-            this.$indicatorContainer = document.createElement("div"), this.$indicatorContainer.className = "govuk-exit-this-page__indicator", this.$indicatorContainer.setAttribute("aria-hidden", "true");
-            for (var t = 0; t < 3; t++) {
-                var e = document.createElement("div");
-                e.className = "govuk-exit-this-page__indicator-light", this.$indicatorContainer.appendChild(e)
-            }
-            this.$button.appendChild(this.$indicatorContainer)
-        }, b.prototype.updateIndicator = function() {
-            this.keypressCounter > 0 ? this.$indicatorContainer.classList.add("govuk-exit-this-page__indicator--visible") : this.$indicatorContainer.classList.remove("govuk-exit-this-page__indicator--visible"), e(this.$indicatorContainer.querySelectorAll(".govuk-exit-this-page__indicator-light"), function(t, e) {
-                t.classList.toggle("govuk-exit-this-page__indicator-light--on", e < this.keypressCounter)
-            }.bind(this))
-        }, b.prototype.exitPage = function() {
-            this.$updateSpan.innerText = "", document.body.classList.add("govuk-exit-this-page-hide-content"), this.$overlay = document.createElement("div"), this.$overlay.className = "govuk-exit-this-page-overlay", this.$overlay.setAttribute("role", "alert"), document.body.appendChild(this.$overlay), this.$overlay.innerText = this.i18n.t("activated"), window.location.href = this.$button.getAttribute("href")
-        }, b.prototype.handleClick = function(t) {
-            t.preventDefault(), this.exitPage()
-        }, b.prototype.handleKeypress = function(t) {
-            "Shift" !== t.key && 16 !== t.keyCode && 16 !== t.which || this.lastKeyWasModified ? null !== this.keypressTimeoutId && this.resetKeypressTimer() : (this.keypressCounter += 1, this.updateIndicator(), null !== this.timeoutMessageId && (clearTimeout(this.timeoutMessageId), this.timeoutMessageId = null), this.keypressCounter >= 3 ? (this.keypressCounter = 0, null !== this.keypressTimeoutId && (clearTimeout(this.keypressTimeoutId), this.keypressTimeoutId = null), this.exitPage()) : 1 === this.keypressCounter ? this.$updateSpan.innerText = this.i18n.t("pressTwoMoreTimes") : this.$updateSpan.innerText = this.i18n.t("pressOneMoreTime"), this.setKeypressTimer()), this.lastKeyWasModified = t.shiftKey
-        }, b.prototype.setKeypressTimer = function() {
-            clearTimeout(this.keypressTimeoutId), this.keypressTimeoutId = setTimeout(this.resetKeypressTimer.bind(this), this.timeoutTime)
-        }, b.prototype.resetKeypressTimer = function() {
-            clearTimeout(this.keypressTimeoutId), this.keypressTimeoutId = null, this.keypressCounter = 0, this.$updateSpan.innerText = this.i18n.t("timedOut"), this.timeoutMessageId = setTimeout(function() {
-                this.$updateSpan.innerText = ""
-            }.bind(this), this.timeoutTime), this.updateIndicator()
-        }, b.prototype.resetPage = function() {
-            document.body.classList.remove("govuk-exit-this-page-hide-content"), this.$overlay && (this.$overlay.remove(), this.$overlay = null), this.$updateSpan.setAttribute("role", "status"), this.$updateSpan.innerText = "", this.updateIndicator(), this.keypressTimeoutId && clearTimeout(this.keypressTimeoutId), this.timeoutMessageId && clearTimeout(this.timeoutMessageId)
-        }, b.prototype.init = function() {
-            this.buildIndicator(), this.initUpdateSpan(), this.initButtonClickHandler(), "govukFrontendExitThisPageKeypress" in document.body.dataset || (document.addEventListener("keyup", this.handleKeypress.bind(this), !0), document.body.dataset.govukFrontendExitThisPageKeypress = "true"), window.addEventListener("onpageshow" in window ? "pageshow" : "DOMContentLoaded", this.resetPage.bind(this))
-        }, g.prototype.init = function() {
-            this.$module && this.$menuButton && this.$menu && ("matchMedia" in window ? (this.mql = window.matchMedia("(min-width: 48.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", this.syncState.bind(this)) : this.mql.addListener(this.syncState.bind(this)), this.syncState(), this.$menuButton.addEventListener("click", this.handleMenuButtonClick.bind(this))) : this.$menuButton.setAttribute("hidden", ""))
-        }, g.prototype.syncState = function() {
-            this.mql.matches ? (this.$menu.removeAttribute("hidden"), this.$menuButton.setAttribute("hidden", "")) : (this.$menuButton.removeAttribute("hidden"), this.$menuButton.setAttribute("aria-expanded", this.menuIsOpen.toString()), this.menuIsOpen ? this.$menu.removeAttribute("hidden") : this.$menu.setAttribute("hidden", ""))
-        }, g.prototype.handleMenuButtonClick = function() {
-            this.menuIsOpen = !this.menuIsOpen, this.syncState()
-        }, y.prototype.init = function() {
-            this.$module && this.setFocus()
-        }, y.prototype.setFocus = function() {
-            var t = this.$module;
-            this.config.disableAutoFocus || "alert" === t.getAttribute("role") && (t.getAttribute("tabindex") || (t.setAttribute("tabindex", "-1"), t.addEventListener("blur", (function() {
-                t.removeAttribute("tabindex")
-            }))), t.focus())
-        }, w.prototype.init = function() {
-            if (this.$module && this.$inputs) {
-                var t = this.$module;
-                e(this.$inputs, (function(t) {
-                    var e = t.getAttribute("data-aria-controls");
-                    e && document.getElementById(e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
-                })), window.addEventListener("onpageshow" in window ? "pageshow" : "DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), t.addEventListener("click", this.handleClick.bind(this))
-            }
-        }, w.prototype.syncAllConditionalReveals = function() {
-            e(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
-        }, w.prototype.syncConditionalRevealWithInputState = function(t) {
-            var e = t.getAttribute("aria-controls");
-            if (e) {
-                var n = document.getElementById(e);
-                if (n && n.classList.contains("govuk-radios__conditional")) {
-                    var i = t.checked;
-                    t.setAttribute("aria-expanded", i.toString()), n.classList.toggle("govuk-radios__conditional--hidden", !i)
-                }
-            }
-        }, w.prototype.handleClick = function(t) {
-            var n = this,
-                i = t.target;
-            if (i instanceof HTMLInputElement && "radio" === i.type) {
-                var o = document.querySelectorAll('input[type="radio"][aria-controls]'),
-                    s = i.form,
-                    r = i.name;
-                e(o, (function(t) {
-                    var e = t.form === s;
-                    t.name === r && e && n.syncConditionalRevealWithInputState(t)
-                }))
-            }
-        }, E.prototype.init = function() {
-            if (this.$module) {
-                var t = this.getLinkedElement();
-                t && (this.$linkedElement = t, this.$module.addEventListener("click", this.focusLinkedElement.bind(this)))
-            }
-        }, E.prototype.getLinkedElement = function() {
-            var t = this.getFragmentFromUrl();
-            return t ? document.getElementById(t) : null
-        }, E.prototype.focusLinkedElement = function() {
-            var t = this.$linkedElement;
-            t.getAttribute("tabindex") || (t.setAttribute("tabindex", "-1"), t.classList.add("govuk-skip-link-focused-element"), this.linkedElementListener || (this.$linkedElement.addEventListener("blur", this.removeFocusProperties.bind(this)), this.linkedElementListener = !0)), t.focus()
-        }, E.prototype.removeFocusProperties = function() {
-            this.$linkedElement.removeAttribute("tabindex"), this.$linkedElement.classList.remove("govuk-skip-link-focused-element")
-        }, E.prototype.getFragmentFromUrl = function() {
-            if (this.$module.hash) return this.$module.hash.split("#").pop()
-        },
-        function(t) {
-            "document" in this && "nextElementSibling" in document.documentElement || Object.defineProperty(Element.prototype, "nextElementSibling", {
-                get: function() {
-                    for (var t = this.nextSibling; t && 1 !== t.nodeType;) t = t.nextSibling;
-                    return t
-                }
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
-        function(t) {
-            "document" in this && "previousElementSibling" in document.documentElement || Object.defineProperty(Element.prototype, "previousElementSibling", {
-                get: function() {
-                    for (var t = this.previousSibling; t && 1 !== t.nodeType;) t = t.previousSibling;
-                    return t
-                }
-            })
-        }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), k.prototype.init = function() {
-            this.$module && this.$tabs && ("function" == typeof window.matchMedia ? this.setupResponsiveChecks() : this.setup())
-        }, k.prototype.setupResponsiveChecks = function() {
-            this.mql = window.matchMedia("(min-width: 40.0625em)"), this.mql.addListener(this.checkMode.bind(this)), this.checkMode()
-        }, k.prototype.checkMode = function() {
-            this.mql.matches ? this.setup() : this.teardown()
-        }, k.prototype.setup = function() {
-            var t = this,
-                n = this.$module,
-                i = this.$tabs,
-                o = n.querySelector(".govuk-tabs__list"),
-                s = n.querySelectorAll(".govuk-tabs__list-item");
-            if (i && o && s) {
-                o.setAttribute("role", "tablist"), e(s, (function(t) {
-                    t.setAttribute("role", "presentation")
-                })), e(i, (function(e) {
-                    t.setAttributes(e), e.addEventListener("click", t.boundTabClick, !0), e.addEventListener("keydown", t.boundTabKeydown, !0), t.hideTab(e)
-                }));
-                var r = this.getTab(window.location.hash) || this.$tabs[0];
-                r && (this.showTab(r), window.addEventListener("hashchange", this.boundOnHashChange, !0))
-            }
-        }, k.prototype.teardown = function() {
-            var t = this,
-                n = this.$module,
-                i = this.$tabs,
-                o = n.querySelector(".govuk-tabs__list"),
-                s = n.querySelectorAll("a.govuk-tabs__list-item");
-            i && o && s && (o.removeAttribute("role"), e(s, (function(t) {
-                t.removeAttribute("role")
-            })), e(i, (function(e) {
-                e.removeEventListener("click", t.boundTabClick, !0), e.removeEventListener("keydown", t.boundTabKeydown, !0), t.unsetAttributes(e)
-            })), window.removeEventListener("hashchange", this.boundOnHashChange, !0))
-        }, k.prototype.onHashChange = function() {
-            var t = window.location.hash,
-                e = this.getTab(t);
-            if (e)
-                if (this.changingHash) this.changingHash = !1;
-                else {
-                    var n = this.getCurrentTab();
-                    n && (this.hideTab(n), this.showTab(e), e.focus())
-                }
-        }, k.prototype.hideTab = function(t) {
-            this.unhighlightTab(t), this.hidePanel(t)
-        }, k.prototype.showTab = function(t) {
-            this.highlightTab(t), this.showPanel(t)
-        }, k.prototype.getTab = function(t) {
-            return this.$module.querySelector('a.govuk-tabs__tab[href="' + t + '"]')
-        }, k.prototype.setAttributes = function(t) {
-            var e = this.getHref(t).slice(1);
-            t.setAttribute("id", "tab_" + e), t.setAttribute("role", "tab"), t.setAttribute("aria-controls", e), t.setAttribute("aria-selected", "false"), t.setAttribute("tabindex", "-1");
-            var n = this.getPanel(t);
-            n && (n.setAttribute("role", "tabpanel"), n.setAttribute("aria-labelledby", t.id), n.classList.add(this.jsHiddenClass))
-        }, k.prototype.unsetAttributes = function(t) {
-            t.removeAttribute("id"), t.removeAttribute("role"), t.removeAttribute("aria-controls"), t.removeAttribute("aria-selected"), t.removeAttribute("tabindex");
-            var e = this.getPanel(t);
-            e && (e.removeAttribute("role"), e.removeAttribute("aria-labelledby"), e.classList.remove(this.jsHiddenClass))
-        }, k.prototype.onTabClick = function(t) {
-            var e = this.getCurrentTab(),
-                n = t.currentTarget;
-            e && n instanceof HTMLAnchorElement && (t.preventDefault(), this.hideTab(e), this.showTab(n), this.createHistoryEntry(n))
-        }, k.prototype.createHistoryEntry = function(t) {
-            var e = this.getPanel(t);
+}
+Header.moduleName = "govuk-header";
+class NotificationBanner extends GOVUKFrontendComponent {
+    constructor(t, e = {}) {
+        if (super(), this.$module = void 0, this.config = void 0, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Notification banner",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        this.$module = t, this.config = mergeConfigs(NotificationBanner.defaults, e, normaliseDataset(t.dataset)), this.setFocus()
+    }
+    setFocus() {
+        this.config.disableAutoFocus || "alert" === this.$module.getAttribute("role") && (this.$module.getAttribute("tabindex") || (this.$module.setAttribute("tabindex", "-1"), this.$module.addEventListener("blur", (() => {
+            this.$module.removeAttribute("tabindex")
+        }))), this.$module.focus())
+    }
+}
+NotificationBanner.moduleName = "govuk-notification-banner", NotificationBanner.defaults = Object.freeze({
+    disableAutoFocus: !1
+});
+class Radios extends GOVUKFrontendComponent {
+    constructor(t) {
+        if (super(), this.$module = void 0, this.$inputs = void 0, !(t instanceof HTMLElement)) throw new ElementError({
+            componentName: "Radios",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        const e = t.querySelectorAll('input[type="radio"]');
+        if (!e.length) throw new ElementError({
+            componentName: "Radios",
+            identifier: 'Form inputs (`<input type="radio">`)'
+        });
+        this.$module = t, this.$inputs = e, this.$inputs.forEach((t => {
+            const e = t.getAttribute("data-aria-controls");
             if (e) {
-                var n = e.id;
-                e.id = "", this.changingHash = !0, window.location.hash = this.getHref(t).slice(1), e.id = n
-            }
-        }, k.prototype.onTabKeydown = function(t) {
-            switch (t.keyCode) {
-                case this.keys.left:
-                case this.keys.up:
-                    this.activatePreviousTab(), t.preventDefault();
-                    break;
-                case this.keys.right:
-                case this.keys.down:
-                    this.activateNextTab(), t.preventDefault()
+                if (!document.getElementById(e)) throw new ElementError({
+                    componentName: "Radios",
+                    identifier: `Conditional reveal (\`id="${e}"\`)`
+                });
+                t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls")
             }
-        }, k.prototype.activateNextTab = function() {
-            var t = this.getCurrentTab();
-            if (t && t.parentElement) {
-                var e = t.parentElement.nextElementSibling;
-                if (e) {
-                    var n = e.querySelector("a.govuk-tabs__tab");
-                    n && (this.hideTab(t), this.showTab(n), n.focus(), this.createHistoryEntry(n))
-                }
-            }
-        }, k.prototype.activatePreviousTab = function() {
-            var t = this.getCurrentTab();
-            if (t && t.parentElement) {
-                var e = t.parentElement.previousElementSibling;
-                if (e) {
-                    var n = e.querySelector("a.govuk-tabs__tab");
-                    n && (this.hideTab(t), this.showTab(n), n.focus(), this.createHistoryEntry(n))
-                }
+        })), window.addEventListener("pageshow", (() => this.syncAllConditionalReveals())), this.syncAllConditionalReveals(), this.$module.addEventListener("click", (t => this.handleClick(t)))
+    }
+    syncAllConditionalReveals() {
+        this.$inputs.forEach((t => this.syncConditionalRevealWithInputState(t)))
+    }
+    syncConditionalRevealWithInputState(t) {
+        const e = t.getAttribute("aria-controls");
+        if (!e) return;
+        const i = document.getElementById(e);
+        if (i && i.classList.contains("govuk-radios__conditional")) {
+            const e = t.checked;
+            t.setAttribute("aria-expanded", e.toString()), i.classList.toggle("govuk-radios__conditional--hidden", !e)
+        }
+    }
+    handleClick(t) {
+        const e = t.target;
+        if (!(e instanceof HTMLInputElement) || "radio" !== e.type) return;
+        const i = document.querySelectorAll('input[type="radio"][aria-controls]'),
+            s = e.form,
+            n = e.name;
+        i.forEach((t => {
+            const e = t.form === s;
+            t.name === n && e && this.syncConditionalRevealWithInputState(t)
+        }))
+    }
+}
+Radios.moduleName = "govuk-radios";
+class SkipLink extends GOVUKFrontendComponent {
+    constructor(t) {
+        if (super(), this.$module = void 0, this.$linkedElement = void 0, this.linkedElementListener = !1, !(t instanceof HTMLAnchorElement)) throw new ElementError({
+            componentName: "Skip link",
+            element: t,
+            expectedType: "HTMLAnchorElement",
+            identifier: "Root element (`$module`)"
+        });
+        this.$module = t, this.$linkedElement = this.getLinkedElement(), this.$module.addEventListener("click", (() => this.focusLinkedElement()))
+    }
+    getLinkedElement() {
+        const t = getFragmentFromUrl(this.$module.hash);
+        if (!t) throw new ElementError("Skip link: Root element (`$module`) attribute (`href`) has no URL fragment");
+        const e = document.getElementById(t);
+        if (!e) throw new ElementError({
+            componentName: "Skip link",
+            element: e,
+            identifier: `Target content (\`id="${t}"\`)`
+        });
+        return e
+    }
+    focusLinkedElement() {
+        this.$linkedElement.getAttribute("tabindex") || (this.$linkedElement.setAttribute("tabindex", "-1"), this.$linkedElement.classList.add("govuk-skip-link-focused-element"), this.linkedElementListener || (this.$linkedElement.addEventListener("blur", (() => this.removeFocusProperties())), this.linkedElementListener = !0)), this.$linkedElement.focus()
+    }
+    removeFocusProperties() {
+        this.$linkedElement.removeAttribute("tabindex"), this.$linkedElement.classList.remove("govuk-skip-link-focused-element")
+    }
+}
+SkipLink.moduleName = "govuk-skip-link";
+class Tabs extends GOVUKFrontendComponent {
+    constructor(t) {
+        if (super(), this.$module = void 0, this.$tabs = void 0, this.$tabList = void 0, this.$tabListItems = void 0, this.keys = {
+                left: 37,
+                right: 39,
+                up: 38,
+                down: 40
+            }, this.jsHiddenClass = "govuk-tabs__panel--hidden", this.changingHash = !1, this.boundTabClick = void 0, this.boundTabKeydown = void 0, this.boundOnHashChange = void 0, this.mql = null, !t) throw new ElementError({
+            componentName: "Tabs",
+            element: t,
+            identifier: "Root element (`$module`)"
+        });
+        const e = t.querySelectorAll("a.govuk-tabs__tab");
+        if (!e.length) throw new ElementError({
+            componentName: "Tabs",
+            identifier: 'Links (`<a class="govuk-tabs__tab">`)'
+        });
+        this.$module = t, this.$tabs = e, this.boundTabClick = this.onTabClick.bind(this), this.boundTabKeydown = this.onTabKeydown.bind(this), this.boundOnHashChange = this.onHashChange.bind(this);
+        const i = this.$module.querySelector(".govuk-tabs__list"),
+            s = this.$module.querySelectorAll("li.govuk-tabs__list-item");
+        if (!i) throw new ElementError({
+            componentName: "Tabs",
+            identifier: 'List (`<ul class="govuk-tabs__list">`)'
+        });
+        if (!s.length) throw new ElementError({
+            componentName: "Tabs",
+            identifier: 'List items (`<li class="govuk-tabs__list-item">`)'
+        });
+        this.$tabList = i, this.$tabListItems = s, this.setupResponsiveChecks()
+    }
+    setupResponsiveChecks() {
+        this.mql = window.matchMedia("(min-width: 40.0625em)"), "addEventListener" in this.mql ? this.mql.addEventListener("change", (() => {
+            this.checkMode()
+        })) : this.mql.addListener((() => {
+            this.checkMode()
+        })), this.checkMode()
+    }
+    checkMode() {
+        this.mql && this.mql.matches ? this.setup() : this.teardown()
+    }
+    setup() {
+        this.$tabList.setAttribute("role", "tablist"), this.$tabListItems.forEach((t => {
+            t.setAttribute("role", "presentation")
+        })), this.$tabs.forEach((t => {
+            this.setAttributes(t), t.addEventListener("click", this.boundTabClick, !0), t.addEventListener("keydown", this.boundTabKeydown, !0), this.hideTab(t)
+        }));
+        const t = this.getTab(window.location.hash) || this.$tabs[0];
+        this.showTab(t), window.addEventListener("hashchange", this.boundOnHashChange, !0)
+    }
+    teardown() {
+        this.$tabList.removeAttribute("role"), this.$tabListItems.forEach((t => {
+            t.removeAttribute("role")
+        })), this.$tabs.forEach((t => {
+            t.removeEventListener("click", this.boundTabClick, !0), t.removeEventListener("keydown", this.boundTabKeydown, !0), this.unsetAttributes(t)
+        })), window.removeEventListener("hashchange", this.boundOnHashChange, !0)
+    }
+    onHashChange() {
+        const t = window.location.hash,
+            e = this.getTab(t);
+        if (!e) return;
+        if (this.changingHash) return void(this.changingHash = !1);
+        const i = this.getCurrentTab();
+        i && (this.hideTab(i), this.showTab(e), e.focus())
+    }
+    hideTab(t) {
+        this.unhighlightTab(t), this.hidePanel(t)
+    }
+    showTab(t) {
+        this.highlightTab(t), this.showPanel(t)
+    }
+    getTab(t) {
+        return this.$module.querySelector(`a.govuk-tabs__tab[href="${t}"]`)
+    }
+    setAttributes(t) {
+        const e = getFragmentFromUrl(t.href);
+        if (!e) return;
+        t.setAttribute("id", `tab_${e}`), t.setAttribute("role", "tab"), t.setAttribute("aria-controls", e), t.setAttribute("aria-selected", "false"), t.setAttribute("tabindex", "-1");
+        const i = this.getPanel(t);
+        i && (i.setAttribute("role", "tabpanel"), i.setAttribute("aria-labelledby", t.id), i.classList.add(this.jsHiddenClass))
+    }
+    unsetAttributes(t) {
+        t.removeAttribute("id"), t.removeAttribute("role"), t.removeAttribute("aria-controls"), t.removeAttribute("aria-selected"), t.removeAttribute("tabindex");
+        const e = this.getPanel(t);
+        e && (e.removeAttribute("role"), e.removeAttribute("aria-labelledby"), e.classList.remove(this.jsHiddenClass))
+    }
+    onTabClick(t) {
+        const e = this.getCurrentTab(),
+            i = t.currentTarget;
+        e && i instanceof HTMLAnchorElement && (t.preventDefault(), this.hideTab(e), this.showTab(i), this.createHistoryEntry(i))
+    }
+    createHistoryEntry(t) {
+        const e = this.getPanel(t);
+        if (!e) return;
+        const i = e.id;
+        e.id = "", this.changingHash = !0, window.location.hash = i, e.id = i
+    }
+    onTabKeydown(t) {
+        switch (t.keyCode) {
+            case this.keys.left:
+            case this.keys.up:
+                this.activatePreviousTab(), t.preventDefault();
+                break;
+            case this.keys.right:
+            case this.keys.down:
+                this.activateNextTab(), t.preventDefault()
+        }
+    }
+    activateNextTab() {
+        const t = this.getCurrentTab();
+        if (!t || !t.parentElement) return;
+        const e = t.parentElement.nextElementSibling;
+        if (!e) return;
+        const i = e.querySelector("a.govuk-tabs__tab");
+        i && (this.hideTab(t), this.showTab(i), i.focus(), this.createHistoryEntry(i))
+    }
+    activatePreviousTab() {
+        const t = this.getCurrentTab();
+        if (!t || !t.parentElement) return;
+        const e = t.parentElement.previousElementSibling;
+        if (!e) return;
+        const i = e.querySelector("a.govuk-tabs__tab");
+        i && (this.hideTab(t), this.showTab(i), i.focus(), this.createHistoryEntry(i))
+    }
+    getPanel(t) {
+        const e = getFragmentFromUrl(t.href);
+        return e ? this.$module.querySelector(`#${e}`) : null
+    }
+    showPanel(t) {
+        const e = this.getPanel(t);
+        e && e.classList.remove(this.jsHiddenClass)
+    }
+    hidePanel(t) {
+        const e = this.getPanel(t);
+        e && e.classList.add(this.jsHiddenClass)
+    }
+    unhighlightTab(t) {
+        t.parentElement && (t.setAttribute("aria-selected", "false"), t.parentElement.classList.remove("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "-1"))
+    }
+    highlightTab(t) {
+        t.parentElement && (t.setAttribute("aria-selected", "true"), t.parentElement.classList.add("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "0"))
+    }
+    getCurrentTab() {
+        return this.$module.querySelector(".govuk-tabs__list-item--selected a.govuk-tabs__tab")
+    }
+}
+
+function initAll(t) {
+    if (t = void 0 !== t ? t : {}, !isSupported()) return void console.log(new SupportError);
+    const e = [
+            [Accordion, t.accordion],
+            [Button, t.button],
+            [CharacterCount, t.characterCount],
+            [Checkboxes],
+            [ErrorSummary, t.errorSummary],
+            [ExitThisPage, t.exitThisPage],
+            [Header],
+            [NotificationBanner, t.notificationBanner],
+            [Radios],
+            [SkipLink],
+            [Tabs]
+        ],
+        i = t.scope || document;
+    e.forEach((([t, e]) => {
+        i.querySelectorAll(`[data-module="${t.moduleName}"]`).forEach((i => {
+            try {
+                "defaults" in t ? new t(i, e) : new t(i)
+            } catch (s) {
+                console.log(s)
             }
-        }, k.prototype.getPanel = function(t) {
-            return this.$module.querySelector(this.getHref(t))
-        }, k.prototype.showPanel = function(t) {
-            var e = this.getPanel(t);
-            e && e.classList.remove(this.jsHiddenClass)
-        }, k.prototype.hidePanel = function(t) {
-            var e = this.getPanel(t);
-            e && e.classList.add(this.jsHiddenClass)
-        }, k.prototype.unhighlightTab = function(t) {
-            t.parentElement && (t.setAttribute("aria-selected", "false"), t.parentElement.classList.remove("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "-1"))
-        }, k.prototype.highlightTab = function(t) {
-            t.parentElement && (t.setAttribute("aria-selected", "true"), t.parentElement.classList.add("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "0"))
-        }, k.prototype.getCurrentTab = function() {
-            return this.$module.querySelector(".govuk-tabs__list-item--selected a.govuk-tabs__tab")
-        }, k.prototype.getHref = function(t) {
-            var e = t.getAttribute("href");
-            return e.slice(e.indexOf("#"), e.length)
-        }, t.initAll = function(t) {
-            var n = (t = void 0 !== t ? t : {}).scope instanceof HTMLElement ? t.scope : document;
-            e(n.querySelectorAll('[data-module="govuk-accordion"]'), (function(e) {
-                new l(e, t.accordion).init()
-            })), e(n.querySelectorAll('[data-module="govuk-button"]'), (function(e) {
-                new u(e, t.button).init()
-            })), e(n.querySelectorAll('[data-module="govuk-character-count"]'), (function(e) {
-                new h(e, t.characterCount).init()
-            })), e(n.querySelectorAll('[data-module="govuk-checkboxes"]'), (function(t) {
-                new p(t).init()
-            })), e(n.querySelectorAll('[data-module="govuk-details"]'), (function(t) {
-                new f(t).init()
-            }));
-            var i = n.querySelector('[data-module="govuk-error-summary"]');
-            i && new m(i, t.errorSummary).init(), e(n.querySelectorAll('[data-module="govuk-exit-this-page"]'), (function(e) {
-                new b(e, t.exitThisPage).init()
-            }));
-            var o = n.querySelector('[data-module="govuk-header"]');
-            o && new g(o).init(), e(n.querySelectorAll('[data-module="govuk-notification-banner"]'), (function(e) {
-                new y(e, t.notificationBanner).init()
-            })), e(n.querySelectorAll('[data-module="govuk-radios"]'), (function(t) {
-                new w(t).init()
-            }));
-            var s = n.querySelector('[data-module="govuk-skip-link"]');
-            s && new E(s).init(), e(n.querySelectorAll('[data-module="govuk-tabs"]'), (function(t) {
-                new k(t).init()
-            }))
-        }, t.version = "4.7.0", t.Accordion = l, t.Button = u, t.Details = f, t.CharacterCount = h, t.Checkboxes = p, t.ErrorSummary = m, t.ExitThisPage = b, t.Header = g, t.NotificationBanner = y, t.Radios = w, t.SkipLink = E, t.Tabs = k
-}));
-//# sourceMappingURL=govuk-frontend-4.7.0.min.js.map
\ No newline at end of file
+        }))
+    }))
+}
+Tabs.moduleName = "govuk-tabs";
+export {
+    Accordion,
+    Button,
+    CharacterCount,
+    Checkboxes,
+    ErrorSummary,
+    ExitThisPage,
+    Header,
+    NotificationBanner,
+    Radios,
+    SkipLink,
+    Tabs,
+    initAll,
+    version
+}; //# sourceMappingURL=govuk-frontend-5.0.0-internal.0.min.js.map
\ No newline at end of file

Action run for 39ff9de

@github-actions
Copy link

Stylesheets changes to dist

diff --git a/dist/govuk-frontend-4.7.0.min.css b/dist/govuk-frontend-5.0.0-internal.0.min.css
index 80c3bda9a..ec8939782 100644
--- a/dist/govuk-frontend-4.7.0.min.css
+++ b/dist/govuk-frontend-5.0.0-internal.0.min.css
@@ -1,14 +1,16 @@
 @charset "UTF-8";
 
 :root {
-    --govuk-frontend-version: "4.7.0"
+    --govuk-frontend-version: "5.0.0-internal.0"
 }
 
 .govuk-link {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    text-decoration: underline
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em
 }
 
 /*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */
@@ -34,8 +36,16 @@
     }
 }
 
+.govuk-link:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
 .govuk-link:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
     text-decoration: none;
@@ -93,7 +103,7 @@
 }
 
 .govuk-link--text-colour:hover {
-    color: rgba(11, 12, 12, .99)
+    color: #0b0c0cfc
 }
 
 .govuk-link--text-colour:active,
@@ -116,7 +126,7 @@
 
 .govuk-link--inverse:active,
 .govuk-link--inverse:hover {
-    color: hsla(0, 0%, 100%, .99)
+    color: #fffffffc
 }
 
 .govuk-link--inverse:focus {
@@ -137,19 +147,29 @@
 }
 
 .govuk-link--no-visited-state:active,
-.govuk-link--no-visited-state:focus,
-.govuk-list {
+.govuk-link--no-visited-state:focus {
     color: #0b0c0c
 }
 
+.govuk-link-image {
+    display: inline-block;
+    line-height: 0;
+    text-decoration: none
+}
+
+.govuk-link-image:focus {
+    outline: 3px solid #0000;
+    box-shadow: 0 0 0 4px #fd0, 0 0 0 8px #0b0c0c
+}
+
 .govuk-list {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
+    color: #0b0c0c;
     margin-top: 0;
     margin-bottom: 15px;
     padding-left: 0;
@@ -164,7 +184,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-list {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -231,7 +250,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 32px;
     font-size: 2rem;
     line-height: 1.09375;
     display: block;
@@ -248,7 +266,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-heading-xl {
-        font-size: 48px;
         font-size: 3rem;
         line-height: 1.0416666667
     }
@@ -273,7 +290,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 24px;
     font-size: 1.5rem;
     line-height: 1.0416666667;
     display: block;
@@ -290,7 +306,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-heading-l {
-        font-size: 36px;
         font-size: 2.25rem;
         line-height: 1.1111111111
     }
@@ -315,7 +330,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
     display: block;
@@ -332,7 +346,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-heading-m {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -357,7 +370,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     display: block;
@@ -374,7 +386,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-heading-s {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -398,7 +409,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
     display: block;
@@ -414,7 +424,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-caption-xl {
-        font-size: 27px;
         font-size: 1.6875rem;
         line-height: 1.1111111111
     }
@@ -432,7 +441,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
     display: block;
@@ -448,7 +456,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-caption-l {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -472,7 +479,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     display: block;
@@ -487,7 +493,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-caption-m {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -507,7 +512,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
     margin-top: 0;
@@ -527,7 +531,6 @@
 
     .govuk-body-l,
     .govuk-body-lead {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -557,7 +560,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     margin-top: 0;
@@ -577,7 +579,6 @@
 
     .govuk-body,
     .govuk-body-m {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -606,7 +607,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
     margin-top: 0;
@@ -622,7 +622,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-body-s {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -647,7 +646,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 12px;
     font-size: .75rem;
     line-height: 1.25;
     margin-top: 0;
@@ -663,7 +661,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-body-xs {
-        font-size: 14px;
         font-size: .875rem;
         line-height: 1.4285714286
     }
@@ -784,11 +781,8 @@
 
 .govuk-button-group {
     margin-bottom: 5px;
-    display: -ms-flexbox;
     display: flex;
-    -ms-flex-direction: column;
     flex-direction: column;
-    -ms-flex-align: center;
     align-items: center
 }
 
@@ -803,7 +797,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.1875;
     display: inline-block;
@@ -821,7 +814,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-button-group .govuk-link {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1
     }
@@ -841,11 +833,8 @@
 @media (min-width:40.0625em) {
     .govuk-button-group {
         margin-right: -15px;
-        -ms-flex-direction: row;
         flex-direction: row;
-        -ms-flex-wrap: wrap;
         flex-wrap: wrap;
-        -ms-flex-align: baseline;
         align-items: baseline
     }
 
@@ -1171,7 +1160,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
     color: #0b0c0c;
@@ -1188,7 +1176,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-accordion__section-button {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -1206,48 +1193,47 @@
     margin-bottom: 0
 }
 
-.js-enabled .govuk-accordion {
+.govuk-frontend-supported .govuk-accordion {
     border-bottom: 1px solid #b1b4b6
 }
 
-.js-enabled .govuk-accordion__section {
+.govuk-frontend-supported .govuk-accordion__section {
     padding-top: 0
 }
 
-.js-enabled .govuk-accordion__section-content {
+.govuk-frontend-supported .govuk-accordion__section-content {
     display: none;
     padding-top: 15px;
     padding-bottom: 30px
 }
 
 @media (min-width:40.0625em) {
-    .js-enabled .govuk-accordion__section-content {
+    .govuk-frontend-supported .govuk-accordion__section-content {
         padding-bottom: 50px
     }
 }
 
-.js-enabled .govuk-accordion__section-content[hidden] {
+.govuk-frontend-supported .govuk-accordion__section-content[hidden] {
     padding-top: 0;
     padding-bottom: 0
 }
 
 @supports (content-visibility:hidden) {
-    .js-enabled .govuk-accordion__section-content[hidden] {
+    .govuk-frontend-supported .govuk-accordion__section-content[hidden] {
         content-visibility: hidden;
         display: inherit
     }
 }
 
-.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content {
+.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-content {
     display: block
 }
 
-.js-enabled .govuk-accordion__show-all {
+.govuk-frontend-supported .govuk-accordion__show-all {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     position: relative;
@@ -1262,58 +1248,57 @@
 }
 
 @media print {
-    .js-enabled .govuk-accordion__show-all {
+    .govuk-frontend-supported .govuk-accordion__show-all {
         font-family: sans-serif
     }
 }
 
 @media (min-width:40.0625em) {
-    .js-enabled .govuk-accordion__show-all {
-        font-size: 19px;
+    .govuk-frontend-supported .govuk-accordion__show-all {
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
 }
 
 @media print {
-    .js-enabled .govuk-accordion__show-all {
+    .govuk-frontend-supported .govuk-accordion__show-all {
         font-size: 14pt;
         line-height: 1.15
     }
 }
 
 @media (min-width:40.0625em) {
-    .js-enabled .govuk-accordion__show-all {
+    .govuk-frontend-supported .govuk-accordion__show-all {
         margin-bottom: 14px
     }
 }
 
-.js-enabled .govuk-accordion__show-all::-moz-focus-inner {
+.govuk-frontend-supported .govuk-accordion__show-all::-moz-focus-inner {
     padding: 0;
     border: 0
 }
 
-.js-enabled .govuk-accordion__show-all:hover {
+.govuk-frontend-supported .govuk-accordion__show-all:hover {
     color: #0b0c0c;
     background: #f3f2f1;
     box-shadow: 0 -2px #f3f2f1, 0 4px #f3f2f1
 }
 
-.js-enabled .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {
+.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {
     color: #0b0c0c
 }
 
-.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
     color: #0b0c0c;
     background: #0b0c0c
 }
 
-.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after {
+.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after {
     color: #f3f2f1
 }
 
-.js-enabled .govuk-accordion__show-all:focus {
-    outline: 3px solid transparent;
+.govuk-frontend-supported .govuk-accordion__show-all:focus {
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -1322,19 +1307,19 @@
     box-decoration-break: clone
 }
 
-.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {
+.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {
     background: #0b0c0c
 }
 
-.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after {
+.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after {
     color: #fd0
 }
 
-.js-enabled .govuk-accordion__section-heading {
+.govuk-frontend-supported .govuk-accordion__section-heading {
     padding: 0
 }
 
-.js-enabled .govuk-accordion-nav__chevron {
+.govuk-frontend-supported .govuk-accordion-nav__chevron {
     box-sizing: border-box;
     display: inline-block;
     position: relative;
@@ -1345,7 +1330,7 @@
     vertical-align: middle
 }
 
-.js-enabled .govuk-accordion-nav__chevron:after {
+.govuk-frontend-supported .govuk-accordion-nav__chevron:after {
     content: "";
     box-sizing: border-box;
     display: block;
@@ -1355,24 +1340,22 @@
     width: .375rem;
     height: .375rem;
     -webkit-transform: rotate(-45deg);
-    -ms-transform: rotate(-45deg);
     transform: rotate(-45deg);
     border-top: .125rem solid;
     border-right: .125rem solid
 }
 
-.js-enabled .govuk-accordion-nav__chevron--down {
+.govuk-frontend-supported .govuk-accordion-nav__chevron--down {
     -webkit-transform: rotate(180deg);
-    -ms-transform: rotate(180deg);
     transform: rotate(180deg)
 }
 
-.js-enabled .govuk-accordion__section-button {
+.govuk-frontend-supported .govuk-accordion__section-button {
     width: 100%;
     padding: 10px 0 0;
     border: 0;
     border-top: 1px solid #b1b4b6;
-    border-bottom: 10px solid transparent;
+    border-bottom: 10px solid #0000;
     color: #0b0c0c;
     background: none;
     text-align: left;
@@ -1381,42 +1364,42 @@
 }
 
 @media (min-width:40.0625em) {
-    .js-enabled .govuk-accordion__section-button {
+    .govuk-frontend-supported .govuk-accordion__section-button {
         padding-bottom: 10px
     }
 }
 
-.js-enabled .govuk-accordion__section-button:active {
+.govuk-frontend-supported .govuk-accordion__section-button:active {
     color: #0b0c0c;
     background: none
 }
 
-.js-enabled .govuk-accordion__section-button:hover {
+.govuk-frontend-supported .govuk-accordion__section-button:hover {
     color: #0b0c0c;
     background: #f3f2f1
 }
 
-.js-enabled .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {
+.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {
     color: #0b0c0c
 }
 
-.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {
+.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {
     color: #0b0c0c;
     background: #0b0c0c
 }
 
-.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after {
+.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after {
     color: #f3f2f1
 }
 
-.js-enabled .govuk-accordion__section-button:focus {
+.govuk-frontend-supported .govuk-accordion__section-button:focus {
     outline: 0
 }
 
-.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
-.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
-.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
-    outline: 3px solid transparent;
+.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -1425,62 +1408,61 @@
     box-decoration-break: clone
 }
 
-.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {
+.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {
     color: #0b0c0c;
     background: #0b0c0c
 }
 
-.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after {
+.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after {
     color: #fd0
 }
 
-.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
+.govuk-frontend-supported .govuk-accordion__section-button::-moz-focus-inner {
     padding: 0;
     border: 0
 }
 
-.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button {
+.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button {
     padding-bottom: 15px;
     border-bottom: 0
 }
 
 @media (min-width:40.0625em) {
-    .js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button {
+    .govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button {
         padding-bottom: 20px
     }
 }
 
-.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
     padding-bottom: 3px
 }
 
 @media (min-width:48.0625em) {
-    .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+    .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
         padding-bottom: 2px
     }
 }
 
-.js-enabled .govuk-accordion__section-heading-text,
-.js-enabled .govuk-accordion__section-summary,
-.js-enabled .govuk-accordion__section-toggle {
+.govuk-frontend-supported .govuk-accordion__section-heading-text,
+.govuk-frontend-supported .govuk-accordion__section-summary,
+.govuk-frontend-supported .govuk-accordion__section-toggle {
     display: block;
     margin-bottom: 13px
 }
 
-.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,
-.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,
-.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,
-.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,
-.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,
-.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,
-.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,
-.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,
-.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus {
+.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,
+.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,
+.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,
+.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,
+.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,
+.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,
+.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,
+.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,
+.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus {
     display: inline
 }
 
-.js-enabled .govuk-accordion__section-toggle {
-    font-size: 16px;
+.govuk-frontend-supported .govuk-accordion__section-toggle {
     font-size: 1rem;
     line-height: 1.25;
     font-weight: 400;
@@ -1488,65 +1470,65 @@
 }
 
 @media (min-width:40.0625em) {
-    .js-enabled .govuk-accordion__section-toggle {
-        font-size: 19px;
+    .govuk-frontend-supported .govuk-accordion__section-toggle {
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
 }
 
 @media print {
-    .js-enabled .govuk-accordion__section-toggle {
+    .govuk-frontend-supported .govuk-accordion__section-toggle {
         font-size: 14pt;
         line-height: 1.15
     }
 }
 
-.js-enabled .govuk-accordion__section-toggle-text,
-.js-enabled .govuk-accordion__show-all-text {
+.govuk-frontend-supported .govuk-accordion__section-toggle-text,
+.govuk-frontend-supported .govuk-accordion__show-all-text {
     margin-left: 5px;
     vertical-align: middle
 }
 
 @media screen and (forced-colors:active) {
 
-    .js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron,
-    .js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
-        background-color: transparent
+    .govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron,
+    .govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+        background-color: initial
     }
 
-    .js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron,
-    .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
-    .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
-    .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,
-    .js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,
-    .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,
-    .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,
-    .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus {
-        background: transparent;
-        background-color: transparent
+    .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron,
+    .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+    .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+    .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,
+    .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,
+    .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,
+    .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,
+    .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus {
+        background: #0000;
+        background-color: initial
     }
 }
 
 @media (hover:none) {
-    .js-enabled .govuk-accordion__section-header:hover {
+    .govuk-frontend-supported .govuk-accordion__section-header:hover {
         border-top-color: #b1b4b6;
         box-shadow: inset 0 3px 0 0 #1d70b8
     }
 
-    .js-enabled .govuk-accordion__section-header:hover .govuk-accordion__section-button {
+    .govuk-frontend-supported .govuk-accordion__section-header:hover .govuk-accordion__section-button {
         border-top-color: #b1b4b6
     }
 }
 
 .govuk-back-link {
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em;
     display: inline-block;
     position: relative;
     margin-top: 15px;
@@ -1556,7 +1538,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-back-link {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -1570,8 +1551,16 @@
     }
 }
 
+.govuk-back-link:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
 .govuk-back-link:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -1594,7 +1583,7 @@
 }
 
 .govuk-back-link:hover {
-    color: rgba(11, 12, 12, .99)
+    color: #0b0c0cfc
 }
 
 .govuk-back-link:active,
@@ -1621,7 +1610,6 @@
     height: .4375em;
     margin: auto 0;
     -webkit-transform: rotate(225deg);
-    -ms-transform: rotate(225deg);
     transform: rotate(225deg);
     border: solid;
     border-width: 1px 1px 0 0;
@@ -1655,7 +1643,7 @@
 
 .govuk-back-link--inverse:active,
 .govuk-back-link--inverse:hover {
-    color: hsla(0, 0%, 100%, .99)
+    color: #fffffffc
 }
 
 .govuk-back-link--inverse:focus {
@@ -1671,7 +1659,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
     color: #0b0c0c;
@@ -1687,7 +1674,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-breadcrumbs {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -1733,7 +1719,6 @@
     height: .4375em;
     margin: auto 0;
     -webkit-transform: rotate(45deg);
-    -ms-transform: rotate(45deg);
     transform: rotate(45deg);
     border: solid;
     border-width: 1px 1px 0 0;
@@ -1761,7 +1746,9 @@
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    text-decoration: underline
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em
 }
 
 @media print {
@@ -1770,8 +1757,16 @@
     }
 }
 
+.govuk-breadcrumbs__link:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
 .govuk-breadcrumbs__link:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -1794,7 +1789,7 @@
 }
 
 .govuk-breadcrumbs__link:hover {
-    color: rgba(11, 12, 12, .99)
+    color: #0b0c0cfc
 }
 
 .govuk-breadcrumbs__link:active,
@@ -1826,7 +1821,6 @@
     }
 
     .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list {
-        display: -ms-flexbox;
         display: flex
     }
 }
@@ -1839,7 +1833,7 @@
 
 .govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:active,
 .govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:hover {
-    color: hsla(0, 0%, 100%, .99)
+    color: #fffffffc
 }
 
 .govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:focus {
@@ -1855,7 +1849,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.1875;
     box-sizing: border-box;
@@ -1864,7 +1857,7 @@
     width: 100%;
     margin: 0 0 22px;
     padding: 8px 10px 7px;
-    border: 2px solid transparent;
+    border: 2px solid #0000;
     border-radius: 0;
     color: #fff;
     background-color: #00703c;
@@ -1883,7 +1876,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-button {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1
     }
@@ -1926,7 +1918,7 @@
 
 .govuk-button:focus {
     border-color: #fd0;
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     box-shadow: inset 0 0 0 1px #fd0
 }
 
@@ -1945,28 +1937,22 @@
     right: -2px;
     bottom: -4px;
     left: -2px;
-    background: transparent
+    background: #0000
 }
 
 .govuk-button:active:before {
     top: -4px
 }
 
-.govuk-button--disabled,
-.govuk-button[disabled=disabled],
 .govuk-button[disabled] {
     opacity: .5
 }
 
-.govuk-button--disabled:hover,
-.govuk-button[disabled=disabled]:hover,
 .govuk-button[disabled]:hover {
     background-color: #00703c;
     cursor: not-allowed
 }
 
-.govuk-button--disabled:active,
-.govuk-button[disabled=disabled]:active,
 .govuk-button[disabled]:active {
     top: 0;
     box-shadow: 0 2px 0 #002d18
@@ -2037,19 +2023,15 @@
 
 .govuk-button--start {
     font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1;
-    display: -ms-inline-flexbox;
     display: inline-flex;
     min-height: auto;
-    -ms-flex-pack: center;
     justify-content: center
 }
 
 @media (min-width:40.0625em) {
     .govuk-button--start {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1
     }
@@ -2065,9 +2047,7 @@
 .govuk-button__start-icon {
     margin-left: 5px;
     vertical-align: middle;
-    -ms-flex-negative: 0;
     flex-shrink: 0;
-    -ms-flex-item-align: center;
     align-self: center;
     forced-color-adjust: auto
 }
@@ -2083,7 +2063,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     display: block;
@@ -2101,7 +2080,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-error-message {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -2114,205 +2092,11 @@
     }
 }
 
-.govuk-fieldset {
-    min-width: 0;
-    margin: 0;
-    padding: 0;
-    border: 0
-}
-
-.govuk-fieldset:after {
-    content: "";
-    display: block;
-    clear: both
-}
-
-@supports not (caret-color:auto) {
-
-    .govuk-fieldset,
-    x:-moz-any-link {
-        display: table-cell
-    }
-}
-
-.govuk-fieldset__legend {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
-    color: #0b0c0c;
-    box-sizing: border-box;
-    display: table;
-    max-width: 100%;
-    margin-bottom: 10px;
-    padding: 0;
-    white-space: normal
-}
-
-@media print {
-    .govuk-fieldset__legend {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-fieldset__legend {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-fieldset__legend {
-        font-size: 14pt;
-        line-height: 1.15;
-        color: #000
-    }
-}
-
-.govuk-fieldset__legend--xl {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 32px;
-    font-size: 2rem;
-    line-height: 1.09375;
-    margin-bottom: 15px
-}
-
-@media print {
-    .govuk-fieldset__legend--xl {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-fieldset__legend--xl {
-        font-size: 48px;
-        font-size: 3rem;
-        line-height: 1.0416666667
-    }
-}
-
-@media print {
-    .govuk-fieldset__legend--xl {
-        font-size: 32pt;
-        line-height: 1.15
-    }
-}
-
-.govuk-fieldset__legend--l {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 24px;
-    font-size: 1.5rem;
-    line-height: 1.0416666667;
-    margin-bottom: 15px
-}
-
-@media print {
-    .govuk-fieldset__legend--l {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-fieldset__legend--l {
-        font-size: 36px;
-        font-size: 2.25rem;
-        line-height: 1.1111111111
-    }
-}
-
-@media print {
-    .govuk-fieldset__legend--l {
-        font-size: 24pt;
-        line-height: 1.05
-    }
-}
-
-.govuk-fieldset__legend--m {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 18px;
-    font-size: 1.125rem;
-    line-height: 1.1111111111;
-    margin-bottom: 15px
-}
-
-@media print {
-    .govuk-fieldset__legend--m {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-fieldset__legend--m {
-        font-size: 24px;
-        font-size: 1.5rem;
-        line-height: 1.25
-    }
-}
-
-@media print {
-    .govuk-fieldset__legend--m {
-        font-size: 18pt;
-        line-height: 1.15
-    }
-}
-
-.govuk-fieldset__legend--s {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25
-}
-
-@media print {
-    .govuk-fieldset__legend--s {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-fieldset__legend--s {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-fieldset__legend--s {
-        font-size: 14pt;
-        line-height: 1.15
-    }
-}
-
-.govuk-fieldset__heading {
-    margin: 0;
-    font-size: inherit;
-    font-weight: inherit
-}
-
 .govuk-hint {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     margin-bottom: 15px;
@@ -2327,7 +2111,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-hint {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -2354,7 +2137,6 @@
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -2370,7 +2152,6 @@
 
 @media (min-width:40.0625em) {
     .govuk-label {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -2384,26 +2165,20 @@
     }
 }
 
+.govuk-label--l,
+.govuk-label--m,
 .govuk-label--xl {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 32px;
-    font-size: 2rem;
-    line-height: 1.09375;
     margin-bottom: 15px
 }
 
-@media print {
-    .govuk-label--xl {
-        font-family: sans-serif
-    }
+.govuk-label--xl {
+    font-size: 2rem;
+    line-height: 1.09375
 }
 
 @media (min-width:40.0625em) {
     .govuk-label--xl {
-        font-size: 48px;
         font-size: 3rem;
         line-height: 1.0416666667
     }
@@ -2417,25 +2192,12 @@
 }
 
 .govuk-label--l {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 24px;
     font-size: 1.5rem;
-    line-height: 1.0416666667;
-    margin-bottom: 15px
-}
-
-@media print {
-    .govuk-label--l {
-        font-family: sans-serif
-    }
+    line-height: 1.0416666667
 }
 
 @media (min-width:40.0625em) {
     .govuk-label--l {
-        font-size: 36px;
         font-size: 2.25rem;
         line-height: 1.1111111111
     }
@@ -2449,25 +2211,12 @@
 }
 
 .govuk-label--m {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
-    line-height: 1.1111111111;
-    margin-bottom: 10px
-}
-
-@media print {
-    .govuk-label--m {
-        font-family: sans-serif
-    }
+    line-height: 1.1111111111
 }
 
 @media (min-width:40.0625em) {
     .govuk-label--m {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -2481,84 +2230,274 @@
 }
 
 .govuk-label--s {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25
+    font-weight: 700
 }
 
-@media print {
-    .govuk-label--s {
-        font-family: sans-serif
-    }
+.govuk-label-wrapper {
+    margin: 0
 }
 
-@media (min-width:40.0625em) {
-    .govuk-label--s {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
+.govuk-textarea {
+    font-family: GDS Transport, arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    font-weight: 400;
+    font-size: 1rem;
+    line-height: 1.25;
+    box-sizing: border-box;
+    display: block;
+    width: 100%;
+    min-height: 40px;
+    margin-bottom: 20px;
+    padding: 5px;
+    resize: vertical;
+    border: 2px solid #0b0c0c;
+    border-radius: 0;
+    -webkit-appearance: none
+}
+
+@media print {
+    .govuk-textarea {
+        font-family: sans-serif
+    }
+}
+
+@media (min-width:40.0625em) {
+    .govuk-textarea {
+        font-size: 1.1875rem;
+        line-height: 1.25
+    }
 }
 
 @media print {
-    .govuk-label--s {
+    .govuk-textarea {
         font-size: 14pt;
-        line-height: 1.15
+        line-height: 1.25
     }
 }
 
-.govuk-label-wrapper {
-    margin: 0
+@media (min-width:40.0625em) {
+    .govuk-textarea {
+        margin-bottom: 30px
+    }
 }
 
-.govuk-checkboxes__item {
+.govuk-textarea:focus {
+    outline: 3px solid #fd0;
+    outline-offset: 0;
+    box-shadow: inset 0 0 0 2px
+}
+
+.govuk-textarea:disabled {
+    opacity: .5;
+    color: inherit;
+    background-color: initial;
+    cursor: not-allowed
+}
+
+.govuk-textarea--error {
+    border-color: #d4351c
+}
+
+.govuk-textarea--error:focus {
+    border-color: #0b0c0c
+}
+
+.govuk-character-count {
+    margin-bottom: 20px
+}
+
+@media (min-width:40.0625em) {
+    .govuk-character-count {
+        margin-bottom: 30px
+    }
+}
+
+.govuk-character-count .govuk-form-group,
+.govuk-character-count .govuk-textarea {
+    margin-bottom: 5px
+}
+
+.govuk-character-count__message {
+    font-family: GDS Transport, arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    -webkit-font-feature-settings: "tnum" 1;
+    font-feature-settings: "tnum" 1;
+    font-weight: 400;
+    margin-top: 0;
+    margin-bottom: 0
+}
+
+@media print {
+    .govuk-character-count__message {
+        font-family: sans-serif
+    }
+}
+
+@supports (font-variant-numeric:tabular-nums) {
+    .govuk-character-count__message {
+        -webkit-font-feature-settings: normal;
+        font-feature-settings: normal;
+        font-variant-numeric: tabular-nums
+    }
+}
+
+.govuk-character-count__message:after {
+    content: "​"
+}
+
+.govuk-character-count__message--disabled {
+    visibility: hidden
+}
+
+.govuk-fieldset {
+    min-width: 0;
+    margin: 0;
+    padding: 0;
+    border: 0
+}
+
+.govuk-fieldset:after {
+    content: "";
+    display: block;
+    clear: both
+}
+
+@supports not (caret-color:auto) {
+
+    .govuk-fieldset,
+    x:-moz-any-link {
+        display: table-cell
+    }
+}
+
+.govuk-fieldset__legend {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
-    display: block;
-    position: relative;
-    min-height: 40px;
+    color: #0b0c0c;
+    box-sizing: border-box;
+    display: table;
+    max-width: 100%;
     margin-bottom: 10px;
-    padding-left: 40px;
-    clear: left
+    padding: 0;
+    white-space: normal
 }
 
 @media print {
-    .govuk-checkboxes__item {
+    .govuk-fieldset__legend {
         font-family: sans-serif
     }
 }
 
 @media (min-width:40.0625em) {
-    .govuk-checkboxes__item {
-        font-size: 19px;
+    .govuk-fieldset__legend {
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
 }
 
 @media print {
-    .govuk-checkboxes__item {
+    .govuk-fieldset__legend {
         font-size: 14pt;
+        line-height: 1.15;
+        color: #000
+    }
+}
+
+.govuk-fieldset__legend--l,
+.govuk-fieldset__legend--m,
+.govuk-fieldset__legend--xl {
+    font-weight: 700;
+    margin-bottom: 15px
+}
+
+.govuk-fieldset__legend--xl {
+    font-size: 2rem;
+    line-height: 1.09375
+}
+
+@media (min-width:40.0625em) {
+    .govuk-fieldset__legend--xl {
+        font-size: 3rem;
+        line-height: 1.0416666667
+    }
+}
+
+@media print {
+    .govuk-fieldset__legend--xl {
+        font-size: 32pt;
+        line-height: 1.15
+    }
+}
+
+.govuk-fieldset__legend--l {
+    font-size: 1.5rem;
+    line-height: 1.0416666667
+}
+
+@media (min-width:40.0625em) {
+    .govuk-fieldset__legend--l {
+        font-size: 2.25rem;
+        line-height: 1.1111111111
+    }
+}
+
+@media print {
+    .govuk-fieldset__legend--l {
+        font-size: 24pt;
+        line-height: 1.05
+    }
+}
+
+.govuk-fieldset__legend--m {
+    font-size: 1.125rem;
+    line-height: 1.1111111111
+}
+
+@media (min-width:40.0625em) {
+    .govuk-fieldset__legend--m {
+        font-size: 1.5rem;
+        line-height: 1.25
+    }
+}
+
+@media print {
+    .govuk-fieldset__legend--m {
+        font-size: 18pt;
         line-height: 1.15
     }
 }
 
+.govuk-fieldset__legend--s {
+    font-weight: 700
+}
+
+.govuk-fieldset__heading {
+    margin: 0;
+    font-size: inherit;
+    font-weight: inherit
+}
+
+.govuk-checkboxes__item {
+    display: block;
+    position: relative;
+    min-height: 40px;
+    margin-bottom: 10px;
+    padding-left: 40px;
+    clear: left
+}
+
 .govuk-checkboxes__item:last-child,
 .govuk-checkboxes__item:last-of-type {
     margin-bottom: 0
 }
 
 .govuk-checkboxes__input {
-    cursor: pointer;
     position: absolute;
     z-index: 1;
     top: -2px;
@@ -2566,7 +2505,8 @@
     width: 44px;
     height: 44px;
     margin: 0;
-    opacity: 0
+    opacity: 0;
+    cursor: pointer
 }
 
 .govuk-checkboxes__label {
@@ -2574,7 +2514,6 @@
     margin-bottom: 0;
     padding: 8px 15px 5px;
     cursor: pointer;
-    -ms-touch-action: manipulation;
     touch-action: manipulation
 }
 
@@ -2591,7 +2530,7 @@
     content: "";
     box-sizing: border-box;
     position: absolute;
-    background: transparent
+    background: #0000
 }
 
 .govuk-checkboxes__label:after {
@@ -2600,11 +2539,10 @@
     width: 23px;
     height: 12px;
     -webkit-transform: rotate(-45deg);
-    -ms-transform: rotate(-45deg);
     transform: rotate(-45deg);
     border: solid;
     border-width: 0 0 5px 5px;
-    border-top-color: transparent;
+    border-top-color: #0000;
     opacity: 0
 }
 
@@ -2616,7 +2554,7 @@
 
 .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before {
     border-width: 4px;
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     outline-offset: 1px;
     box-shadow: 0 0 0 3px #fd0
 }
@@ -2647,7 +2585,6 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -2664,7 +2601,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-checkboxes__divider {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -2691,7 +2627,7 @@ screen and (forced-colors:active) {
     }
 }
 
-.js-enabled .govuk-checkboxes__conditional--hidden {
+.govuk-frontend-supported .govuk-checkboxes__conditional--hidden {
     display: none
 }
 
@@ -2754,6 +2690,8 @@ screen and (forced-colors:active) {
 }
 
 .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before {
+    outline: 3px dashed #0000;
+    outline-offset: 1px;
     box-shadow: 0 0 0 10px #b1b4b6
 }
 
@@ -2761,6 +2699,13 @@ screen and (forced-colors:active) {
     box-shadow: 0 0 0 3px #fd0, 0 0 0 10px #b1b4b6
 }
 
+@media (-ms-high-contrast:active),
+screen and (forced-colors:active) {
+    .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before {
+        outline-color: Highlight
+    }
+}
+
 @media (hover:none),
 (pointer:coarse) {
     .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before {
@@ -2772,125 +2717,9 @@ screen and (forced-colors:active) {
     }
 }
 
-.govuk-textarea {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
-    box-sizing: border-box;
-    display: block;
-    width: 100%;
-    min-height: 40px;
-    margin-bottom: 20px;
-    padding: 5px;
-    resize: vertical;
-    border: 2px solid #0b0c0c;
-    border-radius: 0;
-    -webkit-appearance: none
-}
-
-@media print {
-    .govuk-textarea {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-textarea {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.25
-    }
-}
-
-@media print {
-    .govuk-textarea {
-        font-size: 14pt;
-        line-height: 1.25
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-textarea {
-        margin-bottom: 30px
-    }
-}
-
-.govuk-textarea:focus {
-    outline: 3px solid #fd0;
-    outline-offset: 0;
-    box-shadow: inset 0 0 0 2px
-}
-
-.govuk-textarea:disabled {
-    opacity: .5;
-    color: inherit;
-    background-color: transparent;
-    cursor: not-allowed
-}
-
-.govuk-textarea--error {
-    border-color: #d4351c
-}
-
-.govuk-textarea--error:focus {
-    border-color: #0b0c0c
-}
-
-.govuk-character-count {
-    margin-bottom: 20px
-}
-
-@media (min-width:40.0625em) {
-    .govuk-character-count {
-        margin-bottom: 30px
-    }
-}
-
-.govuk-character-count .govuk-form-group,
-.govuk-character-count .govuk-textarea {
-    margin-bottom: 5px
-}
-
-.govuk-character-count__message {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    -webkit-font-feature-settings: "tnum" 1;
-    font-feature-settings: "tnum" 1;
-    font-weight: 400;
-    margin-top: 0;
-    margin-bottom: 0
-}
-
-@media print {
-    .govuk-character-count__message {
-        font-family: sans-serif
-    }
-}
-
-@supports (font-variant-numeric:tabular-nums) {
-    .govuk-character-count__message {
-        -webkit-font-feature-settings: normal;
-        font-feature-settings: normal;
-        font-variant-numeric: tabular-nums
-    }
-}
-
-.govuk-character-count__message:after {
-    content: "​"
-}
-
-.govuk-character-count__message--disabled {
-    visibility: hidden
-}
-
 .govuk-cookie-banner {
     padding-top: 20px;
-    border-bottom: 10px solid transparent;
+    border-bottom: 10px solid #0000;
     background-color: #f3f2f1
 }
 
@@ -2915,12 +2744,10 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     box-sizing: border-box;
     width: 100%;
-    height: 40px;
     height: 2.5rem;
     margin-top: 0;
     padding: 5px;
@@ -2938,7 +2765,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-input {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -2960,7 +2786,7 @@ screen and (forced-colors:active) {
 .govuk-input:disabled {
     opacity: .5;
     color: inherit;
-    background-color: transparent;
+    background-color: initial;
     cursor: not-allowed
 }
 
@@ -3035,12 +2861,10 @@ screen and (forced-colors:active) {
 }
 
 .govuk-input__wrapper {
-    display: -ms-flexbox;
     display: flex
 }
 
 .govuk-input__wrapper .govuk-input {
-    -ms-flex: 0 1 auto;
     flex: 0 1 auto
 }
 
@@ -3064,14 +2888,11 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     box-sizing: border-box;
     display: inline-block;
-    min-width: 40px;
     min-width: 2.5rem;
-    height: 40px;
     height: 2.5rem;
     padding: 5px;
     border: 2px solid #0b0c0c;
@@ -3079,7 +2900,6 @@ screen and (forced-colors:active) {
     text-align: center;
     white-space: nowrap;
     cursor: default;
-    -ms-flex: 0 0 auto;
     flex: 0 0 auto
 }
 
@@ -3095,7 +2915,6 @@ screen and (forced-colors:active) {
 
     .govuk-input__prefix,
     .govuk-input__suffix {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -3179,7 +2998,6 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -3195,7 +3013,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-details {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -3217,74 +3034,22 @@ screen and (forced-colors:active) {
 
 .govuk-details__summary {
     display: inline-block;
-    position: relative;
-    margin-bottom: 5px;
-    padding-left: 25px;
-    color: #1d70b8;
-    cursor: pointer
-}
-
-.govuk-details__summary:hover {
-    color: #003078
-}
-
-.govuk-details__summary:focus {
-    outline: 3px solid transparent;
-    color: #0b0c0c;
-    background-color: #fd0;
-    box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
-    text-decoration: none;
-    -webkit-box-decoration-break: clone;
-    box-decoration-break: clone
-}
-
-.govuk-details__summary-text {
-    text-decoration: underline
-}
-
-.govuk-details__summary:focus .govuk-details__summary-text {
-    text-decoration: none
-}
-
-.govuk-details__summary::-webkit-details-marker {
-    display: none
+    margin-bottom: 5px
 }
 
-.govuk-details__summary:before {
-    content: "";
-    position: absolute;
-    top: -1px;
-    bottom: 0;
-    left: 0;
-    margin: auto;
-    display: block;
-    width: 0;
-    height: 0;
-    -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
-    clip-path: polygon(0 0, 100% 50%, 0 100%);
-    border-color: transparent;
-    border-style: solid;
-    border-width: 7px 0 7px 12.124px;
-    border-left-color: inherit
+.govuk-details__summary-text>:first-child {
+    margin-top: 0
 }
 
-.govuk-details[open]>.govuk-details__summary:before {
-    display: block;
-    width: 0;
-    height: 0;
-    -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
-    clip-path: polygon(0 0, 50% 100%, 100% 0);
-    border-color: transparent;
-    border-style: solid;
-    border-width: 12.124px 7px 0;
-    border-top-color: inherit
+.govuk-details__summary-text>:last-child,
+.govuk-details__summary-text>:only-child {
+    margin-bottom: 0
 }
 
 .govuk-details__text {
     padding-top: 15px;
     padding-bottom: 15px;
-    padding-left: 20px;
-    border-left: 5px solid #b1b4b6
+    padding-left: 20px
 }
 
 .govuk-details__text p {
@@ -3296,7 +3061,114 @@ screen and (forced-colors:active) {
     margin-bottom: 0
 }
 
+@media screen\0 {
+    .govuk-details {
+        border-left: 10px solid #b1b4b6
+    }
+
+    .govuk-details__summary {
+        margin-top: 15px
+    }
+
+    .govuk-details__summary-text {
+        font-weight: 700;
+        margin-bottom: 15px;
+        padding-left: 20px
+    }
+}
+
+@media screen\0 and (min-width:40.0625em) {
+    .govuk-details__summary-text {
+        margin-bottom: 20px
+    }
+}
+
+@supports not (-ms-ime-align:auto) {
+    .govuk-details__summary {
+        position: relative;
+        padding-left: 25px;
+        color: #1d70b8;
+        cursor: pointer
+    }
+
+    .govuk-details__summary:hover {
+        color: #003078
+    }
+
+    .govuk-details__summary:focus {
+        outline: 3px solid #0000;
+        color: #0b0c0c;
+        background-color: #fd0;
+        box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
+        text-decoration: none;
+        -webkit-box-decoration-break: clone;
+        box-decoration-break: clone
+    }
+
+    .govuk-details__summary-text {
+        text-decoration: underline;
+        text-decoration-thickness: max(1px, .0625rem);
+        text-underline-offset: .1578em
+    }
+
+    .govuk-details__summary:hover .govuk-details__summary-text {
+        text-decoration-thickness: max(3px, .1875rem, .12em);
+        -webkit-text-decoration-skip-ink: none;
+        text-decoration-skip-ink: none;
+        -webkit-text-decoration-skip: none;
+        text-decoration-skip: none
+    }
+
+    .govuk-details__summary:focus .govuk-details__summary-text {
+        text-decoration: none
+    }
+
+    .govuk-details__summary::-webkit-details-marker {
+        display: none
+    }
+
+    .govuk-details__summary:before {
+        content: "";
+        position: absolute;
+        top: -1px;
+        bottom: 0;
+        left: 0;
+        margin: auto;
+        display: block;
+        width: 0;
+        height: 0;
+        -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
+        clip-path: polygon(0 0, 100% 50%, 0 100%);
+        border-color: #0000;
+        border-style: solid;
+        border-width: 7px 0 7px 12.124px;
+        border-left-color: inherit
+    }
+
+    .govuk-details[open]>.govuk-details__summary:before {
+        display: block;
+        width: 0;
+        height: 0;
+        -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
+        clip-path: polygon(0 0, 50% 100%, 100% 0);
+        border-color: #0000;
+        border-style: solid;
+        border-width: 12.124px 7px 0;
+        border-top-color: inherit
+    }
+
+    .govuk-details__text {
+        border-left: 5px solid #b1b4b6
+    }
+}
+
 .govuk-error-summary {
+    font-family: GDS Transport, arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    font-weight: 400;
+    font-size: 1rem;
+    line-height: 1.25;
     color: #0b0c0c;
     padding: 15px;
     margin-bottom: 30px;
@@ -3305,6 +3177,21 @@ screen and (forced-colors:active) {
 
 @media print {
     .govuk-error-summary {
+        font-family: sans-serif
+    }
+}
+
+@media (min-width:40.0625em) {
+    .govuk-error-summary {
+        font-size: 1.1875rem;
+        line-height: 1.3157894737
+    }
+}
+
+@media print {
+    .govuk-error-summary {
+        font-size: 14pt;
+        line-height: 1.15;
         color: #000
     }
 }
@@ -3321,26 +3208,15 @@ screen and (forced-colors:active) {
 }
 
 .govuk-error-summary__title {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
+    font-weight: 700;
     margin-top: 0;
     margin-bottom: 15px
 }
 
-@media print {
-    .govuk-error-summary__title {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-error-summary__title {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -3359,37 +3235,6 @@ screen and (forced-colors:active) {
     }
 }
 
-.govuk-error-summary__body {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25
-}
-
-@media print {
-    .govuk-error-summary__body {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-error-summary__body {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-error-summary__body {
-        font-size: 14pt;
-        line-height: 1.15
-    }
-}
-
 .govuk-error-summary__body p {
     margin-top: 0;
     margin-bottom: 15px
@@ -3411,7 +3256,9 @@ screen and (forced-colors:active) {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    text-decoration: underline
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em
 }
 
 @media print {
@@ -3420,8 +3267,16 @@ screen and (forced-colors:active) {
     }
 }
 
+.govuk-error-summary__list a:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
 .govuk-error-summary__list a:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
     text-decoration: none;
@@ -3527,7 +3382,6 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -3544,7 +3398,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-file-upload {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -3564,11 +3417,7 @@ screen and (forced-colors:active) {
     font: inherit
 }
 
-.govuk-file-upload:focus {
-    outline: 3px solid #fd0;
-    box-shadow: inset 0 0 0 4px #0b0c0c
-}
-
+.govuk-file-upload:focus,
 .govuk-file-upload:focus-within {
     outline: 3px solid #fd0;
     box-shadow: inset 0 0 0 4px #0b0c0c
@@ -3584,7 +3433,6 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
     padding-top: 25px;
@@ -3602,7 +3450,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-footer {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -3626,7 +3473,9 @@ screen and (forced-colors:active) {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    text-decoration: underline
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em
 }
 
 @media print {
@@ -3635,8 +3484,16 @@ screen and (forced-colors:active) {
     }
 }
 
+.govuk-footer__link:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
 .govuk-footer__link:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -3659,7 +3516,7 @@ screen and (forced-colors:active) {
 }
 
 .govuk-footer__link:hover {
-    color: rgba(11, 12, 12, .99)
+    color: #0b0c0cfc
 }
 
 .govuk-footer__link:active,
@@ -3688,15 +3545,11 @@ screen and (forced-colors:active) {
 }
 
 .govuk-footer__meta {
-    display: -ms-flexbox;
     display: flex;
     margin-right: -15px;
     margin-left: -15px;
-    -ms-flex-wrap: wrap;
     flex-wrap: wrap;
-    -ms-flex-align: end;
     align-items: flex-end;
-    -ms-flex-pack: center;
     justify-content: center
 }
 
@@ -3707,13 +3560,11 @@ screen and (forced-colors:active) {
 }
 
 .govuk-footer__meta-item--grow {
-    -ms-flex: 1;
     flex: 1
 }
 
 @media (max-width:40.0525em) {
     .govuk-footer__meta-item--grow {
-        -ms-flex-preferred-size: 320px;
         flex-basis: 320px
     }
 }
@@ -3839,7 +3690,6 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
     border-bottom: 10px solid #fff;
@@ -3855,7 +3705,6 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-header {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -3914,33 +3763,15 @@ only screen and (min-resolution:2dppx) {
     vertical-align: top
 }
 
-.govuk-header__logotype-crown-fallback-image {
-    width: 36px;
-    height: 32px;
-    border: 0;
-    vertical-align: bottom
-}
-
 .govuk-header__product-name {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1;
+    font-weight: 400;
     display: inline-table
 }
 
-@media print {
-    .govuk-header__product-name {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-header__product-name {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1
     }
@@ -3954,18 +3785,9 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-header__link {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
     text-decoration: none
 }
 
-@media print {
-    .govuk-header__link {
-        font-family: sans-serif
-    }
-}
-
 .govuk-header__link:link,
 .govuk-header__link:visited {
     color: #fff
@@ -3973,7 +3795,7 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-header__link:active,
 .govuk-header__link:hover {
-    color: hsla(0, 0%, 100%, .99)
+    color: #fffffffc
 }
 
 .govuk-header__link:hover {
@@ -3983,7 +3805,7 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-header__link:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -3993,9 +3815,6 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-header__link--homepage {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
     display: inline-block;
     margin-right: 10px;
@@ -4003,12 +3822,6 @@ only screen and (min-resolution:2dppx) {
     line-height: 1
 }
 
-@media print {
-    .govuk-header__link--homepage {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-header__link--homepage {
         display: inline
@@ -4035,40 +3848,22 @@ only screen and (min-resolution:2dppx) {
     border-bottom: 0
 }
 
-.govuk-header__link--service-name,
 .govuk-header__service-name {
     display: inline-block;
     margin-bottom: 10px;
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
-    line-height: 1.1111111111
-}
-
-@media print {
-
-    .govuk-header__link--service-name,
-    .govuk-header__service-name {
-        font-family: sans-serif
-    }
+    line-height: 1.1111111111;
+    font-weight: 700
 }
 
 @media (min-width:40.0625em) {
-
-    .govuk-header__link--service-name,
     .govuk-header__service-name {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
 }
 
 @media print {
-
-    .govuk-header__link--service-name,
     .govuk-header__service-name {
         font-size: 18pt;
         line-height: 1.15
@@ -4105,10 +3900,8 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
-    display: none;
     position: absolute;
     top: 20px;
     right: 0;
@@ -4128,7 +3921,6 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-header__menu-button {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -4148,7 +3940,7 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-header__menu-button:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -4163,7 +3955,7 @@ only screen and (min-resolution:2dppx) {
     height: 0;
     -webkit-clip-path: polygon(0 0, 50% 100%, 100% 0);
     clip-path: polygon(0 0, 50% 100%, 100% 0);
-    border-color: transparent;
+    border-color: #0000;
     border-style: solid;
     border-width: 8.66px 5px 0;
     border-top-color: inherit;
@@ -4177,7 +3969,7 @@ only screen and (min-resolution:2dppx) {
     height: 0;
     -webkit-clip-path: polygon(50% 0, 0 100%, 100% 100%);
     clip-path: polygon(50% 0, 0 100%, 100% 100%);
-    border-color: transparent;
+    border-color: #0000;
     border-style: solid;
     border-width: 0 5px 8.66px;
     border-bottom-color: inherit
@@ -4189,12 +3981,12 @@ only screen and (min-resolution:2dppx) {
     }
 }
 
-.js-enabled .govuk-header__menu-button {
+.govuk-frontend-supported .govuk-header__menu-button {
     display: block
 }
 
-.govuk-header__menu-button[hidden],
-.js-enabled .govuk-header__menu-button[hidden] {
+.govuk-frontend-supported .govuk-header__menu-button[hidden],
+.govuk-header__menu-button[hidden] {
     display: none
 }
 
@@ -4222,10 +4014,6 @@ only screen and (min-resolution:2dppx) {
     }
 }
 
-.govuk-header__navigation--no-service-name {
-    padding-top: 40px
-}
-
 .govuk-header__navigation-item {
     padding: 10px 0;
     border-bottom: 1px solid #2e3133
@@ -4241,25 +4029,14 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-header__navigation-item a {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
+    font-weight: 700;
     white-space: nowrap
 }
 
-@media print {
-    .govuk-header__navigation-item a {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-header__navigation-item a {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -4297,7 +4074,7 @@ only screen and (min-resolution:2dppx) {
     .govuk-header {
         border-bottom-width: 0;
         color: #0b0c0c;
-        background: transparent
+        background: #0000
     }
 
     .govuk-header__logotype-crown-fallback-image {
@@ -4319,7 +4096,6 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -4338,7 +4114,6 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-inset-text {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -4373,7 +4148,6 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     margin-bottom: 30px;
@@ -4389,7 +4163,6 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-notification-banner {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -4414,7 +4187,7 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-notification-banner__header {
     padding: 2px 15px 5px;
-    border-bottom: 1px solid transparent
+    border-bottom: 1px solid #0000
 }
 
 @media (min-width:40.0625em) {
@@ -4424,27 +4197,16 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-notification-banner__title {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
+    font-weight: 700;
     margin: 0;
     padding: 0;
     color: #fff
 }
 
-@media print {
-    .govuk-notification-banner__title {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-notification-banner__title {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -4485,26 +4247,15 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-notification-banner__heading {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 18px;
     font-size: 1.125rem;
     line-height: 1.1111111111;
+    font-weight: 700;
     margin: 0 0 15px;
     padding: 0
 }
 
-@media print {
-    .govuk-notification-banner__heading {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-notification-banner__heading {
-        font-size: 24px;
         font-size: 1.5rem;
         line-height: 1.25
     }
@@ -4521,7 +4272,9 @@ only screen and (min-resolution:2dppx) {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    text-decoration: underline
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em
 }
 
 @media print {
@@ -4530,8 +4283,16 @@ only screen and (min-resolution:2dppx) {
     }
 }
 
+.govuk-notification-banner__link:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
 .govuk-notification-banner__link:focus {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
     text-decoration: none;
@@ -4577,22 +4338,16 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-pagination {
     margin-bottom: 20px;
-    display: -ms-flexbox;
     display: flex;
-    -ms-flex-direction: column;
     flex-direction: column;
-    -ms-flex-align: center;
     align-items: center;
-    -ms-flex-wrap: wrap;
     flex-wrap: wrap
 }
 
 @media (min-width:40.0625em) {
     .govuk-pagination {
         margin-bottom: 30px;
-        -ms-flex-direction: row;
         flex-direction: row;
-        -ms-flex-align: start;
         align-items: flex-start
     }
 }
@@ -4610,7 +4365,6 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     box-sizing: border-box;
@@ -4635,7 +4389,6 @@ only screen and (min-resolution:2dppx) {
     .govuk-pagination__item,
     .govuk-pagination__next,
     .govuk-pagination__prev {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -4675,9 +4428,7 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-pagination__next .govuk-pagination__link,
 .govuk-pagination__prev .govuk-pagination__link {
-    display: -ms-flexbox;
     display: flex;
-    -ms-flex-align: center;
     align-items: center
 }
 
@@ -4698,7 +4449,7 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-pagination__item--current {
     font-weight: 700;
-    outline: 1px solid transparent;
+    outline: 1px solid #0000;
     background-color: #1d70b8
 }
 
@@ -4713,7 +4464,7 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-pagination__item--current .govuk-pagination__link:active,
 .govuk-pagination__item--current .govuk-pagination__link:hover {
-    color: hsla(0, 0%, 100%, .99)
+    color: #fffffffc
 }
 
 .govuk-pagination__item--current .govuk-pagination__link:focus {
@@ -4726,7 +4477,7 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-pagination__item--ellipses:hover {
-    background-color: transparent
+    background-color: initial
 }
 
 .govuk-pagination__link {
@@ -4747,7 +4498,20 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-pagination__link:active .govuk-pagination__link-title--decorated,
 .govuk-pagination__link:hover .govuk-pagination__link-title--decorated {
-    text-decoration: underline
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em
+}
+
+.govuk-pagination__link:active .govuk-pagination__link-label,
+.govuk-pagination__link:active .govuk-pagination__link-title--decorated,
+.govuk-pagination__link:hover .govuk-pagination__link-label,
+.govuk-pagination__link:hover .govuk-pagination__link-title--decorated {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
 }
 
 .govuk-pagination__link:focus .govuk-pagination__icon {
@@ -4760,39 +4524,14 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-pagination__link-label {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
     text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em;
     display: inline-block;
     padding-left: 30px
 }
 
-@media print {
-    .govuk-pagination__link-label {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-pagination__link-label {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-pagination__link-label {
-        font-size: 14pt;
-        line-height: 1.15
-    }
-}
-
 .govuk-pagination__icon {
     width: .9375rem;
     height: .8125rem;
@@ -4851,7 +4590,7 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-pagination--block .govuk-pagination__link:focus .govuk-pagination__link-label {
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     color: #0b0c0c;
     background-color: #fd0;
     box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
@@ -4873,13 +4612,12 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
+    font-size: 1.5rem;
+    line-height: 1.0416666667;
     box-sizing: border-box;
     margin-bottom: 15px;
     padding: 35px;
-    border: 5px solid transparent;
+    border: 5px solid #0000;
     text-align: center
 }
 
@@ -4891,16 +4629,15 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-panel {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
+        font-size: 2.25rem;
+        line-height: 1.1111111111
     }
 }
 
 @media print {
     .govuk-panel {
-        font-size: 14pt;
-        line-height: 1.15
+        font-size: 24pt;
+        line-height: 1.05
     }
 }
 
@@ -4926,26 +4663,15 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-panel__title {
-    margin-top: 0;
-    margin-bottom: 30px;
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 32px;
     font-size: 2rem;
-    line-height: 1.09375
-}
-
-@media print {
-    .govuk-panel__title {
-        font-family: sans-serif
-    }
+    line-height: 1.09375;
+    font-weight: 700;
+    margin-top: 0;
+    margin-bottom: 30px
 }
 
 @media (min-width:40.0625em) {
     .govuk-panel__title {
-        font-size: 48px;
         font-size: 3rem;
         line-height: 1.0416666667
     }
@@ -4962,54 +4688,22 @@ only screen and (min-resolution:2dppx) {
     margin-bottom: 0
 }
 
-.govuk-panel__body {
+.govuk-tag {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 24px;
-    font-size: 1.5rem;
-    line-height: 1.0416666667
-}
-
-@media print {
-    .govuk-panel__body {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-panel__body {
-        font-size: 36px;
-        font-size: 2.25rem;
-        line-height: 1.1111111111
-    }
-}
-
-@media print {
-    .govuk-panel__body {
-        font-size: 24pt;
-        line-height: 1.05
-    }
-}
-
-.govuk-tag {
+    font-size: 1rem;
+    line-height: 1.25;
     display: inline-block;
-    outline: 2px solid transparent;
-    outline-offset: -2px;
-    color: #fff;
-    background-color: #1d70b8;
-    letter-spacing: 1px;
+    max-width: 160px;
+    margin-top: -2px;
+    margin-bottom: -3px;
+    padding: 2px 8px 3px;
+    color: #0c2d4a;
+    background-color: #bbd4ea;
     text-decoration: none;
-    text-transform: uppercase;
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 14px;
-    font-size: .875rem;
-    line-height: 1;
-    padding: 5px 8px 4px
+    overflow-wrap: break-word
 }
 
 @media print {
@@ -5020,62 +4714,72 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-tag {
-        font-size: 16px;
-        font-size: 1rem;
-        line-height: 1
+        font-size: 1.1875rem;
+        line-height: 1.3157894737
     }
 }
 
 @media print {
     .govuk-tag {
         font-size: 14pt;
-        line-height: 1
+        line-height: 1.15
+    }
+}
+
+@media screen and (forced-colors:active) {
+    .govuk-tag {
+        font-weight: 700
     }
 }
 
 .govuk-tag--grey {
-    color: #383f43;
-    background: #eeefef
+    color: #282d30;
+    background-color: #e5e6e7
 }
 
 .govuk-tag--purple {
-    color: #3d2375;
-    background: #dbd5e9
+    color: #491644;
+    background-color: #efdfed
 }
 
 .govuk-tag--turquoise {
     color: #10403c;
-    background: #bfe3e0
+    background-color: #d4ecea
 }
 
 .govuk-tag--blue {
-    color: #144e81;
-    background: #d2e2f1
+    color: #0c2d4a;
+    background-color: #bbd4ea
+}
+
+.govuk-tag--light-blue {
+    color: #0c2d4a;
+    background-color: #e8f1f8
 }
 
 .govuk-tag--yellow {
     color: #594d00;
-    background: #fff7bf
+    background-color: #fff7bf
 }
 
 .govuk-tag--orange {
     color: #6e3619;
-    background: #fcd6c3
+    background-color: #fcd6c3
 }
 
 .govuk-tag--red {
-    color: #942514;
-    background: #f6d7d2
+    color: #2a0b06;
+    background-color: #f4cdc6
 }
 
 .govuk-tag--pink {
-    color: #80224d;
-    background: #f7d7e6
+    color: #6b1c40;
+    background-color: #f9e1ec
 }
 
 .govuk-tag--green {
     color: #005a30;
-    background: #cce2d8
+    background-color: #cce2d8
 }
 
 .govuk-phase-banner {
@@ -5089,7 +4793,6 @@ only screen and (min-resolution:2dppx) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 14px;
     font-size: .875rem;
     line-height: 1.1428571429;
     color: #0b0c0c;
@@ -5105,7 +4808,6 @@ only screen and (min-resolution:2dppx) {
 
 @media (min-width:40.0625em) {
     .govuk-phase-banner__content {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -5120,317 +4822,51 @@ only screen and (min-resolution:2dppx) {
 }
 
 .govuk-phase-banner__content__tag {
+    font-size: .875rem;
+    line-height: 1.1428571429;
     margin-right: 10px
 }
 
-.govuk-phase-banner__text {
-    display: table-cell;
-    vertical-align: middle
-}
-
-.govuk-tabs {
-    margin-top: 5px;
-    margin-bottom: 20px
-}
-
 @media (min-width:40.0625em) {
-    .govuk-tabs {
-        margin-bottom: 30px
+    .govuk-phase-banner__content__tag {
+        font-size: 1rem;
+        line-height: 1.25
     }
 }
 
-.govuk-tabs__title {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
-    color: #0b0c0c;
-    margin-bottom: 10px
-}
-
 @media print {
-    .govuk-tabs__title {
-        font-family: sans-serif
+    .govuk-phase-banner__content__tag {
+        font-size: 14pt;
+        line-height: 1.2
     }
 }
 
-@media (min-width:40.0625em) {
-    .govuk-tabs__title {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
+@media screen and (forced-colors:active) {
+    .govuk-phase-banner__content__tag {
+        font-weight: 700
     }
 }
 
-@media print {
-    .govuk-tabs__title {
-        font-size: 14pt;
-        line-height: 1.15;
-        color: #000
-    }
+.govuk-phase-banner__text {
+    display: table-cell;
+    vertical-align: middle
 }
 
-.govuk-tabs__list {
-    padding: 0;
-    list-style: none;
-    margin: 0 0 20px
+.govuk-radios__item {
+    display: block;
+    position: relative;
+    min-height: 40px;
+    margin-bottom: 10px;
+    padding-left: 40px;
+    clear: left
 }
 
-@media (min-width:40.0625em) {
-    .govuk-tabs__list {
-        margin-bottom: 30px
-    }
-}
-
-.govuk-tabs__list-item {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
-    margin-left: 25px
-}
-
-@media print {
-    .govuk-tabs__list-item {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-tabs__list-item {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-tabs__list-item {
-        font-size: 14pt;
-        line-height: 1.15
-    }
-}
-
-.govuk-tabs__list-item:before {
-    color: #0b0c0c;
-    content: "—";
-    margin-left: -25px;
-    padding-right: 5px
-}
-
-@media print {
-    .govuk-tabs__list-item:before {
-        color: #000
-    }
-}
-
-.govuk-tabs__tab {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    text-decoration: underline;
-    display: inline-block;
-    margin-bottom: 10px
-}
-
-@media print {
-    .govuk-tabs__tab {
-        font-family: sans-serif
-    }
-}
-
-.govuk-tabs__tab:focus {
-    outline: 3px solid transparent;
-    background-color: #fd0;
-    box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
-    text-decoration: none;
-    -webkit-box-decoration-break: clone;
-    box-decoration-break: clone
-}
-
-.govuk-tabs__tab:link {
-    color: #1d70b8
-}
-
-.govuk-tabs__tab:visited {
-    color: #4c2c92
-}
-
-.govuk-tabs__tab:hover {
-    color: #003078
-}
-
-.govuk-tabs__tab:active,
-.govuk-tabs__tab:focus {
-    color: #0b0c0c
-}
-
-.govuk-tabs__panel {
-    margin-bottom: 30px
-}
-
-@media (min-width:40.0625em) {
-    .govuk-tabs__panel {
-        margin-bottom: 50px
-    }
-
-    .js-enabled .govuk-tabs__list {
-        margin-bottom: 0;
-        border-bottom: 1px solid #b1b4b6
-    }
-
-    .js-enabled .govuk-tabs__list:after {
-        content: "";
-        display: block;
-        clear: both
-    }
-
-    .js-enabled .govuk-tabs__title {
-        display: none
-    }
-
-    .js-enabled .govuk-tabs__list-item {
-        position: relative;
-        margin-right: 5px;
-        margin-bottom: 0;
-        margin-left: 0;
-        padding: 10px 20px;
-        float: left;
-        background-color: #f3f2f1;
-        text-align: center
-    }
-
-    .js-enabled .govuk-tabs__list-item:before {
-        content: none
-    }
-
-    .js-enabled .govuk-tabs__list-item--selected {
-        position: relative;
-        margin-top: -5px;
-        margin-bottom: -1px;
-        padding: 14px 19px 16px;
-        border: 1px solid #b1b4b6;
-        border-bottom: 0;
-        background-color: #fff
-    }
-
-    .js-enabled .govuk-tabs__list-item--selected .govuk-tabs__tab {
-        text-decoration: none
-    }
-
-    .js-enabled .govuk-tabs__tab {
-        margin-bottom: 0
-    }
-
-    .js-enabled .govuk-tabs__tab:link,
-    .js-enabled .govuk-tabs__tab:visited {
-        color: #0b0c0c
-    }
-}
-
-@media print and (min-width:40.0625em) {
-
-    .js-enabled .govuk-tabs__tab:link,
-    .js-enabled .govuk-tabs__tab:visited {
-        color: #000
-    }
-}
-
-@media (min-width:40.0625em) {
-    .js-enabled .govuk-tabs__tab:hover {
-        color: rgba(11, 12, 12, .99)
-    }
-
-    .js-enabled .govuk-tabs__tab:active,
-    .js-enabled .govuk-tabs__tab:focus {
-        color: #0b0c0c
-    }
-}
-
-@media print and (min-width:40.0625em) {
-
-    .js-enabled .govuk-tabs__tab:active,
-    .js-enabled .govuk-tabs__tab:focus {
-        color: #000
-    }
-}
-
-@media (min-width:40.0625em) {
-    .js-enabled .govuk-tabs__tab:after {
-        content: "";
-        position: absolute;
-        top: 0;
-        right: 0;
-        bottom: 0;
-        left: 0
-    }
-
-    .js-enabled .govuk-tabs__panel {
-        margin-bottom: 0;
-        padding: 30px 20px;
-        border: 1px solid #b1b4b6;
-        border-top: 0
-    }
-
-    .js-enabled .govuk-tabs__panel>:last-child {
-        margin-bottom: 0
-    }
-
-    .js-enabled .govuk-tabs__panel--hidden {
-        display: none
-    }
-}
-
-.govuk-radios__item {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 400;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
-    display: block;
-    position: relative;
-    min-height: 40px;
-    margin-bottom: 10px;
-    padding-left: 40px;
-    clear: left
-}
-
-@media print {
-    .govuk-radios__item {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-radios__item {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-radios__item {
-        font-size: 14pt;
-        line-height: 1.15
-    }
-}
-
-.govuk-radios__item:last-child,
-.govuk-radios__item:last-of-type {
-    margin-bottom: 0
+.govuk-radios__item:last-child,
+.govuk-radios__item:last-of-type {
+    margin-bottom: 0
 }
 
 .govuk-radios__input {
-    cursor: pointer;
     position: absolute;
     z-index: 1;
     top: -2px;
@@ -5438,7 +4874,8 @@ only screen and (min-resolution:2dppx) {
     width: 44px;
     height: 44px;
     margin: 0;
-    opacity: 0
+    opacity: 0;
+    cursor: pointer
 }
 
 .govuk-radios__label {
@@ -5446,7 +4883,6 @@ only screen and (min-resolution:2dppx) {
     margin-bottom: 0;
     padding: 8px 15px 5px;
     cursor: pointer;
-    -ms-touch-action: manipulation;
     touch-action: manipulation
 }
 
@@ -5460,7 +4896,7 @@ only screen and (min-resolution:2dppx) {
     height: 40px;
     border: 2px solid;
     border-radius: 50%;
-    background: transparent
+    background: #0000
 }
 
 .govuk-radios__label:after {
@@ -5484,7 +4920,7 @@ only screen and (min-resolution:2dppx) {
 
 .govuk-radios__input:focus+.govuk-radios__label:before {
     border-width: 4px;
-    outline: 3px solid transparent;
+    outline: 3px solid #0000;
     outline-offset: 1px;
     box-shadow: 0 0 0 4px #fd0
 }
@@ -5529,7 +4965,6 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -5546,7 +4981,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-radios__divider {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -5573,7 +5007,7 @@ screen and (forced-colors:active) {
     }
 }
 
-.js-enabled .govuk-radios__conditional--hidden {
+.govuk-frontend-supported .govuk-radios__conditional--hidden {
     display: none
 }
 
@@ -5640,11 +5074,20 @@ screen and (forced-colors:active) {
 }
 
 .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before {
+    outline: 4px dashed #0000;
+    outline-offset: 1px;
     box-shadow: 0 0 0 10px #b1b4b6
 }
 
 .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before {
-    box-shadow: 0 0 0 4px #fd0, 0 0 0 10px #b1b4b6
+    box-shadow: 0 0 0 4px 0 0 0 10px #fd0 #b1b4b6
+}
+
+@media (-ms-high-contrast:active),
+screen and (forced-colors:active) {
+    .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before {
+        outline-color: Highlight
+    }
 }
 
 @media (hover:none),
@@ -5663,13 +5106,11 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     box-sizing: border-box;
     min-width: 11.5em;
     max-width: 100%;
-    height: 40px;
     height: 2.5rem;
     padding: 5px;
     border: 2px solid #0b0c0c;
@@ -5685,7 +5126,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-select {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.25
     }
@@ -5735,11 +5175,15 @@ screen and (forced-colors:active) {
     -webkit-clip-path: inset(50%) !important;
     clip-path: inset(50%) !important;
     white-space: nowrap !important;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     text-decoration: underline;
-    font-size: 14px;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em;
     font-size: .875rem;
     line-height: 1.1428571429;
     display: block;
@@ -5756,7 +5200,10 @@ screen and (forced-colors:active) {
     clip: auto !important;
     -webkit-clip-path: none !important;
     clip-path: none !important;
-    white-space: inherit !important
+    white-space: inherit !important;
+    -webkit-user-select: text;
+    -ms-user-select: text;
+    user-select: text
 }
 
 @media print {
@@ -5779,7 +5226,7 @@ screen and (forced-colors:active) {
 }
 
 .govuk-skip-link:hover {
-    color: rgba(11, 12, 12, .99)
+    color: #0b0c0cfc
 }
 
 .govuk-skip-link:active,
@@ -5797,7 +5244,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-skip-link {
-        font-size: 16px;
         font-size: 1rem;
         line-height: 1.25
     }
@@ -5832,7 +5278,6 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -5847,7 +5292,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-summary-list {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -5924,7 +5368,6 @@ screen and (forced-colors:active) {
 @media (min-width:40.0625em) {
     .govuk-summary-list__actions {
         width: 20%;
-        padding-right: 0;
         text-align: right
     }
 }
@@ -5973,10 +5416,7 @@ screen and (forced-colors:active) {
 @media (max-width:40.0525em) {
     .govuk-summary-list__actions-list-item {
         margin-right: 10px;
-        padding-right: 10px
-    }
-
-    .govuk-summary-list__actions-list-item:not(:last-child) {
+        padding-right: 10px;
         border-right: 1px solid #b1b4b6
     }
 
@@ -6004,6 +5444,10 @@ screen and (forced-colors:active) {
     }
 }
 
+.govuk-summary-list__actions-list-item .govuk-link:focus {
+    isolation: isolate
+}
+
 .govuk-summary-list--no-border .govuk-summary-list__row {
     border: 0
 }
@@ -6043,17 +5487,14 @@ screen and (forced-colors:active) {
 
 .govuk-summary-card__title-wrapper {
     padding: 15px;
-    border-bottom: 1px solid transparent;
+    border-bottom: 1px solid #0000;
     background-color: #f3f2f1
 }
 
 @media (min-width:40.0625em) {
     .govuk-summary-card__title-wrapper {
-        display: -ms-flexbox;
         display: flex;
-        -ms-flex-pack: justify;
         justify-content: space-between;
-        -ms-flex-wrap: nowrap;
         flex-wrap: nowrap;
         padding: 15px 20px
     }
@@ -6064,9 +5505,9 @@ screen and (forced-colors:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
+    color: #0b0c0c;
     margin: 5px 20px 10px 0
 }
 
@@ -6078,7 +5519,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-summary-card__title {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -6087,7 +5527,8 @@ screen and (forced-colors:active) {
 @media print {
     .govuk-summary-card__title {
         font-size: 14pt;
-        line-height: 1.15
+        line-height: 1.15;
+        color: #000
     }
 }
 
@@ -6098,16 +5539,10 @@ screen and (forced-colors:active) {
 }
 
 .govuk-summary-card__actions {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
-    display: -ms-flexbox;
+    font-weight: 700;
     display: flex;
-    -ms-flex-wrap: wrap;
     flex-wrap: wrap;
     row-gap: 10px;
     margin: 5px 0;
@@ -6115,15 +5550,8 @@ screen and (forced-colors:active) {
     list-style: none
 }
 
-@media print {
-    .govuk-summary-card__actions {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-summary-card__actions {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -6138,7 +5566,6 @@ screen and (forced-colors:active) {
 
 @media (min-width:40.0625em) {
     .govuk-summary-card__actions {
-        -ms-flex-pack: right;
         justify-content: right;
         text-align: right
     }
@@ -6207,7 +5634,6 @@ screen and (-ms-high-contrast:active) {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     font-weight: 400;
-    font-size: 16px;
     font-size: 1rem;
     line-height: 1.25;
     color: #0b0c0c;
@@ -6225,7 +5651,6 @@ screen and (-ms-high-contrast:active) {
 
 @media (min-width:40.0625em) {
     .govuk-table {
-        font-size: 19px;
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
@@ -6296,26 +5721,19 @@ screen and (-ms-high-contrast:active) {
     text-align: left
 }
 
+.govuk-table__caption--l,
+.govuk-table__caption--m,
 .govuk-table__caption--xl {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 32px;
-    font-size: 2rem;
-    line-height: 1.09375;
     margin-bottom: 15px
 }
 
-@media print {
-    .govuk-table__caption--xl {
-        font-family: sans-serif
-    }
-}
-
+.govuk-table__caption--xl {
+    font-size: 2rem;
+    line-height: 1.09375
+}
+
 @media (min-width:40.0625em) {
     .govuk-table__caption--xl {
-        font-size: 48px;
         font-size: 3rem;
         line-height: 1.0416666667
     }
@@ -6329,25 +5747,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-table__caption--l {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 24px;
     font-size: 1.5rem;
-    line-height: 1.0416666667;
-    margin-bottom: 15px
-}
-
-@media print {
-    .govuk-table__caption--l {
-        font-family: sans-serif
-    }
+    line-height: 1.0416666667
 }
 
 @media (min-width:40.0625em) {
     .govuk-table__caption--l {
-        font-size: 36px;
         font-size: 2.25rem;
         line-height: 1.1111111111
     }
@@ -6361,103 +5766,421 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-table__caption--m {
+    font-size: 1.125rem;
+    line-height: 1.1111111111
+}
+
+@media (min-width:40.0625em) {
+    .govuk-table__caption--m {
+        font-size: 1.5rem;
+        line-height: 1.25
+    }
+}
+
+@media print {
+    .govuk-table__caption--m {
+        font-size: 18pt;
+        line-height: 1.15
+    }
+}
+
+.govuk-tabs {
+    margin-top: 5px;
+    margin-bottom: 20px;
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 18px;
-    font-size: 1.125rem;
-    line-height: 1.1111111111;
-    margin-bottom: 15px
+    font-weight: 400;
+    font-size: 1rem;
+    line-height: 1.25
+}
+
+@media (min-width:40.0625em) {
+    .govuk-tabs {
+        margin-bottom: 30px
+    }
 }
 
 @media print {
-    .govuk-table__caption--m {
+    .govuk-tabs {
         font-family: sans-serif
     }
 }
 
 @media (min-width:40.0625em) {
-    .govuk-table__caption--m {
-        font-size: 24px;
-        font-size: 1.5rem;
-        line-height: 1.25
+    .govuk-tabs {
+        font-size: 1.1875rem;
+        line-height: 1.3157894737
     }
 }
 
 @media print {
-    .govuk-table__caption--m {
-        font-size: 18pt;
+    .govuk-tabs {
+        font-size: 14pt;
         line-height: 1.15
     }
 }
 
-.govuk-table__caption--s {
+.govuk-tabs__title {
+    font-size: 1rem;
+    line-height: 1.25;
+    font-weight: 400;
+    color: #0b0c0c;
+    margin-bottom: 10px
+}
+
+@media (min-width:40.0625em) {
+    .govuk-tabs__title {
+        font-size: 1.1875rem;
+        line-height: 1.3157894737
+    }
+}
+
+@media print {
+    .govuk-tabs__title {
+        font-size: 14pt;
+        line-height: 1.15;
+        color: #000
+    }
+}
+
+.govuk-tabs__list {
+    padding: 0;
+    list-style: none;
+    margin: 0 0 20px
+}
+
+@media (min-width:40.0625em) {
+    .govuk-tabs__list {
+        margin-bottom: 30px
+    }
+}
+
+.govuk-tabs__list-item {
+    margin-left: 25px
+}
+
+.govuk-tabs__list-item:before {
+    color: #0b0c0c;
+    content: "—";
+    margin-left: -25px;
+    padding-right: 5px
+}
+
+@media print {
+    .govuk-tabs__list-item:before {
+        color: #000
+    }
+}
+
+.govuk-tabs__tab {
     font-family: GDS Transport, arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 16px;
+    text-decoration: underline;
+    text-decoration-thickness: max(1px, .0625rem);
+    text-underline-offset: .1578em;
+    display: inline-block;
+    margin-bottom: 10px
+}
+
+@media print {
+    .govuk-tabs__tab {
+        font-family: sans-serif
+    }
+}
+
+.govuk-tabs__tab:hover {
+    text-decoration-thickness: max(3px, .1875rem, .12em);
+    -webkit-text-decoration-skip-ink: none;
+    text-decoration-skip-ink: none;
+    -webkit-text-decoration-skip: none;
+    text-decoration-skip: none
+}
+
+.govuk-tabs__tab:focus {
+    outline: 3px solid #0000;
+    background-color: #fd0;
+    box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
+    text-decoration: none;
+    -webkit-box-decoration-break: clone;
+    box-decoration-break: clone
+}
+
+.govuk-tabs__tab:link {
+    color: #1d70b8
+}
+
+.govuk-tabs__tab:visited {
+    color: #4c2c92
+}
+
+.govuk-tabs__tab:hover {
+    color: #003078
+}
+
+.govuk-tabs__tab:active,
+.govuk-tabs__tab:focus {
+    color: #0b0c0c
+}
+
+.govuk-tabs__panel {
+    margin-bottom: 30px
+}
+
+@media (min-width:40.0625em) {
+    .govuk-tabs__panel {
+        margin-bottom: 50px
+    }
+
+    .govuk-frontend-supported .govuk-tabs__list {
+        margin-bottom: 0;
+        border-bottom: 1px solid #b1b4b6
+    }
+
+    .govuk-frontend-supported .govuk-tabs__list:after {
+        content: "";
+        display: block;
+        clear: both
+    }
+
+    .govuk-frontend-supported .govuk-tabs__title {
+        display: none
+    }
+
+    .govuk-frontend-supported .govuk-tabs__list-item {
+        position: relative;
+        margin-right: 5px;
+        margin-bottom: 0;
+        margin-left: 0;
+        padding: 10px 20px;
+        float: left;
+        background-color: #f3f2f1;
+        text-align: center
+    }
+
+    .govuk-frontend-supported .govuk-tabs__list-item:before {
+        content: none
+    }
+
+    .govuk-frontend-supported .govuk-tabs__list-item--selected {
+        position: relative;
+        margin-top: -5px;
+        margin-bottom: -1px;
+        padding: 14px 19px 16px;
+        border: 1px solid #b1b4b6;
+        border-bottom: 0;
+        background-color: #fff
+    }
+
+    .govuk-frontend-supported .govuk-tabs__list-item--selected .govuk-tabs__tab {
+        text-decoration: none
+    }
+
+    .govuk-frontend-supported .govuk-tabs__tab {
+        margin-bottom: 0
+    }
+
+    .govuk-frontend-supported .govuk-tabs__tab:link,
+    .govuk-frontend-supported .govuk-tabs__tab:visited {
+        color: #0b0c0c
+    }
+}
+
+@media print and (min-width:40.0625em) {
+
+    .govuk-frontend-supported .govuk-tabs__tab:link,
+    .govuk-frontend-supported .govuk-tabs__tab:visited {
+        color: #000
+    }
+}
+
+@media (min-width:40.0625em) {
+    .govuk-frontend-supported .govuk-tabs__tab:hover {
+        color: #0b0c0cfc
+    }
+
+    .govuk-frontend-supported .govuk-tabs__tab:active,
+    .govuk-frontend-supported .govuk-tabs__tab:focus {
+        color: #0b0c0c
+    }
+}
+
+@media print and (min-width:40.0625em) {
+
+    .govuk-frontend-supported .govuk-tabs__tab:active,
+    .govuk-frontend-supported .govuk-tabs__tab:focus {
+        color: #000
+    }
+}
+
+@media (min-width:40.0625em) {
+    .govuk-frontend-supported .govuk-tabs__tab:after {
+        content: "";
+        position: absolute;
+        top: 0;
+        right: 0;
+        bottom: 0;
+        left: 0
+    }
+
+    .govuk-frontend-supported .govuk-tabs__panel {
+        margin-bottom: 0;
+        padding: 30px 20px;
+        border: 1px solid #b1b4b6;
+        border-top: 0
+    }
+
+    .govuk-frontend-supported .govuk-tabs__panel>:last-child {
+        margin-bottom: 0
+    }
+
+    .govuk-frontend-supported .govuk-tabs__panel--hidden {
+        display: none
+    }
+}
+
+.govuk-task-list {
+    font-family: GDS Transport, arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    font-weight: 400;
     font-size: 1rem;
-    line-height: 1.25
+    line-height: 1.25;
+    margin-top: 0;
+    margin-bottom: 20px;
+    padding: 0;
+    list-style-type: none
 }
 
 @media print {
-    .govuk-table__caption--s {
+    .govuk-task-list {
         font-family: sans-serif
     }
 }
 
 @media (min-width:40.0625em) {
-    .govuk-table__caption--s {
-        font-size: 19px;
+    .govuk-task-list {
         font-size: 1.1875rem;
         line-height: 1.3157894737
     }
 }
 
 @media print {
-    .govuk-table__caption--s {
+    .govuk-task-list {
         font-size: 14pt;
         line-height: 1.15
     }
 }
 
-.govuk-warning-text {
+@media (min-width:40.0625em) {
+    .govuk-task-list {
+        margin-bottom: 30px
+    }
+}
+
+.govuk-task-list__item {
+    display: table;
     position: relative;
+    width: 100%;
+    margin-bottom: 0;
+    padding-top: 10px;
+    padding-bottom: 10px;
+    border-bottom: 1px solid #b1b4b6
+}
+
+.govuk-task-list__item:first-child {
+    border-top: 1px solid #b1b4b6
+}
+
+.govuk-task-list__item--with-link:hover {
+    background: #f3f2f1
+}
+
+.govuk-task-list__name-and-hint {
+    display: table-cell;
+    vertical-align: top;
+    color: #0b0c0c
+}
+
+@media print {
+    .govuk-task-list__name-and-hint {
+        color: #000
+    }
+}
+
+.govuk-task-list__status {
+    display: table-cell;
+    padding-left: 10px;
+    text-align: right;
+    vertical-align: top;
+    color: #0b0c0c
+}
+
+@media print {
+    .govuk-task-list__status {
+        color: #000
+    }
+}
+
+.govuk-task-list__status--cannot-start-yet {
+    color: #505a5f
+}
+
+.govuk-task-list__link:after {
+    content: "";
+    display: block;
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0
+}
+
+.govuk-task-list__hint {
+    margin-top: 5px;
+    color: #505a5f
+}
+
+.govuk-warning-text {
+    font-family: GDS Transport, arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    font-weight: 400;
+    font-size: 1rem;
+    line-height: 1.25;
     margin-bottom: 20px;
+    position: relative;
     padding: 10px 0
 }
 
+@media print {
+    .govuk-warning-text {
+        font-family: sans-serif
+    }
+}
+
 @media (min-width:40.0625em) {
     .govuk-warning-text {
-        margin-bottom: 30px
+        font-size: 1.1875rem;
+        line-height: 1.3157894737
     }
 }
 
-.govuk-warning-text__assistive {
-    position: absolute !important;
-    width: 1px !important;
-    height: 1px !important;
-    margin: 0 !important;
-    padding: 0 !important;
-    overflow: hidden !important;
-    clip: rect(0 0 0 0) !important;
-    -webkit-clip-path: inset(50%) !important;
-    clip-path: inset(50%) !important;
-    border: 0 !important;
-    white-space: nowrap !important
+@media print {
+    .govuk-warning-text {
+        font-size: 14pt;
+        line-height: 1.15
+    }
 }
 
-.govuk-warning-text__assistive:after,
-.govuk-warning-text__assistive:before {
-    content: " "
+@media (min-width:40.0625em) {
+    .govuk-warning-text {
+        margin-bottom: 30px
+    }
 }
 
 .govuk-warning-text__icon {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
     font-weight: 700;
     box-sizing: border-box;
     display: inline-block;
@@ -6479,12 +6202,6 @@ screen and (-ms-high-contrast:active) {
     forced-color-adjust: none
 }
 
-@media print {
-    .govuk-warning-text__icon {
-        font-family: sans-serif
-    }
-}
-
 @media (min-width:40.0625em) {
     .govuk-warning-text__icon {
         margin-top: -5px
@@ -6495,18 +6212,11 @@ screen and (-ms-high-contrast:active) {
     .govuk-warning-text__icon {
         border-color: windowText;
         color: windowText;
-        background: transparent
+        background: #0000
     }
 }
 
 .govuk-warning-text__text {
-    font-family: GDS Transport, arial, sans-serif;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-    font-weight: 700;
-    font-size: 16px;
-    font-size: 1rem;
-    line-height: 1.25;
     color: #0b0c0c;
     display: block;
     padding-left: 45px
@@ -6514,22 +6224,6 @@ screen and (-ms-high-contrast:active) {
 
 @media print {
     .govuk-warning-text__text {
-        font-family: sans-serif
-    }
-}
-
-@media (min-width:40.0625em) {
-    .govuk-warning-text__text {
-        font-size: 19px;
-        font-size: 1.1875rem;
-        line-height: 1.3157894737
-    }
-}
-
-@media print {
-    .govuk-warning-text__text {
-        font-size: 14pt;
-        line-height: 1.15;
         color: #000
     }
 }
@@ -6551,7 +6245,10 @@ screen and (-ms-high-contrast:active) {
     -webkit-clip-path: inset(50%) !important;
     clip-path: inset(50%) !important;
     border: 0 !important;
-    white-space: nowrap !important
+    white-space: nowrap !important;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none
 }
 
 .govuk-visually-hidden:after,
@@ -6568,7 +6265,10 @@ screen and (-ms-high-contrast:active) {
     clip: rect(0 0 0 0) !important;
     -webkit-clip-path: inset(50%) !important;
     clip-path: inset(50%) !important;
-    white-space: nowrap !important
+    white-space: nowrap !important;
+    -webkit-user-select: none;
+    -ms-user-select: none;
+    user-select: none
 }
 
 .govuk-visually-hidden-focusable:active,
@@ -6581,7 +6281,10 @@ screen and (-ms-high-contrast:active) {
     clip: auto !important;
     -webkit-clip-path: none !important;
     clip-path: none !important;
-    white-space: inherit !important
+    white-space: inherit !important;
+    -webkit-user-select: text;
+    -ms-user-select: text;
+    user-select: text
 }
 
 .govuk-\!-display-inline {
@@ -7366,502 +7069,402 @@ screen and (-ms-high-contrast:active) {
     }
 }
 
-.govuk-\!-margin-static-0,
 .govuk-\!-static-margin-0 {
     margin: 0 !important
 }
 
-.govuk-\!-margin-top-static-0,
 .govuk-\!-static-margin-top-0 {
     margin-top: 0 !important
 }
 
-.govuk-\!-margin-right-static-0,
 .govuk-\!-static-margin-right-0 {
     margin-right: 0 !important
 }
 
-.govuk-\!-margin-bottom-static-0,
 .govuk-\!-static-margin-bottom-0 {
     margin-bottom: 0 !important
 }
 
-.govuk-\!-margin-left-static-0,
 .govuk-\!-static-margin-left-0 {
     margin-left: 0 !important
 }
 
-.govuk-\!-margin-static-1,
 .govuk-\!-static-margin-1 {
     margin: 5px !important
 }
 
-.govuk-\!-margin-top-static-1,
 .govuk-\!-static-margin-top-1 {
     margin-top: 5px !important
 }
 
-.govuk-\!-margin-right-static-1,
 .govuk-\!-static-margin-right-1 {
     margin-right: 5px !important
 }
 
-.govuk-\!-margin-bottom-static-1,
 .govuk-\!-static-margin-bottom-1 {
     margin-bottom: 5px !important
 }
 
-.govuk-\!-margin-left-static-1,
 .govuk-\!-static-margin-left-1 {
     margin-left: 5px !important
 }
 
-.govuk-\!-margin-static-2,
 .govuk-\!-static-margin-2 {
     margin: 10px !important
 }
 
-.govuk-\!-margin-top-static-2,
 .govuk-\!-static-margin-top-2 {
     margin-top: 10px !important
 }
 
-.govuk-\!-margin-right-static-2,
 .govuk-\!-static-margin-right-2 {
     margin-right: 10px !important
 }
 
-.govuk-\!-margin-bottom-static-2,
 .govuk-\!-static-margin-bottom-2 {
     margin-bottom: 10px !important
 }
 
-.govuk-\!-margin-left-static-2,
 .govuk-\!-static-margin-left-2 {
     margin-left: 10px !important
 }
 
-.govuk-\!-margin-static-3,
 .govuk-\!-static-margin-3 {
     margin: 15px !important
 }
 
-.govuk-\!-margin-top-static-3,
 .govuk-\!-static-margin-top-3 {
     margin-top: 15px !important
 }
 
-.govuk-\!-margin-right-static-3,
 .govuk-\!-static-margin-right-3 {
     margin-right: 15px !important
 }
 
-.govuk-\!-margin-bottom-static-3,
 .govuk-\!-static-margin-bottom-3 {
     margin-bottom: 15px !important
 }
 
-.govuk-\!-margin-left-static-3,
 .govuk-\!-static-margin-left-3 {
     margin-left: 15px !important
 }
 
-.govuk-\!-margin-static-4,
 .govuk-\!-static-margin-4 {
     margin: 20px !important
 }
 
-.govuk-\!-margin-top-static-4,
 .govuk-\!-static-margin-top-4 {
     margin-top: 20px !important
 }
 
-.govuk-\!-margin-right-static-4,
 .govuk-\!-static-margin-right-4 {
     margin-right: 20px !important
 }
 
-.govuk-\!-margin-bottom-static-4,
 .govuk-\!-static-margin-bottom-4 {
     margin-bottom: 20px !important
 }
 
-.govuk-\!-margin-left-static-4,
 .govuk-\!-static-margin-left-4 {
     margin-left: 20px !important
 }
 
-.govuk-\!-margin-static-5,
 .govuk-\!-static-margin-5 {
     margin: 25px !important
 }
 
-.govuk-\!-margin-top-static-5,
 .govuk-\!-static-margin-top-5 {
     margin-top: 25px !important
 }
 
-.govuk-\!-margin-right-static-5,
 .govuk-\!-static-margin-right-5 {
     margin-right: 25px !important
 }
 
-.govuk-\!-margin-bottom-static-5,
 .govuk-\!-static-margin-bottom-5 {
     margin-bottom: 25px !important
 }
 
-.govuk-\!-margin-left-static-5,
 .govuk-\!-static-margin-left-5 {
     margin-left: 25px !important
 }
 
-.govuk-\!-margin-static-6,
 .govuk-\!-static-margin-6 {
     margin: 30px !important
 }
 
-.govuk-\!-margin-top-static-6,
 .govuk-\!-static-margin-top-6 {
     margin-top: 30px !important
 }
 
-.govuk-\!-margin-right-static-6,
 .govuk-\!-static-margin-right-6 {
     margin-right: 30px !important
 }
 
-.govuk-\!-margin-bottom-static-6,
 .govuk-\!-static-margin-bottom-6 {
     margin-bottom: 30px !important
 }
 
-.govuk-\!-margin-left-static-6,
 .govuk-\!-static-margin-left-6 {
     margin-left: 30px !important
 }
 
-.govuk-\!-margin-static-7,
 .govuk-\!-static-margin-7 {
     margin: 40px !important
 }
 
-.govuk-\!-margin-top-static-7,
 .govuk-\!-static-margin-top-7 {
     margin-top: 40px !important
 }
 
-.govuk-\!-margin-right-static-7,
 .govuk-\!-static-margin-right-7 {
     margin-right: 40px !important
 }
 
-.govuk-\!-margin-bottom-static-7,
 .govuk-\!-static-margin-bottom-7 {
     margin-bottom: 40px !important
 }
 
-.govuk-\!-margin-left-static-7,
 .govuk-\!-static-margin-left-7 {
     margin-left: 40px !important
 }
 
-.govuk-\!-margin-static-8,
 .govuk-\!-static-margin-8 {
     margin: 50px !important
 }
 
-.govuk-\!-margin-top-static-8,
 .govuk-\!-static-margin-top-8 {
     margin-top: 50px !important
 }
 
-.govuk-\!-margin-right-static-8,
 .govuk-\!-static-margin-right-8 {
     margin-right: 50px !important
 }
 
-.govuk-\!-margin-bottom-static-8,
 .govuk-\!-static-margin-bottom-8 {
     margin-bottom: 50px !important
 }
 
-.govuk-\!-margin-left-static-8,
 .govuk-\!-static-margin-left-8 {
     margin-left: 50px !important
 }
 
-.govuk-\!-margin-static-9,
 .govuk-\!-static-margin-9 {
     margin: 60px !important
 }
 
-.govuk-\!-margin-top-static-9,
 .govuk-\!-static-margin-top-9 {
     margin-top: 60px !important
 }
 
-.govuk-\!-margin-right-static-9,
 .govuk-\!-static-margin-right-9 {
     margin-right: 60px !important
 }
 
-.govuk-\!-margin-bottom-static-9,
 .govuk-\!-static-margin-bottom-9 {
     margin-bottom: 60px !important
 }
 
-.govuk-\!-margin-left-static-9,
 .govuk-\!-static-margin-left-9 {
     margin-left: 60px !important
 }
 
-.govuk-\!-padding-static-0,
 .govuk-\!-static-padding-0 {
     padding: 0 !important
 }
 
-.govuk-\!-padding-top-static-0,
 .govuk-\!-static-padding-top-0 {
     padding-top: 0 !important
 }
 
-.govuk-\!-padding-right-static-0,
 .govuk-\!-static-padding-right-0 {
     padding-right: 0 !important
 }
 
-.govuk-\!-padding-bottom-static-0,
 .govuk-\!-static-padding-bottom-0 {
     padding-bottom: 0 !important
 }
 
-.govuk-\!-padding-left-static-0,
 .govuk-\!-static-padding-left-0 {
     padding-left: 0 !important
 }
 
-.govuk-\!-padding-static-1,
 .govuk-\!-static-padding-1 {
     padding: 5px !important
 }
 
-.govuk-\!-padding-top-static-1,
 .govuk-\!-static-padding-top-1 {
     padding-top: 5px !important
 }
 
-.govuk-\!-padding-right-static-1,
 .govuk-\!-static-padding-right-1 {
     padding-right: 5px !important
 }
 
-.govuk-\!-padding-bottom-static-1,
 .govuk-\!-static-padding-bottom-1 {
     padding-bottom: 5px !important
 }
 
-.govuk-\!-padding-left-static-1,
 .govuk-\!-static-padding-left-1 {
     padding-left: 5px !important
 }
 
-.govuk-\!-padding-static-2,
 .govuk-\!-static-padding-2 {
     padding: 10px !important
 }
 
-.govuk-\!-padding-top-static-2,
 .govuk-\!-static-padding-top-2 {
     padding-top: 10px !important
 }
 
-.govuk-\!-padding-right-static-2,
 .govuk-\!-static-padding-right-2 {
     padding-right: 10px !important
 }
 
-.govuk-\!-padding-bottom-static-2,
 .govuk-\!-static-padding-bottom-2 {
     padding-bottom: 10px !important
 }
 
-.govuk-\!-padding-left-static-2,
 .govuk-\!-static-padding-left-2 {
     padding-left: 10px !important
 }
 
-.govuk-\!-padding-static-3,
 .govuk-\!-static-padding-3 {
     padding: 15px !important
 }
 
-.govuk-\!-padding-top-static-3,
 .govuk-\!-static-padding-top-3 {
     padding-top: 15px !important
 }
 
-.govuk-\!-padding-right-static-3,
 .govuk-\!-static-padding-right-3 {
     padding-right: 15px !important
 }
 
-.govuk-\!-padding-bottom-static-3,
 .govuk-\!-static-padding-bottom-3 {
     padding-bottom: 15px !important
 }
 
-.govuk-\!-padding-left-static-3,
 .govuk-\!-static-padding-left-3 {
     padding-left: 15px !important
 }
 
-.govuk-\!-padding-static-4,
 .govuk-\!-static-padding-4 {
     padding: 20px !important
 }
 
-.govuk-\!-padding-top-static-4,
 .govuk-\!-static-padding-top-4 {
     padding-top: 20px !important
 }
 
-.govuk-\!-padding-right-static-4,
 .govuk-\!-static-padding-right-4 {
     padding-right: 20px !important
 }
 
-.govuk-\!-padding-bottom-static-4,
 .govuk-\!-static-padding-bottom-4 {
     padding-bottom: 20px !important
 }
 
-.govuk-\!-padding-left-static-4,
 .govuk-\!-static-padding-left-4 {
     padding-left: 20px !important
 }
 
-.govuk-\!-padding-static-5,
 .govuk-\!-static-padding-5 {
     padding: 25px !important
 }
 
-.govuk-\!-padding-top-static-5,
 .govuk-\!-static-padding-top-5 {
     padding-top: 25px !important
 }
 
-.govuk-\!-padding-right-static-5,
 .govuk-\!-static-padding-right-5 {
     padding-right: 25px !important
 }
 
-.govuk-\!-padding-bottom-static-5,
 .govuk-\!-static-padding-bottom-5 {
     padding-bottom: 25px !important
 }
 
-.govuk-\!-padding-left-static-5,
 .govuk-\!-static-padding-left-5 {
     padding-left: 25px !important
 }
 
-.govuk-\!-padding-static-6,
 .govuk-\!-static-padding-6 {
     padding: 30px !important
 }
 
-.govuk-\!-padding-top-static-6,
 .govuk-\!-static-padding-top-6 {
     padding-top: 30px !important
 }
 
-.govuk-\!-padding-right-static-6,
 .govuk-\!-static-padding-right-6 {
     padding-right: 30px !important
 }
 
-.govuk-\!-padding-bottom-static-6,
 .govuk-\!-static-padding-bottom-6 {
     padding-bottom: 30px !important
 }
 
-.govuk-\!-padding-left-static-6,
 .govuk-\!-static-padding-left-6 {
     padding-left: 30px !important
 }
 
-.govuk-\!-padding-static-7,
 .govuk-\!-static-padding-7 {
     padding: 40px !important
 }
 
-.govuk-\!-padding-top-static-7,
 .govuk-\!-static-padding-top-7 {
     padding-top: 40px !important
 }
 
-.govuk-\!-padding-right-static-7,
 .govuk-\!-static-padding-right-7 {
     padding-right: 40px !important
 }
 
-.govuk-\!-padding-bottom-static-7,
 .govuk-\!-static-padding-bottom-7 {
     padding-bottom: 40px !important
 }
 
-.govuk-\!-padding-left-static-7,
 .govuk-\!-static-padding-left-7 {
     padding-left: 40px !important
 }
 
-.govuk-\!-padding-static-8,
 .govuk-\!-static-padding-8 {
     padding: 50px !important
 }
 
-.govuk-\!-padding-top-static-8,
 .govuk-\!-static-padding-top-8 {
     padding-top: 50px !important
 }
 
-.govuk-\!-padding-right-static-8,
 .govuk-\!-static-padding-right-8 {
     padding-right: 50px !important
 }
 
-.govuk-\!-padding-bottom-static-8,
 .govuk-\!-static-padding-bottom-8 {
     padding-bottom: 50px !important
 }
 
-.govuk-\!-padding-left-static-8,
 .govuk-\!-static-padding-left-8 {
     padding-left: 50px !important
 }
 
-.govuk-\!-padding-static-9,
 .govuk-\!-static-padding-9 {
     padding: 60px !important
 }
 
-.govuk-\!-padding-top-static-9,
 .govuk-\!-static-padding-top-9 {
     padding-top: 60px !important
 }
 
-.govuk-\!-padding-right-static-9,
 .govuk-\!-static-padding-right-9 {
     padding-right: 60px !important
 }
 
-.govuk-\!-padding-bottom-static-9,
 .govuk-\!-static-padding-bottom-9 {
     padding-bottom: 60px !important
 }
 
-.govuk-\!-padding-left-static-9,
 .govuk-\!-static-padding-left-9 {
     padding-left: 60px !important
 }
@@ -7879,14 +7482,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-80 {
-    font-size: 53px !important;
     font-size: 3.3125rem !important;
     line-height: 1.0377358491 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-80 {
-        font-size: 80px !important;
         font-size: 5rem !important;
         line-height: 1 !important
     }
@@ -7900,14 +7501,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-48 {
-    font-size: 32px !important;
     font-size: 2rem !important;
     line-height: 1.09375 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-48 {
-        font-size: 48px !important;
         font-size: 3rem !important;
         line-height: 1.0416666667 !important
     }
@@ -7921,14 +7520,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-36 {
-    font-size: 24px !important;
     font-size: 1.5rem !important;
     line-height: 1.0416666667 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-36 {
-        font-size: 36px !important;
         font-size: 2.25rem !important;
         line-height: 1.1111111111 !important
     }
@@ -7942,14 +7539,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-27 {
-    font-size: 18px !important;
     font-size: 1.125rem !important;
     line-height: 1.1111111111 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-27 {
-        font-size: 27px !important;
         font-size: 1.6875rem !important;
         line-height: 1.1111111111 !important
     }
@@ -7963,14 +7558,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-24 {
-    font-size: 18px !important;
     font-size: 1.125rem !important;
     line-height: 1.1111111111 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-24 {
-        font-size: 24px !important;
         font-size: 1.5rem !important;
         line-height: 1.25 !important
     }
@@ -7984,14 +7577,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-19 {
-    font-size: 16px !important;
     font-size: 1rem !important;
     line-height: 1.25 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-19 {
-        font-size: 19px !important;
         font-size: 1.1875rem !important;
         line-height: 1.3157894737 !important
     }
@@ -8005,14 +7596,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-16 {
-    font-size: 14px !important;
     font-size: .875rem !important;
     line-height: 1.1428571429 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-16 {
-        font-size: 16px !important;
         font-size: 1rem !important;
         line-height: 1.25 !important
     }
@@ -8026,14 +7615,12 @@ screen and (-ms-high-contrast:active) {
 }
 
 .govuk-\!-font-size-14 {
-    font-size: 12px !important;
     font-size: .75rem !important;
     line-height: 1.25 !important
 }
 
 @media (min-width:40.0625em) {
     .govuk-\!-font-size-14 {
-        font-size: 14px !important;
         font-size: .875rem !important;
         line-height: 1.4285714286 !important
     }
@@ -8105,4 +7692,4 @@ screen and (-ms-high-contrast:active) {
     }
 }
 
-/*# sourceMappingURL=govuk-frontend-4.7.0.min.css.map */
\ No newline at end of file
+/*# sourceMappingURL=govuk-frontend-5.0.0-internal.0.min.css.map */
\ No newline at end of file

Action run for 39ff9de

@github-actions
Copy link

📋 Stats

File sizes

File Size
dist/govuk-frontend-5.0.0-internal.0.min.css 114.01 KiB
dist/govuk-frontend-5.0.0-internal.0.min.js 37.86 KiB
packages/govuk-frontend/dist/govuk/all.bundle.js 76.77 KiB
packages/govuk-frontend/dist/govuk/all.bundle.mjs 72.08 KiB
packages/govuk-frontend/dist/govuk/all.mjs 3.8 KiB
packages/govuk-frontend/dist/govuk/govuk-frontend-component.mjs 359 B
packages/govuk-frontend/dist/govuk/govuk-frontend.min.css 113.99 KiB
packages/govuk-frontend/dist/govuk/govuk-frontend.min.js 37.84 KiB
packages/govuk-frontend/dist/govuk/i18n.mjs 5.3 KiB

Modules

File Size
all.mjs 68.41 KiB
components/accordion/accordion.mjs 21.05 KiB
components/button/button.mjs 4.18 KiB
components/character-count/character-count.mjs 20.49 KiB
components/checkboxes/checkboxes.mjs 5.31 KiB
components/error-summary/error-summary.mjs 5.49 KiB
components/exit-this-page/exit-this-page.mjs 15.49 KiB
components/header/header.mjs 3.39 KiB
components/notification-banner/notification-banner.mjs 4.02 KiB
components/radios/radios.mjs 4.31 KiB
components/skip-link/skip-link.mjs 3.3 KiB
components/tabs/tabs.mjs 9.07 KiB

View stats and visualisations on the review app


Action run for 39ff9de

Copy link
Contributor

@colinrotherham colinrotherham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved 🎉

Not given as much scrutiny as a full release since the preview build was used quite widely already, including the Design System Day workshop: "Using task lists in your services"

Any snags or bug fixes can always go in 5.0.0-internal.1

@36degrees 36degrees merged commit a170c2e into main Oct 24, 2023
46 checks passed
@36degrees 36degrees deleted the release-v5.0.0-internal.0 branch October 24, 2023 13:18
romaricpascal pushed a commit that referenced this pull request Oct 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants