{"version":3,"file":"commons-14fe23f14ca3025a36cd.js","mappings":"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","sources":["webpack://zoomies-gatsby-website/./node_modules/camelcase/index.js","webpack://zoomies-gatsby-website/../src/image-utils.ts","webpack://zoomies-gatsby-website/../src/components/hooks.ts","webpack://zoomies-gatsby-website/../src/components/layout-wrapper.tsx","webpack://zoomies-gatsby-website/../src/components/picture.tsx","webpack://zoomies-gatsby-website/../src/components/placeholder.tsx","webpack://zoomies-gatsby-website/../src/components/main-image.tsx","webpack://zoomies-gatsby-website/../src/components/gatsby-image.server.tsx","webpack://zoomies-gatsby-website/../src/components/gatsby-image.browser.tsx","webpack://zoomies-gatsby-website/../src/components/static-image.server.tsx","webpack://zoomies-gatsby-website/../src/components/static-image.tsx","webpack://zoomies-gatsby-website/./src/components/PayPalPopup.js","webpack://zoomies-gatsby-website/./src/components/navbar.js","webpack://zoomies-gatsby-website/./src/components/footer.js","webpack://zoomies-gatsby-website/./src/images/lines.svg","webpack://zoomies-gatsby-website/./src/components/layout.js","webpack://zoomies-gatsby-website/./node_modules/react-reveal/Fade.js","webpack://zoomies-gatsby-website/./node_modules/react-reveal/RevealBase.js","webpack://zoomies-gatsby-website/./node_modules/react-reveal/globals.js","webpack://zoomies-gatsby-website/./node_modules/react-reveal/wrap.js"],"sourcesContent":["'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n  320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n  warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n  layout?: Layout\n  formats?: Array<ImageFormat>\n  placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n  tracedSVGOptions?: Record<string, unknown>\n  width?: number\n  height?: number\n  aspectRatio?: number\n  sizes?: string\n  quality?: number\n  transformOptions?: {\n    fit?: Fit\n    cropFocus?: number | string\n    duotone?: {\n      highlight: string\n      shadow: string\n      opacity?: number\n    }\n    grayscale?: boolean\n    rotate?: number\n    trim?: number\n  }\n  jpgOptions?: Record<string, unknown>\n  pngOptions?: Record<string, unknown>\n  webpOptions?: Record<string, unknown>\n  avifOptions?: Record<string, unknown>\n  blurredOptions?: { width?: number; toFormat?: ImageFormat }\n  breakpoints?: Array<number>\n  outputPixelDensities?: Array<number>\n  backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n  width?: number\n  height?: number\n  layout?: Layout\n  filename: string\n  outputPixelDensities?: Array<number>\n  breakpoints?: Array<number>\n  fit?: Fit\n  reporter?: IReporter\n  sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n  sizes: Array<number>\n  presentationWidth: number\n  presentationHeight: number\n  aspectRatio: number\n  unscaledWidth: number\n}\n\nexport interface IImage {\n  src: string\n  width: number\n  height: number\n  format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n  pluginName: string\n  generateImageSource: (\n    filename: string,\n    width: number,\n    height: number,\n    format: ImageFormat,\n    fit?: Fit,\n    options?: Record<string, unknown>\n  ) => IImage\n  layout?: Layout\n  formats?: Array<ImageFormat>\n  filename: string\n  placeholderURL?: string\n  width?: number\n  height?: number\n  sizes?: string\n  reporter?: IReporter\n  sourceMetadata?: { width: number; height: number; format: ImageFormat }\n  fit?: Fit\n  options?: Record<string, unknown>\n  breakpoints?: Array<number>\n  backgroundColor?: string\n  aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n  switch (layout) {\n    // If screen is wider than the max size, image width is the max size,\n    // otherwise it's the width of the screen\n    case `constrained`:\n      return `(min-width: ${width}px) ${width}px, 100vw`\n\n    // Image is always the same width, whatever the size of the screen\n    case `fixed`:\n      return `${width}px`\n\n    // Image is always the width of the screen\n    case `fullWidth`:\n      return `100vw`\n\n    default:\n      return undefined\n  }\n}\n\nexport const getSrcSet = (images: Array<IImage>): string =>\n  images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n  const dot = filename.lastIndexOf(`.`)\n  if (dot !== -1) {\n    const ext = filename.slice(dot + 1)\n    if (ext === `jpeg`) {\n      return `jpg`\n    }\n    if (ext.length === 3 || ext.length === 4) {\n      return ext as ImageFormat\n    }\n  }\n  return undefined\n}\n\nexport function setDefaultDimensions(\n  args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n  let {\n    layout = `constrained`,\n    width,\n    height,\n    sourceMetadata,\n    breakpoints,\n    aspectRatio,\n    formats = [`auto`, `webp`],\n  } = args\n  formats = formats.map(format => format.toLowerCase() as ImageFormat)\n  layout = camelCase(layout) as Layout\n\n  if (width && height) {\n    return { ...args, formats, layout, aspectRatio: width / height }\n  }\n  if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n    aspectRatio = sourceMetadata.width / sourceMetadata.height\n  }\n\n  if (layout === `fullWidth`) {\n    width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n    height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n  } else {\n    if (!width) {\n      if (height && aspectRatio) {\n        width = height * aspectRatio\n      } else if (sourceMetadata.width) {\n        width = sourceMetadata.width\n      } else if (height) {\n        width = Math.round(height / DEFAULT_ASPECT_RATIO)\n      } else {\n        width = DEFAULT_FIXED_WIDTH\n      }\n    }\n\n    if (aspectRatio && !height) {\n      height = Math.round(width / aspectRatio)\n    } else if (!aspectRatio) {\n      aspectRatio = width / height\n    }\n  }\n  return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n  args: IGatsbyImageHelperArgs,\n  width = 20\n): string {\n  args = setDefaultDimensions(args)\n  const { generateImageSource, filename, aspectRatio } = args\n  return generateImageSource(\n    filename,\n    width,\n    Math.round(width / aspectRatio),\n    args.sourceMetadata.format || `jpg`,\n    args.fit,\n    args.options\n  )?.src\n}\n\nexport function generateImageData(\n  args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n  args = setDefaultDimensions(args)\n\n  let {\n    pluginName,\n    sourceMetadata,\n    generateImageSource,\n    layout,\n    fit,\n    options,\n    width,\n    height,\n    filename,\n    reporter = { warn },\n    backgroundColor,\n    placeholderURL,\n  } = args\n\n  if (!pluginName) {\n    reporter.warn(\n      `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n    )\n  }\n\n  if (typeof generateImageSource !== `function`) {\n    throw new Error(`generateImageSource must be a function`)\n  }\n\n  if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n    // No metadata means we let the CDN handle max size etc, aspect ratio etc\n    sourceMetadata = {\n      width,\n      height,\n      format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n    }\n  } else if (!sourceMetadata.format) {\n    sourceMetadata.format = formatFromFilename(filename)\n  }\n\n  const formats = new Set<ImageFormat>(args.formats)\n\n  if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n    formats.delete(`auto`)\n    formats.delete(``)\n    formats.add(sourceMetadata.format)\n  }\n\n  if (formats.has(`jpg`) && formats.has(`png`)) {\n    reporter.warn(\n      `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n    )\n    if (sourceMetadata.format === `jpg`) {\n      formats.delete(`png`)\n    } else {\n      formats.delete(`jpg`)\n    }\n  }\n\n  const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n  const result: IGatsbyImageData[\"images\"] = {\n    sources: [],\n  }\n\n  let sizes = args.sizes\n  if (!sizes) {\n    sizes = getSizes(imageSizes.presentationWidth, layout)\n  }\n\n  formats.forEach(format => {\n    const images = imageSizes.sizes\n      .map(size => {\n        const imageSrc = generateImageSource(\n          filename,\n          size,\n          Math.round(size / imageSizes.aspectRatio),\n          format,\n          fit,\n          options\n        )\n        if (\n          !imageSrc?.width ||\n          !imageSrc.height ||\n          !imageSrc.src ||\n          !imageSrc.format\n        ) {\n          reporter.warn(\n            `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n          )\n          return undefined\n        }\n        return imageSrc\n      })\n      .filter(Boolean)\n\n    if (format === `jpg` || format === `png` || format === `auto`) {\n      const unscaled =\n        images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n      if (unscaled) {\n        result.fallback = {\n          src: unscaled.src,\n          srcSet: getSrcSet(images),\n          sizes,\n        }\n      }\n    } else {\n      result.sources?.push({\n        srcSet: getSrcSet(images),\n        sizes,\n        type: `image/${format}`,\n      })\n    }\n  })\n\n  const imageProps: Partial<IGatsbyImageData> = {\n    images: result,\n    layout,\n    backgroundColor,\n  }\n\n  if (placeholderURL) {\n    imageProps.placeholder = { fallback: placeholderURL }\n  }\n\n  switch (layout) {\n    case `fixed`:\n      imageProps.width = imageSizes.presentationWidth\n      imageProps.height = imageSizes.presentationHeight\n      break\n\n    case `fullWidth`:\n      imageProps.width = 1\n      imageProps.height = 1 / imageSizes.aspectRatio\n      break\n\n    case `constrained`:\n      imageProps.width = args.width || imageSizes.presentationWidth || 1\n      imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n  }\n\n  return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array<number>): Array<number> =>\n  Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n  const {\n    width,\n    height,\n    filename,\n    layout = `constrained`,\n    sourceMetadata: imgDimensions,\n    reporter = { warn },\n    breakpoints = DEFAULT_BREAKPOINTS,\n  } = args\n\n  // check that all dimensions provided are positive\n  const userDimensions = { width, height }\n  const erroneousUserDimensions = Object.entries(userDimensions).filter(\n    ([_, size]) => typeof size === `number` && size < 1\n  )\n  if (erroneousUserDimensions.length) {\n    throw new Error(\n      `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n        .map(dim => dim.join(`: `))\n        .join(`, `)}`\n    )\n  }\n\n  if (layout === `fixed`) {\n    return fixedImageSizes(args)\n  } else if (layout === `constrained`) {\n    return responsiveImageSizes(args)\n  } else if (layout === `fullWidth`) {\n    return responsiveImageSizes({ breakpoints, ...args })\n  } else {\n    reporter.warn(\n      `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n    )\n    return {\n      sizes: [imgDimensions.width],\n      presentationWidth: imgDimensions.width,\n      presentationHeight: imgDimensions.height,\n      aspectRatio: imgDimensions.width / imgDimensions.height,\n      unscaledWidth: imgDimensions.width,\n    }\n  }\n}\nexport function fixedImageSizes({\n  filename,\n  sourceMetadata: imgDimensions,\n  width,\n  height,\n  fit = `cover`,\n  outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n  reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n  let aspectRatio = imgDimensions.width / imgDimensions.height\n  // Sort, dedupe and ensure there's a 1\n  const densities = dedupeAndSortDensities(outputPixelDensities)\n\n  // If both are provided then we need to check the fit\n  if (width && height) {\n    const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n      width,\n      height,\n      fit,\n    })\n    width = calculated.width\n    height = calculated.height\n    aspectRatio = calculated.aspectRatio\n  }\n\n  if (!width) {\n    if (!height) {\n      width = DEFAULT_FIXED_WIDTH\n    } else {\n      width = Math.round(height * aspectRatio)\n    }\n  } else if (!height) {\n    height = Math.round(width / aspectRatio)\n  }\n\n  const originalWidth = width // will use this for presentationWidth, don't want to lose it\n  const isTopSizeOverriden =\n    imgDimensions.width < width || imgDimensions.height < (height as number)\n\n  // If the image is smaller than requested, warn the user that it's being processed as such\n  // print out this message with the necessary information before we overwrite it for sizing\n  if (isTopSizeOverriden) {\n    const fixedDimension = imgDimensions.width < width ? `width` : `height`\n    reporter.warn(`\nThe requested ${fixedDimension} \"${\n      fixedDimension === `width` ? width : height\n    }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n      imgDimensions[fixedDimension]\n    }px. If possible, replace the current image with a larger one.`)\n\n    if (fixedDimension === `width`) {\n      width = imgDimensions.width\n      height = Math.round(width / aspectRatio)\n    } else {\n      height = imgDimensions.height\n      width = height * aspectRatio\n    }\n  }\n\n  const sizes = densities\n    .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n    .map(density => Math.round(density * (width as number)))\n    .filter(size => size <= imgDimensions.width)\n\n  return {\n    sizes,\n    aspectRatio,\n    presentationWidth: originalWidth,\n    presentationHeight: Math.round(originalWidth / aspectRatio),\n    unscaledWidth: width,\n  }\n}\n\nexport function responsiveImageSizes({\n  sourceMetadata: imgDimensions,\n  width,\n  height,\n  fit = `cover`,\n  outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n  breakpoints,\n  layout,\n}: IImageSizeArgs): IImageSizes {\n  let sizes\n  let aspectRatio = imgDimensions.width / imgDimensions.height\n  // Sort, dedupe and ensure there's a 1\n  const densities = dedupeAndSortDensities(outputPixelDensities)\n\n  // If both are provided then we need to check the fit\n  if (width && height) {\n    const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n      width,\n      height,\n      fit,\n    })\n    width = calculated.width\n    height = calculated.height\n    aspectRatio = calculated.aspectRatio\n  }\n\n  // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n  width = width && Math.min(width, imgDimensions.width)\n  height = height && Math.min(height, imgDimensions.height)\n\n  // Case 2: neither width or height were passed in, use default size\n  if (!width && !height) {\n    width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n    height = width / aspectRatio\n  }\n\n  // if it still hasn't been found, calculate width from the derived height.\n  // TS isn't smart enough to realise the type for height has been narrowed here\n  if (!width) {\n    width = (height as number) * aspectRatio\n  }\n\n  const originalWidth = width\n  const isTopSizeOverriden =\n    imgDimensions.width < width || imgDimensions.height < (height as number)\n  if (isTopSizeOverriden) {\n    width = imgDimensions.width\n    height = imgDimensions.height\n  }\n\n  width = Math.round(width)\n\n  if (breakpoints?.length > 0) {\n    sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n    // If a larger breakpoint has been filtered-out, add the actual image width instead\n    if (\n      sizes.length < breakpoints.length &&\n      !sizes.includes(imgDimensions.width)\n    ) {\n      sizes.push(imgDimensions.width)\n    }\n  } else {\n    sizes = densities.map(density => Math.round(density * (width as number)))\n    sizes = sizes.filter(size => size <= imgDimensions.width)\n  }\n\n  // ensure that the size passed in is included in the final output\n  if (layout === `constrained` && !sizes.includes(width)) {\n    sizes.push(width)\n  }\n  sizes = sizes.sort(sortNumeric)\n  return {\n    sizes,\n    aspectRatio,\n    presentationWidth: originalWidth,\n    presentationHeight: Math.round(originalWidth / aspectRatio),\n    unscaledWidth: width,\n  }\n}\n\nexport function getDimensionsAndAspectRatio(\n  dimensions,\n  options\n): { width: number; height: number; aspectRatio: number } {\n  // Calculate the eventual width/height of the image.\n  const imageAspectRatio = dimensions.width / dimensions.height\n\n  let width = options.width\n  let height = options.height\n\n  switch (options.fit) {\n    case `fill`: {\n      width = options.width ? options.width : dimensions.width\n      height = options.height ? options.height : dimensions.height\n      break\n    }\n    case `inside`: {\n      const widthOption = options.width\n        ? options.width\n        : Number.MAX_SAFE_INTEGER\n      const heightOption = options.height\n        ? options.height\n        : Number.MAX_SAFE_INTEGER\n\n      width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n      height = Math.min(\n        heightOption,\n        Math.round(widthOption / imageAspectRatio)\n      )\n      break\n    }\n    case `outside`: {\n      const widthOption = options.width ? options.width : 0\n      const heightOption = options.height ? options.height : 0\n\n      width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n      height = Math.max(\n        heightOption,\n        Math.round(widthOption / imageAspectRatio)\n      )\n      break\n    }\n\n    default: {\n      if (options.width && !options.height) {\n        width = options.width\n        height = Math.round(options.width / imageAspectRatio)\n      }\n\n      if (options.height && !options.width) {\n        width = Math.round(options.height * imageAspectRatio)\n        height = options.height\n      }\n    }\n  }\n\n  return {\n    width,\n    height,\n    aspectRatio: width / height,\n  }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n  IGatsbyImageHelperArgs,\n  Layout,\n  IImage,\n  ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n  typeof HTMLImageElement !== `undefined` &&\n  `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n  return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent<T = never> = T & {\n  gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent<T = never> = T & {\n  gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial<Node> & {\n  childImageSharp?: IGatsbyImageDataParent<Partial<Node>>\n}\n\nconst isGatsbyImageData = (\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n  // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n  Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = <T>(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  node: IGatsbyImageDataParent<T> | any\n): node is IGatsbyImageDataParent<T> => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = <T>(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  node: IGatsbyImageParent<T> | any\n): node is IGatsbyImageParent<T> => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n  | FileNode\n  | IGatsbyImageDataParent\n  | IGatsbyImageParent\n  | IGatsbyImageData\n\nexport const getImage = (\n  node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n  // This checks both for gatsbyImageData and gatsbyImage\n  if (isGatsbyImageData(node)) {\n    return node\n  }\n  // gatsbyImageData GraphQL field\n  if (isGatsbyImageDataParent(node)) {\n    return node.gatsbyImageData\n  }\n  // gatsbyImage GraphQL field for Gatsby's Image CDN service\n  if (isGatsbyImageParent(node)) {\n    return node.gatsbyImage\n  }\n  return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n  getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n  getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n  width: number,\n  height: number,\n  layout: Layout\n): Pick<HTMLAttributes<HTMLElement>, \"className\" | \"style\"> & {\n  \"data-gatsby-image-wrapper\": string\n} {\n  const wrapperStyle: CSSProperties = {}\n\n  let className = `gatsby-image-wrapper`\n\n  // If the plugin isn't installed we need to apply the styles inline\n  if (!gatsbyImageIsInstalled()) {\n    wrapperStyle.position = `relative`\n    wrapperStyle.overflow = `hidden`\n  }\n\n  if (layout === `fixed`) {\n    wrapperStyle.width = width\n    wrapperStyle.height = height\n  } else if (layout === `constrained`) {\n    if (!gatsbyImageIsInstalled()) {\n      wrapperStyle.display = `inline-block`\n      wrapperStyle.verticalAlign = `top`\n    }\n    className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n  }\n\n  return {\n    className,\n    \"data-gatsby-image-wrapper\": ``,\n    style: wrapperStyle,\n  }\n}\n\nexport interface IUrlBuilderArgs<OptionsType> {\n  width: number\n  height: number\n  baseUrl: string\n  format: ImageFormat\n  options: OptionsType\n}\nexport interface IGetImageDataArgs<OptionsType = Record<string, unknown>> {\n  baseUrl: string\n  /**\n   * For constrained and fixed images, the size of the image element\n   */\n  width?: number\n  height?: number\n  /**\n   * If available, pass the source image width and height\n   */\n  sourceWidth?: number\n  sourceHeight?: number\n  /**\n   * If only one dimension is passed, then this will be used to calculate the other.\n   */\n  aspectRatio?: number\n  layout?: Layout\n  /**\n   * Returns a URL based on the passed arguments. Should be a pure function\n   */\n  urlBuilder: (args: IUrlBuilderArgs<OptionsType>) => string\n\n  /**\n   * Should be a data URI\n   */\n  placeholderURL?: string\n  backgroundColor?: string\n  /**\n   * Used in error messages etc\n   */\n  pluginName?: string\n\n  /**\n   * If you do not support auto-format, pass an array of image types here\n   */\n  formats?: Array<ImageFormat>\n\n  breakpoints?: Array<number>\n\n  /**\n   * Passed to the urlBuilder function\n   */\n  options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData<OptionsType>({\n  baseUrl,\n  urlBuilder,\n  sourceWidth,\n  sourceHeight,\n  pluginName = `getImageData`,\n  formats = [`auto`],\n  breakpoints,\n  options,\n  ...props\n}: IGetImageDataArgs<OptionsType>): IGatsbyImageData {\n  if (\n    !breakpoints?.length &&\n    (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n  ) {\n    breakpoints = EVERY_BREAKPOINT\n  }\n  const generateImageSource = (\n    baseUrl: string,\n    width: number,\n    height?: number,\n    format?: ImageFormat\n  ): IImage => {\n    return {\n      width,\n      height,\n      format,\n      src: urlBuilder({ baseUrl, width, height, options, format }),\n    }\n  }\n\n  const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n    width: sourceWidth,\n    height: sourceHeight,\n    format: `auto`,\n  }\n\n  const args: IGatsbyImageHelperArgs = {\n    ...props,\n    pluginName,\n    generateImageSource,\n    filename: baseUrl,\n    formats,\n    breakpoints,\n    sourceMetadata,\n  }\n  return generateImageData(args)\n}\n\nexport function getMainProps(\n  isLoading: boolean,\n  isLoaded: boolean,\n  images: IGatsbyImageData[\"images\"],\n  loading?: \"eager\" | \"lazy\",\n  style: CSSProperties = {}\n): Partial<MainImageProps> {\n  // fallback when it's not configured in gatsby-config.\n  if (!gatsbyImageIsInstalled()) {\n    style = {\n      height: `100%`,\n      left: 0,\n      position: `absolute`,\n      top: 0,\n      transform: `translateZ(0)`,\n      transition: `opacity 250ms linear`,\n      width: `100%`,\n      willChange: `opacity`,\n      ...style,\n    }\n  }\n\n  const result = {\n    ...images,\n    loading,\n    shouldLoad: isLoading,\n    \"data-main-image\": ``,\n    style: {\n      ...style,\n      opacity: isLoaded ? 1 : 0,\n    },\n  }\n\n  return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes<HTMLImageElement> &\n  Pick<PlaceholderProps, \"sources\" | \"fallback\"> & {\n    \"data-placeholder-image\"?: string\n  }\n\nexport function getPlaceholderProps(\n  placeholder: PlaceholderImageAttrs | undefined,\n  isLoaded: boolean,\n  layout: Layout,\n  width?: number,\n  height?: number,\n  backgroundColor?: string,\n  objectFit?: CSSProperties[\"objectFit\"],\n  objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n  const wrapperStyle: CSSProperties = {}\n\n  if (backgroundColor) {\n    wrapperStyle.backgroundColor = backgroundColor\n\n    if (layout === `fixed`) {\n      wrapperStyle.width = width\n      wrapperStyle.height = height\n      wrapperStyle.backgroundColor = backgroundColor\n      wrapperStyle.position = `relative`\n    } else if (layout === `constrained`) {\n      wrapperStyle.position = `absolute`\n      wrapperStyle.top = 0\n      wrapperStyle.left = 0\n      wrapperStyle.bottom = 0\n      wrapperStyle.right = 0\n    } else if (layout === `fullWidth`) {\n      wrapperStyle.position = `absolute`\n      wrapperStyle.top = 0\n      wrapperStyle.left = 0\n      wrapperStyle.bottom = 0\n      wrapperStyle.right = 0\n    }\n  }\n\n  if (objectFit) {\n    wrapperStyle.objectFit = objectFit\n  }\n\n  if (objectPosition) {\n    wrapperStyle.objectPosition = objectPosition\n  }\n  const result: PlaceholderImageAttrs = {\n    ...placeholder,\n    \"aria-hidden\": true,\n    \"data-placeholder-image\": ``,\n    style: {\n      opacity: isLoaded ? 0 : 1,\n      transition: `opacity 500ms linear`,\n      ...wrapperStyle,\n    },\n  }\n\n  // fallback when it's not configured in gatsby-config.\n  if (!gatsbyImageIsInstalled()) {\n    result.style = {\n      height: `100%`,\n      left: 0,\n      position: `absolute`,\n      top: 0,\n      width: `100%`,\n    }\n  }\n\n  return result\n}\n\nexport interface IArtDirectedImage {\n  media: string\n  image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n  defaultImage: IGatsbyImageData,\n  artDirected: Array<IArtDirectedImage>\n): IGatsbyImageData {\n  const { images, placeholder, ...props } = defaultImage\n  const output: IGatsbyImageData = {\n    ...props,\n    images: {\n      ...images,\n      sources: [],\n    },\n    placeholder: placeholder && {\n      ...placeholder,\n      sources: [],\n    },\n  }\n\n  artDirected.forEach(({ media, image }) => {\n    if (!media) {\n      if (process.env.NODE_ENV === `development`) {\n        console.warn(\n          \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n        )\n      }\n      return\n    }\n\n    if (\n      image.layout !== defaultImage.layout &&\n      process.env.NODE_ENV === `development`\n    ) {\n      console.warn(\n        `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n      )\n    }\n\n    output.images.sources.push(\n      ...image.images.sources.map(source => {\n        return { ...source, media }\n      }),\n      {\n        media,\n        srcSet: image.images.fallback.srcSet,\n      }\n    )\n\n    if (!output.placeholder) {\n      return\n    }\n\n    output.placeholder.sources.push({\n      media,\n      srcSet: image.placeholder.fallback,\n    })\n  })\n  output.images.sources.push(...images.sources)\n  if (placeholder?.sources) {\n    output.placeholder?.sources.push(...placeholder.sources)\n  }\n  return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n  layout: Layout\n  width: number\n  height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n  <script\n    type=\"module\"\n    dangerouslySetInnerHTML={{\n      __html: terserMacro`\nconst hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nif (hasNativeLazyLoadSupport) {\n  const gatsbyImages = document.querySelectorAll('img[data-main-image]');\n  for (let mainImage of gatsbyImages) {\n    if (mainImage.dataset.src) {\n      mainImage.setAttribute('src', mainImage.dataset.src)\n      mainImage.removeAttribute('data-src')\n    }\n    if (mainImage.dataset.srcset) {\n      mainImage.setAttribute('srcset', mainImage.dataset.srcset)\n      mainImage.removeAttribute('data-srcset')\n    }\n\n    const sources = mainImage.parentNode.querySelectorAll('source[data-srcset]');\n    for (let source of sources) {\n      source.setAttribute('srcset', source.dataset.srcset)\n      source.removeAttribute('data-srcset')\n    }\n\n    if (mainImage.complete) {\n      mainImage.style.opacity = 1;\n\n      // also hide the placeholder\n      mainImage.parentNode.parentNode.querySelector('[data-placeholder-image]').style.opacity = 0;\n    }\n  }\n}\n`,\n    }}\n  />\n)\n\nexport function getSizer(\n  layout: Layout,\n  width: number,\n  height: number\n): string {\n  let sizer = ``\n  if (layout === `fullWidth`) {\n    sizer = `<div aria-hidden=\"true\" style=\"padding-top: ${\n      (height / width) * 100\n    }%;\"></div>`\n  }\n\n  if (layout === `constrained`) {\n    sizer = `<div style=\"max-width: ${width}px; display: block;\"><img alt=\"\" role=\"presentation\" aria-hidden=\"true\" src=\"data:image/svg+xml;charset=utf-8,%3Csvg%20height='${height}'%20width='${width}'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E\" style=\"max-width: 100%; display: block; position: static;\"></div>`\n  }\n\n  return sizer\n}\n\nconst Sizer: FunctionComponent<ILayoutWrapperProps> = function Sizer({\n  layout,\n  width,\n  height,\n}) {\n  if (layout === `fullWidth`) {\n    return (\n      <div aria-hidden style={{ paddingTop: `${(height / width) * 100}%` }} />\n    )\n  }\n\n  if (layout === `constrained`) {\n    return (\n      <div style={{ maxWidth: width, display: `block` }}>\n        <img\n          alt=\"\"\n          role=\"presentation\"\n          aria-hidden=\"true\"\n          src={`data:image/svg+xml;charset=utf-8,%3Csvg%20height='${height}'%20width='${width}'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E`}\n          style={{\n            maxWidth: `100%`,\n            display: `block`,\n            position: `static`,\n          }}\n        />\n      </div>\n    )\n  }\n\n  return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n  PropsWithChildren<ILayoutWrapperProps>\n> = function LayoutWrapper({ children, ...props }) {\n  return (\n    <Fragment>\n      <Sizer {...props} />\n      {children}\n\n      {SERVER ? <NativeScriptLoading /> : null}\n    </Fragment>\n  )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n  sizes?: string\n  srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n  (\n    | {\n        media: string\n        type?: string\n      }\n    | {\n        media?: string\n        type: string\n      }\n  )\n\ntype FallbackProps = { src: string } & Partial<IResponsiveImageProps>\n\ntype ImageProps = ImgHTMLAttributes<HTMLImageElement> & {\n  src: string\n  alt: string\n  shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes<HTMLImageElement> & {\n  fallback?: FallbackProps\n  sources?: Array<SourceProps>\n  alt: string\n  shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent<ImageProps> = function Image({\n  src,\n  srcSet,\n  loading,\n  alt = ``,\n  shouldLoad,\n  ...props\n}) {\n  return (\n    <img\n      {...props}\n      decoding=\"async\"\n      loading={loading}\n      src={shouldLoad ? src : undefined}\n      data-src={!shouldLoad ? src : undefined}\n      srcSet={shouldLoad ? srcSet : undefined}\n      data-srcset={!shouldLoad ? srcSet : undefined}\n      alt={alt}\n    />\n  )\n}\n\nexport const Picture: React.FC<PictureProps> = function Picture({\n  fallback,\n  sources = [],\n  shouldLoad = true,\n  ...props\n}) {\n  const sizes = props.sizes || fallback?.sizes\n  const fallbackImage = (\n    <Image {...props} {...fallback} sizes={sizes} shouldLoad={shouldLoad} />\n  )\n\n  if (!sources.length) {\n    return fallbackImage\n  }\n\n  return (\n    <picture>\n      {sources.map(({ media, srcSet, type }) => (\n        <source\n          key={`${media}-${type}-${srcSet}`}\n          type={type}\n          media={media}\n          srcSet={shouldLoad ? srcSet : undefined}\n          data-srcset={!shouldLoad ? srcSet : undefined}\n          sizes={sizes}\n        />\n      ))}\n      {fallbackImage}\n    </picture>\n  )\n}\n\nImage.propTypes = {\n  src: PropTypes.string.isRequired,\n  alt: PropTypes.string.isRequired,\n  sizes: PropTypes.string,\n  srcSet: PropTypes.string,\n  shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n  alt: PropTypes.string.isRequired,\n  shouldLoad: PropTypes.bool,\n  fallback: PropTypes.exact({\n    src: PropTypes.string.isRequired,\n    srcSet: PropTypes.string,\n    sizes: PropTypes.string,\n  }),\n  sources: PropTypes.arrayOf(\n    PropTypes.oneOfType([\n      PropTypes.exact({\n        media: PropTypes.string.isRequired,\n        type: PropTypes.string,\n        sizes: PropTypes.string,\n        srcSet: PropTypes.string.isRequired,\n      }),\n      PropTypes.exact({\n        media: PropTypes.string,\n        type: PropTypes.string.isRequired,\n        sizes: PropTypes.string,\n        srcSet: PropTypes.string.isRequired,\n      }),\n    ])\n  ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes<HTMLImageElement> & {\n  fallback?: string\n  sources?: Array<SourceProps>\n}\n\nexport const Placeholder: FunctionComponent<PlaceholderProps> =\n  function Placeholder({ fallback, ...props }) {\n    if (fallback) {\n      return (\n        <Picture\n          {...props}\n          fallback={{\n            src: fallback,\n          }}\n          aria-hidden\n          alt=\"\"\n        />\n      )\n    } else {\n      return <div {...props}></div>\n    }\n  }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n  fallback: PropTypes.string,\n  sources: Picture.propTypes?.sources,\n  alt: function (props, propName, componentName): Error | null {\n    if (!props[propName]) {\n      return null\n    }\n\n    return new Error(\n      `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n    )\n  },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC<PictureProps> = function MainImage(props) {\n  return (\n    <>\n      <Picture {...props} />\n      <noscript>\n        <Picture {...props} shouldLoad={true} />\n      </noscript>\n    </>\n  )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent<GatsbyImageProps> =\n  function GatsbyImage({\n    as = `div`,\n    className,\n    class: preactClass,\n    style,\n    image,\n    loading = `lazy`,\n    imgClassName,\n    imgStyle,\n    backgroundColor,\n    objectFit,\n    objectPosition,\n    ...props\n  }) {\n    if (!image) {\n      console.warn(`[gatsby-plugin-image] Missing image prop`)\n      return null\n    }\n\n    if (preactClass) {\n      className = preactClass\n    }\n\n    imgStyle = {\n      objectFit,\n      objectPosition,\n      backgroundColor,\n      ...imgStyle,\n    }\n\n    const {\n      width,\n      height,\n      layout,\n      images,\n      placeholder,\n      backgroundColor: placeholderBackgroundColor,\n    } = image\n\n    const {\n      style: wStyle,\n      className: wClass,\n      ...wrapperProps\n    } = getWrapperProps(width, height, layout)\n\n    const cleanedImages: IGatsbyImageData[\"images\"] = {\n      fallback: undefined,\n      sources: [],\n    }\n    if (images.fallback) {\n      cleanedImages.fallback = {\n        ...images.fallback,\n        srcSet: images.fallback.srcSet\n          ? removeNewLines(images.fallback.srcSet)\n          : undefined,\n      }\n    }\n\n    if (images.sources) {\n      cleanedImages.sources = images.sources.map(source => {\n        return {\n          ...source,\n          srcSet: removeNewLines(source.srcSet),\n        }\n      })\n    }\n\n    return React.createElement(\n      as,\n      {\n        ...wrapperProps,\n        style: {\n          ...wStyle,\n          ...style,\n          backgroundColor,\n        },\n        className: `${wClass}${className ? ` ${className}` : ``}`,\n      },\n      <LayoutWrapper layout={layout} width={width} height={height}>\n        <Placeholder\n          {...getPlaceholderProps(\n            placeholder,\n            false,\n            layout,\n            width,\n            height,\n            placeholderBackgroundColor,\n            objectFit,\n            objectPosition\n          )}\n        />\n\n        <MainImage\n          data-gatsby-image-ssr=\"\"\n          className={imgClassName}\n          {...(props as Omit<\n            MainImageProps,\n            \"images\" | \"fallback\" | \"onError\" | \"onLoad\"\n          >)}\n          // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n          {...getMainProps(\n            loading === `eager`,\n            false,\n            cleanedImages,\n            loading,\n            imgStyle\n          )}\n        />\n      </LayoutWrapper>\n    )\n  }\n\nexport const altValidator: PropTypes.Validator<string> = (\n  props: GatsbyImageProps,\n  propName,\n  componentName,\n  ...rest\n): Error | undefined => {\n  if (!props.alt && props.alt !== ``) {\n    return new Error(\n      `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n    )\n  }\n\n  return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n  image: PropTypes.object.isRequired,\n  alt: altValidator,\n} as WeakValidationMap<GatsbyImageProps>\n","import {\n  createElement,\n  memo,\n  useMemo,\n  useEffect,\n  useLayoutEffect,\n  useRef,\n} from \"react\"\nimport {\n  getWrapperProps,\n  gatsbyImageIsInstalled,\n  hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n  FC,\n  ElementType,\n  FunctionComponent,\n  ImgHTMLAttributes,\n  CSSProperties,\n  ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set<string>()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n  extends Omit<\n    ImgHTMLAttributes<HTMLImageElement>,\n    \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n  > {\n  alt: string\n  as?: ElementType\n  className?: string\n  class?: string\n  imgClassName?: string\n  image: IGatsbyImageData\n  imgStyle?: CSSProperties\n  backgroundColor?: string\n  objectFit?: CSSProperties[\"objectFit\"]\n  objectPosition?: CSSProperties[\"objectPosition\"]\n  onLoad?: (props: { wasCached: boolean }) => void\n  onError?: ReactEventHandler<HTMLImageElement>\n  onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n  layout: Layout\n  width: number\n  height: number\n  backgroundColor?: string\n  images: Pick<MainImageProps, \"sources\" | \"fallback\">\n  placeholder?: Pick<PlaceholderProps, \"sources\" | \"fallback\">\n}\n\nconst GatsbyImageHydrator: FC<GatsbyImageProps> = function GatsbyImageHydrator({\n  as = `div`,\n  image,\n  style,\n  backgroundColor,\n  className,\n  class: preactClass,\n  onStartLoad,\n  onLoad,\n  onError,\n  ...props\n}) {\n  const { width, height, layout } = image\n  const {\n    style: wStyle,\n    className: wClass,\n    ...wrapperProps\n  } = getWrapperProps(width, height, layout)\n  const root = useRef<HTMLElement>()\n  const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n  // Preact uses class instead of className so we need to check for both\n  if (preactClass) {\n    className = preactClass\n  }\n\n  const sizer = getSizer(layout, width, height)\n\n  useEffect(() => {\n    if (!renderImageToStringPromise) {\n      renderImageToStringPromise = import(`./lazy-hydrate`).then(\n        ({ renderImageToString, swapPlaceholderImage }) => {\n          renderImage = renderImageToString\n\n          return {\n            renderImageToString,\n            swapPlaceholderImage,\n          }\n        }\n      )\n    }\n\n    // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n    // In this case we stop hydration but fire the correct events.\n    const ssrImage = root.current.querySelector(\n      `[data-gatsby-image-ssr]`\n    ) as HTMLImageElement\n    if (ssrImage && hasNativeLazyLoadSupport()) {\n      if (ssrImage.complete) {\n        // Trigger onStartload and onLoad events\n        onStartLoad?.({\n          wasCached: true,\n        })\n        onLoad?.({\n          wasCached: true,\n        })\n\n        // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n        setTimeout(() => {\n          ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n        }, 0)\n      } else {\n        onStartLoad?.({\n          wasCached: true,\n        })\n\n        ssrImage.addEventListener(`load`, function onLoadListener() {\n          ssrImage.removeEventListener(`load`, onLoadListener)\n\n          onLoad?.({\n            wasCached: true,\n          })\n          // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n          setTimeout(() => {\n            ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n          }, 0)\n        })\n      }\n\n      imageCache.add(cacheKey)\n\n      return\n    }\n\n    if (renderImage && imageCache.has(cacheKey)) {\n      return\n    }\n\n    let animationFrame\n    let cleanupCallback\n    renderImageToStringPromise.then(\n      ({ renderImageToString, swapPlaceholderImage }) => {\n        if (!root.current) {\n          return\n        }\n\n        root.current.innerHTML = renderImageToString({\n          isLoading: true,\n          isLoaded: imageCache.has(cacheKey),\n          image,\n          ...props,\n        })\n\n        if (!imageCache.has(cacheKey)) {\n          animationFrame = requestAnimationFrame(() => {\n            if (root.current) {\n              cleanupCallback = swapPlaceholderImage(\n                root.current,\n                cacheKey,\n                imageCache,\n                style,\n                onStartLoad,\n                onLoad,\n                onError\n              )\n            }\n          })\n        }\n      }\n    )\n\n    // eslint-disable-next-line consistent-return\n    return (): void => {\n      if (animationFrame) {\n        cancelAnimationFrame(animationFrame)\n      }\n      if (cleanupCallback) {\n        cleanupCallback()\n      }\n    }\n  }, [image])\n\n  // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n  useLayoutEffect(() => {\n    if (imageCache.has(cacheKey) && renderImage) {\n      root.current.innerHTML = renderImage({\n        isLoading: imageCache.has(cacheKey),\n        isLoaded: imageCache.has(cacheKey),\n        image,\n        ...props,\n      })\n\n      // Trigger onStartload and onLoad events\n      onStartLoad?.({\n        wasCached: true,\n      })\n      onLoad?.({\n        wasCached: true,\n      })\n    }\n  }, [image])\n\n  // By keeping all props equal React will keep the component in the DOM\n  return createElement(as, {\n    ...wrapperProps,\n    style: {\n      ...wStyle,\n      ...style,\n      backgroundColor,\n    },\n    className: `${wClass}${className ? ` ${className}` : ``}`,\n    ref: root,\n    dangerouslySetInnerHTML: {\n      __html: sizer,\n    },\n    suppressHydrationWarning: true,\n  })\n}\n\nexport const GatsbyImage: FunctionComponent<GatsbyImageProps> = memo(\n  function GatsbyImage(props) {\n    if (!props.image) {\n      if (process.env.NODE_ENV === `development`) {\n        console.warn(`[gatsby-plugin-image] Missing image prop`)\n      }\n\n      return null\n    }\n\n    if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n      console.warn(\n        `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n      )\n    }\n\n    return createElement(GatsbyImageHydrator, props)\n  }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n  altValidator,\n  GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n  extends Omit<GatsbyImageProps, \"image\">,\n    Omit<ISharpGatsbyImageArgs, \"backgroundColor\"> {\n  src: string\n  filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n  __imageData?: IGatsbyImageData\n  __error?: string\n}\n\nexport function _getStaticImage(\n  GatsbyImage: FunctionComponent<GatsbyImageProps>\n): React.FC<IStaticImageProps & IPrivateProps> {\n  return function StaticImage({\n    src,\n    __imageData: imageData,\n    __error,\n    // We extract these because they're not meant to be passed-down to GatsbyImage\n    /* eslint-disable @typescript-eslint/no-unused-vars */\n    width,\n    height,\n    aspectRatio,\n    tracedSVGOptions,\n    placeholder,\n    formats,\n    quality,\n    transformOptions,\n    jpgOptions,\n    pngOptions,\n    webpOptions,\n    avifOptions,\n    blurredOptions,\n    breakpoints,\n    outputPixelDensities,\n    /* eslint-enable @typescript-eslint/no-unused-vars */\n    ...props\n  }): ReactElement {\n    if (__error) {\n      console.warn(__error)\n    }\n\n    if (imageData) {\n      return <GatsbyImage image={imageData} {...props} />\n    }\n    console.warn(`Image not loaded`, src)\n    if (!__error && process.env.NODE_ENV === `development`) {\n      console.warn(\n        `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n      )\n    }\n    return null\n  }\n}\n\nconst StaticImage: React.FC<IStaticImageProps & IPrivateProps> =\n  _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator<number> = (\n  props: IStaticImageProps & IPrivateProps,\n  propName: keyof IStaticImageProps & IPrivateProps,\n  ...rest\n) => {\n  if (\n    props.layout === `fullWidth` &&\n    (propName === `width` || propName === `height`) &&\n    props[propName]\n  ) {\n    return new Error(\n      `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n    )\n  }\n  return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n  src: PropTypes.string.isRequired,\n  alt: altValidator,\n  width: checkDimensionProps,\n  height: checkDimensionProps,\n  sizes: PropTypes.string,\n  layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n    if (props.layout === undefined) {\n      return undefined\n    }\n    if (validLayouts.has(props.layout)) {\n      return undefined\n    }\n\n    return new Error(\n      `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n    )\n  },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n  GatsbyImage as GatsbyImageBrowser,\n  IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n  _getStaticImage,\n  propTypes,\n  IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n  __imageData?: IGatsbyImageData\n  __error?: string\n}\n\nconst StaticImage: React.FC<IStaticImageProps & IPrivateProps> =\n  _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","// PayPalPopup.js\nimport React, { useEffect, useRef } from 'react';\nimport ReactDOM from 'react-dom';\n\nconst PayPalPopup = ({ isVisible, onClose }) => {\n  const paypalContainerRef = useRef(null);\n\n  useEffect(() => {\n    function renderPayPalButton() {\n      if (isVisible && paypalContainerRef.current && window.paypal) {\n        window.paypal\n          .HostedButtons({\n            hostedButtonId: 'SF3GYL53UFZAG',\n          })\n          .render(paypalContainerRef.current);\n      }\n    }\n\n    if (isVisible) {\n      if (\n        !document.querySelector(\n          'script[src=\"https://www.paypal.com/sdk/js?client-id=BAAry83o01xuONCGRIVOQFNsppiev5kv0bMTzt3OB0vtf4Q8owZvSuMvjr7YXAhoyBm4WSOMSY2y2n4HN4&components=hosted-buttons&enable-funding=venmo&currency=USD\"]'\n        )\n      ) {\n        const script = document.createElement('script');\n        script.src =\n          'https://www.paypal.com/sdk/js?client-id=BAAry83o01xuONCGRIVOQFNsppiev5kv0bMTzt3OB0vtf4Q8owZvSuMvjr7YXAhoyBm4WSOMSY2y2n4HN4&components=hosted-buttons&enable-funding=venmo&currency=USD';\n        script.async = true;\n        script.crossOrigin = 'anonymous';\n        script.onload = renderPayPalButton;\n        document.body.appendChild(script);\n      } else {\n        renderPayPalButton();\n      }\n    }\n  }, [isVisible]);\n\n  if (!isVisible) {\n    return null;\n  }\n\n  return ReactDOM.createPortal(\n    <div\n      className=\"fixed inset-0 flex items-center justify-center bg-orange bg-opacity-50 z-50 overflow-y-auto\"\n      onClick={onClose}\n    >\n      <div\n        className=\"bg-white p-6 sm:p-10 md:p-12 lg:p-16 rounded-lg shadow-lg text-center relative max-h-[90vh] w-full max-w-lg mx-auto overflow-y-auto\"\n        style={{ maxHeight: '90vh', overflowY: 'auto' }}\n        onClick={(e) => e.stopPropagation()}\n      >\n        <button\n          className=\"absolute top-2 right-2 text-2xl font-bold text-black\"\n          onClick={onClose}\n        >\n          &times;\n        </button>\n        <h2 className=\"text-2xl font-bold mb-4\">Join The Pack!</h2>\n        <p>\n          Annual memberships are{' '}\n          <a\n            href=\"https://www.paypal.com/ncp/payment/SF3GYL53UFZAG\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            className=\"text-orange underline\"\n          >\n            now available for purchase!\n          </a>\n          <br />\n          Memberships will \"start\" upon our grand opening in October 2025 while\n          securing your invitation to exclusive preview events in the meantime.\n        </p>\n        <div\n          ref={paypalContainerRef}\n          id=\"paypal-container-HE3YGEB4JPKJY\"\n          className=\"object-center mt-8\"\n        ></div>\n      </div>\n    </div>,\n    document.body // Renders the popup outside the root DOM node\n  );\n};\n\nexport default PayPalPopup;\n","// Navbar.js\nimport React, { useState } from 'react';\nimport { Link } from 'gatsby';\nimport { StaticImage } from 'gatsby-plugin-image';\n\nconst Navbar = ({ onPawClick }) => {\n  const [isOpen, setIsOpen] = useState(false);\n\n  const toggleMenu = () => setIsOpen(!isOpen);\n  const closeMenu = () => setIsOpen(false);\n\n  const handlePawClick = () => {\n    if (onPawClick) {\n      onPawClick();\n    }\n  };\n\n  return (\n    <>\n      <nav className=\"bg-orange relative z-20\">\n        <div className=\"max-w-7xl mx-auto px-8 py-2\">\n          <div className=\"flex items-center justify-between h-16\">\n            {/* Logo */}\n            <Link to=\"/\">\n              <StaticImage\n                loading=\"eager\"\n                placeholder=\"blurred\"\n                className=\"w-36 transform transition-transform duration-200 ease-in-out hover:scale-105\"\n                src=\"../images/zoomies-dog-park-white.png\"\n                alt=\"White Zoomies Dog Park logo\"\n              />\n            </Link>\n\n            {/* Desktop Menu */}\n            <div className=\"hidden lg:flex space-x-8 pr-6 items-center\">\n              {/* Menu Items */}\n              {['Park', 'Membership', 'Events', 'FAQ', 'About', 'Blog'].map((item) => (\n                <Link\n                  key={item}\n                  to={`/${item.toLowerCase()}`}\n                  className=\"text-white font-gabarito text-xl transform transition-transform duration-200 ease-in-out hover:scale-105\"\n                >\n                  {item}\n                </Link>\n              ))}\n              {/* Paw Button Removed */}\n            </div>\n\n            {/* Mobile Menu Button */}\n            <div className=\"lg:hidden\">\n              <button\n                onClick={toggleMenu}\n                className=\"text-white focus:outline-none\"\n                aria-label={isOpen ? 'Close menu' : 'Open menu'}\n              >\n                <svg\n                  className=\"h-8 w-8 transform transition-transform duration-200 ease-in-out hover:scale-105\"\n                  fill=\"none\"\n                  stroke=\"currentColor\"\n                  viewBox=\"0 0 24 24\"\n                >\n                  {isOpen ? (\n                    <path\n                      strokeLinecap=\"round\"\n                      strokeLinejoin=\"round\"\n                      strokeWidth=\"2\"\n                      d=\"M6 18L18 6M6 6l12 12\"\n                    />\n                  ) : (\n                    <path\n                      strokeLinecap=\"round\"\n                      strokeLinejoin=\"round\"\n                      strokeWidth=\"2\"\n                      d=\"M4 6h16M4 12h16M4 18h16\"\n                    />\n                  )}\n                </svg>\n              </button>\n            </div>\n          </div>\n        </div>\n\n        {/* Mobile Menu */}\n        <div\n          className={`lg:hidden fixed inset-0 z-30 transform ${\n            isOpen ? 'translate-x-0' : '-translate-x-full'\n          } transition-transform duration-300 ease-in-out`}\n          style={{ backgroundColor: '#fa6427' }}\n        >\n          <div className=\"flex flex-col justify-start h-full p-8 space-y-6\">\n            <div className=\"flex justify-end\">\n              <button\n                onClick={toggleMenu}\n                className=\"text-white focus:outline-none\"\n                aria-label=\"Close menu\"\n              >\n                <svg\n                  className=\"h-8 w-8 transform transition-transform duration-200 ease-in-out hover:scale-105\"\n                  fill=\"none\"\n                  stroke=\"currentColor\"\n                  viewBox=\"0 0 24 24\"\n                >\n                  <path\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2\"\n                    d=\"M6 18L18 6M6 6l12 12\"\n                  />\n                </svg>\n              </button>\n            </div>\n\n            <Link to=\"/\" onClick={closeMenu}>\n              <StaticImage\n                loading=\"eager\"\n                placeholder=\"blurred\"\n                className=\"w-36 transform transition-transform duration-200 ease-in-out hover:scale-105\"\n                src=\"../images/zoomies-logo-white.png\"\n                alt=\"White Zoomies logo\"\n              />\n            </Link>\n\n            {['Park', 'Membership', 'Events', 'FAQ', 'About', 'Blog'].map((item) => (\n              <Link\n                key={item}\n                to={`/${item.toLowerCase()}`}\n                className=\"text-white text-2xl font-gabarito transform transition-transform duration-200 ease-in-out hover:scale-105\"\n                onClick={closeMenu}\n              >\n                {item}\n              </Link>\n            ))}\n\n            {/* Join The Pack Button */}\n            <button\n              className=\"text-orange w-3/5 sm:w-1/2 md:w-1/3 font-gabarito text-2xl px-4 py-2 border border-white bg-white rounded-full transform transition-transform duration-200 ease-in-out hover:scale-105\"\n              onClick={() => {\n                handlePawClick();\n                closeMenu();\n              }}\n            >\n              Join The Pack!\n            </button>\n\n            {/* Social Media Icons */}\n            <div className=\"flex gap-1.5 p-3 justify-left mt-auto\">\n              {/* Instagram */}\n              <a\n                className=\"text-yellow opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://instagram.com/zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on Instagram\"\n              >\n                <svg\n                  id=\"instagram\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>Instagram</title>\n                  <path d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm0,96c-43.453,0 -48.902,0.184 -65.968,0.963c-17.03,0.777 -28.661,3.482 -38.839,7.437c-10.521,4.089 -19.444,9.56 -28.339,18.455c-8.895,8.895 -14.366,17.818 -18.455,28.339c-3.955,10.177 -6.659,21.808 -7.437,38.838c-0.778,17.066 -0.962,22.515 -0.962,65.968c0,43.453 0.184,48.902 0.962,65.968c0.778,17.03 3.482,28.661 7.437,38.838c4.089,10.521 9.56,19.444 18.455,28.34c8.895,8.895 17.818,14.366 28.339,18.455c10.178,3.954 21.809,6.659 38.839,7.436c17.066,0.779 22.515,0.963 65.968,0.963c43.453,0 48.902,-0.184 65.968,-0.963c17.03,-0.777 28.661,-3.482 38.838,-7.436c10.521,-4.089 19.444,-9.56 28.34,-18.455c8.895,-8.896 14.366,-17.819 18.455,-28.34c3.954,-10.177 6.659,-21.808 7.436,-38.838c0.779,-17.066 0.963,-22.515 0.963,-65.968c0,-43.453 -0.184,-48.902 -0.963,-65.968c-0.777,-17.03 -3.482,-28.661 -7.436,-38.838c-4.089,-10.521 -9.56,-19.444 -18.455,-28.339c-8.896,-8.895 -17.819,-14.366 -28.34,-18.455c-10.177,-3.955 -21.808,-6.66 -38.838,-7.437c-17.066,-0.779 -22.515,-0.963 -65.968,-0.963Zm0,28.829c42.722,0 47.782,0.163 64.654,0.933c15.6,0.712 24.071,3.318 29.709,5.509c7.469,2.902 12.799,6.37 18.397,11.969c5.6,5.598 9.067,10.929 11.969,18.397c2.191,5.638 4.798,14.109 5.509,29.709c0.77,16.872 0.933,21.932 0.933,64.654c0,42.722 -0.163,47.782 -0.933,64.654c-0.711,15.6 -3.318,24.071 -5.509,29.709c-2.902,7.469 -6.369,12.799 -11.969,18.397c-5.598,5.6 -10.928,9.067 -18.397,11.969c-5.638,2.191 -14.109,4.798 -29.709,5.509c-16.869,0.77 -21.929,0.933 -64.654,0.933c-42.725,0 -47.784,-0.163 -64.654,-0.933c-15.6,-0.711 -24.071,-3.318 -29.709,-5.509c-7.469,-2.902 -12.799,-6.369 -18.398,-11.969c-5.599,-5.598 -9.066,-10.928 -11.968,-18.397c-2.191,-5.638 -4.798,-14.109 -5.51,-29.709c-0.77,-16.872 -0.932,-21.932 -0.932,-64.654c0,-42.722 0.162,-47.782 0.932,-64.654c0.712,-15.6 3.319,-24.071 5.51,-29.709c2.902,-7.468 6.369,-12.799 11.968,-18.397c5.599,-5.599 10.929,-9.067 18.398,-11.969c5.638,-2.191 14.109,-4.797 29.709,-5.509c16.872,-0.77 21.932,-0.933 64.654,-0.933Zm0,49.009c-45.377,0 -82.162,36.785 -82.162,82.162c0,45.377 36.785,82.162 82.162,82.162c45.377,0 82.162,-36.785 82.162,-82.162c0,-45.377 -36.785,-82.162 -82.162,-82.162Zm0,135.495c-29.455,0 -53.333,-23.878 -53.333,-53.333c0,-29.455 23.878,-53.333 53.333,-53.333c29.455,0 53.333,23.878 53.333,53.333c0,29.455 -23.878,53.333 -53.333,53.333Zm104.609,-138.741c0,10.604 -8.597,19.199 -19.201,19.199c-10.603,0 -19.199,-8.595 -19.199,-19.199c0,-10.604 8.596,-19.2 19.199,-19.2c10.604,0 19.201,8.596 19.201,19.2Z\" />\n                </svg>\n              </a>\n              {/* Facebook */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://facebook.com/zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on Facebook\"\n              >\n                <svg\n                  id=\"facebook\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>Facebook</title>\n                  <path d=\"M255.022,511.998l0.229,0.001l-0.079,0l-0.15,-0.001Zm1.806,0.001l-0.079,0l0.229,-0.001l-0.15,0.001Zm-2.588,-0.005l0.247,0.001l-0.142,0l-0.105,-0.001Zm3.415,0.001l-0.142,0l0.247,-0.001l-0.105,0.001Zm-4.169,-0.007l0.165,0.001l-0.132,-0.001l-0.033,0Zm4.995,0l-0.132,0.001l0.165,-0.001l-0.033,0Zm0.826,-0.009l-0.058,0.001l0.223,-0.003l-0.165,0.002Zm-6.779,-0.002l0.223,0.003l-0.058,-0.001l-0.165,-0.002Zm7.604,-0.01l-0.135,0.002l0.275,-0.004l-0.14,0.002Zm-8.404,-0.002l0.275,0.004l-0.135,-0.002l-0.14,-0.002Zm9.228,-0.012l-0.182,0.003l0.254,-0.005l-0.072,0.002Zm-9.984,-0.002l0.254,0.005l-0.182,-0.003l-0.072,-0.002Zm-0.937,-0.019l0.225,0.005l-0.04,-0.001l-0.185,-0.004Zm11.745,0.004l-0.04,0.001l0.225,-0.005l-0.185,0.004Zm-12.567,-0.025l0.309,0.008l-0.125,-0.003l-0.184,-0.005Zm13.39,0.005l-0.125,0.003l0.309,-0.008l-0.184,0.005Zm0.823,-0.022l-0.201,0.006l0.316,-0.009l-0.115,0.003Zm-14.967,-0.003l0.316,0.009l-0.201,-0.006l-0.115,-0.003Zm-0.72,-0.022l0.225,0.007l-0.212,-0.007l-0.194,-0.006l0.181,0.006Zm16.509,0l-0.212,0.007l0.225,-0.007l0.181,-0.006l-0.194,0.006Zm0.821,-0.027l-0.112,0.004l0.345,-0.012l-0.233,0.008Zm-18.371,-0.008l0.345,0.012l-0.112,-0.004l-0.233,-0.008Zm-0.749,-0.028l0.362,0.013l-0.201,-0.007l-0.161,-0.006Zm19.941,0.006l-0.201,0.007l0.362,-0.013l-0.161,0.006Zm-20.676,-0.036l0.354,0.015l-0.277,-0.011l-0.077,-0.004Zm21.495,0.004l-0.277,0.011l0.354,-0.015l-0.077,0.004Zm-22.525,-0.049l0.38,0.017l-0.093,-0.003l-0.287,-0.014Zm23.345,0.014l-0.093,0.003l0.38,-0.017l-0.287,0.014Zm-24.084,-0.048l0.394,0.018l-0.186,-0.008l-0.208,-0.01Zm24.902,0.01l-0.186,0.008l0.394,-0.018l-0.208,0.01Zm-25.63,-0.047l0.397,0.02l-0.279,-0.013l-0.118,-0.007Zm26.448,0.007l-0.279,0.013l0.397,-0.02l-0.118,0.007Zm0.818,-0.043l-0.362,0.019l0.321,-0.017l0.378,-0.021l-0.337,0.019Zm-27.925,0.002l0.321,0.017l-0.362,-0.019l-0.337,-0.019l0.378,0.021Zm28.741,-0.048l-0.16,0.009l0.406,-0.023l-0.246,0.014Zm-29.844,-0.014l0.406,0.023l-0.16,-0.009l-0.246,-0.014Zm-0.722,-0.043l0.405,0.024l-0.253,-0.014l-0.152,-0.01Zm31.382,0.01l-0.253,0.014l0.405,-0.024l-0.152,0.01Zm-32.071,-0.053l0.365,0.023l-0.34,-0.021l-0.342,-0.022l0.317,0.02Zm32.887,0.002l-0.34,0.021l0.365,-0.023l0.317,-0.02l-0.342,0.022Zm0.814,-0.053l-0.122,0.008l0.387,-0.026l-0.265,0.018Zm-34.755,-0.018l0.387,0.026l-0.122,-0.008l-0.265,-0.018Zm-0.721,-0.05l0.38,0.027l-0.208,-0.014l-0.172,-0.013Zm36.29,0.013l-0.208,0.014l0.38,-0.027l-0.172,0.013Zm-37.009,-0.064l0.349,0.025l-0.271,-0.019l-0.078,-0.006Zm37.822,0.006l-0.271,0.019l0.349,-0.025l-0.078,0.006Zm-38.789,-0.079l0.306,0.023l-0.074,-0.005l-0.232,-0.018Zm39.602,0.018l-0.074,0.005l0.306,-0.023l-0.232,0.018Zm0.811,-0.063l-0.146,0.011l0.311,-0.025l-0.165,0.014Zm-41.157,-0.014l0.311,0.025l-0.146,-0.011l-0.165,-0.014Zm-0.725,-0.059l0.264,0.022l-0.186,-0.015l-0.078,-0.007Zm42.694,0.007l-0.186,0.015l0.264,-0.022l-0.078,0.007Zm-43.492,-0.074l0.079,0.007l-0.013,-0.001l-0.066,-0.006Zm44.302,0.006l-0.013,0.001l0.079,-0.007l-0.066,0.006Zm0.81,-0.071l-0.072,0.006l0.181,-0.016l-0.109,0.01Zm-45.965,-0.01l0.181,0.016l-0.072,-0.006l-0.109,-0.01Zm-0.75,-0.068l0.135,0.013l-0.084,-0.008l-0.051,-0.005Zm47.523,0.005l-0.084,0.008l0.135,-0.013l-0.051,0.005Zm-63.736,-2.025c-122.319,-19.226 -216,-125.203 -216,-252.887c0,-141.29 114.71,-256 256,-256c141.29,0 256,114.71 256,256c0,127.684 -93.681,233.661 -216,252.887l0,-178.887l59.65,0l11.35,-74l-71,0l0,-48.021c0,-20.245 9.918,-39.979 41.719,-39.979l32.281,0l0,-63c0,0 -29.296,-5 -57.305,-5c-58.476,0 -96.695,35.44 -96.695,99.6l0,56.4l-65,0l0,74l65,0l0,178.887Z\" />\n                </svg>\n              </a>\n\n              {/* X */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://x.com/zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on X (Twitter)\"\n              >\n                <svg\n                  id=\"twitter\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>Twitter</title>\n                  <path d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm-45.091,392.158c113.283,0 175.224,-93.87 175.224,-175.223c0,-2.682 0,-5.364 -0.128,-7.919c12.005,-8.684 22.478,-19.54 30.779,-31.928c-10.983,4.853 -22.861,8.174 -35.377,9.706c12.772,-7.663 22.478,-19.668 27.076,-34.099c-11.878,7.024 -25.032,12.132 -39.081,14.942c-11.239,-12.005 -27.203,-19.412 -44.955,-19.412c-33.972,0 -61.558,27.586 -61.558,61.558c0,4.853 0.511,9.578 1.66,14.048c-51.213,-2.554 -96.552,-27.075 -126.947,-64.368c-5.237,9.068 -8.302,19.668 -8.302,30.907c0,21.328 10.856,40.23 27.459,51.213c-10.09,-0.255 -19.541,-3.065 -27.842,-7.662l0,0.766c0,29.885 21.2,54.661 49.425,60.409c-5.108,1.404 -10.6,2.171 -16.219,2.171c-3.96,0 -7.791,-0.383 -11.622,-1.15c7.79,24.521 30.523,42.274 57.471,42.784c-21.073,16.476 -47.637,26.31 -76.501,26.31c-4.981,0 -9.834,-0.256 -14.687,-0.894c26.948,17.624 59.387,27.841 94.125,27.841Z\" />\n                </svg>\n              </a>\n\n              {/* YouTube */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://www.youtube.com/channel/UCAh7fGbQxiaZhSzrTBmKfWw\"\n                aria-label=\"Visit Zoomies Parks on YouTube\"\n              >\n                <svg\n                  id=\"youtube\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>YouTube</title>\n                  <path d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm153.315,178.978c-3.68,-13.769 -14.522,-24.61 -28.29,-28.29c-24.958,-6.688 -125.025,-6.688 -125.025,-6.688c0,0 -100.067,0 -125.025,6.688c-13.765,3.68 -24.61,14.521 -28.29,28.29c-6.685,24.955 -6.685,77.024 -6.685,77.024c0,0 0,52.067 6.685,77.02c3.68,13.769 14.525,24.614 28.29,28.293c24.958,6.685 125.025,6.685 125.025,6.685c0,0 100.067,0 125.025,-6.685c13.768,-3.679 24.61,-14.524 28.29,-28.293c6.685,-24.953 6.685,-77.02 6.685,-77.02c0,0 0,-52.069 -6.685,-77.024Zm-185.316,125.025l0,-96.002l83.137,48.001l-83.137,48.001Z\" />\n                </svg>\n              </a>\n\n              {/* TikTok */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://www.tiktok.com/@zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on TikTok\"\n              >\n                <svg\n                  id=\"tiktok\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>TikTok</title>\n                  <path d=\"M256,0C114.615,0,0,114.615,0,256S114.615,512,256,512,512,397.385,512,256,397.385,0,256,0ZM385.62,232.382c-27.184,0-53.634-8.822-74-23.75l-.162,101.5a92.457,92.457,0,1,1-80.178-91.721v49.845a43.657,43.657,0,1,0,31.288,41.876V109.333h51.275a71.773,71.773,0,0,0,71.774,71.773Z\" />\n                </svg>\n              </a>\n            </div>\n          </div>\n        </div>\n      </nav>\n    </>\n  );\n};\n\nexport default Navbar;\n","// Footer.js\nimport React from \"react\";\nimport { Link } from \"gatsby\";\nimport Fade from \"react-reveal/Fade\";\nimport { StaticImage } from \"gatsby-plugin-image\";\n\nconst Footer = ({ className = \"\" }) => {\n  return (\n    <Fade bottom>\n      <footer\n        className={`bg-orange rounded-t-xl w-full md:w-11/12 md:mx-auto ${className}`}\n      >\n        <div className=\"max-w-7xl mx-auto px-8 py-6\">\n          <div className=\"flex flex-wrap justify-between items-center\">\n            {/* Logo */}\n            <Link to=\"/\">\n              <StaticImage\n                loading=\"eager\"\n                placeholder=\"blurred\"\n                className=\"w-36\"\n                src=\"../images/zoomies-logo-white.png\"\n                alt=\"White Zoomies Logo\"\n              />\n            </Link>\n            {/* Social Media Icons */}\n            <div className=\"flex gap-1.5 p-3\">\n              {/* Instagram */}\n              <a\n                className=\"text-yellow opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://instagram.com/zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on Instagram\"\n              >\n                <svg\n                  id=\"instagram\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>Instagram</title>\n               <path d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm0,96c-43.453,0 -48.902,0.184 -65.968,0.963c-17.03,0.777 -28.661,3.482 -38.839,7.437c-10.521,4.089 -19.444,9.56 -28.339,18.455c-8.895,8.895 -14.366,17.818 -18.455,28.339c-3.955,10.177 -6.659,21.808 -7.437,38.838c-0.778,17.066 -0.962,22.515 -0.962,65.968c0,43.453 0.184,48.902 0.962,65.968c0.778,17.03 3.482,28.661 7.437,38.838c4.089,10.521 9.56,19.444 18.455,28.34c8.895,8.895 17.818,14.366 28.339,18.455c10.178,3.954 21.809,6.659 38.839,7.436c17.066,0.779 22.515,0.963 65.968,0.963c43.453,0 48.902,-0.184 65.968,-0.963c17.03,-0.777 28.661,-3.482 38.838,-7.436c10.521,-4.089 19.444,-9.56 28.34,-18.455c8.895,-8.896 14.366,-17.819 18.455,-28.34c3.954,-10.177 6.659,-21.808 7.436,-38.838c0.779,-17.066 0.963,-22.515 0.963,-65.968c0,-43.453 -0.184,-48.902 -0.963,-65.968c-0.777,-17.03 -3.482,-28.661 -7.436,-38.838c-4.089,-10.521 -9.56,-19.444 -18.455,-28.339c-8.896,-8.895 -17.819,-14.366 -28.34,-18.455c-10.177,-3.955 -21.808,-6.66 -38.838,-7.437c-17.066,-0.779 -22.515,-0.963 -65.968,-0.963Zm0,28.829c42.722,0 47.782,0.163 64.654,0.933c15.6,0.712 24.071,3.318 29.709,5.509c7.469,2.902 12.799,6.37 18.397,11.969c5.6,5.598 9.067,10.929 11.969,18.397c2.191,5.638 4.798,14.109 5.509,29.709c0.77,16.872 0.933,21.932 0.933,64.654c0,42.722 -0.163,47.782 -0.933,64.654c-0.711,15.6 -3.318,24.071 -5.509,29.709c-2.902,7.469 -6.369,12.799 -11.969,18.397c-5.598,5.6 -10.928,9.067 -18.397,11.969c-5.638,2.191 -14.109,4.798 -29.709,5.509c-16.869,0.77 -21.929,0.933 -64.654,0.933c-42.725,0 -47.784,-0.163 -64.654,-0.933c-15.6,-0.711 -24.071,-3.318 -29.709,-5.509c-7.469,-2.902 -12.799,-6.369 -18.398,-11.969c-5.599,-5.598 -9.066,-10.928 -11.968,-18.397c-2.191,-5.638 -4.798,-14.109 -5.51,-29.709c-0.77,-16.872 -0.932,-21.932 -0.932,-64.654c0,-42.722 0.162,-47.782 0.932,-64.654c0.712,-15.6 3.319,-24.071 5.51,-29.709c2.902,-7.468 6.369,-12.799 11.968,-18.397c5.599,-5.599 10.929,-9.067 18.398,-11.969c5.638,-2.191 14.109,-4.797 29.709,-5.509c16.872,-0.77 21.932,-0.933 64.654,-0.933Zm0,49.009c-45.377,0 -82.162,36.785 -82.162,82.162c0,45.377 36.785,82.162 82.162,82.162c45.377,0 82.162,-36.785 82.162,-82.162c0,-45.377 -36.785,-82.162 -82.162,-82.162Zm0,135.495c-29.455,0 -53.333,-23.878 -53.333,-53.333c0,-29.455 23.878,-53.333 53.333,-53.333c29.455,0 53.333,23.878 53.333,53.333c0,29.455 -23.878,53.333 -53.333,53.333Zm104.609,-138.741c0,10.604 -8.597,19.199 -19.201,19.199c-10.603,0 -19.199,-8.595 -19.199,-19.199c0,-10.604 8.596,-19.2 19.199,-19.2c10.604,0 19.201,8.596 19.201,19.2Z\"/>\n               </svg>\n              </a>\n              {/* Facebook */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://facebook.com/zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on Facebook\"\n              >\n                <svg\n                  id=\"facebook\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>Facebook</title>\n                  <path d=\"M255.022,511.998l0.229,0.001l-0.079,0l-0.15,-0.001Zm1.806,0.001l-0.079,0l0.229,-0.001l-0.15,0.001Zm-2.588,-0.005l0.247,0.001l-0.142,0l-0.105,-0.001Zm3.415,0.001l-0.142,0l0.247,-0.001l-0.105,0.001Zm-4.169,-0.007l0.165,0.001l-0.132,-0.001l-0.033,0Zm4.995,0l-0.132,0.001l0.165,-0.001l-0.033,0Zm0.826,-0.009l-0.058,0.001l0.223,-0.003l-0.165,0.002Zm-6.779,-0.002l0.223,0.003l-0.058,-0.001l-0.165,-0.002Zm7.604,-0.01l-0.135,0.002l0.275,-0.004l-0.14,0.002Zm-8.404,-0.002l0.275,0.004l-0.135,-0.002l-0.14,-0.002Zm9.228,-0.012l-0.182,0.003l0.254,-0.005l-0.072,0.002Zm-9.984,-0.002l0.254,0.005l-0.182,-0.003l-0.072,-0.002Zm-0.937,-0.019l0.225,0.005l-0.04,-0.001l-0.185,-0.004Zm11.745,0.004l-0.04,0.001l0.225,-0.005l-0.185,0.004Zm-12.567,-0.025l0.309,0.008l-0.125,-0.003l-0.184,-0.005Zm13.39,0.005l-0.125,0.003l0.309,-0.008l-0.184,0.005Zm0.823,-0.022l-0.201,0.006l0.316,-0.009l-0.115,0.003Zm-14.967,-0.003l0.316,0.009l-0.201,-0.006l-0.115,-0.003Zm-0.72,-0.022l0.225,0.007l-0.212,-0.007l-0.194,-0.006l0.181,0.006Zm16.509,0l-0.212,0.007l0.225,-0.007l0.181,-0.006l-0.194,0.006Zm0.821,-0.027l-0.112,0.004l0.345,-0.012l-0.233,0.008Zm-18.371,-0.008l0.345,0.012l-0.112,-0.004l-0.233,-0.008Zm-0.749,-0.028l0.362,0.013l-0.201,-0.007l-0.161,-0.006Zm19.941,0.006l-0.201,0.007l0.362,-0.013l-0.161,0.006Zm-20.676,-0.036l0.354,0.015l-0.277,-0.011l-0.077,-0.004Zm21.495,0.004l-0.277,0.011l0.354,-0.015l-0.077,0.004Zm-22.525,-0.049l0.38,0.017l-0.093,-0.003l-0.287,-0.014Zm23.345,0.014l-0.093,0.003l0.38,-0.017l-0.287,0.014Zm-24.084,-0.048l0.394,0.018l-0.186,-0.008l-0.208,-0.01Zm24.902,0.01l-0.186,0.008l0.394,-0.018l-0.208,0.01Zm-25.63,-0.047l0.397,0.02l-0.279,-0.013l-0.118,-0.007Zm26.448,0.007l-0.279,0.013l0.397,-0.02l-0.118,0.007Zm0.818,-0.043l-0.362,0.019l0.321,-0.017l0.378,-0.021l-0.337,0.019Zm-27.925,0.002l0.321,0.017l-0.362,-0.019l-0.337,-0.019l0.378,0.021Zm28.741,-0.048l-0.16,0.009l0.406,-0.023l-0.246,0.014Zm-29.844,-0.014l0.406,0.023l-0.16,-0.009l-0.246,-0.014Zm-0.722,-0.043l0.405,0.024l-0.253,-0.014l-0.152,-0.01Zm31.382,0.01l-0.253,0.014l0.405,-0.024l-0.152,0.01Zm-32.071,-0.053l0.365,0.023l-0.34,-0.021l-0.342,-0.022l0.317,0.02Zm32.887,0.002l-0.34,0.021l0.365,-0.023l0.317,-0.02l-0.342,0.022Zm0.814,-0.053l-0.122,0.008l0.387,-0.026l-0.265,0.018Zm-34.755,-0.018l0.387,0.026l-0.122,-0.008l-0.265,-0.018Zm-0.721,-0.05l0.38,0.027l-0.208,-0.014l-0.172,-0.013Zm36.29,0.013l-0.208,0.014l0.38,-0.027l-0.172,0.013Zm-37.009,-0.064l0.349,0.025l-0.271,-0.019l-0.078,-0.006Zm37.822,0.006l-0.271,0.019l0.349,-0.025l-0.078,0.006Zm-38.789,-0.079l0.306,0.023l-0.074,-0.005l-0.232,-0.018Zm39.602,0.018l-0.074,0.005l0.306,-0.023l-0.232,0.018Zm0.811,-0.063l-0.146,0.011l0.311,-0.025l-0.165,0.014Zm-41.157,-0.014l0.311,0.025l-0.146,-0.011l-0.165,-0.014Zm-0.725,-0.059l0.264,0.022l-0.186,-0.015l-0.078,-0.007Zm42.694,0.007l-0.186,0.015l0.264,-0.022l-0.078,0.007Zm-43.492,-0.074l0.079,0.007l-0.013,-0.001l-0.066,-0.006Zm44.302,0.006l-0.013,0.001l0.079,-0.007l-0.066,0.006Zm0.81,-0.071l-0.072,0.006l0.181,-0.016l-0.109,0.01Zm-45.965,-0.01l0.181,0.016l-0.072,-0.006l-0.109,-0.01Zm-0.75,-0.068l0.135,0.013l-0.084,-0.008l-0.051,-0.005Zm47.523,0.005l-0.084,0.008l0.135,-0.013l-0.051,0.005Zm-63.736,-2.025c-122.319,-19.226 -216,-125.203 -216,-252.887c0,-141.29 114.71,-256 256,-256c141.29,0 256,114.71 256,256c0,127.684 -93.681,233.661 -216,252.887l0,-178.887l59.65,0l11.35,-74l-71,0l0,-48.021c0,-20.245 9.918,-39.979 41.719,-39.979l32.281,0l0,-63c0,0 -29.296,-5 -57.305,-5c-58.476,0 -96.695,35.44 -96.695,99.6l0,56.4l-65,0l0,74l65,0l0,178.887Z\"/>                </svg>\n              </a>\n                            {/* X */}\n                            <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://x.com/zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on X (Twitter)\"\n              >\n                <svg\n                  id=\"twitter\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>Twitter</title>\n                  <path d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm-45.091,392.158c113.283,0 175.224,-93.87 175.224,-175.223c0,-2.682 0,-5.364 -0.128,-7.919c12.005,-8.684 22.478,-19.54 30.779,-31.928c-10.983,4.853 -22.861,8.174 -35.377,9.706c12.772,-7.663 22.478,-19.668 27.076,-34.099c-11.878,7.024 -25.032,12.132 -39.081,14.942c-11.239,-12.005 -27.203,-19.412 -44.955,-19.412c-33.972,0 -61.558,27.586 -61.558,61.558c0,4.853 0.511,9.578 1.66,14.048c-51.213,-2.554 -96.552,-27.075 -126.947,-64.368c-5.237,9.068 -8.302,19.668 -8.302,30.907c0,21.328 10.856,40.23 27.459,51.213c-10.09,-0.255 -19.541,-3.065 -27.842,-7.662l0,0.766c0,29.885 21.2,54.661 49.425,60.409c-5.108,1.404 -10.6,2.171 -16.219,2.171c-3.96,0 -7.791,-0.383 -11.622,-1.15c7.79,24.521 30.523,42.274 57.471,42.784c-21.073,16.476 -47.637,26.31 -76.501,26.31c-4.981,0 -9.834,-0.256 -14.687,-0.894c26.948,17.624 59.387,27.841 94.125,27.841Z\"/>                </svg>\n              </a>\n              {/* YouTube */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://www.youtube.com/channel/UCAh7fGbQxiaZhSzrTBmKfWw\"\n                aria-label=\"Visit Zoomies Parks on YouTube\"\n              >\n                <svg\n                  id=\"youtube\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>YouTube</title>\n                  <path d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm153.315,178.978c-3.68,-13.769 -14.522,-24.61 -28.29,-28.29c-24.958,-6.688 -125.025,-6.688 -125.025,-6.688c0,0 -100.067,0 -125.025,6.688c-13.765,3.68 -24.61,14.521 -28.29,28.29c-6.685,24.955 -6.685,77.024 -6.685,77.024c0,0 0,52.067 6.685,77.02c3.68,13.769 14.525,24.614 28.29,28.293c24.958,6.685 125.025,6.685 125.025,6.685c0,0 100.067,0 125.025,-6.685c13.768,-3.679 24.61,-14.524 28.29,-28.293c6.685,-24.953 6.685,-77.02 6.685,-77.02c0,0 0,-52.069 -6.685,-77.024Zm-185.316,125.025l0,-96.002l83.137,48.001l-83.137,48.001Z\"/>                </svg>\n              </a>\n              {/* TikTok */}\n              <a\n                className=\"text-blue opacity-70 hover:opacity-100 cursor-pointer\"\n                href=\"https://www.tiktok.com/@zoomiesparks\"\n                aria-label=\"Visit Zoomies Parks on TikTok\"\n              >\n                <svg\n                  id=\"tiktok\"\n                  className=\"w-10\"\n                  fill=\"#ffdd12\"\n                  viewBox=\"0 0 512 512\"\n                  xmlns=\"http://www.w3.org/2000/svg\"\n                >\n                  <title>TikTok</title>\n                  <path d=\"M256,0C114.615,0,0,114.615,0,256S114.615,512,256,512,512,397.385,512,256,397.385,0,256,0ZM385.62,232.382c-27.184,0-53.634-8.822-74-23.75l-.162,101.5a92.457,92.457,0,1,1-80.178-91.721v49.845a43.657,43.657,0,1,0,31.288,41.876V109.333h51.275a71.773,71.773,0,0,0,71.774,71.773Z\" />\n                </svg>\n              </a>\n            </div>\n{/* Links */}\n<div className=\"flex flex-wrap justify-left md:justify-start\">\n  <Link\n    className=\"text-white opacity-50 hover:opacity-100 px-5 py-2 rounded-md text-sm font-medium font-poppins whitespace-nowrap w-1/2 md:w-auto\"\n    to=\"/privacy\"\n  >\n    Privacy Policy\n  </Link>\n  <a\n    className=\"text-white opacity-50 hover:opacity-100 px-5 py-2 rounded-md text-sm font-medium font-poppins whitespace-nowrap w-1/2 md:w-auto\"\n    href=\"mailto:info@zoomiesparks.com?subject=General inquiry\"\n  >\n    Contact Us\n  </a>\n  <a\n    className=\"text-white opacity-50 hover:opacity-100 px-5 py-2 rounded-md text-sm font-medium font-poppins whitespace-nowrap w-1/2 md:w-auto\"\n    href=\"mailto:info@zoomiesparks.com?subject=Employment inquiry\"\n  >\n    Careers\n  </a>\n  <Link\n    className=\"text-white opacity-50 hover:opacity-100 px-5 py-2 rounded-md text-sm font-medium font-poppins whitespace-nowrap w-1/2 md:w-auto\"\n    to=\"/blog\"\n  >\n    Blog\n  </Link>\n</div>\n\n          </div>\n        </div>\n      </footer>\n    </Fade>\n  );\n};\n\nexport default Footer;\n","export default __webpack_public_path__ + \"static/lines-a1615f151f058e6b44aadd52b1171a65.svg\";","import React, { useState } from \"react\";\nimport Navbar from \"./navbar\";\nimport Footer from \"./footer\";\nimport PayPalPopup from \"./PayPalPopup\";\nimport linesSvg from \"../images/lines.svg\";\nimport \"./layout.css\";\n\n\nconst Layout = ({ children }) => {\n  const [showYearlyPopup, setShowYearlyPopup] = useState(false);\n\n  const handlePawClick = () => {\n    setShowYearlyPopup(true);\n  };\n\n  const handleClosePopup = () => {\n    setShowYearlyPopup(false);\n  };\n\n  return (\n    <div className=\"flex flex-col min-h-screen w-full static\">\n      <div className=\"svg-background\"></div>\n      <Navbar className=\"relative z-30 w-full\" onPawClick={handlePawClick} />\n      <main className=\"flex-grow relative z-10 w-full\">{children}</main>\n      <Footer className=\"relative z-10 w-full\" />\n\n      <PayPalPopup isVisible={showYearlyPopup} onClose={handleClosePopup} />\n    </div>\n  );\n};\n\nexport default Layout;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.distance,t=e.left,p=e.right,a=e.up,l=e.down,i=e.top,u=e.bottom,n=e.big,s=e.mirror,d=e.opposite,_=(r?r.toString():0)+((t?1:0)|(p?2:0)|(i||l?4:0)|(u||a?8:0)|(s?16:0)|(d?32:0)|(o?64:0)|(n?128:0));if(lookup.hasOwnProperty(_))return lookup[_];var f=t||p||a||l||i||u,y=void 0,b=void 0;if(f){if(!s!=!(o&&d)){var v=[p,t,u,i,l,a];t=v[0],p=v[1],i=v[2],u=v[3],a=v[4],l=v[5]}var c=r||(n?\"2000px\":\"100%\");y=t?\"-\"+c:p?c:\"0\",b=l||i?\"-\"+c:a||u?c:\"0\"}return lookup[_]=(0,_globals.animation)((o?\"to\":\"from\")+\" {opacity: 0;\"+(f?\" transform: translate3d(\"+y+\", \"+b+\", 0);\":\"\")+\"}\\n     \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none;} \"),lookup[_]}function Fade(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=o.children,t=(o.out,o.forever),p=o.timeout,a=o.duration,l=void 0===a?_globals.defaults.duration:a,i=o.delay,u=void 0===i?_globals.defaults.delay:i,n=o.count,s=void 0===n?_globals.defaults.count:n,d=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),_={make:make,duration:void 0===p?l:p,delay:u,forever:t,count:s,style:{animationFillMode:\"both\"},reverse:d.left};return e?(0,_wrap2.default)(d,_,_,r):_}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,distance:_propTypes.string,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Fade.propTypes=propTypes,exports.default=Fade,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_slicedToArray=function(){function e(e,t){var i=[],s=!0,o=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(s=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,n=e}finally{try{!s&&a.return&&a.return()}finally{if(o)throw n}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e},_createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,i,s){return i&&e(t.prototype,i),s&&e(t,s),t}}(),_react=require(\"react\"),_react2=_interopRequireDefault(_react),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),inOut=(0,_propTypes.shape)({make:_propTypes.func,duration:_propTypes.number.isRequired,delay:_propTypes.number.isRequired,forever:_propTypes.bool,count:_propTypes.number.isRequired,style:_propTypes.object.isRequired,reverse:_propTypes.bool}),propTypes={collapse:_propTypes.bool,collapseEl:_propTypes.element,cascade:_propTypes.bool,wait:_propTypes.number,force:_propTypes.bool,disabled:_propTypes.bool,appear:_propTypes.bool,enter:_propTypes.bool,exit:_propTypes.bool,fraction:_propTypes.number,refProp:_propTypes.string,innerRef:_propTypes.func,onReveal:_propTypes.func,unmountOnExit:_propTypes.bool,mountOnEnter:_propTypes.bool,inEffect:inOut.isRequired,outEffect:(0,_propTypes.oneOfType)([inOut,(0,_propTypes.oneOf)([!1])]).isRequired,ssrReveal:_propTypes.bool,collapseOnly:_propTypes.bool,ssrFadeout:_propTypes.bool},defaultProps={fraction:.2,refProp:\"ref\"},contextTypes={transitionGroup:_propTypes.object},RevealBase=function(e){function t(e,i){_classCallCheck(this,t);var s=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));return s.isOn=void 0===e.when||!!e.when,s.state={collapse:e.collapse?t.getInitialCollapseStyle(e):void 0,style:{opacity:s.isOn&&!e.ssrReveal||!e.outEffect?void 0:0}},s.savedChild=!1,s.isShown=!1,_globals.observerMode?s.handleObserve=s.handleObserve.bind(s):(s.revealHandler=s.makeHandler(s.reveal),s.resizeHandler=s.makeHandler(s.resize)),s.saveRef=s.saveRef.bind(s),s}return _inherits(t,e),_createClass(t,[{key:\"saveRef\",value:function(e){this.childRef&&this.childRef(e),this.props.innerRef&&this.props.innerRef(e),this.el!==e&&(this.el=e&&\"offsetHeight\"in e?e:void 0,this.observe(this.props,!0))}},{key:\"invisible\",value:function(){this&&this.el&&(this.savedChild=!1,this.isShown||(this.setState({hasExited:!0,collapse:this.props.collapse?_extends({},this.state.collapse,{visibility:\"hidden\"}):null,style:{opacity:0}}),!_globals.observerMode&&this.props.collapse&&window.document.dispatchEvent(_globals.collapseend)))}},{key:\"animationEnd\",value:function(e,t,i){var s=this,o=i.forever,n=i.count,r=i.delay,a=i.duration;if(!o){var l=function(){s&&s.el&&(s.animationEndTimeout=void 0,e.call(s))};this.animationEndTimeout=window.setTimeout(l,r+(a+(t?a:0)*n))}}},{key:\"getDimensionValue\",value:function(){return this.el.offsetHeight+parseInt(window.getComputedStyle(this.el,null).getPropertyValue(\"margin-top\"),10)+parseInt(window.getComputedStyle(this.el,null).getPropertyValue(\"margin-bottom\"),10)}},{key:\"collapse\",value:function(e,t,i){var s=i.duration+(t.cascade?i.duration:0),o=this.isOn?this.getDimensionValue():0,n=void 0,r=void 0;if(t.collapseOnly)n=i.duration/3,r=i.delay;else{var a=s>>2,l=a>>1;n=a,r=i.delay+(this.isOn?0:s-a-l),e.style.animationDuration=s-a+(this.isOn?l:-l)+\"ms\",e.style.animationDelay=i.delay+(this.isOn?a-l:0)+\"ms\"}return e.collapse={height:o,transition:\"height \"+n+\"ms ease \"+r+\"ms\",overflow:t.collapseOnly?\"hidden\":void 0},e}},{key:\"animate\",value:function(e){if(this&&this.el&&(this.unlisten(),this.isShown!==this.isOn)){this.isShown=this.isOn;var t=!this.isOn&&e.outEffect,i=e[t?\"outEffect\":\"inEffect\"],s=\"style\"in i&&i.style.animationName||void 0,o=void 0;e.collapseOnly?o={hasAppeared:!0,hasExited:!1,style:{opacity:1}}:((e.outEffect||this.isOn)&&i.make&&(s=i.make),o={hasAppeared:!0,hasExited:!1,collapse:void 0,style:_extends({},i.style,{animationDuration:i.duration+\"ms\",animationDelay:i.delay+\"ms\",animationIterationCount:i.forever?\"infinite\":i.count,opacity:1,animationName:s}),className:i.className}),this.setState(e.collapse?this.collapse(o,e,i):o),t?(this.savedChild=_react2.default.cloneElement(this.getChild()),this.animationEnd(this.invisible,e.cascade,i)):this.savedChild=!1,this.onReveal(e)}}},{key:\"onReveal\",value:function(e){e.onReveal&&this.isOn&&(this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),e.wait?this.onRevealTimeout=window.setTimeout(e.onReveal,e.wait):e.onReveal())}},{key:\"componentWillUnmount\",value:function(){this.unlisten(),_globals.ssr&&(0,_globals.disableSsr)()}},{key:\"handleObserve\",value:function(e,t){_slicedToArray(e,1)[0].intersectionRatio>0&&(t.disconnect(),this.observer=null,this.reveal(this.props,!0))}},{key:\"observe\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.el&&_globals.observerMode){if(this.observer){if(!t)return;this.observer.disconnect()}else if(t)return;this.observer=new IntersectionObserver(this.handleObserve,{threshold:e.fraction}),this.observer.observe(this.el)}}},{key:\"reveal\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_globals.globalHide||(0,_globals.hideAll)(),this&&this.el&&(e||(e=this.props),_globals.ssr&&(0,_globals.disableSsr)(),this.isOn&&this.isShown&&void 0!==e.spy?(this.isShown=!1,this.setState({style:{}}),window.setTimeout(function(){return t.reveal(e)},200)):i||this.inViewport(e)||e.force?this.animate(e):_globals.observerMode?this.observe(e):this.listen())}},{key:\"componentDidMount\",value:function(){var e=this;if(this.el&&!this.props.disabled){this.props.collapseOnly||(\"make\"in this.props.inEffect&&this.props.inEffect.make(!1,this.props),void 0!==this.props.when&&this.props.outEffect&&\"make\"in this.props.outEffect&&this.props.outEffect.make(!0,this.props));var i=this.context.transitionGroup,s=i&&!i.isMounting?!(\"enter\"in this.props&&!1===this.props.enter):this.props.appear;return this.isOn&&((void 0!==this.props.when||void 0!==this.props.spy)&&!s||_globals.ssr&&!_globals.fadeOutEnabled&&!this.props.ssrFadeout&&this.props.outEffect&&!this.props.ssrReveal&&t.getTop(this.el)<window.pageYOffset+window.innerHeight)?(this.isShown=!0,this.setState({hasAppeared:!0,collapse:this.props.collapse?{height:this.getDimensionValue()}:this.state.collapse,style:{opacity:1}}),void this.onReveal(this.props)):_globals.ssr&&(_globals.fadeOutEnabled||this.props.ssrFadeout)&&this.props.outEffect&&t.getTop(this.el)<window.pageYOffset+window.innerHeight?(this.setState({style:{opacity:0,transition:\"opacity 1000ms 1000ms\"}}),void window.setTimeout(function(){return e.reveal(e.props,!0)},2e3)):void(this.isOn&&(this.props.force?this.animate(this.props):this.reveal(this.props)))}}},{key:\"cascade\",value:function(e){var t=this,i=void 0;i=\"string\"==typeof e?e.split(\"\").map(function(e,t){return _react2.default.createElement(\"span\",{key:t,style:{display:\"inline-block\",whiteSpace:\"pre\"}},e)}):_react2.default.Children.toArray(e);var s=this.props[this.isOn||!this.props.outEffect?\"inEffect\":\"outEffect\"],o=s.duration,n=s.reverse,r=i.length,a=2*o;this.props.collapse&&(a=parseInt(this.state.style.animationDuration,10),o=a/2);var l=n?r:0;return i=i.map(function(e){return\"object\"===(void 0===e?\"undefined\":_typeof(e))&&e?_react2.default.cloneElement(e,{style:_extends({},e.props.style,t.state.style,{animationDuration:Math.round((0,_globals.cascade)(n?l--:l++,0,r,o,a))+\"ms\"})}):e})}},{key:\"componentWillReceiveProps\",value:function(e){if(void 0!==e.when&&(this.isOn=!!e.when),e.fraction!==this.props.fraction&&this.observe(e,!0),!this.isOn&&e.onExited&&\"exit\"in e&&!1===e.exit)return void e.onExited();e.disabled||(e.collapse&&!this.props.collapse&&(this.setState({style:{},collapse:t.getInitialCollapseStyle(e)}),this.isShown=!1),e.when===this.props.when&&e.spy===this.props.spy||this.reveal(e),this.onRevealTimeout&&!this.isOn&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)))}},{key:\"getChild\",value:function(){if(this.savedChild&&!this.props.disabled)return this.savedChild;if(\"object\"===_typeof(this.props.children)){var e=_react2.default.Children.only(this.props.children);return\"type\"in e&&\"string\"==typeof e.type||\"ref\"!==this.props.refProp?e:_react2.default.createElement(\"div\",null,e)}return _react2.default.createElement(\"div\",null,this.props.children)}},{key:\"render\",value:function(){var e=void 0;e=this.state.hasAppeared?!this.props.unmountOnExit||!this.state.hasExited||this.isOn:!this.props.mountOnEnter||this.isOn;var t=this.getChild();\"function\"==typeof t.ref&&(this.childRef=t.ref);var i=!1,s=t.props,o=s.style,n=s.className,r=s.children,a=this.props.disabled?n:(this.props.outEffect?_globals.namespace:\"\")+(this.state.className?\" \"+this.state.className:\"\")+(n?\" \"+n:\"\")||void 0,l=void 0;\"function\"==typeof this.state.style.animationName&&(this.state.style.animationName=this.state.style.animationName(!this.isOn,this.props)),this.props.cascade&&!this.props.disabled&&r&&this.state.style.animationName?(i=this.cascade(r),l=_extends({},o,{opacity:1})):l=this.props.disabled?o:_extends({},o,this.state.style);var p=_extends({},this.props.props,_defineProperty({className:a,style:l},this.props.refProp,this.saveRef)),h=_react2.default.cloneElement(t,p,e?i||r:void 0);return void 0!==this.props.collapse?this.props.collapseEl?_react2.default.cloneElement(this.props.collapseEl,{style:_extends({},this.props.collapseEl.style,this.props.disabled?void 0:this.state.collapse),children:h}):_react2.default.createElement(\"div\",{style:this.props.disabled?void 0:this.state.collapse,children:h}):h}},{key:\"makeHandler\",value:function(e){var t=this,i=function(){e.call(t,t.props),t.ticking=!1};return function(){t.ticking||((0,_globals.raf)(i),t.ticking=!0)}}},{key:\"inViewport\",value:function(e){if(!this.el||window.document.hidden)return!1;var i=this.el.offsetHeight,s=window.pageYOffset-t.getTop(this.el),o=Math.min(i,window.innerHeight)*(_globals.globalHide?e.fraction:0);return s>o-window.innerHeight&&s<i-o}},{key:\"resize\",value:function(e){this&&this.el&&this.isOn&&this.inViewport(e)&&(this.unlisten(),this.isShown=this.isOn,this.setState({hasExited:!this.isOn,hasAppeared:!0,collapse:void 0,style:{opacity:this.isOn||!e.outEffect?1:0}}),this.onReveal(e))}},{key:\"listen\",value:function(){_globals.observerMode||this.isListener||(this.isListener=!0,window.addEventListener(\"scroll\",this.revealHandler,{passive:!0}),window.addEventListener(\"orientationchange\",this.revealHandler,{passive:!0}),window.document.addEventListener(\"visibilitychange\",this.revealHandler,{passive:!0}),window.document.addEventListener(\"collapseend\",this.revealHandler,{passive:!0}),window.addEventListener(\"resize\",this.resizeHandler,{passive:!0}))}},{key:\"unlisten\",value:function(){!_globals.observerMode&&this.isListener&&(window.removeEventListener(\"scroll\",this.revealHandler,{passive:!0}),window.removeEventListener(\"orientationchange\",this.revealHandler,{passive:!0}),window.document.removeEventListener(\"visibilitychange\",this.revealHandler,{passive:!0}),window.document.removeEventListener(\"collapseend\",this.revealHandler,{passive:!0}),window.removeEventListener(\"resize\",this.resizeHandler,{passive:!0}),this.isListener=!1),this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),this.animationEndTimeout&&(this.animationEndTimeout=window.clearTimeout(this.animationEndTimeout))}}],[{key:\"getInitialCollapseStyle\",value:function(e){return{height:0,visibility:e.when?void 0:\"hidden\"}}},{key:\"getTop\",value:function(e){for(;void 0===e.offsetTop;)e=e.parentNode;for(var t=e.offsetTop;e.offsetParent;t+=e.offsetTop)e=e.offsetParent;return t}}]),t}(_react2.default.Component);RevealBase.propTypes=propTypes,RevealBase.defaultProps=defaultProps,RevealBase.contextTypes=contextTypes,RevealBase.displayName=\"RevealBase\",exports.default=RevealBase,module.exports=exports.default;","\"use strict\";function insertRule(e){try{return sheet.insertRule(e,sheet.cssRules.length)}catch(e){console.warn(\"react-reveal - animation failed\")}}function cascade(e,n,t,o,r){var s=Math.log(o),i=Math.log(r),a=(i-s)/(t-n);return Math.exp(s+a*(e-n))}function animation(e){if(!sheet)return\"\";var n=\"@keyframes \"+(name+counter)+\"{\"+e+\"}\",t=effectMap[e];return t?\"\"+name+t:(sheet.insertRule(n,sheet.cssRules.length),effectMap[e]=counter,\"\"+name+counter++)}function hideAll(){globalHide||(exports.globalHide=globalHide=!0,window.removeEventListener(\"scroll\",hideAll,!0),insertRule(\".\"+namespace+\" { opacity: 0; }\"),window.removeEventListener(\"orientationchange\",hideAll,!0),window.document.removeEventListener(\"visibilitychange\",hideAll))}function config(e){var n=e.ssrFadeout;exports.fadeOutEnabled=fadeOutEnabled=n}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.insertRule=insertRule,exports.cascade=cascade,exports.animation=animation,exports.hideAll=hideAll,exports.default=config;var namespace=exports.namespace=\"react-reveal\",defaults=exports.defaults={duration:1e3,delay:0,count:1},ssr=exports.ssr=!0,observerMode=exports.observerMode=!1,raf=exports.raf=function(e){return window.setTimeout(e,66)},disableSsr=exports.disableSsr=function(){return exports.ssr=ssr=!1},fadeOutEnabled=exports.fadeOutEnabled=!1,ssrFadeout=exports.ssrFadeout=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return exports.fadeOutEnabled=fadeOutEnabled=e},globalHide=exports.globalHide=!1,ie10=exports.ie10=!1,collapseend=exports.collapseend=void 0,counter=1,effectMap={},sheet=!1,name=namespace+\"-\"+Math.floor(1e15*Math.random())+\"-\";if(\"undefined\"!=typeof window&&\"nodejs\"!==window.name&&window.document&&\"undefined\"!=typeof navigator){exports.observerMode=observerMode=\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype&&/\\{\\s*\\[native code\\]\\s*\\}/.test(\"\"+IntersectionObserver),exports.raf=raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||raf,exports.ssr=ssr=window.document.querySelectorAll(\"div[data-reactroot]\").length>0,-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(exports.ie10=ie10=!0),ssr&&\"performance\"in window&&\"timing\"in window.performance&&\"domContentLoadedEventEnd\"in window.performance.timing&&window.performance.timing.domLoading&&Date.now()-window.performance.timing.domLoading<300&&(exports.ssr=ssr=!1),ssr&&window.setTimeout(disableSsr,1500),observerMode||(exports.collapseend=collapseend=document.createEvent(\"Event\"),collapseend.initEvent(\"collapseend\",!0,!0));var element=document.createElement(\"style\");document.head.appendChild(element),element.sheet&&element.sheet.cssRules&&element.sheet.insertRule&&(sheet=element.sheet,window.addEventListener(\"scroll\",hideAll,!0),window.addEventListener(\"orientationchange\",hideAll,!0),window.document.addEventListener(\"visibilitychange\",hideAll))}","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function wrap(e,t,a,r){return\"in\"in e&&(e.when=e.in),_react2.default.Children.count(r)<2?_react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r})):(r=_react2.default.Children.map(r,function(r){return _react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r}))}),\"Fragment\"in _react2.default?_react2.default.createElement(_react2.default.Fragment,null,r):_react2.default.createElement(\"span\",null,r))}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e};exports.default=wrap;var _react=require(\"react\"),_react2=_interopRequireDefault(_react),_RevealBase=require(\"./RevealBase\"),_RevealBase2=_interopRequireDefault(_RevealBase);module.exports=exports.default;"],"names":["UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","RegExp","source","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","options","Array","isArray","TypeError","pascalCase","preserveConsecutiveUppercase","map","x","trim","filter","length","join","toLowerCase","locale","string","toLocaleLowerCase","toUpperCase","toLocaleUpperCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","i","character","test","slice","preserveCamelCase","replace","lastIndex","m1","charAt","_","identifier","m","postProcess","module","exports","W","hasNativeLazyLoadSupport","HTMLImageElement","prototype","z","e","t","a","s","width","height","className","style","P","h","loading","shouldLoad","opacity","A","r","n","o","l","backgroundColor","position","top","left","bottom","right","objectFit","objectPosition","d","transition","H","F","_ref5","layout","paddingTop","maxWidth","display","alt","role","src","G","children","u","V","B","U","srcSet","decoding","Y","fallback","sources","sizes","_ref6","media","type","key","X","propTypes","isRequired","displayName","J","Z","Error","K","Q","ee","te","ae","_len","arguments","_key","c","apply","concat","ie","image","se","re","ne","Set","oe","le","de","as","class","g","onStartLoad","p","onLoad","onError","f","w","y","b","v","E","k","S","M","N","$","JSON","stringify","images","I","then","_ref7","renderImageToString","swapPlaceholderImage","current","querySelector","complete","wasCached","setTimeout","removeAttribute","addEventListener","removeEventListener","add","has","_ref8","innerHTML","isLoading","isLoaded","requestAnimationFrame","cancelAnimationFrame","ref","dangerouslySetInnerHTML","__html","suppressHydrationWarning","ce","he","ue","__imageData","__error","console","warn","ge","imgClassName","imgStyle","placeholder","pe","_len2","_key2","me","fe","we","_ref","isVisible","onClose","paypalContainerRef","useRef","useEffect","renderPayPalButton","window","paypal","HostedButtons","hostedButtonId","render","document","script","createElement","async","crossOrigin","onload","body","appendChild","ReactDOM","React","onClick","maxHeight","overflowY","stopPropagation","href","target","rel","id","onPawClick","isOpen","setIsOpen","useState","toggleMenu","closeMenu","Link","to","StaticImage","require","item","fill","stroke","viewBox","strokeLinecap","strokeLinejoin","strokeWidth","xmlns","Fade","showYearlyPopup","setShowYearlyPopup","Navbar","handlePawClick","Footer","PayPalPopup","handleClosePopup","make","distance","up","down","big","mirror","opposite","toString","lookup","hasOwnProperty","_globals","animation","defaults","out","forever","timeout","duration","delay","count","indexOf","Object","call","_objectWithoutProperties","animationFillMode","reverse","_wrap2","default","defineProperty","value","_propTypes","_wrap","__esModule","bool","number","_typeof","Symbol","iterator","constructor","_slicedToArray","next","done","push","return","_extends","assign","_createClass","enumerable","configurable","writable","_react","_react2","inOut","shape","func","object","collapse","collapseEl","element","cascade","wait","force","disabled","appear","enter","exit","fraction","refProp","innerRef","onReveal","unmountOnExit","mountOnEnter","inEffect","outEffect","oneOfType","oneOf","ssrReveal","collapseOnly","ssrFadeout","contextTypes","transitionGroup","RevealBase","_classCallCheck","this","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","isOn","when","state","getInitialCollapseStyle","savedChild","isShown","observerMode","handleObserve","bind","revealHandler","makeHandler","reveal","resizeHandler","resize","saveRef","create","setPrototypeOf","_inherits","childRef","props","el","observe","setState","hasExited","visibility","dispatchEvent","collapseend","animationEndTimeout","offsetHeight","parseInt","getComputedStyle","getPropertyValue","getDimensionValue","animationDuration","animationDelay","overflow","unlisten","animationName","hasAppeared","animationIterationCount","cloneElement","getChild","animationEnd","invisible","onRevealTimeout","clearTimeout","ssr","disableSsr","intersectionRatio","disconnect","observer","IntersectionObserver","threshold","globalHide","hideAll","spy","inViewport","animate","listen","context","isMounting","fadeOutEnabled","getTop","pageYOffset","innerHeight","split","whiteSpace","Children","toArray","Math","round","onExited","only","namespace","_defineProperty","ticking","raf","hidden","min","isListener","passive","offsetTop","parentNode","offsetParent","Component","defaultProps","insertRule","sheet","cssRules","log","exp","name","counter","effectMap","ie10","floor","random","navigator","IntersectionObserverEntry","webkitRequestAnimationFrame","mozRequestAnimationFrame","querySelectorAll","appVersion","performance","timing","domLoading","Date","now","createEvent","initEvent","head","_interopRequireDefault","in","_RevealBase2","Fragment"],"sourceRoot":""}