{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/stories/Components/Global/SectionWrapper/SectionWrapper.tsx","webpack:///./src/stories/Components/Buttons/GeneralButton/Button.tsx","webpack:///(webpack)/buildin/global.js","webpack:///./src/helpers/date.ts","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.tsx","webpack:///./src/stories/Components/Global/SectionWrapper/SectionWrapper.styles.ts","webpack:///./src/stories/Components/Breadcrumb/Breadcrumb.styles.ts","webpack:///./src/stories/Components/Buttons/GeneralButton/Button.styles.ts","webpack:///./src/helpers/global.ts","webpack:///./src/img/icons/event-date.svg","webpack:///./src/img/icons/event-location.svg","webpack:///./node_modules/query-string/index.js","webpack:///./src/helpers/brand.ts","webpack:///./src/stories/Widgets/EventBanner/EventBanner.styles.ts","webpack:///./src/stories/Widgets/EventBanner/EventBanner.tsx","webpack:///./src/hooks/useIntersectionObserver.ts","webpack:///./src/hooks/useInView.ts","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./src/helpers/fonts.ts","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/filter-obj/index.js","webpack:///./src/helpers/cssVar.ts","webpack:///./src/helpers/fluid.ts","webpack:///./src/helpers/srOnly.ts","webpack:///./src/stories/Components/Breadcrumb/Breadcrumb.tsx","webpack:///./src/helpers/image.ts","webpack:///./src/stories/Components/Global/SiteWide/SiteWide.styles.ts","webpack:///./src/helpers/animation.ts","webpack:///./src/helpers/scrollbars.ts"],"names":["Device","from","size","until","between","start","end","SectionWrapper","React","ref","children","className","flush","fullWidth","id","innerWidth","spacing","otherProps","inViewRef","active","useInView","rootMargin","S","ScrollAnchor","Container","r","current","SiteWide","width","displayName","Button","addon","addonPosition","branding","disabled","form","title","type","onClick","rest","createElement","ButtonStyles","iconPosition","Icon","position","Text","LinkButton","href","target","as","g","this","Function","e","window","module","exports","formatDate","value","formatString","date","Date","format","formatDateRange","valueStart","valueEnd","formatStart","formatEnd","dateStart","parseAsJsDate","dateEnd","isSameMonth","getMonth","isSameYear","getFullYear","formattedStart","formattedEnd","s","styled","section","setCssVar","TabletLarge","DesktopLarge","props","css","setSpacing","cssVar","div","SectionWrapperStyles","side","output","nav","scrollbars","brand","black","white","BreadcrumbStyles","Item","MobileLarge","srOnly","Link","a","fonts","sofiaPro","regular","PrimaryStyles","primary","blue","base","light","SecondaryStyles","TertiaryStyles","OutlineStyles","TransparentStyles","IconLeft","DesktopSmall","IconRight","hideText","BaseButtonStyles","transition","ButtonTextStyles","inter","semiBold","button","navHeight","navHeightMobile","siteWideWidth","siteWideWidthNarrow","siteWideWidthInner","siteWidePadding","siteWidePaddingTablet","siteWidePaddingMobile","ButtonReset","_g","_g2","_extends","Object","assign","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","SvgEventDate","xmlns","viewBox","fill","d","_path","SvgEventLocation","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","TypeError","encode","options","strict","encodeURIComponent","decode","removeHash","input","hashStart","indexOf","slice","extract","queryStart","parseValue","parseNumbers","Number","isNaN","trim","parseBooleans","toLowerCase","parse","query","sort","arrayFormat","arrayFormatSeparator","formatter","result","accumulator","exec","replace","undefined","concat","isArray","includes","isEncodedArray","newValue","split","map","item","test","arrayValue","parserForArrayFormat","ret","create","param","keys","k","reduce","Boolean","Array","keysSorter","b","stringify","object","shouldFilter","skipNull","skipEmptyString","index","join","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","colourWithTransparency","hexValue","hex","bigint","parseInt","grey","dark","lightAlt","highlight","steel","grey13","grey20","grey35","grey40","grey44","grey60","grey76","grey80","grey90","grey97","validation","invalid","TopSection","Desktop","BottomSection","BreadcrumbWrapper","ImageWrapper","Image","img","Tablet","mediaStyles","Video","TagWrapper","TagInner","Tag","span","extraBold","fluid","ContentWrapper","Title","h1","Content","p","medium","Metadata","MetadataIcon","MetadataValue","EventBannerStyles","CtaWrapper","EventBanner","breadcrumb","content","cta","image","mobileImage","altText","location","tag","tintAmount","video","Breadcrumb","style","media","srcSet","getImageUrl","mode","ActualDesktop","height","heightratio","loading","alt","role","src","ReactPlayer","playsinline","playing","controls","muted","loop","text","useIntersectionObserver","callback","observerRef","useRef","rootRef","elementRef","useEffect","IntersectionObserver","root","observe","disconnect","reverse","isEditMode","inView","setInView","useState","entries","isIntersecting","str","charCodeAt","toString","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","left","right","tokens","match","encodedURI","replaceMap","customDecodeURIComponent","bold","string","separator","separatorIndex","obj","predicate","isArr","val","name","DEFAULT_MIN_VALUE","TabletSmall","DEFAULT_MAX_VALUE","min","max","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","Math","items","darkText","isLong","acc","cur","DEFAULT_PARAMS","upscale","imageParams","params","widthratio","fixPadParams","global","cubicEaseOut","FadeUpBase","FadeUpActive","shouldAnimate","innerCss","properties","duration","timing","verticalFadeIn","amount","hidden","opacity","y","visible"],"mappings":"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","file":"EventBanner-113c3ec053a0b006523e.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","import { useInView } from '@hooks/useInView';\r\nimport * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nimport { rootMargin } from '@helpers/animation';\r\nconst SectionWrapper = React.forwardRef(({ children, className, flush = 'none', fullWidth = false, id, innerWidth = 'default', spacing = 'margin', ...otherProps }, ref) => {\r\n const [inViewRef, active] = useInView({\r\n rootMargin,\r\n });\r\n return (React.createElement(React.Fragment, null,\r\n id && React.createElement(S.ScrollAnchor, { id: id }),\r\n React.createElement(S.Container, { ref: (r) => {\r\n // Handle forwarded ref.\r\n if (typeof ref === 'function') {\r\n ref(r);\r\n }\r\n else if (ref) {\r\n ref.current = r;\r\n }\r\n // Handle internal refs.\r\n inViewRef.current = r;\r\n }, className: className, flush: flush, spacing: spacing, \"data-active\": active, ...otherProps }, fullWidth ? children : React.createElement(S.SiteWide, { width: innerWidth }, children))));\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import React from 'react';\r\nimport { ButtonStyles } from './Button.styles';\r\nconst Button = ({ addon, addonPosition, branding, className, disabled, form, size, title, type = 'button', onClick, ...rest }) => {\r\n return (React.createElement(ButtonStyles.Button, { className: className, branding: branding, disabled: disabled, form: form, size: size, iconPosition: addonPosition, type: type, onClick: onClick, ...rest },\r\n addon && addonPosition === 'left' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n addon && addonPosition === 'right' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon))));\r\n};\r\nconst LinkButton = ({ addon, addonPosition, branding, className, href, size, target = '_self', title, ...rest }) => {\r\n return (React.createElement(ButtonStyles.Button, { className: className, as: \"a\", branding: branding, href: href, size: size, target: target, ...rest },\r\n addon && addonPosition === 'left' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon)),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n addon && addonPosition === 'right' && (React.createElement(ButtonStyles.Icon, { position: addonPosition }, addon))));\r\n};\r\nexport { Button as default, LinkButton };\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import format from 'date-fns/format';\r\nexport function formatDateISO(value) {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return date.toISOString();\r\n}\r\nexport function formatDate(value, formatString = 'do MMMM yyyy') {\r\n let date = value;\r\n if (typeof date === 'string') {\r\n date = new Date(date);\r\n }\r\n return format(date, formatString);\r\n}\r\nexport function formatDateRange(valueStart, valueEnd, formatStart = 'dd MMM yy', formatEnd = 'dd MMM yy') {\r\n // Check if there is an end date.\r\n if (!valueEnd) {\r\n return formatDate(valueStart, formatStart);\r\n }\r\n // Parse values as JS dates.\r\n const dateStart = parseAsJsDate(valueStart);\r\n const dateEnd = parseAsJsDate(valueEnd);\r\n const isSameMonth = dateStart.getMonth() === dateEnd.getMonth();\r\n const isSameYear = dateStart.getFullYear() === dateEnd.getFullYear();\r\n // If they are in the same month, just use day part of start date.\r\n if (isSameMonth && isSameYear) {\r\n const formattedStart = formatDate(valueStart, 'dd');\r\n const formattedEnd = formatDate(valueEnd, formatEnd);\r\n return `${formattedStart} - ${formattedEnd}`;\r\n }\r\n // If they are in the same year, just use day & month part of start date.\r\n if (isSameYear) {\r\n const formattedStart = formatDate(valueStart, 'dd MMM');\r\n const formattedEnd = formatDate(valueEnd, formatEnd);\r\n return `${formattedStart} - ${formattedEnd}`;\r\n }\r\n // Else use entire date string for both.\r\n const formattedStart = formatDate(valueStart, formatStart);\r\n const formattedEnd = formatDate(valueEnd, formatEnd);\r\n return `${formattedStart} - ${formattedEnd}`;\r\n}\r\n/**\r\n * Parses a string as a JS date.\r\n * @param value\r\n * @returns\r\n */\r\nfunction parseAsJsDate(value) {\r\n if (typeof value === 'string') {\r\n return new Date(value);\r\n }\r\n return value;\r\n}\r\n","import React from 'react';\r\nimport s from './SiteWide.styles';\r\nconst SiteWide = ({ children, className, width = 'default', id }) => {\r\n return (React.createElement(s.Container, { id: id, className: className, width: width }, children));\r\n};\r\nexport default SiteWide;\r\n","import { cssVar, setCssVar } from '@helpers/cssVar';\r\nimport { Device, from } from '@helpers/media';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.section `\r\n ${setCssVar('sectionMargin', '32px')};\r\n ${setCssVar('sitePadding', '18px')};\r\n ${setCssVar('siteWidth', '100%')};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${setCssVar('sectionMargin', '64px')};\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n ${setCssVar('sitePadding', '18px')};\r\n ${setCssVar('siteWidth', '1640px')};\r\n }\r\n\r\n ${(props) => css `\r\n /* Set default spacing. */\r\n ${setSpacing(cssVar('sectionMargin'), props.spacing, 'both')}\r\n\r\n /* Override based on flush prop. */\r\n ${props.flush && setSpacing('0px', props.spacing, props.flush)}\r\n `}\r\n`;\r\nconst ScrollAnchor = styled.div `\r\n scroll-margin: calc(var(--headerHeight) + var(--headerReducedOffset) + 32px) 0 0;\r\n`;\r\nconst StyledSiteWide = styled(SiteWide) ``;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n SiteWide: StyledSiteWide,\r\n ScrollAnchor,\r\n};\r\nexport default SectionWrapperStyles;\r\nfunction setSpacing(value, type, side) {\r\n let output = '';\r\n if (side === 'none') {\r\n return;\r\n }\r\n if (side === 'both') {\r\n output = `\r\n ${type}-top: ${value};\r\n ${type}-bottom: ${value};\r\n `;\r\n }\r\n else {\r\n output = `\r\n ${type}-${side}: ${value};\r\n `;\r\n }\r\n return css `\r\n ${output}\r\n `;\r\n}\r\n","import brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, until } from '@helpers/media';\r\nimport scrollbars from '@helpers/scrollbars';\r\nimport srOnly from '@helpers/srOnly';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav `\r\n ${scrollbars};\r\n\r\n --scrollbar-width: 4px;\r\n\r\n display: flex;\r\n color: var(--fgColor);\r\n flex-wrap: wrap;\r\n padding-bottom: 4px;\r\n\r\n &[data-theme='dark'] {\r\n --fgColor: ${brand.black};\r\n }\r\n\r\n &[data-theme='light'] {\r\n --fgColor: ${brand.white};\r\n }\r\n`;\r\nconst Item = styled.div `\r\n &:not(:last-child)::after {\r\n content: '/';\r\n margin: 0 6px;\r\n }\r\n\r\n /* Hide all but the last 2 items on mobile */\r\n @media ${until(Device.MobileLarge)} {\r\n ${Container}[data-truncate='true'] &:not(:nth-last-child(-n + 2)) {\r\n ${srOnly}\r\n }\r\n }\r\n`;\r\nconst Link = styled.a `\r\n color: currentColor;\r\n ${fonts.sofiaPro.regular};\r\n font-size: 17px;\r\n letter-spacing: 0.1em;\r\n line-height: 1em;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n text-underline-position: under;\r\n\r\n &:focus-visible {\r\n outline: auto;\r\n }\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n &[aria-current='page'] {\r\n text-decoration: none;\r\n\r\n &:focus,\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n }\r\n`;\r\nconst BreadcrumbStyles = {\r\n Container,\r\n Item,\r\n Link,\r\n};\r\nexport default BreadcrumbStyles;\r\n","import { transition } from '@helpers/animation';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, until } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Text = styled.div ``;\r\nexport const PrimaryStyles = css `\r\n border: 2px solid ${brand.primary.blue.base};\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n\r\n &:focus-visible,\r\n &:hover {\r\n border-color: var(--hoverColor, ${brand.primary.blue.light}) !important;\r\n background-color: var(--hoverColor, ${brand.primary.blue.light}) !important;\r\n color: ${brand.white};\r\n }\r\n\r\n &:active {\r\n border-color: ${brand.primary.blue.base};\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n }\r\n`;\r\nexport const SecondaryStyles = css `\r\n background-color: transparent;\r\n color: ${brand.white};\r\n border: 2px solid ${brand.white};\r\n\r\n &:focus-visible,\r\n &:hover,\r\n &:active {\r\n border-color: ${brand.primary.blue.light};\r\n background-color: ${brand.primary.blue.light};\r\n color: ${brand.white};\r\n }\r\n`;\r\nexport const TertiaryStyles = css `\r\n background-color: ${brand.white};\r\n color: ${brand.black};\r\n border: 2px solid ${brand.white};\r\n\r\n &:focus-visible,\r\n &:hover {\r\n border-color: ${brand.primary.blue.base};\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active {\r\n border-color: ${brand.white};\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n }\r\n`;\r\nexport const OutlineStyles = css `\r\n background-color: ${brand.white};\r\n color: ${brand.primary.blue.base};\r\n border: 2px solid ${brand.primary.blue.base};\r\n\r\n &:focus-visible,\r\n &:hover,\r\n &:active {\r\n border-color: ${brand.primary.blue.light};\r\n background-color: ${brand.primary.blue.light};\r\n color: ${brand.white};\r\n }\r\n`;\r\nexport const TransparentStyles = css `\r\n background-color: transparent;\r\n color: ${brand.white};\r\n border: 2px solid ${brand.white};\r\n\r\n &:focus-visible,\r\n &:hover,\r\n &:active {\r\n border-color: ${brand.white};\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n }\r\n`;\r\nconst IconLeft = css `\r\n padding-right: 15px;\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n padding-right: 0;\r\n }\r\n`;\r\nconst IconRight = css `\r\n padding-left: 15px;\r\n\r\n @media ${until(Device.DesktopSmall)} {\r\n padding-left: 0;\r\n }\r\n`;\r\nconst hideText = css `\r\n ${Text} {\r\n @media ${until(Device.DesktopSmall)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst Icon = styled.div `\r\n display: inline-block;\r\n vertical-align: middle;\r\n\r\n ${({ position }) => {\r\n switch (position) {\r\n case 'left':\r\n return IconLeft;\r\n case 'right':\r\n return IconRight;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n svg {\r\n max-height: 24px;\r\n width: 20px;\r\n }\r\n`;\r\nexport const BaseButtonStyles = css `\r\n ${transition('color, background-color, border-color')};\r\n\r\n display: inline-flex;\r\n align-items: center;\r\n border-radius: 25px;\r\n height: 50px;\r\n justify-content: center;\r\n padding: 0 32px;\r\n text-decoration: none;\r\n user-select: none;\r\n white-space: nowrap;\r\n`;\r\nexport const ButtonTextStyles = css `\r\n ${fonts.inter.semiBold};\r\n\r\n font-size: 16px;\r\n line-height: 26px;\r\n text-transform: uppercase;\r\n transform: translateY(-2px);\r\n vertical-align: middle;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n font-size: 12px;\r\n line-height: 20px;\r\n white-space: break-spaces;\r\n text-align: center;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${BaseButtonStyles};\r\n\r\n ${Text} {\r\n ${ButtonTextStyles};\r\n\r\n display: inline-block;\r\n }\r\n\r\n ${({ branding }) => {\r\n switch (branding) {\r\n case 'primary':\r\n return PrimaryStyles;\r\n case 'secondary':\r\n return SecondaryStyles;\r\n case 'tertiary':\r\n return TertiaryStyles;\r\n case 'outline':\r\n return OutlineStyles;\r\n case 'transparent':\r\n return TransparentStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n ${({ iconPosition }) => {\r\n switch (iconPosition) {\r\n case 'right':\r\n return hideText;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n pointer-events: none;\r\n }\r\n`;\r\nexport const ButtonStyles = {\r\n Button,\r\n Icon,\r\n Text,\r\n};\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 175,\r\n navHeightMobile: 92,\r\n siteWideWidth: 1760,\r\n siteWideWidthNarrow: 1430,\r\n siteWideWidthInner: 860,\r\n siteWidePadding: 36,\r\n siteWidePaddingTablet: 26,\r\n siteWidePaddingMobile: 15,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","var _g, _g2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgEventDate(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.084 19.305h1.462v1.462h-1.462zM19.269 19.305h1.462v1.462h-1.462zM22.456 19.305h1.462v1.462h-1.462zM16.084 22.9h1.462v1.462h-1.462zM19.269 22.9h1.462v1.462h-1.462zM22.456 22.9h1.462v1.462h-1.462z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.178 12.731h-1.817v-.908a.909.909 0 10-1.817 0v.909h-9.087v-.909a.858.858 0 00-.908-.909.858.858 0 00-.909.909v.909h-1.817a.858.858 0 00-.909.908v14.538a.858.858 0 00.909.909h16.355a.911.911 0 00.909-.909V13.64a.911.911 0 00-.909-.909zm-.909 14.538H12.731V16.366h14.538z\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 0A20 20 0 110 20 20 20 0 0120 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 1A18.938 18.938 0 006.565 6.565 18.938 18.938 0 001 20a18.938 18.938 0 005.565 13.435A18.938 18.938 0 0020 39a18.938 18.938 0 0013.435-5.565A18.938 18.938 0 0039 20a18.938 18.938 0 00-5.565-13.435A18.938 18.938 0 0020 1m0-1c11.046 0 20 8.954 20 20s-8.954 20-20 20S0 31.046 0 20 8.954 0 20 0z\",\n fill: \"currentColor\"\n }))));\n}\n\nexport default __webpack_public_path__ + \"1d265d4e546da75a51d530296c9625b0.svg\";\nexport { SvgEventDate as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgEventLocation(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 19.4c-2.3 0-4.1-1.9-4.1-4.1 0-2.3 1.9-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1 0 2.3-1.8 4.1-4.1 4.1m0-13.6c-5.2 0-9.5 4.2-9.5 9.5 0 5 8.6 18.1 9 18.7.2.3.5.3.8.2.1 0 .1-.1.2-.2.4-.6 9-13.6 9-18.7 0-5.3-4.3-9.5-9.5-9.5\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"f5dcae3f0237157f6b97257cc278b882.svg\";\nexport { SvgEventLocation as ReactComponent };","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","const brand = {\r\n black: '#191919',\r\n white: '#FEFFFF',\r\n primary: {\r\n grey: {\r\n dark: '#3B4044',\r\n base: '#949494',\r\n light: '#F1F1F1',\r\n lightAlt: '#F1F3F8',\r\n },\r\n blue: { base: '#01346B', light: '#7185BE', highlight: '#3CB5AB', steel: '#227C9D' },\r\n },\r\n grey: {\r\n grey13: '#212121',\r\n grey20: '#333333',\r\n grey35: '#595959',\r\n grey40: '#666666',\r\n grey44: '#707070',\r\n grey60: '#999999',\r\n grey76: '#C2C2C2',\r\n grey80: '#CCCCCC',\r\n grey90: '#E5E5E5',\r\n grey97: '#F7F7F7',\r\n },\r\n validation: {\r\n invalid: '#DA291C',\r\n },\r\n};\r\nexport default brand;\r\nexport function colourWithTransparency(hexValue, value) {\r\n const hex = hexValue.replace('#', '');\r\n const bigint = parseInt(hex, 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n const rgbValue = `${r}, ${g}, ${b}`;\r\n return `rgba(${rgbValue}, ${value})`;\r\n}\r\n","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { ButtonStyles } from '@stories/Components/Buttons/GeneralButton/Button.styles';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled(SectionWrapper) ``;\r\nconst TopSection = styled.div `\r\n position: relative;\r\n background: ${brand.black};\r\n color: ${brand.white};\r\n min-height: 400px;\r\n padding: 88px 18px;\r\n\r\n @media ${from(Device.Desktop)} {\r\n padding: 104px 18px;\r\n }\r\n`;\r\nconst BottomSection = styled.div `\r\n margin: 0 auto;\r\n max-width: 896px;\r\n padding: 40px 18px;\r\n`;\r\nconst BreadcrumbWrapper = styled.div `\r\n position: absolute;\r\n top: 24px;\r\n left: 0;\r\n display: block;\r\n width: 100%;\r\n z-index: 4;\r\n`;\r\nconst ImageWrapper = styled.div `\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background: ${brand.black};\r\n height: 100%;\r\n opacity: var(--tint);\r\n width: 100%;\r\n z-index: 2;\r\n }\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.78) 100%);\r\n height: 100%;\r\n width: 100%;\r\n z-index: 3;\r\n }\r\n`;\r\nconst Image = styled.img `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n z-index: 1;\r\n\r\n ${ImageWrapper}[data-has-video=\"true\"] & {\r\n @media ${from(Device.Tablet)} {\r\n display: none;\r\n }\r\n }\r\n`;\r\nconst mediaStyles = css `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n`;\r\nconst Video = styled.div `\r\n ${mediaStyles};\r\n\r\n display: none;\r\n\r\n @media ${from(Device.Tablet)} {\r\n display: block;\r\n\r\n video,\r\n iframe {\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n }\r\n }\r\n`;\r\nconst TagWrapper = styled.div `\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n display: block;\r\n width: 100%;\r\n z-index: 4;\r\n`;\r\nconst TagInner = styled.div `\r\n margin: 0 auto;\r\n max-width: 896px;\r\n padding: 0 18px;\r\n`;\r\nconst Tag = styled.span `\r\n ${fonts.inter.extraBold};\r\n\r\n display: inline-flex;\r\n align-items: center;\r\n background: ${brand.primary.blue.base};\r\n border-radius: 0 20px 0 0;\r\n border: ${fluid(1, 2)} solid ${brand.white};\r\n border-bottom: 0;\r\n color: ${brand.white};\r\n font-size: 14px;\r\n line-height: 1em;\r\n min-width: 120px;\r\n padding: 10px 40px 10px 25px;\r\n white-space: nowrap;\r\n width: auto;\r\n`;\r\nconst ContentWrapper = styled.div `\r\n ${ButtonStyles.Button} {\r\n margin-top: 48px;\r\n\r\n @media ${until(Device.MobileLarge)} {\r\n margin-top: 32px;\r\n\r\n ${ButtonStyles.Button} {\r\n width: 100%;\r\n }\r\n }\r\n }\r\n`;\r\nconst Title = styled.h1 `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: 24px;\r\n letter-spacing: 0.01em;\r\n line-height: 38px;\r\n margin: 0 0 16px;\r\n\r\n @media ${from(Device.Desktop)} {\r\n font-size: 40px;\r\n line-height: 60px;\r\n }\r\n`;\r\nconst Content = styled.p `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n letter-spacing: 0.01em;\r\n line-height: 28px;\r\n margin: 0 0 32px;\r\n\r\n @media ${from(Device.Desktop)} {\r\n ${fonts.sofiaPro.medium};\r\n font-size: 22px;\r\n line-height: 34px;\r\n }\r\n`;\r\nconst Metadata = styled.div `\r\n display: grid;\r\n align-items: center;\r\n gap: 16px 8px;\r\n grid-template-columns: 28px auto;\r\n justify-items: start;\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-template-columns: 40px auto;\r\n }\r\n`;\r\nconst MetadataIcon = styled.span `\r\n display: block;\r\n height: 28px;\r\n width: 28px;\r\n\r\n @media ${from(Device.Desktop)} {\r\n height: 40px;\r\n width: 40px;\r\n }\r\n\r\n svg {\r\n display: block;\r\n height: 100%;\r\n width: 100%;\r\n }\r\n`;\r\nconst MetadataValue = styled.span `\r\n display: block;\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n letter-spacing: 0.01em;\r\n line-height: 1em;\r\n\r\n @media ${from(Device.Desktop)} {\r\n font-size: 22px;\r\n }\r\n`;\r\nconst CtaWrapper = styled.div ``;\r\nconst EventBannerStyles = {\r\n BottomSection,\r\n BreadcrumbWrapper,\r\n Container,\r\n Content,\r\n ContentWrapper,\r\n CtaWrapper,\r\n Image,\r\n ImageWrapper,\r\n Metadata,\r\n MetadataIcon,\r\n MetadataValue,\r\n Tag,\r\n TagInner,\r\n TagWrapper,\r\n Title,\r\n TopSection,\r\n Video,\r\n};\r\nexport default EventBannerStyles;\r\n","import { formatDateRange } from '@helpers/date';\r\nimport { getImageUrl } from '@helpers/image';\r\nimport { Device, from } from '@helpers/media';\r\nimport { ReactComponent as SvgEventDate } from '@img/icons/event-date.svg';\r\nimport { ReactComponent as SvgEventLocation } from '@img/icons/event-location.svg';\r\nimport Breadcrumb from '@stories/Components/Breadcrumb/Breadcrumb';\r\nimport { LinkButton } from '@stories/Components/Buttons/GeneralButton/Button';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport * as React from 'react';\r\nimport ReactPlayer from 'react-player/lazy';\r\nimport S from './EventBanner.styles';\r\nconst EventBanner = ({ breadcrumb, content, cta, dateEnd, dateStart, image, mobileImage, altText, location, tag, tintAmount = 0.6, title, video, ...props }) => {\r\n return (React.createElement(S.Container, { id: props.id, flush: \"both\", fullWidth: true },\r\n React.createElement(S.TopSection, null,\r\n breadcrumb && (React.createElement(S.BreadcrumbWrapper, null,\r\n React.createElement(SiteWide, null,\r\n React.createElement(Breadcrumb, { ...breadcrumb })))),\r\n image || video ? (React.createElement(S.ImageWrapper, { \"data-has-video\": !!video, style: { '--tint': tintAmount } },\r\n image && (React.createElement(\"picture\", null,\r\n React.createElement(\"source\", { media: from(Device.DesktopSmall), srcSet: [\r\n `${getImageUrl(image, { mode: 'crop', width: Device.ActualDesktop, height: 400, heightratio: 400 / 1980 })} 1x`,\r\n `${getImageUrl(image, { mode: 'crop', width: Device.ActualDesktop * 2, height: 800, heightratio: 800 / 1980 })} 2x`,\r\n ].join(',') }),\r\n React.createElement(\"source\", { media: from(Device.TabletLarge), srcSet: [\r\n `${getImageUrl(image, { mode: 'crop', width: Device.DesktopSmall, height: 400, heightratio: 400 / 1980 })} 1x`,\r\n `${getImageUrl(image, { mode: 'crop', width: Device.DesktopSmall * 2, height: 800, heightratio: 800 / 1980 })} 2x`,\r\n ].join(',') }),\r\n React.createElement(\"source\", { media: from(Device.Tablet), srcSet: [\r\n `${getImageUrl(image, {\r\n mode: 'crop',\r\n width: Device.TabletLarge,\r\n height: 400,\r\n heightratio: 400 / 1024,\r\n })} 1x`,\r\n `${getImageUrl(image, {\r\n mode: 'crop',\r\n width: Device.TabletLarge * 2,\r\n height: 800,\r\n heightratio: 800 / 1024,\r\n })} 2x`,\r\n ].join(',') }),\r\n React.createElement(\"source\", { media: from(Device.MobileLarge), srcSet: [\r\n `${getImageUrl(mobileImage ? mobileImage : image, {\r\n mode: 'crop',\r\n width: Device.Tablet,\r\n height: 400,\r\n heightratio: 400 / 768,\r\n })} 1x`,\r\n `${getImageUrl(mobileImage ? mobileImage : image, {\r\n mode: 'crop',\r\n width: Device.Tablet * 2,\r\n height: 800,\r\n heightratio: 800 / 768,\r\n })} 2x`,\r\n ].join(',') }),\r\n React.createElement(S.Image, { loading: \"eager\", alt: altText, role: altText ? undefined : 'presentation', src: getImageUrl(mobileImage ? mobileImage : image, {\r\n mode: 'crop',\r\n width: Device.MobileLarge,\r\n height: 400,\r\n heightratio: 400 / 480,\r\n }), srcSet: [\r\n `${getImageUrl(mobileImage ? mobileImage : image, {\r\n mode: 'crop',\r\n width: Device.MobileLarge,\r\n height: 400,\r\n heightratio: 400 / 480,\r\n })} 1x`,\r\n `${getImageUrl(mobileImage ? mobileImage : image, {\r\n mode: 'crop',\r\n width: Device.MobileLarge * 2,\r\n height: 800,\r\n heightratio: 800 / 480,\r\n })} 2x`,\r\n ].join(',') }))),\r\n video && (React.createElement(S.Video, null,\r\n React.createElement(ReactPlayer, { width: \"100%\", height: \"100%\", playsinline: true, playing: true, controls: false, url: video, muted: true, loop: true }))))) : null,\r\n tag && (React.createElement(S.TagWrapper, null,\r\n React.createElement(S.TagInner, null,\r\n React.createElement(S.Tag, null, tag))))),\r\n React.createElement(S.BottomSection, null,\r\n React.createElement(S.ContentWrapper, null,\r\n title && React.createElement(S.Title, null, title),\r\n content && React.createElement(S.Content, null, content),\r\n React.createElement(S.Metadata, null,\r\n dateStart && (React.createElement(React.Fragment, null,\r\n React.createElement(S.MetadataIcon, null,\r\n React.createElement(SvgEventDate, null)),\r\n React.createElement(S.MetadataValue, null, formatDateRange(dateStart, dateEnd)))),\r\n React.createElement(S.MetadataIcon, null,\r\n React.createElement(SvgEventLocation, null)),\r\n React.createElement(S.MetadataValue, null, location)),\r\n cta && (React.createElement(LinkButton, { branding: \"primary\", href: cta.url, target: cta.target, title: cta.text }))))));\r\n};\r\nexport default EventBanner;\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","import { css } from 'styled-components';\r\nexport default {\r\n inter: {\r\n light: css `\r\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n regular: css `\r\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n semiBold: css `\r\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n bold: css `\r\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n extraBold: css `\r\n font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 800;\r\n `,\r\n },\r\n sofiaPro: {\r\n light: css `\r\n font-family: 'sofia-pro', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n regular: css `\r\n font-family: 'sofia-pro', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'sofia-pro', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n semiBold: css `\r\n font-family: 'sofia-pro', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n bold: css `\r\n font-family: 'sofia-pro', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n black: css `\r\n font-family: 'sofia-pro', system-ui, -apple-system, BlinkMacSystemFont;\r\n font-style: normal;\r\n font-weight: 900;\r\n `,\r\n },\r\n};\r\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","const variables = [\r\n 'fgColor',\r\n 'bgColor',\r\n 'accentColor',\r\n 'siteWidth',\r\n 'sitePadding',\r\n 'sectionMargin',\r\n];\r\nfunction cssVar(name) {\r\n return `var(--${name})`;\r\n}\r\nfunction setCssVar(name, value) {\r\n return `--${name}: ${value}`;\r\n}\r\nexport { cssVar, setCssVar };\r\n","import { Device } from './media';\r\n/**\r\n * Base pixel value for the \"rem\" unit.\r\n */\r\nexport const PIXELS_PER_REM = 16;\r\n/**\r\n * Default pixel value for the min width.\r\n */\r\nexport const DEFAULT_MIN_VALUE = Device.TabletSmall;\r\n/**\r\n * Default pixel value for the max width.\r\n */\r\nexport const DEFAULT_MAX_VALUE = Device.ActualDesktop;\r\n/**\r\n * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluid(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE) {\r\n const minRem = min / PIXELS_PER_REM;\r\n const maxRem = max / PIXELS_PER_REM;\r\n const minWidthRem = minWidth / PIXELS_PER_REM;\r\n const maxWidthRem = maxWidth / PIXELS_PER_REM;\r\n const slope = (maxRem - minRem) / (maxWidthRem - minWidthRem);\r\n const yAxisIntersection = -minWidthRem * slope + minRem;\r\n const clampMin = `${round(minRem)}rem`;\r\n const clampVal = `${round(yAxisIntersection)}rem + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(maxRem)}rem`;\r\n return `clamp(${clampMin}, ${clampVal}, ${clampMax})`;\r\n}\r\n/**\r\n * Round to nearest hundredth.\r\n */\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n","import { css } from 'styled-components';\r\n/**\r\n * Show only for screen readers.\r\n * @description Sourced from https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034\r\n */\r\nconst srOnly = css `\r\n border: 0 !important;\r\n clip: rect(1px, 1px, 1px, 1px) !important;\r\n -webkit-clip-path: inset(50%) !important;\r\n clip-path: inset(50%) !important;\r\n height: 1px !important;\r\n margin: -1px !important;\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: absolute !important;\r\n width: 1px !important;\r\n white-space: nowrap !important;\r\n`;\r\nexport default srOnly;\r\n","import * as React from 'react';\r\nimport S from './Breadcrumb.styles';\r\nconst Breadcrumb = ({ items, darkText = false }) => {\r\n const characterCount = items.map((x) => x.title.length).reduce((acc, cur) => acc + cur, 0);\r\n // If the character count is too long, only show the last two items (LMGR-62) //\r\n const isLong = characterCount > 40;\r\n return (React.createElement(S.Container, { \"aria-label\": \"Breadcrumb\", \"data-theme\": darkText ? 'dark' : 'light', \"data-truncate\": isLong }, items.map((item, index) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url, \"aria-current\": index === items.length - 1 ? 'page' : undefined }, item.title))))));\r\n};\r\nexport default Breadcrumb;\r\n","import queryString from 'query-string';\r\nconst DEFAULT_PARAMS = {\r\n mode: 'crop',\r\n upscale: true,\r\n};\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function getImageUrl(image, imageParams) {\r\n if (!image) {\r\n return '';\r\n }\r\n let params = { ...DEFAULT_PARAMS, ...imageParams };\r\n if (params.mode === 'crop' || params.mode === 'boxpad' || params.mode === 'pad') {\r\n params = fixPadParams(params);\r\n }\r\n return `${image}?${queryString.stringify(params)}`;\r\n}\r\nfunction fixPadParams(imageParams) {\r\n if (!imageParams.height && !!imageParams.width && !!imageParams.heightratio) {\r\n return {\r\n ...imageParams,\r\n height: imageParams.width * imageParams.heightratio,\r\n };\r\n }\r\n else if (!imageParams.width && !!imageParams.height && !!imageParams.widthratio) {\r\n return {\r\n ...imageParams,\r\n width: imageParams.height * imageParams.widthratio,\r\n };\r\n }\r\n else if (!!imageParams.width && !!imageParams.height) {\r\n return imageParams;\r\n }\r\n else {\r\n return { ...imageParams, mode: 'boxpad' };\r\n }\r\n}\r\n","import { cssVar, setCssVar } from '@helpers/cssVar';\r\nimport global from '@helpers/global';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.div `\r\n ${setCssVar('sitePadding', `${global.siteWidePaddingMobile}px`)};\r\n ${setCssVar('siteWidth', '100%')};\r\n\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: calc(${cssVar('siteWidth')} + (${cssVar('sitePadding')} * 2));\r\n padding-left: ${cssVar('sitePadding')};\r\n padding-right: ${cssVar('sitePadding')};\r\n width: 100%;\r\n\r\n @media ${from(Device.MobileLarge)} {\r\n ${setCssVar('sitePadding', `${global.siteWidePaddingTablet}px`)};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${setCssVar('sitePadding', `${global.siteWidePadding}px`)};\r\n }\r\n\r\n ${({ width }) => {\r\n switch (width) {\r\n case 'default':\r\n return css `\r\n @media ${from(Device.DesktopLarge)} {\r\n ${setCssVar('siteWidth', `${global.siteWideWidth}px`)};\r\n }\r\n `;\r\n case 'narrow':\r\n return css `\r\n @media ${from(Device.DesktopSmall)} {\r\n ${setCssVar('siteWidth', `${global.siteWideWidthNarrow}px`)};\r\n }\r\n `;\r\n case 'inner':\r\n return css `\r\n @media ${from(Device.Tablet)} {\r\n ${setCssVar('siteWidth', `${global.siteWideWidthInner}px`)};\r\n }\r\n `;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n Container,\r\n};\r\n","import { css } from 'styled-components';\r\nexport const rootMargin = '0px 0px -20% 0px';\r\nexport const cubicEaseOut = `cubic-bezier(0.215, 0.61, 0.355, 1)`;\r\nexport const FadeUpBase = css `\r\n opacity: 0;\r\n transform: translateY(16px);\r\n transition: opacity var(--a-duration) ${cubicEaseOut}, transform var(--a-duration) ${cubicEaseOut};\r\n transition-delay: var(--a-delay);\r\n`;\r\nexport const FadeUpActive = css `\r\n opacity: 1;\r\n transform: translateY(0);\r\n`;\r\nexport const shouldAnimate = (innerCss) => {\r\n return css `\r\n @media (prefers-reduced-motion: no-preference) {\r\n ${innerCss}\r\n }\r\n `;\r\n};\r\nexport const transition = (properties, duration = 0.35, timing = cubicEaseOut) => {\r\n return shouldAnimate(css `\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-property: ${properties};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\nexport const horizontalFadeIn = (amount, duration) => {\r\n return {\r\n hidden: {\r\n opacity: 0,\r\n x: amount ?? 20,\r\n },\r\n visible: {\r\n opacity: 1,\r\n x: 0,\r\n transition: {\r\n duration: duration ?? 0.35,\r\n },\r\n },\r\n };\r\n};\r\nexport const verticalFadeIn = (amount, duration) => {\r\n return {\r\n hidden: {\r\n opacity: 0,\r\n y: amount ?? 20,\r\n },\r\n visible: {\r\n opacity: 1,\r\n y: 0,\r\n transition: {\r\n duration: duration ?? 0.35,\r\n },\r\n },\r\n };\r\n};\r\n","import { css } from 'styled-components';\r\nexport default css `\r\n &::-webkit-scrollbar-track {\r\n background-color: none;\r\n }\r\n\r\n &::-webkit-scrollbar {\r\n background-color: none;\r\n height: var(--scrollbar-width, 10px);\r\n width: var(--scrollbar-width, 10px);\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background-color: #9c9fa1;\r\n border-radius: calc(var(--scrollbar-width, 10px) / 2);\r\n cursor: pointer;\r\n }\r\n`;\r\n"],"sourceRoot":""}