{"version":3,"file":"3802-3bf5ab53329b6135cc58.js","mappings":"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","sources":["webpack://lcci/./src/helpers/animate.ts","webpack://lcci/./src/helpers/brand.ts","webpack://lcci/./src/helpers/fluid.ts","webpack://lcci/./src/helpers/fonts.ts","webpack://lcci/./src/helpers/grid.ts","webpack://lcci/./src/helpers/image.ts","webpack://lcci/./src/helpers/media.ts","webpack://lcci/./src/helpers/typography.ts","webpack://lcci/./src/hooks/useIntersectionObserver.ts","webpack://lcci/./src/hooks/useInView.ts","webpack://lcci/./src/img/icons/quote-close.svg","webpack://lcci/./src/img/icons/quote-open.svg","webpack://lcci/./src/stories/Components/Cards/ReviewCard/ReviewCard.styles.ts","webpack://lcci/./src/stories/Components/Cards/ReviewCard/ReviewCard.tsx","webpack://lcci/./src/stories/Components/Misc/Image/Image.tsx","webpack://lcci/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.styles.ts","webpack://lcci/./src/stories/Components/Misc/SectionWrapper/SectionWrapper.tsx","webpack://lcci/./src/stories/Widgets/SingleTestimonial/SingleTestimonial.styles.ts","webpack://lcci/./src/stories/Widgets/SingleTestimonial/SingleTestimonial.tsx"],"sourcesContent":["import { css } from 'styled-components';\r\nexport const rootMargin = '0px 0px -20% 0px';\r\nexport const cubicEaseOut = `cubic-bezier(0.33, 1, 0.68, 1)`;\r\nexport const shouldAnimate = (innerCss) => {\r\n return css `\r\n @media (prefers-reduced-motion: no-preference) {\r\n ${innerCss}\r\n }\r\n `;\r\n};\r\nexport const transition = (properties, duration = 0.35, timing = cubicEaseOut) => {\r\n return shouldAnimate(css `\r\n transition-duration: ${typeof duration === 'string' ? duration : `${duration}s`};\r\n transition-property: ${properties};\r\n transition-timing-function: ${timing};\r\n will-change: ${properties};\r\n `);\r\n};\r\n","import { hsl } from 'polished';\r\nexport default {\r\n /** Hex: #1f1f1f */\r\n black: '#1f1f1f',\r\n /** Hex: #fff */\r\n white: '#fff',\r\n account: {\r\n /** Hex: #042746 */\r\n blue: '#042746',\r\n /** Hex: #043e5e */\r\n blueLight: '#043e5e',\r\n /** Hex: #013839 */\r\n green: '#013839',\r\n /** Hex: #014b53 */\r\n greenLight: '#014b53',\r\n /** Hex: #032B2C */\r\n baseGreen: '#032B2C',\r\n },\r\n base: {\r\n /** Hex: #0B2836 */\r\n blue: '#0B2836',\r\n },\r\n primary: {\r\n /** Hex: #FF6600 */\r\n orange: '#FF6600',\r\n /** Hex: #11385A */\r\n blue: '#11385A',\r\n /** Hex: #E9EDEE */\r\n blueGrey: '#E9EDEE',\r\n /** Hex: #ec671c */\r\n base: '#ec671c',\r\n text: '#ff6633',\r\n },\r\n secondary: {\r\n /** Hex: #F4F6F6*/\r\n lightGrey: '#F4F6F6',\r\n baseDark: '#292b2c',\r\n green: '#006164',\r\n greenBright: '#82BC00',\r\n blueGrey: '#C8D2D8',\r\n blueGreyFaded: '#889BAC',\r\n lightBlue: '#0096B8',\r\n pink: '#A72D68',\r\n accountCardBlue: '#DEF0FF',\r\n accountCardGreen: '#D1F1F5',\r\n },\r\n tag: {\r\n news: '#AA7BC9',\r\n event: '#25CAD3',\r\n report: '#EF3FA9',\r\n press: '#4D0991',\r\n },\r\n green: '#4F951A',\r\n lightGreen: '#EDEEE9',\r\n lightBlue: '#E9EDE9',\r\n validation: {\r\n /** Hex: #DA291C */\r\n invalid: '#DA291C',\r\n /** Hex: #DA291C */\r\n valid: '#008C15',\r\n },\r\n grey: {\r\n /** Hex: #222222 */\r\n grey13: hsl(0, 0, 0.13),\r\n /** Hex: #585858 */\r\n grey20: hsl(0, 0, 0.2),\r\n /** Hex: #585858 */\r\n grey35: hsl(0, 0, 0.35),\r\n /** Hex: #666666 */\r\n grey40: hsl(0, 0, 0.4),\r\n /** Hex: #707070 */\r\n grey44: hsl(0, 0, 0.44),\r\n /** Hex: #999999 */\r\n grey60: hsl(0, 0, 0.6),\r\n /** Hex: #CCCCCC */\r\n grey80: hsl(0, 0, 0.8),\r\n /** Hex: #E5E5E5 */\r\n grey90: hsl(0, 0, 0.9),\r\n /** Hex: #F7F7F7 */\r\n grey97: hsl(0, 0, 0.97),\r\n },\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.Tablet;\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 * Define a fluid value between the min/max values at the min/max widths.\r\n */\r\nexport function fluidUnit(min, max, minWidth = DEFAULT_MIN_VALUE, maxWidth = DEFAULT_MAX_VALUE, unit) {\r\n const slope = (max - min) / (maxWidth - minWidth);\r\n const yAxisIntersection = -minWidth * slope + min;\r\n const clampMin = `${round(min)}`;\r\n const clampVal = `${round(yAxisIntersection)}${unit} + ${round(slope * 100)}vw`;\r\n const clampMax = `${round(max)}`;\r\n return `clamp(${clampMin}${unit}, ${clampVal}, ${clampMax}${unit})`;\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// I couldn't find helpers like these in the project so adding these here\r\nexport function staticRemFontSize(pixelSizeInput) {\r\n return pixelSizeInput / PIXELS_PER_REM + 'rem';\r\n}\r\nexport function staticEmLineHeight(pxLineHeightInput, pxFontSizeInput) {\r\n return pxLineHeightInput / pxFontSizeInput + 'em';\r\n}\r\n","import { css } from 'styled-components';\r\nexport default {\r\n apparat: {\r\n light: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: italic;\r\n font-weight: 300;\r\n `,\r\n regular: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: italic;\r\n font-weight: 400;\r\n `,\r\n medium: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n mediumItalic: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: italic;\r\n font-weight: 500;\r\n `,\r\n semiBold: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n semiBoldItalic: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: italic;\r\n font-weight: 600;\r\n `,\r\n bold: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'Apparat', sans-serif;\r\n font-style: italic;\r\n font-weight: 700;\r\n `,\r\n },\r\n lato: {\r\n light: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-style: normal;\r\n font-weight: 300;\r\n `,\r\n lightItalic: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-weight: 300;\r\n font-style: italic;\r\n `,\r\n regular: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n regularItalic: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-weight: 400;\r\n font-style: italic;\r\n `,\r\n medium: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-style: normal;\r\n font-weight: 500;\r\n `,\r\n mediumItalic: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-weight: 500;\r\n font-style: italic;\r\n `,\r\n semiBold: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-style: normal;\r\n font-weight: 600;\r\n `,\r\n semiBoldItalic: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-weight: 600;\r\n font-style: italic;\r\n `,\r\n bold: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n `,\r\n boldItalic: css `\r\n font-family: 'LatoWeb', 'Trebuchet MS', Helvetica, sans-serif;\r\n font-weight: 700;\r\n font-style: italic;\r\n `,\r\n },\r\n sourceSerifPro: {\r\n regular: css `\r\n font-family: 'source-serif-pro', 'Times New Roman', Times, serif;\r\n font-style: normal;\r\n font-weight: 400;\r\n `,\r\n },\r\n};\r\n","import { css } from 'styled-components';\r\nexport const SitePaddingMin = 18;\r\nexport const SitePaddingMax = 64;\r\nexport const SiteWidth = 1760;\r\nexport const SiteWidthBreakpoint = SiteWidth + SitePaddingMax * 2;\r\nexport const SiteWidthNarrow = 940;\r\nexport const siteWide = css `\r\n margin: 0 auto;\r\n max-width: var(--siteWidth);\r\n padding: 0 var(--sitePadding);\r\n width: 100%;\r\n`;\r\nexport const baseGrid = css `\r\n display: grid;\r\n column-gap: var(--gutterWidth);\r\n grid-template-columns: repeat(24, 1fr);\r\n`;\r\n","import { Cloudinary } from '@cloudinary/url-gen';\r\nimport { dpr, format, quality } from '@cloudinary/url-gen/actions/delivery';\r\nimport { crop, fill, limitFill, pad, thumbnail } from '@cloudinary/url-gen/actions/resize';\r\nimport { face } from '@cloudinary/url-gen/qualifiers/focusOn';\r\nimport { auto as autoFormat } from '@cloudinary/url-gen/qualifiers/format';\r\nimport { autoGravity, focusOn } from '@cloudinary/url-gen/qualifiers/gravity';\r\nimport { auto as autoQuality } from '@cloudinary/url-gen/qualifiers/quality';\r\nimport { css } from 'styled-components';\r\nconst cl = new Cloudinary({\r\n cloud: {\r\n cloudName: 'lcci',\r\n },\r\n url: {\r\n secure: true,\r\n },\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 imageUrl(image, imageParams) {\r\n if (!image?.src) {\r\n return '';\r\n }\r\n if (image.src.startsWith('http')) {\r\n return image.src;\r\n }\r\n let clImage = cl.image(image.src);\r\n const resizeAction = getResizeAction(image, imageParams);\r\n if (resizeAction) {\r\n clImage = clImage.resize(resizeAction);\r\n }\r\n clImage = clImage.delivery(getFormatAction(imageParams)).delivery(quality(autoQuality()));\r\n if (imageParams.dpr) {\r\n clImage = clImage.delivery(dpr(imageParams.dpr));\r\n }\r\n // Set version to enable mass invalidation.\r\n // clImage.setVersion(process.env.CLOUDINARY_VERSION ?? '1');\r\n return clImage.toURL();\r\n}\r\nfunction getResizeAction(image, imageParams) {\r\n if (!imageParams.width && !imageParams.height) {\r\n return undefined;\r\n }\r\n let resizeAction;\r\n switch (imageParams.crop) {\r\n case 'crop':\r\n resizeAction = crop();\r\n break;\r\n case 'fill':\r\n resizeAction = fill();\r\n break;\r\n case 'lfill':\r\n resizeAction = limitFill();\r\n break;\r\n case 'pad':\r\n resizeAction = pad();\r\n break;\r\n case 'thumb':\r\n resizeAction = thumbnail();\r\n break;\r\n default:\r\n resizeAction = fill();\r\n break;\r\n }\r\n if (imageParams.width) {\r\n resizeAction = resizeAction.width(imageParams.width);\r\n }\r\n else if (imageParams.widthratio && imageParams.crop !== 'pad') {\r\n resizeAction = resizeAction.aspectRatio(imageParams.widthratio);\r\n }\r\n if (imageParams.height) {\r\n resizeAction = resizeAction.height(imageParams.height);\r\n }\r\n else if (imageParams.heightratio && imageParams.crop !== 'pad') {\r\n resizeAction = resizeAction.aspectRatio(imageParams.heightratio);\r\n }\r\n if (imageParams.gravity === 'face') {\r\n resizeAction = resizeAction.gravity(focusOn(face()));\r\n }\r\n else if (imageParams.crop !== 'pad') {\r\n resizeAction = resizeAction.gravity(autoGravity());\r\n }\r\n // Zoom can only be applied when using crop or thumb mode.\r\n if ((imageParams.crop === 'crop' || imageParams.crop === 'thumb') && imageParams.zoom) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n resizeAction = resizeAction.zoom(imageParams.zoom);\r\n }\r\n return resizeAction;\r\n}\r\nfunction getFormatAction(imageParams) {\r\n let formatAction;\r\n if (imageParams.format) {\r\n formatAction = format(imageParams.format);\r\n }\r\n else {\r\n formatAction = format(autoFormat());\r\n }\r\n return formatAction;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio, otherParams = {}) {\r\n const sizes = getRange(upper, lower, steps);\r\n return sizes.map((size) => `${imageUrl(image, { width: size, heightratio: ratio, ...otherParams })} ${size}w`);\r\n}\r\nexport function getRetinaSrcs(image, width, ratio, otherParams = {}) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n return dprs.map((dpr) => `${imageUrl(image, { width: width, heightratio: ratio, dpr, ...otherParams })} ${dpr}x`);\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n/**\r\n * Create an pdf URL\r\n * @param url The pdf url\r\n * @returns The pdf URL\r\n */\r\nexport function pdfUrl(url) {\r\n if (!url) {\r\n return '';\r\n }\r\n const clImage = cl.image(url);\r\n return clImage.toURL();\r\n}\r\n/**\r\n * Re-usable styles for image container where the\r\n * image needs to maintain it's aspect ratio\r\n *\r\n * @param width\r\n * @param height\r\n * @returns\r\n */\r\nexport function imageWrapperPreserveRatio(width, height) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n return css `\r\n position: relative;\r\n overflow: hidden;\r\n overflow: clip;\r\n width: 100%;\r\n aspect-ratio: ${width / height};\r\n `;\r\n}\r\n/**\r\n * Calculates the percentage bottom padding\r\n * required to maintain a certain ratio.\r\n *\r\n * To be used in cases where the image ratio\r\n * changes based on viewport.\r\n *\r\n * @param width\r\n * @param height\r\n * @returns padding-bottom: {ratioPercentage}%\r\n */\r\nexport function imageWrapperRatioPadding(width, height) {\r\n if (!width && !height) {\r\n return '';\r\n }\r\n const ratioPercentage = ((height / width) * 100).toFixed(2);\r\n return `padding-bottom: ${ratioPercentage}%`;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"TabletSmall\"] = 568] = \"TabletSmall\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\r\n}\r\nexport function between(start, end) {\r\n return `${from(start)} and ${until(end)}`;\r\n}\r\n","import SvgQuoteMarks from '@img/icons/quote-marks.svg?url';\r\nimport { css } from 'styled-components';\r\nimport { transition } from './animate';\r\nimport brand from './brand';\r\nimport { fluid } from './fluid';\r\nimport fonts from './fonts';\r\nimport { Device, from } from './media';\r\nexport const headingStyles = css `\r\n ${fonts.apparat.semiBold};\r\n\r\n color: currentColor;\r\n margin: 0 0 ${fluid(16, 24)};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${fonts.apparat.medium};\r\n }\r\n`;\r\nexport const h1 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(30, 70)};\r\n line-height: ${fluid(40, 80)};\r\n`;\r\nexport const h2 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(25, 60)};\r\n line-height: ${fluid(35, 70)};\r\n`;\r\nexport const h3 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(22, 50)};\r\n line-height: ${fluid(32, 60)};\r\n`;\r\nexport const h4 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(20, 40)};\r\n line-height: ${fluid(30, 50)};\r\n`;\r\nexport const h5 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(18, 30)};\r\n line-height: ${fluid(24, 38)};\r\n`;\r\nexport const h6 = css `\r\n ${headingStyles};\r\n font-size: ${fluid(17, 29)};\r\n line-height: ${fluid(23, 37)};\r\n`;\r\nexport const paragraphStyles = css `\r\n color: currentColor;\r\n ${fonts.apparat.light};\r\n margin: 0 0 ${fluid(16, 24)};\r\n`;\r\nexport const paragraphLarge = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(20, 26)};\r\n line-height: ${fluid(30, 36)};\r\n`;\r\nexport const paragraphMedium = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(18, 22)};\r\n line-height: ${fluid(28, 32)};\r\n`;\r\nexport const paragraphSmall = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(16, 18)};\r\n line-height: ${fluid(26, 28)};\r\n`;\r\nexport const paragraphMicro = css `\r\n ${paragraphStyles};\r\n font-size: ${fluid(12, 14)};\r\n line-height: ${fluid(22, 24)};\r\n`;\r\nexport const meta = css `\r\n display: block;\r\n ${fonts.apparat.regular};\r\n font-size: ${fluid(12, 18)};\r\n line-height: ${fluid(16, 24)};\r\n letter-spacing: 0.01em;\r\n text-transform: uppercase;\r\n\r\n sup {\r\n font-size: 60%;\r\n }\r\n`;\r\nexport const link = css `\r\n display: inline-block;\r\n color: currentColor;\r\n background: linear-gradient(\r\n to right,\r\n var(--accentColor, ${brand.primary.orange}),\r\n var(--accentColor, ${brand.primary.orange})\r\n );\r\n background-repeat: no-repeat;\r\n background-size: 0% 100%;\r\n margin: 0 -4px 0;\r\n padding: 0 4px 0;\r\n text-decoration: underline;\r\n text-underline-position: under;\r\n ${transition('background-size, color')};\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n background-size: 100% 100%;\r\n color: ${brand.base.blue};\r\n }\r\n`;\r\nexport const table = css `\r\n background: ${brand.white};\r\n border-collapse: collapse;\r\n color: ${brand.base.blue};\r\n margin-bottom: 1em;\r\n width: 100%;\r\n\r\n thead {\r\n tr {\r\n background: ${brand.primary.blue};\r\n\r\n td,\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.apparat.regular};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n\r\n tbody {\r\n tr {\r\n &:nth-child(odd) {\r\n background: ${brand.lightBlue};\r\n }\r\n\r\n &:nth-child(even) {\r\n background: ${brand.white};\r\n }\r\n\r\n th {\r\n border: 2px solid ${brand.white};\r\n color: ${brand.white};\r\n ${fonts.apparat.medium};\r\n font-size: 18px;\r\n letter-spacing: -0.01em;\r\n line-height: 22px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n text-transform: uppercase;\r\n }\r\n\r\n td {\r\n border: 2px solid ${brand.white};\r\n ${fonts.apparat.regular};\r\n font-size: 16px;\r\n letter-spacing: -0.01em;\r\n line-height: 20px;\r\n padding: 12px 16px;\r\n text-align: left;\r\n }\r\n }\r\n }\r\n`;\r\nexport const blockquote = css `\r\n ${paragraphMedium}\r\n ${fonts.apparat.regularItalic}\r\n\r\n position: relative;\r\n text-align: left;\r\n margin-bottom: 38px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${paragraphLarge}\r\n ${fonts.apparat.regularItalic}\r\n padding: 28px 0 0 76px;\r\n }\r\n\r\n &::before {\r\n content: '';\r\n display: block;\r\n width: ${fluid(40, 56)};\r\n height: ${fluid(38, 52)};\r\n margin-bottom: 20px;\r\n background: url(${SvgQuoteMarks}) center no-repeat;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n margin-bottom: unset;\r\n }\r\n }\r\n\r\n + P {\r\n ${paragraphMedium}\r\n margin-bottom: ${fluid(5, 10)};\r\n }\r\n\r\n + p,\r\n + p + p {\r\n @media ${from(Device.TabletLarge)} {\r\n padding: 0 0 0 76px;\r\n }\r\n }\r\n`;\r\nexport const contentStyles = css `\r\n h1,\r\n .h1-styles {\r\n ${h2}\r\n }\r\n\r\n h2,\r\n .h2-styles {\r\n ${h4}\r\n }\r\n\r\n h3,\r\n .h3-styles {\r\n ${headingStyles};\r\n\r\n font-size: ${fluid(19, 35)};\r\n line-height: ${fluid(28, 45)};\r\n }\r\n\r\n h4,\r\n .h4-styles {\r\n ${h5}\r\n }\r\n\r\n h5,\r\n .h5-styles {\r\n ${h6}\r\n }\r\n\r\n p.large {\r\n ${paragraphLarge}\r\n }\r\n\r\n p {\r\n ${paragraphMedium}\r\n }\r\n\r\n p.small {\r\n ${paragraphSmall}\r\n }\r\n\r\n p.meta {\r\n ${meta}\r\n }\r\n\r\n a {\r\n ${link}\r\n }\r\n\r\n ol,\r\n ul {\r\n ${paragraphMedium};\r\n\r\n li {\r\n &::marker {\r\n color: ${brand.primary.orange};\r\n }\r\n }\r\n }\r\n\r\n ol {\r\n list-style: decimal;\r\n padding-left: 1.2em;\r\n }\r\n\r\n ul {\r\n list-style: disc;\r\n padding-left: 1.2em;\r\n\r\n li {\r\n margin-bottom: 16px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n p {\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n }\r\n\r\n hr {\r\n display: block;\r\n background: currentColor;\r\n border: 0;\r\n height: 4px;\r\n margin: ${fluid(40, 80)} 0;\r\n padding: 0;\r\n width: 100%;\r\n }\r\n\r\n table {\r\n ${table};\r\n }\r\n\r\n blockquote {\r\n ${blockquote};\r\n }\r\n\r\n .responsive-table {\r\n position: relative;\r\n overflow-x: auto;\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0;\r\n }\r\n`;\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","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 SvgQuoteClose(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 -0.01 56 52.01\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M33 52l-3.167-4.587c8-6.628 12.667-11.386 16.334-20.393l-4.833-4.42c-5-4.419-6.5-8.327-6.5-12.576C34.834 3.229 38.667 0 44.666 0a12.257 12.257 0 019 3.4A32.351 32.351 0 0156 15.463C56 30.249 45.5 43.843 33 52M3.167 52L0 47.413c8-6.628 12.667-11.386 16.334-20.393L11.5 22.6C6.5 18.183 5 14.274 5 10.025 5 3.229 8.832 0 14.833 0a12.262 12.262 0 019 3.4 32.379 32.379 0 012.333 12.065c0 14.785-10.5 28.379-23 36.537\"\n })));\n}\n\nexport default SvgQuoteClose;","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 SvgQuoteOpen(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 56 52.01\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M23 0l3.167 4.587c-8 6.628-12.667 11.386-16.334 20.393l4.833 4.42c5 4.419 6.5 8.327 6.5 12.576 0 6.8-3.834 10.025-9.832 10.025a12.257 12.257 0 01-9-3.4A32.351 32.351 0 010 36.537C0 21.751 10.5 8.157 23 0m29.833 0L56 4.587c-8 6.628-12.667 11.386-16.334 20.393L44.5 29.4c5 4.419 6.5 8.327 6.5 12.576C51 48.771 47.168 52 41.167 52a12.262 12.262 0 01-9-3.4 32.379 32.379 0 01-2.333-12.065c0-14.785 10.5-28.379 23-36.537\"\n })));\n}\n\nexport default SvgQuoteOpen;","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { paragraphLarge, paragraphMedium, paragraphSmall } from '@helpers/typography';\r\nimport Image from '@stories/Components/Misc/Image/Image';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --shapeTransform: translateX(${fluid(78, 122)}) translateY(calc(-1 * ${fluid(132, 218)}));\r\n --borderRadius: 10px;\r\n\r\n height: 100%;\r\n background: ${brand.white};\r\n border-radius: var(--borderRadius);\r\n color: ${brand.base.blue};\r\n position: relative;\r\n\r\n &[data-alt='true'] {\r\n --shapeTransform: translateX(calc(-1 * ${fluid(78, 122)})) translateY(${fluid(132, 218)});\r\n }\r\n\r\n &[data-variant='carousel'] {\r\n --avatarSize: ${fluid(58, 88)};\r\n --avatarBorder: 2px;\r\n }\r\n\r\n &[data-variant='single'] {\r\n --avatarSize: ${fluid(124, 272)};\r\n --avatarBorder: ${fluid(12, 24)};\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n padding: ${fluid(62, 76)} ${fluid(16, 104)};\r\n\r\n &[data-variant='single'] {\r\n padding-top: calc(var(--avatarSize) * 1.25);\r\n margin-top: calc(var(--avatarSize) * 0.5);\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n &[data-variant='carousel'] {\r\n padding: ${fluid(16, 48)} ${fluid(68, 104)};\r\n }\r\n\r\n &[data-variant='single'] {\r\n margin-left: calc(var(--avatarSize) * 0.5);\r\n padding: ${fluid(48, 114)} ${fluid(64, 148)} ${fluid(48, 114)} var(--avatarSize);\r\n }\r\n }\r\n`;\r\nconst ShapeWrapper = styled.div `\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n left: 0;\r\n top: 0;\r\n overflow: hidden;\r\n border-radius: var(--borderRadius);\r\n\r\n &::before {\r\n ${transition('transform', 1)};\r\n\r\n content: '';\r\n position: absolute;\r\n background: rgba(0, 43, 71, 0.03);\r\n border-radius: 50%;\r\n height: ${fluid(288, 493)};\r\n width: ${fluid(318, 544)};\r\n transform: var(--shapeTransform);\r\n transition-delay: 1s;\r\n\r\n ${Container}[data-alt='false'] & {\r\n top: 0;\r\n right: 0;\r\n }\r\n\r\n ${Container}[data-alt='true'] & {\r\n bottom: 0;\r\n left: 0;\r\n }\r\n\r\n [data-animate='false'] & {\r\n transform: var(--shapeTransform) scale(0);\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n z-index: 0;\r\n`;\r\nconst Content = styled.div `\r\n ${transition('transform, opacity')};\r\n ${paragraphLarge}\r\n\r\n transition-delay: 500ms;\r\n margin: 0 0 ${fluid(32, 64)};\r\n\r\n [data-animate='false'] & {\r\n transform: translateY(50%);\r\n opacity: 0;\r\n }\r\n`;\r\nconst Citation = styled.div `\r\n display: flex;\r\n align-items: center;\r\n margin-top: auto;\r\n`;\r\nconst AvatarWrapper = styled.div `\r\n ${transition('opacity', 1.5)};\r\n\r\n border: var(--avatarBorder) solid ${brand.primary.blue};\r\n border-radius: 50%;\r\n flex: 0 0 auto;\r\n height: var(--avatarSize);\r\n margin-right: ${fluid(16, 24)};\r\n overflow: hidden;\r\n width: var(--avatarSize);\r\n transition-delay: 300ms;\r\n\r\n ${Container}[data-variant='single'] & {\r\n position: absolute;\r\n top: 0;\r\n transform: translateY(-175%);\r\n\r\n @media ${from(Device.Tablet)} {\r\n top: 50%;\r\n left: calc(var(--avatarSize) * -1);\r\n transform: translate(-50%, -50%);\r\n }\r\n }\r\n\r\n [data-animate='false'] & {\r\n opacity: 0;\r\n }\r\n`;\r\nconst Avatar = styled(Image) `\r\n display: block;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n`;\r\nconst AvatarPlaceholder = styled.span `\r\n display: flex;\r\n color: ${brand.primary.blue};\r\n font-size: ${fluid(24, 32)};\r\n height: 100%;\r\n line-height: 1em;\r\n opacity: 0.5;\r\n padding-top: 4px;\r\n place-content: center;\r\n place-items: center;\r\n width: 100%;\r\n`;\r\nconst NameWrapper = styled.div `\r\n ${transition('transform, opacity')};\r\n\r\n transition-delay: 500ms;\r\n\r\n [data-animate='false'] & {\r\n transform: translateY(50%);\r\n opacity: 0;\r\n }\r\n`;\r\nconst Name = styled.div `\r\n ${paragraphMedium}\r\n\r\n margin: 0;\r\n`;\r\nconst Title = styled.div `\r\n ${paragraphSmall}\r\n\r\n margin: 0;\r\n`;\r\nconst QuoteIcon = styled.span `\r\n ${transition('transform, opacity')};\r\n\r\n --spacing: ${fluid(16, 24)};\r\n\r\n position: absolute;\r\n display: block;\r\n filter: drop-shadow(4px 4px 0px ${brand.primary.blueGrey});\r\n height: ${fluid(38, 52)};\r\n color: ${brand.primary.orange};\r\n width: ${fluid(35, 56)};\r\n transition-delay: 900ms;\r\n\r\n &[data-open] {\r\n top: var(--spacing);\r\n left: var(--spacing);\r\n\r\n ${Container}[data-variant='single'] & {\r\n @media ${until(Device.Tablet)} {\r\n top: calc(var(--avatarSize) * 0.75);\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n left: calc(var(--avatarSize) * 1 - var(--spacing));\r\n }\r\n }\r\n\r\n [data-animate='false'] & {\r\n transform: translateY(-100%);\r\n opacity: 0;\r\n }\r\n }\r\n\r\n &[data-close] {\r\n bottom: var(--spacing);\r\n right: var(--spacing);\r\n\r\n [data-animate='false'] & {\r\n transform: translateY(100%);\r\n opacity: 0;\r\n }\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n ${Container}[data-variant='single'] & {\r\n --spacing: ${fluid(48, 84)};\r\n }\r\n }\r\n`;\r\nconst ReviewCardStyles = {\r\n Avatar,\r\n AvatarPlaceholder,\r\n AvatarWrapper,\r\n Citation,\r\n Container,\r\n Content,\r\n Inner,\r\n Name,\r\n NameWrapper,\r\n QuoteIcon,\r\n Title,\r\n ShapeWrapper,\r\n};\r\nexport default ReviewCardStyles;\r\n","import { getRetinaSrcs } from '@helpers/image';\r\nimport SvgQuoteClose from '@img/icons/quote-close.svg';\r\nimport SvgQuoteOpen from '@img/icons/quote-open.svg';\r\nimport * as React from 'react';\r\nimport S from './ReviewCard.styles';\r\nconst ReviewCard = (props) => {\r\n const avatarSrcs = props.avatar\r\n ? getRetinaSrcs(props.avatar, props.isSingle ? 272 : 88, 1, {\r\n crop: 'thumb',\r\n gravity: 'face',\r\n zoom: 0.7,\r\n })\r\n : [];\r\n return (React.createElement(S.Container, { \"data-alt\": (props.index + 1) % 2 === 0, \"data-variant\": props.isSingle ? 'single' : 'carousel' },\r\n React.createElement(S.ShapeWrapper, null),\r\n React.createElement(S.QuoteIcon, { as: SvgQuoteOpen, \"data-open\": true }),\r\n React.createElement(S.QuoteIcon, { as: SvgQuoteClose, \"data-close\": true }),\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.Content, null, props.content),\r\n React.createElement(S.Citation, null,\r\n React.createElement(S.AvatarWrapper, null, props.avatar ? (React.createElement(S.Avatar, { alt: props.avatar.altText, loading: \"lazy\", src: avatarSrcs[0].split(' ')[0], srcSet: avatarSrcs.join(',') })) : (React.createElement(S.AvatarPlaceholder, null, props.citation.substring(0, 1)))),\r\n React.createElement(S.NameWrapper, null,\r\n React.createElement(S.Name, null, props.citation),\r\n React.createElement(S.Title, null, props.citationTitle))))));\r\n};\r\nexport default ReviewCard;\r\n","import * as React from 'react';\r\nconst Image = React.forwardRef(({ alt = '', ...props }, ref) => {\r\n return React.createElement(\"img\", { ref: ref, alt: alt, role: alt ? undefined : 'presentation', ...props });\r\n});\r\nImage.displayName = 'Image';\r\nexport default Image;\r\n","import { fluid } from '@helpers/fluid';\r\nimport { siteWide } from '@helpers/grid';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --scrollOffset: var(--headerHeight, 0px);\r\n --sectionSpacing: ${fluid(40, 66)};\r\n\r\n &[data-spacing='margin'],\r\n &[data-spacing='padding'] {\r\n scroll-margin: calc(var(--scrollOffset) + var(--sectionSpacing)) 0 0;\r\n }\r\n\r\n &[data-spacing='margin'] {\r\n margin: var(--sectionSpacing) 0;\r\n }\r\n\r\n &[data-spacing='padding'] {\r\n padding: var(--sectionSpacing) 0;\r\n }\r\n\r\n &[data-spacing='none'] {\r\n scroll-margin: var(--scrollOffset) 0 0;\r\n }\r\n\r\n position: relative;\r\n z-index: 5;\r\n\r\n &[data-hide-overflow='true'] {\r\n overflow: hidden;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${siteWide}\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef(({ children, layout = 'default', spacing = 'margin', hideOverflow, id, ...otherProps }, ref) => {\r\n switch (layout) {\r\n case 'fullWidth':\r\n return (React.createElement(S.Container, { id: id ? id : undefined, ref: ref, \"data-spacing\": spacing, \"data-hide-overflow\": hideOverflow, ...otherProps }, children));\r\n case 'default':\r\n default:\r\n return (React.createElement(S.Container, { id: id ? id : undefined, ref: ref, \"data-spacing\": spacing, \"data-hide-overflow\": hideOverflow, ...otherProps },\r\n React.createElement(S.Inner, null, children)));\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport { h3 } from '@helpers/typography';\r\nimport SectionWrapper from '@stories/Components/Misc/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Misc/SectionWrapper/SectionWrapper.styles';\r\nimport styled from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n background-color: ${brand.primary.blueGrey};\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${SectionWrapperStyles.Inner} {\r\n ${baseGrid};\r\n }\r\n }\r\n`;\r\nconst TitleWrapper = styled.div `\r\n @media ${from(Device.TabletLarge)} {\r\n display: flex;\r\n align-items: center;\r\n grid-column: 1 / span 6;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 1 / span 5;\r\n }\r\n`;\r\nconst Title = styled.h2 `\r\n ${transition('opacity, transform', 0.5)};\r\n ${h3};\r\n\r\n margin-bottom: 0;\r\n\r\n ${Container}[data-animate='false'] & {\r\n transform: translateY(50%);\r\n opacity: 0;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-bottom: ${fluid(64, 128)};\r\n }\r\n`;\r\nconst CardWrapper = styled.div `\r\n padding-top: 32px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 8 / span 17;\r\n padding: 0;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 7 / span 18;\r\n }\r\n`;\r\nconst SingleTestimonialStyles = {\r\n CardWrapper,\r\n Container,\r\n Title,\r\n TitleWrapper,\r\n};\r\nexport default SingleTestimonialStyles;\r\n","import { rootMargin } from '@helpers/animate';\r\nimport { useInView } from '@hooks/useInView';\r\nimport ReviewCard from '@stories/Components/Cards/ReviewCard/ReviewCard';\r\nimport * as React from 'react';\r\nimport S from './SingleTestimonial.styles';\r\nconst SingleTestimonial = (props) => {\r\n const [ref, inView] = useInView({ rootMargin }, false, props.pageContext?.isEditMode);\r\n return (React.createElement(S.Container, { id: props.anchorId, ref: ref, \"data-animate\": inView, spacing: \"padding\" },\r\n React.createElement(S.TitleWrapper, null,\r\n React.createElement(S.Title, null, props.title)),\r\n React.createElement(S.CardWrapper, null,\r\n React.createElement(ReviewCard, { index: 0, isSingle: true, ...props.review }))));\r\n};\r\nexport default SingleTestimonial;\r\n"],"names":["rootMargin","cubicEaseOut","shouldAnimate","innerCss","css","transition","properties","duration","timing","black","white","account","blue","blueLight","green","greenLight","baseGreen","base","primary","orange","blueGrey","text","secondary","lightGrey","baseDark","greenBright","blueGreyFaded","lightBlue","pink","accountCardBlue","accountCardGreen","tag","news","event","report","press","lightGreen","validation","invalid","valid","grey","grey13","hsl","grey20","grey35","grey40","grey44","grey60","grey80","grey90","grey97","PIXELS_PER_REM","DEFAULT_MIN_VALUE","Device","DEFAULT_MAX_VALUE","fluid","min","max","minWidth","maxWidth","minRem","maxRem","minWidthRem","maxWidthRem","slope","yAxisIntersection","clampMin","round","clampVal","clampMax","num","Math","staticRemFontSize","pixelSizeInput","staticEmLineHeight","pxLineHeightInput","pxFontSizeInput","apparat","light","lightItalic","regular","regularItalic","medium","mediumItalic","semiBold","semiBoldItalic","bold","boldItalic","lato","sourceSerifPro","SiteWidth","SiteWidthBreakpoint","SitePaddingMax","SiteWidthNarrow","siteWide","baseGrid","cl","Cloudinary","cloud","cloudName","url","secure","imageUrl","image","imageParams","src","startsWith","clImage","resizeAction","width","height","crop","fill","limitFill","pad","thumbnail","widthratio","aspectRatio","heightratio","gravity","focusOn","face","autoGravity","zoom","getResizeAction","resize","delivery","formatAction","format","autoFormat","getFormatAction","quality","autoQuality","dpr","toURL","getSrcs","upper","lower","steps","ratio","otherParams","sizes","getRange","map","size","getRetinaSrcs","dprs","increment","Array","_","index","ceil","pdfUrl","imageWrapperPreserveRatio","imageWrapperRatioPadding","toFixed","imageCoverContainer","relative","from","until","between","start","end","headingStyles","fonts","h2","h3","h4","h5","h6","paragraphStyles","paragraphLarge","paragraphMedium","paragraphSmall","paragraphMicro","meta","link","brand","table","blockquote","SvgQuoteMarks","contentStyles","callback","options","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","_path","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","xmlns","viewBox","d","Container","styled","ShapeWrapper","Inner","Content","Citation","AvatarWrapper","Avatar","Image","AvatarPlaceholder","NameWrapper","Name","Title","QuoteIcon","avatarSrcs","avatar","isSingle","React","S","as","SvgQuoteOpen","SvgQuoteClose","content","alt","altText","loading","split","srcSet","join","citation","substring","citationTitle","ref","role","undefined","displayName","SectionWrapper","children","layout","spacing","hideOverflow","id","otherProps","SectionWrapperStyles","TitleWrapper","CardWrapper","pageContext","anchorId","title","ReviewCard","review"],"sourceRoot":""}