1<!doctype html> 2<html xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" lang="en-NZ" > 3 <head> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <!-- This is Squarespace. --><!-- child-poverty-action-group-nz --> 7<base href=""> 8<meta charset="utf-8" /> 9<title>Child Poverty Action Group | Take Action for Children's Future</title> 10<meta http-equiv="Accept-CH" content="Sec-CH-UA-Platform-Version, Sec-CH-UA-Model" /><link rel="icon" type="image/x-icon" href="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/0f240ae0-1462-4c68-ac0d-07c6426f127c/favicon.ico"/> 11<link rel="canonical" href="https://www.cpag.org.nz"/> 12<meta property="og:site_name" content="Child Poverty Action Group"/> 13<meta property="og:title" content="Child Poverty Action Group | Take Action for Children's Future"/> 14<meta property="og:url" content="https://www.cpag.org.nz"/> 15<meta property="og:type" content="website"/> 16<meta property="og:description" content="Join Child Poverty Action Group in advocating for child well-being and ending poverty in New Zealand. Learn more about our campaigns, research, and how to get involved."/> 17<meta property="og:image" content="http://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a0ba8fe76bccd55c4167e00/1779149055047/Logo.png?format=1500w"/> 18<meta property="og:image:width" content="531"/> 19<meta property="og:image:height" content="436"/> 20<meta itemprop="name" content="Child Poverty Action Group | Take Action for Children's Future"/> 21<meta itemprop="url" content="https://www.cpag.org.nz"/> 22<meta itemprop="description" content="Join Child Poverty Action Group in advocating for child well-being and ending poverty in New Zealand. Learn more about our campaigns, research, and how to get involved."/> 23<meta itemprop="thumbnailUrl" content="http://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a0ba8fe76bccd55c4167e00/1779149055047/Logo.png?format=1500w"/> 24<link rel="image_src" href="http://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a0ba8fe76bccd55c4167e00/1779149055047/Logo.png?format=1500w" /> 25<meta itemprop="image" content="http://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a0ba8fe76bccd55c4167e00/1779149055047/Logo.png?format=1500w"/> 26<meta name="twitter:title" content="Child Poverty Action Group | Take Action for Children's Future"/> 27<meta name="twitter:image" content="http://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a0ba8fe76bccd55c4167e00/1779149055047/Logo.png?format=1500w"/> 28<meta name="twitter:url" content="https://www.cpag.org.nz"/> 29<meta name="twitter:card" content="summary"/> 30<meta name="twitter:description" content="Join Child Poverty Action Group in advocating for child well-being and ending poverty in New Zealand. Learn more about our campaigns, research, and how to get involved."/> 31<meta name="description" content="Join Child Poverty Action Group in advocating for child well-being and ending poverty in New Zealand. Learn more about our campaigns, research, and how to get involved." /> 32<link rel="preconnect" href="https://images.squarespace-cdn.com">
33<script type="text/javascript" crossorigin="anonymous" defer="true" src="//assets.squarespace.com/@sqs/polyfiller/1.7.7/modern.js"></script>
vendor: 1 bytes, line 33
33
34<script data-name="static-context">Static = window.Static || {}; Static.SQUARESPACE_CONTEXT = {"betaFeatureFlags":["scripts_defer","enable_form_submission_trigger","nested_categories","campaigns_import_discounts","campaigns_merch_state","supports_versioned_template_assets","fluid_engine_stacks","output_template_css_assets","cdk_website_components_video_lazy_loading_enabled","modernized-pdp-m2-enabled","enable_modernized_pdp_m3_layout_ux","campaigns_discount_section_in_automations","i18n_beta_website_locales","member_areas_feature","commerce_product_payment_plan_editing","marketing_automations","campaigns_new_image_layout_picker","override_block_styles","campaigns_thumbnail_layout","new_stacked_index","marketing_landing_page","campaigns_discount_section_in_blasts","campaigns_table_v2","sms-campaigns","contacts_and_campaigns_redesign","enable_modernized_pdp_m3_fluid"],"facebookAppId":"314192535267336","facebookApiVersion":"v6.0","rollups":{"squarespace-announcement-bar":{"js":"//assets.squarespace.com/universal/scripts-compressed/announcement-bar-5a2e59483bd4a689-min.en-US.js"},"squarespace-audio-player":{"css":"//assets.squarespace.com/universal/styles-compressed/audio-player-b05f5197a871c566-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/audio-player-dc6df8cba0b21e80-min.en-US.js"},"squarespace-blog-collection-list":{"css":"//assets.squarespace.com/universal/styles-compressed/blog-collection-list-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/blog-collection-list-3a5374d437fc6d00-min.en-US.js"},"squarespace-calendar-block-renderer":{"css":"//assets.squarespace.com/universal/styles-compressed/calendar-block-renderer-c3fef2a497c8e56b-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/calendar-block-renderer-36d31adb51b10ab2-min.en-US.js"},"squarespace-chartjs-helpers":{"css":"//assets.squarespace.com/universal/styles-compressed/chartjs-helpers-96b256171ee039c1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/chartjs-helpers-522a53304a318d5d-min.en-US.js"},"squarespace-comments":{"css":"//assets.squarespace.com/universal/styles-compressed/comments-c36c70f2a6258222-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/comments-579b521b5d2852d6-min.en-US.js"},"squarespace-custom-css-popup":{"css":"//assets.squarespace.com/universal/styles-compressed/custom-css-popup-aa79d9e67c151249-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/custom-css-popup-a59991dbb561bbe7-min.en-US.js"},"squarespace-dialog":{"css":"//assets.squarespace.com/universal/styles-compressed/dialog-86aacd645d83874c-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/dialog-9275359db8614e42-min.en-US.js"},"squarespace-events-collection":{"css":"//assets.squarespace.com/universal/styles-compressed/events-collection-c3fef2a497c8e56b-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/events-collection-ea8e540759c4c53e-min.en-US.js"},"squarespace-form-rendering-utils":{"js":"//assets.squarespace.com/universal/scripts-compressed/form-rendering-utils-fa2bad18396627a1-min.en-US.js"},"squarespace-forms":{"css":"//assets.squarespace.com/universal/styles-compressed/forms-0afd3c6ac30bbab1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/forms-a4cb42ed53265d03-min.en-US.js"},"squarespace-gallery-collection-list":{"css":"//assets.squarespace.com/universal/styles-compressed/gallery-collection-list-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/gallery-collection-list-e50dc2cea7153bb8-min.en-US.js"},"squarespace-image-zoom":{"css":"//assets.squarespace.com/universal/styles-compressed/image-zoom-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/image-zoom-0ca1efc2ac068abc-min.en-US.js"},"squarespace-pinterest":{"css":"//assets.squarespace.com/universal/styles-compressed/pinterest-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/pinterest-84d0de8885ab6685-min.en-US.js"},"squarespace-popup-overlay":{"css":"//assets.squarespace.com/universal/styles-compressed/popup-overlay-b742b752f5880972-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/popup-overlay-f1d843f2af288a23-min.en-US.js"},"squarespace-product-quick-view":{"css":"//assets.squarespace.com/universal/styles-compressed/product-quick-view-0afd3c6ac30bbab1-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/product-quick-view-869b9f4ace85f244-min.en-US.js"},"squarespace-products-collection-item-v2":{"css":"//assets.squarespace.com/universal/styles-compressed/products-collection-item-v2-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/products-collection-item-v2-7fbb3f7b25936e86-min.en-US.js"},"squarespace-products-collection-list-v2":{"css":"//assets.squarespace.com/universal/styles-compressed/products-collection-list-v2-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/products-collection-list-v2-a0f681feaaa1d600-min.en-US.js"},"squarespace-search-page":{"css":"//assets.squarespace.com/universal/styles-compressed/search-page-90a67fc09b9b32c6-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/search-page-319a3ad806df29ed-m
34in.en-US.js"},"squarespace-search-preview":{"js":"//assets.squarespace.com/universal/scripts-compressed/search-preview-39a7123209b81d30-min.en-US.js"},"squarespace-simple-liking":{"css":"//assets.squarespace.com/universal/styles-compressed/simple-liking-701bf8bbc05ec6aa-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/simple-liking-75b6582783ed07a5-min.en-US.js"},"squarespace-social-buttons":{"css":"//assets.squarespace.com/universal/styles-compressed/social-buttons-95032e5fa98e47a5-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/social-buttons-19cd4c52262f1d75-min.en-US.js"},"squarespace-tourdates":{"css":"//assets.squarespace.com/universal/styles-compressed/tourdates-b4046463b72f34e2-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/tourdates-1ea01eceebb56385-min.en-US.js"},"squarespace-website-overlays-manager":{"css":"//assets.squarespace.com/universal/styles-compressed/website-overlays-manager-07ea5a4e004e6710-min.en-US.css","js":"//assets.squarespace.com/universal/scripts-compressed/website-overlays-manager-b6ca4ee2a30be72c-min.en-US.js"}},"pageType":2,"website":{"id":"6a0b931002ba2531921dcf80","captchaSettings":{"enabledForDonations":false},"cloneable":false,"contentModifiedOn":1787740347293,"formattingLocale":"en-NZ","fullSiteTitle":"Child Poverty Action Group | Take Action for Children's Future","identifier":"child-poverty-action-group-nz","imageMetadataProcessingEnabled":false,"isHstsEnabled":true,"language":"en-NZ","logoImageId":"6a0ba8fe76bccd55c4167e00","primaryDomain":"www.cpag.org.nz","screenshotId":"e1e83fd43e2051ae2ee29fa111072e79bed2213d8de8053d83d943727049b672","shareButtonOptions":{"6":true,"7":true,"4":true,"1":true,"2":true,"3":true,"8":true},"showOwnerLogin":false,"siteDescription":"","siteStatus":{},"siteTitle":"Child Poverty Action Group","sslSetting":3,"timeZone":"Pacific/Auckland","translationLocale":"en-US","typekitId":"","websiteType":4,"hasBeenCloneable":false,"statsMigrated":false,"authenticUrl":"https://www.cpag.org.nz","baseUrl":"https://www.cpag.org.nz","internalUrl":"https://child-poverty-action-group-nz.squarespace.com","logoImageUrl":"//images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/7adea8d5-5622-42f3-b6f1-270334623866/Logo.png","machineTimeZoneOffset":46800000,"socialAccounts":[{"serviceId":60,"screenname":"Facebook","addedOn":1779163100722,"profileUrl":"https://www.facebook.com/cpagNZ","iconEnabled":true,"serviceName":"facebook-unauth"},{"serviceId":85,"screenname":"X","addedOn":1779163107577,"profileUrl":"https://x.com/cpagnz","iconEnabled":true,"serviceName":"x-formerly-twitter-unauth"},{"serviceId":64,"screenname":"Instagram","addedOn":1779163116103,"profileUrl":"https://www.instagram.com/child_poverty_action_group_nz/","iconEnabled":true,"serviceName":"instagram-unauth"},{"serviceId":65,"screenname":"LinkedIn","addedOn":1779163139551,"profileUrl":"https://www.linkedin.com/company/child-poverty-action-group-nz/","iconEnabled":true,"serviceName":"linkedin-unauth"}],"timeZoneAbbr":"NZDT","timeZoneOffset":46800000},"websiteSettings":{"id":"6a0b931002ba2531921dcf85","websiteId":"6a0b931002ba2531921dcf80","subjects":[],"country":"NZ","state":"WGN","simpleLikingEnabled":true,"mobileInfoBarSettings":{"isContactEmailEnabled":false,"isContactPhoneNumberEnabled":false,"isLocationEnabled":false,"isBusinessHoursEnabled":false},"announcementBarSettings":{},"commentLikesAllowed":true,"commentAnonAllowed":true,"commentThreaded":true,"commentApprovalRequired":false,"commentAvatarsOn":true,"commentSortType":2,"commentFlagThreshold":0,"commentFlagsAllowed":true,"commentEnableByDefault":true,"commentDisableAfterDaysDefault":0,"disqusShortname":"","commentsEnabled":false,"storeSettings":{"returnPolicy":null,"termsOfService":null,"privacyPolicy":null,"expressCheckout":false,"continueShoppingLinkUrl":"/","useLightCart":false,"showNoteField":false,"shippingCountryDefaultValue":"US","billToShippingDefaultValue":false,"showShippingPhoneNumber":true,"isShippingPhoneRequired":false,"showBillingPhoneNumber":true,"isBillingPhoneRequired":false,"currenciesSupported":["USD","CAD","GBP","AUD","EUR","CHF","NOK","SEK","DKK","NZD","SGD","MXN","HKD","CZK","ILS","MYR","RUB","PHP","PLN","THB","BRL","ARS","COP","IDR","INR","JPY","ZAR","KRW"],"defaultCurrency":"USD","selectedCurrency":"NZD","multicurrencyEnabled":true,"measurementStandard":1,"showCustomCheckoutForm":false,"checkoutPageMarketingOptInEnabled":true,"enableMailingListOptInByDefault":false,"sameAsRetailLocation":false,"merchandisingSettings":{"scarcityEnabledOnProductItems":false,"scarcityEnabledOnProductBlocks":false,"scarcityMessageType":"DEFAULT_SCARCITY_MESSAGE","scarcityThreshold":10,"multipleQuantityAllowedForServices":true,"restockNotificationsEnabled":false,"restockNotificationsMailingListSignUpEnabled":false,"relatedProductsEnabled":false,"relatedProductsOrdering":"random","soldOutVariantsDropdownDisabled":false,"productC
34omposerOptedIn":false,"productComposerABTestOptedOut":false,"productReviewsEnabled":false},"minimumOrderSubtotalEnabled":false,"minimumOrderSubtotal":{"currency":"NZD","value":"0.00"},"addToCartConfirmationType":2,"isLive":false,"multipleQuantityAllowedForServices":true},"useEscapeKeyToLogin":false,"ssBadgeType":1,"ssBadgePosition":4,"ssBadgeVisibility":1,"ssBadgeDevices":1,"pinterestOverlayOptions":{"mode":"disabled"},"userAccountsSettings":{"loginAllowed":true,"signupAllowed":true}},"cookieSettings":{"isCookieBannerEnabled":false,"isRestrictiveCookiePolicyEnabled":false,"cookieBannerText":"","cookieBannerTheme":"","cookieBannerVariant":"","cookieBannerPosition":"","cookieBannerCtaVariant":"","cookieBannerCtaText":"","cookieBannerAcceptType":"OPT_IN","cookieBannerOptOutCtaText":"","cookieBannerHasOptOut":false,"cookieBannerHasManageCookies":true,"cookieBannerManageCookiesLabel":"","cookieBannerSavedPreferencesText":"","cookieBannerSavedPreferencesLayout":"PILL"},"websiteCloneable":false,"collection":{"title":"Home","id":"6a0b931102ba2531921dcf99","fullUrl":"/","type":10,"permissionType":1},"subscribed":false,"appDomain":"squarespace.com","templateTweakable":true,"tweakJSON":{"form-use-theme-colors":"true","header-logo-height":"112px","header-mobile-logo-max-height":"55px","header-vert-padding":"3vw","header-width":"Full","maxPageWidth":"2009px","mobile-header-vert-padding":"6vw","pagePadding":"8vw","tweak-blog-alternating-side-by-side-image-aspect-ratio":"1:1 Square","tweak-blog-alternating-side-by-side-image-spacing":"6%","tweak-blog-alternating-side-by-side-meta-spacing":"20px","tweak-blog-alternating-side-by-side-primary-meta":"Categories","tweak-blog-alternating-side-by-side-read-more-spacing":"20px","tweak-blog-alternating-side-by-side-secondary-meta":"Date","tweak-blog-basic-grid-columns":"3","tweak-blog-basic-grid-image-aspect-ratio":"3:2 Standard","tweak-blog-basic-grid-image-spacing":"20px","tweak-blog-basic-grid-meta-spacing":"10px","tweak-blog-basic-grid-primary-meta":"Date","tweak-blog-basic-grid-read-more-spacing":"20px","tweak-blog-basic-grid-secondary-meta":"Categories","tweak-blog-item-custom-width":"75","tweak-blog-item-show-author-profile":"false","tweak-blog-item-width":"Medium","tweak-blog-masonry-columns":"2","tweak-blog-masonry-horizontal-spacing":"30px","tweak-blog-masonry-image-spacing":"20px","tweak-blog-masonry-meta-spacing":"20px","tweak-blog-masonry-primary-meta":"Categories","tweak-blog-masonry-read-more-spacing":"20px","tweak-blog-masonry-secondary-meta":"Date","tweak-blog-masonry-vertical-spacing":"30px","tweak-blog-side-by-side-image-aspect-ratio":"1:1 Square","tweak-blog-side-by-side-image-spacing":"6%","tweak-blog-side-by-side-meta-spacing":"20px","tweak-blog-side-by-side-primary-meta":"Categories","tweak-blog-side-by-side-read-more-spacing":"20px","tweak-blog-side-by-side-secondary-meta":"Date","tweak-blog-single-column-image-spacing":"50px","tweak-blog-single-column-meta-spacing":"0px","tweak-blog-single-column-primary-meta":"Date","tweak-blog-single-column-read-more-spacing":"0px","tweak-blog-single-column-secondary-meta":"Categories","tweak-events-stacked-show-thumbnails":"true","tweak-events-stacked-thumbnail-size":"3:2 Standard","tweak-fixed-header":"false","tweak-fixed-header-style":"Basic","tweak-global-animations-animation-curve":"linear","tweak-global-animations-animation-delay":"0.6s","tweak-global-animations-animation-duration":"0.90s","tweak-global-animations-animation-style":"fade","tweak-global-animations-animation-type":"fade","tweak-global-animations-complexity-level":"detailed","tweak-global-animations-enabled":"true","tweak-portfolio-grid-basic-custom-height":"50","tweak-portfolio-grid-overlay-custom-height":"50","tweak-portfolio-hover-follow-acceleration":"10%","tweak-portfolio-hover-follow-animation-duration":"Fast","tweak-portfolio-hover-follow-animation-type":"Fade","tweak-portfolio-hover-follow-delimiter":"Bullet","tweak-portfolio-hover-follow-front":"false","tweak-portfolio-hover-follow-layout":"Inline","tweak-portfolio-hover-follow-size":"50","tweak-portfolio-hover-follow-text-spacing-x":"1.5","tweak-portfolio-hover-follow-text-spacing-y":"1.5","tweak-portfolio-hover-static-animation-duration":"Fast","tweak-portfolio-hover-static-animation-type":"Fade","tweak-portfolio-hover-static-delimiter":"Hyphen","tweak-portfolio-hover-static-front":"true","tweak-portfolio-hover-static-layout":"Inline","tweak-portfolio-hover-static-size":"50","tweak-portfolio-hover-static-text-spacing-x":"1.5","tweak-portfolio-hover-static-text-spacing-y":"1.5","tweak-portfolio-index-background-animation-duration":"Medium","tweak-portfolio-index-background-animation-type":"Fade","tweak-portfolio-index-background-custom-height":"50","tweak-portfolio-index-background-delimiter":"None","tweak-portfolio-index-background-height":"Large","tweak-portfolio-index-background-horizontal-alignment":"Center","tweak-portfolio-index-background-link-format":"Stacked","tweak-portfolio-index-background-persist":"false","t
34weak-portfolio-index-background-vertical-alignment":"Middle","tweak-portfolio-index-background-width":"Full","tweak-transparent-header":"true"},"templateId":"5c5a519771c10ba3470d8101","templateVersion":"7.1","pageFeatures":[1,2,4],"gmRenderKey":"QUl6YVN5Q0JUUk9xNkx1dkZfSUUxcjQ2LVQ0QWVUU1YtMGQ3bXk4","templateScriptsRootUrl":"https://static1.squarespace.com/static/vta/5c5a519771c10ba3470d8101/scripts/","impersonatedSession":false,"tzData":{"zones":[[720,"NZ","NZ%sT",null]],"rules":{"NZ":[[1990,2006,null,"Oct","Sun>=1","2:00s","1:00","D"],[1990,2007,null,"Mar","Sun>=15","2:00s","0","S"],[2007,"max",null,"Sep","lastSun","2:00s","1:00","D"],[2008,"max",null,"Apr","Sun>=1","2:00s","0","S"]]}},"showAnnouncementBar":false,"recaptchaEnterpriseContext":{"recaptchaEnterpriseSiteKey":"6LdDFQwjAAAAAPigEvvPgEVbb7QBm-TkVJdDTlAv"},"i18nContext":{"timeZoneData":{"id":"Pacific/Auckland","name":"New Zealand Time"}},"env":"PRODUCTION","visitorFormContext":{"formFieldFormats":{"initialPhoneFormat":{"id":0,"type":"PHONE_NUMBER","country":"NZ","labelLocale":"en-US","fields":[{"type":"FIELD","label":"1","identifier":"1","length":2,"required":false,"metadata":{}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"2","identifier":"2","length":3,"required":false,"metadata":{}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"3","identifier":"3","length":15,"required":false,"metadata":{}}]},"initialNameOrder":"GIVEN_FIRST","initialAddressFormat":{"id":0,"type":"ADDRESS","country":"NZ","labelLocale":"en","fields":[{"type":"FIELD","label":"Address Line 1","identifier":"Line1","length":0,"required":true,"metadata":{"autocomplete":"address-line1"}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"Address Line 2","identifier":"Line2","length":0,"required":false,"metadata":{"autocomplete":"address-line2"}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"SEPARATOR","label":"\n","identifier":"Newline","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"City","identifier":"City","length":0,"required":true,"metadata":{"autocomplete":"address-level1"}},{"type":"SEPARATOR","label":" ","identifier":"Space","length":0,"required":false,"metadata":{}},{"type":"FIELD","label":"Postcode","identifier":"Zip","length":0,"required":true,"metadata":{"autocomplete":"postal-code"}}]},"countries":[{"name":"Afghanistan","code":"AF","phoneCode":"+93"},{"name":"\u00C5land Islands","code":"AX","phoneCode":"+358"},{"name":"Albania","code":"AL","phoneCode":"+355"},{"name":"Algeria","code":"DZ","phoneCode":"+213"},{"name":"American Samoa","code":"AS","phoneCode":"+1"},{"name":"Andorra","code":"AD","phoneCode":"+376"},{"name":"Angola","code":"AO","phoneCode":"+244"},{"name":"Anguilla","code":"AI","phoneCode":"+1"},{"name":"Antigua & Barbuda","code":"AG","phoneCode":"+1"},{"name":"Argentina","code":"AR","phoneCode":"+54"},{"name":"Armenia","code":"AM","phoneCode":"+374"},{"name":"Aruba","code":"AW","phoneCode":"+297"},{"name":"Ascension Island","code":"AC","phoneCode":"+247"},{"name":"Australia","code":"AU","phoneCode":"+61"},{"name":"Austria","code":"AT","phoneCode":"+43"},{"name":"Azerbaijan","code":"AZ","phoneCode":"+994"},{"name":"Bahamas","code":"BS","phoneCode":"+1"},{"name":"Bahrain","code":"BH","phoneCode":"+973"},{"name":"Bangladesh","code":"BD","phoneCode":"+880"},{"name":"Barbados","code":"BB","phoneCode":"+1"},{"name":"Belarus","code":"BY","phoneCode":"+375"},{"name":"Belgium","code":"BE","phoneCode":"+32"},{"name":"Belize","code":"BZ","phoneCode":"+501"},{"name":"Benin","code":"BJ","phoneCode":"+229"},{"name":"Bermuda","code":"BM","phoneCode":"+1"},{"name":"Bhutan","code":"BT","phoneCode":"+975"},{"name":"Bolivia","code":"BO","phoneCode":"+591"},{"name":"Bosnia & Herzegovina","code":"BA","phoneCode":"+387"},{"name":"Botswana","code":"BW","phoneCode":"+267"},{"name":"Brazil","code":"BR","phoneCode":"+55"},{"name":"British Indian Ocean Territory","code":"IO","phoneCode":"+246"},{"name":"British Virgin Islands","code":"VG","phoneCode":"+1"},{"name":"Brunei","code":"BN","phoneCode":"+673"},{"name":"Bulgaria","code":"BG","phoneCode":"+359"},{"name":"Burkina Faso","code":"BF","phoneCode":"+226"},{"name":"Burundi","code":"BI","phoneCode":"+257"},{"name":"Cambodia","code":"KH","phoneCode":"+855"},{"name":"Cameroon","code":"CM","phoneCode":"+237"},{"name":"Canada","code":"CA","phoneCode":"+1"},{"name":"Cape Verde","code":"CV","phoneCode":"+238"},{"name":"Caribbean Netherlands","code":"BQ","phoneCode":"+599"},{"name":"Cayman Islands","code":"KY","phoneCode":"+1"},{"name":"Central African Republic","code":"CF","phoneCode":"+236"},{"name":"Chad","code":"TD","phoneCode":"+235"},{"name":"Chile","code":"CL","phoneCode":"+56"},{"name":"China","code":"CN","phoneCode":"+86"},{"name":"Christmas Island","code":"CX","phoneCode":"+61"},{"name":"Cocos (Keeling) Islands","code":"CC","phoneCode":"+61"},{"name":"Colombia","code":"CO","phoneCode":"+57"},{"name":"Comoros","code":"KM","phoneCode":"+269"},{"name":"Congo - Brazzaville","code":"CG","phoneCode":"+242"},{"name":"Congo - Kinshasa","code":"CD","phoneCode":"+243"},{"name":"Cook Islands","code":"CK","phoneCode":"+682"},{"name":"Costa Rica","code":"CR","phoneCode":"+506"},{"name":"C\u00F4te d\u2019Ivoire","code":"CI","phoneCode":"+225"},{"name":"Croatia","code":"HR","phoneCode":"+385"},{"name":"Cuba","code":"CU","phoneCode":"+53"},{"name":"Cura\u00E7ao","code":"CW","phoneCode":"+599"},{"name":"Cyprus","code":"CY","phoneCode":"+357"},{"name":"Czechia","code":"CZ","phoneCode":"+420"},{"name":"Denmark","code":"DK","phoneCode":"+45"},{"name":"Djibouti","code":"DJ","phoneCode":"+253"},{"name":"Dominica","code":"DM","phoneCode":"+1"},{"name":"Dominican Republic","code":"DO","phoneCode":"+1"},{"name":"Ecuador","code":"EC","phoneCode":"+593"},{"name":"Egypt","code":"EG","phoneCode":"+20"},{"name":"El Salvador","code":"SV","phoneCode":"+503"},{"name":"Equatorial Guinea","code":"GQ","phoneCode":"+240"},{"name":"Eritrea","code":"ER","phoneCode":"+291"},{"name":"Estonia","code":"EE","phoneCode":"+372"},{"name":"Eswatini","code":"SZ","phoneCode":"+268"},{"name":"Ethiopia","code":"ET","phoneCode":"+251"},{"name":"Falkland Islands","code":"FK","phoneCode":"+500"},{"name":"Faroe Islands","code":"FO","phoneCode":"+298"},{"name":"Fiji","code":"FJ","phoneCode":"+679"},{"name":"Finland","code":"FI","phoneCode":"+358"},{"name":"France","code":"FR","phoneCode":"+33"},{"name":"French Guiana","code":"GF","phoneCode":"+594"},{"name":"French Polynesia","code":"PF","phoneCode":"+689"},{"name":"Gabon","code":"GA","phoneCode":"+241"},{"name":"Gambia","code":"GM","phoneCode":"+220"},{"name":"Georgia","code":"GE","phoneCode":"+995"},{"name":"Germany","code":"DE","phoneCode":"+49"},{"name":"Ghana","code":"GH","phoneCode":"+233"},{"name":"Gibraltar","code":"GI","phoneCode":"+350"},{"name":"Greece","code":"GR","phoneCode":"+30"},{"name":"Greenland","code":"GL","phoneCode":"+299"},{"name":"Grenada","code":"GD","phoneCode":"+1"},{"name":"Guadeloupe","code":"GP","phoneCode":"+590"},{"name":"Guam","code":"GU","phoneCode":"+1"},{"name":"Guatemala","code":"GT","phoneCode":"+502"},{"name":"Guernsey","code":"GG","phoneCode":"+44"},{"name":"Guinea","code":"GN","phoneCode":"+224"},{"name":"Guinea-Bissau","code":"GW","phoneCode":"+245"},{"name":"Guyana","code":"GY","phoneCode":"+592"},{"name":"Haiti","code":"HT","phoneCode":"+509"},{"name":"Honduras","code":"HN","phoneCode":"+504"},{"name":"Hong Kong SAR China","code":"HK","phoneCode":"+852"},{"name":"Hungary","code":"HU","phoneCode":"+36"},{"name":"Iceland","code":"IS","phoneCode":"+354"},{"name":"India","code":"IN","phoneCode":"+91"},{"name":"Indonesia","code":"ID","phoneCode":"+62"},{"name":"Iran","code":"IR","phoneCode":"+98"},{"name":"Iraq","code":"IQ","phoneCode":"+964"},{"name":"Ireland","code":"IE","phoneCode":"+353"},{"name":"Isle of Man","code":"IM","phoneCode":"+44"},{"name":"Israel","code":"IL","phoneCode":"+972"},{"name":"Italy","code":"IT","phoneCode":"+39"},{"name":"Jamaica","code":"JM","phoneCode":"+1"},{"name":"Japan","code":"JP","phoneCode":"+81"},{"name":"Jersey","code":"JE","phoneCode":"+44"},{"name":"Jordan","code":"JO","phoneCode":"+962"},{"name":"Kazakhstan","code":"KZ","phoneCode":"+7"},{"name":"Kenya","code":"KE","phoneCode":"+254"},{"name":"Kiribati","code":"KI","phoneCode":"+686"},{"name":"Kosovo","code":"XK","phoneCode":"+383"},{"name":"Kuwait","code":"KW","phoneCode":"+965"},{"name":"Kyrgyzstan","code":"KG","phoneCode":"+996"},{"name":"Laos","code":"LA","phoneCode":"+856"},{"name":"Latvia","code":"LV","phoneCode":"+371"},{"name":"Lebanon","code":"LB","phoneCode":"+961"},{"name":"Lesotho","code":"LS","phoneCode":"+266"},{"name":"Liberia","code":"LR","phoneCode":"+231"},{"name":"Libya","code":"LY","phoneCode":"+218"},{"name":"Liechtenstein","code":"LI","phoneCode":"+423"},{"name":"Lithuania","code":"LT","phoneCode":"+370"},{"name":"Luxembourg","code":"LU","phoneCode":"+352"},{"name":"Macao SAR China","code":"MO","phoneCode":"+853"},{"name":"Madagascar","code":"MG","phoneCode":"+261"},{"name":"Malawi","code":"MW","phoneCode":"+265"},{"name":"Malaysia","code":"MY","phoneCode":"+60"},{"name":"Maldives","code":"MV","phoneCode":"+960"},{"name":"Mali","code":"ML","phoneCode":"+223"},{"name":"Malta","code":"MT","phoneCode":"+356"},{"name":"Marshall Islands","code":"MH","phoneCode":"+692"},{"name":"Martinique","code":"MQ","phoneCode":"+596"},{"name":"Mauritania","code":"MR","phoneCode":"+222"},{"name":"Mauritius","code":"MU","phoneCode":"+230"},{"name":"Mayotte","code":"YT","phoneCode":"+262"},{"name":"Mexico","code":"MX","phoneCode":"+52"},{"name":"Micronesia","code":"FM","phoneCode":"+691"},{"name":"Moldova","code":"MD","phoneCode":"+373"},{"name":"Monaco","code":"MC","phoneCode":"+377"},{"name":"Mongolia","code":"MN","phoneCode":"+976"},{"name":"Montenegro","code":"ME","phoneCode":"+382"},{"name":"Montserrat","code":"MS","phoneCode":"+1"},{"name":"Morocco","code":"MA","phoneCode":"+212"},{"name":"Mozambique","code":"MZ","phoneCode":"+258"},{"name":"Myanmar (Burma)","code":"MM","phoneCode":"+95"},{"name":"Namibia","code":"NA","phoneCode":"+264"},{"name":"Nauru","code":"NR","phoneCode":"+674"},{"name":"Nepal","code":"NP","phoneCode":"+977"},{"name":"Netherlands","code":"NL","phoneCode":"+31"},{"name":"New Caledonia","code":"NC","phoneCode":"+687"},{"name":"New Zealand","code":"NZ","phoneCode":"+64"},{"name":"Nicaragua","code":"NI","phoneCode":"+505"},{"name":"Niger","code":"NE","phoneCode":"+227"},{"name":"Nigeria","code":"NG","phoneCode":"+234"},{"name":"Niue","code":"NU","phoneCode":"+683"},{"name":"Norfolk Island","code":"NF","phoneCode":"+672"},{"name":"Northern Mariana Islands","code":"MP","phoneCode":"+1"},{"name":"North Korea","code":"KP","phoneCode":"+850"},{"name":"North Macedonia","code":"MK","phoneCode":"+389"},{"name":"Norway","code":"NO","phoneCode":"+47"},{"name":"Oman","code":"OM","phoneCode":"+968"},{"name":"Pakistan","code":"PK","phoneCode":"+92"},{"name":"Palau","code":"PW","phoneCode":"+680"},{"name":"Palestinian Territories","code":"PS","phoneCode":"+970"},{"name":"Panama","code":"PA","phoneCode":"+507"},{"name":"Papua New Guinea","code":"PG","phoneCode":"+675"},{"name":"Paraguay","code":"PY","phoneCode":"+595"},{"name":"Peru","code":"PE","phoneCode":"+51"},{"name":"Philippines","code":"PH","phoneCode":"+63"},{"name":"Poland","code":"PL","phoneCode":"+48"},{"name":"Portugal","code":"PT","phoneCode":"+351"},{"name":"Puerto Rico","code":"PR","phoneCode":"+1"},{"name":"Qatar","code":"QA","phoneCode":"+974"},{"name":"R\u00E9union","code":"RE","phoneCode":"+262"},{"name":"Romania","code":"RO","phoneCode":"+40"},{"name":"Russia","code":"RU","phoneCode":"+7"},{"name":"Rwanda","code":"RW","phoneCode":"+250"},{"name":"Samoa","code":"WS","phoneCode":"+685"},{"name":"San Marino","code":"SM","phoneCode":"+378"},{"name":"S\u00E3o Tom\u00E9 & Pr\u00EDncipe","code":"ST","phoneCode":"+239"},{"name":"Saudi Arabia","code":"SA","phoneCode":"+966"},{"name":"Senegal","code":"SN","phoneCode":"+221"},{"name":"Serbia","code":"RS","phoneCode":"+381"},{"name":"Seychelles","code":"SC","phoneCode":"+248"},{"name":"Sierra Leone","code":"SL","phoneCode":"+232"},{"name":"Singapore","code":"SG","phoneCode":"+65"},{"name":"Sint Maarten","code":"SX","phoneCode":"+1"},{"name":"Slovakia","code":"SK","phoneCode":"+421"},{"name":"Slovenia","code":"SI","phoneCode":"+386"},{"name":"Solomon Islands","code":"SB","phoneCode":"+677"},{"name":"Somalia","code":"SO","phoneCode":"+252"},{"name":"South Africa","code":"ZA","phoneCode":"+27"},{"name":"South Korea","code":"KR","phoneCode":"+82"},{"name":"South Sudan","code":"SS","phoneCode":"+211"},{"name":"Spain","code":"ES","phoneCode":"+34"},{"name":"Sri Lanka","code":"LK","phoneCode":"+94"},{"name":"St. Barth\u00E9lemy","code":"BL","phoneCode":"+590"},{"name":"St. Helena","code":"SH","phoneCode":"+290"},{"name":"St. Kitts & Nevis","code":"KN","phoneCode":"+1"},{"name":"St. Lucia","code":"LC","phoneCode":"+1"},{"name":"St. Martin","code":"MF","phoneCode":"+590"},{"name":"St. Pierre & Miquelon","code":"PM","phoneCode":"+508"},{"name":"St. Vincent & Grenadines","code":"VC","phoneCode":"+1"},{"name":"Sudan","code":"SD","phoneCode":"+249"},{"name":"Suriname","code":"SR","phoneCode":"+597"},{"name":"Svalbard & Jan Mayen","code":"SJ","phoneCode":"+47"},{"name":"Sweden","code":"SE","phoneCode":"+46"},{"name":"Switzerland","code":"CH","phoneCode":"+41"},{"name":"Syria","code":"SY","phoneCode":"+963"},{"name":"Taiwan","code":"TW","phoneCode":"+886"},{"name":"Tajikistan","code":"TJ","phoneCode":"+992"},{"name":"Tanzania","code":"TZ","phoneCode":"+255"},{"name":"Thailand","code":"TH","phoneCode":"+66"},{"name":"Timor-Leste","code":"TL","phoneCode":"+670"},{"name":"Togo","code":"TG","phoneCode":"+228"},{"name":"Tokelau","code":"TK","phoneCode":"+690"},{"name":"Tonga","code":"TO","phoneCode":"+676"},{"name":"Trinidad & Tobago","code":"TT","phoneCode":"+1"},{"name":"Tristan da Cunha","code":"TA","phoneCode":"+290"},{"name":"Tunisia","code":"TN","phoneCode":"+216"},{"name":"T\u00FCrkiye","code":"TR","phoneCode":"+90"},{"name":"Turkmenistan","code":"TM","phoneCode":"+993"},{"name":"Turks & Caicos Islands","code":"TC","phoneCode":"+1"},{"name":"Tuvalu","code":"TV","phoneCode":"+688"},{"name":"U.S. Virgin Islands","code":"VI","phoneCode":"+1"},{"name":"Uganda","code":"UG","phoneCode":"+256"},{"name":"Ukraine","code":"UA","phoneCode":"+380"},{"name":"United Arab Emirates","code":"AE","phoneCode":"+971"},{"name":"United Kingdom","code":"GB","phoneCode":"+44"},{"name":"United States","code":"US","phoneCode":"+1"},{"name":"Uruguay","code":"UY","phoneCode":"+598"},{"name":"Uzbekistan","code":"UZ","phoneCode":"+998"},{"name":"Vanuatu","code":"VU","phoneCode":"+678"},{"name":"Vatican City","code":"VA","phoneCode":"+39"},{"name":"Venezuela","code":"VE","phoneCode":"+58"},{"name":"Vietnam","code":"VN","phoneCode":"+84"},{"name":"Wallis & Futuna","code":"WF","phoneCode":"+681"},{"name":"Western Sahara","code":"EH","phoneCode":"+212"},{"name":"Yemen","code":"YE","phoneCode":"+967"},{"name":"Zambia","code":"ZM","phoneCode":"+260"},{"name":"Zimbabwe","code":"ZW","phoneCode":"+263"}]},"localizedStrings":{"validation":{"noValidSelection":"A valid selection must be made.","invali
34dUrl":"Must be a valid URL.","stringTooLong":"Value should have a length no longer than {0}.","containsInvalidKey":"{0} contains an invalid key.","invalidTwitterUsername":"Must be a valid Twitter username.","valueOutsideRange":"Value must be in the range {0} to {1}.","invalidPassword":"Passwords should not contain whitespace.","missingRequiredSubfields":"{0} is missing required subfields: {1}","invalidCurrency":"Currency value should be formatted like 1234 or 123.99.","invalidMapSize":"Value should contain exactly {0} elements.","subfieldsRequired":"All fields in {0} are required.","formSubmissionFailed":"Form submission failed. Review the following information: {0}.","invalidCountryCode":"Country code should have an optional plus and up to 4 digits.","invalidDate":"This is not a real date.","required":"{0} is required.","invalidStringLength":"Value should be {0} characters long.","invalidEmail":"Email addresses should follow the format [email protected].","invalidListLength":"Value should be {0} elements long.","allEmpty":"Please fill out at least one form field.","missingRequiredQuestion":"Missing a required question.","invalidQuestion":"Contained an invalid question.","captchaFailure":"Captcha validation failed. Please try again.","stringTooShort":"Value should have a length of at least {0}.","invalid":"{0} is not valid.","formErrors":"Form Errors","containsInvalidValue":"{0} contains an invalid value.","invalidUnsignedNumber":"Numbers must contain only digits and no other characters.","invalidName":"Valid names contain only letters, numbers, spaces, ', or - characters."},"submit":"Submit","status":{"title":"{@} Block","learnMore":"Learn more"},"name":{"firstName":"First Name","lastName":"Last Name"},"lightbox":{"openForm":"Open Form"},"likert":{"agree":"Agree","stronglyDisagree":"Strongly Disagree","disagree":"Disagree","stronglyAgree":"Strongly Agree","neutral":"Neutral"},"time":{"am":"AM","second":"Second","pm":"PM","minute":"Minute","amPm":"AM/PM","hour":"Hour"},"notFound":"Form not found.","date":{"yyyy":"YYYY","year":"Year","mm":"MM","day":"Day","month":"Month","dd":"DD"},"phone":{"country":"Country","number":"Number","prefix":"Prefix","areaCode":"Area Code","line":"Line"},"submitError":"Unable to submit form. Please try again later.","address":{"stateProvince":"State/Province","country":"Country","zipPostalCode":"Zip/Postal Code","address2":"Address 2","address1":"Address 1","city":"City"},"email":{"signUp":"Sign up for news and updates"},"required":"(required)","invalidData":"Invalid form data."}}};</script>
34<script type="text/javascript">SQUARESPACE_ROLLUPS = {};</script>
vendor: 1 bytes, line 34
34
35<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/visitor-site-error-reporter-857906e2f8b59eb7-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-visitor_site_error_reporter');</script>
vendor: 1 bytes, line 35
35
36<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/visitor-site-error-reporter-857906e2f8b59eb7-min.en-US.js" defer ></script>
36<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/extract-css-runtime-db0f86980e892fb6-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-extract_css_runtime');</script>
vendor: 1 bytes, line 36
36
37<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/extract-css-runtime-db0f86980e892fb6-min.en-US.js" defer ></script>
37<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/extract-css-moment-js-vendor-a5cfdec1ae227f33-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-extract_css_moment_js_vendor');</script>
vendor: 1 bytes, line 37
37
38<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/extract-css-moment-js-vendor-a5cfdec1ae227f33-min.en-US.js" defer ></script>
38<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/cldr-resource-pack-2c5e18cab442f0cf-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-cldr_resource_pack');</script>
vendor: 1 bytes, line 38
38
39<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/cldr-resource-pack-2c5e18cab442f0cf-min.en-US.js" defer ></script>
39<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-vendors-stable-784b947826b4c445-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common_vendors_stable');</script>
vendor: 1 bytes, line 39
39
40<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-vendors-stable-784b947826b4c445-min.en-US.js" defer ></script>
40<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-vendors-907ce232a97e184a-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common_vendors');</script>
vendor: 1 bytes, line 40
40
41<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-vendors-907ce232a97e184a-min.en-US.js" defer ></script>
41<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/common-fc86f5e0f030945c-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-common');</script>
vendor: 1 bytes, line 41
41
42<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/common-fc86f5e0f030945c-min.en-US.js" defer ></script>
42<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/user-account-core-6105b366e3cf8f25-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-user_account_core');</script>
vendor: 1 bytes, line 42
42
43<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/user-account-core-6105b366e3cf8f25-min.en-US.js" defer ></script>
43<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].css = ["//assets.squarespace.com/universal/styles-compressed/user-account-core-39ca4b7f697b3da5-min.en-US.css"]; })(SQUARESPACE_ROLLUPS, 'squarespace-user_account_core');</script>
43 44<link rel="stylesheet" type="text/css" href="//assets.squarespace.com/universal/styles-compressed/user-account-core-39ca4b7f697b3da5-min.en-US.css">
44<script>(function(rollups, name) { if (!rollups[name]) { rollups[name] = {}; } rollups[name].js = ["//assets.squarespace.com/universal/scripts-compressed/performance-5dc78b9ea1996222-min.en-US.js"]; })(SQUARESPACE_ROLLUPS, 'squarespace-performance');</script>
vendor: 1 bytes, line 44
44
45<script crossorigin="anonymous" src="//assets.squarespace.com/universal/scripts-compressed/performance-5dc78b9ea1996222-min.en-US.js" defer ></script>
45<link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.button/cca6dcde-ee2a-4b4a-bede-2058241b7432_1122/website.components.button.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.socialLinks/1b41570c-ac43-450a-a6b6-c2323713107e_730/website.components.socialLinks.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/4e9d8554-2eb0-4363-8c8a-aeb3f6f6e16e_115/website.components.newsletter.styles.css"/><link rel="stylesheet" type="text/css" href="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/website.components.imageFluid.styles.css"/>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-film-grain.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/4e9d8554-2eb0-4363-8c8a-aeb3f6f6e16e_115/website.components.newsletter.visitor.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.visitor.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.socialLinks/1b41570c-ac43-450a-a6b6-c2323713107e_730/website.components.socialLinks.visitor.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/64023.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-refracted-lines.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/39882.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/website.components.imageFluid.visitor.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/92452.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-liquid.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.button/cca6dcde-ee2a-4b4a-bede-2058241b7432_1122/website.components.button.visitor.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-refracted-circles.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/18018.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-parallax.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/39188.js"></script>
45<script defer src="https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/website.components.imageFluid.shared.constants.js"></script>
45<script type="application/ld+json">{"url":"https://www.cpag.org.nz","name":"Child Poverty Action Group","description":"","image":"//images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/7adea8d5-5622-42f3-b6f1-270334623866/Logo.png","@context":"http://schema.org","@type":"WebSite"}</script>
45<link rel="stylesheet" type="text/css" href="https://static1.squarespace.com/static/versioned-site-css/6a0b931002ba2531921dcf80/93/5c5a519771c10ba3470d8101/6a0b931102ba2531921dcf8a/1833/site.css?nocustom=true"/><link rel="stylesheet" type="text/css" href="https://static1.squarespace.com/static/vta/5c5a519771c10ba3470d8101/versioned-assets/1790788516081-K564YKORV73V496XADZN/static.css"/><link rel="stylesheet" type="text/css" href="https://static1.squarespace.com/static/custom-css/6a0b931002ba2531921dcf80/6a0b931102ba2531921dcf8a/61/custom.css"/><link rel="stylesheet" href="https://use.typekit.net/ade0dkm.css">
45<script>Static.COOKIE_BANNER_CAPABLE = true;</script>
45 46<!-- End of Squarespace Headers --> 47 48 49 </head> 50 51 <body 52 id="collection-6a0b931102ba2531921dcf99" 53 class=" 54 tweak-blog-alternating-side-by-side-width-full tweak-blog-alternating-side-by-side-image-aspect-ratio-11-square tweak-blog-alternating-side-by-side-text-alignment-left tweak-blog-alternating-side-by-side-read-more-style-show tweak-blog-alternating-side-by-side-image-text-alignment-middle tweak-blog-alternating-side-by-side-delimiter-bullet tweak-blog-alternating-side-by-side-meta-position-top tweak-blog-alternating-side-by-side-primary-meta-categories tweak-blog-alternating-side-by-side-secondary-meta-date tweak-blog-alternating-side-by-side-excerpt-show image-block-poster-text-alignment-center image-block-card-content-position-center image-block-card-text-alignment-left image-block-overlap-content-position-center image-block-overlap-text-alignment-left image-block-collage-content-position-center image-block-collage-text-alignment-left image-block-stack-text-alignment-left form-use-theme-colors form-field-style-solid form-field-shape-pill form-field-border-none form-field-checkbox-type-button form-field-checkbox-fill-solid form-field-checkbox-color-inverted form-field-checkbox-shape-pill form-field-checkbox-layout-fit form-field-radio-type-button form-field-radio-fill-solid form-field-radio-color-normal form-field-radio-shape-pill form-field-radio-layout-fit form-field-survey-fill-solid form-field-survey-color-normal form-field-survey-shape-pill form-field-hover-focus-opacity form-submit-button-style-bar tweak-global-animations-enabled tweak-global-animations-complexity-level-detailed tweak-global-animations-animation-style-fade tweak-global-animations-animation-type-fade tweak-global-animations-animation-curve-linear tweak-blog-masonry-width-full tweak-blog-masonry-text-alignment-left tweak-blog-masonry-primary-meta-categories tweak-blog-masonry-secondary-meta-date tweak-blog-masonry-meta-position-top tweak-blog-masonry-read-more-style-show tweak-blog-masonry-delimiter-space tweak-blog-masonry-image-placement-above tweak-blog-masonry-excerpt-show tweak-portfolio-grid-overlay-width-full tweak-portfolio-grid-overlay-height-large tweak-portfolio-grid-overlay-image-aspect-ratio-11-square tweak-portfolio-grid-overlay-text-placement-center tweak-portfolio-grid-overlay-show-text-after-hover tweak-blog-single-column-width-full tweak-blog-single-column-text-alignment-center tweak-blog-single-column-image-placement-above tweak-blog-single-column-delimiter-bullet tweak-blog-single-column-read-more-style-show tweak-blog-single-column-primary-meta-date tweak-blog-single-column-secondary-meta-categories tweak-blog-single-column-meta-position-top tweak-blog-single-column-content-title-only header-width-full tweak-transparent-header tweak-fixed-header-style-basic tweak-blog-item-width-medium tweak-blog-item-text-alignment-center tweak-blog-item-meta-position-above-title tweak-blog-item-show-date tweak-blog-item-delimiter-bullet tweak-blog-side-by-side-width-full tweak-blog-side-by-side-image-placement-left tweak-blog-side-by-side-image-aspect-ratio-11-square tweak-blog-side-by-side-primary-meta-categories tweak-blog-side-by-side-secondary-meta-date tweak-blog-side-by-side-meta-position-top tweak-blog-side-by-side-text-alignment-left tweak-blog-side-by-side-image-text-alignment-middle tweak-blog-side-by-side-read-more-style-show tweak-blog-side-by-side-delimiter-bullet tweak-blog-side-by-side-excerpt-show primary-button-style-solid primary-button-shape-pill secondary-button-style-outline secondary-button-shape-pill tertiary-button-style-outline tertiary-button-shape-underline tweak-events-stacked-width-full tweak-events-stacked-height-large tweak-events-stacked-show-thumbnails tweak-events-stacked-thumbnail-size-32-standard tweak-events-stacked-date-style-with-text tweak-events-stacked-show-time tweak-events-stacked-show-location tweak-events-stacked-show-excerpt tweak-blog-basic-grid-width-inset tweak-blog-basic-grid-image-aspect-ratio-32-standard tweak-blog-basic-grid-text-alignment-left tweak-blog-basic-grid-delimiter-bullet tweak-blog-basic-grid-image-placement-above tweak-blog-basic-grid-read-more-style-show tweak-blog-basic-grid-primary-meta-date tweak-blog-basic-grid-secondary-meta-categories tweak-blog-basic-grid-excerpt-show tweak-portfolio-gri
54d-basic-width-full tweak-portfolio-grid-basic-height-large tweak-portfolio-grid-basic-image-aspect-ratio-11-square tweak-portfolio-grid-basic-text-alignment-left tweak-portfolio-grid-basic-hover-effect-fade header-overlay-alignment-center tweak-portfolio-index-background-link-format-stacked tweak-portfolio-index-background-width-full tweak-portfolio-index-background-height-large tweak-portfolio-index-background-vertical-alignment-middle tweak-portfolio-index-background-horizontal-alignment-center tweak-portfolio-index-background-delimiter-none tweak-portfolio-index-background-animation-type-fade tweak-portfolio-index-background-animation-duration-medium tweak-portfolio-hover-follow-layout-inline tweak-portfolio-hover-follow-delimiter-bullet tweak-portfolio-hover-follow-animation-type-fade tweak-portfolio-hover-follow-animation-duration-fast tweak-portfolio-hover-static-layout-inline tweak-portfolio-hover-static-front tweak-portfolio-hover-static-delimiter-hyphen tweak-portfolio-hover-static-animation-type-fade tweak-portfolio-hover-static-animation-duration-fast hide-opentable-icons opentable-style-dark tweak-product-quick-view-button-style-floating tweak-product-quick-view-button-position-bottom tweak-product-quick-view-lightbox-excerpt-display-truncate tweak-product-quick-view-lightbox-show-arrows tweak-product-quick-view-lightbox-show-close-button tweak-product-quick-view-lightbox-controls-weight-light native-currency-code-nzd collection-type-page collection-6a0b931102ba2531921dcf99 collection-layout-default homepage mobile-style-available sqs-seven-one 55 56 57 58 59 60 " 61 tabindex="-1" 62 > 63 <div 64 id="siteWrapper" 65 class="clearfix site-wrapper" 66 > 67 68 <div id="floatingCart" class="floating-cart hidden"> 69 <a href="/cart" class="icon icon--stroke icon--fill icon--cart sqs-custom-cart"> 70 <span class="Cart-inner"> 71 72 73 74 75 <svg class="icon icon--cart" width="61" height="49" viewBox="0 0 61 49"> 76 <path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 2C0.5 1.17157 1.17157 0.5 2 0.5H13.6362C14.3878 0.5 15.0234 1.05632 15.123 1.80135L16.431 11.5916H59C59.5122 11.5916 59.989 11.8529 60.2645 12.2847C60.54 12.7165 60.5762 13.2591 60.3604 13.7236L50.182 35.632C49.9361 36.1614 49.4054 36.5 48.8217 36.5H18.0453C17.2937 36.5 16.6581 35.9437 16.5585 35.1987L12.3233 3.5H2C1.17157 3.5 0.5 2.82843 0.5 2ZM16.8319 14.5916L19.3582 33.5H47.8646L56.6491 14.5916H16.8319Z" /> 77 <path d="M18.589 35H49.7083L60 13H16L18.589 35Z" /> 78 <path d="M21 49C23.2091 49 25 47.2091 25 45C25 42.7909 23.2091 41 21 41C18.7909 41 17 42.7909 17 45C17 47.2091 18.7909 49 21 49Z" /> 79 <path d="M45 49C47.2091 49 49 47.2091 49 45C49 42.7909 47.2091 41 45 41C42.7909 41 41 42.7909 41 45C41 47.2091 42.7909 49 45 49Z" /> 80</svg> 81 82 <div class="legacy-cart icon-cart-quantity"> 83 <span class="sqs-cart-quantity">0</span> 84 </div> 85 </span> 86 </a> 87 </div> 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 <header 104 data-test="header" 105 id="header" 106 107 class=" 108 109 110 bright 111 112 113 header theme-col--primary 114 " 115 data-section-theme="bright" 116 data-controller="Header" 117 data-current-styles="{ 118 "layout": "navCenter", 119 "action": { 120 "href": "/donate", 121 "buttonText": "Donate Today", 122 "newWindow": false 123 }, 124 "showSocial": false, 125 "socialOptions": { 126 "socialBorderShape": "none", 127 "socialBorderStyle": "outline", 128 "socialBorderThickness": { 129 "unit": "px", 130 "value": 1.0 131 } 132 }, 133 "menuOverlayAnimation": "fade", 134 "cartStyle": "cart", 135 "cartText": "Cart", 136 "showEmptyCartState": true, 137 "cartOptions": { 138 "iconType": "solid-7", 139 "cartBorderShape": "none", 140 "cartBorderStyle": "outline", 141 "cartBorderThickness": { 142 "unit": "px", 143 "value": 1.0 144 } 145 }, 146 "showButton": true, 147 "showCart": false, 148 "showAccountLogin": false, 149 "headerStyle": "dynamic", 150 "languagePicker": { 151 "enabled": false, 152 "iconEnabled": false, 153 "iconType": "globe", 154 "flagShape": "shiny", 155 "languageFlags": [ ] 156 }, 157 "iconOptions": { 158 "desktopDropdownIconOptions": { 159 "size": { 160 "unit": "em", 161 "value": 1.0 162 }, 163 "iconSpacing": { 164 "unit": "em", 165 "value": 0.35 166 }, 167 "strokeWidth": { 168 "unit": "px", 169 "value": 1.0 170 }, 171 "endcapType": "square", 172 "folderDropdownIcon": "none", 173 "languagePickerIcon": "openArrowHead" 174 }, 175 "mobileDropdownIconOptions": { 176 "size": { 177 "unit": "em", 178 "value": 1.0 179 }, 180 "iconSpacing": { 181
181 "unit": "em", 182 "value": 0.15 183 }, 184 "strokeWidth": { 185 "unit": "px", 186 "value": 0.5 187 }, 188 "endcapType": "square", 189 "folderDropdownIcon": "openArrowHead", 190 "languagePickerIcon": "openArrowHead" 191 } 192 }, 193 "mobileOptions": { 194 "layout": "logoLeftNavRight", 195 "menuIconOptions": { 196 "style": "doubleLineHamburger", 197 "thickness": { 198 "unit": "px", 199 "value": 1.0 200 } 201 } 202 }, 203 "solidOptions": { 204 "headerOpacity": { 205 "unit": "%", 206 "value": 100.0 207 }, 208 "
208blurBackground": { 209 "enabled": false, 210 "blurRadius": { 211 "unit": "px", 212 "value": 12.0 213 } 214 }, 215 "backgroundColor": { 216 "type": "SITE_PALETTE_COLOR", 217 "sitePaletteColor": { 218 "colorName": "white", 219 "alphaModifier": 1.0 220 } 221 }, 222 "navigationColor": { 223 "type": "SITE_PALETTE_COLOR", 224 "sitePaletteColor": { 225 "colorName": "black", 226 "alphaModifier": 1.0 227 } 228 } 229 }, 230 "gradientOptions": { 231 "gradientType": "faded", 232 "headerOpacity": { 233 "unit": "%", 234 "value": 90.0 235 }, 236 "
236blurBackground": { 237 "enabled": false, 238 "blurRadius": { 239 "unit": "px", 240 "value": 12.0 241 } 242 }, 243 "backgroundColor": { 244 "type": "SITE_PALETTE_COLOR", 245 "sitePaletteColor": { 246 "colorName": "white", 247 "alphaModifier": 1.0 248 } 249 }, 250 "navigationColor": { 251 "type": "SITE_PALETTE_COLOR", 252 "sitePaletteColor": { 253 "colorName": "black", 254 "alphaModifier": 1.0 255 } 256 } 257 }, 258 "dropShadowOptions": { 259 "enabled": false, 260 "blur": { 261 "unit": "px", 262 "value": 12.0 263 }, 264 "spread": { 265 "unit": "px", 266 "value": 0.0 267 }, 268 "distance": { 269 "unit": "px", 270 "value": 12.0 271 } 272 }, 273 "borderOptions": { 274 "enabled": false, 275 "position": "allSides", 276 "thickness": { 277 "unit": "px", 278 "value": 4.0 279 }, 280 "color": { 281 "type": "SITE_PALETTE_COLOR", 282 "sitePaletteColor": { 283 "colorName": "black", 284 "alphaModifier": 1.0 285 } 286 } 287 }, 288 "showPromotedElement": false, 289 "buttonVariant": "primary", 290 "
290blurBackground": { 291 "enabled": false, 292 "blurRadius": { 293 "unit": "px", 294 "value": 12.0 295 } 296 }, 297 "headerOpacity": { 298 "unit": "%", 299 "value": 100.0 300 } 301 }" 302 data-section-id="header" 303 data-header-style="dynamic" 304 data-language-picker="{ 305 "enabled": false, 306 "iconEnabled": false, 307 "iconType": "globe", 308 "flagShape": "shiny", 309 "languageFlags": [ ] 310 }" 311 312 313 data-first-focusable-element 314 tabindex="-1" 315 style=" 316 317 318 --headerBorderColor: hsla(var(--black-hsl), 1); 319 320 321 --solidHeaderBackgroundColor: hsla(var(--white-hsl), 1); 322 323 324 --solidHeaderNavigationColor: hsla(var(--black-hsl), 1); 325 326 327 --gradientHeaderBackgroundColor: hsla(var(--white-hsl), 1); 328 329 330 --gradientHeaderNavigationColor: hsla(var(--black-hsl), 1); 331 332 " 333 > 334 <svg style="display:none" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg"> 335 <symbol id="circle" > 336 <path d="M11.5 17C14.5376 17 17 14.5376 17 11.5C17 8.46243 14.5376 6 11.5 6C8.46243 6 6 8.46243 6 11.5C6 14.5376 8.46243 17 11.5 17Z" fill="none" /> 337 </symbol> 338 339 <symbol id="circleFilled" > 340 <path d="M11.5 17C14.5376 17 17 14.5376 17 11.5C17 8.46243 14.5376 6 11.5 6C8.46243 6 6 8.46243 6 11.5C6 14.5376 8.46243 17 11.5 17Z" /> 341 </symbol> 342 343 <symbol id="dash" > 344 <path d="M11 11H19H3" /> 345 </symbol> 346 347 <symbol id="squareFilled" > 348 <rect x="6" y="6" width="11" height="11" /> 349 </symbol> 350 351 <symbol id="square" > 352 <rect x="7" y="7" width="9" height="9" fill="none" stroke="inherit" /> 353 </symbol> 354 355 <symbol id="plus" > 356 <path d="M11 3V19" /> 357 <path d="M19 11L3 11"/> 358 </symbol> 359 360 <symbol id="closedArrow" > 361 <path d="M11 11V2M11 18.1797L17 11.1477L5 11.1477L11 18.1797Z" fill="none" /> 362 </symbol> 363 364 <symbol id="closedArrowFilled" > 365 <path d="M11 11L11 2" stroke="inherit" fill="none" /> 366 <path fill-rule="evenodd" clip-rule="evenodd" d="M2.74695 9.38428L19.038 9.38428L10.8925 19.0846L2.74695 9.38428Z" stroke-width="1" /> 367 </symbol> 368 369 <symbol id="closedArrowHead" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/symbol"> 370 <path d="M18 7L11 15L4 7L18 7Z" fill="none" stroke="inherit" /> 371 </symbol> 372 373
374 <symbol id="closedArrowHeadFilled" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/symbol"> 375 <path d="M18.875 6.5L11 15.5L3.125 6.5L18.875 6.5Z" /> 376 </symbol> 377 378 <symbol id="openArrow" > 379 <path d="M11 18.3591L11 3" stroke="inherit" fill="none" /> 380 <path d="M18 11.5L11 18.5L4 11.5" stroke="inherit" fill="none" /> 381 </symbol> 382 383 <symbol id="openArrowHead" > 384 <path d="M18 7L11 14L4 7" fill="none" /> 385 </symbol> 386 387 <symbol id="pinchedArrow" > 388 <path d="M11 17.3591L11 2" fill="none" /> 389 <path d="M2 11C5.85455 12.2308 8.81818 14.9038 11 18C13.1818 14.8269 16.1455 12.1538 20 11" fill="none" /> 390 </symbol> 391 392 <symbol id="pinchedArrowFilled" > 393 <path d="M11.05 10.4894C7.04096 8.73759 1.05005 8 1.05005 8C6.20459 11.3191 9.41368 14.1773 11.05 21C12.6864 14.0851 15.8955 11.227 21.05 8C21.05 8 15.0591 8.73759 11.05 10.4894Z" stroke-width="1"/> 394 <path d="M11 11L11 1" fill="none"/> 395 </symbol> 396 397 <symbol id="pinchedArrowHead" > 398 <path d="M2 7.24091C5.85455 8.40454 8.81818 10.9318 11 13.8591C13.1818 10.8591 16.1455 8.33181 20 7.24091" fill="none" /> 399 </symbol> 400 401 <symbol id="pinchedArrowHeadFilled" > 402 <path d="M11.05 7.1591C7.04096 5.60456 1.05005 4.95001 1.05005 4.95001C6.20459 7.89547 9.41368 10.4318 11.05 16.4864C12.6864 10.35 15.8955 7.81365 21.05 4.95001C21.05 4.95001 15.0591 5.60456 11.05 7.1591Z" /> 403 </symbol> 404 405</svg> 406 407<div class="sqs-announcement-bar-dropzone"></div> 408 409 <div class="header-announcement-bar-wrapper"> 410 411 <a 412 href="#page" 413 class="header-skip-link sqs-button-element--primary" 414 > 415 Skip to Content 416 </a> 417 418 419 420<style> 421 @supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) { 422 .header-blur-background { 423 424 425 } 426 } 427</style> 428 <div 429 class="header-border" 430 data-header-style="dynamic" 431 data-header-border="false" 432 data-test="header-border" 433 style=" 434 435 436 437 438" 439 ></div> 440 <div 441 class="header-dropshadow" 442 data-header-style="dynamic" 443 data-header-dropshadow="false" 444 data-test="header-dropshadow" 445 style="" 446 ></div> 447 448 449 450 <div class='header-inner container--fluid 451 452 453 454 header-mobile-layout-logo-left-nav-right 455 456 457 458 459 460 461 462 463 header-layout-nav-center 464 465 466 467 468 469 470 ' 471 data-test="header-inner" 472 > 473 <!-- Background --> 474 <div class="header-background theme-bg--primary"></div> 475 476 <div class="header-display-desktop" data-content-field="site-title"> 477 478 479 480 481 482 483 484 485 486 487 488 489 490 <!-- Social --> 491 492 493 494 <!-- Title and nav wrapper --> 495 <div class="header-title-nav-wrapper"> 496 497 498 499 500 501 502 <!-- Title --> 503 504 <div 505 class=" 506 header-title 507 508 " 509 data-animation-role="header-element" 510 > 511 512 <div class="header-title-logo"> 513 <a href="/" data-animation-role="header-element"> 514 515<img elementtiming="nbf-header-logo-desktop" src="//images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/7adea8d5-5622-42f3-b6f1-270334623866/Logo.png?format=1500w" alt="Child Poverty Action Group" style="display:block" fetchpriority="high" loading="eager" decoding="async" data-loader="raw"> 516 517 </a> 518 </div> 519 520 521 522 </div> 523 524 525 526 <!-- Nav --> 527 <div class="header-nav"> 528 <div class="header-nav-wrapper"> 529 <nav class="header-nav-list"> 530 531 532 533 534 <div class="header-nav-item header-nav-item--folder"> 535 <button 536 class="header-nav-folder-title" 537 data-href="/about-us" 538 data-animation-role="header-element" 539 aria-expanded="false" 540 aria-controls="about-us" 541 542 >
543 <span class="header-nav-folder-title-text"> 544 About Us 545 </span> 546 </button> 547 <div class="header-nav-folder-content" id="about-us"> 548 549 550 <div class="header-nav-folder-item"> 551 <a 552 href="/what-we-do" 553 554 > 555 <span class="header-nav-folder-item-content"> 556 What We Do 557 </span> 558 </a> 559 </div> 560 561 562 563 564 <div class="header-nav-folder-item"> 565 <a 566 href="/our-people" 567 568 > 569 <span class="header-nav-folder-item-content"> 570 Our People 571 </span> 572 </a> 573 </div> 574 575 576 577 578 <div class="header-nav-folder-item"> 579 <a 580 href="/our-partners" 581 582 > 583 <span class="header-nav-folder-item-content"> 584 Our Partners 585 </span> 586 </a> 587 </div> 588 589 590 591 592 <div class="header-nav-folder-item"> 593 <a 594 href="/contact-us" 595 596 > 597 <span class="header-nav-folder-item-content"> 598 Contact Us 599 </span> 600 </a> 601 </div> 602 603 604 605 606 <div class="header-nav-folder-item"> 607 <a 608 href="/annual-report" 609 610 > 611 <span class="header-nav-folder-item-content"> 612 Annual Report 613 </span> 614 </a> 615 </div> 616 617 618 619 </div> 620 </div> 621 622 623 624 625 626 <div class="header-nav-item header-nav-item--folder"> 627 <button 628 class="header-nav-folder-title" 629 data-href="/965a47a5-0d8b-4110-8f5f-15359ee99e2a" 630 data-animation-role="header-element" 631 aria-expanded="false" 632 aria-controls="news-events" 633 634 > 635 <span class="header-nav-folder-title-text"> 636 News & Events 637 </span> 638 </button> 639 <div class="header-nav-folder-content" id="news-events"> 640 641 642 <div class="header-nav-folder-item"> 643 <a 644 href="/news" 645 646 > 647 <span class="header-nav-folder-item-content"> 648 News 649 </span> 650 </a> 651 </div> 652 653 654 655 656 <div class="header-nav-folder-item"> 657 <a 658 href="/events" 659 660 > 661 <span class="header-nav-folder-item-content"> 662 Events 663 </span> 664 </a> 665 </div> 666 667 668 669 </div> 670 </div> 671 672 673 674 675 676 <div class="header-nav-item header-nav-item--collection"> 677 <a 678 href="/our-campaigns" 679 data-animation-role="header-element" 680 681 > 682 Campaigns 683 </a> 684 </div> 685 686 687 688 689 690 691 <div class="header-nav-item header-nav-item--collection"> 692 <a 693 href="/research" 694 data-animation-role="header-element" 695 696 > 697 Research 698 </a> 699 </div> 700 701 702 703 704 705 706 <div class="header-nav-item header-nav-item--folder"> 707 <button 708 class="header-nav-folder-title" 709 data-href="/resources" 710 data-animation-role="header-element" 711 aria-expanded="false" 712 aria-controls="resources" 713 714 > 715 <span class="header-nav-folder-title-text"> 716 Resources 717 </span> 718 </button> 719 <div class="header-nav-folder-content" id="resources"> 720 721 722 <div class="header-nav-folder-item"> 723 <a 724 href="/statistics" 725 726 > 727 <span class="header-nav-folder-item-content"> 728 Statistics 729 </span> 730 </a> 731 </div> 732 733 734 735 736 <div class="header-nav-folder-item"> 737 <a 738 href="/faqs" 739 740 >
741 <span class="header-nav-folder-item-content"> 742 FAQs 743 </span> 744 </a> 745 </div> 746 747 748 749 </div> 750 </div> 751 752 753 754 755 756 <div class="header-nav-item header-nav-item--folder"> 757 <button 758 class="header-nav-folder-title" 759 data-href="/get-involved" 760 data-animation-role="header-element" 761 aria-expanded="false" 762 aria-controls="get-involved" 763 764 > 765 <span class="header-nav-folder-title-text"> 766 Get Involved 767 </span> 768 </button> 769 <div class="header-nav-folder-content" id="get-involved"> 770 771 772 <div class="header-nav-folder-item"> 773 <a 774 href="/become-a-member" 775 776 > 777 <span class="header-nav-folder-item-content"> 778 Become a Member 779 </span> 780 </a> 781 </div> 782 783 784 785 786 <div class="header-nav-folder-item"> 787 <a 788 href="/fundraise" 789 790 > 791 <span class="header-nav-folder-item-content"> 792 Fundraise 793 </span> 794 </a> 795 </div> 796 797 798 799 800 <div class="header-nav-folder-item"> 801 <a 802 href="/volunteer" 803 804 > 805 <span class="header-nav-folder-item-content"> 806 Volunteer 807 </span> 808 </a> 809 </div> 810 811 812 813 814 <div class="header-nav-folder-item"> 815 <a 816 href="/make-a-difference" 817 818 > 819 <span class="header-nav-folder-item-content"> 820 Make A Difference 821 </span> 822 </a> 823 </div> 824 825 826 827 828 <div class="header-nav-folder-item"> 829 <a 830 href="/donate" 831 832 > 833 <span class="header-nav-folder-item-content"> 834 Donate 835 </span> 836 </a> 837 </div> 838 839 840 841 842 <div class="header-nav-folder-item"> 843 <a 844 href="/supporter-survey" 845 846 > 847 <span class="header-nav-folder-item-content"> 848 Supporter survey 849 </span> 850 </a> 851 </div> 852 853 854 855 </div> 856 </div> 857 858 859 860 861 862 </nav> 863 </div> 864 </div> 865 866 867 </div> 868 869 870 <!-- Actions --> 871 <div class="header-actions header-actions--right"> 872 873 874 875 876 877 878 879 880 881 882 883 <div class="showOnMobile"> 884 885 </div> 886 887 888 <div class="showOnDesktop"> 889 890 </div> 891 892 893 <div class="header-actions-action header-actions-action--cta" data-animation-role="header-element"> 894 <a 895 class="btn btn--border theme-btn--primary-inverse sqs-button-element--primary" 896 href="/donate" 897 898 > 899 Donate Today 900 </a> 901 </div> 902 903 </div> 904 905 906 907 908<style> 909 .top-bun, 910 .patty, 911 .bottom-bun { 912 height: 1px; 913 } 914</style> 915 916<!-- Burger --> 917<div class="header-burger 918 919 menu-overlay-has-visible-non-navigation-items 920 921 922 923" data-animation-role="header-element"> 924 <button class="header-burger-btn burger" data-test="header-burger"> 925 <span hidden class="js-header-burger-open-title visually-hidden">Open Menu</span> 926 <span hidden class="js-header-burger-close-title visually-hidden">Close Menu</span> 927 <div class="burger-box"> 928 <div class="burger-inner header-menu-icon-doubleLineHamburger"> 929 <div class="top-bun"></div> 930 <div class="patty"></div> 931 <div class="bottom-bun"></div> 932 </div> 933 </div> 934 </button> 935</div> 936 937 938 939 </div> 940 <div class="header-display-mobile" data-content-field="site-title"> 941 942 943 <!-- Social --> 944 945 946 947 <!-- Title and nav wrapper --> 948 <div class="header-title-nav-wrapper"> 949 950 951 952 953 954 955 <!-- Title --> 956 957 <div 958 class=" 959 header-title 960 961 " 962 data-animation-role="header-element" 963 > 964 965 <div class="header-title-logo"> 966 <a href="/" data-animation-role="header-element"> 967 968<img elementtiming="nbf-header-logo-desktop" src="//images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/7adea8d5-5622-42f3-b6f1-270334623866/Logo.png?format=1500w" alt="Child Poverty Action Group" style="display:block" fetchpriority="high" loading="eager" decoding="async" data-loader="raw"> 969 970 </a> 971 </div> 972 973 974 975 </div> 976 977 978 979 <!-- Nav --> 980 <div class="header-nav"> 981 <div class="header-nav-wrapper"> 982 <nav class="header-nav-list"> 983 984 985 986 987 <div class="header-nav-item header-nav-item--folder"> 988 <button 989 class="header-nav-folder-title" 990 data-href="/about-us" 991 data-animation-role="header-element" 992 aria-expanded="false" 993 aria-controls="about-us" 994 995 >
996 <span class="header-nav-folder-title-text"> 997 About Us 998 </span> 999 </button> 1000 <div class="header-nav-folder-content" id="about-us"> 1001 1002 1003 <div class="header-nav-folder-item"> 1004 <a 1005 href="/what-we-do" 1006 1007 > 1008 <span class="header-nav-folder-item-content"> 1009 What We Do 1010 </span> 1011 </a> 1012 </div> 1013 1014 1015 1016 1017 <div class="header-nav-folder-item"> 1018 <a 1019 href="/our-people" 1020 1021 > 1022 <span class="header-nav-folder-item-content"> 1023 Our People 1024 </span> 1025 </a> 1026 </div> 1027 1028 1029 1030 1031 <div class="header-nav-folder-item"> 1032 <a 1033 href="/our-partners" 1034 1035 > 1036 <span class="header-nav-folder-item-content"> 1037 Our Partners 1038 </span> 1039 </a> 1040 </div> 1041 1042 1043 1044 1045 <div class="header-nav-folder-item"> 1046 <a 1047 href="/contact-us" 1048 1049 > 1050 <span class="header-nav-folder-item-content"> 1051 Contact Us 1052 </span> 1053 </a> 1054 </div> 1055 1056 1057 1058 1059 <div class="header-nav-folder-item"> 1060 <a 1061 href="/annual-report" 1062 1063 > 1064 <span class="header-nav-folder-item-content"> 1065 Annual Report 1066 </span> 1067 </a> 1068 </div> 1069 1070 1071 1072 </div> 1073 </div> 1074 1075 1076 1077 1078 1079 <div class="header-nav-item header-nav-item--folder"> 1080 <button 1081 class="header-nav-folder-title" 1082 data-href="/965a47a5-0d8b-4110-8f5f-15359ee99e2a" 1083 data-animation-role="header-element" 1084 aria-expanded="false" 1085 aria-controls="news-events" 1086 1087 > 1088 <span class="header-nav-folder-title-text"> 1089 News & Events 1090 </span> 1091 </button> 1092 <div class="header-nav-folder-content" id="news-events"> 1093 1094 1095 <div class="header-nav-folder-item"> 1096 <a 1097 href="/news" 1098 1099 > 1100 <span class="header-nav-folder-item-content"> 1101 News 1102 </span> 1103 </a> 1104 </div> 1105 1106 1107 1108 1109 <div class="header-nav-folder-item"> 1110 <a 1111 href="/events" 1112 1113 > 1114 <span class="header-nav-folder-item-content"> 1115 Events 1116 </span> 1117 </a> 1118 </div> 1119 1120 1121 1122 </div> 1123 </div> 1124 1125 1126 1127 1128 1129 <div class="header-nav-item header-nav-item--collection"> 1130 <a 1131 href="/our-campaigns" 1132 data-animation-role="header-element" 1133 1134 > 1135 Campaigns 1136 </a> 1137 </div> 1138 1139 1140 1141 1142 1143 1144 <div class="header-nav-item header-nav-item--collection"> 1145 <a 1146 href="/research" 1147 data-animation-role="header-element" 1148 1149 > 1150 Research 1151 </a> 1152 </div> 1153 1154 1155 1156 1157 1158 1159 <div class="header-nav-item header-nav-item--folder"> 1160 <button 1161 class="header-nav-folder-title" 1162 data-href="/resources" 1163 data-animation-role="header-element" 1164 aria-expanded="false" 1165 aria-controls="resources" 1166 1167 > 1168 <span class="header-nav-folder-title-text"> 1169 Resources 1170 </span> 1171 </button> 1172 <div class="header-nav-folder-content" id="resources"> 1173 1174 1175 <div class="header-nav-folder-item"> 1176 <a 1177 href="/statistics" 1178 1179 > 1180 <span class="header-nav-folder-item-content"> 1181 Statistics 1182 </span> 1183 </a> 1184 </div> 1185 1186 1187 1188 1189 <div class="header-nav-folder-item"> 1190 <a 1191 href="/faqs" 1192 1193 >
1194 <span class="header-nav-folder-item-content"> 1195 FAQs 1196 </span> 1197 </a> 1198 </div> 1199 1200 1201 1202 </div> 1203 </div> 1204 1205 1206 1207 1208 1209 <div class="header-nav-item header-nav-item--folder"> 1210 <button 1211 class="header-nav-folder-title" 1212 data-href="/get-involved" 1213 data-animation-role="header-element" 1214 aria-expanded="false" 1215 aria-controls="get-involved" 1216 1217 > 1218 <span class="header-nav-folder-title-text"> 1219 Get Involved 1220 </span> 1221 </button> 1222 <div class="header-nav-folder-content" id="get-involved"> 1223 1224 1225 <div class="header-nav-folder-item"> 1226 <a 1227 href="/become-a-member" 1228 1229 > 1230 <span class="header-nav-folder-item-content"> 1231 Become a Member 1232 </span> 1233 </a> 1234 </div> 1235 1236 1237 1238 1239 <div class="header-nav-folder-item"> 1240 <a 1241 href="/fundraise" 1242 1243 > 1244 <span class="header-nav-folder-item-content"> 1245 Fundraise 1246 </span> 1247 </a> 1248 </div> 1249 1250 1251 1252 1253 <div class="header-nav-folder-item"> 1254 <a 1255 href="/volunteer" 1256 1257 > 1258 <span class="header-nav-folder-item-content"> 1259 Volunteer 1260 </span> 1261 </a> 1262 </div> 1263 1264 1265 1266 1267 <div class="header-nav-folder-item"> 1268 <a 1269 href="/make-a-difference" 1270 1271 > 1272 <span class="header-nav-folder-item-content"> 1273 Make A Difference 1274 </span> 1275 </a> 1276 </div> 1277 1278 1279 1280 1281 <div class="header-nav-folder-item"> 1282 <a 1283 href="/donate" 1284 1285 > 1286 <span class="header-nav-folder-item-content"> 1287 Donate 1288 </span> 1289 </a> 1290 </div> 1291 1292 1293 1294 1295 <div class="header-nav-folder-item"> 1296 <a 1297 href="/supporter-survey" 1298 1299 > 1300 <span class="header-nav-folder-item-content"> 1301 Supporter survey 1302 </span> 1303 </a> 1304 </div> 1305 1306 1307 1308 </div> 1309 </div> 1310 1311 1312 1313 1314 1315 </nav> 1316 </div> 1317 </div> 1318 1319 1320 </div> 1321 1322 1323 <!-- Actions --> 1324 <div class="header-actions header-actions--right"> 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 <div class="showOnMobile"> 1337 1338 </div> 1339 1340 1341 <div class="showOnDesktop"> 1342 1343 </div> 1344 1345 1346 <div class="header-actions-action header-actions-action--cta" data-animation-role="header-element"> 1347 <a 1348 class="btn btn--border theme-btn--primary-inverse sqs-button-element--primary" 1349 href="/donate" 1350 1351 > 1352 Donate Today 1353 </a> 1354 </div> 1355 1356 </div> 1357 1358 1359 1360 1361<style> 1362 .top-bun, 1363 .patty, 1364 .bottom-bun { 1365 height: 1px; 1366 } 1367</style> 1368 1369<!-- Burger --> 1370<div class="header-burger 1371 1372 menu-overlay-has-visible-non-navigation-items 1373 1374 1375 1376" data-animation-role="header-element"> 1377 <button class="header-burger-btn burger" data-test="header-burger"> 1378 <span hidden class="js-header-burger-open-title visually-hidden">Open Menu</span> 1379 <span hidden class="js-header-burger-close-title visually-hidden">Close Menu</span> 1380 <div class="burger-box"> 1381 <div class="burger-inner header-menu-icon-doubleLineHamburger"> 1382 <div class="top-bun"></div> 1383 <div class="patty"></div> 1384 <div class="bottom-bun"></div> 1385 </div> 1386 </div> 1387 </button> 1388</div> 1389 1390 1391 1392 1393 1394 1395 </div> 1396 </div> 1397 </div> 1398 <!-- (Mobile) Menu Navigation --> 1399 <div class="header-menu header-menu--folder-list 1400 1401 1402 1403 1404 1405 " 1406 data-section-theme="" 1407 data-current-styles="{ 1408 "layout": "navCenter", 1409 "action": { 1410 "href": "/donate", 1411 "buttonText": "Donate Today", 1412 "newWindow": false 1413 }, 1414 "showSocial": false, 1415 "socialOptions": { 1416 "socialBorderShape": "none", 1417 "socialBorderStyle": "outline", 1418 "socialBorderThickness": { 1419 "unit": "px", 1420 "value": 1.0 1421 } 1422 }, 1423 "menuOverlayAnimation": "fade", 1424 "cartStyle": "cart", 1425 "cartText": "Cart", 1426 "showEmptyCartState": true, 1427 "cartOptions": { 1428 "iconType": "solid-7", 1429 "cartBorderShape": "none", 1430 "cartBorderStyle": "outline", 1431 "cartBorderThickness": { 1432 "unit": "px", 1433 "value": 1.0 1434 } 1435 }, 1436 "showButton": true, 1437 "showCart": false, 1438 "showAccountLogin": false, 1439 "headerStyle": "dynamic", 1440 "languagePicker": { 1441 "enabled": false, 1442 "iconEnabled": false, 1443 "iconType": "globe", 1444 "flagShape": "shiny", 1445 "languageFlags": [ ] 1446 }, 1447 "iconOptions": { 1448 "desktopDropdownIconOptions": { 1449 "size": { 1450 "unit": "em", 1451 "value": 1.0 1452 }, 1453 "iconSpacing": { 1454 "unit": "em", 1455 "value": 0.35 1456 }, 1457 "strokeWidth": { 1458 "unit": "px", 1459 "value": 1.0 1460 }, 1461 "endcapType": "square", 1462 "folderDropdownIcon": "none", 1463 "languagePickerIcon": "openArrowHead" 1464
1464 }, 1465 "mobileDropdownIconOptions": { 1466 "size": { 1467 "unit": "em", 1468 "value": 1.0 1469 }, 1470 "iconSpacing": { 1471 "unit": "em", 1472 "value": 0.15 1473 }, 1474 "strokeWidth": { 1475 "unit": "px", 1476 "value": 0.5 1477 }, 1478 "endcapType": "square", 1479 "folderDropdownIcon": "openArrowHead", 1480 "languagePickerIcon": "openArrowHead" 1481 } 1482 }, 1483 "mobileOptions": { 1484 "layout": "logoLeftNavRight", 1485 "menuIconOptions": { 1486 "style": "doubleLineHamburger", 1487 "thickness": { 1488 "unit": "px", 1489 "value": 1.0 1490 } 1491 } 1492 }, 1493 "solidOptions": { 1494 "headerOpacity": { 1495 "unit": "%", 1496 "value": 100.0 1497 }, 1498 "
1498blurBackground": { 1499 "enabled": false, 1500 "blurRadius": { 1501 "unit": "px", 1502 "value": 12.0 1503 } 1504 }, 1505 "backgroundColor": { 1506 "type": "SITE_PALETTE_COLOR", 1507 "sitePaletteColor": { 1508 "colorName": "white", 1509 "alphaModifier": 1.0 1510 } 1511 }, 1512 "navigationColor": { 1513 "type": "SITE_PALETTE_COLOR", 1514 "sitePaletteColor": { 1515 "colorName": "black", 1516 "alphaModifier": 1.0 1517 } 1518 } 1519 }, 1520 "gradientOptions": { 1521 "gradientType": "faded", 1522 "headerOpacity": { 1523 "unit": "%", 1524 "value": 90.0 1525 }, 1526 "
1526blurBackground": { 1527 "enabled": false, 1528 "blurRadius": { 1529 "unit": "px", 1530 "value": 12.0 1531 } 1532 }, 1533 "backgroundColor": { 1534 "type": "SITE_PALETTE_COLOR", 1535 "sitePaletteColor": { 1536 "colorName": "white", 1537 "alphaModifier": 1.0 1538 } 1539 }, 1540 "navigationColor": { 1541 "type": "SITE_PALETTE_COLOR", 1542 "sitePaletteColor": { 1543 "colorName": "black", 1544 "alphaModifier": 1.0 1545 } 1546 } 1547 }, 1548 "dropShadowOptions": { 1549 "enabled": false, 1550 "blur": { 1551 "unit": "px", 1552 "value": 12.0 1553 }, 1554 "spread": { 1555 "unit": "px", 1556 "value": 0.0 1557 }, 1558 "distance": { 1559 "unit": "px", 1560 "value": 12.0 1561 } 1562 }, 1563 "borderOptions": { 1564 "enabled": false, 1565 "position": "allSides", 1566 "thickness": { 1567 "unit": "px", 1568 "value": 4.0 1569 }, 1570 "color": { 1571 "type": "SITE_PALETTE_COLOR", 1572 "sitePaletteColor": { 1573 "colorName": "black", 1574 "alphaModifier": 1.0 1575 } 1576 } 1577 }, 1578 "showPromotedElement": false, 1579 "buttonVariant": "primary", 1580 "
1580blurBackground": { 1581 "enabled": false, 1582 "blurRadius": { 1583 "unit": "px", 1584 "value": 12.0 1585 } 1586 }, 1587 "headerOpacity": { 1588 "unit": "%", 1589 "value": 100.0 1590 } 1591 }" 1592 data-section-id="overlay-nav" 1593 data-show-account-login="false" 1594 data-test="header-menu"> 1595 <div class="header-menu-bg theme-bg--primary"></div> 1596 <div class="header-menu-nav"> 1597 <nav class="header-menu-nav-list"> 1598 <div data-folder="root" class="header-menu-nav-folder"> 1599 <div class="header-menu-nav-folder-content"> 1600 <!-- Menu Navigation --> 1601<div class="header-menu-nav-wrapper"> 1602 1603 1604 1605 1606 <div class="container header-menu-nav-item"> 1607 <a 1608 data-folder-id="/about-us" 1609 href="/about-us" 1610 1611 > 1612 <div class="header-menu-nav-item-content header-menu-nav-item-content-folder"> 1613 <span class="visually-hidden">Folder:</span> 1614 <span class="header-nav-folder-title-text">About Us</span> 1615 </div> 1616 </a> 1617 </div> 1618 <div data-folder="/about-us" class="header-menu-nav-folder"> 1619 <div class="header-menu-nav-folder-content"> 1620 <div class="header-menu-controls container header-menu-nav-item"> 1621 <a class="header-menu-controls-control header-menu-controls-control--active" data-action="back" href="/"> 1622 <span>Back</span> 1623 </a> 1624 </div> 1625 1626 1627 <div class="container header-menu-nav-item"> 1628 <a 1629 href="/what-we-do" 1630 1631 > 1632 <div class="header-menu-nav-item-content"> 1633 What We Do 1634 </div> 1635 </a> 1636 </div> 1637 1638 1639 1640 1641 <div class="container header-menu-nav-item"> 1642 <a 1643 href="/our-people" 1644 1645 > 1646 <div class="header-menu-nav-item-content"> 1647 Our People 1648 </div> 1649 </a> 1650 </div> 1651 1652 1653 1654 1655 <div class="container header-menu-nav-item"> 1656 <a 1657 href="/our-partners" 1658 1659 > 1660 <div class="header-menu-nav-item-content"> 1661 Our Partners 1662 </div> 1663 </a> 1664 </div> 1665 1666 1667 1668 1669 <div class="container header-menu-nav-item"> 1670 <a 1671 href="/contact-us" 1672 1673 > 1674 <div class="header-menu-nav-item-content"> 1675 Contact Us 1676 </div> 1677 </a> 1678 </div> 1679 1680 1681 1682 1683 <div class="container header-menu-nav-item"> 1684 <a 1685 href="/annual-report" 1686 1687 > 1688 <div class="header-menu-nav-item-content"> 1689 Annual Report 1690 </div> 1691 </a> 1692 </div> 1693 1694 1695 1696 </div> 1697 </div> 1698 1699 1700 1701 1702 1703 <div class="container header-menu-nav-item"> 1704 <a 1705 data-folder-id="/965a47a5-0d8b-4110-8f5f-15359ee99e2a" 1706 href="/965a47a5-0d8b-4110-8f5f-15359ee99e2a" 1707 1708 > 1709 <div class="header-menu-nav-item-content header-menu-nav-item-content-folder">
1710 <span class="visually-hidden">Folder:</span> 1711 <span class="header-nav-folder-title-text">News & Events</span> 1712 </div> 1713 </a> 1714 </div> 1715 <div data-folder="/965a47a5-0d8b-4110-8f5f-15359ee99e2a" class="header-menu-nav-folder"> 1716 <div class="header-menu-nav-folder-content"> 1717 <div class="header-menu-controls container header-menu-nav-item"> 1718 <a class="header-menu-controls-control header-menu-controls-control--active" data-action="back" href="/"> 1719 <span>Back</span> 1720 </a> 1721 </div> 1722 1723 1724 <div class="container header-menu-nav-item"> 1725 <a 1726 href="/news" 1727 1728 > 1729 <div class="header-menu-nav-item-content"> 1730 News 1731 </div> 1732 </a> 1733 </div> 1734 1735 1736 1737 1738 <div class="container header-menu-nav-item"> 1739 <a 1740 href="/events" 1741 1742 > 1743 <div class="header-menu-nav-item-content"> 1744 Events 1745 </div> 1746 </a> 1747 </div> 1748 1749 1750 1751 </div> 1752 </div> 1753 1754 1755 1756 1757 1758 1759 <div class="container header-menu-nav-item header-menu-nav-item--collection"> 1760 <a 1761 href="/our-campaigns" 1762 1763 > 1764 <div class="header-menu-nav-item-content"> 1765 Campaigns 1766 </div> 1767 </a> 1768 </div> 1769 1770 1771 1772 1773 1774 1775 1776 <div class="container header-menu-nav-item header-menu-nav-item--collection"> 1777 <a 1778 href="/research" 1779 1780 > 1781 <div class="header-menu-nav-item-content"> 1782 Research 1783 </div> 1784 </a> 1785 </div> 1786 1787 1788 1789 1790 1791 1792 <div class="container header-menu-nav-item"> 1793 <a 1794 data-folder-id="/resources" 1795 href="/resources" 1796 1797 > 1798 <div class="header-menu-nav-item-content header-menu-nav-item-content-folder"> 1799 <span class="visually-hidden">Folder:</span> 1800 <span class="header-nav-folder-title-text">Resources</span> 1801 </div> 1802 </a> 1803 </div> 1804 <div data-folder="/resources" class="header-menu-nav-folder"> 1805 <div class="header-menu-nav-folder-content"> 1806 <div class="header-menu-controls container header-menu-nav-item"> 1807 <a class="header-menu-controls-control header-menu-controls-control--active" data-action="back" href="/"> 1808 <span>Back</span> 1809 </a> 1810 </div> 1811 1812 1813 <div class="container header-menu-nav-item"> 1814 <a 1815 href="/statistics" 1816 1817 > 1818 <div class="header-menu-nav-item-content"> 1819 Statistics 1820 </div> 1821 </a> 1822 </div> 1823 1824 1825 1826 1827 <div class="container header-menu-nav-item"> 1828 <a 1829 href="/faqs" 1830 1831 > 1832 <div class="header-menu-nav-item-content"> 1833 FAQs 1834 </div> 1835 </a> 1836 </div> 1837 1838 1839 1840 </div> 1841 </div> 1842 1843 1844 1845 1846 1847 <div class="container header-menu-nav-item"> 1848 <a 1849 data-folder-id="/get-involved" 1850 href="/get-involved" 1851 1852 > 1853 <div class="header-menu-nav-item-content header-menu-nav-item-content-folder">
1854 <span class="visually-hidden">Folder:</span> 1855 <span class="header-nav-folder-title-text">Get Involved</span> 1856 </div> 1857 </a> 1858 </div> 1859 <div data-folder="/get-involved" class="header-menu-nav-folder"> 1860 <div class="header-menu-nav-folder-content"> 1861 <div class="header-menu-controls container header-menu-nav-item"> 1862 <a class="header-menu-controls-control header-menu-controls-control--active" data-action="back" href="/"> 1863 <span>Back</span> 1864 </a> 1865 </div> 1866 1867 1868 <div class="container header-menu-nav-item"> 1869 <a 1870 href="/become-a-member" 1871 1872 > 1873 <div class="header-menu-nav-item-content"> 1874 Become a Member 1875 </div> 1876 </a> 1877 </div> 1878 1879 1880 1881 1882 <div class="container header-menu-nav-item"> 1883 <a 1884 href="/fundraise" 1885 1886 > 1887 <div class="header-menu-nav-item-content"> 1888 Fundraise 1889 </div> 1890 </a> 1891 </div> 1892 1893 1894 1895 1896 <div class="container header-menu-nav-item"> 1897 <a 1898 href="/volunteer" 1899 1900 > 1901 <div class="header-menu-nav-item-content"> 1902 Volunteer 1903 </div> 1904 </a> 1905 </div> 1906 1907 1908 1909 1910 <div class="container header-menu-nav-item"> 1911 <a 1912 href="/make-a-difference" 1913 1914 > 1915 <div class="header-menu-nav-item-content"> 1916 Make A Difference 1917 </div> 1918 </a> 1919 </div> 1920 1921 1922 1923 1924 <div class="container header-menu-nav-item"> 1925 <a 1926 href="/donate" 1927 1928 > 1929 <div class="header-menu-nav-item-content"> 1930 Donate 1931 </div> 1932 </a> 1933 </div> 1934 1935 1936 1937 1938 <div class="container header-menu-nav-item"> 1939 <a 1940 href="/supporter-survey" 1941 1942 > 1943 <div class="header-menu-nav-item-content"> 1944 Supporter survey 1945 </div> 1946 </a> 1947 </div> 1948 1949 1950 1951 </div> 1952 </div> 1953 1954 1955 1956 1957</div> 1958 1959 1960 1961 1962 </div> 1963 1964 1965 1966 <div class="header-menu-cta"> 1967 <a 1968 class="theme-btn--primary btn sqs-button-element--primary" 1969 href="/donate" 1970 1971 > 1972 Donate Today 1973 </a> 1974 </div> 1975 1976 </div> 1977 </nav> 1978 </div> 1979 </div> 1980 1981
1981<script> 1982 (function() { 1983 var header = document.getElementById('header'); 1984 if (!header) { 1985 return; 1986 } 1987 function setHeaderHeightVar() { 1988 document.documentElement.style.setProperty( 1989 '--header-height', 1990 header.getBoundingClientRect().height + 'px' 1991 ); 1992 } 1993 setHeaderHeightVar(); 1994 var images = header.getElementsByTagName('img'); 1995 for (var i = 0; i < images.length; i++) { 1996 if (!images[i].complete) { 1997 images[i].addEventListener('load', setHeaderHeightVar); 1998 } 1999 } 2000 })(); 2001 //# sourceURL=reserveSpaceForHeader.js 2002 </script>
2002 2003 </header> 2004 2005 2006 2007 2008 <main id="page" class="container" role="main"> 2009 2010 2011 <article 2012 class="page-regions" 2013 id="page-regions" 2014 data-collection-id="6a0b931102ba2531921dcf99" 2015 data-item-id="" 2016 data-regions-source="collection" 2017> 2018 2019 2020 2021 2022 2023 2024 <section class="region" data-region-id="ee506eee249e958c49cc83ce" data-region-source="collection"> 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045<section 2046 data-test="page-section" 2047 2048 data-section-theme="bright" 2049 class='page-section 2050 2051 full-bleed-section 2052 layout-engine-section 2053 2054 background-width--full-bleed 2055 2056 section-height--medium 2057 2058 2059 content-width--wide 2060 2061 horizontal-alignment--center 2062 vertical-alignment--middle 2063 2064 has-background 2065 2066 2067 bright' 2068 2069 data-section-id="6a0ba6065ee3881a8c3d16cf" 2070 2071 data-controller="SectionWrapperController" 2072 data-current-styles="{ 2073 "backgroundImage": { 2074 "id": "6a0baa157c83211e5b05413e", 2075 "recordType": 2, 2076 "addedOn": 1779149333814, 2077 "updatedOn": 1779149333872, 2078 "workflowState": 1, 2079 "publishOn": 1779149333814, 2080 "authorId": "52e83bdbe4b047367adeef5b", 2081 "systemDataId": "1a503eed-415c-4b4f-b7f1-1549120e0865", 2082 "systemDataVariants": "1000x665,1000w", 2083 "systemDataSourceType": "WEBP", 2084 "filename": "oneshot_10072085.webp", 2085 "mediaFocalPoint": { 2086 "x": 0.5, 2087 "y": 0.5, 2088 "source": 3 2089 }, 2090 "colorData": { 2091 "topLeftAverage": "becbd3", 2092 "topRightAverage": "c8cfc9", 2093 "bottomLeftAverage": "91704e", 2094 "bottomRightAverage": "a4a055", 2095 "centerAverage": "625c46", 2096 "suggestedBgColor": "88755b" 2097 }, 2098 "urlId": "ifh72p7ctcq7b0w00gq5vyi3ile3ka", 2099 "title": "", 2100 "body": null, 2101 "likeCount": 0, 2102 "commentCount": 0, 2103 "publicCommentCount": 0, 2104 "commentState": 2, 2105 "unsaved": false, 2106 "assetUrl": "https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp", 2107 "contentType": "image/webp", 2108 "items": [ ], 2109 "pushedServices": { }, 2110 "pendingPushedServices": { }, 2111 "originalSize": "1000x665", 2112 "recordTypeLabel": "image" 2113 }, 2114 "imageOverlayOpacity": 0.85, 2115 "backgroundWidth": "background-width--full-bleed", 2116 "sectionHeight": "section-height--medium", 2117 "customSectionHeight": 10, 2118 "horizontalAlignment": "horizontal-alignment--center", 2119 "verticalAlignment": "vertical-alignment--middle", 2120 "contentWidth": "content-width--wide", 2121 "customContentWidth": 50, 2122 "sectionTheme": "bright", 2123 "sectionAnimation": "none", 2124 "backgroundMode": "image" 2125 }" 2126 data-current-context="{ 2127 "video": { 2128 "playbackSpeed": 1, 2129 "filter": 1, 2130 "filterStrength": 0, 2131 "zoom": 0, 2132 "videoSourceProvider": "none" 2133 }, 2134 "backgroundImageId": null, 2135 "backgroundMediaEffect": { 2136 "type": "none" 2137 }, 2138 "divider": { 2139 "enabled": false 2140 }, 2141 "typeName": "page" 2142 }" 2143 data-animation="none" 2144 data-fluid-engine-section 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 data-sqsp-section="fluid-engine" 2156 2157 2158> 2159 <div 2160 class="section-border" 2161 2162 > 2163 <div class="section-background"> 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178<img alt="" data-src="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp" data-image="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_100
217872085.webp" data-image-dimensions="1000x665" data-image-focal-point="0.5,0.5" alt="oneshot_10072085.webp" data-load="false" elementtiming="nbf-background" src="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp" width="1000" height="665" alt="" sizes="(max-width: 799px) 200vw, 100vw" style="display:block;object-position: 50% 50%" srcset="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/1a503eed-415c-4b4f-b7f1-1549120e0865/oneshot_10072085.webp?format=2500w 2500w" fetchpriority="high" loading="eager" decoding="async" data-loader="sqs"> 2179 2180 2181 2182 2183 2184 <div class="section-background-overlay" style="opacity: 0.85;"></div> 2185 2186 2187 </div> 2188 </div> 2189 <div 2190 class='content-wrapper' 2191 style=' 2192 2193 2194 2195 ' 2196 > 2197 <div 2198 class="content" 2199 2200 > 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 <div data-fluid-engine="true"><style> 2212 2213.fe-6a0ba6076e22004d63c3ff2c { 2214 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 2215 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 2216 2217 display: grid; 2218 position: relative; 2219 grid-area: 1/1/-1/-1; 2220 grid-template-rows: repeat(14,minmax(24px, auto)); 2221 grid-template-columns: 2222 minmax(var(--grid-gutter), 1fr) 2223 repeat(8, minmax(0, var(--cell-max-width))) 2224 minmax(var(--grid-gutter), 1fr); 2225 row-gap: 11.0px; 2226 column-gap: 11.0px; 2227 overflow-x: hidden; 2228 overflow-x: clip; 2229} 2230 2231@media (min-width: 768px) { 2232 .background-width--inset .fe-6a0ba6076e22004d63c3ff2c { 2233 --inset-padding: calc(var(--sqs-site-gutter) * 2); 2234 } 2235 2236 .fe-6a0ba6076e22004d63c3ff2c { 2237 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 2238 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 2239 --inset-padding: 0vw; 2240 2241 --row-height-scaling-factor: 0.0215; 2242 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 2243 2244 grid-template-rows: repeat(13,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 2245 grid-template-columns: 2246 minmax(var(--grid-gutter), 1fr) 2247 repeat(24, minmax(0, var(--cell-max-width))) 2248 minmax(var(--grid-gutter), 1fr); 2249 } 2250} 2251 2252 2253 .fe-block-yui_3_17_2_1_1779148197935_420 { 2254 grid-area: 1/2/3/10; 2255 z-index: 1; 2256 2257 @media (max-width: 767px) { 2258 2259 2260 2261 2262 } 2263 } 2264 2265 .fe-block-yui_3_17_2_1_1779148197935_420 .sqs-block { 2266 justify-content: flex-start; 2267 } 2268 2269 .fe-block-yui_3_17_2_1_1779148197935_420 .sqs-block-alignment-wrapper { 2270 align-items: flex-start; 2271 } 2272 2273 @media (min-width: 768px) { 2274 .fe-block-yui_3_17_2_1_1779148197935_420 { 2275 grid-area: 1/2/5/26; 2276 z-index: 1; 2277 2278 2279 2280 2281 2282 2283 } 2284 2285 .fe-block-yui_3_17_2_1_1779148197935_420 .sqs-block { 2286 justify-content: flex-start; 2287 } 2288 2289 .fe-block-yui_3_17_2_1_1779148197935_420 .sqs-block-alignment-wrapper { 2290 align-items: flex-start; 2291 } 2292 } 2293 2294 .fe-block-yui_3_17_2_1_1787799904239_2845 { 2295 grid-area: 3/2/5/10; 2296 z-index: 4; 2297 2298 @media (max-width: 767px) { 2299 2300 2301 2302 2303 } 2304 } 2305 2306 .fe-block-yui_3_17_2_1_1787799904239_2845 .sqs-block { 2307 justify-content: center; 2308 } 2309 2310 .fe-block-yui_3_17_2_1_1787799904239_2845 .sqs-block-alignment-wrapper {
2311 align-items: center; 2312 } 2313 2314 @media (min-width: 768px) { 2315 .fe-block-yui_3_17_2_1_1787799904239_2845 { 2316 grid-area: 5/11/7/17; 2317 z-index: 4; 2318 2319 2320 2321 2322 2323 2324 } 2325 2326 .fe-block-yui_3_17_2_1_1787799904239_2845 .sqs-block { 2327 justify-content: center; 2328 } 2329 2330 .fe-block-yui_3_17_2_1_1787799904239_2845 .sqs-block-alignment-wrapper { 2331 align-items: center; 2332 } 2333 } 2334 2335 .fe-block-bf8b31a2328321a56c37 { 2336 grid-area: 5/2/7/10; 2337 z-index: 2; 2338 2339 @media (max-width: 767px) { 2340 2341 2342 2343 2344 } 2345 } 2346 2347 .fe-block-bf8b31a2328321a56c37 .sqs-block { 2348 justify-content: flex-start; 2349 } 2350 2351 .fe-block-bf8b31a2328321a56c37 .sqs-block-alignment-wrapper { 2352 align-items: flex-start; 2353 } 2354 2355 @media (min-width: 768px) { 2356 .fe-block-bf8b31a2328321a56c37 { 2357 grid-area: 8/2/10/26; 2358 z-index: 2; 2359 2360 2361 2362 2363 2364 2365 } 2366 2367 .fe-block-bf8b31a2328321a56c37 .sqs-block { 2368 justify-content: flex-start; 2369 } 2370 2371 .fe-block-bf8b31a2328321a56c37 .sqs-block-alignment-wrapper { 2372 align-items: flex-start; 2373 } 2374 } 2375 2376 .fe-block-yui_3_17_2_1_1779158485660_5836 { 2377 grid-area: 7/2/15/10; 2378 z-index: 3; 2379 2380 @media (max-width: 767px) { 2381 2382 2383 2384 2385 } 2386 } 2387 2388 .fe-block-yui_3_17_2_1_1779158485660_5836 .sqs-block { 2389 justify-content: flex-start; 2390 } 2391 2392 .fe-block-yui_3_17_2_1_1779158485660_5836 .sqs-block-alignment-wrapper { 2393 align-items: flex-start; 2394 } 2395 2396 @media (min-width: 768px) { 2397 .fe-block-yui_3_17_2_1_1779158485660_5836 { 2398 grid-area: 10/2/14/26; 2399 z-index: 3; 2400 2401 2402 2403 2404 2405 2406 } 2407 2408 .fe-block-yui_3_17_2_1_1779158485660_5836 .sqs-block { 2409 justify-content: center; 2410 } 2411 2412 .fe-block-yui_3_17_2_1_1779158485660_5836 .sqs-block-alignment-wrapper { 2413 align-items: center; 2414 } 2415 } 2416 2417</style><div class="fluid-engine fe-6a0ba6076e22004d63c3ff2c"><div class="fe-block fe-block-yui_3_17_2_1_1779148197935_420"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="yui_3_17_2_1_1779148197935_420" id="block-yui_3_17_2_1_1779148197935_420"><div class="sqs-block-content"><div class="sqs-text-block-container"> 2418 2419 <div class="sqs-html-content" data-sqsp-text-block-content><h1 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Weâve just released our <em>Manifesto to Reduce Child Poverty</em>.</h1></div> 2420 2421 2422 2423<style id="container-styles">#block-yui_3_17_2_1_1779148197935_420 { 2424 2425 --stroke-style: none;--stroke-thickness: 2px; 2426 2427 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 2428; 2429 2430 2431 2432 2433 2434 2435 2436 } 2437 2438 #block-yui_3_17_2_1_1779148197935_420 .sqs-html-content { 2439 2440 --tweak-text-block-padding: 6% 6% 6% 6%; 2441 --tweak-text-block-padding: initial; 2442} 2443 2444 .fe-block-yui_3_17_2_1_1779148197935_420 { 2445 mix-blend-mode: var(--tweak-text-block-blend 2446 ); 2447 border-radius: var(--tweak-text-block-radius); 2448 } 2449 2450 2451 2452.fe-block-yui_3_17_2_1_1779148197935_420 { 2453 --tweak-text-block-radius: 0px 0px 0px 0px; 2454 } 2455 2456 2457 2458 .fe-block-yui_3_17_2_1_1779148197935_420 { 2459 --tweak-text-block-blend 2460 : normal; 2461 } 2462 2463 2464 .fe-block-yui_3_17_2_1_1779148197935_420 { 2465 --blur-value: blur(15px);} 2466 2467</style> 2468 2469<style id="override-container-styles"> 2470 @media screen and (max-width: 767px) { 2471 2472 2473 2474#block-yui_3_17_2_1_1779148197935_420 { 2475 2476 } 2477 } 2478 2479 2480 @media screen and (max-width: 767px) { 2481 #block-yui_3_17_2_1_1779148197935_420 .sqs-html-content { 2482 2483 } 2484 } 2485 2486 @media screen and (max-width: 767px) { 2487 2488 2489 2490 2491 2492 2493 }</style> 2494<style class="transform-vars"> 2495 .fe-block-yui_3_17_2_1_1779148197935_420 { 2496 --opacity: 100%; 2497 --translate-x: 0px; 2498 --translate-y: 0px; 2499 --rotation: 0deg; 2500 --scale-x: 100%; 2501 --scale-y: 100%; 2502 --skew-x: 0deg; 2503 --skew-y: 0deg; 2504 --origin-x: 50%; 2505 --origin-y: 50%; 2506 --block-transform: none; 2507 2508 opacity: var(--opacity, 1); 2509 transform: var(--block-transform); 2510 transform-origin: var(--origin-x) var(--origin-y); 2511 } 2512 </style><style class="transform-overrides-vars"> 2513 2514</style> 2515 2516 2517 2518 2519</div> 2520</div></div></div><div class="fe-block fe-block-yui_3_17_2_1_1787799904239_2845"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-button button-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.button/cca6dcde-ee2a-4b4a-bede-2058241b7432_1122/website.components.button.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.button/cca6dcde-ee2a-4b4a-bede-2058241b7432_1122/website.components.button.visitor.js"]" data-block-type="1337" data-definition-name="website.components.button" data-sqsp-block="button" data-website-component-id="yui_3_17_2_1_1787799904239_2845" id="block-yui_3_17_2_1_1787799904239_2845"><div class="sqs-block-content"> 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532<div 2533 class="sqs-block-button-container sqs-button-block-container-system_desktop sqs-block-button-container--center sqs-stretched" 2534 data-animation-role="button" 2535 data-button-size="medium" 2536 data-button-type="primary" 2537 2538> 2539 <a 2540 href="/our-campaigns/a-manifesto-to-reduce-child-poverty-2026" 2541 class="sqs-block-button-element--medium sqs-button-element--primary sqs-block-button-element" 2542 data-sqsp-button 2543 2544 > 2545 Read the full Manifesto 2546 </a> 2547 2548 2549 2550 2551</div> 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562<style> 2563 #block-yui_3_17_2_1_1787799904239_2845 { 2564 --sqs-block-content-flex: 1; 2565 } 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579</style> 2580<style class="transform-vars"> 2581 .fe-block-yui_3_17_2_1_1787799904239_2845 { 2582 --opacity: 100%; 2583 --translate-x: 0px; 2584 --translate-y: 0px; 2585 --rotation: 0deg; 2586 --scale-x: 100%; 2587 --scale-y: 100%; 2588 --skew-x: 0deg; 2589 --skew-y: 0deg; 2590 --origin-x: 50%; 2591 --origin-y: 50%; 2592 --block-transform: none; 2593 2594 opacity: var(--opacity, 1); 2595 transform: var(--block-transform); 2596 transform-origin: var(--origin-x) var(--origin-y); 2597 } 2598 </style><style class="transform-overrides-vars"> 2599 2600</style> 2601 2602</div></div></div><div class="fe-block fe-block-bf8b31a2328321a56c37"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="bf8b31a2328321a56c37" id="block-bf8b31a2328321a56c37"><div class="sqs-block-content"><div class="sqs-text-block-container"> 2603 2604 <div class="sqs-html-content" data-sqsp-text-block-content><h2 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Join our mission!</h2></div> 2605 2606 2607 2608<style id="container-styles">#block-bf8b31a2328321a56c37 { 2609 2610 --stroke-style: none;--stroke-thickness: 2px; 2611 2612 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 2613; 2614 2615 2616 2617 2618 2619 2620 2621 } 2622 2623 #block-bf8b31a2328321a56c37 .sqs-html-content { 2624 2625 --tweak-text-block-padding: 6% 6% 6% 6%; 2626 --tweak-text-block-padding: initial; 2627} 2628 2629 .fe-block-bf8b31a2328321a56c37 { 2630 mix-blend-mode: var(--tweak-text-block-blend 2631 ); 2632 border-radius: var(--tweak-text-block-radius); 2633 } 2634 2635 2636 2637.fe-block-bf8b31a2328321a56c37 { 2638 --tweak-text-block-radius: 0px 0px 0px 0px; 2639 } 2640 2641 2642 2643 .fe-block-bf8b31a2328321a56c37 { 2644 --tweak-text-block-blend 2645 : normal; 2646 } 2647 2648 2649 .fe-block-bf8b31a2328321a56c37 { 2650 --blur-value: blur(15px);} 2651 2652</style> 2653 2654<style id="override-container-styles"> 2655 @media screen and (max-width: 767px) { 2656 2657 2658 2659#block-bf8b31a2328321a56c37 { 2660 2661 } 2662 } 2663 2664 2665 @media screen and (max-width: 767px) { 2666 #block-bf8b31a2328321a56c37 .sqs-html-content { 2667 2668 } 2669 } 2670 2671 @media screen and (max-width: 767px) { 2672 2673 2674 2675 2676 2677 2678 }</style> 2679<style class="transform-vars"> 2680 .fe-block-bf8b31a2328321a56c37 { 2681 --opacity: 100%; 2682 --translate-x: 0px; 2683 --translate-y: 0px; 2684 --rotation: 0deg; 2685 --scale-x: 100%; 2686 --scale-y: 100%; 2687 --skew-x: 0deg; 2688 --skew-y: 0deg; 2689 --origin-x: 50%; 2690 --origin-y: 50%; 2691 --block-transform: none; 2692 2693 opacity: var(--opacity, 1); 2694 transform: var(--block-transform); 2695 transform-origin: var(--origin-x) var(--origin-y); 2696 } 2697 </style><style class="transform-overrides-vars"> 2698 2699</style> 2700 2701 2702 2703 2704</div> 2705</div></div></div><div class="fe-block fe-block-yui_3_17_2_1_1779158485660_5836"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-newsletter newsletter-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/4e9d8554-2eb0-4363-8c8a-aeb3f6f6e16e_115/website.components.newsletter.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.newsletter/4e9d8554-2eb0-4363-8c8a-aeb3f6f6e16e_115/website.components.newsletter.visitor.js"]" data-block-type="1337" data-definition-name="website.components.newsletter" data-sqsp-block="newsletter" data-website-component-id="yui_3_17_2_1_1779158485660_5836" id="block-yui_3_17_2_1_1779158485660_5836"><div class="sqs-block-content"> 2706<div class="newsletter-form-banner newsletter-form-banner--hidden"> 2707 2708 2709 2710<div class="sqs-blockStatus" > 2711 2712 <div class="sqs-blockStatus-box"> 2713 <div class="sqs-blockStatus-box-title">Newsletter Block</div> 2714 <div class="sqs-blockStatus-box-message"> 2715 This newsletter signup form needs a storage option. Edit the block and enter a storage location via the <strong>Storage</strong> tab. 2716 2717 </div> 2718 </div> 2719</div> 2720 2721</div> 2722<div class="newsletter-form-wrapper 2723 newsletter-form-show-name 2724 newsletter-form-wrapper--layoutFloat 2725 newsletter-form-wrapper--alignCenter 2726 2727 "> 2728 <form 2729 class="newsletter-form" 2730 data-form-id="6a0be0b8f13daf7126153d53" 2731 2732 data-form-submission="message" 2733 data-collection-id="" 2734 data-object-name="" 2735 data-error-submit="Error processing form submission. Please reload and try again." 2736 data-error-unknown="Unknown error, please try again later." 2737 data-error-form-key="Could not get a form submission key, please try again later." 2738 data-error-401="Unable to submit form. Please try again later." 2739 data-error-404="This form has not been configured yet." 2740 data-error-429="Unable to submit form. Submission rate limit exceeded. Please try again later." 2741 data-error-500="Unable to send form. Please try again later." 2742 data-submitting-text="Submittingâ¦" 2743 autocomplete="on" 2744 method="POST" 2745 novalidate> 2746 <header class="newsletter-form-header"> 2747 2748 <div class="newsletter-form-header-description"></div> 2749 </header> 2750 <div class="newsletter-form-body"> 2751 <div class="newsletter-form-fields-wrapper form-fields" style="vertical-align: middle;"> 2752 2753 2754 2755 2756 2757 2758 2759 <fieldset id="name-yui_3_17_2_1_1779158485660_5844" class="newsletter-form-name-fieldset form-item fields name required" style="vertical-align: bottom;"> 2760 2761 2762 <div class="newsletter-form-field-wrapper field first-name"> 2763 <label class="newsletter-form-field-label title">First Name</label> 2764 <input class="newsletter-form-field-element field-element field-control" name="fname" x-autocompletetype="given-name" type="text" spellcheck="false" placeholder="First Name" maxlength="30" data-title="First" /> 2765 </div> 2766 2767 2768 <div class="newsletter-form-field-wrapper field last-name"> 2769 <label class="newsletter-form-field-label title">Last Name</label> 2770 <input class="newsletter-form-field-element field-element field-control" name="lname" x-autocompletetype="surname" type="text" spellcheck="false" placeholder="Last Name" maxlength="30" data-title="Last" /> 2771 </div> 2772 2773 2774 </fieldset> 2775 2776 2777 2778 2779 2780 <div id="email-yui_3_17_2_1_1779163277111_2408" class="newsletter-form-field-wrapper form-item field email required" style="vertical-align: bottom;"> 2781 <label class="newsletter-form-field-label title" for="email-yui_3_17_2_1_1779163277111_2408-field">Email Address</label> 2782 <input id="email-yui_3_17_2_1_1779163277111_2408-field" class="newsletter-form-field-element field-element" name="email" x-autocompletetype="email" autocomplete="email" type="email" spellcheck="false" placeholder="Email Address" /> 2783 </div> 2784 2785 2786 2787 2788 </div> 2789 <div data-animation-role="button" class="newsletter-form-button-wrapper submit-wrapper" style="vertical-align: middle;"> 2790 <button 2791 class=" 2792 newsletter-form-button 2793 sqs-system-button 2794 sqs-editable-button-layout 2795 sqs-editable-button-style 2796 sqs-editable-button-shape 2797 sqs-button-element--primary 2798 " 2799 type="submit" 2800 value="Sign Up" 2801 >
2802 <span class="newsletter-form-spinner sqs-spin light large"></span> 2803 <span class="newsletter-form-button-label">Sign Up</span> 2804 <span class="newsletter-form-button-icon"></span> 2805 </button> 2806 </div> 2807 2808 <div class="captcha-container 2809 2810 align-center 2811 2812 " 2813 data-theme="light" 2814 ></div> 2815 2816 </div> 2817 <div class="newsletter-form-footnote"></div> 2818 <div class="hidden form-submission-text">Thank you!</div> 2819 <div class="hidden form-submission-html" data-submission-html=""></div> 2820 </form> 2821</div> 2822 2823<style></style> 2824 2825<!-- SQUARESPACE_JSONT_ERROR 2826 2827website.components.newsletter 2828 2829(line/character offsets reference the template source code) 2830 2831 1: RuntimeError EXPRESSION_PARSE at line 2 character 1: Error parsing expression: Unexpected character at 22: ? 2832 2833--></div></div></div></div></div> 2834 </div> 2835 2836 </div> 2837 2838</section> 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860<section 2861 data-test="page-section" 2862 2863 data-section-theme="light" 2864 class='page-section 2865 2866 full-bleed-section 2867 layout-engine-section 2868 2869 background-width--full-bleed 2870 2871 section-height--medium 2872 2873 2874 content-width--wide 2875 2876 horizontal-alignment--center 2877 vertical-alignment--middle 2878 2879 2880 2881 2882 light' 2883 2884 data-section-id="6a4471a78131357bef419440" 2885 2886 data-controller="SectionWrapperController" 2887 data-current-styles="{ 2888 "imageOverlayOpacity": 0.15, 2889 "backgroundWidth": "background-width--full-bleed", 2890 "sectionHeight": "section-height--medium", 2891 "customSectionHeight": 10, 2892 "horizontalAlignment": "horizontal-alignment--center", 2893 "verticalAlignment": "vertical-alignment--middle", 2894 "contentWidth": "content-width--wide", 2895 "customContentWidth": 50, 2896 "sectionTheme": "light", 2897 "sectionAnimation": "none", 2898 "backgroundMode": "image" 2899 }" 2900 data-current-context="{ 2901 "video": { 2902 "playbackSpeed": 1, 2903 "filter": 1, 2904 "filterStrength": 0, 2905 "zoom": 0, 2906 "videoSourceProvider": "none" 2907 }, 2908 "backgroundImageId": null, 2909 "backgroundMediaEffect": { 2910 "type": "none" 2911 }, 2912 "divider": { 2913 "enabled": false 2914 }, 2915 "typeName": "page" 2916 }" 2917 data-animation="none" 2918 data-fluid-engine-section 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 data-sqsp-section="fluid-engine" 2930 2931 2932> 2933 <div 2934 class="section-border" 2935 2936 > 2937 <div class="section-background"> 2938 2939 2940 2941 </div> 2942 </div> 2943 <div 2944 class='content-wrapper' 2945 style=' 2946 2947 2948 2949 ' 2950 > 2951 <div 2952 class="content" 2953 2954 > 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 <div data-fluid-engine="true"><style> 2966 2967.fe-6a4471a78131357bef41943f { 2968 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 2969 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 2970 2971 display: grid; 2972 position: relative; 2973 grid-area: 1/1/-1/-1; 2974 grid-template-rows: repeat(8,minmax(24px, auto)); 2975 grid-template-columns: 2976 minmax(var(--grid-gutter), 1fr) 2977 repeat(8, minmax(0, var(--cell-max-width))) 2978 minmax(var(--grid-gutter), 1fr); 2979 row-gap: 11.0px; 2980 column-gap: 11.0px; 2981 overflow-x: hidden; 2982 overflow-x: clip; 2983} 2984 2985@media (min-width: 768px) { 2986 .background-width--inset .fe-6a4471a78131357bef41943f { 2987 --inset-padding: calc(var(--sqs-site-gutter) * 2); 2988 } 2989 2990 .fe-6a4471a78131357bef41943f { 2991 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 2992 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 2993 --inset-padding: 0vw; 2994 2995 --row-height-scaling-factor: 0.0215; 2996 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 2997 2998 grid-template-rows: repeat(4,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 2999 grid-template-columns: 3000 minmax(var(--grid-gutter), 1fr) 3001 repeat(24, minmax(0, var(--cell-max-width))) 3002 minmax(var(--grid-gutter), 1fr); 3003 } 3004} 3005 3006 3007 .fe-block-82fc425bef83ccde1b2f { 3008 grid-area: 1/2/3/10; 3009 z-index: 2; 3010 3011 @media (max-width: 767px) { 3012 3013 3014 3015 3016 } 3017 } 3018 3019 .fe-block-82fc425bef83ccde1b2f .sqs-block { 3020 justify-content: flex-start; 3021 } 3022 3023 .fe-block-82fc425bef83ccde1b2f .sqs-block-alignment-wrapper {
3024 align-items: flex-start; 3025 } 3026 3027 @media (min-width: 768px) { 3028 .fe-block-82fc425bef83ccde1b2f { 3029 grid-area: 1/2/3/26; 3030 z-index: 2; 3031 3032 3033 3034 3035 3036 3037 } 3038 3039 .fe-block-82fc425bef83ccde1b2f .sqs-block { 3040 justify-content: flex-start; 3041 } 3042 3043 .fe-block-82fc425bef83ccde1b2f .sqs-block-alignment-wrapper { 3044 align-items: flex-start; 3045 } 3046 } 3047 3048 .fe-block-78cf2f625365f917af68 { 3049 grid-area: 3/2/9/10; 3050 z-index: 1; 3051 3052 @media (max-width: 767px) { 3053 3054 3055 3056 3057 } 3058 } 3059 3060 .fe-block-78cf2f625365f917af68 .sqs-block { 3061 justify-content: flex-start; 3062 } 3063 3064 .fe-block-78cf2f625365f917af68 .sqs-block-alignment-wrapper { 3065 align-items: flex-start; 3066 } 3067 3068 @media (min-width: 768px) { 3069 .fe-block-78cf2f625365f917af68 { 3070 grid-area: 3/1/5/27; 3071 z-index: 1; 3072 3073 3074 3075 3076 3077 3078 } 3079 3080 .fe-block-78cf2f625365f917af68 .sqs-block { 3081 justify-content: flex-start; 3082 } 3083 3084 .fe-block-78cf2f625365f917af68 .sqs-block-alignment-wrapper { 3085 align-items: flex-start; 3086 } 3087 } 3088 3089</style><div class="fluid-engine fe-6a4471a78131357bef41943f"><div class="fe-block fe-block-82fc425bef83ccde1b2f"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="82fc425bef83ccde1b2f" id="block-82fc425bef83ccde1b2f"><div class="sqs-block-content"><div class="sqs-text-block-container"> 3090 3091 <div class="sqs-html-content" data-sqsp-text-block-content><h2 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Child Poverty in Aotearoa New Zealand (at a glance)</h2></div> 3092 3093 3094 3095<style id="container-styles">#block-82fc425bef83ccde1b2f { 3096 3097 --stroke-style: none;--stroke-thickness: 2px; 3098 3099 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 3100; 3101 3102 3103 3104 3105 3106 3107 3108 } 3109 3110 #block-82fc425bef83ccde1b2f .sqs-html-content { 3111 3112 --tweak-text-block-padding: 6% 6% 6% 6%; 3113 --tweak-text-block-padding: initial; 3114} 3115 3116 .fe-block-82fc425bef83ccde1b2f { 3117 mix-blend-mode: var(--tweak-text-block-blend 3118 ); 3119 border-radius: var(--tweak-text-block-radius); 3120 } 3121 3122 3123 3124.fe-block-82fc425bef83ccde1b2f { 3125 --tweak-text-block-radius: 0px 0px 0px 0px; 3126 } 3127 3128 3129 3130 .fe-block-82fc425bef83ccde1b2f { 3131 --tweak-text-block-blend 3132 : normal; 3133 } 3134 3135 3136 .fe-block-82fc425bef83ccde1b2f { 3137 --blur-value: blur(15px);} 3138 3139</style> 3140 3141<style id="override-container-styles"> 3142 @media screen and (max-width: 767px) { 3143 3144 3145 3146#block-82fc425bef83ccde1b2f { 3147 3148 } 3149 } 3150 3151 3152 @media screen and (max-width: 767px) { 3153 #block-82fc425bef83ccde1b2f .sqs-html-content { 3154 3155 } 3156 } 3157 3158 @media screen and (max-width: 767px) { 3159 3160 3161 3162 3163 3164 3165 }</style> 3166<style class="transform-vars"> 3167 .fe-block-82fc425bef83ccde1b2f { 3168 --opacity: 100%; 3169 --translate-x: 0px; 3170 --translate-y: 0px; 3171 --rotation: 0deg; 3172 --scale-x: 100%; 3173 --scale-y: 100%; 3174 --skew-x: 0deg; 3175 --skew-y: 0deg; 3176 --origin-x: 50%; 3177 --origin-y: 50%; 3178 --block-transform: none; 3179 3180 opacity: var(--opacity, 1); 3181 transform: var(--block-transform); 3182 transform-origin: var(--origin-x) var(--origin-y); 3183 } 3184 </style><style class="transform-overrides-vars"> 3185 3186</style> 3187 3188 3189 3190 3191</div> 3192</div></div></div><div class="fe-block fe-block-78cf2f625365f917af68"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-code code-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.c
3192ode/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.visitor.js"]" data-block-type="1337" data-definition-name="website.components.code" data-sqsp-block="code" data-website-component-id="78cf2f625365f917af68" id="block-78cf2f625365f917af68"><div class="sqs-block-content"> 3193 3194 3195<div 3196 class="sqs-code-container" 3197 3198 3199 data-localized="{"enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","scriptDisabled":"Script Disabled"}" 3200 3201 3202 3203 3204> 3205 3206 <!-- ============================================ 3207 Flourish Embed Carousel 3208 - 3 fixed Flourish charts, one visible per slide 3209 - Dot pagination + prev/next arrows 3210 - Drag / swipe + keyboard support 3211 - Flourish embed.js is loaded once; charts resize themselves 3212 ============================================ --> 3213 3214<div class="flourish-carousel-section"> 3215 <div class="flourish-carousel-viewport"> 3216 <div class="flourish-carousel-track"> 3217 3218 <div class="flourish-slide"> 3219 <div class="flourish-embed flourish-chart" data-src="visualisation/26115253"> 3220 <noscript><img src="https://public.flourish.studio/visualisation/26115253/thumbnail" width="100%" alt="Material Hardship chart" /></noscript> 3221 </div> 3222 </div> 3223 3224 <div class="flourish-slide"> 3225 <div class="flourish-embed flourish-chart" data-src="visualisation/25772733"> 3226 <noscript><img src="https://public.flourish.studio/visualisation/25772733/thumbnail" width="100%" alt="Food Insecurity chart" /></noscript> 3227 </div> 3228 </div> 3229 3230 3231 </div> 3232 </div> 3233 3234 <!-- Controls: dots centred + prev/next arrows pinned to right gutter, same pattern as the news carousel --> 3235 <div class="flourish-carousel-controls"> 3236 <div class="flourish-carousel-dots"></div> 3237 <div class="flourish-carousel-arrows"> 3238 <button class="flourish-carousel-arrow flourish-carousel-prev" aria-label="Previous slide"> 3239 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 3240 <path d="M1 6.5L6 1.5M1 6.5L6 11.5M1 6.5H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3241 </svg> 3242 </button> 3243 <button class="flourish-carousel-arrow flourish-carousel-next" aria-label="Next slide"> 3244 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 3245 <path d="M19 6.5L14 1.5M19 6.5L14 11.5M19 6.5H1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3246 </svg> 3247 </button> 3248 </div> 3249 </div> 3250</div> 3251 3252<!-- Load the Flourish embed script once. It auto-processes every .flourish-embed 3253 div on the page on DOMContentLoaded, so all three charts render up front and 3254 the carousel just slides between them (no re-embedding needed on navigation). -->
3255<script src="https://public.flourish.studio/resources/embed.js"></script>
3255 3256 3257<style> 3258.flourish-carousel-section { 3259 position: relative; 3260 width: 100%; 3261 max-width: 1200px; 3262 margin: 0 auto; 3263 padding: 0 0 48px; 3264 box-sizing: border-box; 3265} 3266 3267.flourish-carousel-viewport { 3268 overflow: hidden; 3269 width: 100%; 3270 transition: height 0.3s ease; 3271} 3272 3273.flourish-carousel-track { 3274 display: flex; 3275 transition: transform 0.4s ease; 3276 touch-action: pan-y; 3277 cursor: grab; 3278} 3279 3280.flourish-carousel-track.is-dragging { 3281 transition: none; 3282 cursor: grabbing; 3283} 3284 3285.flourish-slide { 3286 flex: 0 0 100%; 3287 width: 100%; 3288 box-sizing: border-box; 3289 padding: 0 8px; 3290} 3291 3292.flourish-slide-title { 3293 margin: 0 0 16px; 3294 font-size: 1.4rem; 3295 font-weight: 600; 3296 text-align: center; 3297} 3298 3299.flourish-embed { 3300 width: 100%; 3301} 3302 3303/* Controls row: dots centred, arrows pinned right â mirrors the news carousel layout */ 3304.flourish-carousel-controls { 3305 display: flex; 3306 align-items: center; 3307 justify-content: center; 3308 position: relative; 3309 margin-top: 24px; 3310} 3311 3312.flourish-carousel-dots { 3313 display: flex; 3314 gap: 10px; 3315} 3316 3317.flourish-carousel-dot { 3318 width: 10px; 3319 height: 10px; 3320 border-radius: 50%; 3321 border: none; 3322 background: rgba(7, 6, 76, 0.2); 3323 padding: 0; 3324 cursor: pointer; 3325 transition: background 0.2s ease, transform 0.2s ease; 3326} 3327 3328.flourish-carousel-dot.is-active { 3329 background: #07064C; 3330 transform: scale(1.2); 3331} 3332 3333.flourish-carousel-arrows { 3334 position: absolute; 3335 right: 0; 3336 display: flex; 3337 gap: 12px; 3338} 3339 3340.flourish-carousel-arrow { 3341 display: flex; 3342 align-items: center; 3343 justify-content: center; 3344 width: 36px; 3345 height: 36px; 3346 border-radius: 50%; 3347 border: none; 3348 background: transparent; 3349 color: #07064C; 3350 cursor: pointer; 3351 transition: opacity 0.2s ease; 3352} 3353 3354.flourish-carousel-arrow:hover:not(:disabled) { 3355 opacity: 0.6; 3356} 3357 3358.flourish-carousel-arrow:disabled { 3359 opacity: 0.3; 3360 cursor: default; 3361} 3362 3363@media (max-width: 640px) { 3364 .flourish-carousel-controls { 3365 flex-direction: column; 3366 gap: 16px; 3367 } 3368 .flourish-carousel-arrows { 3369 position: static; 3370 } 3371} 3372</style> 3373
3374<script> 3375(function () { 3376 3377 class FlourishCarousel { 3378 constructor(rootEl) { 3379 this.root = rootEl; 3380 this.currentIndex = 0; 3381 3382 this._isDragging = false; 3383 this._dragStartX = 0; 3384 this._trackOffset = 0; 3385 3386 this.viewport = rootEl.querySelector('.flourish-carousel-viewport'); 3387 this.track = rootEl.querySelector('.flourish-carousel-track'); 3388 this.slides = Array.from(rootEl.querySelectorAll('.flourish-slide')); 3389 this.dotsContainer = rootEl.querySelector('.flourish-carousel-dots'); 3390 this.prevBtn = rootEl.querySelector('.flourish-carousel-prev'); 3391 this.nextBtn = rootEl.querySelector('.flourish-carousel-next'); 3392 3393 this.init(); 3394 } 3395 3396 init() { 3397 this.buildDots(); 3398 this.bindEvents(); 3399 this._observeHeights(); 3400 this.goTo(0); 3401 } 3402 3403 // Flourish charts resize their iframe height asynchronously once the 3404 // graphic finishes loading, so watch each slide and keep the viewport 3405 // matched to whichever one is currently active (rather than letting 3406 // the flex row stretch to fit the tallest of the three). 3407 _observeHeights() { 3408 this._resizeObserver = new ResizeObserver(() => { 3409 this.updateHeight(); 3410 });
3411 this.slides.forEach(slide => this._resizeObserver.observe(slide)); 3412 } 3413 3414 updateHeight() { 3415 const activeSlide = this.slides[this.currentIndex]; 3416 if (!activeSlide) return; 3417 this.viewport.style.height = activeSlide.offsetHeight + 'px'; 3418 } 3419 3420 buildDots() { 3421 this.dotsContainer.innerHTML = ''; 3422 this.slides.forEach((_, i) => { 3423 const btn = document.createElement('button'); 3424 btn.className = 'flourish-carousel-dot' + (i === 0 ? ' is-active' : ''); 3425 btn.setAttribute('aria-label', `Go to slide ${i + 1}`); 3426 btn.addEventListener('click', () => this.goTo(i)); 3427 this.dotsContainer.appendChild(btn); 3428 }); 3429 } 3430 3431 goTo(index) { 3432 const maxIndex = this.slides.length - 1; 3433 this.currentIndex = Math.max(0, Math.min(index, maxIndex)); 3434 3435 const slideWidth = this.viewport.offsetWidth; 3436 const offset = -(this.currentIndex * slideWidth); 3437 this.track.style.transform = `translateX(${offset}px)`; 3438 this._trackOffset = offset; 3439 3440 this.dotsContainer.querySelectorAll('.flourish-carousel-dot').forEach((dot, i) => { 3441 dot.classList.toggle('is-active', i === this.currentIndex); 3442 }); 3443 3444 if (this.prevBtn) this.prevBtn.disabled = this.currentIndex === 0; 3445 if (this.nextBtn) this.nextBtn.disabled = this.currentIndex >= maxIndex; 3446 3447 this.updateHeight(); 3448 } 3449 3450 bindEvents() { 3451 if (this.prevBtn) this.prevBtn.addEventListener('click', () => this.goTo(this.currentIndex - 1)); 3452 if (this.nextBtn) this.nextBtn.addEventListener('click', () => this.goTo(this.currentIndex + 1)); 3453 3454 this.track.addEventListener('pointerdown', this._onDragStart.bind(this)); 3455 window.addEventListener('pointermove', this._onDragMove.bind(this)); 3456 window.addEventListener('pointerup', this._onDragEnd.bind(this)); 3457 3458 this.viewport.setAttribute('tabindex', '0'); 3459 this.viewport.addEventListener('keydown', (e) => { 3460 if (e.key === 'ArrowLeft') this.goTo(this.currentIndex - 1); 3461 if (e.key === 'ArrowRight') this.goTo(this.currentIndex + 1); 3462 }); 3463 3464 let resizeTimer; 3465 window.addEventListener('resize', () => { 3466 clearTimeout(resizeTimer); 3467 resizeTimer = setTimeout(() => this.goTo(this.currentIndex), 150); 3468 }); 3469 } 3470 3471 _onDragStart(e) { 3472 if (e.button !== 0 && e.pointerType === 'mouse') return; 3473 this._isDragging = false; 3474 this._dragStartX = e.clientX; 3475 this.track.classList.add('is-dragging'); 3476 this.track.setPointerCapture(e.pointerId); 3477 } 3478 3479 _onDragMove(e) { 3480 if (!this.track.classList.contains('is-dragging')) return; 3481 const delta = e.clientX - this._dragStartX; 3482 if (Math.abs(delta) > 5) this._isDragging = true; 3483 this.track.style.transform = `translateX(${this._trackOffset + delta}px)`; 3484 } 3485 3486 _onDragEnd(e) { 3487 if (!this.track.classList.contains('is-dragging')) return; 3488 this.track.classList.remove('is-dragging'); 3489 3490 const delta = e.clientX - this._dragStartX; 3491 const threshold = 60; 3492 3493 if (delta < -threshold) this.goTo(this.currentIndex + 1); 3494 else if (delta > threshold) this.goTo(this.currentIndex - 1); 3495 else this.goTo(this.currentIndex); 3496 3497 setTimeout(() => { this._isDragging = false; }, 50); 3498 } 3499 } 3500 3501 document.addEventListener('DOMContentLoaded', () => { 3502 document.querySelectorAll('.flourish-carousel-section:not([data-carousel-init])').forEach(el => { 3503 el.setAttribute('data-carousel-init', 'true'); 3504 new FlourishCarousel(el); 3505 }); 3506 }); 3507 3508})(); 3509</script>
3509 3510 3511 3512 3513 3514 3515</div> 3516 3517<style class="transform-vars"> 3518 .fe-block-78cf2f625365f917af68 { 3519 --opacity: 100%; 3520 --translate-x: 0px; 3521 --translate-y: 0px; 3522 --rotation: 0deg; 3523 --scale-x: 100%; 3524 --scale-y: 100%; 3525 --skew-x: 0deg; 3526 --skew-y: 0deg; 3527 --origin-x: 50%; 3528 --origin-y: 50%; 3529 --block-transform: none; 3530 3531 opacity: var(--opacity, 1); 3532 transform: var(--block-transform); 3533 transform-origin: var(--origin-x) var(--origin-y); 3534 } 3535 </style><style class="transform-overrides-vars"> 3536 3537</style> 3538 3539</div></div></div></div></div> 3540 </div> 3541 3542 </div> 3543 3544</section> 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566<section 3567 data-test="page-section" 3568 3569 data-section-theme="" 3570 class='page-section 3571 3572 full-bleed-section 3573 layout-engine-section 3574 3575 background-width--full-bleed 3576 3577 section-height--medium 3578 3579 3580 content-width--wide 3581 3582 horizontal-alignment--center 3583 vertical-alignment--middle 3584 3585 3586 3587 3588 ' 3589 3590 data-section-id="6a0bbb4a2a794a7b518f6374" 3591 3592 data-controller="SectionWrapperController" 3593 data-current-styles="{ 3594 "imageOverlayOpacity": 0.15, 3595 "backgroundWidth": "background-width--full-bleed", 3596 "sectionHeight": "section-height--medium", 3597 "customSectionHeight": 10, 3598 "horizontalAlignment": "horizontal-alignment--center", 3599 "verticalAlignment": "vertical-alignment--middle", 3600 "contentWidth": "content-width--wide", 3601 "customContentWidth": 50, 3602 "sectionTheme": "", 3603 "sectionAnimation": "none", 3604 "backgroundMode": "image" 3605 }" 3606 data-current-context="{ 3607 "video": null, 3608 "backgroundImageId": null, 3609 "backgroundMediaEffect": null, 3610 "divider": null, 3611 "typeName": "page" 3612 }" 3613 data-animation="none" 3614 data-fluid-engine-section 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 data-sqsp-section="fluid-engine" 3626 3627 3628> 3629 <div 3630 class="section-border" 3631 3632 > 3633 <div class="section-background"> 3634 3635 3636 3637 </div> 3638 </div> 3639 <div 3640 class='content-wrapper' 3641 style=' 3642 3643 3644 3645 ' 3646 > 3647 <div 3648 class="content" 3649 3650 > 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 <div data-fluid-engine="true"><style> 3662 3663.fe-6a0bbb4a0490f956768c0259 { 3664 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 3665 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 3666 3667 display: grid; 3668 position: relative; 3669 grid-area: 1/1/-1/-1; 3670 grid-template-rows: repeat(8,minmax(24px, auto)); 3671 grid-template-columns: 3672 minmax(var(--grid-gutter), 1fr) 3673 repeat(8, minmax(0, var(--cell-max-width))) 3674 minmax(var(--grid-gutter), 1fr); 3675 row-gap: 11.0px; 3676 column-gap: 11.0px; 3677 overflow-x: hidden; 3678 overflow-x: clip; 3679} 3680 3681@media (min-width: 768px) { 3682 .background-width--inset .fe-6a0bbb4a0490f956768c0259 { 3683 --inset-padding: calc(var(--sqs-site-gutter) * 2); 3684 } 3685 3686 .fe-6a0bbb4a0490f956768c0259 { 3687 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 3688 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 3689 --inset-padding: 0vw; 3690 3691 --row-height-scaling-factor: 0.0215; 3692 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 3693 3694 grid-template-rows: repeat(4,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 3695 grid-template-columns: 3696 minmax(var(--grid-gutter), 1fr) 3697 repeat(24, minmax(0, var(--cell-max-width))) 3698 minmax(var(--grid-gutter), 1fr); 3699 } 3700} 3701 3702 3703 .fe-block-yui_3_17_2_1_1779153835622_964 { 3704 grid-area: 1/2/3/10; 3705 z-index: 2; 3706 3707 @media (max-width: 767px) { 3708 3709 3710 3711 3712 } 3713 } 3714 3715 .fe-block-yui_3_17_2_1_1779153835622_964 .sqs-block { 3716 justify-content: flex-start; 3717 } 3718 3719 .fe-block-yui_3_17_2_1_1779153835622_964 .sqs-block-alignment-wrapper {
3720 align-items: flex-start; 3721 } 3722 3723 @media (min-width: 768px) { 3724 .fe-block-yui_3_17_2_1_1779153835622_964 { 3725 grid-area: 1/2/3/26; 3726 z-index: 2; 3727 3728 3729 3730 3731 3732 3733 } 3734 3735 .fe-block-yui_3_17_2_1_1779153835622_964 .sqs-block { 3736 justify-content: flex-start; 3737 } 3738 3739 .fe-block-yui_3_17_2_1_1779153835622_964 .sqs-block-alignment-wrapper { 3740 align-items: flex-start; 3741 } 3742 } 3743 3744 .fe-block-yui_3_17_2_1_1779153729707_796 { 3745 grid-area: 3/2/9/10; 3746 z-index: 1; 3747 3748 @media (max-width: 767px) { 3749 3750 3751 3752 3753 } 3754 } 3755 3756 .fe-block-yui_3_17_2_1_1779153729707_796 .sqs-block { 3757 justify-content: flex-start; 3758 } 3759 3760 .fe-block-yui_3_17_2_1_1779153729707_796 .sqs-block-alignment-wrapper { 3761 align-items: flex-start; 3762 } 3763 3764 @media (min-width: 768px) { 3765 .fe-block-yui_3_17_2_1_1779153729707_796 { 3766 grid-area: 3/1/5/27; 3767 z-index: 1; 3768 3769 3770 3771 3772 3773 3774 } 3775 3776 .fe-block-yui_3_17_2_1_1779153729707_796 .sqs-block { 3777 justify-content: flex-start; 3778 } 3779 3780 .fe-block-yui_3_17_2_1_1779153729707_796 .sqs-block-alignment-wrapper { 3781 align-items: flex-start; 3782 } 3783 } 3784 3785</style><div class="fluid-engine fe-6a0bbb4a0490f956768c0259"><div class="fe-block fe-block-yui_3_17_2_1_1779153835622_964"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="yui_3_17_2_1_1779153835622_964" id="block-yui_3_17_2_1_1779153835622_964"><div class="sqs-block-content"><div class="sqs-text-block-container"> 3786 3787 <div class="sqs-html-content" data-sqsp-text-block-content><h2 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Latest News</h2></div> 3788 3789 3790 3791<style id="container-styles">#block-yui_3_17_2_1_1779153835622_964 { 3792 3793 --stroke-style: none;--stroke-thickness: 2px; 3794 3795 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 3796; 3797 3798 3799 3800 3801 3802 3803 3804 } 3805 3806 #block-yui_3_17_2_1_1779153835622_964 .sqs-html-content { 3807 3808 --tweak-text-block-padding: 6% 6% 6% 6%; 3809 --tweak-text-block-padding: initial; 3810} 3811 3812 .fe-block-yui_3_17_2_1_1779153835622_964 { 3813 mix-blend-mode: var(--tweak-text-block-blend 3814 ); 3815 border-radius: var(--tweak-text-block-radius); 3816 } 3817 3818 3819 3820.fe-block-yui_3_17_2_1_1779153835622_964 { 3821 --tweak-text-block-radius: 0px 0px 0px 0px; 3822 } 3823 3824 3825 3826 .fe-block-yui_3_17_2_1_1779153835622_964 { 3827 --tweak-text-block-blend 3828 : normal; 3829 } 3830 3831 3832 .fe-block-yui_3_17_2_1_1779153835622_964 { 3833 --blur-value: blur(15px);} 3834 3835</style> 3836 3837<style id="override-container-styles"> 3838 @media screen and (max-width: 767px) { 3839 3840 3841 3842#block-yui_3_17_2_1_1779153835622_964 { 3843 3844 } 3845 } 3846 3847 3848 @media screen and (max-width: 767px) { 3849 #block-yui_3_17_2_1_1779153835622_964 .sqs-html-content { 3850 3851 } 3852 } 3853 3854 @media screen and (max-width: 767px) { 3855 3856 3857 3858 3859 3860 3861 }</style> 3862<style class="transform-vars"> 3863 .fe-block-yui_3_17_2_1_1779153835622_964 { 3864 --opacity: 100%; 3865 --translate-x: 0px; 3866 --translate-y: 0px; 3867 --rotation: 0deg; 3868 --scale-x: 100%; 3869 --scale-y: 100%; 3870 --skew-x: 0deg; 3871 --skew-y: 0deg; 3872 --origin-x: 50%; 3873 --origin-y: 50%; 3874 --block-transform: none; 3875 3876 opacity: var(--opacity, 1); 3877 transform: var(--block-transform); 3878 transform-origin: var(--origin-x) var(--origin-y); 3879 } 3880 </style><style class="transform-overrides-vars"> 3881 3882</style> 3883 3884 3885 3886 3887</div> 3888</div></div></div><div class="fe-block fe-block-yui_3_17_2_1_1779153729707_796"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-code code-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.c
3888ode/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.visitor.js"]" data-block-type="1337" data-definition-name="website.components.code" data-sqsp-block="code" data-website-component-id="yui_3_17_2_1_1779153729707_796" id="block-yui_3_17_2_1_1779153729707_796"><div class="sqs-block-content"> 3889 3890 3891<div 3892 class="sqs-code-container" 3893 3894 3895 data-localized="{"enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","scriptDisabled":"Script Disabled"}" 3896 3897 3898 3899 3900> 3901 3902 <!-- ============================================ 3903 News Carousel 3904 - Fetches from /news?format=json 3905 - 3 cards visible + sneak peek of 4th on right 3906 - Dot pagination at bottom 3907 - Drag / swipe + keyboard support 3908 - Responsive: 2 cols â¤1024px, 1 col â¤640px 3909 ============================================ --> 3910 3911<!-- News Carousel Section --> 3912<!-- Change data-news-url to the Squarespace collection URL slug for this section --> 3913<div class="news-carousel-section" data-news-url="/news"> 3914 <div class="news-carousel-viewport"> 3915 <div class="news-carousel-track"> 3916 <!-- Cards injected by JS --> 3917 </div> 3918 </div> 3919 3920 <!-- Controls: dots centred + prev/next arrows pinned to right gutter --> 3921 <div class="news-carousel-controls"> 3922 <div class="news-carousel-dots"></div> 3923 <div class="news-carousel-arrows"> 3924 <button class="news-carousel-arrow news-carousel-prev" aria-label="Previous slide"> 3925 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 3926 <path d="M1 6.5L6 1.5M1 6.5L6 11.5M1 6.5H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3927 </svg> 3928 </button> 3929 <button class="news-carousel-arrow news-carousel-next" aria-label="Next slide"> 3930 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 3931 <path d="M19 6.5L14 1.5M19 6.5L14 11.5M19 6.5H1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 3932 </svg> 3933 </button> 3934 </div> 3935 </div> 3936 3937 <div class="news-carousel-no-results" style="display:none;"> 3938 No recent articles available. 3939 </div> 3940</div> 3941 3942
3943<script> 3944(function () { 3945 3946 class NewsCarousel { 3947 constructor(rootEl) { 3948 this.root = rootEl; 3949 this.newsData = []; 3950 this.currentIndex = 0; 3951 this.visibleCols = 3; 3952 this.gap = 24; 3953 3954 this._isDragging = false; 3955 this._dragStartX = 0; 3956 this._trackOffset = 0; 3957 3958 this.viewport = rootEl.querySelector('.news-carousel-viewport'); 3959 this.track = rootEl.querySelector('.news-carousel-track'); 3960 this.dotsContainer = rootEl.querySelector('.news-carousel-dots'); 3961 this.noResultsMsg = rootEl.querySelector('.news-carousel-no-results'); 3962 this.prevBtn = rootEl.querySelector('.news-carousel-prev'); 3963 this.nextBtn = rootEl.querySelector('.news-carousel-next'); 3964 this.newsUrl = rootEl.dataset.newsUrl || '/news'; 3965 3966 this.currentArticleSlug = null; 3967 3968 this.init(); 3969 } 3970 3971 // -------------------------------------------------- 3972 // Init 3973 // -------------------------------------------------- 3974 3975 async init() { 3976 try { 3977 this.resolveCurrentSlug(); 3978 this.updateLayout(); 3979 await this.fetchNews(); 3980 this.render(); 3981 this.bindEvents(); 3982 } catch (err) { 3983 console.error('NewsCarousel init failed:', err); 3984 this.showNoResults('Failed to load articles.'); 3985 } 3986 } 3987 3988 resolveCurrentSlug() { 3989 const parts = window.location.pathname.split('/').filter(Boolean); 3990 this.currentArticleSlug = parts[parts.length - 1] || null; 3991 } 3992 3993 // -------------------------------------------------- 3994 // Layout helpers (responsive) 3995 // -------------------------------------------------- 3996 3997 updateLayout() { 3998 const w = window.innerWidth; 3999 if (w <= 640) this.visibleCols = 1; 4000 else if (w <= 1024) this.visibleCols = 2; 4001 else this.visibleCols = 3; 4002 } 4003 4004 // -------------------------------------------------- 4005 // Data fetching 4006 // -------------------------------------------------- 4007 4008 async fetchNews() { 4009 const url = `${this.newsUrl}?format=json&_=${Date.now()}`; 4010 const res = await fetch(url); 4011 if (!res.ok) throw new Error(`HTTP ${res.status}`); 4012 const data = await res.json(); 4013 4014 let items = []; 4015 if (data.items?.length) items = data.items; 4016 else if (data.collection?.items?.length) items = data.collection.items; 4017 4018 this.newsData = items 4019 .map(a => ({ 4020 id: a.id, 4021 title: a.title, 4022 fullUrl: a.fullUrl, 4023 assetUrl: a.assetUrl, 4024 publishOn: a.publishOn, 4025 addedOn: a.addedOn, 4026 tags: a.tags || [], 4027 categories:a.categories || [], 4028 urlId: a.urlId, 4029 })) 4030 .filter(a => { 4031 const slug = a.fullUrl 4032 ? a.fullUrl.split('/').filter(Boolean).pop() 4033 : a.urlId; 4034 return slug !== this.currentArticleSlug; 4035 }) 4036 .sort((a, b) => 4037 new Date(b.publishOn || b.addedOn) - new Date(a.publishOn || a.addedOn) 4038 ) 4039 .slice(0, 12); 4040 } 4041 4042 // -------------------------------------------------- 4043 // Render 4044 // -------------------------------------------------- 4045 4046 render() { 4047 this.track.innerHTML = ''; 4048 4049 if (!this.newsData.length) { 4050 this.showNoResults(); 4051 return; 4052 } 4053 4054 this.newsData.forEach(a => { 4055 const card = this._buildCard(a); 4056 this.track.appendChild(card); 4057 }); 4058 4059 this._buildDots(); 4060 this.goTo(0); 4061 } 4062 4063 _buildDots() { 4064 this.dotsContainer.innerHTML = ''; 4065 4066 const dotCount = Math.max(1, this.newsData.length - this.visibleCols + 1); 4067 4068 for (let i = 0; i < dotCount; i++) { 4069 const btn = document.createElement('button'); 4070 btn.className = 'news-carousel-dot' + (i === 0 ? ' is-active' : ''); 4071 btn.setAttribute('aria-label', `Go to slide ${i + 1}`); 4072 btn.addEventListener('click', () => this.goTo(i)); 4073 this.dotsContainer.appendChild(btn); 4074 } 4075 } 4076 4077 _buildCard(article) { 4078 const el = document.createElement('div'); 4079 const placeholder = this._isPlaceholder(article.assetUrl); 4080 const tag = article.tags[0] || article.categories[0] || null; 4081 const dateStr = this._formatDate(article.publishOn || article.addedOn); 4082 4083 el.className = 'news-card' + (placeholder ? ' has-placeholder-image' : '');
4084 el.dataset.newsId = article.id; 4085 4086 const imgHTML = placeholder 4087 ? `<div class="news-image-placeholder"> 4088 <img src="https://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a32010847c0946850884686/1781661960038/Logo.png" 4089 alt="" 4090 aria-hidden="true" 4091 class="news-placeholder-logo"> 4092 </div>` 4093 : `<img src="${article.assetUrl}" alt="${article.title}" loading="lazy">`; 4094 4095 el.innerHTML = ` 4096 <div class="news-image"> 4097 ${imgHTML} 4098 ${tag ? `<div class="news-tag">${tag}</div>` : ''} 4099 </div> 4100 <div class="news-content"> 4101 <div class="news-date">${dateStr}</div> 4102 <h3 class="news-title">${article.title}</h3> 4103 <a href="${article.fullUrl}" class="news-link" onclick="event.stopPropagation()"> 4104 Read more 4105 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 4106 <path d="M19 6.85498L14 1.85498M19 6.85498L14 11.855M19 6.85498H1" stroke="#07064C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4107 </svg> 4108 </a> 4109 </div> 4110 `; 4111 4112 el.addEventListener('click', (e) => { 4113 if (!e.target.closest('.news-link') && !this._isDragging) { 4114 window.location.href = article.fullUrl; 4115 } 4116 }); 4117 4118 return el; 4119 } 4120 4121 // -------------------------------------------------- 4122 // Navigation 4123 // -------------------------------------------------- 4124 4125 goTo(index) { 4126 const maxIndex = Math.max(0, this.newsData.length - this.visibleCols); 4127 this.currentIndex = Math.max(0, Math.min(index, maxIndex)); 4128 4129 const firstCard = this.track.querySelector('.news-card'); 4130 const cardWidth = firstCard ? firstCard.offsetWidth : 0; 4131 const offset = -(this.currentIndex * (cardWidth + this.gap)); 4132 this.track.style.transform = `translateX(${offset}px)`; 4133 this._trackOffset = offset; 4134 4135 this.dotsContainer.querySelectorAll('.news-carousel-dot').forEach((dot, i) => { 4136 dot.classList.toggle('is-active', i === this.currentIndex); 4137 }); 4138 4139 if (this.prevBtn) this.prevBtn.disabled = this.currentIndex === 0; 4140 if (this.nextBtn) this.nextBtn.disabled = this.currentIndex >= maxIndex; 4141 } 4142 4143 // -------------------------------------------------- 4144 // Events 4145 // -------------------------------------------------- 4146 4147 bindEvents() { 4148 if (this.prevBtn) this.prevBtn.addEventListener('click', () => this.goTo(this.currentIndex - 1)); 4149 if (this.nextBtn) this.nextBtn.addEventListener('click', () => this.goTo(this.currentIndex + 1)); 4150 4151 this.track.addEventListener('pointerdown', this._onDragStart.bind(this)); 4152 window.addEventListener('pointermove', this._onDragMove.bind(this)); 4153 window.addEventListener('pointerup', this._onDragEnd.bind(this)); 4154 4155 this.viewport.setAttribute('tabindex', '0'); 4156 this.viewport.addEventListener('keydown', (e) => { 4157 if (e.key === 'ArrowLeft') this.goTo(this.currentIndex - 1); 4158 if (e.key === 'ArrowRight') this.goTo(this.currentIndex + 1); 4159 }); 4160 4161 let resizeTimer; 4162 window.addEventListener('resize', () => { 4163 clearTimeout(resizeTimer); 4164 resizeTimer = setTimeout(() => { 4165 this.updateLayout(); 4166 this._buildDots(); 4167 this.goTo(this.currentIndex); 4168 }, 150); 4169 }); 4170 } 4171 4172 _onDragStart(e) { 4173 if (e.target.closest('a, button, input, textarea, select')) { 4174 return; 4175} 4176 if (e.button !== 0 && e.pointerType === 'mouse') return; 4177 this._isDragging = false;
4178 this._dragStartX = e.clientX; 4179 this.track.classList.add('is-dragging'); 4180 this.track.setPointerCapture(e.pointerId); 4181 } 4182 4183 _onDragMove(e) { 4184 if (!this.track.classList.contains('is-dragging')) return; 4185 const delta = e.clientX - this._dragStartX; 4186 if (Math.abs(delta) > 5) this._isDragging = true; 4187 this.track.style.transform = `translateX(${this._trackOffset + delta}px)`; 4188 } 4189 4190 _onDragEnd(e) { 4191 if (!this.track.classList.contains('is-dragging')) return; 4192 this.track.classList.remove('is-dragging'); 4193 4194 const delta = e.clientX - this._dragStartX; 4195 const threshold = 60; 4196 4197 if (delta < -threshold) this.goTo(this.currentIndex + 1); 4198 else if (delta > threshold) this.goTo(this.currentIndex - 1); 4199 else this.goTo(this.currentIndex); 4200 4201 setTimeout(() => { this._isDragging = false; }, 50); 4202 } 4203 4204 // -------------------------------------------------- 4205 // Utilities 4206 // -------------------------------------------------- 4207 4208 _formatDate(ts) { 4209 return new Date(ts).toLocaleDateString('en-GB', { 4210 day: 'numeric', month: 'short', year: 'numeric' 4211 }); 4212 } 4213 4214 _isPlaceholder(url) { 4215 return !url || url.endsWith('/'); 4216 } 4217 4218 showNoResults(msg = 'No recent articles available.') { 4219 this.noResultsMsg.textContent = msg; 4220 this.noResultsMsg.style.display = 'block'; 4221 } 4222 } 4223 4224 document.addEventListener('DOMContentLoaded', () => { 4225 document.querySelectorAll('.news-carousel-section:not([data-carousel-init])').forEach(el => { 4226 el.setAttribute('data-carousel-init', 'true'); 4227 new NewsCarousel(el); 4228 }); 4229 }); 4230 4231})(); 4232</script>
4232 4233 4234 4235 4236 4237 4238</div> 4239 4240<style class="transform-vars"> 4241 .fe-block-yui_3_17_2_1_1779153729707_796 { 4242 --opacity: 100%; 4243 --translate-x: 0px; 4244 --translate-y: 0px; 4245 --rotation: 0deg; 4246 --scale-x: 100%; 4247 --scale-y: 100%; 4248 --skew-x: 0deg; 4249 --skew-y: 0deg; 4250 --origin-x: 50%; 4251 --origin-y: 50%; 4252 --block-transform: none; 4253 4254 opacity: var(--opacity, 1); 4255 transform: var(--block-transform); 4256 transform-origin: var(--origin-x) var(--origin-y); 4257 } 4258 </style><style class="transform-overrides-vars"> 4259 4260</style> 4261 4262</div></div></div></div></div> 4263 </div> 4264 4265 </div> 4266 4267</section> 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289<section 4290 data-test="page-section" 4291 4292 data-section-theme="light" 4293 class='page-section 4294 4295 full-bleed-section 4296 layout-engine-section 4297 4298 background-width--full-bleed 4299 4300 section-height--small 4301 4302 4303 content-width--wide 4304 4305 horizontal-alignment--center 4306 vertical-alignment--middle 4307 4308 4309 4310 4311 light' 4312 4313 data-section-id="6a0bdb8b0490f9567697221a" 4314 4315 data-controller="SectionWrapperController" 4316 data-current-styles="{ 4317 "imageOverlayOpacity": 0.15, 4318 "backgroundWidth": "background-width--full-bleed", 4319 "sectionHeight": "section-height--small", 4320 "customSectionHeight": 1, 4321 "horizontalAlignment": "horizontal-alignment--center", 4322 "verticalAlignment": "vertical-alignment--middle", 4323 "contentWidth": "content-width--wide", 4324 "customContentWidth": 50, 4325 "sectionTheme": "light", 4326 "sectionAnimation": "none", 4327 "backgroundMode": "image" 4328 }" 4329 data-current-context="{ 4330 "video": { 4331 "playbackSpeed": 1, 4332 "filter": 1, 4333 "filterStrength": 0, 4334 "zoom": 0, 4335 "videoSourceProvider": "none" 4336 }, 4337 "backgroundImageId": null, 4338 "backgroundMediaEffect": { 4339 "type": "none" 4340 }, 4341 "divider": { 4342 "enabled": false 4343 }, 4344 "typeName": "page" 4345 }" 4346 data-animation="none" 4347 data-fluid-engine-section 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 data-sqsp-section="fluid-engine" 4359 4360 4361> 4362 <div 4363 class="section-border" 4364 4365 > 4366 <div class="section-background"> 4367 4368 4369 4370 </div> 4371 </div> 4372 <div 4373 class='content-wrapper' 4374 style=' 4375 4376 4377 4378 ' 4379 > 4380 <div 4381 class="content" 4382 4383 > 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 <div data-fluid-engine="true"><style> 4395 4396.fe-6a0bdb8b0490f95676972219 { 4397 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 4398 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 4399 4400 display: grid; 4401 position: relative; 4402 grid-area: 1/1/-1/-1; 4403 grid-template-rows: repeat(8,minmax(24px, auto)); 4404 grid-template-columns: 4405 minmax(var(--grid-gutter), 1fr) 4406 repeat(8, minmax(0, var(--cell-max-width))) 4407 minmax(var(--grid-gutter), 1fr); 4408 row-gap: 11.0px; 4409 column-gap: 11.0px; 4410 overflow-x: hidden; 4411 overflow-x: clip; 4412} 4413 4414@media (min-width: 768px) { 4415 .background-width--inset .fe-6a0bdb8b0490f95676972219 { 4416 --inset-padding: calc(var(--sqs-site-gutter) * 2); 4417 } 4418 4419 .fe-6a0bdb8b0490f95676972219 { 4420 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 4421 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 4422 --inset-padding: 0vw; 4423 4424 --row-height-scaling-factor: 0.0215; 4425 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 4426 4427 grid-template-rows: repeat(3,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 4428 grid-template-columns: 4429 minmax(var(--grid-gutter), 1fr) 4430 repeat(24, minmax(0, var(--cell-max-width))) 4431 minmax(var(--grid-gutter), 1fr); 4432 } 4433} 4434 4435 4436 .fe-block-30e31489521139332881 { 4437 grid-area: 1/2/3/10; 4438 z-index: 2; 4439 4440 @media (max-width: 767px) { 4441 4442 4443 4444 4445 } 4446 } 4447 4448 .fe-block-30e31489521139332881 .sqs-block { 4449 justify-content: flex-start; 4450 } 4451 4452 .fe-block-30e31489521139332881 .sqs-block-alignment-wrapper {
4453 align-items: flex-start; 4454 } 4455 4456 @media (min-width: 768px) { 4457 .fe-block-30e31489521139332881 { 4458 grid-area: 1/2/3/26; 4459 z-index: 2; 4460 4461 4462 4463 4464 4465 4466 } 4467 4468 .fe-block-30e31489521139332881 .sqs-block { 4469 justify-content: flex-start; 4470 } 4471 4472 .fe-block-30e31489521139332881 .sqs-block-alignment-wrapper { 4473 align-items: flex-start; 4474 } 4475 } 4476 4477 .fe-block-6f8df78e10e23f9fd3a4 { 4478 grid-area: 3/2/9/10; 4479 z-index: 1; 4480 4481 @media (max-width: 767px) { 4482 4483 4484 4485 4486 } 4487 } 4488 4489 .fe-block-6f8df78e10e23f9fd3a4 .sqs-block { 4490 justify-content: flex-start; 4491 } 4492 4493 .fe-block-6f8df78e10e23f9fd3a4 .sqs-block-alignment-wrapper { 4494 align-items: flex-start; 4495 } 4496 4497 @media (min-width: 768px) { 4498 .fe-block-6f8df78e10e23f9fd3a4 { 4499 grid-area: 3/1/4/27; 4500 z-index: 1; 4501 4502 4503 4504 4505 4506 4507 } 4508 4509 .fe-block-6f8df78e10e23f9fd3a4 .sqs-block { 4510 justify-content: flex-start; 4511 } 4512 4513 .fe-block-6f8df78e10e23f9fd3a4 .sqs-block-alignment-wrapper { 4514 align-items: flex-start; 4515 } 4516 } 4517 4518</style><div class="fluid-engine fe-6a0bdb8b0490f95676972219"><div class="fe-block fe-block-30e31489521139332881"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="30e31489521139332881" id="block-30e31489521139332881"><div class="sqs-block-content"><div class="sqs-text-block-container"> 4519 4520 <div class="sqs-html-content" data-sqsp-text-block-content><h2 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Latest Research</h2></div> 4521 4522 4523 4524<style id="container-styles">#block-30e31489521139332881 { 4525 4526 --stroke-style: none;--stroke-thickness: 2px; 4527 4528 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 4529; 4530 4531 4532 4533 4534 4535 4536 4537 } 4538 4539 #block-30e31489521139332881 .sqs-html-content { 4540 4541 --tweak-text-block-padding: 6% 6% 6% 6%; 4542 --tweak-text-block-padding: initial; 4543} 4544 4545 .fe-block-30e31489521139332881 { 4546 mix-blend-mode: var(--tweak-text-block-blend 4547 ); 4548 border-radius: var(--tweak-text-block-radius); 4549 } 4550 4551 4552 4553.fe-block-30e31489521139332881 { 4554 --tweak-text-block-radius: 0px 0px 0px 0px; 4555 } 4556 4557 4558 4559 .fe-block-30e31489521139332881 { 4560 --tweak-text-block-blend 4561 : normal; 4562 } 4563 4564 4565 .fe-block-30e31489521139332881 { 4566 --blur-value: blur(15px);} 4567 4568</style> 4569 4570<style id="override-container-styles"> 4571 @media screen and (max-width: 767px) { 4572 4573 4574 4575#block-30e31489521139332881 { 4576 4577 } 4578 } 4579 4580 4581 @media screen and (max-width: 767px) { 4582 #block-30e31489521139332881 .sqs-html-content { 4583 4584 } 4585 } 4586 4587 @media screen and (max-width: 767px) { 4588 4589 4590 4591 4592 4593 4594 }</style> 4595<style class="transform-vars"> 4596 .fe-block-30e31489521139332881 { 4597 --opacity: 100%; 4598 --translate-x: 0px; 4599 --translate-y: 0px; 4600 --rotation: 0deg; 4601 --scale-x: 100%; 4602 --scale-y: 100%; 4603 --skew-x: 0deg; 4604 --skew-y: 0deg; 4605 --origin-x: 50%; 4606 --origin-y: 50%; 4607 --block-transform: none; 4608 4609 opacity: var(--opacity, 1); 4610 transform: var(--block-transform); 4611 transform-origin: var(--origin-x) var(--origin-y); 4612 } 4613 </style><style class="transform-overrides-vars"> 4614 4615</style> 4616 4617 4618 4619 4620</div> 4621</div></div></div><div class="fe-block fe-block-6f8df78e10e23f9fd3a4"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-code code-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.c
4621ode/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.visitor.js"]" data-block-type="1337" data-definition-name="website.components.code" data-sqsp-block="code" data-website-component-id="6f8df78e10e23f9fd3a4" id="block-6f8df78e10e23f9fd3a4"><div class="sqs-block-content"> 4622 4623 4624<div 4625 class="sqs-code-container" 4626 4627 4628 data-localized="{"enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","scriptDisabled":"Script Disabled"}" 4629 4630 4631 4632 4633> 4634 4635 <!-- ============================================ 4636 News Carousel 4637 - Fetches from /news?format=json 4638 - 3 cards visible + sneak peek of 4th on right 4639 - Dot pagination at bottom 4640 - Drag / swipe + keyboard support 4641 - Responsive: 2 cols â¤1024px, 1 col â¤640px 4642 ============================================ --> 4643 4644<!-- News Carousel Section --> 4645<!-- Change data-news-url to the Squarespace collection URL slug for this section --> 4646<div class="news-carousel-section" data-news-url="/research"> 4647 <div class="news-carousel-viewport"> 4648 <div class="news-carousel-track"> 4649 <!-- Cards injected by JS --> 4650 </div> 4651 </div> 4652 4653 <!-- Controls: dots centred + prev/next arrows pinned to right gutter --> 4654 <div class="news-carousel-controls"> 4655 <div class="news-carousel-dots"></div> 4656 <div class="news-carousel-arrows"> 4657 <button class="news-carousel-arrow news-carousel-prev" aria-label="Previous slide"> 4658 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 4659 <path d="M1 6.5L6 1.5M1 6.5L6 11.5M1 6.5H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4660 </svg> 4661 </button> 4662 <button class="news-carousel-arrow news-carousel-next" aria-label="Next slide"> 4663 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 4664 <path d="M19 6.5L14 1.5M19 6.5L14 11.5M19 6.5H1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4665 </svg> 4666 </button> 4667 </div> 4668 </div> 4669 4670 <div class="news-carousel-no-results" style="display:none;"> 4671 No recent articles available. 4672 </div> 4673</div> 4674 4675
4676<script> 4677(function () { 4678 4679 class NewsCarousel { 4680 constructor(rootEl) { 4681 this.root = rootEl; 4682 this.newsData = []; 4683 this.currentIndex = 0; 4684 this.visibleCols = 3; 4685 this.gap = 24; 4686 4687 this._isDragging = false; 4688 this._dragStartX = 0; 4689 this._trackOffset = 0; 4690 4691 this.viewport = rootEl.querySelector('.news-carousel-viewport'); 4692 this.track = rootEl.querySelector('.news-carousel-track'); 4693 this.dotsContainer = rootEl.querySelector('.news-carousel-dots'); 4694 this.noResultsMsg = rootEl.querySelector('.news-carousel-no-results'); 4695 this.prevBtn = rootEl.querySelector('.news-carousel-prev'); 4696 this.nextBtn = rootEl.querySelector('.news-carousel-next'); 4697 this.newsUrl = rootEl.dataset.newsUrl || '/news'; 4698 4699 this.currentArticleSlug = null; 4700 4701 this.init(); 4702 } 4703 4704 // -------------------------------------------------- 4705 // Init 4706 // -------------------------------------------------- 4707 4708 async init() { 4709 try { 4710 this.resolveCurrentSlug(); 4711 this.updateLayout(); 4712 await this.fetchNews(); 4713 this.render(); 4714 this.bindEvents(); 4715 } catch (err) { 4716 console.error('NewsCarousel init failed:', err); 4717 this.showNoResults('Failed to load articles.'); 4718 } 4719 } 4720 4721 resolveCurrentSlug() { 4722 const parts = window.location.pathname.split('/').filter(Boolean); 4723 this.currentArticleSlug = parts[parts.length - 1] || null; 4724 } 4725 4726 // -------------------------------------------------- 4727 // Layout helpers (responsive) 4728 // -------------------------------------------------- 4729 4730 updateLayout() { 4731 const w = window.innerWidth; 4732 if (w <= 640) this.visibleCols = 1; 4733 else if (w <= 1024) this.visibleCols = 2; 4734 else this.visibleCols = 3; 4735 } 4736 4737 // -------------------------------------------------- 4738 // Data fetching 4739 // -------------------------------------------------- 4740 4741 async fetchNews() { 4742 const url = `${this.newsUrl}?format=json&_=${Date.now()}`; 4743 const res = await fetch(url); 4744 if (!res.ok) throw new Error(`HTTP ${res.status}`); 4745 const data = await res.json(); 4746 4747 let items = []; 4748 if (data.items?.length) items = data.items; 4749 else if (data.collection?.items?.length) items = data.collection.items; 4750 4751 this.newsData = items 4752 .map(a => ({ 4753 id: a.id, 4754 title: a.title, 4755 fullUrl: a.fullUrl, 4756 assetUrl: a.assetUrl, 4757 publishOn: a.publishOn, 4758 addedOn: a.addedOn, 4759 tags: a.tags || [], 4760 categories:a.categories || [], 4761 urlId: a.urlId, 4762 })) 4763 .filter(a => { 4764 const slug = a.fullUrl 4765 ? a.fullUrl.split('/').filter(Boolean).pop() 4766 : a.urlId; 4767 return slug !== this.currentArticleSlug; 4768 }) 4769 .sort((a, b) => 4770 new Date(b.publishOn || b.addedOn) - new Date(a.publishOn || a.addedOn) 4771 ) 4772 .slice(0, 12); 4773 } 4774 4775 // -------------------------------------------------- 4776 // Render 4777 // -------------------------------------------------- 4778 4779 render() { 4780 this.track.innerHTML = ''; 4781 4782 if (!this.newsData.length) { 4783 this.showNoResults(); 4784 return; 4785 } 4786 4787 this.newsData.forEach(a => { 4788 const card = this._buildCard(a); 4789 this.track.appendChild(card); 4790 }); 4791 4792 this._buildDots(); 4793 this.goTo(0); 4794 } 4795 4796 _buildDots() { 4797 this.dotsContainer.innerHTML = ''; 4798 4799 const dotCount = Math.max(1, this.newsData.length - this.visibleCols + 1); 4800 4801 for (let i = 0; i < dotCount; i++) { 4802 const btn = document.createElement('button'); 4803 btn.className = 'news-carousel-dot' + (i === 0 ? ' is-active' : ''); 4804 btn.setAttribute('aria-label', `Go to slide ${i + 1}`); 4805 btn.addEventListener('click', () => this.goTo(i)); 4806 this.dotsContainer.appendChild(btn); 4807 } 4808 } 4809 4810 _buildCard(article) { 4811 const el = document.createElement('div'); 4812 const placeholder = this._isPlaceholder(article.assetUrl); 4813 const tag = article.tags[0] || article.categories[0] || null; 4814 const dateStr = this._formatDate(article.publishOn || article.addedOn); 4815 4816 el.className = 'news-card' + (placeholder ? ' has-placeholder-image' : '');
4817 el.dataset.newsId = article.id; 4818 4819 const imgHTML = placeholder 4820 ? `<div class="news-image-placeholder"> 4821 <img src="https://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a32010847c0946850884686/1781661960038/Logo.png" 4822 alt="" 4823 aria-hidden="true" 4824 class="news-placeholder-logo"> 4825 </div>` 4826 : `<img src="${article.assetUrl}" alt="${article.title}" loading="lazy">`; 4827 4828 el.innerHTML = ` 4829 <div class="news-image"> 4830 ${imgHTML} 4831 ${tag ? `<div class="news-tag">${tag}</div>` : ''} 4832 </div> 4833 <div class="news-content"> 4834 <div class="news-date">${dateStr}</div> 4835 <h3 class="news-title">${article.title}</h3> 4836 <a href="${article.fullUrl}" class="news-link" onclick="event.stopPropagation()"> 4837 Read more 4838 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 4839 <path d="M19 6.85498L14 1.85498M19 6.85498L14 11.855M19 6.85498H1" stroke="#07064C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4840 </svg> 4841 </a> 4842 </div> 4843 `; 4844 4845 el.addEventListener('click', (e) => { 4846 if (!e.target.closest('.news-link') && !this._isDragging) { 4847 window.location.href = article.fullUrl; 4848 } 4849 }); 4850 4851 return el; 4852 } 4853 4854 // -------------------------------------------------- 4855 // Navigation 4856 // -------------------------------------------------- 4857 4858 goTo(index) { 4859 const maxIndex = Math.max(0, this.newsData.length - this.visibleCols); 4860 this.currentIndex = Math.max(0, Math.min(index, maxIndex)); 4861 4862 const firstCard = this.track.querySelector('.news-card'); 4863 const cardWidth = firstCard ? firstCard.offsetWidth : 0; 4864 const offset = -(this.currentIndex * (cardWidth + this.gap)); 4865 this.track.style.transform = `translateX(${offset}px)`; 4866 this._trackOffset = offset; 4867 4868 this.dotsContainer.querySelectorAll('.news-carousel-dot').forEach((dot, i) => { 4869 dot.classList.toggle('is-active', i === this.currentIndex); 4870 }); 4871 4872 if (this.prevBtn) this.prevBtn.disabled = this.currentIndex === 0; 4873 if (this.nextBtn) this.nextBtn.disabled = this.currentIndex >= maxIndex; 4874 } 4875 4876 // -------------------------------------------------- 4877 // Events 4878 // -------------------------------------------------- 4879 4880 bindEvents() { 4881 if (this.prevBtn) this.prevBtn.addEventListener('click', () => this.goTo(this.currentIndex - 1)); 4882 if (this.nextBtn) this.nextBtn.addEventListener('click', () => this.goTo(this.currentIndex + 1)); 4883 4884 this.track.addEventListener('pointerdown', this._onDragStart.bind(this)); 4885 window.addEventListener('pointermove', this._onDragMove.bind(this)); 4886 window.addEventListener('pointerup', this._onDragEnd.bind(this)); 4887 4888 this.viewport.setAttribute('tabindex', '0'); 4889 this.viewport.addEventListener('keydown', (e) => { 4890 if (e.key === 'ArrowLeft') this.goTo(this.currentIndex - 1); 4891 if (e.key === 'ArrowRight') this.goTo(this.currentIndex + 1); 4892 }); 4893 4894 let resizeTimer; 4895 window.addEventListener('resize', () => { 4896 clearTimeout(resizeTimer); 4897 resizeTimer = setTimeout(() => { 4898 this.updateLayout(); 4899 this._buildDots(); 4900 this.goTo(this.currentIndex); 4901 }, 150); 4902 }); 4903 } 4904 4905 _onDragStart(e) { 4906 if (e.target.closest('a, button, input, textarea, select')) { 4907 return; 4908} 4909 if (e.button !== 0 && e.pointerType === 'mouse') return; 4910 this._isDragging = false;
4911 this._dragStartX = e.clientX; 4912 this.track.classList.add('is-dragging'); 4913 this.track.setPointerCapture(e.pointerId); 4914 } 4915 4916 _onDragMove(e) { 4917 if (!this.track.classList.contains('is-dragging')) return; 4918 const delta = e.clientX - this._dragStartX; 4919 if (Math.abs(delta) > 5) this._isDragging = true; 4920 this.track.style.transform = `translateX(${this._trackOffset + delta}px)`; 4921 } 4922 4923 _onDragEnd(e) { 4924 if (!this.track.classList.contains('is-dragging')) return; 4925 this.track.classList.remove('is-dragging'); 4926 4927 const delta = e.clientX - this._dragStartX; 4928 const threshold = 60; 4929 4930 if (delta < -threshold) this.goTo(this.currentIndex + 1); 4931 else if (delta > threshold) this.goTo(this.currentIndex - 1); 4932 else this.goTo(this.currentIndex); 4933 4934 setTimeout(() => { this._isDragging = false; }, 50); 4935 } 4936 4937 // -------------------------------------------------- 4938 // Utilities 4939 // -------------------------------------------------- 4940 4941 _formatDate(ts) { 4942 return new Date(ts).toLocaleDateString('en-GB', { 4943 day: 'numeric', month: 'short', year: 'numeric' 4944 }); 4945 } 4946 4947 _isPlaceholder(url) { 4948 return !url || url.endsWith('/'); 4949 } 4950 4951 showNoResults(msg = 'No recent articles available.') { 4952 this.noResultsMsg.textContent = msg; 4953 this.noResultsMsg.style.display = 'block'; 4954 } 4955 } 4956 4957 document.addEventListener('DOMContentLoaded', () => { 4958 document.querySelectorAll('.news-carousel-section:not([data-carousel-init])').forEach(el => { 4959 el.setAttribute('data-carousel-init', 'true'); 4960 new NewsCarousel(el); 4961 }); 4962 }); 4963 4964})(); 4965</script>
4965 4966 4967 4968 4969 4970 4971</div> 4972 4973<style class="transform-vars"> 4974 .fe-block-6f8df78e10e23f9fd3a4 { 4975 --opacity: 100%; 4976 --translate-x: 0px; 4977 --translate-y: 0px; 4978 --rotation: 0deg; 4979 --scale-x: 100%; 4980 --scale-y: 100%; 4981 --skew-x: 0deg; 4982 --skew-y: 0deg; 4983 --origin-x: 50%; 4984 --origin-y: 50%; 4985 --block-transform: none; 4986 4987 opacity: var(--opacity, 1); 4988 transform: var(--block-transform); 4989 transform-origin: var(--origin-x) var(--origin-y); 4990 } 4991 </style><style class="transform-overrides-vars"> 4992 4993</style> 4994 4995</div></div></div></div></div> 4996 </div> 4997 4998 </div> 4999 5000</section> 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022<section 5023 data-test="page-section" 5024 5025 data-section-theme="" 5026 class='page-section 5027 5028 full-bleed-section 5029 layout-engine-section 5030 5031 background-width--full-bleed 5032 5033 section-height--small 5034 5035 5036 content-width--wide 5037 5038 horizontal-alignment--center 5039 vertical-alignment--middle 5040 5041 5042 5043 5044 ' 5045 5046 data-section-id="6a0bdd2664a2b638feb39449" 5047 5048 data-controller="SectionWrapperController" 5049 data-current-styles="{ 5050 "imageOverlayOpacity": 0.15, 5051 "backgroundWidth": "background-width--full-bleed", 5052 "sectionHeight": "section-height--small", 5053 "customSectionHeight": 1, 5054 "horizontalAlignment": "horizontal-alignment--center", 5055 "verticalAlignment": "vertical-alignment--middle", 5056 "contentWidth": "content-width--wide", 5057 "customContentWidth": 50, 5058 "sectionTheme": "", 5059 "sectionAnimation": "none", 5060 "backgroundMode": "image" 5061 }" 5062 data-current-context="{ 5063 "video": { 5064 "playbackSpeed": 1, 5065 "filter": 1, 5066 "filterStrength": 0, 5067 "zoom": 0, 5068 "videoSourceProvider": "none" 5069 }, 5070 "backgroundImageId": null, 5071 "backgroundMediaEffect": { 5072 "type": "none" 5073 }, 5074 "divider": { 5075 "enabled": false 5076 }, 5077 "typeName": "page" 5078 }" 5079 data-animation="none" 5080 data-fluid-engine-section 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 data-sqsp-section="fluid-engine" 5092 5093 5094> 5095 <div 5096 class="section-border" 5097 5098 > 5099 <div class="section-background"> 5100 5101 5102 5103 </div> 5104 </div> 5105 <div 5106 class='content-wrapper' 5107 style=' 5108 5109 5110 5111 ' 5112 > 5113 <div 5114 class="content" 5115 5116 > 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 <div data-fluid-engine="true"><style> 5128 5129.fe-6a0bdd2664a2b638feb39448 { 5130 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 5131 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 5132 5133 display: grid; 5134 position: relative; 5135 grid-area: 1/1/-1/-1; 5136 grid-template-rows: repeat(8,minmax(24px, auto)); 5137 grid-template-columns: 5138 minmax(var(--grid-gutter), 1fr) 5139 repeat(8, minmax(0, var(--cell-max-width))) 5140 minmax(var(--grid-gutter), 1fr); 5141 row-gap: 11.0px; 5142 column-gap: 11.0px; 5143 overflow-x: hidden; 5144 overflow-x: clip; 5145} 5146 5147@media (min-width: 768px) { 5148 .background-width--inset .fe-6a0bdd2664a2b638feb39448 { 5149 --inset-padding: calc(var(--sqs-site-gutter) * 2); 5150 } 5151 5152 .fe-6a0bdd2664a2b638feb39448 { 5153 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 5154 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 5155 --inset-padding: 0vw; 5156 5157 --row-height-scaling-factor: 0.0215; 5158 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 5159 5160 grid-template-rows: repeat(6,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 5161 grid-template-columns: 5162 minmax(var(--grid-gutter), 1fr) 5163 repeat(24, minmax(0, var(--cell-max-width))) 5164 minmax(var(--grid-gutter), 1fr); 5165 } 5166} 5167 5168 5169 .fe-block-0d07ed7cd15353ad39fe { 5170 grid-area: 1/2/3/10; 5171 z-index: 2; 5172 5173 @media (max-width: 767px) { 5174 5175 5176 5177 5178 } 5179 } 5180 5181 .fe-block-0d07ed7cd15353ad39fe .sqs-block { 5182 justify-content: flex-start; 5183 } 5184 5185 .fe-block-0d07ed7cd15353ad39fe .sqs-block-alignment-wrapper {
5186 align-items: flex-start; 5187 } 5188 5189 @media (min-width: 768px) { 5190 .fe-block-0d07ed7cd15353ad39fe { 5191 grid-area: 1/2/3/26; 5192 z-index: 2; 5193 5194 5195 5196 5197 5198 5199 } 5200 5201 .fe-block-0d07ed7cd15353ad39fe .sqs-block { 5202 justify-content: flex-start; 5203 } 5204 5205 .fe-block-0d07ed7cd15353ad39fe .sqs-block-alignment-wrapper { 5206 align-items: flex-start; 5207 } 5208 } 5209 5210 .fe-block-83a616452536eb991040 { 5211 grid-area: 3/2/9/10; 5212 z-index: 1; 5213 5214 @media (max-width: 767px) { 5215 5216 5217 5218 5219 } 5220 } 5221 5222 .fe-block-83a616452536eb991040 .sqs-block { 5223 justify-content: flex-start; 5224 } 5225 5226 .fe-block-83a616452536eb991040 .sqs-block-alignment-wrapper { 5227 align-items: flex-start; 5228 } 5229 5230 @media (min-width: 768px) { 5231 .fe-block-83a616452536eb991040 { 5232 grid-area: 3/1/7/27; 5233 z-index: 1; 5234 5235 5236 5237 5238 5239 5240 } 5241 5242 .fe-block-83a616452536eb991040 .sqs-block { 5243 justify-content: flex-start; 5244 } 5245 5246 .fe-block-83a616452536eb991040 .sqs-block-alignment-wrapper { 5247 align-items: flex-start; 5248 } 5249 } 5250 5251</style><div class="fluid-engine fe-6a0bdd2664a2b638feb39448"><div class="fe-block fe-block-0d07ed7cd15353ad39fe"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="0d07ed7cd15353ad39fe" id="block-0d07ed7cd15353ad39fe"><div class="sqs-block-content"><div class="sqs-text-block-container"> 5252 5253 <div class="sqs-html-content" data-sqsp-text-block-content><h2 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Child Poverty Tool kit</h2></div> 5254 5255 5256 5257<style id="container-styles">#block-0d07ed7cd15353ad39fe { 5258 5259 --stroke-style: none;--stroke-thickness: 2px; 5260 5261 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 5262; 5263 5264 5265 5266 5267 5268 5269 5270 } 5271 5272 #block-0d07ed7cd15353ad39fe .sqs-html-content { 5273 5274 --tweak-text-block-padding: 6% 6% 6% 6%; 5275 --tweak-text-block-padding: initial; 5276} 5277 5278 .fe-block-0d07ed7cd15353ad39fe { 5279 mix-blend-mode: var(--tweak-text-block-blend 5280 ); 5281 border-radius: var(--tweak-text-block-radius); 5282 } 5283 5284 5285 5286.fe-block-0d07ed7cd15353ad39fe { 5287 --tweak-text-block-radius: 0px 0px 0px 0px; 5288 } 5289 5290 5291 5292 .fe-block-0d07ed7cd15353ad39fe { 5293 --tweak-text-block-blend 5294 : normal; 5295 } 5296 5297 5298 .fe-block-0d07ed7cd15353ad39fe { 5299 --blur-value: blur(15px);} 5300 5301</style> 5302 5303<style id="override-container-styles"> 5304 @media screen and (max-width: 767px) { 5305 5306 5307 5308#block-0d07ed7cd15353ad39fe { 5309 5310 } 5311 } 5312 5313 5314 @media screen and (max-width: 767px) { 5315 #block-0d07ed7cd15353ad39fe .sqs-html-content { 5316 5317 } 5318 } 5319 5320 @media screen and (max-width: 767px) { 5321 5322 5323 5324 5325 5326 5327 }</style> 5328<style class="transform-vars"> 5329 .fe-block-0d07ed7cd15353ad39fe { 5330 --opacity: 100%; 5331 --translate-x: 0px; 5332 --translate-y: 0px; 5333 --rotation: 0deg; 5334 --scale-x: 100%; 5335 --scale-y: 100%; 5336 --skew-x: 0deg; 5337 --skew-y: 0deg; 5338 --origin-x: 50%; 5339 --origin-y: 50%; 5340 --block-transform: none; 5341 5342 opacity: var(--opacity, 1); 5343 transform: var(--block-transform); 5344 transform-origin: var(--origin-x) var(--origin-y); 5345 } 5346 </style><style class="transform-overrides-vars"> 5347 5348</style> 5349 5350 5351 5352 5353</div> 5354</div></div></div><div class="fe-block fe-block-83a616452536eb991040"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-code code-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.c
5354ode/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.visitor.js"]" data-block-type="1337" data-definition-name="website.components.code" data-sqsp-block="code" data-website-component-id="83a616452536eb991040" id="block-83a616452536eb991040"><div class="sqs-block-content"> 5355 5356 5357<div 5358 class="sqs-code-container" 5359 5360 5361 data-localized="{"enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","scriptDisabled":"Script Disabled"}" 5362 5363 5364 5365 5366> 5367 5368 <!-- ============================================ 5369 News Carousel 5370 - Fetches from /news?format=json 5371 - 3 cards visible + sneak peek of 4th on right 5372 - Dot pagination at bottom 5373 - Drag / swipe + keyboard support 5374 - Responsive: 2 cols â¤1024px, 1 col â¤640px 5375 ============================================ --> 5376 5377<!-- News Carousel Section --> 5378<!-- Change data-news-url to the Squarespace collection URL slug for this section --> 5379<div class="news-carousel-section" data-news-url="/child-poverty-tool-kit"> 5380 <div class="news-carousel-viewport"> 5381 <div class="news-carousel-track"> 5382 <!-- Cards injected by JS --> 5383 </div> 5384 </div> 5385 5386 <!-- Controls: dots centred + prev/next arrows pinned to right gutter --> 5387 <div class="news-carousel-controls"> 5388 <div class="news-carousel-dots"></div> 5389 <div class="news-carousel-arrows"> 5390 <button class="news-carousel-arrow news-carousel-prev" aria-label="Previous slide"> 5391 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 5392 <path d="M1 6.5L6 1.5M1 6.5L6 11.5M1 6.5H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5393 </svg> 5394 </button> 5395 <button class="news-carousel-arrow news-carousel-next" aria-label="Next slide"> 5396 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 5397 <path d="M19 6.5L14 1.5M19 6.5L14 11.5M19 6.5H1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5398 </svg> 5399 </button> 5400 </div> 5401 </div> 5402 5403 <div class="news-carousel-no-results" style="display:none;"> 5404 No recent articles available. 5405 </div> 5406</div> 5407 5408
5409<script> 5410(function () { 5411 5412 class NewsCarousel { 5413 constructor(rootEl) { 5414 this.root = rootEl; 5415 this.newsData = []; 5416 this.currentIndex = 0; 5417 this.visibleCols = 3; 5418 this.gap = 24; 5419 5420 this._isDragging = false; 5421 this._dragStartX = 0; 5422 this._trackOffset = 0; 5423 5424 this.viewport = rootEl.querySelector('.news-carousel-viewport'); 5425 this.track = rootEl.querySelector('.news-carousel-track'); 5426 this.dotsContainer = rootEl.querySelector('.news-carousel-dots'); 5427 this.noResultsMsg = rootEl.querySelector('.news-carousel-no-results'); 5428 this.prevBtn = rootEl.querySelector('.news-carousel-prev'); 5429 this.nextBtn = rootEl.querySelector('.news-carousel-next'); 5430 this.newsUrl = rootEl.dataset.newsUrl || '/news'; 5431 5432 this.currentArticleSlug = null; 5433 5434 this.init(); 5435 } 5436 5437 // -------------------------------------------------- 5438 // Init 5439 // -------------------------------------------------- 5440 5441 async init() { 5442 try { 5443 this.resolveCurrentSlug(); 5444 this.updateLayout(); 5445 await this.fetchNews(); 5446 this.render(); 5447 this.bindEvents(); 5448 } catch (err) { 5449 console.error('NewsCarousel init failed:', err); 5450 this.showNoResults('Failed to load articles.'); 5451 } 5452 } 5453 5454 resolveCurrentSlug() { 5455 const parts = window.location.pathname.split('/').filter(Boolean); 5456 this.currentArticleSlug = parts[parts.length - 1] || null; 5457 } 5458 5459 // -------------------------------------------------- 5460 // Layout helpers (responsive) 5461 // -------------------------------------------------- 5462 5463 updateLayout() { 5464 const w = window.innerWidth; 5465 if (w <= 640) this.visibleCols = 1; 5466 else if (w <= 1024) this.visibleCols = 2; 5467 else this.visibleCols = 3; 5468 } 5469 5470 // -------------------------------------------------- 5471 // Data fetching 5472 // -------------------------------------------------- 5473 5474 async fetchNews() { 5475 const url = `${this.newsUrl}?format=json&_=${Date.now()}`; 5476 const res = await fetch(url); 5477 if (!res.ok) throw new Error(`HTTP ${res.status}`); 5478 const data = await res.json(); 5479 5480 let items = []; 5481 if (data.items?.length) items = data.items; 5482 else if (data.collection?.items?.length) items = data.collection.items; 5483 5484 this.newsData = items 5485 .map(a => ({ 5486 id: a.id, 5487 title: a.title, 5488 fullUrl: a.fullUrl, 5489 assetUrl: a.assetUrl, 5490 publishOn: a.publishOn, 5491 addedOn: a.addedOn, 5492 tags: a.tags || [], 5493 categories:a.categories || [], 5494 urlId: a.urlId, 5495 })) 5496 .filter(a => { 5497 const slug = a.fullUrl 5498 ? a.fullUrl.split('/').filter(Boolean).pop() 5499 : a.urlId; 5500 return slug !== this.currentArticleSlug; 5501 }) 5502 .sort((a, b) => 5503 new Date(b.publishOn || b.addedOn) - new Date(a.publishOn || a.addedOn) 5504 ) 5505 .slice(0, 12); 5506 } 5507 5508 // -------------------------------------------------- 5509 // Render 5510 // -------------------------------------------------- 5511 5512 render() { 5513 this.track.innerHTML = ''; 5514 5515 if (!this.newsData.length) { 5516 this.showNoResults(); 5517 return; 5518 } 5519 5520 this.newsData.forEach(a => { 5521 const card = this._buildCard(a); 5522 this.track.appendChild(card); 5523 }); 5524 5525 this._buildDots(); 5526 this.goTo(0); 5527 } 5528 5529 _buildDots() { 5530 this.dotsContainer.innerHTML = ''; 5531 5532 const dotCount = Math.max(1, this.newsData.length - this.visibleCols + 1); 5533 5534 for (let i = 0; i < dotCount; i++) { 5535 const btn = document.createElement('button'); 5536 btn.className = 'news-carousel-dot' + (i === 0 ? ' is-active' : ''); 5537 btn.setAttribute('aria-label', `Go to slide ${i + 1}`); 5538 btn.addEventListener('click', () => this.goTo(i)); 5539 this.dotsContainer.appendChild(btn); 5540 } 5541 } 5542 5543 _buildCard(article) { 5544 const el = document.createElement('div'); 5545 const placeholder = this._isPlaceholder(article.assetUrl); 5546 const tag = article.tags[0] || article.categories[0] || null; 5547 const dateStr = this._formatDate(article.publishOn || article.addedOn); 5548 5549 el.className = 'news-card' + (placeholder ? ' has-placeholder-image' : '');
5550 el.dataset.newsId = article.id; 5551 5552 const imgHTML = placeholder 5553 ? `<div class="news-image-placeholder"> 5554 <img src="https://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a32010847c0946850884686/1781661960038/Logo.png" 5555 alt="" 5556 aria-hidden="true" 5557 class="news-placeholder-logo"> 5558 </div>` 5559 : `<img src="${article.assetUrl}" alt="${article.title}" loading="lazy">`; 5560 5561 el.innerHTML = ` 5562 <div class="news-image"> 5563 ${imgHTML} 5564 ${tag ? `<div class="news-tag">${tag}</div>` : ''} 5565 </div> 5566 <div class="news-content"> 5567 <div class="news-date">${dateStr}</div> 5568 <h3 class="news-title">${article.title}</h3> 5569 <a href="${article.fullUrl}" class="news-link" onclick="event.stopPropagation()"> 5570 Read more 5571 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 5572 <path d="M19 6.85498L14 1.85498M19 6.85498L14 11.855M19 6.85498H1" stroke="#07064C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5573 </svg> 5574 </a> 5575 </div> 5576 `; 5577 5578 el.addEventListener('click', (e) => { 5579 if (!e.target.closest('.news-link') && !this._isDragging) { 5580 window.location.href = article.fullUrl; 5581 } 5582 }); 5583 5584 return el; 5585 } 5586 5587 // -------------------------------------------------- 5588 // Navigation 5589 // -------------------------------------------------- 5590 5591 goTo(index) { 5592 const maxIndex = Math.max(0, this.newsData.length - this.visibleCols); 5593 this.currentIndex = Math.max(0, Math.min(index, maxIndex)); 5594 5595 const firstCard = this.track.querySelector('.news-card'); 5596 const cardWidth = firstCard ? firstCard.offsetWidth : 0; 5597 const offset = -(this.currentIndex * (cardWidth + this.gap)); 5598 this.track.style.transform = `translateX(${offset}px)`; 5599 this._trackOffset = offset; 5600 5601 this.dotsContainer.querySelectorAll('.news-carousel-dot').forEach((dot, i) => { 5602 dot.classList.toggle('is-active', i === this.currentIndex); 5603 }); 5604 5605 if (this.prevBtn) this.prevBtn.disabled = this.currentIndex === 0; 5606 if (this.nextBtn) this.nextBtn.disabled = this.currentIndex >= maxIndex; 5607 } 5608 5609 // -------------------------------------------------- 5610 // Events 5611 // -------------------------------------------------- 5612 5613 bindEvents() { 5614 if (this.prevBtn) this.prevBtn.addEventListener('click', () => this.goTo(this.currentIndex - 1)); 5615 if (this.nextBtn) this.nextBtn.addEventListener('click', () => this.goTo(this.currentIndex + 1)); 5616 5617 this.track.addEventListener('pointerdown', this._onDragStart.bind(this)); 5618 window.addEventListener('pointermove', this._onDragMove.bind(this)); 5619 window.addEventListener('pointerup', this._onDragEnd.bind(this)); 5620 5621 this.viewport.setAttribute('tabindex', '0'); 5622 this.viewport.addEventListener('keydown', (e) => { 5623 if (e.key === 'ArrowLeft') this.goTo(this.currentIndex - 1); 5624 if (e.key === 'ArrowRight') this.goTo(this.currentIndex + 1); 5625 }); 5626 5627 let resizeTimer; 5628 window.addEventListener('resize', () => { 5629 clearTimeout(resizeTimer); 5630 resizeTimer = setTimeout(() => { 5631 this.updateLayout(); 5632 this._buildDots(); 5633 this.goTo(this.currentIndex); 5634 }, 150); 5635 }); 5636 } 5637 5638 _onDragStart(e) { 5639 if (e.target.closest('a, button, input, textarea, select')) { 5640 return; 5641} 5642 if (e.button !== 0 && e.pointerType === 'mouse') return; 5643 this._isDragging = false;
5644 this._dragStartX = e.clientX; 5645 this.track.classList.add('is-dragging'); 5646 this.track.setPointerCapture(e.pointerId); 5647 } 5648 5649 _onDragMove(e) { 5650 if (!this.track.classList.contains('is-dragging')) return; 5651 const delta = e.clientX - this._dragStartX; 5652 if (Math.abs(delta) > 5) this._isDragging = true; 5653 this.track.style.transform = `translateX(${this._trackOffset + delta}px)`; 5654 } 5655 5656 _onDragEnd(e) { 5657 if (!this.track.classList.contains('is-dragging')) return; 5658 this.track.classList.remove('is-dragging'); 5659 5660 const delta = e.clientX - this._dragStartX; 5661 const threshold = 60; 5662 5663 if (delta < -threshold) this.goTo(this.currentIndex + 1); 5664 else if (delta > threshold) this.goTo(this.currentIndex - 1); 5665 else this.goTo(this.currentIndex); 5666 5667 setTimeout(() => { this._isDragging = false; }, 50); 5668 } 5669 5670 // -------------------------------------------------- 5671 // Utilities 5672 // -------------------------------------------------- 5673 5674 _formatDate(ts) { 5675 return new Date(ts).toLocaleDateString('en-GB', { 5676 day: 'numeric', month: 'short', year: 'numeric' 5677 }); 5678 } 5679 5680 _isPlaceholder(url) { 5681 return !url || url.endsWith('/'); 5682 } 5683 5684 showNoResults(msg = 'No recent articles available.') { 5685 this.noResultsMsg.textContent = msg; 5686 this.noResultsMsg.style.display = 'block'; 5687 } 5688 } 5689 5690 document.addEventListener('DOMContentLoaded', () => { 5691 document.querySelectorAll('.news-carousel-section:not([data-carousel-init])').forEach(el => { 5692 el.setAttribute('data-carousel-init', 'true'); 5693 new NewsCarousel(el); 5694 }); 5695 }); 5696 5697})(); 5698</script>
5698 5699 5700 5701 5702 5703 5704</div> 5705 5706<style class="transform-vars"> 5707 .fe-block-83a616452536eb991040 { 5708 --opacity: 100%; 5709 --translate-x: 0px; 5710 --translate-y: 0px; 5711 --rotation: 0deg; 5712 --scale-x: 100%; 5713 --scale-y: 100%; 5714 --skew-x: 0deg; 5715 --skew-y: 0deg; 5716 --origin-x: 50%; 5717 --origin-y: 50%; 5718 --block-transform: none; 5719 5720 opacity: var(--opacity, 1); 5721 transform: var(--block-transform); 5722 transform-origin: var(--origin-x) var(--origin-y); 5723 } 5724 </style><style class="transform-overrides-vars"> 5725 5726</style> 5727 5728</div></div></div></div></div> 5729 </div> 5730 5731 </div> 5732 5733</section> 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755<section 5756 data-test="page-section" 5757 5758 data-section-theme="light" 5759 class='page-section 5760 5761 full-bleed-section 5762 layout-engine-section 5763 5764 background-width--full-bleed 5765 5766 section-height--small 5767 5768 5769 content-width--wide 5770 5771 horizontal-alignment--center 5772 vertical-alignment--middle 5773 5774 5775 5776 5777 light' 5778 5779 data-section-id="6a0bdd8a7dd7334883bd401c" 5780 5781 data-controller="SectionWrapperController" 5782 data-current-styles="{ 5783 "imageOverlayOpacity": 0.15, 5784 "backgroundWidth": "background-width--full-bleed", 5785 "sectionHeight": "section-height--small", 5786 "customSectionHeight": 1, 5787 "horizontalAlignment": "horizontal-alignment--center", 5788 "verticalAlignment": "vertical-alignment--middle", 5789 "contentWidth": "content-width--wide", 5790 "customContentWidth": 50, 5791 "sectionTheme": "light", 5792 "sectionAnimation": "none", 5793 "backgroundMode": "image" 5794 }" 5795 data-current-context="{ 5796 "video": { 5797 "playbackSpeed": 1, 5798 "filter": 1, 5799 "filterStrength": 0, 5800 "zoom": 0, 5801 "videoSourceProvider": "none" 5802 }, 5803 "backgroundImageId": null, 5804 "backgroundMediaEffect": { 5805 "type": "none" 5806 }, 5807 "divider": { 5808 "enabled": false 5809 }, 5810 "typeName": "page" 5811 }" 5812 data-animation="none" 5813 data-fluid-engine-section 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 data-sqsp-section="fluid-engine" 5825 5826 5827> 5828 <div 5829 class="section-border" 5830 5831 > 5832 <div class="section-background"> 5833 5834 5835 5836 </div> 5837 </div> 5838 <div 5839 class='content-wrapper' 5840 style=' 5841 5842 5843 5844 ' 5845 > 5846 <div 5847 class="content" 5848 5849 > 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 <div data-fluid-engine="true"><style> 5861
5862.fe-6a0bdd8a7dd7334883bd401b { 5863 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 5864 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 5865 5866 display: grid; 5867 position: relative; 5868 grid-area: 1/1/-1/-1; 5869 grid-template-rows: repeat(8,minmax(24px, auto)); 5870 grid-template-columns: 5871 minmax(var(--grid-gutter), 1fr) 5872 repeat(8, minmax(0, var(--cell-max-width))) 5873 minmax(var(--grid-gutter), 1fr); 5874 row-gap: 11.0px; 5875 column-gap: 11.0px; 5876 overflow-x: hidden; 5877 overflow-x: clip; 5878} 5879 5880@media (min-width: 768px) { 5881 .background-width--inset .fe-6a0bdd8a7dd7334883bd401b { 5882 --inset-padding: calc(var(--sqs-site-gutter) * 2); 5883 } 5884 5885 .fe-6a0bdd8a7dd7334883bd401b { 5886 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 5887 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 5888 --inset-padding: 0vw; 5889 5890 --row-height-scaling-factor: 0.0215; 5891 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 5892 5893 grid-template-rows: repeat(6,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 5894 grid-template-columns: 5895 minmax(var(--grid-gutter), 1fr) 5896 repeat(24, minmax(0, var(--cell-max-width))) 5897 minmax(var(--grid-gutter), 1fr); 5898 } 5899} 5900 5901 5902 .fe-block-bd61398588dac08a11d1 { 5903 grid-area: 1/2/3/10; 5904 z-index: 2; 5905 5906 @media (max-width: 767px) { 5907 5908 5909 5910 5911 } 5912 } 5913 5914 .fe-block-bd61398588dac08a11d1 .sqs-block { 5915 justify-content: flex-start; 5916 } 5917 5918 .fe-block-bd61398588dac08a11d1 .sqs-block-alignment-wrapper { 5919 align-items: flex-start; 5920 } 5921 5922 @media (min-width: 768px) { 5923 .fe-block-bd61398588dac08a11d1 { 5924 grid-area: 1/2/3/26; 5925 z-index: 2; 5926 5927 5928 5929 5930 5931 5932 } 5933 5934 .fe-block-bd61398588dac08a11d1 .sqs-block { 5935 justify-content: flex-start; 5936 } 5937 5938 .fe-block-bd61398588dac08a11d1 .sqs-block-alignment-wrapper { 5939 align-items: flex-start; 5940 } 5941 } 5942 5943 .fe-block-257bea166acba2f37641 { 5944 grid-area: 3/2/9/10; 5945 z-index: 1; 5946 5947 @media (max-width: 767px) { 5948 5949 5950 5951 5952 } 5953 } 5954 5955 .fe-block-257bea166acba2f37641 .sqs-block { 5956 justify-content: flex-start; 5957 } 5958 5959 .fe-block-257bea166acba2f37641 .sqs-block-alignment-wrapper { 5960 align-items: flex-start; 5961 } 5962 5963 @media (min-width: 768px) { 5964 .fe-block-257bea166acba2f37641 { 5965 grid-area: 3/1/7/27; 5966 z-index: 1; 5967 5968 5969 5970 5971 5972 5973 } 5974 5975 .fe-block-257bea166acba2f37641 .sqs-block { 5976 justify-content: flex-start; 5977 } 5978 5979 .fe-block-257bea166acba2f37641 .sqs-block-alignment-wrapper { 5980 align-items: flex-start; 5981 } 5982 } 5983 5984</style><div class="fluid-engine fe-6a0bdd8a7dd7334883bd401b"><div class="fe-block fe-block-bd61398588dac08a11d1"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="bd61398588dac08a11d1" id="block-bd61398588dac08a11d1"><div class="sqs-block-content"><div class="sqs-text-block-container"> 5985 5986 <div class="sqs-html-content" data-sqsp-text-block-content><h2 style="text-align: center; ; white-space:pre-wrap;" data-rte-preserve-empty="true">Policy Briefs (2026)</h2></div> 5987 5988 5989 5990<style id="container-styles">#block-bd61398588dac08a11d1 { 5991 5992 --stroke-style: none;--stroke-thickness: 2px; 5993 5994 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 5995; 5996 5997 5998 5999 6000 6001 6002 6003 } 6004 6005 #block-bd61398588dac08a11d1 .sqs-html-content { 6006 6007 --tweak-text-block-padding: 6% 6% 6% 6%; 6008 --tweak-text-block-padding: initial; 6009} 6010 6011 .fe-block-bd61398588dac08a11d1 { 6012 mix-blend-mode: var(--tweak-text-block-blend 6013 ); 6014 border-radius: var(--tweak-text-block-radius); 6015 } 6016 6017 6018 6019.fe-block-bd61398588dac08a11d1 { 6020 --tweak-text-block-radius: 0px 0px 0px 0px; 6021 } 6022 6023 6024 6025 .fe-block-bd61398588dac08a11d1 { 6026 --tweak-text-block-blend 6027 : normal; 6028 } 6029 6030 6031 .fe-block-bd61398588dac08a11d1 { 6032 --blur-value: blur(15px);} 6033 6034</style> 6035 6036<style id="override-container-styles"> 6037 @media screen and (max-width: 767px) { 6038 6039 6040 6041#block-bd61398588dac08a11d1 { 6042 6043 } 6044 } 6045 6046 6047 @media screen and (max-width: 767px) { 6048 #block-bd61398588dac08a11d1 .sqs-html-content { 6049 6050 } 6051 } 6052 6053 @media screen and (max-width: 767px) { 6054 6055 6056 6057 6058 6059 6060 }</style> 6061<style class="transform-vars"> 6062 .fe-block-bd61398588dac08a11d1 { 6063 --opacity: 100%; 6064 --translate-x: 0px; 6065 --translate-y: 0px; 6066 --rotation: 0deg; 6067 --scale-x: 100%; 6068 --scale-y: 100%; 6069 --skew-x: 0deg; 6070 --skew-y: 0deg; 6071 --origin-x: 50%; 6072 --origin-y: 50%; 6073 --block-transform: none; 6074 6075 opacity: var(--opacity, 1); 6076 transform: var(--block-transform); 6077 transform-origin: var(--origin-x) var(--origin-y); 6078 } 6079 </style><style class="transform-overrides-vars"> 6080 6081</style> 6082 6083 6084 6085 6086</div> 6087</div></div></div><div class="fe-block fe-block-257bea166acba2f37641"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-code code-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.c
6087ode/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.code/9948a517-930e-4b10-9222-9df5d5413d1a_997/website.components.code.visitor.js"]" data-block-type="1337" data-definition-name="website.components.code" data-sqsp-block="code" data-website-component-id="257bea166acba2f37641" id="block-257bea166acba2f37641"><div class="sqs-block-content"> 6088 6089 6090<div 6091 class="sqs-code-container" 6092 6093 6094 data-localized="{"enableSafeModeButton":"Preview in safe mode","enableSafeModeText":"This block contains embedded scripts. Embedded scripts are disabled while you're logged in and editing your site.","enableSafeModeTitle":"Embedded Scripts","exitSafeModeButton":"Exit safe preview","exitSafeModeText":"Please view the page after logging out for accurate rendering.","exitSafeModeTitle":"Safe Preview","globalSafeMode":"Embedded Code: This block contains embedded code that has been disabled.","scriptDisabled":"Script Disabled"}" 6095 6096 6097 6098 6099> 6100 6101 <!-- ============================================ 6102 News Carousel 6103 - Fetches from /news?format=json 6104 - 3 cards visible + sneak peek of 4th on right 6105 - Dot pagination at bottom 6106 - Drag / swipe + keyboard support 6107 - Responsive: 2 cols â¤1024px, 1 col â¤640px 6108 ============================================ --> 6109 6110<!-- News Carousel Section --> 6111<!-- Change data-news-url to the Squarespace collection URL slug for this section --> 6112<div class="news-carousel-section" data-news-url="/policy-briefs"> 6113 <div class="news-carousel-viewport"> 6114 <div class="news-carousel-track"> 6115 <!-- Cards injected by JS --> 6116 </div> 6117 </div> 6118 6119 <!-- Controls: dots centred + prev/next arrows pinned to right gutter --> 6120 <div class="news-carousel-controls"> 6121 <div class="news-carousel-dots"></div> 6122 <div class="news-carousel-arrows"> 6123 <button class="news-carousel-arrow news-carousel-prev" aria-label="Previous slide"> 6124 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 6125 <path d="M1 6.5L6 1.5M1 6.5L6 11.5M1 6.5H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6126 </svg> 6127 </button> 6128 <button class="news-carousel-arrow news-carousel-next" aria-label="Next slide"> 6129 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 6130 <path d="M19 6.5L14 1.5M19 6.5L14 11.5M19 6.5H1" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6131 </svg> 6132 </button> 6133 </div> 6134 </div> 6135 6136 <div class="news-carousel-no-results" style="display:none;"> 6137 No recent articles available. 6138 </div> 6139</div> 6140 6141
6142<script> 6143(function () { 6144 6145 class NewsCarousel { 6146 constructor(rootEl) { 6147 this.root = rootEl; 6148 this.newsData = []; 6149 this.currentIndex = 0; 6150 this.visibleCols = 3; 6151 this.gap = 24; 6152 6153 this._isDragging = false; 6154 this._dragStartX = 0; 6155 this._trackOffset = 0; 6156 6157 this.viewport = rootEl.querySelector('.news-carousel-viewport'); 6158 this.track = rootEl.querySelector('.news-carousel-track'); 6159 this.dotsContainer = rootEl.querySelector('.news-carousel-dots'); 6160 this.noResultsMsg = rootEl.querySelector('.news-carousel-no-results'); 6161 this.prevBtn = rootEl.querySelector('.news-carousel-prev'); 6162 this.nextBtn = rootEl.querySelector('.news-carousel-next'); 6163 this.newsUrl = rootEl.dataset.newsUrl || '/news'; 6164 6165 this.currentArticleSlug = null; 6166 6167 this.init(); 6168 } 6169 6170 // -------------------------------------------------- 6171 // Init 6172 // -------------------------------------------------- 6173 6174 async init() { 6175 try { 6176 this.resolveCurrentSlug(); 6177 this.updateLayout(); 6178 await this.fetchNews(); 6179 this.render(); 6180 this.bindEvents(); 6181 } catch (err) { 6182 console.error('NewsCarousel init failed:', err); 6183 this.showNoResults('Failed to load articles.'); 6184 } 6185 } 6186 6187 resolveCurrentSlug() { 6188 const parts = window.location.pathname.split('/').filter(Boolean); 6189 this.currentArticleSlug = parts[parts.length - 1] || null; 6190 } 6191 6192 // -------------------------------------------------- 6193 // Layout helpers (responsive) 6194 // -------------------------------------------------- 6195 6196 updateLayout() { 6197 const w = window.innerWidth; 6198 if (w <= 640) this.visibleCols = 1; 6199 else if (w <= 1024) this.visibleCols = 2; 6200 else this.visibleCols = 3; 6201 } 6202 6203 // -------------------------------------------------- 6204 // Data fetching 6205 // -------------------------------------------------- 6206 6207 async fetchNews() { 6208 const url = `${this.newsUrl}?format=json&_=${Date.now()}`; 6209 const res = await fetch(url); 6210 if (!res.ok) throw new Error(`HTTP ${res.status}`); 6211 const data = await res.json(); 6212 6213 let items = []; 6214 if (data.items?.length) items = data.items; 6215 else if (data.collection?.items?.length) items = data.collection.items; 6216 6217 this.newsData = items 6218 .map(a => ({ 6219 id: a.id, 6220 title: a.title, 6221 fullUrl: a.fullUrl, 6222 assetUrl: a.assetUrl, 6223 publishOn: a.publishOn, 6224 addedOn: a.addedOn, 6225 tags: a.tags || [], 6226 categories:a.categories || [], 6227 urlId: a.urlId, 6228 })) 6229 .filter(a => { 6230 const slug = a.fullUrl 6231 ? a.fullUrl.split('/').filter(Boolean).pop() 6232 : a.urlId; 6233 return slug !== this.currentArticleSlug; 6234 }) 6235 .sort((a, b) => 6236 new Date(b.publishOn || b.addedOn) - new Date(a.publishOn || a.addedOn) 6237 ) 6238 .slice(0, 12); 6239 } 6240 6241 // -------------------------------------------------- 6242 // Render 6243 // -------------------------------------------------- 6244 6245 render() { 6246 this.track.innerHTML = ''; 6247 6248 if (!this.newsData.length) { 6249 this.showNoResults(); 6250 return; 6251 } 6252 6253 this.newsData.forEach(a => { 6254 const card = this._buildCard(a); 6255 this.track.appendChild(card); 6256 }); 6257 6258 this._buildDots(); 6259 this.goTo(0); 6260 } 6261 6262 _buildDots() { 6263 this.dotsContainer.innerHTML = ''; 6264 6265 const dotCount = Math.max(1, this.newsData.length - this.visibleCols + 1); 6266 6267 for (let i = 0; i < dotCount; i++) { 6268 const btn = document.createElement('button'); 6269 btn.className = 'news-carousel-dot' + (i === 0 ? ' is-active' : ''); 6270 btn.setAttribute('aria-label', `Go to slide ${i + 1}`); 6271 btn.addEventListener('click', () => this.goTo(i)); 6272 this.dotsContainer.appendChild(btn); 6273 } 6274 } 6275 6276 _buildCard(article) { 6277 const el = document.createElement('div'); 6278 const placeholder = this._isPlaceholder(article.assetUrl); 6279 const tag = article.tags[0] || article.categories[0] || null; 6280 const dateStr = this._formatDate(article.publishOn || article.addedOn); 6281 6282 el.className = 'news-card' + (placeholder ? ' has-placeholder-image' : '');
6283 el.dataset.newsId = article.id; 6284 6285 const imgHTML = placeholder 6286 ? `<div class="news-image-placeholder"> 6287 <img src="https://static1.squarespace.com/static/6a0b931002ba2531921dcf80/t/6a32010847c0946850884686/1781661960038/Logo.png" 6288 alt="" 6289 aria-hidden="true" 6290 class="news-placeholder-logo"> 6291 </div>` 6292 : `<img src="${article.assetUrl}" alt="${article.title}" loading="lazy">`; 6293 6294 el.innerHTML = ` 6295 <div class="news-image"> 6296 ${imgHTML} 6297 ${tag ? `<div class="news-tag">${tag}</div>` : ''} 6298 </div> 6299 <div class="news-content"> 6300 <div class="news-date">${dateStr}</div> 6301 <h3 class="news-title">${article.title}</h3> 6302 <a href="${article.fullUrl}" class="news-link" onclick="event.stopPropagation()"> 6303 Read more 6304 <svg width="20" height="13" viewBox="0 0 20 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 6305 <path d="M19 6.85498L14 1.85498M19 6.85498L14 11.855M19 6.85498H1" stroke="#07064C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6306 </svg> 6307 </a> 6308 </div> 6309 `; 6310 6311 el.addEventListener('click', (e) => { 6312 if (!e.target.closest('.news-link') && !this._isDragging) { 6313 window.location.href = article.fullUrl; 6314 } 6315 }); 6316 6317 return el; 6318 } 6319 6320 // -------------------------------------------------- 6321 // Navigation 6322 // -------------------------------------------------- 6323 6324 goTo(index) { 6325 const maxIndex = Math.max(0, this.newsData.length - this.visibleCols); 6326 this.currentIndex = Math.max(0, Math.min(index, maxIndex)); 6327 6328 const firstCard = this.track.querySelector('.news-card'); 6329 const cardWidth = firstCard ? firstCard.offsetWidth : 0; 6330 const offset = -(this.currentIndex * (cardWidth + this.gap)); 6331 this.track.style.transform = `translateX(${offset}px)`; 6332 this._trackOffset = offset; 6333 6334 this.dotsContainer.querySelectorAll('.news-carousel-dot').forEach((dot, i) => { 6335 dot.classList.toggle('is-active', i === this.currentIndex); 6336 }); 6337 6338 if (this.prevBtn) this.prevBtn.disabled = this.currentIndex === 0; 6339 if (this.nextBtn) this.nextBtn.disabled = this.currentIndex >= maxIndex; 6340 } 6341 6342 // -------------------------------------------------- 6343 // Events 6344 // -------------------------------------------------- 6345 6346 bindEvents() { 6347 if (this.prevBtn) this.prevBtn.addEventListener('click', () => this.goTo(this.currentIndex - 1)); 6348 if (this.nextBtn) this.nextBtn.addEventListener('click', () => this.goTo(this.currentIndex + 1)); 6349 6350 this.track.addEventListener('pointerdown', this._onDragStart.bind(this)); 6351 window.addEventListener('pointermove', this._onDragMove.bind(this)); 6352 window.addEventListener('pointerup', this._onDragEnd.bind(this)); 6353 6354 this.viewport.setAttribute('tabindex', '0'); 6355 this.viewport.addEventListener('keydown', (e) => { 6356 if (e.key === 'ArrowLeft') this.goTo(this.currentIndex - 1); 6357 if (e.key === 'ArrowRight') this.goTo(this.currentIndex + 1); 6358 }); 6359 6360 let resizeTimer; 6361 window.addEventListener('resize', () => { 6362 clearTimeout(resizeTimer); 6363 resizeTimer = setTimeout(() => { 6364 this.updateLayout(); 6365 this._buildDots(); 6366 this.goTo(this.currentIndex); 6367 }, 150); 6368 }); 6369 } 6370 6371 _onDragStart(e) { 6372 if (e.target.closest('a, button, input, textarea, select')) { 6373 return; 6374} 6375 if (e.button !== 0 && e.pointerType === 'mouse') return; 6376 this._isDragging = false;
6377 this._dragStartX = e.clientX; 6378 this.track.classList.add('is-dragging'); 6379 this.track.setPointerCapture(e.pointerId); 6380 } 6381 6382 _onDragMove(e) { 6383 if (!this.track.classList.contains('is-dragging')) return; 6384 const delta = e.clientX - this._dragStartX; 6385 if (Math.abs(delta) > 5) this._isDragging = true; 6386 this.track.style.transform = `translateX(${this._trackOffset + delta}px)`; 6387 } 6388 6389 _onDragEnd(e) { 6390 if (!this.track.classList.contains('is-dragging')) return; 6391 this.track.classList.remove('is-dragging'); 6392 6393 const delta = e.clientX - this._dragStartX; 6394 const threshold = 60; 6395 6396 if (delta < -threshold) this.goTo(this.currentIndex + 1); 6397 else if (delta > threshold) this.goTo(this.currentIndex - 1); 6398 else this.goTo(this.currentIndex); 6399 6400 setTimeout(() => { this._isDragging = false; }, 50); 6401 } 6402 6403 // -------------------------------------------------- 6404 // Utilities 6405 // -------------------------------------------------- 6406 6407 _formatDate(ts) { 6408 return new Date(ts).toLocaleDateString('en-GB', { 6409 day: 'numeric', month: 'short', year: 'numeric' 6410 }); 6411 } 6412 6413 _isPlaceholder(url) { 6414 return !url || url.endsWith('/'); 6415 } 6416 6417 showNoResults(msg = 'No recent articles available.') { 6418 this.noResultsMsg.textContent = msg; 6419 this.noResultsMsg.style.display = 'block'; 6420 } 6421 } 6422 6423 document.addEventListener('DOMContentLoaded', () => { 6424 document.querySelectorAll('.news-carousel-section:not([data-carousel-init])').forEach(el => { 6425 el.setAttribute('data-carousel-init', 'true'); 6426 new NewsCarousel(el); 6427 }); 6428 }); 6429 6430})(); 6431</script>
6431 6432 6433 6434 6435 6436 6437</div> 6438 6439<style class="transform-vars"> 6440 .fe-block-257bea166acba2f37641 { 6441 --opacity: 100%; 6442 --translate-x: 0px; 6443 --translate-y: 0px; 6444 --rotation: 0deg; 6445 --scale-x: 100%; 6446 --scale-y: 100%; 6447 --skew-x: 0deg; 6448 --skew-y: 0deg; 6449 --origin-x: 50%; 6450 --origin-y: 50%; 6451 --block-transform: none; 6452 6453 opacity: var(--opacity, 1); 6454 transform: var(--block-transform); 6455 transform-origin: var(--origin-x) var(--origin-y); 6456 } 6457 </style><style class="transform-overrides-vars"> 6458 6459</style> 6460 6461</div></div></div></div></div> 6462 </div> 6463 6464 </div> 6465 6466</section> 6467 6468 6469 6470 6471 </section> 6472 6473</article> 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 </main> 6486 6487 <footer class="sections" id="footer-sections" data-footer-sections> 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511<section 6512 data-test="page-section" 6513 6514 data-section-theme="bright" 6515 class='page-section 6516 6517 full-bleed-section 6518 layout-engine-section 6519 6520 background-width--full-bleed 6521 6522 section-height--medium 6523 6524 6525 content-width--wide 6526 6527 horizontal-alignment--center 6528 vertical-alignment--middle 6529 6530 6531 6532 6533 bright' 6534 6535 data-section-id="6a0bdf385ee3881a8c516f22" 6536 6537 data-controller="SectionWrapperController" 6538 data-current-styles="{ 6539 "imageOverlayOpacity": 0.15, 6540 "backgroundWidth": "background-width--full-bleed", 6541 "sectionHeight": "section-height--medium", 6542 "customSectionHeight": 10, 6543 "horizontalAlignment": "horizontal-alignment--center", 6544 "verticalAlignment": "vertical-alignment--middle", 6545 "contentWidth": "content-width--wide", 6546 "customContentWidth": 50, 6547 "sectionTheme": "bright", 6548 "sectionAnimation": "none", 6549 "backgroundMode": "image" 6550 }" 6551 data-current-context="{ 6552 "video": { 6553 "playbackSpeed": 1, 6554 "filter": 1, 6555 "filterStrength": 0, 6556 "zoom": 0, 6557 "videoSourceProvider": "none" 6558 }, 6559 "backgroundImageId": null, 6560 "backgroundMediaEffect": { 6561 "type": "none" 6562 }, 6563 "divider": { 6564 "enabled": false 6565 }, 6566 "typeName": "page" 6567 }" 6568 data-animation="none" 6569 data-fluid-engine-section 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 data-sqsp-section="fluid-engine" 6581 6582 6583> 6584 <div 6585 class="section-border" 6586 6587 > 6588 <div class="section-background"> 6589 6590 6591 6592 </div> 6593 </div> 6594 <div 6595 class='content-wrapper' 6596 style=' 6597 6598 6599 6600 ' 6601 > 6602 <div 6603 class="content" 6604 6605 > 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 <div data-fluid-engine="true"><style> 6617 6618.fe-6a0bdf3993c3c80b6dd21c1e { 6619 --grid-gutter: calc(var(--sqs-mobile-site-gutter, 6vw) - 11.0px); 6620 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (8 - 1)) ) / 8 ); 6621 6622 display: grid; 6623 position: relative; 6624 grid-area: 1/1/-1/-1; 6625 grid-template-rows: repeat(14,minmax(24px, auto)); 6626 grid-template-columns: 6627 minmax(var(--grid-gutter), 1fr) 6628 repeat(8, minmax(0, var(--cell-max-width))) 6629 minmax(var(--grid-gutter), 1fr); 6630 row-gap: 11.0px; 6631 column-gap: 11.0px; 6632 overflow-x: hidden; 6633 overflow-x: clip; 6634} 6635 6636@media (min-width: 768px) { 6637 .background-width--inset .fe-6a0bdf3993c3c80b6dd21c1e { 6638 --inset-padding: calc(var(--sqs-site-gutter) * 2); 6639 } 6640 6641 .fe-6a0bdf3993c3c80b6dd21c1e { 6642 --grid-gutter: calc(var(--sqs-site-gutter, 4vw) - 11.0px); 6643 --cell-max-width: calc( ( var(--sqs-site-max-width, 1500px) - (11.0px * (24 - 1)) ) / 24 ); 6644 --inset-padding: 0vw; 6645 6646 --row-height-scaling-factor: 0.0215; 6647 --container-width: min(var(--sqs-site-max-width, 1500px), calc(100vw - var(--sqs-site-gutter, 4vw) * 2 - var(--inset-padding) )); 6648 6649 grid-template-rows: repeat(6,minmax(calc(var(--container-width) * var(--row-height-scaling-factor)), auto)); 6650 grid-template-columns: 6651 minmax(var(--grid-gutter), 1fr) 6652 repeat(24, minmax(0, var(--cell-max-width))) 6653 minmax(var(--grid-gutter), 1fr); 6654 } 6655} 6656 6657 6658 .fe-block-yui_3_17_2_1_1779162759229_2315 { 6659 grid-area: 1/2/7/10; 6660 z-index: 1; 6661 6662 @media (max-width: 767px) { 6663 6664 6665 6666 6667 } 6668 } 6669 6670 .fe-block-yui_3_17_2_1_1779162759229_2315 .sqs-block { 6671 justify-content: center; 6672 } 6673 6674 .fe-block-yui_3_17_2_1_1779162759229_2315 .sqs-block-alignment-wrapper {
6675 align-items: center; 6676 } 6677 6678 @media (min-width: 768px) { 6679 .fe-block-yui_3_17_2_1_1779162759229_2315 { 6680 grid-area: 1/2/5/5; 6681 z-index: 1; 6682 6683 6684 6685 6686 6687 6688 } 6689 6690 .fe-block-yui_3_17_2_1_1779162759229_2315 .sqs-block { 6691 justify-content: center; 6692 } 6693 6694 .fe-block-yui_3_17_2_1_1779162759229_2315 .sqs-block-alignment-wrapper { 6695 align-items: center; 6696 } 6697 } 6698 6699 .fe-block-yui_3_17_2_1_1779162759229_2582 { 6700 grid-area: 7/2/9/10; 6701 z-index: 2; 6702 6703 @media (max-width: 767px) { 6704 6705 6706 6707 6708 } 6709 } 6710 6711 .fe-block-yui_3_17_2_1_1779162759229_2582 .sqs-block { 6712 justify-content: flex-start; 6713 } 6714 6715 .fe-block-yui_3_17_2_1_1779162759229_2582 .sqs-block-alignment-wrapper { 6716 align-items: flex-start; 6717 } 6718 6719 @media (min-width: 768px) { 6720 .fe-block-yui_3_17_2_1_1779162759229_2582 { 6721 grid-area: 1/8/7/16; 6722 z-index: 2; 6723 6724 6725 6726 6727 6728 6729 } 6730 6731 .fe-block-yui_3_17_2_1_1779162759229_2582 .sqs-block { 6732 justify-content: flex-start; 6733 } 6734 6735 .fe-block-yui_3_17_2_1_1779162759229_2582 .sqs-block-alignment-wrapper { 6736 align-items: flex-start; 6737 } 6738 } 6739 6740 .fe-block-b302e925235424b8faf8 { 6741 grid-area: 9/2/11/10; 6742 z-index: 3; 6743 6744 @media (max-width: 767px) { 6745 6746 6747 6748 6749 } 6750 } 6751 6752 .fe-block-b302e925235424b8faf8 .sqs-block { 6753 justify-content: flex-start; 6754 } 6755 6756 .fe-block-b302e925235424b8faf8 .sqs-block-alignment-wrapper { 6757 align-items: flex-start; 6758 } 6759 6760 @media (min-width: 768px) { 6761 .fe-block-b302e925235424b8faf8 { 6762 grid-area: 1/18/2/26; 6763 z-index: 3; 6764 6765 6766 6767 6768 6769 6770 } 6771 6772 .fe-block-b302e925235424b8faf8 .sqs-block { 6773 justify-content: flex-start; 6774 } 6775 6776 .fe-block-b302e925235424b8faf8 .sqs-block-alignment-wrapper { 6777 align-items: flex-start; 6778 } 6779 } 6780 6781 .fe-block-yui_3_17_2_1_1779162759229_3183 { 6782 grid-area: 11/2/13/10; 6783 z-index: 4; 6784 6785 @media (max-width: 767px) { 6786 6787 6788 6789 6790 } 6791 } 6792 6793 .fe-block-yui_3_17_2_1_1779162759229_3183 .sqs-block { 6794 justify-content: flex-start; 6795 } 6796 6797 .fe-block-yui_3_17_2_1_1779162759229_3183 .sqs-block-alignment-wrapper { 6798 align-items: flex-start; 6799 } 6800 6801 @media (min-width: 768px) { 6802 .fe-block-yui_3_17_2_1_1779162759229_3183 { 6803 grid-area: 2/18/4/22; 6804 z-index: 4; 6805 6806 6807 6808 6809 6810 6811 } 6812 6813 .fe-block-yui_3_17_2_1_1779162759229_3183 .sqs-block { 6814 justify-content: flex-start; 6815 } 6816 6817 .fe-block-yui_3_17_2_1_1779162759229_3183 .sqs-block-alignment-wrapper { 6818 align-items: flex-start; 6819 } 6820 } 6821 6822 .fe-block-83c73464c5fe95b36ff8 { 6823 grid-area: 13/2/15/10; 6824 z-index: 3; 6825 6826 @media (max-width: 767px) { 6827 6828 6829 6830 6831 } 6832 } 6833 6834 .fe-block-83c73464c5fe95b36ff8 .sqs-block { 6835 justify-content: flex-start; 6836 } 6837 6838 .fe-block-83c73464c5fe95b36ff8 .sqs-block-alignment-wrapper { 6839 align-items: flex-start; 6840 } 6841 6842 @media (min-width: 768px) { 6843 .fe-block-83c73464c5fe95b36ff8 { 6844 grid-area: 4/18/6/26; 6845 z-index: 3; 6846 6847 6848 6849 6850 6851 6852 } 6853 6854 .fe-block-83c73464c5fe95b36ff8 .sqs-block { 6855 justify-content: flex-start; 6856 } 6857 6858 .fe-block-83c73464c5fe95b36ff8 .sqs-block-alignment-wrapper { 6859 align-items: flex-start; 6860 } 6861 } 6862 6863</style><div class="fluid-engine fe-6a0bdf3993c3c80b6dd21c1e"><div class="fe-block fe-block-yui_3_17_2_1_1779162759229_2315"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-image image-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/website.components.imageFluid.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/18018.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/39188.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/39882.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/64023.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/92452.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-film-grain.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-liquid.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-parallax.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-refracted-circles.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/image-effect-refracted-lines.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/website.components.imageFluid.shared.constants.js","https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.imageFluid/8f959a7b-5793-4f84-b2c5-136e3896fb4c_939/website.components.imageFluid.visitor.js"]" data-block-type="1337" data-definition-name="website.components.imageFluid" data-sqsp-block="image" data-website-component-id="yui_3_17_2_1_1779162759229_2315" id="block-yui_3_17_2_1_1779162759229_2315"><div class="sqs-block-content"> 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 <div 6899 class="fluid-image-component-root image-block-outer-wrapper design-layout-fluid image-position-center image-component-container-fit combination-animation-site-default individual-animation-site-default 6900 }" 6901 data-component-id="yui_3_17_2_1_1779162759229_2315" 6902 data-test="image-block-fluid-outer-wrapper" 6903 data-is-image-stretched="false" 6904 data-is-mask-applied="false" 6905 data-media-focal-point="0.5,0.5" 6906 6907 6908 data-bpo="{}" 6909 data-breakpoints="[{"id":"system_desktop","name":"Desktop"},{"id":"system_mobile","name":"Mobile","maxWidth":"767px"}]" 6910 6911 6912 > 6913 <div 6914 class="fluid-image-animation-wrapper sqs-image sqs-block-alignment-wrapper" 6915 data-animation-role="image" 6916 > 6917 <div 6918 class="fluid-image-container sqs-image-content js-image-container visitor-mode" 6919 6920 data-sqsp-image-block-image-container 6921 > 6922 6923 6924 6925 6926 6927 6928 6929 6930 <div class="js-content-mode-element-wrapper js-content-mode-element-system_desktop"> 6931 6932 6933 <div class="js-content-mode-element content-fit"> 6934 6935 6936 6937 6938 6939 6940 6941 <img data-stretch="false" 6942 data-src="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png" 6943 data-image="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png" 6944 data-image-dimensions="531x436" 6945 data-image-focal-point="0.5,0.5" 6946 data-sqsp-image-block-image 6947 alt="" 6948 data-licensed-asset-preview="false" 6949 data-load="false" elementtiming="system-image-block" src="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png" width="531" height="436" alt="" sizes="auto, (max-width: 640px) 100.00vw, (max-width: 767px) 100.00vw, 12.50vw" style="display:block;object-position: var(--image-component-focal-point);object-fit: var(--image-component-object-fit);" srcset="https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6a0b931002ba2531921dcf80/e910ce94-c942-47db-80f4-005b2fbff6e4/Logo.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs" data-image-component="1.0.1"> 6950 6951 <div class="fluidImageOverlay"></div> 6952 6953 </div> 6954 6955 6956 </div> 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 </div> 6972 </div> 6973 <style> 6974 6975 6976 6977 #block-yui_3_17_2_1_1779162759229_2315 { 6978 --image-component-focal-point: 50% 50%; 6979 6980 --image-component-object-fit: contain; 6981 --image-component-overlay-opacity: 0; 6982 --image-component-overlay-blend-mode: normal; 6983
6984 --image-component-native-aspect-ratio: 531/436; 6985 6986 6987 6988 6989 } 6990 #block-yui_3_17_2_1_1779162759229_2315 .fluid-image-container.visitor-mode { 6991 6992 6993 overflow: hidden;-webkit-mask-image: -webkit-radial-gradient(white, black);clip-path: none;-webkit-clip-path: none; 6994 6995 } 6996 #block-yui_3_17_2_1_1779162759229_2315 .js-content-mode-element-wrapper { 6997 position: relative; 6998 width: 100%; 6999 height: 100%; 7000 display: none; 7001 } 7002 #block-yui_3_17_2_1_1779162759229_2315 .js-content-mode-element-system_desktop { 7003 display: block; 7004 } 7005 </style> 7006 <style class="transform-vars"> 7007 .fe-block-yui_3_17_2_1_1779162759229_2315 { 7008 --opacity: 100%; 7009 --translate-x: 0px; 7010 --translate-y: 0px; 7011 --rotation: 0deg; 7012 --scale-x: 100%; 7013 --scale-y: 100%; 7014 --skew-x: 0deg; 7015 --skew-y: 0deg; 7016 --origin-x: 50%; 7017 --origin-y: 50%; 7018 --block-transform: none; 7019 7020 opacity: var(--opacity, 1); 7021 transform: var(--block-transform); 7022 transform-origin: var(--origin-x) var(--origin-y); 7023 } 7024 </style><style class="transform-overrides-vars"> 7025 7026</style> 7027 7028 7029 7030 7031 7032 </div> 7033 7034</div></div></div><div class="fe-block fe-block-yui_3_17_2_1_1779162759229_2582"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="yui_3_17_2_1_1779162759229_2582" id="block-yui_3_17_2_1_1779162759229_2582"><div class="sqs-block-content"><div class="sqs-text-block-container"> 7035 7036 <div class="sqs-html-content" data-sqsp-text-block-content><h4 style="white-space:pre-wrap;" data-rte-preserve-empty="true"><span class="sqsrte-text-color--black">Contact us</span></h4><p class="p1" style="white-space:pre-wrap;" data-rte-preserve-empty="true"><span class="sqsrte-text-color--black">PO Box 56 11,<br>Victoria St West<br>Auckland 1142, New Zealand</span></p><h4 style="white-space:pre-wrap;" data-rte-preserve-empty="true"><span class="sqsrte-text-color--black">Media Enquiries</span></h4><p class="p1" style="white-space:pre-wrap;" data-rte-preserve-empty="true"><a href="mailto:[email protected]"><span class="sqsrte-text-color--black">[email protected]</span></a></p></div> 7037 7038 7039 7040<style id="container-styles">#block-yui_3_17_2_1_1779162759229_2582 { 7041 7042 --stroke-style: none;--stroke-thickness: 2px; 7043 7044 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 7045; 7046 7047 7048 7049 7050 7051 7052 7053 } 7054 7055 #block-yui_3_17_2_1_1779162759229_2582 .sqs-html-content { 7056 7057 --tweak-text-block-padding: 6% 6% 6% 6%; 7058 --tweak-text-block-padding: initial; 7059} 7060 7061 .fe-block-yui_3_17_2_1_1779162759229_2582 { 7062 mix-blend-mode: var(--tweak-text-block-blend 7063 ); 7064 border-radius: var(--tweak-text-block-radius); 7065 } 7066 7067 7068 7069.fe-block-yui_3_17_2_1_1779162759229_2582 { 7070 --tweak-text-block-radius: 0px 0px 0px 0px; 7071 } 7072 7073 7074 7075 .fe-block-yui_3_17_2_1_1779162759229_2582 { 7076 --tweak-text-block-blend 7077 : normal; 7078 } 7079 7080 7081 .fe-block-yui_3_17_2_1_1779162759229_2582 { 7082 --blur-value: blur(15px);} 7083 7084</style> 7085 7086<style id="override-container-styles"> 7087 @media screen and (max-width: 767px) { 7088 7089 7090 7091#block-yui_3_17_2_1_1779162759229_2582 { 7092 7093 } 7094 } 7095 7096 7097 @media screen and (max-width: 767px) { 7098 #block-yui_3_17_2_1_1779162759229_2582 .sqs-html-content { 7099 7100 } 7101 } 7102 7103 @media screen and (max-width: 767px) { 7104 7105 7106 7107 7108 7109 7110 }</style> 7111<style class="transform-vars"> 7112 .fe-block-yui_3_17_2_1_1779162759229_2582 { 7113 --opacity: 100%; 7114 --translate-x: 0px; 7115 --translate-y: 0px; 7116 --rotation: 0deg; 7117 --scale-x: 100%; 7118 --scale-y: 100%; 7119 --skew-x: 0deg; 7120 --skew-y: 0deg; 7121 --origin-x: 50%; 7122 --origin-y: 50%; 7123 --block-transform: none; 7124 7125 opacity: var(--opacity, 1); 7126 transform: var(--block-transform); 7127 transform-origin: var(--origin-x) var(--origin-y); 7128 } 7129 </style><style class="transform-overrides-vars"> 7130 7131</style> 7132 7133 7134 7135 7136</div> 7137</div></div></div><div class="fe-block fe-block-b302e925235424b8faf8"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="b302e925235424b8faf8" id="block-b302e925235424b8faf8"><div class="sqs-block-content"><div class="sqs-text-block-container"> 7138 7139 <div class="sqs-html-content" data-sqsp-text-block-content><h4 style="white-space:pre-wrap;" data-rte-preserve-empty="true">Connect </h4></div> 7140 7141 7142 7143<style id="container-styles">#block-b302e925235424b8faf8 { 7144 7145 --stroke-style: none;--stroke-thickness: 2px; 7146 7147 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 7148; 7149 7150 7151 7152 7153 7154 7155 7156 } 7157 7158 #block-b302e925235424b8faf8 .sqs-html-content { 7159 7160 --tweak-text-block-padding: 6% 6% 6% 6%; 7161 --tweak-text-block-padding: initial; 7162} 7163 7164 .fe-block-b302e925235424b8faf8 { 7165 mix-blend-mode: var(--tweak-text-block-blend 7166 ); 7167 border-radius: var(--tweak-text-block-radius); 7168 } 7169 7170 7171 7172.fe-block-b302e925235424b8faf8 { 7173 --tweak-text-block-radius: 0px 0px 0px 0px; 7174 } 7175 7176 7177 7178 .fe-block-b302e925235424b8faf8 { 7179 --tweak-text-block-blend 7180 : normal; 7181 } 7182 7183 7184 .fe-block-b302e925235424b8faf8 { 7185 --blur-value: blur(15px);} 7186 7187</style> 7188 7189<style id="override-container-styles"> 7190 @media screen and (max-width: 767px) { 7191 7192 7193 7194#block-b302e925235424b8faf8 { 7195 7196 } 7197 } 7198 7199 7200 @media screen and (max-width: 767px) { 7201 #block-b302e925235424b8faf8 .sqs-html-content { 7202 7203 } 7204 } 7205 7206 @media screen and (max-width: 767px) { 7207 7208 7209 7210 7211 7212 7213 }</style> 7214<style class="transform-vars"> 7215 .fe-block-b302e925235424b8faf8 { 7216 --opacity: 100%; 7217 --translate-x: 0px; 7218 --translate-y: 0px; 7219 --rotation: 0deg; 7220 --scale-x: 100%; 7221 --scale-y: 100%; 7222 --skew-x: 0deg; 7223 --skew-y: 0deg; 7224 --origin-x: 50%; 7225 --origin-y: 50%; 7226 --block-transform: none; 7227 7228 opacity: var(--opacity, 1); 7229 transform: var(--block-transform); 7230 transform-origin: var(--origin-x) var(--origin-y); 7231 } 7232 </style><style class="transform-overrides-vars"> 7233 7234</style> 7235 7236 7237 7238 7239</div> 7240</div></div></div><div class="fe-block fe-block-yui_3_17_2_1_1779162759229_3183"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-socialaccountlinks social-account-links-block social-account-links-v2-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.socialLinks/1b41570c-ac43-450a-a6b6-c2323713107e_730/website.components.socialLinks.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.socialLinks/1b41570c-ac43-450a-a6b6-c2323713107e_730/website.components.socialLinks.visitor.js"]" data-block-type="1337" data-definition-name="website.components.socialLinks" data-sqsp-block="social-links" data-website-component-id="yui_3_17_2_1_1779162759229_3183" id="block-yui_3_17_2_1_1779162759229_3183"><div class="sqs-block-content"> 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265<div class="sqs-block-socialaccountlinks-content"> 7266 <div class="sqs-svg-icon--outer social-icon-alignment-left social-icons-color-black social-icons-size-large social-icons-shape-circle social-icons-style-solid"> 7267 <style> 7268 7269 #block-yui_3_17_2_1_1779162759229_3183 { 7270 --social-icons-justify-content: flex-start; 7271 --social-icons-dimension: 36px;--social-icons-gap: 10px; 7272 --social-icons-border-thickness: 2px; 7273 } 7274 7275 7276 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--wrapper { 7277 --si-border-radius: 50%;--si-scale: 1;
7277--si-box-shadow: none;--si-fill-icon: var(--si-contrast);--si-fill-icon-fade: var(--si-contrast-faded);--si-fill-icon-hover: var(--si-contrast);--si-fill-mask: transparent;--si-fill-mask-fade: transparent;--si-fill-mask-hover: transparent;--si-bg: var(--si-primary);--si-bg-fade: var(--si-primary-faded);--si-bg-hover: var(--si-primary); 7278 } 7279 7280 7281 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list { 7282 justify-content: var(--social-icons-justify-content, center); 7283 column-gap: var(--social-icons-gap, 12px); 7284 row-gap: var(--social-icons-gap, 12px); 7285 } 7286 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--wrapper { 7287 width: var(--social-icons-dimension, 20px); 7288 height: var(--social-icons-dimension, 20px); 7289 margin: 0; 7290 border: none; 7291 background-color: var(--si-bg, transparent); 7292 box-shadow: var(--si-box-shadow, none); 7293 border-radius: var(--si-border-radius, 0); 7294 } 7295 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--wrapper > div { 7296 transform: scale(var(--si-scale, 1)); 7297 } 7298 #block-yui_3_17_2_1_1779162759229_3183 .sqs-use--icon { 7299 fill: var(--si-fill-icon, transparent); 7300 } 7301 #block-yui_3_17_2_1_1779162759229_3183 .sqs-use--mask { 7302 fill: var(--si-fill-mask, transparent); 7303 } 7304 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper { 7305 background-color: var(--si-bg-fade, var(--si-bg, transparent)); 7306 } 7307 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper .sqs-use--icon { 7308 fill: var(--si-fill-icon-fade, var(--si-fill-icon, transparent)); 7309 } 7310 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper .sqs-use--mask { 7311 fill: var(--si-fill-mask-fade, var(--si-fill-mask, transparent)); 7312 } 7313 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper:hover { 7314 background-color: var(--si-bg-hover, var(--si-bg, transparent)); 7315 } 7316 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper:hover .sqs-use--icon { 7317 fill: var(--si-fill-icon-hover, var(--si-fill-icon, transparent)); 7318 } 7319 #block-yui_3_17_2_1_1779162759229_3183 .sqs-svg-icon--list:hover .sqs-svg-icon--wrapper:hover .sqs-use--mask { 7320 fill: var(--si-fill-mask-hover, var(--si-fill-mask, transparent)); 7321 } 7322 </style> 7323 <nav class="sqs-svg-icon--list"> 7324 7325 7326 <a 7327 href="https://www.facebook.com/cpagNZ" 7328 target="_blank" 7329 class="sqs-svg-icon--wrapper facebook-unauth" 7330 aria-label="Facebook" 7331 > 7332 <div> 7333 <svg class="sqs-svg-icon--social" viewBox="0 0 64 64"> 7334 <use class="sqs-use--icon" xlink:href="/universal/svg/social-accounts.svg#facebook-unauth-icon"></use> 7335 <use class="sqs-use--mask" xlink:href="/universal/svg/social-accounts.svg#facebook-unauth-mask"></use> 7336 </svg> 7337 </div> 7338 </a> 7339 7340 7341 7342 <a 7343 href="https://x.com/cpagnz" 7344 target="_blank" 7345 class="sqs-svg-icon--wrapper x-formerly-twitter-unauth" 7346 aria-label="X" 7347 > 7348 <div> 7349 <svg class="sqs-svg-icon--social" viewBox="0 0 64 64"> 7350 <use class="sqs-use--icon" xlink:href="/universal/svg/social-accounts.svg#x-formerly-twitter-unauth-icon"></use> 7351 <use class="sqs-use--mask" xlink:href="/universal/svg/social-accounts.svg#x-formerly-twitter-unauth-mask"></use> 7352 </svg> 7353 </div> 7354 </a> 7355 7356 7357 7358 <a 7359 href="https://www.instagram.com/child_poverty_action_group_nz/" 7360 target="_blank" 7361 class="sqs-svg-icon--wrapper instagram-unauth" 7362 aria-label="Instagram" 7363 > 7364 <div> 7365 <svg class="sqs-svg-icon--social" viewBox="0 0 64 64"> 7366 <use class="sqs-use--icon" xlink:href="/universal/svg/social-accounts.svg#instagram-unauth-icon"></use> 7367 <use class="sqs-use--mask" xlink:href="/universal/svg/social-accounts.svg#instagram-unauth-mask"></use> 7368 </svg> 7369 </div> 7370 </a> 7371 7372 7373 7374 <a 7375 href="https://www.linkedin.com/company/child-poverty-action-group-nz/" 7376 target="_blank" 7377 class="sqs-svg-icon--wrapper linkedin-unauth" 7378 aria-label="LinkedIn" 7379 > 7380 <div> 7381 <svg class="sqs-svg-icon--social" viewBox="0 0 64 64"> 7382 <use class="sqs-use--icon" xlink:href="/universal/svg/social-accounts.svg#linkedin-unauth-icon"></use> 7383 <use class="sqs-use--mask" xlink:href="/universal/svg/social-accounts.svg#linkedin-unauth-mask"></use> 7384 </svg> 7385 </div> 7386 </a> 7387 7388 7389 </nav> 7390 </div> 7391 7392 7393<style id="container-styles">#block-yui_3_17_2_1_1779162759229_3183 { 7394 7395 7396 7397 } 7398 7399 #block-yui_3_17_2_1_1779162759229_3183 .sqs-block-socialaccountlinks-content { 7400 7401 } 7402 7403 .fe-block-yui_3_17_2_1_1779162759229_3183 { 7404 mix-blend-mode: var(--tweak-social-links-block-blend); 7405 border-radius: var(--tweak-social-links-block-radius); 7406 } 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417</style> 7418 7419<style id="override-container-styles"> 7420 @media screen and (max-width: 767px) { 7421 7422 7423 7424#block-yui_3_17_2_1_1779162759229_3183 { 7425 7426 } 7427 } 7428 7429 7430 @media screen and (max-width: 767px) { 7431 #block-yui_3_17_2_1_1779162759229_3183 .sqs-block-socialaccountlinks-content { 7432 7433 } 7434 } 7435 7436 @media screen and (max-width: 767px) { 7437 7438 7439 7440 7441 7442 7443 }</style> 7444 7445 <style class="transform-overrides-vars"> 7446 7447</style> 7448 7449 7450 7451 7452 7453 7454</div> 7455</div></div></div><div class="fe-block fe-block-83c73464c5fe95b36ff8"><div class="sqs-block website-component-block sqs-block-website-component sqs-block-html html-block" data-block-css="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.styles.css"]" data-block-scripts="["https://definitions.sqspcdn.com/website-component-definition/static-assets/website.components.html/c2612303-3724-4989-80df-8d98bd195466_952/website.components.html.visitor.js"]" data-block-type="1337" data-definition-name="website.components.html" data-sqsp-block="text" data-website-component-id="83c73464c5fe95b36ff8" id="block-83c73464c5fe95b36ff8"><div class="sqs-block-content"><div class="sqs-text-block-container"> 7456 7457 <div class="sqs-html-content" data-sqsp-text-block-content><p style="white-space:pre-wrap;" class="sqsrte-small" data-rte-preserve-empty="true"><span class="sqsrte-text-color--black">Child Poverty Action Group Inc is a registered charity. Copyright © Child Poverty Action Group Inc.</span></p></div> 7458 7459 7460 7461<style id="container-styles">#block-83c73464c5fe95b36ff8 { 7462 7463 --stroke-style: none;--stroke-thickness: 2px; 7464 7465 --tweak-text-block-stroke-color: hsla(var(--black-hsl), 1) 7466; 7467 7468 7469 7470 7471 7472 7473 7474 } 7475 7476 #block-83c73464c5fe95b36ff8 .sqs-html-content { 7477 7478 --tweak-text-block-padding: 6% 6% 6% 6%; 7479 --tweak-text-block-padding: initial; 7480} 7481 7482 .fe-block-83c73464c5fe95b36ff8 { 7483 mix-blend-mode: var(--tweak-text-block-blend 7484 ); 7485 border-radius: var(--tweak-text-block-radius); 7486 } 7487 7488 7489 7490.fe-block-83c73464c5fe95b36ff8 { 7491 --tweak-text-block-radius: 0px 0px 0px 0px; 7492 } 7493 7494 7495 7496 .fe-block-83c73464c5fe95b36ff8 { 7497 --tweak-text-block-blend 7498 : normal; 7499 } 7500 7501 7502 .fe-block-83c73464c5fe95b36ff8 { 7503 --blur-value: blur(15px);} 7504 7505</style> 7506 7507<style id="override-container-styles"> 7508 @media screen and (max-width: 767px) { 7509 7510 7511 7512#block-83c73464c5fe95b36ff8 { 7513 7514 } 7515 } 7516 7517 7518 @media screen and (max-width: 767px) { 7519 #block-83c73464c5fe95b36ff8 .sqs-html-content { 7520 7521 } 7522 } 7523 7524 @media screen and (max-width: 767px) { 7525 7526 7527 7528 7529 7530 7531 }</style> 7532<style class="transform-vars"> 7533 .fe-block-83c73464c5fe95b36ff8 { 7534 --opacity: 100%; 7535 --translate-x: 0px; 7536 --translate-y: 0px; 7537 --rotation: 0deg; 7538 --scale-x: 100%; 7539 --scale-y: 100%; 7540 --skew-x: 0deg; 7541 --skew-y: 0deg; 7542 --origin-x: 50%; 7543 --origin-y: 50%; 7544 --block-transform: none; 7545 7546 opacity: var(--opacity, 1); 7547 transform: var(--block-transform); 7548 transform-origin: var(--origin-x) var(--origin-y); 7549 } 7550 </style><style class="transform-overrides-vars"> 7551 7552</style> 7553 7554 7555 7556 7557</div> 7558</div></div></div></div></div> 7559 </div> 7560 7561 </div> 7562 7563</section> 7564 7565 7566</footer> 7567 7568 7569 </div> 7570 7571
7571<script defer="true" src="https://static1.squarespace.com/static/vta/5c5a519771c10ba3470d8101/scripts/site-bundle.2bcf02f8c5ad7330e642863a490fa4ff.js" type="text/javascript"></script>
7571 7572 <svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display:none" data-usage="social-icons-svg"><symbol id="facebook-unauth-icon" viewBox="0 0 64 64"><path d="M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z"/></symbol><symbol id="facebook-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z"/></symbol><symbol id="x-formerly-twitter-unauth-icon" viewBox="0 0 64 64"><g class="svg-icon"><path d="M34.426 29.9327L43.9189 18.5H41.6694L33.4267 28.4268L26.8432 18.5H19.25L29.2055 33.5111L19.25 45.5H21.4997L30.2042 35.0169L37.1568 45.5H44.75L34.426 29.9327ZM22.3102 20.2546H25.7656L41.6704 43.8252H38.2151L22.3102 20.2546Z"/></g></symbol><symbol id="x-formerly-twitter-unauth-mask" viewBox="0 0 64 64"><g class="svg-mask"><path d="M38.2151 43.8252H41.6704L25.7656 20.2546H22.3102L38.2151 43.8252Z" /><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H64V64H0V0ZM43.9189 18.5L34.426 29.9327L44.75 45.5H37.1568L30.2042 35.0169L21.4997 45.5H19.25L29.2055 33.5111L19.25 18.5H26.8432L33.4267 28.4268L41.6694 18.5H43.9189Z"/></g></symbol><symbol id="instagram-unauth-icon" viewBox="0 0 64 64"><path d="M46.91,25.816c-0.073-1.597-0.326-2.687-0.697-3.641c-0.383-0.986-0.896-1.823-1.73-2.657c-0.834-0.834-1.67-1.347-2.657-1.73c-0.954-0.371-2.045-0.624-3.641-0.697C36.585,17.017,36.074,17,32,17s-4.585,0.017-6.184,0.09c-1.597,0.073-2.687,0.326-3.641,0.697c-0.986,0.383-1.823,0.896-2.657,1.73c-0.834,0.834-1.347,1.67-1.73,2.657c-0.371,0.954-0.624,2.045-0.697,3.641C17.017,27.415,17,27.926,17,32c0,4.074,0.017,4.585,0.09,6.184c0.073,1.597,0.326,2.687,0.697,3.641c0.383,0.986,0.896,1.823,1.73,2.657c0.834,0.834,1.67,1.347,2.657,1.73c0.954,0.371,2.045,0.624,3.641,0.697C27.415,46.983,27.926,47,32,47s4.585-0.017,6.184-0.09c1.597-0.073,2.687-0.326,3.641-0.697c0.986-0.383,1.823-0.896,2.657-1.73c0.834-0.834,1.347-1.67,1.73-2.657c0.371-0.954,0.624-2.045,0.697-3.641C46.983,36.585,47,36.074,47,32S46.983,27.415,46.91,25.816z M44.21,38.061c-0.067,1.462-0.311,2.257-0.516,2.785c-0.272,0.7-0.597,1.2-1.122,1.725c-0.525,0.525-1.025,0.85-1.725,1.122c-0.529,0.205-1.323,0.45-2.785,0.516c-1.581,0.072-2.056,0.087-6.061,0.087s-4.48-0.015-6.061-0.087c-1.462-0.067-2.257-0.311-2.785-0.516c-0.7-0.272-1.2-0.597-1.725-1.122c-0.525-0.525-0.85-1.025-1.122-1.725c-0.205-0.529-0.45-1.323-0.516-2.785c-0.072-1.582-0.087-2.056-0.087-6.061s0.015-4.48,0.087-6.061c0.067-1.462,0.311-2.257,0.516-2.785c0.272-0.7,0.597-1.2,1.122-1.725c0.525-0.525,1.025-0.85,1.725-1.122c0.529-0.205,1.323-0.45,2.785-0.516c1.582-0.072,2.056-0.087,6.061-0.087s4.48,0.015,6.061,0.087c1.462,0.067,2.257,0.311,2.785,0.516c0.7,0.272,1.2,0.597,1.725,1.122c0.525,0.525,0.85,1.025,1.122,1.725c0.205,0.529,0.45,1.323,0.516,2.785c0.072,1.582,0.087,2.056,0.087,6.061S44.282,36.48,44.21,38.061z M32,24.297c-4.254,0-7.703,3.449-7.703,7.703c0,4.254,3.449,7.703,7.703,7.703c4.254,0,7.703-3.449,7.703-7.703C39.703,27.746,36.254,24.297,32,24.297z M32,37c-2.761,0-5-2.239-5-5c0-2.761,2.239-5,5-5s5,2.239,5,5C37,34.761,34.761,37,32,37z M40.007,22.193c-0.994,0-1.8,0.806-1.8,1.8c0,0.994,0.806,1.8,1.8,1.8c0.994,0,1.8-0.806,1.8-1.8C41.807,22.999,41.001,22.193,40.007,22.193z"/></symbol><symbol id="instagram-unauth-mask" viewBox="0 0 64 64"><path d="M43.693,23.153c-0.272-0.7-0.597-1.2-1.122-1.725c-0.525-0.525-1.025-0.85-1.725-1.122c-0.529-0.205-1.323-0.45-2.785-0.517c-1.582-0.072-2.056-0.087-6.061-0.087s-4.48,0.015-6.061,0.087c-1.462,0.067-2.257,0.311-2.785,0.517c-0.7,0.272-1.2,0.597-1.725,1.122c-0.525,0.525-0.85,1.025-1.122,1.725c-0.205,0.529-0.45,1.323-0.516,2.785c-0.072,1.582-0.087,2.056-0.087,6.061s0.015,4.48,0.087,6.061c0.067,1.462,0.311,2.257,0.516,2.785c0.272,0.7,0.597,1.2,1.122,1.725s1.025,0.85,1.725,1.122c0.529,0.205,1.323,0.45,2.785,0.516c1.581,0.072,2.056,0.087,6.061,0.087s4.48-0.015,6.061-0.087c1.462-0.067,2.257-0.311,2.785-0.516c0.7-0.272,1.2-0.597,1.725-1.122s0.85-1.025,1.122-1.725c0.205-0.529,0.45-1.323,0.516-2.785c0.072-1.582,0.087-2.056,0.087-6.061s-0.015-4.48-0.087-6.061C44.143,24.476,43.899,23.682,43.693,23.153z M32,39.703c-4.254,0-7.703-3.449-7.703-7.703s3.449-7.703,7.703-7.703s7.703,3.449,7.703,7.703S36.254,39.703,32,39.703z M40.007,25.793c-0.994,0-1.8-0.806-1.8-1.8c0-0.994,0.806-1.8,1.8-1.8c0.994,0,1.8,0.806,1.8,1.8C41.807,24.987,41.001,25.793,40.007,25.793z M0,0v64h64V0H0z M46.91,38.184c-0.073,1.597-0.326,2.687-0.697,3.641c-0.383,0.986-0.896,1.823-1.73,2.657c-0.834,0.834-1.67,1.347-2.657,1.73c-0.954,0.371-2.044,0.624-3.641,0.697C36.585,46.983,36.074,47,32,47s-4.585-0.017-6.184-0.09c-1.597-0.073-2.687-0.326-3.641-0.697c-0.986-0.383-1.823-0.896-2.657-1.73c-0.834-0.834-1.347-1.67-1.73-2.657c-0.371-0.954-0.624-2.044-0.697-3.641C17.01
75727,36.585,17,36.074,17,32c0-4.074,0.017-4.585,0.09-6.185c0.073-1.597,0.326-2.687,0.697-3.641c0.383-0.986,0.896-1.823,1.73-2.657c0.834-0.834,1.67-1.347,2.657-1.73c0.954-0.371,2.045-0.624,3.641-0.697C27.415,17.017,27.926,17,32,17s4.585,0.017,6.184,0.09c1.597,0.073,2.687,0.326,3.641,0.697c0.986,0.383,1.823,0.896,2.657,1.73c0.834,0.834,1.347,1.67,1.73,2.657c0.371,0.954,0.624,2.044,0.697,3.641C46.983,27.415,47,27.926,47,32C47,36.074,46.983,36.585,46.91,38.184z M32,27c-2.761,0-5,2.239-5,5s2.239,5,5,5s5-2.239,5-5S34.761,27,32,27z"/></symbol><symbol id="linkedin-unauth-icon" viewBox="0 0 64 64"><path d="M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z"/></symbol><symbol id="linkedin-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M25.8,44h-5.4V26.6h5.4V44z M23.1,24.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1 c1.7,0,3.1,1.4,3.1,3.1C26.2,22.9,24.8,24.3,23.1,24.3z M46,44h-5.4v-8.4c0-2,0-4.6-2.8-4.6c-2.8,0-3.2,2.2-3.2,4.5V44h-5.4V26.6 h5.2V29h0.1c0.7-1.4,2.5-2.8,5.1-2.8c5.5,0,6.5,3.6,6.5,8.3V44z"/></symbol></svg> 7573 7574 </body> 7575</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.