[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-secure:{\n  \"regionTheme\": *[_type == \"theme\" && language == $locale && (!defined(audience._ref) || audience._ref != \"audience-business\")][0] {\n    ...,\n    activeAnnouncement->{...},\n    \"mainNavigation\": \nmainNav->{\n  \n  \"topLevelMenuItems\": navigationMenu.topLevelMenuItems[] {\n    _type,\n    title,\n    _type == 'newHeader.topLevelLink' => {\n      linkType,\n      \"internalAnchor\": internalAnchor.internal,\n      \"reference\": internal->{ \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n },\n      external,\n      ssu,\n      newWindow,\n    },\n    \"submenuLists\": submenuLists[] {\n      submenuListTitle,\n      \"submenuListItems\": submenuListItems[] {\n        \n  ...\n,\n        \n_type == 'link.internal' => {\n  ...,\n  newWindow,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n}\n}\n,\n        \n  _type == 'link.ssu' => {\n  ...\n}\n,\n      }\n    },\n    \"additionalInfo\": additionalInfo[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    }\n  },\n  \"menuActions\": headerActions[] {\n    _type,\n    _key,\n    \"internalLink\": internalLink { \n_type == 'link.internal' => {\n  ...,\n  newWindow,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n}\n}\n },\n    \"externalLink\": externalLink { \n  ...\n },\n    \"ssuLink\": ssuLink { \n  _type == 'link.ssu' => {\n  ...\n}\n },\n    appstoreLink,\n    button,\n  },\n  \"mobileHeaderActionKey\": mobileHeaderActionKey,\n\n}\n,\n    mainFooter->{\nfootnote,\n'pageLinks': coalesce(pageLinks[] {\n  \n  ...\n,\n  \n_type == 'link.internal' => {\n  ...,\n  newWindow,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n}\n}\n,\n  \n  _type == 'link.ssu' => {\n  ...\n}\n,\n}, []),\n'socialLinks': coalesce(socialLinks[] {\n  \n  _type == 'link.social' => {\n    _type,\n    _key,\n    title,\n    url,\n    icon,\n  }\n,\n}, []),\n'legalLinks': coalesce(legalLinks[] {\n  \n  ...\n,\n  \n_type == 'link.internal' => {\n  ...,\n  newWindow,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n}\n}\n,\n  \n  _type == 'link.ssu' => {\n  ...\n}\n,\n}, []),\n},\n  },\n  \"defaultSeo\": *[_type == \"config.seo\"][0] {\n    \"siteTitle\": siteTitle[language == $locale][0].value,\n    \"favicon\": favicon.asset,\n    titleSeparator,\n    siteUrl,\n    withSiteTitle,\n    \"metaTitle\": seoSocial.metaTitle[language == $locale][0].value,\n    \"metaTitleFallback\": seoSocial.metaTitle[language == \"en-gb\"][0].value,\n    \"metaDescription\": seoSocial.metaDescription[language == $locale][0].value,\n    \"metaDescriptionFallback\": seoSocial.metaDescription[language == \"en-gb\"][0].value,\n    \"mobileAppDescription\": seoSocial.mobileAppDescription[language == $locale][0].value,\n    \"mobileAppDescriptionFallback\": seoSocial.mobileAppDescription[language == \"en-gb\"][0].value,\n    \"iosRatingValue\": seoSocial.iosRatingValue[language == $locale][0].value,\n    \"iosRatingCount\": seoSocial.iosRatingCount[language == $locale][0].value,\n    \"androidRatingValue\": seoSocial.androidRatingValue[language == $locale][0].value,\n    \"androidRatingCount\": seoSocial.androidRatingCount[language == $locale][0].value,\n    \"socialImage\": seoSocial.socialImage.asset,\n  },\n  \"appStores\": *[_type == \"config.appstores\"][0] {\n    \"modalTitleAppStoreDownload\": coalesce(\n      modalTitleAppStoreDownload[language == $locale][0].value,\n      modalTitleAppStoreDownload[language == \"en-gb\"][0].value,\n    ),\n    \"appleAppStore\": coalesce(\n      appleAppStore[language == $locale][0].value,\n      appleAppStore[language == \"en-gb\"][0].value,\n    ),\n    \"googlePlayStore\": coalesce(\n      googlePlayStore[language == $locale][0].value,\n      googlePlayStore[language == \"en-gb\"][0].value,\n    ),\n    \"huaweiAppGallery\": coalesce(\n      huaweiAppGallery[language == $locale][0].value,\n      huaweiAppGallery[language == \"en-gb\"][0].value,\n    ),\n    \"appleAppStoreBadge\": coalesce(\n      appleAppStoreBadge[language == $locale][0].value.asset->url,\n      appleAppStoreBadge[language == \"en-gb\"][0].value.asset->url,\n    ),\n    \"googlePlayStoreBadge\": coalesce(\n      googlePlayStoreBadge[language == $locale][0].value.asset->url,\n      googlePlayStoreBadge[language == \"en-gb\"][0].value.asset->url,\n    ),\n    \"huaweiAppGalleryBadge\": coalesce(\n      huaweiAppGalleryBadge[language == $locale][0].value.asset->url,\n      huaweiAppGalleryBadge[language == \"en-gb\"][0].value.asset->url,\n    ),\n  },\n  \"social\": *[_type == \"config.social\"][0] {\n    \"Facebook\": Facebook[language == $locale][0].value,\n    \"FacebookAPIKey\": FacebookAPIKey[language == $locale][0].value,\n    \"Instagram\": Instagram[language == $locale][0].value,\n    \"LinkedIn\": LinkedIn[language == $locale][0].value,\n    \"Twitter\": Twitter[language == $locale][0].value,\n    \"YouTube\": YouTube[language == $locale][0].value,\n    \"TikTok\": TikTok[language == $locale][0].value,\n  },\n  \"slugs\": {\n    \"blog\": *[_id == $blogSingletonDocId][0].slug.current,\n    \"careers\": *[_id == $careersSingletonDocId][0].slug.current,\n    \"pressReleases\": *[_id == $pressReleaseSingletonDocId][0].slug.current,\n  },\n  \"fallbackImages\": *[_type == \"config.placeholderImages\"][0] {\n    \"press\": defaultImagePress {\n      fit,\n      alt,\n      asset,\n    },\n    \"resource\": defaultImageResources {\n      fit,\n      alt,\n      asset\n    }\n  }\n}:{\"locale\":\"en-us\",\"blogSingletonDocId\":\"singleton-pages-en-us-about-food-waste-blog-home\",\"careersSingletonDocId\":\"singleton-careerPages-en-us-careers-home\",\"pressReleaseSingletonDocId\":\"singleton-pages-en-us-press-home\"}":3,"sanity-secure:{\n    \"page\": *[\n    !(_type in []) &&\n    language == $locale &&\n    slug.current == $slug &&\n    (!defined(audience._ref) || audience._ref != \"audience-business\") &&\n    !defined(parent) &&\n    !defined(parent->parent) &&\n    !defined(parent->parent->parent)\n  ][0] {\n      \n  \n  _id,\n  _type,\n  title,\n  browserLocaleRedirect,\n  parent,\n  language,\n  pageVisibility,\n  seoSocial,\n  hideHeader,\n  \"_translations\": *[_type == \"translation.metadata\" && references(^._id)].translations[].value->{\n    title,\n    \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n,\n    language\n  }\n,\n  content[] {\n    \n  ...,\n  content[] {\n    \n  ...,\n  _type == \"modularContentBlocks.inner.title\"=>{\ntitle[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n},\npreTitle[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n},\ndescription[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n}\n},_type == \"modularContentBlocks.inner.baseText\"=>{\n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n},_type == \"modularContentBlocks.inner.buttonGroup\"=>{\n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n},_type == \"modularContentBlocks.inner.salesforceForms\"=>{\n  salesforceForm->{\n  ...,\n  fieldsTexts {\n    ...,\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n    },\n  },\n  platformOptions {\n    ...,\n    platformOptionsValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n    },\n  },\n  blockerInputTexts {\n    ...,\n    blockerValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n    },\n  }\n}},_type == \"modularContentBlocks.inner.faq\"=>{\n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n},_type == \"modularContentBlocks.inner.statistics\"=>{\n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n },_type == \"modularContentBlocks.inner.people\"=>{\n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n},_type == \"modularContentBlocks.inner.ticker\"=>{\n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n},_type == \"modularContentBlocks.inner.callout\"=>{\n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n },_type == \"modularContentBlocks.inner.forms\"=>{\n  ...,\n  form->{\n    \n  ...,\n  notifications[] {\n    _type,\n    _key,\n  },\n  fields[] {\n    ...,\n    richValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    },\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    }\n  },\n  confirmation {\n    \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  contentBlocks[] {\n    \n  ...,\n  _type == \"modularContentBlocks.inner.buttonGroup\" => {\n    \n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.people\" => {\n    \n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n\n  },\n  _type == \"modularContentBlocks.inner.title\" => {\n    \n  ...,\n  title[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.baseText\" => {\n    \n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.faq\" => {\n    \n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n\n  },\n  _type == \"modularContentBlocks.inner.statistics\" => {\n    \n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n \n  },\n  _type == \"modularContentBlocks.inner.callout\" => {\n    \n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n \n  },\n  _type == \"modularContentBlocks.inner.ticker\" => {\n    \n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.video\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.profilePicture\" => {\n    ...,\n    \"person\": person->\n  },\n  _type == \"modularContentBlocks.inner.partnerLogo\" => {\n    ...,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    }\n  },\n  _type == \"modularContentBlocks.inner.listing\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.tiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n\n  },\n  _type == \"modularContentBlocks.inner.nudge\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.solutionTiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n\n  },\n  _type == \"modularContentBlocks.inner.campaignCounter\" => {\n    \n  },\n  _type == \"modularContentBlocks.outer.privacyControls\" => {\n    \n  ...,\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.forms\" => {\n    \n  ...,\n  form->{\n    _id,\n    title,\n    submitButtonText,\n    fields[] {\n      ...,\n      richValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    confirmation {\n      \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.salesforceForms\" => {\n    \n  ...,\n  salesforceForm->{\n    _id,\n    title,\n    formUrl,\n    formOid,\n    productInterest,\n    submitButtonText,\n    fieldsTexts {\n      ...,\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    platformOptions {\n      ...,\n      platformOptionsValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    blockerInputTexts {\n      ...,\n      blockerValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  }\n\n  }\n\n  }\n\n  }\n\n  },\n},_type == \"modularContentBlocks.inner.profilePicture\"=>{\nperson->\n},_type == \"modularContentBlocks.inner.tiles\"=>{\n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n},_type == \"modularContentBlocks.inner.solutionTiles\"=>{\n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n}\n\n  },\n  _type == \"modularContentBlocks.outer.carouselSection\"=>{ \n  ...,\n  preCarouselContent[] {\n    ...,\n    person->,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    },\n },\n slides[] {\n  ...,\n  content[] {\n    ...,\n    person->,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    },\n  }\n }\n },_type == \"modularContentBlocks.outer.tickerSection\"=>{ \n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n },_type == \"modularContentBlocks.outer.stepsSection\"=>{ \n  ...,\n  slides[] {\n    ...,\n    content[] {\n      ...,\n      _type == \"modularContentBlocks.inner.buttonGroup\" => {\n        buttons[] {\n          ...,\n          link {\n            ...,\n            \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n          },\n        },\n      },\n    },\n  },\n  buttons[] {\n    ...,\n    link {\n      ...,\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      }\n    }\n },_type == \"modularContentBlocks.outer.cta\"=>{ \n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n },_type == \"modularContentBlocks.outer.careers\"=>{ \n  ...,\n  description[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n},\n  \"defaultResultsLabels\": *[_id == \"singleton-careerPages-en-gb-careers-home\" && language == \"en-gb\"]{\n  content[][_type == \"modularContentBlocks.outer.careers\"] {resultsLabels}\n  }\n },_type == \"modularContentBlocks.outer.solutionFinder\"=>{ \n  vendorTypes[]->{\n    _id,\n    _type,\n    title,\n    icon,\n  }\n },_type == \"modularContentBlocks.outer.supportSection\"=>{ \n  supportPath->{\n    ...,\n    \n    itemChoices[] {\n      ...,\n      faqsToDisplay[]->{\n        items[!($locale in coalesce(hiddenInLocales, []))] {\n          _key,\n          analyticsProperty,\n          \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n          \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n            \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      },\n      formToDisplay->{\n        \n  ...,\n  notifications[] {\n    _type,\n    _key,\n  },\n  fields[] {\n    ...,\n    richValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    },\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    }\n  },\n  confirmation {\n    \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  contentBlocks[] {\n    \n  ...,\n  _type == \"modularContentBlocks.inner.buttonGroup\" => {\n    \n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.people\" => {\n    \n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n\n  },\n  _type == \"modularContentBlocks.inner.title\" => {\n    \n  ...,\n  title[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.baseText\" => {\n    \n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.faq\" => {\n    \n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n\n  },\n  _type == \"modularContentBlocks.inner.statistics\" => {\n    \n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n \n  },\n  _type == \"modularContentBlocks.inner.callout\" => {\n    \n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n \n  },\n  _type == \"modularContentBlocks.inner.ticker\" => {\n    \n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.video\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.profilePicture\" => {\n    ...,\n    \"person\": person->\n  },\n  _type == \"modularContentBlocks.inner.partnerLogo\" => {\n    ...,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    }\n  },\n  _type == \"modularContentBlocks.inner.listing\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.tiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n\n  },\n  _type == \"modularContentBlocks.inner.nudge\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.solutionTiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n\n  },\n  _type == \"modularContentBlocks.inner.campaignCounter\" => {\n    \n  },\n  _type == \"modularContentBlocks.outer.privacyControls\" => {\n    \n  ...,\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.forms\" => {\n    \n  ...,\n  form->{\n    _id,\n    title,\n    submitButtonText,\n    fields[] {\n      ...,\n      richValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    confirmation {\n      \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.salesforceForms\" => {\n    \n  ...,\n  salesforceForm->{\n    _id,\n    title,\n    formUrl,\n    formOid,\n    productInterest,\n    submitButtonText,\n    fieldsTexts {\n      ...,\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    platformOptions {\n      ...,\n      platformOptionsValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    blockerInputTexts {\n      ...,\n      blockerValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  }\n\n  }\n\n  }\n\n  }\n\n      },\n      \n    itemChoices[] {\n      ...,\n      faqsToDisplay[]->{\n        items[!($locale in coalesce(hiddenInLocales, []))] {\n          _key,\n          analyticsProperty,\n          \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n          \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n            \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      },\n      formToDisplay->{\n        \n  ...,\n  notifications[] {\n    _type,\n    _key,\n  },\n  fields[] {\n    ...,\n    richValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    },\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    }\n  },\n  confirmation {\n    \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  contentBlocks[] {\n    \n  ...,\n  _type == \"modularContentBlocks.inner.buttonGroup\" => {\n    \n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.people\" => {\n    \n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n\n  },\n  _type == \"modularContentBlocks.inner.title\" => {\n    \n  ...,\n  title[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.baseText\" => {\n    \n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.faq\" => {\n    \n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n\n  },\n  _type == \"modularContentBlocks.inner.statistics\" => {\n    \n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n \n  },\n  _type == \"modularContentBlocks.inner.callout\" => {\n    \n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n \n  },\n  _type == \"modularContentBlocks.inner.ticker\" => {\n    \n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.video\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.profilePicture\" => {\n    ...,\n    \"person\": person->\n  },\n  _type == \"modularContentBlocks.inner.partnerLogo\" => {\n    ...,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    }\n  },\n  _type == \"modularContentBlocks.inner.listing\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.tiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n\n  },\n  _type == \"modularContentBlocks.inner.nudge\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.solutionTiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n\n  },\n  _type == \"modularContentBlocks.inner.campaignCounter\" => {\n    \n  },\n  _type == \"modularContentBlocks.outer.privacyControls\" => {\n    \n  ...,\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.forms\" => {\n    \n  ...,\n  form->{\n    _id,\n    title,\n    submitButtonText,\n    fields[] {\n      ...,\n      richValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    confirmation {\n      \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.salesforceForms\" => {\n    \n  ...,\n  salesforceForm->{\n    _id,\n    title,\n    formUrl,\n    formOid,\n    productInterest,\n    submitButtonText,\n    fieldsTexts {\n      ...,\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    platformOptions {\n      ...,\n      platformOptionsValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    blockerInputTexts {\n      ...,\n      blockerValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  }\n\n  }\n\n  }\n\n  }\n\n      },\n      \n    itemChoices[] {\n      ...,\n      faqsToDisplay[]->{\n        items[!($locale in coalesce(hiddenInLocales, []))] {\n          _key,\n          analyticsProperty,\n          \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n          \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n            \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      },\n      formToDisplay->{\n        \n  ...,\n  notifications[] {\n    _type,\n    _key,\n  },\n  fields[] {\n    ...,\n    richValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    },\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    }\n  },\n  confirmation {\n    \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  contentBlocks[] {\n    \n  ...,\n  _type == \"modularContentBlocks.inner.buttonGroup\" => {\n    \n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.people\" => {\n    \n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n\n  },\n  _type == \"modularContentBlocks.inner.title\" => {\n    \n  ...,\n  title[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.baseText\" => {\n    \n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.faq\" => {\n    \n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n\n  },\n  _type == \"modularContentBlocks.inner.statistics\" => {\n    \n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n \n  },\n  _type == \"modularContentBlocks.inner.callout\" => {\n    \n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n \n  },\n  _type == \"modularContentBlocks.inner.ticker\" => {\n    \n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.video\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.profilePicture\" => {\n    ...,\n    \"person\": person->\n  },\n  _type == \"modularContentBlocks.inner.partnerLogo\" => {\n    ...,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    }\n  },\n  _type == \"modularContentBlocks.inner.listing\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.tiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n\n  },\n  _type == \"modularContentBlocks.inner.nudge\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.solutionTiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n\n  },\n  _type == \"modularContentBlocks.inner.campaignCounter\" => {\n    \n  },\n  _type == \"modularContentBlocks.outer.privacyControls\" => {\n    \n  ...,\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.forms\" => {\n    \n  ...,\n  form->{\n    _id,\n    title,\n    submitButtonText,\n    fields[] {\n      ...,\n      richValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    confirmation {\n      \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.salesforceForms\" => {\n    \n  ...,\n  salesforceForm->{\n    _id,\n    title,\n    formUrl,\n    formOid,\n    productInterest,\n    submitButtonText,\n    fieldsTexts {\n      ...,\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    platformOptions {\n      ...,\n      platformOptionsValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    blockerInputTexts {\n      ...,\n      blockerValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  }\n\n  }\n\n  }\n\n  }\n\n      },\n      \n    }\n  \n    }\n  \n    }\n  ,\n  }\n },_type == \"modularContentBlocks.outer.signatureGenerator\"=>{ \n  signatureGeneratorFragment->{\n    ...,\n    },\n    \"defaultPronouns\": *[_type == \"fragments.signatureGenerator\" && language == \"en-gb\"]{\n      pronouns,\n    }\n },_type == \"modularContentBlocks.outer.referral\"=>{ \n  ...,\n  descriptionUnhappy[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n },_type == \"modularContentBlocks.outer.cookieList\"=>{ \n  \u002F\u002F No fields needed for CookieList\n },_type == \"modularContentBlocks.outer.locationFinder\"=>{ \n  ...,\n  \"staticTranslations\": *[\n      _type == \"fragments.surpriseBag\" && language == $locale][0],\n },_type == \"modularContentBlocks.outer.privacyControls\"=>{ \n  ...,\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n },\n  _type == \"modularContentBlocks.inner.title\"=>{\ntitle[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n},\npreTitle[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n},\ndescription[] {\n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n}\n},_type == \"modularContentBlocks.inner.baseText\"=>{\n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n},_type == \"modularContentBlocks.inner.buttonGroup\"=>{\n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n},_type == \"modularContentBlocks.inner.salesforceForms\"=>{\n  salesforceForm->{\n  ...,\n  fieldsTexts {\n    ...,\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n    },\n  },\n  platformOptions {\n    ...,\n    platformOptionsValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n    },\n  },\n  blockerInputTexts {\n    ...,\n    blockerValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n    },\n  }\n}},_type == \"modularContentBlocks.inner.faq\"=>{\n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n},_type == \"modularContentBlocks.inner.statistics\"=>{\n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n },_type == \"modularContentBlocks.inner.people\"=>{\n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n},_type == \"modularContentBlocks.inner.ticker\"=>{\n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n},_type == \"modularContentBlocks.inner.callout\"=>{\n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n },_type == \"modularContentBlocks.inner.forms\"=>{\n  ...,\n  form->{\n    \n  ...,\n  notifications[] {\n    _type,\n    _key,\n  },\n  fields[] {\n    ...,\n    richValidationMessage[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    },\n    noteText[] {\n      \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n    }\n  },\n  confirmation {\n    \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  contentBlocks[] {\n    \n  ...,\n  _type == \"modularContentBlocks.inner.buttonGroup\" => {\n    \n  ...,\n  buttons[] {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.people\" => {\n    \n    people[]->{\n      ...,\n      \n  \"jobTitle\": coalesce(\n    jobTitle[language == $locale][0].value,\n    jobTitle[language == \"en-gb\"][0].value,\n  )\n\n    }\n\n  },\n  _type == \"modularContentBlocks.inner.title\" => {\n    \n  ...,\n  title[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.baseText\" => {\n    \n  text[] {\n  \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n,\n  tableData {\n      ...,\n      rows[] {\n        ...,\n        cells[] {\n          ...,\n          text[] {\n            \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n          }\n        }\n      }\n    },\n  rows[] {\n      ...,\n      cells[] {\n        ...,\n        value[] {\n          \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n        }\n      }\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.faq\" => {\n    \n  \"items\": coalesce(\n    onetime.items[!($locale in coalesce(hiddenInLocales, []))] {\n    _key,\n    analyticsProperty,\n    question,\n    answer[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    existing->items[!($locale in coalesce(hiddenInLocales, []))] {\n      _key,\n      \n  \"analyticsProperty\": coalesce(\n    analyticsProperty[language == $locale][0].value,\n    analyticsProperty[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"question\": coalesce(\n    question[language == $locale][0].value,\n    question[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"answer\": coalesce(\n    answer[language == $locale][0].value,\n    answer[language == \"en-gb\"][0].value,\n  )\n[] {\n        \n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n,\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  )\n\n  },\n  _type == \"modularContentBlocks.inner.statistics\" => {\n    \n   ...,\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n   \"items\": coalesce(items[] {\n      _type==\"onetime\" => {\n...,\n},\n      _type==\"existing\"=> @->{\n        icon,\n        \n  \"prefix\": coalesce(\n    prefix[language == $locale][0].value,\n    prefix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"stat\": coalesce(\n    stat[language == $locale][0].value,\n    stat[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"suffix\": coalesce(\n    suffix[language == $locale][0].value,\n    suffix[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"context\": coalesce(\n    context[language == $locale][0].value,\n    context[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"content\": coalesce(\n    content[language == $locale][0].value,\n    content[language == \"en-gb\"][0].value,\n  )\n,\n        \n  \"source\": coalesce(\n    source[language == $locale][0].value,\n    source[language == \"en-gb\"][0].value,\n  )\n,\n      }\n    }, [])\n \n  },\n  _type == \"modularContentBlocks.inner.callout\" => {\n    \n   ...,\n   \"content\": coalesce(content[] {\n      ...,\n      title[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      subtitle[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n   }, false),\n   \"button\": coalesce(button[][0] {\n      ...,\n      link {\n        \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n      },\n  }, false),\n \n  },\n  _type == \"modularContentBlocks.inner.ticker\" => {\n    \n  ...,\n  items[] {\n    _type == 'onetime' => {\n      name\n    },\n    _type == 'existing' => @->{\n      name\n    }\n  },\n  logos[]->{\n    ...,\n    \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n    \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.video\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.profilePicture\" => {\n    ...,\n    \"person\": person->\n  },\n  _type == \"modularContentBlocks.inner.partnerLogo\" => {\n    ...,\n    partnerLogo->{\n      ...,\n      \n  \"partnerName\": coalesce(\n    partnerName[language == $locale][0].value,\n    partnerName[language == \"en-gb\"][0].value,\n  )\n,\n      \n  \"partnerLogo\": coalesce(\n    partnerLogo[language == $locale][0].value,\n    partnerLogo[language == \"en-gb\"][0].value,\n  )\n,\n    }\n  },\n  _type == \"modularContentBlocks.inner.listing\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.tiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n\n  },\n  _type == \"modularContentBlocks.inner.nudge\" => {\n    \n  },\n  _type == \"modularContentBlocks.inner.solutionTiles\" => {\n    \n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n\n  },\n  _type == \"modularContentBlocks.inner.campaignCounter\" => {\n    \n  },\n  _type == \"modularContentBlocks.outer.privacyControls\" => {\n    \n  ...,\n  description[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.forms\" => {\n    \n  ...,\n  form->{\n    _id,\n    title,\n    submitButtonText,\n    fields[] {\n      ...,\n      richValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      },\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    confirmation {\n      \n  \"confirmationType\": coalesce(confirmationType, type),\n  contentRedirectUrl,\n  contentMessage[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  }\n\n    }\n  }\n\n  },\n  _type == \"modularContentBlocks.inner.salesforceForms\" => {\n    \n  ...,\n  salesforceForm->{\n    _id,\n    title,\n    formUrl,\n    formOid,\n    productInterest,\n    submitButtonText,\n    fieldsTexts {\n      ...,\n      noteText[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    platformOptions {\n      ...,\n      platformOptionsValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    },\n    blockerInputTexts {\n      ...,\n      blockerValidationMessage[] {\n        \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n      }\n    }\n  }\n\n  }\n\n  }\n\n  }\n\n  },\n},_type == \"modularContentBlocks.inner.profilePicture\"=>{\nperson->\n},_type == \"modularContentBlocks.inner.tiles\"=>{\n...,\ntiles[] {\n  ...,\n  content[] {\n    \n...,\nchildren[] {\n  ...,\n  \n  \"text\": select(\n    dataType == \"statistics\" => coalesce(\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == $locale][0].value,\n      *[_type == \"statistics\" && _id == coalesce(^.text._ref, ^.text)][0].stat[language == \"en-gb\"][0].value,\n    ),\n    dataType == \"people\" => *[\n      _type == \"people\" && _id == coalesce(^.text._ref, ^.text)\n    ][0].name,\n    coalesce(^.text._ref, ^.text, text)\n  ),\n\n},\nmarkDefs[] {\n  ...,\n  reference->{\n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n},\n  newWindow,\n  'internalAnchor': internalAnchor.internal\n}\n\n  },\n  link {\n    ...,\n    link {\n      \n  ...,\n  linkType == 'internal' => {\n    'internalAnchor': internalAnchor.internal,\n    'reference': internal->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n,\n    }\n  }\n\n    },\n  },\n  \u002F\u002F Make sure that links are not included if containsLink is false\n  containsLink == false => {\n    \"link\": null,\n  }\n}\n},_type == \"modularContentBlocks.inner.solutionTiles\"=>{\n...,\ntiles[] {\n  ...,\n  link {\n    ...,\n    link->{\n      \n  _type,\n  slug,\n  \"locale\": language,\n  \"audienceRef\": audience._ref,\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n\n\n    },\n  },\n}\n}\n\n  },\n  \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n,\n\n    }\n  }:{\"locale\":\"en-us\",\"greatGrandParent\":null,\"grandParent\":null,\"parent\":null,\"slug\":\"blog\"}":328,"sanity-secure:{\n    \"totalPosts\": count(*[_type == $type && (!defined($locale) || language == $locale) && (!defined(audience._ref) || audience._ref != \"audience-business\") && (!defined($activeFilter) || references(*[_type==$taxonomy && (slug.current in $activeFilter)]._id))]),\n    \"posts\": *[_type == $type && (!defined($locale) || language == $locale) && (!defined(audience._ref) || audience._ref != \"audience-business\") && (!defined($activeFilter) || references(*[_type==$taxonomy && (slug.current in $activeFilter)]._id))] | order(publishedAt desc) [$sliceStart...$sliceEnd] {\n    _id,\n    _createdAt,\n    publishedAt,\n    updatedAt,\n    language,\n    title,\n    pretitle,\n    image,\n    excerpt,\n    migrated,\n    categories[]->{\n      title,\n      \"slug\": slug.current,\n    },\n    \"content\": pt::text(content),\n    \n  \"slug\": '\u002F'+slug.current,\n  defined(parent) => {\"slug\": '\u002F'+ parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent) => {\"slug\": '\u002F'+parent->parent->slug.current+'\u002F'+parent->slug.current+'\u002F'+slug.current},\n  defined(parent->parent->parent) => {\"slug\": '\u002F'+ parent->parent->parent->slug.current +'\u002F'+parent->parent->slug.current +'\u002F'+parent->slug.current+'\u002F'+slug.current}\n,\n    \"file\": file.asset->,\n    url\n    }\n  }:{\"type\":\"aboutFoodWaste.blog\",\"locale\":\"en-us\",\"page\":1,\"sliceStart\":0,\"sliceEnd\":12,\"activeFilter\":null,\"taxonomy\":\"aboutFoodWaste.blog.categories\",\"sanityKey\":\"listing_dh1qxb\"}":471,"sanity-secure:\n    *[ _type == $taxonomy && language == \"en-us\"] {\n      _id,\n      title,\n      \"slug\": slug.current,\n    }\n  :{\"taxonomy\":\"aboutFoodWaste.blog.categories\"}":619},{"appStores":4,"defaultSeo":10,"fallbackImages":26,"regionTheme":35,"slugs":321,"social":325},{"appleAppStore":5,"appleAppStoreBadge":6,"googlePlayStore":5,"googlePlayStoreBadge":7,"huaweiAppGallery":5,"huaweiAppGalleryBadge":8,"modalTitleAppStoreDownload":9},"https:\u002F\u002Ftgtg.onelink.me\u002FOGjG","https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002Fnqimd3nr\u002Fproduction\u002Fceed6a2b4247d22d0e6f9425cad1d5c39af762fe-480x160.png","https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002Fnqimd3nr\u002Fproduction\u002F68072d9f747a9e089548846cecc588ef52bb624e-540x160.png",null,"Download the app and start saving delicious food today",{"androidRatingCount":11,"androidRatingValue":12,"favicon":13,"iosRatingCount":16,"iosRatingValue":17,"metaDescription":8,"metaDescriptionFallback":18,"metaTitle":8,"metaTitleFallback":19,"mobileAppDescription":20,"mobileAppDescriptionFallback":20,"siteTitle":8,"siteUrl":21,"socialImage":22,"titleSeparator":24,"withSiteTitle":25},"2002465","4.8",{"_ref":14,"_type":15},"image-eb37301e40a80bb500e31e5a939924c582ad7744-512x512-png","reference","587778","4.9","The app that lets customers rescue unsold food from shops and restaurants to save it from going to waste. Try it today.","Join Our Food Waste Movement","Our app is the world's largest marketplace for surplus food. We help users rescue good food from going to waste, offering great value for money at local stores, cafes and restaurants.","https:\u002F\u002Ftoogoodtogo.com",{"_ref":23,"_type":15},"image-e45b68b658778f2849b920af8e626567ec51d94b-1440x818-jpg","–","append",{"press":27,"resource":31},{"alt":8,"asset":28,"fit":30},{"_ref":29,"_type":15},"image-b78d00b015d990a35bc429a7b3a849a300872fe5-512x340-png","cover",{"alt":32,"asset":33,"fit":30},"a collection of brochures with one that says 2022 in numbers",{"_ref":34,"_type":15},"image-21d8db28cd1bbe29c6c986dd4798ec9ec79ace1b-1024x680-png",{"_createdAt":36,"_id":37,"_rev":38,"_type":39,"_updatedAt":40,"activeAnnouncement":8,"homepage":41,"language":43,"mainFooter":44,"mainNav":146,"mainNavigation":148},"2024-02-06T12:02:28Z","singleton-theme-en-us","S2mxzCT7dq51nqm7vwud0T","theme","2024-07-02T08:23:41Z",{"_ref":42,"_type":15},"singleton-pages-en-us-homepage","en-us",{"footnote":8,"legalLinks":45,"pageLinks":96,"socialLinks":117},[46,55,60,65,70,75,80,85,91],{"_key":47,"_type":48,"newWindow":49,"otherLocales":50,"reference":51,"title":54},"f8119a1b1bf5","link.internal",true,false,{"_type":52,"audienceRef":8,"locale":43,"slug":53},"legalPages","\u002Flegal","Legal",{"_key":56,"_type":48,"newWindow":49,"otherLocales":50,"reference":57,"title":59},"6708b9b870b1",{"_type":52,"audienceRef":8,"locale":43,"slug":58},"\u002Flegal\u002Fprivacy","Privacy Policy",{"_key":61,"_type":48,"newWindow":49,"otherLocales":50,"reference":62,"title":64},"27a9f2676a90",{"_type":52,"audienceRef":8,"locale":43,"slug":63},"\u002Flegal\u002Fcookie-policy","Cookie Policy",{"_key":66,"_type":48,"newWindow":50,"otherLocales":50,"reference":67,"title":69},"10c9c20bc5f2",{"_type":52,"audienceRef":8,"locale":43,"slug":68},"\u002Flegal\u002Fterms-and-conditions-using-the-app","Terms & Conditions",{"_key":71,"_type":48,"newWindow":49,"otherLocales":50,"reference":72,"title":74},"173270383b82",{"_type":52,"audienceRef":8,"locale":43,"slug":73},"\u002Flegal\u002Fcontact-us","Contact us",{"_key":76,"_type":48,"newWindow":49,"otherLocales":50,"reference":77,"title":79},"5a9de968a793",{"_type":52,"audienceRef":8,"locale":43,"slug":78},"\u002Flegal\u002Fdsa-disclosure","DSA Disclosure",{"_key":81,"_type":48,"newWindow":49,"otherLocales":50,"reference":82,"title":84},"053b1f8cd505",{"_type":52,"audienceRef":8,"locale":43,"slug":83},"\u002Flegal\u002Fprivacy-settings","Do Not Sell or Share My Data",{"_key":86,"_type":48,"newWindow":49,"otherLocales":50,"reference":87,"title":90},"37636b5315eb",{"_type":88,"audienceRef":8,"locale":43,"slug":89},"pages","\u002Ftgtg-claims","Food Waste Sources",{"_key":92,"_type":93,"newWindow":49,"title":94,"url":95},"4431596f1003","link.external","Status","https:\u002F\u002Fstatus.toogoodtogo.com\u002F",[97,103,108,113],{"_key":98,"_type":48,"newWindow":8,"otherLocales":50,"reference":99,"title":102},"5b7e3a106f9e",{"_type":100,"audienceRef":8,"locale":43,"slug":101},"careerPages","\u002Fcareers","Careers",{"_key":104,"_type":48,"newWindow":8,"otherLocales":50,"reference":105,"title":107},"50962d914fe4",{"_type":88,"audienceRef":8,"locale":43,"slug":106},"\u002Fpress","Press",{"_key":109,"_type":48,"newWindow":8,"otherLocales":50,"reference":110,"title":112},"78914bcedf91",{"_type":88,"audienceRef":8,"locale":43,"slug":111},"\u002Fsupport","Support",{"_key":114,"_type":93,"newWindow":49,"title":115,"url":116},"280fc737f6b5","Mystore","https:\u002F\u002Fstore.toogoodtogo.com\u002Flogin",[118,124,128,132,137,141],{"_key":119,"_type":120,"icon":121,"title":122,"url":123},"98a17a45c700","link.social","Linkedin","LinkedIn","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Ftoo-good-to-go",{"_key":125,"_type":120,"icon":126,"title":126,"url":127},"fd26a3b7a123","Instagram","https:\u002F\u002Fwww.instagram.com\u002Ftoogoodtogo.usa\u002F",{"_key":129,"_type":120,"icon":130,"title":130,"url":131},"5a6f37dc5cfe","Facebook","https:\u002F\u002Fwww.facebook.com\u002FtoogoodtogoUSA\u002F",{"_key":133,"_type":120,"icon":134,"title":135,"url":136},"7abf4217cfde","Tiktok","Tik Tok","https:\u002F\u002Fwww.tiktok.com\u002F@toogoodtogo",{"_key":138,"_type":120,"icon":139,"title":139,"url":140},"c949f075e758","Youtube","https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCBonm_44z7UL0OvhHksBCAw",{"_key":142,"_type":120,"icon":143,"title":144,"url":145},"31d5e2c397ef","X_icon","X","https:\u002F\u002Fwww.twitter.com\u002Ftoogoodtogo",{"_ref":147,"_type":15},"AQVKCBGGRXIlMTy62nqL6C",{"menuActions":149,"mobileHeaderActionKey":151,"topLevelMenuItems":170},[150,158,165],{"_key":151,"_type":152,"appstoreLink":153,"button":8,"externalLink":8,"internalLink":8,"ssuLink":8},"b31127a48261","newHeaderAction.appstoreLink",{"_type":154,"buttonColor":155,"buttonText":156,"variant":157},"appstoreLink","white","Download app","automatic",{"_key":159,"_type":160,"appstoreLink":8,"button":8,"externalLink":8,"internalLink":8,"ssuLink":161},"d3080ad0695e","newHeaderAction.ssuLink",{"_type":162,"newWindow":49,"title":163,"url":164},"link.ssu","Sign up as Business","https:\u002F\u002Fstore.toogoodtogo.com\u002Fonboarding",{"_key":166,"_type":167,"appstoreLink":8,"button":8,"externalLink":168,"internalLink":8,"ssuLink":8},"ab3a15158657","newHeaderAction.externalLink",{"_type":93,"newWindow":49,"title":169,"url":116},"MyStore login",[171,250],{"_type":172,"additionalInfo":8,"submenuLists":173,"title":249},"newHeader.topLevelEntry",[174,199,230],{"submenuListItems":175,"submenuListTitle":198},[176,181,186,192],{"_key":177,"_type":48,"newWindow":50,"otherLocales":50,"reference":178,"title":180},"b7256c5acbef",{"_type":88,"audienceRef":8,"locale":43,"slug":179},"\u002Fhow-to-collect-too-good-to-go","How to collect a Too Good To Go surprise bag?",{"_key":182,"_type":48,"newWindow":50,"otherLocales":50,"reference":183,"title":185},"7b7825c8941e",{"_type":88,"audienceRef":8,"locale":43,"slug":184},"\u002Fhow-does-the-app-work","How does the app work?",{"_key":187,"_type":48,"newWindow":50,"otherLocales":50,"reference":188,"title":191},"d7cca2808225",{"_type":189,"audienceRef":8,"locale":43,"slug":190},"aboutUs.pages","\u002Fabout-us\u002Fin-my-area","Too Good To Go in my area",{"_key":193,"_type":48,"newWindow":50,"otherLocales":50,"reference":194,"title":197},"d2321ab19b10",{"_type":195,"audienceRef":8,"locale":43,"slug":196},"surpriseBagHome","\u002Ffind","Save good food near you","The app",{"submenuListItems":200,"submenuListTitle":229},[201,206,211,216,219,224],{"_key":202,"_type":48,"newWindow":50,"otherLocales":50,"reference":203,"title":205},"9732bb328b6a",{"_type":189,"audienceRef":8,"locale":43,"slug":204},"\u002Fabout-us","About Too Good To Go",{"_key":207,"_type":48,"newWindow":50,"otherLocales":50,"reference":208,"title":210},"ac2fe81a6053",{"_type":189,"audienceRef":8,"locale":43,"slug":209},"\u002Fabout-us\u002Four-history","Our history",{"_key":212,"_type":48,"newWindow":50,"otherLocales":50,"reference":213,"title":215},"cc89fcc93d23",{"_type":189,"audienceRef":8,"locale":43,"slug":214},"\u002Fabout-us\u002Fesg","ESG",{"_key":217,"_type":48,"newWindow":50,"otherLocales":50,"reference":218,"title":102},"0c358724c797",{"_type":100,"audienceRef":8,"locale":43,"slug":101},{"_key":220,"_type":48,"newWindow":50,"otherLocales":50,"reference":221,"title":223},"1037fa14f9ca",{"_type":189,"audienceRef":8,"locale":43,"slug":222},"\u002Fabout-us\u002Feducation-hub","Education hub",{"_key":225,"_type":48,"newWindow":50,"otherLocales":50,"reference":226,"title":228},"9c393af11ea7",{"_type":88,"audienceRef":8,"locale":43,"slug":227},"\u002Fimpact-report","Impact report","About us",{"submenuListItems":231,"submenuListTitle":248},[232,238,243],{"_key":233,"_type":48,"newWindow":50,"otherLocales":50,"reference":234,"title":237},"54eaf498f7a6",{"_type":235,"audienceRef":8,"locale":43,"slug":236},"aboutFoodWaste.pages","\u002Fabout-food-waste","Food waste facts",{"_key":239,"_type":48,"newWindow":50,"otherLocales":50,"reference":240,"title":242},"cf761fbe8e3f",{"_type":88,"audienceRef":8,"locale":43,"slug":241},"\u002Fresources","Resources",{"_key":244,"_type":48,"newWindow":50,"otherLocales":50,"reference":245,"title":247},"65154cd55a3f",{"_type":88,"audienceRef":8,"locale":43,"slug":246},"\u002Fblog","Too Good To Go blog","About food waste","About",{"_type":172,"additionalInfo":251,"submenuLists":295,"title":320},[252,264,281],{"_key":253,"_type":254,"children":255,"markDefs":262,"style":263},"3fdc88e12206","block",[256],{"_key":257,"_type":258,"marks":259,"text":261},"533e0f75264b","span",[260],"strong","Current stats",[],"normal",{"_key":265,"_type":254,"children":266,"markDefs":280,"style":263},"2acb78382842",[267,271,276],{"_key":268,"_type":258,"marks":269,"text":270},"bcf236ab58a3",[],"\n",{"_key":272,"_type":273,"dataType":274,"text":275},"57cdc8edcaf4","data","statistics","120 million",{"_key":277,"_type":258,"marks":278,"text":279},"2fca042e3d55",[]," registered users on the Too Good To Go app.\n",[],{"_key":282,"_type":254,"children":283,"markDefs":294,"style":263},"5b7478b4863e",[284,287,290],{"_key":277,"_type":258,"marks":285,"text":286},[],"And ",{"_key":288,"_type":273,"dataType":274,"text":289},"bc032c2b02ec","180,000",{"_key":291,"_type":258,"marks":292,"text":293},"301cb2e013ea",[]," businesses.",[],[296],{"submenuListItems":297,"submenuListTitle":319},[298,304,309,314],{"_key":299,"_type":48,"newWindow":50,"otherLocales":50,"reference":300,"title":303},"fc776181be24",{"_type":301,"audienceRef":8,"locale":43,"slug":302},"businessSolutions.solution","\u002Fsurplus-food-marketplace","Marketplace surprise bags",{"_key":305,"_type":48,"newWindow":50,"otherLocales":50,"reference":306,"title":308},"659448c75521",{"_type":301,"audienceRef":8,"locale":43,"slug":307},"\u002Fplatform","Too Good To Go Platform",{"_key":310,"_type":48,"newWindow":50,"otherLocales":50,"reference":311,"title":313},"e6f8af094b56",{"_type":301,"audienceRef":8,"locale":43,"slug":312},"\u002Flook-smell-taste","Date Labeling initiative",{"_key":315,"_type":48,"newWindow":50,"otherLocales":50,"reference":316,"title":318},"edc94aab8074",{"_type":88,"audienceRef":8,"locale":43,"slug":317},"\u002Ffood-waste-solution","Find out more","Business solutions","Business",{"blog":322,"careers":323,"pressReleases":324},"blog","careers","press",{"Facebook":131,"FacebookAPIKey":326,"Instagram":127,"LinkedIn":123,"TikTok":8,"Twitter":327,"YouTube":8},"3506013279621180","https:\u002F\u002Ftwitter.com\u002Ftoogoodtogo",{"page":329},{"_id":330,"_translations":331,"_type":88,"browserLocaleRedirect":8,"content":380,"hideHeader":8,"language":43,"pageVisibility":464,"parent":8,"seoSocial":465,"slug":246,"title":334},"singleton-pages-en-us-about-food-waste-blog-home",[332,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,376,378],{"language":333,"slug":246,"title":334},"en-gb","Blog Home",{"language":336,"slug":246,"title":334},"en-au",{"language":338,"slug":246,"title":334},"de-at",{"language":340,"slug":246,"title":334},"nl-be",{"language":342,"slug":246,"title":334},"fr-be",{"language":344,"slug":246,"title":334},"en-ca",{"language":346,"slug":246,"title":334},"fr-ca",{"language":348,"slug":246,"title":334},"da",{"language":350,"slug":246,"title":334},"fr",{"language":352,"slug":246,"title":334},"de",{"language":354,"slug":246,"title":334},"en-ie",{"language":356,"slug":246,"title":334},"it",{"language":358,"slug":246,"title":334},"no",{"language":360,"slug":246,"title":334},"pl",{"language":362,"slug":246,"title":334},"pt",{"language":364,"slug":246,"title":334},"es",{"language":366,"slug":246,"title":334},"sv",{"language":368,"slug":246,"title":334},"de-ch",{"language":370,"slug":246,"title":334},"fr-ch",{"language":372,"slug":246,"title":334},"it-ch",{"language":374,"slug":246,"title":334},"nl",{"language":43,"slug":246,"title":334},{"language":377,"slug":246,"title":334},"en-nz",{"language":379,"slug":246,"title":334},"ja",[381,418,433],{"_key":382,"_type":383,"content":384,"mediaType":415,"theme":416,"variant":417},"d885551c8182","modularContentBlocks.outer.subHero",[385],{"_key":386,"_type":387,"description":388,"preTitle":395,"size":404,"title":405,"variant":414},"7791d044bbbe","modularContentBlocks.inner.title",[389],{"_key":390,"_type":254,"children":391,"markDefs":8,"style":263},"2cc41b905200",[392],{"_key":393,"_type":258,"text":394},"28ec33cdf442","Get inspired to do good with the latest recipes, tips, initiatives and partner announcements. We believe that every meal matters.  Reducing food waste is good for society, good for the economy and good for the planet.",[396],{"_key":397,"_type":254,"children":398,"markDefs":403,"style":263},"p1VQnxzTS4jL7zX5XoVl0G",[399],{"_key":400,"_type":258,"marks":401,"text":402},"p1VQnxzTS4jL7zX5XoVl2k",[],"about food waste",[],"large",[406],{"_key":407,"_type":254,"children":408,"markDefs":413,"style":263},"GZyjLe6U5nxM0R9gPkFq04",[409],{"_key":410,"_type":258,"marks":411,"text":412},"GZyjLe6U5nxM0R9gPkFq2O",[],"too good to go blog",[],"center","image","dark","mediaNone",{"_key":419,"_type":420,"alignment":414,"content":421,"extraSpacing":50,"image":428,"subImage":430,"theme":431,"variant":432},"d1d906ca93a9","modularContentBlocks.outer.section",[422],{"_key":423,"_type":424,"listingDocument":425,"listingFilter_aboutFoodWaste_blog":426,"listingType":427},"a24ad92a27e3","modularContentBlocks.inner.listing","aboutFoodWaste.blog","aboutFoodWaste.blog.categories","listing",{"_type":429,"fit":30},"imageWithAlt",{"_type":429,"fit":30},"light","noImage",{"_key":434,"_type":435,"buttons":436,"content":440,"theme":416},"b245c238a8d5","modularContentBlocks.outer.cta",[437],{"_key":438,"_type":154,"buttonColor":155,"buttonText":439,"link":8,"variant":157},"109350487229","Download the app",[441,453],{"_key":442,"_type":387,"size":443,"title":444,"variant":443},"2c2d29a52b6a","default",[445],{"_key":446,"_type":254,"children":447,"markDefs":452,"style":263},"GZyjLe6U5nxM0R9gPkFq4i",[448],{"_key":449,"_type":258,"marks":450,"text":451},"GZyjLe6U5nxM0R9gPkFq72",[],"start saving food today",[],{"_key":454,"_type":455,"text":456},"4ea9b9744fee","modularContentBlocks.inner.baseText",[457],{"_key":458,"_type":254,"children":459,"markDefs":463,"style":263},"cbb33e7e2a7a",[460],{"_key":461,"_type":258,"marks":462,"text":20},"a49762e422b9",[],[],"public",{"metaDescription":466,"metaTitle":467,"socialImage":468},"Featuring recipes, tips, initiatives and partner activities that we share with the world. We're aiming to inspire and empower everyone to reduce food waste.","Too Good To Go Blog | Recipes, Tips and Food Waste Initiatives",{"_type":415,"asset":469},{"_ref":470,"_type":15},"image-a0dee6f21dadf212809ad237ad348cfcff9a3c8c-3475x2317-jpg",{"posts":472,"totalPosts":618},[473,486,498,515,526,538,549,562,574,585,596,607],{"_createdAt":474,"_id":475,"categories":8,"content":476,"excerpt":477,"file":8,"image":478,"language":43,"migrated":8,"pretitle":482,"publishedAt":483,"slug":484,"title":485,"updatedAt":8,"url":8},"2026-09-28T18:28:20Z","9f38e062-b849-4e39-a643-c130ad5f016e","Every food business that prepares fresh product has to commit to inventory before it knows what will sell, which means the volume on the shelf at 10 a.m. reflects a forecast rather than a fact. Bakers set production the night before, grocery buyers order against a week of expected traffic, and quick service operators keep the case stocked through the final hour because an empty display sends customers somewhere else. The predictable outcome is a quantity of good food left at closing, and that food has already absorbed labor, packaging, and cost of goods by the time it goes unsold.\n\nIn the United States, surplus food carried a value of $381 billion in 2024, and $240 billion of that sat inside food industry sectors rather than in household kitchens. Those figures describe an operating reality rather than a series of mistakes, which is why the practical question for most operators is not how to eliminate surplus but how to recover value from it.\n\nToo Good To Go is the world's largest marketplace for surplus food, connecting businesses that have unsold product at the end of service with local customers who want to buy it at a discount. Store teams pack what is left into a Surprise Bag and list it in the app with a pickup window that fits their own closing schedule. Customers reserve a bag before they arrive and collect it during that window, paying a fraction of retail for contents that vary with what the store has on hand that day.\n\nThe surprise element is what makes the model workable for operators, since a store can list a bag without committing to specific items in advance. Partners set their own bag price and pay a per-bag fee on each sale, keeping the balance as recovered revenue on inventory that would otherwise have been written off. The whole process sits inside the closing routine a team already runs, so the change is closer to a redirect than a new workflow.\n\nWhat follows is a look at what three partners in different verticals have recovered, drawn from their own reported results, so operators weighing a partnership can see the shape of the outcome rather than a projection.\n\nA New Jersey Pizza Shop Recovered $49,842 From Unsold Slices\n\nTony Boloney's three locations in New Jersey are built around bold flavors and a refusal to reheat day-old product, a standard that reliably left the team with surplus slices at close. Owner Mike Hauke had tried giving food away and donating leftovers, and while both had merit, neither scaled to the volume three busy shops produced every night.\n\nAfter partnering with Too Good To Go, the shops rescued 14,281 meals that would otherwise have gone unsold and earned $49,842 in revenue from those Surprise Bags. Of 1,507 surveyed customers, 48% said they were visiting Tony Boloney's for the first time through the app, which reframed the program from a waste solution into a customer acquisition channel. A portion of those customers also bought something in addition to their bag at pickup, spending an average of $12.79 on top of the Surprise Bag price.\n\nSetup took Hauke roughly two hours from signing up to going live, which mattered for a business with no appetite for a rollout that pulled managers off the floor.\n\n\"I just don't like the idea or thought of waste. It doesn't resonate well,\" Hauke said. \"Too Good To Go helps us be responsible operators while preventing waste and getting new people through the door.\"\n\nThe staff response tracked with his, since employees who had spent shifts making product they later discarded now had a place for it to go.\n\nA New York Bakery Turned End-of-Day Pastries Into $66,576\n\nBibble & Sip is a two-location bakery and café in New York City known for handmade pastries that blend Chinese-American and Asian flavor profiles with French technique. Product built to that standard has a short window, and the team faced the same closing-time question every bakery does, regardless of specialty or location.\n\nOwner and pastry chef Gary Chan chose Too Good To Go because the mission lined up with a commitment the bakery already held, and because the mechanics fit a small staff without adding steps. The results across the partnership came to 18,134 meals saved and $66,576 in recovered revenue, with 73% of surveyed customers saying they would return.\n\n\"Being on Too Good To Go has helped us reach many new customers who end up coming back for more,\" Chan said. \"It has been such a fun and positive way to connect with our community while helping reduce food waste.\"\n\nA Grocery Store Replaced a $3,000 Monthly Disposal Cost With Revenue\n\nPemberton Farms carried a surplus disposal cost of nearly $3,000 every month, a figure driven by the operating model rather than by error. The store produces fresh food daily, maintains full shelves through the day, and positions inventory ahead of demand across a large footprint staffed by roughly 150 employees.\n\nWhen Too Good To Go launched in the U.S., its team looked for a way to handle what remained at close without introducing friction during peak hours, since anything that slowed the front end during a rush was going to fail. The program was straightforward to implement and consistent to run, and it produced 12,280 meals sold and $47,659 recovered from inventory that would previously have been written off.\n\nGrocery brings a second effect that shows up less in food service, which is basket expansion at pickup. Across surveyed grocery partners, 41% of Too Good To Go customers bought something else in addition to their bag, with an average add-on purchase of $18.41, and 37% were first-time customers at that store.\n\nGrocery partners also reported an 87% repeat purchase intent and a 93.7% sell-through rate on listed bags.\n\nWhat Recovery Looks Like Across Three Verticals\n\nEach figure below is cumulative since that business joined, so the three cover different lengths of time.\n\nThe thread running through all three is that none of them changed how the business operated during the day. Surplus was already being dealt with at close, and the platform gave that step a destination that paid.\n\nRecovery scales with the number of bags a location can reliably fill, which is a function of how much fresh product a business prepares rather than how many doors it operates. A single high-volume bakery can out-recover a multi-unit restaurant group for that reason.\n\nWhat It Takes to Start Recovering Surplus\n\nThree businesses in different categories started from different problems and landed in a similar place. The surplus was already sitting there at close, and someone was already making a decision about it. What changed was where that food went and what came back.\n\nThe size of the return tracks how many bags a location can fill on an ordinary day. There is no subscription and no upfront platform cost, which means the commitment is your team's time at closing rather than a line in next year's budget.\n\nAcross the U.S., partners have recouped more than $156 million from food that would otherwise have gone unsold, with 35.7 million meals rescued along the way.\n\nEvery closing shift between now and the day you sign up ends the same way, with good food written off and the revenue inside it gone. Too Good To Go changes what happens in that last half hour, and getting set up takes hours rather than quarters. See how Too Good To Go works for food businesses and find out what your locations could recover.\n\n\n\n\n\n\n\nStart recovering revenue with Too Good To Go.\n\n\n\n\n\n\n\nFrequently Asked Questions\n\nWhat Is a Surprise Bag?\n\nA Surprise Bag is a discounted bundle of unsold food that a store packs at the end of service. Customers reserve it through the Too Good To Go app and collect it during a pickup window the store sets, without knowing the exact contents in advance.\n\nWho Decides What Goes In Each Surprise Bag?\n\nThe store team does. Staff fills each bag from whatever is left at close, which is why contents change from day to day and why the format works for surplus that varies.\n\nDoes Too Good To Go Cost Anything to Join?\n\nThere is no subscription and no upfront platform cost. Too Good To Go takes a fixed fee on each bag sold, so a partner only pays when a bag is bought.\n\nDoes This Require a POS or Inventory System Integration?\n\nNo integration is required to get started. Tools like the Surprise Bag Builder can connect with POS and inventory systems for partners who want surplus items flagged automatically, though a store can run the program without them.\n\nWill Discounted Bags Cannibalize Full-Price Sales?\n\nPartner data points the other way for most locations. Across grocery partners, 37% of Surprise Bag customers were visiting that store for the first time, and 41% bought something else at full price during pickup, spending an average of $18.41.\n\nWhat Kinds of Businesses Can Partner With Too Good To Go?\n\nGrocery stores, convenience stores, bakeries, cafés, and quick service restaurants all use the platform. Any business that prepares or stocks fresh food and holds unsold product at close is a candidate.\n\nCan I See My Impact Data?\n\nPartners have access to a live dashboard showing meals saved and the environmental impact behind them. Every Surprise Bag sold offsets 5.9 lbs of CO2e and keeps 30.1 sq ft of land and 214 gallons of water from being wasted.\n\nDoes This Replace Food Donation?\n\nIt works alongside it. Donation is a genuine good, and many partners continue donating while using Surprise Bags for the portion of surplus that donation programs cannot absorb on a daily schedule.","See how much Too Good To Go partners in pizza, grocery, and bakery recovered in revenue and meals saved, with real numbers to weigh before you sign on.",{"_type":429,"alt":479,"asset":480,"fit":30},"A Too Good To Go bakery partner.",{"_ref":481,"_type":15},"image-dc4be0737cb9a6c772ee59e22e2faad6fda2a0ca-1200x800-jpg","Too Good To Go Blog","2026-09-29T17:27:52.229Z","\u002Fblog\u002Fwhat-too-good-to-go-partners-recover","Inside the Numbers: What Too Good To Go Partners Are Recovering",{"_createdAt":487,"_id":488,"categories":8,"content":489,"excerpt":490,"file":8,"image":491,"language":43,"migrated":8,"pretitle":482,"publishedAt":495,"slug":496,"title":497,"updatedAt":8,"url":8},"2026-09-21T18:15:02Z","4f632456-5c63-441c-aa87-614ebc04155c","Most of the food that gets wasted at home was bought with good intentions. A bag of lentils slides behind a cereal box, a second jar of peanut butter joins the one you forgot you had, and months later, you find both while looking for something else.\n\nPantry organization usually gets talked about as a decorating project, with matching containers and a label maker, though the version that saves you money is a lot simpler than that. This guide covers how to see what you own, how to move older food where you will reach for it, and how to store dry goods so they stay good longer. Everything here works in a single apartment cabinet as well as it does in a walk-in pantry, and you can start with one shelf.\n\nWhy a Cluttered Pantry Quietly Leads to Wasted Food\n\nThe food you throw out is money you already spent. According to ReFED, a nonprofit that tracks food waste across the United States, consumers spend an average of $762 per person each year on food that goes to waste.\n\nReFED also finds that roughly a third of all the food consumers waste is groceries that never got eaten at home, with the rest coming from plate waste when people eat out. The share sitting in your own kitchen is the part you have the most control over.\n\nYour refrigerator gets opened several times a day, so you notice the spinach going limp eventually, and you have a chance to rescue it. A deep pantry shelf with things stacked two rows back gets a real look maybe twice a year, which is a long time for good food to wait its turn.\n\nThe same blind spot is what leads to buying a third box of rice, since you cannot remember from the aisle whether you already have any at home. Both halves of the problem come from the same source, which is that you cannot see what you own. Making everything visible takes care of both at once, so what you buy lines up with what you have and everything on the shelf stays in reach.\n\nHow to Take Stock of What You Already Own\n\nDoing the whole pantry in one go turns into an afternoon project most people quit halfway through. One shelf takes about fifteen minutes, and here is how to work through it.\n\nEmpty the shelf completely onto a counter or the kitchen table so you can see every item at once.\n\nGroup what you pulled out by type. This tends to be the moment people discover four half-used bottles of the same vinegar or a small personal collection of pasta shapes.\n\nSort into three piles. What you will eat, what is sealed and good but not something your household reaches for, and anything that has gone off.\n\nRe-home the middle pile. Sealed, unexpired food you know you will not use can go to a local food pantry.\n\nWrite down what goes back. A note on your phone, a whiteboard on the pantry door, or paper taped inside the cabinet all work equally well.\n\nKeep that last list loose, with categories and rough counts rather than a precise running total, because a list you have to maintain perfectly is a list you will abandon by week three. Something like \"pasta: 3 boxes, rice: 1 bag, canned tomatoes: 5\" tells you everything you need standing in the store.\n\nThis turns out to be the habit people reach for first when money gets tight. In a January 2026 survey by ReFED and YouGov, 87% of the consumers who said their grocery spending had gone up reported checking what they already had at home before shopping.\n\nHow to Move Older Food to the Front\n\nThe habit that does the most work here has a name, first in, first out (FIFO), and it means the oldest food sits where you reach it first while newer food goes behind. Grocery stores run their shelves this way for a reason, and the same logic works at home on a much smaller scale.\n\nThe routine takes about thirty seconds when you are unpacking groceries.\n\nPull the existing cans and boxes forward before anything new touches the shelf.\n\nPut the new items behind them, so reaching for whatever is closest means reaching for whatever has been there longest.\n\nDo it during unpacking, never as a separate task, since nobody goes back to reorganize a shelf later.\n\nSetting up the space to cooperate makes the habit easier to keep. Shallow shelves work better than deep ones because nothing can hide in the back, and if your shelves are deep, pull-out bins or a turntable will bring the rear items within reach. Keeping similar things together helps too, since a designated spot for canned goods means you are only shuffling a handful of items rather than rearranging an entire shelf.\n\nSet aside a small basket at eye level for anything opened or getting close to its date, and look in it before you decide what to cook that week.\n\nHow to Store Dry Staples So They Last\n\nDry goods keep for a long time in the right conditions and a much shorter time in the wrong ones. The USDA's Food Safety and Inspection Service recommends storing shelf-stable food somewhere cool and dry, below 85°F, and warns against keeping it above or beside the stove, under the sink, or in a damp garage or basement.\n\nThat same guidance suggests checking your pantry every few weeks and using the canned goods that have been sitting there longest, which is the rotation habit again in a different form.\n\nMoving opened packages into airtight containers does most of the remaining work. Oregon State University Extension recommends glass, metal, or heavy plastic containers with tight-fitting lids and advises against storing dry goods in paper or plastic bags or cardboard boxes, since pantry insects can get through all three.\n\nUse the table below for the staples that come with their own quirks.\n\nCanned goods hold up better than most people assume. FSIS notes that unopened high-acid canned food like tomatoes, grapefruit, and pineapple keeps 12 to 18 months on the shelf, while low-acid canned food like meat, fish, and most vegetables keeps two to five years when the can stays in good condition in a cool, clean, dry place. Any can that is bulging, rusted, leaking, or deeply dented should be thrown out rather than opened.\n\nWhat \"Best By\" and \"Use By\" Dates Really Mean\n\nA lot of pantry food gets thrown out while it is still perfectly good, and the dates printed on the package are the main reason. Misreading date labels causes about 20% of consumer food waste in the US, which is why Too Good To Go launched its Look-Smell-Taste initiative to encourage people to trust their senses on Best Before products.\n\nManufacturers use a variety of these labels voluntarily to show how long food will taste its best, and only the Use By date on infant formula is about safety. Everything else is quality guidance or inventory information for the store. Here is what the common phrases mean.\n\nBest if Used By. The date the manufacturer expects peak flavor and texture. Foods showing no signs of spoilage remain good past this date and can still be sold, bought, donated, and eaten.\n\nSell By. A stock rotation instruction meant for the store rather than for you. It says nothing about how long the food is good at home.\n\nUse By. Also, a quality date on nearly everything, with infant formula as the one federally regulated exception where the date should be followed.\n\nClosed codes. The strings of letters and numbers stamped on cans are manufacturer tracking codes, not consumer information.\n\nKnowing that changes how much you keep. Rice, pasta, and canned goods are generally fine well past their printed dates when they have been stored properly, though the texture and taste may shift gradually over a long enough stretch.\n\nYour nose and eyes are better judges than the date for most shelf-stable food. Look, smell, and taste before you waste, checking for color changes, visible mold, or a sharp rancid odor in anything oily. Canned goods and dry staples in particular tend to outlast their printed dates by a wide margin when they have been stored somewhere cool and dry.\n\nShopping Habits That Keep Your Pantry Manageable\n\nAn organized pantry stays that way only when what comes in roughly matches what goes out. Four habits do most of the work.\n\nRead your list before every trip, even a quick one, because two minutes of checking prevents most duplicate buying.\n\nSize your bulk buys honestly. Utah State University Extension suggests buying only the amount of grain products you can use within about two months, which is a useful reality check on the warehouse-sized bag of almond flour.\n\nPlan around your use-soon basket first, then write the rest of the list around whatever is left.\n\nShop more often in smaller amounts where it is convenient, so less food sits waiting to be forgotten.\n\nHow to Fill Your Pantry Without Overbuying or Overspending\n\nEverything above works on the food already in your house. The thing worth knowing is that the exact pattern you are correcting on your own shelf happens at a much larger scale before the food ever reaches you.\n\nA bakery finishes the day with pastries it baked that morning. A grocery store has produce approaching its date and prepared meals that were made for a lunch rush that ran smaller than expected. None of that food has gone off. It has simply passed the window where the store can sell it normally, for the same reason your lentils got pushed to the back, which is that supply got ahead of what anyone got around to eating.\n\nThat surplus used to have nowhere to go. Now some of it comes to shoppers directly. Too Good To Go is a marketplace built for exactly this, connecting stores that have surplus at the end of the day with people nearby who want it at a lower price. Stores pack whatever is left into a discounted Surprise Bag, you reserve one through the app, and you collect it during a pickup window near closing time. The contents change day to day, which is where the name comes from. More than 35.7 million meals have been rescued this way across the US.\n\nFor a pantry you are trying to keep manageable, this fits better than it might sound. A Surprise Bag becomes the flexible part of your week, something you cook around rather than something layered on top of a full grocery haul. You end up filling in around what you already own, which is the same instinct the rest of this guide is asking you to build.\n\nStart With One Shelf This Week\n\nAn organized pantry comes down to a handful of things. See what you own by clearing one shelf and writing down what goes back. Pull older items forward every time you unpack groceries, so what you reach for first is what has been there longest. Store dry goods somewhere cool and dark in containers that shut out air. Read date labels as quality estimates rather than safety deadlines, and trust your senses over the number on the box.\n\nNone of it asks for matching containers or a lost weekend. The payoff shows up quietly, in the duplicates you stop buying and the food you finish while it is still good.\n\nClear one shelf this week and see what turns up. Then download the Too Good To Go app and stock the empty spots for a fraction of what a full grocery run costs.\n\n\n\n\n\nFill your pantry with Too Good To Go food.\n\n\n\n\n\nFrequently Asked Questions\n\nWhat Is the Best Way to Organize a Small Pantry?\n\nWork upward and keep everything one row deep. Tiered risers let back rows sit higher so you can see them, a door-mounted rack holds spices and small jars, and nothing gets stacked behind anything else. A small space works in your favor, since there is nowhere for food to hide.\n\nHow Often Should I Reorganize My Pantry?\n\nThe USDA suggests checking your pantry every few weeks and using up the items that have been sitting longest. A full reset twice a year is plenty on top of that, as long as you are moving older items forward when you unpack groceries.\n\nShould I Keep Food in Its Original Packaging?\n\nKeep it for anything unopened so you hold onto the date and the cooking directions. Once you open it, move the contents to a container with a tight-fitting lid, since paper bags and cardboard boxes let in both air and pests.\n\nHow Do I Keep Pantry Moths and Weevils Out of My Dry Goods?\n\nAirtight glass, metal, or heavy plastic containers stop most of it. Oregon State University Extension also recommends freezing large quantities of whole grains or beans for at least four days after you buy them, which kills any eggs or insects that came home in the bag.\n\nCan I Store Food in the Pantry if My Kitchen Gets Hot?\n\nHeat cuts shelf life, and the USDA recommends keeping shelf-stable food below 85°F and away from the stove, the sink, and damp spaces. Look for the coolest spot you have, and move oils, nuts, and whole grain flours to the refrigerator if the room runs warm most of the year.\n\nIs It Worth Labeling Everything?\n\nLabels earn their keep on anything you have poured out of its original bag, especially flours and grains that look alike in a jar. Masking tape and a marker work as well as anything you would buy for the purpose.\n\n","Simple pantry organization tips to keep food visible, move older items forward, and store staples longer, so less of what you buy ends up getting thrown out.",{"_type":429,"alt":492,"asset":493,"fit":30},"Woman organizing pantry.",{"_ref":494,"_type":15},"image-69d3eececa35cd9fcbc99fec7221c9086dd0a7db-7008x4672-jpg","2026-09-21T19:08:49.722Z","\u002Fblog\u002Fpantry-organization-tips","Pantry Organization Tips That Help You Waste Less Food",{"_createdAt":499,"_id":500,"categories":501,"content":505,"excerpt":506,"file":8,"image":507,"language":43,"migrated":511,"pretitle":506,"publishedAt":512,"slug":513,"title":514,"updatedAt":8,"url":8},"2026-09-16T19:48:36Z","ace986d6-ac10-4db5-82cc-f0b2eda121f1",[502],{"slug":503,"title":504},"USEng-competitions","Competitions","Surprise Seconds Sweepstakes: Official Rules Details Page\n\n\n\nOFFICIAL RULES. NO PURCHASE NECESSARY TO ENTER OR WIN. A PURCHASE DOES NOT INCREASE THE CHANCES OF WINNING.VOID WHERE PROHIBITED BY LAW.\n\n1. ORGANIZATION OF THE SWEEPSTAKES\n\nThe company Too Good To Go Inc. (hereinafter \"TGTG \") whose registered address is located at 800 North State Street, Suite 304, Dover, Delaware 19901, is sponsoring a sweepstakes with no obligation to purchase entitled Surprise Seconds (hereinafter the \"Sweepstakes\"). The Sweepstakes takes place on the Instagram account of TGTG.\n\nTGTG reserves the right to extend, withdraw, alter or suspend the Sweepstakes or these Official Rules at any time if circumstances beyond its control make this unavoidable.\n\nThis Sweepstakes is in no way sponsored, endorsed or administered by, or associated with Google, Apple, Microsoft, or Instagram. By participating, each entrant completely releases Instagram from any responsibility or liability arising out of or related to the Sweepstakes.\n\nFor any questions, information or complaints, the entrant shall contact TGTG at the following email address: social.us@toogoodtogo.com.\n\n2. AGREEMENT TO OFFICIAL RULES\n\nBy entering the Sweepstakes, each entrant agrees to be fully unconditionally bound by these Official Rules, which can be accessed at any time during the Sweepstakes at [https:\u002F\u002Fwww.toogoodtogo.com\u002Fen-us\u002Fblog\u002F2026-Second-Surprises-Sweepstakes]. You represent and warrant that you meet the eligibility requirements set forth herein. In addition, you agree to accept the decisions of TGTG, as final and binding as it relates to the Sweepstakes.\n\n3. ELIGIBILITY\n\nThe Sweepstakes is open only to individuals who are at least 18 years old (or the age of majority in the jurisdiction where the entrant resides, whichever is older), at the time of entry, with internet access and for entries submitted via social media, an Instagram account (no social media account is required to enter using the alternate method of entry described in Section 5), and a legal resident of the State of Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, District of Columbia, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina, South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia, Wisconsin, Wyoming, except for TGTG employees and their families, as well as any person who participated in the development of the Sweepstakes. The Sweepstakes is subject to all applicable federal, state and local laws and regulations. Void where prohibited.\n\nAny entrant who participates from an account opened for the benefit of another person will be disqualified. Only one (1) account may be used per individual entrant. Limit one (1) entry per individual.\n\n4. SWEEPSTAKES PERIOD\n\nEntries will be accepted starting on September 17, 2026 @ 12:00 p.m. EST and ending September 28, 2026 @ 11:59 p.m. EST (“Sweepstakes Period”). Entries received outside of the Sweepstakes Period will not be entered in the Sweepstakes.\n\n5. HOW TO ENTER\n\nTo enter the Sweepstakes you may enter using either of the two (2) methods set out below. No purchase or payment of any kind is necessary to enter or win, a purchase will not improve an entrant’s chances of winning, and both methods of entry have an equal chance of winning. The entry must fulfil all Sweepstakes requirements, as specified, to be eligible to win. Entries that are not complete or do not adhere to the Official Rules may be disqualified at the sole discretion of TGTG.\n\nMethod 1: Social Media Entry. During the Sweepstakes Period, create and share your own original recipe by completing all of the following in a single public post: (i) publish it as a feed post or reel on Instagram; (ii) include the hashtag #SurpriseSeconds; (iii) tag @toogoodtogo.usa; and (iv) follow @toogoodtogo.usa on Instagram . The entrant’s account and post must be set to public for the duration of the Sweepstakes Period and until winner verification is complete so that TGTG can view and verify the entry.\n\nMethod 2: Alternative Method of Entry. An entrant may enter without using social media and without following, mentioning, using a hashtag, sharing any original recipe, by sending an email to social.us@toogoodtogo.com during the Sweepstakes Period with the subject line “#SurpriseSeconds Entry” and including in the body of the email: (i) the entrant’s full name; (ii) the entrant’s email address; and (iii) the entrant’s state of residence. Entry emails must be received during the Sweepstakes Period. Entries submitted through Method 2, the alternate method of entry, are placed in the same random draw and have an equal chance of winning as entries submitted through Method 1.\n\nAny recipe or other content submitted in connection with a Social Media Entry (a “Submission”) must comply with Section 9 (Intellectual Property Rights) and must not contain any content that is unlawful, defamatory, obscene, or that infringes or violates the rights of any third party. For the avoidance of doubt, ‘Submission’ does not include an entrant’s personal information provided in connection with the Sweepstakes, including the entrant’s name, email address, state of residence, social media handle, or other information collected for purposes of administering the Sweepstakes. Limit one (1) entry per person, regardless of the method used or the number of posts published. If TGTG receives entries from the same person through both methods, only the first eligible entry received will be considered.\n\n6. PRIZES\n\nThere are three (3) prizes available. Three (3) winners will each receive: one (1) prize consisting of: (a) a Too Good To Go Recipe Book (ARV: $50.00) (b) Too Good To Go app credits (ARV: $250.00) © Too Good To Go tote bag (ARV: $25.00).\n\nThe total approximate retail value of all prizes in the Sweepstakes is ARV: $975.00.\n\nThe actual value of the prize may differ at the time of the prize award. Eventual photographs or graphic representations presenting the prizes are provided for illustration purposes only and may under no circumstances be considered as being contractual. The prize is non-transferable. A winner may not substitute, transfer or assign the prize or request its cash equivalent. If an advertised prize becomes unavailable for reasons beyond TGTG’ reasonable control, TGTG may substitute a prize of equal or greater value. Any and all prize-related expenses, including without limitation any and all federal, state, and\u002For local taxes shall be the sole responsibility of the winner.\n\n\n\n7. ODDS\n\nThe odds of winning depend on the total number of eligible entries received.\n\n8. WINNER SELECTION AND NOTIFICATION\n\nPotential winners of the Sweepstakes will be selected in a random drawing from among all eligible entries received across all methods of entry on or about September 29, 2026 @ 12:00 pm EST conducted by Sponsor or its designated administrator. All eligible entries, regardless of method of entry, will have an equal chance of being selected. The decisions of TGTG regarding the selection and verification of potential winners are final and binding, subject to applicable law.\n\nThe potential winners will be contacted by private message on Instagram, for entrants who used the alternate method of entry, by email within 3 days following the draw, confirming the nature of the prize won and how to receive it. Any potential winner who does not respond within 8 days from the date of notification of his\u002Fher\u002Ftheir prize, or has not complied with these Official Rules, or declines the prize, shall be deemed to have forfeited it and the prize shall be lost or awarded to an alternate winner. Each winner will be sent instructions for claiming the prize by private message on the platform through which the winner entered (Instagram) or, for winners who used the alternate method of entry, by email. The Too Good To Go recipe book and tote bag will be shipped to a valid U.S. mailing address provided by the winner; the Too Good To Go app credits will be applied to the winner’s Too Good To Go account or provided by promo code.\n\nTGTG reserves the right to verify each potential winner’s eligibility before awarding a prize and may require a potential winner to execute and return an affidavit or declaration of eligibility and, where lawful and appropriate, a liability and publicity release, within the timeframe specified by TGTG. Failure to provide requested verification materials within the stated timeframe may result in forfeiture and selection of an alternate winner. Prizes may not be exchanged for their cash value or for any other prize. TGTG cannot be held liable for the use or non-use of the prizes by the winners.\n\n9. INTELLECTUAL PROPERTY RIGHTS\n\nEntrant acknowledges that TGTG is the sole and exclusive owner of any and all rights, including intellectual property rights, regarding this Sweepstakes, its content and TGTG’s trademarks. Nothing in this Sweepstakes shall grant any right, title or interest in or to TGTG’s contents and trademarks to any entrant.\n\nTGTG reserves the right, where permitted by law, to exploit the results of the Sweepstakes and to disseminate the eventual photographs, drawings, recipes or any other work of the entrants on its various existing and future communication media (website, social networks, digital and printed cookbooks and recipe compilations) for promotional, public relations or other purposes without further compensation other than the prizes won.\n\nBy entering the Sweepstakes, entrant grants TGTG, where permitted by law, a worldwide, irrevocable, unrestricted, royalty-free, sub-licensable and transferrable right and license to exploit any content provided in the course of the Sweepstakes in any media now or hereafter known, without any payment or other consideration of any kind, or permission or notification, to him\u002Fher or any third party, for any purpose, including, without limitation the right to reproduce, display, distribute, publicly perform, create derivative works of, alter, amend, broadcast, edit, publish, use, merchandise, license, sublicense, and adapt the content in any and all media now or hereafter known, throughout the world, for any purpose, whether commercial in nature or otherwise. Entrant guarantees that they have the legal power to grant the above license and that any content provided by them in the course of the Sweepstakes is free from third-party rights. Without limiting the foregoing, entrant agrees that TGTG may include any content (including any recipe) provided in the course of the Sweepstakes in TGTG’s digital and printed cookbooks and recipe compilations and other media. Where permitted by applicable law, entrant further grants TGTG the right to use entrant’s name, social media handle or username, likeness (where separately provided), and state of residence in connection with the Sweepstakes and the publication of the Submission, including to identify and credit entrant as the author of the recipe in TGTG’s cookbook and related materials, without additional review, approval, notice, or compensation, except where prohibited by law. To the fullest extent permitted by applicable law, entrant waives any moral rights in the Submission.\n\nRepresentations and Warranties. By submitting a Submission, entrant represents and warrants that: (a) the Submission is original to entrant and was created solely by entrant; (b) the Submission, and TGTG’s use of it as permitted in these Official Rules, does not and will not infringe, misappropriate, or violate any copyright, trademark, trade secret, patent, right of privacy, right of publicity, or any other intellectual property or proprietary right of any third party; (c) the Submission is not defamatory, obscene, or otherwise unlawful; and (d) entrant has obtained all rights, licenses, consents, and permissions necessary to grant the rights set out in these Official Rules, including any consent required from any person appearing or named in the Submission.\n\nIndemnification. Entrant agrees to indemnify and hold harmless TGTG and its parents, subsidiaries, and affiliates, and each of their respective officers, directors, employees, shareholders, representatives, and agents, from and against any and all third-party claims, demands, actions, damages, losses, liabilities, costs, and expenses (including reasonable attorneys’ fees) arising out of the Submission or entrant’s breach of any representation, warranty, or obligation in these Official Rules, including any claim that the Submission infringes, misappropriates, or violates any third-party intellectual property, privacy, or publicity right. TGTG reserves the right, at its own expense, to assume the defense and control of any matter subject to indemnification by entrant, and entrant agrees to reasonably cooperate with TGTG’s defense of such claim.\n\n10. GENERAL LIABILITY RELEASE\n\nBy participating in the Sweepstakes, each entrant agrees, to the fullest extent permitted by applicable law, to release and hold harmless TGTG and its parents, subsidiaries, affiliates, and each of their respective officers, directors, employees, representatives, and agents from and against any claim or cause of action arising out of or relating to participation in the Sweepstakes or the receipt, possession, use, misuse, or acceptance of any prize, except to the extent such liability cannot be excluded or limited under applicable law.\n\nTGTG is not responsible for: (a) lost, late, incomplete, inaccurate, stolen, delayed, misdirected, undelivered, or corrupted entries, emails, messages, or other communications; (b) technical, hardware, software, network, internet, website, social media platform, email, or other failures, malfunctions, interruptions, or errors that may prevent or interfere with participation in or administration of the Sweepstakes; (c) unauthorized human intervention in the Sweepstakes; (d) incorrect or inaccurate information, whether caused by entrants, technical errors, or any equipment or programming associated with or utilized in the Sweepstakes; or (e) any other error or problem that may affect the administration, security, fairness, integrity, or proper conduct of the Sweepstakes, in each case except to the extent caused by TGTG’s conduct for which liability cannot be excluded or limited under applicable law.\n\nTO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ANY AND ALL CLAIMS, JUDGMENTS, AND AWARDS ARISING OUT OF OR RELATING TO THE SWEEPSTAKES OR ANY PRIZE AWARDED SHALL BE LIMITED TO ACTUAL OUT-OF-POCKET COSTS INCURRED, IF ANY, IN CONNECTION WITH ENTERING THE SWEEPSTAKES, AND IN NO EVENT SHALL ATTORNEYS’ FEES BE AWARDED OR RECOVERABLE. UNDER NO CIRCUMSTANCES SHALL AN ENTRANT BE PERMITTED TO OBTAIN, AND EACH ENTRANT HEREBY WAIVES ALL RIGHTS TO CLAIM, PUNITIVE, INCIDENTAL, CONSEQUENTIAL, INDIRECT, OR SPECIAL DAMAGES, LOST PROFITS, OR ANY OTHER DAMAGES OTHER THAN ACTUAL OUT-OF-POCKET COSTS, OR ANY RIGHTS TO HAVE DAMAGES MULTIPLIED OR OTHERWISE INCREASED. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO SOME OF THE ABOVE LIMITATIONS OR EXCLUSIONS MAY NOT APPLY TO YOU.\n\nIf, for any reason, the Sweepstakes is not capable of running as planned due to circumstances beyond TGTG’s reasonable control, including fraud, unauthorized intervention, technical failures, or any other cause that corrupts or affects the administration, security, fairness, integrity, or proper conduct of the Sweepstakes, TGTG reserves the right, subject to applicable law, to cancel, terminate, modify, or suspend the Sweepstakes and, if appropriate, select the winner(s) from among the eligible entries received prior to such action in a manner determined by TGTG to be fair and reasonable.\n\nTGTG reserves the right to disqualify any individual who TGTG determines, in its reasonable discretion, has attempted to tamper with the entry process or operation of the Sweepstakes, has acted in violation of these Official Rules, or has engaged in fraud or other conduct intended to undermine the legitimate operation of the Sweepstakes.\n\nThe above releases and limitations of liability apply to the maximum extent permitted by applicable law. Nothing in these Official Rules shall exclude or limit TGTG’s liability for any matter for which liability cannot lawfully be excluded or limited.\n\nThe invalidity or unenforceability of any provision of these Official Rules shall not affect the validity or enforceability of any other provision. If any provision is determined to be invalid, illegal, or otherwise unenforceable, these Official Rules shall otherwise remain in effect and shall be construed as if the invalid, illegal, or unenforceable provision were not contained herein.\n\n\n\n11. PRIVACY POLICY\n\nPersonal information collected from entrants in connection with the Sweepstakes will be used by TGTG to administer the Sweepstakes, verify entrants’ eligibility, conduct the random drawing, contact and verify potential winners, fulfill prizes, maintain records relating to the Sweepstakes, and comply with applicable legal and regulatory requirements. TGTG may disclose this information to service providers involved in winner selection, verification and prize fulfillment, and as otherwise required or permitted by law. By participating in the Sweepstakes, you consent to TGTG using and disclosing the personal information for the stated purposes, or as otherwise required or permitted by law. Personal information will be handled in accordance with TGTG’s privacy policy, available at: https:\u002F\u002Ftoogoodtogo.com\u002Fen-us\u002Fprivacy-policy\n\n12. WINNER LIST\n\nFor the names of the winners, please send an email to social.us@toogoodtogo.com with the words “Winner’s List for Surprise Seconds in the subject line. Requests must be received within thirty (30) days after the end of the Sweepstakes Period.\n\n13. SPONSOR\n\nToo Good To Go, Inc., 800 North State Street, Suite 304, Dover, Delaware 19901. Too Good To Go, Inc. is the sole sponsor and administrator of this Sweepstakes.\n\n14. LAW AND VENUE\n\nThese Official Rules and any dispute arising out of or relating to the Sweepstakes shall be governed by the laws of the State of New York, without regard to its conflict of laws principles. As a condition of participating in this Sweepstakes, the entrant agrees that any and all disputes which cannot be resolved between the parties, and causes of action arising out of or connected with this Sweepstakes, shall be resolved individually, without resort to any form of class action, exclusively before a state or federal court located in New York having jurisdiction, to the fullest extent permitted by applicable law.\n\n\n","Win $250 app credits & more!",{"_type":429,"alt":508,"asset":509},"Three people sharing pizzas, one man looking into a green \"Too Good To Go\" bag.",{"_ref":510,"_type":15},"image-ca40e5748c0a67c71f55516d1e8fc38a6ef532f0-8256x5504-jpg","\u003Ch3>2023 Holiday Sweepstakes:&nbsp;\u003Cspan>Official Rules Details Page\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp>\u003Cb>Local Instagram Account:&nbsp;\u003C\u002Fb>\u003Cspan>@TooGoodToGo.usa\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cb>Title:&nbsp;\u003C\u002Fb>\u003Cspan>2023 Holiday Sweepstakes\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cb>Start date\u002Fhour:&nbsp;\u003C\u002Fb>\u003Cspan>December 11, 2023 @ 12 p.m. noon EST\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cb>End date\u002Fhour:\u003C\u002Fb>&nbsp;\u003Cspan>December 15, 2023 @ 12 p.m. noon EST\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cspan>\u003Cb>Contact email address:&nbsp;\u003C\u002Fb>\u003C\u002Fspan>\u003Cspan>social.us@toogoodtogo.com\u003C\u002Fspan>\u003C\u002Fp>\u003Ch5>\u003Cb>How to enter\u003C\u002Fb>\u003C\u002Fh5>\u003Col>\u003Cli>Have an Instagram account.\u003C\u002Fli>\u003Cli>Follow the Instagram account of @TooGoodToGo.USA\u003C\u002Fli>\u003Cli>Like the post announcing the Sweepstakes.\u003C\u002Fli>\u003Cli>Comment on the post by mentioning 2 accounts: (1) your favorite store to pick up a Surprise Bag from and (2) a friend to share it with!\u003C\u002Fli>\u003C\u002Fol>\u003Cp>\u003Ci>Comments that contain aggressive, obscene, excessively redundant, unethical, or otherwise offensive language will be excluded from the Sweepstakes and their editors will not be able to participate in the Sweepstakes. \u003C\u002Fi>\u003C\u002Fp>\u003Ch5>List of all prizes\u003C\u002Fh5>\u003Cp>One hundred and fifty-six (156) Too Good To Go meal vouchers with an approximate retail value (“ARV”) of $5.99 USD each. Three (3) tote bags with an ARV of $24.99 USD each.  All three (3) winners receive fifty-two (52) vouchers of Too Good To Go meals each.\u003C\u002Fp>\u003Cp>\u003Cb>Number of winners:&nbsp;\u003C\u002Fb>\u003Cspan>Three (3)\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cb>Individual prizes\u003C\u002Fb>\u003C\u002Fp>\u003Cul>\u003Cli>Prize #1: Fifty-two (52) Too Good To Go meal vouchers with an AVR of $311.48 USD &amp; one (1) Too Good To Go tote bag with with an ARV of $24.99\u003C\u002Fli>\u003Cli>Prize #2:  Fifty-two (52) Too Good To Go meal vouchers with an ARV of $311.48 USD &amp; one (1) Too Good To Go tote bag with with an ARV of $24.99\u003C\u002Fli>\u003Cli>Prize #3:  Fifty-two (52) Too Good To Go meal vouchers with an ARV of $311.48 USD &amp; one (1) Too Good To Go tote bag with with an ARV of $24.99\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Total ARV = $1009.41 USD\u003C\u002Fp>\u003Cp>\u003Cb>Draw date\u002Fhour:\u003C\u002Fb>&nbsp;\u003Cspan>December 15, 2023 @ 2pm EST\u003C\u002Fspan>\u003C\u002Fp>\u003Ch3>2023 Holiday Sweepstakes\u003C\u002Fh3>\u003Cp>\u003Cb>OFFICIAL RULES.&nbsp;\u003Cspan>NO PURCHASE NECESSARY TO ENTER OR WIN.&nbsp;\u003C\u002Fspan>\u003Cspan>A PURCHASE DOES NOT INCREASE THE CHANCES OF WINNING.\u003C\u002Fspan>\u003Cspan>VOID WHERE PROHIBITED BY LAW.\u003C\u002Fspan>\u003C\u002Fb>\u003C\u002Fp>\u003Ch5>1. ORGANIZATION OF THE SWEEPSTAKES\u003C\u002Fh5>\u003Cp>The company Too Good To Go Inc. (hereinafter \"TGTG \") whose registered office is located at 800 North State Street, Suite 304, Dover, Delaware 19901, is sponsoring a sweepstakes with no obligation to purchase entitled 2023 Holiday Sweepstakes (hereinafter the \"Sweepstakes\"). The Sweepstakes takes place exclusively on the Instagram account of TGTG. \u003C\u002Fp>\u003Cp>TGTG reserves the right to extend, withdraw, alter or suspend the Sweepstakes or these Official Rules at any time if circumstances beyond its control make this unavoidable.\u003C\u002Fp>\u003Cp>This Sweepstakes is not organized or sponsored by Facebook, Instagram, Google, Apple or Microsoft, which shall not be held responsible in any way for any dispute related to the Sweepstakes. \u003C\u002Fp>\u003Cp>For any questions, information or complaints, the entrant shall contact TGTG at the following email address: social.us@toogoodtogo.com.\u003C\u002Fp>\u003Ch5>2. AGREEMENT TO OFFICIAL RULES\u003C\u002Fh5>\u003Cp>By entering the Sweepstakes, each entrant agrees to be fully unconditionally bound by these Official Rules, which can be accessed at any time during the Sweepstakes at https:\u002F\u002Fwww.toogoodtogo.com\u002Fen-us\u002Fholiday-contest. You represent and warrant that you meet the eligibility requirements set forth herein. In addition, you agree to accept the decisions of TGTG, as final and binding as it relates to the Sweepstakes. \u003C\u002Fp>\u003Ch5>3. ELIGIBILITY\u003C\u002Fh5>\u003Cp>The Sweepstakes is open only to individuals who are at least 18 years old (or the age of majority in the jurisdiction where the entrant resides, whichever is older), at the time of entry, with internet access and an Instagram account and a legal resident of the State of Arizona, California, Colorado, Connecticut, Delaware, District of Columbia, Florida, Georgia, Illinois, Massachusetts, Maryland, Maine, Missouri, Minnesota, New York, North Carolina, New Jersey, Nevada, Oregon, Oklahoma, Pennsylvania, Tennessee, Texas, Rhode Island, Virginia, or Washington, except for TGTG employees and their families, as well as any person who participated in the development of the Sweepstakes. The Sweepstakes is subject to all applicable federal, state and local laws and regulations. Void where prohibited.\u003C\u002Fp>\u003Cp>Any entrant who participates from an account opened for the benefit of another person will be disqualified. Only one (1) account may be used per individual entrant. Limit one (1) entry per individual.\u003C\u002Fp>\u003Ch5>4. SWEEPSTAKES PERIOD\u003C\u002Fh5>\u003Cp>Entries will be accepted starting on December 11th at 12:00PM EST and ending December 15th at 12:00PM EST  (“Sweepstakes Period”). Entries received outside of the Sweepstakes Period will not be entered in the Sweepstakes. \u003C\u002Fp>\u003Ch5>5. HOW TO ENTER\u003C\u002Fh5>\u003Cp>To enter the Sweepstakes you must (1) have an active Instagram Account, (2) be following TooGoodToGo.USA, (3) Comment on the post by mentioning 2 accounts: (1) your favorite store to pick up a Surprise Bag from and (2) a friend to share it with! The entry must fulfil all Sweepstakes requirements, as specified, to be eligible to win. Entries that are not complete or do not adhere to the Official Rules may be disqualified at the sole discretion of TGTG.\u003C\u002Fp>\u003Ch5>6. PRIZES\u003C\u002Fh5>\u003Cp>There are three (3) prizes available. Three (3) winners will each receive:\u003C\u002Fp>\u003Cul>\u003Cli>fifty-two (52) Too Good To Go meal vouchers with an approximate retail value of Three Hundred and Eleven Dollars and Forty-Eight Cents (US$311.48). Each Too Good To Go meal voucher has an approximate retail value of Five Dollars and Ninety-Nine Cents (US$5.99), and \u003C\u002Fli>\u003Cli>one (1) tote bag with an approximate retail value of $24.99 \u003C\u002Fli>\u003C\u002Ful>\u003Cp>The total approximate retail value of all prizes in the Sweepstakes is One Thousand and Nine Dollars and Forty-One Cents (US$1009.41).\u003C\u002Fp>\u003Cp>The actual value of the prize may differ at the time of the prize award. Eventual photographs or graphic representations presenting the prizes are provided for illustration purposes only and may under no circumstances be considered as being contractual. The prize is non-transferable. No substitution of prize or transfer\u002Fassignment of prize to others or request for the cash equivalent by winners is permitted. Any and all prize-related expenses, including without limitation any and all federal, state, and\u002For local taxes shall be the sole responsibility of the winner.\u003C\u002Fp>\u003Ch5>7. ODDS\u003C\u002Fh5>\u003Cp>The odds of winning depend on the total number of eligible entries received. \u003C\u002Fp>\u003Ch5>8. WINNER SELECTION AND NOTIFICATION\u003C\u002Fh5>\u003Cp>Winners of the Sweepstakes will be selected by random draw from and among all eligible entries received during the Sweepstakes Period using the following website (https:\u002F\u002Fcommentpicker.com\u002F) on December 15, 2023 at 2:00PM EST.\u003C\u002Fp>\u003Cp>The potential winners will be contacted by private message on Instagram within 3 days following the draw, confirming the nature of the prize won and how to receive it. Any potential winner who does not respond within 8 days from the date of notification of his\u002Fher\u002Ftheir prize, or has not complied with these Official Rules, or declines the prize, shall be deemed to have forfeited it and the prize shall be lost or awarded to an alternate winner. Each winner will receive the prize via private message on Instagram.\u003C\u002Fp>\u003Cp>TGTG reserves the right to verify the potential winner’s eligibility before awarding the prize. Prizes may not be exchanged for their cash value or for any other prize. TGTG cannot be held liable for the use or non-use, or even trading, of the prizes by the winners. In the event of circumstances beyond the reasonable control of TGTG, TGTG reserves the right to replace the prize won by a prize of equivalent nature and value. \u003C\u002Fp>\u003Ch5>9. INTELLECTUAL PROPERTY RIGHTS\u003C\u002Fh5>\u003Cp>Entrant acknowledges that TGTG is the sole and exclusive owner of any and all rights, including intellectual property rights, regarding this Sweepstakes, its content and TGTG’s trademarks. Nothing in this Sweepstakes shall grant any right, title or interest in or to TGTG’s contents and trademarks to any entrant.\u003C\u002Fp>\u003Cp>TGTG reserves the right, where permitted by law, to exploit the results of the Sweepstakes and to disseminate the eventual photographs, drawings, recipes or any other work of the entrants on its various existing and future communication media (website, social networks) for promotional, public relations or other purposes without further compensation other than the prizes won.\u003C\u002Fp>\u003Cp>By entering the Sweepstakes, entrant grants TGTG, where permitted by law, a worldwide, irrevocable, unrestricted, royalty-free, sub-licensable and transferrable right and license to exploit any content provided in the course of the Sweepstakes in any media now or hereafter known, without any payment or other consideration of any kind, or permission or notification, to him\u002Fher or any third party, for any purpose, including, without limitation the right to reproduce, display, distribute, publicly perform, create derivative works of, alter, amend, broadcast, edit, publish, use, merchandise, license, sublicense, and adapt the content in any and all media now or hereafter known, throughout the world, for any purpose, whether commercial in nature or otherwise. Entrant guarantees that they have the legal power to grant the above license and that any content provided by them in the course of the Sweepstakes is free from third-party rights.\u003C\u002Fp>\u003Ch5>10. GENERAL LIABILITY RELEASE\u003C\u002Fh5>\u003Cp>By entering in the Sweepstakes, entrants agree to release and hold harmless TGTG and their respective parents, subsidiaries and affiliates and each of their respective officers, directors, employees, shareholders, representatives, and agents from and against any claim or cause of action arising out of participation in the Sweepstakes or receipt or use of the prize. Entrant waives the right to claim any damages whatsoever, including, but not limited to, punitive, consequential, direct or indirect damages.\u003C\u002Fp>\u003Cp>TGTG’s liability is strictly limited to the delivery of the prizes actually and validly won. TGTG shall not be held responsible:\u003C\u002Fp>\u003Cul>\u003Cli>for any incident or accident that may occur during the enjoyment of the prize awarded and\u002For due to its improper use by each winner.\u003C\u002Fli>\u003Cli>for any problems of delivery or loss of postal or electronic mail (in particular with regard to the delivery of prizes). Any prizes sent by TGTG to a winner that is unclaimed or returned for any other reason by the postal services will be lost to the winner and will remain the property of TGTG.\u003C\u002Fli>\u003Cli>for any direct or indirect, material or moral damage whatsoever if the Sweepstakes is cancelled, temporarily or permanently unavailable, does not take place according to the announced rules or, in general, if participation in the Sweepstakes proves temporarily or permanently impossible.\u003C\u002Fli>\u003Cli>for any damage caused to an entrant, his\u002Fher\u002Ftheir computer equipment and\u002For the data stored on it, as well as for any direct or indirect consequences that may result from this on his\u002Fher\u002Ftheir personal or professional activity. Therefore, each entrant is responsible for the security systems that he\u002Fshe\u002Fthey puts in place on his\u002Fher\u002Ftheir computer equipment, and TGTG cannot be held responsible for contamination by possible viruses or for the intrusion of a third party into the computer system of any entrant in the Sweepstakes.\u003C\u002Fli>\u003Cli>in the event of communication network failures, malfunction of the reception equipment, or network congestion preventing the smooth running of the Sweepstakes or causing, directly or indirectly, a loss of chance in participating in the Sweepstakes.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>The above limitations of liability shall apply to the maximum extent permitted by applicable law. Nothing in these rules shall limit or exclude TGTG’s liability for any matter in respect of which it would be unlawful for TGTG to exclude or restrict its liability.\u003C\u002Fp>\u003Cp>TGTG may cancel all or part of the Sweepstakes if it appears that fraud has been organized, in any form whatsoever and in particular in a computerized manner and has occurred during the course of the Sweepstakes or in the context of determining the winners. In this case, TGTG reserves the right not to award the prizes to the fraudsters and\u002For to prosecute them before the competent courts.\u003C\u002Fp>\u003Cp>The invalidity or unenforceability of any provision of these Official Rules shall not affect the validity or enforceability of any other provision. If any provision is determined to be invalid or otherwise unenforceable or illegal, these Official Rules shall otherwise remain in effect and shall be construed in accordance with their terms as if the invalid or illegal provision were not contained herein.\u003C\u002Fp>\u003Ch5>11. PRIVACY POLICY\u003C\u002Fh5>\u003Cp>Personal information collected by TGTG in the course of the Sweepstakes concerning the entrants are necessary to enable their participation to be taken into account, the determination and announcement of the winners, the proper execution of the prize draw, and the allocation of the prizes. This information may be transmitted to a service provider for draw of the winners and the delivery of prizes. By participating in the Sweepstakes, you consent to TGTG using and disclosing the personal information for the stated purposes, or as otherwise required or permitted by law. Full details of TGTG’s data collection and processing policy are available at the following address: https:\u002F\u002Ftoogoodtogo.com\u002Fen-us\u002Fprivacy-policy.\u003C\u002Fp>\u003Ch5>12. WINNER LIST\u003C\u002Fh5>\u003Cp>For the names of the winners, please send an email to social.us@toogoodtogo.com with the words “Winner’s List for 2023 Holiday Sweepstakes”.\u003C\u002Fp>\u003Ch5>13. SPONSOR\u003C\u002Fh5>\u003Cp>Too Good To Go, Inc., 800 North State Street, Suite 304, Dover, Delaware 19901.\u003C\u002Fp>\u003Ch5>14. LAW AND VENUE\u003C\u002Fh5>\u003Cp>Any possible dispute on the interpretation of these Official Rules shall be decided by TGTG and shall be governed by the laws of the State of New York. As a condition of participating in this Sweepstakes, the entrant agrees that any and all disputes which cannot be resolved between the parties, and causes of action arising out of or connected with this Sweepstakes, shall be resolved individually, without resort to any form of class action, exclusively before a court located in New York having jurisdiction.\u003C\u002Fp>","2026-09-17T18:08:00.000Z","\u002Fblog\u002F2026-second-surprises-sweepstakes","Surprise Seconds Sweepstakes",{"_createdAt":516,"_id":517,"categories":8,"content":518,"excerpt":8,"file":8,"image":519,"language":43,"migrated":8,"pretitle":482,"publishedAt":523,"slug":524,"title":525,"updatedAt":8,"url":8},"2026-09-03T18:48:05Z","358b21fe-4484-4b06-9fcc-2dde0059f5db","U.S. convenience stores rang up $341.2 billion in in-store sales in 2025, the 23rd straight year of inside-sales growth. That growth is no longer coming from cigarettes or candy. It comes from the counter, where prepared food now carries more of your gross profit than almost anything else you stock. The pizza, chicken, sandwiches, wraps, and salads behind the glass are both your fastest-growing category and the one doing the most for your margin. There is a catch, and it is a simple one. The products working hardest for you are perishable, and every one of them is on the clock.\n\nAny operator already feels this in daily practice, because a bag of chips will forgive a slow day in a way that a tray of prepared breakfast sandwiches never will. The same trend that is lifting your gross profit is quietly raising the stakes on execution at the end of every daypart, when whatever has not sold turns from a potential sale into a cost you have already absorbed.\n\nWhat Shoppers Actually Want Across the Dayparts\n\nEating habits are what keep the prepared-food line climbing. The old three-square-meals structure has loosened into snacking, late-night runs, and nontraditional dayparts, and the c-store sits squarely in the middle of that behavior because it is already on the commute and open when other doors are closed.\n\nThe other force shaping the basket is value. Datassential's read on the consumer is blunt: roughly three in four consumers say they are just getting by or falling behind financially, which pushes far more intentional spending on food away from home. Shoppers are trading down on add-ons and leaning into familiar, convenient options they can trust. For an operator, that is not a threat so much as an invitation. The consumer who used to grab a quick-serve breakfast on the way to work is actively looking for a lower-priced option that still tastes like a real meal, and the box can be that option if the food quality holds up.\n\nPerception of quality is turning, too. Datassential's 2026 outlook notes that 40% of consumers say convenience store food variety is getting better, and operators are answering with menu builds rather than menu sprawl. Taquitos and tornados on the roller grill, fresh bakery breakfast items, and customizable formats like build-your-own burritos and pizza are expanding because they widen the menu without exploding inventory or SKUs. The strategy underneath all of it is a dual one, keeping grab-and-go strong for the impulse trip while building out more substantial options for the shopper replacing a full meal.\n\nThe New Revenue Streams Opening Up Inside the Box\n\nPrepared food gets the spotlight, but the more interesting operational trend is how many adjacent revenue lines it drags along with it.\n\nCoffee and dispensed beverages as anchor trips. Hot, cold, and frozen dispensed drinks are counted inside foodservice for a reason. They carry strong margins and create a daily habit that pulls the same customer back to the same store, often at the same hour.\n\nLoyalty and app-driven frequency. Younger shoppers expect a mobile relationship with the store, and loyalty programs increasingly tie foodservice offers to repeat visits rather than fuel points alone.\n\nDelivery and third-party pickup. The box has become a fulfillment point, extending the trade area well past the forecourt.\n\nRecognizable food brands inside the store. Licensed or house-branded food programs lend instant credibility and standardized training, which is what turns a fuel stop into a genuine food destination.\n\nEach of these leans on the same foundation: fresh and hot product, prepped in volume, sitting in a warmer or a case, waiting for a customer. The upside is real, and so is the risk when customers do not show up on schedule.\n\nThe Margin Question Hiding Inside the Prepared-Food Win\n\nEvery fresh program carries a tax that rarely makes it onto a conference slide, and shrink grows in step with the food you prep. Think of the sandwiches built for a lunch rush that runs light, the full bake case still sitting there at 8 p.m., or the last few servings drying out on the roller grill. All of it was paid for, labored over, and priced to sell, yet none of it contributes a cent once the daypart closes.\n\nThe scale becomes clearer when you step back from a single store. For a multi-site operator, even a low single-digit shrink rate on prepared food adds up fast once you multiply it across dozens of locations and 365 days. That is margin you already produced and then wrote off.\n\nMost operators reach first for tighter forecasting, and better production planning genuinely helps. The trouble is that c-store demand is lumpy by nature. Weather turns, a nearby job site closes early, a delivery runs late, and the forecast that looked right at open is wrong by mid-afternoon. You can shave the surplus down, but you cannot forecast it to zero without under-stocking and disappointing the very foodservice customer you worked so hard to win. So the real question is not only how to make less surplus, but what to do with the surplus you will inevitably have.\n\nTurning End-of-Daypart Surplus Into Incremental Trips\n\nThis is where a surplus-recovery channel earns its place next to your production planning. Instead of writing off quality prepared food at close, you can route it to a customer who is actively looking for it, recover a share of the cost you already sank, and pull a new face through the door in the process.\n\nToo Good To Go runs one such marketplace. At the end of a daypart, your store lists a Surprise Bag of unsold prepared items. A nearby app user reserves it, pays a fraction of retail value, and collects it during a set pickup window, confirming in the app. No new equipment, no separate point-of-sale.\n\nWhat keeps this off the giveaway pile is the pickup trip itself. Across Too Good To Go's partners, 41% of customers add other items to the basket while they are there, at an average add-on of $18.41, and 34% of pickups are unplanned extra visits. That is incremental foot traffic on top of recovered surplus, which is exactly what a prepared-food program is built to create.\n\nThe pattern holds at small scale too. Bibble & Sip, a single-location café in New York City, recovered $66,576 in additional revenue this way, with 73% of those customers coming back. Multiply that across a footprint and it becomes a repeatable acquisition channel running on product you already made.\n\nThere is a staffing dividend, too. Most food retail workers say throwing out edible product lowers their job satisfaction, so a clear way to move good food to customers who want it turns a daily frustration into a small source of pride.\n\nThe Through-Line for Operators\n\nEvery convenience store trend in this cycle points the same direction: the box is becoming a food destination, and prepared food is doing the heavy lifting on both revenue and gross profit. That is the win to build around. The discipline it demands is on the back end, in how you handle the fresh and hot product that a lumpy demand curve will always leave behind at close. Treat that surplus as a recoverable asset instead of a write-off, and you protect the margin you already earned, pull new and repeat customers through the door, and keep good food out of the bin. The operators who get out ahead of the prepared-food boom will be the ones who plan for the sell-through and the surplus with equal seriousness. Every meal saved counts.\n\nIf prepared and hot food is a growing share of your inside sales, it is worth seeing what a surplus channel recovers across your footprint. See how Too Good To Go works for food businesses and what listing your first Surprise Bags looks like at store level.\n\n\n\n\n\nSee how your business can utilize Too Good To Go Surprise Bags.\n\n\n\n\n\nFrequently Asked Questions\n\nWhat is driving foodservice growth in convenience stores?\n\nLoosening meal patterns and value-seeking shoppers are the main forces. Snacking and nontraditional dayparts keep rising, and consumers under financial pressure want lower-priced options that still eat like a real meal. C-stores meet both needs because they sit on the commute and stay open when other foodservice doors are closed.\n\nHow much of convenience store profit comes from foodservice?\n\nFoodservice contributed 38.9% of in-store gross profit dollars in 2025 while making up 28.5% of in-store sales, according to NACS. That is a lot of margin from a small slice of sales, which is why prepared food, coffee, and dispensed beverages now anchor most operators' inside-sales strategy.\n\nHow can c-stores reduce shrink on prepared and hot food?\n\nTighter production planning and demand forecasting help, but lumpy c-store demand means some surplus is unavoidable. The practical complement is a recovery channel that routes unsold prepared items to paying customers at close, so you recoup a share of the cost instead of writing off product you already prepped and labored over.\n\nDoes selling surplus food cannibalize full-price sales?\n\nEvidence points the other way. On Too Good To Go, 41% of Surprise Bag pickups add full-margin items to the basket at an average of $18.41, and 34% of pickups are unplanned extra visits. The surplus channel reaches a value-driven shopper who often would not have visited that daypart otherwise.\n\nWhat counts as prepared food in NACS foodservice data?\n\nNACS defines foodservice as prepared food, commissary items, and hot, cold, and frozen dispensed beverages. Prepared food specifically covers pizza, chicken, burgers, sandwiches, wraps, and salads, and it made up 73.9% of foodservice sales in 2025, up from 66.4% in 2021, making it the category's clear workhorse.\n\nHow does a Surprise Bag pickup work at the store level?\n\nThe store lists a bag of unsold prepared items at the end of a daypart. A nearby app user reserves it and pays a fraction of retail value in the app. They arrive during a set pickup window, swipe to confirm, and staff hand over the bag. No extra equipment or separate point-of-sale is needed.\n\nIs a surplus program only worthwhile for large chains?\n\nNo. A single-location café, Bibble & Sip, recovered $66,576 in additional revenue and a 73% return rate. The model scales with locations, so multi-site operators multiply both the recovered revenue and the new-customer traffic across every store running a prepared-food program.",{"_type":429,"alt":520,"asset":521,"fit":30},"Woman in c-store",{"_ref":522,"_type":15},"image-9416eb1812b68cf95b9dd1ed1dcfed1c56d5c832-6000x4000-jpg","2026-09-03T19:07:57.831Z","\u002Fblog\u002Fconvenience-store-trends","How Convenience Store Trends Are Changing C-Store Operations",{"_createdAt":527,"_id":528,"categories":8,"content":529,"excerpt":530,"file":8,"image":531,"language":43,"migrated":8,"pretitle":482,"publishedAt":535,"slug":536,"title":537,"updatedAt":8,"url":8},"2026-09-02T15:37:15Z","5bbe41c5-96f1-42df-bda0-52a81b68e6e1","What is surprise seconds?\n\nTogether with Ziploc® Brand, we want to help make more of the food already in your kitchen – whether carried home from a restaurant or left over from a meal you cooked yourself.\n\nWe’re bringing together two complementary approaches to helping good food go further: Ziploc® Brand Bags provide food storage solutions that help extend the life of food, while the Too Good To Go apps helps consumers secure good food at a discount and partners with businesses to put surplus food to use. Surprise Seconds takes the next step, offering inspiration for turning saved food into something entirely new – making what comes next feel creative, craveable and worth looking forward to.\n\n\nWhy this matters\n\nNew research commissioned by Ziploc® Brand in the United States shows that Americans care about avoiding food waste but knowing what to do with leftovers can still be a barrier.\n\nMore than nine in 10 Americans (91%) say avoiding food waste is important to them.\n\nMore than one in three (36%) say they throw food away at least once a week.\n\nNearly two-thirds (64%) have thrown away food that was still perfectly good because they did not know what to do with it.\n\nOnly about one in four (26%) say they usually turn their leftovers into something new.\n\nThe research also highlights the value of simple, practical inspiration, with nearly one in four Americans (23%) saying recipe ideas, lunch inspiration and better storage would help them make more of their leftovers.\n\nThe findings point to a simple opportunity: giving people more inspiration for what to do with the food they have already saved.\n\n\n\nmaking GOOD FOOD go further\n\nSurprise Seconds was created to spark that missing idea. Rather than treating leftovers and restaurant extras as a lesser repeat of yesterday’s meal, we will provide practical, craveable examples of how they can serve as the foundation for something entirely different.\n\nwheel of sandwiches, NYC\n\nAn interactive food-truck experience coming to New York City Sept. 30 that reimagines dishes from participating Too Good To Go restaurant partners as inventive new sandwiches. The experience is led by chef Yara Herrera, chef-partner at Hellbender, the critically acclaimed Mexican American restaurant in Ridgewood, Queens, known for its technique-driven, ingredient-forward cooking. \n\n\n\n\nSave the date, and keep an eye out on our social channels for more information! ","We've partnered with Ziploc® brand to help your food go further. ",{"_type":429,"alt":532,"asset":533,"fit":30},"Broccoli, corn, bell peppers, pastries, and bagels packaged in Ziploc bags, next to a green \"Too Good To Go\" bag.",{"_ref":534,"_type":15},"image-f43525dbc7d8e6b660d92a025187b029c6d8a296-8071x5381-jpg","2026-09-02T17:47:08.126Z","\u002Fblog\u002Fsurprise-seconds","Surprise Seconds with Ziploc® Brand",{"_createdAt":539,"_id":540,"categories":8,"content":541,"excerpt":8,"file":8,"image":542,"language":43,"migrated":8,"pretitle":482,"publishedAt":546,"slug":547,"title":548,"updatedAt":8,"url":8},"2026-08-20T13:57:26Z","c47e2c23-7010-45f4-be41-997a1454abdd","Inventory shrinkage looks a little different across every food business. A bakery may close with pastries still in the case, while a convenience store may receive more sandwiches than it can sell within the freshness window. At a specialty market, receiving discrepancies or improper storage can create losses before products reach the shelf. Every unsold item leaves the business with costs to cover and no sale to show for them.\n\n\n\nYet, shrink rarely comes down to one big mistake. More often, it builds through small losses from the moment food is ordered until its last opportunity to sell. Better processes can reduce those losses, but products may still go unsold when demand takes an unexpected turn. This guide explains how food retailers can identify and reduce inventory shrinkage at every stage, with tips to recover revenue from eligible surplus that remains.\n\n\n\nWhat Is Inventory Shrinkage in Food Retail?\n\nInventory shrinkage is the gap between how much stock a food retailer’s records say it should have on hand and how much is actually available to sell. Sometimes, that gap only comes to light during an inventory count. Other times, the business knows exactly what went wrong and records the product as a write-off. Either way, shrink occurs when the inventory that the retailer expected to sell can no longer generate revenue.\n\n\n\nWhere inventory loses that selling value can vary significantly. A shipment may arrive short, an employee may enter the wrong quantity, or theft may remove a product without a sale. More delicate items can become unsellable after rough handling. Food retailers face another challenge, too: perishable products may spoil or age out of their selling window, even when every unit is otherwise accounted for.\n\n\n\nWhy Inventory Shrinkage Is Different for Food Retailers\n\nA limited selling window is what makes inventory shrinkage especially complicated for food retailers. Like any retail business, grocers and restaurants struggle with theft and recordkeeping errors. They also have to make purchasing and production decisions before knowing exactly what customers will want. Stock too little, and you miss sales. Stock too much, and products may have only a short time to find a buyer.\n\n\n\nThe balancing act can look different across food retail:\n\nBakeries choose daily production volumes before customer traffic becomes clear\n\nCafés and delis prepare for peak periods that may be busier or slower than expected\n\nRestaurants prep enough ingredients and menu items for service without knowing exactly what guests will order\n\nConvenience stores keep grab-and-go food available without overcommitting to short-lived products\n\nGrocers maintain appealing fresh-food displays that won’t stay stocked beyond likely demand\n\nSpecialty markets manage products with a wide range of storage requirements\n\n\n\nReducing shrink cannot mean simply ordering or producing less. Customers still expect their preferred items to be available, and consistently understocked displays can send them elsewhere. The better goal is to bring inventory closer to actual demand while protecting product quality throughout its selling window. Doing so requires a closer look at where inventory loses value and which processes can keep it on track for a sale.\n\n\n\nHow to Reduce Inventory Shrinkage at Every Stage\n\nNow that we’ve answered “What is inventory shrinkage?” it’s time to find where it’s coming from. A month-end percentage tells operators how much inventory disappeared, but it won’t show where value slipped away. Following inventory from ordering through its final selling window makes each loss easier to address. It can also reveal where store-level shrink ends and food supply chain waste begins. Here’s how to do just that.\n\n\n\n1. Measure Inventory Shrinkage to Find the Root Cause\n\nOverall shrink rate tells you the size of the problem, but not the root cause. Start by comparing the inventory value in your records with what a physical count shows is actually on hand. Subtract the actual value from the recorded value, divide that difference by the recorded value, and multiply by 100 to find your shrink rate. To reduce it, track inventory shrinkage by cause, product category, location, and stage of the inventory process.\n\n\n\nA few useful measures when finding the root cause of inventory shrink include:\n\nSpoilage by product or category\n\nUnits or inventory value written off by reason\n\nSell-through before the end of the selling window\n\nVariance between ordered, received, and recorded quantities\n\nSurplus food recovered through markdowns or other channels\n\n\n\nOnce you have your overall shrink rate on lock, reviewing these patterns regularly makes the numbers actionable. Repeated delivery shortages might point to a receiving problem, while the same prepared items left at closing may signal an ordering or production issue. You could even be overshooting demand. Each calls for a different fix. The more precisely you can locate a loss, the faster it becomes to choose the right solution.\n\n\n\n2. Tighten Ordering Processes Around Actual Selling Patterns\n\nSales averages are a useful starting point for identifying inventory shrinkage, but they rarely tell the whole story. Customer purchasing habits can change by day of the week, season, and location. A strong Monday morning at one store does not necessarily justify the same order at another. Look for patterns that repeat month-over-month instead of allowing one busy weekend or successful promotion to totally skew future orders.\n\n\n\nOutside factors deserve attention, too. Weather, local events, and holidays can all change what customers buy.\n\n\n\nA bakery might scale back weekday batch sizes after reviewing hourly sales, while a convenience retailer may need different grab-and-go quantities at each location. Before reordering, account for stock already on hand and ingredients that can still be used. When practical, ordering perishables more frequently in smaller quantities can also help reduce fresh food waste without leaving customers with a picked-over assortment.\n\n\n\n3. Verify All Incoming Inventory at the Receiving Door\n\nWhile sales patterns are helpful, inventory shrinkage can begin before a product ever reaches the shelf. A shipment may arrive damaged or too close to the end of its selling window. If no one catches the issue at delivery, the discrepancy can quietly make its way into the inventory system. So, it’s wise to match delivered quantities against purchase orders and invoices while the shipment is still in front of you.\n\n\n\nTeams should also check product temperatures, packaging conditions, and remaining shelf life. Shortages or damage should be documented immediately, and products that fail to meet agreed standards may need to be refused. Finally, confirm that every accepted item enters the inventory system correctly. A receiving process only protects inventory when the physical delivery and digital record match.\n\n\n\n4. Protect Shelf Life Through Proper Storage and Handling\n\nOnce products are accepted, the focus shifts from confirming inventory value to preserving it. Chilled and frozen products should instantly move into the right storage conditions with consistent temperature monitoring. After all, the last thing you want is for dairy or seafood orders to spoil before they hit the floor. Opened ingredients and prepared items also need clear labels so teams know what should be used first.\n\n\n\nFirst-in, first-out (FIFO) rotation practices help keep products moving within their usable windows.\n\n\n\nShelves and storage areas should leave enough room for staff to see dates and reach older inventory. An overfilled cooler may look well-stocked, but it can make proper rotation much harder. Beyond holding, clear handoffs matter as well. Receiving, storage, production, and merchandising teams should follow the same labeling and rotation procedures to protect not only the products, but also the time available to sell them.\n\n\n\n5. Match Production and Displays to the Pace of Demand\n\nGiving inventory room to move matters on the sales floor, too. A full bakery case or hot-food counter can look inviting, but abundance does not require putting the entire day’s inventory out at opening. More often than not, it just encourages perfectly good food to go to waste. Smaller production runs and timely replenishment can keep displays appealing while giving teams more flexibility as demand becomes clearer.\n\n\n\nTo match the pace of foot traffic, food retailers can:\n\nPrepare smaller batches when expected demand allows\n\nSet production cutoffs based on how much selling time remains\n\nReplenish displays throughout the day instead of filling them all at once\n\nAdjust the assortment while keeping displays appetizing and easy to shop\n\nTrack which bakery goods, prepared meals, or other fresh items are repeatedly left at closing\n\n\n\nThe right rhythm will vary by format and location. A café or local grocer may reduce sandwich production late in the afternoon, while a deli could replenish popular items more often during lunch. A quick-service restaurant may only ramp up production toward the dinner rush. Matching production and displays to actual sales patterns helps reduce inventory shrinkage without making the customer experience feel limited.\n\n\n\n6. Act Fast Before Edible Surplus Becomes a Write-Off\n\nEven with tighter ordering and production, some products will approach the end of their selling window before they find a new home. The earlier teams spot them, the more options they have to reduce inventory shrinkage. Start by repositioning or promoting items while they can still sell normally. If sales remain slow, apply markdowns early enough for customers to notice and respond — think early bird sales soon after opening.\n\n\n\nFrom there, eligible surplus that doesn’t sell may still generate revenue through a surplus food marketplace, like Too Good To Go. Qualifying food can also be donated while it remains edible. Once products can no longer be sold or donated, composting may be the appropriate next step. The exact path will depend on the product, but the principle stays the same: don’t wait until food becomes unsellable to decide what happens next.\n\n\n\nSome Surplus Remains Even When Inventory Is Managed Well\n\nEven the best forecasts won’t get every day exactly right. A rainy afternoon can slow foot traffic, a large order may be canceled, or customers may simply choose differently than expected. At the same time, retailers still need enough food available throughout the day. When good food is left at closing, the focus shifts from preventing inventory shrinkage to recovering value while there’s still time.\n\n\n\nThat’s where a surplus food marketplace like Too Good To Go gives retailers another option.\n\n\n\nToo Good To Go won’t fix a receiving discrepancy or make damaged food sellable, but it can connect eligible surplus that’s still safe to enjoy with nearby customers. Teams simply bundle available items into Surprise Bags, choose a price and pickup window that fit their operations, and list them in the Too Good To Go app. Customers purchase directly in the app and collect their Surprise Bag at the specified time.\n\n\n\nIn other words, Too Good To Go doesn’t replace careful ordering or strong inventory practices. It gives retailers a plan for the surplus that still turns up after those efforts have done their job. Food that might otherwise become a complete write-off gets another chance to reach a customer, helping the business earn back some of what it’s already spent. That means unsold food has another chance to be enjoyed.\n\n\n\nRecover Value from Eligible Surplus with Too Good To Go\n\nInventory shrinkage may never disappear completely, especially when customer demand changes without warning. Too Good To Go gives food retailers a practical way to act on eligible surplus before it becomes a total loss. Each Surprise Bag helps recover some revenue from food the business has already paid for. Food headed for a write-off can instead bring nearby customers through the door and keep them coming back.\n\n\n\n\n\nReady to make more of your surplus? Get started with Too Good To Go.\n\n\n\n\n\nFAQs About Inventory Shrinkage\n\nWhat is inventory shrinkage in food retail?\n\nInventory shrinkage is the difference between how much inventory a retailer’s records indicate should be on hand and how much is actually available to sell. It can include unexplained discrepancies discovered during an inventory count as well as known write-offs caused by spoilage, damage, theft, or products reaching the end of their selling window.\n\n\n\nHow do food retailers calculate their inventory shrink rate?\n\nSubtract the actual value of inventory on hand from the value shown in your records. Divide the difference by the recorded inventory value, then multiply the result by 100. The resulting percentage shows the overall shrink rate, though retailers should also track individual causes to understand where those losses begin.\n\n\n\nWhat causes inventory shrinkage in food businesses?\n\nCommon causes include receiving discrepancies, incorrect inventory records, theft, product damage, and improper storage. Food retailers also face losses when perishable products spoil or remain unsold beyond their selling window. Ordering too much, producing food too early, or filling displays beyond likely demand can make those losses more likely.\n\n\n\nHow can food retailers reduce inventory shrinkage?\n\nStart by tracking where and why inventory loses value, then tighten ordering around actual sales patterns and verify deliveries. From there, improve storage and rotation practices and match production more closely to demand. Acting early when products approach the end of their selling window also creates more opportunities to sell, mark down, donate, or divert them.\n\n\n\nHow does Too Good To Go work for food retailers?\n\nRetailers bundle eligible surplus food into Surprise Bags, choose a price and pickup window that fit their operations, and list the bags in the Too Good To Go app. Customers purchase directly through the app and collect their Surprise Bags from the business during the designated pickup window.\n\n\n\nWhat types of inventory shrinkage can Too Good To Go help address?\n\nToo Good To Go offers another channel for eligible surplus food that remains safe to enjoy but may not sell through its usual channel. Depending on the business, that might include groceries, baked goods, or ready-to-eat meals. Businesses bundle whatever qualifying food is left that day into Surprise Bags, so the exact contents can change based on availability.",{"_type":429,"alt":543,"asset":544,"fit":30},"Checking packaged lettuce freshness",{"_ref":545,"_type":15},"image-b26abe6e9330e1bbe64546e25d4793183db21245-4898x3265-jpg","2026-08-20T14:13:35.929Z","\u002Fblog\u002Finventory-shrinkage-food-retail","How Food Retailers Can Reduce Inventory Shrinkage",{"_createdAt":550,"_id":551,"categories":8,"content":552,"excerpt":553,"file":8,"image":554,"language":43,"migrated":8,"pretitle":482,"publishedAt":559,"slug":560,"title":561,"updatedAt":8,"url":8},"2026-08-06T16:43:18Z","41aef15d-b750-4abf-83f9-2c8c497f9adf","Every few months, restaurant operators have the chance to put something exciting on the table. The right seasonal restaurant menu ideas keep the dining experience feeling fresh without reinventing the entire concept. Customers enjoy trying dishes that won’t be around forever, while kitchen staff can make the most of ingredients at their peak. Done right, guests start looking forward to what’s coming next.\n\n\n\nIndependent restaurants can also use seasonal menus as a practical tool behind the scenes. A focused menu can make inventory easier to manage and help reduce surplus food before it happens. Not sure where to begin? You’ve come to the right place. Ahead, we’ll share seasonal menu ideas along with practical tips for building a menu that works just as well in the back of house as it does the front of house.\n\n\n\nWhy Seasonal Menus Can Help Reduce Food Waste\n\nFood hasn’t been getting any cheaper, which means every purchasing decision now carries a little extra weight. Case in point? Average restaurant food costs have climbed 34% over the past six years. Seasonal menus help restaurants buy ingredients when they’re abundant and often less expensive, making it easier to control costs without compromising quality. That’s one reason many operators revisit their menus several times a year.\n\n\n\nYet, even with careful planning, surplus is often hard to avoid. Full-service restaurants generate nearly $72 billion worth of surplus food every year, or about $197 million every day. That’s money operators can’t afford to lose. While no restaurant can eliminate waste completely, many of the decisions that determine how much surplus you create happen long before the first order is fired.\n\n\n\nSeasonal restaurant menu ideas can help. A menu built around seasonal ingredients naturally narrows your purchasing list. Instead of stocking dozens of products year-round, you can buy with a specific group of dishes in mind month-over-month. Many of those ingredients can pull double duty across appetizers, entrées, sides, and specials, helping inventory move through the kitchen faster.\n\n\n\nSeasonal menus also give operators a clear beginning and end. Limited-time offerings make it easier to estimate how much inventory you’ll need compared with carrying the same ingredients indefinitely. Better forecasting doesn't guarantee you’ll sell every last item, but it does put you in a stronger position than ordering without a plan. Reducing food waste in restaurants starts long before closing time. It starts with the menu.\n\n\nSeasonal Restaurant Menu Ideas for Your Next Refresh\n\nGood seasonal menus don’t just reflect what’s growing outside or what’s going for the best price with suppliers. They help food managers buy with purpose, let kitchens use ingredients across multiple dishes, and create fewer opportunities for surplus in the first place. The examples below highlight seasonal restaurant menu ideas that can help you do exactly that throughout the year.\n\nSpring Into New Flavors and Textures\n\nAfter months of hearty winter dishes, spring is a chance to lighten things up. Seasonal restaurant menu ideas for these months often revolve around ingredients like asparagus, peas, strawberries, and fresh herbs that naturally brighten a menu. They’re a great fit for spring pastas, grain bowls, and seafood salads that give loyal returning guests something new to look forward to weekly.\n\n\n\nSpring is also a good time to simplify purchasing. Instead of introducing dozens of new ingredients, focus on a handful that can carry multiple dishes. Fresh herbs can tie together sauces, dressings, and cocktails, while asparagus works just as well at brunch as it does alongside an evening entrée. Building multiple menu items around the same ingredients helps inventory move faster and leaves fewer products sitting in the walk-in.\n\n\n\nMake the Most of Peak Summer Produce\n\nDepending on your location, summer can be your busiest season or your quietest months of the year. Beach towns may be serving packed dining rooms all day long, while college communities and business districts often experience the opposite. Either way, taking advantage of peak summer produce can help control food costs, whether you’re ordering in bulk for heavy traffic or keeping purchases lean during slower weeks.\n\n\n\nTomatoes are a great example. One delivery can support sandwiches at lunch, house-made salsa for appetizers, and a pasta special later in the week. Designing your menu around versatile summer ingredients keeps produce in rotation without making every dish feel the same. It also helps dishes stay fresh, even as hot weather makes guests less likely to leave the comfort of air conditioning.\n\n\n\nLean Into Ultra Comfort Food This Fall\n\nOnce the sun sets on summer months, cooler weather changes what guests crave almost overnight. Seasonal restaurant menu ideas naturally shift toward roasted vegetables, richer sauces, and comforting entrées that feel right at home as temperatures drop. Squash, apples, mushrooms, and sweet potatoes make it easy to introduce those flavors without completely reinventing the menu, and they do so at a crave-worthy price.\n\n\n\nNot to mention, many fall ingredients earn their place by doing more than one job. Roasted squash might become a soup one day and a ravioli filling the next, while apples can move from a harvest salad to a seasonal dessert. Finding those overlaps helps reduce unnecessary purchasing and gives chefs room to adjust offerings and stay creative as guest demand changes throughout the season.\n\n\n\nWarm Up Your Winter Menu with Classics\n\nAs the calendar shifts toward the new year, winter calls for seasonal menus that work as hard as your kitchen does. The potential for colder weather, holiday travel, and even the post-holiday slowdown can make guest traffic harder to predict, no matter where you’re located. Building your menu around dependable ingredients gives the kitchen more flexibility without sacrificing the comforting classics guests come to expect.\n\n\n\nRoot vegetables are particularly valuable this time of year because they hold well and adapt to different preparations. The same carrots or potatoes might anchor a slow-cooked stew early in the week, then reappear as a roasted mash with a different entrée. That kind of versatility helps managers make the most of every supplier order, especially if deliveries slow with snow or icy weather.\n\n\n\nWhat To Do When Seasonal Menus Leave Surplus Behind\n\nSeasonal restaurant menu ideas can go a long way toward reducing unnecessary purchasing, but they can’t account for everything. Rainy weekends, canceled reservations, and changing guest preferences all affect what sells on any given day. That’s just the reality of the restaurant business. Reducing food waste in restaurants isn’t about eliminating that surplus altogether; it’s about having a plan for what’s left at the end of service.\n\n\n\nEnter a surplus food marketplace like Too Good To Go. Rather than writing off eligible surplus food as a complete loss, restaurant operators can recover some of its value while helping reduce food waste each day.\n\n\n\nToo Good To Go makes the process simple. Restaurants bundle surplus food into discounted Surprise Bags, choose a pickup window that fits their operations, and list them in the Too Good To Go app. Customers purchase directly through the app, then stop by during the scheduled pickup time to collect their Surprise Bag. It’s an easy way to earn additional revenue from food that might otherwise go unsold, all without disrupting service.\n\n\n\nBuild Stronger Seasonal Restaurant Menus with Too Good To Go\n\nSuccessful operators know that profitability starts way before the dinner rush. Seasonal restaurant menu ideas help kitchens buy with purpose and make better use of ingredients throughout the year. Recovering value from eligible surplus food adds another layer to that strategy, making reducing food waste in restaurants an actionable part of everyday operations rather than an afterthought.\n\n\n\nToo Good To Go helps restaurants recover value from food that deserves a second chance, turning smart menu planning into an even smarter business strategy. Join thousands of food businesses already using the marketplace and discover how easy it is to serve more guests while wasting less.\n\n\n\n\n\nStart rescuing food today\n\n\n\n\n\nFAQs About Reducing Food Waste in Restaurants\n\nWhat are the benefits of seasonal restaurant menus?\n\nSeasonal restaurant menus help restaurants purchase ingredients when they’re abundant and often more affordable. They also make it easier to plan inventory, introduce limited-time dishes that keep guests interested, and use ingredients across multiple menu items to reduce unnecessary surplus.\n\n\n\nHow do seasonal menus help reduce food waste?\n\nSeasonal menus narrow purchasing around a focused group of dishes instead of carrying the same ingredients year-round. That makes inventory easier to forecast and helps fresh products with shorter expiry windows move through the kitchen before they spoil.\n\n\n\nWhat ingredients work well across multiple menu items?\n\nVersatile ingredients are ideal because they can appear in several dishes without feeling repetitive. For example, fresh herbs can be used in sauces, dressings, cocktails, and garnishes, while tomatoes can support sandwiches, salads, pasta dishes, and house-made salsas.\n\n\n\nHow often should restaurants update seasonal menus?\n\nMany independent restaurants refresh their seasonal menus about four times a year to align with changing produce availability and guest preferences. Some operators also introduce limited-time specials between major menu updates to test new dishes without committing to a full menu change.\n\n\n\nHow does Too Good To Go work for restaurants?\n\nToo Good To Go helps restaurants recover value from eligible surplus food by selling discounted Surprise Bags through the app. Restaurants bundle available items, choose a pickup window that fits their operations, and list the Surprise Bags for sale. Customers purchase directly through the app and collect their order during the scheduled pickup window.\n\n\n\nCan Too Good To Go help restaurants reduce food waste?\n\nYes. Too Good To Go gives restaurants a practical way to recover value from eligible surplus food that might otherwise be discarded. In addition to generating incremental revenue, the marketplace helps reduce food waste while introducing new customers to participating restaurants. Each meal saved through Too Good To Go is equivalent to avoiding 2.7 kg of CO2e emissions and 810 litres of water.\n\n\n\n\n\n\n\n\n\n\n\n\n","Discover seasonal restaurant menu ideas that help independent operators buy smarter and keep menus fresh. Learn how to reduce food waste and protect margins.",{"_type":429,"alt":555,"asset":556,"fit":558},"Chef slicing mushrooms on a blue cutting board with fresh vegetables on a metal counter.",{"_ref":557,"_type":15},"image-3a09f664d77bd4c350cbf4a60d2ab14db801ac8a-7360x4912-jpg","contain","2026-08-06T18:41:11.721Z","\u002Fblog\u002Fseasonal-restaurant-menus","How Independent Restaurants Can Use Seasonal Menus to Reduce Food Waste",{"_createdAt":563,"_id":564,"categories":8,"content":565,"excerpt":566,"file":8,"image":567,"language":43,"migrated":8,"pretitle":482,"publishedAt":571,"slug":572,"title":573,"updatedAt":8,"url":8},"2026-07-29T21:33:25Z","5e40ad59-48fe-4b27-b40e-e485a2dc8db9","Restaurant operators have had to navigate years of rising costs. Between 2020 and 2026 alone, total food costs for the average restaurant increased by 34%, putting even more pressure on already tight margins. Add in expenses like utilities, occupancy, and credit card processing fees, and there isn’t much room for error. The good news? Food is one of the few major costs operators can actively control.\n\n\n\nRaising menu prices or shrinking portions may seem like the obvious answer, but they’re far from the only solutions. Understanding your food cost percentage helps you spot opportunities to improve profitability while protecting the quality your guests expect. The first step is knowing what this metric actually measures and how to use the food cost percentage formula to make smarter decisions every day.\n\n\nWhat Is Food Cost Percentage in Restaurants?\n\nIf ingredients feel pricier than ever, you’re not imagining it. More than 80% of operators reported higher food costs in 2025. However, ingredients don’t tell the whole story. Food cost percentage measures how much of your food sales revenue is spent on ingredients. It’s one of the clearest indicators of menu profitability because it shows how efficiently your kitchen turns inventory into revenue, rather than just how much you’re spending.\n\n\n\nMost restaurants monitor both ideal and actual food cost. Ideal food cost is based on recipe costs and expected portions, assuming every ingredient is used exactly as planned. Actual food cost reflects what really happened in your kitchen, including spoilage, overportioning, prep waste, and other losses. The gap between the two often reveals where opportunities for improvement exist.\n\n\n\nSpending $8,000 on ingredients isn’t inherently good or bad. The real value comes from calculating food costs in relation to overall restaurant revenue. Spending $8,000 to generate $20,000 in food sales tells a very different story than spending the same amount to generate $35,000. Food cost percentage puts spending in the context of sales, making it much easier to compare performance over time and identify changes that deserve a closer look.\n\n\n\nHow to Calculate Your Food Cost Percentage\n\nCalculating your restaurant’s food cost percentage is straightforward once you know which version you’re using: the ideal food cost formula or the actual food cost formula. Here’s a step-by-step guide to do just that.\n\n\n\nIdeal Food Cost Percentage Formula\n\nIdeal food cost compares the expected cost of ingredients to the revenue those menu items generate:\n\n\n\nIdeal Food Cost % = Food Cost ÷ Food Sales × 100\n\n\n\nFor example, if a menu item costs $8 in ingredients and generates $30 in sales, your ideal food cost percentage would be 26.7%. Calculating your ideal food cost helps you realize whether individual menu items are priced to support healthy margins before they ever reach the kitchen’s expo line.\n\n\n\nActual Food Cost Percentage Formula\n\nActual food cost starts with your cost of goods sold (COGS), which accounts for inventory used during a specific period:\n\n\n\nStep 1. Calculate Actual COGS\n\nActual COGS = Opening Inventory + Purchases − Ending Inventory\n\n\n\nStep 2: Calculate Actual Food Cost Percentage\n\nActual Food Cost % = Actual COGS ÷ Food Sales × 100\n\n\n\nFor example, imagine you begin the week with $6,000 in inventory, purchase another $4,000 in ingredients mid-week, and finish with $2,500 in inventory. Your actual COGS is $7,500. If the restaurant generated $25,000 in weekly food sales, your actual food cost percentage would be 30%.\n\n\n\nThough these are hypothetical figures, comparing your actual percentage to your ideal percentage can reveal where costs are creeping higher than expected. Food waste is often a major contributor. Limited- and full-service restaurants generate more than $103 billion in surplus food each year, making waste reduction an overlooked tactic to improve profitability without sacrificing food quality.\n\n\n\nWhat Is a Good Food Cost Percentage?\n\nThere’s no single food cost percentage every restaurant should aim for. While food costs account for roughly 33 cents of every dollar in restaurant sales on average, that figure is just a broad industry snapshot. What’s considered healthy or sustainable depends on your restaurant’s concept, menu, and business model, making comparisons across different types of restaurants less meaningful.\n\n\n\nQuick-service restaurants, for instance, often operate with lower food costs because of standardized menus and efficient operations. On the other hand, casual dining and fine dining restaurants may accept higher food costs in exchange for premium ingredients or elevated guest experiences. Restaurants with alcohol and other specialty beverage menus may also look different than concepts focused primarily on food sales.\n\n\n\nThe food cost percentage formula becomes most useful when you compare your own performance over time or benchmark against restaurants with a similar concept. A number that’s healthy for one business may not be realistic (or even desirable) for another. Rather than chasing an industry average, focus on the operational changes that have the greatest influence on your own results.\n\n\n\nWhat Drives Food Cost Percentage?\n\nNo single factor determines your food cost percentage. Instead, it reflects dozens of daily decisions made across purchasing, pricing, and service. Understanding the biggest drivers helps you identify where small operational improvements can have the greatest impact on profitability without compromising the guest experience.\n\n\n\nMenu Pricing\n\nThe prices on your menu are just as important as the cost of the ingredients on the plate. Even if ingredient prices stay exactly the same, your food cost percentage can increase if menu prices no longer reflect rising operating expenses like labor and utility costs. Regularly reassessing menu prices helps protect margins while ensuring each dish continues to support the financial goals of your restaurant.\n\n\n\nIngredient Costs\n\nEvery ingredient that enters your kitchen becomes part of the food cost percentage formula. Supplier price increases, commodity market fluctuations, and seasonal availability can all raise your costs before a dish ever reaches the customer. Periodically reviewing vendor pricing and evaluating substitutions can help offset higher expenses without lowering food quality. Building menus around seasonal ingredients can also help reduce produce costs while keeping offerings fresh for guests.\n\n\n\nPortion Control\n\nOnce ingredients reach the kitchen, consistency becomes the next priority. A single extra ounce of protein or an oversized scoop of fries may not seem significant, but repeated across hundreds of orders, those small differences add up quickly. Maintaining consistent recipes and portions helps stabilize your food cost percentage while giving guests the reliable dining experience they expect every visit.\n\n\n\nFood Waste\n\nNot every cost comes from the meals you serve. Food waste can happen at nearly every stage of kitchen operations. Some losses happen during prep through trim waste; others happen when ingredients spoil in storage or prepared food goes unsold at the end of the day. Since the actual food cost percentage formula accounts for all inventory used, those costs still count even if the food never generates revenue.\n\n\n\nInventory Management\n\nThe final piece is making sure you know exactly what’s in your kitchen and how quickly it’s moving. Over-ordering, inaccurate inventory counts, and products that expire before they’re used all increase costs unnecessarily. Following practices like first in, first out (FIFO) and ordering based on expected demand helps keep your food cost percentage aligned with actual sales instead of avoidable losses.\n\n\n\nHow to Lower Food Cost Percentage Without Sacrificing Quality\n\nEvery restaurant has opportunities to improve profitability without cutting corners. You don’t have to overhaul your prices or slice portion sizes overnight to improve your food cost percentage. Instead, focusing on a handful of operational best practices can help lower it over time while protecting the consistency and quality your guests expect. Consider small steps, such as:\n\n\n\nOptimize your menu mix. Highlight dishes with stronger margins, and regularly review menu performance to identify items that no longer support your profitability goals.\n\nStandardize recipes and portions. Consistent preparation helps reduce unnecessary food costs while giving guests the same experience every time they order.\n\nStrengthen inventory practices. Keep inventory accurate, use FIFO on all new purchases, and prep ingredients before they expire to minimize avoidable losses.\n\nImprove demand forecasting. Prepare closer to expected demand to help reduce overproduction while making sure popular menu items remain available.\n\nRecover value from surplus food. Leverage surplus food marketplaces to sell eligible unsold food instead of treating it as a complete loss.\n\n\n\nEven the best-performing restaurants occasionally end the day with perfectly good food that never gets sold. Rather than writing those items off entirely, many restaurants use surplus food marketplaces to recover a portion of their costs while reducing the amount of food waste each shift. It’s a practical way to improve profitability without changing recipes or compromising the guest experience. Too Good To Go gives restaurants a simple way to put this strategy into action.\n\n\n\nToo Good To Go helps restaurants recover value from eligible surplus food through discounted Surprise Bags. Restaurants bundle available items, set a pickup window that fits their operations, and list the Surprise Bags in the app. Customers purchase directly through Too Good To Go, then collect their order during the designated pickup window. Less food goes to waste, more revenue comes from surplus food, and restaurants have another way to connect with local customers.\n\n\n\nFood Cost Percentage Is About More Than Spending Less\n\nImproving your food cost percentage isn’t about slashing ingredient costs; it’s about making the most of every dollar you spend. Restaurants that consistently protect their margins do so by pricing thoughtfully, serving consistent portions, and managing inventory carefully. Reducing avoidable waste is another way to strengthen profitability while continuing to deliver the quality guests expect.\n\n\n\nToo Good To Go helps restaurants turn eligible surplus food into an opportunity instead of a loss. By recovering value from food that might otherwise go unsold, restaurants can not only reduce waste but also improve profitability and introduce more local customers to what they have to offer. Sell your surplus food on Too Good to Go today.\n\n\n\nStart selling your surplus food today\n\n\n\n\n\nFAQs About Food Cost Percentage\n\nWhat is the difference between food cost and food cost percentage?\n\nFood cost is the total amount you spend on ingredients. Food cost percentage compares that spending to your food sales, giving you a clearer picture of profitability. Two restaurants may spend the same amount on ingredients, but the one generating more sales from those ingredients will have a healthier food cost percentage.\n\n\n\nHow often should restaurants calculate food cost percentage?\n\nMany restaurants calculate food cost percentage weekly so they can spot changes before they become larger problems. Others review it daily for high-volume operations or monthly for broader financial reporting. The right schedule depends on your operation, but reviewing it consistently makes it easier to identify trends and respond quickly.\n\n\n\nCan reducing food waste improve restaurant profitability?\n\nYes. Reducing food waste helps restaurants make better use of the inventory they’ve already purchased. Improvements such as accurate portioning, stronger inventory management, better demand forecasting, and recovering value from eligible surplus food can all help improve profitability without compromising food quality or the guest experience.\n\n\n\nHow does Too Good To Go work for restaurants?\n\nToo Good To Go helps restaurants recover value from eligible surplus food through discounted Surprise Bags (https:\u002F\u002Fwww.toogoodtogo.com\u002Fen-us\u002Fsurplus-food-marketplace). Restaurants bundle available items, choose a pickup window that fits their operations, and list the Surprise Bags in the app. Customers purchase them directly through Too Good To Go and collect their order during the designated pickup time.\n\n\n\nDoes using Too Good To Go create extra work for restaurant staff?\n\nToo Good To Go is designed to fit into existing restaurant workflows. Since restaurants decide when to list Surprise Bags and when customers can pick them up, staff can choose a process that works alongside normal service. Instead of preparing separate meals, restaurants package eligible surplus food that would otherwise go unsold.\n\n\n\nWhat can restaurants include in a Too Good To Go Surprise Bag?\n\nSurprise Bags can include a variety of eligible surplus food that remains fresh and safe to enjoy but is unlikely to sell before the end of a shift. Depending on the restaurant, that may include prepared meals, baked goods, sandwiches, salads, side dishes, or desserts. Because availability changes daily, the contents are always a surprise for customers.","Understand the food cost percentage formula and what it reveals about restaurant profitability. Learn practical ways to reduce costs without cutting quality.",{"_type":429,"alt":568,"asset":569,"fit":558},"A woman in an apron chopping an onion in a professional kitchen.",{"_ref":570,"_type":15},"image-4402ca664dda2297627d47aee9cbea48ac1d73cd-4096x2160-jpg","2026-07-30T22:00:00.000Z","\u002Fblog\u002Ffood-cost-percentage","How Restaurants Can Reduce Food Cost Percentage Without Cutting Quality",{"_createdAt":575,"_id":576,"categories":8,"content":577,"excerpt":8,"file":8,"image":578,"language":43,"migrated":8,"pretitle":482,"publishedAt":582,"slug":583,"title":584,"updatedAt":8,"url":8},"2026-07-23T15:11:53Z","59984dd0-7a11-4524-971d-80ac6401a4e5","There’s something satisfying about stumbling across a grocery store you never knew existed. Maybe it’s the neighborhood market with incredible produce, or the specialty shop that carries ingredients you can’t find anywhere else. Perhaps it’s the regional supermarket that everyone else seems to have known about all along. Those unexpected finds can completely change the way you shop, and they’re often closer than you think.\n\n\n\nIf you’ve ever searched “local grocery stores near me” and wondered whether there was more to discover than the same handful of familiar chains, you’re asking the right question. The truth is, local groceries come in many forms, from independently owned markets to neighborhood fruit stands that don’t always make the top of popular search results. Here’s how to discover better local grocery options, wherever you live.\n\n\n\nHave You Been Overlooking Local Groceries?\n\nMany people hear the phrase ‘local groceries’ and immediately picture the big-box retailer that’s down the block or the neighborhood supermarket that’s been a staple in the community for the past 30 years. While those retailers certainly qualify, they’re only part of the story. Some of the best neighborhood finds are the local grocery stores you may already pass by every week without a second thought. Consider options like:\n\n\n\nButcher shops\n\nProduce markets\n\nInternational markets\n\nBakeries with grocery selections\n\nRegional grocery chains\n\nIndependent grocers\n\nNatural food stores\n\nFarmer’s markets\n\n\n\nLocal groceries aren’t defined by store size or if they’re part of a larger company. What matters is that they serve your community and offer something worth discovering, whether that’s seasonal veggies, specialty ingredients, or simply a better shopping experience. Finding one of those overlooked stores has a way of making you wonder what other hidden gems are waiting for you nearby. Luckily, they’re not hard to find.\n\n\n\nHow to Find Great Local Grocery Stores Near You\n\nIt’s one thing to search for local grocery stores every time you’re on a food run, and it’s another to know what to look for once those search results appear. A little curiosity can uncover neighborhood favorites that deserve a place in your regular grocery rotation. The tips below will help you compare your options and discover the hidden gems that may have been right around the corner all along.\n\n\n\nStart with Neighborhood Search Tools\n\nA Google search is a great place to begin, but chances are, you’ve been to those retailers a dozen times in the past few months. Plus, many hidden gems build loyal followings through word of mouth rather than big marketing budgets. Some of the best neighborhood finds won’t necessarily appear at the top of search results. Instead, start with Google Maps, and spend a few minutes checking more than just the overall star rating.\n\n\n\nFirst, read what nearby shoppers actually have to say. Do they rave about the produce? Mention friendly staff? Talk about making a special trip because the selection is worth it? Those details often paint a far clearer picture of the available local groceries than a five-star review ever could.\n\n\n\nOnce you’ve done that, see what your community recommends. Neighborhood Facebook groups and local Reddit threads are full of shoppers sharing their favorite hidden gems, whether it’s the produce market they swear by or the regional grocery store they wish they’d discovered sooner.\n\n\n\nThen Look Beyond Price Tags\n\nNow that you’ve found a few promising stores, it’s time to see what makes each one worth returning to in the first place. Price matters, of course, but it shouldn’t be the only thing guiding your decision. A grocery store that saves you a few dollars isn’t always the one that offers the best overall value.\n\n\n\nStart in the produce department. Fruits and vegetables should look fresh, well-stocked, and carefully maintained. From there, wander the aisles instead of sticking to your shopping list. You might spot locally-made products or artisan-crafted specialty ingredients that aren’t available at larger chains. These types of one-of-a-kind finds are what make breaking your usual routine worth it when shopping for local groceries.\n\n\n\nIf your week is packed with work or school pickups, don’t skip the prepared foods section either. Ready-to-cook meals and grab-and-go dinners can make busy evenings much easier while introducing you to dishes you may not have tried otherwise. As you checkout, pay attention to the atmosphere. Helpful employees and clean aisles often say just as much about the shopping experience as what’s sitting on the shelves.\n\n\n\nBe Sure to Visit at Different Times\n\nAfter you’ve narrowed your list to a few promising retailers, don’t stop after a single visit. Every store has its own rhythm, and getting to know it can make the difference between a good shopping trip and a great one. Returning at different times of day helps you understand when selection is at its best, what local groceries tend to sell quickly, and when you’re most likely to come across unexpected finds.\n\n\n\nFor instance, morning visits are often the best time to browse freshly stocked produce and bakery items before they're picked over. Later in the day, you may find unbeatable markdowns on prepared foods or other perishable items approaching their sell-by dates. If a store regularly carries seasonal specialties or local-made products, ask when deliveries arrive so you can plan your next visit around fresh inventory.\n\n\n\nBefore long, you’ll start to notice each store’s strengths. One may turn into your favorite stop for fresh fruit, another for weeknight meals, and another for ingredients you can’t seem to find elsewhere. That’s how the best hidden gems are discovered: not by luck, but by becoming a regular.\n\n\n\nHidden Grocery Gems Look Different in Every City\n\nThe best grocery discoveries don’t all look the same. Every neighborhood has its own shopping culture, so the stores worth exploring in one city may be completely different from those in another. Still, the strategy stays the same. No matter if you’re searching for local grocery stores near you in a major metro or a smaller town, look beyond the biggest chains and pay attention to the retailers people return to week after week.\n\n\n\nHere are a few examples of the kinds of local grocery stores worth seeking out in different cities:\n\nYou don’t have to live in one of these cities to put these ideas into practice. Every community has its own mix of neighborhood markets, regional grocery stores, and specialty shops to discover. Learning to spot those opportunities can open the door to better shopping, one new store at a time. Once you know what to look for, you’re far more likely to stumble across new favorites closer to home on every grocery run.\n\n\n\nSave Even More on Local Groceries with Too Good To Go\n\nNo matter where you call home, the biggest challenge is often knowing which stores are worth exploring first. Fortunately, there are more ways than ever to uncover nearby grocery stores you might have otherwise missed. One of them is the Too Good To Go app, a free-to-download surplus food marketplace that connects shoppers with nearby grocery stores and other food retailers selling unsold food at a major discount.\n\n\n\nIt’s a simple way to discover local groceries while stretching your budget a little further. Here’s how it works:\n\nFirst, browse nearby grocery stores and other food retailers in the app.\n\nNext, reserve a Surprise Bag for roughly one-third of its original retail value.\n\nThen, pick it up during the store’s designated pickup window.\n\nFinally, pick up your Surprise Bag and enjoy what’s inside.\n\n\n\nThe exact contents of each Surprise Bag are a mystery, but you’ll know the general type of food you’re reserving before you buy. That element of surprise is part of the fun. One pickup could introduce you to a neighborhood grocery store you’ve never visited before, while the next might help you discover a new favorite product. Along the way, you’ll save money, support local businesses, and stop good food from going to waste.\n\n\n\nDiscover More Local Grocery Stores Near You\n\nDiscovering local groceries doesn’t mean giving up your usual supermarket. It simply means expanding your options and staying open to stores you may have overlooked before. No matter where you’re located, every neighborhood has something worth exploring. Too Good To Go makes exploration even easier by helping you find nearby grocery stores offering discounted Surprise Bags that save money and help reduce food waste.\n\n\n\n\n\nDownload the Too Good To Go app and discover hidden grocery gems near you.\n\n\n\nFAQs About How to Find Local Groceries\n\nWhat’s considered a local grocery store?\n\nLocal grocery stores include far more than neighborhood supermarkets. They can also include independently owned markets, produce markets, butcher shops, natural food stores, regional grocery chains, bakeries with grocery selections, and specialty food retailers that serve your community.\n\n\n\nHow do I find local grocery stores near me?\n\nStart with Google Maps, then read customer reviews to learn what shoppers like about each store. Community Facebook groups and local Reddit threads are also great places to discover neighborhood favorites that may not appear at the top of search results. Surplus food marketplaces like Too Good To Go are another avenue to find nearby deals.\n\n\n\nHow can I tell if a grocery store is worth revisiting?\n\nLook beyond prices alone. Fresh produce, high-quality prepared foods, unique products, helpful staff, and a clean, welcoming environment are all signs that a store may be worth adding to your regular grocery rotation.\n\n\n\nWhen is the best time to visit a local grocery store?\n\nIt depends on what you’re shopping for. Morning visits often offer the best selection of fresh produce and bakery items, while later in the day, you may find markdowns on prepared foods and other perishable products. Asking when deliveries arrive can also help you shop when inventory is at its freshest.\n\n\n\nHow does Too Good To Go work?\n\nToo Good To Go connects shoppers with nearby grocery stores and other food retailers selling surplus food through discounted Surprise Bags. Browse participating stores in the app, reserve a Surprise Bag, then pick it up during the store’s designated pickup window. The exact contents are a surprise, but you’ll know the general category of food before you reserve.\n\n\n\nCan Too Good To Go help me discover new grocery stores?\n\nYes. Too Good To Go isn’t just a way to save money; it can also introduce you to grocery stores, markets, bakeries, and other food retailers you may not have visited before. Many shoppers use the app to discover new neighborhood favorites while helping reduce food waste.",{"_type":429,"alt":579,"asset":580,"fit":30},"Shopper selecting fresh local produce",{"_ref":581,"_type":15},"image-657171f1616772767b25cac575a0b85ad34f1b5d-5600x3733-jpg","2026-07-23T15:31:43.891Z","\u002Fblog\u002Flocal-groceries-near-you","Local Grocery Shopping: How to Find Hidden Gems in Your Neighborhood",{"_createdAt":586,"_id":587,"categories":8,"content":588,"excerpt":8,"file":8,"image":589,"language":43,"migrated":8,"pretitle":482,"publishedAt":593,"slug":594,"title":595,"updatedAt":8,"url":8},"2026-07-16T15:34:08Z","ea7c7036-95f6-41b0-9bf3-06d6cca2b74b","Food freshness affects countless decisions across the supply chain. It influences what customers buy, how businesses manage inventory, and which products ultimately end up going unsold, even when they’re perfectly edible. Many people assume freshness ends the moment a package reaches its printed date, yet the reality is often far more nuanced. Unfortunately, that misunderstanding has real consequences. Date label concerns alone account for 1.82 million tons of edible surplus food, making them the single largest contributor to food waste.\n\n\n\nA carton of yogurt, a loaf of bread, and a container of prepared food do not all lose freshness in the same way or at the same time. Quality changes differently across food categories, which means assessing freshness requires more than a quick glance at a label. Understanding what food freshness actually means is the first step toward making better decisions about food that might otherwise be discarded too soon.\n\n\n\nWhy Food Freshness is Misunderstood on Both Sides of the Counter\n\nOne of the biggest misconceptions about food freshness is that a printed date on a container or carton automatically determines whether a product should be eaten or discarded. Consumers often interpret dates as expiration deadlines, while businesses may feel pressure to remove products from shelves as those dates approach. In reality, most date labels are intended to communicate quality rather than safety.\n\n\n\nThe result is a significant amount of perfectly edible food being thrown away before it ever has a chance to be enjoyed. Common food date labels that cause confusion on both sides of the register include:\n\n\n\nSell By: Helps retailers manage inventory and stock rotation.\n\nEnjoy By: Suggests when a product is likely to provide the best eating experience.\n\nBest By: Indicates when a product is expected to have its best flavor, texture, or overall quality.\n\nUse By: Often signals the last recommended date for peak quality.\n\n\n\nInfant formula is the only product in the U.S. that is federally required to use a safety-based Use By date. Everything else is considered quality or inventory guidance. This distinction is important because many foods remain safe and enjoyable when stored properly. Learning how to keep food fresh through appropriate handling and storage can often extend a product’s usable life beyond what consumers might expect.\n\n\n\nThe Business Cost of Getting Food Freshness Wrong in Retail\n\nDate label confusion isn’t just a consumer issue. It has real financial consequences for food businesses, too. Roughly three-quarters of annual retail food waste, or $26.9 billion, comes from highly perishable categories such as produce, meat and seafood, prepared foods, and dairy. Yet nearly 45% of that food remains safe to enjoy, suggesting significant opportunities to recover value before products are discarded.\n\n\n* Based on 2024 ReFED food waste statistics\n\n\nThe financial impact extends beyond the value of the inventory itself. Employees still spend time monitoring products, rotating stock, and removing items that are no longer considered sellable. Disposal and hauling costs add another layer of expense, further increasing the impact of food waste. Improving how you evaluate food freshness can help uncover opportunities to recover value before those costs begin to accumulate.\n\n\n\nFood Freshness Looks Different Across Every Category\n\nDate labels can provide useful guidance, but they only tell part of the story. Too Good To Go’s Look, Smell, Taste initiative focuses on the signs of quality and true spoilage that date labels cannot always capture. The reason is simple: freshness doesn’t look the exact same across every category. A loaf of bread ages differently than a carton of yogurt, and neither follows the same pattern as fresh produce or seafood.\n\n\n\nMonitoring the specific characteristics of each category often provides a clearer picture than the date alone.\n\n\n\nProduce: Appearance Matters, But Looks Can Be Deceiving\n\nProduce may be one of the easiest categories to misjudge because visual imperfections are often mistaken for spoilage. A bruised apple, slightly limp greens, or a banana with brown spots may not look their best, but those changes are often a normal part of the aging process rather than signs the product is rotten. Still, consumers expressly avoid unattractive produce nearly all the time, contributing to both food waste and lost sales.\n\n\n\nWhen assessing food freshness in produce, appearance should be considered alongside texture and aroma. Lettuce that has become slimy or berries that smell fermented are very different from produce that is simply less vibrant than it was a few days earlier. Distinguishing between cosmetic changes and true spoilage can help businesses identify products that still have value before they’re tossed out of the food supply chain for good.\n\n\n\nDairy Products: Date Labels Are Only One Piece of the Puzzle\n\nUnlike produce—where visual appearance often drives purchasing decisions—dairy products tend to be judged more heavily by the date printed on the package. Still, many dairy items remain usable beyond their Best By date, particularly when they have been stored consistently at the proper temperature. For these reasons, food freshness in dairy is often better evaluated through changes in smell and texture.\n\n\n\nMilk may develop a distinctly sour odor when it begins to spoil, while yogurt and sour cream can become watery or separate beyond what is considered normal (or appetizing). Cheese presents its own challenges, with some varieties naturally changing texture as they age. For example, cheddar often becomes firmer and more crumbly over time, where Brie can soften and develop a creamier interior as it matures. Looking at the product itself, rather than relying solely on the date, often provides a clearer picture of its condition.\n\n\n\nMeat and Seafood: Storage and Temperature Matter Most\n\nWhile produce and dairy can often be evaluated through visible quality changes, meat and seafood require a greater emphasis on temperature control throughout their lifespan. There’s a reason restaurant and grocery inspectors routinely check cold storage temperatures during routine inspections. Proper cold-chain management plays a critical role in preserving meat and seafood freshness and reducing safety risks.\n\n\n\nColor is often one of the least reliable indicators of freshness in this category. Beef naturally changes color over time, yet many shoppers associate any amount of browning with spoilage. A more complete assessment considers whether products have been cold-held properly throughout storage and transport. Excessive moisture, unusual stickiness, or strong off-odors may be more meaningful warning signs than color changes alone.\n\n\n\nBaked Goods: Freshness and Safety Are Not the Same Thing\n\nMoving from highly perishable proteins to baked goods highlights an important distinction: quality decline and spoilage are not always the same thing. Bread, bagels, pastries, and other baked items naturally lose moisture over time, causing them to become firmer or less enjoyable to eat. Staleness may affect the eating experience, but it doesn’t automatically indicate a safety concern. A baguette that has lost its crusty exterior or a muffin that feels slightly dry is often still safe to eat.\n\n\n\nThat distinction becomes especially important in bakery departments, where quality often declines long before safety becomes a concern. Visible mold remains one of the clearest indicators that a product should no longer be consumed. Short of that, many baked goods remain perfectly edible even after they have passed their peak quality window, making this category a useful example of why freshness and safety should not be treated as interchangeable concepts.\n\n\n\nPrepared Foods: Time Windows Help Guide Freshness\n\nPrepared foods introduce a different freshness challenge because they often combine multiple ingredients, each with its own shelf life. Restaurants, grocery stores, and foodservice operators rely heavily on production dates, holding times, and labeling procedures to help ensure products are served within established quality and safety standards. Even with those controls in place, the food itself can provide important clues.\n\n\n\nPrepared foods that have developed unusual discoloration, excessive liquid separation, or unexpected texture changes may indicate spoilage. A sandwich with wilted lettuce, a grain bowl that has lost some texture, or a prepared salad that’s no longer at peak quality presents a different situation. Freshness can decline before a product becomes unsafe, which is why timing and sensory evaluation work together when assessing prepared foods.\n\n\n\nHow to Keep Food Fresh Longer: 5 Tips to Prolong Freshness\n\nThe signs of freshness may vary from one food category to the next, but the underlying goal remains the same. Preserving quality for as long as possible, and ensuring good food reaches customers, is always the aim. Businesses that prioritize food freshness through strong storage and inventory practices are often better positioned to reduce waste while maximizing the value of their products. Here’s how to do just that:\n\n\n\nMaintain proper storage temperatures. Consistent refrigeration helps slow quality decline and preserve freshness across dairy, meat, seafood, prepared foods, and many produce items. Regular temperature monitoring can also help identify issues before they affect product quality.\n\nUse packaging that protects product quality. Appropriate packaging helps shield food from excess moisture, air exposure, and other environmental factors that can accelerate deterioration. Storage methods should also be tailored to the needs of each product category.\n\nFollow first-in, first-out (FIFO) inventory practices. Rotating older inventory to the front and newer inventory to the back helps ensure products are sold or used in the intended order, reducing the likelihood of items being overlooked until quality declines.\n\nIdentify products before they reach their quality threshold. Monitoring inventory proactively creates more opportunities to sell, donate, or otherwise recover value from food while it still meets quality expectations.\n\nTrain employees on freshness indicators, not just date labels. Teams that understand the difference between normal aging and true spoilage are better equipped to make informed decisions to reduce unnecessary waste.\n\n\n\nHow Too Good To Go Helps Retailers Recover Value from Surplus Food\n\nEven with strong inventory management practices in place, surplus food is sometimes unavoidable. Demand can shift unexpectedly, and products may sell more slowly than anticipated, but quality windows continue to narrow with each passing day. Many foods maintain their food freshness and remain enjoyable as they approach their Best By or Enjoy By dates, yet businesses often struggle to sell that inventory before it loses value.\n\n\n\nToo Good To Go helps address that challenge through Surprise Bags. Grocery stores, bakeries, restaurants, and other food retail businesses can recover value from inventory with a limited remaining shelf life, while consumers discover surplus food through the app-based Too Good To Go marketplace. Participating businesses create their own Surprise Bags using surplus inventory that still meets their quality and food safety standards.\n\n\n\nUnlock the Opportunity Hidden Inside Food Freshness Windows\n\nThe conversation around food waste often begins with what gets thrown away, but a more useful question is why it gets thrown away in the first place. In many cases, the answer comes back to how freshness is understood throughout the supply chain. A softened peach, a slightly stale loaf of bread, and a package of beef with minor discoloration all tell very different stories, but they’re also safe to eat.\n\n\n\nToo Good To Go helps businesses capture value from these types of food that still have something left to offer. By creating a simple way to sell surplus food before quality declines further, Surprise Bags help transform limited shelf life from a liability into a chance to recover value. Learn how Too Good To Go can help your business reduce food waste and make the most of every freshness window.\n\n\n\n\n\nRecover more value from surplus food\n\n\n\n\n\nFAQ About Food Freshness\n\nWhat does food freshness actually mean?\n\nFood freshness refers to a product’s overall quality and condition, including factors such as appearance, texture, smell, and flavor. While freshness naturally changes over time, a product does not automatically become unsafe the moment it reaches a printed date. Different foods age differently, which is why freshness must be evaluated within the context of each category.\n\n\n\nAre Best By dates the same as expiration dates?\n\nNo. Most date labels are intended to communicate quality rather than safety. Labels such as Best By, Enjoy By, and Sell By generally indicate when a product is expected to deliver its best flavor, texture, or eating experience. Many foods remain safe and enjoyable beyond those dates when stored properly.\n\n\n\nWhy do consumers often throw away food that is still edible?\n\nMany consumers rely heavily on date labels or visual appearance when making decisions about food. Cosmetic imperfections, slight texture changes, or approaching quality dates are often mistaken for signs of spoilage. As a result, perfectly edible food is frequently discarded before it truly needs to be.\n\n\n\nHow can food businesses reduce waste caused by freshness concerns?\n\nBusinesses can reduce unnecessary waste by monitoring inventory proactively, maintaining proper storage conditions, rotating stock using first-in, first-out practices, and training employees to recognize the difference between normal aging and true spoilage. Evaluating products based on their actual condition rather than dates alone can also help identify opportunities to recover value.\n\n\n\nWhy is food freshness assessed differently across food categories?\n\nEach category ages in its own way. Produce may develop cosmetic imperfections while remaining perfectly edible, dairy products often show changes in smell or texture, and baked goods can become stale long before they become unsafe. Understanding category-specific indicators helps businesses make more informed decisions about inventory.\n\n\n\nWhat is Too Good To Go?\n\nToo Good To Go is a surplus food marketplace that helps food businesses reduce waste by connecting consumers with leftover items that still meet quality and food safety standards. Through the app, consumers can purchase Surprise Bags containing unsold food from participating grocery stores, bakeries, restaurants, and other food retailers.\n\n\n\nHow do Surprise Bags help businesses recover value from surplus food?\n\nSurprise Bags provide businesses with an additional way to sell food that has a limited remaining shelf life but is still fresh and enjoyable to eat. Rather than allowing that inventory to go unsold, participating businesses can package eligible surplus food into discounted Surprise Bags and offer them through the Too Good To Go marketplace, helping reduce waste while generating incremental revenue.",{"_type":429,"alt":590,"asset":591,"fit":30},"Fresh produce in Surprise Bag",{"_ref":592,"_type":15},"image-dd082d7e7126a1427dfe2e3a8cf3c4c7e036d085-2500x1667-jpg","2026-07-16T16:17:34.970Z","\u002Fblog\u002Ffood-freshness-explained","Food Freshness Explained: What It Means for Different Types of Food",{"_createdAt":597,"_id":598,"categories":8,"content":599,"excerpt":8,"file":8,"image":600,"language":43,"migrated":8,"pretitle":482,"publishedAt":604,"slug":605,"title":606,"updatedAt":8,"url":8},"2026-07-14T15:11:56Z","f352f718-7c5e-4134-b77c-ad31292f58b7","A multi-unit franchise may have predictive analytics to help with restaurant demand forecasting. An independent operator, on the other hand, is often relying on last week’s sales, the local weather report, and a little bit of luck. That doesn’t mean effective forecasting is out of reach. With the right information and a simple process, even small teams can make more informed decisions about inventory levels and staffing needs.\n\n\n\nAfter all, most operators already have access to the information they need. The next step is turning that data into a repeatable routine. Luckily, a few practical adjustments can help reduce weekly food waste and protect already-thin profit margins without adding unnecessary complexity. Let’s explore how independent restaurant operators can build a reliable forecasting system without expensive software or enterprise-level tools.\n\n\n\nWhat is Restaurant Demand Forecasting?\n\nRestaurant demand forecasting is the process of estimating how much food, inventory, and labor you’ll need based on expected sales. The goal is simple: have enough ingredients and staff on hand to serve customers without overbuying or overpreparing. That may sound straightforward, but restaurants face unique forecasting challenges.\n\n\n\nIn many ways, restaurant demand forecasting and retail demand forecasting share the same objective of matching supply to demand. The difference is that restaurants are usually working with highly perishable inventory, changing menus, and tighter service windows. A retailer may have weeks or months to sell excess inventory. In contrast, a restaurant often has days or even hours before surplus goes to waste.\n\n\n\nThat’s why forecasting matters. Even small improvements can help operators make smarter decisions throughout the week, including:\n\n\n\nPreventing over-ordering. Ordering too much inventory ties up cash and increases the likelihood that ingredients will spoil before they’re used.\n\nReducing food waste. Every surplus item that spoils or loses freshness represents lost value that has already been purchased, stored, and prepared.\n\nAvoiding stockouts. Running out of staple ingredients or popular menu items can lead to missed sales and frustrated customers who may not return.\n\nProtecting margins. Better demand forecasting helps operators balance purchasing, preparation, and labor costs without sacrificing service quality.\n\n\n\nThose benefits can add up quickly in an industry known for thin margins. Full-service restaurants typically operate within a 3% to 5% profit margin range, while fast-casual concepts often fall between 6% and 9%. When profitability is measured in single digits, even modest forecasting improvements can make a meaningful difference.\n\n\n\nThe Realities of Restaurant Demand Forecasting for Independent Operators\n\nEffective restaurant demand forecasting can be more difficult when resources are limited. Large restaurant groups may rely on sophisticated forecasting platforms, but many independent operators are still making purchasing decisions with spreadsheets and experience. Smaller teams rarely have dedicated analysts or specialized software, and tighter purchasing budgets can leave less room for error when ordering inventory from week to week.\n\n\n\nNot to mention, demand can shift quickly, even with a solid routine in place.\n\n\n\nA rainy weekend, a nearby sporting event, or the start of tourist season can change customer traffic patterns with little warning. Some weeks bring packed dining rooms, while others fall short of expectations despite looking similar on paper. Those variables make forecasting challenging, but they also highlight why having a consistent approach is so valuable. The goal isn’t to predict every shift in demand perfectly; it’s to make better decisions more often.\n\n\n\nWhat Data Should Operators Use for Restaurant Demand Forecasting?\n\nIndependent restaurants often assume they lack the necessary data for demand forecasting. In reality, most operators already collect relevant demand signals through daily operations. Sales reports, inventory records, reservations, and local demand trends can provide more than enough information to make more informed purchasing and staffing decisions. Take a look at the types of data that can fuel restaurant demand forecasting.\n\n\n\nHistorical Sales Data\n\nHistorical sales reports tend to reveal patterns that aren’t obvious during day-to-day operations. Comparing last Thursday’s dinner service to a typical Thursday from the previous month, or even the same period last year, can help operators spot recurring trends and make more confident purchasing decisions. Over time, those patterns can establish a baseline for what “normal” demand looks like throughout the week.\n\n\n\nInventory Usage\n\nSales data tells part of the story, but inventory data helps fill in the gaps. Which ingredients consistently sell through before the end of service? Which ones regularly remain unused at the end of the week? For restaurant demand forecasting, these trends can be just as valuable as sales figures because they reveal where ordering decisions — and cash flow — may be overshooting or falling short of actual demand.\n\n\n\nReservations and Advance Orders\n\nUnlike historical data or inventory usage, reservations and advance orders offer a glimpse into future demand before service begins. A full reservation book, a large catering order, or a private event on the calendar can all influence how much inventory and labor may be needed on a given shift. Reviewing these commitments several days in advance can help operators make more informed decisions before guests arrive.\n\n\n\nLocal Demand Signals\n\nWhile the above data sets are useful, customer traffic doesn’t exist in a vacuum. Weather changes, school schedules, community events, holidays, and nearby sporting events can all influence how many guests walk through the door. Paying attention to these external factors adds helpful context to restaurant demand forecasting, especially when historical sales data alone doesn’t explain sudden increases or declines in demand.\n\n\n\nSimple Tools That Make Restaurant Demand Forecasting Easier\n\nRestaurant demand forecasting becomes much more manageable when you know where each piece of information lives. Rather than hunting through multiple records every week, focus your attention on a handful of sources that make patterns easier to spot. The table below can help you connect each demand signal to the everyday tools that track it.\n\nThe good news? You don’t need to gather every data point at once. Start with the information that is easiest to access — like POS reports or reservation platforms — then layer in demand signals like vendor ordering records and local event calendars. Over time, reviewing these sources together can turn scattered information into a more reliable forecasting routine.\n\n\n\nA 6-Step Restaurant Demand Forecasting Process for Independent Operators\n\nIndependent operators don’t need advanced retail demand forecasting platforms or specialized software to stay ahead. A combination of reliable records and simple spreadsheets can provide enough visibility to make more informed decisions instantly. Here’s how to launch your own restaurant demand forecasting process for accurate inventory and labor in six simple steps.\n\n\n\nStep 1: Review Historical Sales Trends\n\nEvery routine needs a starting point. For restaurant demand forecasting, historical sales trends provide the baseline that everything else builds upon. Review performance from the same day last week, the same period last year, and any recent shifts in customer ordering behavior. Pay close attention to menu items that consistently outperform expectations as well as those that move more slowly. Those patterns can help establish a realistic starting point before making any adjustments.\n\n\n\nStep 2: Account for Upcoming Demand Drivers\n\nWhile historical sales data tells you what happened in the past, restaurant demand forecasting also requires operators to account for what is already on the calendar. Once you have a baseline, look ahead for anything that could influence customer traffic in the days ahead. Consider factors such as:\n\n\n\nReservations\n\nPrivate events\n\nCatering orders\n\nCommunity events\n\nWeather forecasts\n\n\n\nEven a few additional bookings or a well-attended local event, like a county fair or family movie night, can influence purchasing and staffing needs for the week. Weather conditions can affect demand, too. Though pleasant weather may encourage more diners to visit, storms, extreme heat, or heavy snowfall can reduce customer traffic.\n\n\n\nStep 3: Factor in Seasonality\n\nSuccessful restaurant demand forecasting goes beyond weekly fluctuations. Many restaurants experience recurring shifts in customer traffic throughout the year that can influence sales patterns for weeks or months at a time. Holidays, tourist spikes, school schedules, sporting seasons, and annual community events can all affect how busy a restaurant becomes.\n\n\n\nLikewise, ingredient costs may rise or fall depending on seasonal availability. Produce, proteins, and other ingredients move in and out of peak supply throughout the year, and some products may be harder to source during certain seasons. Factoring these trends into purchasing decisions can help operators avoid surprises while maintaining more consistent inventory levels.\n\n\n\nStep 4: Identify the Inventory Most Vulnerable to Waste\n\nOne area where restaurants differ significantly from other businesses is inventory perishability. Retail demand forecasting often focuses on products that can remain on shelves for extended periods, whereas restaurants work with ingredients that have a much shorter freshness window. Identifying the items most vulnerable to waste can help operators prioritize forecasting efforts where they matter most.\n\n\n\nPay particular attention to:\n\nPrepared foods, including soups, sauces, and sides that have limited holding periods under food safety guidelines\n\nProteins, which are among the most expensive inventory items and can create significant losses when overordered\n\nBaked goods, which may lose freshness and quality within a short period even if they remain safe to serve\n\nFresh produce, which can spoil quickly when purchasing levels exceed actual customer demand\n\n\n\nKeeping an eye on these ingredients can make it easier to prevent waste before it becomes a bigger problem. If certain items regularly end up unused or expire before they’re sold, that’s usually a sign that purchasing levels need to be adjusted. Paying closer attention to your most perishable inventory can help reduce food waste, improve margins, and make day-to-day inventory management a little less stressful.\n\n\n\nStep 5: Refine Your Purchasing Decisions Weekly\n\nLike inventory management, forecasting works best as an ongoing process rather than a one-time exercise. Effective restaurant demand forecasting requires regular adjustments based on real-world results. At the end of each week, review what sold quickly, what remained untouched, what sold out before service ended. Those insights can help fine-tune future purchasing decisions and improve forecasting accuracy over time.\n\n\n\nStep 6: Schedule Staff Based on Expected Demand\n\nForecasting isn’t just about food orders. Strong restaurant demand forecasting can also help align staffing levels with expected customer traffic. Anticipating busy periods may make it easier to schedule enough team members to maintain service quality while avoiding unnecessary labor costs during slower shifts. Cross-training employees can add flexibility as well, allowing your staff to adapt when demand is higher or lower than expected.\n\n\n\nCommon Restaurant Demand Forecasting Mistakes to Avoid\n\nAbove all, remember that forecasting doesn’t need to be perfect. It just needs to be more reliable than guessing. Even the most consistent restaurant demand forecasting routine will occasionally miss the mark, especially when customer traffic shifts unexpectedly. Still, avoiding a few common mistakes can improve accuracy in the long run and help operators make more confident purchasing and staffing decisions.\n\n\n\nRelying only on gut instinct: Experience matters, but it works best when paired with real sales, inventory, and reservation data. Use historical trends to validate assumptions before placing orders.\n\nIgnoring seasonal trends: Customer purchasing habits and ingredient availability often change throughout the year. Looking only at recent performance can create blind spots during busy or slower seasons.\n\nOrdering for best-case scenarios: Planning for a packed dining room every night can leave restaurants with excess inventory when traffic falls short of expectations. Build forecasts around realistic demand, not ideal outcomes.\n\nFailing to track waste: Surplus inventory can reveal just as much as sales reports. Continuously monitoring what goes to waste can help identify where ordering quantities need adjustment.\n\nTreating forecasting as a once-a-month task: Demand forecasting is an ongoing process. Reviewing results regularly helps identify patterns, refine purchasing decisions, and adapt to changing conditions.\n\n\n\nHow Too Good To Go Helps Restaurants Manage Forecasting Gaps\n\nCustomer traffic fluctuates, plans change, and unexpected slow periods happen. Routine restaurant demand forecasting can reduce waste, but there will still be times when ingredients or prepared foods remain unsold at the end of service. That’s where a surplus food marketplace like Too Good To Go can help.\n\n\n\nRather than relying on one-off markdowns, restaurants can bundle surplus food into Surprise Bags and offer them at a discounted price through the Too Good To Go app. Operators set their own pickup windows, giving nearby customers an easy way to discover and purchase surplus food that might otherwise go unused. In the process, restaurants can recover value from inventory they’ve already purchased and prepared.\n\n\n\nSo, while forecasting helps you make smarter purchasing decisions upfront, Too Good To Go provides another outlet when demand doesn’t unfold exactly as expected. The result is a low-lift way to generate revenue from surplus food. In other words, it works for you, even when demand forecasts don’t.\n\n\n\nBetter Restaurant Demand Forecasting Starts with Better Habits\n\nRestaurant demand forecasting doesn’t require enterprise software or predictive analytics. You can build effective forecasting habits using the same POS reports, inventory tracking spreadsheets, and reservation platforms you’ve been relying on already. Still, no forecast is perfect. That’s why many operators pair stronger forecasting habits with surplus recovery tools like Too Good To Go.\n\n\n\nTogether, the duo can help restaurants reduce waste, protect margins, and make inventory management more profitable. Are you ready to recover more value from surplus food? Learn how Too Good To Go helps restaurants turn excess inventory into additional revenue.\n\n\n\n\n\nStart recovering surplus food revenue\n\n\n\n\n\nFAQs About Restaurant Demand Forecasting\n\nHow far ahead should restaurants forecast demand?\n\nMost independent restaurants benefit from forecasting at least one week ahead while reviewing upcoming reservations, events, and inventory needs. Longer-term forecasts can also be useful for planning around holidays, tourist seasons, and recurring community events that may affect customer traffic.\n\n\n\nWhat is the most important data for restaurant demand forecasting?\n\nHistorical sales data is often the best starting point because it reveals recurring patterns in customer behavior. Inventory usage, reservations, advance orders, and local demand signals can then add context and help operators make more informed purchasing decisions.\n\n\n\nHow often should restaurants update their forecasts?\n\nRestaurant demand forecasting works best as an ongoing process rather than a one-time exercise. Reviewing results weekly can help operators identify changing trends and adjust order quantities to improve forecasting accuracy over time.\n\n\n\nWhy do restaurants struggle with forecasting accuracy?\n\nCustomer traffic can change unexpectedly due to weather, local events, seasonal shifts, and other factors outside a restaurant’s control. For these reasons, forecasting isn’t about eliminating uncertainty entirely; it’s about making better decisions based on the information available.\n\n\n\nWhat inventory items should restaurants monitor most closely?\n\nRestaurants should pay particular attention to highly perishable items such as fresh produce, proteins, prepared foods, and baked goods. These products often carry the greatest risk of spoilage when purchasing levels exceed actual demand.\n\n\n\nHow does Too Good To Go help restaurants reduce food waste?\n\nToo Good To Go provides another outlet for surplus inventory when demand doesn't unfold exactly as expected. Restaurants set their own pickup times, list available Surprise Bags, and give nearby customers an opportunity to purchase excess food that might otherwise go unsold.\n\n\n\nWhat are Too Good To Go Surprise Bags?\n\nSurprise Bags allow restaurants to bundle surplus food into a single discounted offering for local customers. Rather than letting excess inventory go unused, restaurants can recover value from food that remains at the end of service while helping reduce food waste.",{"_type":429,"alt":601,"asset":602,"fit":30},"restaurant manager reviewing demand data",{"_ref":603,"_type":15},"image-36c4b68505ff22cc856fe3defc39843d7495d431-7112x4784-jpg","2026-07-14T15:33:39.966Z","\u002Fblog\u002Frestaurant-demand-forecasting","Restaurant Demand Forecasting 101: A Practical Guide for Independent Operators",{"_createdAt":608,"_id":609,"categories":8,"content":610,"excerpt":8,"file":8,"image":611,"language":43,"migrated":8,"pretitle":482,"publishedAt":615,"slug":616,"title":617,"updatedAt":8,"url":8},"2026-07-09T15:38:52Z","bb5ac791-3e7c-4653-84b8-7add1488d6d7","Few things are more frustrating than watching your grocery bill continue to climb while your cart seems to shrink. Inflation often gets the blame, but it’s only part of the story. One of the lesser-known causes of food price increases is the number of items that never get sold in the first place. In the United States alone, roughly $380 billion worth of food goes to waste each year. If so much food gets wasted, who pays for it?\n\n\n\nEventually, everyone does. Farmers, distributors, manufacturers, and grocery stores all absorb losses from wasted food. To stay profitable, many of those costs get spread across the products that do make it to checkout. Understanding that connection can help explain why food waste affects more than the environment. It also affects what you pay at the register. Here’s what food waste has to do with the rising cost of groceries.\n\n\n\nFood Waste Happens Long Before Items Reach Your Cart\n\nMany people think of food waste as takeout leftovers sitting in the fridge too long or produce slowly going brown in the crisper drawer. Household waste certainly exists—$141 billion worth of it, to be exact—but it’s only one piece of a much larger picture. Long before food reaches your kitchen, waste is already occurring at multiple points throughout the global supply chain.\n\n\n\nSome of that loss begins on farms. Crops may be left unharvested due to labor shortages, shifting demand, or market conditions, contributing to roughly 14.8 million tons of food waste each year. Food can be lost after it leaves the farm, too. A damaged shipment, a temperature issue during transport, or inventory that doesn’t sell quickly enough can all prevent food from reaching consumers.\n\n\n\nAppearance also plays a role. Fruits and vegetables that look imperfect may be passed over despite being perfectly edible. By the time produce and other items reach grocery stores, retailers generate another 2.72 million tons of food waste annually. The food system generates far more waste than most shoppers realize, and those losses don’t stop at the farm or the store.\n\n\n\nEvery Lost Product Still Has a Price Tag Attached to It\n\nA wasted food item isn’t free. Even if it never gets sold, money has already been spent to get it there. Seeds may have been planted months earlier. Workers spent time harvesting, processing, packaging, transporting, and stocking the product. Facilities used electricity to keep operations running and food at the proper temperature. By the time food reaches a shelf, resources have already been invested at nearly every step along the way.\n\n\n\nImagine a bakery that makes 100 loaves of bread but only sells 80. The ingredients, labor, and overhead for the remaining 20 loaves don’t simply disappear. The bakery still has to cover those costs if it wants to stay in business.\n\n\n\nThe same principle applies throughout the food industry. Every unsold product represents money that was invested but never recovered. One of the lesser-known causes of food price increase is the need for businesses to recoup at least some of those losses. While food price increases are influenced by many factors, waste adds another layer of cost that can ripple through the supply chain before it ever shows up on a grocery bill.\n\n\n\nWaste Is a Less Obvious Cause of Food Price Increases\n\nMost people can name a few reasons why groceries cost more today than they did a few years ago. Food waste is one contributor that rarely makes the list. Yet, in just one year, 29% of the country’s 240 million tons of available food went unsold or uneaten. On its own, that represents a significant loss. The challenge becomes even greater when the costs associated with producing, moving, and selling food continue to rise.\n\n\n\nFood businesses aren’t dealing with waste in a vacuum. They’re also navigating higher expenses throughout the supply chain, including:\n\n\n\nInflation, with the Consumer Price Index up nearly 4% in May 2026\n\nRising wages, as salaries and compensation increased 3.4% since 2025\n\nHigher transportation expenses, with gasoline prices up 17.5% and diesel prices up 37.3% from March 2025\n\nOngoing supply chain disruptions, as 65% of companies face at least one bottleneck in their supply chain\n\n\n\nEach of those increases makes wasted food more expensive. If products are discarded before purchase, businesses aren’t just losing food. They’re losing the higher costs attached to it as well. The more money that disappears along the way, the greater the pressure to recover those losses elsewhere. Though waste isn’t the only cause of food price increases, it can make an already expensive problem even more costly.\n\n\n\nWhy Reducing Waste Benefits More Than the Environment\n\nAfter reading about the scale and cost of food waste, it’s easy to assume the biggest benefit of reducing it is environmental. While any reduction in waste is definitely a win for the planet, there’s also an economic side to the story. Nearly 45% of food waste was still safe to enjoy at the time it was discarded, which means a significant amount of value is being lost alongside the food itself.\n\n\n\nWhen grocers find ways to get more of the food they already invested in to customers, fewer products go unsold and more of the costs associated with producing, transporting, and stocking those items can be recovered. Less waste doesn’t eliminate the factors driving food price increases, but it can help reduce some of the financial pressure created when perfectly good food goes unused.\n\n\n\nThat’s where Too Good To Go comes in.\n\n\n\nThrough our surplus food marketplace, grocery retailers can sell leftover items directly to local customers instead of letting it go to waste. Shoppers gain access to better grocery deals, while retailers recover value from food that might otherwise become a loss. The environmental perks are real, but the opportunity to make better use of food benefits businesses and consumers alike.\n\n\n\nHow to Save Money on Groceries Despite Food Price Increases\n\nFood price increases are influenced by a wide range of factors, from rising inflation and transportation costs to labor expenses and global supply chain disruptions. Slashing food waste won’t solve every pricing challenge, but reducing unnecessary waste can help create a more efficient food system. When more food gets sold and enjoyed instead of discarded, businesses capture more revenue, and fewer resources go unused.\n\n\n\nOne example is Surprise Bags sold on Too Good To Go. Rather than throwing away surplus food that is still perfectly good to eat, participating businesses bundle it into discounted Surprise Bags and make them available through the Too Good To Go marketplace. That creates an opportunity for businesses to sell more of the food they already have while helping shoppers stretch their grocery budgets.\n\n\n\nGetting started is simple. The Too Good To Go app is free to download and allows you to browse available Surprise Bags from grocery stores, bakeries, restaurants, and other local businesses near you. Surprise Bags are grouped into categories, like produce or pastries. Once you find an option you’d like to try, you purchase it directly through the app. When the pickup window opens, simply stop by and collect your Surprise Bag.\n\n\n\nWhether you’re looking for better grocery deals or simply trying to make your budget go a little further, Surprise Bags offer a practical way to save money despite food price increases. Download the Too Good To Go app today to discover local Surprise Bags and see what’s available near you.\n\n\n\n\n\nDiscover Surprise Bags near you.\n\n\n\n\n\nFAQs About Food Price Increases\n\nWhat are the main causes of food price increases?\n\nFood price increases are often driven by a combination of factors, including inflation, higher labor costs, rising transportation expenses, and supply chain disruptions. Food waste can also contribute to higher prices by creating losses throughout the supply chain that businesses may need to recover elsewhere.\n\n\n\nHow does food waste affect grocery prices?\n\nFood waste creates costs at every stage of the food system. Crops may be grown, transported, stored, and stocked before ultimately going unsold. When businesses absorb those losses, some of the associated costs can eventually be reflected in the prices consumers pay at the store.\n\n\n\nIs food waste really a significant problem in the United States?\n\nYes. In 2024, 29% of the country’s available food went unsold or uneaten. Food waste occurs throughout the supply chain, from farms and manufacturers to grocery stores and households, making it a much larger issue than uneaten leftovers alone.\n\n\n\nWhy don’t businesses simply lower prices instead of throwing food away?\n\nMany businesses do look for ways to sell surplus food before it goes to waste. However, factors such as limited shelf life, unpredictable demand, and operational constraints can make it difficult to sell every item before quality declines. That’s why many retailers are exploring new ways to connect surplus food with interested shoppers.\n\n\n\nCan reducing food waste help lower grocery costs?\n\nReducing food waste won’t eliminate food price increases on its own, but it can help create a more efficient food system. When businesses sell more of the food they already have, fewer resources are lost and more value is retained throughout the supply chain.\n\n\n\nWhat is Too Good To Go?\n\nToo Good To Go is a surplus food marketplace that helps businesses sell food that might otherwise go unsold. Through the app-based platform, shoppers can discover discounted Surprise Bags from local grocery stores, bakeries, restaurants, and other food businesses while helping keep perfectly good food from going to waste.\n\n\n\nHow do Surprise Bags work on Too Good To Go?\n\nSurprise Bags are discounted bundles of surplus food sold through the Too Good To Go app. After downloading the free app, users can browse available options nearby, purchase a Surprise Bag directly through the platform, and pick it up during the designated collection window. The exact contents are a surprise, which allows businesses to package available surplus food while giving shoppers access to great value.",{"_type":429,"alt":612,"asset":613,"fit":30},"Shopper comparing grocery prices",{"_ref":614,"_type":15},"image-d837c2e3badbc3be20513661f3a3931a7f6ae7c1-5951x3967-jpg","2026-07-09T16:44:27.328Z","\u002Fblog\u002Ffood-price-increase","How Food Waste Is Quietly Driving Up Your Grocery Bill",137,[620,622,626,630,634,638,642,646,650],{"_id":621,"slug":503,"title":504},"1bd59310-04d7-48d9-bee5-0e6ee6d8c4f0",{"_id":623,"slug":624,"title":625},"38428a85-02fe-4990-bb12-45fb2522f2b9","US-ENG-city-guides","City Guides",{"_id":627,"slug":628,"title":629},"aaccdea6-d896-4a81-8e1e-1a641e0280d8","USEng-date-labelling","Date Labelling",{"_id":631,"slug":632,"title":633},"c25ef12d-fd7f-4786-af9c-b1510689f7e2","UStips-for-partners","Tips for Partners",{"_id":635,"slug":636,"title":637},"imported-cat-202","USEng-food-waste-facts","Food Waste Facts",{"_id":639,"slug":640,"title":641},"imported-cat-203","USEng-too-good-to-go","Too Good To Go News",{"_id":643,"slug":644,"title":645},"imported-cat-204","USEng-recipes","Recipes",{"_id":647,"slug":648,"title":649},"imported-cat-205","USEng-tips-&-tricks","Tips & Tricks",{"_id":651,"slug":652,"title":653},"imported-cat-206","USEng-partner-news","Partner News"]