1<!doctype html> 2<html 3 4 lang="en" 5> 6 <head> 7
7<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
7 8
8<script> 9 (function(g,e,o,t,a,r,ge,tl,y){ 10 t=g.getElementsByTagName(o)[0];y=g.createElement(e);y.async=true; 11 y.src='https://g1584674684.co/geoinsights?id=-P-BAvaSh9pjcak91txx&refurl='+g.referrer+'&winurl='+encodeURIComponent(window.location); 12 t.parentNode.insertBefore(y,t); 13 })(document,'script','head'); 14 </script>
14 15 16 <!-- Start Quantcast Tag --> 17
17<script type="text/javascript"> 18 window._qevents = window._qevents || []; 19 (function() { 20 var elem = document.createElement('script'); 21 elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; 22 elem.async = true; 23 elem.type = "text/javascript"; 24 var scpt = document.getElementsByTagName('script')[0]; 25 scpt.parentNode.insertBefore(elem, scpt); 26 })(); 27 28 window._qevents.push({ 29 "qacct": "p-dyEjJyPSPMzYL", 30 "labels": "_fp.event.Fontaines DC Remarketing" 31 }); 32 </script>
32 33 <!-- End Quantcast tag --> 34 35 36<link 37 rel="icon" 38 type="image/png" 39 href="//fontainesdc.com/cdn/shop/files/fdc-fav.jpg?crop=center&height=32&v=1786969116&width=32" 40 > 41 42 <link 43 rel="expect" 44 href="#MainContent" 45 blocking="render" 46 id="view-transition-render-blocker" 47 > 48 49 50 51<meta charset="utf-8"> 52<meta 53 http-equiv="X-UA-Compatible" 54 content="IE=edge" 55> 56<meta 57 name="viewport" 58 content="width=device-width,initial-scale=1" 59> 60<meta 61 name="theme-color" 62 content="" 63> 64 65<meta 66 property="og:site_name" 67 content="Fontaines D.C." 68> 69<meta 70 property="og:url" 71 content="https://fontainesdc.com/pages/live" 72> 73<meta 74 property="og:title" 75 content="Live" 76> 77<meta 78 property="og:type" 79 content="website" 80> 81<meta 82 property="og:description" 83 content="The official website of Fontaines D.C. â explore new music, tour dates, exclusive merch and the latest news from the Dublin band." 84><meta 85 property="og:image" 86 content="http://fontainesdc.com/cdn/shop/files/fdcshare.webp?v=1786997962" 87 > 88 <meta 89 property="og:image:secure_url" 90 content="https://fontainesdc.com/cdn/shop/files/fdcshare.webp?v=1786997962" 91 > 92 <meta 93 property="og:image:width" 94 content="1200" 95 > 96 <meta 97 property="og:image:height" 98 content="628" 99 ><meta 100 name="twitter:card" 101 content="summary_large_image" 102> 103<meta 104 name="twitter:title" 105 content="Live" 106> 107<meta 108 name="twitter:description" 109 content="The official website of Fontaines D.C. â explore new music, tour dates, exclusive merch and the latest news from the Dublin band." 110> 111 112<title> 113 Live 114 – Fontaines D.C.</title> 115 116<link 117 rel="canonical" 118 href="https://fontainesdc.com/pages/live" 119> 120 121 122<link href="https://assets.mlcdn.com/fonts.css?version=1776073" rel="stylesheet" type="text/css" media="all" /> 123<link href="//fontainesdc.com/cdn/shop/t/35/assets/mailerlite.css?v=99354018152087331411786997000" rel="stylesheet" type="text/css" media="all" /> 124<link href="//fontainesdc.com/cdn/shop/t/35/assets/overflow-list.css?v=16727044177065489451786997004" as="style" rel="preload"> 125<link href="//fontainesdc.com/cdn/shop/t/35/assets/base.css?v=4539897952111780041786997002" rel="stylesheet" type="text/css" media="all" /> 126<link href="//fontainesdc.com/cdn/shop/t/35/assets/fdc.css?v=95651129812541971011790840161" rel="stylesheet" type="text/css" media="all" /> 127<link href="//fontainesdc.com/cdn/fonts/inter/inter_n9.5eeac4b640934cb12c98bb58e5b212c8a842a731.woff2" as="font" type="font/woff2" fetchpriority="low" crossorigin="anonymous" rel="preload"> 128<link href="//fontainesdc.com/cdn/fonts/inter/inter_n9.5eeac4b640934cb12c98bb58e5b212c8a842a731.woff2" as="font" type="font/woff2" fetchpriority="low" crossorigin="anonymous" rel="preload"> 129<link href="//fontainesdc.com/cdn/fonts/inter/inter_n9.5eeac4b640934cb12c98bb58e5b212c8a842a731.woff2" as="font" type="font/woff2" fetchpriority="low" crossorigin="anonymous" rel="preload"> 130<link href="//fontainesdc.com/cdn/fonts/inter/inter_n9.5eeac4b640934cb12c98bb58e5b212c8a842a731.woff2" as="font" type="font/woff2" fetchpriority="low" crossorigin="anonymous" rel="preload"> 131 132
133<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 133
133
134<script type="importmap"> 135 { 136 "imports": { 137 "@theme/overflow-list": "//fontainesdc.com/cdn/shop/t/35/assets/overflow-list.js?v=46858356770684902511786997005", 138 "@theme/component": "//fontainesdc.com/cdn/shop/t/35/assets/component.js?v=175690430936884589731786997003", 139 "@theme/dialog": "//fontainesdc.com/cdn/shop/t/35/assets/dialog.js?v=144816527575655702281786997004", 140 "@theme/events": "//fontainesdc.com/cdn/shop/t/35/assets/events.js?v=99399773727497444581786996999", 141 "@shopify/events": "https://cdn.shopify.com/storefront/standard-events.js", 142 "@theme/view-event-elements": "//fontainesdc.com/cdn/shop/t/35/assets/view-event-elements.js?v=34258756885466567141786996999", 143 "@theme/focus": "//fontainesdc.com/cdn/shop/t/35/assets/focus.js?v=60436577539430446401786997003", 144 "@theme/morph": "//fontainesdc.com/cdn/shop/t/35/assets/morph.js?v=182601902166245204061786997003", 145 "@theme/paginated-list": "//fontainesdc.com/cdn/shop/t/35/assets/paginated-list.js?v=71290058904108491691786997000", 146 "@theme/performance": "//fontainesdc.com/cdn/shop/t/35/assets/performance.js?v=171015751390534793081786997001", 147 "@theme/product-form": "//fontainesdc.com/cdn/shop/t/35/assets/product-form.js?v=75424241456978697291786997005", 148 "@theme/recently-viewed-products": "//fontainesdc.com/cdn/shop/t/35/assets/recently-viewed-products.js?v=94729125001750262651786997005", 149 "@theme/scrolling": "//fontainesdc.com/cdn/shop/t/35/assets/scrolling.js?v=162288454571026455011786997002", 150 "@theme/section-renderer": "//fontainesdc.com/cdn/shop/t/35/assets/section-renderer.js?v=44511745960026958271786997004", 151 "@theme/section-hydration": "//fontainesdc.com/cdn/shop/t/35/assets/section-hydration.js?v=108434990705342316311786997003", 152 "@theme/money-formatting": "//fontainesdc.com/cdn/shop/t/35/assets/money-formatting.js?v=160151249720534550011786997003", 153 "@theme/utilities": "//fontainesdc.com/cdn/shop/t/35/assets/utilities.js?v=59721549236175535191786997004", 154 "@theme/variant-picker": "//fontainesdc.com/cdn/shop/t/35/assets/variant-picker.js?v=21977969907998071131786997004", 155 "@theme/media-gallery": "//fontainesdc.com/cdn/shop/t/35/assets/media-gallery.js?v=154207211298275592001786997001", 156 "@theme/quick-add": "//fontainesdc.com/cdn/shop/t/35/assets/quick-add.js?v=43065342542833269571786997003", 157 "@theme/paginated-list-aspect-ratio": "//fontainesdc.com/cdn/shop/t/35/assets/paginated-list-aspect-ratio.js?v=25254270272143792451786996999", 158 "@theme/popover-polyfill": "//fontainesdc.com/cdn/shop/t/35/assets/popover-polyfill.js?v=119029313658895111201786997001", 159 "@theme/component-quantity-selector": "//fontainesdc.com/cdn/shop/t/35/assets/component-quantity-selector.js?v=67906657287482036641786997002", 160 "@theme/comparison-slider": "//fontainesdc.com/cdn/shop/t/35/assets/comparison-slider.js?v=106705562947035711941786997000", 161 "@theme/sticky-add-to-cart": "//fontainesdc.com/cdn/shop/t/35/assets/sticky-add-to-cart.js?v=130489688094345781431786997001", 162 "@theme/fly-to-cart": "//fontainesdc.com/cdn/shop/t/35/assets/fly-to-cart.js?v=48483246440248933081786997002", 163 "@theme/scroll-container": "//fontainesdc.com/cdn/shop/t/35/assets/scroll-container.js?v=127018149358875384221786997001", 164 "@theme/theme-drawer": "//fontainesdc.com/cdn/shop/t/35/assets/theme-drawer.js?v=155110645205299884131786997002" 165 } 166 } 167</script>
167<script 168 src="//fontainesdc.com/cdn/shop/t/35/assets/standard-actions-override.js?v=171683365447094389611786997006" 169 type="module" 170></script>
170 171
172<script 173 src="//fontainesdc.com/cdn/shop/t/35/assets/page-view-event.js?v=12823247316348680231786997006" 174 type="module" 175 defer 176></script>
176 177
178<script 179 src="//fontainesdc.com/cdn/shop/t/35/assets/view-transitions.js?v=92646219599560127141786997000" 180 async 181 182 blocking="render" 183 184></script>
184 185 186<link 187 rel="modulepreload" 188 href="//fontainesdc.com/cdn/shop/t/35/assets/utilities.js?v=59721549236175535191786997004" 189 fetchpriority="low" 190> 191<link 192 rel="modulepreload" 193 href="//fontainesdc.com/cdn/shop/t/35/assets/component.js?v=175690430936884589731786997003" 194 fetchpriority="low" 195> 196<link 197 rel="modulepreload" 198 href="//fontainesdc.com/cdn/shop/t/35/assets/section-renderer.js?v=44511745960026958271786997004" 199 fetchpriority="low" 200> 201<link 202 rel="modulepreload" 203 href="//fontainesdc.com/cdn/shop/t/35/assets/section-hydration.js?v=108434990705342316311786997003" 204 fetchpriority="low" 205> 206<link 207 rel="modulepreload" 208 href="//fontainesdc.com/cdn/shop/t/35/assets/morph.js?v=182601902166245204061786997003" 209 fetchpriority="low" 210> 211 212 213 214<link 215 rel="modulepreload" 216 href="//fontainesdc.com/cdn/shop/t/35/assets/focus.js?v=60436577539430446401786997003" 217 fetchpriority="low" 218> 219<link 220 rel="modulepreload" 221 href="//fontainesdc.com/cdn/shop/t/35/assets/recently-viewed-products.js?v=94729125001750262651786997005" 222 fetchpriority="low" 223> 224<link 225 rel="modulepreload" 226 href="//fontainesdc.com/cdn/shop/t/35/assets/scrolling.js?v=162288454571026455011786997002" 227 fetchpriority="low" 228> 229<link 230 rel="modulepreload" 231 href="//fontainesdc.com/cdn/shop/t/35/assets/events.js?v=99399773727497444581786996999" 232 fetchpriority="low" 233>
234<script 235 src="//fontainesdc.com/cdn/shop/t/35/assets/popover-polyfill.js?v=119029313658895111201786997001" 236 type="module" 237 fetchpriority="low" 238></script>
vendor: 1 bytes, line 238
238
239<script 240 src="//fontainesdc.com/cdn/shop/t/35/assets/overflow-list.js?v=46858356770684902511786997005" 241 type="module" 242 fetchpriority="low" 243></script>
vendor: 1 bytes, line 243
243
244<script 245 src="//fontainesdc.com/cdn/shop/t/35/assets/quick-add.js?v=43065342542833269571786997003" 246 type="module" 247 fetchpriority="low" 248></script>
248 249 250
250<script 251 src="//fontainesdc.com/cdn/shop/t/35/assets/cart-discount.js?v=138990160074728809221786997004" 252 type="module" 253 fetchpriority="low" 254 ></script>
254 255 256
257<script 258 src="//fontainesdc.com/cdn/shop/t/35/assets/dialog.js?v=144816527575655702281786997004" 259 type="module" 260 fetchpriority="low" 261></script>
vendor: 1 bytes, line 261
261
262<script 263 src="//fontainesdc.com/cdn/shop/t/35/assets/variant-picker.js?v=21977969907998071131786997004" 264 type="module" 265 fetchpriority="low" 266></script>
vendor: 1 bytes, line 266
266
267<script 268 src="//fontainesdc.com/cdn/shop/t/35/assets/product-card.js?v=37238785082130356571786997004" 269 type="module" 270 fetchpriority="low" 271></script>
vendor: 1 bytes, line 271
271
272<script 273 src="//fontainesdc.com/cdn/shop/t/35/assets/product-form.js?v=75424241456978697291786997005" 274 type="module" 275 fetchpriority="low" 276></script>
vendor: 1 bytes, line 276
276
277<script 278 src="//fontainesdc.com/cdn/shop/t/35/assets/fly-to-cart.js?v=48483246440248933081786997002" 279 type="module" 280 fetchpriority="low" 281></script>
vendor: 1 bytes, line 281
281
282<script 283 src="//fontainesdc.com/cdn/shop/t/35/assets/accordion-custom.js?v=105323356731531709191786996999" 284 type="module" 285 fetchpriority="low" 286></script>
vendor: 1 bytes, line 286
286
287<script 288 src="//fontainesdc.com/cdn/shop/t/35/assets/media.js?v=37825095869491791421786997002" 289 type="module" 290 fetchpriority="low" 291></script>
vendor: 1 bytes, line 291
291
292<script 293 src="//fontainesdc.com/cdn/shop/t/35/assets/product-price.js?v=179333985604099329921786997000" 294 type="module" 295 fetchpriority="low" 296></script>
vendor: 1 bytes, line 296
296
297<script 298 src="//fontainesdc.com/cdn/shop/t/35/assets/product-sku.js?v=28741104639155857071786997001" 299 type="module" 300 fetchpriority="low" 301></script>
vendor: 1 bytes, line 301
301
302<script 303 src="//fontainesdc.com/cdn/shop/t/35/assets/product-inventory.js?v=7173209571153411411786996999" 304 type="module" 305 fetchpriority="low" 306></script>
vendor: 1 bytes, line 306
306
307<script 308 src="//fontainesdc.com/cdn/shop/t/35/assets/show-more.js?v=94563802205717136101786997005" 309 type="module" 310 fetchpriority="low" 311></script>
vendor: 1 bytes, line 311
311
312<script 313 src="//fontainesdc.com/cdn/shop/t/35/assets/slideshow.js?v=28306258147874261831786997005" 314 type="module" 315 fetchpriority="low" 316></script>
vendor: 1 bytes, line 316
316
317<script 318 src="//fontainesdc.com/cdn/shop/t/35/assets/layered-slideshow.js?v=30135417790894624731786997005" 319 type="module" 320 fetchpriority="low" 321></script>
vendor: 1 bytes, line 321
321
322<script 323 src="//fontainesdc.com/cdn/shop/t/35/assets/anchored-popover.js?v=143987075196095667371786997000" 324 type="module" 325 fetchpriority="low" 326></script>
vendor: 1 bytes, line 326
326
327<script 328 src="//fontainesdc.com/cdn/shop/t/35/assets/floating-panel.js?v=151277338116891310371786997001" 329 type="module" 330 fetchpriority="low" 331></script>
vendor: 1 bytes, line 331
331
332<script 333 src="//fontainesdc.com/cdn/shop/t/35/assets/video-background.js?v=25237992823806706551786997005" 334 type="module" 335 fetchpriority="low" 336></script>
vendor: 1 bytes, line 336
336
337<script 338 src="//fontainesdc.com/cdn/shop/t/35/assets/component-quantity-selector.js?v=67906657287482036641786997002" 339 type="module" 340 fetchpriority="low" 341></script>
vendor: 1 bytes, line 341
341
342<script 343 src="//fontainesdc.com/cdn/shop/t/35/assets/media-gallery.js?v=154207211298275592001786997001" 344 type="module" 345 fetchpriority="low" 346></script>
vendor: 1 bytes, line 346
346
347<script 348 src="//fontainesdc.com/cdn/shop/t/35/assets/rte-formatter.js?v=40306132146590816021786997000" 349 type="module" 350 fetchpriority="low" 351></script>
vendor: 1 bytes, line 351
351
352<script 353 src="//fontainesdc.com/cdn/shop/t/35/assets/volume-pricing.js?v=15442793518842484731786997001" 354 type="module" 355 fetchpriority="low" 356></script>
vendor: 1 bytes, line 356
356
357<script 358 src="//fontainesdc.com/cdn/shop/t/35/assets/price-per-item.js?v=115937180292451397851786997003" 359 type="module" 360 fetchpriority="low" 361></script>
vendor: 1 bytes, line 361
361
362<script 363 src="//fontainesdc.com/cdn/shop/t/35/assets/volume-pricing-info.js?v=94479640769665442661786997001" 364 type="module" 365 fetchpriority="low" 366></script>
366 367 368 369
369<script 370 src="//fontainesdc.com/cdn/shop/t/35/assets/localization.js?v=15585934801240115691786996999" 371 type="module" 372 fetchpriority="low" 373 ></script>
373 374 375 376 377
378<script 379 src="//fontainesdc.com/cdn/shop/t/35/assets/auto-close-details.js?v=58350291535404441581786997001" 380 defer="defer" 381></script>
381 382
383<script> 384 const Theme = { 385 translations: { 386 placeholder_image: `Placeholder image`, 387 added: `Added`, 388 recipient_form_fields_visible: `Recipient form fields are now visible`, 389 recipient_form_fields_hidden: `Recipient form fields are now hidden`, 390 recipient_form_error: `There was an error with the form submission`, 391 items_added_to_cart_one: `1 item added to cart`, 392 items_added_to_cart_other: `{{ count }} items added to cart`, 393 cart_count: `Total items in cart`, 394 }, 395 routes: { 396 cart_add_url: '/cart/add.js', 397 cart_change_url: '/cart/change', 398 cart_update_url: '/cart/update', 399 cart_url: '/cart', 400 predictive_search_url: '/search/suggest', 401 search_url: '/search', 402 }, 403 template: { 404 name: 'page.live', 405 }, 406 }; 407</script>
407 408<style data-shopify> 409 410 411 412 @font-face { 413 font-family: 'HelveticaNeueHeavy'; 414 src: url('https://cdn.shopify.com/s/files/1/0921/2621/6465/files/HelveticaNeueHeavy130.woff2?v=1784393578') format('woff2'), 415 url('https://cdn.shopify.com/s/files/1/0921/2621/6465/files/HelveticaNeueHeavy130.woff?v=1234393578') format('woff'); 416 font-weight: 900; 417 font-style: normal; 418 font-display: swap; 419} 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441@font-face { 442 font-family: Inter; 443 font-weight: 900; 444 font-style: normal; 445 font-display: swap; 446 src: url("//fontainesdc.com/cdn/fonts/inter/inter_n9.5eeac4b640934cb12c98bb58e5b212c8a842a731.woff2") format("woff2"), 447 url("//fontainesdc.com/cdn/fonts/inter/inter_n9.a68b28f7e46ea1faab81e409809ee4919dd6e3f0.woff") format("woff"); 448} 449@font-face { 450 font-family: Inter; 451 font-weight: 700; 452 font-style: normal; 453 font-display: swap; 454 src: url("//fontainesdc.com/cdn/fonts/inter/inter_n7.02711e6b374660cfc7915d1afc1c204e633421e4.woff2") format("woff2"), 455 url("//fontainesdc.com/cdn/fonts/inter/inter_n7.6dab87426f6b8813070abd79972ceaf2f8d3b012.woff") format("woff"); 456} 457@font-face { 458 font-family: Inter; 459 font-weight: 900; 460 font-style: italic; 461 font-display: swap; 462 src: url("//fontainesdc.com/cdn/fonts/inter/inter_i9.d229976d7ffd40dcab77d1b5d677b06fa3f92945.woff2") format("woff2"), 463 url("//fontainesdc.com/cdn/fonts/inter/inter_i9.ed2ed118dc454c50160c647d59717916128bea79.woff") format("woff"); 464} 465@font-face { 466 font-family: Inter; 467 font-weight: 700; 468 font-style: italic; 469 font-display: swap; 470 src: url("//fontainesdc.com/cdn/fonts/inter/inter_i7.b377bcd4cc0f160622a22d638ae7e2cd9b86ea4c.woff2") format("woff2"), 471 url("//fontainesdc.com/cdn/fonts/inter/inter_i7.7c69a6a34e3bb44fcf6f975857e13b9a9b25beb4.woff") format("woff"); 472} 473 474 475 :root { 476 /* Page Layout */ 477 --sidebar-width: 25rem; 478 --theme-drawer-width: 30rem; 479 --narrow-content-width: 36rem; 480 --normal-content-width: 42rem; 481 --wide-content-width: 46rem; 482 --narrow-page-width: 90rem; 483 --normal-page-width: 120rem; 484 --wide-page-width: 150rem; 485 486 /* Section Heights */ 487 --section-height-small: 15rem; 488 --section-height-medium: 25rem; 489 --section-height-large: 35rem; 490 491 @media screen and (min-width: 40em) { 492 --section-height-small: 40svh; 493 --section-height-medium: 55svh; 494 --section-height-large: 70svh; 495 } 496 497 @media screen and (min-width: 60em) { 498 --section-height-small: 50svh; 499 --section-height-medium: 65svh; 500 --section-height-large: 80svh; 501 } 502 503 /* Letter spacing */ 504 --letter-spacing-sm: 0.06em; 505 --letter-spacing-md: 0.13em; 506 507 /* Font families */ 508 --font-body--family: HelveticaNeueHeavy, Inter, sans-serif; 509 --font-body--style: normal; 510 --font-body--weight: 900; 511 --font-subheading--family: HelveticaNeueHeavy, Inter, sans-serif; 512 --font-subheading--style: normal; 513 --font-subheading--weight: 900; 514 --font-heading--family: HelveticaNeueHeavy, Inter, sans-serif; 515 --font-heading--style: normal; 516 --font-heading--weight: 900; 517 --font-accent--family: HelveticaNeueHeavy, Inter, sans-serif; 518 --font-accent--style: normal; 519 --font-accent--weight: 900; 520 521 /* Margin sizes */ 522 --font-heading--spacing: 0.25em; 523 --font-h1--spacing: var(--font-heading--spacing); 524 --font-h2--spacing: var(--font-heading--spacing); 525 --font-h3--spacing: var(--font-heading--spacing); 526 --font-h4--spacing: var(--font-heading--spacing); 527 --font-h5--spacing: var(--font-heading--spacing); 528 --font-h6--spacing: var(--font-heading--spacing); 529 --font-paragraph--spacing: 0.5em; 530 531 /** Z-Index / Layering */ 532 --layer-section-background: -2; 533 --layer-lowest: -1; 534 --layer-base: 0; 535 --layer-flat: 1; 536 --layer-raised: 2; 537 --layer-heightened: 4; 538 --layer-sticky: 8; 539 --layer-window-overlay: 10; 540 --layer-header-menu: 12; 541 --layer-overlay: 16; 542 --layer-menu-drawer: 18; 543 --layer-temporary: 20; 544 545 /* Max-width / Measure */ 546 --max-width--body-normal: 32.5em; 547 --max-width--body-narrow: 22.75em; 548 549 --max-width--heading-normal: 32.5em; 550 --max-width--heading-narrow: 19.5em; 551 552 --max-width--display-normal: 13em; 553 --max-width--display-narrow: 9.75em; 554 --max-width--display-tight: 3.25em; 555 556 /* Letter-spacing / Tracking */ 557 --letter-spacing--display-tight: -0.03em; 558 --letter-spacing--display-normal: 0em; 559 --letter-spacing--display-loose: 0.03em; 560 561 --letter-spacing--heading-tight: -0.03em; 562 --letter-spacing--heading-normal: 0em; 563 --letter-spacing--heading-loose: 0.03em; 564 565 --letter-spacing--body-tight: -0.03em; 566 --letter-spacing--body-normal: 0em; 567 --letter-spacing--body-loose: 0.03em; 568 569 /* Line height / Leading */ 570 --line-height: 1; 571 572 --line-height--display-tight: 1; 573 --line-height--display-normal: 1.1; 574 --line-height--display-loose: 1.2; 575 576 --line-height--heading-tight: 1.15; 577 --line-height--heading-normal: 1.25; 578 --line-height--heading-loose: 1.35; 579 580 --line-height--body-tight: 1.2; 581 --line-height--body-normal: 1.4; 582 --line-height--body-loose: 1.6; 583 584 /* Typography presets */ 585 --font-size--paragraph: 0.875rem;--font-size--h1: clamp(2.75rem, 7.2vw, 4.5rem);--font-size--h2: 2.5rem;--font-size--h3: 2.0rem;--font-size--h4: 1.5rem;--font-size--h5: 1.125rem;--font-size--h6: 1.0rem;--font-paragraph--weight: 400;--font-paragraph--letter-spacing: var(--letter-spacing--body-normal);--font-paragraph--size: var(--font-size--paragraph);--font-paragraph--family: var(--font-body--family);--font-paragraph--style: var(--font-body--style);--font-paragraph--case: ;--font-paragraph--line-height: var(--line-height--body-tight);--font-h1--weight: var(--font-heading--weight);--font-h1--letter-spacing: var(--letter-spacing--heading-tight);--font-h1--size: var(--font-size--h1);--font-h1--family: var(--font-heading--family);--font-h1--style: var(--font-heading--style);--font-h1--case: uppercase;--font-h1--line-height: var(--line-height--display-loose);--font-h2--weight: var(--font-heading--weight);--font-h2--letter-spacing: var(--letter-spacing--heading-tight);--font-h2--size: var(--font-size--h2);--font-h2--family: var(--font-heading--family);--font-h2--style: var(--font-heading--style);--font-h2--case: uppercase;--font-h2--line-height: var(--line-height--display-tight);--font-h3--weight: var(--font-heading--weight);--font-h3--letter-spacing: var(--letter-spacing--heading-tight);--font-h3--size: var(--font-size--h3);--font-h3--family: var(--font-heading--family);--font-h3--style: var(--font-heading--style);--font-h3--case: uppercase;--font-h3--line-height: var(--line-height--display-tight);--font-h4--weight: var(--font-heading--weight);--font-h4--letter-spacing: var(--letter-spacing--heading-tight);--font-h4--size: var(--font-size--h4);--font-h4--family: var(--font-heading--family);--font-h4--style: var(--font-heading--style);--font-h4--case: uppercase;--font-h4--line-height: var(--line-height--display-tight);--font-h5--weight: var(--font-heading--weight);--font-h5--letter-spacing: var(--letter-spacing--heading-tight);--font-h5--size: var(--font-size--h5);--font-h5--family: var(--font-heading--family);--font-h5--style: var(--font-heading--style);--font-h5--case: uppercase;--font-h5--line-height: var(--line-height--display-tight);--font-h6--weight: var(--font-heading--weight);--font-h6--letter-spacing: var(--letter-spacing--heading-tight);--font-h6--size: var(--font-size--h6);--font-h6--family: var(--font-heading--family);--font-h6--style: var(--font-heading--style);--font-h6--case: none;--font-h6--line-height: var(--line-height--display-tight); 586 587 /* Hardcoded font sizes */ 588 --font-size--3xs: 0.625rem; 589 --font-size--2xs: 0.75rem; 590 --font-size--xs: 0.8125rem; 591 --font-size--sm: 0.875rem; 592 --font-size--md: 1rem; 593 --font-size--lg: 1.125rem; 594 --font-size--xl: 1.25rem; 595 --font-size--2xl: 1.5rem; 596 --font-size--3xl: 2rem; 597 --font-size--4xl: 2.5rem; 598 --font-size--5xl: 3rem; 599 --font-size--6xl: 3.5rem; 600 601 /* Menu font sizes */ 602 --menu-font-sm--size: 0.875rem; 603 --menu-font-sm--line-height: calc(1.1 + 0.5 * min(16 / 14)); 604 --menu-font-md--size: 1rem; 605 --menu-font-md--line-height: calc(1.1 + 0.5 * min(16 / 16)); 606 --menu-font-lg--size: 1.125rem; 607 --menu-font-lg--line-height: calc(1.1 + 0.5 * min(16 / 18)); 608 --menu-font-xl--size: 1.25rem; 609 --menu-font-xl--line-height: calc(1.1 + 0.5 * min(16 / 20)); 610 --menu-font-2xl--size: 1.75rem; 611 --menu-font-2xl--line-height: calc(1.1 + 0.5 * min(16 / 28)); 612 613 /* Colors */ 614 --color-error: #8B0000; 615 --color-success: #006400; 616 --color-white: #FFFFFF; 617 --color-white-rgb: 255 255 255; 618 --color-black: #000000; 619 --color-instock: #3ED660; 620 --color-lowstock: #EE9441; 621 --color-outofstock: #C8C8C8; 622 623 /* Opacity */ 624 --opacity-5: 0.05; 625 --opacity-8: 0.08; 626 --opacity-10: 0.1; 627 --opacity-15: 0.15; 628 --opacity-20: 0.2;
629 --opacity-25: 0.25; 630 --opacity-30: 0.3; 631 --opacity-40: 0.4; 632 --opacity-50: 0.5; 633 --opacity-60: 0.6; 634 --opacity-70: 0.7; 635 --opacity-80: 0.8; 636 --opacity-85: 0.85; 637 --opacity-90: 0.9; 638 --opacity-subdued-text: 0.8; 639 --opacity-muted-text: 0.6; 640 641 --shadow-button: 0 2px 3px rgb(0 0 0 / 20%); 642 --gradient-image-overlay: linear-gradient(to top, rgb(0 0 0 / 0.5), transparent); 643 644 /* Spacing */ 645 --margin-3xs: 0.125rem; 646 --margin-2xs: 0.3rem; 647 --margin-xs: 0.5rem; 648 --margin-sm: 0.7rem; 649 --margin-md: 0.8rem; 650 --margin-lg: 1rem; 651 --margin-xl: 1.25rem; 652 --margin-2xl: 1.5rem; 653 --margin-3xl: 1.75rem; 654 --margin-4xl: 2rem; 655 --margin-5xl: 3rem; 656 --margin-6xl: 5rem; 657 658 --scroll-margin: 50px; 659 660 --padding-3xs: 0.125rem; 661 --padding-2xs: 0.25rem; 662 --padding-xs: 0.5rem; 663 --padding-sm: 0.7rem; 664 --padding-md: 0.8rem; 665 --padding-lg: 1rem; 666 --padding-xl: 1.25rem; 667 --padding-2xl: 1.5rem; 668 --padding-3xl: 1.75rem; 669 --padding-4xl: 2rem; 670 --padding-5xl: 3rem; 671 --padding-6xl: 4rem; 672 673 --gap-3xs: 0.125rem; 674 --gap-2xs: 0.3rem; 675 --gap-xs: 0.5rem; 676 --gap-sm: 0.7rem; 677 --gap-md: 0.9rem; 678 --gap-lg: 1rem; 679 --gap-xl: 1.25rem; 680 --gap-2xl: 2rem; 681 --gap-3xl: 3rem; 682 683 --spacing-scale-sm: 0.6; 684 --spacing-scale-md: 0.7; 685 --spacing-scale-default: 1.0; 686 687 /* Checkout buttons gap */ 688 --checkout-button-gap: 10px; 689 690 /* Borders */ 691 --style-border-width: 1px; 692 --style-border-radius-xs: 0.2rem; 693 --style-border-radius-sm: 0.6rem; 694 --style-border-radius-md: 0.8rem; 695 --style-border-radius-50: 50%; 696 --style-border-radius-lg: 1rem; 697 --style-border-radius-pills: 0px; 698 --style-border-radius-inputs: 0px; 699 --style-border-radius-buttons-primary: 0px; 700 --style-border-radius-buttons-secondary: 0px; 701 --style-border-width-primary: 2px; 702 --style-border-width-secondary: 2px; 703 --style-border-width-inputs: 2px; 704 --style-border-radius-popover: 14px; 705 --style-border-popover: 0px solid #1966cb; 706 --style-border-drawer: 1px solid #1966cb; 707 --style-border-swatch-opacity: 10%; 708 --style-border-swatch-width: 1px; 709 --style-border-swatch-style: solid; 710 711 /* Animation */ 712 --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1); 713 --ease-out-quad: cubic-bezier(0.32, 0.72, 0, 1); 714 --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955); 715 --animation-speed-fast: 0.0625s; 716 --animation-speed: 0.125s; 717 --animation-speed-slow: 0.2s; 718 --animation-speed-medium: 0.15s; 719 --animation-easing: ease-in-out; 720 --animation-slideshow-easing: cubic-bezier(0.4, 0, 0.2, 1); 721 --drawer-animation-speed: 0.2s; 722 --animation-values-slow: var(--animation-speed-slow) var(--animation-easing); 723 --animation-values: var(--animation-speed) var(--animation-easing); 724 --animation-values-fast: var(--animation-speed-fast) var(--animation-easing); 725 --animation-values-allow-discrete: var(--animation-speed) var(--animation-easing) allow-discrete; 726 --animation-timing-hover: cubic-bezier(0.25, 0.46, 0.45, 0.94); 727 --animation-timing-active: cubic-bezier(0.5, 0, 0.75, 0); 728 --animation-timing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1); 729 --animation-timing-default: cubic-bezier(0, 0, 0.2, 1); 730 --animation-timing-fade-in: cubic-bezier(0.16, 1, 0.3, 1); 731 --animation-timing-fade-out: cubic-bezier(0.4, 0, 0.2, 1); 732 /* Spring definitions suffixed with perceptual duration (d<ms>) and bounce (b<%>)*/ 733 --spring-d300-b0-easing: linear(0, 0.0033 0.81%, 0.027 2.42%, 0.0916 4.84%, 0.4745 15.32%, 0.6422 20.97%, 0.7175, 0.7789, 0.8283 30.64%, 0.876, 0.9111 38.71%, 0.941, 0.9611 48.39%, 0.9707, 0.978 54.84%, 0.9885 62.1%, 0.9949 70.97%, 0.9982 82.26%, 0.9997 100%); 734 --spring-d300-b0-duration: 0.4980s; 735 --spring-d280-b0-easing: linear(0, 0.0044, 0.0164 1.85%, 0.085 4.63%, 0.4571 14.81%, 0.575 18.52%, 0.6505, 0.7148 24.07%, 0.7849, 0.8393, 0.8809 35.18%, 0.9189, 0.9453 44.44%, 0.9662, 0.9793 55.55%, 0.9894 62.95%, 0.995 71.28%, 0.9982 82.39%, 0.9997 99.98%); 736 --spring-d280-b0-duration: 0.4648s; 737 --spring-d260-b0-easing: linear(0, 0.0058, 0.0216 2.15%, 0.0748 4.29%, 0.4646 15.03%, 0.5673, 0.655, 0.7279, 0.7872, 0.8349, 0.8727 34.36%, 0.9107, 0.9379 42.95%, 0.9609 48.31%, 0.9778 54.76%, 0.9887 62.27%, 0.9948 70.86%, 0.9983 82.67%, 0.9997 99.85%); 738 --spring-d260-b0-duration: 0.4316s; 739 --spring-d220-b0-easing: linear( 740 0, 741 0.0093 1.37%, 742 0.0696 4.12%, 743 0.4667 15.09%, 744 0.6322 20.58%, 745 0.6986 23.32%, 746 0.7793 27.44%, 747 0.8219 30.18%, 748 0.8721, 749 0.9089 38.42%, 750 0.9427, 751 0.9644, 752 0.978 54.88%, 753 0.9881 61.74%, 754 0.9944 69.97%, 755 0.998 80.95%, 756 0.9996 98.78% 757 ); 758 --spring-d220-b0-duration: 0.3818s; 759 --spring-d180-b0-easing: linear(0, 0.0234, 0.0805 4.48%, 0.4865 15.68%, 0.6211 20.16%, 0.7696 26.88%, 0.8064 29.12%, 0.8646, 0.9063, 0.9358, 0.9563 47.04%, 0.9757, 0.9867 60.48%, 0.9941 69.44%, 0.9979 80.64%, 0.9996 98.56%); 760 --spring-d180-b0-duration: 0.2988s; 761 762 /* View transitions */ 763 /* View transition old */ 764 --view-transition-old-main-content: var(--animation-speed) var(--animation-easing) both fadeOut; 765 766 /* View transition new */ 767 --view-transition-new-main-content: var(--animation-speed) var(--animation-easing) both fadeIn, var(--animation-speed) var(--animation-easing) both slideInTopViewTransition; 768 769 /* Focus */ 770 --focus-outline-width: 0.09375rem; 771 --focus-outline-offset: 0.2em; 772 773 /* Badges */ 774 --badge-blob-padding-block: 1px; 775 --badge-blob-padding-inline: 12px 8px; 776 --badge-rectangle-padding-block: 1px; 777 --badge-rectangle-padding-inline: 6px; 778 @media screen and (min-width: 750px) { 779 --badge-blob-padding-block: 4px; 780 --badge-blob-padding-inline: 16px 12px; 781 --badge-rectangle-padding-block: 4px; 782 --badge-rectangle-padding-inline: 10px; 783 } 784 785 /* Icons */ 786 --icon-size-2xs: 0.6rem; 787 --icon-size-xs: 0.85rem; 788 --icon-size-sm: 1.25rem; 789 --icon-size-md: 1.375rem; 790 --icon-size-lg: 1.5rem; 791 --icon-size-xl: 1.75rem; 792 793 --icon-size-custom: 2.0rem; 794 795 --icon-stroke-width: 1.5px; 796 797 --icon-size: var(--icon-size-custom); 798 799 /* Input */ 800 --input-email-min-width: 200px; 801 --input-search-max-width: 650px; 802 --input-padding-y: 0.8rem; 803 --input-padding-x: 0.8rem; 804 --input-padding: var(--input-padding-y) var(--input-padding-x); 805 --input-box-shadow-width: var(--style-border-width-inputs); 806 --input-box-shadow: 0 0 0 var(--input-box-shadow-width) var(--color-input-border); 807 --input-box-shadow-focus: 0 0 0 calc(var(--input-box-shadow-width) + 0.5px) var(--color-input-border); 808 --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10)); 809 --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5)); 810 --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
811 --input-textarea-min-height: 55px; 812 813 /* Checkbox */ 814 --checkbox-size: 22px; 815 --checkbox-border-radius: 7px; 816 --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55)); 817 --checkbox-label-padding: 8px; 818 819 @media screen and (min-width: 750px) { 820 --checkbox-size: 16px; 821 --checkbox-border-radius: 5px; 822 --checkbox-label-padding: 6px; 823 } 824 825 /* Button size */ 826 --button-size-sm: 30px; 827 --button-size-md: 36px; 828 --button-size: var(--minimum-touch-target); 829 --button-padding-inline: 24px; 830 --button-padding-block: 16px; 831 832 /* Button font-family */ 833 --button-font-family-primary: var(--font-accent--family); 834 --button-font-family-secondary: var(--font-accent--family); 835 836 /* Button text case */ 837 --button-text-case: ; 838 --button-text-case-primary: uppercase; 839 --button-text-case-secondary: uppercase; 840 841 /* Borders */ 842 --border-color: rgb(var(--color-border-rgb) / var(--opacity-50)); 843 --border-width-sm: 1px; 844 --border-width-md: 2px; 845 --border-width-lg: 5px; 846 --border-radius-sm: 0.25rem; 847 848 /* Drawers */ 849 --drawer-inline-padding: 25px; 850 --drawer-menu-inline-padding: 2.5rem; 851 --drawer-header-block-padding: 20px; 852 --drawer-content-block-padding: 10px; 853 --drawer-header-desktop-top: 0rem; 854 --drawer-padding: calc(var(--padding-sm) + 7px); 855 --drawer-height: 100dvh; 856 --drawer-width: 95vw; 857 --drawer-max-width: 500px; 858 859 /* Variant Picker Swatches */ 860 --variant-picker-swatch-width-unitless: 34; 861 --variant-picker-swatch-height-unitless: 34; 862 --variant-picker-swatch-width: 34px; 863 --variant-picker-swatch-height: 34px; 864 --variant-picker-swatch-radius: 32px; 865 --variant-picker-border-width: 1px; 866 --variant-picker-border-style: solid; 867 --variant-picker-border-opacity: 10%; 868 869 /* Variant Picker Buttons */ 870 --variant-picker-button-radius: 0px; 871 --variant-picker-button-border-width: 2px; 872 --variant-option-label-color: var(--color, var(--color-foreground)); 873 874 /* Slideshow */ 875 --slideshow-controls-size: 3.5rem; 876 --slideshow-controls-icon: 2rem; 877 --peek-next-slide-size: 3rem; 878 879 /* Utilities */ 880 --backdrop-opacity: 0.15; 881 --backdrop-color-rgb: var(--color-shadow-rgb); 882 --minimum-touch-target: 44px; 883 --disabled-opacity: 0.5; 884 --skeleton-opacity: 0.025; 885 886 /* Shapes */ 887 --shape--circle: circle(50% at center); 888 --shape--sunburst: polygon(100% 50%,94.62% 55.87%,98.3% 62.94%,91.57% 67.22%,93.3% 75%,85.7% 77.39%,85.36% 85.36%,77.39% 85.7%,75% 93.3%,67.22% 91.57%,62.94% 98.3%,55.87% 94.62%,50% 100%,44.13% 94.62%,37.06% 98.3%,32.78% 91.57%,25% 93.3%,22.61% 85.7%,14.64% 85.36%,14.3% 77.39%,6.7% 75%,8.43% 67.22%,1.7% 62.94%,5.38% 55.87%,0% 50%,5.38% 44.13%,1.7% 37.06%,8.43% 32.78%,6.7% 25%,14.3% 22.61%,14.64% 14.64%,22.61% 14.3%,25% 6.7%,32.78% 8.43%,37.06% 1.7%,44.13% 5.38%,50% 0%,55.87% 5.38%,62.94% 1.7%,67.22% 8.43%,75% 6.7%,77.39% 14.3%,85.36% 14.64%,85.7% 22.61%,93.3% 25%,91.57% 32.78%,98.3% 37.06%,94.62% 44.13%); 889 --shape--diamond: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); 890 --shape--blob: polygon(85.349% 11.712%, 87.382% 13.587%, 89.228% 15.647%, 90.886% 17.862%, 92.359% 20.204%, 93.657% 22.647%, 94.795% 25.169%, 95.786% 27.752%, 96.645% 30.382%, 97.387% 33.048%, 98.025% 35.740%, 98.564% 38.454%, 99.007% 41.186%, 99.358% 43.931%, 99.622% 46.685%, 99.808% 49.446%, 99.926% 52.210%, 99.986% 54.977%, 99.999% 57.744%, 99.975% 60.511%, 99.923% 63.278%, 99.821% 66.043%, 99.671% 68.806%, 99.453% 71.565%, 99.145% 74.314%, 98.724% 77.049%, 98.164% 79.759%, 97.433% 82.427%, 96.495% 85.030%, 95.311% 87.529%, 93.841% 89.872%, 92.062% 91.988%, 89.972% 93.796%, 87.635% 95.273%, 85.135% 96.456%, 82.532% 97.393%, 79.864% 98.127%, 77.156% 98.695%, 74.424% 99.129%, 71.676% 99.452%, 68.918% 99.685%, 66.156% 99.844%, 63.390% 99.942%, 60.624% 99.990%, 57.856% 99.999%, 55.089% 99.978%, 52.323% 99.929%, 49.557% 99.847%, 46.792% 99.723%, 44.031% 99.549%, 41.273% 99.317%, 38.522% 99.017%, 35.781% 98.639%, 33.054% 98.170%, 30.347% 97.599%, 27.667% 96.911%, 25.024% 96.091%, 22.432% 95.123%, 19.907% 93.994%, 17.466% 92.690%, 15.126% 91.216%, 12.902% 89.569%, 10.808% 87.761%, 8.854% 85.803%, 7.053% 83.703%, 5.418% 81.471%, 3.962% 79.119%, 2.702% 76.656%, 1.656% 74.095%, 0.846% 71.450%, 0.294% 68.740%, 0.024% 65.987%, 0.050% 63.221%, 0.343% 60.471%, 0.858% 57.752%, 1.548% 55.073%, 2.370% 52.431%, 3.283% 49.819%, 4.253% 47.227%, 5.249% 44.646%, 6.244% 42.063%, 7.211% 39.471%, 8.124% 36.858%, 8.958% 34.220%, 9.711% 31.558%, 10.409% 28.880%, 11.083% 26.196%, 11.760% 23.513%, 12.474% 20.839%, 13.259% 18.186%, 14.156% 15.569%, 15.214% 13.012%, 16.485% 10.556%, 18.028% 8.261%, 19.883
890% 6.211%, 22.041% 4.484%, 24.440% 3.110%, 26.998% 2.057%, 29.651% 1.275%, 32.360% 0.714%, 35.101% 0.337%, 37.859% 0.110%, 40.624% 0.009%, 43.391% 0.016%, 46.156% 0.113%, 48.918% 0.289%, 51.674% 0.533%, 54.425% 0.837%, 57.166% 1.215%, 59.898% 1.654%, 62.618% 2.163%, 65.322% 2.750%, 68.006% 3.424%, 70.662% 4.197%, 73.284% 5.081%, 75.860% 6.091%, 78.376% 7.242%, 80.813% 8.551%, 83.148% 10.036%, 85.349% 11.712%); 891 892 /* Buy buttons */ 893 --height-buy-buttons: calc(var(--padding-lg) * 2 + var(--icon-size-sm)); 894 895 /* Card image width and height variables */ 896 --card-width-small: 10rem; 897 898 --height-small: 10rem; 899 --height-medium: 11.5rem; 900 --height-large: 13rem; 901 --height-full: 100vh; 902 903 @media screen and (min-width: 750px) { 904 --height-small: 17.5rem; 905 --height-medium: 21.25rem; 906 --height-large: 25rem; 907 } 908 909 /* Modal */ 910 --modal-max-height: 65dvh; 911 --quick-add-modal-height: min(38.5rem, 96vh); 912 --quick-add-modal-width: min(54rem, 96vw); 913 --quick-add-modal-gallery-width: 24rem; 914 915 /* Card styles for search */ 916 --card-bg-hover: rgb(var(--color-foreground-rgb) / var(--opacity-5)); 917 --card-border-hover: rgb(var(--color-foreground-rgb) / var(--opacity-30)); 918 --card-border-focus: rgb(var(--color-foreground-rgb) / var(--opacity-10)); 919 920 /* Cart */ 921 --cart-primary-font-family: var(--font-body--family); 922 --cart-primary-font-style: var(--font-body--style); 923 --cart-primary-font-weight: var(--font-body--weight); 924 --cart-secondary-font-family: var(--font-subheading--family); 925 --cart-secondary-font-style: var(--font-subheading--style); 926 --cart-secondary-font-weight: var(--font-subheading--weight); 927 } 928</style> 929 930 931 932 933 934 935 <style data-shopify> 936 .color-custom-popover, 937 .color-custom-popover .text-block { 938 /* Background */ 939 --color-background: #000000; 940 --color-background-rgb: 0 0 0; 941 942 /* Opacity values adjusted for background brightness */ 943 944--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 9450.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 946 947 948 949 /* Foreground / text â explicit or smart-contrasted */ 950 --color: #1966cb; 951 --color-rgb: 25 102 203; 952 --color-foreground: #1966cb; 953 --color-foreground-rgb: 25 102 203; 954 --color-foreground-muted: rgb(25 102 203 / var(--opacity-muted-text)); 955 --color-foreground-subdued: rgb(25 102 203 / var(--opacity-subdued-text)); 956 --color-border: #1966cb; 957 --color-border-rgb: 25 102 203; 958 959 } 960 961 962 .color-custom-popover { 963 /* Form-related tokens stay on .color-custom only â .text-block is a prose 964 container (text/announcement/inline-text/blog-post-description/ 965 collection-link/price/sku) and never holds form inputs. */ 966 --input-disabled-background-color: rgb(25 102 203 / var(--opacity-10)); 967 --input-disabled-border-color: rgb(25 102 203 / var(--opacity-5)); 968 --input-disabled-text-color: rgb(25 102 203 / var(--opacity-50)); 969 --checkbox-border: 1px solid rgb(25 102 203 / var(--opacity-35-55)); 970 } 971 972 973 .color-custom-popover { 974 color: var(--color, var(--color-foreground)); 975 background-color: var(--color-background); 976 } 977 </style> 978 979 980 981 982 983 984 985 986 <style data-shopify> 987 .color-custom-drawer, 988 .color-custom-drawer .text-block { 989 /* Background */ 990 --color-background: #000000; 991 --color-background-rgb: 0 0 0; 992 993 /* Opacity values adjusted for background brightness */ 994 995--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 9960.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 997 998 999 1000 /* Foreground / text â explicit or smart-contrasted */ 1001 --color: #1966cb; 1002 --color-rgb: 25 102 203; 1003 --color-foreground: #1966cb; 1004 --color-foreground-rgb: 25 102 203; 1005 --color-foreground-muted: rgb(25 102 203 / var(--opacity-muted-text)); 1006 --color-foreground-subdued: rgb(25 102 203 / var(--opacity-subdued-text)); 1007 --color-border: #1966cb; 1008 --color-border-rgb: 25 102 203; 1009 1010 } 1011 1012 1013 .color-custom-drawer { 1014 /* Form-related tokens stay on .color-custom only â .text-block is a prose 1015 container (text/announcement/inline-text/blog-post-description/ 1016 collection-link/price/sku) and never holds form inputs. */ 1017 --input-disabled-background-color: rgb(25 102 203 / var(--opacity-10)); 1018 --input-disabled-border-color: rgb(25 102 203 / var(--opacity-5)); 1019 --input-disabled-text-color: rgb(25 102 203 / var(--opacity-50)); 1020 --checkbox-border: 1px solid rgb(25 102 203 / var(--opacity-35-55)); 1021 } 1022 1023 1024 .color-custom-drawer { 1025 color: var(--color, var(--color-foreground)); 1026 background-color: var(--color-background); 1027 } 1028 </style> 1029 1030 1031 1032 1033 1034 1035 1036 1037 <style data-shopify> 1038 .color-custom-badge-sale, 1039 .color-custom-badge-sale .text-block {
1040 /* Background */ 1041 --color-background: #FDFEFF; 1042 --color-background-rgb: 253 254 255; 1043 1044 /* Opacity values adjusted for background brightness */ 1045 1046--opacity-5-15: 0.05; --opacity-10-25: 0.1; --opacity-35-55: 0.35; --opacity-40-60: 10470.4; --opacity-30-60: 0.3; --opacity-60: 0.6; 1048 1049 1050 1051 /* Foreground / text â explicit or smart-contrasted */ 1052 --color: #000000; 1053 --color-rgb: 0 0 0; 1054 --color-foreground: #000000; 1055 --color-foreground-rgb: 0 0 0; 1056 --color-foreground-muted: rgb(0 0 0 / var(--opacity-muted-text)); 1057 --color-foreground-subdued: rgb(0 0 0 / var(--opacity-subdued-text)); 1058 --color-border: #000000; 1059 --color-border-rgb: 0 0 0; 1060 1061 } 1062 1063 1064 .color-custom-badge-sale { 1065 /* Form-related tokens stay on .color-custom only â .text-block is a prose 1066 container (text/announcement/inline-text/blog-post-description/ 1067 collection-link/price/sku) and never holds form inputs. */ 1068 --input-disabled-background-color: rgb(0 0 0 / var(--opacity-10)); 1069 --input-disabled-border-color: rgb(0 0 0 / var(--opacity-5)); 1070 --input-disabled-text-color: rgb(0 0 0 / var(--opacity-50)); 1071 --checkbox-border: 1px solid rgb(0 0 0 / var(--opacity-35-55)); 1072 } 1073 1074 1075 .color-custom-badge-sale { 1076 color: var(--color, var(--color-foreground)); 1077 background-color: var(--color-background); 1078 } 1079 </style> 1080 1081 1082 1083 1084 1085 1086 1087 1088 <style data-shopify> 1089 .color-custom-badge-sold-out, 1090 .color-custom-badge-sold-out .text-block { 1091 /* Background */ 1092 --color-background: #1966cb; 1093 --color-background-rgb: 25 102 203; 1094 1095 /* Opacity values adjusted for background brightness */ 1096 1097--opacity-5-15: 0.05; --opacity-10-25: 0.1; --opacity-35-55: 0.35; --opacity-40-60: 10980.4; --opacity-30-60: 0.3; --opacity-60: 0.6; 1099 1100 1101 1102 /* Foreground / text â explicit or smart-contrasted */ 1103 --color: #FDFEFF; 1104 --color-rgb: 253 254 255; 1105 --color-foreground: #FDFEFF; 1106 --color-foreground-rgb: 253 254 255; 1107 --color-foreground-muted: rgb(253 254 255 / var(--opacity-muted-text)); 1108 --color-foreground-subdued: rgb(253 254 255 / var(--opacity-subdued-text)); 1109 --color-border: #FDFEFF; 1110 --color-border-rgb: 253 254 255; 1111 1112 } 1113 1114 1115 .color-custom-badge-sold-out { 1116 /* Form-related tokens stay on .color-custom only â .text-block is a prose 1117 container (text/announcement/inline-text/blog-post-description/ 1118 collection-link/price/sku) and never holds form inputs. */ 1119 --input-disabled-background-color: rgb(253 254 255 / var(--opacity-10)); 1120 --input-disabled-border-color: rgb(253 254 255 / var(--opacity-5)); 1121 --input-disabled-text-color: rgb(253 254 255 / var(--opacity-50)); 1122 --checkbox-border: 1px solid rgb(253 254 255 / var(--opacity-35-55)); 1123 } 1124 1125 1126 .color-custom-badge-sold-out { 1127 color: var(--color, var(--color-foreground)); 1128 background-color: var(--color-background); 1129 } 1130 </style> 1131 1132 1133 1134 1135 1136 1137 1138 <style data-shopify> 1139 .color-custom-badge-preorder, 1140 .color-custom-badge-preorder .text-block { 1141 /* Background */ 1142 --color-background: #FDFEFF; 1143 --color-background-rgb: 253 254 255; 1144 1145 /* Opacity values adjusted for background brightness */ 1146 1147--opacity-5-15: 0.05; --opacity-10-25: 0.1; --opacity-35-55: 0.35; --opacity-40-60: 11480.4; --opacity-30-60: 0.3; --opacity-60: 0.6; 1149 1150 1151 1152 /* Foreground / text â explicit or smart-contrasted */ 1153 --color: #000000; 1154 --color-rgb: 0 0 0; 1155 --color-foreground: #000000; 1156 --color-foreground-rgb: 0 0 0; 1157 --color-foreground-muted: rgb(0 0 0 / var(--opacity-muted-text)); 1158 --color-foreground-subdued: rgb(0 0 0 / var(--opacity-subdued-text)); 1159 --color-border: #000000; 1160 --color-border-rgb: 0 0 0; 1161 1162 } 1163 1164 1165 .color-custom-badge-preorder { 1166 /* Form-related tokens stay on .color-custom only â .text-block is a prose 1167 container (text/announcement/inline-text/blog-post-description/ 1168 collection-link/price/sku) and never holds form inputs. */ 1169 --input-disabled-background-color: rgb(0 0 0 / var(--opacity-10)); 1170 --input-disabled-border-color: rgb(0 0 0 / var(--opacity-5)); 1171 --input-disabled-text-color: rgb(0 0 0 / var(--opacity-50)); 1172 --checkbox-border: 1px solid rgb(0 0 0 / var(--opacity-35-55)); 1173 } 1174 1175 1176 .color-custom-badge-preorder { 1177 color: var(--color, var(--color-foreground)); 1178 background-color: var(--color-background); 1179 } 1180 </style> 1181 1182 1183 1184 1185 1186 1187 1188 1189 <style data-shopify> 1190 .color-custom-badge-custom, 1191 .color-custom-badge-custom .text-block {
1192 /* Background */ 1193 --color-background: #FDFEFF; 1194 --color-background-rgb: 253 254 255; 1195 1196 /* Opacity values adjusted for background brightness */ 1197 1198--opacity-5-15: 0.05; --opacity-10-25: 0.1; --opacity-35-55: 0.35; --opacity-40-60: 11990.4; --opacity-30-60: 0.3; --opacity-60: 0.6; 1200 1201 1202 1203 /* Foreground / text â explicit or smart-contrasted */ 1204 --color: #000000; 1205 --color-rgb: 0 0 0; 1206 --color-foreground: #000000; 1207 --color-foreground-rgb: 0 0 0; 1208 --color-foreground-muted: rgb(0 0 0 / var(--opacity-muted-text)); 1209 --color-foreground-subdued: rgb(0 0 0 / var(--opacity-subdued-text)); 1210 --color-border: #000000; 1211 --color-border-rgb: 0 0 0; 1212 1213 } 1214 1215 1216 .color-custom-badge-custom { 1217 /* Form-related tokens stay on .color-custom only â .text-block is a prose 1218 container (text/announcement/inline-text/blog-post-description/ 1219 collection-link/price/sku) and never holds form inputs. */ 1220 --input-disabled-background-color: rgb(0 0 0 / var(--opacity-10)); 1221 --input-disabled-border-color: rgb(0 0 0 / var(--opacity-5)); 1222 --input-disabled-text-color: rgb(0 0 0 / var(--opacity-50)); 1223 --checkbox-border: 1px solid rgb(0 0 0 / var(--opacity-35-55)); 1224 } 1225 1226 1227 .color-custom-badge-custom { 1228 color: var(--color, var(--color-foreground)); 1229 background-color: var(--color-background); 1230 } 1231 </style> 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250<style data-shopify> 1251 /* Palette colors */ 1252 :root { 1253 --color-background: #000000; 1254 --color-background-rgb: 0 0 0; 1255 --color-foreground: #FDFEFF; 1256 --color-foreground-rgb: 253 254 255; 1257 --color-border: #FDFEFF; 1258 --color-border-rgb: 253 254 255; 1259 --palette-lightest: #FDFEFF; 1260 --palette-lightest-rgb: 253 254 255; 1261 --palette-darkest: #000000; 1262 --palette-darkest-rgb: 0 0 0; 1263 1264--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 12650.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 1266 1267 1268 --color-primary-button-text: rgb(0 0 0 / 1.0); 1269 --color-primary-button-background: rgb(25 102 203 / 1.0); 1270 --color-primary-button-border: rgb(25 102 203 / 1.0); 1271 --color-primary-button-focus-outline: rgb(25 102 203); 1272 --color-primary-button-hover-text: rgb(253 254 255 / 1.0); 1273 --color-primary-button-hover-background: #1c71e2; 1274 --color-primary-button-hover-border: #1c71e2; 1275 1276 --color-secondary-button-text: rgb(25 102 203 / 1.0); 1277 --color-secondary-button-background: rgb(0 0 0 / 0.0); 1278 --color-secondary-button-border: rgb(25 102 203 / 1.0); 1279 --color-secondary-button-hover-text: rgb(25 102 203 / 1.0); 1280 --color-secondary-button-hover-background: rgba(0, 0, 0, 0.15); 1281 --color-secondary-button-hover-border: #1c71e2; 1282 1283 --color-input-background: rgb(0 0 0 / 1.0); 1284 --color-input-text: rgb(25 102 203 / 1.0); 1285 --color-input-text-rgb: 25 102 203; 1286 --color-input-border: rgb(25 102 203 / 1.0); 1287 1288 --color-variant-background: rgb(0 0 0 / 1.0); 1289 --color-variant-border: rgb(35 35 35 / 1.0); 1290 --color-variant-text: rgb(25 102 203 / 1.0); 1291 --color-variant-text-rgb: 25 102 203; 1292 --color-variant-hover-background: #262626; 1293 --color-variant-hover-text: rgb(253 254 255 / 1.0); 1294 --color-variant-hover-border: #494949; 1295 1296 --color-selected-variant-background: rgb(25 102 203 / 1.0); 1297 --color-selected-variant-border: rgb(25 102 203 / 1.0); 1298 --color-selected-variant-text: rgb(0 0 0 / 1.0); 1299 --color-selected-variant-hover-background: #1c71e2; 1300 --color-selected-variant-hover-text: rgb(253 254 255 / 1.0); 1301 --color-selected-variant-hover-border: #1c71e2; 1302 1303 --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10)); 1304 --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15)); 1305 --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50)); 1306 --color-foreground-muted: rgb(var(--color-rgb, var(--color-foreground-rgb)) / var(--opacity-muted-text)); 1307 --color-foreground-subdued: rgb(var(--color-rgb, var(--color-foreground-rgb)) / var(--opacity-subdued-text)); 1308 --color-drawer-shadow-rgb: ; 1309 --color-popover-shadow-rgb: 253 254 255; 1310 1311 /* Shadows */ 1312 1313 1314 --shadow-blur: 20px; 1315 --shadow-popover: 0px 4px 20px rgb(var(--color-popover-shadow-rgb) / var(--opacity-15)); 1316 1317 } 1318 1319 body { 1320 color: var(--color-foreground); 1321 background-color: var(--color-background); 1322 } 1323</style> 1324 1325 1326 1327 1328
1328<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
1328<meta name="google-site-verification" content="qpjUBNXiY7EC6a17RW8LLvImtx87DB_-ET_ZlClaA0E"> 1329<meta name="facebook-domain-verification" content="2saivlujg37j3jk57ovhulqyprp2wp"> 1330<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/65414398179/digital_wallets/dialog"> 1331<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
1331<script async="async" src="/checkouts/internal/preloads.js?locale=en-GB&default_configuration_id=303300835"></script>
1331 1332<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
1333<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-GB&default_configuration_id=303300835&shop_id=65414398179" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1333
1333
1334<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":65414398179,"countryCode":"GB","currencyCode":"GBP","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/65414398179","merchantName":"Fontaines D.C.","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","amex","discover","elo"],"total":{"type":"pending","label":"Fontaines D.C.","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 1334
1334
1335<script id="shopify-features" type="application/json">{"accessToken":"dc6a54cce17cbee6017b5c18fbbf1db4","betas":["rich-media-storefront-analytics"],"domain":"fontainesdc.com","predictiveSearch":true,"shopId":65414398179,"locale":"en"}</script>
vendor: 1 bytes, line 1335
1335
1336<script>var Shopify = Shopify || {}; 1337Shopify.shop = "fontaines-d-c.myshopify.com"; 1338Shopify.locale = "en"; 1339Shopify.currency = {"active":"GBP","rate":"1.0"}; 1340Shopify.country = "GB"; 1341Shopify.theme = {"name":"Dopamine\/main","id":182171730299,"schema_name":"Horizon","schema_version":"4.1.1","theme_store_id":null,"role":"main"}; 1342Shopify.theme.handle = "null"; 1343Shopify.theme.style = {"id":null,"handle":null}; 1344Shopify.cdnHost = "fontainesdc.com/cdn"; 1345Shopify.routes = Shopify.routes || {}; 1346Shopify.routes.root = "/"; 1347Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 1348Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 1349Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 1350Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1350
1350
1351<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1351
1351
1352<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 1352
1352
1353<script> 1354 window.ShopifyPay = window.ShopifyPay || {}; 1355 window.ShopifyPay.apiHost = "shop.app\/pay"; 1356 window.ShopifyPay.redirectState = null; 1357</script>
vendor: 1 bytes, line 1357
1357
1358<script> 1359 window.Shopify = window.Shopify || {}; 1360 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 1361 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 1362 window.Shopify.SignInWithShop.eligible = true; 1363</script>
vendor: 1 bytes, line 1363
1363
1364<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 1364
1364
1365<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 1365
1365
1366<script type="module"> 1367 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 1368 1369 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 1370 1371</script>
vendor: 1 bytes, line 1371
1371
1372<script> 1373 window.Shopify = window.Shopify || {}; 1374 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 1375 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 1376</script>
vendor: 1 bytes, line 1376
1376
1377<script>(function() { 1378 var isLoaded = false; 1379 function asyncLoad() { 1380 if (isLoaded) return; 1381 isLoaded = true; 1382 var urls = ["\/\/cdn.shopify.com\/proxy\/980863aad0a0179ee3737ace7e7298528fb3e774864a0e65ec90cd15e5f5c399\/help-center.gorgias.help\/api\/help-centers\/loader.js?t=1714056230300\u0026shop=fontaines-d-c.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/dashboard.mailerlite.com\/shopify\/20660\/1673025?shop=fontaines-d-c.myshopify.com"]; 1383 for (var i = 0; i < urls.length; i++) { 1384 var s = document.createElement('script'); 1385 s.type = 'text/javascript'; 1386 s.async = true; 1387 s.src = urls[i]; 1388 var x = document.getElementsByTagName('script')[0]; 1389 x.parentNode.insertBefore(s, x); 1390 } 1391 }; 1392 if(window.attachEvent) { 1393 window.attachEvent('onload', asyncLoad); 1394 } else { 1395 window.addEventListener('load', asyncLoad, false); 1396 } 1397})();</script>
vendor: 1 bytes, line 1397
1397
1398<script id="__st">var __st={"a":65414398179,"offset":3600,"reqid":"95fbb647-2f24-4f0e-a8cc-a205228259e2-1790937051","pageurl":"fontainesdc.com\/pages\/live","s":"pages-102965346531","u":"2a0e4ad1038b","p":"page","rtyp":"page","rid":102965346531};</script>
vendor: 1 bytes, line 1398
1398
1399<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1399
1399
1400<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 1400
1400
1401<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//fontainesdc.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1401
1401
1402<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//fontainesdc.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
1402<script crossorigin="anonymous" defer="defer" src="//fontainesdc.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 1402
1402
1403<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 1403
1403
1404<script> 1405 window.Shopify = window.Shopify || {}; 1406 window.Shopify.MCP = window.Shopify.MCP || {}; 1407 window.Shopify.MCP.enabled = true; 1408 window.Shopify.MCP.shop = "fontaines-d-c.myshopify.com"; 1409 window.Shopify.MCP.mcpEndpoint = "https:\/\/fontainesdc.com\/api\/mcp"; 1410 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 1411</script>
vendor: 1 bytes, line 1411
1411
1412<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/fontainesdc.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 1413</script>
vendor: 1 bytes, line 1413
1413
1414<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://fontainesdc.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 1415</script>
vendor: 1 bytes, line 1415
1415
1416<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 1417 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 1418</script>
vendor: 1 bytes, line 1418
1418
1419<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 1420</script>
vendor: 1 bytes, line 1420
1420
1421<script id='scb4127' type='text/javascript' async='' src='https://fontainesdc.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
1421<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://fontainesdc.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 1422<style id="shopify-accelerated-checkout-cart"> 1423 #shopify-buyer-consent { 1424 margin-top: 1em; 1425 display: inline-block; 1426 width: 100%; 1427} 1428 1429#shopify-buyer-consent.hidden { 1430 display: none; 1431} 1432 1433#shopify-subscription-policy-button { 1434 background: none; 1435 border: none; 1436 padding: 0; 1437 text-decoration: underline; 1438 font-size: inherit; 1439 cursor: pointer; 1440} 1441 1442#shopify-subscription-policy-button::before { 1443 box-shadow: none; 1444} 1445 1446 </style> 1447<link rel="stylesheet" media="screen" href="//fontainesdc.com/cdn/shop/t/35/compiled_assets/styles.css?v=135188438341479150521788427344">
1448<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1448 1449 1450
1450<script> 1451 /** 1452 * Last Update: 17 May 2024 1453 * Description: This script handles various eCommerce tracking events, 1454 * collecting customer data, handling AJAX requests, and pushing 1455 * relevant data to the dataLayer for Google Tag Manager. 1456 */ 1457 1458 (function() { 1459 // Defining the class SME_digital_datalayer 1460 class SME_digital_datalayer { 1461 constructor() { 1462 // Initializing dataLayer if not already defined 1463 window.dataLayer = window.dataLayer || []; 1464 1465 // Prefix for events name 1466 this.eventPrefix = 'SME_'; 1467 1468 //Turn Console Log On and Off 1469 this.debugOn = 'No' 1470 1471 // Setting value to true to get formatted product ID 1472 this.formattedItemId = true; 1473 1474 // Data schema for ecommerce and dynamic remarketing 1475 this.dataSchema = { 1476 ecommerce: { 1477 show: true 1478 }, 1479 dynamicRemarketing: { 1480 show: false, 1481 business_vertical: 'retail' 1482 } 1483 } 1484 1485 // Selectors for adding to wishlist 1486 this.addToWishListSelectors = { 1487 'addWishListIcon': '', 1488 'gridItemSelector': '', 1489 'productLinkSelector': 'a[href*="/products/"]' 1490 } 1491 1492 // Selectors for quick view 1493 this.quickViewSelector = { 1494 'quickViewElement': '', 1495 'gridItemSelector': '', 1496 'productLinkSelector': 'a[href*="/products/"]' 1497 } 1498 1499 // Selector for mini cart button 1500 this.miniCartButton = [ 1501 'a[href="/cart"]', 1502 ]; 1503 this.miniCartAppersOn = 'click'; 1504 1505 // Selectors for begin checkout buttons/links 1506 this.beginCheckoutButtons = [ 1507 'input[name="checkout"]', 1508 'button[name="checkout"]', 1509 'a[href="/checkout"]', 1510 '.additional-checkout-buttons', 1511 ]; 1512 1513 // Selector for direct checkout button 1514 this.shopifyDirectCheckoutButton = [ 1515 '.shopify-payment-button' 1516 ] 1517 1518 // Setting value to true if Add to Cart redirects to the cart page 1519 this.isAddToCartRedirect = false; 1520 1521 // Setting value to false if cart items increment/decrement/remove refresh page 1522 this.isAjaxCartIncrementDecrement = true; 1523 1524 // Caution: Do not modify anything below this line, as it may result in it not functioning correctly. 1525 this.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"GBP","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0} 1526 this.countryCode = "GB"; 1527 this.collectData(); 1528 this.storeURL = "https://fontainesdc.com"; 1529 localStorage.setItem('shopCountryCode', this.countryCode); 1530 } 1531 1532 // Function to update cart by fetching the latest cart data from the server 1533 updateCart() { 1534 fetch("/cart.js") 1535 .then((response) => response.json()) 1536 .then((data) => { 1537 this.cart = data; 1538 }); 1539 } 1540 1541 // Function to create a debounced function to limit the rate at which a function is executed 1542 debounce(delay) { 1543 let timeoutId; 1544 return function(func) { 1545 const context = this; 1546 const args = arguments; 1547 1548 clearTimeout(timeoutId); 1549 1550 timeoutId = setTimeout(function() { 1551 func.apply(context, args); 1552 }, delay); 1553 }; 1554 } 1555 1556 // Function to collect various types of data including customer data and events 1557 collectData() { 1558 this.customerData(); 1559 this.ajaxRequestData(); 1560 this.searchPageData(); 1561 this.miniCartData(); 1562 this.beginCheckoutData(); 1563 1564 1565 1566 1567 1568 1569 1570 this.addToWishListData(); 1571 this.quickViewData(); 1572 this.formData(); 1573 this.phoneClickData(); 1574 this.emailClickData(); 1575 } 1576 1577 // Function to collect logged in customer data and push it to the dataLayer 1578 customerData() { 1579 const currentUser = {}; 1580 1581 1582 if (currentUser.email) { 1583 currentUser.hash_email = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 1584 } 1585 1586 if (currentUser.phone) { 1587 currentUser.hash_phone = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 1588 } 1589 1590 window.dataLayer = window.dataLayer || []; 1591 dataLayer.push({ 1592 customer: currentUser 1593 }); 1594 1595 // Log the pushed customer data to the console for SME SHOPIFY PIXEL DEBUGGERging purposes 1596 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Customer Data Pushed:', 'background: #222; color: #bada55; font-size: 14px; font-weight: bold;', currentUser); 1597 } 1598 1599 // Function to handle AJAX requests for add_to_cart, remove_from_cart, search, and update the dataLayer accordingly 1600 ajaxRequestData() { 1601 const self = this; 1602 1603 // Handling non-ajax add to cart 1604 if(this.isAddToCartRedirect) { 1605 document.addEventListener('submit', function(event) { 1606 const addToCartForm = event.target.closest('form[action="/cart/add"]'); 1607 if(addToCartForm) { 1608 event.preventDefault(); 1609 1610 const formData = new FormData(addToCartForm); 1611 1612 fetch(window.Shopify.routes.root + 'cart/add.js', { 1613 method: 'POST', 1614 body: formData 1615 }) 1616 .then(response => { 1617 window.location.href = "/cart"; 1618 }) 1619 .catch((error) => { 1620 console.error('%c[ERROR] Add to Cart Request Failed:', 'background: #ff0000; color: white; font-size: 14px; font-weight: bold;', error); 1621 }); 1622 } 1623 }); 1624 } 1625 1626 // Overriding fetch function to handle AJAX events 1627 let originalFetch = window.fetch; 1628 let debounce = this.debounce(800); 1629 1630 window.fetch = function () { 1631 return originalFetch.apply(this, arguments).then((response) => { 1632 if (response.ok) { 1633 let cloneResponse = response.clone(); 1634 let requestURL = arguments[0]; 1635 1636 // Handling search event 1637 if(/.*\/search\/?.*\?.*q=.+/.test(requestURL) && !requestURL.includes('&requestFrom=uldt')) { 1638 const queryString = requestURL.split('?')[1];
1639 const urlParams = new URLSearchParams(queryString); 1640 const search_term = urlParams.get("q"); 1641 1642 debounce(function() { 1643 fetch(`${self.storeURL}/search/suggest.json?q=${search_term}&resources[type]=product&requestFrom=uldt`) 1644 .then(res => res.json()) 1645 .then(function(data) { 1646 const products = data.resources.results.products; 1647 if(products.length) { 1648 const fetchRequests = products.map(product => 1649 fetch(`${self.storeURL}/${product.url.split('?')[0]}.js`) 1650 .then(response => response.json()) 1651 .catch(error => console.error('%c[ERROR] Error fetching product:', 'background: #ff0000; color: white; font-size: 14px; font-weight: bold;', error)) 1652 ); 1653 1654 Promise.all(fetchRequests) 1655 .then(products => { 1656 const items = products.map((product) => { 1657 return { 1658 product_id: product.id, 1659 product_title: product.title, 1660 variant_id: product.variants[0].id, 1661 variant_title: product.variants[0].title, 1662 vendor: product.vendor, 1663 total_discount: 0, 1664 final_price: product.price_min, 1665 product_type: product.type, 1666 quantity: 1 1667 } 1668 }); 1669 1670 self.ecommerceDataLayer('search', {search_term, items}); 1671 }) 1672 }else { 1673 self.ecommerceDataLayer('search', {search_term, items: []}); 1674 } 1675 }); 1676 }); 1677 } 1678 // Handling add to cart event 1679 else if (requestURL.includes("/cart/add")) { 1680 cloneResponse.text().then((text) => { 1681 let data = JSON.parse(text); 1682 1683 if(data.items && Array.isArray(data.items)) { 1684 data.items.forEach(function(item) { 1685 self.ecommerceDataLayer('add_to_cart', {items: [item]}); 1686 }) 1687 } else { 1688 self.ecommerceDataLayer('add_to_cart', {items: [data]}); 1689 } 1690 self.updateCart(); 1691 }); 1692 } 1693 // Handling cart change event 1694 else if(requestURL.includes("/cart/change") || requestURL.includes("/cart/update")) { 1695 1696 cloneResponse.text().then((text) => { 1697 1698 let newCart = JSON.parse(text); 1699 let newCartItems = newCart.items; 1700 let oldCartItems = self.cart.items; 1701 1702 for(let i = 0; i < oldCartItems.length; i++) { 1703 let item = oldCartItems[i]; 1704 let newItem = newCartItems.find(newItems => newItems.id === item.id); 1705 1706 1707 if(newItem) { 1708 1709 if(newItem.quantity > item.quantity) { 1710 // cart item increment 1711 let quantity = (newItem.quantity - item.quantity); 1712 let updatedItem = {...item, quantity} 1713 self.ecommerceDataLayer('add_to_cart', {items: [updatedItem]}); 1714 self.updateCart(); 1715 1716 }else if(newItem.quantity < item.quantity) { 1717 // cart item decrement 1718 let quantity = (item.quantity - newItem.quantity); 1719 let updatedItem = {...item, quantity} 1720 self.ecommerceDataLayer('remove_from_cart', {items: [updatedItem]}); 1721 self.updateCart(); 1722 } 1723 1724 }else { 1725 self.ecommerceDataLayer('remove_from_cart', {items: [item]}); 1726 self.updateCart(); 1727 } 1728 } 1729 }); 1730 } 1731 } 1732 return response; 1733 }); 1734 } 1735 // End of fetch 1736 1737 // Overriding XMLHttpRequest to handle AJAX events 1738 var origXMLHttpRequest = XMLHttpRequest; 1739 XMLHttpRequest = function() { 1740 var requestURL; 1741 1742 var xhr = new origXMLHttpRequest(); 1743 var origOpen = xhr.open; 1744 var origSend = xhr.send; 1745 1746 // Override the `open` function. 1747 xhr.open = function(method, url) { 1748 requestURL = url; 1749 return origOpen.apply(this, arguments); 1750 }; 1751 1752 1753 xhr.send = function() { 1754 1755 // Proceeding if the request URL matches what we're looking for. 1756 if (requestURL.includes("/cart/add") || requestURL.includes("/cart/change") || /.*\/search\/?.*\?.*q=.+/.test(requestURL)) { 1757 1758 xhr.addEventListener('load', function() { 1759 if (xhr.readyState === 4) { 1760 if (xhr.status >= 200 && xhr.status < 400) { 1761 1762 if(/.*\/search\/?.*\?.*q=.+/.test(requestURL) && !requestURL.includes('&requestFrom=uldt')) { 1763 const queryString = requestURL.split('?')[1];
1764 const urlParams = new URLSearchParams(queryString); 1765 const search_term = urlParams.get("q"); 1766 1767 debounce(function() { 1768 fetch(`${self.storeURL}/search/suggest.json?q=${search_term}&resources[type]=product&requestFrom=uldt`) 1769 .then(res => res.json()) 1770 .then(function(data) { 1771 const products = data.resources.results.products; 1772 if(products.length) { 1773 const fetchRequests = products.map(product => 1774 fetch(`${self.storeURL}/${product.url.split('?')[0]}.js`) 1775 .then(response => response.json()) 1776 .catch(error => console.error('%c[ERROR] Error fetching product:', 'background: #ff0000; color: white; font-size: 14px; font-weight: bold;', error)) 1777 ); 1778 1779 Promise.all(fetchRequests) 1780 .then(products => { 1781 const items = products.map((product) => { 1782 return { 1783 product_id: product.id, 1784 product_title: product.title, 1785 variant_id: product.variants[0].id, 1786 variant_title: product.variants[0].title, 1787 vendor: product.vendor, 1788 total_discount: 0, 1789 final_price: product.price_min, 1790 product_type: product.type, 1791 quantity: 1 1792 } 1793 }); 1794 1795 self.ecommerceDataLayer('search', {search_term, items}); 1796 }) 1797 }else { 1798 self.ecommerceDataLayer('search', {search_term, items: []}); 1799 } 1800 }); 1801 }); 1802 1803 } 1804 1805 else if(requestURL.includes("/cart/add")) { 1806 const data = JSON.parse(xhr.responseText); 1807 1808 if(data.items && Array.isArray(data.items)) { 1809 data.items.forEach(function(item) { 1810 self.ecommerceDataLayer('add_to_cart', {items: [item]}); 1811 }) 1812 } else { 1813 self.ecommerceDataLayer('add_to_cart', {items: [data]}); 1814 } 1815 self.updateCart(); 1816 1817 }else if(requestURL.includes("/cart/change")) { 1818 1819 const newCart = JSON.parse(xhr.responseText); 1820 const newCartItems = newCart.items; 1821 let oldCartItems = self.cart.items; 1822 1823 for(let i = 0; i < oldCartItems.length; i++) { 1824 let item = oldCartItems[i]; 1825 let newItem = newCartItems.find(newItems => newItems.id === item.id); 1826 1827 1828 if(newItem) { 1829 if(newItem.quantity > item.quantity) { 1830 // cart item increment 1831 let quantity = (newItem.quantity - item.quantity); 1832 let updatedItem = {...item, quantity} 1833 self.ecommerceDataLayer('add_to_cart', {items: [updatedItem]}); 1834 self.updateCart(); 1835 1836 }else if(newItem.quantity < item.quantity) { 1837 // cart item decrement 1838 let quantity = (item.quantity - newItem.quantity); 1839 let updatedItem = {...item, quantity} 1840 self.ecommerceDataLayer('remove_from_cart', {items: [updatedItem]}); 1841 self.updateCart(); 1842 } 1843 1844 1845 }else { 1846 self.ecommerceDataLayer('remove_from_cart', {items: [item]}); 1847 self.updateCart(); 1848 } 1849 } 1850 } 1851 } 1852 } 1853 }); 1854 } 1855 1856 return origSend.apply(this, arguments); 1857 }; 1858 1859 return xhr; 1860 }; 1861 // End of XMLHttpRequest 1862 } 1863 1864 // Function for collecting data from search page and pushing to dataLayer 1865 searchPageData() { 1866 const self = this; 1867 let pageUrl = window.location.href; 1868 1869 if(/.+\/search\?.*\&?q=.+/.test(pageUrl)) { 1870 const queryString = pageUrl.split('?')[1];
1871 const urlParams = new URLSearchParams(queryString); 1872 const search_term = urlParams.get("q"); 1873 1874 fetch(`https://fontainesdc.com/search/suggest.json?q=${search_term}&resources[type]=product&requestFrom=uldt`) 1875 .then(res => res.json()) 1876 .then(function(data) { 1877 const products = data.resources.results.products; 1878 if(products.length) { 1879 const fetchRequests = products.map(product => 1880 fetch(`${self.storeURL}/${product.url.split('?')[0]}.js`) 1881 .then(response => response.json()) 1882 .catch(error => console.error('%c[ERROR] Error fetching product:', 'background: #ff0000; color: white; font-size: 14px; font-weight: bold;', error)) 1883 ); 1884 Promise.all(fetchRequests) 1885 .then(products => { 1886 const items = products.map((product) => { 1887 return { 1888 product_id: product.id, 1889 product_title: product.title, 1890 variant_id: product.variants[0].id, 1891 variant_title: product.variants[0].title, 1892 vendor: product.vendor, 1893 total_discount: 0, 1894 final_price: product.price_min, 1895 product_type: product.type, 1896 quantity: 1 1897 } 1898 }); 1899 1900 self.ecommerceDataLayer('search', {search_term, items}); 1901 }); 1902 }else { 1903 self.ecommerceDataLayer('search', {search_term, items: []}); 1904 } 1905 }); 1906 } 1907 } 1908 1909 // Function to collect data from the mini cart and push to dataLayer 1910 miniCartData() { 1911 if(this.miniCartButton.length) { 1912 let self = this; 1913 if(this.miniCartAppersOn === 'hover') { 1914 this.miniCartAppersOn = 'mouseenter'; 1915 } 1916 this.miniCartButton.forEach((selector) => { 1917 let miniCartButtons = document.querySelectorAll(selector); 1918 miniCartButtons.forEach((miniCartButton) => { 1919 miniCartButton.addEventListener(self.miniCartAppersOn, () => { 1920 self.ecommerceDataLayer('view_cart', self.cart); 1921 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] View Cart Event Pushed (Mini Cart):', 'background: #222; color: #bada55; font-size: 14px; font-weight: bold;', self.cart); 1922 }); 1923 }); 1924 }); 1925 } 1926 } 1927 1928 // Function to track 'begin_checkout' event and push to dataLayer 1929 beginCheckoutData() { 1930 let self = this; 1931 document.addEventListener('pointerdown', (event) => { 1932 let targetElement = event.target.closest(self.beginCheckoutButtons.join(', ')); 1933 if(targetElement) { 1934 self.ecommerceDataLayer('begin_checkout', self.cart); 1935 console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Begin Checkout Event Pushed:', 'background: #6a1b9a; color: #fff; font-size: 14px; font-weight: bold;', self.cart); 1936 } 1937 }); 1938 } 1939 1940 // Function to track 'view_cart', 'add_to_cart', and 'remove_from_cart' events on the cart page 1941 viewCartPageData() { 1942 this.ecommerceDataLayer('view_cart', this.cart); 1943 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] View Cart Event Pushed (Cart Page):', 'background: #1e88e5; color: #fff; font-size: 14px; font-weight: bold;', this.cart); 1944 1945 if(!this.isAjaxCartIncrementDecrement) { 1946 const self = this; 1947 document.addEventListener('pointerdown', (event) => { 1948 const target = event.target.closest('a[href*="/cart/change?"]'); 1949 if(target) { 1950 const linkUrl = target.getAttribute('href'); 1951 const queryString = linkUrl.split("?")[1];
1952 const urlParams = new URLSearchParams(queryString); 1953 const newQuantity = urlParams.get("quantity"); 1954 const line = urlParams.get("line"); 1955 const cart_id = urlParams.get("id"); 1956 1957 if(newQuantity && (line || cart_id)) { 1958 let item = line ? {...self.cart.items[line - 1]} : self.cart.items.find(item => item.key === cart_id); 1959 let event = 'add_to_cart'; 1960 if(newQuantity < item.quantity) { 1961 event = 'remove_from_cart'; 1962 } 1963 let quantity = Math.abs(newQuantity - item.quantity); 1964 item['quantity'] = quantity; 1965 self.ecommerceDataLayer(event, {items: [item]}); 1966 // console.log(`%c[SME SHOPIFY PIXEL DEBUGGER] ${event === 'add_to_cart' ? 'Add to Cart' : 'Remove from Cart'} Event Pushed:`, 'background: #f57c00; color: #fff; font-size: 14px; font-weight: bold;', item); 1967 } 1968 } 1969 }); 1970 } 1971 } 1972 1973 // Function to track 'view_item' and 'begin_checkout' events on the product single page 1974 productSinglePage() { 1975 1976 } 1977 1978 // Function to track 'view_item_list' event on collections pages 1979 collectionsPageData() { 1980 var ecommerce = { 1981 'items': [ 1982 1983 ] 1984 }; 1985 1986 ecommerce['item_list_id'] = null 1987 ecommerce['item_list_name'] = null 1988 1989 this.ecommerceDataLayer('view_item_list', ecommerce); 1990 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] View Item List Event Pushed:', 'background: #0097a7; color: #fff; font-size: 14px; font-weight: bold;', ecommerce); 1991 } 1992 1993 // Function to track 'add_to_wishlist' event when a product is added to wishlist 1994 addToWishListData() { 1995 if(this.addToWishListSelectors && this.addToWishListSelectors.addWishListIcon) { 1996 const self = this; 1997 document.addEventListener('pointerdown', (event) => { 1998 let target = event.target; 1999 if(target.closest(self.addToWishListSelectors.addWishListIcon)) { 2000 let pageULR = window.location.href.replace(/\?.+/, ''); 2001 let requestURL = undefined; 2002 if(/\/products\/[^/]+$/.test(pageULR)) { 2003 requestURL = pageULR; 2004 } else if(self.addToWishListSelectors.gridItemSelector && self.addToWishListSelectors.productLinkSelector) { 2005 let itemElement = target.closest(self.addToWishListSelectors.gridItemSelector); 2006 if(itemElement) { 2007 let linkElement = itemElement.querySelector(self.addToWishListSelectors.productLinkSelector); 2008 if(linkElement) { 2009 let link = linkElement.getAttribute('href').replace(/\?.+/g, ''); 2010 if(link && /\/products\/[^/]+$/.test(link)) { 2011 requestURL = link; 2012 } 2013 } 2014 } 2015 } 2016 2017 if(requestURL) { 2018 fetch(requestURL + '.json') 2019 .then(res => res.json()) 2020 .then(result => { 2021 let data = result.product; 2022 if(data) { 2023 let dataLayerData = { 2024 product_id: data.id, 2025 variant_id: data.variants[0].id, 2026 product_title: data.title, 2027 quantity: 1, 2028 final_price: parseFloat(data.variants[0].price) * 100, 2029 total_discount: 0, 2030 product_type: data.product_type, 2031 vendor: data.vendor, 2032 variant_title: (data.variants[0].title !== 'Default Title') ? data.variants[0].title : undefined, 2033 sku: data.variants[0].sku, 2034 } 2035 2036 self.ecommerceDataLayer('add_to_wishlist', {items: [dataLayerData]}); 2037 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Add to Wishlist Event Pushed:', 'background: #ec407a; color: #fff; font-size: 14px; font-weight: bold;', dataLayerData); 2038 } 2039 }); 2040 } 2041 } 2042 }); 2043 } 2044 } 2045 2046 // Function to track 'view_item' event when a product is viewed in quick view 2047 quickViewData() { 2048 if(this.quickViewSelector.quickViewElement && this.quickViewSelector.gridItemSelector && this.quickViewSelector.productLinkSelector) { 2049 const self = this; 2050 document.addEventListener('pointerdown', (event) => { 2051 let target = event.target; 2052 if(target.closest(self.quickViewSelector.quickViewElement)) { 2053 let requestURL = undefined; 2054 let itemElement = target.closest(this.quickViewSelector.gridItemSelector); 2055 if(itemElement) { 2056 let linkElement = itemElement.querySelector(self.quickViewSelector.productLinkSelector); 2057 if(linkElement) { 2058 let link = linkElement.getAttribute('href').replace(/\?.+/g, ''); 2059 if(link && /\/products\/[^/]+$/.test(link)) { 2060 requestURL = link; 2061 } 2062 } 2063 } 2064 2065 if(requestURL) { 2066 fetch(requestURL + '.json') 2067 .then(res => res.json()) 2068 .then(result => { 2069 let data = result.product; 2070 if(data) { 2071 let dataLayerData = { 2072 product_id: data.id, 2073 variant_id: data.variants[0].id, 2074 product_title: data.title, 2075 quantity: 1, 2076 final_price: parseFloat(data.variants[0].price) * 100, 2077 total_discount: 0, 2078 product_type: data.product_type, 2079 vendor: data.vendor, 2080 variant_title: (data.variants[0].title !== 'Default Title') ? data.variants[0].title : undefined, 2081 sku: data.variants[0].sku, 2082 } 2083 2084 self.ecommerceDataLayer('view_item', {items: [dataLayerData]}); 2085 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Quick View Item Event Pushed:', 'background: #42a5f5; color: #fff; font-size: 14px; font-weight: bold;', dataLayerData); 2086 self.quickViewVariants = data.variants;
2087 self.quickViewedItem = dataLayerData; 2088 } 2089 }); 2090 } 2091 } 2092 }); 2093 2094 2095 if(this.shopifyDirectCheckoutButton.length) { 2096 let self = this; 2097 document.addEventListener('pointerdown', (event) => { 2098 let target = event.target; 2099 let checkoutButton = event.target.closest(this.shopifyDirectCheckoutButton.join(', ')); 2100 2101 if(self.quickViewVariants && self.quickViewedItem && self.quickViewVariants.length && checkoutButton) { 2102 let checkoutForm = checkoutButton.closest('form[action*="/cart/add"]'); 2103 if(checkoutForm) { 2104 let quantity = 1; 2105 let varientInput = checkoutForm.querySelector('input[name="id"]'); 2106 let quantitySelector = checkoutForm.getAttribute('id'); 2107 if(quantitySelector) { 2108 let quentityInput = document.querySelector('input[name="quantity"][form="'+quantitySelector+'"]'); 2109 if(quentityInput) { 2110 quantity = +quentityInput.value; 2111 } 2112 } 2113 2114 if(varientInput) { 2115 let variant_id = parseInt(varientInput.value); 2116 if(variant_id) { 2117 const variant = self.quickViewVariants.find(item => item.id === +variant_id); 2118 if(variant && self.quickViewedItem) { 2119 self.quickViewedItem['variant_id'] = variant_id; 2120 self.quickViewedItem['variant_title'] = variant.title; 2121 self.quickViewedItem['final_price'] = parseFloat(variant.price) * 100; 2122 self.quickViewedItem['quantity'] = quantity; 2123 self.ecommerceDataLayer('add_to_cart', {items: [self.quickViewedItem]}); 2124 self.ecommerceDataLayer('begin_checkout', {items: [self.quickViewedItem]}); 2125 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Add to Cart Event Pushed:', 'background: #f57c00; color: #fff; font-size: 14px; font-weight: bold;', self.quickViewedItem); 2126 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Begin Checkout Event Pushed:', 'background: #6a1b9a; color: #fff; font-size: 14px; font-weight: bold;', self.quickViewedItem); 2127 } 2128 } 2129 } 2130 } 2131 } 2132 }); 2133 } 2134 2135 } 2136 } 2137 2138 // Function to construct and push the data layer object for ecommerce events 2139 ecommerceDataLayer(event, data) { 2140 const self = this; 2141 dataLayer.push({ 'ecommerce': null }); 2142 const dataLayerData = { 2143 "event": this.eventPrefix + event, 2144 'ecommerce': { 2145 'currency': this.cart.currency, 2146 'items': data.items.map((item, index) => { 2147 const dataLayerItem = { 2148 'index': index, 2149 'item_id': this.formattedItemId ? `shopify_${this.countryCode}_${item.product_id}_${item.variant_id}` : item.product_id.toString(), 2150 'product_id': item.product_id.toString(), 2151 'variant_id': item.variant_id.toString(), 2152 'item_name': item.product_title, 2153 'quantity': item.quantity, 2154 'price': +((item.final_price / 100).toFixed(2)), 2155 'discount': item.total_discount ? +((item.total_discount / 100).toFixed(2)) : 0 2156 } 2157 2158 if(item.product_type) { 2159 dataLayerItem['item_category'] = item.product_type; 2160 } 2161 2162 if(item.vendor) { 2163 dataLayerItem['item_brand'] = item.vendor; 2164 } 2165 2166 if(item.variant_title && item.variant_title !== 'Default Title') { 2167 dataLayerItem['item_variant'] = item.variant_title; 2168 } 2169 2170 if(item.sku) { 2171 dataLayerItem['sku'] = item.sku; 2172 } 2173 2174 if(item.item_list_name) { 2175 dataLayerItem['item_list_name'] = item.item_list_name; 2176 } 2177 2178 if(item.item_list_id) { 2179 dataLayerItem['item_list_id'] = item.item_list_id.toString() 2180 } 2181 2182 return dataLayerItem; 2183 }) 2184 } 2185 } 2186 2187 if(data.total_price !== undefined) { 2188 dataLayerData['ecommerce']['value'] = +((data.total_price / 100).toFixed(2)); 2189 } else { 2190 dataLayerData['ecommerce']['value'] = +(dataLayerData['ecommerce']['items'].reduce((total, item) => total + (item.price * item.quantity), 0)).toFixed(2); 2191 } 2192 2193 if(data.item_list_id) { 2194 dataLayerData['ecommerce']['item_list_id'] = data.item_list_id; 2195 } 2196 2197 if(data.item_list_name) { 2198 dataLayerData['ecommerce']['item_list_name'] = data.item_list_name; 2199 } 2200 2201 if(data.search_term) { 2202 dataLayerData['search_term'] = data.search_term; 2203 } 2204 2205 if(self.dataSchema.dynamicRemarketing && self.dataSchema.dynamicRemarketing.show) { 2206 dataLayer.push({ 'dynamicRemarketing': null });
2207 dataLayerData['dynamicRemarketing'] = { 2208 value: dataLayerData.ecommerce.value, 2209 items: dataLayerData.ecommerce.items.map(item => ({id: item.item_id, google_business_vertical: self.dataSchema.dynamicRemarketing.business_vertical})) 2210 } 2211 } 2212 2213 if(!self.dataSchema.ecommerce || !self.dataSchema.ecommerce.show) { 2214 delete dataLayerData['ecommerce']; 2215 } 2216 2217 dataLayer.push(dataLayerData); 2218 // console.log(`%c[SME SHOPIFY PIXEL DEBUGGER] GTM Event: ${this.eventPrefix + event}`, 'background: #6a1b9a; color: #fff; font-size: 14px; font-weight: bold;', dataLayerData); 2219 } 2220 2221 // Function to track form submissions for contact forms and newsletter signups 2222 formData() { 2223 const self = this; 2224 document.addEventListener('submit', function(event) { 2225 let targetForm = event.target.closest('form[action^="/contact"]'); 2226 if(targetForm) { 2227 const formData = { 2228 form_location: window.location.href, 2229 form_id: targetForm.getAttribute('id'), 2230 form_classes: targetForm.getAttribute('class') 2231 }; 2232 2233 let formType = targetForm.querySelector('input[name="form_type"]'); 2234 let inputs = targetForm.querySelectorAll("input:not([type=hidden]):not([type=submit]), textarea, select"); 2235 2236 inputs.forEach(function(input) { 2237 var inputName = input.name; 2238 var inputValue = input.value; 2239 2240 if (inputName && inputValue) { 2241 var matches = inputName.match(/\[(.*?)\]/); 2242 if (matches && matches.length > 1) { 2243 var fieldName = matches[1]; 2244 formData[fieldName] = input.value; 2245 } 2246 } 2247 }); 2248 2249 if(formType && formType.value === 'customer') { 2250 dataLayer.push({ event: self.eventPrefix + 'newsletter_signup', ...formData}); 2251 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Newsletter Signup Event Pushed:', 'background: #0097a7; color: #fff; font-size: 14px; font-weight: bold;', formData); 2252 } else if(formType && formType.value === 'contact') { 2253 dataLayer.push({ event: self.eventPrefix + 'contact_form_submit', ...formData}); 2254 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Contact Form Submit Event Pushed:', 'background: #0097a7; color: #fff; font-size: 14px; font-weight: bold;', formData); 2255 } 2256 } 2257 }); 2258 } 2259 2260 // Function to track phone number clicks and push to dataLayer 2261 phoneClickData() { 2262 const self = this; 2263 document.addEventListener('click', function(event) { 2264 let target = event.target.closest('a[href^="tel:"]'); 2265 if(target) { 2266 let phone_number = target.getAttribute('href').replace('tel:', ''); 2267 dataLayer.push({ 2268 event: self.eventPrefix + 'phone_number_click', 2269 page_location: window.location.href, 2270 link_classes: target.getAttribute('class'), 2271 link_id: target.getAttribute('id'), 2272 phone_number 2273 }); 2274 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Phone Number Click Event Pushed:', 'background: #ec407a; color: #fff; font-size: 14px; font-weight: bold;', phone_number); 2275 } 2276 }); 2277 } 2278 2279 // Function to track email clicks and push to dataLayer 2280 emailClickData() { 2281 const self = this; 2282 document.addEventListener('click', function(event) { 2283 let target = event.target.closest('a[href^="mailto:"]'); 2284 if(target) { 2285 let email_address = target.getAttribute('href').replace('mailto:', ''); 2286 dataLayer.push({ 2287 event: self.eventPrefix + 'email_click', 2288 page_location: window.location.href, 2289 link_classes: target.getAttribute('class'), 2290 link_id: target.getAttribute('id'), 2291 email_address 2292 }); 2293 // console.log('%c[SME SHOPIFY PIXEL DEBUGGER] Email Click Event Pushed:', 'background: #42a5f5; color: #fff; font-size: 14px; font-weight: bold;', email_address); 2294 } 2295 }); 2296 } 2297 } 2298 // end SME_digital_datalayer 2299 2300 document.addEventListener('DOMContentLoaded', function() { 2301 try { 2302 new SME_digital_datalayer(); 2303 } catch(error) { 2304 console.error('%c[ERROR] Initialization Failed:', 'background: #ff0000; color: white; font-size: 14px; font-weight: bold;', error); 2305 } 2306 }); 2307 2308 })();
2309</script>
2309 2310
2310<script type="text/javascript"> 2311 const performanceCookieCategory = 'C0002'; 2312 const targetingCookieCategory = 'C0004'; 2313 function waitForOneTrust() { 2314 hasOneTrustLoaded(); 2315 let attempts = 0; 2316 const interval = setInterval(function () { 2317 2318 if (hasOneTrustLoaded() || attempts > 100){ 2319 clearInterval(interval); 2320 } 2321 2322 attempts++; 2323 2324 }, 100) 2325 2326 } 2327 2328 function hasOneTrustLoaded() { 2329 if(typeof window.OnetrustActiveGroups === 'string'){ 2330 //check now 2331 optanonWrapper() 2332 // and wrap and trigger after cookie opt-in 2333 window.OptanonWrapper = optanonWrapper; 2334 2335 return true; 2336 2337 } 2338 2339 return false; 2340 2341 } 2342 function sendConsent(analyticsConsent,targetingConsent) { 2343 console.log('Send Consent') 2344 window.Shopify.customerPrivacy.setTrackingConsent( 2345 { 2346 "analytics": analyticsConsent, 2347 "marketing": targetingConsent, 2348 }, 2349 () => console.log('Consent captured Performance ' + analyticsConsent + ' Consent captured Targeting ' + targetingConsent) 2350 2351 ); 2352 2353 } 2354 function optanonWrapper() { 2355 const analyticsConsent = window.OnetrustActiveGroups.includes(performanceCookieCategory); 2356 const targetingConsent = window.OnetrustActiveGroups.includes(targetingCookieCategory); 2357 console.log('Loading Shopify API') 2358 2359 2360 window.Shopify.loadFeatures( 2361 [ 2362 { 2363 name: 'consent-tracking-api', 2364 version: '0.1', 2365 }, 2366 ], 2367 error => { 2368 if (error) { 2369 console.error(error); 2370 } 2371 sendConsent(analyticsConsent,targetingConsent) 2372 2373 }, 2374 ); 2375 } 2376 2377 (function () { 2378 waitForOneTrust(); 2379 })(); 2380 </script>
2380 2381 <!-- OneTrust Cookies Consent Notice end --> 2382 2383 2384<!-- BEGIN app block: shopify://apps/geo-pro-geolocation/blocks/geopro/16fc5313-7aee-4e90-ac95-f50fc7c8b657 --><!-- This snippet is used to load Geo:Pro data on the storefront --> 2385<meta class='geo-ip' content='eyJwYXJhbWV0ZXJzIjp7ImxheW91dC1zZWxlY3RvciI6InBvcHVwIiwicGVybWFuZW50LXJlZGlyZWN0IjowLCJwb3B1cF9kZWxheSI6IjAiLCJkb21haW5zX2xpc3QiOmZhbHNlLCJzdG9yZV90aXRsZSI6IkZvbnRhaW5lcyBELkMuIiwicmVkaXJlY3RfdGV4dCI6Ikxvb2tzIGxpa2UgeW91JiMzOXJlIGluICVDT1VOVFJZJS4gV291bGQgeW91IGxpa2UgdG8gdmlzaXQgdGhlICVTVE9SRU5BTUUlPyIsInllcyI6IlllcywgcGxlYXNlIiwibm8iOiJObywgdGhhbmtzIiwiYmFja2dyb3VuZC1jb2xvciI6ImZmZmZmZiIsInRleHQtY29sb3IiOiIwMDAwMDAiLCJ5ZXMtYmFja2dyb3VuZC1jb2xvciI6IjAwMDAwMCIsInllcy10ZXh0LWNvbG9yIjoiZmZmZmZmIiwibm8tYmFja2dyb3VuZC1jb2xvciI6Ijg4ODg4OCIsIm5vLXRleHQtY29sb3IiOiJmZmZmZmYiLCJsb2NhbGl6YXRpb24iOltdLCJvd25lcl9pcCI6IiIsIm93bmVyX2lwX21vZGUiOiIiLCJzaG93X3BvcHVwX2Zvcl9zYW1lX3dlYnNpdGUiOmZhbHNlLCJoaWRlX3RoZV9ub19idXR0b24iOmZhbHNlLCJnZW9sb2NhdGVfa25vd25fYm90c19hbmRfYWlfYWdlbnRzIjpmYWxzZSwiZGlzYWJsZWRfc3RhdGUiOmZhbHNlLCJsYXN0X2VtYmVkZGVkX2F0IjoiMjAyNi0wOC0yOCAwODowNTo1MyJ9LCJydWxlc0xpc3QiOlt7InJ1bGVfaWQiOiI1MDgyMyIsImNvdW50cmllcyI6IkF1c3RyYWxpYSxDb29rIElzbGFuZHMsRmlqaSxGcmVuY2ggUG9seW5lc2lhLEtpcmliYXRpLE5hdXJ1LE5ldyBDYWxlZG9uaWEsTmV3IFplYWxhbmQsTml1ZSxOb3Jmb2xrIElzbGFuZCxQYXB1YSBOZXcgR3VpbmVhLFBpdGNhaXJuLFNhbW9hLFNvbG9tb24gSXNsYW5kcyxUaW1vciBMZXN0ZSxUb2tlbGF1LFRvbmdhLFR1dmFsdSxWYW51YXR1LFdhbGxpcyBBbmQgRnV0dW5hIiwiZXhjZXB0aW9ucyI6IiIsImlwIjoiIiwic3RvcmVfbmFtZSI6IkF1c3RyYWxpYVwvTmV3IFplYWxhbmQgU3RvcmUiLCJpcF9leGNlcHRpb25zIjoiIiwibGluayI6Imh0dHBzOlwvXC9zaG9wLWF1LmZvbnRhaW5lc2RjLmNvbSIsImRvbWFpbl9yZWRpcmVjdCI6IjAiLCJtYXJrZXRfaWQiOiIwIn0seyJydWxlX2lkIjoiNTA4MjQiLCJjb3VudHJpZXMiOiJDYW5hZGEsTWV4aWNvLFVuaXRlZCBTdGF0ZXMiLCJleGNlcHRpb25zIjoiIiwiaXAiOiIiLCJzdG9yZV9uYW1lIjoiTm9ydGggQW1lcmljYW4gU3RvcmUiLCJpcF9leGNlcHRpb25zIjoiIiwibGluayI6Imh0dHBzOlwvXC9zaG9wLXVzLmZvbnRhaW5lc2RjLmNvbVwvIiwiZG9tYWluX3JlZGlyZWN0IjoiMCIsIm1hcmtldF9pZCI6IjAifV19'> 2386<!-- This snippet initializes the plugin -->
2387<script async data-geopro-shop="fontaines-d-c.myshopify.com" data-geopro-design-mode="false" data-geopro-tracking-env="production"> 2388 // geopro loading script 2389 !function(){function e(e,t,n){try{if("function"!=typeof fetch)return;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf("Baiduspider")>=0)return;var o="https://aa4cacd33be28673d7e69be559ce7ad7@o4506196830715904.ingest.us.sentry.io/4507550373445632",r=o.match(/^https:\/\/([^@]+)@([^/]+)\/(.+)$/),i={message:e,level:"error",environment:"production",transaction:location.href,user:{id:window.Shopify&&window.Shopify.shop?window.Shopify.shop:"unknown",ip_address:String.fromCharCode(123,123)+"auto"+String.fromCharCode(125,125)},extra:n||{},logger:"GeoProInline",exception:{type:t&&t.name?t.name:"Error",value:t&&t.message?t.message:String(t)}};fetch("https://"+r[2]+"/api/"+r[3]+"/envelope/?sentry_key="+r[1],{method:"POST",body:JSON.stringify({dsn:o,sent_at:(new Date).toISOString(),event_id:Math.random().toString(16).slice(2)})+'\n{"type":"event"}\n'+JSON.stringify(i)+"\n",headers:{"Content-Type":"text/plain"},keepalive:!0,referrerPolicy:"no-referrer",mode:"no-cors"}).catch((function(){}))}catch(e){}}function t(){window.geopro_cancel="1"}!function(){try{if(window.geopro_inline_tracking)return;var e=document.currentScript,t=e&&e.getAttribute("data-geopro-shop")||window.Shopify&&window.Shopify.shop;if(!t||!/^[a-z0-9][a-z0-9-]*\.myshopify\.com$/.test(t))return;if(/(^|\.)shopifypreview\.com$/.test(location.hostname))return;if(e&&"true"===e.getAttribute("data-geopro-design-mode")||window.Shopify&&window.Shopify.designMode)return;var n=new Date,o=new Date(n.getFullYear(),n.getMonth(),n.getDate()),r=new Date(n.getFullYear(),n.getMonth(),n.getDate()+1),i=function(e){return e<10?"0"+e:String(e)},a=n.getFullYear()+"-"+i(n.getMonth()+1)+"-"+i(n.getDate()),c="geoip-inline-"+(e&&"staging"===e.getAttribute("data-geopro-tracking-env")?"staging-":"")+t;function s(){try{for(var e=document.cookie.split(";"),t=0;t<e.length;t++){var n=e[t].trim();if(0===n.indexOf(c+"="))return JSON.parse(decodeURIComponent(n.slice(c.length+1)))}}catch(e){}return null}function d(e){try{document.cookie=c+"="+encodeURIComponent(JSON.stringify(e))+"; Path=/; SameSite=Lax; Expires="+r.toUTCString()+("https:"===location.protocol?"; Secure":"");var t=s();return!!t&&t.id===e.id&&t.day===e.day&&t.sent===e.sent}catch(e){return!1}}var u=s();if(!u||!/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(u.id)||u.day!==a||u.start!==o.getTime()/1e3||u.end!==r.getTime()/1e3||"boolean"!=typeof u.sent||"number"!=typeof u.time||u.time<u.start||u.time>=u.end){var p="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}));u={id:p,day:a,start:o.getTime()/1e3,end:r.getTime()/1e3,time:Math.floor(n.getTime()/1e3),sent:!1}}u.id=u.id.toLowerCase();var f=d(u),l={id:u.id,localDate:a,cookieAvailable:f,version:1};if(window.geopro_inline_tracking=l,u.sent||"function"!=typeof fetch)return;var g={};try{var m=document.referrer?new URL(document.referrer):null,h=/[?&](gclid|gbraid|wbraid|fbclid|ttclid|msclkid)=/.exec(location.search),y=/[?&]utm_source=([^&#]{1,40})/.exec(location.search);g={prerendering:!0===document.prerendering,visibility:document.visibilityState||"",webdriver:!0===navigator.webdriver,referrerHost:m?m.host.slice(0,100):"",referrerPath:m&&m.host===location.host?m.pathname.slice(0,100):"",path:location.pathname.slice(0,100),campaign:h?h[1]:y?"utm:"+decodeURIComponent(y[1]):""}}catch(x){}fetch("/apps/easylocation/api/inline-visit",{method:"POST",headers:{"Content-Type":"text/plain"},credentials:"same-origin",mode:"same-origin",redirect:"error",keepalive:!0,referrerPolicy:"no-referrer",body:JSON.stringify({myshopifyDomain:t,trackingId:u.id,localDate:a,dayStart:u.start,dayEnd:u.end,clientTime:u.time,pageHost:location.host,cookieAvailable:f,version:1,diag:g})}).then((function(e){if(204===e.status&&!e.redirected){var t=s();Date.now()<r.getTime()&&t&&t.id===u.id&&t.day===a&&(t.sent=!0,d(t))}})).catch((function(){}))}catch(v){}}();try{!function(){function n(n){try{if(!n||"success"!==n.message)return void t();window.geopro_inline_location_response=n}catch(o){e("GeoPro inline runtime error",o,{phase:"callback",response:n}),t()}}var o="/apps/easylocation/geo?x-api-key=91e359ab7-2b63-539e-1de2-c4bf731367a7",r=new XMLHttpRequest;r.open("GET",o,!0),r.responseType="json",r.timeout=5e3;var i=!1;function a(t){i||(i=!0,e("GeoPro inline XHR failed",new Error("XHR request failed: "+t),{url:o,eventType:t,status:r.status,readyState:r.readyState,timeout:r.timeout,responseURL:r.responseURL||null}),n(null))}
2389r.onload=function(){if(200===r.status)return i=!0,void n(r.response);a("load")},r.onerror=function(){a("error")},r.ontimeout=function(){a("timeout")},r.onabort=function(){a("abort")},r.send()}()}catch(n){e("GeoPro inline runtime error",n,{phase:"load"}),t()}}(); 2390</script>
vendor: 1 bytes, line 2390
2390
2391<script src="https://cdn.shopify.com/extensions/01a0ee66-285d-79ac-b351-7570b0c735dd/easylocation-285/assets/easylocation-storefront.min.js" type="text/javascript" async></script>
2391 2392 2393 2394<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407
2407<script async src="https://static.klaviyo.com/onsite/js/XGhspP/klaviyo.js?company_id=XGhspP"></script>
2407 2408
2408<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
2408 2409 2410 2411 2412 2413 2414 2415
2415<script> 2416 window.klaviyoReviewsProductDesignMode = false 2417 </script>
2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2428<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 65414398179,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 2428
2428
2429<script> 2430 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2431</script>
vendor: 1 bytes, line 2431
2431
2432<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
2432).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 65414398179,storefrontBaseUrl: "https://fontainesdc.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://fontainesdc.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2307916155","configuration":"{\"accountID\":\"XGhspP\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
2432,{"id":"1498775931","configuration":"{\"pixel_id\":\"460904204557336\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"474153187","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-NFB7ZG6P\\\"],\\\"target_country\\\":\\\"GB\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-ZJHGG17JKP\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-ZJHGG17JKP\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-ZJHGG17JKP\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"33947875","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"GTM \u0026 Checkout"},{"id":"234717563","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Beggars Meta"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Fontaines D.C.","paymentSettings":{"currencyCode":"GBP"},"myshopifyDomain":"fontaines-d-c.myshopify.com","countryCode":"GB","storefrontUrl":"https:\/\/fontainesdc.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7779192406243","handle":"a-hero-s-death-7-single","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43119520383203","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7779192275171","handle":"a-hero-s-death-cd","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43119520252131","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7779192307939","handle":"a-hero-s-death-lp","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43119520284899","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7935480529123","handle":"band-of-distinction-hoody","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43499480744163","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://fontainesdc.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"182171730299","themePublished":"true","eventMetadataId":"6e5acc5c-acf9-4937-8cc6-f5d7e1e7b51a","pageType":"page","resourceId":"102965346531","shopId":"65414398179","storefrontBaseUrl":"https:\/\/fontainesdc.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2432<script> 2433 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2434 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2435 window.ShopifyAnalytics.meta.currency = 'GBP'; 2436 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":102965346531,"requestId":"95fbb647-2f24-4f0e-a8cc-a205228259e2-1790937051"}}; 2437 for (var attr in meta) { 2438 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2439 } 2440</script>
vendor: 1 bytes, line 2440
2440
2441<script class="analytics"> 2442 (function () { 2443 var customDocumentWrite = function(content) { 2444 var jquery = null; 2445 2446 if (window.jQuery) { 2447 jquery = window.jQuery; 2448 } else if (window.Checkout && window.Checkout.$) { 2449 jquery = window.Checkout.$; 2450 } 2451 2452 if (jquery) { 2453 jquery('body').append(content); 2454 } 2455 }; 2456 2457 var hasLoggedConversion = function(token) { 2458 if (token) { 2459 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2460 } 2461 return false; 2462 } 2463 2464 var setCookieIfConversion = function(token) { 2465 if (token) { 2466 var twoMonthsFromNow = new Date(Date.now()); 2467 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2468 2469 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2470 } 2471 } 2472 2473 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2474 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2475 if (trekkie.integrations) { 2476 return; 2477 } 2478 trekkie.methods = [ 2479 'identify', 2480 'page', 2481 'ready', 2482 'track', 2483 'trackForm', 2484 'trackLink' 2485 ]; 2486 trekkie.factory = function(method) { 2487 return function() { 2488 var args = Array.prototype.slice.call(arguments); 2489 args.unshift(method); 2490 trekkie.push(args); 2491 if (method == 'track' || method == 'page') { 2492 var pageUrl; 2493 try { 2494 pageUrl = window.location.href; 2495 } catch (e) {} 2496 var pageReferrer; 2497 try { 2498 pageReferrer = document.referrer; 2499 } catch (e) {} 2500 try { 2501 if (window.__TREKKIE_SHIM_QUEUE == null) { 2502 window.__TREKKIE_SHIM_QUEUE = []; 2503 } 2504 window.__TREKKIE_SHIM_QUEUE.push({ 2505 from: 'trekkie-stub', 2506 method: method, 2507 args: args.slice(1), 2508 pageContext: { 2509 url: pageUrl, 2510 referrer: pageReferrer 2511 } 2512 }); 2513 } catch (e) { 2514 // no-op 2515 } 2516 } 2517 return trekkie; 2518 }; 2519 }; 2520 for (var i = 0; i < trekkie.methods.length; i++) { 2521 var key = trekkie.methods[i]; 2522 trekkie[key] = trekkie.factory(key); 2523 } 2524 trekkie.load = function(config) { 2525 trekkie.config = config || {}; 2526 trekkie.config.initialDocumentCookie = document.cookie; 2527 var first = document.getElementsByTagName('script')[0]; 2528var script = document.createElement('script'); 2529script.type = 'text/javascript'; 2530script.onerror = function(e) { 2531 var scriptFallback = document.createElement('script'); 2532 scriptFallback.type = 'text/javascript'; 2533 scriptFallback.onerror = function(error) { 2534 var Monorail = { 2535 produce: function produce(monorailDomain, schemaId, payload) { 2536 var currentMs = new Date().getTime(); 2537 var event = { 2538 schema_id: schemaId, 2539 payload: payload, 2540 metadata: { 2541 event_created_at_ms: currentMs, 2542 event_sent_at_ms: currentMs 2543 } 2544 }; 2545 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2546 }, 2547 sendRequest: function sendRequest(endpointUrl, payload) { 2548 // Try the sendBeacon API 2549 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2550 var blobData = new window.Blob([payload], { 2551 type: 'text/plain' 2552 }); 2553 2554 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2555 return true; 2556 } // sendBeacon was not successful 2557 2558 } // XHR beacon 2559 2560 var xhr = new XMLHttpRequest(); 2561 2562 try { 2563 xhr.open('POST', endpointUrl); 2564 xhr.setRequestHeader('Content-Type', 'text/plain'); 2565 xhr.send(payload); 2566 } catch (e) { 2567 console.log(e); 2568 } 2569 2570 return false; 2571 }, 2572 isIos12: function isIos12() { 2573 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2574 } 2575 }; 2576 Monorail.produce('monorail-edge.shopifysvc.com', 2577 'trekkie_storefront_load_errors/1.1', 2578 {shop_id: 65414398179, 2579 theme_id: 182171730299, 2580 app_name: "storefront", 2581 context_url: window.location.href, 2582 source_url: "//fontainesdc.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 2583 2584 }; 2585 scriptFallback.async = true; 2586 scriptFallback.src = '//fontainesdc.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 2587 first.parentNode.insertBefore(scriptFallback, first); 2588}; 2589script.async = true; 2590script.src = '//fontainesdc.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 2591first.parentNode.insertBefore(script, first); 2592 2593 }; 2594 trekkie.load( 2595 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":65414398179,"isMerchantRequest":null,"themeId":182171730299,"themeCityHash":"14826194806389999515","contentLanguage":"en","currency":"GBP","eventMetadataId":"6e5acc5c-acf9-4937-8cc6-f5d7e1e7b51a"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2596 ); 2597 2598 var loaded = false;
2599 trekkie.ready(function() { 2600 if (loaded) return; 2601 loaded = true; 2602 2603 window.ShopifyAnalytics.lib = window.trekkie; 2604 2605 var originalDocumentWrite = document.write; 2606 document.write = customDocumentWrite; 2607 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2608 document.write = originalDocumentWrite; 2609 2610 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2611 var token = match? match[1]: undefined; 2612 if (!hasLoggedConversion(token)) { 2613 setCookieIfConversion(token); 2614 2615 } 2616 }); 2617 2618 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":102965346531,"requestId":"95fbb647-2f24-4f0e-a8cc-a205228259e2-1790937051","shopifyEmitted":true}); 2619 2620 var eventsListenerScript = document.createElement('script'); 2621 eventsListenerScript.async = true; 2622 eventsListenerScript.src = "//fontainesdc.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2623 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2624})();</script>
2624 2625
2625<script> 2626 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 2627 window.ga = function ga() { 2628 (window.ga.q = window.ga.q || []).push(arguments); 2629 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 2630 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 2631 } 2632 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 2633 }; 2634 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 2635 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 2636 } 2637 } 2638</script>
vendor: 1 bytes, line 2638
2638
2639<script 2640 defer 2641 src="https://fontainesdc.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2642 data-application="storefront-renderer" 2643 data-shop-id="65414398179" 2644 data-render-region="gcp-europe-west1" 2645 data-page-type="page" 2646 data-theme-instance-id="182171730299" 2647 data-theme-name="Horizon" 2648 data-theme-version="4.1.1" 2649 data-monorail-region="shop_domain" 2650 data-resource-timing-sampling-rate="10" 2651 data-shs="true" 2652 data-shs-beacon="true" 2653 data-shs-export-with-fetch="true" 2654 data-shs-logs-sample-rate="1" 2655 data-shs-beacon-endpoint="https://fontainesdc.com/api/collect" 2656></script>
vendor: 1 bytes, line 2656
2656
2657<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script>
2657<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"65414398179","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Sign in or create account"},{"key":"account_menu.signed_out_state.section_divider","value":"More ways to sign in"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"Email"},{"key":"account_menu.signed_out_state.orders_button","value":"Orders"},{"key":"account_menu.signed_out_state.profile_button","value":"Profile"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Sign in with Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continue with Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continue with Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"I'd like to receive marketing updates from Fontaines D.C."},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hi, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Orders"},{"key":"account_menu.signed_in_state.profile_button","value":"Profile"},{"key":"account_menu.location_picker.sheet_title","value":"Locations"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Search"},{"key":"account_menu.aria_labels.close_menu","value":"Close menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Back to main menu from {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opens submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Loading menu"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Sign in with email"},{"key":"account_menu.aria_labels.sign_in","value":"Sign in"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":false},"visitor":{"country":"GB","language":"en"}}</script>
2657 2658<meta name="shopify-y" content="e3844e09-6b01-4028-ad48-2ac06607968e" data-expiration="1822494651000"><meta name="shopify-s" content="9902fa37-42b9-4885-a95e-791ead3937d2" data-expiration="1790938851000"><meta name="new-cookie-storage-activated" content="t"> 2659</head> 2660 2661 <body class="template-page page-width-wide card-hover-effect-lift"> 2662 <a 2663 class="skip-to-content-link button-secondary" 2664 href="#MainContent" 2665> 2666 Skip to content 2667</a> 2668 2669 2670 2671 2672 2673 2674 2675<theme-drawer id="chat-drawer"> 2676 <dialog 2677 ref="panel" 2678 class="theme-drawer__dialog chat-drawer" 2679 > 2680 <shopify-chat 2681 mode="standalone" 2682 mode-switch 2683 ></shopify-chat> 2684 </dialog> 2685</theme-drawer> 2686
2687<script type="module"> 2688 const chatDrawer = document.querySelector('#chat-drawer'); 2689 const shopifyChat = document.querySelector('shopify-chat'); 2690 2691 document.addEventListener('theme-drawer:open', (event) => { 2692 if (/** @type {Element} */ (event.target).id !== 'chat-drawer') return; 2693 shopifyChat?.setAttribute('mode', 'managed'); 2694 }); 2695 2696 document.addEventListener('theme-drawer:close', (event) => { 2697 if (/** @type {Element} */ (event.target).id !== 'chat-drawer') return; 2698 // If mode is still managed, this is a theme-initiated close (backdrop / 2699 // Escape) â close the chat so the FAB appears. If mode is already 2700 // standalone, the close was triggered by an undock (enter-standalone sets 2701 // mode before closing the drawer) â leave the chat open as a floating panel. 2702 if (shopifyChat?.getAttribute('mode') === 'managed') { 2703 shopifyChat?.removeAttribute('open'); 2704 } 2705 shopifyChat?.setAttribute('mode', 'standalone'); 2706 }); 2707 2708 document.addEventListener('shopify-chat:enter-managed', () => { 2709 // Captured at event-fire time â the dock-transition animation hint below 2710 // depends on state as it was when the event was dispatched. 2711 const isStandaloneAndOpen = shopifyChat?.hasAttribute('open') && shopifyChat?.getAttribute('mode') === 'standalone'; 2712 2713 // The activator-click path (FAB click on desktop with stored 2714 // preferredMode=managed) dispatches enter-managed *before* calling show(), 2715 // so the chat's `open` attribute at event time understates the imminent 2716 // outcome. Defer to a microtask: by then show() (if any) has run, and we 2717 // can distinguish the viewport-driven mobileâdesktop transition that left 2718 // a minimized FAB (chat stays closed â don't open an empty drawer) from 2719 // an activator click (chat just opened â open the drawer). 2720 queueMicrotask(() => { 2721 if (!shopifyChat?.hasAttribute('open') && !chatDrawer?.hasAttribute('open')) { 2722 return; 2723 } 2724 chatDrawer?.open?.(isStandaloneAndOpen ? { enter: 'inline-start' } : undefined); 2725 }); 2726 }); 2727 2728 document.addEventListener('shopify-chat:enter-standalone', () => { 2729 shopifyChat?.setAttribute('mode', 'standalone'); 2730 chatDrawer?.close?.(); 2731 }); 2732 2733 document.addEventListener('shopify-chat:close', () => { 2734 if (shopifyChat?.getAttribute('mode') === 'managed') { 2735 chatDrawer?.close?.(); 2736 } 2737 }); 2738 2739 document.addEventListener('megaMenu:hover', () => { 2740 if (shopifyChat?.hasAttribute('open') && shopifyChat?.getAttribute('mode') === 'standalone') { 2741 shopifyChat?.removeAttribute('open'); 2742 } 2743 }); 2744 2745 // After the chat upgrades it self-restores its preferred mode from 2746 // sessionStorage. Reconcile any mismatch with the theme-drawer's state 2747 // â the drawer is the source of truth for which mode the chat should 2748 // be in (open â managed, closed â standalone). 2749 customElements.whenDefined('shopify-chat').then(() => { 2750 const mode = chatDrawer?.hasAttribute('open') ? 'managed' : 'standalone'; 2751 if (shopifyChat?.getAttribute('mode') !== mode) { 2752 // When switching managed â standalone (e.g. narrow viewport skipped 2753 // drawer restore), also close the chat so it renders as the FAB 2754 // rather than an open standalone panel. 2755 if (mode === 'standalone' && shopifyChat?.hasAttribute('open')) { 2756 shopifyChat?.removeAttribute('open'); 2757 } 2758 shopifyChat?.setAttribute('mode', mode); 2759 } 2760 }); 2761</script>
2761 2762 2763 2764 2765 2766 <div class="page-wrapper"> 2767 <div id="header-group"> 2768 <!-- BEGIN sections: header-group --> 2769<header id="shopify-section-sections--25631040602491__header_section" class="shopify-section shopify-section-group-header-group header-section"> 2770 2771 2772
2773<script type="application/ld+json"> 2774 { 2775 "@context": "http://schema.org", 2776 "@type": "Organization", 2777 "name": "Fontaines D.C.", 2778 2779 "url": "https:\/\/fontainesdc.com\/pages\/live" 2780 } 2781</script>
2781 2782 2783 2784 2785<header-component 2786 id="header-component" 2787 class="header" 2788 data-theme-color="rgb(25 102 203)" 2789 data-bubble-style="default" 2790 2791 2792 sticky="always" 2793 2794 data-skip-node-update 2795 data-scroll-direction="none" 2796 2797 2798 data-transparent-background="bottom" 2799 2800 style=" 2801 --color-background-top-row: rgba(25 102 203 / 1.0); 2802 --color-background-bottom-row: rgba(0 0 0 / 1.0); 2803 2804 2805 --cart-bubble-background: #000000; 2806 --cart-bubble-text: #1966cb; 2807 2808 2809 " 2810> 2811 <div class="header__underlay header__underlay-closed"></div> 2812 <div 2813 class="header__underlay header__underlay-open" 2814 ></div> 2815 2816 2817 2818 2819 2820 2821 <div 2822 class="header__row header__row--top color-#1966cb section section--full-width-margin section--full-width color-custom-top-sections--25631040602491__header_section" 2823 ref="headerRowTop"style="--border-bottom-width: 0px; --border-bottom-width-mobile: 0px; --border-bottom-color-mobile: var(--color-border);"> 2824 <div class="header__columns spacing-style"> 2825 <style data-shopify> 2826 .color-custom-top-sections--25631040602491__header_section, 2827 .color-custom-top-sections--25631040602491__header_section .text-block { 2828 /* Background */ 2829 --color-background: #1966cb; 2830 --color-background-rgb: 25 102 203; 2831 2832 /* Opacity values adjusted for background brightness */ 2833 2834--opacity-5-15: 0.05; --opacity-10-25: 0.1; --opacity-35-55: 0.35; --opacity-40-60: 28350.4; --opacity-30-60: 0.3; --opacity-60: 0.6; 2836 2837 2838 2839 /* Foreground / text â explicit or smart-contrasted */ 2840 --color: #000000; 2841 --color-rgb: 0 0 0; 2842 --color-foreground: #000000; 2843 --color-foreground-rgb: 0 0 0; 2844 --color-foreground-muted: rgb(0 0 0 / var(--opacity-muted-text)); 2845 --color-foreground-subdued: rgb(0 0 0 / var(--opacity-subdued-text)); 2846 --color-border: var(--palette-lightest); 2847 --color-border-rgb: var(--palette-lightest-rgb); 2848 2849 } 2850 2851 2852 .color-custom-top-sections--25631040602491__header_section { 2853 /* Form-related tokens stay on .color-custom only â .text-block is a prose 2854 container (text/announcement/inline-text/blog-post-description/ 2855 collection-link/price/sku) and never holds form inputs. */ 2856 --input-disabled-background-color: rgb(0 0 0 / var(--opacity-10)); 2857 --input-disabled-border-color: rgb(0 0 0 / var(--opacity-5)); 2858 --input-disabled-text-color: rgb(0 0 0 / var(--opacity-50)); 2859 --checkbox-border: 1px solid rgb(0 0 0 / var(--opacity-35-55)); 2860 } 2861 2862 2863 .color-custom-top-sections--25631040602491__header_section { 2864 color: var(--color, var(--color-foreground)); 2865 background-color: var(--color-background); 2866 } 2867 </style> 2868 2869 2870 2871 2872<div 2873 class="header__column header__column--left" 2874 data-testid="header-top-left" 2875 > 2876 2877 2878 2879 2880 2881 2882 <div 2883 class="header__drawer" 2884 ref="headerDrawerContainer" 2885 data-hydration-key="header-drawer-mobile" 2886 2887 > 2888 2889 2890 2891 2892 2893 <style data-shopify> 2894 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu-1, 2895 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu-1 .text-block { 2896 /* Background */ 2897 --color-background: #000000; 2898 --color-background-rgb: 0 0 0; 2899 2900 /* Opacity values adjusted for background brightness */ 2901 2902--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 29030.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 2904 2905 2906 2907 /* Foreground / text â explicit or smart-contrasted */ 2908 --color: #1966cb; 2909 --color-rgb: 25 102 203; 2910 --color-foreground: #1966cb; 2911 --color-foreground-rgb: 25 102 203; 2912 --color-foreground-muted: rgb(25 102 203 / var(--opacity-muted-text)); 2913 --color-foreground-subdued: rgb(25 102 203 / var(--opacity-subdued-text)); 2914 --color-border: var(--palette-lightest); 2915 --color-border-rgb: var(--palette-lightest-rgb); 2916 2917 } 2918 2919 2920 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu-1 { 2921 /* Form-related tokens stay on .color-custom only â .text-block is a prose 2922 container (text/announcement/inline-text/blog-post-description/ 2923 collection-link/price/sku) and never holds form inputs. */ 2924 --input-disabled-background-color: rgb(25 102 203 / var(--opacity-10)); 2925 --input-disabled-border-color: rgb(25 102 203 / var(--opacity-5)); 2926 --input-disabled-text-color: rgb(25 102 203 / var(--opacity-50)); 2927 --checkbox-border: 1px solid rgb(25 102 203 / var(--opacity-35-55)); 2928 } 2929 2930 2931 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu-1 { 2932 color: var(--color, var(--color-foreground)); 2933 background-color: var(--color-background); 2934 } 2935 </style> 2936 2937 2938
2939<script 2940 src="//fontainesdc.com/cdn/shop/t/35/assets/header-drawer.js?v=121243031541024704371786997006" 2941 type="module" 2942 fetchpriority="low" 2943></script>
2943 2944 2945<header-drawer 2946 class="header-drawer " 2947 style="--menu-image-border-radius: 0px; --resource-card-corner-radius: 0px;" 2948> 2949 <details 2950 id="Details-menu-drawer-container" 2951 data-skip-node-update="true" 2952 class="menu-drawer-container" 2953 ref="details" 2954 scroll-lock 2955 > 2956 <summary 2957 class="header__icon header__icon--menu header__icon--summary" 2958 aria-label="Menu" 2959 on:click="/toggle" 2960 > 2961 <span class="svg-wrapper header-drawer-icon header-drawer-icon--open"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 2962 <path d="M1 3.5H13" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/> 2963 <path d="M1 10.5H13" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/> 2964</svg> 2965</span> 2966 <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2967<path d="M11.1765 12.025C11.4108 12.2594 11.7907 12.2594 12.025 12.025C12.2594 11.7907 12.2594 11.4108 12.025 11.1765L8.84931 8.00078L12.025 4.82505C12.2594 4.59073 12.2594 4.21083 12.025 3.97652C11.7907 3.7422 11.4108 3.7422 11.1765 3.97652L8.00078 7.15225L4.82505 3.97652C4.59073 3.7422 4.21083 3.7422 3.97652 3.97652C3.7422 4.21083 3.7422 4.59073 3.97652 4.82505L7.15225 8.00078L3.97652 11.1765C3.7422 11.4108 3.7422 11.7907 3.97652 12.025C4.21083 12.2594 4.59073 12.2594 4.82505 12.025L8.00078 8.84931L11.1765 12.025Z" fill="currentColor"/> 2968</svg> 2969</span> 2970 </summary> 2971 <div 2972 ref="menuDrawer" 2973 class=" 2974 menu-drawer 2975 2976 color-custom-AZ0lZWWF3M09wNWx2Z__header-menu-1 2977 2978 " 2979 > 2980 <button 2981 class="button close-button menu-drawer__close-button focus-inset" 2982 type="button" 2983 aria-label="Close" 2984 on:click="/close" 2985 > 2986 <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 2987<path d="M11.1765 12.025C11.4108 12.2594 11.7907 12.2594 12.025 12.025C12.2594 11.7907 12.2594 11.4108 12.025 11.1765L8.84931 8.00078L12.025 4.82505C12.2594 4.59073 12.2594 4.21083 12.025 3.97652C11.7907 3.7422 11.4108 3.7422 11.1765 3.97652L8.00078 7.15225L4.82505 3.97652C4.59073 3.7422 4.21083 3.7422 3.97652 3.97652C3.7422 4.21083 3.7422 4.59073 3.97652 4.82505L7.15225 8.00078L3.97652 11.1765C3.7422 11.4108 3.7422 11.7907 3.97652 12.025C4.21083 12.2594 4.59073 12.2594 4.82505 12.025L8.00078 8.84931L11.1765 12.025Z" fill="currentColor"/> 2988</svg> 2989</span> 2990 </button> 2991 <nav 2992 class="menu-drawer__navigation" 2993 style="--menu-top-level-font-family: var(--font-heading--family); 2994--menu-top-level-font-size-desktop: 1rem; --menu-top-level-font-style: var(--font-heading--style); --menu-top-level-font-weight: var(--font-heading--weight); --menu-top-level-font-case:uppercase; 2995 2996 --menu-top-level-font-size: var(--menu-font-2xl--size); --menu-top-level-font-line-height: 2997 var(--menu-font-2xl--line-height); 2998 2999--menu-top-level-font-color: var(--color-foreground); --menu-top-level-font-color-rgb: var(--color-foreground-rgb); 3000 3001--menu-parent-font-family: var(--font-heading--family); --menu-parent-font-style: 3002var(--font-heading--style); --menu-parent-font-weight: var(--font-heading--weight); --menu-parent-font-case: 3003uppercase; 3004 3005 --menu-parent-font-size: var(--menu-font-sm--size); --menu-parent-font-line-height: 3006 var(--menu-font-sm--line-height); --menu-parent-font-color: var(--color-foreground-subdued); 3007 --menu-parent-active-font-color: var(--color-foreground); 3008 3009--menu-child-font-family: var(--font-heading--family); --menu-child-font-style:var(--font-heading--style); --menu-child-font-weight: var(--font-heading--weight); --menu-child-font-case: 3010uppercase; 3011 3012 --menu-child-font-size: var(--menu-font-md--size); --menu-child-font-line-height: var(--menu-font-md--line-height); 3013 --menu-child-font-color: var(--color-foreground); --menu-child-active-font-color: var(--color-foreground-subdued); 3014 3015 3016 " 3017 aria-label="Primary" 3018 > 3019 <ul 3020 class="menu-drawer__menu has-submenu" 3021 role="list" 3022 > 3023 3024 3025 3026 <li 3027 style="--menu-drawer-animation-index: 1;" 3028 class="menu-drawer__list-item--deep menu-drawer__list-item--divider" 3029 > 3030 3031<a 3032 id="HeaderDrawer-home" 3033 href="/" 3034 class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset" 3035 3036 >
3037 <span class="menu-drawer__menu-item-text wrap-text">Home</span> 3038 </a> 3039 3040 </li> 3041 <li 3042 style="--menu-drawer-animation-index: 2;" 3043 class="menu-drawer__list-item--deep menu-drawer__list-item--divider" 3044 > 3045 3046 3047 3048 <accordion-custom 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058> 3059 3060 <details 3061 id="Details-menu-drawer-live" 3062 > 3063 <summary 3064 id="HeaderDrawer-live" 3065 class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset" 3066 > 3067 <span class="menu-drawer__menu-item-text wrap-text">Live</span> 3068 <span class="svg-wrapper icon-plus"><svg aria-hidden="true" width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> 3069 <path class="vertical" d="M2.75 7H11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/> 3070 <path class="horizontal" d="M7 2.75L7 11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/> 3071</svg> 3072</span> 3073 </summary> 3074 3075 <ul 3076 class="menu-drawer__menu menu-drawer__menu--childlist menu-drawer__animated-element details-content" 3077 role="list" 3078 tabindex="-1" 3079 ><li 3080 class="menu-drawer__list-item" 3081 style="--menu-drawer-animation-index: 1;" 3082 > 3083 <a 3084 id="HeaderDrawer-live-all-dates" 3085 href="/pages/live" 3086 class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset menu-drawer__menu-item--active" 3087 3088 aria-current="page" 3089 3090 > 3091 3092 <span class="menu-drawer__menu-item-text wrap-text">All Dates</span> 3093 </a> 3094 </li><li 3095 class="menu-drawer__list-item" 3096 style="--menu-drawer-animation-index: 2;" 3097 > 3098 <a 3099 id="HeaderDrawer-live-uk-2027" 3100 href="/pages/live-uk-2027" 3101 class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset" 3102 3103 > 3104 3105 <span class="menu-drawer__menu-item-text wrap-text">UK 2027</span> 3106 </a> 3107 </li><li 3108 class="menu-drawer__list-item" 3109 style="--menu-drawer-animation-index: 3;" 3110 > 3111 <a 3112 id="HeaderDrawer-live-jp-au-nz-2027" 3113 href="/pages/live-japan-australia-new-zealand-2027" 3114 class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset" 3115 3116 > 3117 3118 <span class="menu-drawer__menu-item-text wrap-text">JP, AU & NZ 2027</span> 3119 </a> 3120 </li><li 3121 class="menu-drawer__list-item" 3122 style="--menu-drawer-animation-index: 4;" 3123 > 3124 <a
3125 id="HeaderDrawer-live-it-de-2027" 3126 href="/pages/live-eu-2027" 3127 class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset" 3128 3129 > 3130 3131 <span class="menu-drawer__menu-item-text wrap-text">IT & DE 2027</span> 3132 </a> 3133 </li><li 3134 class="menu-drawer__list-item" 3135 style="--menu-drawer-animation-index: 5;" 3136 > 3137 <a 3138 id="HeaderDrawer-live-uk-europe-2026" 3139 href="https://fontainesdc.com/pages/live-2026" 3140 class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset" 3141 3142 > 3143 3144 <span class="menu-drawer__menu-item-text wrap-text">UK & Europe 2026</span> 3145 </a> 3146 </li><li 3147 class="menu-drawer__list-item" 3148 style="--menu-drawer-animation-index: 6;" 3149 > 3150 <a 3151 id="HeaderDrawer-live-slane-castle" 3152 href="https://www.ticketmaster.ie/artist/5281142?venueId=197505" 3153 class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset" 3154 3155 > 3156 3157 <span class="menu-drawer__menu-item-text wrap-text">Slane Castle</span> 3158 </a> 3159 </li></ul> 3160 </details> 3161 3162</accordion-custom> 3163 3164 3165 3166 3167 </li> 3168 <li 3169 style="--menu-drawer-animation-index: 3;" 3170 class="menu-drawer__list-item--deep menu-drawer__list-item--divider" 3171 > 3172 3173<a 3174 id="HeaderDrawer-music" 3175 href="/pages/music" 3176 class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset" 3177 3178 > 3179 <span class="menu-drawer__menu-item-text wrap-text">Music</span> 3180 </a> 3181 3182 </li> 3183 <li 3184 style="--menu-drawer-animation-index: 4;" 3185 class="menu-drawer__list-item--deep menu-drawer__list-item--divider" 3186 > 3187 3188<a 3189 id="HeaderDrawer-videos" 3190 href="/pages/videos" 3191 class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset" 3192 3193 > 3194 <span class="menu-drawer__menu-item-text wrap-text">Videos</span> 3195 </a> 3196 3197 </li> 3198 <li 3199 style="--menu-drawer-animation-index: 5;" 3200 class="menu-drawer__list-item--deep menu-drawer__list-item--divider" 3201 > 3202 3203<a 3204 id="HeaderDrawer-store" 3205 href="https://gtly.ink/Kn6_dv47l" 3206 class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset" 3207 3208 > 3209 <span class="menu-drawer__menu-item-text wrap-text">Store</span> 3210 </a> 3211 3212 </li> 3213 <li 3214 style="--menu-drawer-animation-index: 6;" 3215 class="menu-drawer__list-item--deep menu-drawer__list-item--divider" 3216 > 3217 3218<a 3219 id="HeaderDrawer-sign-up" 3220 href="/pages/sign-up" 3221 class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset" 3222 3223 >
3224 <span class="menu-drawer__menu-item-text wrap-text">Sign Up</span> 3225 </a> 3226 3227 </li> 3228 </ul> 3229 </nav> 3230 <div 3231 class="menu-drawer__utility-links menu-drawer__animated-element" 3232 style="--menu-drawer-animation-index: 6;" 3233 > 3234 3235 </div> 3236 3237 3238 </div> 3239 <div 3240 class="menu-drawer__backdrop" 3241 on:click="header-drawer/close" 3242 ></div> 3243 </details> 3244</header-drawer> 3245 3246 3247 3248 </div> 3249 3250 3251 3252<style data-shopify> 3253 .header__underlay { 3254 --color-submenu: rgb(0 0 0); 3255 } 3256</style> 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275<a 3276 3277 href="/" 3278 class="size-style spacing-style header-logo" 3279 style=" 3280 --size-style-width: ;--size-style-height: ; 3281 --padding-block-start: 0px;--padding-block-end: 0px; 3282 --font-family: var(--font-body--family); 3283 --font-style: var(--font-body--style); 3284 --font-weight: 600; 3285 3286 --header-logo-image-height: 35px; 3287 --header-logo-image-height-mobile: 28px; 3288 --header-logo-image-width: auto; 3289 --header-logo-image-width-mobile: auto; 3290 --svg-logo-color: #000000; 3291 --svg-logo-color-inverse: #FDFEFF; 3292 3293 " 3294 3295> 3296 3297 3298 3299 <span 3300 class="header-logo__image-container header-logo__svg-container--original" 3301 data-testid="header-logo" 3302 > 3303 <svg role="presentation" version="1.0" xmlns="http://www.w3.org/2000/svg" width="1000.000000pt" height="174.000000pt" viewBox="0 0 1000.000000 174.000000" preserveAspectRatio="xMidYMid meet"> 3304<title>Fontaines D.C.</title> 3305<g transform="translate(0.000000,174.000000) scale(0.100000,-0.100000)" fill="currentColor" stroke="none"> 3306<path d="M735 1707 c-44 -14 -155 -91 -233 -159 -37 -33 -86 -73 -109 -90 -47 3307-32 -53 -55 -23 -81 17 -14 20 -29 20 -91 l0 -75 -47 -6 c-84 -11 -94 -15 3308-111 -47 -9 -17 -36 -53 -59 -81 -41 -49 -42 -51 -25 -70 16 -18 26 -19 131 3309-12 l114 7 -5 -339 -4 -340 -28 -57 c-28 -56 -29 -86 -3 -86 7 0 19 6 26 12 331010 11 21 4 54 -34 42 -47 79 -68 120 -68 28 0 126 103 151 158 23 50 16 77 3311-17 68 -18 -4 -31 2 -52 24 l-27 29 10 78 c6 43 14 187 18 321 l7 242 26 6 3312c14 3 74 21 133 40 125 41 221 102 216 137 -2 17 -9 21 -28 20 -53 -6 -197 -4 3313-266 2 l-72 7 -4 102 c-3 70 -9 111 -21 134 -17 31 -17 32 2 32 11 0 28 -14 331440 -34 12 -19 39 -50 61 -70 60 -54 101 -51 177 12 61 51 123 117 123 131 0 331520 -29 32 -49 22 -31 -17 -34 -15 -79 48 -40 57 -89 102 -122 113 -8 3 -28 1 3316-45 -5z"></path> 3317<path d="M8005 1646 c-92 -76 -108 -101 -80 -122 10 -8 29 -14 40 -14 49 0 54 3318-21 57 -238 2 -131 0 -201 -7 -199 -5 2 -27 29 -48 60 -21 31 -43 57 -50 57 3319-23 0 -254 -243 -304 -321 -55 -84 -98 -202 -108 -295 -8 -70 10 -156 49 -231 332065 -126 216 -253 301 -253 40 0 76 24 125 84 25 30 47 55 50 55 3 0 23 -24 45 3321-52 22 -29 57 -60 77 -70 34 -16 39 -17 65 -3 15 8 39 32 53 52 14 19 44 58 332268 85 23 27 42 56 42 64 0 22 -23 24 -56 4 l-31 -19 -47 71 -47 70 16 77 c25 3323116 34 994 11 1073 -18 62 -65 115 -112 125 -26 5 -40 -3 -109 -60z m-122 3324-761 c31 -27 70 -51 96 -58 l43 -12 -4 -210 c-7 -290 -21 -325 -113 -272 -103 332559 -184 219 -170 335 9 77 74 262 91 262 3 0 29 -20 57 -45z"></path> 3326<path d="M4238 1645 c-45 -30 -50 -40 -83 -141 -29 -91 -30 -107 -11 -123 21 3327-18 43 -3 50 34 4 19 19 48 33 66 21 25 32 30 54 25 22 -4 32 0 44 17 22 32 332820 102 -5 127 -26 26 -38 25 -82 -5z"></path> 3329<path d="M2833 1383 c-11 -16 -73 -84 -137 -152 -67 -71 -116 -131 -116 -143 33300 -18 5 -19 54 -13 l54 7 7 -268 c4 -148 5 -334 1 -413 -6 -135 -8 -147 -32 3331-178 -26 -34 -26 -63 -1 -63 8 0 20 6 26 14 10 12 19 7 57 -29 47 -46 86 -61 3332134 -50 31 7 51 24 138 118 70 76 66 89 -23 72 -25 -5 -35 -1 -63 27 l-32 34 333310 79 c6 48 7 191 3 365 l-6 285 72 18 c79 19 148 59 226 130 44 40 48 46 31 333453 -11 4 -39 0 -68 -11 -41 -14 -66 -16 -153 -10 l-105 7 0 48 c0 96 -35 128 3335-77 73z"></path> 3336<path d="M6401 1289 c-25 -11 -66 -39 -91 -62 -26 -23 -75 -64 -109 -90 -73 3337-57 -113 -109 -141 -186 -57 -150 -46 -233 40 -323 49 -50 49 -51 102 -46 32 33382 82 18 122 36 52 25 82 32 127 32 55 0 59 -2 74 -30 25 -48 29 -110 11 -180 3339-9 -35 -19 -66 -21 -68 -2 -2 -19 12 -38 32 -19 20 -61 48 -93 63 -49 23 -72 334028 -139 28 -99 -1 -139 -19 -248 -110 -43 -36 -92 -72 -109 -81 -43 -22 -107 3341-13 -166 23 -57 35 -139 139 -148 190 -6 32 -4 39 22 61 16 13 48 32 72 43 81 334236 181 101 220 143 50 54 77 131 68 194 -12 88 -142 319 -173 308 -47 -18 3343-203 -139 -265 -205 -124 -132 -208 -327 -208 -483 0 -72 30 -200 61 -261 12
3344-22 53 -72 92 -111 62 -61 82 -75 140 -94 115 -38 177 -26 302 59 72 49 193 334599 239 99 38 0 133 -37 181 -70 26 -18 53 -47 63 -68 23 -50 56 -55 80 -12 9 334618 44 69 77 115 33 45 84 115 114 156 90 125 117 203 101 291 -14 74 -51 125 3347-108 150 -54 24 -86 19 -203 -32 -88 -39 -120 -39 -153 0 -30 37 -40 84 -33 3348156 6 62 44 137 70 142 26 5 43 -12 89 -90 61 -103 128 -131 194 -79 41 32 3349134 146 134 163 0 22 -30 23 -70 3 l-28 -15 -16 47 c-23 67 -64 122 -115 155 3350-53 33 -62 34 -120 7z m-685 -361 c31 -60 34 -148 5 -177 -20 -20 -158 -111 3351-168 -111 -11 0 6 174 22 230 9 30 28 79 43 109 l26 53 24 -28 c13 -16 34 -50 335248 -76z"></path> 3353<path d="M3488 1229 c-57 -39 -158 -107 -225 -151 -116 -76 -138 -99 -116 3354-122 18 -18 32 -186 33 -383 0 -177 -3 -218 -16 -247 -17 -34 -16 -35 9 -63 335514 -15 45 -49 68 -75 22 -26 65 -59 94 -73 73 -36 108 -26 202 60 l71 65 37 3356-49 c44 -61 96 -95 130 -87 28 7 188 182 182 199 -2 7 -17 14 -33 15 -52 6 3357-97 65 -85 111 4 14 8 143 10 286 2 247 9 327 31 340 6 3 10 15 10 26 0 14 -7 335819 -27 19 -21 0 -48 22 -123 100 -74 78 -101 100 -122 100 -16 0 -65 -27 -130 3359-71z m51 -214 l62 -64 -3 -68 -3 -68 -80 3 c-44 1 -86 4 -92 7 -9 3 -13 34 3360-13 109 0 95 2 107 22 126 12 11 27 20 33 20 7 0 40 -29 74 -65z m68 -475 c-4 3361-78 -11 -149 -17 -160 -6 -11 -26 -31 -45 -46 l-35 -26 -33 22 c-17 12 -46 40 3362-63 63 -27 35 -30 44 -23 71 5 17 9 57 9 88 0 58 0 58 30 58 58 0 128 21 151 336346 12 13 25 24 27 24 3 0 2 -63 -1 -140z"></path> 3364<path d="M1254 1254 c-224 -151 -362 -345 -395 -556 -15 -94 -5 -161 35 -245 336547 -97 105 -165 188 -221 40 -27 96 -70 124 -96 29 -25 59 -46 68 -46 8 0 41 336635 72 78 32 42 92 114 133 160 102 111 147 180 173 265 19 63 20 80 11 144 3367-11 77 -58 188 -112 267 -31 45 -235 269 -250 274 -4 1 -25 -9 -47 -24z m23 3368-308 c166 -178 194 -285 127 -487 -40 -124 -35 -124 -146 -17 -53 51 -108 111 3369-122 133 -59 93 -55 237 11 378 20 42 40 77 44 77 4 0 42 -38 86 -84z"></path> 3370<path d="M1783 1251 c-32 -23 -117 -127 -147 -179 -15 -25 12 -41 48 -30 28 9 337138 7 59 -8 49 -36 51 -52 44 -390 -6 -296 -8 -316 -27 -341 -11 -14 -20 -31 3372-20 -37 0 -6 33 -47 73 -90 63 -69 77 -79 107 -79 29 0 43 10 101 74 38 41 71 337382 75 93 6 19 -11 37 -30 30 -6 -2 -23 15 -38 39 l-27 43 8 279 c4 154 6 298 33743 321 -3 35 0 44 23 63 42 33 67 27 119 -29 l46 -49 0 -329 c0 -314 -1 -330 3375-20 -355 -30 -38 -27 -61 8 -54 24 5 32 -1 70 -54 46 -64 77 -85 114 -75 35 9 3376178 135 178 157 0 10 -3 19 -7 20 -19 2 -45 8 -47 11 -29 38 -69 104 -68 112 33771 6 6 149 11 318 9 291 11 309 31 336 32 43 24 67 -24 68 -40 1 -59 16 -121 337894 -65 82 -126 91 -203 30 -28 -22 -63 -55 -79 -75 -30 -37 -43 -44 -43 -21 0 337919 -77 104 -111 121 -40 21 -61 19 -106 -14z"></path> 3380<path d="M4550 1258 c-45 -31 -162 -176 -158 -197 3 -12 15 -16 50 -16 36 0 338152 -6 73 -25 l27 -25 -4 -330 c-3 -329 -3 -330 -27 -369 l-25 -39 25 -21 c14 3382-12 43 -43 64 -69 36 -45 80 -77 105 -77 14 0 112 92 152 143 25 31 28 40 18 338352 -7 9 -20 14 -28 13 -9 -2 -27 15 -43 42 -27 44 -27 46 -19 155 5 61 9 203 33849 316 1 202 1 206 24 227 36 34 59 27 116 -33 l52 -55 -3 -323 c-3 -321 -3 3385-322 -27 -354 -27 -35 -20 -57 15 -49 19 5 30 -3 63 -48 44 -59 76 -86 102 3386-86 18 0 114 68 169 120 37 34 37 65 0 65 -18 0 -34 14 -62 54 -32 46 -37 59 3387-33 95 3 22 8 166 11 319 6 278 6 278 31 308 31 37 24 59 -19 59 -29 0 -44 11 3388-113 85 -74 78 -84 85 -118 85 -52 0 -71 -11 -148 -87 l-67 -65 -17 35 c-20 338943 -93 105 -132 113 -20 4 -38 -2 -63 -18z"></path> 3390<path d="M4064 1190 c-49 -45 -90 -85 -92 -90 -2 -5 15 -21 38 -35 22 -14 46 3391-38 52 -53 12 -31 15 -575 4 -659 -5 -35 -18 -65 -37 -89 -16 -20 -29 -43 -29 3392-50 0 -16 46 -19 55 -4 3 6 28 -14 55 -44 92 -100 126 -98 239 19 83 85 93 3393119 35 113 -31 -3 -40 2 -65 32 l-29 36 10 105 c6 58 11 229 13 380 2 305 1 3394311 -65 382 -55 58 -77 53 -184 -43z"></path> 3395<path d="M9172 1110 c-183 -86 -345 -278 -382 -451 -7 -32 -11 -97 -8 -150 3 3396-84 8 -103 41 -172 87 -179 251 -274 408 -237 43 10 66 25 111 68 95 90 143 3397182 95 182 -7 0 -33 -17 -57 -38 -38 -31 -51 -37 -90 -36 -56 1 -92 19 -162 339883 -74 67 -110 136 -116 222 -7 98 14 223 49 296 49 101 72 106 113 25 26 -51 339970 -96 106 -107 34 -11 92 16 147 68 67 64 72 97 15 97 -36 0 -41 3 -56 39 3400-20 43 -100 126 -131 135 -12 3 -45 -6 -83 -24z"></path> 3401<path d="M8530 323 c-53 -60 -112 -174 -100 -193 7 -11 14 -12 35 -2 25 12 29 340210 67 -33 78 -89 141 -82 222 24 75 97 85 149 26 137 -24 -4 -33 -1 -46 18 3403-21 33 -114 96 -141 96 -13 0 -38 -18 -63 -47z"></path> 3404<path d="M9599 358 c-26 -21 -74 -90 -110 -155 -26 -49 -31 -65 -21 -75 9 -9 340517 -9 37 0 23 11 28 8 66 -33 25 -27 57 -49 79 -56 33 -10 43 -9 72 9 34 21 340691 90 126 154 18 31 19 38 7 48 -8 7 -26 9 -40 6 -19 -5 -28 -1 -40 18 -20 29 3407-118 96 -143 96 -10 0 -25 -6 -33 -12z"></path> 3408</g> 3409</svg> 3410 </span> 3411 3412</a> 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 </div><div 3424 class="header__column header__column--right" 3425 data-testid="header-top-right" 3426 > 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 <style data-shopify> 3439 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu, 3440 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu .text-block {
3441 /* Background */ 3442 --color-background: #000000; 3443 --color-background-rgb: 0 0 0; 3444 3445 /* Opacity values adjusted for background brightness */ 3446 3447--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 34480.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 3449 3450 3451 3452 /* Foreground / text â explicit or smart-contrasted */ 3453 --color: #1966cb; 3454 --color-rgb: 25 102 203; 3455 --color-foreground: #1966cb; 3456 --color-foreground-rgb: 25 102 203; 3457 --color-foreground-muted: rgb(25 102 203 / var(--opacity-muted-text)); 3458 --color-foreground-subdued: rgb(25 102 203 / var(--opacity-subdued-text)); 3459 --color-border: var(--palette-lightest); 3460 --color-border-rgb: var(--palette-lightest-rgb); 3461 3462 } 3463 3464 3465 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu { 3466 /* Form-related tokens stay on .color-custom only â .text-block is a prose 3467 container (text/announcement/inline-text/blog-post-description/ 3468 collection-link/price/sku) and never holds form inputs. */ 3469 --input-disabled-background-color: rgb(25 102 203 / var(--opacity-10)); 3470 --input-disabled-border-color: rgb(25 102 203 / var(--opacity-5)); 3471 --input-disabled-text-color: rgb(25 102 203 / var(--opacity-50)); 3472 --checkbox-border: 1px solid rgb(25 102 203 / var(--opacity-35-55)); 3473 } 3474 3475 3476 .color-custom-AZ0lZWWF3M09wNWx2Z__header-menu { 3477 color: var(--color, var(--color-foreground)); 3478 background-color: var(--color-background); 3479 } 3480 </style> 3481 3482 3483 3484 3485 3486 <header-menu 3487 ref="headerMenu" 3488 class="header-menu mega-menu__horizontal" 3489 3490 data-hydration-key="header-menu" 3491 > 3492 <div class="header-menu__inner"> 3493 <nav 3494 class="menu-list" 3495 aria-label="Primary" 3496 style="--menu-top-level-font-family: var(--font-heading--family); 3497--menu-top-level-font-size-desktop: 1rem; --menu-top-level-font-style: var(--font-heading--style); --menu-top-level-font-weight: var(--font-heading--weight); --menu-top-level-font-case:uppercase; 3498 3499 --menu-top-level-font-size: var(--menu-font-sm--size); --menu-top-level-font-line-height: 3500 var(--menu-font-sm--line-height); 3501 3502--menu-top-level-font-color: var(--color-foreground); --menu-top-level-font-color-rgb: var(--color-foreground-rgb); 3503" 3504 > 3505 3506 <overflow-list 3507 3508 ref="overflowMenu" 3509 3510 3511 class="overflow-menu color-custom-AZ0lZWWF3M09wNWx2Z__header-menu" 3512 3513 3514 minimum-items="2" 3515 3516 3517 data-testid="header-menu-overflow-list" 3518 3519 3520 data-skip-node-update 3521 3522> 3523 <template shadowrootmode="open"> 3524 <link href="//fontainesdc.com/cdn/shop/t/35/assets/overflow-list.css?v=16727044177065489451786997004" rel="stylesheet" type="text/css" media="all" /> 3525 3526 <ul part="list"> 3527 <slot></slot> 3528 <slot 3529 name="more" 3530 part="more" 3531 hidden 3532 3533 > 3534 <li 3535 part="more" 3536 > 3537 <button 3538 class="button" 3539 type="button" 3540 tabindex="0" 3541 3542 > 3543 More 3544 </button> 3545 </li> 3546 </slot> 3547 <li 3548 part="placeholder" 3549 hidden 3550 ></li> 3551 </ul> 3552 3553 <div part="overflow"> 3554 <ul part="overflow-list"> 3555 <slot name="overflow"></slot> 3556 </ul> 3557 </div> 3558 </template> 3559 3560 3561 3562 <li 3563 role="presentation" 3564 class="menu-list__list-item" 3565 on:focus="/activate" 3566 on:blur="/deactivate" 3567 on:pointerenter="/activate" 3568 on:pointerleave="/deactivate" 3569 > 3570 <a 3571 href="/" 3572 data-skip-node-update="true" 3573 class="menu-list__link" 3574 ref="menuitem" 3575 > 3576 <span class="menu-list__link-title">Home</span> 3577 </a></li> 3578 3579 <li 3580 role="presentation" 3581 class="menu-list__list-item" 3582 on:focus="/activate" 3583 on:blur="/deactivate" 3584 on:pointerenter="/activate" 3585 on:pointerleave="/deactivate" 3586 > 3587 <a 3588 href="/pages/live" 3589 data-skip-node-update="true" 3590 class="menu-list__link menu-list__link--active"aria-controls="submenu-2" 3591 aria-haspopup="true" 3592 aria-expanded="false" 3593 aria-current="page" 3594 3595 ref="menuitem" 3596 >
3597 <span class="menu-list__link-title">Live</span> 3598 </a><div class="menu-list__submenu color-custom-AZ0lZWWF3M09wNWx2Z__header-menu" ref="submenu[]"> 3599 <div 3600 id="submenu-2" 3601 class="menu-list__submenu-inner" 3602 style="--menu-parent-font-family: var(--font-heading--family); --menu-parent-font-style: 3603var(--font-heading--style); --menu-parent-font-weight: var(--font-heading--weight); --menu-parent-font-case: 3604uppercase; 3605 3606 --menu-parent-font-size: var(--menu-font-sm--size); --menu-parent-font-line-height: 3607 var(--menu-font-sm--line-height); --menu-parent-font-color: var(--color-foreground-subdued); 3608 --menu-parent-active-font-color: var(--color-foreground); 3609 3610--menu-child-font-family: var(--font-heading--family); --menu-child-font-style:var(--font-heading--style); --menu-child-font-weight: var(--font-heading--weight); --menu-child-font-case: 3611uppercase; 3612 3613 --menu-child-font-size: var(--menu-font-md--size); --menu-child-font-line-height: var(--menu-font-md--line-height); 3614 --menu-child-font-color: var(--color-foreground); --menu-child-active-font-color: var(--color-foreground-subdued); 3615 3616" 3617 > 3618 3619 <div class="mega-menu section section--full-width-margin section--full-width"> 3620 <div 3621 class="mega-menu__grid" 3622 data-menu-grid-id="MegaMenuList-2" 3623 > 3624 3625<ul 3626 data-menu-list-id="MegaMenuList-2" 3627 class="mega-menu__list list-unstyled" 3628 style="--menu-image-border-radius: 0px;" 3629> 3630 3631 <li class="mega-menu__column mega-menu__column--span-1"> 3632 <div> 3633 <a 3634 href="/pages/live" 3635 class="mega-menu__link " 3636 > 3637 3638 <span class="wrap-text">All Dates</span> 3639 </a> 3640 3641 </div> 3642 3643 3644 3645 3646 <div> 3647 <a 3648 href="/pages/live-uk-2027" 3649 class="mega-menu__link " 3650 > 3651 3652 <span class="wrap-text">UK 2027</span> 3653 </a> 3654 3655 </div> 3656 3657 3658 3659 3660 <div> 3661 <a 3662 href="/pages/live-japan-australia-new-zealand-2027" 3663 class="mega-menu__link " 3664 > 3665 3666 <span class="wrap-text">JP, AU & NZ 2027</span> 3667 </a> 3668 3669 </div> 3670 3671 3672 3673 3674 <div> 3675 <a 3676 href="/pages/live-eu-2027" 3677 class="mega-menu__link " 3678 > 3679 3680 <span class="wrap-text">IT & DE 2027</span> 3681 </a> 3682 3683 </div> 3684 3685 3686 3687 3688 <div> 3689 <a 3690 href="https://fontainesdc.com/pages/live-2026" 3691 class="mega-menu__link " 3692 > 3693 3694 <span class="wrap-text">UK & Europe 2026</span> 3695 </a> 3696 3697 </div> 3698 3699 3700 3701 3702 <div> 3703 <a 3704 href="https://www.ticketmaster.ie/artist/5281142?venueId=197505" 3705 class="mega-menu__link " 3706 > 3707 3708 <span class="wrap-text">Slane Castle</span> 3709 </a> 3710 3711 </div> 3712 3713 </li> 3714 3715</ul> 3716 3717 3718 3719<style data-shopify> 3720 [data-menu-grid-id="MegaMenuList-2"] { 3721 3722 --menu-columns-desktop: 6; 3723 --menu-columns-tablet: 4; 3724 3725 } 3726 3727 [data-menu-list-id="MegaMenuList-2"] { 3728 3729 --menu-columns-desktop: 6; 3730 --menu-columns-tablet: 4; 3731 3732 } 3733</style> 3734 3735 3736 3737 </div> 3738 </div> 3739 </div> 3740 </div></li> 3741 3742 <li 3743 role="presentation" 3744 class="menu-list__list-item" 3745 on:focus="/activate" 3746 on:blur="/deactivate" 3747 on:pointerenter="/activate" 3748 on:pointerleave="/deactivate" 3749 > 3750 <a 3751 href="/pages/music" 3752 data-skip-node-update="true" 3753 class="menu-list__link" 3754 ref="menuitem" 3755 > 3756 <span class="menu-list__link-title">Music</span> 3757 </a></li> 3758 3759 <li 3760 role="presentation" 3761 class="menu-list__list-item" 3762 on:focus="/activate" 3763 on:blur="/deactivate" 3764 on:pointerenter="/activate" 3765 on:pointerleave="/deactivate" 3766 > 3767 <a 3768 href="/pages/videos" 3769 data-skip-node-update="true" 3770 class="menu-list__link" 3771 ref="menuitem" 3772 >
3773 <span class="menu-list__link-title">Videos</span> 3774 </a></li> 3775 3776 <li 3777 role="presentation" 3778 class="menu-list__list-item" 3779 on:focus="/activate" 3780 on:blur="/deactivate" 3781 on:pointerenter="/activate" 3782 on:pointerleave="/deactivate" 3783 > 3784 <a 3785 href="https://gtly.ink/Kn6_dv47l" 3786 data-skip-node-update="true" 3787 class="menu-list__link" 3788 ref="menuitem" 3789 > 3790 <span class="menu-list__link-title">Store</span> 3791 </a></li> 3792 3793 <li 3794 role="presentation" 3795 class="menu-list__list-item" 3796 on:focus="/activate" 3797 on:blur="/deactivate" 3798 on:pointerenter="/activate" 3799 on:pointerleave="/deactivate" 3800 > 3801 <a 3802 href="/pages/sign-up" 3803 data-skip-node-update="true" 3804 class="menu-list__link" 3805 ref="menuitem" 3806 > 3807 <span class="menu-list__link-title">Sign Up</span> 3808 </a></li> 3809 3810 <li 3811 class="menu-list__list-item" 3812 role="presentation" 3813 slot="more" 3814 on:focus="/activate" 3815 on:blur="/deactivate" 3816 on:pointerenter="/activate" 3817 on:pointerleave="/deactivate" 3818 > 3819 <button role="listitem" class="menu-list__link button-unstyled"> 3820 <span class="menu-list__link-title">More</span> 3821 </button> 3822 </li> 3823 3824</overflow-list> 3825 3826 </nav> 3827 </div> 3828 3829
3829<script 3830 src="//fontainesdc.com/cdn/shop/t/35/assets/header-menu.js?v=95929844569485293131786996999" 3831 type="module" 3832 fetchpriority="low" 3833 ></script>
3833 3834 </header-menu> 3835 3836 3837<style data-shopify> 3838 .header__underlay { 3839 --color-submenu: rgb(0 0 0); 3840 } 3841</style> 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870
3871<script 3872 type="module" 3873 src="//fontainesdc.com/cdn/shop/t/35/assets/cart-icon.js?v=109428858171217037751786997005" 3874 fetchpriority="low" 3875></script>
3875 3876 3877 3878 3879 3880 3881<header-actions 3882 3883 style="display:none" 3884 3885> 3886 3887 3888 <div 3889 class="account-button header-actions__action color-custom-popover" 3890 > 3891 <shopify-store store-domain="https://fontainesdc.com" country="GB" language="en"></shopify-store> 3892<shopify-account 3893 menu="customer-account-main-menu" 3894 3895 > 3896 3897 <span 3898 slot="signed-out-avatar" 3899 class="account-button__text header-actions__text-style hidden" 3900 > 3901 Account 3902 </span> 3903 3904 <span 3905 slot="signed-out-avatar" 3906 class="" 3907 aria-hidden="true" 3908 > 3909 3910 <svg 3911 xmlns="http://www.w3.org/2000/svg" 3912 viewBox="0 0 20 20" 3913 fill="none" 3914 slot="signed-out-avatar" 3915 class="icon account-button__icon icon" 3916 > 3917 <ellipse class="cls-2" cx="10" cy="6.02" rx="3.09" ry="3.13" 3918 stroke="currentColor" 3919 stroke-linejoin="round" 3920 stroke-width="var(--icon-stroke-width)"/> 3921 <path class="cls-1" d="M4.57,15.23l-.49.89c-.18.32-.06.73.26.91.1.05.21.08.32.08h10.69c.37,0,.66-.3.66-.67,0-.11-.03-.22-.08-.32l-.49-.89c-1.67-3.04-5.45-4.13-8.45-2.44-1.01.57-1.85,1.42-2.41,2.44" 3922 stroke="currentColor" 3923 stroke-linejoin="round" 3924 stroke-width="var(--icon-stroke-width)"/> 3925 </svg> 3926 3927 </span> 3928 3929 </shopify-account> 3930 </div> 3931 3932 3933 3934 <button 3935 class="header-actions__action button-unstyled" 3936 on:click="#cart-drawer/toggle" 3937 aria-haspopup="dialog" 3938 aria-expanded="false" 3939 aria-controls="cart-drawer" 3940 aria-label="Cart" 3941 aria-describedby="cart-bubble-text" 3942 data-testid="cart-drawer-trigger" 3943 > 3944 3945 <cart-icon 3946 class="header-actions__cart-icon" 3947 data-testid="cart-icon" 3948 > 3949 <span class="hidden"> 3950 Cart 3951 </span> 3952 3953 <span 3954 class="svg-wrapper " 3955 aria-hidden="true" 3956 > 3957 <svg class="icon icon-cart" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="var(--icon-stroke-width)" d="M5.39,6.88h9.21c1.11,0,2,.9,2,2v6.01c0,.57-.22,1.11-.62,1.51-.4.4-.94.63-1.51.63H5.52c-.57,0-1.11-.23-1.51-.63-.4-.4-.62-.95-.62-1.51v-6.02c0-1.1.9-2,2-2ZM8.82,2.97h2.33c.62,0,1.21.25,1.65.69.44.44.68,1.04.68,1.66v1.56h-7v-1.56c0-.62.25-1.22.68-1.66.44-.44,1.03-.69,1.65-.69"/></svg> 3958 3959 </span> 3960 3961 3962 3963<div 3964 ref="cartBubble" 3965 class="cart-bubble visually-hidden" 3966 style="--cart-bubble-background-fallback: #FDFEFF; --cart-bubble-text-fallback: #000000;" 3967 3968 3969 data-maintain-ratio 3970 3971> 3972 <span class="cart-bubble__background"></span> 3973 <span 3974 ref="cartBubbleText" 3975 id="cart-bubble-text" 3976 class="cart-bubble__text hidden" 3977 > 3978 <span 3979 class="cart-bubble__text-count hidden" 3980 ref="cartBubbleCount" 3981 aria-hidden="true" 3982 data-testid="cart-bubble" 3983 > 39840</span> 3985 </span> 3986</div> 3987 3988 3989 3990 </cart-icon> 3991 3992 </button> 3993 3994 3995 <span 3996 ref="liveRegion" 3997 class="visually-hidden" 3998 role="status" 3999 data-testid="cart-count-live-region" 4000 ></span> 4001</header-actions>
4002<script 4003 type="module" 4004 src="//fontainesdc.com/cdn/shop/t/35/assets/header-actions.js?v=157135685635924702181786997005" 4005 fetchpriority="low" 4006></script>
4006 4007 4008 4009 4010 4011 4012 4013 </div> 4014 </div> 4015 </div> 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 <div class="header__row header__navigation-bar-row"> 4028 4029 4030 4031 4032 4033 4034<style data-shopify> 4035 .header__underlay { 4036 --color-submenu: rgb(0 0 0); 4037 } 4038</style> 4039 4040 4041 4042 4043 </div> 4044 4045</header-component> 4046
4047<script 4048 src="//fontainesdc.com/cdn/shop/t/35/assets/header.js?v=183210491532312943441786997000" 4049 type="module" 4050></script>
4050 4051 4052 4053 4054 4055
4055<script type="module"> 4056 import { hydrate } from '@theme/section-hydration'; 4057 const url = new URL(window.location.href); 4058 url.searchParams.delete('page'); 4059 hydrate('sections--25631040602491__header_section', url); 4060 </script>
4060 4061 4062 4063 4064<style> #shopify-section-sections--25631040602491__header_section .mega-menu__horizontal .menu-list__submenu-inner {padding-block: 0.5rem 0.4rem !important;} </style></header> 4065<!-- END sections: header-group --> 4066 </div> 4067 4068
4068<script> 4069 // Inline header height and menu style calculations to prevent layout shift 4070 // Note: Updates in calculateHeaderGroupHeight(), updateTransparentHeaderOffset() and setHeaderMenuStyle() utilities.js should be kept in sync with this function 4071 (function setHeaderHeighCustomProperties() { 4072 /* 4073 * Header calculation functions for maintaining CSS variables 4074 * Mimic calculateHeaderGroupHeight() in utilities.js 4075 */ 4076 const header = document.querySelector('header-component'); 4077 const headerGroup = document.querySelector('#header-group'); 4078 const hasHeaderSection = headerGroup?.querySelector('.header-section'); 4079 4080 if (!header || !headerGroup) return; 4081 4082 const headerTopRow = header.querySelector('.header__row--top'); 4083 const headerHeight = header.offsetHeight; 4084 4085 // Calculate the total height of the header group 4086 let headerGroupHeight = 0; 4087 const children = headerGroup.children; 4088 for (let i = 0; i < children.length; i++) { 4089 const element = children[i]; 4090 if (element === header || !(element instanceof HTMLElement)) continue; 4091 headerGroupHeight += element.offsetHeight; 4092 } 4093 4094 // Check for transparent header special case 4095 if (header.hasAttribute('transparent') && header.parentElement?.nextElementSibling) { 4096 headerGroupHeight += headerHeight; 4097 } 4098 4099 // Set CSS variables 4100 document.body.style.setProperty('--header-height', `${headerHeight}px`); 4101 document.body.style.setProperty('--header-group-height', `${headerGroupHeight}px`); 4102 4103 if (headerTopRow) { 4104 window.requestAnimationFrame(function () { 4105 document.body.style.setProperty('--top-row-height', `${headerTopRow.offsetHeight}px`); 4106 }); 4107 } 4108 4109 /** 4110 * Updates CSS custom properties for transparent header offset calculation 4111 * Mimic updateTransparentHeaderOffset() in utilities.js 4112 */ 4113 4114 if (!hasHeaderSection || !header?.hasAttribute('transparent')) { 4115 document.body.style.setProperty('--transparent-header-offset-boolean', '0'); 4116 return; 4117 } 4118 4119 const hasImmediateSection = hasHeaderSection.nextElementSibling?.classList.contains('shopify-section'); 4120 4121 const shouldApplyOffset = !hasImmediateSection ? '1' : '0'; 4122 document.body.style.setProperty('--transparent-header-offset-boolean', shouldApplyOffset); 4123 })(); 4124 4125 (function setHeaderMenuStyle() { 4126 const headerComponent = document.querySelector('#header-component'); 4127 if (headerComponent) { 4128 const isTouchDevice = 'ontouchstart' in window && navigator.maxTouchPoints > 0; 4129 const overflowList = headerComponent?.querySelector('overflow-list'); 4130 const hasReachedMinimum = overflowList && overflowList.hasAttribute('minimum-reached'); 4131 headerComponent.dataset.menuStyle = isTouchDevice || hasReachedMinimum ? 'drawer' : 'menu'; 4132 } 4133 })(); 4134 </script>
4134 4135 4136 <main 4137 id="MainContent" 4138 class="content-for-layout" 4139 role="main" 4140 data-page-transition-enabled="true" 4141 data-product-transition="true" 4142 data-template="page.live" 4143 > 4144 <div id="shopify-section-template--25631040766331__main" class="shopify-section section-wrapper"> 4145 4146 4147 4148 4149 <style data-shopify> 4150 .color-custom-template--25631040766331__main, 4151 .color-custom-template--25631040766331__main .text-block { 4152 /* Background */ 4153 --color-background: #000000; 4154 --color-background-rgb: 0 0 0; 4155 4156 /* Opacity values adjusted for background brightness */ 4157 4158--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 41590.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 4160 4161 4162 4163 /* Foreground / text â explicit or smart-contrasted */ 4164 --color: #FDFEFF; 4165 --color-rgb: 253 254 255; 4166 --color-foreground: #FDFEFF; 4167 --color-foreground-rgb: 253 254 255; 4168 --color-foreground-muted: rgb(253 254 255 / var(--opacity-muted-text)); 4169 --color-foreground-subdued: rgb(253 254 255 / var(--opacity-subdued-text)); 4170 --color-border: var(--palette-lightest); 4171 --color-border-rgb: var(--palette-lightest-rgb); 4172 4173 } 4174 4175 4176 .color-custom-template--25631040766331__main { 4177 /* Form-related tokens stay on .color-custom only â .text-block is a prose 4178 container (text/announcement/inline-text/blog-post-description/ 4179 collection-link/price/sku) and never holds form inputs. */ 4180 --input-disabled-background-color: rgb(253 254 255 / var(--opacity-10)); 4181 --input-disabled-border-color: rgb(253 254 255 / var(--opacity-5)); 4182 --input-disabled-text-color: rgb(253 254 255 / var(--opacity-50)); 4183 --checkbox-border: 1px solid rgb(253 254 255 / var(--opacity-35-55)); 4184 } 4185 4186 4187 .color-custom-template--25631040766331__main { 4188 color: var(--color, var(--color-foreground)); 4189 background-color: var(--color-background); 4190 } 4191 </style> 4192 4193 4194 4195<div 4196 class="section-background color-custom-template--25631040766331__main" 4197></div> 4198<div class="section page-width-content color-custom-template--25631040766331__main"> 4199 <div 4200 class=" 4201 spacing-style 4202 layout-panel-flex 4203 layout-panel-flex--column 4204 section-content-wrapper 4205 mobile-column 4206 " 4207 style=" 4208 --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap; 4209 4210--gap: max(24px, calc(var(--gap-scale, 1.0) * 32px)); 4211 4212--horizontal-alignment: ; --vertical-alignment: ; 4213--vertical-alignment-mobile: ; 4214 4215 --padding-block-start: max(20px, calc(var(--spacing-scale) * 40px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 80px)); 4216 " 4217 > 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 <div class=" spacing-style text-block text-block--AamZMc2ZlNWhaM1dhM__heading h2 text-block--align-left " style=" --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px; --color: #1966cb; --color-rgb: 25 102 203; --width: 100%; --max-width: var(--max-width--body-normal); --text-align: left; "> 4229 4230 <p>Live</p> 4231 4232 </div> 4233 4234 4235 4236 4237 4238 4239<div id="shopify-block-AK25ZME1EcVBCQjBTO__bandsintown_7icigJ" class="shopify-block"><bandsintown-feed id="AK25ZME1EcVBCQjBTO__bandsintown_7icigJ"> 4240 <div class="bandsintown"> 4241
4241<script charset="utf-8" src="https://widgetv3.bandsintown.com/main.min.js"></script>
4241 4242 <a class="bit-widget-initializer" 4243 4244 data-artist-name="id_8296081" 4245 data-display-limit="100" 4246 4247 data-background-color="transparent" 4248 data-separator-color="currentColor" 4249 data-text-color="currentColor" 4250 data-font="inherit" 4251 data-auto-style="true" 4252 4253 data-button-label-capitalization="uppercase" 4254 data-header-capitalization="uppercase" 4255 data-location-capitalization="uppercase" 4256 data-venue-capitalization="uppercase" 4257 data-local-dates-position="tab" 4258 data-display-lineup="true" 4259 data-display-start-time="false" 4260 data-social-share-icon="true" 4261 data-display-limit="all" 4262 4263 data-date-format="MMM. DD YYYY" 4264 data-date-orientation="vertical" 4265 data-date-border-color="currentColor" 4266 data-date-border-width="0px" 4267 data-date-capitalization="capitalize" 4268 data-date-border-radius="10px" 4269 4270 data-event-ticket-cta-size="medium" 4271 data-event-ticket-text="TICKETS" 4272 data-event-ticket-icon="false" 4273 data-event-ticket-cta-text-color="currentColor" 4274 data-event-ticket-cta-bg-color="rgba(0 0 0 / 0)" 4275 data-event-ticket-cta-border-color="currentColor" 4276 data-event-ticket-cta-border-width="1px" 4277 data-event-ticket-cta-border-radius="2px" 4278 4279 data-sold-out-button-text-color="currentColor" 4280 data-sold-out-button-background-color="rgba(var(--palette-lightest-rgb) / 0.75)" 4281 data-sold-out-button-border-color="rgba(var(--palette-lightest-rgb) / 0.75)" 4282 data-sold-out-button-clickable="true" 4283 4284 data-event-rsvp-position="left" 4285 data-event-rsvp-cta-size="medium" 4286 data-event-rsvp-only-show-icon="false" 4287 data-event-rsvp-text="RSVP" 4288 data-event-rsvp-icon="false" 4289 data-event-rsvp-cta-text-color="currentColor" 4290 data-event-rsvp-cta-bg-color="rgba(var(--palette-lightest-rgb) / 0)" 4291 data-event-rsvp-cta-border-color="currentColor" 4292 data-event-rsvp-cta-border-width="1px" 4293 data-event-rsvp-cta-border-radius="2px" 4294 4295 data-follow-section-position="top" 4296 data-follow-section-alignment="center" 4297 data-follow-section-header-text="Get updates on new shows, new music, and more" 4298 data-follow-section-cta-size="medium" 4299 data-follow-section-cta-text="FOLLOW" 4300 data-follow-section-cta-icon="false" 4301 data-follow-section-cta-text-color="currentColor" 4302 data-follow-section-cta-bg-color="rgba(var(--palette-lightest-rgb) / 0.5)" 4303 data-follow-section-cta-border-color="rgba(var(--palette-lightest-rgb) / 0.5)" 4304 data-follow-section-cta-border-width="0px" 4305 data-follow-section-cta-border-radius="2px" 4306 4307 data-play-my-city-position="bottom" 4308 data-play-my-city-alignment="center" 4309 data-play-my-city-header-text="Donât see a show near you?" 4310 data-play-my-city-cta-size="medium" 4311 data-play-my-city-cta-text="REQUEST A SHOW" 4312 data-play-my-city-cta-icon="false" 4313 data-play-my-city-cta-text-color="currentColor" 4314 data-play-my-city-cta-bg-color="rgba(var(--palette-lightest-rgb) / 0.5)" 4315 data-play-my-city-cta-border-color="rgba(var(--palette-lightest-rgb) / 0.5)" 4316 data-play-my-city-cta-border-width="0px" 4317 data-play-my-city-cta-border-radius="2px" 4318 4319 data-language="en" 4320 data-layout-breakpoint="900" 4321 data-app-id="8badd905de1dd540e558b5445a8db89b" 4322 data-bit-logo-position="bottomRight" 4323 data-bit-logo-color="rgba(0,0,0,1)" 4324 4325 ></a> 4326 </div> 4327</bandsintown-feed> 4328 4329<style> 4330 4331 .bit-play-my-city-wrapper { 4332 display: none !important; 4333 } 4334 4335 4336 .bit-follow-section-wrapper { 4337 display: none !important; 4338 } 4339 4340 4341 .bit-rsvp-container { 4342 display: none !important; 4343 } 4344 4345 .bit-follow-section-wrapper + div { 4346 display: none !important 4347 } 4348</style> 4349 4350 4351 4352</div> 4353 4354 </div> 4355</div> 4356 4357 4358<style> #shopify-section-template--25631040766331__main .page-width-content {grid-template-columns: 1fr min(1400px, 92%) 1fr; color: #1966cb !important;} #shopify-section-template--25631040766331__main .bit-widget .bit-sold-out-button {background-color: transparent; color: currentColor; border-color: currentColor; font-size: 1.25rem; opacity: 0.5} #shopify-section-template--25631040766331__main .bit-widget .bit-event .bit-sold-out-text {overflow: visible;} </style></div> 4359 </main> 4360 4361 <footer> 4362 <!-- BEGIN sections: footer-group --> 4363<div id="shopify-section-sections--25631040569723__utilities" class="shopify-section shopify-section-group-footer-group footer-utilities"> 4364 4365 4366 4367 4368 <style data-shopify> 4369 .color-custom-sections--25631040569723__utilities, 4370 .color-custom-sections--25631040569723__utilities .text-block {
4371 /* Background */ 4372 --color-background: #000000; 4373 --color-background-rgb: 0 0 0; 4374 4375 /* Opacity values adjusted for background brightness */ 4376 4377--opacity-5-15: 0.15; --opacity-10-25: 0.25; --opacity-35-55: 0.55; --opacity-40-60: 43780.6; --opacity-30-60: 0.6; --opacity-60: 0.6; 4379 4380 4381 4382 /* Foreground / text â explicit or smart-contrasted */ 4383 --color: #FDFEFF; 4384 --color-rgb: 253 254 255; 4385 --color-foreground: #FDFEFF; 4386 --color-foreground-rgb: 253 254 255; 4387 --color-foreground-muted: rgb(253 254 255 / var(--opacity-muted-text)); 4388 --color-foreground-subdued: rgb(253 254 255 / var(--opacity-subdued-text)); 4389 --color-border: var(--palette-lightest); 4390 --color-border-rgb: var(--palette-lightest-rgb); 4391 4392 } 4393 4394 4395 .color-custom-sections--25631040569723__utilities { 4396 /* Form-related tokens stay on .color-custom only â .text-block is a prose 4397 container (text/announcement/inline-text/blog-post-description/ 4398 collection-link/price/sku) and never holds form inputs. */ 4399 --input-disabled-background-color: rgb(253 254 255 / var(--opacity-10)); 4400 --input-disabled-border-color: rgb(253 254 255 / var(--opacity-5)); 4401 --input-disabled-text-color: rgb(253 254 255 / var(--opacity-50)); 4402 --checkbox-border: 1px solid rgb(253 254 255 / var(--opacity-35-55)); 4403 } 4404 4405 4406 .color-custom-sections--25631040569723__utilities { 4407 color: var(--color, var(--color-foreground)); 4408 background-color: var(--color-background); 4409 } 4410 </style> 4411 4412 4413 4414<div 4415 class="section-background color-custom-sections--25631040569723__utilities" 4416></div> 4417<div 4418 class="section section--page-width color-custom-sections--25631040569723__utilities" 4419 4420 data-layout="center" 4421> 4422 <div 4423 class="utilities utilities--blocks-3 spacing-style" 4424 style="--padding-block-start: max(20px, calc(var(--spacing-scale) * 48px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 32px)); --border-width: 0px; --gap: 24px;" 4425 data-testid="footer-utilities" 4426 > 4427 4428 4429<div 4430 class="social-icons__wrapper social-icons__wrapper--AeTQ3OW5nSDJKODNIM__social_icons" 4431 style="--icon-size: 2.6875rem;" 4432 4433> 4434 4435 <style data-shopify> 4436 .social-icons__wrapper--AeTQ3OW5nSDJKODNIM__social_icons { 4437 --color-utilities: #1966cb; 4438 } 4439 </style> 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 <div 4453 class="social-icons__icon-wrapper" 4454 > 4455 <a 4456 href="/pages/sign-up" 4457 target="_blank" 4458 rel="noopener noreferrer" 4459 aria-label="Mailinglist" 4460 4461 > 4462 <span class="social-icons__icon-label">Mailinglist</span> 4463 4464 <svg 4465 class="social-icons__icon icon-default" 4466 aria-hidden="true" 4467 focusable="false" 4468 xmlns="http://www.w3.org/2000/svg"
4469 viewBox="0 0 20 20" 4470 > 4471 4472 4473<path d="M15.31,3.93c1.26,0,2.28,1.02,2.28,2.28v7.58c0,1.26-1.02,2.28-2.28,2.28H4.69c-1.26,0-2.28-1.02-2.28-2.28v-7.58c0-1.26,1.02-2.28,2.28-2.28h10.62ZM16.07,6.46l-5.57,4.87c-.26.23-.64.25-.92.06l-.07-.06L3.93,6.46v7.34c0,.42.34.76.76.76h10.62c.42,0,.76-.34.76-.76v-7.34ZM14.92,5.45H5.08l4.92,4.3,4.92-4.3Z"/></svg> 4474 4475 </a> 4476 </div> 4477 4478 4479 4480 4481 4482 4483 4484 <div 4485 class="social-icons__icon-wrapper" 4486 > 4487 <a 4488 href="https://www.facebook.com/fontainesband/" 4489 target="_blank" 4490 rel="noopener noreferrer" 4491 aria-label="Facebook" 4492 4493 > 4494 <span class="social-icons__icon-label">Facebook</span> 4495 4496 <svg 4497 class="social-icons__icon icon-default" 4498 aria-hidden="true" 4499 focusable="false" 4500 xmlns="http://www.w3.org/2000/svg" 4501 viewBox="0 0 20 20" 4502 > 4503 4504 4505<path d="M18 10.049C18 5.603 14.419 2 10 2c-4.419 0-8 3.603-8 8.049C2 14.067 4.925 17.396 8.75 18v-5.624H6.719v-2.328h2.03V8.275c0-2.017 1.195-3.132 3.023-3.132.874 0 1.79.158 1.79.158v1.98h-1.009c-.994 0-1.303.621-1.303 1.258v1.51h2.219l-.355 2.326H11.25V18c3.825-.604 6.75-3.933 6.75-7.951Z" /></svg> 4506 4507 </a> 4508 </div> 4509 4510 4511 4512 4513 4514 4515 4516 <div 4517 class="social-icons__icon-wrapper" 4518 > 4519 <a 4520 href="https://www.instagram.com/fontainesband" 4521 target="_blank" 4522 rel="noopener noreferrer" 4523 aria-label="Instagram" 4524 4525 > 4526 <span class="social-icons__icon-label">Instagram</span> 4527 4528 <svg 4529 class="social-icons__icon icon-default" 4530 aria-hidden="true" 4531 focusable="false" 4532 xmlns="http://www.w3.org/2000/svg"
4533 viewBox="0 0 20 20" 4534 > 4535 4536 4537<path 4538 fill-rule="evenodd" 4539 d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.43 2.43 0 0 0-.912.593 2.486 2.486 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23 0 2.134.01 2.39.046 3.229.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046 2.134 0 2.39-.01 3.23-.046.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23 0-2.134-.01-2.39-.055-3.229-.027-.784-.164-1.204-.274-1.495a2.43 2.43 0 0 0-.593-.913 2.604 2.604 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045 1.1-.014 2.202.001 3.302.045.664.014 1.321.14 1.943.374a3.968 3.968 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.896 3.896 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.152 4.152 0 0 1-1.414-.922 4.128 4.128 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.44 4.44 0 0 1 .92-1.414 4.18 4.18 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805Zm1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93Zm5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355Z" 4540 clip-rule="evenodd" 4541 /></svg> 4542 4543 </a> 4544 </div> 4545 4546 4547 4548 4549 4550 4551 4552 <div 4553 class="social-icons__icon-wrapper" 4554 > 4555 <a 4556 href="https://www.youtube.com/channel/UCVtO4Hc3qiKScQBad51RAIQ" 4557 target="_blank" 4558 rel="noopener noreferrer" 4559 aria-label="Youtube" 4560 4561 > 4562 <span class="social-icons__icon-label">Youtube</span> 4563 4564 <svg 4565 class="social-icons__icon icon-default" 4566 aria-hidden="true" 4567 focusable="false" 4568 xmlns="http://www.w3.org/2000/svg"
4569 viewBox="0 0 20 20" 4570 > 4571 4572 4573<path d="M18.16 5.87c.34 1.309.34 4.08.34 4.08s0 2.771-.34 4.08a2.125 2.125 0 0 1-1.53 1.53c-1.309.34-6.63.34-6.63.34s-5.321 0-6.63-.34a2.125 2.125 0 0 1-1.53-1.53c-.34-1.309-.34-4.08-.34-4.08s0-2.771.34-4.08a2.173 2.173 0 0 1 1.53-1.53C4.679 4 10 4 10 4s5.321 0 6.63.34a2.173 2.173 0 0 1 1.53 1.53ZM8.3 12.5l4.42-2.55L8.3 7.4v5.1Z" /></svg> 4574 4575 </a> 4576 </div> 4577 4578 4579 4580 4581 4582 4583 4584 <div 4585 class="social-icons__icon-wrapper" 4586 > 4587 <a 4588 href="https://www.tiktok.com/@fontainesband" 4589 target="_blank" 4590 rel="noopener noreferrer" 4591 aria-label="Tiktok" 4592 4593 > 4594 <span class="social-icons__icon-label">Tiktok</span> 4595 4596 <svg 4597 class="social-icons__icon icon-default" 4598 aria-hidden="true" 4599 focusable="false" 4600 xmlns="http://www.w3.org/2000/svg" 4601 viewBox="0 0 20 20" 4602 > 4603 4604 4605<path d="M10.511 1.705h2.74s-.157 3.51 3.795 3.768v2.711s-2.114.129-3.796-1.158l.028 5.606A5.073 5.073 0 1 1 8.213 7.56h.708v2.785a2.298 2.298 0 1 0 1.618 2.205L10.51 1.705Z" /></svg> 4606 4607 </a> 4608 </div> 4609 4610 4611 4612 4613 4614 4615 4616 <div 4617 class="social-icons__icon-wrapper" 4618 > 4619 <a 4620 href="https://twitter.com/fontainesdublin" 4621 target="_blank" 4622 rel="noopener noreferrer" 4623 aria-label="Twitter" 4624 4625 > 4626 <span class="social-icons__icon-label">Twitter</span> 4627 4628 <svg 4629 class="social-icons__icon icon-default" 4630 aria-hidden="true" 4631 focusable="false" 4632 xmlns="http://www.w3.org/2000/svg"
4633 viewBox="0 0 20 20" 4634 > 4635 4636 4637<path 4638 fill-rule="evenodd" 4639 clip-rule="evenodd" 4640 d="M7.27301 2.80005L10.8 7.82205L15.218 2.80005H16.986L11.586 8.93905L17.385 17.193H12.727L8.99701 11.883L4.32601 17.193H2.55801L8.21201 10.766L2.61501 2.80005H7.27301ZM13.515 15.925L5.07001 4.10905H6.47501L14.921 15.925H13.515Z" 4641 fill="currentColor" 4642 /></svg> 4643 4644 </a> 4645 </div> 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 <div 4682 class="social-icons__icon-wrapper" 4683 > 4684 <a 4685 href="https://open.spotify.com/artist/3SXwqSqAoBz9WCI9PDQzY6?si=h8U2_ASnSTmGmWSY5kZsZg" 4686 target="_blank" 4687 rel="noopener noreferrer" 4688 aria-label="Spotify" 4689 4690 > 4691 <span class="social-icons__icon-label">Spotify</span> 4692 4693 <svg 4694 class="social-icons__icon icon-default" 4695 aria-hidden="true" 4696 focusable="false" 4697 xmlns="http://www.w3.org/2000/svg"
4698 viewBox="0 0 20 20" 4699 > 4700 4701 4702<path 4703 d="M10.3174 2.15792C5.90232 1.98576 2.18119 5.35734 2.00643 9.68876C1.83094 14.0202 5.26836 17.6701 9.68268 17.8423C14.0977 18.0144 17.8181 14.6428 17.9936 10.3114C18.1684 5.98001 14.7317 2.32937 10.3174 2.15792ZM13.6941 13.6558C13.5947 13.8279 13.4009 13.914 13.2122 13.8882C13.1545 13.8803 13.0967 13.8616 13.0426 13.8315C11.9853 13.2411 10.8329 12.8566 9.6176 12.6888C8.40233 12.5209 7.18633 12.579 6.00396 12.8609C5.7473 12.9219 5.48919 12.7677 5.42703 12.5159C5.36488 12.2641 5.52209 12.0108 5.77875 11.9499C7.07884 11.64 8.41549 11.5761 9.75068 11.7605C11.0859 11.9449 12.3523 12.3674 13.5157 13.0166C13.7446 13.145 13.825 13.4305 13.6948 13.6558H13.6941ZM14.7456 11.5955C14.5825 11.891 14.2052 12.0015 13.904 11.8416C12.6668 11.1852 11.3272 10.754 9.92252 10.5603C8.51786 10.3667 7.10955 10.419 5.73561 10.7153C5.66102 10.7311 5.58717 10.7339 5.51551 10.7239C5.26617 10.6895 5.05265 10.5073 4.99562 10.2512C4.92177 9.92262 5.13382 9.59765 5.46871 9.5252C6.98744 9.19737 8.54418 9.13926 10.0958 9.35303C11.6467 9.56681 13.1274 10.0431 14.4948 10.7691C14.7968 10.9291 14.9086 11.2985 14.7456 11.5948V11.5955ZM15.9111 9.27269C15.7576 9.5625 15.438 9.71243 15.1265 9.66939C15.0425 9.65791 14.9598 9.63209 14.8801 9.59191C13.4396 8.85662 11.888 8.37097 10.2684 8.14787C8.64875 7.92477 7.02034 7.97212 5.42923 8.28919C5.01536 8.37169 4.61247 8.10913 4.52838 7.70382C4.44429 7.2978 4.71191 6.90253 5.12504 6.82004C6.88726 6.46925 8.68896 6.41688 10.4812 6.66365C12.2734 6.91043 13.9902 7.44844 15.5857 8.26265C15.9601 8.45346 16.1056 8.90612 15.9111 9.27341V9.27269Z" 4704 fill="currentColor" 4705 /></svg> 4706 4707 </a> 4708 </div> 4709 4710 4711 4712 4713 4714 4715 4716 <div 4717 class="social-icons__icon-wrapper" 4718 > 4719 <a 4720 href="https://music.apple.com/us/artist/fontaines-d-c/1341828470" 4721 target="_blank" 4722 rel="noopener noreferrer" 4723 aria-label="Apple_music" 4724 4725 > 4726 <span class="social-icons__icon-label">Apple_music</span> 4727 4728 <svg 4729 class="social-icons__icon icon-default" 4730 aria-hidden="true" 4731 focusable="false" 4732 xmlns="http://www.w3.org/2000/svg"
4733 viewBox="0 0 20 20" 4734 > 4735 4736 4737<path d="M17.99,6.08c0-.49-.04-.98-.16-1.46-.21-.87-.71-1.54-1.45-2.03-.38-.25-.8-.4-1.25-.48-.34-.06-.69-.09-1.04-.1-.03,0-.05,0-.08-.01H5.99c-.1,0-.2.01-.3.02-.5.03-.99.08-1.46.27-.89.35-1.53.97-1.91,1.85-.13.3-.2.62-.24.94-.04.26-.06.52-.07.79,0,.02,0,.04,0,.06v8.15c0,.09.01.19.02.28.03.54.1,1.08.33,1.58.43.95,1.16,1.57,2.16,1.87.28.09.57.12.86.15.37.04.74.04,1.11.04h7.35c.35,0,.7-.02,1.05-.07.55-.07,1.06-.23,1.53-.54.56-.37.98-.86,1.25-1.47.12-.28.2-.58.25-.88.08-.45.09-.91.09-1.36,0-2.53,0-5.06,0-7.59h0ZM13.71,8.74v3.81c0,.28-.04.55-.16.8-.19.39-.51.64-.92.76-.23.07-.47.1-.71.11-.63.03-1.18-.4-1.29-1.02-.1-.52.15-1.08.69-1.35.21-.1.45-.17.68-.21.25-.05.51-.1.76-.16.19-.04.3-.15.34-.34.01-.04.01-.09.01-.13v-3.63s0-.08-.02-.12c-.03-.1-.1-.16-.2-.16-.11,0-.21.02-.31.04-.51.1-1.02.2-1.52.3l-2.47.5s-.02,0-.03,0c-.18.05-.25.14-.26.33,0,.03,0,.06,0,.09,0,1.73,0,3.47,0,5.2,0,.28-.03.56-.14.82-.18.43-.51.7-.96.82-.23.07-.47.11-.72.11-.64.02-1.17-.4-1.28-1.03-.09-.54.15-1.12.77-1.39.24-.1.49-.15.74-.21.19-.04.38-.08.57-.12.26-.05.39-.22.4-.48v-6.02c0-.08.01-.17.03-.25.05-.19.18-.3.36-.34.17-.04.34-.08.52-.11.49-.1.98-.2,1.47-.29l1.51-.31c.45-.09.89-.18,1.34-.27.15-.03.29-.06.44-.07.21-.02.35.11.37.32,0,.05,0,.1,0,.15v3.82h0Z"/></svg> 4738 4739 </a> 4740 </div> 4741 4742 4743 4744 4745 4746 4747 4748</div> 4749 4750 4751 4752 4753 4754 4755 4756<ul 4757 class=" 4758 policy_list list-unstyled 4759 custom-typography 4760 custom-font-size 4761 " 4762 style=" 4763--font-size: 0.75rem; --font-weight: ;--font-family: ; --text-transform: none; --text-wrap: pretty; --line-height: var(--line-height--body-); --letter-spacing: var(--letter-spacing--body-);" 4764 4765> 4766 4767 4768 4769 4770 4771 <li class="footer-link--Terms"> 4772 <a href="/policies/terms-of-service">Terms</a> 4773 </li> 4774 4775 <li class="footer-link--Privacy"> 4776 <a href="https://app.fandation.com/docs/fdfbf5c6-1792-48ec-81b9-e93cb7b44acd">Privacy</a> 4777 </li> 4778 4779 <li class="footer-link--Return Policy"> 4780 <a href="https://fontaines-dc.gorgias.help/en-US/articles/returns-&-exchanges-66157">Return Policy</a> 4781 </li> 4782 4783 <li class="footer-link--Help & FAQs"> 4784 <a href="https://fontaines-dc.gorgias.help/">Help & FAQs</a> 4785 </li> 4786 4787 <li class="footer-link--Withdrawal Request"> 4788 <a href="https://contact.gorgias.help/en-US/forms/qgn1xwoo">Withdrawal Request</a> 4789 </li> 4790 4791 <li class="footer-link--Contact"> 4792 <a href="https://fontaines-dc.gorgias.help/en-US/contact">Contact</a> 4793 </li> 4794 4795 <li class="footer-link--Sign Up"> 4796 <a href="/pages/sign-up">Sign Up</a> 4797 </li> 4798 4799 4800 4801 4802</ul> 4803 4804 4805 4806 4807 4808<div 4809 class=" 4810 footer-utilities__group-copyright 4811 custom-typography 4812 custom-font-size 4813 " 4814 style=" 4815 4816--font-size: 0.75rem; --font-weight: ;--font-family: ; --text-transform: none; --text-wrap: pretty; --line-height: var(--line-height--body-); --letter-spacing: var(--letter-spacing--body-); 4817 --color-utilities: #1966cb; 4818 " 4819 4820> 4821 <span class="footer-utilities__text"> 4822 © 2026 4823 4824 Fontaines D.C. 4825 4826</span> 4827</div> 4828 4829 4830 4831 4832 4833 </div> 4834</div> 4835 4836 4837 4838 4839<style> #shopify-section-sections--25631040569723__utilities a {color: #1966cb;} </style></div> 4840<!-- END sections: footer-group --> 4841 </footer> 4842 </div> 4843 4844 4845 4846 <div 4847 id="shopify-section-cart-drawer-section" 4848 class="shopify-section" 4849 > 4850 4851 4852
4852<script 4853 type="module" 4854 src="//fontainesdc.com/cdn/shop/t/35/assets/cart-drawer.js?v=101430053943909765251786997004" 4855 fetchpriority="low" 4856 ></script>
4856 4857 4858 4859 4860 <theme-drawer 4861 id="cart-drawer" 4862 data-skip-node-update 4863 > 4864 <dialog 4865 ref="panel" 4866 class="theme-drawer__dialog color-custom-drawer" 4867 aria-labelledby="cart-drawer-heading" 4868 cart-summary-sticky="true" 4869 > 4870 <cart-drawer-component 4871 4872 auto-open 4873 4874 > 4875 <template id="empty-cart-template"> 4876 4877 <div 4878 class="cart-drawer__content" 4879 aria-label="Cart" 4880 > 4881 <h2 4882 class="theme-drawer__title h4" 4883 id="cart-drawer-heading" 4884 > 4885 Your cart is empty 4886 </h2> 4887 4888 <div class="cart-drawer__items"> 4889 4890 4891
4892<script 4893 src="//fontainesdc.com/cdn/shop/t/35/assets/component-cart-items.js?v=14476580701730542761786997001" 4894 type="module" 4895 fetchpriority="low" 4896></script>
vendor: 1 bytes, line 4896
4896
4897<script 4898 src="//fontainesdc.com/cdn/shop/t/35/assets/component-cart-quantity-selector.js?v=168493463479860323171786997001" 4899 type="module" 4900 fetchpriority="low" 4901></script>
vendor: 1 bytes, line 4901
4901
4902<script 4903 src="//fontainesdc.com/cdn/shop/t/35/assets/volume-pricing-info.js?v=94479640769665442661786997001" 4904 type="module" 4905 fetchpriority="low" 4906></script>
4906 4907 4908 4909 4910 4911 4912 4913<div 4914 4915 class="cart-items__wrapper cart-items__wrapper--drawer-empty" 4916 4917 data-cart-drawer-empty 4918 4919 style="" 4920> 4921 4922<p> 4923 Have an account? <a href="https://fontainesdc.com/customer_authentication/redirect?locale=en®ion_country=GB">Log in</a> to check out faster. 4924 </p><a 4925 class="button cart-items__empty-button" 4926 href="/" 4927 > 4928 <span class="button-text"> 4929 Continue shopping 4930 </span> 4931 </a></div> 4932 4933 4934 4935 </div> 4936 </div> 4937 4938 </template> 4939 4940 <div 4941 class="cart-drawer__inner cart-drawer--empty" 4942 data-hydration-key="cart-drawer-inner" 4943 ><div class="theme-drawer__header"> 4944 <button 4945 on:click="#cart-drawer/close" 4946 class="theme-drawer__close-button cart-drawer__close-button--empty" 4947 type="button" 4948 aria-label="Close" 4949 > 4950 <span class="svg-wrapper"><svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 4951<path d="M11.1765 12.025C11.4108 12.2594 11.7907 12.2594 12.025 12.025C12.2594 11.7907 12.2594 11.4108 12.025 11.1765L8.84931 8.00078L12.025 4.82505C12.2594 4.59073 12.2594 4.21083 12.025 3.97652C11.7907 3.7422 11.4108 3.7422 11.1765 3.97652L8.00078 7.15225L4.82505 3.97652C4.59073 3.7422 4.21083 3.7422 3.97652 3.97652C3.7422 4.21083 3.7422 4.59073 3.97652 4.82505L7.15225 8.00078L3.97652 11.1765C3.7422 11.4108 3.7422 11.7907 3.97652 12.025C4.21083 12.2594 4.59073 12.2594 4.82505 12.025L8.00078 8.84931L11.1765 12.025Z" fill="currentColor"/> 4952</svg> 4953</span> 4954 </button> 4955 </div> 4956 4957 4958<cart-items-component 4959 class="cart-items-component" 4960 4961 data-drawer 4962 view-event-trigger="dialog" 4963 4964 data-section-id="cart-drawer-section" 4965 4966 view-event-payload="{"context":null,"cart":null}" 4967 4968> 4969 4970 4971 <div 4972 class="cart-drawer__content" 4973 aria-label="Cart" 4974 > 4975 <h2 4976 class="theme-drawer__title h4" 4977 id="cart-drawer-heading" 4978 > 4979 Your cart is empty 4980 </h2> 4981 4982 <div class="cart-drawer__items"> 4983 4984 4985
4986<script 4987 src="//fontainesdc.com/cdn/shop/t/35/assets/component-cart-items.js?v=14476580701730542761786997001" 4988 type="module" 4989 fetchpriority="low" 4990></script>
vendor: 1 bytes, line 4990
4990
4991<script 4992 src="//fontainesdc.com/cdn/shop/t/35/assets/component-cart-quantity-selector.js?v=168493463479860323171786997001" 4993 type="module" 4994 fetchpriority="low" 4995></script>
vendor: 1 bytes, line 4995
4995
4996<script 4997 src="//fontainesdc.com/cdn/shop/t/35/assets/volume-pricing-info.js?v=94479640769665442661786997001" 4998 type="module" 4999 fetchpriority="low" 5000></script>
5000 5001 5002 5003 5004 5005 5006 5007<div 5008 5009 class="cart-items__wrapper cart-items__wrapper--drawer-empty" 5010 5011 data-cart-drawer-empty 5012 5013 style="" 5014> 5015 5016<p> 5017 Have an account? <a href="https://fontainesdc.com/customer_authentication/redirect?locale=en®ion_country=GB">Log in</a> to check out faster. 5018 </p><a 5019 class="button cart-items__empty-button" 5020 href="/" 5021 > 5022 <span class="button-text"> 5023 Continue shopping 5024 </span> 5025 </a></div> 5026 5027 5028 5029 </div> 5030 </div> 5031 5032 5033</cart-items-component> 5034 5035 5036 5037 </div> 5038 </cart-drawer-component> 5039 </dialog> 5040 </theme-drawer> 5041 5042 5043 </div> 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053
5054<script 5055 type="module" 5056 src="//fontainesdc.com/cdn/shop/t/35/assets/theme-drawer.js?v=155110645205299884131786997002" 5057 fetchpriority="low" 5058></script>
5058 5059
5060<script> 5061 /* Runs synchronously during HTML parsing â opens the correct drawer on first 5062 paint if navigation state was saved, so it renders with the rest of the page. */ 5063 (function () { 5064 var drawerIds = (sessionStorage.getItem('theme-drawer-open') || '').split(',').filter(Boolean); 5065 if (!drawerIds.length) return; 5066 5067 // Only restore on wide viewports (squeeze mode). On narrow viewports the 5068 // drawer is a modal overlay â let it start closed after navigation rather 5069 // than re-opening a fullscreen dialog the user may have left behind. 5070 if (!window.matchMedia('(min-width: 990px)').matches) return; 5071 5072 var dialogs = []; 5073 for (var i = 0; i < drawerIds.length; i++) { 5074 var drawer = document.getElementById(drawerIds[i]); 5075 if (!drawer) continue; 5076 5077 drawer.setAttribute('open', ''); 5078 5079 // Set [open] directly so the CSS slide-in applies without triggering 5080 // the browser's dialog focusing steps â on wide viewports the drawer is 5081 // a sidebar, not a modal, so focus should stay where it is. 5082 // The instant class suppresses the slide-in transition for the initial restore. 5083 // Set --drawer-stack-order so z-index layering matches the original order. 5084 drawer.style.setProperty('--drawer-stack-order', String(i + 1)); 5085 5086 var dialog = drawer.querySelector('dialog'); 5087 if (dialog) { 5088 dialog.setAttribute('open', ''); 5089 dialog.classList.add('theme-drawer__dialog-instant'); 5090 dialogs.push(dialog); 5091 } 5092 5093 // Let each drawer type handle its own restore (e.g. shopify-chat mode). 5094 // Synchronous dispatch â listeners attached during earlier parsing run immediately. 5095 drawer.dispatchEvent(new CustomEvent('theme-drawer:restoring')); 5096 } 5097 5098 // Apply squeeze immediately, bypassing the margin transition. 5099 // Only squeeze if at least one drawer was actually restored â saved 5100 // drawer IDs may not exist on every page (e.g. cart-drawer on /cart). 5101 var pageWrapper = document.querySelector('.page-wrapper'); 5102 if (pageWrapper && dialogs.length > 0) { 5103 pageWrapper.style.transition = 'none'; 5104 pageWrapper.classList.add('page-wrapper--drawer-open'); 5105 } 5106 5107 // Re-enable transitions after one paint so the instant state is rendered first. 5108 requestAnimationFrame(function () { 5109 requestAnimationFrame(function () { 5110 if (pageWrapper) pageWrapper.style.transition = ''; 5111 for (var j = 0; j < dialogs.length; j++) { 5112 dialogs[j].classList.remove('theme-drawer__dialog-instant'); 5113 } 5114 }); 5115 }); 5116 })(); 5117</script>
5117 5118
5119<script 5120 type="module" 5121> 5122 const pageWrapper = document.querySelector('.page-wrapper'); 5123 const squeezeQuery = window.matchMedia('(min-width: 990px)'); 5124 5125 // ââ Squeeze coordination ââ 5126 // Listens to all drawers. Only squeezes on wide viewports. 5127 document.addEventListener('theme-drawer:open', () => { 5128 if (squeezeQuery.matches) { 5129 pageWrapper?.classList.add('page-wrapper--drawer-open'); 5130 } 5131 }); 5132 5133 document.addEventListener('theme-drawer:close', () => { 5134 const openDrawer = document.querySelector('theme-drawer[open]'); 5135 if (!openDrawer) { 5136 pageWrapper?.classList.remove('page-wrapper--drawer-open'); 5137 } 5138 }); 5139 5140 squeezeQuery.addEventListener('change', () => { 5141 const openDrawer = document.querySelector('theme-drawer[open]'); 5142 pageWrapper?.classList.toggle('page-wrapper--drawer-open', Boolean(openDrawer) && squeezeQuery.matches); 5143 }); 5144 5145 // ââ State persistence ââ 5146 // Store open drawer IDs sorted by their visual stack order so 5147 // the restore script can recreate the same z-index layering. 5148 function persistDrawerState() { 5149 const openDrawers = Array.from(document.querySelectorAll('theme-drawer[open]:not([no-persist])')); 5150 if (!openDrawers.length) { 5151 sessionStorage.removeItem('theme-drawer-open'); 5152 return; 5153 } 5154 5155 openDrawers.sort((a, b) => { 5156 const orderA = Number(a.style.getPropertyValue('--drawer-stack-order') || 0); 5157 const orderB = Number(b.style.getPropertyValue('--drawer-stack-order') || 0); 5158 return orderA - orderB; 5159 }); 5160 5161 sessionStorage.setItem('theme-drawer-open', openDrawers.map((d) => d.id).join(',')); 5162 } 5163 5164 document.addEventListener('theme-drawer:open', persistDrawerState); 5165 document.addEventListener('theme-drawer:close', persistDrawerState); 5166</script>
5166 5167 5168 5169 5170 5171 5172 5173 5174 5175
5176<script 5177 src="//fontainesdc.com/cdn/shop/t/35/assets/dialog.js?v=144816527575655702281786997004" 5178 type="module" 5179></script>
5179 5180
5181<script 5182 src="//fontainesdc.com/cdn/shop/t/35/assets/predictive-search.js?v=162722252387887966571786997002" 5183 type="module" 5184 fetchpriority="low" 5185></script>
5185 5186 5187<dialog-component 5188 id="search-modal" 5189 class="search-modal" 5190 5191> 5192 <dialog 5193 ref="dialog" 5194 on:click="/closeDialogOnClickOutside" 5195 on:keydown="/closeDialogOnEscapePress" 5196 class="search-modal__content dialog-modal" 5197 scroll-lock 5198 aria-labelledby="search-modal-heading" 5199 > 5200 <h2 5201 id="search-modal-heading" 5202 class="visually-hidden" 5203 > 5204 Search 5205 </h2> 5206 <predictive-search-component 5207 class="predictive-search color-custom-popover" 5208 style="--product-corner-radius: 0px; --card-corner-radius: 4px;" 5209 data-section-id="predictive-search" 5210 data-testid="search-component--modal" 5211 role="search" 5212 aria-label="Search" 5213 > 5214 <form 5215 action="/search" 5216 method="get" 5217 role="search" 5218 class="predictive-search-form" 5219 ref="form" 5220 on:keydown="/onSearchKeyDown" 5221 > 5222 <div 5223 class="predictive-search-form__header" 5224 > 5225 <div class="predictive-search-form__header-inner"> 5226 <label 5227 for="cmdk-input" 5228 class="visually-hidden" 5229 >Search</label> 5230 <input 5231 class="search-input" 5232 id="cmdk-input" 5233 type="search" 5234 name="q" 5235 role="combobox" 5236 aria-expanded="false" 5237 aria-owns="predictive-search-results" 5238 aria-controls="predictive-search-results" 5239 aria-haspopup="listbox" 5240 aria-autocomplete="list" 5241 autocomplete="off" 5242 placeholder="Search" 5243 ref="searchInput" 5244 on:input="/search" 5245 on:keydown="/onSearchKeyDown" 5246 > 5247 <input 5248 name="options[prefix]" 5249 type="hidden" 5250 value="last" 5251 > 5252 <span class="svg-wrapper predictive-search__icon"> 5253 <svg class="icon icon-search" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><circle cx="9" cy="9" r="4.75" stroke="currentColor" stroke-width="var(--icon-stroke-width)"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="var(--icon-stroke-width)" d="m12.5 12.5 3.25 3.25"/></svg> 5254 5255 </span> 5256 <button 5257 type="button" 5258 class="button-unstyled predictive-search__reset-button" 5259 ref="resetButton" 5260 hidden 5261 on:click="/resetSearch" 5262 > 5263 Clear 5264 </button> 5265 </div> 5266 <button 5267 type="button" 5268 class="button predictive-search__close-modal-button" 5269 aria-label="Close dialog" 5270 on:click="dialog-component/closeDialog" 5271 ref="closeModalButton" 5272 > 5273 <span class="svg-wrapper"> 5274 <svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 5275<path d="M11.1765 12.025C11.4108 12.2594 11.7907 12.2594 12.025 12.025C12.2594 11.7907 12.2594 11.4108 12.025 11.1765L8.84931 8.00078L12.025 4.82505C12.2594 4.59073 12.2594 4.21083 12.025 3.97652C11.7907 3.7422 11.4108 3.7422 11.1765 3.97652L8.00078 7.15225L4.82505 3.97652C4.59073 3.7422 4.21083 3.7422 3.97652 3.97652C3.7422 4.21083 3.7422 4.59073 3.97652 4.82505L7.15225 8.00078L3.97652 11.1765C3.7422 11.4108 3.7422 11.7907 3.97652 12.025C4.21083 12.2594 4.59073 12.2594 4.82505 12.025L8.00078 8.84931L11.1765 12.025Z" fill="currentColor"/> 5276</svg> 5277 5278 </span> 5279 </button> 5280 </div> 5281 5282 <div class="predictive-search-form__content-wrapper"> 5283 <div 5284 class="predictive-search-form__content" 5285 ref="predictiveSearchResults" 5286 on:click="/handleModalClick" 5287 > 5288 5289 5290<div 5291 id="predictive-search-results" 5292 class="predictive-search-dropdown" 5293 role="listbox" 5294 aria-expanded="true" 5295 style="--color-shadow: rgb(var(--color-foreground-rgb) / 0.1);" 5296> 5297 5298 <div class="predictive-search-results__inner"> 5299 5300 5301 5302 5303 5304 <div 5305 id="predictive-search-products" 5306 class="predictive-search-results__products" 5307 5308 data-testid="products-list-default--modal" 5309 5310> 5311 5312 <h4 class="predictive-search-results__title"> 5313 Products 5314 </h4> 5315 <ul 5316 class="predictive-search-results__list predictive-search-results__wrapper-products list-unstyled" 5317 > 5318 5319 5320 <li 5321 class="predictive-search-results__card predictive-search-results__card--product" 5322 ref="resultsItems[]" 5323 > 5324 5325<product-card-link 5326 class="resource-card__wrapper" 5327 5328 data-product-id="7779192406243" 5329 data-featured-media-url="//fontainesdc.com/cdn/shop/products/AHD-7.png?v=1657612539&width=500" 5330 data-product-transition="true" 5331 on:click="/handleViewTransition" 5332 5333 5334 view-event-payload="{"product":{"id":7779192406243,"title":"A Hero's Death (7\" Single)","handle":"a-hero-s-death-7-single","selectedVariant":null},"context":"search","selectedOptions":[]}" 5335 5336 ><div 5337 class="resource-card" 5338 data-resource-type="product" 5339> 5340 <a 5341 class="resource-card__link" 5342 href="/products/a-hero-s-death-7-single" 5343 > 5344 <span class="visually-hidden"> 5345 A Hero's Death (7" Single) 5346 </span> 5347 </a> 5348 <div 5349 class="resource-card__media" 5350 style="--resource-card-aspect-ratio: 4 / 5;" 5351 5352 ref="cardGallery" 5353 data-view-transition-to-main-product 5354 5355 > 5356 5357 5358 5359 <img src="//fontainesdc.com/cdn/shop/products/AHD-7.png?v=1657612539&width=500" alt="" srcset="//fontainesdc.com/cdn/shop/products/AHD-7.png?v=1657612539&width=240 240w, //fontainesdc.com/cdn/shop/products/AHD-7.png?v=1657612539&width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" ref="imagesToTransition[]" style="object-position: 50.0% 50.0%;"> 5360</div> 5361 5362 <div class="resource-card__content"> 5363 <p class="resource-card__title paragraph">A Hero's Death (7" Single)</p> 5364 5365 5366 5367 5368 5369 <div ref="priceContainer"> 5370 5371 5372 <div 5373 class=" 5374 price__regular 5375 5376 " 5377 >
5378 <span class="price">£8.00</span> 5379 </div> 5380 <div 5381 class=" 5382 price__sale 5383 5384 price__hidden 5385 5386 " 5387 > 5388 5389 <span class="price-item__group"> 5390 <span class="visually-hidden">Regular price </span> 5391 <span class="price-item--regular compare-at-price"></span> 5392 </span> 5393 <span class="price-item__group"> 5394 <span class="visually-hidden">Sale price </span> 5395 <span class="price-item--sale price">£8.00</span> 5396 </span> 5397 5398 </div> 5399 5400</div> 5401 5402 5403 </div> 5404</div></product-card-link> 5405 5406 </li> 5407 5408 <li 5409 class="predictive-search-results__card predictive-search-results__card--product" 5410 ref="resultsItems[]" 5411 > 5412 5413<product-card-link 5414 class="resource-card__wrapper" 5415 5416 data-product-id="7779192275171" 5417 data-featured-media-url="//fontainesdc.com/cdn/shop/products/AHD-CD.png?v=1657613660&width=500" 5418 data-product-transition="true" 5419 on:click="/handleViewTransition" 5420 5421 5422 view-event-payload="{"product":{"id":7779192275171,"title":"A Hero's Death (CD)","handle":"a-hero-s-death-cd","selectedVariant":null},"context":"search","selectedOptions":[]}" 5423 5424 ><div 5425 class="resource-card" 5426 data-resource-type="product" 5427> 5428 <a 5429 class="resource-card__link" 5430 href="/products/a-hero-s-death-cd"
5431 > 5432 <span class="visually-hidden"> 5433 A Hero's Death (CD) 5434 </span> 5435 </a> 5436 <div 5437 class="resource-card__media" 5438 style="--resource-card-aspect-ratio: 4 / 5;" 5439 5440 ref="cardGallery" 5441 data-view-transition-to-main-product 5442 5443 > 5444 5445 5446 5447 <img src="//fontainesdc.com/cdn/shop/products/AHD-CD.png?v=1657613660&width=500" alt="" srcset="//fontainesdc.com/cdn/shop/products/AHD-CD.png?v=1657613660&width=240 240w, //fontainesdc.com/cdn/shop/products/AHD-CD.png?v=1657613660&width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" ref="imagesToTransition[]" style="object-position: 50.0% 50.0%;"> 5448</div> 5449 5450 <div class="resource-card__content"> 5451 <p class="resource-card__title paragraph">A Hero's Death (CD)</p> 5452 5453 5454 5455 5456 5457 <div ref="priceContainer"> 5458 5459 5460 <div 5461 class=" 5462 price__regular 5463 5464 " 5465 > 5466 <span class="price">£8.00</span> 5467 </div> 5468 <div 5469 class=" 5470 price__sale 5471 5472 price__hidden 5473 5474 " 5475 > 5476 5477 <span class="price-item__group"> 5478 <span class="visually-hidden">Regular price </span> 5479 <span class="price-item--regular compare-at-price"></span> 5480 </span> 5481 <span class="price-item__group"> 5482 <span class="visually-hidden">Sale price </span> 5483 <span class="price-item--sale price">£8.00</span> 5484 </span> 5485 5486 </div> 5487 5488</div> 5489 5490 5491 </div> 5492</div></product-card-link> 5493 5494 </li> 5495 5496 <li 5497 class="predictive-search-results__card predictive-search-results__card--product" 5498 ref="resultsItems[]" 5499 > 5500 5501<product-card-link 5502 class="resource-card__wrapper" 5503 5504 data-product-id="7779192307939" 5505 data-featured-media-url="//fontainesdc.com/cdn/shop/products/AHD-LPO.png?v=1657613988&width=500" 5506 data-product-transition="true" 5507 on:click="/handleViewTransition" 5508 5509 5510 view-event-payload="{"product":{"id":7779192307939,"title":"A Hero's Death (LP)","handle":"a-hero-s-death-lp","selectedVariant":null},"context":"search","selectedOptions":[]}" 5511 5512 ><div 5513 class="resource-card" 5514 data-resource-type="product" 5515> 5516 <a 5517 class="resource-card__link" 5518 href="/products/a-hero-s-death-lp" 5519 > 5520 <span class="visually-hidden"> 5521 A Hero's Death (LP) 5522 </span> 5523 </a> 5524 <div 5525 class="resource-card__media" 5526 style="--resource-card-aspect-ratio: 4 / 5;" 5527 5528 ref="cardGallery" 5529 data-view-transition-to-main-product 5530 5531 > 5532 5533 5534 5535 <img src="//fontainesdc.com/cdn/shop/products/AHD-LPO.png?v=1657613988&width=500" alt="" srcset="//fontainesdc.com/cdn/shop/products/AHD-LPO.png?v=1657613988&width=240 240w, //fontainesdc.com/cdn/shop/products/AHD-LPO.png?v=1657613988&width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" ref="imagesToTransition[]" style="object-position: 50.0% 50.0%;"> 5536</div> 5537 5538 <div class="resource-card__content"> 5539 <p class="resource-card__title paragraph">A Hero's Death (LP)</p> 5540 5541 5542 5543 5544 5545 <div ref="priceContainer"> 5546 5547 5548 <div 5549 class=" 5550 price__regular 5551 5552 " 5553 > 5554 <span class="price">£20.00</span> 5555 </div> 5556 <div 5557 class=" 5558 price__sale 5559 5560 price__hidden 5561 5562 " 5563 > 5564 5565 <span class="price-item__group"> 5566 <span class="visually-hidden">Regular price </span> 5567 <span class="price-item--regular compare-at-price"></span> 5568 </span> 5569 <span class="price-item__group"> 5570 <span class="visually-hidden">Sale price </span> 5571 <span class="price-item--sale price">£20.00</span> 5572 </span> 5573 5574 </div> 5575 5576</div> 5577 5578 5579 </div> 5580</div></product-card-link> 5581 5582 </li> 5583 5584 <li 5585 class="predictive-search-results__card predictive-search-results__card--product" 5586 ref="resultsItems[]" 5587 > 5588 5589<product-card-link 5590 class="resource-card__wrapper" 5591 5592 data-product-id="7935480529123" 5593 data-featured-media-url="//fontainesdc.com/cdn/shop/files/FDC---Band-of-distinction-Black-Hoodie.png?v=1748350429&width=500" 5594 data-product-transition="true" 5595 on:click="/handleViewTransition" 5596 5597 5598 view-event-payload="{"product":{"id":7935480529123,"title":"BAND OF DISTINCTION | Black Hoodie","handle":"band-of-distinction-hoody","selectedVariant":null},"context":"search","selectedOptions":[]}" 5599 5600 ><div 5601 class="resource-card" 5602 data-resource-type="product" 5603> 5604 <a 5605 class="resource-card__link" 5606 href="/products/band-of-distinction-hoody" 5607 > 5608 <span class="visually-hidden"> 5609 BAND OF DISTINCTION | Black Hoodie 5610 </span> 5611 </a> 5612 <div 5613 class="resource-card__media" 5614 style="--resource-card-aspect-ratio: 4 / 5;" 5615 5616 ref="cardGallery" 5617 data-view-transition-to-main-product 5618 5619 > 5620 5621 5622 5623 <img src="//fontainesdc.com/cdn/shop/files/FDC---Band-of-distinction-Black-Hoodie.png?v=1748350429&width=500" alt="" srcset="//fontainesdc.com/cdn/shop/files/FDC---Band-of-distinction-Black-Hoodie.png?v=1748350429&width=240 240w, //fontainesdc.com/cdn/shop/files/FDC---Band-of-distinction-Black-Hoodie.png?v=1748350429&width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" ref="imagesToTransition[]" style="object-position: 50.0% 50.0%;"> 5624</div> 5625 5626 <div class="resource-card__content"> 5627 <p class="resource-card__title paragraph">BAND OF DISTINCTION | Black Hoodie</p> 5628 5629 5630 5631 5632 5633 <div ref="priceContainer"> 5634 5635 5636 <div 5637 class=" 5638 price__regular 5639 5640 " 5641 >
5642 <span class="price">£50.00</span> 5643 </div> 5644 <div 5645 class=" 5646 price__sale 5647 5648 price__hidden 5649 5650 " 5651 > 5652 5653 <span class="price-item__group"> 5654 <span class="visually-hidden">Regular price </span> 5655 <span class="price-item--regular compare-at-price"></span> 5656 </span> 5657 <span class="price-item__group"> 5658 <span class="visually-hidden">Sale price </span> 5659 <span class="price-item--sale price">£50.00</span> 5660 </span> 5661 5662 </div> 5663 5664</div> 5665 5666 5667 </div> 5668</div></product-card-link> 5669 5670 </li> 5671 5672 </ul> 5673 5674</div> 5675 5676 5677 5678 </div> 5679 5680</div> 5681 5682 </div> 5683 5684 <div class="predictive-search-form__footer"> 5685 <button 5686 class="button predictive-search__search-button" 5687 ref="viewAllButton" 5688 > 5689 View all 5690 </button> 5691 </div> 5692 </div> 5693 </form> 5694 </predictive-search-component> 5695 </dialog> 5696</dialog-component> 5697 5698 5699 5700 5701 5702
5702<script 5703 src="//fontainesdc.com/cdn/shop/t/35/assets/gift-card-recipient-form.js?v=170482155849799299241786997004" 5704 type="module" 5705 fetchpriority="low" 5706></script>
5706 5707<quick-add-dialog id="quick-add-dialog"> 5708 <dialog 5709 class="quick-add-modal dialog-modal color-custom-popover" 5710 ref="dialog" 5711 scroll-lock 5712 > 5713 <button 5714 ref="closeButton" 5715 on:click="/closeDialog" 5716 class="button button-unstyled close-button quick-add-modal__close" 5717 aria-label="Close dialog" 5718 style="color: #000" 5719 ><svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 5720<path d="M11.1765 12.025C11.4108 12.2594 11.7907 12.2594 12.025 12.025C12.2594 11.7907 12.2594 11.4108 12.025 11.1765L8.84931 8.00078L12.025 4.82505C12.2594 4.59073 12.2594 4.21083 12.025 3.97652C11.7907 3.7422 11.4108 3.7422 11.1765 3.97652L8.00078 7.15225L4.82505 3.97652C4.59073 3.7422 4.21083 3.7422 3.97652 3.97652C3.7422 4.21083 3.7422 4.59073 3.97652 4.82505L7.15225 8.00078L3.97652 11.1765C3.7422 11.4108 3.7422 11.7907 3.97652 12.025C4.21083 12.2594 4.59073 12.2594 4.82505 12.025L8.00078 8.84931L11.1765 12.025Z" fill="currentColor"/> 5721</svg> 5722</button> 5723 5724 <product-component 5725 id="quick-add-modal-content" 5726 class="quick-add-modal__content" 5727 view-event-trigger="dialog" 5728 ></product-component> 5729 </dialog> 5730</quick-add-dialog> 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742<dialog id="lightbox" class="lightbox"> 5743 <button class="lightbox__close" aria-label="Close" autofocus> 5744 <svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 5745<path d="M11.1765 12.025C11.4108 12.2594 11.7907 12.2594 12.025 12.025C12.2594 11.7907 12.2594 11.4108 12.025 11.1765L8.84931 8.00078L12.025 4.82505C12.2594 4.59073 12.2594 4.21083 12.025 3.97652C11.7907 3.7422 11.4108 3.7422 11.1765 3.97652L8.00078 7.15225L4.82505 3.97652C4.59073 3.7422 4.21083 3.7422 3.97652 3.97652C3.7422 4.21083 3.7422 4.59073 3.97652 4.82505L7.15225 8.00078L3.97652 11.1765C3.7422 11.4108 3.7422 11.7907 3.97652 12.025C4.21083 12.2594 4.59073 12.2594 4.82505 12.025L8.00078 8.84931L11.1765 12.025Z" fill="currentColor"/> 5746</svg> 5747 5748 <span class="hidden">Close lightbox</span> 5749 </button> 5750 <iframe class="lightbox__frame" title="External content" referrerpolicy="no-referrer"></iframe> 5751</dialog> 5752 5753 5754
5755<script> 5756 document.getElementById('size-guide--button')?.addEventListener('click', (e) => { 5757 e.preventDefault(); 5758 document.getElementById('size-guide')?.showModal(); 5759 }); 5760</script>
5760 5761 5762
5763<script> 5764 const lightbox = document.getElementById('lightbox'); 5765 const frame = lightbox.querySelector('.lightbox__frame'); 5766 5767 document.addEventListener('click', (e) => { 5768 const link = e.target.closest('[data-external-link]'); 5769 if (!link) return; 5770 5771 e.preventDefault(); 5772 frame.src = link.href; 5773 lightbox.showModal(); 5774 }); 5775 5776 // Close on button, backdrop click, or Esc (Esc is native) 5777 lightbox.addEventListener('click', (e) => { 5778 if (e.target === lightbox || e.target.closest('.lightbox__close')) { 5779 lightbox.close(); 5780 } 5781 }); 5782 5783 // Clear the iframe when closed so it stops loading / resets scroll 5784 lightbox.addEventListener('close', () => { 5785 frame.src = 'about:blank'; 5786 }) 5787 5788 5789 5790</script>
5790 5791 5792
5792<script src="//fontainesdc.com/cdn/shop/t/35/assets/scripts.js?v=62566231039031902981788253619"></script>
5792 5793 <style> div > iframe {margin-inline: 20px} </style> 5794<div id="shopify-block-AeWtjZE1LT2Irb3pva__7079518687644006178" class="shopify-block shopify-app-block">
5794<script> 5795 (function () { 5796 const cartAttributes = {}; 5797 5798 // Helper function to retrieve the UTM from Url 5799 function getUTMFromUrl() { 5800 const url_string = window.location.href; 5801 const url = new URL(url_string); 5802 5803 const utm_id = url.searchParams.get("utm_id"); 5804 const utm_source = url.searchParams.get("utm_source"); 5805 const utm_medium = url.searchParams.get("utm_medium"); 5806 const utm_campaign = url.searchParams.get("utm_campaign"); 5807 const utm_term = url.searchParams.get("utm_term"); 5808 const ref = url.searchParams.get("ref"); 5809 5810 if (!utm_id && !utm_source && !utm_medium && !utm_campaign && !ref) { 5811 return null; 5812 } 5813 5814 let utmParameters = {}; 5815 5816 if (utm_id) { 5817 utmParameters.utm_id = utm_id; 5818 } 5819 if (utm_source) { 5820 utmParameters.utm_source = utm_source; 5821 } 5822 if (utm_medium) { 5823 utmParameters.utm_medium = utm_medium; 5824 } 5825 if (utm_campaign) { 5826 utmParameters.utm_campaign = utm_campaign; 5827 } 5828 if (utm_term) { 5829 utmParameters.utm_term = utm_term; 5830 } 5831 if (ref) { 5832 utmParameters.ref = ref; 5833 } 5834 5835 5836 return Object.keys(utmParameters).length === 0 5837 ? null 5838 : utmParameters; 5839 } 5840 5841 // Helper function to retrieve the UTM from Cookie 5842 function getUTMAttributes() { 5843 const urlUtmParams = getUTMFromUrl(); 5844 5845 if (urlUtmParams) { 5846 return urlUtmParams; 5847 } 5848 5849 // No longer reading from deprecated Shopify cookies 5850 return undefined; 5851 } 5852 5853 function saveUtmParameters() { 5854 const utmParams = getUTMAttributes(); 5855 if (utmParams) { 5856 const cartHasUtmAttributes = Object.keys(cartAttributes).find(attributeKey => attributeKey.startsWith("utm_") || attributeKey === "ref"); 5857 if (cartHasUtmAttributes) { 5858 // Don't call API if it already contains our UTM parameters 5859 return; 5860 } 5861 5862 // Handle both Shopify.routes.root and routes.root_url for better compatibility 5863 var rootUrl = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) 5864 || (window.routes && window.routes.root_url) 5865 || '/'; 5866 5867 var updateCart = fetch(rootUrl + 'cart/update.js', 5868 { 5869 headers: { 5870 'Content-Type': 'application/json', 5871 }, 5872 method: "POST", 5873 body: JSON.stringify({ 5874 attributes: { 5875 ...utmParams 5876 }, 5877 }) 5878 }) 5879 .then(response => response.json()) 5880 .then(data => { 5881 return data 5882 }); 5883 } 5884 } 5885 5886 saveUtmParameters(); 5887 })(); 5888</script>
5888 5889 5890 5891 5892 5893</div>
5893<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
5893 5894</body> 5895</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.