{"version":3,"file":"3362-f3afcd5565e7151129a8.js","mappings":"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","sources":["webpack://eploy/./src/helpers/global.ts","webpack://eploy/./src/helpers/grid.ts","webpack://eploy/./src/helpers/image.ts","webpack://eploy/./src/helpers/scrollbars.ts","webpack://eploy/./src/helpers/srOnly.ts","webpack://eploy/./src/helpers/typography.ts","webpack://eploy/./src/hoc/withMotion.tsx","webpack://eploy/./src/hooks/useIntersectionObserver.ts","webpack://eploy/./src/hooks/useInView.ts","webpack://eploy/./src/stories/Components/Buttons/Button/Button.styles.ts","webpack://eploy/./src/stories/Components/Buttons/Button/Button.tsx","webpack://eploy/./src/stories/Components/Cards/CardGrid/CardGrid.styles.ts","webpack://eploy/./src/stories/Components/Cards/CardGrid/CardGrid.tsx","webpack://eploy/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.styles.ts","webpack://eploy/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.tsx"],"sourcesContent":["import { css } from 'styled-components';\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","import { css } from 'styled-components';\r\nexport const siteWide = css `\r\n margin: 0 auto;\r\n max-width: calc(var(--siteWidth) + var(--sitePadding) + var(--sitePadding));\r\n padding: 0 var(--sitePadding);\r\n width: 100%;\r\n`;\r\nexport const baseGrid = css `\r\n display: grid;\r\n column-gap: var(--gutterWidth);\r\n grid-template-columns: repeat(12, 1fr);\r\n`;\r\n","import queryString from 'query-string';\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 imageUrl(image, imageParams) {\r\n if (!image) {\r\n return '';\r\n }\r\n const params = {\r\n center: image.focalPoint ? `${image.focalPoint.top},${image.focalPoint.left}` : undefined,\r\n ...imageParams,\r\n };\r\n if (params.width && params.heightratio) {\r\n params.height = Math.round(params.width / params.heightratio);\r\n }\r\n const paramsString = queryString.stringify(params);\r\n return `${image.src}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio) {\r\n if (!image) {\r\n return { src: '', srcSet: '' };\r\n }\r\n const sizes = getRange(upper, lower, steps);\r\n const sizesArr = sizes.map((size) => `${imageUrl(image, { width: size, heightratio: ratio })} ${size}w`);\r\n return {\r\n src: sizesArr[0].split(' ')[0],\r\n srcSet: sizesArr.join(','),\r\n };\r\n}\r\nexport function getRetinaSrcs(image, width, ratio) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n const dprsArr = dprs.map((dpr) => `${imageUrl(image, { width: width * dpr, heightratio: ratio })} ${dpr}x`);\r\n return {\r\n src: dprsArr[0].split(' ')[0],\r\n srcSet: dprsArr.join(','),\r\n };\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n","import { css } from 'styled-components';\r\nimport brand from './brand';\r\nexport default css `\r\n &::-webkit-scrollbar-track {\r\n background-color: ${brand.grey.dark};\r\n }\r\n\r\n &::-webkit-scrollbar {\r\n background-color: ${brand.grey.dark};\r\n height: 6px;\r\n width: 6px;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb {\r\n background-color: ${brand.primary.orange};\r\n border-radius: 0;\r\n cursor: pointer;\r\n }\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 svgBullet from '@img/icons/bullet-fill.svg?url';\r\nimport svgQuote from '@img/icons/quote-testimonials.svg?url';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport brand from './brand';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nimport scrollbars from './scrollbars';\r\nexport const headingStyles = css `\r\n ${fonts.poppins.extraBold};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(30, 42)};\r\n text-wrap: pretty;\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(38, 72)};\r\n line-height: ${fluid(46, 88)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(32, 58)};\r\n line-height: ${fluid(38, 66)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(26, 42)};\r\n line-height: ${fluid(34, 48)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(22, 32)};\r\n line-height: ${fluid(30, 38)};\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(16, 24)};\r\n line-height: ${fluid(22, 30)};\r\n font-weight: 700;\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(16, 18)};\r\n line-height: 20px;\r\n font-weight: 700;\r\n`;\r\nexport const paragraphStyles = css `\r\n ${fonts.poppins.regular};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(12, 14)};\r\n text-wrap: pretty;\r\n`;\r\nexport const paragraphExtraLarge = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(22, 32)};\r\n line-height: ${fluid(30, 42)};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(17, 22)};\r\n line-height: ${fluid(25, 36)};\r\n`;\r\nexport const paragraphRegular = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(17, 20)};\r\n line-height: ${fluid(25, 36)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n\r\n font-size: ${fluid(14, 18)};\r\n line-height: ${fluid(22, 28)};\r\n`;\r\nexport const tag = css `\r\n ${fonts.poppins.bold};\r\n\r\n font-size: ${fluid(11, 14)};\r\n line-height: ${fluid(12, 16)};\r\n margin: 0 0 ${fluid(12, 20)};\r\n`;\r\nexport const authorName = css `\r\n ${fonts.caveat};\r\n\r\n font-size: ${fluid(20, 28)};\r\n line-height: ${fluid(26, 38)};\r\n`;\r\nexport const link = css `\r\n ${transition('text-decoration-color')};\r\n\r\n --textDecorationColour: ${brand.primary.orange};\r\n\r\n display: inline;\r\n color: currentColor;\r\n text-decoration: underline;\r\n text-decoration-color: var(--textDecorationColour);\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: ${fluid(3, 4)};\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus-visible {\r\n outline: auto;\r\n outline-offset: 2px;\r\n outline-width: 1px;\r\n outline-style: solid;\r\n outline-color: ${brand.primary.orange};\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n text-decoration-color: transparent;\r\n }\r\n`;\r\nexport const blockquote = css `\r\n ${paragraphRegular};\r\n\r\n --quoteWidth: ${fluid(56, 106)};\r\n --quoteColour: linear-gradient(\r\n 180deg,\r\n ${brand.primary.orange} 63.63%,\r\n ${brand.secondary.orangeDark} 100%\r\n );\r\n --quoteGap: ${fluid(8, 24)};\r\n --lineWidth: ${fluid(4, 8)};\r\n\r\n position: relative;\r\n color: currentColor;\r\n text-align: left;\r\n font-style: italic;\r\n padding-left: calc((var(--quoteGap) * 2) + var(--quoteWidth) + var(--lineWidth));\r\n\r\n &::before,\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n background: var(--quoteColour);\r\n }\r\n\r\n &::before {\r\n top: 50%;\r\n left: 0;\r\n width: var(--quoteWidth);\r\n aspect-ratio: 106 / 82;\r\n -webkit-mask-image: url(${svgQuote});\r\n mask-image: url(${svgQuote});\r\n mask-repeat: no-repeat;\r\n background-size: contain;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &::after {\r\n left: calc(var(--quoteGap) + var(--quoteWidth));\r\n top: 0;\r\n width: var(--lineWidth);\r\n height: 100%;\r\n border-radius: 100px;\r\n }\r\n\r\n p {\r\n color: currentColor;\r\n font-size: inherit;\r\n line-height: inherit;\r\n font-style: inherit;\r\n margin-bottom: ${fluid(8, 16)};\r\n }\r\n\r\n footer {\r\n ${authorName};\r\n\r\n cite {\r\n ${paragraphRegular};\r\n\r\n margin: 0;\r\n }\r\n }\r\n`;\r\nexport const table = css `\r\n ${paragraphSmall};\r\n\r\n --borderRadius: 6px;\r\n\r\n background: ${brand.primary.white};\r\n border-spacing: 0;\r\n border-collapse: separate;\r\n color: currentColor;\r\n width: 100% !important;\r\n border-radius: var(--borderRadius);\r\n\r\n td,\r\n th {\r\n border: 1px solid ${brand.primary.black};\r\n padding: 10px 12px;\r\n text-align: left;\r\n\r\n &:not(:last-child) {\r\n border-right: 0;\r\n }\r\n }\r\n\r\n thead {\r\n tr {\r\n background: transparent;\r\n\r\n td,\r\n th {\r\n font-weight: 700;\r\n color: ${brand.primary.orange};\r\n border-bottom: 0;\r\n\r\n &:first-child {\r\n border-top-left-radius: var(--borderRadius);\r\n }\r\n\r\n &:last-child {\r\n border-top-right-radius: var(--borderRadius);\r\n }\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:last-child {\r\n td:first-child {\r\n border-bottom-left-radius: var(--borderRadius);\r\n }\r\n\r\n td:last-child {\r\n border-bottom-right-radius: var(--borderRadius);\r\n }\r\n }\r\n\r\n &:not(:last-child) {\r\n td {\r\n border-bottom: 0;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n --bulletColour: ${brand.primary.orange};\r\n\r\n h1,\r\n .h1-styles {\r\n ${h2};\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h3};\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${h4};\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h5}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h6}\r\n }\r\n\r\n h6,\r\n .h6-styles {\r\n ${h6}\r\n }\r\n\r\n h1,\r\n .h1-styles,\r\n h2,\r\n .h2-styles,\r\n h3,\r\n .h3-styles,\r\n h4,\r\n .h4-styles,\r\n h5,\r\n .h5-styles,\r\n h6,\r\n .h6-styles {\r\n margin: ${fluid(18, 32)} 0 0.48em;\r\n }\r\n\r\n p {\r\n ${paragraphRegular};\r\n\r\n a {\r\n ${link};\r\n }\r\n }\r\n\r\n strong {\r\n font-weight: 700;\r\n }\r\n\r\n .extra-large {\r\n ${paragraphExtraLarge};\r\n\r\n strong {\r\n font-weight: 800;\r\n }\r\n }\r\n\r\n .large {\r\n ${paragraphLarge}\r\n }\r\n\r\n .small {\r\n ${paragraphSmall}\r\n }\r\n\r\n .tag {\r\n ${tag}\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphRegular};\r\n\r\n margin-top: ${fluid(12, 14)};\r\n\r\n li {\r\n color: currentColor;\r\n margin: 0 0 ${fluid(10, 12)};\r\n }\r\n }\r\n\r\n ol,\r\n ul {\r\n list-style: none;\r\n padding-left: 26px;\r\n }\r\n\r\n ol {\r\n counter-reset: li;\r\n\r\n li {\r\n display: block;\r\n counter-increment: li;\r\n margin-left: -26px;\r\n\r\n &::before {\r\n color: ${brand.primary.orange};\r\n content: counter(li) '.';\r\n margin-right: 12px;\r\n }\r\n }\r\n }\r\n\r\n // Ensure that inline styling hasn't been applied\r\n ul:not([style*='list-style-type']) li {\r\n position: relative;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: ${fluid(5.5, 12)};\r\n left: -26px;\r\n height: 13px;\r\n width: 12px;\r\n -webkit-mask-image: url(${svgBullet});\r\n mask-image: url(${svgBullet});\r\n mask-repeat: no-repeat;\r\n background-color: var(--bulletColour);\r\n }\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: var(--titleHighlight);\r\n border: 0;\r\n height: 2px;\r\n margin: ${fluid(30, 42)} 0;\r\n padding: 0;\r\n width: 100%;\r\n border-radius: 100px;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n .responsive-table {\r\n ${scrollbars};\r\n\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0 !important;\r\n }\r\n`;\r\n","import { domAnimation, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotion(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotion = (props) => {\r\n return (React.createElement(LazyMotion, { features: domAnimation, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\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","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Icon } from '@helpers/icons';\r\nimport { Device, until } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport { rgba } from 'polished';\r\nimport styled, { css } from 'styled-components';\r\nexport const CommonButtonTextStyles = css `\r\n ${transition('color', 0.25)};\r\n ${fonts.poppins.extraBold};\r\n\r\n position: relative;\r\n z-index: 2;\r\n color: currentColor;\r\n font-size: var(--fontSize);\r\n line-height: 1em;\r\n text-decoration: none;\r\n`;\r\nconst Text = styled.span `\r\n ${CommonButtonTextStyles};\r\n\r\n [data-icon-only='true'] & {\r\n ${srOnly};\r\n }\r\n`;\r\nconst IconWrapper = styled.div `\r\n ${transition('color', 0.25)};\r\n\r\n --iconHeight: 16px;\r\n\r\n position: relative;\r\n z-index: 2;\r\n display: grid;\r\n place-content: center;\r\n color: currentColor;\r\n height: var(--iconHeight);\r\n aspect-ratio: 1;\r\n margin: 0;\r\n padding: 0;\r\n\r\n > svg {\r\n display: block;\r\n height: var(--iconHeight);\r\n }\r\n\r\n [data-icon-position='left'] & {\r\n order: -1;\r\n }\r\n\r\n [data-icon-position='right'] & {\r\n order: 1;\r\n }\r\n\r\n [data-icon-type=${Icon.Arrow}] &,\r\n [data-icon-type=${Icon.ArrowThin}] &,\r\n [data-icon-type=${Icon.ChevronRight}] & {\r\n ${transition('transform, color', 0.25)};\r\n }\r\n\r\n [data-icon-type=${Icon.Arrow}][data-type='text'] &,\r\n [data-icon-type=${Icon.Arrow}][data-type='text-white'] &,\r\n [data-icon-type=${Icon.Arrow}][data-type='text-black'] & {\r\n ${transition('transform, color, opacity', 0.25)};\r\n\r\n opacity: 0;\r\n }\r\n\r\n [data-icon-type=${Icon.ChevronRight}] & {\r\n svg {\r\n transform: rotate(-90deg);\r\n width: var(--iconHeight);\r\n }\r\n }\r\n\r\n [data-icon-position='left'][data-icon-type=${Icon.Arrow}] &,\r\n [data-icon-position='left'][data-icon-type=${Icon.ArrowThin}] & {\r\n svg {\r\n transform: scale(-1);\r\n }\r\n }\r\n\r\n [data-icon-position='left'][data-icon-type=${Icon.ChevronRight}] & {\r\n svg {\r\n transform: rotate(-90deg) scale(-1);\r\n }\r\n }\r\n`;\r\nconst IconHoverStyles = css `\r\n &[data-icon-type=${Icon.Arrow}],\r\n &[data-icon-type=${Icon.ArrowThin}],\r\n &[data-icon-type=${Icon.ChevronRight}] {\r\n ${IconWrapper} {\r\n transform: translateX(3px);\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &[data-icon-position='left'][data-icon-type=${Icon.Arrow}],\r\n &[data-icon-position='left'][data-icon-type=${Icon.ArrowThin}],\r\n &[data-icon-position='left'][data-icon-type=${Icon.ChevronRight}] {\r\n ${IconWrapper} {\r\n transform: translateX(-3px);\r\n }\r\n }\r\n`;\r\nexport const DefaultButtonStyles = css `\r\n ${ButtonReset};\r\n ${transition('background-color, color', 0.25)};\r\n\r\n --buttonHeight: ${fluid(40, 56)};\r\n --bgColour: transparent;\r\n --bgColourHover: transparent;\r\n --bgGradient: linear-gradient(\r\n 90deg,\r\n ${brand.primary.orange} 0%,\r\n ${brand.secondary.orangeDark} 100%\r\n );\r\n --bgGradientHover: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.4) 100%);\r\n --borderColour: transparent;\r\n --borderRadius: ${fluid(8, 12)};\r\n --borderWidth: ${fluid(2, 3)};\r\n --colourText: ${brand.primary.white};\r\n --colourTextDisabled: ${rgba(brand.primary.white, 0.8)};\r\n --colourTextHover: ${brand.primary.white};\r\n --fontSize: ${fluid(14, 18)};\r\n\r\n position: relative;\r\n display: inline-flex;\r\n gap: ${fluid(8, 12)};\r\n align-items: center;\r\n border: var(--borderWidth) solid var(--borderColour);\r\n background: none;\r\n background-image: var(--bgGradient);\r\n background-color: var(--bgColour);\r\n /* Compensate for transparent border when gradient bg is used and retained for border */\r\n background-size: calc(100% + ${fluid(4, 6)}) 100%;\r\n background-position: top center;\r\n color: var(--colourText);\r\n height: var(--buttonHeight);\r\n padding: 0 ${fluid(12, 16)};\r\n text-decoration: none;\r\n user-select: none;\r\n width: auto;\r\n border-radius: var(--borderRadius);\r\n\r\n /* Background hover for gradient to fade in */\r\n &::before {\r\n ${transition('opacity', 0.25)};\r\n\r\n content: '';\r\n position: absolute;\r\n height: 100%;\r\n width: 100%;\r\n background: var(--bgGradientHover);\r\n left: 0;\r\n top: 0;\r\n border-radius: calc(var(--borderRadius) * 0.85);\r\n opacity: 0;\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('background-color, color, transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n span& {\r\n .focus-ring & {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 2px;\r\n }\r\n\r\n .focus-ring &,\r\n button:hover &,\r\n a:hover & {\r\n ${IconHoverStyles};\r\n\r\n color: var(--colourTextHover);\r\n background-color: var(--bgColourHover);\r\n\r\n &::before {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n cursor: pointer;\r\n\r\n &:focus-visible,\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-width: 2px;\r\n }\r\n\r\n &:focus-visible,\r\n &.focus-ring,\r\n &:hover {\r\n ${IconHoverStyles};\r\n\r\n color: var(--colourTextHover);\r\n background-color: var(--bgColourHover);\r\n\r\n &::before {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n /* Increase specificity to override :not(span) style */\r\n &:disabled:disabled:disabled {\r\n color: var(--colourTextDisabled);\r\n background-color: var(--bgColourHover);\r\n\r\n &::before {\r\n opacity: 1;\r\n }\r\n\r\n cursor: not-allowed;\r\n\r\n ${IconWrapper} {\r\n transform: none;\r\n }\r\n }\r\n`;\r\nexport const OutlineButtonStyles = css `\r\n --bgOverlay: ${brand.primary.white};\r\n\r\n --borderColour: transparent;\r\n --colourText: ${brand.primary.black};\r\n\r\n /* Overlay to create gradient border effect */\r\n &::after {\r\n ${transition('opacity', 0.25)};\r\n\r\n content: '';\r\n box-shadow: 2px 1000px 1px var(--bgOverlay) inset;\r\n position: absolute;\r\n height: 100%;\r\n width: 100%;\r\n left: 0;\r\n top: 0;\r\n border-radius: ${fluid(6, 9)};\r\n }\r\n\r\n span& {\r\n .focus-ring &,\r\n button:hover &,\r\n a:hover & {\r\n &::after {\r\n opacity: 0;\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover {\r\n &::after {\r\n opacity: 0;\r\n }\r\n }\r\n }\r\n\r\n &:disabled:disabled:disabled {\r\n &::after {\r\n opacity: 0;\r\n }\r\n }\r\n`;\r\nexport const OutlineWhiteButtonStyles = css `\r\n --bgColour: transparent;\r\n --bgColourHover: ${brand.primary.white};\r\n --bgGradient: transparent;\r\n --bgGradientHover: transparent;\r\n --borderColour: ${brand.primary.white};\r\n --colourText: ${brand.primary.white};\r\n --colourTextDisabled: ${rgba(brand.primary.black, 0.66)};\r\n --colourTextHover: ${brand.primary.black};\r\n`;\r\nexport const OutlineBlackButtonStyles = css `\r\n --bgColour: transparent;\r\n --bgColourHover: ${brand.primary.black};\r\n --bgGradient: transparent;\r\n --bgGradientHover: transparent;\r\n --borderColour: ${brand.primary.black};\r\n --colourText: ${brand.primary.black};\r\n --colourTextDisabled: ${rgba(brand.primary.white, 0.66)};\r\n --colourTextHover: ${brand.primary.white};\r\n`;\r\nexport const SolidWhiteButtonStyles = css `\r\n --bgColour: ${brand.primary.white};\r\n --bgColourHover: transparent;\r\n --bgGradient: transparent;\r\n --bgGradientHover: transparent;\r\n --borderColour: ${brand.primary.white};\r\n --colourText: ${brand.primary.black};\r\n --colourTextDisabled: ${rgba(brand.primary.white, 0.8)};\r\n --colourTextHover: ${brand.primary.white};\r\n`;\r\nexport const TextButtonStyles = css `\r\n --bgColour: transparent;\r\n --bgColourHover: ${brand.overlays.black};\r\n --bgGradient: transparent;\r\n --bgGradientHover: transparent;\r\n --borderColour: transparent;\r\n --colourText: ${brand.primary.black};\r\n --colourTextDisabled: ${rgba(brand.primary.black, 0.8)};\r\n --colourTextHover: ${brand.primary.black};\r\n\r\n ${Text} {\r\n text-decoration: underline;\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: 4px;\r\n }\r\n`;\r\nexport const TextBlackButtonStyles = css `\r\n --bgColour: transparent;\r\n --bgColourHover: ${brand.overlays.white};\r\n --bgGradient: transparent;\r\n --bgGradientHover: transparent;\r\n --borderColour: transparent;\r\n --colourText: ${brand.primary.black};\r\n --colourTextDisabled: ${rgba(brand.primary.black, 0.8)};\r\n --colourTextHover: ${brand.primary.black};\r\n\r\n ${Text} {\r\n text-decoration: underline;\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: 4px;\r\n }\r\n`;\r\nexport const TextWhiteButtonStyles = css `\r\n --bgColour: transparent;\r\n --bgColourHover: ${brand.overlays.white};\r\n --bgGradient: transparent;\r\n --bgGradientHover: transparent;\r\n --borderColour: transparent;\r\n --colourText: ${brand.primary.white};\r\n --colourTextDisabled: ${rgba(brand.primary.white, 0.8)};\r\n --colourTextHover: ${brand.primary.white};\r\n\r\n ${Text} {\r\n text-decoration: underline;\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: 4px;\r\n }\r\n`;\r\nconst Container = styled.button `\r\n ${DefaultButtonStyles};\r\n\r\n &[data-type='outline'] {\r\n ${OutlineButtonStyles};\r\n }\r\n\r\n &[data-type='outline-white'] {\r\n ${OutlineWhiteButtonStyles};\r\n }\r\n\r\n &[data-type='outline-black'] {\r\n ${OutlineBlackButtonStyles};\r\n }\r\n\r\n &[data-type='solid-white'] {\r\n ${SolidWhiteButtonStyles};\r\n }\r\n\r\n &[data-type='text'] {\r\n ${TextButtonStyles};\r\n }\r\n\r\n &[data-type='text-white'] {\r\n ${TextWhiteButtonStyles};\r\n }\r\n\r\n &[data-type='text-black'] {\r\n ${TextBlackButtonStyles};\r\n }\r\n\r\n &[data-icon-only='true'] {\r\n height: var(--buttonHeight);\r\n justify-content: center;\r\n padding: 0;\r\n width: var(--buttonHeight);\r\n }\r\n`;\r\nconst ButtonStyles = {\r\n Container,\r\n IconWrapper,\r\n Text,\r\n};\r\nexport default ButtonStyles;\r\n","import { Icon, getSvgIcon } from '@helpers/icons';\r\nimport { FocusRing } from '@react-aria/focus';\r\nimport * as React from 'react';\r\nimport S from './Button.styles';\r\nconst Button = ({ buttonType, children, icon = Icon.Arrow, iconOnly, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Container, { \"data-icon-only\": iconOnly, \"data-icon-position\": iconPosition, \"data-icon-type\": icon, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n icon !== Icon.None && React.createElement(S.IconWrapper, null, getSvgIcon(icon)))));\r\n};\r\nconst FakeButton = ({ buttonType, children, icon = Icon.Arrow, iconOnly, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(S.Container, { as: \"span\", \"data-icon-only\": iconOnly, \"data-icon-position\": iconPosition, \"data-icon-type\": icon, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n icon !== Icon.None && React.createElement(S.IconWrapper, null, getSvgIcon(icon))));\r\n};\r\nconst LinkButton = ({ buttonType, children, icon = Icon.Arrow, iconOnly, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Container, { as: \"a\", \"data-icon-only\": iconOnly, \"data-icon-position\": iconPosition, \"data-icon-type\": icon, \"data-type\": buttonType, ...otherProps },\r\n React.createElement(S.Text, null, children),\r\n icon !== Icon.None && React.createElement(S.IconWrapper, null, getSvgIcon(icon)))));\r\n};\r\nexport { FakeButton, LinkButton, Button as default };\r\n","import { fluid } from '@helpers/fluid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n --gutter: ${fluid(16, 24)};\r\n\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: var(--gutter);\r\n\r\n & > * {\r\n width: 100%;\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n align-items: center;\r\n flex-direction: column;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n justify-content: center;\r\n\r\n & > * {\r\n // prettier-ignore\r\n flex: 0 0 calc((100% - var(--gutter) * ${(props) => props['data-cards-per-row'] - 1}) / ${(props) => props['data-cards-per-row']})\r\n }\r\n }\r\n`;\r\nexport const CardGridStyles = {\r\n Container,\r\n};\r\n","import React from 'react';\r\nimport { CardGridStyles as S } from './CardGrid.styles';\r\nconst CardGrid = ({ children, cardsPerRow }) => {\r\n return React.createElement(S.Container, { \"data-cards-per-row\": cardsPerRow }, children);\r\n};\r\nexport default CardGrid;\r\n","import brand from '@helpers/brand';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nexport const SectionWrapperCSS = css `\r\n color: var(--sectionColour, ${brand.primary.black});\r\n background: var(--sectionBackground, transparent);\r\n scroll-margin: var(--headerHeight, 0px) 0 0;\r\n\r\n &[data-flush='top'] {\r\n --sectionSpacingTop: 0;\r\n }\r\n\r\n &[data-flush='bottom'] {\r\n --sectionSpacingBottom: 0;\r\n }\r\n\r\n &[data-flush='both'] {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n }\r\n\r\n /* Variant text colours */\r\n &[data-variant='blue'],\r\n &[data-variant='charcoal'],\r\n &[data-variant='orange'],\r\n &[data-variant='pink'] {\r\n --sectionColour: ${brand.primary.white};\r\n }\r\n\r\n &[data-variant='stone'],\r\n &[data-variant='white'] {\r\n --sectionColour: ${brand.primary.black};\r\n }\r\n\r\n /* Variant background colours */\r\n &[data-variant='pink'] {\r\n --bgAngle: 90deg;\r\n }\r\n\r\n &[data-variant='blue'],\r\n &[data-variant='charcoal'] {\r\n --bgAngle: 105deg;\r\n }\r\n\r\n &[data-variant='orange'] {\r\n --bgAngle: 0deg;\r\n }\r\n\r\n &[data-variant='blue'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #3372aa 0%, #1e2f6d 100%);\r\n }\r\n\r\n &[data-variant='charcoal'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #2b2b2b 0%, #505050 100%);\r\n }\r\n\r\n &[data-variant='orange'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #f47929 0%, #f17028 58.6%, #e24321 98.36%);\r\n }\r\n\r\n &[data-variant='pink'] {\r\n --sectionBackground: linear-gradient(var(--bgAngle), #9f4a92 0%, #cc709c 53%, #f491a4 100%);\r\n }\r\n\r\n &[data-variant='stone'] {\r\n --sectionBackground: ${brand.primary.stone};\r\n }\r\n\r\n &[data-variant='white'] {\r\n --sectionBackground: ${brand.primary.white};\r\n }\r\n`;\r\nconst Container = styled(m.section) `\r\n ${SectionWrapperCSS};\r\n`;\r\nexport const SectionWrapperInnerCSS = css `\r\n ${siteWide};\r\n\r\n padding-top: var(--sectionSpacingTop);\r\n padding-bottom: var(--sectionSpacingBottom);\r\n`;\r\nconst Inner = styled.div `\r\n ${SectionWrapperInnerCSS};\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef((props, ref) => {\r\n const { id, children, layout = 'default', flush = 'none', variant, ...otherProps } = props;\r\n return (React.createElement(S.Container, { ref: ref, id: id, \"data-flush\": flush, \"data-variant\": variant, ...otherProps }, renderLayout()));\r\n function renderLayout() {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n //@ts-ignore\r\n if (layout === 'fullWidth') {\r\n return children;\r\n }\r\n return React.createElement(S.Inner, null, children);\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n"],"names":["ButtonReset","css","siteWide","baseGrid","imageUrl","image","imageParams","params","center","focalPoint","top","left","undefined","width","heightratio","height","Math","round","paramsString","queryString","src","getSrcs","upper","lower","steps","ratio","srcSet","sizes","increment","Array","fill","map","_","index","ceil","getRange","sizesArr","size","split","join","brand","grey","dark","primary","orange","headingStyles","fonts","poppins","extraBold","fluid","h1","h2","h3","h4","h5","h6","paragraphStyles","regular","paragraphExtraLarge","paragraphLarge","paragraphRegular","paragraphSmall","tag","bold","authorName","caveat","link","transition","blockquote","secondary","orangeDark","svgQuote","table","white","black","contentStyles","svgBullet","scrollbars","withMotion","WrappedComponent","displayName","name","ComponentWithMotion","props","React","LazyMotion","features","domAnimation","strict","callback","options","arguments","length","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","CommonButtonTextStyles","Text","styled","span","withConfig","componentId","srOnly","IconWrapper","div","Icon","Arrow","ArrowThin","ChevronRight","IconHoverStyles","DefaultButtonStyles","rgba","until","Device","TabletLarge","OutlineButtonStyles","OutlineWhiteButtonStyles","OutlineBlackButtonStyles","SolidWhiteButtonStyles","TextButtonStyles","overlays","TextBlackButtonStyles","TextWhiteButtonStyles","Container","button","Button","_ref","buttonType","children","icon","iconOnly","iconPosition","otherProps","FocusRing","focusRingClass","S","None","getSvgIcon","FakeButton","_ref2","as","LinkButton","_ref3","CardGridStyles","from","cardsPerRow","SectionWrapperCSS","stone","m","section","SectionWrapperInnerCSS","Inner","SectionWrapper","ref","id","layout","flush","variant"],"sourceRoot":""}