PageSourceSearch

https://fontainesdc.com/pages/live

html fontainesdc.com collected 2026-10-02 10:30:51 UTC 250,526 bytes, 5,895 lines download raw bytes

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 &ndash; 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 &amp; 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 &amp; 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 &amp; 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    &copy; 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&region_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="{&quot;context&quot;:null,&quot;cart&quot;: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&region_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="{&quot;product&quot;:{&quot;id&quot;:7779192406243,&quot;title&quot;:&quot;A Hero&#39;s Death (7\&quot; Single)&quot;,&quot;handle&quot;:&quot;a-hero-s-death-7-single&quot;,&quot;selectedVariant&quot;:null},&quot;context&quot;:&quot;search&quot;,&quot;selectedOptions&quot;:[]}"
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&amp;width=500" alt="" srcset="//fontainesdc.com/cdn/shop/products/AHD-7.png?v=1657612539&amp;width=240 240w, //fontainesdc.com/cdn/shop/products/AHD-7.png?v=1657612539&amp;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&nbsp;</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&nbsp;</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="{&quot;product&quot;:{&quot;id&quot;:7779192275171,&quot;title&quot;:&quot;A Hero&#39;s Death (CD)&quot;,&quot;handle&quot;:&quot;a-hero-s-death-cd&quot;,&quot;selectedVariant&quot;:null},&quot;context&quot;:&quot;search&quot;,&quot;selectedOptions&quot;:[]}"
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&amp;width=500" alt="" srcset="//fontainesdc.com/cdn/shop/products/AHD-CD.png?v=1657613660&amp;width=240 240w, //fontainesdc.com/cdn/shop/products/AHD-CD.png?v=1657613660&amp;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&nbsp;</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&nbsp;</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="{&quot;product&quot;:{&quot;id&quot;:7779192307939,&quot;title&quot;:&quot;A Hero&#39;s Death (LP)&quot;,&quot;handle&quot;:&quot;a-hero-s-death-lp&quot;,&quot;selectedVariant&quot;:null},&quot;context&quot;:&quot;search&quot;,&quot;selectedOptions&quot;:[]}"
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&amp;width=500" alt="" srcset="//fontainesdc.com/cdn/shop/products/AHD-LPO.png?v=1657613988&amp;width=240 240w, //fontainesdc.com/cdn/shop/products/AHD-LPO.png?v=1657613988&amp;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&nbsp;</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&nbsp;</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="{&quot;product&quot;:{&quot;id&quot;:7935480529123,&quot;title&quot;:&quot;BAND OF DISTINCTION | Black Hoodie&quot;,&quot;handle&quot;:&quot;band-of-distinction-hoody&quot;,&quot;selectedVariant&quot;:null},&quot;context&quot;:&quot;search&quot;,&quot;selectedOptions&quot;:[]}"
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&amp;width=500" alt="" srcset="//fontainesdc.com/cdn/shop/files/FDC---Band-of-distinction-Black-Hoodie.png?v=1748350429&amp;width=240 240w, //fontainesdc.com/cdn/shop/files/FDC---Band-of-distinction-Black-Hoodie.png?v=1748350429&amp;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&nbsp;</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&nbsp;</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.