{"version":3,"sources":["webpack:///./src/stories/Components/Tag/Tag.styles.ts","webpack:///./src/stories/Components/Tag/Tag.tsx","webpack:///./src/stories/Components/Buttons/GeneralButton/Button.tsx","webpack:///./src/redux/middleware/persist.ts","webpack:///./src/img/icons/shortlist.svg","webpack:///./src/stories/Components/Breadcrumb/Breadcrumb.styles.ts","webpack:///./src/img/icons/location-pin.svg","webpack:///./src/stories/Components/Global/Typography/Paragraph.styles.ts","webpack:///./src/stories/Components/Buttons/GeneralButton/Button.styles.ts","webpack:///./src/stories/Components/Global/Typography/Heading.tsx","webpack:///./src/img/icons/door.svg","webpack:///./src/img/icons/fuel.svg","webpack:///./src/img/icons/mileage.svg","webpack:///./src/img/icons/transmission.svg","webpack:///./src/img/icons/type.svg","webpack:///./src/img/icons/camera.svg","webpack:///./src/helpers/layers.ts","webpack:///./src/redux/reducers/index.ts","webpack:///./src/redux/store.ts","webpack:///./src/stories/Components/Global/Typography/Paragraph.tsx","webpack:///./src/stories/Components/Global/Typography/Heading.styles.ts","webpack:///./src/img/icons/chevron-down.svg","webpack:///./src/stories/Components/CarouselButtons/CarouselButtons.tsx","webpack:///./src/stories/Components/CarouselButtons/CarouselButtons.styles.ts","webpack:///./src/img/icons/cta-chevron.svg","webpack:///./src/img/icons/arrow.svg","webpack:///./src/img/icons/tax.svg","webpack:///./src/img/icons/clock.svg","webpack:///./src/img/icons/maximize.svg","webpack:///./src/img/icons/play.svg","webpack:///./src/img/icons/pound.svg","webpack:///./src/stories/Components/LightboxGallery/LightboxGallery.styles.ts","webpack:///./src/stories/Components/LightboxGallery/LightboxGallery.tsx","webpack:///./src/stories/Widgets/UsedCarOverview/UsedCarOverview.styles.ts","webpack:///./src/stories/Widgets/UsedCarOverview/UsedCarOverview.tsx","webpack:///./src/stories/Components/CtaLink/CtaLink.tsx","webpack:///./src/hoc/withRedux.tsx","webpack:///./src/helpers/fluid.ts","webpack:///./src/helpers/srOnly.ts","webpack:///./src/stories/Components/Breadcrumb/Breadcrumb.tsx","webpack:///./src/helpers/image.ts","webpack:///./src/hoc/WithMotion.tsx","webpack:///./src/helpers/scrollbars.ts","webpack:///./src/stories/Components/CtaLink/CtaLink.styles.ts","webpack:///./src/helpers/ssr.ts","webpack:///./src/redux/reducers/shortlist/index.ts","webpack:///./src/img/icons/phone.svg","webpack:///./src/img/icons/cross.svg","webpack:///./src/redux/reducers/enquiry/index.ts","webpack:///./src/redux/reducers/quote/index.ts"],"names":["TagStyles","Container","styled","span","fonts","inter","extraBold","brand","primary","blue","base","fluid","white","Tag","title","React","S","Button","addon","addonPosition","branding","className","disabled","form","size","type","onClick","rest","createElement","ButtonStyles","iconPosition","Icon","position","Text","LinkButton","href","target","as","PersistedSelectors","persistMiddleware","store","next","action","result","state","getState","forEach","selector","localStorage","setItem","getKey","JSON","stringify","get","load","defaultValue","key","value","getItem","parse","error","_circle","_circle2","_path","_extends","Object","assign","i","arguments","length","source","prototype","hasOwnProperty","call","apply","this","SvgShortlist","props","xmlns","viewBox","cx","cy","r","fill","strokeWidth","stroke","d","strokeMiterlimit","nav","scrollbars","black","BreadcrumbStyles","Item","div","until","Device","MobileLarge","srOnly","Link","a","sofiaPro","regular","SvgLocationPin","fillRule","LargeStyles","css","from","Mobile","Tablet","Desktop","RegularStyles","SmallStyles","linkStyles","transition","bold","tableStyles","semiBold","grey","contentStyles","HeadingStyles","H1Styles","H2Styles","H3Styles","H4Styles","H5Styles","light","Paragraph","p","PrimaryStyles","SecondaryStyles","TertiaryStyles","OutlineStyles","TransparentStyles","IconLeft","DesktopSmall","IconRight","hideText","BaseButtonStyles","ButtonTextStyles","TabletLarge","button","withMotion","children","semantic","visual","lineAfter","inView","showLine","useMemo","undefined","Fragment","s","Heading","Line","SvgCamera","Layers","AboveContent","Overlays","Header","Modal","rootReducer","combineReducers","shortlist","enquiry","quote","configureStore","middleware","getDefaultMiddleware","concat","preloadedState","reducer","useAppDispatch","useDispatch","useAppSelector","useSelector","m","h1","dark","attrs","initial","animate","variants","hidden","width","visible","duration","ease","SvgChevronDown","CarouselButtons","prevDisabled","nextDisabled","prevClicked","nextClicked","CarouselButtonPrev","ControlArrow","CarouselButtonNext","section","CarouselButtonStyles","ButtonReset","CarouselButtonsStyles","SvgCtaChevron","SvgArrow","SvgClock","_g","SvgMaximize","transform","height","rx","opacity","_path2","SvgPlay","SvgPound","Wrapper","active","CarouselContainer","slick","slickTheme","CarouselItem","CarouselItemInner","CarouselImage","img","CarouselVideo","ThumbnailCarouselWrapper","ThumbnailCarouselContainer","Thumbnail","ThumbnailContainer","CloseContainer","ThumbnailButtonPrev","ThumbnailButtonNext","ThumbnailControl","LightboxGalleryStyles","LightboxGallery","galleryItems","imageRatio","onActiveChange","setActive","index","disableImageProcessing","activeIndex","setActiveIndex","useState","sliderRef","useRef","thumbnailsRef","useEffect","current","slickGoTo","slickSettings","arrows","dots","infinite","centerMode","centerPadding","slidesToShow","slidesToScroll","swipeToSlide","touchThreshold","beforeChange","responsive","breakpoint","settings","ratioValue","SiteWide","Cross","Slider","ref","map","item","video","isSSR","Suspense","fallback","ReactPlayer","playsinline","playing","controls","url","renderVideo","phyron","src","renderPhyron","image","getImageUrl","mode","heightratio","itemSrcs","alt","altText","loading","srcSet","join","renderImage","Play","Math","floor","GalleryContainer","ActiveImageContainer","ActiveImage","VideoWrapper","ControlsContainer","CarouselControlsContainer","ActiveItemControls","MaximizeButton","PlayButton","GalleryButtonsContainer","GalleryButton","GalleryButtonText","GalleryButtonIcon","TitleContainer","Title","Subtitle","h2","medium","Strapline","h3","PriceContainer","PriceItems","PriceItem","PriceLabel","Price","ContentContainer","ShortListContainer","ShortlistIcon","ShortListText","Shortlist","added","FeaturesContainer","FeatureList","Feature","FeatureIconImage","FeatureText","ButtonContainer","ButtonList","ButtonItem","LocationContainer","LocationItem","LocationIcon","LocationContent","LocationModalLink","LocationModalContainer","colourWithTransparency","LocationModalContentContainer","LocationModalClose","LocationModalTitle","LocationModalContent","CTABlockContainer","CTAInner","CTAWrapper","DesktopLarge","QuotingReference","CTALine","CTABlock","CTAContainer","CTAIcon","CTAContent","CTALink","CTAContentWrapper","CTAContact","CTADropdownWrapper","CTAButton","ActualDesktop","ClockIcon","CTAButtonIcon","Bullet","CTADropdownContent","CTADropdownLine","Day","Time","CTALineInner","CallBackText","ArrowIcon","CTABaseContainer","ShareContainer","BreadcrumbContent","BreadcrumbWrapper","UsedCarOverviewStyles","withRedux","id","reserved","strapline","subtitle","price","priceLabel","monthlyPrice","monthlyPriceLabel","content","fuelIconUrl","Fuel","fuel","transmissionIconUrl","Transmission","transmission","mileageIconUrl","Mileage","mileage","bikeType","carTypeIconUrl","Type","carType","doorsIconUrl","Door","doors","taxIconUrl","Tax","tax","location","gallery","breadcrumb","shareData","getInTouchText","reserveLink","reserveText","testDriveText","locationModalHeading","locationModalContent","phoneNumber","openingTimes","callBackText","callBackTextTitle","callBackLink","personalisedVideoText","personalisedVideoLink","personalisedVideoLinkText","exchangeText","exchangeLinkText","exchangeLink","tag","quotingReferenceLabel","quotingReference","isDealerOpen","openingHoursText","dispatch","items","persisted","refLocationModal","refSlider","activeGallery","setActiveGallery","activeGalleryIndex","setActiveGalleryIndex","activeImageIndex","setActiveImageIndex","activeLightbox","setActiveLightbox","activeLocationModal","setActiveLocationModal","isOpen","setIsOpen","updateQuote","swipeHandlers","useSwipeable","onSwipedLeft","targetIndex","min","onSwipedRight","max","handleKeyDown","event","handlePrevImage","handleNextImage","document","addEventListener","removeEventListener","isInShortlist","some","toString","handleClickOutside","contains","videoItems","filter","x","speed","variableWidth","handleGalleryClick","findIndex","Breadcrumb","activeItem","activeSrc","activeItemSrcs","renderTag","e","preventDefault","slickPrev","slickNext","filteredGalleryItems","handleImageGalleryClick","handleVideoGalleryClick","renderGallery","toggle","name","find","SvgCross","SvgPhone","open","closed","emphasise","day","time","CtaLink","ShareButtons","options","shareTitle","shareUrl","variant","otherProps","Anchor","SvgChevronRight","WrappedComponent","displayName","ComponentWithRedux","ReduxProvider","DEFAULT_MIN_VALUE","TabletSmall","DEFAULT_MAX_VALUE","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","darkText","isLong","reduce","acc","cur","DEFAULT_PARAMS","upscale","imageParams","params","widthratio","fixPadParams","queryString","ComponentWithMotion","LazyMotion","features","domAnimation","strict","CtaStyles","CtaLinkStyles","window","initialState","slice","createSlice","reducers","add","payload","push","clear","remove","actions","postcode","email"],"mappings":"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","file":"UsedCarOverview-77817d2c0bdb2336cfad.js","sourcesContent":["import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport styled from 'styled-components';\r\nconst Container = 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: ${fluid(1, 2)} solid ${brand.white};\r\n border-left-width: 0;\r\n border-bottom-width: 0;\r\n border-radius: 0 20px 0 0;\r\n color: ${brand.white};\r\n font-size: 13px;\r\n line-height: 1em;\r\n min-width: 120px;\r\n padding: 10px 40px 10px 25px;\r\n text-transform: uppercase;\r\n white-space: nowrap;\r\n width: auto;\r\n`;\r\nconst TagStyles = {\r\n Container,\r\n};\r\nexport default TagStyles;\r\n","import * as React from 'react';\r\nimport S from './Tag.styles';\r\nconst Tag = ({ title }) => {\r\n return React.createElement(S.Container, null, title);\r\n};\r\nexport default Tag;\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","import get from 'lodash/get';\r\n/**\r\n * The state selector paths to be persisted.\r\n */\r\nexport const PersistedSelectors = [\r\n 'shortlist.persisted',\r\n 'enquiry.persisted',\r\n 'quote.persisted',\r\n];\r\n/**\r\n * Persists all selectors in PersistedSelectors in local storage.\r\n * @param store\r\n * @returns\r\n */\r\nexport const persistMiddleware = (store) => (next) => (action) => {\r\n // Ensure state is updated.\r\n const result = next(action);\r\n // Retrieve updated state.\r\n const state = store.getState();\r\n // Save all selector values to local storage.\r\n PersistedSelectors.forEach((selector) => {\r\n localStorage.setItem(getKey(selector), JSON.stringify(get(state, selector)));\r\n });\r\n return result;\r\n};\r\n/**\r\n * Generate local storage key for selector.\r\n * @param selector\r\n * @returns\r\n */\r\nexport function getKey(selector) {\r\n return `lmg::${selector}`;\r\n}\r\n/**\r\n * Load value for selector from local storage.\r\n * @param selector\r\n * @param defaultValue\r\n * @returns\r\n */\r\nexport function load(selector, defaultValue) {\r\n const key = getKey(selector);\r\n try {\r\n const value = localStorage.getItem(key);\r\n if (!value) {\r\n return defaultValue;\r\n }\r\n return JSON.parse(value);\r\n }\r\n catch (error) {\r\n return defaultValue;\r\n }\r\n}\r\n","var _circle, _circle2, _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 SvgShortlist(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 50\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25,\n cy: 25,\n r: 25,\n fill: \"#feffff\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 25,\n cy: 25,\n r: 24,\n fill: \"none\",\n strokeWidth: 2,\n stroke: \"#191919\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.13 15.59h-.06c-2.1.01-4.06 1.08-5.2 2.85a6.222 6.222 0 00-5.2-2.85h-.06c-3.4.03-6.13 2.79-6.13 6.19.14 2.63 1.05 5.16 2.62 7.27 2.54 3.19 5.49 6.04 8.77 8.45 3.29-2.41 6.24-5.26 8.77-8.45 1.57-2.11 2.48-4.64 2.62-7.27 0-3.4-2.74-6.16-6.13-6.19z\",\n stroke: \"#000\",\n strokeMiterlimit: 10,\n fill: \"none\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"1ef020cb55d898254f8afaa8725d6cab.svg\";\nexport { SvgShortlist as ReactComponent };","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","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 SvgLocationPin(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 16.566 24.85\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.283 11.907a3.624 3.624 0 113.624-3.624 3.628 3.628 0 01-3.624 3.624M8.283 0A8.292 8.292 0 000 8.283c0 4.394 7.531 15.849 7.851 16.333a.517.517 0 00.864 0c.321-.485 7.851-11.939 7.851-16.333A8.292 8.292 0 008.283 0\",\n fill: \"currentcolor\",\n fillRule: \"evenodd\"\n })));\n}\n\nexport default __webpack_public_path__ + \"6026eacfaffa4b2952fcb79a59d61bf6.svg\";\nexport { SvgLocationPin as ReactComponent };","import { transition } from '@helpers/animation';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nimport HeadingStyles from './Heading.styles';\r\n/**\r\n * 20px / 28px\r\n */\r\nexport const LargeStyles = css `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 20px;\r\n letter-spacing: normal;\r\n line-height: 30px;\r\n margin-bottom: 16px;\r\n\r\n @media ${from(Device.Mobile)} {\r\n font-size: 20px;\r\n line-height: 30px;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 22px;\r\n line-height: 32px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n font-size: 26px;\r\n line-height: 36px;\r\n }\r\n`;\r\n/**\r\n * 18px / 28px\r\n */\r\nexport const RegularStyles = css `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n letter-spacing: normal;\r\n line-height: 28px;\r\n margin-bottom: 16px;\r\n`;\r\n/**\r\n * 16px / 26px\r\n */\r\nconst SmallStyles = css `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n line-height: 26px;\r\n margin-bottom: 16px;\r\n\r\n @media ${from(Device.Desktop)} {\r\n font-size: 18px;\r\n line-height: 28px;\r\n }\r\n`;\r\nconst linkStyles = css `\r\n ${transition('text-decoration-color', 0.2)};\r\n\r\n ${fonts.sofiaPro.bold};\r\n\r\n color: ${brand.primary.blue.base};\r\n text-decoration: underline;\r\n text-decoration-color: currentColor;\r\n text-decoration-thickness: 1px;\r\n text-underline-offset: 3px;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration-color: transparent;\r\n }\r\n`;\r\nconst tableStyles = css `\r\n ${SmallStyles};\r\n\r\n margin: 0 0 16px;\r\n table-layout: fixed;\r\n text-align: left;\r\n width: 100%;\r\n\r\n td,\r\n th {\r\n padding: 16px 10px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 16px;\r\n }\r\n }\r\n\r\n thead {\r\n ${fonts.sofiaPro.semiBold};\r\n\r\n tr {\r\n border-bottom: 1px solid ${brand.primary.blue.base};\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:nth-child(even) {\r\n background-color: ${brand.primary.grey.base};\r\n }\r\n }\r\n }\r\n`;\r\nconst contentStyles = css `\r\n h1 {\r\n ${HeadingStyles.H1Styles};\r\n }\r\n\r\n h2 {\r\n ${HeadingStyles.H2Styles};\r\n }\r\n\r\n h3 {\r\n ${HeadingStyles.H3Styles};\r\n }\r\n\r\n h4 {\r\n ${HeadingStyles.H4Styles};\r\n }\r\n\r\n h5 {\r\n ${HeadingStyles.H5Styles};\r\n }\r\n\r\n p {\r\n ${SmallStyles};\r\n }\r\n\r\n strong {\r\n ${fonts.sofiaPro.bold};\r\n }\r\n\r\n figure {\r\n margin: 30px 0;\r\n }\r\n\r\n figcaption {\r\n margin-top: 5px;\r\n ${fonts.sofiaPro.light};\r\n text-transform: uppercase;\r\n }\r\n\r\n ol,\r\n ul {\r\n display: block;\r\n ${SmallStyles};\r\n padding: 0 0 0 40px;\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n\r\n li {\r\n display: list-item;\r\n margin-bottom: 1em;\r\n }\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n\r\n li {\r\n display: list-item;\r\n margin-bottom: 1em;\r\n }\r\n }\r\n\r\n a {\r\n ${linkStyles};\r\n }\r\n\r\n table {\r\n ${tableStyles};\r\n }\r\n\r\n hr {\r\n margin: 16px 0;\r\n }\r\n\r\n sup {\r\n position: relative;\r\n top: -0.5em;\r\n font-size: 80%;\r\n }\r\n\r\n sub {\r\n position: relative;\r\n top: 0.5em;\r\n font-size: 80%;\r\n }\r\n\r\n *:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\nconst Paragraph = styled.p `\r\n ${contentStyles}\r\n\r\n ${({ size }) => {\r\n switch (size) {\r\n case 'large':\r\n return LargeStyles;\r\n case 'regular':\r\n return RegularStyles;\r\n case 'small':\r\n return SmallStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nexport default {\r\n contentStyles,\r\n linkStyles,\r\n tableStyles,\r\n Paragraph,\r\n SmallStyles,\r\n RegularStyles,\r\n LargeStyles,\r\n};\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 React from 'react';\r\nimport s from './Heading.styles';\r\nimport { withMotion } from '@hoc/WithMotion';\r\nconst Heading = ({ children, className, semantic = 'h1', visual, lineAfter, inView, }) => {\r\n const showLine = React.useMemo(() => (inView === undefined ? lineAfter : inView ? lineAfter : false), [inView, lineAfter]);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(s.Heading, { className: className, as: semantic, visual: visual },\r\n React.createElement(\"span\", null, children),\r\n lineAfter && React.createElement(s.Line, { showLine: showLine }))));\r\n};\r\nexport default withMotion(Heading);\r\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNSI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNTIgLTQ0MikiPg0KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjUyIDQ0MikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE5MTkxOSIgc3Ryb2tlLXdpZHRoPSIxIj4NCgkJCTxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIxNy41IiBzdHJva2U9Im5vbmUiIC8+DQoJCQk8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMTciIGZpbGw9Im5vbmUiIC8+DQoJCTwvZz4NCgkJPHBhdGggZD0iTTEyLjAyOSw2LjI4N2MtLjAzMSwwLS4wNjEsMC0uMDkyLDBhMS4zNzksMS4zNzksMCwwLDAtLjk2Ni40MTVsLS4wMy4wMjZMNi45MDYsMTAuNzA1bC0uMDc0LjEyOWExLjYyLDEuNjIsMCwwLDAtLjIzLjg4OWgwdjcuNjg5SDE5Ljk5MVY2LjI4N1pNMTguMzcsMTQuNmgtMS41YS4zMTUuMzE1LDAsMSwxLDAtLjYzaDEuNWEuMzE1LjMxNSwwLDAsMSwwLC42M1ptLjU0Ni0yLjUyM0g4LjA2NWMtLjQxMy0uMTYzLS40NjktLjQxLS4zLS43MTFsMy45LTMuODQ5Yy4wODgtLjA3NS4xNTctLjE3OC4zMS0uMTU1aDYuOTM2djQuNzE1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTI1Ni40IDQ0Ni43MTcpIiBmaWxsPSIjMTkxOTE5IiAvPg0KCTwvZz4NCjwvc3ZnPg0K\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNSI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU4NSAtMTU3NCkiPg0KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1ODUgMTU3NCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE5MTkxOSIgc3Ryb2tlLXdpZHRoPSIxIj4NCgkJCTxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIxNy41IiBzdHJva2U9Im5vbmUiIC8+DQoJCQk8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMTciIGZpbGw9Im5vbmUiIC8+DQoJCTwvZz4NCgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTk1Ljc2NCAxNTg0LjMwMykiPg0KCQkJPHBhdGggZD0iTTc0Ljk1Miw0OC40M2g2LjQ4NGEuODk0Ljg5NCwwLDAsMSwuODkyLjg5MnY2LjE5YTEuNDExLDEuNDExLDAsMCwxLDEuNDE2LDEuNTI2djIuMjA2YS4zMTEuMzExLDAsMSwwLC42MTItLjFWNTUuM2gtLjMyYS40MzkuNDM5LDAsMCwxLS40MzktLjQzOXYtMi44OWEuNDM5LjQzOSwwLDAsMSwuNDM5LS40MzloLjMyVjUwLjM5bC0xLjA3NC0xLjA0NmEuNDM4LjQzOCwwLDAsMSwuNjEtLjYyN2wxLjM0MSwxLjMwN3YxLjUwOWguMzJhLjQzOS40MzksMCwwLDEsLjQzOS40Mzl2Mi44OWEuNDM5LjQzOSwwLDAsMS0uNDM5LjQzOWgtLjMydjMuODQyYTEuMTg1LDEuMTg1LDAsMSwxLTIuMzY4LjFWNTcuMDM3YzAtLjQ1My0uMi0uNi0uNTM4LS42NDh2NC40MjZoLjQ1MWExLjA5MywxLjA5MywwLDAsMSwxLjA5LDEuMDl2LjkyM0g3Mi41MlY2MS45YTEuMDkzLDEuMDkzLDAsMCwxLDEuMDktMS4wOWguNDVWNDkuMzIyQS44OTQuODk0LDAsMCwxLDc0Ljk1Miw0OC40M1ptMTAuMTYyLDMuOThoLS42NHYyLjAxM2guNjRabS05Ljc2OS0yLjQ1NGg1Ljd2My40NjhoLTUuN1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03Mi41MiAtNDguNDMpIiBmaWxsPSIjMTkxOTE5IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIC8+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4NCg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNSI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExMzYgLTQ0MikiPg0KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTM2IDQ0MikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE5MTkxOSIgc3Ryb2tlLXdpZHRoPSIxIj4NCgkJCTxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIxNy41IiBzdHJva2U9Im5vbmUiIC8+DQoJCQk8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMTciIGZpbGw9Im5vbmUiIC8+DQoJCTwvZz4NCgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE0Mi44NTQgNDUxLjkwNikiPg0KCQkJPHBhdGggZD0iTTEzLjM3OSwyMy4zODlhNi44NjQsNi44NjQsMCwwLDEsMS4zLS4zNDUuMzE4LjMxOCwwLDAsMC0uMS0uNjI3LDcuNSw3LjUsMCwwLDAtMS40My4zODFxLS4zNDguMTMtLjY4MS4yOTRhNy42NzIsNy42NzIsMCwwLDAtMS44NjYsMS4yOXEtLjI3LjI1My0uNTE2LjUzM2E3LjU2Nyw3LjU2NywwLDAsMC0uNTU3LjcxNi4zMTguMzE4LDAsMSwwLC41MjQuMzU5LDcuMDIyLDcuMDIyLDAsMCwxLDEtMS4xNTgsNyw3LDAsMCwxLDIuMzMyLTEuNDQzbTUuMzMxLjIyOGMtLjAyNy4wMjgtMy4wMjEsMy4wNTMtMy4xNDcsMy4xOGEzLjIsMy4yLDAsMCwwLTMuMTc5LDMuMTk0LDMuMTk1LDMuMTk1LDAsMSwwLDUuODU0LTEuNzY5bDEuMTI1LTQuMjMxYS4zOS4zOSwwLDAsMC0uNjU0LS4zNzRtNy41ODQsMS4xNDQtMi44NjcsMS4zNzFhOC43MTYsOC43MTYsMCwwLDAtMS40NDctMi4xMzdsMS4wMS0xLjAxMS0uNTI0LS41MjQtMS4wMSwxLjAxYTguNzY1LDguNzY1LDAsMCwwLTEuMTg2LS45MTUsOC42NjIsOC42NjIsMCwwLDAtLjkyNy0uNTE3bC41NjMtMS4zMDgtLjY4MS0uMjkzLS41NjMsMS4zMDhhOC42ODcsOC42ODcsMCwwLDAtMi43MjItLjU1OFYxOS43NTdIMTUuMnYxLjQyOWE4LjcxNyw4LjcxNywwLDAsMC0yLjUwOC40NzhsLS41MjgtMS4zMjctLjY4OS4yNzRMMTIsMjEuOTM4YTguNjUxLDguNjUxLDAsMCwwLTIuMzIxLDEuNTNMOC42NzUsMjIuNDZsLS41MjQuNTI0LDEuMDA4LDEuMDA4YTguNzc0LDguNzc0LDAsMCwwLTEuMzMzLDEuOTE1TDUsMjQuNDU1YTExLjg4MywxMS44ODMsMCwwLDEsMjEuMjk0LjMwNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUgLTE4KSIgZmlsbD0iIzE5MTkxOSIgZmlsbC1ydWxlPSJldmVub2RkIiAvPg0KCQk8L2c+DQoJPC9nPg0KPC9zdmc+DQo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNSI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgzNyAtMTU3NCkiPg0KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MzcgMTU3NCkiIGZpbGw9Im5vbmUiPg0KCQkJPHBhdGggZD0iTTE3LjUsMEExNy41LDE3LjUsMCwxLDEsMCwxNy41LDE3LjUsMTcuNSwwLDAsMSwxNy41LDBaIiBzdHJva2U9Im5vbmUiIC8+DQoJCQk8cGF0aCBkPSJNIDE3LjUgMSBDIDEzLjA5MjY4OTUxNDE2MDE2IDEgOC45NDkxODA2MDMwMjczNDQgMi43MTYzMDA5NjQzNTU0NjkgNS44MzI3NDA3ODM2OTE0MDYgNS44MzI3NDA3ODM2OTE0MDYgQyAyLjcxNjMwMDk2NDM1NTQ2OSA4Ljk0OTE4MDYwMzAyNzM0NCAxIDEzLjA5MjY4OTUxNDE2MDE2IDEgMTcuNSBDIDEgMjEuOTA3MzEwNDg1ODM5ODQgMi43MTYzMDA5NjQzNTU0NjkgMjYuMDUwODE5Mzk2OTcyNjYgNS44MzI3NDA3ODM2OTE0MDYgMjkuMTY3MjU5MjE2MzA4NTkgQyA4Ljk0OTE4MDYwMzAyNzM0NCAzMi4yODM2OTkwMzU2NDQ1MyAxMy4wOTI2ODk1MTQxNjAxNiAzNCAxNy41IDM0IEMgMjEuOTA3MzEwNDg1ODM5ODQgMzQgMjYuMDUwODE5Mzk2OTcyNjYgMzIuMjgzNjk5MDM1NjQ0NTMgMjkuMTY3MjU5MjE2MzA4NTkgMjkuMTY3MjU5MjE2MzA4NTkgQyAzMi4yODM2OTkwMzU2NDQ1MyAyNi4wNTA4MTkzOTY5NzI2NiAzNCAyMS45MDczMTA0ODU4Mzk4NCAzNCAxNy41IEMgMzQgMTMuMDkyNjg5NTE0MTYwMTYgMzIuMjgzNjk5MDM1NjQ0NTMgOC45NDkxODA2MDMwMjczNDQgMjkuMTY3MjU5MjE2MzA4NTkgNS44MzI3NDA3ODM2OTE0MDYgQyAyNi4wNTA4MTkzOTY5NzI2NiAyLjcxNjMwMDk2NDM1NTQ2OSAyMS45MDczMTA0ODU4Mzk4NCAxIDE3LjUgMSBNIDE3LjUgMCBDIDI3LjE2NDk3OTkzNDY5MjM4IDAgMzUgNy44MzUwMjAwNjUzMDc2MTcgMzUgMTcuNSBDIDM1IDI3LjE2NDk3OTkzNDY5MjM4IDI3LjE2NDk3OTkzNDY5MjM4IDM1IDE3LjUgMzUgQyA3LjgzNTAyMDA2NTMwNzYxNyAzNSAwIDI3LjE2NDk3OTkzNDY5MjM4IDAgMTcuNSBDIDAgNy44MzUwMjAwNjUzMDc2MTcgNy44MzUwMjAwNjUzMDc2MTcgMCAxNy41IDAgWiIgc3Ryb2tlPSJub25lIiBmaWxsPSIjMTkxOTE5IiAvPg0KCQk8L2c+DQoJCTxwYXRoIGQ9Ik0yNy4xODYsNDAuMjMzYTEuMTg2LDEuMTg2LDAsMCwwLDEuMTg2LTEuMTg2VjM0LjNIMzEuOTN2NC43NDRhMS4xODYsMS4xODYsMCwwLDAsMi4zNzIsMFYzNC4zaDIuMzcyYTMuNTU4LDMuNTU4LDAsMCwwLDMuNTU4LTMuNTU4VjI3LjE4NmExLjE4NiwxLjE4NiwwLDEsMC0yLjM3MiwwdjMuNTU4YTEuMTg2LDEuMTg2LDAsMCwxLTEuMTg2LDEuMTg2SDM0LjNWMjcuMTg2YTEuMTg2LDEuMTg2LDAsMSwwLTIuMzcyLDBWMzEuOTNIMjguMzcyVjI3LjE4NmExLjE4NiwxLjE4NiwwLDEsMC0yLjM3MiwwVjM5LjA0N0ExLjE4NiwxLjE4NiwwLDAsMCwyNy4xODYsNDAuMjMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODIxLjM4MyAxNTU4LjM4MykiIGZpbGw9IiMxOTE5MTkiIC8+DQoJPC9nPg0KPC9zdmc+DQo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNSI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExOTQgLTQ0MikiPg0KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTk0IDQ0MikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE5MTkxOSIgc3Ryb2tlLXdpZHRoPSIxIj4NCgkJCTxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIxNy41IiBzdHJva2U9Im5vbmUiIC8+DQoJCQk8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMTciIGZpbGw9Im5vbmUiIC8+DQoJCTwvZz4NCgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE5Ny40MjUgMTQzLjM2MSkiPg0KCQkJPHBhdGggZD0iTTEzLjg2MSwyOTIuNUg2LjQzYTEuMjUxLDEuMjUxLDAsMCwwLS45NTEuNDM2bC0xLjUsMS43NTJhMi4wODIsMi4wODIsMCwwLDEtMS41ODIuNzI4bC0xLjMxNywwYS40MS40MSwwLDAsMC0uNDE3LjQxNXYyLjVhMi4wNzUsMi4wNzUsMCwwLDAsMi4wODIsMi4wODJoLjg3OGEyLjQ5MiwyLjQ5MiwwLDAsMSw0LjkxNywwaDguNDJhMi40OTEsMi40OTEsMCwwLDEsNC45MTUsMGguODc2QTEuMjQzLDEuMjQzLDAsMCwwLDI0LDI5OS4xN3YtMS42MTVhMS4yNDcsMS4yNDcsMCwwLDAtLjk0OC0xLjIxM2wtMy4zNDQtLjgzN2EyLjkxNiwyLjkxNiwwLDAsMS0uODU4LS4zNjlsLTMuNDI0LTIuMTc3YTIuOTE5LDIuOTE5LDAsMCwwLTEuNTY2LS40NTZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjkxMyAxOS4xMzYpIiBmaWxsPSIjMTkxOTE5IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIC8+DQoJCQk8cGF0aCBkPSJNNy43NTMsMjk0LjYxOWExLjY2NywxLjY2NywwLDEsMS0xLjY2NywxLjY2N0ExLjY2MSwxLjY2MSwwLDAsMSw3Ljc1MywyOTQuNjE5Wm0uMDI5LDEuMjUySDcuNzUzYS40LjQsMCwxLDAsLjAyOSwwWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTMuNTc4IDIzLjY4NSkiIGZpbGw9IiMxOTE5MTkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgLz4NCgkJCTxwYXRoIGQ9Ik0zLjUyLDI5NC42MTlhMS42NjcsMS42NjcsMCwxLDEtMS42NjcsMS42NjdBMS42NjEsMS42NjEsMCwwLDEsMy41MiwyOTQuNjE5Wm0uMDI5LDEuMjUySDMuNTJhLjQuNCwwLDEsMCwuMDI5LDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LjQ3NCAyMy42ODUpIiBmaWxsPSIjMTkxOTE5IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIC8+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4NCg==\"","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 SvgCamera(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22.876 19.757\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.223 3.12H3.12A3.121 3.121 0 000 6.239v10.4a3.121 3.121 0 003.12 3.12h16.637a3.121 3.121 0 003.12-3.12v-10.4a3.121 3.121 0 00-3.12-3.12h-1.691L16.73 1.341A2.079 2.079 0 0014.785 0H8.091a2.081 2.081 0 00-1.978 1.436l-.89 1.684zm6.215 2.6a5.2 5.2 0 105.2 5.2 5.2 5.2 0 00-5.2-5.201zm0 2.08a3.12 3.12 0 11-3.12 3.12 3.121 3.121 0 013.12-3.12z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n })));\n}\n\nexport default __webpack_public_path__ + \"018a61d5d5d69e667ea56fa97821b9d8.svg\";\nexport { SvgCamera as ReactComponent };","/**\r\n * The various major z-index layers, adjust with caution and leave space between to add to later.\r\n */\r\nexport const Layers = {\r\n AboveContent: 25,\r\n Overlays: 50,\r\n Header: 100,\r\n Modal: 1000,\r\n};\r\n","import { combineReducers } from '@reduxjs/toolkit';\r\nimport * as enquiry from './enquiry';\r\nimport * as quote from './quote';\r\nimport * as shortlist from './shortlist';\r\nconst rootReducer = combineReducers({\r\n [shortlist.name]: shortlist.reducer,\r\n [enquiry.name]: enquiry.reducer,\r\n [quote.name]: quote.reducer,\r\n});\r\nexport default rootReducer;\r\n","import { configureStore } from '@reduxjs/toolkit';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { persistMiddleware } from './middleware/persist';\r\nimport rootReducer from './reducers';\r\nconst store = configureStore({\r\n middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat([persistMiddleware]),\r\n preloadedState: undefined,\r\n reducer: rootReducer,\r\n});\r\nexport const useAppDispatch = () => useDispatch();\r\nexport const useAppSelector = (selector) => useSelector(selector);\r\nexport default store;\r\n","import React from 'react';\r\nimport s from './Paragraph.styles';\r\nconst Paragraph = ({ children, className, size = 'regular' }) => {\r\n return (React.createElement(s.Paragraph, { className: className, size: size }, children));\r\n};\r\nexport default Paragraph;\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 { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst H1Styles = css `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: ${fluid(24, 56)};\r\n line-height: ${fluid(40, 80)};\r\n margin-bottom: 16px;\r\n`;\r\nconst H2Styles = css `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: ${fluid(20, 48)};\r\n line-height: ${fluid(35, 70)};\r\n margin-bottom: 16px;\r\n`;\r\nconst H3Styles = css `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: ${fluid(18, 40)};\r\n line-height: ${fluid(32, 60)};\r\n margin-bottom: 16px;\r\n`;\r\nconst H4Styles = css `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: ${fluid(16, 32)};\r\n line-height: ${fluid(30, 50)};\r\n margin-bottom: 16px;\r\n`;\r\nconst H5Styles = css `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: ${fluid(14, 24)};\r\n line-height: ${fluid(24, 38)};\r\n margin-bottom: 16px;\r\n`;\r\nconst Heading = styled(m.h1) `\r\n ${({ visual }) => {\r\n switch (visual) {\r\n case 'h1':\r\n return H1Styles;\r\n case 'h2':\r\n return H2Styles;\r\n case 'h3':\r\n return H3Styles;\r\n case 'h4':\r\n return H4Styles;\r\n case 'h5':\r\n return H5Styles;\r\n default:\r\n break;\r\n }\r\n}}\r\n\r\n text-wrap: pretty;\r\n\r\n &:has(${() => Line}) {\r\n display: flex;\r\n gap: 8px;\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n flex-direction: column;\r\n color: ${brand.primary.grey.dark};\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n align-items: flex-end;\r\n }\r\n\r\n span {\r\n flex-shrink: 0;\r\n }\r\n`;\r\nconst Line = styled(m.div).attrs((props) => ({\r\n initial: 'hidden',\r\n animate: props['showLine'] ? 'visible' : 'hidden',\r\n variants: {\r\n hidden: {\r\n width: '0px',\r\n },\r\n visible: {\r\n width: '100%',\r\n },\r\n },\r\n transition: {\r\n duration: 1,\r\n ease: 'easeInOut',\r\n },\r\n})) `\r\n background-color: ${brand.primary.blue.base};\r\n height: 4px;\r\n margin-bottom: 9px;\r\n`;\r\nexport default {\r\n H1Styles,\r\n H2Styles,\r\n H3Styles,\r\n H4Styles,\r\n H5Styles,\r\n Heading,\r\n Line,\r\n};\r\n","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 SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 13 7.434\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.502 5.193L11.418.274a.925.925 0 011.312 0 .937.937 0 010 1.316L7.16 7.163a.927.927 0 01-1.281.027L.271 1.59A.93.93 0 011.583.274z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"9cc1a8c38c18512fc3dbeacfc8d751cb.svg\";\nexport { SvgChevronDown as ReactComponent };","import { ReactComponent as ControlArrow } from '@img/icons/cta-chevron.svg';\r\nimport * as React from 'react';\r\nimport S from './CarouselButtons.styles';\r\nconst CarouselButtons = ({ prevDisabled, nextDisabled, prevClicked, nextClicked, children, }) => {\r\n return (React.createElement(S.Container, { \"data-inactive\": prevDisabled && nextDisabled },\r\n React.createElement(S.CarouselButtonPrev, { disabled: prevDisabled, onClick: () => prevClicked() },\r\n React.createElement(ControlArrow, null)),\r\n children,\r\n React.createElement(S.CarouselButtonNext, { disabled: nextDisabled, onClick: () => nextClicked() },\r\n React.createElement(ControlArrow, null))));\r\n};\r\nexport default CarouselButtons;\r\n","import { transition } from '@helpers/animation';\r\nimport brand from '@helpers/brand';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Device, until } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.section `\r\n ${transition('opacity')};\r\n\r\n display: flex;\r\n\r\n &[data-inactive='true'] {\r\n opacity: 0;\r\n }\r\n`;\r\nconst CarouselButtonStyles = css `\r\n ${ButtonReset};\r\n ${transition('background-color', 0.2)};\r\n\r\n width: 60px;\r\n height: 60px;\r\n border-radius: 50%;\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n cursor: pointer;\r\n margin-right: 10px;\r\n position: relative;\r\n aspect-ratio: 1;\r\n\r\n @media ${until(Device.Tablet)} {\r\n width: 37px;\r\n height: 37px;\r\n }\r\n\r\n svg {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 15px;\r\n height: 24px;\r\n transform: translate(-50%, -50%);\r\n\r\n @media ${until(Device.Tablet)} {\r\n width: 10px;\r\n height: 16px;\r\n }\r\n }\r\n\r\n &:focus-visible,\r\n &:hover {\r\n background-color: ${brand.primary.blue.light};\r\n }\r\n\r\n &[disabled] {\r\n background-color: ${brand.primary.blue.light};\r\n opacity: 0.75;\r\n pointer-events: none;\r\n }\r\n`;\r\nconst CarouselButtonPrev = styled.button `\r\n ${CarouselButtonStyles};\r\n\r\n transform: scale(-1);\r\n`;\r\nconst CarouselButtonNext = styled.button `\r\n ${CarouselButtonStyles};\r\n`;\r\nconst CarouselButtonsStyles = {\r\n Container,\r\n CarouselButtonNext,\r\n CarouselButtonPrev,\r\n};\r\nexport default CarouselButtonsStyles;\r\n","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 SvgCtaChevron(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 7.121 11.414\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.707.707l5 5-5 5\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"0f1ebf0714402212faadc24c3476f767.svg\";\nexport { SvgCtaChevron 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 SvgArrow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 23\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 20V6l18 7-18 7zm1.8-2.6L14.15 13 2.8 8.6v2.65L8.2 13l-5.4 1.75v2.65z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"0b73950ebc4ed29951d9f1a2ae23fcb7.svg\";\nexport { SvgArrow as ReactComponent };","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNSI+DQoJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEyNTIgLTQ0MikiPg0KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjUyIDQ0MikiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzE5MTkxOSIgc3Ryb2tlLXdpZHRoPSIxIj4NCgkJCTxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxNy41IiByPSIxNy41IiBzdHJva2U9Im5vbmUiIC8+DQoJCQk8Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTcuNSIgcj0iMTciIGZpbGw9Im5vbmUiIC8+DQoJCTwvZz4NCgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTI1OS4zOTYgNDQ5LjY0OSkiPg0KCQkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi44IDIuNSkiPg0KCQkJCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDApIj4NCgkJCQkJPHBhdGggZD0iTTEyLjk2OCw4LjNhNC4yMzEsNC4yMzEsMCwwLDAtLjc3NC4wNzdWNC42NTFDMTIuMTk0LDMuMjI3LDkuODI2LDIuNSw3LjUsMi41Yy0yLjMzNywwLTQuNy43NDMtNC43LDIuMTUxVjEyLjczYzAsMS40MjQsMi4zNjgsMi4xNjcsNC42ODksMi4xNjdhOS44NjEsOS44NjEsMCwwLDAsMS41MTctLjEyNEE0LjQ0NSw0LjQ0NSwwLDEsMCwxMi45NjgsOC4zWk03LjQ4OSwzLjQyOWMyLjI1OSwwLDMuNzYxLjcyNywzLjc2MSwxLjIyM3MtMS41LDEuMjIzLTMuNzYxLDEuMjIzUzMuNzI5LDUuMTMxLDMuNzI5LDQuNjUxLDUuMjMsMy40MjksNy40ODksMy40MjlaTTMuNzI5LDZhNy43NzUsNy43NzUsMCwwLDAsMy43NjEuODJBNy43NzUsNy43NzUsMCwwLDAsMTEuMjUsNnYuNjgxYzAsLjQ4LTEuNSwxLjIyMy0zLjc2MSwxLjIyM1MzLjcyOSw3LjE1OCwzLjcyOSw2LjY3OFptMCwyLjAyN2E3Ljc3NSw3Ljc3NSwwLDAsMCwzLjc2MS44Miw3Ljc3NSw3Ljc3NSwwLDAsMCwzLjc2MS0uODJ2LjYzNWE0LjM4OCw0LjM4OCwwLDAsMC0xLjQzOS45NzUsOC44MzksOC44MzksMCwwLDEtMi4zMjEuMjk0Yy0yLjI1OSwwLTMuNzYxLS43NDMtMy43NjEtMS4yMjNabTAsMi4wMTJhNy43NzUsNy43NzUsMCwwLDAsMy43NjEuODIsOS44NjIsOS44NjIsMCwwLDAsMS41MTctLjEyNCw0LjEsNC4xLDAsMCwwLS40LDEuMTMsOC4yMTUsOC4yMTUsMCwwLDEtMS4xMTQuMDc3Yy0yLjI1OSwwLTMuNzYxLS43NDMtMy43NjEtMS4yMjNabTMuNzYxLDMuOTMxYy0yLjI1OSwwLTMuNzYxLS43NDMtMy43NjEtMS4yMjN2LS42ODFhNy43NzUsNy43NzUsMCwwLDAsMy43NjEuODJjLjM0LDAsLjY4MS0uMDMxLDEuMDIxLS4wNjJhNC4wNDYsNC4wNDYsMCwwLDAsLjE1NSwxLjA2OEM4LjMwOSwxMy45MjEsNy45MjIsMTMuOTY4LDcuNDg5LDEzLjk2OFptNS40NzgsMi4zMDZhMy41MTMsMy41MTMsMCwxLDEsMy41MTMtMy41MTNBMy41MiwzLjUyLDAsMCwxLDEyLjk2OCwxNi4yNzNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMi44IC0yLjUpIiBmaWxsPSIjMTkxOTE5IiAvPg0KCQkJCQk8cGF0aCBkPSJNNjAuNDA2LDU3LjU2NGEuNDc2LjQ3NiwwLDAsMC0uNDY0LS40NjRoMGEuNDQ1LjQ0NSwwLDAsMC0uMzI1LjEzOWwtMi42NzcsMi42OTNhLjQ2LjQ2LDAsMSwwLC42NS42NWwyLjY5My0yLjY5M0EuNS41LDAsMCwwLDYwLjQwNiw1Ny41NjRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDguNDQzIC00OC42NSkiIGZpbGw9IiMxOTE5MTkiIC8+DQoJCQkJCTxjaXJjbGUgY3g9IjAuNzI3IiBjeT0iMC43MjciIHI9IjAuNzI3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjE4NyA4LjI4KSIgZmlsbD0iIzE5MTkxOSIgLz4NCgkJCQkJPGNpcmNsZSBjeD0iMC43MjciIGN5PSIwLjcyNyIgcj0iMC43MjciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLjY3OCAxMC43NzEpIiBmaWxsPSIjMTkxOTE5IiAvPg0KCQkJCTwvZz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCjwvc3ZnPg0K\"","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 SvgClock(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 22 22\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.454 15.383l1.315-1.315-3.841-3.841V4.813H10.07V11l4.383 4.383zM11 20.9a9.638 9.638 0 01-3.847-.773A9.994 9.994 0 014 18a9.98 9.98 0 01-2.127-3.158 9.675 9.675 0 01-.773-3.854c0-1.367.257-2.652.773-3.855A9.827 9.827 0 014 3.988a10.091 10.091 0 013.157-2.115 9.676 9.676 0 013.854-.773c1.368 0 2.653.26 3.856.78a9.99 9.99 0 013.14 2.116c.89.89 1.595 1.939 2.114 3.143A9.649 9.649 0 0120.9 11a9.638 9.638 0 01-.774 3.846A10.103 10.103 0 0118.012 18a9.817 9.817 0 01-3.149 2.127A9.72 9.72 0 0111 20.9zm.012-1.856c2.225 0 4.12-.787 5.685-2.36 1.564-1.572 2.346-3.47 2.346-5.696 0-2.226-.782-4.12-2.346-5.685-1.565-1.565-3.46-2.347-5.685-2.347-2.225 0-4.125.782-5.697 2.347-1.573 1.564-2.36 3.46-2.36 5.685 0 2.225.787 4.124 2.36 5.697 1.572 1.572 3.472 2.359 5.697 2.359z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"e66e0912920c1ba3d6a38e2798e7a34f.svg\";\nexport { SvgClock as ReactComponent };","var _g;\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 SvgMaximize(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 35 35\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-897 -64)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 35,\n height: 35,\n rx: 5,\n transform: \"translate(897 64)\",\n fill: \"#f1f1f1\",\n opacity: 0.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M926.128 68.833a.916.916 0 00-.112.01h-7.975a1.012 1.012 0 000 2.023h5.665l-6.366 6.367a1.012 1.012 0 001.43 1.431l6.366-6.366v5.664a1.012 1.012 0 102.023 0v-7.984a1.031 1.031 0 00.009-.134 1.011 1.011 0 00-1.008-1.011h-.028zm-23.3 15.2a1.012 1.012 0 00-1 1.011v8.202a.126.126 0 010 .017c0 .03.007.056.012.081v-.011c0 .016 0 .026.006.035v-.006a1.017 1.017 0 00.1.266v-.005a.224.224 0 00.015.027v-.005a.696.696 0 00.042.069l.015.023a1.022 1.022 0 00.195.21l.009.008a1.006 1.006 0 00.6.216h8.128a1.012 1.012 0 100-2.023h-5.665l6.365-6.366a1.012 1.012 0 00-.706-1.736h-.028a1.01 1.01 0 00-.7.3l-6.356 6.368V85.05a1.012 1.012 0 00-1.011-1.011h-.019z\",\n fill: \"#191919\"\n }))));\n}\n\nexport default __webpack_public_path__ + \"a244ce7ac2e96628f67cbc14bdadb077.svg\";\nexport { SvgMaximize as ReactComponent };","var _path, _path2;\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 SvgPlay(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 25 25\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 12.465A12.5 12.5 0 1112.453 25 12.524 12.524 0 010 12.465zm18.47.22c-.011-.311-.353-.429-.567-.607q-3.75-2.223-7.525-4.411c-.627-.367-1.127-.11-1.127.607q-.038 4.431 0 8.863c0 .722.5 1 1.125.632q3.8-2.2 7.58-4.446c.185-.117.531-.326.517-.637z\",\n fill: \"#191919\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.47 12.684c-.011-.311-.353-.429-.567-.607q-3.75-2.223-7.525-4.411c-.627-.367-1.127-.11-1.127.607q-.038 4.431 0 8.863c0 .722.5 1 1.125.632q3.8-2.2 7.58-4.446c.185-.117.531-.326.517-.637z\",\n fill: \"#fff\"\n })));\n}\n\nexport default __webpack_public_path__ + \"617abebd84423c366d759f8ef81e09f1.svg\";\nexport { SvgPlay as ReactComponent };","var _path, _path2;\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 SvgPound(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 25 25\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.5 0A12.5 12.5 0 1025 12.5 12.5 12.5 0 0012.5 0z\",\n fill: \"#191919\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.154 14.979h-1.011a.209.209 0 00-.213.194c-.026.521-.133 1.4-.551 1.4a1.419 1.419 0 01-.682-.217 10.938 10.938 0 01-1.066-.69 5.146 5.146 0 00.131-1.212 6.424 6.424 0 00-.2-1.605h1.785a.209.209 0 00.213-.2v-.884a.209.209 0 00-.213-.2h-2.146l-.279-.855-.047-.117a3.032 3.032 0 01-.194-1.049 1.082 1.082 0 01.376-.867 1.5 1.5 0 011.029-.334 1.137 1.137 0 01.9.367 1.758 1.758 0 01.373 1.141.209.209 0 00.213.2h.976a.218.218 0 00.157-.065.2.2 0 00.056-.155 3.665 3.665 0 00-.437-1.575 2.468 2.468 0 00-2.26-1.237 2.9 2.9 0 00-1.992.723 2.264 2.264 0 00-.815 1.735 3.976 3.976 0 00.081.774c.027.153.145.585.357 1.317h-1.55a.209.209 0 00-.213.2v.884a.209.209 0 00.213.2h1.895a4.974 4.974 0 01.261 1.612c0 .112-.007.255-.021.423a1.934 1.934 0 00-1.8.11 1.757 1.757 0 00-.854 1.504 1.37 1.37 0 00.475 1.1 1.846 1.846 0 001.237.4 2.006 2.006 0 001.76-.989 5.949 5.949 0 001.271.731 2.9 2.9 0 001.132.258 1.574 1.574 0 00.934-.3 2.1 2.1 0 00.682-1 4.151 4.151 0 00.256-1.521.2.2 0 00-.065-.144.219.219 0 00-.154-.057zm-5.245 1.222c-.177.314-.384.473-.61.473a.237.237 0 01-.183-.081.317.317 0 01-.085-.23.3.3 0 01.1-.234.335.335 0 01.245-.09 1.28 1.28 0 01.539.164z\",\n fill: \"#fff\"\n })));\n}\n\nexport default __webpack_public_path__ + \"dbbe1fc1ca6d28cada84ce60e22a0e62.svg\";\nexport { SvgPound as ReactComponent };","import slickTheme from '!!raw-loader!slick-carousel/slick/slick-theme.css';\r\nimport slick from '!!raw-loader!slick-carousel/slick/slick.css';\r\nimport brand from '@helpers/brand';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Wrapper = styled.section `\r\n position: fixed;\r\n padding: var(--headerHeight) 0 0;\r\n background-color: ${brand.black};\r\n height: 100vh;\r\n display: none;\r\n width: 100%;\r\n left: 0;\r\n top: 0;\r\n\r\n ${({ active }) => active &&\r\n css `\r\n display: block;\r\n z-index: ${Layers.AboveContent};\r\n `}\r\n`;\r\nconst Container = styled.div `\r\n position: relative;\r\n height: 100%;\r\n`;\r\nconst CarouselContainer = styled.div `\r\n ${slick};\r\n ${slickTheme};\r\n display: block;\r\n position: relative;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n margin-bottom: 16px;\r\n\r\n .slick-slide {\r\n opacity: 0.45;\r\n\r\n &.slick-active {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n \r\n`;\r\nconst CarouselItem = styled.div `\r\n padding: 0 20px;\r\n max-width: 1180px;\r\n`;\r\nconst CarouselItemInner = styled.div `\r\n position: relative;\r\n\r\n ${CarouselItem}[data-image-ratio='4:3'] & {\r\n padding-bottom: calc(100% * (3 / 4));\r\n }\r\n\r\n ${CarouselItem}[data-image-ratio='16:9'] & {\r\n padding-bottom: calc(100% * (9 / 16));\r\n }\r\n`;\r\nconst CarouselImage = styled.img `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n border-radius: 5px;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n`;\r\nconst CarouselVideo = styled.div `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n width: 100%;\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\nconst ThumbnailCarouselWrapper = styled.div `\r\n max-width: 1180px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n padding: 0 30px;\r\n width: 100%;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-width: 768px;\r\n }\r\n`;\r\nconst ThumbnailCarouselContainer = styled.div `\r\n ${slick};\r\n ${slickTheme};\r\n display: block;\r\n position: relative;\r\n margin-bottom: 16px;\r\n margin-top: 10px;\r\n\r\n .slick-track {\r\n @media ${until(Device.TabletLarge)} {\r\n padding-top: 139px;\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-width: 240px;\r\n margin: 10px auto;\r\n transform: translateX(5px);\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n &:before {\r\n content: '';\r\n background: linear-gradient(\r\n 90deg,\r\n rgba(25, 25, 25, 1) 0%,\r\n rgba(25, 25, 25, 1) 50%,\r\n rgba(25, 25, 25, 0) 100%\r\n );\r\n display: block;\r\n width: 70px;\r\n height: 100%;\r\n position: absolute;\r\n left: -30px;\r\n top: -1px;\r\n z-index: 1;\r\n }\r\n\r\n &:after {\r\n content: '';\r\n background: linear-gradient(\r\n 270deg,\r\n rgba(25, 25, 25, 1) 0%,\r\n rgba(25, 25, 25, 1) 50%,\r\n rgba(25, 25, 25, 0) 100%\r\n );\r\n display: block;\r\n width: 70px;\r\n height: 100%;\r\n position: absolute;\r\n right: -30px;\r\n top: -1px;\r\n }\r\n }\r\n`;\r\nconst Thumbnail = styled.img `\r\n @media ${until(Device.Tablet)} {\r\n border-radius: 5px;\r\n }\r\n`;\r\nconst ThumbnailContainer = styled.div `\r\n max-width: 260px;\r\n margin-right: 10px;\r\n padding-right: 10px;\r\n cursor: pointer;\r\n position: relative;\r\n\r\n ${({ active }) => active &&\r\n css `\r\n ${Thumbnail} {\r\n border: 2px solid ${brand.primary.blue.base};\r\n }\r\n `}\r\n\r\n svg {\r\n width: 80px;\r\n height: 80px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n pointer-events: none;\r\n }\r\n\r\n img {\r\n border-radius: 5px;\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n max-width: 100%;\r\n\r\n svg {\r\n width: 30px;\r\n height: 30px;\r\n }\r\n }\r\n`;\r\nconst CloseContainer = styled.div `\r\n cursor: pointer;\r\n position: relative;\r\n color: ${brand.white};\r\n margin: 0 auto;\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: 60%;\r\n }\r\n\r\n svg {\r\n position: absolute;\r\n width: 20px;\r\n height: 20px;\r\n top: 20px;\r\n right: 20px;\r\n z-index: ${Layers.AboveContent};\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: 30px;\r\n height: 30px;\r\n top: 30px;\r\n right: 0;\r\n }\r\n }\r\n`;\r\nconst ThumbnailButtonPrev = styled.div `\r\n width: 35px;\r\n height: 35px;\r\n border-radius: 50%;\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n cursor: pointer;\r\n margin-right: 10px;\r\n position: relative;\r\n transform: translateY(-40px);\r\n\r\n @media ${from(Device.Tablet)} {\r\n width: 40px;\r\n height: 40px;\r\n transform: translateY(0);\r\n }\r\n\r\n svg {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 10px;\r\n height: 16px;\r\n transform: rotate(180deg) translate(50%, 50%);\r\n }\r\n\r\n ${({ disabled }) => disabled &&\r\n css `\r\n opacity: 0.75;\r\n pointer-events: none;\r\n `}\r\n`;\r\nconst ThumbnailButtonNext = styled.div `\r\n width: 35px;\r\n height: 35px;\r\n border-radius: 50%;\r\n background-color: ${brand.primary.blue.base};\r\n color: ${brand.white};\r\n cursor: pointer;\r\n position: relative;\r\n transform: translateY(-40px);\r\n\r\n @media ${from(Device.Tablet)} {\r\n transform: translateY(0);\r\n width: 40px;\r\n height: 40px;\r\n }\r\n\r\n svg {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 10px;\r\n height: 16px;\r\n transform: translate(-50%, -50%);\r\n }\r\n\r\n ${({ disabled }) => disabled &&\r\n css `\r\n opacity: 0.75;\r\n pointer-events: none;\r\n `}\r\n`;\r\nconst ThumbnailControl = styled.div `\r\n display: flex;\r\n position: absolute;\r\n width: 100%;\r\n left: 50%;\r\n top: calc(100% + 20px);\r\n transform: translate(-50%, -50%);\r\n justify-content: space-between;\r\n padding: 0 10px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 0;\r\n width: 70%;\r\n top: 50%;\r\n }\r\n`;\r\nexport const LightboxGalleryStyles = {\r\n CarouselContainer,\r\n CarouselImage,\r\n CarouselItem,\r\n CarouselItemInner,\r\n CarouselVideo,\r\n CloseContainer,\r\n Container,\r\n Thumbnail,\r\n ThumbnailButtonNext,\r\n ThumbnailButtonPrev,\r\n ThumbnailCarouselContainer,\r\n ThumbnailCarouselWrapper,\r\n ThumbnailContainer,\r\n ThumbnailControl,\r\n Wrapper,\r\n};\r\n","import { getImageUrl } from '@helpers/image';\r\nimport { isSSR } from '@helpers/ssr';\r\nimport { ReactComponent as Cross } from '@img/icons/cross.svg';\r\nimport { ReactComponent as ControlArrow } from '@img/icons/cta-chevron.svg';\r\nimport { ReactComponent as Play } from '@img/icons/play.svg';\r\nimport React, { useRef, useState } from 'react';\r\nimport ReactPlayer from 'react-player/lazy';\r\nimport Slider from 'react-slick';\r\nimport SiteWide from '../Global/SiteWide/SiteWide';\r\nimport { LightboxGalleryStyles as S } from './LightboxGallery.styles';\r\nconst LightboxGallery = ({ active, galleryItems, imageRatio = '4:3', onActiveChange: setActive, index, disableImageProcessing = false, }) => {\r\n const [activeIndex, setActiveIndex] = useState(index);\r\n const sliderRef = useRef(null);\r\n const thumbnailsRef = useRef(null);\r\n React.useEffect(() => {\r\n if (index !== activeIndex) {\r\n setActiveIndex(index);\r\n }\r\n }, [index]);\r\n React.useEffect(() => {\r\n if (sliderRef.current === null) {\r\n return;\r\n }\r\n sliderRef.current.slickGoTo(activeIndex);\r\n }, [activeIndex]);\r\n if (!active) {\r\n return null;\r\n }\r\n const slickSettings = {\r\n arrows: false,\r\n dots: false,\r\n infinite: false,\r\n centerMode: true,\r\n centerPadding: '27.5%',\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n swipeToSlide: true,\r\n touchThreshold: 50,\r\n beforeChange: (current, next) => {\r\n thumbnailsRef.current?.slickGoTo(next);\r\n setActiveIndex(next);\r\n },\r\n responsive: [\r\n {\r\n breakpoint: 1920,\r\n settings: {\r\n centerPadding: '20%',\r\n },\r\n },\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n centerPadding: '10%',\r\n },\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n centerPadding: '0',\r\n },\r\n },\r\n ],\r\n };\r\n const thumbnailsSettings = {\r\n arrows: false,\r\n dots: false,\r\n infinite: false,\r\n centerMode: false,\r\n slidesToShow: 4.25,\r\n slidesToScroll: 1,\r\n swipeToSlide: true,\r\n touchThreshold: 50,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 3,\r\n },\r\n },\r\n ],\r\n };\r\n const handleNextBtn = () => {\r\n setActiveIndex(Math.floor(activeIndex + 1));\r\n };\r\n const handlePrevBtn = () => {\r\n setActiveIndex(activeIndex - 1);\r\n };\r\n const ratioValue = imageRatio === '16:9' ? 9 / 16 : 3 / 4;\r\n return (React.createElement(S.Wrapper, { active: active },\r\n React.createElement(S.Container, null,\r\n React.createElement(SiteWide, { width: 'narrow' },\r\n React.createElement(S.CloseContainer, { onClick: () => setActive(false) },\r\n React.createElement(Cross, null))),\r\n React.createElement(S.CarouselContainer, null,\r\n React.createElement(Slider, { ref: sliderRef, ...slickSettings }, galleryItems?.map((item, index) => (React.createElement(S.CarouselItem, { key: index, \"data-image-ratio\": item.video ? '16:9' : imageRatio },\r\n React.createElement(S.CarouselItemInner, null, item.video ? (renderVideo(item, index)) : (React.createElement(React.Fragment, null, item.phyron && activeIndex === index && active\r\n ? renderPhyron(item)\r\n : renderImage(item)))))))),\r\n React.createElement(S.ThumbnailCarouselWrapper, null,\r\n React.createElement(S.ThumbnailCarouselContainer, null,\r\n React.createElement(Slider, { ref: thumbnailsRef, ...thumbnailsSettings }, galleryItems?.map((item, index) => {\r\n const src = disableImageProcessing\r\n ? item.image\r\n : getImageUrl(item.image, { mode: 'crop', width: 250, height: 140 });\r\n const itemSrcs = [\r\n `${src} 1x`,\r\n `${getImageUrl(item.image, {\r\n mode: 'crop',\r\n width: 500,\r\n height: 280,\r\n })} 2x`,\r\n ];\r\n return (React.createElement(S.ThumbnailContainer, { key: index, active: index === activeIndex },\r\n React.createElement(S.Thumbnail, { alt: item.altText, loading: \"lazy\", onClick: () => {\r\n sliderRef.current?.slickGoTo(index);\r\n setActiveIndex(index);\r\n }, src: src, ...(disableImageProcessing ? {} : { srcSet: itemSrcs.join(',') }) }),\r\n item.video && React.createElement(Play, null)));\r\n })))),\r\n React.createElement(S.ThumbnailControl, null,\r\n React.createElement(S.ThumbnailButtonPrev, { disabled: activeIndex === 0, onClick: handlePrevBtn },\r\n React.createElement(ControlArrow, null)),\r\n React.createElement(S.ThumbnailButtonNext, { disabled: activeIndex === galleryItems.length - 1, onClick: handleNextBtn },\r\n React.createElement(ControlArrow, null)))))));\r\n function renderImage(item) {\r\n const src = disableImageProcessing\r\n ? item.image\r\n : getImageUrl(item.image, { mode: 'crop', width: 865, heightratio: ratioValue });\r\n const itemSrcs = [\r\n `${src} 1x`,\r\n `${getImageUrl(item.image, {\r\n mode: 'crop',\r\n width: 1730,\r\n heightratio: ratioValue,\r\n })} 2x`,\r\n ];\r\n return (React.createElement(S.CarouselImage, { alt: item.altText, loading: \"lazy\", src: src, ...(disableImageProcessing ? {} : { srcSet: itemSrcs.join(',') }) }));\r\n }\r\n function renderVideo(item, index) {\r\n return (React.createElement(S.CarouselVideo, null, !isSSR() && (React.createElement(React.Suspense, { fallback: React.createElement(\"span\", null) },\r\n React.createElement(ReactPlayer, { width: \"100%\", height: \"100%\", playsinline: true, playing: activeIndex === index && active, controls: true, url: item.video ?? '' })))));\r\n }\r\n function renderPhyron(item) {\r\n return (React.createElement(S.CarouselVideo, null,\r\n React.createElement(\"iframe\", { src: item.phyron ?? '' })));\r\n }\r\n};\r\nexport default LightboxGallery;\r\n","import slickTheme from '!!raw-loader!slick-carousel/slick/slick-theme.css';\r\nimport slick from '!!raw-loader!slick-carousel/slick/slick.css';\r\nimport { transition } from '@helpers/animation';\r\nimport brand, { colourWithTransparency } from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { Layers } from '@helpers/layers';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { ButtonStyles } from '@stories/Components/Buttons/GeneralButton/Button.styles';\r\nimport CarouselButtonsStyles from '@stories/Components/CarouselButtons/CarouselButtons.styles';\r\nimport HeadingStyles from '@stories/Components/Global/Typography/Heading.styles';\r\nimport TagStyles from '@stories/Components/Tag/Tag.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst Wrapper = styled.section `\r\n position: relative;\r\n padding: 40px 0 0;\r\n`;\r\nconst Container = styled.div `\r\n display: grid;\r\n grid-template-columns: repeat(12, 1fr);\r\n grid-gap: 30px;\r\n grid-row-gap: 16px;\r\n`;\r\nconst GalleryContainer = styled.div `\r\n grid-column: span 12;\r\n order: 3;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n order: 1;\r\n grid-column: 1 / span 6;\r\n grid-row: 1 / span 8;\r\n position: sticky;\r\n top: 0;\r\n align-self: start;\r\n }\r\n`;\r\nconst ActiveImageContainer = styled.div `\r\n position: relative;\r\n height: 0;\r\n margin-bottom: 10px;\r\n\r\n [data-image-ratio='4:3'] & {\r\n padding-bottom: calc(100% * (3 / 4));\r\n }\r\n\r\n [data-image-ratio='16:9'] & {\r\n padding-bottom: calc(100% * (9 / 16));\r\n }\r\n\r\n ${TagStyles.Container} {\r\n ${fonts.inter.extraBold};\r\n\r\n position: absolute;\r\n top: 0;\r\n bottom: auto;\r\n left: 0;\r\n border-radius: 5px 0 0 0;\r\n clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0% 100%);\r\n font-size: 20px;\r\n z-index: 1;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n font-size: 14px;\r\n }\r\n }\r\n`;\r\nconst ActiveImage = styled.img `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n border-radius: 5px;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n`;\r\nconst VideoWrapper = styled.div `\r\n position: relative;\r\n padding-bottom: 56.25%;\r\n\r\n video,\r\n iframe {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n }\r\n`;\r\nconst ThumbnailCarouselContainer = styled.div `\r\n ${slick};\r\n ${slickTheme};\r\n display: block;\r\n position: relative;\r\n margin-bottom: 16px;\r\n\r\n \r\n`;\r\nconst ThumbnailContainer = styled.div `\r\n max-width: 260px;\r\n margin-right: 10px;\r\n padding-right: 10px;\r\n cursor: pointer;\r\n position: relative;\r\n\r\n svg {\r\n width: 80px;\r\n height: 80px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n pointer-events: none;\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n max-width: 100%;\r\n\r\n svg {\r\n width: 30px;\r\n height: 30px;\r\n }\r\n }\r\n`;\r\nconst Thumbnail = styled.img `\r\n border-radius: 5px;\r\n`;\r\nconst ControlsContainer = styled.div `\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n @media ${until(Device.Tablet)} {\r\n justify-content: center;\r\n }\r\n`;\r\nconst CarouselControlsContainer = styled.div `\r\n display: flex;\r\n\r\n @media ${until(Device.Tablet)} {\r\n display: none;\r\n justify-content: center;\r\n }\r\n\r\n ${CarouselButtonsStyles.CarouselButtonPrev},\r\n ${CarouselButtonsStyles.CarouselButtonNext} {\r\n width: 40px;\r\n height: 40px;\r\n\r\n svg {\r\n width: 10px;\r\n height: 16px;\r\n }\r\n }\r\n`;\r\nconst ActiveItemControls = styled.div `\r\n @media ${until(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${transition('opacity')};\r\n\r\n opacity: 0;\r\n\r\n ${ActiveImageContainer}:focus-within &,\r\n ${ActiveImageContainer}:hover & {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n ${CarouselButtonsStyles.CarouselButtonPrev},\r\n ${CarouselButtonsStyles.CarouselButtonNext} {\r\n position: absolute;\r\n top: 50%;\r\n\r\n svg {\r\n width: 15px;\r\n height: 24px;\r\n }\r\n }\r\n\r\n ${CarouselButtonsStyles.CarouselButtonPrev} {\r\n left: 20px;\r\n transform: translateY(-50%) scale(-1);\r\n }\r\n\r\n ${CarouselButtonsStyles.CarouselButtonNext} {\r\n right: 20px;\r\n transform: translateY(-50%);\r\n }\r\n`;\r\nconst MaximizeButton = styled.div `\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n cursor: pointer;\r\n svg {\r\n width: 35px;\r\n height: 35px;\r\n }\r\n`;\r\nconst PlayButton = styled.button `\r\n ${ButtonReset}\r\n\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 1;\r\n\r\n svg {\r\n display: block;\r\n height: 80px;\r\n transform: scale(1);\r\n transition: transform 0.35s ease-out;\r\n width: 80px;\r\n will-change: transform;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n svg {\r\n transform: scale(1.2);\r\n }\r\n }\r\n`;\r\nconst GalleryButtonsContainer = styled.div `\r\n display: flex;\r\n\r\n > * {\r\n &:first-child {\r\n margin-right: 10px;\r\n }\r\n }\r\n`;\r\nconst GalleryButton = styled.div `\r\n border-radius: 25px;\r\n height: 50px;\r\n padding: 0 32px;\r\n border: 2px solid ${brand.primary.grey.light};\r\n background-color: ${brand.primary.grey.light};\r\n color: ${brand.black};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n\r\n @media ${until(Device.Tablet)} {\r\n padding: 0 16px;\r\n }\r\n`;\r\nconst GalleryButtonText = styled.div `\r\n ${fonts.sofiaPro.semiBold};\r\n font-size: 18px;\r\n line-height: 18px;\r\n`;\r\nconst GalleryButtonIcon = styled.div `\r\n margin-right: 10px;\r\n svg {\r\n width: 22px;\r\n height: 22px;\r\n }\r\n`;\r\nconst TitleContainer = styled.div `\r\n grid-column: span 12;\r\n margin-bottom: 16px;\r\n order: 1;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-bottom: 24px;\r\n grid-column: 7 / span 6;\r\n }\r\n`;\r\nconst Title = styled.h1 `\r\n ${fonts.inter.extraBold};\r\n\r\n display: block;\r\n color: ${brand.black};\r\n font-size: ${fluid(18, 32)};\r\n line-height: ${fluid(30, 50)};\r\n margin: 0;\r\n\r\n &:not(:last-child) {\r\n margin-bottom: ${fluid(8, 16)};\r\n }\r\n`;\r\nconst Subtitle = styled.h2 `\r\n display: block;\r\n ${fonts.sofiaPro.medium};\r\n color: ${brand.black};\r\n font-size: ${fluid(16, 28)};\r\n line-height: ${fluid(30, 40)};\r\n margin: 0;\r\n\r\n &:not(:last-child) {\r\n margin-bottom: ${fluid(8, 16)};\r\n }\r\n`;\r\nconst Strapline = styled.h3 `\r\n display: block;\r\n ${fonts.sofiaPro.regular};\r\n color: ${brand.black};\r\n font-size: ${fluid(20, 26)};\r\n line-height: ${fluid(30, 36)};\r\n margin: 0;\r\n\r\n &:not(:last-child) {\r\n margin-bottom: ${fluid(8, 16)};\r\n }\r\n`;\r\nconst PriceContainer = styled.div `\r\n grid-column: span 12;\r\n order: 2;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 4;\r\n }\r\n`;\r\nconst PriceItems = styled.div `\r\n display: flex;\r\n`;\r\nconst PriceItem = styled.div `\r\n margin-right: 30px;\r\n`;\r\nconst PriceLabel = styled.div `\r\n ${fonts.sofiaPro.medium};\r\n font-size: 18px;\r\n line-height: 28px;\r\n color: ${brand.primary.grey.base};\r\n`;\r\nconst Price = styled.div `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: 22px;\r\n line-height: 38px;\r\n color: ${brand.black};\r\n`;\r\nconst ContentContainer = styled.div `\r\n grid-column: span 12;\r\n order: 5;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n order: 3;\r\n grid-column: 7 / span 4;\r\n }\r\n`;\r\nconst ShortListContainer = styled.div `\r\n grid-column: span 12;\r\n order: 3;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 4;\r\n }\r\n`;\r\nconst ShortlistIcon = styled.div `\r\n margin-right: 16px;\r\n svg {\r\n width: 30px;\r\n height: 30px;\r\n --background-color: ${brand.black};\r\n --heart-color: ${brand.white};\r\n }\r\n`;\r\nconst ShortListText = styled.div `\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: 16px;\r\n line-height: 28px;\r\n color: ${brand.black};\r\n`;\r\nconst Shortlist = styled.div `\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n\r\n ${({ added }) => added &&\r\n css `\r\n ${ShortlistIcon} {\r\n svg {\r\n --background-color: ${brand.black};\r\n --heart-color: ${brand.primary.blue.base};\r\n }\r\n }\r\n `}\r\n\r\n ${({ hidden }) => hidden &&\r\n css `\r\n display: none;\r\n `}\r\n`;\r\nconst FeaturesContainer = styled.div `\r\n grid-column: span 12;\r\n order: 6;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n order: 3;\r\n grid-row: 2 / span 3;\r\n grid-column: 11 / span 2;\r\n }\r\n`;\r\nconst FeatureList = styled.div `\r\n @media ${until(Device.TabletLarge)} {\r\n column-count: 2;\r\n }\r\n`;\r\nconst Feature = styled.div `\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 16px;\r\n\r\n img {\r\n margin-right: 16px;\r\n }\r\n`;\r\nconst FeatureIconImage = styled.img `\r\n width: 35px;\r\n height: 35px;\r\n`;\r\nconst FeatureText = styled.div `\r\n ${fonts.sofiaPro.medium};\r\n font-size: 18px;\r\n color: ${brand.black};\r\n`;\r\nconst ButtonContainer = styled.div `\r\n grid-column: span 12;\r\n order: 4;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n }\r\n`;\r\nconst ButtonList = styled.div `\r\n display: flex;\r\n column-gap: ${fluid(10, 16)};\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n row-gap: 12px;\r\n\r\n\r\n`;\r\nconst ButtonItem = styled.div `\r\n\r\n @media ${until(Device.Tablet)} {\r\n flex: 1 0 calc(50% - ${fluid(10, 16)});\r\n\r\n ${ButtonStyles.Button} {\r\n width: 100%;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n }\r\n\r\n &:first-child {\r\n @media ${until(Device.Tablet)} {\r\n flex: 1 0 100%;\r\n\r\n ${ButtonStyles.Button} {\r\n width: 100%;\r\n }\r\n }\r\n }\r\n \r\n`;\r\nconst LocationContainer = styled.div `\r\n grid-column: span 12;\r\n order: 7;\r\n margin-bottom: 20px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n }\r\n`;\r\nconst LocationItem = styled.div `\r\n display: flex;\r\n`;\r\nconst LocationIcon = styled.div `\r\n margin-right: 10px;\r\n svg {\r\n width: 20px;\r\n height: 30px;\r\n }\r\n`;\r\nconst LocationContent = styled.div `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n line-height: 28px;\r\n`;\r\nconst LocationModalLink = styled.span `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n line-height: 28px;\r\n cursor: pointer;\r\n text-decoration: underline;\r\n margin: 0 5px;\r\n`;\r\nconst LocationModalContainer = styled.div `\r\n position: fixed;\r\n width: 100%;\r\n height: 100vh;\r\n top: 0;\r\n left: 0;\r\n background-color: ${colourWithTransparency(brand.black, 0.4)};\r\n display: none;\r\n\r\n ${({ active }) => active &&\r\n css `\r\n display: block;\r\n z-index: ${Layers.Modal};\r\n `}\r\n`;\r\nconst LocationModalContentContainer = styled.div `\r\n position: relative;\r\n left: 50%;\r\n top: 20%;\r\n transform: translateX(-50%);\r\n background-color: ${brand.white};\r\n color: ${brand.black};\r\n padding: 30px;\r\n max-width: 50%;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-width: 90%;\r\n }\r\n`;\r\nconst LocationModalClose = styled.div `\r\n color: ${brand.black};\r\n position: absolute;\r\n top: 20px;\r\n right: 20px;\r\n cursor: pointer;\r\n svg {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n`;\r\nconst LocationModalTitle = styled.div `\r\n margin-bottom: 16px;\r\n\r\n ${HeadingStyles.Heading} {\r\n font-size: ${fluid(18, 24)};\r\n line-height: ${fluid(28, 38)};\r\n padding-right: 15px;\r\n }\r\n`;\r\nconst LocationModalContent = styled.div ``;\r\nconst CTABlockContainer = styled.div `\r\n grid-column: span 12;\r\n order: 8;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n }\r\n\r\n`;\r\nconst CTAInner = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n\r\n @media ${until(Device.Tablet)} {\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n`;\r\nconst CTAWrapper = styled.div `\r\n display: flex;\r\n align-items: flex-start;\r\n width: 100%;\r\n\r\n @media ${until(Device.DesktopLarge)} {\r\n flex-direction: column;\r\n }\r\n`;\r\nconst QuotingReference = styled.div `\r\n background-color: ${brand.white};\r\n border: 1px solid ${brand.primary.blue.base};\r\n ${fonts.sofiaPro.regular};\r\n font-size: 14px;\r\n line-height: 22px;\r\n border-radius: 5px;\r\n color: ${brand.black};\r\n padding: 4px 8px;\r\n text-align: center;\r\n\r\n @media ${until(Device.DesktopLarge)} {\r\n margin-top: 8px;\r\n margin-left: 26px;\r\n padding: 3px 8px 5px;\r\n }\r\n\r\n span {\r\n color: ${brand.black};\r\n ${fonts.sofiaPro.bold}; \r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n display: block;\r\n margin-top: 8px;\r\n }\r\n }\r\n`;\r\nconst CTALine = styled.div `\r\n display: flex;\r\n gap: 10px;\r\n padding-right: ${fluid(16, 32)};\r\n border-right: 1px solid ${brand.white};\r\n\r\n @media ${until(Device.DesktopLarge)} {\r\n flex-direction: column;\r\n width: 100%;\r\n padding-right: 0;\r\n padding-bottom: 12px;\r\n border-right: none;\r\n border-bottom: 1px solid ${brand.white};\r\n text-align: left;\r\n }\r\n\r\n a {\r\n ${fonts.inter.extraBold};\r\n\r\n font-size: 16px;\r\n }\r\n`;\r\nconst CTABlock = styled.div `\r\n padding-top: 16px;\r\n padding-bottom: 16px;\r\n position: relative;\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n bottom: -1px;\r\n left: 0;\r\n height: 2px;\r\n width: 100%;\r\n max-width: 314px;\r\n background-color: ${brand.white};\r\n }\r\n\r\n &:first-child {\r\n padding-top: 0%;\r\n }\r\n\r\n &:last-child {\r\n padding-bottom: 0;\r\n\r\n &:after {\r\n display: none;\r\n }\r\n }\r\n\r\n`;\r\nconst CTAContainer = styled.div `\r\n background-color: ${brand.primary.grey.light};\r\n padding: 14px 10px;\r\n border-radius: 4px;\r\n margin-bottom: 8px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n\r\n ${CTALine}:last-child {\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n flex: 1 0 auto;\r\n padding-left: ${fluid(16, 32)};\r\n padding-right: 0;\r\n justify-content: space-between;\r\n border: none;\r\n }\r\n\r\n @media ${until(Device.DesktopLarge)} {\r\n padding-top: 8px;\r\n padding-bottom: 0;\r\n border-bottom: none;\r\n }\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n`;\r\nconst CTAIcon = styled.div `\r\n position: absolute;\r\n left: 0;\r\n top: 3px;\r\n margin-right: 10px;\r\n display: flex;\r\n\r\n svg {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n`;\r\nconst CTAContent = styled.div `\r\n ${fonts.sofiaPro.regular};\r\n font-size: ${fluid(16, 18)};\r\n line-height: 26px;\r\n margin-bottom: 6px;\r\n`;\r\nconst CTALink = styled.a `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n line-height: 24px;\r\n color: ${brand.black};\r\n margin: 0 5px;\r\n text-decoration: underline;\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n font-size: 16px;\r\n }\r\n`;\r\nconst CTAContentWrapper = styled.div ``;\r\nconst CTAContact = styled.div `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n text-align: left;\r\n\r\n a {\r\n ${fonts.sofiaPro.black};\r\n font-size: 18px;\r\n }\r\n`;\r\nconst CTADropdownWrapper = styled(m.div) `\r\n padding-left: ${fluid(24, 30)};\r\n`;\r\nconst CTAButton = styled.button `\r\n ${ButtonReset};\r\n ${fonts.sofiaPro.regular};\r\n font-size: ${fluid(14, 16)};\r\n line-height: ${fluid(24, 26)};\r\n display: flex;\r\n align-items: center;\r\n color: ${brand.primary.grey.dark};\r\n position: relative;\r\n margin-top: 8px; \r\n text-align: left;\r\n\r\n @media ${from(Device.ActualDesktop)} {\r\n padding-right: 30px;\r\n }\r\n\r\n span {\r\n ${fonts.sofiaPro.bold};\r\n } \r\n`;\r\nconst ClockIcon = styled.div `\r\n display: flex;\r\n position: absolute;\r\n left: -24px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n left: -30px;\r\n }\r\n\r\n svg {\r\n width: ${fluid(18, 22)};\r\n height: ${fluid(18, 22)};\r\n }\r\n`;\r\nconst CTAButtonIcon = styled(m.div) `\r\n margin-left: 16px;\r\n display: flex;\r\n\r\n &[data-is-open='true'] {\r\n svg {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n svg {\r\n ${transition('transform')};\r\n width: 11px;\r\n height: 7px;\r\n }\r\n`;\r\nconst Bullet = styled.div `\r\n width: ${fluid(4, 6)};\r\n height: ${fluid(4, 6)};\r\n border-radius: 50%;\r\n background-color: ${brand.primary.grey.dark};\r\n margin-left: ${fluid(8, 12)};\r\n margin-right: ${fluid(8, 12)};\r\n margin-top: 3px;\r\n`;\r\nconst CTADropdownContent = styled(m.div) `\r\n overflow: hidden;\r\n width: ${fluid(240, 280)};\r\n padding-top: 3px;\r\n`;\r\nconst CTADropdownLine = styled.div `\r\n ${fonts.sofiaPro.regular};\r\n color: ${brand.primary.grey.dark};\r\n font-size: ${fluid(14, 16)};\r\n line-height: 26px;\r\n margin-bottom: 2px;\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n\r\n &[data-emphasise='true'] {\r\n ${fonts.sofiaPro.bold};\r\n }\r\n`;\r\nconst Day = styled.div ``;\r\nconst Time = styled.div ``;\r\nconst CTALineInner = styled.div `\r\n padding-left: 26px;\r\n position: relative;\r\n\r\n a {\r\n font-size: ${fluid(14, 16)};\r\n }\r\n`;\r\nconst CallBackText = styled.div `\r\n ${fonts.sofiaPro.regular};\r\n font-size: 18px;\r\n line-height: 26px;\r\n margin-bottom: 6px;\r\n`;\r\nconst ArrowIcon = styled.div `\r\n position: absolute;\r\n left: 0;\r\n top: 3px;\r\n\r\n svg {\r\n width: 18px;\r\n }\r\n`;\r\nconst CTABaseContainer = styled.div `\r\n background-color: ${brand.primary.grey.light};\r\n padding: 16px 12px;\r\n border-radius: 4px;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n ${CTALineInner} {\r\n padding-left: 36px;\r\n }\r\n`;\r\nconst ShareContainer = styled.div `\r\n grid-column: span 12;\r\n order: 9;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 7 / span 6;\r\n }\r\n`;\r\nconst BreadcrumbContent = styled.div `\r\n position: relative;\r\n padding: 15px 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding: 25px 0;\r\n }\r\n`;\r\nconst BreadcrumbWrapper = styled.div `\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n width: 100%;\r\n z-index: 4;\r\n`;\r\nexport const UsedCarOverviewStyles = {\r\n Wrapper,\r\n Container,\r\n GalleryContainer,\r\n ActiveImageContainer,\r\n ActiveImage,\r\n VideoWrapper,\r\n ThumbnailCarouselContainer,\r\n ThumbnailContainer,\r\n Thumbnail,\r\n ControlsContainer,\r\n CarouselControlsContainer,\r\n ActiveItemControls,\r\n MaximizeButton,\r\n GalleryButtonsContainer,\r\n GalleryButton,\r\n GalleryButtonText,\r\n GalleryButtonIcon,\r\n TitleContainer,\r\n Subtitle,\r\n PriceContainer,\r\n PriceItems,\r\n PriceItem,\r\n PriceLabel,\r\n Price,\r\n ContentContainer,\r\n ShortListContainer,\r\n Shortlist,\r\n ShortlistIcon,\r\n ShortListText,\r\n FeaturesContainer,\r\n FeatureList,\r\n Feature,\r\n FeatureIconImage,\r\n FeatureText,\r\n ButtonContainer,\r\n ButtonList,\r\n ButtonItem,\r\n LocationContainer,\r\n LocationItem,\r\n LocationIcon,\r\n LocationContent,\r\n LocationModalLink,\r\n LocationModalContainer,\r\n LocationModalContentContainer,\r\n LocationModalClose,\r\n LocationModalTitle,\r\n LocationModalContent,\r\n CTABaseContainer,\r\n CTABlock,\r\n CTABlockContainer,\r\n CTAContainer,\r\n CTAInner,\r\n CTALine,\r\n CTAIcon,\r\n CTAButtonIcon,\r\n CTAContent,\r\n CTALink,\r\n CTAContentWrapper,\r\n CTAContact,\r\n Bullet,\r\n CTADropdownWrapper,\r\n CTAButton,\r\n CTALineInner,\r\n CallBackText,\r\n ArrowIcon,\r\n ClockIcon,\r\n CTADropdownContent,\r\n CTADropdownLine,\r\n Day,\r\n Time,\r\n ShareContainer,\r\n BreadcrumbWrapper,\r\n BreadcrumbContent,\r\n Strapline,\r\n Title,\r\n PlayButton,\r\n QuotingReference,\r\n CTAWrapper,\r\n};\r\n","import Door from '!url-loader!@img/icons/door.svg';\r\nimport Fuel from '!url-loader!@img/icons/fuel.svg';\r\nimport Mileage from '!url-loader!@img/icons/mileage.svg';\r\nimport Tax from '!url-loader!@img/icons/tax.svg';\r\nimport Transmission from '!url-loader!@img/icons/transmission.svg';\r\nimport Type from '!url-loader!@img/icons/type.svg';\r\nimport { getImageUrl } from '@helpers/image';\r\nimport { withMotion } from '@hoc/WithMotion';\r\nimport { withRedux } from '@hoc/withRedux';\r\nimport { ReactComponent as SvgArrow } from '@img/icons/arrow.svg';\r\nimport { ReactComponent as SvgCamera } from '@img/icons/camera.svg';\r\nimport { ReactComponent as SvgChevronDown } from '@img/icons/chevron-down.svg';\r\nimport { ReactComponent as SvgClock } from '@img/icons/clock.svg';\r\nimport { ReactComponent as SvgCross } from '@img/icons/cross.svg';\r\nimport { ReactComponent as SvgLocationPin } from '@img/icons/location-pin.svg';\r\nimport { ReactComponent as SvgMaximize } from '@img/icons/maximize.svg';\r\nimport { ReactComponent as SvgPhone } from '@img/icons/phone.svg';\r\nimport { ReactComponent as SvgPlay } from '@img/icons/play.svg';\r\nimport { ReactComponent as SvgPound } from '@img/icons/pound.svg';\r\nimport { ReactComponent as SvgShortlist } from '@img/icons/shortlist.svg';\r\nimport { updateQuote } from '@redux/reducers/quote';\r\nimport { toggle } from '@redux/reducers/shortlist';\r\nimport { useAppDispatch, useAppSelector } from '@redux/store';\r\nimport Breadcrumb from '@stories/Components/Breadcrumb/Breadcrumb';\r\nimport { LinkButton } from '@stories/Components/Buttons/GeneralButton/Button';\r\nimport CarouselButtons from '@stories/Components/CarouselButtons/CarouselButtons';\r\nimport CtaLink from '@stories/Components/CtaLink/CtaLink';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport Heading from '@stories/Components/Global/Typography/Heading';\r\nimport Paragraph from '@stories/Components/Global/Typography/Paragraph';\r\nimport LightboxGallery from '@stories/Components/LightboxGallery/LightboxGallery';\r\nimport ShareButtons from '@stories/Components/ShareButtons/ShareButtons';\r\nimport Tag from '@stories/Components/Tag/Tag';\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport Slider from 'react-slick';\r\nimport { useSwipeable } from 'react-swipeable';\r\nimport { UsedCarOverviewStyles as S } from './UsedCarOverview.styles';\r\nconst UsedCarOverview = ({ id, reserved, title, strapline, subtitle, price, priceLabel = 'Price', monthlyPrice, monthlyPriceLabel = 'Monthly Price', content, fuelIconUrl = Fuel, fuel, transmissionIconUrl = Transmission, transmission, mileageIconUrl = Mileage, mileage, bikeType, carTypeIconUrl = Type, carType, doorsIconUrl = Door, doors, taxIconUrl = Tax, tax, location, gallery, breadcrumb, shareData, getInTouchText, reserveLink, reserveText, testDriveText, locationModalHeading, locationModalContent, phoneNumber, openingTimes, callBackText, callBackTextTitle, callBackLink, personalisedVideoText, personalisedVideoLink, personalisedVideoLinkText, exchangeText, exchangeLinkText, exchangeLink, imageRatio = '4:3', tag, quotingReferenceLabel, quotingReference, disableImageProcessing = false, isDealerOpen, openingHoursText, }) => {\r\n const dispatch = useAppDispatch();\r\n const { items } = useAppSelector((state) => state.shortlist.persisted);\r\n const refLocationModal = useRef(null);\r\n const refSlider = useRef(null);\r\n const [activeGallery, setActiveGallery] = useState(gallery);\r\n const [activeGalleryIndex, setActiveGalleryIndex] = useState(0);\r\n const [activeImageIndex, setActiveImageIndex] = useState(0);\r\n const [activeLightbox, setActiveLightbox] = useState(false);\r\n const [activeLocationModal, setActiveLocationModal] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n React.useEffect(() => {\r\n // When the page loads, override any stale PCP/HP Calculator values //\r\n dispatch(updateQuote({ id, quote: undefined }));\r\n }, []);\r\n const swipeHandlers = useSwipeable({\r\n onSwipedLeft: () => {\r\n const targetIndex = Math.min(activeImageIndex + 1, gallery.length - 1);\r\n setActiveImageIndex(targetIndex);\r\n refSlider.current?.slickGoTo(targetIndex);\r\n },\r\n onSwipedRight: () => {\r\n const targetIndex = Math.max(activeImageIndex - 1, 0);\r\n setActiveImageIndex(targetIndex);\r\n refSlider.current?.slickGoTo(targetIndex);\r\n },\r\n });\r\n const handleKeyDown = (event) => {\r\n switch (event.key) {\r\n case 'ArrowLeft':\r\n handlePrevImage();\r\n break;\r\n case 'ArrowRight':\r\n handleNextImage();\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const handlePrevImage = () => {\r\n const targetIndex = Math.max(activeImageIndex - 1, 0);\r\n setActiveImageIndex(targetIndex);\r\n refSlider.current?.slickGoTo(targetIndex);\r\n };\r\n const handleNextImage = () => {\r\n const targetIndex = Math.min(activeImageIndex + 1, gallery.length - 1);\r\n setActiveImageIndex(targetIndex);\r\n refSlider.current?.slickGoTo(targetIndex);\r\n };\r\n useEffect(() => {\r\n document.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, [activeImageIndex]);\r\n const isInShortlist = useMemo(() => items.some((item) => item.id.toString() === id.toString()), [items]);\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (refLocationModal.current && !refLocationModal.current.contains(event.target)) {\r\n setActiveLocationModal(false);\r\n }\r\n }\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [refLocationModal]);\r\n const videoItems = gallery.filter((x) => !!x.video || !!x.phyron);\r\n const slickSettings = {\r\n arrows: false,\r\n dots: false,\r\n infinite: false,\r\n speed: 500,\r\n slidesToShow: 3.2,\r\n variableWidth: false,\r\n slidesToScroll: 1,\r\n swipeToSlide: true,\r\n touchThreshold: 50,\r\n };\r\n const handleGalleryClick = (id) => {\r\n const activeIndex = id ? gallery.findIndex((x) => x.id === id) ?? 0 : 0;\r\n setActiveGallery(gallery);\r\n setActiveGalleryIndex(activeIndex);\r\n setActiveLightbox(true);\r\n };\r\n const handleImageGalleryClick = () => {\r\n const filteredGalleryItems = gallery.filter((x) => !x.video && !x.phyron);\r\n setActiveGallery(filteredGalleryItems);\r\n setActiveGalleryIndex(0);\r\n setActiveLightbox(true);\r\n };\r\n const handleVideoGalleryClick = () => {\r\n const filteredGalleryItems = gallery.filter((x) => !!x.video || !!x.phyron);\r\n setActiveGallery(filteredGalleryItems);\r\n setActiveGalleryIndex(0);\r\n setActiveLightbox(true);\r\n };\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(S.Wrapper, { id: id, \"data-image-ratio\": imageRatio },\r\n breadcrumb && (React.createElement(S.BreadcrumbContent, null,\r\n React.createElement(S.BreadcrumbWrapper, null,\r\n React.createElement(SiteWide, null,\r\n React.createElement(Breadcrumb, { ...breadcrumb }))))),\r\n React.createElement(SiteWide, null,\r\n React.createElement(S.Container, null,\r\n renderGallery(),\r\n React.createElement(S.TitleContainer, null,\r\n title && React.createElement(S.Title, null, title),\r\n subtitle && React.createElement(S.Subtitle, null, subtitle),\r\n strapline && React.createElement(S.Strapline, null, strapline)),\r\n React.createElement(S.PriceContainer, null,\r\n React.createElement(S.PriceItems, null,\r\n (reserved || price) && (React.createElement(S.PriceItem, null,\r\n React.createElement(S.PriceLabel, null, priceLabel),\r\n reserved ? React.createElement(S.Price, null, \"Not Available\") : React.createElement(S.Price, null, price))),\r\n (reserved || monthlyPrice) && (React.createElement(S.PriceItem, null,\r\n React.createElement(S.PriceLabel, null, monthlyPriceLabel),\r\n reserved ? (React.createElement(S.Price, null, \"Not Available\")) : (React.createElement(S.Price, null, monthlyPrice)))))),\r\n React.createElement(S.FeaturesContainer, null,\r\n React.createElement(S.FeatureList, null,\r\n fuel && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: fuelIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, fuel))),\r\n transmission && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: transmissionIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, transmission))),\r\n mileage && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: mileageIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, mileage))),\r\n bikeType && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: carTypeIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, bikeType))),\r\n carType && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: carTypeIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, carType))),\r\n doors && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: doorsIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, doors))),\r\n tax && (React.createElement(S.Feature, null,\r\n React.createElement(S.FeatureIconImage, { src: taxIconUrl ?? '' }),\r\n React.createElement(S.FeatureText, null, tax))))),\r\n React.createElement(S.ContentContainer, null,\r\n React.createElement(Paragraph, { size: 'regular' }, content)),\r\n React.createElement(S.ShortListContainer, null, isInShortlist ? (React.createElement(S.Shortlist, { added: isInShortlist, hidden: !isInShortlist, onClick: () => {\r\n dispatch(toggle({ id: id, name: title }));\r\n } },\r\n React.createElement(S.ShortlistIcon, null,\r\n React.createElement(SvgShortlist, null)),\r\n React.createElement(S.ShortListText, null, \"Added\"))) : (React.createElement(S.Shortlist, { added: isInShortlist, hidden: isInShortlist, onClick: () => {\r\n dispatch(toggle({ id: id, name: title, image: gallery.find((item) => !!item.image)?.image }));\r\n } },\r\n React.createElement(S.ShortlistIcon, null,\r\n React.createElement(SvgShortlist, null)),\r\n React.createElement(S.ShortListText, null, \"ADD TO SHORTLIST\")))),\r\n React.createElement(S.ButtonContainer, null,\r\n React.createElement(S.ButtonList, null,\r\n React.createElement(S.ButtonItem, null,\r\n React.createElement(LinkButton, { title: getInTouchText, branding: 'primary', href: \"#enquire-form\" })),\r\n React.createElement(S.ButtonItem, null,\r\n React.createElement(LinkButton, { title: reserveText, branding: 'outline', href: reserveLink })),\r\n React.createElement(S.ButtonItem, null,\r\n React.createElement(LinkButton, { title: testDriveText, branding: 'outline', href: \"#enquire-form\" })))),\r\n location && (React.createElement(S.LocationContainer, null,\r\n React.createElement(S.LocationItem, null,\r\n React.createElement(S.LocationIcon, null,\r\n React.createElement(SvgLocationPin, null)),\r\n React.createElement(S.LocationContent, null,\r\n \"Currently at \",\r\n location,\r\n \" or\",\r\n React.createElement(S.LocationModalLink, { onClick: () => setActiveLocationModal(true) }, \"we will bring to your nearest Lloyd location.\"),\r\n React.createElement(S.LocationModalContainer, { active: activeLocationModal },\r\n React.createElement(S.LocationModalContentContainer, { ref: refLocationModal },\r\n React.createElement(S.LocationModalClose, { onClick: () => setActiveLocationModal(false) },\r\n React.createElement(SvgCross, null)),\r\n React.createElement(S.LocationModalTitle, null,\r\n React.createElement(Heading, { visual: \"h5\", semantic: \"h5\" }, locationModalHeading)),\r\n React.createElement(S.LocationModalContent, null,\r\n React.createElement(Paragraph, { size: 'regular' }, locationModalContent)))))))),\r\n React.createElement(S.CTABlockContainer, null,\r\n React.createElement(S.CTAContainer, null,\r\n React.createElement(S.CTAInner, null,\r\n React.createElement(S.CTAWrapper, null,\r\n React.createElement(S.CTALine, null,\r\n React.createElement(S.CTALineInner, null,\r\n React.createElement(S.CTAIcon, null,\r\n React.createElement(SvgPhone, null)),\r\n React.createElement(S.CTAContentWrapper, null,\r\n React.createElement(S.CTAContact, null,\r\n \"Call us on\",\r\n ' ',\r\n React.createElement(S.CTALink, { href: `tel:${phoneNumber}` }, phoneNumber)),\r\n React.createElement(S.CTADropdownWrapper, { animate: isOpen ? 'open' : 'closed', initial: isOpen ? 'open' : 'closed' },\r\n React.createElement(S.CTAButton, { type: \"button\", onClick: () => setIsOpen(!isOpen) },\r\n React.createElement(S.ClockIcon, null,\r\n React.createElement(SvgClock, null)),\r\n React.createElement(\"span\", null, `We're ${isDealerOpen ? 'open' : 'closed'}`),\r\n openingHoursText ? (React.createElement(React.Fragment, null,\r\n React.createElement(S.Bullet, null),\r\n \" \",\r\n openingHoursText)) : null,\r\n React.createElement(S.CTAButtonIcon, { \"data-is-open\": isOpen },\r\n React.createElement(SvgChevronDown, null))),\r\n React.createElement(S.CTADropdownContent, { variants: {\r\n open: {\r\n height: 'auto',\r\n },\r\n closed: {\r\n height: 0,\r\n },\r\n } }, openingTimes &&\r\n openingTimes.map((item) => (React.createElement(S.CTADropdownLine, { key: item.id, \"data-emphasise\": item.emphasise },\r\n React.createElement(S.Day, null, item.day),\r\n React.createElement(S.Time, null, item.time))))))))),\r\n React.createElement(S.CTALine, null,\r\n React.createElement(S.CTALineInner, null,\r\n React.createElement(S.ArrowIcon, null,\r\n React.createElement(SvgArrow, null)),\r\n React.createElement(S.CallBackText, null, callBackTextTitle),\r\n React.createElement(CtaLink, { href: callBackLink }, callBackText)),\r\n quotingReference && (React.createElement(S.QuotingReference, null,\r\n quotingReferenceLabel,\r\n \": \",\r\n React.createElement(\"span\", null, quotingReference))))))),\r\n React.createElement(S.CTABaseContainer, null,\r\n React.createElement(S.CTABlock, null,\r\n React.createElement(S.CTALineInner, null,\r\n React.createElement(S.CTAIcon, null,\r\n React.createElement(SvgPlay, null)),\r\n React.createElement(S.CTAContent, null, personalisedVideoText),\r\n React.createElement(CtaLink, { href: personalisedVideoLink }, personalisedVideoLinkText))),\r\n React.createElement(S.CTABlock, null,\r\n React.createElement(S.CTALineInner, null,\r\n React.createElement(S.CTAIcon, null,\r\n React.createElement(SvgPound, null)),\r\n React.createElement(S.CTAContent, null, exchangeText),\r\n React.createElement(CtaLink, { href: exchangeLink }, exchangeLinkText))))),\r\n React.createElement(S.ShareContainer, null,\r\n React.createElement(ShareButtons, { options: ['email', 'facebook', 'x', 'linkedin'], shareTitle: shareData.title, shareUrl: shareData.url, title: \"Share this on\" }))))),\r\n React.createElement(LightboxGallery, { active: activeLightbox, galleryItems: activeGallery, imageRatio: imageRatio, onActiveChange: setActiveLightbox, index: activeGalleryIndex, disableImageProcessing: disableImageProcessing })));\r\n function renderGallery() {\r\n if (!gallery?.length) {\r\n return null;\r\n }\r\n const ratioValue = imageRatio === '16:9' ? 9 / 16 : 3 / 4;\r\n const activeItem = gallery[activeImageIndex];\r\n const activeSrc = disableImageProcessing\r\n ? activeItem.image\r\n : getImageUrl(activeItem.image, {\r\n mode: 'crop',\r\n width: 865,\r\n heightratio: ratioValue,\r\n });\r\n const activeItemSrcs = [\r\n `${activeSrc} 1x`,\r\n `${getImageUrl(activeItem.image, { mode: 'crop', width: 1730, heightratio: ratioValue })} 2x`,\r\n ];\r\n return (React.createElement(S.GalleryContainer, null,\r\n React.createElement(S.ActiveImageContainer, { ...swipeHandlers },\r\n renderTag(),\r\n React.createElement(S.ActiveImage, { alt: title, loading: \"lazy\", src: activeSrc, ...(disableImageProcessing ? {} : { srcSet: activeItemSrcs.join(',') }) }),\r\n (activeItem.video || activeItem.phyron) && (React.createElement(S.PlayButton, { \"aria-label\": \"Play Video\", onClick: (e) => {\r\n e.preventDefault();\r\n handleGalleryClick(activeItem.id);\r\n } },\r\n React.createElement(SvgPlay, null))),\r\n React.createElement(S.MaximizeButton, { \"aria-label\": \"Maximize Gallery\", onClick: (e) => {\r\n e.preventDefault();\r\n handleGalleryClick(activeItem.id);\r\n } },\r\n React.createElement(SvgMaximize, null)),\r\n React.createElement(S.ActiveItemControls, null,\r\n React.createElement(CarouselButtons, { prevDisabled: activeImageIndex === 0, prevClicked: () => {\r\n if (refSlider.current === null) {\r\n return;\r\n }\r\n setActiveImageIndex(activeImageIndex - 1);\r\n refSlider.current.slickPrev();\r\n }, nextDisabled: activeImageIndex === gallery.length - 1, nextClicked: () => {\r\n if (refSlider.current === null) {\r\n return;\r\n }\r\n setActiveImageIndex(Math.floor(activeImageIndex + 1));\r\n refSlider.current.slickNext();\r\n } }))),\r\n React.createElement(S.ThumbnailCarouselContainer, null,\r\n React.createElement(Slider, { ref: refSlider, ...slickSettings }, gallery?.map((item, index) => {\r\n const src = disableImageProcessing\r\n ? item.image\r\n : getImageUrl(item.image, { mode: 'crop', width: 250, height: 140 });\r\n const itemSrcs = [\r\n `${src} 1x`,\r\n `${getImageUrl(item.image, {\r\n mode: 'crop',\r\n width: 500,\r\n height: 280,\r\n })} 2x`,\r\n ];\r\n return (React.createElement(S.ThumbnailContainer, { key: item.id, onClick: () => {\r\n refSlider.current?.slickGoTo(index);\r\n setActiveImageIndex(index);\r\n } },\r\n React.createElement(S.Thumbnail, { alt: item.altText, loading: \"lazy\", src: src, ...(disableImageProcessing ? {} : { srcSet: itemSrcs.join(',') }) }),\r\n (item.video || item.phyron) && React.createElement(SvgPlay, null)));\r\n }))),\r\n React.createElement(S.ControlsContainer, null,\r\n React.createElement(S.CarouselControlsContainer, null,\r\n React.createElement(CarouselButtons, { prevDisabled: activeImageIndex === 0, prevClicked: () => {\r\n if (refSlider.current === null) {\r\n return;\r\n }\r\n setActiveImageIndex(activeImageIndex - 1);\r\n refSlider.current.slickPrev();\r\n }, nextDisabled: activeImageIndex === gallery.length - 1, nextClicked: () => {\r\n if (refSlider.current === null) {\r\n return;\r\n }\r\n setActiveImageIndex(Math.floor(activeImageIndex + 1));\r\n refSlider.current.slickNext();\r\n } })),\r\n React.createElement(S.GalleryButtonsContainer, null,\r\n React.createElement(S.GalleryButton, { onClick: () => handleImageGalleryClick() },\r\n React.createElement(S.GalleryButtonIcon, null,\r\n React.createElement(SvgCamera, null)),\r\n React.createElement(S.GalleryButtonText, null,\r\n \"Gallery (\",\r\n gallery.length - videoItems.length,\r\n \")\")),\r\n videoItems.length !== 0 && (React.createElement(S.GalleryButton, { onClick: () => handleVideoGalleryClick() },\r\n React.createElement(S.GalleryButtonIcon, null,\r\n React.createElement(SvgPlay, null)),\r\n React.createElement(S.GalleryButtonText, null,\r\n \"Video (\",\r\n videoItems.length,\r\n \")\")))))));\r\n }\r\n function renderTag() {\r\n if (tag) {\r\n return React.createElement(Tag, { title: tag });\r\n }\r\n if (reserved) {\r\n return React.createElement(Tag, { title: \"Reserved\" });\r\n }\r\n return null;\r\n }\r\n};\r\nexport default withMotion(withRedux(UsedCarOverview));\r\n","import { ReactComponent as SvgChevronRight } from '@img/icons/cta-chevron.svg';\r\nimport * as React from 'react';\r\nimport S from './CtaLink.styles';\r\nconst CtaLink = ({ children, variant, ...otherProps }) => {\r\n return (React.createElement(S.Anchor, { \"data-variant\": variant ?? 'primary', ...otherProps },\r\n children,\r\n React.createElement(S.Icon, { as: SvgChevronRight })));\r\n};\r\nexport default CtaLink;\r\n","import React from 'react';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport store from '@redux/store';\r\nexport function withRedux(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithRedux = (props) => {\r\n return (React.createElement(ReduxProvider, { store: store },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithRedux.displayName = `withRedux(${displayName})`;\r\n return ComponentWithRedux;\r\n}\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 { 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 { 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","import { transition } from '@helpers/animation';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport styled, { css } from 'styled-components';\r\nexport const CtaStyles = css `\r\n ${transition('text-decoration-color', 0.2)};\r\n ${fonts.inter.extraBold};\r\n\r\n display: inline-flex;\r\n align-items: center;\r\n color: var(--textColour);\r\n font-size: ${fluid(14, 18)};\r\n line-height: 1em;\r\n letter-spacing: 0.01em;\r\n text-decoration: underline;\r\n text-decoration-color: transparent;\r\n text-underline-offset: 2px;\r\n\r\n &:focus,\r\n &:hover {\r\n text-decoration-color: currentColor;\r\n }\r\n`;\r\nconst Anchor = styled.a `\r\n ${CtaStyles};\r\n\r\n &[data-variant='primary'] {\r\n --textColour: ${brand.primary.blue.base};\r\n }\r\n\r\n &[data-variant='Secondary'] {\r\n --textColour: ${brand.black};\r\n }\r\n`;\r\nconst Icon = styled.span `\r\n ${transition('transform', 0.15)};\r\n\r\n display: inline-block;\r\n height: 14px;\r\n margin-left: 8px;\r\n transform: translateY(3px) translateX(0px);\r\n\r\n ${Anchor}:focus &,\r\n ${Anchor}:hover & {\r\n transform: translateY(3px) translateX(4px);\r\n }\r\n`;\r\nconst CtaLinkStyles = {\r\n Anchor,\r\n Icon,\r\n};\r\nexport default CtaLinkStyles;\r\n","export const isSSR = () => {\r\n const returnValue = !(typeof window != 'undefined' && window.document);\r\n return returnValue;\r\n};\r\n","import { load } from '@redux/middleware/persist';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nconst persistedValue = load('shortlist.persisted', {\r\n items: [],\r\n});\r\nexport const initialState = {\r\n persisted: persistedValue,\r\n};\r\nconst slice = createSlice({\r\n initialState,\r\n name: 'shortlist',\r\n reducers: {\r\n add: (state, action) => {\r\n state.persisted.items = state.persisted.items.filter((r) => r.id !== action.payload.id);\r\n state.persisted.items.push(action.payload);\r\n },\r\n clear: (state) => {\r\n state.persisted.items = [];\r\n },\r\n remove: (state, action) => {\r\n state.persisted.items = state.persisted.items.filter((r) => r.id !== action.payload);\r\n },\r\n toggle: (state, action) => {\r\n if (state.persisted.items.find((r) => r.id === action.payload.id)) {\r\n state.persisted.items = state.persisted.items.filter((r) => r.id !== action.payload.id);\r\n }\r\n else {\r\n state.persisted.items.push(action.payload);\r\n }\r\n },\r\n },\r\n});\r\nexport const { add, clear, remove, toggle } = slice.actions;\r\nexport const name = slice.name;\r\nexport const reducer = slice.reducer;\r\n","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 SvgPhone(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 22 30\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.531 22.319c2.319-1.555 3.682-1.918 6.807.216 3.5 2.389 4.146 5.127-1.733 7.465C6.096 29.061-3.616 12.423 1.316 2.094c4.987-3.868 7.06-1.944 7.4 2.248.306 3.744-.694 4.73-3.214 5.939a17.083 17.083 0 007.027 12.038z\",\n fill: \"#191919\",\n fillRule: \"evenodd\"\n })));\n}\n\nexport default __webpack_public_path__ + \"caf5e6b83b88c480d3f85f92b306d222.svg\";\nexport { SvgPhone 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 SvgCross(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.457.009a2.438 2.438 0 00-1.74 4.169L11.539 15 .717 25.822a2.447 2.447 0 003.461 3.461L15 18.461l10.822 10.822a2.447 2.447 0 003.461-3.461L18.461 15 29.283 4.178A2.447 2.447 0 0025.822.717L15 11.538 4.178.717A2.408 2.408 0 002.457.009z\",\n fill: \"currentcolor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"753a46eb6a841ddda2ecc8bb23cb2d04.svg\";\nexport { SvgCross as ReactComponent };","import { load } from '@redux/middleware/persist';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nconst persistedValue = load('enquiry.persisted', {\r\n name: '',\r\n postcode: '',\r\n email: '',\r\n phoneNumber: '',\r\n});\r\nexport const initialState = {\r\n persisted: persistedValue,\r\n};\r\nconst slice = createSlice({\r\n initialState,\r\n name: 'enquiry',\r\n reducers: {\r\n add: (state, action) => {\r\n state.persisted.name = action.payload.name;\r\n state.persisted.email = action.payload.email;\r\n state.persisted.postcode = action.payload.postcode;\r\n state.persisted.phoneNumber = action.payload.phoneNumber;\r\n },\r\n },\r\n});\r\nexport const { add } = slice.actions;\r\nexport const name = slice.name;\r\nexport const reducer = slice.reducer;\r\n","import { load } from '@redux/middleware/persist';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nconst persistedValue = load('quote.persisted', {\r\n id: '',\r\n quote: undefined,\r\n});\r\nexport const initialState = {\r\n persisted: persistedValue,\r\n};\r\nconst slice = createSlice({\r\n initialState,\r\n name: 'quote',\r\n reducers: {\r\n updateQuote: (state, action) => {\r\n state.persisted = { ...state.persisted, ...action.payload };\r\n },\r\n },\r\n});\r\nexport const { updateQuote } = slice.actions;\r\nexport const name = slice.name;\r\nexport const reducer = slice.reducer;\r\n"],"sourceRoot":""}