diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 0fa7879904..0000000000
--- a/.eslintignore
+++ /dev/null
@@ -1,4 +0,0 @@
-docs/\_site
-docs/dist
-test/unit-test-coverage/
-packages/cfpb-*/dist/
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
deleted file mode 100644
index 17cdc00211..0000000000
--- a/.eslintrc.cjs
+++ /dev/null
@@ -1,50 +0,0 @@
-module.exports = {
- parserOptions: {
- sourceType: 'module',
- ecmaVersion: 2020,
- },
- settings: {
- 'import/resolver': {
- node: {
- paths: ['src'],
- extensions: ['.js', '.ts', '.d.ts', '.tsx'],
- },
- },
- react: {
- version: 'detect',
- },
- },
- env: {
- browser: true,
- node: true,
- es2021: true,
- },
- extends: [
- 'eslint:recommended',
- 'plugin:import/errors',
- 'plugin:jsdoc/recommended',
- 'plugin:jsx-a11y/recommended',
- 'plugin:react/recommended',
- 'plugin:cypress/recommended',
- 'eslint-config-prettier',
- ],
- // Some plugins are automatically included.
- // Run `yarn eslint --print-config foo.js > bar.json` to see included plugins.
- // plugins: [],
- rules: {
- 'jsdoc/require-hyphen-before-param-description': ['warn', 'always'],
- 'no-console': ['warn'],
- 'no-use-before-define': ['error'],
- 'no-unused-vars': [
- 'error',
- {
- vars: 'all',
- args: 'after-used',
- ignoreRestSiblings: false,
- },
- ],
- 'no-var': ['error'],
- 'prefer-const': ['error'],
- radix: ['error'],
- },
-};
diff --git a/.yarn/cache/@es-joy-jsdoccomment-npm-0.42.0-a28de67572-a8122762d2.zip b/.yarn/cache/@es-joy-jsdoccomment-npm-0.49.0-616d525c5d-16717507d5.zip
similarity index 65%
rename from .yarn/cache/@es-joy-jsdoccomment-npm-0.42.0-a28de67572-a8122762d2.zip
rename to .yarn/cache/@es-joy-jsdoccomment-npm-0.49.0-616d525c5d-16717507d5.zip
index 6971aad3a3..d64d674716 100644
Binary files a/.yarn/cache/@es-joy-jsdoccomment-npm-0.42.0-a28de67572-a8122762d2.zip and b/.yarn/cache/@es-joy-jsdoccomment-npm-0.49.0-616d525c5d-16717507d5.zip differ
diff --git a/.yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip b/.yarn/cache/@eslint-community-regexpp-npm-4.12.1-ef4ab5217e-a03d98c246.zip
similarity index 61%
rename from .yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip
rename to .yarn/cache/@eslint-community-regexpp-npm-4.12.1-ef4ab5217e-a03d98c246.zip
index 36e164eb58..84a5a8267a 100644
Binary files a/.yarn/cache/@eslint-community-regexpp-npm-4.11.1-37bbb67aaa-fbcc1cb65e.zip and b/.yarn/cache/@eslint-community-regexpp-npm-4.12.1-ef4ab5217e-a03d98c246.zip differ
diff --git a/.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip b/.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip
new file mode 100644
index 0000000000..77ac86ca73
Binary files /dev/null and b/.yarn/cache/@eslint-config-array-npm-0.18.0-bb4bc4e301-0234aeb3e6.zip differ
diff --git a/.yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip b/.yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip
new file mode 100644
index 0000000000..cf00385a71
Binary files /dev/null and b/.yarn/cache/@eslint-core-npm-0.7.0-55f1b6f05c-3cdee8bc6c.zip differ
diff --git a/.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip b/.yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip
similarity index 60%
rename from .yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip
rename to .yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip
index 0f82c67f5a..18e59b2a81 100644
Binary files a/.yarn/cache/@eslint-eslintrc-npm-2.1.4-1ff4b5f908-32f67052b8.zip and b/.yarn/cache/@eslint-eslintrc-npm-3.1.0-3837a202e2-5b7332ed78.zip differ
diff --git a/.yarn/cache/@eslint-js-npm-8.57.0-00ead3710a-9a518bb862.zip b/.yarn/cache/@eslint-js-npm-9.13.0-2ac1161c0b-672257bffe.zip
similarity index 91%
rename from .yarn/cache/@eslint-js-npm-8.57.0-00ead3710a-9a518bb862.zip
rename to .yarn/cache/@eslint-js-npm-9.13.0-2ac1161c0b-672257bffe.zip
index b0ec297d68..a704f5015d 100644
Binary files a/.yarn/cache/@eslint-js-npm-8.57.0-00ead3710a-9a518bb862.zip and b/.yarn/cache/@eslint-js-npm-9.13.0-2ac1161c0b-672257bffe.zip differ
diff --git a/.yarn/cache/@eslint-object-schema-npm-2.1.4-0546250476-e9885532ea.zip b/.yarn/cache/@eslint-object-schema-npm-2.1.4-0546250476-e9885532ea.zip
new file mode 100644
index 0000000000..959b560f5c
Binary files /dev/null and b/.yarn/cache/@eslint-object-schema-npm-2.1.4-0546250476-e9885532ea.zip differ
diff --git a/.yarn/cache/@eslint-plugin-kit-npm-0.2.2-5e32e77841-ec533ccc99.zip b/.yarn/cache/@eslint-plugin-kit-npm-0.2.2-5e32e77841-ec533ccc99.zip
new file mode 100644
index 0000000000..88d4daed50
Binary files /dev/null and b/.yarn/cache/@eslint-plugin-kit-npm-0.2.2-5e32e77841-ec533ccc99.zip differ
diff --git a/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip b/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip
new file mode 100644
index 0000000000..536697a737
Binary files /dev/null and b/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip differ
diff --git a/.yarn/cache/@humanfs-node-npm-0.16.6-6ee2cad587-8356359c9f.zip b/.yarn/cache/@humanfs-node-npm-0.16.6-6ee2cad587-8356359c9f.zip
new file mode 100644
index 0000000000..19a4f34625
Binary files /dev/null and b/.yarn/cache/@humanfs-node-npm-0.16.6-6ee2cad587-8356359c9f.zip differ
diff --git a/.yarn/cache/@humanwhocodes-config-array-npm-0.11.14-94a02fcc87-66f725b4ee.zip b/.yarn/cache/@humanwhocodes-config-array-npm-0.11.14-94a02fcc87-66f725b4ee.zip
deleted file mode 100644
index 5454490068..0000000000
Binary files a/.yarn/cache/@humanwhocodes-config-array-npm-0.11.14-94a02fcc87-66f725b4ee.zip and /dev/null differ
diff --git a/.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip b/.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip
deleted file mode 100644
index 28df903edf..0000000000
Binary files a/.yarn/cache/@humanwhocodes-object-schema-npm-2.0.3-4f0e508cd9-80520eabbf.zip and /dev/null differ
diff --git a/.yarn/cache/@humanwhocodes-retry-npm-0.3.1-9d87bf92c6-f0da1282df.zip b/.yarn/cache/@humanwhocodes-retry-npm-0.3.1-9d87bf92c6-f0da1282df.zip
new file mode 100644
index 0000000000..d09f83b9af
Binary files /dev/null and b/.yarn/cache/@humanwhocodes-retry-npm-0.3.1-9d87bf92c6-f0da1282df.zip differ
diff --git a/.yarn/cache/@pkgr-core-npm-0.1.1-844d1f59d1-3f7536bc7f.zip b/.yarn/cache/@pkgr-core-npm-0.1.1-844d1f59d1-3f7536bc7f.zip
new file mode 100644
index 0000000000..cc0437a12c
Binary files /dev/null and b/.yarn/cache/@pkgr-core-npm-0.1.1-844d1f59d1-3f7536bc7f.zip differ
diff --git a/.yarn/cache/@rtsao-scc-npm-1.1.0-f4ba9ceb2c-b5bcfb0d87.zip b/.yarn/cache/@rtsao-scc-npm-1.1.0-f4ba9ceb2c-b5bcfb0d87.zip
new file mode 100644
index 0000000000..b9d8b957cd
Binary files /dev/null and b/.yarn/cache/@rtsao-scc-npm-1.1.0-f4ba9ceb2c-b5bcfb0d87.zip differ
diff --git a/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-cdfd751f6f.zip b/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-cdfd751f6f.zip
new file mode 100644
index 0000000000..37a4b1aca2
Binary files /dev/null and b/.yarn/cache/@types-estree-npm-1.0.6-b5e23f2ea2-cdfd751f6f.zip differ
diff --git a/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip b/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip
new file mode 100644
index 0000000000..a4202ea60f
Binary files /dev/null and b/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip differ
diff --git a/.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip b/.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip
deleted file mode 100644
index e2b763ccae..0000000000
Binary files a/.yarn/cache/@ungap-structured-clone-npm-1.2.0-648f0b82e0-8209c937cb.zip and /dev/null differ
diff --git a/.yarn/cache/acorn-npm-8.14.0-dc46f61424-6d4ee461a7.zip b/.yarn/cache/acorn-npm-8.14.0-dc46f61424-6d4ee461a7.zip
new file mode 100644
index 0000000000..83e89fa116
Binary files /dev/null and b/.yarn/cache/acorn-npm-8.14.0-dc46f61424-6d4ee461a7.zip differ
diff --git a/.yarn/cache/array.prototype.toreversed-npm-1.1.2-48ebc74406-2b7627ea85.zip b/.yarn/cache/array.prototype.toreversed-npm-1.1.2-48ebc74406-2b7627ea85.zip
deleted file mode 100644
index 03d045acb5..0000000000
Binary files a/.yarn/cache/array.prototype.toreversed-npm-1.1.2-48ebc74406-2b7627ea85.zip and /dev/null differ
diff --git a/.yarn/cache/axe-core-npm-4.7.0-a095cfe0ae-89ac5712b5.zip b/.yarn/cache/axe-core-npm-4.7.0-a095cfe0ae-89ac5712b5.zip
deleted file mode 100644
index 021afc09bc..0000000000
Binary files a/.yarn/cache/axe-core-npm-4.7.0-a095cfe0ae-89ac5712b5.zip and /dev/null differ
diff --git a/.yarn/cache/axobject-query-npm-3.2.4-af413f3e1a-3848c91192.zip b/.yarn/cache/axobject-query-npm-4.1.0-9703554323-c470e4f950.zip
similarity index 74%
rename from .yarn/cache/axobject-query-npm-3.2.4-af413f3e1a-3848c91192.zip
rename to .yarn/cache/axobject-query-npm-4.1.0-9703554323-c470e4f950.zip
index 53e5b136f7..3231076570 100644
Binary files a/.yarn/cache/axobject-query-npm-3.2.4-af413f3e1a-3848c91192.zip and b/.yarn/cache/axobject-query-npm-4.1.0-9703554323-c470e4f950.zip differ
diff --git a/.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-2cb3448b4f.zip b/.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-2cb3448b4f.zip
deleted file mode 100644
index 61f76903c9..0000000000
Binary files a/.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-2cb3448b4f.zip and /dev/null differ
diff --git a/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip b/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip
deleted file mode 100644
index 5e8bf9efe0..0000000000
Binary files a/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-c96bdccabe.zip and /dev/null differ
diff --git a/.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-300a469488.zip b/.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-300a469488.zip
new file mode 100644
index 0000000000..99258d6349
Binary files /dev/null and b/.yarn/cache/es-module-lexer-npm-1.5.4-b52b96b8fc-300a469488.zip differ
diff --git a/.yarn/cache/eslint-npm-8.57.0-4286e12a3a-00bb96fd24.zip b/.yarn/cache/eslint-npm-9.13.0-ca97d17f52-d357744415.zip
similarity index 84%
rename from .yarn/cache/eslint-npm-8.57.0-4286e12a3a-00bb96fd24.zip
rename to .yarn/cache/eslint-npm-9.13.0-ca97d17f52-d357744415.zip
index e4a5e4c6e6..a457418652 100644
Binary files a/.yarn/cache/eslint-npm-8.57.0-4286e12a3a-00bb96fd24.zip and b/.yarn/cache/eslint-npm-9.13.0-ca97d17f52-d357744415.zip differ
diff --git a/.yarn/cache/eslint-plugin-cypress-npm-3.2.0-fe6d901dde-c422a5c3a4.zip b/.yarn/cache/eslint-plugin-cypress-npm-4.1.0-c0e8a85df1-991d3cc48e.zip
similarity index 62%
rename from .yarn/cache/eslint-plugin-cypress-npm-3.2.0-fe6d901dde-c422a5c3a4.zip
rename to .yarn/cache/eslint-plugin-cypress-npm-4.1.0-c0e8a85df1-991d3cc48e.zip
index d101f24c63..0d01184c5b 100644
Binary files a/.yarn/cache/eslint-plugin-cypress-npm-3.2.0-fe6d901dde-c422a5c3a4.zip and b/.yarn/cache/eslint-plugin-cypress-npm-4.1.0-c0e8a85df1-991d3cc48e.zip differ
diff --git a/.yarn/cache/eslint-plugin-import-npm-2.29.1-b94305f7dc-5f35dfbf4e.zip b/.yarn/cache/eslint-plugin-import-npm-2.29.1-b94305f7dc-5f35dfbf4e.zip
deleted file mode 100644
index 16c1270b9a..0000000000
Binary files a/.yarn/cache/eslint-plugin-import-npm-2.29.1-b94305f7dc-5f35dfbf4e.zip and /dev/null differ
diff --git a/.yarn/cache/eslint-plugin-import-npm-2.31.0-3c7ca668cd-e21d116ddd.zip b/.yarn/cache/eslint-plugin-import-npm-2.31.0-3c7ca668cd-e21d116ddd.zip
new file mode 100644
index 0000000000..62b4bbc135
Binary files /dev/null and b/.yarn/cache/eslint-plugin-import-npm-2.31.0-3c7ca668cd-e21d116ddd.zip differ
diff --git a/.yarn/cache/eslint-plugin-jsdoc-npm-48.2.3-87dcb93322-e755923d96.zip b/.yarn/cache/eslint-plugin-jsdoc-npm-50.4.3-f048987db5-96067f8fc3.zip
similarity index 53%
rename from .yarn/cache/eslint-plugin-jsdoc-npm-48.2.3-87dcb93322-e755923d96.zip
rename to .yarn/cache/eslint-plugin-jsdoc-npm-50.4.3-f048987db5-96067f8fc3.zip
index 958cd85585..f0f806c8da 100644
Binary files a/.yarn/cache/eslint-plugin-jsdoc-npm-48.2.3-87dcb93322-e755923d96.zip and b/.yarn/cache/eslint-plugin-jsdoc-npm-50.4.3-f048987db5-96067f8fc3.zip differ
diff --git a/.yarn/cache/eslint-plugin-jsx-a11y-npm-6.8.0-5ffd885665-199b883e52.zip b/.yarn/cache/eslint-plugin-jsx-a11y-npm-6.10.2-23afcd8d2e-d93354e03b.zip
similarity index 84%
rename from .yarn/cache/eslint-plugin-jsx-a11y-npm-6.8.0-5ffd885665-199b883e52.zip
rename to .yarn/cache/eslint-plugin-jsx-a11y-npm-6.10.2-23afcd8d2e-d93354e03b.zip
index 860f7c7bf0..5c4c128670 100644
Binary files a/.yarn/cache/eslint-plugin-jsx-a11y-npm-6.8.0-5ffd885665-199b883e52.zip and b/.yarn/cache/eslint-plugin-jsx-a11y-npm-6.10.2-23afcd8d2e-d93354e03b.zip differ
diff --git a/.yarn/cache/eslint-plugin-react-npm-7.34.1-93be695b40-7c61b1314d.zip b/.yarn/cache/eslint-plugin-react-npm-7.37.2-9fdf577e3b-01c498f263.zip
similarity index 73%
rename from .yarn/cache/eslint-plugin-react-npm-7.34.1-93be695b40-7c61b1314d.zip
rename to .yarn/cache/eslint-plugin-react-npm-7.37.2-9fdf577e3b-01c498f263.zip
index b3e10f15c7..3ea8b51b4d 100644
Binary files a/.yarn/cache/eslint-plugin-react-npm-7.34.1-93be695b40-7c61b1314d.zip and b/.yarn/cache/eslint-plugin-react-npm-7.37.2-9fdf577e3b-01c498f263.zip differ
diff --git a/.yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-613c267aea.zip b/.yarn/cache/eslint-scope-npm-8.2.0-d74e314c9e-8d2d58e213.zip
similarity index 91%
rename from .yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-613c267aea.zip
rename to .yarn/cache/eslint-scope-npm-8.2.0-d74e314c9e-8d2d58e213.zip
index afe1161ecf..bdff178ad7 100644
Binary files a/.yarn/cache/eslint-scope-npm-7.2.2-53cb0df8e8-613c267aea.zip and b/.yarn/cache/eslint-scope-npm-8.2.0-d74e314c9e-8d2d58e213.zip differ
diff --git a/.yarn/cache/eslint-visitor-keys-npm-4.2.0-a591434af3-2ed81c663b.zip b/.yarn/cache/eslint-visitor-keys-npm-4.2.0-a591434af3-2ed81c663b.zip
new file mode 100644
index 0000000000..8345b5523d
Binary files /dev/null and b/.yarn/cache/eslint-visitor-keys-npm-4.2.0-a591434af3-2ed81c663b.zip differ
diff --git a/.yarn/cache/espree-npm-9.6.1-a50722a5a9-1a2e9b4699.zip b/.yarn/cache/espree-npm-10.3.0-e5b10052f5-272beeaca7.zip
similarity index 88%
rename from .yarn/cache/espree-npm-9.6.1-a50722a5a9-1a2e9b4699.zip
rename to .yarn/cache/espree-npm-10.3.0-e5b10052f5-272beeaca7.zip
index 33fe11d46a..2f72beec42 100644
Binary files a/.yarn/cache/espree-npm-9.6.1-a50722a5a9-1a2e9b4699.zip and b/.yarn/cache/espree-npm-10.3.0-e5b10052f5-272beeaca7.zip differ
diff --git a/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip b/.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip
similarity index 56%
rename from .yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip
rename to .yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip
index aefabd0883..daedfebc39 100644
Binary files a/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-58473e8a82.zip and b/.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip differ
diff --git a/.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip b/.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip
deleted file mode 100644
index dcc67e13b3..0000000000
Binary files a/.yarn/cache/flat-cache-npm-3.2.0-9a887f084e-b76f611bd5.zip and /dev/null differ
diff --git a/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip b/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip
new file mode 100644
index 0000000000..4957d43c2e
Binary files /dev/null and b/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip differ
diff --git a/.yarn/cache/globals-npm-13.24.0-cc7713139c-d3c11aeea8.zip b/.yarn/cache/globals-npm-13.24.0-cc7713139c-d3c11aeea8.zip
deleted file mode 100644
index d9d07cd971..0000000000
Binary files a/.yarn/cache/globals-npm-13.24.0-cc7713139c-d3c11aeea8.zip and /dev/null differ
diff --git a/.yarn/cache/globals-npm-14.0.0-5fc3d8d5da-b96ff42620.zip b/.yarn/cache/globals-npm-14.0.0-5fc3d8d5da-b96ff42620.zip
new file mode 100644
index 0000000000..0ea7d9b76d
Binary files /dev/null and b/.yarn/cache/globals-npm-14.0.0-5fc3d8d5da-b96ff42620.zip differ
diff --git a/.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip b/.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip
new file mode 100644
index 0000000000..f83de5055e
Binary files /dev/null and b/.yarn/cache/globals-npm-15.11.0-336de1c0c2-861e39bb6b.zip differ
diff --git a/.yarn/cache/graphemer-npm-1.4.0-0627732d35-e951259d8c.zip b/.yarn/cache/graphemer-npm-1.4.0-0627732d35-e951259d8c.zip
deleted file mode 100644
index f1d0b5e218..0000000000
Binary files a/.yarn/cache/graphemer-npm-1.4.0-0627732d35-e951259d8c.zip and /dev/null differ
diff --git a/.yarn/cache/is-builtin-module-npm-3.2.1-2f92a5d353-5a66937a03.zip b/.yarn/cache/is-builtin-module-npm-3.2.1-2f92a5d353-5a66937a03.zip
deleted file mode 100644
index 2f9796378a..0000000000
Binary files a/.yarn/cache/is-builtin-module-npm-3.2.1-2f92a5d353-5a66937a03.zip and /dev/null differ
diff --git a/.yarn/cache/jsdoc-type-pratt-parser-npm-4.0.0-7b035921c4-b23ef7bbbe.zip b/.yarn/cache/jsdoc-type-pratt-parser-npm-4.1.0-6f90ea9fa7-7700372d2e.zip
similarity index 94%
rename from .yarn/cache/jsdoc-type-pratt-parser-npm-4.0.0-7b035921c4-b23ef7bbbe.zip
rename to .yarn/cache/jsdoc-type-pratt-parser-npm-4.1.0-6f90ea9fa7-7700372d2e.zip
index d2e93cb4df..b307b2d46a 100644
Binary files a/.yarn/cache/jsdoc-type-pratt-parser-npm-4.0.0-7b035921c4-b23ef7bbbe.zip and b/.yarn/cache/jsdoc-type-pratt-parser-npm-4.1.0-6f90ea9fa7-7700372d2e.zip differ
diff --git a/.yarn/cache/object.hasown-npm-1.1.4-fb6312bfee-f23187b08d.zip b/.yarn/cache/object.hasown-npm-1.1.4-fb6312bfee-f23187b08d.zip
deleted file mode 100644
index 9d4447319b..0000000000
Binary files a/.yarn/cache/object.hasown-npm-1.1.4-fb6312bfee-f23187b08d.zip and /dev/null differ
diff --git a/.yarn/cache/parse-imports-npm-2.2.1-038aa0cbb7-bc541ce4ef.zip b/.yarn/cache/parse-imports-npm-2.2.1-038aa0cbb7-bc541ce4ef.zip
new file mode 100644
index 0000000000..7c17771f05
Binary files /dev/null and b/.yarn/cache/parse-imports-npm-2.2.1-038aa0cbb7-bc541ce4ef.zip differ
diff --git a/.yarn/cache/slashes-npm-3.0.12-28822614a6-71ca2a1fcd.zip b/.yarn/cache/slashes-npm-3.0.12-28822614a6-71ca2a1fcd.zip
new file mode 100644
index 0000000000..348724c502
Binary files /dev/null and b/.yarn/cache/slashes-npm-3.0.12-28822614a6-71ca2a1fcd.zip differ
diff --git a/.yarn/cache/string.prototype.includes-npm-2.0.1-12fb63787c-25ce9c9b49.zip b/.yarn/cache/string.prototype.includes-npm-2.0.1-12fb63787c-25ce9c9b49.zip
new file mode 100644
index 0000000000..eb8c02c68d
Binary files /dev/null and b/.yarn/cache/string.prototype.includes-npm-2.0.1-12fb63787c-25ce9c9b49.zip differ
diff --git a/.yarn/cache/string.prototype.repeat-npm-1.0.0-3f87f5fd9e-94c7978566.zip b/.yarn/cache/string.prototype.repeat-npm-1.0.0-3f87f5fd9e-94c7978566.zip
new file mode 100644
index 0000000000..8b00a32217
Binary files /dev/null and b/.yarn/cache/string.prototype.repeat-npm-1.0.0-3f87f5fd9e-94c7978566.zip differ
diff --git a/.yarn/cache/synckit-npm-0.9.2-515a819361-e0c2628174.zip b/.yarn/cache/synckit-npm-0.9.2-515a819361-e0c2628174.zip
new file mode 100644
index 0000000000..52c687f5a9
Binary files /dev/null and b/.yarn/cache/synckit-npm-0.9.2-515a819361-e0c2628174.zip differ
diff --git a/.yarn/cache/type-fest-npm-0.20.2-b36432617f-dea9df45ea.zip b/.yarn/cache/type-fest-npm-0.20.2-b36432617f-dea9df45ea.zip
deleted file mode 100644
index 0dc6208279..0000000000
Binary files a/.yarn/cache/type-fest-npm-0.20.2-b36432617f-dea9df45ea.zip and /dev/null differ
diff --git a/docs/assets/js/admin/widgets/genericPreviewTemplate.js b/docs/assets/js/admin/widgets/genericPreviewTemplate.js
index 4919eca992..d4b2157b60 100644
--- a/docs/assets/js/admin/widgets/genericPreviewTemplate.js
+++ b/docs/assets/js/admin/widgets/genericPreviewTemplate.js
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { ReactLiquid, liquidEngine } from 'react-liquid';
import template from '../../../../_includes/generic-content.html';
-// eslint-disable-next-line import/namespace
+
import { marked } from '../../../../../node_modules/marked/lib/marked.esm.js';
export default class Preview extends Component {
diff --git a/docs/assets/js/admin/widgets/pagePreviewTemplate.js b/docs/assets/js/admin/widgets/pagePreviewTemplate.js
index e956e85986..77864ba48e 100644
--- a/docs/assets/js/admin/widgets/pagePreviewTemplate.js
+++ b/docs/assets/js/admin/widgets/pagePreviewTemplate.js
@@ -9,7 +9,7 @@ import Tabs from '../../../../assets/js/tabs.js';
import { encode } from 'html-entities';
import slugify from 'slugify';
import template from '../../../../_includes/variation-content.html';
-// eslint-disable-next-line import/namespace
+
import { marked } from '../../../../../node_modules/marked/lib/marked.esm.js';
// react-liquid (https://github.com/aquibm/react-liquid/) isn't able to `include` other files so we
@@ -71,7 +71,7 @@ export default class Preview extends Component {
};
return (
// TODO: We're breaking some a11y here by making the whole page clickable.
- // eslint-disable-next-line
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
this.handleClick(event)}>
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000000..cd72e059fa
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,73 @@
+// Run `npx @eslint/config-inspector` to inspect the config.
+
+import globals from 'globals';
+import js from '@eslint/js';
+import importPlugin from 'eslint-plugin-import';
+import jsdoc from 'eslint-plugin-jsdoc';
+import jsxA11y from 'eslint-plugin-jsx-a11y';
+import reactPlugin from 'eslint-plugin-react';
+import pluginCypress from 'eslint-plugin-cypress/flat';
+import eslintConfigPrettier from 'eslint-config-prettier';
+
+export default [
+ {
+ ignores: [
+ '.yarn/',
+ 'docs/_site/',
+ 'docs/dist/',
+ 'test/unit-test-coverage/',
+ 'packages/cfpb-design-system/dist/',
+ ],
+ },
+ js.configs.recommended,
+ importPlugin.flatConfigs.recommended,
+ jsdoc.configs['flat/recommended'],
+ jsxA11y.flatConfigs.recommended,
+ reactPlugin.configs.flat.recommended,
+ pluginCypress.configs.recommended,
+ eslintConfigPrettier,
+ {
+ languageOptions: {
+ ecmaVersion: 2023,
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ globals: {
+ ...globals.browser,
+ ...globals.node,
+ ...globals.jest,
+ },
+ },
+ settings: {
+ 'import/resolver': {
+ node: {
+ paths: ['src'],
+ extensions: ['.js', '.ts', '.d.ts', '.tsx'],
+ },
+ },
+ react: {
+ version: 'detect',
+ },
+ },
+ // Some plugins are automatically included.
+ // plugins: {},
+ rules: {
+ 'jsdoc/require-hyphen-before-param-description': 'warn',
+ 'no-console': ['warn'],
+ 'no-use-before-define': ['error', 'nofunc'],
+ 'no-unused-vars': [
+ 'error',
+ {
+ vars: 'all',
+ args: 'after-used',
+ ignoreRestSiblings: false,
+ },
+ ],
+ 'no-var': ['error'],
+ 'prefer-const': ['error'],
+ radix: ['error'],
+ },
+ },
+];
diff --git a/lighthouserc.cjs b/lighthouserc.cjs
index b803f66ad6..7548191e2a 100644
--- a/lighthouserc.cjs
+++ b/lighthouserc.cjs
@@ -24,7 +24,7 @@ if (!urlsSpecified) {
"No HTML files found; build the docs first with 'yarn build-decap'.",
);
- // eslint-disable-next-line no-process-exit
+
process.exit(1);
}
diff --git a/package.json b/package.json
index 60c737f36c..f176accc57 100644
--- a/package.json
+++ b/package.json
@@ -60,14 +60,15 @@
"cypress": "13.15.1",
"esbuild": "0.24.0",
"esbuild-plugin-liquid": "0.2.0",
- "eslint": "8.57.0",
+ "eslint": "9.13.0",
"eslint-config-prettier": "9.1.0",
- "eslint-plugin-cypress": "3.2.0",
- "eslint-plugin-import": "2.29.1",
- "eslint-plugin-jsdoc": "48.2.3",
- "eslint-plugin-jsx-a11y": "6.8.0",
- "eslint-plugin-react": "7.34.1",
+ "eslint-plugin-cypress": "4.1.0",
+ "eslint-plugin-import": "2.31.0",
+ "eslint-plugin-jsdoc": "50.4.3",
+ "eslint-plugin-jsx-a11y": "6.10.2",
+ "eslint-plugin-react": "7.37.2",
"glob": "11.0.0",
+ "globals": "15.11.0",
"http-server": "14.1.1",
"jest": "29.7.0",
"jest-cli": "29.7.0",
diff --git a/packages/cfpb-design-system/dist/components/cfpb-expandables/index.js.map b/packages/cfpb-design-system/dist/components/cfpb-expandables/index.js.map
index 4520344f51..6e44435ed4 100644
--- a/packages/cfpb-design-system/dist/components/cfpb-expandables/index.js.map
+++ b/packages/cfpb-design-system/dist/components/cfpb-expandables/index.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../../../../packages/cfpb-design-system/src/utilities/utilities.scss", "../../../../../packages/cfpb-design-system/src/abstracts/vars-breakpoints.js", "../../../../../packages/cfpb-design-system/src/utilities/breakpoint-state.js", "../../../../../packages/cfpb-design-system/src/utilities/standard-type.js", "../../../../../packages/cfpb-design-system/src/utilities/event-observer.js", "../../../../../packages/cfpb-design-system/src/utilities/data-hook.js", "../../../../../packages/cfpb-design-system/src/utilities/atomic-helpers.js", "../../../../../packages/cfpb-design-system/src/base/normalize.scss", "../../../../../packages/cfpb-design-system/src/base/base.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-buttons/button.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-buttons/button-group.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-buttons/button-link.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-buttons/button-with-icon.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/form.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/form-alert.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/form-field.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/label.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/range.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/search-input.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/select.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/tag.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/text-input.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/multiselect-model.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/multiselect-utils.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-icons/icons/error.svg", "../../../../../packages/cfpb-design-system/src/components/cfpb-forms/multiselect.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-icons/icon.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/card.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/card-group.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/email-signup.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/featured-content-module.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/hero.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/layout.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/text-introduction.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-layout/well.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-notifications/banner.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-notifications/notification.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-pagination/pagination.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-tables/table.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/date.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/link.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/list.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/meta-header.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/pull-quote.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/slug-header.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-typography/tagline.scss", "../../../../../packages/cfpb-design-system/src/utilities/behavior/behavior.js", "../../../../../packages/cfpb-design-system/src/utilities/type-checkers.js", "../../../../../packages/cfpb-design-system/src/utilities/media-helpers.js", "../../../../../packages/cfpb-design-system/src/utilities/behavior/flyout-menu.js", "../../../../../packages/cfpb-design-system/src/utilities/transition/alpha-transition.js", "../../../../../packages/cfpb-design-system/src/utilities/transition/base-transition.js", "../../../../../packages/cfpb-design-system/src/utilities/transition/max-height-transition.js", "../../../../../packages/cfpb-design-system/src/utilities/transition/move-transition.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/expandable.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/expandable.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/expandable-group.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/expandable-group.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/summary.scss", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/summary.js", "../../../../../packages/cfpb-design-system/src/components/cfpb-expandables/summary-minimal.js"],
- "sourcesContent": ["/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Utilities\n ========================================================================== */\n.no-js .u-js-only {\n display: none !important;\n}\n\n.u-hide-if-js {\n display: none !important;\n}\n.no-js .u-hide-if-js {\n display: block !important;\n}\n\n.u-clearfix::after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n.u-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n border: 0;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0 0 0 0);\n}\n\n@media only all and (max-width: 37.5em) {\n .u-hide-on-mobile {\n display: none;\n }\n}\n\n.u-show-on-mobile {\n display: none;\n}\n@media only all and (max-width: 37.5em) {\n .u-show-on-mobile {\n display: block;\n }\n}\n\n.u-hidden {\n display: none !important;\n}\n\n.u-invisible {\n visibility: hidden;\n}\n\n.u-inline-block {\n display: inline-block;\n}\n\n.u-right {\n float: right;\n}\n\n.u-break-word {\n word-break: break-all;\n}\n\n.u-nowrap {\n white-space: nowrap;\n}\n\n/* stylelint-disable selector-class-pattern */\n.u-flexible-container {\n /* stylelint-enable */\n position: relative;\n padding-bottom: 56.25%;\n height: 0;\n}\n.u-flexible-container__inner {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.u-flexible-container--4-3 {\n /* stylelint-enable */\n position: relative;\n padding-bottom: 75%;\n height: 0;\n}\n\n/* stylelint-disable selector-class-pattern */\n/* stylelint-enable */\n.u-mt0 {\n margin-top: 0 !important;\n}\n\n.u-mb0 {\n margin-bottom: 0 !important;\n}\n\n.u-mt5 {\n margin-top: 5px !important;\n}\n\n.u-mb5 {\n margin-bottom: 5px !important;\n}\n\n.u-mt10 {\n margin-top: 10px !important;\n}\n\n.u-mb10 {\n margin-bottom: 10px !important;\n}\n\n.u-mt15 {\n margin-top: 15px !important;\n}\n\n.u-mb15 {\n margin-bottom: 15px !important;\n}\n\n.u-mt20 {\n margin-top: 20px !important;\n}\n\n.u-mb20 {\n margin-bottom: 20px !important;\n}\n\n.u-mt30 {\n margin-top: 30px !important;\n}\n\n.u-mb30 {\n margin-bottom: 30px !important;\n}\n\n.u-mt45 {\n margin-top: 45px !important;\n}\n\n.u-mb45 {\n margin-bottom: 45px !important;\n}\n\n.u-mt60 {\n margin-top: 60px !important;\n}\n\n.u-mb60 {\n margin-bottom: 60px !important;\n}\n\n.u-w100pct {\n width: 100%;\n}\n\n.u-w90pct {\n width: 90%;\n}\n\n.u-w80pct {\n width: 80%;\n}\n\n.u-w70pct {\n width: 70%;\n}\n\n.u-w60pct {\n width: 60%;\n}\n\n.u-w50pct {\n width: 50%;\n}\n\n.u-w40pct {\n width: 40%;\n}\n\n.u-w30pct {\n width: 30%;\n}\n\n.u-w20pct {\n width: 20%;\n}\n\n.u-w10pct {\n width: 10%;\n}\n\n.u-w75pct {\n width: 75%;\n}\n\n.u-w25pct {\n width: 25%;\n}\n\n.u-w66pct {\n width: 66.6666666667%;\n}\n\n.u-w33pct {\n width: 33.3333333333%;\n}\n\n/* stylelint-disable selector-class-pattern */\nsmall,\n.u-small-text {\n /* stylelint-enable */\n font-size: 0.875em;\n}", "/* ==========================================================================\n Design System\n Breakpoint JavaScript variables.\n All values are pixel based.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.scss as well.\n ========================================================================== */\n\nexport const varsBreakpoints = {\n bpXS: {\n min: 0,\n max: 600,\n },\n bpSM: {\n min: 601,\n max: 900,\n },\n bpMED: {\n min: 901,\n max: 1020,\n },\n bpLG: {\n min: 1021,\n max: 1200,\n },\n bpXL: {\n min: 1201,\n },\n};\n", "/* ==========================================================================\n Get Breakpoint State\n ========================================================================== */\n\nimport { varsBreakpoints } from '../abstracts/vars-breakpoints.js';\n\n/**\n * @returns {number} The base font size set on the body element.\n */\nfunction _getBodyBaseFontSize() {\n let fontSize = getComputedStyle(document.body).fontSize;\n fontSize = fontSize === '' ? -1 : fontSize;\n return parseFloat(fontSize);\n}\n\n/**\n * @param {object} breakpointRange - Object containing breakpoint constants.\n * For example, for `bpXS` the value `{ min: 0, max: 600 }` would be passed.\n * @param {number} width - Current window width.\n * @returns {boolean} Whether the passed width is within a breakpoint range.\n */\nfunction _inBreakpointRange(breakpointRange, width) {\n let breakpointRangeMin = breakpointRange.min;\n let breakpointRangeMax = breakpointRange.max;\n\n // Whether the user has set a custom size for the font in their browser.\n const useEmsConversation =\n _getBodyBaseFontSize() > 0 && _getBodyBaseFontSize() !== 16;\n if (useEmsConversation) {\n /* 16 = base font size without adjustments.\n The CSS converts breakpoints to ems, which then change the width of the\n pixel width of the breakpoint. In JavaScript, the breakpoints are defined\n in pixels, so we first convert them to ems using the 16px base font size\n and then multiply them by any adjustments set by customizations of the\n font size in the user's browser. */\n breakpointRangeMin = (breakpointRangeMin / 16) * _getBodyBaseFontSize();\n breakpointRangeMax = (breakpointRangeMax / 16) * _getBodyBaseFontSize();\n }\n\n const min = breakpointRangeMin || 0;\n const max = breakpointRangeMax || Number.POSITIVE_INFINITY;\n\n return min <= width && width <= max;\n}\n\n/**\n * @param {number} width - Current window width.\n * @returns {object} An object literal with boolean\n * bpXS, bpSM, bpMED, bpLG, bpXL properties.\n */\nfunction getBreakpointState(width) {\n const breakpointState = {};\n width = width || window.innerWidth;\n\n let rangeKey;\n // eslint-disable-next-line guard-for-in\n for (rangeKey in varsBreakpoints) {\n breakpointState[rangeKey] = _inBreakpointRange(\n varsBreakpoints[rangeKey],\n width,\n );\n }\n\n return breakpointState;\n}\n\n// Constants for breakpoint groupings.\nconst MOBILE = 'mobile';\nconst TABLET = 'tablet';\nconst DESKTOP = 'desktop';\n\n/**\n * Checks whether the current breakpoint is in a particular breakpoint group.\n * @param {string} breakpointGroup - Breakpoint group names.\n * @returns {boolean} True if in the breakpoint group, otherwise false.\n */\nfunction viewportIsIn(breakpointGroup) {\n let response = false;\n const currentBreakpoint = getBreakpointState();\n\n if (\n (breakpointGroup === MOBILE && currentBreakpoint.bpXS) ||\n (breakpointGroup === TABLET && currentBreakpoint.bpSM) ||\n (breakpointGroup === DESKTOP &&\n (currentBreakpoint.bpMED ||\n currentBreakpoint.bpLG ||\n currentBreakpoint.bpXL))\n ) {\n response = true;\n }\n\n return response;\n}\n\n// Expose public methods.\nexport { MOBILE, TABLET, DESKTOP, getBreakpointState, viewportIsIn };\n", "/**\n * @constant\n * @type {string}\n * @description\n * Constant for the name of the data-* attribute set on\n * HTML DOM elements for access by JavaScript.\n */\nconst JS_HOOK = 'data-js-hook';\n\n/**\n * @constant\n * @type {string}\n * @description\n * Flag prefix for settings that describe what JavaScript\n * behaviors should be attached to a component.\n * This would be set in the markup and initialized when\n * the JavaScript loads.\n * @example\n * A component may flag that it has certain JavaScript behaviors attached,\n * such as:\n * `data-js-hook=\"behavior_flyout-menu behavior_clearable-input\"`,\n * which defines that two scripts (FlyoutMenu) and (ClearableInput)\n * should access this DOM element and initialize its behaviors.\n */\nconst BEHAVIOR_PREFIX = 'behavior_';\n\n/**\n * @constant\n * @type {string}\n * @description\n * Flag prefix for settings related to changes in a components\n * state set in the data-* JavaScript hook.\n * @example\n * A component may flag that it has been initialized by setting\n * `data-js-hook=\"state_atomic_init\"` after page load.\n * Which specifies that the init method of a atomic constructor\n * has been called, such as\n * `var globalSearch = new GlobalSearch( 'm-global-search' ).init()`.\n */\nconst STATE_PREFIX = 'state_';\n\nexport { JS_HOOK, BEHAVIOR_PREFIX, STATE_PREFIX };\n", "/**\n * EventObserver\n * @class\n * @classdesc Used to create an object\n * that can dispatch and listen to custom events.\n * @returns {object} An EventObserver instance.\n */\nfunction EventObserver() {\n // The events registered on this instance.\n const _events = {};\n\n /**\n * Register an event listener.\n * @param {string} event - The event name to listen for.\n * @param {Function} callback - The function called when the event has fired.\n * @returns {object} The instance this EventObserver instance is decorating.\n */\n function addEventListener(event, callback) {\n if ({}.hasOwnProperty.call(_events, event)) {\n _events[event].push(callback);\n } else {\n _events[event] = [callback];\n }\n\n return this;\n }\n\n /**\n * Remove an added event listener.\n * Must match a call made to addEventListener.\n * @param {string} event - The event name to remove.\n * @param {Function} callback - The function attached to the event.\n * @returns {object} The instance this EventObserver instance is decorating.\n */\n function removeEventListener(event, callback) {\n if (!{}.hasOwnProperty.call(_events, event)) {\n return this;\n }\n\n const index = _events[event].indexOf(callback);\n // Check if there are any callbacks associated with a particular event.\n if (index !== -1) {\n _events[event].splice(index, 1);\n }\n\n return this;\n }\n\n /**\n * Broadcast an event.\n * @param {string} event - The type of event to broadcast.\n * @param {object} options - The event object to pass to the event handler.\n * @returns {object} The instance this EventObserver instance is decorating.\n */\n function dispatchEvent(event, options) {\n if (!{}.hasOwnProperty.call(_events, event)) {\n return this;\n }\n\n options = options || {};\n\n const evts = _events[event];\n for (let i = 0, len = evts.length; i < len; i++) {\n evts[i].call(this, options);\n }\n\n return this;\n }\n\n this.addEventListener = addEventListener;\n this.removeEventListener = removeEventListener;\n this.dispatchEvent = dispatchEvent;\n this.getRegisteredEvents = () => _events;\n\n return this;\n}\n\nexport { EventObserver };\n", "import { JS_HOOK } from './standard-type.js';\n\n/**\n * @param {HTMLElement} element - DOM element.\n * @param {string} value - Value to check as existing as a JS data-* hook value.\n * @returns {boolean} True if the data-* hook value exists, false otherwise.\n */\nfunction contains(element, value) {\n if (!element) {\n return false;\n }\n let values = element.getAttribute(JS_HOOK);\n // If JS data-* hook is not set return immediately.\n if (!values) {\n return false;\n }\n values = values.split(' ');\n\n return values.indexOf(value) > -1 ? true : false;\n}\n\n/**\n * @param {HTMLElement} element - DOM element.\n * @param {string} value - Value to add to the element's JS data-* hook.\n * @returns {string} The value that was added.\n * @throws {Error} If supplied value contains a space,\n * meaning it would be two values, which is likely a typo.\n */\nfunction add(element, value) {\n if (contains(element, value)) return value;\n\n if (value.indexOf(' ') !== -1) {\n const msg = JS_HOOK + ' values cannot contain spaces!';\n throw new Error(msg);\n }\n\n const values = element.getAttribute(JS_HOOK);\n if (values !== null) {\n value = values + ' ' + value;\n }\n element.setAttribute(JS_HOOK, value);\n\n return value;\n}\n\nexport { add, contains };\n", "/* ==========================================================================\n Atomic Helpers.\n Utilities for helping validate atomic design element architecture.\n In descending order of scope, atomic components are:\n - Page\n - Template\n - Organism\n - Molecule\n - Atom\n ========================================================================= */\n\nimport { add, contains } from './data-hook.js';\nimport { STATE_PREFIX } from './standard-type.js';\n\n/**\n * @constant\n * @type {string}\n * @description\n * Flag that gets set on an atomic component after its .init()\n * method has been called. This is used so that an atomic\n * component won't get initialized a second time after it\n * has already been initialized.\n */\nconst INIT_FLAG = STATE_PREFIX + 'atomic_init';\n\n/**\n * @param {HTMLElement} element - The DOM element within which to search for\n * the atomic element class.\n * @param {string} baseClass - The CSS class name for the atomic element.\n * @returns {HTMLElement} The DOM element for the atomic element.\n * @throws {Error} If DOM element passed into the atomic element is not valid.\n */\nfunction _verifyElementExists(element, baseClass) {\n if (!element || !element.classList) {\n const msg =\n element +\n ' is not valid. ' +\n 'Check that element is a DOM node with class \"' +\n baseClass +\n '\"';\n throw new Error(msg);\n }\n\n return element;\n}\n\n/**\n * @param {HTMLElement} element - The DOM element within which to search\n * for the atomic element class.\n * @param {string} baseClass - The CSS class name for the atomic element.\n * @returns {HTMLElement} The DOM element for the atomic element.\n * @throws {Error} If baseClass was not found on the element.\n */\nfunction _verifyClassExists(element, baseClass) {\n const dom = element.classList.contains(baseClass)\n ? element\n : element.querySelector('.' + baseClass);\n if (!dom) {\n const msg = baseClass + ' not found on or in passed DOM node.';\n throw new Error(msg);\n }\n\n return dom;\n}\n\n/**\n * Check that a particular element passed into the constructor of\n * an atomic component exists and that the correct atomic class\n * is present on the element.\n * @param {HTMLElement} element - The DOM element within which to search\n * for the atomic element class.\n * @param {string} baseClass - The CSS class name for the atomic element.\n * @returns {HTMLElement} The DOM element for the atomic element.\n * @throws {Error} If DOM element passed into the atomic element is not valid.\n */\nfunction checkDom(element, baseClass) {\n _verifyElementExists(element, baseClass);\n const dom = _verifyClassExists(element, baseClass);\n\n return dom;\n}\n\n/**\n * Set a flag on an atomic component when it is initialized.\n * Use the returned boolean to handle cases where an atomic component\n * is initializing when it has already been initialized elsewhere.\n * @param {HTMLElement} element - The DOM element for the atomic component.\n * @returns {boolean} True if the init data-js-* hook attribute was set,\n * false otherwise.\n */\nfunction setInitFlag(element) {\n if (contains(element, INIT_FLAG)) {\n return false;\n }\n\n add(element, INIT_FLAG);\n\n return true;\n}\n\n/**\n * @param {string} selector - Selector to search for in the document.\n * @param {Function} Constructor - A constructor function.\n * @param {HTMLElement} [scope] - A dom node in which to query the selector.\n * If not supplied, it defaults to the `document`.\n * @param {object} config - Configuration will be provided to the Constructor's init()\n * @returns {Array} List of instances that were instantiated.\n */\nfunction instantiateAll(selector, Constructor, scope, config = {}) {\n const base = scope || document;\n const elements = base.querySelectorAll(selector);\n const insts = [];\n let inst;\n let element;\n for (let i = 0, len = elements.length; i < len; i++) {\n element = elements[i];\n if (contains(element, INIT_FLAG) === false) {\n inst = new Constructor(element);\n inst.init(config);\n insts.push(inst);\n }\n }\n return insts;\n}\n\n// Expose public methods.\nexport { checkDom, instantiateAll, setInitFlag };\n", "@charset \"UTF-8\";\n/*! normalize.css v2.1.3 | MIT License | git.io/normalize */\n/* ==========================================================================\n Base\n ========================================================================== */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\nhtml {\n font-family: sans-serif; /* 1 */\n -webkit-text-size-adjust: 100%;\n text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0;\n}\n\n/* ==========================================================================\n Links\n ========================================================================== */\n/**\n * Address `outline` inconsistency between Chrome and other browsers.\n */\na:focus {\n outline: thin dotted;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\na:active,\na:hover {\n outline: 0;\n}\n\n/* ==========================================================================\n Typography\n ========================================================================== */\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Correct font family set oddly in Safari 5 and Chrome.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, serif;\n font-size: 1em;\n}\n\n/**\n * Improve readability of pre-formatted text in all browsers.\n */\npre {\n white-space: pre-wrap;\n}\n\n/**\n * Set consistent quote types.\n */\nq {\n quotes: \"\u201C\" \"\u201D\" \"\u2018\" \"\u2019\";\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* ==========================================================================\n Figures\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\nfigure {\n margin: 0;\n}\n\n/* ==========================================================================\n Forms\n ========================================================================== */\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * 1. Correct font family not being inherited in all browsers.\n * 2. Correct font size not being inherited in all browsers.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\nbutton,\ninput,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\nbutton,\ninput {\n line-height: normal;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.\n * Correct `select` style inheritance in Firefox 4+ and Opera.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=button],\ninput[type=reset],\ninput[type=submit] {\n appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=checkbox],\ninput[type=radio] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome.\n */\ninput[type=search] {\n appearance: textfield; /* 1 */\n box-sizing: content-box; /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari 5 and Chrome\n * on OS X.\n */\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-decoration {\n appearance: none;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * 1. Remove default vertical scrollbar in IE 8/9.\n * 2. Improve readability and alignment in all browsers.\n */\ntextarea {\n overflow: auto; /* 1 */\n vertical-align: top; /* 2 */\n}\n\n/* ==========================================================================\n Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\nbody {\n color: var(--black);\n font-family: var(--font-stack);\n font-size: 100%;\n line-height: 1.375;\n -webkit-font-smoothing: antialiased;\n}\n\nbutton,\ninput,\nselect,\ntextarea {\n font-family: var(--font-stack);\n}\n\nstrong,\nb {\n font-weight: 600;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n}\n\nh1,\n.h1 {\n font-size: 2.125em;\n font-weight: 600;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.4411764706em;\n}\np + h1, ul + h1, ol + h1, dl + h1, figure + h1, img + h1, table + h1, blockquote + h1,\np + .h1,\nul + .h1,\nol + .h1,\ndl + .h1,\nfigure + .h1,\nimg + .h1,\ntable + .h1,\nblockquote + .h1 {\n margin-top: 1.7647058824em;\n}\n@media only all and (max-width: 37.5em) {\n p + h1, ul + h1, ol + h1, dl + h1, figure + h1, img + h1, table + h1, blockquote + h1,\n p + .h1,\n ul + .h1,\n ol + .h1,\n dl + .h1,\n figure + .h1,\n img + .h1,\n table + .h1,\n blockquote + .h1 {\n margin-top: 1.7307692308em;\n }\n h2 + h1, .h2 + h1, h3 + h1, .h3 + h1, h4 + h1, .h4 + h1, h5 + h1, .h5 + h1, h6 + h1, .h6 + h1,\n h2 + .h1,\n .h2 + .h1,\n h3 + .h1,\n .h3 + .h1,\n h4 + .h1,\n .h4 + .h1,\n h5 + .h1,\n .h5 + .h1,\n h6 + .h1,\n .h6 + .h1 {\n margin-top: 1.1538461538em;\n }\n}\n@media only all and (max-width: 37.5em) {\n h1,\n .h1 {\n font-size: 1.625em;\n font-weight: 600;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.5769230769em;\n }\n p + h1, ul + h1, ol + h1, dl + h1, figure + h1, img + h1, table + h1, blockquote + h1,\n p + .h1,\n ul + .h1,\n ol + .h1,\n dl + .h1,\n figure + .h1,\n img + .h1,\n table + .h1,\n blockquote + .h1 {\n margin-top: 1.7307692308em;\n }\n h1 + h1, .h1 + h1, h3 + h1, .h3 + h1, h4 + h1, .h4 + h1, h5 + h1, .h5 + h1, h6 + h1, .h6 + h1,\n h1 + .h1,\n .h1 + .h1,\n h3 + .h1,\n .h3 + .h1,\n h4 + .h1,\n .h4 + .h1,\n h5 + .h1,\n .h5 + .h1,\n h6 + .h1,\n .h6 + .h1 {\n margin-top: 1.1538461538em;\n }\n}\n\nh2,\n.h2 {\n font-size: 1.625em;\n font-weight: 600;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.5769230769em;\n}\np + h2, ul + h2, ol + h2, dl + h2, figure + h2, img + h2, table + h2, blockquote + h2,\np + .h2,\nul + .h2,\nol + .h2,\ndl + .h2,\nfigure + .h2,\nimg + .h2,\ntable + .h2,\nblockquote + .h2 {\n margin-top: 1.7307692308em;\n}\nh1 + h2, .h1 + h2, h3 + h2, .h3 + h2, h4 + h2, .h4 + h2, h5 + h2, .h5 + h2, h6 + h2, .h6 + h2,\nh1 + .h2,\n.h1 + .h2,\nh3 + .h2,\n.h3 + .h2,\nh4 + .h2,\n.h4 + .h2,\nh5 + .h2,\n.h5 + .h2,\nh6 + .h2,\n.h6 + .h2 {\n margin-top: 1.1538461538em;\n}\n@media only all and (max-width: 37.5em) {\n p + h2, ul + h2, ol + h2, dl + h2, figure + h2, img + h2, table + h2, blockquote + h2,\n p + .h2,\n ul + .h2,\n ol + .h2,\n dl + .h2,\n figure + .h2,\n img + .h2,\n table + .h2,\n blockquote + .h2 {\n margin-top: 1.3636363636em;\n }\n}\n@media only all and (max-width: 37.5em) {\n h2,\n .h2 {\n font-size: 1.375em;\n font-weight: 600;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.6818181818em;\n }\n p + h2, ul + h2, ol + h2, dl + h2, figure + h2, img + h2, table + h2, blockquote + h2, h1 + h2, .h1 + h2, h2 + h2, .h2 + h2, h4 + h2, .h4 + h2, h5 + h2, .h5 + h2, h6 + h2, .h6 + h2,\n p + .h2,\n ul + .h2,\n ol + .h2,\n dl + .h2,\n figure + .h2,\n img + .h2,\n table + .h2,\n blockquote + .h2,\n h1 + .h2,\n .h1 + .h2,\n h2 + .h2,\n .h2 + .h2,\n h4 + .h2,\n .h4 + .h2,\n h5 + .h2,\n .h5 + .h2,\n h6 + .h2,\n .h6 + .h2 {\n margin-top: 1.3636363636em;\n }\n}\n\nh3,\n.h3 {\n font-size: 1.375em;\n font-weight: normal;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.6818181818em;\n}\np + h3, ul + h3, ol + h3, dl + h3, figure + h3, img + h3, table + h3, blockquote + h3, h1 + h3, .h1 + h3, h2 + h3, .h2 + h3, h4 + h3, .h4 + h3, h5 + h3, .h5 + h3, h6 + h3, .h6 + h3,\np + .h3,\nul + .h3,\nol + .h3,\ndl + .h3,\nfigure + .h3,\nimg + .h3,\ntable + .h3,\nblockquote + .h3,\nh1 + .h3,\n.h1 + .h3,\nh2 + .h3,\n.h2 + .h3,\nh4 + .h3,\n.h4 + .h3,\nh5 + .h3,\n.h5 + .h3,\nh6 + .h3,\n.h6 + .h3 {\n margin-top: 1.3636363636em;\n}\n@media only all and (max-width: 37.5em) {\n h3,\n .h3 {\n font-size: 1.125em;\n font-weight: normal;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.8333333333em;\n }\n p + h3, ul + h3, ol + h3, dl + h3, figure + h3, img + h3, table + h3, blockquote + h3, h1 + h3, .h1 + h3, h2 + h3, .h2 + h3, h3 + h3, .h3 + h3, h5 + h3, .h5 + h3, h6 + h3, .h6 + h3,\n p + .h3,\n ul + .h3,\n ol + .h3,\n dl + .h3,\n figure + .h3,\n img + .h3,\n table + .h3,\n blockquote + .h3,\n h1 + .h3,\n .h1 + .h3,\n h2 + .h3,\n .h2 + .h3,\n h3 + .h3,\n .h3 + .h3,\n h5 + .h3,\n .h5 + .h3,\n h6 + .h3,\n .h6 + .h3 {\n margin-top: 1.6666666667em;\n }\n}\n\nh4,\n.h4 {\n font-size: 1.125em;\n font-weight: 500;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n margin-bottom: 0.8333333333em;\n}\np + h4, ul + h4, ol + h4, dl + h4, figure + h4, img + h4, table + h4, blockquote + h4, h1 + h4, .h1 + h4, h2 + h4, .h2 + h4, h3 + h4, .h3 + h4, h5 + h4, .h5 + h4, h6 + h4, .h6 + h4,\np + .h4,\nul + .h4,\nol + .h4,\ndl + .h4,\nfigure + .h4,\nimg + .h4,\ntable + .h4,\nblockquote + .h4,\nh1 + .h4,\n.h1 + .h4,\nh2 + .h4,\n.h2 + .h4,\nh3 + .h4,\n.h3 + .h4,\nh5 + .h4,\n.h5 + .h4,\nh6 + .h4,\n.h6 + .h4 {\n margin-top: 1.6666666667em;\n}\n@media only all and (max-width: 37.5em) {\n h4,\n .h4 {\n margin-bottom: 0.625em;\n font-size: 1em;\n line-height: 1.125;\n }\n}\n\nh5,\n.h5 {\n font-size: 0.875em;\n font-weight: 600;\n letter-spacing: 1px;\n line-height: 1.25;\n text-transform: uppercase;\n margin-bottom: 1.0714285714em;\n}\np + h5, ul + h5, ol + h5, dl + h5, figure + h5, img + h5, table + h5, blockquote + h5, h1 + h5, .h1 + h5, h2 + h5, .h2 + h5, h3 + h5, .h3 + h5, h4 + h5, .h4 + h5, h6 + h5, .h6 + h5,\np + .h5,\nul + .h5,\nol + .h5,\ndl + .h5,\nfigure + .h5,\nimg + .h5,\ntable + .h5,\nblockquote + .h5,\nh1 + .h5,\n.h1 + .h5,\nh2 + .h5,\n.h2 + .h5,\nh3 + .h5,\n.h3 + .h5,\nh4 + .h5,\n.h4 + .h5,\nh6 + .h5,\n.h6 + .h5 {\n margin-top: 2.1428571429em;\n}\n\nh6,\n.h6 {\n font-size: 0.75em;\n font-weight: 600;\n letter-spacing: 1px;\n line-height: 1.25;\n text-transform: uppercase;\n margin-bottom: 1.25em;\n}\np + h6, ul + h6, ol + h6, dl + h6, figure + h6, img + h6, table + h6, blockquote + h6, h1 + h6, .h1 + h6, h2 + h6, .h2 + h6, h3 + h6, .h3 + h6, h4 + h6, .h4 + h6, h5 + h6, .h5 + h6,\np + .h6,\nul + .h6,\nol + .h6,\ndl + .h6,\nfigure + .h6,\nimg + .h6,\ntable + .h6,\nblockquote + .h6,\nh1 + .h6,\n.h1 + .h6,\nh2 + .h6,\n.h2 + .h6,\nh3 + .h6,\n.h3 + .h6,\nh4 + .h6,\n.h4 + .h6,\nh5 + .h6,\n.h5 + .h6 {\n margin-top: 2.5em;\n}\n\n.lead-paragraph {\n margin-top: 0;\n margin-bottom: 15px;\n font-size: 1.375em;\n font-weight: normal;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n}\n@media only all and (max-width: 37.5em) {\n .lead-paragraph {\n font-size: 1.125em;\n font-weight: normal;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n }\n}\n\n.superheading {\n margin-bottom: 0.4166666667em;\n font-size: 3em;\n font-weight: normal;\n line-height: 1.25;\n}\n\np,\nul,\nol,\ndl,\nfigure,\ntable,\nblockquote {\n margin-top: 0;\n margin-bottom: 0.9375em;\n}\np:last-child,\nul:last-child,\nol:last-child,\ndl:last-child,\nfigure:last-child,\ntable:last-child,\nblockquote:last-child {\n margin-bottom: 0;\n}\n\np + ul,\np + ol {\n margin-top: -0.3125em;\n}\n\nul ul,\nol ol,\nul ol,\nol ul {\n margin-top: 0.5em;\n}\n\nli {\n margin-bottom: 0.5em;\n}\nli:last-child, nav li {\n margin-bottom: 0;\n}\n\na {\n border-width: 0;\n border-style: dotted;\n border-color: var(--pacific);\n color: var(--pacific);\n text-decoration: none;\n}\na:visited, a.visited {\n border-color: var(--teal);\n color: var(--teal);\n}\na:hover, a.hover {\n border-style: solid;\n border-color: var(--pacific-dark);\n color: var(--pacific-dark);\n}\na:focus, a.focus {\n border-style: solid;\n outline: thin dotted;\n outline-offset: 1px;\n}\na:active, a.active {\n border-style: solid;\n border-color: var(--navy);\n color: var(--navy);\n}\n\np a,\nli a,\ndd a {\n border-bottom-width: 1px;\n}\n\nnav a {\n border-bottom-width: 0;\n}\n\nul {\n padding-left: 1.125em;\n list-style: square;\n}\n\nul ul {\n list-style-type: circle;\n}\n\nol {\n padding-left: 1.3125em;\n}\nol li:nth-last-child(n+10),\nol li:nth-last-child(n+10) ~ li {\n margin-left: 0.5625rem;\n}\n\nol ol {\n list-style-type: lower-alpha;\n}\nol ol li {\n margin-left: 0 !important;\n}\n\nol ol ol {\n list-style-type: lower-roman;\n}\n\nnav ul,\nnav ol,\nnav ul ul,\nnav ol ol {\n list-style: none;\n list-style-image: none;\n}\n\ncaption {\n margin-bottom: 0.625em;\n text-align: left;\n}\n\nth,\ntd {\n padding: 0.625em;\n}\nthead th,\nthead td {\n padding: 0.7142857143em;\n background: var(--gray-5);\n color: var(--black);\n font-size: 1em;\n vertical-align: top;\n}\n\nthead,\ntbody tr {\n border-bottom: 1px solid var(--gray);\n}\n\nth {\n font-weight: 600;\n text-align: left;\n}\nthead th h2,\nthead th .h2,\nthead th h3,\nthead th .h3,\nthead th h4,\nthead th .h4,\nthead th h5,\nthead th .h5,\nthead th h6,\nthead th .h6 {\n margin: 0;\n font-size: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n line-height: inherit;\n text-transform: inherit;\n}\n\nblockquote {\n margin-right: 0.9375em;\n margin-left: 0.9375em;\n}\n@media only all and (min-width: 37.5625em) {\n blockquote {\n margin-right: 1.875em;\n margin-left: 1.875em;\n }\n}\n\nimg {\n max-width: 100%;\n}\n\nfigure {\n margin-right: 0;\n margin-left: 0;\n}\nfigure img {\n vertical-align: middle;\n}\n\npre,\ncode {\n background: var(--gray-5);\n border-radius: 4px;\n color: var(--black);\n font-family: \"Input Mono\", Consolas, Monaco, \"Courier New\", monospace;\n}\n\ncode {\n padding: 0.2307692308em 0.2307692308em 0;\n font-size: 0.8125em;\n}\n\npre {\n display: block;\n padding: 0.625em 0.9375em;\n white-space: pre-wrap;\n overflow-wrap: break-word;\n}\npre code {\n padding: 0;\n background-color: transparent;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Button Styling\n ========================================================================== */\nbutton.a-btn::-moz-focus-inner,\ninput.a-btn::-moz-focus-inner {\n border: 0;\n}\n\n.a-btn {\n appearance: none;\n display: inline-block;\n box-sizing: border-box;\n padding: 0.5em 0.875em;\n border: 0;\n margin: 0;\n border-radius: 0.25em;\n cursor: pointer;\n font-size: 1em;\n font-weight: 500;\n line-height: normal;\n text-align: center;\n text-decoration: none;\n transition: background-color 0.1s;\n}\n.a-btn, .a-btn:link, .a-btn:visited {\n background-color: var(--pacific);\n color: var(--white);\n}\n.a-btn:hover, .a-btn.hover, .a-btn:focus, .a-btn.focus {\n background-color: var(--pacific-dark);\n}\n.a-btn:focus, .a-btn.focus {\n outline: 1px dotted var(--pacific);\n outline-offset: 1px;\n}\n.a-btn:active, .a-btn.active {\n background-color: var(--navy);\n}\n.a-btn--secondary, .a-btn--secondary:link, .a-btn--secondary:visited {\n background-color: var(--gray);\n color: var(--white);\n}\n.a-btn--secondary:hover, .a-btn--secondary.hover, .a-btn--secondary:focus, .a-btn--secondary.focus {\n background-color: var(--gray-dark);\n}\n.a-btn--secondary:focus, .a-btn--secondary.focus {\n outline-color: var(--gray);\n}\n.a-btn--secondary:active, .a-btn--secondary.active {\n background-color: var(--black);\n}\n.a-btn--warning, .a-btn--warning:link, .a-btn--warning:visited {\n background-color: var(--red-mid-dark);\n color: var(--white);\n}\n.a-btn--warning:hover, .a-btn--warning.hover, .a-btn--warning:focus, .a-btn--warning.focus {\n background-color: var(--red-dark);\n}\n.a-btn--warning:focus, .a-btn--warning.focus {\n outline-color: var(--red-mid-dark);\n}\n.a-btn--warning:active, .a-btn--warning.active {\n background-color: var(--gray-dark);\n}\n.a-btn--disabled, .a-btn--disabled:link, .a-btn--disabled:visited, .a-btn--disabled:hover, .a-btn--disabled.hover, .a-btn--disabled:focus, .a-btn--disabled.focus, .a-btn--disabled:active, .a-btn--disabled.active, .a-btn[disabled], .a-btn[disabled]:link, .a-btn[disabled]:visited, .a-btn[disabled]:hover, .a-btn[disabled].hover, .a-btn[disabled]:focus, .a-btn[disabled].focus, .a-btn[disabled]:active, .a-btn[disabled].active {\n background-color: var(--gray-20);\n color: var(--gray-dark);\n cursor: default;\n cursor: not-allowed;\n}\n.a-btn--disabled:focus, .a-btn--disabled.focus, .a-btn[disabled]:focus, .a-btn[disabled].focus {\n outline-color: var(--gray-20);\n}\n@media only all and (max-width: 37.5em) {\n .a-btn--full-on-xs {\n display: block;\n width: 100%;\n }\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.m-btn-group {\n display: flex;\n gap: 0.625rem;\n flex-wrap: wrap;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Button Styling\n ========================================================================== */\n.a-btn--link {\n padding: 0;\n padding-bottom: 1.5px;\n border-radius: 0;\n text-decoration-line: underline;\n text-decoration-thickness: 1px;\n text-decoration-style: dotted;\n text-underline-offset: 4.5px;\n}\n.a-btn--link, .a-btn--link:link, .a-btn--link:visited {\n text-decoration-color: var(--pacific);\n background-color: transparent;\n color: var(--pacific);\n}\n.a-btn--link:hover, .a-btn--link.hover {\n text-decoration-color: var(--pacific-dark);\n text-decoration-style: solid;\n background-color: transparent;\n color: var(--pacific-dark);\n}\n.a-btn--link:focus, .a-btn--link.focus {\n text-decoration-style: solid;\n background-color: transparent;\n outline: 1px dotted var(--pacific);\n}\n.a-btn--link:active, .a-btn--link.active {\n text-decoration-color: var(--navy);\n text-decoration-style: solid;\n background-color: transparent;\n color: var(--navy);\n}\n.a-btn--link.a-btn--secondary, .a-btn--link.a-btn--secondary:link, .a-btn--link.a-btn--secondary:visited {\n text-decoration-color: var(--gray);\n background-color: transparent;\n color: var(--gray);\n}\n.a-btn--link.a-btn--secondary:hover, .a-btn--link.a-btn--secondary.hover {\n text-decoration-color: var(--gray-dark);\n color: var(--gray-dark);\n}\n.a-btn--link.a-btn--secondary:focus, .a-btn--link.a-btn--secondary.focus {\n outline-color: var(--gray);\n}\n.a-btn--link.a-btn--secondary:active, .a-btn--link.a-btn--secondary.active {\n text-decoration-color: var(--black);\n color: var(--black);\n}\n.a-btn--link.a-btn--warning, .a-btn--link.a-btn--warning:link, .a-btn--link.a-btn--warning:visited {\n text-decoration-color: var(--red-mid-dark);\n background-color: transparent;\n color: var(--red-mid-dark);\n}\n.a-btn--link.a-btn--warning:hover, .a-btn--link.a-btn--warning.hover {\n text-decoration-color: var(--red-dark);\n color: var(--red-dark);\n}\n.a-btn--link.a-btn--warning:focus, .a-btn--link.a-btn--warning.focus {\n outline-color: var(--red-mid-dark);\n}\n.a-btn--link.a-btn--warning:active, .a-btn--link.a-btn--warning.active {\n text-decoration-color: var(--gray-dark);\n color: var(--gray-dark);\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Button Styling\n ========================================================================== */\n.a-btn__icon--on-left {\n padding-right: 0.6875em;\n border-right: 1px solid var(--pacific-60);\n margin-right: 0.4375em;\n}\n\n.a-btn__icon--on-right {\n padding-left: 0.6875em;\n border-left: 1px solid var(--pacific-60);\n margin-left: 0.4375em;\n}\n\n.a-btn--secondary .a-btn__icon {\n border-color: var(--gray-40);\n}\n.a-btn--warning .a-btn__icon {\n border-color: var(--red-60);\n}\n.a-btn--disabled .a-btn__icon, .a-btn[disabled] .a-btn__icon {\n border-color: var(--gray-60);\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.o-form__group {\n margin-bottom: 1.875em;\n}\n.o-form__fieldset {\n border: none;\n margin: 0;\n padding: 0;\n}\n.o-form__fieldset .m-form-field + .m-form-field {\n margin-top: 0.625em;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.a-form-alert .cf-icon-svg {\n color: var(--gray);\n float: left;\n}\n.a-form-alert__text {\n display: block;\n margin-left: 1.25em;\n}\n.a-form-alert--success .cf-icon-svg {\n color: var(--green);\n}\n.a-form-alert--error .cf-icon-svg {\n color: var(--red);\n}\n.a-form-alert--warning .cf-icon-svg {\n color: var(--gold);\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Utilities\n ========================================================================== */\n.no-js .u-js-only {\n display: none !important;\n}\n\n.u-hide-if-js {\n display: none !important;\n}\n.no-js .u-hide-if-js {\n display: block !important;\n}\n\n.u-clearfix::after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n.u-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n border: 0;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0 0 0 0);\n}\n\n@media only all and (max-width: 37.5em) {\n .u-hide-on-mobile {\n display: none;\n }\n}\n\n.u-show-on-mobile {\n display: none;\n}\n@media only all and (max-width: 37.5em) {\n .u-show-on-mobile {\n display: block;\n }\n}\n\n.u-hidden {\n display: none !important;\n}\n\n.u-invisible {\n visibility: hidden;\n}\n\n.u-inline-block {\n display: inline-block;\n}\n\n.u-right {\n float: right;\n}\n\n.u-break-word {\n word-break: break-all;\n}\n\n.u-nowrap {\n white-space: nowrap;\n}\n\n/* stylelint-disable selector-class-pattern */\n.u-flexible-container {\n /* stylelint-enable */\n position: relative;\n padding-bottom: 56.25%;\n height: 0;\n}\n.u-flexible-container__inner {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.u-flexible-container--4-3 {\n /* stylelint-enable */\n position: relative;\n padding-bottom: 75%;\n height: 0;\n}\n\n/* stylelint-disable selector-class-pattern */\n/* stylelint-enable */\n.u-mt0 {\n margin-top: 0 !important;\n}\n\n.u-mb0 {\n margin-bottom: 0 !important;\n}\n\n.u-mt5 {\n margin-top: 5px !important;\n}\n\n.u-mb5 {\n margin-bottom: 5px !important;\n}\n\n.u-mt10 {\n margin-top: 10px !important;\n}\n\n.u-mb10 {\n margin-bottom: 10px !important;\n}\n\n.u-mt15 {\n margin-top: 15px !important;\n}\n\n.u-mb15 {\n margin-bottom: 15px !important;\n}\n\n.u-mt20 {\n margin-top: 20px !important;\n}\n\n.u-mb20 {\n margin-bottom: 20px !important;\n}\n\n.u-mt30 {\n margin-top: 30px !important;\n}\n\n.u-mb30 {\n margin-bottom: 30px !important;\n}\n\n.u-mt45 {\n margin-top: 45px !important;\n}\n\n.u-mb45 {\n margin-bottom: 45px !important;\n}\n\n.u-mt60 {\n margin-top: 60px !important;\n}\n\n.u-mb60 {\n margin-bottom: 60px !important;\n}\n\n.u-w100pct {\n width: 100%;\n}\n\n.u-w90pct {\n width: 90%;\n}\n\n.u-w80pct {\n width: 80%;\n}\n\n.u-w70pct {\n width: 70%;\n}\n\n.u-w60pct {\n width: 60%;\n}\n\n.u-w50pct {\n width: 50%;\n}\n\n.u-w40pct {\n width: 40%;\n}\n\n.u-w30pct {\n width: 30%;\n}\n\n.u-w20pct {\n width: 20%;\n}\n\n.u-w10pct {\n width: 10%;\n}\n\n.u-w75pct {\n width: 75%;\n}\n\n.u-w25pct {\n width: 25%;\n}\n\n.u-w66pct {\n width: 66.6666666667%;\n}\n\n.u-w33pct {\n width: 33.3333333333%;\n}\n\n/* stylelint-disable selector-class-pattern */\nsmall,\n.u-small-text {\n /* stylelint-enable */\n font-size: 0.875em;\n}\n\n/* ==========================================================================\n Utility classes for transitions.\n\n Adds transitions utilty classes for transform, opacity,\n and for the removing the transition duration.\n ========================================================================== */\n.u-no-animation {\n transition-duration: 0s !important;\n}\n\n.u-move-transition {\n transition: transform 0.25s ease-out;\n}\n\n.u-move-to-origin {\n transform: translate3d(0, 0, 0);\n}\n\n.u-move-left {\n transform: translate3d(-100%, 0, 0);\n}\n\n.u-move-left-2x {\n transform: translate3d(-200%, 0, 0);\n}\n\n.u-move-left-3x {\n transform: translate3d(-300%, 0, 0);\n}\n\n.u-move-right {\n transform: translate3d(100%, 0, 0);\n}\n\n.u-move-up {\n transform: translate3d(0, -100%, 0);\n}\n\n.u-alpha-transition {\n transition: opacity 0.25s linear;\n}\n\n.u-alpha-100 {\n opacity: 1;\n}\n\n.u-alpha-0 {\n opacity: 0;\n}\n\n.u-max-height-transition {\n overflow: hidden;\n contain: paint;\n transition: max-height 0.2s ease-out;\n}\n\n/*\n.u-max-height-default {\n This class is kept for documentation completeness.\n The actual max-height is set in the JavaScript,\n so that we know what the actual height of the content is for easing purposes.\n}\n*/\n.u-max-height-zero {\n max-height: 0 !important;\n}\n\n.u-max-height-summary {\n /* The value set here should show 4 lines of text at our standard 16px\n base font size. The calculation comes from the following:\n 88px = 16 * 5.5em.\n 5.5em = base-line-height (22px) * 4 / base-font-size (16px)\n */\n max-height: 88px !important;\n}\n\n.m-form-field .a-text-input--full {\n box-sizing: border-box;\n width: 100%;\n}\n.m-form-field .a-label + .a-text-input {\n margin-top: 0.3125em;\n}\n.m-form-field--checkbox .a-label, .m-form-field--radio .a-label {\n /* autoprefixer: ignore next */\n display: inline-grid;\n grid-template-columns: 1.875em auto;\n vertical-align: top;\n cursor: pointer;\n overflow-wrap: anywhere;\n}\n.m-form-field--checkbox .a-label::before, .m-form-field--radio .a-label::before {\n display: inline-block;\n grid-row-start: 1;\n grid-row-end: 3;\n border: 1px solid var(--gray-60);\n height: 1.125em;\n width: 1.125em;\n margin-right: 10px;\n background-color: var(--white);\n content: \"\";\n vertical-align: top;\n position: relative;\n top: 1px;\n left: 1px;\n}\n.m-form-field--checkbox .a-label:hover::before, .m-form-field--checkbox .a-label.hover::before, .m-form-field--radio .a-label:hover::before, .m-form-field--radio .a-label.hover::before {\n border-color: var(--pacific);\n}\n.m-form-field--checkbox .a-label__helper, .m-form-field--radio .a-label__helper {\n display: block;\n}\n.m-form-field--checkbox .a-checkbox,\n.m-form-field--checkbox .a-radio, .m-form-field--radio .a-checkbox,\n.m-form-field--radio .a-radio {\n position: absolute;\n width: 1px;\n height: 1px;\n border: 0;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0 0 0 0);\n}\n.m-form-field--checkbox .a-checkbox:focus + .a-label, .m-form-field--checkbox .a-checkbox.focus + .a-label,\n.m-form-field--checkbox .a-radio:focus + .a-label,\n.m-form-field--checkbox .a-radio.focus + .a-label, .m-form-field--radio .a-checkbox:focus + .a-label, .m-form-field--radio .a-checkbox.focus + .a-label,\n.m-form-field--radio .a-radio:focus + .a-label,\n.m-form-field--radio .a-radio.focus + .a-label {\n outline: 1px dotted var(--pacific);\n outline-offset: 1px;\n}\n.m-form-field--checkbox .a-checkbox:disabled:checked + .a-label::before, .m-form-field--checkbox .a-checkbox:disabled:focus + .a-label::before, .m-form-field--checkbox .a-checkbox:disabled.focus + .a-label::before, .m-form-field--checkbox .a-checkbox:disabled:hover + .a-label::before, .m-form-field--checkbox .a-checkbox:disabled.hover + .a-label::before,\n.m-form-field--checkbox .a-radio:disabled:checked + .a-label::before,\n.m-form-field--checkbox .a-radio:disabled:focus + .a-label::before,\n.m-form-field--checkbox .a-radio:disabled.focus + .a-label::before,\n.m-form-field--checkbox .a-radio:disabled:hover + .a-label::before,\n.m-form-field--checkbox .a-radio:disabled.hover + .a-label::before, .m-form-field--radio .a-checkbox:disabled:checked + .a-label::before, .m-form-field--radio .a-checkbox:disabled:focus + .a-label::before, .m-form-field--radio .a-checkbox:disabled.focus + .a-label::before, .m-form-field--radio .a-checkbox:disabled:hover + .a-label::before, .m-form-field--radio .a-checkbox:disabled.hover + .a-label::before,\n.m-form-field--radio .a-radio:disabled:checked + .a-label::before,\n.m-form-field--radio .a-radio:disabled:focus + .a-label::before,\n.m-form-field--radio .a-radio:disabled.focus + .a-label::before,\n.m-form-field--radio .a-radio:disabled:hover + .a-label::before,\n.m-form-field--radio .a-radio:disabled.hover + .a-label::before {\n border-color: var(--gray-60);\n outline: none;\n box-shadow: none;\n}\n.m-form-field--checkbox .a-checkbox:disabled + .a-label,\n.m-form-field--checkbox .a-radio:disabled + .a-label, .m-form-field--radio .a-checkbox:disabled + .a-label,\n.m-form-field--radio .a-radio:disabled + .a-label {\n cursor: not-allowed;\n color: var(--gray-dark);\n}\n.m-form-field--checkbox .a-checkbox:disabled + .a-label::before,\n.m-form-field--checkbox .a-radio:disabled + .a-label::before, .m-form-field--radio .a-checkbox:disabled + .a-label::before,\n.m-form-field--radio .a-radio:disabled + .a-label::before {\n background: var(--gray-10);\n border-color: var(--gray-60);\n}\n.m-form-field--checkbox .a-checkbox:focus + .a-label::before, .m-form-field--checkbox .a-checkbox.focus + .a-label::before {\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific);\n}\n.m-form-field--checkbox .a-checkbox:hover + .a-label::before, .m-form-field--checkbox .a-checkbox.hover + .a-label::before {\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific);\n}\n.m-form-field--checkbox .a-checkbox:checked + .a-label::before {\n background-image: url('data:image/svg+xml;charset=UTF-8,');\n background-size: auto 1.1875em;\n background-repeat: no-repeat;\n background-position: center 0;\n}\n.m-form-field--checkbox .a-checkbox:disabled:checked + .a-label::before {\n background-image: url('data:image/svg+xml;charset=UTF-8,');\n}\n.m-form-field--checkbox-error .a-label::before {\n border-color: var(--red);\n outline: 1px solid var(--red);\n}\n.m-form-field--checkbox-error .a-label:hover::before, .m-form-field--checkbox-error .a-label.hover::before {\n border-color: var(--pacific);\n outline-color: var(--pacific);\n}\n.m-form-field--checkbox-error .a-checkbox:hover + .a-label::before, .m-form-field--checkbox-error .a-checkbox.hover + .a-label::before {\n border-color: var(--pacific);\n outline-color: var(--pacific);\n}\n.m-form-field--checkbox-error .a-checkbox:focus + .a-label::before, .m-form-field--checkbox-error .a-checkbox.focus + .a-label::before {\n border-color: var(--red);\n box-shadow: 0 0 0 1px var(--red);\n outline-color: var(--red);\n}\n.m-form-field--checkbox-error .a-checkbox:focus + .a-label, .m-form-field--checkbox-error .a-checkbox.focus + .a-label {\n outline: 1px dotted var(--red);\n outline-offset: 1px;\n}\n.m-form-field--checkbox-warning .a-label::before {\n border-color: var(--gold);\n outline: 1px solid var(--gold);\n}\n.m-form-field--checkbox-warning .a-label:hover::before, .m-form-field--checkbox-warning .a-label.hover::before {\n border-color: var(--pacific);\n outline-color: var(--pacific);\n}\n.m-form-field--checkbox-warning .a-checkbox:hover + .a-label::before, .m-form-field--checkbox-warning .a-checkbox.hover + .a-label::before {\n border-color: var(--pacific);\n outline-color: var(--pacific);\n}\n.m-form-field--checkbox-warning .a-checkbox:focus + .a-label::before, .m-form-field--checkbox-warning .a-checkbox.focus + .a-label::before {\n border-color: var(--gold);\n box-shadow: 0 0 0 1px var(--gold);\n outline-color: var(--gold);\n}\n.m-form-field--checkbox-warning .a-checkbox:focus + .a-label, .m-form-field--checkbox-warning .a-checkbox.focus + .a-label {\n outline: 1px dotted var(--gold);\n outline-offset: 1px;\n}\n.m-form-field--checkbox-success .a-label::before {\n border-color: var(--green);\n outline: 1px solid var(--green);\n}\n.m-form-field--checkbox-success .a-label:hover::before, .m-form-field--checkbox-success .a-label.hover::before {\n border-color: var(--pacific);\n outline-color: var(--pacific);\n}\n.m-form-field--checkbox-success .a-checkbox:hover + .a-label::before, .m-form-field--checkbox-success .a-checkbox.hover + .a-label::before {\n border-color: var(--pacific);\n outline-color: var(--pacific);\n}\n.m-form-field--checkbox-success .a-checkbox:focus + .a-label::before, .m-form-field--checkbox-success .a-checkbox.focus + .a-label::before {\n border-color: var(--green);\n box-shadow: 0 0 0 1px var(--green);\n outline-color: var(--green);\n}\n.m-form-field--checkbox-success .a-checkbox:focus + .a-label, .m-form-field--checkbox-success .a-checkbox.focus + .a-label {\n outline: 1px dotted var(--green);\n outline-offset: 1px;\n}\n.m-form-field--radio .a-label::before {\n border-radius: 50%;\n /* The rotate is needed to fix a bug in Firefox where radio\n button was not centered. */\n transform: rotate(0deg);\n}\n.m-form-field--radio .a-radio:focus + .a-label::before, .m-form-field--radio .a-radio.focus + .a-label::before {\n outline: none;\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific);\n}\n.m-form-field--radio .a-radio:hover + .a-label::before, .m-form-field--radio .a-radio.hover + .a-label::before {\n outline: none;\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific);\n}\n.m-form-field--radio .a-radio:checked + .a-label::before {\n background-color: var(--pacific);\n box-shadow: inset 0 0 0 2px var(--white);\n}\n.m-form-field--radio .a-radio:checked:disabled + .a-label::before {\n background-color: var(--gray-40);\n box-shadow: inset 0 0 0 2px var(--gray-10);\n}\n.m-form-field--radio .a-radio:focus:checked + .a-label::before, .m-form-field--radio .a-radio.focus:checked + .a-label::before {\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific), inset 0 0 0 2px var(--white);\n}\n.m-form-field--radio .a-radio:hover:checked + .a-label::before, .m-form-field--radio .a-radio.hover:checked + .a-label::before {\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific), inset 0 0 0 2px var(--white);\n}\n.m-form-field--lg-target {\n display: block;\n}\n.m-form-field--lg-target .a-label {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n background-color: var(--gray-10);\n}\n.m-form-field--lg-target .a-checkbox:checked + .a-label,\n.m-form-field--lg-target .a-radio:checked + .a-label {\n background-color: var(--pacific-20);\n box-shadow: inset 0 0 0 1px var(--pacific);\n}\n.m-form-field--lg-target .a-checkbox:hover + .a-label, .m-form-field--lg-target .a-checkbox.hover + .a-label, .m-form-field--lg-target .a-checkbox:focus + .a-label, .m-form-field--lg-target .a-checkbox.focus + .a-label,\n.m-form-field--lg-target .a-radio:hover + .a-label,\n.m-form-field--lg-target .a-radio.hover + .a-label,\n.m-form-field--lg-target .a-radio:focus + .a-label,\n.m-form-field--lg-target .a-radio.focus + .a-label {\n box-shadow: inset 0 0 0 2px var(--pacific);\n}\n.m-form-field--lg-target .a-checkbox:focus + .a-label, .m-form-field--lg-target .a-checkbox.focus + .a-label, .m-form-field--lg-target .a-checkbox:checked + .a-label,\n.m-form-field--lg-target .a-radio:focus + .a-label,\n.m-form-field--lg-target .a-radio.focus + .a-label,\n.m-form-field--lg-target .a-radio:checked + .a-label {\n outline-offset: 1px;\n}\n.m-form-field--lg-target .a-checkbox:disabled + .a-label, .m-form-field--lg-target .a-checkbox:checked:disabled + .a-label, .m-form-field--lg-target .a-checkbox:hover:disabled + .a-label,\n.m-form-field--lg-target .a-radio:disabled + .a-label,\n.m-form-field--lg-target .a-radio:checked:disabled + .a-label,\n.m-form-field--lg-target .a-radio:hover:disabled + .a-label {\n color: var(--gray-dark);\n box-shadow: none;\n background-color: var(--gray-20);\n}\n.m-form-field--lg-target .a-checkbox:checked:disabled + .a-label, .m-form-field--lg-target .a-checkbox:checked:disabled + .a-label::before,\n.m-form-field--lg-target .a-radio:checked:disabled + .a-label,\n.m-form-field--lg-target .a-radio:checked:disabled + .a-label::before {\n border: 1px solid var(--gray-60);\n}\n.m-form-field .a-form-alert {\n margin-top: 0.9375em;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.a-label {\n display: inline-block;\n}\n.a-label__helper {\n color: var(--gray-dark);\n font-size: 1rem;\n font-weight: normal;\n}\n.a-label__helper--block {\n display: block;\n margin-top: 0.8333333333em;\n}\n.a-label--heading {\n display: block;\n margin-bottom: 0.5555555556em;\n font-size: 1.125em;\n font-weight: 500;\n letter-spacing: inherit;\n line-height: 1.25;\n text-transform: inherit;\n}\np + .a-label--heading, ul + .a-label--heading, ol + .a-label--heading, dl + .a-label--heading, figure + .a-label--heading, img + .a-label--heading, table + .a-label--heading, blockquote + .a-label--heading, h1 + .a-label--heading, .h1 + .a-label--heading, h2 + .a-label--heading, .h2 + .a-label--heading, h3 + .a-label--heading, .h3 + .a-label--heading, h5 + .a-label--heading, .h5 + .a-label--heading, h6 + .a-label--heading, .h6 + .a-label--heading {\n margin-top: 1.6666666667em;\n}\n@media only all and (max-width: 37.5em) {\n .a-label--heading {\n margin-bottom: 0.625em;\n font-size: 1em;\n line-height: 1.125;\n }\n}\n.a-label--heading .a-label__helper--block {\n margin-top: 0.625rem;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.a-range {\n appearance: none;\n width: 100%;\n min-height: 49px;\n}\n.a-range::-webkit-slider-runnable-track {\n height: 0.6875rem;\n width: 100%;\n background-color: var(--gray-80);\n border: 1px solid var(--gray-40);\n border-radius: 8px;\n cursor: pointer;\n}\n.a-range::-moz-range-track {\n height: 0.6875rem;\n width: 100%;\n background-color: var(--gray-80);\n border: 1px solid var(--gray-40);\n border-radius: 8px;\n cursor: pointer;\n}\n.a-range::-webkit-slider-thumb {\n height: 2.8125rem;\n width: 2.8125rem;\n margin-top: -1.125rem;\n appearance: none;\n border: 1px solid var(--gray-40);\n border-radius: 50%;\n background-color: var(--gray-10);\n cursor: pointer;\n}\n.a-range::-moz-range-thumb {\n height: 2.8125rem;\n width: 2.8125rem;\n margin-top: -1.125rem;\n appearance: none;\n border: 1px solid var(--gray-40);\n border-radius: 50%;\n background-color: var(--gray-10);\n cursor: pointer;\n}\n.a-range:focus, .a-range.focus {\n box-shadow: none;\n outline: none;\n}\n.a-range:focus::-webkit-slider-thumb, .a-range.focus::-webkit-slider-thumb {\n background-color: var(--pacific-20);\n border: 2px solid var(--pacific);\n}\n.a-range:focus::-moz-range-thumb, .a-range.focus::-moz-range-thumb {\n background-color: var(--pacific-20);\n border: 2px solid var(--pacific);\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.o-search-input {\n display: flex;\n flex-direction: column;\n row-gap: 0.9375rem;\n}\n.o-search-input__input {\n position: relative;\n display: flex;\n width: initial;\n flex: 0 1 100%;\n}\n.o-search-input__input-label {\n position: absolute;\n left: 10px;\n align-self: center;\n cursor: pointer;\n}\n.o-search-input__input input[type=search] {\n width: 100%;\n white-space: nowrap;\n padding-left: 30px;\n appearance: none;\n}\n.o-search-input__input button[type=reset] {\n display: none;\n position: absolute;\n right: 0;\n align-self: center;\n color: var(--gray-40);\n font-size: 20px;\n border: 1px solid transparent;\n background-color: transparent;\n outline: 0;\n width: 44px;\n padding: 5px;\n text-align: right;\n}\n.o-search-input__input button[type=reset] > svg {\n width: 25px;\n cursor: pointer;\n pointer-events: none;\n}\n.o-search-input__input button[type=reset]:hover {\n color: var(--black);\n}\n.o-search-input__input button[type=reset]:focus {\n color: var(--black);\n}\n.o-search-input__input button[type=reset]:focus > svg {\n outline: 1px dotted var(--pacific);\n}\n.o-search-input__input input[type=search]:placeholder-shown ~ button[type=reset] {\n display: none;\n}\n.o-search-input__input input[type=search]:not(:placeholder-shown) {\n padding-right: 34px;\n}\n.o-search-input__input input[type=search]::-webkit-search-decoration,\n.o-search-input__input input[type=search]::-webkit-search-cancel-button,\n.o-search-input__input input[type=search]::-webkit-search-results-button,\n.o-search-input__input input[type=search]::-webkit-search-results-decoration {\n display: none;\n}\n.o-search-input:focus-within button[type=reset], .o-search-input .o-search-input__input:hover button[type=reset] {\n display: block;\n}\n.o-search-input button[type=submit] {\n line-height: 1.1875;\n}\n@media only all and (min-width: 37.5625em) {\n .o-search-input {\n flex-direction: row;\n border-left: 0;\n }\n .o-search-input button[type=submit] {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n flex-basis: 25%;\n }\n}\n\n.no-js .o-search-input button[type=reset] {\n display: none !important;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.a-select {\n position: relative;\n border: 1px solid var(--gray-60);\n}\n.a-select select {\n width: 100%;\n line-height: 1.375;\n padding: 0.4375em 0.375em 0.375em;\n border: 0;\n appearance: none;\n background-color: var(--white);\n border-radius: 0;\n color: var(--black);\n}\n.a-select select:hover, .a-select select.hover {\n outline: 2px solid var(--pacific);\n outline-offset: 0;\n}\n.a-select select:active, .a-select select:focus, .a-select select.focus {\n box-shadow: 0 0 0 2px var(--pacific);\n outline: 1px dotted var(--pacific);\n outline-offset: 3px;\n}\n.a-select select[disabled] {\n color: var(--gray-dark);\n background-color: var(--gray-10);\n cursor: not-allowed;\n}\n.a-select select[disabled]:hover, .a-select select[disabled].hover, .a-select select[disabled]:focus, .a-select select[disabled].focus {\n outline: none;\n}\n.a-select select[disabled] option,\n.a-select select[disabled] option:disabled,\n.a-select select option:disabled {\n color: var(--gray-dark);\n}\n.a-select::after {\n width: 2.1875em;\n box-sizing: border-box;\n border-left: 1px solid var(--gray-60);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: var(--gray-10);\n background-image: url('data:image/svg+xml;charset=UTF-8,');\n background-size: auto 1.1875em;\n background-repeat: no-repeat;\n background-position: center center;\n content: \"\";\n pointer-events: none;\n}\n.a-select--disabled::after {\n background-image: url('data:image/svg+xml;charset=UTF-8,');\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n/* ==========================================================================\n Design System\n Utilities\n ========================================================================== */\n.no-js .u-js-only {\n display: none !important;\n}\n\n.u-hide-if-js {\n display: none !important;\n}\n.no-js .u-hide-if-js {\n display: block !important;\n}\n\n.u-clearfix::after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n.u-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n border: 0;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0 0 0 0);\n}\n\n@media only all and (max-width: 37.5em) {\n .u-hide-on-mobile {\n display: none;\n }\n}\n\n.u-show-on-mobile {\n display: none;\n}\n@media only all and (max-width: 37.5em) {\n .u-show-on-mobile {\n display: block;\n }\n}\n\n.u-hidden {\n display: none !important;\n}\n\n.u-invisible {\n visibility: hidden;\n}\n\n.u-inline-block {\n display: inline-block;\n}\n\n.u-right {\n float: right;\n}\n\n.u-break-word {\n word-break: break-all;\n}\n\n.u-nowrap {\n white-space: nowrap;\n}\n\n/* stylelint-disable selector-class-pattern */\n.u-flexible-container {\n /* stylelint-enable */\n position: relative;\n padding-bottom: 56.25%;\n height: 0;\n}\n.u-flexible-container__inner {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.u-flexible-container--4-3 {\n /* stylelint-enable */\n position: relative;\n padding-bottom: 75%;\n height: 0;\n}\n\n/* stylelint-disable selector-class-pattern */\n/* stylelint-enable */\n.u-mt0 {\n margin-top: 0 !important;\n}\n\n.u-mb0 {\n margin-bottom: 0 !important;\n}\n\n.u-mt5 {\n margin-top: 5px !important;\n}\n\n.u-mb5 {\n margin-bottom: 5px !important;\n}\n\n.u-mt10 {\n margin-top: 10px !important;\n}\n\n.u-mb10 {\n margin-bottom: 10px !important;\n}\n\n.u-mt15 {\n margin-top: 15px !important;\n}\n\n.u-mb15 {\n margin-bottom: 15px !important;\n}\n\n.u-mt20 {\n margin-top: 20px !important;\n}\n\n.u-mb20 {\n margin-bottom: 20px !important;\n}\n\n.u-mt30 {\n margin-top: 30px !important;\n}\n\n.u-mb30 {\n margin-bottom: 30px !important;\n}\n\n.u-mt45 {\n margin-top: 45px !important;\n}\n\n.u-mb45 {\n margin-bottom: 45px !important;\n}\n\n.u-mt60 {\n margin-top: 60px !important;\n}\n\n.u-mb60 {\n margin-bottom: 60px !important;\n}\n\n.u-w100pct {\n width: 100%;\n}\n\n.u-w90pct {\n width: 90%;\n}\n\n.u-w80pct {\n width: 80%;\n}\n\n.u-w70pct {\n width: 70%;\n}\n\n.u-w60pct {\n width: 60%;\n}\n\n.u-w50pct {\n width: 50%;\n}\n\n.u-w40pct {\n width: 40%;\n}\n\n.u-w30pct {\n width: 30%;\n}\n\n.u-w20pct {\n width: 20%;\n}\n\n.u-w10pct {\n width: 10%;\n}\n\n.u-w75pct {\n width: 75%;\n}\n\n.u-w25pct {\n width: 25%;\n}\n\n.u-w66pct {\n width: 66.6666666667%;\n}\n\n.u-w33pct {\n width: 33.3333333333%;\n}\n\n/* stylelint-disable selector-class-pattern */\nsmall,\n.u-small-text {\n /* stylelint-enable */\n font-size: 0.875em;\n}\n\n/* ==========================================================================\n Utility classes for transitions.\n\n Adds transitions utilty classes for transform, opacity,\n and for the removing the transition duration.\n ========================================================================== */\n.u-no-animation {\n transition-duration: 0s !important;\n}\n\n.u-move-transition {\n transition: transform 0.25s ease-out;\n}\n\n.u-move-to-origin {\n transform: translate3d(0, 0, 0);\n}\n\n.u-move-left {\n transform: translate3d(-100%, 0, 0);\n}\n\n.u-move-left-2x {\n transform: translate3d(-200%, 0, 0);\n}\n\n.u-move-left-3x {\n transform: translate3d(-300%, 0, 0);\n}\n\n.u-move-right {\n transform: translate3d(100%, 0, 0);\n}\n\n.u-move-up {\n transform: translate3d(0, -100%, 0);\n}\n\n.u-alpha-transition {\n transition: opacity 0.25s linear;\n}\n\n.u-alpha-100 {\n opacity: 1;\n}\n\n.u-alpha-0 {\n opacity: 0;\n}\n\n.u-max-height-transition {\n overflow: hidden;\n contain: paint;\n transition: max-height 0.2s ease-out;\n}\n\n/*\n.u-max-height-default {\n This class is kept for documentation completeness.\n The actual max-height is set in the JavaScript,\n so that we know what the actual height of the content is for easing purposes.\n}\n*/\n.u-max-height-zero {\n max-height: 0 !important;\n}\n\n.u-max-height-summary {\n /* The value set here should show 4 lines of text at our standard 16px\n base font size. The calculation comes from the following:\n 88px = 16 * 5.5em.\n 5.5em = base-line-height (22px) * 4 / base-font-size (16px)\n */\n max-height: 88px !important;\n}\n\n.a-tag-filter {\n display: flex;\n gap: 0.625rem;\n border: 1px solid var(--teal);\n padding: 4px 6px;\n background-color: var(--teal-20);\n border-radius: 0.1875rem;\n color: var(--black);\n text-align: left;\n min-width: -moz-fit-content;\n min-width: fit-content;\n}\n.a-tag-filter:hover {\n background-color: var(--teal-40);\n cursor: pointer;\n}\n.a-tag-filter:focus {\n outline: 1px dotted var(--teal);\n outline-offset: 1px;\n}\n.a-tag-filter:active {\n background-color: var(--teal);\n}\n.a-tag-filter .cf-icon-svg {\n pointer-events: none;\n flex: none;\n}\n.a-tag-filter > label {\n display: contents;\n pointer-events: none;\n}\n\na.a-tag-filter {\n color: var(--black);\n border-color: var(--black);\n}\na.a-tag-filter:visited, a.a-tag-filter.visited {\n border-color: var(--black);\n color: var(--black);\n}\na.a-tag-filter:hover, a.a-tag-filter.hover {\n border-color: var(--black);\n color: var(--black);\n}\na.a-tag-filter:focus, a.a-tag-filter.focus {\n border-color: var(--black);\n color: var(--black);\n}\na.a-tag-filter:active, a.a-tag-filter.active {\n border-color: var(--black);\n color: var(--black);\n}\n\n.a-tag-topic {\n display: flex;\n gap: 0.3125rem;\n}\n\n.a-tag-topic {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--gold-80);\n letter-spacing: 1px;\n}\n.a-tag-topic .a-tag-topic__text {\n color: var(--gray);\n word-break: break-word;\n}\n@media only all and (max-width: 37.5em) {\n .a-tag-topic {\n position: relative;\n display: flex;\n align-items: center;\n gap: 0.3125rem;\n box-sizing: border-box;\n padding-top: 0.625em;\n padding-bottom: 0.625em;\n width: 100%;\n }\n .a-tag-topic .cf-icon-svg--right {\n margin-left: auto;\n }\n .a-tag-topic .a-tag-topic__text {\n border-bottom-width: 0;\n flex-shrink: 10;\n }\n}\n\na.a-tag-topic {\n border-color: var(--gold-80);\n color: var(--gold-80);\n border-color: var(--gold-80);\n}\na.a-tag-topic:visited, a.a-tag-topic.visited {\n border-color: var(--gold-80);\n color: var(--gold-80);\n}\na.a-tag-topic:hover, a.a-tag-topic.hover {\n border-color: var(--gold-80);\n color: var(--gold-80);\n}\na.a-tag-topic:focus, a.a-tag-topic.focus {\n border-color: var(--gold-80);\n color: var(--gold-80);\n}\na.a-tag-topic:active, a.a-tag-topic.active {\n border-color: var(--gold-80);\n color: var(--gold-80);\n}\na.a-tag-topic .a-tag-topic__text {\n border-bottom-color: var(--gold-80);\n}\n@media only all and (max-width: 37.5em) {\n a.a-tag-topic {\n border-top-width: 1px;\n border-bottom-width: 1px;\n }\n a.a-tag-topic:focus {\n outline: none;\n }\n a.a-tag-topic:focus::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n outline: 1px dotted var(--gray);\n outline-offset: 2px;\n }\n}\n\n@media only all and (max-width: 37.5em) {\n li:has(.a-tag-topic) + li:has(.a-tag-topic) .a-tag-topic {\n position: relative;\n border-top: none;\n }\n li:has(.a-tag-topic) + li:has(.a-tag-topic) a.a-tag-topic:hover::before,\n li:has(.a-tag-topic) + li:has(.a-tag-topic) a.a-tag-topic:focus::before {\n position: absolute;\n top: -1px;\n content: \"\";\n display: block;\n height: 1px;\n width: 100%;\n border-top: 1px solid currentcolor;\n }\n}\n.a-tag-topic__bullet {\n font-size: 1rem;\n line-height: 1rem;\n}\n\n@media only all and (min-width: 37.5625em) {\n a.a-tag-topic__text {\n color: var(--gray);\n border-color: var(--gray);\n }\n a.a-tag-topic__text:visited, a.a-tag-topic__text.visited {\n border-color: var(--gray);\n color: var(--gray);\n }\n a.a-tag-topic__text:hover, a.a-tag-topic__text.hover {\n border-color: var(--gray);\n color: var(--gray);\n }\n a.a-tag-topic__text:focus, a.a-tag-topic__text.focus {\n border-color: var(--gray);\n color: var(--gray);\n }\n a.a-tag-topic__text:active, a.a-tag-topic__text.active {\n border-color: var(--gray);\n color: var(--gray);\n }\n a.a-tag-topic,\n a.a-tag-topic:visited,\n a.a-tag-topic:hover,\n a.a-tag-topic:focus,\n a.a-tag-topic:active {\n border-bottom: none;\n outline-offset: 1px;\n }\n a.a-tag-topic .a-tag-topic__text,\n a.a-tag-topic:visited .a-tag-topic__text,\n a.a-tag-topic:hover .a-tag-topic__text,\n a.a-tag-topic:focus .a-tag-topic__text,\n a.a-tag-topic:active .a-tag-topic__text {\n padding-bottom: 1px;\n border-bottom: 1px dotted var(--gold-80);\n }\n a.a-tag-topic:hover .a-tag-topic__text {\n border-bottom: 1px solid var(--gold-80);\n }\n a.a-tag-topic:focus {\n outline-color: var(--gray);\n }\n a.a-tag-topic:focus .a-tag-topic__text {\n border-bottom-style: solid !important;\n }\n}\n.m-tag-group {\n padding-left: 0;\n list-style-type: none;\n}\n.m-tag-group li {\n margin-bottom: 0;\n display: contents;\n}\n@media only all and (min-width: 37.5625em) {\n .m-tag-group {\n display: flex;\n gap: 0.9375em;\n flex-wrap: wrap;\n }\n .m-tag-group--stacked {\n flex-direction: column;\n width: -moz-fit-content;\n width: fit-content;\n }\n}\n.m-tag-group:has(.a-tag-filter) {\n display: flex;\n gap: 0.9375em;\n flex-wrap: wrap;\n}\n\nhtml[lang=ar] .m-tag-group {\n direction: rtl;\n padding-right: 0;\n}", "/* ==========================================================================\n Design System\n Variables\n ========================================================================== */\n/* ==========================================================================\n Design System\n Breakpoint variables.\n\n NOTE: If any of the values in this file are adjusted,\n they need to be adjusted in vars-breakpoints.js as well.\n ========================================================================== */\n/* ==========================================================================\n Design System\n Grid mixins\n ========================================================================== */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable selector-class-pattern */\n/* ==========================================================================\n Design System\n Media queries\n ========================================================================== */\n/* ==========================================================================\n Design System\n Base styles\n ========================================================================== */\n.a-text-input {\n appearance: none;\n display: inline-block;\n padding: 0.4375em;\n border: 1px solid var(--gray-60);\n background: var(--white);\n color: var(--black);\n}\n.a-text-input:hover, .a-text-input.hover {\n border-color: var(--pacific);\n outline: 1px solid var(--pacific);\n}\n.a-text-input:focus, .a-text-input.focus {\n border-color: var(--pacific);\n box-shadow: 0 0 0 1px var(--pacific);\n outline: 1px dotted var(--pacific);\n outline-offset: 2px;\n}\n.a-text-input:disabled, .a-text-input:disabled:hover, .a-text-input:disabled.hover, .a-text-input:disabled:focus, .a-text-input:disabled.focus {\n color: var(--gray-dark);\n background-color: var(--gray-10);\n cursor: not-allowed;\n border-color: var(--gray-60);\n outline: none;\n}\n.a-text-input--error {\n border-color: var(--red);\n outline: 1px solid var(--red);\n}\n.a-text-input--error:hover, .a-text-input--error.hover {\n border-color: var(--red-dark);\n outline: 1px solid var(--red-dark);\n outline-offset: 0;\n}\n.a-text-input--error:focus, .a-text-input--error.focus {\n border-color: var(--red);\n box-shadow: 0 0 0 1px var(--red);\n outline: 1px dotted var(--red);\n}\n.a-text-input--error:focus:hover, .a-text-input--error:focus.hover, .a-text-input--error.focus:hover, .a-text-input--error.focus.hover {\n border-color: var(--red);\n box-shadow: 0 0 0 1px var(--red);\n outline: 1px dotted var(--red);\n outline-offset: 2px;\n}\n.a-text-input--warning {\n border-color: var(--gold);\n outline: 1px solid var(--gold);\n}\n.a-text-input--warning:hover, .a-text-input--warning.hover {\n border-color: var(--gold-dark);\n outline: 1px solid var(--gold-dark);\n outline-offset: 0;\n}\n.a-text-input--warning:focus, .a-text-input--warning.focus {\n border-color: var(--gold);\n box-shadow: 0 0 0 1px var(--gold);\n outline: 1px dotted var(--gold);\n}\n.a-text-input--warning:focus:hover, .a-text-input--warning:focus.hover, .a-text-input--warning.focus:hover, .a-text-input--warning.focus.hover {\n border-color: var(--gold);\n box-shadow: 0 0 0 1px var(--gold);\n outline: 1px dotted var(--gold);\n outline-offset: 2px;\n}\n.a-text-input--success {\n border-color: var(--green);\n outline: 1px solid var(--green);\n}\n.a-text-input--success:hover, .a-text-input--success.hover {\n border-color: var(--green-dark);\n outline: 1px solid var(--green-dark);\n outline-offset: 0;\n}\n.a-text-input--success:focus, .a-text-input--success.focus {\n border-color: var(--green);\n box-shadow: 0 0 0 1px var(--green);\n outline: 1px dotted var(--green);\n}\n.a-text-input--success:focus:hover, .a-text-input--success:focus.hover, .a-text-input--success.focus:hover, .a-text-input--success.focus.hover {\n border-color: var(--green);\n box-shadow: 0 0 0 1px var(--green);\n outline: 1px dotted var(--green);\n outline-offset: 2px;\n}\n\n::-webkit-search-decoration {\n appearance: none;\n}\n\n::placeholder {\n color: var(--gray-dark);\n}\n\ninput[type=date]::-webkit-datetime-edit {\n color: var(--gray-dark);\n}", "// Undefined return value for void methods.\nlet UNDEFINED;\n\n// How many options may be checked.\nexport const MAX_SELECTIONS = 5;\n\n/**\n * Escapes a string.\n * @param {string} str - The string to escape.\n * @returns {string} The escaped string.\n */\nfunction stringEscape(str) {\n return str.replace(/[-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\n/**\n * Tests whether a string matches another.\n * @param {string} x - The control string.\n * @param {string} y - The comparison string.\n * @returns {boolean} True if `x` and `y` match, false otherwise.\n */\nfunction stringMatch(x, y) {\n return RegExp(stringEscape(y.trim()), 'i').test(x);\n}\n\n/**\n * @class\n * MultiselectModel\n * @param {HTMLOptionsCollection} options -\n * Set of options from a