PageSourceSearch

https://www.tnbl.co.uk/

html tnbl.co.uk collected 2026-10-09 03:21:37 UTC 1,319,769 bytes, 32,682 lines download raw bytes

1<!doctype html>
2<html
3  
4  lang="en"
5>
6  <head><link
7        rel="icon"
8        type="image/png"
9        href="//www.tnbl.co.uk/cdn/shop/files/TNBL_logo-cropped.svg?crop=center&height=32&v=1771858612&width=32"
10      >
11    
12      <link
13        rel="expect"
14        href="#MainContent"
15        blocking="render"
16        id="view-transition-render-blocker"
17      >
18    
19<meta charset="utf-8">
20<meta
21  http-equiv="X-UA-Compatible"
22  content="IE=edge"
23>
24<meta
25  name="viewport"
26  content="width=device-width,initial-scale=1"
27>
28<meta
29  name="view-transition"
30  content="same-origin"
31>
32<meta
33  name="theme-color"
34  content=""
35>
36
37<meta
38  property="og:site_name"
39  content="TNBL UK"
40>
41
42  
43<script type="application/ld+json">
44{
45  "@context": "https://schema.org",
46  "@type": "Organization",
47  "name": "TNBL UK Limited",
48  "alternateName": [
49    "TNBL",
50    "The Nail and Beauty Link"
51  ],
52  "url": "https://www.tnbl.co.uk/",
53  "logo": "https://www.tnbl.co.uk/cdn/shop/files/logo.png",
54  "legalName": "TNBL UK Limited",
55  "foundingDate": "2008",
56  "description": "Your ultimate destination for professional nail and beauty supplies, serving nail salons, beauty salons, and independent nail technicians across the UK and Europe.",
57  "address": {
58    "@type": "PostalAddress",
59    "streetAddress": "50–62 Hockley Street, Jewellery Quarter",
60    "addressLocality": "Birmingham",
61    "postalCode": "B18 6BH",
62    "addressCountry": "GB"
63  },
64  "contactPoint": {
65    "@type": "ContactPoint",
66    "telephone": "+44-121-523-5535",
67    "contactType": "customer service",
68    "email": "[email protected]",
69    "areaServed": ["GB", "EU"],
70    "availableLanguage": "English"
71  },
72  "sameAs": [
73    "https://www.facebook.com/tnbluk/",
74    "https://www.instagram.com/tnbl_uk/",
75    "https://www.youtube.com/@tnbluk487",
76    "https://www.tiktok.com/@tnbl_uk",
77    "https://www.trustpilot.com/review/www.tnbl.co.uk"
78  ]
79}
80</script>
80
81
82<meta
83  property="og:url"
84  content="https://www.tnbl.co.uk/"
85>
86<meta
87  property="og:title"
88  content="Nail &amp; Beauty Superstore - Wide Range of Beauty Supplies"
89>
90<meta
91  property="og:type"
92  content="website"
93>
94<meta
95  property="og:description"
96  content="Europe&#39;s leading professional nail &amp; beauty wholesale for trade professionals. Get All the Beauty Supplies You Need at TNBL - The Nail &amp; Beauty Link."
97><meta
98    property="og:image"
99    content="http://www.tnbl.co.uk/cdn/shop/files/tnbl_black_logo_transparent.webp?v=1785145865"
100  >
101  <meta
102    property="og:image:secure_url"
103    content="https://www.tnbl.co.uk/cdn/shop/files/tnbl_black_logo_transparent.webp?v=1785145865"
104  >
105  <meta
106    property="og:image:width"
107    content="1200"
108  >
109  <meta
110    property="og:image:height"
111    content="628"
112  ><meta
113  name="twitter:card"
114  content="summary_large_image"
115>
116<meta
117  name="twitter:title"
118  content="Nail &amp; Beauty Superstore - Wide Range of Beauty Supplies"
119>
120<meta
121  name="twitter:description"
122  content="Europe&#39;s leading professional nail &amp; beauty wholesale for trade professionals. Get All the Beauty Supplies You Need at TNBL - The Nail &amp; Beauty Link."
123>
124
125<title>
126  Nail &amp; Beauty Superstore - Wide Range of Beauty Supplies
127 &ndash; TNBL UK</title>
128
129<link
130  rel="canonical"
131  href="https://www.tnbl.co.uk/"
132>
133
134
135  <meta
136    name="description"
137    content="Europe&#39;s leading professional nail &amp; beauty wholesale for trade professionals. Get All the Beauty Supplies You Need at TNBL - The Nail &amp; Beauty Link."
138  >
139
140
141<meta name="msvalidate.01" content="C2A4C6063837382A28F407FD20D338C5" />
142<meta name="google-site-verification" content="4aJ5bni32DHffvQQ58B2XxCcMEhkg4AfYADuYXK3mDg" />
143<meta name="msvalidate.01" content="82CEF137C6BAC1728A470BB1779ECFE0" /><link href="//www.tnbl.co.uk/cdn/shop/t/6/assets/overflow-list.css?v=101911674359793798601774530324" as="style" rel="preload">
144<link href="//www.tnbl.co.uk/cdn/shop/t/6/assets/base.css?v=42362885590071652391774530327" rel="stylesheet" type="text/css" media="all" />
145
146<link
147    rel="preload"
148    as="font"
149    href="//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_n4.cc3f184f0be0174773c72c5502453af88810902e.woff2"
150    type="font/woff2"
151    crossorigin
152    fetchpriority="low"
153  ><link
154    rel="preload"
155    as="font"
156    href="//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_n7.592b3435e0fff3f50b26d410c73ae7ec893f6910.woff2"
157    type="font/woff2"
158    crossorigin
159    fetchpriority="low"
160  ><link
161    rel="preload"
162    as="font"
163    href="//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_n6.41e9dda2e7301ca861c0ec25a53c1bdf16b6624d.woff2"
164    type="font/woff2"
165    crossorigin
166    fetchpriority="low"
167  >
168<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 168
168
169<script type="importmap">
170  {
171    "imports": {
172      "@theme/overflow-list": "//www.tnbl.co.uk/cdn/shop/t/6/assets/overflow-list.js?v=46858356770684902511774530325",
173      "@theme/product-title": "//www.tnbl.co.uk/cdn/shop/t/6/assets/product-title-truncation.js?v=81744426891537421781774530329",
174      "@theme/component": "//www.tnbl.co.uk/cdn/shop/t/6/assets/component.js?v=184240237101443119871774530330",
175      "@theme/dialog": "//www.tnbl.co.uk/cdn/shop/t/6/assets/dialog.js?v=61774032287387761671774530324",
176      "@theme/events": "//www.tnbl.co.uk/cdn/shop/t/6/assets/events.js?v=147926035229139604561774530327",
177      "@theme/focus": "//www.tnbl.co.uk/cdn/shop/t/6/assets/focus.js?v=60436577539430446401774530330",
178      "@theme/morph": "//www.tnbl.co.uk/cdn/shop/t/6/assets/morph.js?v=35457747882330740861774530324",
179      "@theme/paginated-list": "//www.tnbl.co.uk/cdn/shop/t/6/assets/paginated-list.js?v=95298315036233333871774530326",
180      "@theme/performance": "//www.tnbl.co.uk/cdn/shop/t/6/assets/performance.js?v=171015751390534793081774530327",
181      "@theme/product-form": "//www.tnbl.co.uk/cdn/shop/t/6/assets/product-form.js?v=146907120448681380161774530325",
182      "@theme/recently-viewed-products": "//www.tnbl.co.uk/cdn/shop/t/6/assets/recently-viewed-products.js?v=26214479841066411761774530326",
183      "@theme/scrolling": "//www.tnbl.co.uk/cdn/shop/t/6/assets/scrolling.js?v=118005526288211533611774530328",
184      "@theme/section-renderer": "//www.tnbl.co.uk/cdn/shop/t/6/assets/section-renderer.js?v=117273408521114569061774530324",
185      "@theme/section-hydration": "//www.tnbl.co.uk/cdn/shop/t/6/assets/section-hydration.js?v=177651605160027701221774530330",
186      "@theme/utilities": "//www.tnbl.co.uk/cdn/shop/t/6/assets/utilities.js?v=74252600229394689081774530329",
187      "@theme/variant-picker": "//www.tnbl.co.uk/cdn/shop/t/6/assets/variant-picker.js?v=135960636952703356951774530329",
188      "@theme/media-gallery": "//www.tnbl.co.uk/cdn/shop/t/6/assets/media-gallery.js?v=111441960308641931071774530329",
189      "@theme/quick-add": "//www.tnbl.co.uk/cdn/shop/t/6/assets/quick-add.js?v=92813402004259032011774530324",
190      "@theme/paginated-list-aspect-ratio": "//www.tnbl.co.uk/cdn/shop/t/6/assets/paginated-list-aspect-ratio.js?v=25254270272143792451774530326",
191      "@theme/popover-polyfill": "//www.tnbl.co.uk/cdn/shop/t/6/assets/popover-polyfill.js?v=119029313658895111201774530328",
192      "@theme/component-quantity-selector": "//www.tnbl.co.uk/cdn/shop/t/6/assets/component-quantity-selector.js?v=67906657287482036641774530329",
193      "@theme/comparison-slider": "//www.tnbl.co.uk/cdn/shop/t/6/assets/comparison-slider.js?v=106705562947035711941774530327",
194      "@theme/sticky-add-to-cart": "//www.tnbl.co.uk/cdn/shop/t/6/assets/sticky-add-to-cart.js?v=139436074259139393941774530326",
195      "@theme/fly-to-cart": "//www.tnbl.co.uk/cdn/shop/t/6/assets/fly-to-cart.js?v=129971753673458693881774530329"
196    }
197  }
198</script>
198
199
200<script
201  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/view-transitions.js?v=7106414069516106341774530324"
202  async
203  
204    blocking="render"
205  
206></script>
206
207
208<script>
209  window.dataLayer = window.dataLayer || [];
210  function gtag(){dataLayer.push(arguments);}
211
212  //Initialize GTM tag
vendor: 339 bytes, lines 212-217
212
213  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
214  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
215  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
216  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
217  })(window,document,'script','dataLayer', '
217GTM-M5JH7L5
vendor: 4 bytes, line 217
217');
218</script>
218
219
220
221<link
222  rel="modulepreload"
223  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/utilities.js?v=74252600229394689081774530329"
224  fetchpriority="low"
225>
226<link
227  rel="modulepreload"
228  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/component.js?v=184240237101443119871774530330"
229  fetchpriority="low"
230>
231<link
232  rel="modulepreload"
233  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/section-renderer.js?v=117273408521114569061774530324"
234  fetchpriority="low"
235>
236<link
237  rel="modulepreload"
238  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/section-hydration.js?v=177651605160027701221774530330"
239  fetchpriority="low"
240>
241<link
242  rel="modulepreload"
243  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/morph.js?v=35457747882330740861774530324"
244  fetchpriority="low"
245>
246
247
248
249<link
250  rel="modulepreload"
251  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/focus.js?v=60436577539430446401774530330"
252  fetchpriority="low"
253>
254<link
255  rel="modulepreload"
256  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/recently-viewed-products.js?v=26214479841066411761774530326"
257  fetchpriority="low"
258>
259<link
260  rel="modulepreload"
261  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/scrolling.js?v=118005526288211533611774530328"
262  fetchpriority="low"
263>
264<link
265  rel="modulepreload"
266  href="//www.tnbl.co.uk/cdn/shop/t/6/assets/events.js?v=147926035229139604561774530327"
267  fetchpriority="low"
268>
269<script
270  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/popover-polyfill.js?v=119029313658895111201774530328"
271  type="module"
272  fetchpriority="low"
273></script>
vendor: 1 bytes, line 273
273
274<script
275  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/overflow-list.js?v=46858356770684902511774530325"
276  type="module"
277  fetchpriority="low"
278></script>
vendor: 1 bytes, line 278
278
279<script
280  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/quick-add.js?v=92813402004259032011774530324"
281  type="module"
282  fetchpriority="low"
283></script>
283
284
285  
285<script
286    src="//www.tnbl.co.uk/cdn/shop/t/6/assets/cart-discount.js?v=107077853990124422021774530330"
287    type="module"
288    fetchpriority="low"
289  ></script>
289
290
291
292<script
293  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/dialog.js?v=61774032287387761671774530324"
294  type="module"
295  fetchpriority="low"
296></script>
vendor: 1 bytes, line 296
296
297<script
298  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/variant-picker.js?v=135960636952703356951774530329"
299  type="module"
300  fetchpriority="low"
301></script>
vendor: 1 bytes, line 301
301
302<script
303  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-card.js?v=124402285637860180781774530324"
304  type="module"
305  fetchpriority="low"
306></script>
vendor: 1 bytes, line 306
306
307<script
308  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-form.js?v=146907120448681380161774530325"
309  type="module"
310  fetchpriority="low"
311></script>
vendor: 1 bytes, line 311
311
312<script
313  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/fly-to-cart.js?v=129971753673458693881774530329"
314  type="module"
315  fetchpriority="low"
316></script>
vendor: 1 bytes, line 316
316
317<script
318  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/accordion-custom.js?v=99000499017714805851774530323"
319  type="module"
320  fetchpriority="low"
321></script>
vendor: 1 bytes, line 321
321
322<script
323  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/disclosure-custom.js?v=168050880623268140331774530325"
324  type="module"
325  fetchpriority="low"
326></script>
vendor: 1 bytes, line 326
326
327<script
328  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/media.js?v=37825095869491791421774530330"
329  type="module"
330  fetchpriority="low"
331></script>
vendor: 1 bytes, line 331
331
332<script
333  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-price.js?v=117989390664188536191774530327"
334  type="module"
335  fetchpriority="low"
336></script>
vendor: 1 bytes, line 336
336
337<script
338  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-sku.js?v=121804655373531320511774530328"
339  type="module"
340  fetchpriority="low"
341></script>
vendor: 1 bytes, line 341
341
342<script
343  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-title-truncation.js?v=81744426891537421781774530329"
344  type="module"
345  fetchpriority="low"
346></script>
vendor: 1 bytes, line 346
346
347<script
348  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-inventory.js?v=16343734458933704981774530326"
349  type="module"
350  fetchpriority="low"
351></script>
vendor: 1 bytes, line 351
351
352<script
353  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/show-more.js?v=94563802205717136101774530324"
354  type="module"
355  fetchpriority="low"
356></script>
vendor: 1 bytes, line 356
356
357<script
358  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/slideshow.js?v=697393657165964831774530325"
359  type="module"
360  fetchpriority="low"
361></script>
vendor: 1 bytes, line 361
361
362<script
363  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/layered-slideshow.js?v=30135417790894624731774530326"
364  type="module"
365  fetchpriority="low"
366></script>
vendor: 1 bytes, line 366
366
367<script
368  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/anchored-popover.js?v=95953304814728754461774530325"
369  type="module"
370  fetchpriority="low"
371></script>
vendor: 1 bytes, line 371
371
372<script
373  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/floating-panel.js?v=128677600744947036551774530328"
374  type="module"
375  fetchpriority="low"
376></script>
vendor: 1 bytes, line 376
376
377<script
378  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/video-background.js?v=25237992823806706551774530330"
379  type="module"
380  fetchpriority="low"
381></script>
vendor: 1 bytes, line 381
381
382<script
383  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/component-quantity-selector.js?v=67906657287482036641774530329"
384  type="module"
385  fetchpriority="low"
386></script>
vendor: 1 bytes, line 386
386
387<script
388  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/media-gallery.js?v=111441960308641931071774530329"
389  type="module"
390  fetchpriority="low"
391></script>
vendor: 1 bytes, line 391
391
392<script
393  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/rte-formatter.js?v=101420294193111439321774530328"
394  type="module"
395  fetchpriority="low"
396></script>
vendor: 1 bytes, line 396
396
397<script
398  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/volume-pricing.js?v=15442793518842484731774530325"
399  type="module"
400  fetchpriority="low"
401></script>
vendor: 1 bytes, line 401
401
402<script
403  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/price-per-item.js?v=144512917617120124431774530329"
404  type="module"
405  fetchpriority="low"
406></script>
vendor: 1 bytes, line 406
406
407<script
408  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/volume-pricing-info.js?v=94479640769665442661774530325"
409  type="module"
410  fetchpriority="low"
411></script>
411
412
413
414  
414<script
415    src="//www.tnbl.co.uk/cdn/shop/t/6/assets/localization.js?v=15585934801240115691774530328"
416    type="module"
417    fetchpriority="low"
418  ></script>
418
419
420
421
422
423
424  
424<script
425    src="//www.tnbl.co.uk/cdn/shop/t/6/assets/product-card-link.js?v=97122579314620396511774530330"
426    type="module"
427    fetchpriority="low"
428  ></script>
428
429
430
431<script
432  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/auto-close-details.js?v=58350291535404441581774530326"
433  defer="defer"
434></script>
434
435
436<script>
437  const Theme = {
438    translations: {
439      placeholder_image: `Placeholder image`,
440      added: `Added`,
441      recipient_form_fields_visible: `Recipient form fields are now visible`,
442      recipient_form_fields_hidden: `Recipient form fields are now hidden`,
443      recipient_form_error: `There was an error with the form submission`,
444      items_added_to_cart_one: `1 item added to cart`,
445      items_added_to_cart_other: `{{ count }} items added to cart`,
446      cart_error_quantity_too_high: `The quantity you entered is too high. Please enter a smaller amount.`,
447    },
448    routes: {
449      cart_add_url: '/cart/add.js',
450      cart_change_url: '/cart/change',
451      cart_update_url: '/cart/update',
452      cart_url: '/cart',
453      predictive_search_url: '/search/suggest',
454      search_url: '/search',
455    },
456    template: {
457      name: 'index',
458    },
459  };
460</script>
460
461<style data-shopify>
462@font-face {
463  font-family: "Mona Sans";
464  font-weight: 400;
465  font-style: normal;
466  font-display: swap;
467  src: url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_n4.cc3f184f0be0174773c72c5502453af88810902e.woff2") format("woff2"),
468       url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_n4.fa36f5da9700fad1da93752dd8c5592c2878aaec.woff") format("woff");
469}
470@font-face {
471  font-family: "Mona Sans";
472  font-weight: 700;
473  font-style: normal;
474  font-display: swap;
475  src: url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_n7.7a174deadcf23a8eb1f5b59b4449a81c215adf52.woff2") format("woff2"),
476       url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_n7.fa6a2ddc8ef9995151c1d6e9116360bce89c3e37.woff") format("woff");
477}
478@font-face {
479  font-family: "Mona Sans";
480  font-weight: 400;
481  font-style: italic;
482  font-display: swap;
483  src: url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_i4.8afe827b8e1249d54e8235898b9437caf25eb86d.woff2") format("woff2"),
484       url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_i4.f786ef97cfdb9bdf0574b567a4b4eb003f584167.woff") format("woff");
485}
486@font-face {
487  font-family: "Mona Sans";
488  font-weight: 700;
489  font-style: italic;
490  font-display: swap;
491  src: url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_i7.89aaf4e957e47c275eefdc2401ad05ae83998937.woff2") format("woff2"),
492       url("//www.tnbl.co.uk/cdn/fonts/mona_sans/monasans_i7.c3ddf121e9050e4a9b2cd9e66994f7aca1957aad.woff") format("woff");
493}
494@font-face {
495  font-family: "Playfair Display";
496  font-weight: 700;
497  font-style: normal;
498  font-display: swap;
499  src: url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_n7.592b3435e0fff3f50b26d410c73ae7ec893f6910.woff2") format("woff2"),
500       url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_n7.998b1417dec711058cce2abb61a0b8c59066498f.woff") format("woff");
501}
502@font-face {
503  font-family: "Playfair Display";
504  font-weight: 700;
505  font-style: italic;
506  font-display: swap;
507  src: url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_i7.ba833b400bcd9c858b439c75a4a7c6eddc4c7de0.woff2") format("woff2"),
508       url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_i7.4872c65919810cd2f622f4ba52cd2e9e595f11d5.woff") format("woff");
509}
510@font-face {
511  font-family: "Playfair Display";
512  font-weight: 600;
513  font-style: normal;
514  font-display: swap;
515  src: url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_n6.41e9dda2e7301ca861c0ec25a53c1bdf16b6624d.woff2") format("woff2"),
516       url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_n6.3fecbbfefcd2c3e39326078af5db97c0302e18b5.woff") format("woff");
517}
518@font-face {
519  font-family: "Playfair Display";
520  font-weight: 600;
521  font-style: italic;
522  font-display: swap;
523  src: url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_i6.e139889de066849bfa40e4922acb535e30fe59b4.woff2") format("woff2"),
524       url("//www.tnbl.co.uk/cdn/fonts/playfair_display/playfairdisplay_i6.241aa0a92d0a28d4bc4c79030f71570c08f31eeb.woff") format("woff");
525}
526
527
528  :root {
529    /* Page Layout */
530    --sidebar-width: 25rem;
531    --narrow-content-width: 36rem;
532    --normal-content-width: 42rem;
533    --wide-content-width: 46rem;
534    --narrow-page-width: 90rem;
535    --normal-page-width: 120rem;
536    --wide-page-width: 150rem;
537
538    /* Section Heights */
539    --section-height-small: 15rem;
540    --section-height-medium: 25rem;
541    --section-height-large: 35rem;
542
543    @media screen and (min-width: 40em) {
544      --section-height-small: 40svh;
545      --section-height-medium: 55svh;
546      --section-height-large: 70svh;
547    }
548
549    @media screen and (min-width: 60em) {
550      --section-height-small: 50svh;
551      --section-height-medium: 65svh;
552      --section-height-large: 80svh;
553    }
554
555    /* Letter spacing */
556    --letter-spacing-sm: 0.06em;
557    --letter-spacing-md: 0.13em;
558
559    /* Font families */
560    --font-body--family: "Mona Sans", sans-serif;
561    --font-body--style: normal;
562    --font-body--weight: 400;
563    --font-subheading--family: "New York", Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
564    --font-subheading--style: normal;
565    --font-subheading--weight: 400;
566    --font-heading--family: "Playfair Display", serif;
567    --font-heading--style: normal;
568    --font-heading--weight: 700;
569    --font-accent--family: "Playfair Display", serif;
570    --font-accent--style: normal;
571    --font-accent--weight: 600;
572
573    /* Margin sizes */
574    --font-h1--spacing: 0.25em;
575    --font-h2--spacing: 0.25em;
576    --font-h3--spacing: 0.25em;
577    --font-h4--spacing: 0.25em;
578    --font-h5--spacing: 0.25em;
579    --font-h6--spacing: 0.25em;
580    --font-paragraph--spacing: 0.5em;
581
582    /* Heading colors */
583    --font-h1--color: var(--color-foreground-heading);
584    --font-h2--color: var(--color-foreground-heading);
585    --font-h3--color: var(--color-foreground-heading);
586    --font-h4--color: var(--color-foreground-heading);
587    --font-h5--color: var(--color-foreground-heading);
588    --font-h6--color: var(--color-foreground-heading);
589
590    /** Z-Index / Layering */
591    --layer-section-background: -2;
592    --layer-lowest: -1;
593    --layer-base: 0;
594    --layer-flat: 1;
595    --layer-raised: 2;
596    --layer-heightened: 4;
597    --layer-sticky: 8;
598    --layer-window-overlay: 10;
599    --layer-header-menu: 12;
600    --layer-overlay: 16;
601    --layer-menu-drawer: 18;
602    --layer-temporary: 20;
603
604    /* Max-width / Measure */
605    --max-width--body-normal: 32.5em;
606    --max-width--body-narrow: 22.75em;
607
608    --max-width--heading-normal: 32.5em;
609    --max-width--heading-narrow: 19.5em;
610
611    --max-width--display-normal: 13em;
612    --max-width--display-narrow: 9.75em;
613    --max-width--display-tight: 3.25em;
614
615    /* Letter-spacing / Tracking */
616    --letter-spacing--display-tight: -0.03em;
617    --letter-spacing--display-normal: 0em;
618    --letter-spacing--display-loose: 0.03em;
619
620    --letter-spacing--heading-tight: -0.03em;
621    --letter-spacing--heading-normal: 0em;
622    --letter-spacing--heading-loose: 0.03em;
623
624    --letter-spacing--body-tight: -0.03em;
625    --letter-spacing--body-normal: 0em;
626    --letter-spacing--body-loose: 0.03em;
627
628    /* Line height / Leading */
629    --line-height: 1;
630
631    --line-height--display-tight: 1;
632    --line-height--display-normal: 1.1;
633    --line-height--display-loose: 1.2;
634
635    --line-height--heading-tight: 1.15;
636    --line-height--heading-normal: 1.25;
637    --line-height--heading-loose: 1.35;
638
639    --line-height--body-tight: 1.2;
640    --line-height--body-normal: 1.4;
641    --line-height--body-loose: 1.6;
642
643    /* Typography presets */
644    --font-size--paragraph: 0.875rem;--font-size--h1: clamp(3.0rem, 5.6vw, 3.5rem);--font-size--h2: clamp(2.25rem, 4.8vw, 3.0rem);--font-size--h3: 2.0rem;--font-size--h4: 1.25rem;--font-size--h5: 0.875rem;--font-size--h6: 0.875rem;--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-loose);--font-h1--weight: var(--font-heading--weight);--font-h1--letter-spacing: var(--letter-spacing--heading-normal);--font-h1--size: var(--font-size--h1);--font-h1--family: var(--font-heading--family);--font-h1--style: var(--font-heading--style);--font-h1--case: none;--font-h1--line-height: var(--line-height--display-tight);--font-h2--weight: var(--font-heading--weight);--font-h2--letter-spacing: var(--letter-spacing--heading-normal);--font-h2--size: var(--font-size--h2);--font-h2--family: var(--font-heading--family);--font-h2--style: var(--font-heading--style);--font-h2--case: none;--font-h2--line-height: var(--line-height--display-tight);--font-h3--weight: var(--font-heading--weight);--font-h3--letter-spacing: var(--letter-spacing--heading-normal);--font-h3--size: var(--font-size--h3);--font-h3--family: var(--font-heading--family);--font-h3--style: var(--font-heading--style);--font-h3--case: none;--font-h3--line-height: var(--line-height--display-normal);--font-h4--weight: var(--font-heading--weight);--font-h4--letter-spacing: var(--letter-spacing--heading-normal);--font-h4--size: var(--font-size--h4);--font-h4--family: var(--font-heading--family);--font-h4--style: var(--font-heading--style);--font-h4--case: none;--font-h4--line-height: var(--line-height--display-tight);--font-h5--weight: var(--font-subheading--weight);--font-h5--letter-spacing: var(--letter-spacing--heading-normal);--font-h5--size: var(--font-size--h5);--font-h5--family: var(--font-subheading--family);--font-h5--style: var(--font-subheading--style);--font-h5--case: none;--font-h5--line-height: var(--line-height--display-loose);--font-h6--weight: var(--font-body--weight);--font-h6--letter-spacing: var(--letter-spacing--heading-normal);--font-h6--size: var(--font-size--h6);--font-h6--family: var(--font-body--family);--font-h6--style: var(--font-body--style);--font-h6--case: none;--font-h6--line-height: var(--line-height--display-loose);
645
646    /* Hardcoded font sizes */
647    --font-size--3xs: 0.625rem;
648    --font-size--2xs: 0.75rem;
649    --font-size--xs: 0.8125rem;
650    --font-size--sm: 0.875rem;
651    --font-size--md: 1rem;
652    --font-size--lg: 1.125rem;
653    --font-size--xl: 1.25rem;
654    --font-size--2xl: 1.5rem;
655    --font-size--3xl: 2rem;
656    --font-size--4xl: 2.5rem;
657    --font-size--5xl: 3rem;
658    --font-size--6xl: 3.5rem;
659
660    /* Menu font sizes */
661    --menu-font-sm--size: 0.875rem;
662    --menu-font-sm--line-height: calc(1.1 + 0.5 * min(16 / 14));
663    --menu-font-md--size: 1rem;
664    --menu-font-md--line-height: calc(1.1 + 0.5 * min(16 / 16));
665    --menu-font-lg--size: 1.125rem;
666    --menu-font-lg--line-height: calc(1.1 + 0.5 * min(16 / 18));
667    --menu-font-xl--size: 1.25rem;
668    --menu-font-xl--line-height: calc(1.1 + 0.5 * min(16 / 20));
669    --menu-font-2xl--size: 1.75rem;
670    --menu-font-2xl--line-height: calc(1.1 + 0.5 * min(16 / 28));
671
672    /* Colors */
673    --color-error: #8B0000;
674    --color-success: #006400;
675    --color-white: #FFFFFF;
676    --color-white-rgb: 255 255 255;
677    --color-black: #000000;
678    --color-instock: #3ED660;
679    --color-lowstock: #EE9441;
680    --color-outofstock: #C8C8C8;
681
682    /* Opacity */
683    --opacity-5: 0.05;
684    --opacity-8: 0.08;
685    --opacity-10: 0.1;
686    --opacity-15: 0.15;
687    --opacity-20: 0.2;
688    --opacity-25: 0.25;
689    --opacity-30: 0.3;
690    --opacity-40: 0.4;
691    --opacity-50: 0.5;
692    --opacity-60: 0.6;
693    --opacity-70: 0.7;
694    --opacity-80: 0.8;
695    --opacity-85: 0.85;
696    --opacity-90: 0.9;
697    --opacity-subdued-text: var(--opacity-70);
698
699    --shadow-button: 0 2px 3px rgb(0 0 0 / 20%);
700    --gradient-image-overlay: linear-gradient(to top, rgb(0 0 0 / 0.5), transparent);
701
702    /* Spacing */
703    --margin-3xs: 0.125rem;
704    --margin-2xs: 0.3rem;
705    --margin-xs: 0.5rem;
706    --margin-sm: 0.7rem;
707    --margin-md: 0.8rem;
708    --margin-lg: 1rem;
709    --margin-xl: 1.25rem;
710    --margin-2xl: 1.5rem;
711    --margin-3xl: 1.75rem;
712    --margin-4xl: 2rem;
713    --margin-5xl: 3rem;
714    --margin-6xl: 5rem;
715
716    --scroll-margin: 50px;
717
718    --padding-3xs: 0.125rem;
719    --padding-2xs: 0.25rem;
720    --padding-xs: 0.5rem;
721    --padding-sm: 0.7rem;
722    --padding-md: 0.8rem;
723    --padding-lg: 1rem;
724    --padding-xl: 1.25rem;
725    --padding-2xl: 1.5rem;
726    --padding-3xl: 1.75rem;
727    --padding-4xl: 2rem;
728    --padding-5xl: 3rem;
729    --padding-6xl: 4rem;
730
731    --gap-3xs: 0.125rem;
732    --gap-2xs: 0.3rem;
733    --gap-xs: 0.5rem;
734    --gap-sm: 0.7rem;
735    --gap-md: 0.9rem;
736    --gap-lg: 1rem;
737    --gap-xl: 1.25rem;
738    --gap-2xl: 2rem;
739    --gap-3xl: 3rem;
740
741    --spacing-scale-sm: 0.6;
742    --spacing-scale-md: 0.7;
743    --spacing-scale-default: 1.0;
744
745    /* Checkout buttons gap */
746    --checkout-button-gap: 10px;
747
748    /* Borders */
749    --style-border-width: 1px;
750    --style-border-radius-xs: 0.2rem;
751    --style-border-radius-sm: 0.6rem;
752    --style-border-radius-md: 0.8rem;
753    --style-border-radius-50: 50%;
754    --style-border-radius-lg: 1rem;
755    --style-border-radius-pills: 40px;
756    --style-border-radius-inputs: 12px;
757    --style-border-radius-buttons-primary: 100px;
758    --style-border-radius-buttons-secondary: 100px;
759    --style-border-width-primary: 2px;
760    --style-border-width-secondary: 2px;
761    --style-border-width-inputs: 1px;
762    --style-border-radius-popover: 14px;
763    --style-border-popover: 1px none rgb(var(--color-border-rgb) / 50%);
764    --style-border-drawer: 1px none rgb(var(--color-border-rgb) / 50%);
765    --style-border-swatch-opacity: 10%;
766    --style-border-swatch-width: 1px;
767    --style-border-swatch-style: solid;
768
769    /* Animation */
770    --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
771    --ease-out-quad: cubic-bezier(0.32, 0.72, 0, 1);
772    --animation-speed-fast: 0.0625s;
773    --animation-speed: 0.125s;
774    --animation-speed-slow: 0.2s;
775    --animation-speed-medium: 0.15s;
776    --animation-easing: ease-in-out;
777    --animation-slideshow-easing: cubic-bezier(0.4, 0, 0.2, 1);
778    --drawer-animation-speed: 0.2s;
779    --animation-values-slow: var(--animation-speed-slow) var(--animation-easing);
780    --animation-values: var(--animation-speed) var(--animation-easing);
781    --animation-values-fast: var(--animation-speed-fast) var(--animation-easing);
782    --animation-values-allow-discrete: var(--animation-speed) var(--animation-easing) allow-discrete;
783    --animation-timing-hover: cubic-bezier(0.25, 0.46, 0.45, 0.94);
784    --animation-timing-active: cubic-bezier(0.5, 0, 0.75, 0);
785    --animation-timing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
786    --animation-timing-default: cubic-bezier(0, 0, 0.2, 1);
787    --animation-timing-fade-in: cubic-bezier(0.16, 1, 0.3, 1);
788    --animation-timing-fade-out: cubic-bezier(0.4, 0, 0.2, 1);
789
790    /* View transitions */
791    /* View transition old */
792    --view-transition-old-main-content: var(--animation-speed) var(--animation-easing) both fadeOut;
793
794    /* View transition new */
795    --view-transition-new-main-content: var(--animation-speed) var(--animation-easing) both fadeIn, var(--animation-speed) var(--animation-easing) both slideInTopViewTransition;
796
797    /* Focus */
798    --focus-outline-width: 0.09375rem;
799    --focus-outline-offset: 0.2em;
800
801    /* Badges */
802    --badge-blob-padding-block: 1px;
803    --badge-blob-padding-inline: 12px 8px;
804    --badge-rectangle-padding-block: 1px;
805    --badge-rectangle-padding-inline: 6px;
806    @media screen and (min-width: 750px) {
807      --badge-blob-padding-block: 4px;
808      --badge-blob-padding-inline: 16px 12px;
809      --badge-rectangle-padding-block: 4px;
810      --badge-rectangle-padding-inline: 10px;
811    }
812
813    /* Icons */
814    --icon-size-2xs: 0.6rem;
815    --icon-size-xs: 0.85rem;
816    --icon-size-sm: 1.25rem;
817    --icon-size-md: 1.375rem;
818    --icon-size-lg: 1.5rem;
819    --icon-stroke-width: 1.5px;
820
821    /* Input */
822    --input-email-min-width: 200px;
823    --input-search-max-width: 650px;
824    --input-padding-y: 0.8rem;
825    --input-padding-x: 0.8rem;
826    --input-padding: var(--input-padding-y) var(--input-padding-x);
827    --input-box-shadow-width: var(--style-border-width-inputs);
828    --input-box-shadow: 0 0 0 var(--input-box-shadow-width) var(--color-input-border);
829    --input-box-shadow-focus: 0 0 0 calc(var(--input-box-shadow-width) + 0.5px) var(--color-input-border);
830    --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
831    --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
832    --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
833    --input-textarea-min-height: 55px;
834
835    /* Button size */
836    --button-size-sm: 30px;
837    --button-size-md: 36px;
838    --button-size: var(--minimum-touch-target);
839    --button-padding-inline: 24px;
840    --button-padding-block: 16px;
841
842    /* Button font-family */
843    --button-font-family-primary: var(--font-body--family);
844    --button-font-family-secondary: var(--font-body--family);
845
846    /* Button text case */
847    --button-text-case: ;
848    --button-text-case-primary: default;
849    --button-text-case-secondary: default;
850
851    /* Borders */
852    --border-color: rgb(var(--color-border-rgb) / var(--opacity-50));
853    --border-width-sm: 1px;
854    --border-width-md: 2px;
855    --border-width-lg: 5px;
856    --border-radius-sm: 0.25rem;
857
858    /* Drawers */
859    --drawer-inline-padding: 25px;
860    --drawer-menu-inline-padding: 2.5rem;
861    --drawer-header-block-padding: 20px;
862    --drawer-content-block-padding: 10px;
863    --drawer-header-desktop-top: 0rem;
864    --drawer-padding: calc(var(--padding-sm) + 7px);
865    --drawer-height: 100dvh;
866    --drawer-width: 95vw;
867    --drawer-max-width: 500px;
868
869    /* Variant Picker Swatches */
870    --variant-picker-swatch-width-unitless: 34;
871    --variant-picker-swatch-height-unitless: 34;
872    --variant-picker-swatch-width: 34px;
873    --variant-picker-swatch-height: 34px;
874    --variant-picker-swatch-radius: 32px;
875    --variant-picker-border-width: 1px;
876    --variant-picker-border-style: solid;
877    --variant-picker-border-opacity: 10%;
878
879    /* Variant Picker Buttons */
880    --variant-picker-button-radius: 14px;
881    --variant-picker-button-border-width: 1px;
882
883    /* Slideshow */
884    --slideshow-controls-size: 3.5rem;
885    --slideshow-controls-icon: 2rem;
886    --peek-next-slide-size: 3rem;
887
888    /* Utilities */
889    --backdrop-opacity: 0.15;
890    --backdrop-color-rgb: var(--color-shadow-rgb);
891    --minimum-touch-target: 44px;
892    --disabled-opacity: 0.5;
893    --skeleton-opacity: 0.025;
894
895    /* Shapes */
896    --shape--circle: circle(50% at center);
897    --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%);
898    --shape--diamond: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
899    --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
899% 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%);
900
901    /* Buy buttons */
902    --height-buy-buttons: calc(var(--padding-lg) * 2 + var(--icon-size-sm));
903
904    /* Card image width and height variables */
905    --card-width-small: 10rem;
906
907    --height-small: 10rem;
908    --height-medium: 11.5rem;
909    --height-large: 13rem;
910    --height-full: 100vh;
911
912    @media screen and (min-width: 750px) {
913      --height-small: 17.5rem;
914      --height-medium: 21.25rem;
915      --height-large: 25rem;
916    }
917
918    /* Modal */
919    --modal-max-height: 65dvh;
920
921    /* Card styles for search */
922    --card-bg-hover: rgb(var(--color-foreground-rgb) / var(--opacity-5));
923    --card-border-hover: rgb(var(--color-foreground-rgb) / var(--opacity-30));
924    --card-border-focus: rgb(var(--color-foreground-rgb) / var(--opacity-10));
925
926    /* Cart */
927    --cart-primary-font-family: var(--font-body--family);
928    --cart-primary-font-style: var(--font-body--style);
929    --cart-primary-font-weight: var(--font-body--weight);
930    --cart-secondary-font-family: var(--font-secondary--family);
931    --cart-secondary-font-style: var(--font-secondary--style);
932    --cart-secondary-font-weight: var(--font-secondary--weight);
933  }
934</style>
935<style data-shopify>
936  
937    
938      :root,
939    
940    
941    
942    .color-scheme-1 {
943        --color-background: rgb(255 255 255 / 1.0);
944        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
945        --color-background-rgb: 255 255 255;
946        --opacity-5-15: 0.05;
947        --opacity-10-25: 0.1;
948        --opacity-35-55: 0.35;
949        --opacity-40-60: 0.4;
950        --opacity-30-60: 0.3;
951        --color-foreground: rgb(17 17 17 / 1.0);
952        --color-foreground-rgb: 17 17 17;
953        --color-foreground-heading: rgb(17 17 17 / 1.0);
954        --color-foreground-heading-rgb: 17 17 17;
955        --color-primary: rgb(17 17 17 / 1.0);
956        --color-primary-rgb: 17 17 17;
957        --color-primary-hover: rgb(0 0 0 / 1.0);
958        --color-primary-hover-rgb: 0 0 0;
959        --color-border: rgb(217 217 217 / 1.0);
960        --color-border-rgb: 217 217 217;
961        --color-shadow: rgb(0 0 0 / 1.0);
962        --color-shadow-rgb: 0 0 0;
963        --color-primary-button-text: rgb(255 255 255 / 1.0);
964        --color-primary-button-background: rgb(172 150 105 / 1.0);
965        --color-primary-button-border: rgb(255 255 255 / 1.0);
966        --color-primary-button-hover-text: rgb(17 17 17 / 1.0);
967        --color-primary-button-hover-background: rgb(255 255 255 / 1.0);
968        --color-primary-button-hover-border: rgb(172 150 105 / 1.0);
969        --color-secondary-button-text: rgb(0 0 0 / 1.0);
970        --color-secondary-button-background: rgb(0 0 0 / 0.0);
971        --color-secondary-button-border: rgb(0 0 0 / 1.0);
972        --color-secondary-button-hover-text: rgb(51 51 51 / 1.0);
973        --color-secondary-button-hover-background: rgb(250 250 250 / 1.0);
974        --color-secondary-button-hover-border: rgb(51 51 51 / 1.0);
975        --color-input-background: rgb(255 255 255 / 0.78);
976        --color-input-text: rgb(51 51 51 / 1.0);
977        --color-input-text-rgb: 51 51 51;
978        --color-input-border: rgb(223 223 223 / 1.0);
979        --color-input-hover-background: rgb(0 0 0 / 0.01);
980        --color-variant-background: rgb(255 255 255 / 1.0);
981        --color-variant-border: rgb(0 0 0 / 0.13);
982        --color-variant-text: rgb(0 0 0 / 1.0);
983        --color-variant-text-rgb: 0 0 0;
984        --color-variant-hover-background: rgb(245 245 245 / 1.0);
985        --color-variant-hover-text: rgb(0 0 0 / 1.0);
986        --color-variant-hover-border: rgb(230 230 230 / 1.0);
987        --color-selected-variant-background: rgb(0 0 0 / 1.0);
988        --color-selected-variant-border: rgb(0 0 0 / 1.0);
989        --color-selected-variant-text: rgb(255 255 255 / 1.0);
990        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
991        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
992        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
993
994        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
995        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
996        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
997        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
998        --font-h1--color: var(--color-foreground-heading);
999        --font-h2--color: var(--color-foreground-heading);
1000        --font-h3--color: var(--color-foreground-heading);
1001        --font-h4--color: var(--color-foreground-heading);
1002        --font-h5--color: var(--color-foreground-heading);
1003        --font-h6--color: var(--color-foreground-heading);
1004
1005        /* Shadows */
1006        
1007          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1008        
1009        
1010          --shadow-blur: 20px;
1011          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1012        
1013      }
1014  
1015    
1016    
1017    
1018    .color-scheme-2 {
1019        --color-background: rgb(255 240 230 / 1.0);
1020        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1021        --color-background-rgb: 255 240 230;
1022        --opacity-5-15: 0.05;
1023        --opacity-10-25: 0.1;
1024        --opacity-35-55: 0.35;
1025        --opacity-40-60: 0.4;
1026        --opacity-30-60: 0.3;
1027        --color-foreground: rgb(255 255 255 / 1.0);
1028        --color-foreground-rgb: 255 255 255;
1029        --color-foreground-heading: rgb(255 255 255 / 1.0);
1030        --color-foreground-heading-rgb: 255 255 255;
1031        --color-primary: rgb(0 0 0 / 0.81);
1032        --color-primary-rgb: 0 0 0;
1033        --color-primary-hover: rgb(255 255 255 / 1.0);
1034        --color-primary-hover-rgb: 255 255 255;
1035        --color-border: rgb(223 223 223 / 1.0);
1036        --color-border-rgb: 223 223 223;
1037        --color-shadow: rgb(0 0 0 / 1.0);
1038        --color-shadow-rgb: 0 0 0;
1039        --color-primary-button-text: rgb(255 255 255 / 1.0);
1040        --color-primary-button-background: rgb(0 0 0 / 1.0);
1041        --color-primary-button-border: rgb(0 0 0 / 1.0);
1042        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1043        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
1044        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
1045        --color-secondary-button-text: rgb(0 0 0 / 1.0);
1046        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1047        --color-secondary-button-border: rgb(0 0 0 / 1.0);
1048        --color-secondary-button-hover-text: rgb(0 0 0 / 1.0);
1049        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
1050        --color-secondary-button-hover-border: rgb(51 51 51 / 0.73);
1051        --color-input-background: rgb(0 0 0 / 0.0);
1052        --color-input-text: rgb(0 0 0 / 0.53);
1053        --color-input-text-rgb: 0 0 0;
1054        --color-input-border: rgb(0 0 0 / 0.13);
1055        --color-input-hover-background: rgb(255 255 255 / 0.36);
1056        --color-variant-background: rgb(255 255 255 / 1.0);
1057        --color-variant-border: rgb(230 230 230 / 1.0);
1058        --color-variant-text: rgb(0 0 0 / 1.0);
1059        --color-variant-text-rgb: 0 0 0;
1060        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1061        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1062        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1063        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1064        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1065        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1066        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1067        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1068        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1069
1070        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1071        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1072        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1073        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1074        --font-h1--color: var(--color-foreground-heading);
1075        --font-h2--color: var(--color-foreground-heading);
1076        --font-h3--color: var(--color-foreground-heading);
1077        --font-h4--color: var(--color-foreground-heading);
1078        --font-h5--color: var(--color-foreground-heading);
1079        --font-h6--color: var(--color-foreground-heading);
1080
1081        /* Shadows */
1082        
1083          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1084        
1085        
1086          --shadow-blur: 20px;
1087          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1088        
1089      }
1090  
1091    
1092    
1093    
1094    .color-scheme-3 {
1095        --color-background: rgb(255 237 247 / 1.0);
1096        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1097        --color-background-rgb: 255 237 247;
1098        --opacity-5-15: 0.05;
1099        --opacity-10-25: 0.1;
1100        --opacity-35-55: 0.35;
1101        --opacity-40-60: 0.4;
1102        --opacity-30-60: 0.3;
1103        --color-foreground: rgb(17 17 17 / 1.0);
1104        --color-foreground-rgb: 17 17 17;
1105        --color-foreground-heading: rgb(17 17 17 / 1.0);
1106        --color-foreground-heading-rgb: 17 17 17;
1107        --color-primary: rgb(0 0 0 / 0.81);
1108        --color-primary-rgb: 0 0 0;
1109        --color-primary-hover: rgb(0 0 0 / 1.0);
1110        --color-primary-hover-rgb: 0 0 0;
1111        --color-border: rgb(17 17 17 / 1.0);
1112        --color-border-rgb: 17 17 17;
1113        --color-shadow: rgb(0 0 0 / 1.0);
1114        --color-shadow-rgb: 0 0 0;
1115        --color-primary-button-text: rgb(255 255 255 / 1.0);
1116        --color-primary-button-background: rgb(0 0 0 / 1.0);
1117        --color-primary-button-border: rgb(0 0 0 / 1.0);
1118        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1119        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
1120        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
1121        --color-secondary-button-text: rgb(0 0 0 / 1.0);
1122        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1123        --color-secondary-button-border: rgb(0 0 0 / 1.0);
1124        --color-secondary-button-hover-text: rgb(0 0 0 / 0.81);
1125        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
1126        --color-secondary-button-hover-border: rgb(0 0 0 / 0.81);
1127        --color-input-background: rgb(0 0 0 / 0.0);
1128        --color-input-text: rgb(0 0 0 / 0.81);
1129        --color-input-text-rgb: 0 0 0;
1130        --color-input-border: rgb(0 0 0 / 0.81);
1131        --color-input-hover-background: rgb(255 255 255 / 0.36);
1132        --color-variant-background: rgb(255 255 255 / 1.0);
1133        --color-variant-border: rgb(230 230 230 / 1.0);
1134        --color-variant-text: rgb(0 0 0 / 1.0);
1135        --color-variant-text-rgb: 0 0 0;
1136        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1137        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1138        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1139        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1140        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1141        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1142        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1143        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1144        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1145
1146        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1147        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1148        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1149        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1150        --font-h1--color: var(--color-foreground-heading);
1151        --font-h2--color: var(--color-foreground-heading);
1152        --font-h3--color: var(--color-foreground-heading);
1153        --font-h4--color: var(--color-foreground-heading);
1154        --font-h5--color: var(--color-foreground-heading);
1155        --font-h6--color: var(--color-foreground-heading);
1156
1157        /* Shadows */
1158        
1159          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1160        
1161        
1162          --shadow-blur: 20px;
1163          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1164        
1165      }
1166  
1167    
1168    
1169    
1170    .color-scheme-4 {
1171        --color-background: rgb(255 255 255 / 1.0);
1172        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1173        --color-background-rgb: 255 255 255;
1174        --opacity-5-15: 0.05;
1175        --opacity-10-25: 0.1;
1176        --opacity-35-55: 0.35;
1177        --opacity-40-60: 0.4;
1178        --opacity-30-60: 0.3;
1179        --color-foreground: rgb(0 0 0 / 0.81);
1180        --color-foreground-rgb: 0 0 0;
1181        --color-foreground-heading: rgb(0 0 0 / 1.0);
1182        --color-foreground-heading-rgb: 0 0 0;
1183        --color-primary: rgb(0 0 0 / 0.81);
1184        --color-primary-rgb: 0 0 0;
1185        --color-primary-hover: rgb(0 0 0 / 1.0);
1186        --color-primary-hover-rgb: 0 0 0;
1187        --color-border: rgb(255 255 255 / 1.0);
1188        --color-border-rgb: 255 255 255;
1189        --color-shadow: rgb(0 0 0 / 1.0);
1190        --color-shadow-rgb: 0 0 0;
1191        --color-primary-button-text: rgb(255 255 255 / 1.0);
1192        --color-primary-button-background: rgb(0 0 0 / 1.0);
1193        --color-primary-button-border: rgb(29 54 134 / 1.0);
1194        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1195        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
1196        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
1197        --color-secondary-button-text: rgb(0 0 0 / 1.0);
1198        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1199        --color-secondary-button-border: rgb(0 0 0 / 1.0);
1200        --color-secondary-button-hover-text: rgb(0 0 0 / 0.81);
1201        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
1202        --color-secondary-button-hover-border: rgb(0 0 0 / 0.81);
1203        --color-input-background: rgb(0 0 0 / 0.0);
1204        --color-input-text: rgb(0 0 0 / 0.81);
1205        --color-input-text-rgb: 0 0 0;
1206        --color-input-border: rgb(0 0 0 / 0.81);
1207        --color-input-hover-background: rgb(255 255 255 / 0.36);
1208        --color-variant-background: rgb(255 255 255 / 1.0);
1209        --color-variant-border: rgb(230 230 230 / 1.0);
1210        --color-variant-text: rgb(0 0 0 / 1.0);
1211        --color-variant-text-rgb: 0 0 0;
1212        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1213        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1214        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1215        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1216        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1217        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1218        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1219        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1220        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1221
1222        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1223        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1224        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1225        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1226        --font-h1--color: var(--color-foreground-heading);
1227        --font-h2--color: var(--color-foreground-heading);
1228        --font-h3--color: var(--color-foreground-heading);
1229        --font-h4--color: var(--color-foreground-heading);
1230        --font-h5--color: var(--color-foreground-heading);
1231        --font-h6--color: var(--color-foreground-heading);
1232
1233        /* Shadows */
1234        
1235          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1236        
1237        
1238          --shadow-blur: 20px;
1239          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1240        
1241      }
1242  
1243    
1244    
1245    
1246    .color-scheme-5 {
1247        --color-background: rgb(51 51 51 / 1.0);
1248        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1249        --color-background-rgb: 51 51 51;
1250        --opacity-5-15: 0.15;
1251        --opacity-10-25: 0.25;
1252        --opacity-35-55: 0.55;
1253        --opacity-40-60: 0.6;
1254        --opacity-30-60: 0.6;
1255        --color-foreground: rgb(255 255 255 / 1.0);
1256        --color-foreground-rgb: 255 255 255;
1257        --color-foreground-heading: rgb(255 255 255 / 1.0);
1258        --color-foreground-heading-rgb: 255 255 255;
1259        --color-primary: rgb(255 255 255 / 1.0);
1260        --color-primary-rgb: 255 255 255;
1261        --color-primary-hover: rgb(255 255 255 / 0.69);
1262        --color-primary-hover-rgb: 255 255 255;
1263        --color-border: rgb(255 255 255 / 0.69);
1264        --color-border-rgb: 255 255 255;
1265        --color-shadow: rgb(0 0 0 / 1.0);
1266        --color-shadow-rgb: 0 0 0;
1267        --color-primary-button-text: rgb(0 0 0 / 1.0);
1268        --color-primary-button-background: rgb(255 255 255 / 1.0);
1269        --color-primary-button-border: rgb(255 255 255 / 1.0);
1270        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1271        --color-primary-button-hover-background: rgb(0 0 0 / 1.0);
1272        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
1273        --color-secondary-button-text: rgb(255 255 255 / 1.0);
1274        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1275        --color-secondary-button-border: rgb(255 255 255 / 0.69);
1276        --color-secondary-button-hover-text: rgb(255 255 255 / 0.93);
1277        --color-secondary-button-hover-background: rgb(255 255 255 / 0.04);
1278        --color-secondary-button-hover-border: rgb(255 255 255 / 0.69);
1279        --color-input-background: rgb(51 51 51 / 1.0);
1280        --color-input-text: rgb(255 255 255 / 0.93);
1281        --color-input-text-rgb: 255 255 255;
1282        --color-input-border: rgb(255 255 255 / 0.69);
1283        --color-input-hover-background: rgb(255 255 255 / 0.04);
1284        --color-variant-background: rgb(255 255 255 / 1.0);
1285        --color-variant-border: rgb(230 230 230 / 1.0);
1286        --color-variant-text: rgb(0 0 0 / 1.0);
1287        --color-variant-text-rgb: 0 0 0;
1288        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1289        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1290        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1291        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1292        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1293        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1294        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1295        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1296        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1297
1298        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1299        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1300        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1301        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1302        --font-h1--color: var(--color-foreground-heading);
1303        --font-h2--color: var(--color-foreground-heading);
1304        --font-h3--color: var(--color-foreground-heading);
1305        --font-h4--color: var(--color-foreground-heading);
1306        --font-h5--color: var(--color-foreground-heading);
1307        --font-h6--color: var(--color-foreground-heading);
1308
1309        /* Shadows */
1310        
1311          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1312        
1313        
1314          --shadow-blur: 20px;
1315          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1316        
1317      }
1318  
1319    
1320    
1321    
1322    .color-scheme-6 {
1323        --color-background: rgb(0 0 0 / 0.0);
1324        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1325        --color-background-rgb: 0 0 0;
1326        --opacity-5-15: 0.15;
1327        --opacity-10-25: 0.25;
1328        --opacity-35-55: 0.55;
1329        --opacity-40-60: 0.6;
1330        --opacity-30-60: 0.6;
1331        --color-foreground: rgb(255 255 255 / 1.0);
1332        --color-foreground-rgb: 255 255 255;
1333        --color-foreground-heading: rgb(255 255 255 / 1.0);
1334        --color-foreground-heading-rgb: 255 255 255;
1335        --color-primary: rgb(255 255 255 / 1.0);
1336        --color-primary-rgb: 255 255 255;
1337        --color-primary-hover: rgb(255 255 255 / 0.69);
1338        --color-primary-hover-rgb: 255 255 255;
1339        --color-border: rgb(230 230 230 / 1.0);
1340        --color-border-rgb: 230 230 230;
1341        --color-shadow: rgb(0 0 0 / 1.0);
1342        --color-shadow-rgb: 0 0 0;
1343        --color-primary-button-text: rgb(255 255 255 / 1.0);
1344        --color-primary-button-background: rgb(172 150 105 / 1.0);
1345        --color-primary-button-border: rgb(255 255 255 / 1.0);
1346        --color-primary-button-hover-text: rgb(17 17 17 / 1.0);
1347        --color-primary-button-hover-background: rgb(255 255 255 / 1.0);
1348        --color-primary-button-hover-border: rgb(172 150 105 / 1.0);
1349    
1349    --color-secondary-button-text: rgb(255 255 255 / 1.0);
1350        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1351        --color-secondary-button-border: rgb(255 255 255 / 1.0);
1352        --color-secondary-button-hover-text: rgb(255 255 255 / 1.0);
1353        --color-secondary-button-hover-background: rgb(255 255 255 / 0.08);
1354        --color-secondary-button-hover-border: rgb(255 255 255 / 1.0);
1355        --color-input-background: rgb(255 255 255 / 1.0);
1356        --color-input-text: rgb(0 0 0 / 0.53);
1357        --color-input-text-rgb: 0 0 0;
1358        --color-input-border: rgb(0 0 0 / 0.13);
1359        --color-input-hover-background: rgb(250 250 250 / 1.0);
1360        --color-variant-background: rgb(255 255 255 / 1.0);
1361        --color-variant-border: rgb(230 230 230 / 1.0);
1362        --color-variant-text: rgb(0 0 0 / 1.0);
1363        --color-variant-text-rgb: 0 0 0;
1364        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1365        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1366        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1367        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1368        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1369        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1370        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1371        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1372        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1373
1374        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1375        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1376        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1377        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1378        --font-h1--color: var(--color-foreground-heading);
1379        --font-h2--color: var(--color-foreground-heading);
1380        --font-h3--color: var(--color-foreground-heading);
1381        --font-h4--color: var(--color-foreground-heading);
1382        --font-h5--color: var(--color-foreground-heading);
1383        --font-h6--color: var(--color-foreground-heading);
1384
1385        /* Shadows */
1386        
1387          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1388        
1389        
1390          --shadow-blur: 20px;
1391          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1392        
1393      }
1394  
1395    
1396    
1397    
1398    .color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 {
1399        --color-background: rgb(172 150 105 / 1.0);
1400        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1401        --color-background-rgb: 172 150 105;
1402        --opacity-5-15: 0.05;
1403        --opacity-10-25: 0.1;
1404        --opacity-35-55: 0.35;
1405        --opacity-40-60: 0.4;
1406        --opacity-30-60: 0.3;
1407        --color-foreground: rgb(255 255 255 / 1.0);
1408        --color-foreground-rgb: 255 255 255;
1409        --color-foreground-heading: rgb(255 255 255 / 1.0);
1410        --color-foreground-heading-rgb: 255 255 255;
1411        --color-primary: rgb(255 255 255 / 1.0);
1412        --color-primary-rgb: 255 255 255;
1413        --color-primary-hover: rgb(0 0 0 / 0.53);
1414        --color-primary-hover-rgb: 0 0 0;
1415        --color-border: rgb(255 255 255 / 1.0);
1416        --color-border-rgb: 255 255 255;
1417        --color-shadow: rgb(0 0 0 / 1.0);
1418        --color-shadow-rgb: 0 0 0;
1419        --color-primary-button-text: rgb(255 255 255 / 1.0);
1420        --color-primary-button-background: rgb(0 0 0 / 1.0);
1421        --color-primary-button-border: rgb(172 150 105 / 1.0);
1422        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1423        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
1424        --color-primary-button-hover-border: rgb(172 150 105 / 1.0);
1425        --color-secondary-button-text: rgb(0 0 0 / 1.0);
1426        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1427        --color-secondary-button-border: rgb(0 0 0 / 1.0);
1428        --color-secondary-button-hover-text: rgb(51 51 51 / 1.0);
1429        --color-secondary-button-hover-background: rgb(250 250 250 / 1.0);
1430        --color-secondary-button-hover-border: rgb(51 51 51 / 1.0);
1431        --color-input-background: rgb(255 255 255 / 1.0);
1432        --color-input-text: rgb(0 0 0 / 0.53);
1433        --color-input-text-rgb: 0 0 0;
1434        --color-input-border: rgb(0 0 0 / 0.13);
1435        --color-input-hover-background: rgb(250 250 250 / 1.0);
1436        --color-variant-background: rgb(255 255 255 / 1.0);
1437        --color-variant-border: rgb(230 230 230 / 1.0);
1438        --color-variant-text: rgb(0 0 0 / 1.0);
1439        --color-variant-text-rgb: 0 0 0;
1440        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1441        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1442        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1443        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1444        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1445        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1446        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1447        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1448        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1449
1450        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1451        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1452        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1453        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1454        --font-h1--color: var(--color-foreground-heading);
1455        --font-h2--color: var(--color-foreground-heading);
1456        --font-h3--color: var(--color-foreground-heading);
1457        --font-h4--color: var(--color-foreground-heading);
1458        --font-h5--color: var(--color-foreground-heading);
1459        --font-h6--color: var(--color-foreground-heading);
1460
1461        /* Shadows */
1462        
1463          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1464        
1465        
1466          --shadow-blur: 20px;
1467          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1468        
1469      }
1470  
1471
1472  body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-6, .color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 {
1473    color: var(--color-foreground);
1474    background-color: var(--color-background);
1475  }
1476</style>
1477
1478
1479    
1479<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
1479<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/98633711962/digital_wallets/dialog">
1480<meta id="in-context-paypal-metadata" data-shop-id="98633711962" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="GBP">
1481<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
1481<script async="async" src="/checkouts/internal/preloads.js?locale=en-GB&default_configuration_id=7864779098"></script>
vendor: 1 bytes, line 1481
1481
1482<script id="shopify-features" type="application/json">{"accessToken":"e2da49057becda449bb18eb413c8d844","betas":["rich-media-storefront-analytics"],"domain":"www.tnbl.co.uk","predictiveSearch":true,"shopId":98633711962,"locale":"en"}</script>
vendor: 1 bytes, line 1482
1482
1483<script>var Shopify = Shopify || {};
1484Shopify.shop = "tnbl-uk.myshopify.com";
1485Shopify.locale = "en";
1486Shopify.currency = {"active":"GBP","rate":"1.0"};
1487Shopify.country = "GB";
1488Shopify.theme = {"name":"tnbl_shopify\/main","id":193010991450,"schema_name":"Horizon","schema_version":"3.2.1","theme_store_id":null,"role":"main"};
1489Shopify.theme.handle = "null";
1490Shopify.theme.style = {"id":null,"handle":null};
1491Shopify.cdnHost = "www.tnbl.co.uk/cdn";
1492Shopify.routes = Shopify.routes || {};
1493Shopify.routes.root = "/";
1494Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
1495Shopify.SignInWithShop = Shopify.SignInWithShop || {};
1496Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
1497Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1497
1497
1498<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1498
1498
1499<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 1499
1499
1500<script>
1501  window.Shopify = window.Shopify || {};
1502  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
1503  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
1504  window.Shopify.SignInWithShop.eligible = true;
1505</script>
vendor: 1 bytes, line 1505
1505
1506<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 1506
1506
1507<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 1507
1507
1508<script type="module">
1509  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
1510
1511  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
1512
1513</script>
vendor: 1 bytes, line 1513
1513
1514<script>
1515  window.Shopify = window.Shopify || {};
1516  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
1517  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"]};
1518</script>
vendor: 1 bytes, line 1518
1518
1519<script>(function() {
1520  var isLoaded = false;
1521  function asyncLoad() {
1522    if (isLoaded) return;
1523    isLoaded = true;
1524    var urls = ["https:\/\/cdn.salesfire.co.uk\/code\/c7accaaa-a294-445b-957a-64072951e91d.js?shop=tnbl-uk.myshopify.com"];
1525    for (var i = 0; i < urls.length; i++) {
1526      var s = document.createElement('script');
1527      s.type = 'text/javascript';
1528      s.async = true;
1529      s.src = urls[i];
1530      var x = document.getElementsByTagName('script')[0];
1531      x.parentNode.insertBefore(s, x);
1532    }
1533  };
1534  if(window.attachEvent) {
1535    window.attachEvent('onload', asyncLoad);
1536  } else {
1537    window.addEventListener('load', asyncLoad, false);
1538  }
1539})();</script>
vendor: 1 bytes, line 1539
1539
1540<script id="__st">var __st={"a":98633711962,"offset":3600,"reqid":"cfc2cb5b-ea41-489e-8d0c-2823e7cb911e-1791516082","pageurl":"www.tnbl.co.uk\/","u":"79e7928dcf7c","p":"home"};</script>
vendor: 1 bytes, line 1540
1540
1541<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1541
1541
1542<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 1542
1542
1543<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.tnbl.co.uk/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1543
1543
1544<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 = "//www.tnbl.co.uk/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>
1544<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 1544
1544
1545<script>
1546  window.Shopify = window.Shopify || {};
1547  window.Shopify.MCP = window.Shopify.MCP || {};
1548  window.Shopify.MCP.enabled = true;
1549  window.Shopify.MCP.shop = "tnbl-uk.myshopify.com";
1550  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.tnbl.co.uk\/api\/mcp";
1551  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?\"\nSet policy_types to also get the store's written policies (full text and URL).\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."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
1552</script>
vendor: 1 bytes, line 1552
1552
1553<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("\/\/www.tnbl.co.uk\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
1554</script>
vendor: 1 bytes, line 1554
1554
1555<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://www.tnbl.co.uk/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
1556</script>
vendor: 1 bytes, line 1556
1556
1557<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
1558  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);
1559</script>
vendor: 1 bytes, line 1559
1559
1560<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})}}));
1561</script>
vendor: 1 bytes, line 1561
1561
1562<script id='scb4127' type='text/javascript' async='' src='https://www.tnbl.co.uk/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
1562<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.tnbl.co.uk/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
1563<style id="shopify-accelerated-checkout-cart">
1564        #shopify-buyer-consent {
1565  margin-top: 1em;
1566  display: inline-block;
1567  width: 100%;
1568}
1569
1570#shopify-buyer-consent.hidden {
1571  display: none;
1572}
1573
1574#shopify-subscription-policy-button {
1575  background: none;
1576  border: none;
1577  padding: 0;
1578  text-decoration: underline;
1579  font-size: inherit;
1580  cursor: pointer;
1581}
1582
1583#shopify-subscription-policy-button::before {
1584  box-shadow: none;
1585}
1586
1587      </style>
1588<link rel="stylesheet" media="screen" href="//www.tnbl.co.uk/cdn/shop/t/6/compiled_assets/styles.css?v=87217545299018215091791216548">
1589<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1589
1590
1591    
1591<script>
1592      window.markerConfig = {
1593        project: '6989ca01a3e8b6cadc8533d4',
1594        source: 'snippet',
1595      };
1596
1597      !(function (e, r, a) {
1598        if (!e.__Marker) {
1599          e.__Marker = {};
1600          var t = [],
1601            n = { __cs: t };
1602          [
1603            'show',
1604            'hide',
1605            'isVisible',
1606            'capture',
1607            'cancelCapture',
1608            'unload',
1609            'reload',
1610            'isExtensionInstalled',
1611            'setReporter',
1612            'clearReporter',
1613            'setCustomData',
1614            'on',
1615            'off',
1616          ].forEach(function (e) {
1617            n[e] = function () {
1618              var r = Array.prototype.slice.call(arguments);
1619              r.unshift(e), t.push(r);
1620            };
1621          }),
1622            (e.Marker = n);
1623          var s = r.createElement('script');
1624          (s.async = 1), (s.src = 'https://edge.marker.io/latest/shim.js');
1625          var i = r.getElementsByTagName('script')[0];
1626          i.parentNode.insertBefore(s, i);
1627        }
1628      })(window, document);
1629    </script>
1629
1630  <!-- BEGIN app block: shopify://apps/salesfire-cro-tools/blocks/app-embed/67207dd3-43ec-4f5a-96a4-5ccceb0d9033 -->
1630<script src="https://cdn.salesfire.co.uk/code/shopify/98633711962.js" async></script>
1630
1631
1632
1633<!-- END app block --><!-- BEGIN app block: shopify://apps/countdown-sami/blocks/app-embed-block/4a43514a-3558-477f-914e-e834a137453e -->
1633<script type="text/javascript">
1634    window.Samita = window.Samita || {};
1635    Samita.Countdowns = Samita.Countdowns || {};
1636    Samita.Countdowns.locale  = {"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}};
1637    Samita.Countdowns.page = {
1638      title : document.title.replaceAll('"', "'"), 
1639      href : window.location.href, 
1640      type: "index"
1641    };
1642    Samita.Countdowns.dataShop = {"configuration":{"money_format":"£{{amount}}"},"pricing":{"plan":"BETA","features":[]},"flags":{"watermark":true,"customize":true},"settings":{"notUseSearchFileApp":false,"collectFeedback":true,"countdownTimers":0,"countdownDeliveries":1,"salePopups":0},"url":"tnbl-uk.myshopify.com","api_url":"","app_url":"https://timer.samita.io","storefront_access_token":"bfaad0516a5a05a2006749cd46d0f4a8"};
1643    Samita.Countdowns.theme_id = null;
1644    Samita.Countdowns.products = [];
1645    Samita.Countdowns.intervals = [];
1646
1647    
1648
1649    
1650  
1651    
1652        
1653        
1654    
1655        
1656        
1657    
1658        
1659        
1660    
1661        
1662        
1663    
1664        
1665            if (typeof Shopify!= "undefined" && Shopify?.theme?.id == 190369366362) {
1666                Samita.Countdowns.themeInfo = {"id":190369366362,"name":"tnbl_shopify/dev_branch","role":"main","theme_store_id":null,"theme_name":"Horizon","theme_version":"3.2.1"}
1667            }
1668        
1669        
1670    
1671        
1672        
1673            if (typeof Shopify!= "undefined" && Shopify?.theme?.id == 190369366362) {
1674                Samita.Countdowns.theme = {"selectors":{"product":{"elementSelectors":[".product-top",".Product",".product-detail",".product-page-container","#ProductSection-product-template","#shopify-section-product-template",".product:not(.featured-product,.slick-slide)",".product-main",".grid:not(.product-grid,.sf-grid,.featured-product)",".grid.product-single","#__pf",".gfqv-product-wrapper",".ga-product",".t4s-container",".gCartItem, .flexRow.noGutter, .cart__row, .line-item, .cart-item, .cart-row, .CartItem, .cart-line-item, .cart-table tbody tr, .container-indent table tbody tr"],"notShowCustomBlocks":".variant-swatch__item,.swatch-element,.fera-productReviews-review,share-button,.hdt-variant-picker,.col-story-block,.lightly-spaced-row","link":"[samitaPL-product-link], h3[data-href*=\"/products/\"], div[data-href*=\"/products/\"], a[data-href*=\"/products/\"], a.product-block__link[href*=\"/products/\"], a.indiv-product__link[href*=\"/products/\"], a.thumbnail__link[href*=\"/products/\"], a.product-item__link[href*=\"/products/\"], a.product-card__link[href*=\"/products/\"], a.product-card-link[href*=\"/products/\"], a.product-block__image__link[href*=\"/products/\"], a.stretched-link[href*=\"/products/\"], a.grid-product__link[href*=\"/products/\"], a.product-grid-item--link[href*=\"/products/\"], a.product-link[href*=\"/products/\"], a.product__link[href*=\"/products/\"], a.full-unstyled-link[href*=\"/products/\"], a.grid-item__link[href*=\"/products/\"], a.grid-product__link[href*=\"/products/\"], a[data-product-page-link][href*=\"/products/\"], a[href*=\"/products/\"]:not(.logo-bar__link,.ButtonGroup__Item.Button,.menu-promotion__link,.site-nav__link,.mobile-nav__link,.hero__sidebyside-image-link,.announcement-link,.breadcrumbs-list__link,.single-level-link,.d-none,.icon-twitter,.icon-facebook,.icon-pinterest,#btn,.list-menu__item.link.link--tex,.btnProductQuickview,.index-banner-slides-each,.global-banner-switch,.sub-nav-item-link,.announcement-bar__link,.Carousel__Cell,.Heading,.facebook,.twitter,.pinterest,.loyalty-redeem-product-title,.breadcrumbs__link,.btn-slide,.h2m-menu-item-inner--sub,.glink,.announcement-bar__link,.ts-link)","signal":"[data-product-handle], [data-product-id]","notSignal":":not([data-section-id=\"product-recommendations\"],[data-section-type=\"product-recommendations\"],#product-area,#looxReviews)","priceSelectors":[".product-option .cvc-money","#ProductPrice-product-template",".product-block--price",".price-list","#ProductPrice",".product-price",".product__price—reg","#productPrice-product-template",".product__current-price",".product-thumb-caption-price-current",".product-item-caption-price-current",".grid-product__price,.product__price","span.price","span.product-price",".productitem--price",".product-pricing","div.price","span.money",".product-item__price",".product-list-item-price","p.price",".product-meta__prices","div.product-price","span#price",".price.money","h3.price","a.price",".price-area",".product-item-price",".pricearea",".collectionGrid .collectionBlock-info > p","#ComparePrice",".product--price-wrapper",".product-page--price-wrapper",".color--shop-accent.font-size--s.t--meta.f--main",".ComparePrice",".ProductPrice",".prodThumb .title span:last-child",".price",".product-single__price-product-template",".product-info-price",".price-money",".prod-price","#price-field",".product-grid--price",".prices,.pricing","#product-price",".money-styling",".compare-at-price",".product-item--price",".card__price",".product-card__price",".product-price__price",".product-item__price-wrapper",".product-single__price",".grid-product__price-wrap","a.grid-link p.grid-link__meta",".product__prices","#comparePrice-product-template","dl[class*=\"price\"]","div[class*=\"price\"]",".gl-card-pricing",".ga-product_price-container"],"titleSelectors":[".prod-title",".product-block--title",".product-info__title",".product-thumbnail__title",".product-card__title","div.product__title",".card__heading.h5",".cart-item__name.h4",".spf-product-card__title.h4",".gl-card-title",".ga-product_title"],"imageSelectors":["img.rimage__image",".grid_img",".imgWrapper > img",".gitem-img",".card__media img",".image__inner img",".snize-thumbnail",".zoomImg",".spf-product-card__image",".boost-pfs-filter-product-item-main-image",".pwzrswiper-slide > img",".product__image-wrapper img",".grid__image-ratio",".product__media img",".AspectRatio > img",".product__media img",".rimage-wrapper > img",".ProductItem__Image",".img-wrapper img",".aspect-ratio img",".product-card__image-wrapper > .product-card__image",".ga-products_image img",".image__container",".image-wrap .grid-product__image",".boost-sd__product-image img",".box-ratio > img",".image-cell img.card__image","img[src*=\"cdn.shopify.com\"][src*=\"/products/\"]","img[srcset*=\"cdn.shopify.com\"][srcset*=\"/products/\"]","img[data-srcset*=\"cdn.shopify.com\"][data-srcset*=\"/products/\"]","img[data-src*=\"cdn.shopify.com\"][data-src*=\"/products/\"]","img[data-srcset*=\"cdn.shopify.com\"][data-srcset*=\"/products/\"]","img[srcset*=\"cdn.shopify.com\"][src*=\"no-image\"]",".product-card__image > img",".product-image-main .image-wrap",".grid-product__image",".media > img","img[srcset*=\"cdn/shop/products/\"]","[data-bgset*=\"cdn.shopify.com\"][data-bgset*=\"/products/\"] > [data-bgset*=\"cdn.shopify.com\"][data-bgset*=\"/products/\"]","[data-bgset*=\"cdn.shopify.com\"][data-bgset*=\"/products/\"]","img[src*=\"cdn.shopify.com\"][src*=\"no-image\"]","img[src*=\"cdn/shop/products/\"]",".ga-product_image",".gfqv-product-image"],"media":".card__inner,.spf-product-card__inner","soldOutBadge":".tag.tag--rectangle, .grid-product__tag--sold-out","paymentButton":".shopify-payment-button, .product-form--smart-payment-buttons, .lh-wrap-buynow, .wx-checkout-btn","formSelectors":["product-form form.form","form.product-form","form.product_form",".main-product-form","form.t4s-form__product",".product-single__form",".shopify-product-form","#shopify-section-product-template form[action*=\"/cart/add\"]","form[action*=\"/cart/add\"]:not(.form-card)",".ga-products-table li.ga-product",".pf-product-form"],"variantActivator":".product__swatches [data-swatch-option], .swatch-view-item, variant-radios input, .swatch__container .swatch__option, .gf_swatches .gf_swatch, .product-form__controls-group-options select, ul.clickyboxes li, .pf-variant-select, ul.swatches-select li, .product-options__value, .form-check-swatch, button.btn.swatch select.product__variant, .pf-container a, button.variant.option, ul.js-product__variant--container li, .variant-input, .product-variant > ul > li  ,.input--dropdown, .HorizontalList > li, .product-single__swatch__item, .globo-swatch-list ul.value > .select-option, .form-swatch-item, .selector-wrapper select, select.pf-input, ul.swatches-select > li.nt-swatch.swatch_pr_item, ul.gfqv-swatch-values > li, .lh-swatch-select, .swatch-image, .variant-image-swatch, #option-size, .selector-wrapper .replaced, .regular-select-content > .regular-select-item, .radios--input, ul.swatch-view > li > .swatch-selector ,.single-option-selector, .swatch-element input, [data-product-option], .single-option-selector__radio, [data-index^=\"option\"], .SizeSwatchList input, .swatch-panda input[type=radio], .swatch input, .swatch-element input[type=radio], select[id*=\"product-select-\"], select[id|=\"product-select-option\"], [id|=\"productSelect-product\"], [id|=\"ProductSelect-option\"],select[id|=\"product-variants-option\"],select[id|=\"sca-qv-product-selected-option\"],select[id*=\"product-variants-\"],select[id|=\"product-selectors-option\"],select[id|=\"variant-listbox-option\"],select[id|=\"id-option\"],select[id|=\"SingleOptionSelector\"], .variant-input-wrap input, [data-action=\"select-value\"]","variant":".variant-selection__variants, .product-variant-id, .product-form__variants, .ga-product_variant_select, select[name=\"id\"], input[name=\"id\"], .qview-variants > select, select[name=\"id[]\"]","variantIdByAttribute":"swatch-current-variant","quantity":".gInputElement, [name=\"qty\"], [name=\"quantity\"]","quantityWrapper":"#Quantity, input.quantity-selector.quantity-input, [data-quantity-input-wrapper], .product-form__quantity-selector, .product-form__item--quantity, .ProductForm__QuantitySelector, .quantity-product-template, .product-qty, .qty-selection, .product__quantity, .js-qty__num","productAddToCartBtnSelectors":[".samita-cu
1674stom-button-atc","#AddToCart",".product-form__cart-submit",".add-to-cart-btn",".product__add-to-cart-button","#AddToCart--product-template","#addToCart","#AddToCart-product-template","#AddToCart",".add_to_cart",".product-form--atc-button","#AddToCart-product",".AddtoCart","button.btn-addtocart",".product-submit","[name=\"add\"]","[type=\"submit\"]",".product-form__add-button",".product-form--add-to-cart",".btn--add-to-cart",".button-cart",".action-button > .add-to-cart","button.btn--tertiary.add-to-cart",".form-actions > button.button",".gf_add-to-cart",".zend_preorder_submit_btn",".gt_button",".wx-add-cart-btn",".previewer_add-to-cart_btn > button",".qview-btn-addtocart",".ProductForm__AddToCart",".button--addToCart","#AddToCartDesk","[data-pf-type=\"ProductATC\"]"],"customAddEl":{"productPageSameLevel":true,"collectionPageSameLevel":true,"cartPageSameLevel":false},"collection":{"positionBadgeImageWrapper":"","positionBadgeTitleWrapper":"","positionBadgePriceWrapper":"","notElClass":["cart-items","cart-item-list__body","product-list","samitaPL-card-list","cart-items-con","boost-pfs-search-suggestion-group","collection","pf-slide","boost-sd__cart-body","boost-sd__product-list","snize-search-results-content","productGrid","footer__links","header__links-list","cartitems--list","Cart__ItemList","minicart-list-prd","mini-cart-item","mini-cart__line-item-list","grid","products","ajax-cart__form","hero__link","collection__page-products","cc-filters-results","footer-sect","collection-grid","card-list","page-width","collection-template","mobile-nav__sublist","product-grid","site-nav__dropdown","search__results","product-recommendations","faq__wrapper","section-featured-product","announcement_wrapper","cart-summary-item-container","cart-drawer__line-items","product-quick-add","cart__items","rte","m-cart-drawer__items","scd__items"]},"quickView":{"activator":"a.quickview-icon.quickview, .qv-icon, .previewer-button, .sca-qv-button, .product-item__action-button[data-action=\"open-modal\"], .boost-pfs-quickview-btn, .collection-product[data-action=\"show-product\"], button.product-item__quick-shop-button, .product-item__quick-shop-button-wrapper, .open-quick-view, .product-item__action-button[data-action=\"open-modal\"], .tt-btn-quickview, .product-item-quick-shop .available, .quickshop-trigger, .productitem--action-trigger:not(.productitem--action-atc), .quick-product__btn, .thumbnail, .quick_shop, a.sca-qv-button, .overlay, .quick-view, .open-quick-view, [data-product-card-link], a[rel=\"quick-view\"], a.quick-buy, div.quickview-button > a, .block-inner a.more-info, .quick-shop-modal-trigger, a.quick-view-btn, a.spo-quick-view, div.quickView-button, a.product__label--quick-shop, span.trigger-quick-view, a.act-quickview-button, a.product-modal, [data-quickshop-full], [data-quickshop-slim], [data-quickshop-trigger]","productForm":".qv-form, .qview-form, .description-wrapper_content, .wx-product-wrapper, #sca-qv-add-item-form, .product-form, #boost-pfs-quickview-cart-form, .product.preview .shopify-product-form, .product-details__form, .gfqv-product-form, #ModalquickView form#modal_quick_view, .quick-shop-modal form[action*=\"/cart/add\"], #quick-shop-modal form[action*=\"/cart/add\"], .white-popup.quick-view form[action*=\"/cart/add\"], .quick-view form[action*=\"/cart/add\"], [id*=\"QuickShopModal-\"] form[action*=\"/cart/add\"], .quick-shop.active form[action*=\"/cart/add\"], .quick-view-panel form[action*=\"/cart/add\"], .content.product.preview form[action*=\"/cart/add\"], .quickView-wrap form[action*=\"/cart/add\"], .quick-modal form[action*=\"/cart/add\"], #colorbox form[action*=\"/cart/add\"], .product-quick-view form[action*=\"/cart/add\"], .quickform, .modal--quickshop-full, .modal--quickshop form[action*=\"/cart/add\"], .quick-shop-form, .fancybox-inner form[action*=\"/cart/add\"], #quick-view-modal form[action*=\"/cart/add\"], [data-product-modal] form[action*=\"/cart/add\"], .modal--quick-shop.modal--is-active form[action*=\"/cart/add\"]","appVariantActivator":".previewer_options","appVariantSelector":".full_info, [data-behavior=\"previewer_link\"]","appButtonClass":["sca-qv-cartbtn","qview-btn","btn--fill btn--regular"]}},"cart":{"form":["cart-items > .page-width","cart-items.page-width","[samitaWS-checkout-form]","cart-form",".ajax-cart__form-wrapper","#CartPage form[action*=\"/cart\"]",".cart-wrapper form[action*=\"/cart\"]",".main-content-inner form[action=\"/cart\"]",".main-content form[action=\"/cart\"]","[data-section-id=\"cart-template\"] form[action*=\"/cart\"]","cart-items form[action*=\"/cart\"]","form#updateform","form#cartForm","form[action*=\"/cart\"]#cartform",".page-content form[action*=\"/cart\"]","form[action*=\"/cart\"]:not([action*=\"/cart/add\"]):not([hidden])","#cart-notification-form"],"drawerForm":["[samitaWS-drawer-form]","#CartDrawer .drawer__inner","div#CartDrawer-Overlay .drawer__inner","#cart-notification-form"]}},"integrateApps":["globo.relatedproduct.loaded","globoFilterQuickviewRenderCompleted","globoFilterRenderSearchCompleted","globoFilterRenderCompleted","globoRelatedBuildWidgetCalback","cart:open","cartdrawer:opened","cart:build","cart:quantity.cart-cart-drawer","cart:updated","cart:close","collectionUpdate","theme:drawer:toggle","theme:drawer:close","theme:drawer:open","cart-update","addwishlistitem","transitionend"],"timeOut":1500}
1675            }
1676        
1677    
1678    
1679    Samita.Countdowns.dataCountdowns = [];
1680    
1681    
1682        
1683        
1684        
1685          
1686            Samita.Countdowns.dataCountdowns[11486] = {"11486":{"id":11486,"type":"delivery","countdown_configs":{"timer":{"holidays":["2026-01-01"],"date_range":{"delivery":{"days":["mon","tue","wed","thu","fri"],"values":[2,5]},"dispatched":{"days":["mon","tue","wed","thu","fri"],"values":[0,1]}
1686,"cutoff_time":{"type":false,"custom":[{"hours":23,"minutes":59},{"hours":"11","minutes":59},{"hours":"11","minutes":59},{"hours":"11","minutes":59},{"hours":"11","minutes":59},{"hours":"11","minutes":59},{"hours":23,"minutes":59}],"default":{"hours":23,"minutes":59},"delivery":[{"day":"sun","cutoff":{"end_time":{"hours":23,"minutes":59},"start_time":{"hours":"0","minutes":"0"}}},{"day":"mon","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"0","minutes":"0"}}},{"day":"tue","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"0","minutes":"0"}}},{"day":"wed","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"0","minutes":"0"}}},{"day":"thu","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"0","minutes":"0"}}},{"day":"fri","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"0","minutes":"0"}}},{"day":"sat","cutoff":{"end_time":{"hours":23,"minutes":59},"start_time":{"hours":"0","minutes":"0"}}}],"dispatched":[{"day":"sun","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}},{"day":"mon","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}},{"day":"tue","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}},{"day":"wed","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}},{"day":"thu","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}},{"day":"fri","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}},{"day":"sat","cutoff":{"end_time":{"hours":"11","minutes":59},"start_time":{"hours":"9","minutes":"0"}}}]},"date_format":"MMM DD","time_format":"1"}},"design":{"layout":"mes_progress","content":{"items":[{"lang":"default","content":"\u003cp\u003e🚚 Free Shipping to \u003cspan style=\"color: rgb(48, 141, 84);\"\u003e\u003cstrong\u003e{country_flag} {country_name}\u003c\/strong\u003e\u003c\/span\u003e \u003cbr\u003e✅ Order within the next \u003cstrong\u003e\u003cspan style=\"color: rgb(48, 141, 84);\"\u003e{cutoff_time}\u003c\/span\u003e\u003c\/strong\u003e for delivery between \u003cspan style=\"color: rgb(241, 196, 15);\"\u003e🔥 \u003c\/span\u003e\u003cspan style=\"color: rgb(241, 196, 15);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cstrong\u003e\u003cspan style=\"color: rgb(48, 141, 84);\"\u003e{delivered_min_date} - {delivered_max_date}\u003c\/span\u003e\u003c\/strong\u003e \u003c\/span\u003e🔥\u003c\/span\u003e\u003c\/p\u003e","duration":10,"property":{"text":"Delivery between"},"template":"default"},{"lang":"en","content":"\u003cp style=\"text-align: center;\"\u003eOrder within the next \u003cspan class=\"samita-cutoff-time\" style=\"color: rgb(0, 0, 0);\"\u003e\u003cstrong\u003e{cutoff_time}\u003c\/strong\u003e\u003c\/span\u003e and select Express Shipping at checkout for delivery between \u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cstrong\u003e{delivered_min_date} - {delivered_max_date}\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e","duration":10,"property":{"text":"Delivery between","active":true},"template":"template4"},{"lang":"vi","content":"\u003cp\u003e🚚 Free Shipping to \u003cspan style=\"color: rgb(48, 141, 84);\"\u003e\u003cstrong\u003e{country_flag} {country_name}\u003c\/strong\u003e\u003c\/span\u003e \u003cbr\u003e✅ Order within the next \u003cstrong\u003e\u003cspan style=\"color: rgb(48, 141, 84);\"\u003e{cutoff_time}\u003c\/span\u003e\u003c\/strong\u003e for delivery between \u003cspan style=\"color: rgb(241, 196, 15);\"\u003e🔥 \u003c\/span\u003e\u003cspan style=\"color: rgb(241, 196, 15);\"\u003e\u003cspan style=\"color: rgb(0, 0, 0);\"\u003e\u003cstrong\u003e\u003cspan style=\"color: rgb(48, 141, 84);\"\u003e{delivered_min_date} - {delivered_max_date}\u003c\/span\u003e\u003c\/strong\u003e \u003c\/span\u003e🔥\u003c\/span\u003e\u003c\/p\u003e","duration":10,"property":{"text":"Delivery between"}}]},"message":{"font":{"size":"14","values":[],"desSize":12,"iconSize":30,"titleSize":18,"customFont":false,"fontFamily":"Andika","fontVariant":"regular","customFontFamily":"Lato","customFontVariant":"400"}
1686,"size":{"value":"small","custom":{"width":"150","height":"150","setCaratWidth":"px","setCaratHeight":"px"}},"color":{"bgColor":{"a":1,"b":247,"g":237,"r":255},"textColor":{"a":1,"b":51,"g":51,"r":51},"borderColor":{"a":1,"b":0,"g":0,"r":0}},"border":{"size":"0","style":"solid","radius":"5"},"margin":{"top":"0","left":"0","right":"0","bottom":"0"},"shadow":false,"padding":{"top":"10","left":"10","right":"10","bottom":"10"}},"progress":{"font":{"size":"14","values":[],"desSize":13,"dateSize":12,"iconSize":30,"titleSize":13,"customFont":false,"fontFamily":"Andika","fontVariant":"regular","customFontFamily":"Lato","customFontVariant":"400"},"size":{"value":"small","custom":{"width":"150","height":"150","setCaratWidth":"px","setCaratHeight":"px"}},"color":{"bgColor":{"a":0,"b":255,"g":255,"r":255},"desColor":{"a":1,"b":0,"g":0,"r":0},"dateColor":{"a":1,"b":0,"g":0,"r":0},"iconColor":{"a":1,"b":0,"g":0,"r":0},"titleColor":{"a":1,"b":0,"g":0,"r":0},"borderColor":{"a":1,"b":255,"g":255,"r":255},"iconBgColor":{"a":1,"b":247,"g":237,"r":255},"lineBgColor":{"a":1,"b":247,"g":237,"r":255},"borderIconColor":{"a":1,"b":0,"g":0,"r":0}},"border":{"size":"0","style":"solid","radius":"5"},"margin":{"top":"0","left":"0","right":"0","bottom":"0"},"shadow":false,"padding":{"top":"20","left":"0","right":"0","bottom":"15"},"template":"template1"},"progress_bar":{"status":[{"lang":"default","ordered":{"icon":{"id":"icon_14","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" height=\"40\" width=\"40\" id=\"Capa_1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 612 612\" enableBackground=\"new 0 0 612 612\" xmlSpace=\"preserve\"\u003e\u003cg\u003e\u003cg\u003e\u003cg\u003e\u003cpath d=\"M608.126,124.457c-3.239-3.945-8.075-6.233-13.179-6.233H107.539L91.367,34.782c-1.555-8.018-8.577-13.81-16.743-13.81     h-57.57C7.633,20.972,0,28.608,0,38.026s7.633,17.054,17.054,17.054h43.501l73.439,384.296     c1.435,8.155,8.519,14.101,16.796,14.101h60.242c-32.342,5.858-56.956,34.204-56.956,68.21c0,38.233,31.106,69.34,69.34,69.34     c38.233,0,69.336-31.106,69.336-69.34c0-34.005-24.609-62.351-56.953-68.21h221.5c-32.344,5.858-56.959,34.204-56.959,68.21     c0,38.233,31.109,69.34,69.344,69.34c38.233,0,69.339-31.106,69.339-69.34c0-34.005-24.612-62.351-56.953-68.21h51.932     c9.418,0,17.054-7.636,17.054-17.054c0-9.42-7.636-17.054-17.054-17.054H165.109l-5.224-29.721h387.974     c8.142,0,15.144-5.752,16.73-13.736l47.086-237.314C612.667,133.591,611.365,128.403,608.126,124.457z M504.917,521.687     c0,19.426-15.805,35.23-35.23,35.23c-19.428,0-35.236-15.804-35.236-35.23c0-19.426,15.808-35.23,35.236-35.23     C489.112,486.458,504.917,502.26,504.917,521.687z M258.646,521.687c0,19.426-15.802,35.23-35.227,35.23     c-19.428,0-35.233-15.804-35.233-35.23c0-19.426,15.805-35.23,35.233-35.23C242.842,486.458,258.646,502.26,258.646,521.687z      M153.539,355.539l-23.13-119.328h64.366l19.605,119.328H153.539z M327.099,355.539h-78.154l-19.605-119.328h97.76V355.539z      M440.591,355.539h-79.384V236.212h96.513L440.591,355.539z M533.857,355.539H475.05l17.13-119.328h65.352L533.857,355.539z      M564.299,202.104h-440.5l-9.648-49.77h460.025L564.299,202.104z\"\/\u003e\u003c\/g\u003e\u003c\/g\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003c\/svg\u003e"},"title":"Ordered","tooltip":null,"description":null},"delivered":{"icon":{"id":"icon_16","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Capa_1\" x=\"0px\" y=\"0px\" width=\"60\" height=\"60\" viewBox=\"0 0 38 38\" enableBackground=\"new 0 0 38 38\"  xmlSpace=\"preserve\"\u003e\u003cg\u003e\u003cpath d=\"M19,0C11.096,0,4.666,6.43,4.666,14.333c0,11.379,12.796,22.81,13.341,23.292C18.292,37.875,18.646,38,19,38   c0.368,0,0.736-0.135,1.023-0.404c0.543-0.508,13.311-12.568,13.311-23.262C33.334,6.431,26.902,0,19,0z M19,21.168   c-3.775,0-6.834-3.061-6.834-6.833S15.225,7.502,19,7.502c3.773,0,6.832,3.06,6.832,6.833S22.773,21.168,19,21.168z\"\/\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003c\/svg\u003e"},"title":"Order Delivered","tooltip":null,"description":null}
1686,"dispatched":{"icon":{"id":"icon_29","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Layer_1\" x=\"0px\" y=\"0px\" width=\"40\" height=\"40\" viewBox=\"0 0 512 512\" enableBackground=\"new 0 0 512 512\" xmlSpace=\"preserve\"\u003e\n            \u003cpath d=\"M497.081,14.933c-1.515-1.495-3.75-1.912-5.703-1.048L26.753,221.692c-6.771,3.027-11.623,9.185-12.947,16.471  c-1.355,7.286,0.978,14.769,6.206,20.006l100.095,100.095L392.792,111.76c1.009-0.93,2.585-0.89,3.563,0.088  c0.979,0.974,1.009,2.553,0.096,3.584L149.978,388.117l12.693,98.073c0.412,3.29,2.492,6.141,5.482,7.553  c3.027,1.425,8.979,0.101,11.059-2.492c11.658-14.422,32.234-42.187,32.234-42.187l42.376,42.906  c5.259,5.237,12.725,7.562,20.006,6.215c7.307-1.342,13.452-6.185,16.475-12.944L498.12,20.622  C499.002,18.692,498.563,16.429,497.081,14.933z\"\/\u003e\n            \u003c\/svg\u003e"},"title":"Order Dispatched","status":true,"tooltip":null,"description":null}},{"lang":"en","ordered":{"icon":{"id":"icon_22","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Capa_1\" x=\"0px\" y=\"0px\" width=\"40\" height=\"40\" viewBox=\"0 0 406.215 406.215\" enableBackground=\"new 0 0 406.215 406.215\" xmlSpace=\"preserve\"\u003e\u003cg\u003e\u003cg\u003e\u003cg\u003e\u003cpath d=\"M226.793,243.186v163.029h134.115c17.431,0,31.568-14.129,31.568-31.57V243.186H226.793z\"\/\u003e\u003cpath d=\"M179.374,243.186H13.749v131.459c0,17.441,14.141,31.57,31.57,31.57h134.055V243.186z M56.788,373.086     c-6.545,0-11.855-5.311-11.855-11.854v-65.778c0-6.544,5.311-11.854,11.855-11.854s11.855,5.312,11.855,11.854v65.778     C68.643,367.775,63.333,373.086,56.788,373.086z\"\/\u003e\u003c\/g\u003e\u003cpath d=\"M371.176,119.564h-59.293c8.184-3.928,15.049-7.986,19.2-12.133c24.423-24.419,24.423-64.03,0-88.453    C318.857,6.768,302.85,0.664,286.844,0.664c-16.009,0-32.019,6.104-44.229,18.314c-10.141,10.144-19.897,35.182-27.862,60.983    c-3.72-1.021-7.549-1.736-11.577-1.736c-4.014,0-7.844,0.716-11.547,1.729c-7.996-26.034-17.844-51.412-28.08-61.641    C151.338,6.103,135.346,0,119.322,0c-16.008,0-32.016,6.104-44.227,18.313c-24.422,24.432-24.422,64.035,0,88.453    c4.369,4.388,11.73,8.679,20.562,12.798H35.038c-17.43,0-31.553,14.128-31.553,31.556v26.852c0,17.43,14.123,31.551,31.553,31.551    h144.336v-88.707h47.419v88.707h144.384c17.428,0,31.553-14.123,31.553-31.552v-26.852    C402.729,133.692,388.604,119.564,371.176,119.564z M264.971,41.332c5.834-5.838,13.612-9.057,21.873-9.057    c8.272,0,16.039,3.219,21.891,9.057c5.834,5.841,9.045,13.607,9.045,21.873s-3.211,16.031-9.016,21.835    c-6.531,6.161-32.107,15.76-63.725,24.701c-0.894-3.066-2.101-5.967-3.627-8.716C250.026,71.272,259.073,47.567,264.971,41.332z     M97.448,40.668c5.836-5.834,13.615-9.053,21.875-9.053c8.273,0,16.039,3.211,21.857,9.037    c5.945,6.291,15.098,30.303,23.773,60.365c-1.436,2.577-2.576,5.296-3.473,8.158c-31.768-8.952-57.502-18.6-64.033-24.758    C85.391,72.353,85.391,52.732,97.448,40.668z\"\/\u003e\u003c\/g\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003c\/svg\u003e"},"title":"Ordered","tooltip":null,"description":null},"delivered":{"icon":{"id":"icon_16","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Capa_1\" x=\"0px\" y=\"0px\" width=\"60\" height=\"60\" viewBox=\"0 0 38 38\" enableBackground=\"new 0 0 38 38\"  xmlSpace=\"preserve\"\u003e\u003cg\u003e\u003cpath d=\"M19,0C11.096,0,4.666,6.43,4.666,14.333c0,11.379,12.796,22.81,13.341,23.292C18.292,37.875,18.646,38,19,38   c0.368,0,0.736-0.135,1.023-0.404c0.543-0.508,13.311-12.568,13.311-23.262C33.334,6.431,26.902,0,19,0z M19,21.168   c-3.775,0-6.834-3.061-6.834-6.833S15.225,7.502,19,7.502c3.773,0,6.832,3.06,6.832,6.833S22.773,21.168,19,21.168z\"\/\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003c\/svg\u003e"},"title":"Order Delivered","tooltip":null,"description":null}
1686,"dispatched":{"icon":{"id":"icon_29","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Layer_1\" x=\"0px\" y=\"0px\" width=\"40\" height=\"40\" viewBox=\"0 0 512 512\" enableBackground=\"new 0 0 512 512\" xmlSpace=\"preserve\"\u003e\n            \u003cpath d=\"M497.081,14.933c-1.515-1.495-3.75-1.912-5.703-1.048L26.753,221.692c-6.771,3.027-11.623,9.185-12.947,16.471  c-1.355,7.286,0.978,14.769,6.206,20.006l100.095,100.095L392.792,111.76c1.009-0.93,2.585-0.89,3.563,0.088  c0.979,0.974,1.009,2.553,0.096,3.584L149.978,388.117l12.693,98.073c0.412,3.29,2.492,6.141,5.482,7.553  c3.027,1.425,8.979,0.101,11.059-2.492c11.658-14.422,32.234-42.187,32.234-42.187l42.376,42.906  c5.259,5.237,12.725,7.562,20.006,6.215c7.307-1.342,13.452-6.185,16.475-12.944L498.12,20.622  C499.002,18.692,498.563,16.429,497.081,14.933z\"\/\u003e\n            \u003c\/svg\u003e"},"title":"Order Dispatched","status":true,"tooltip":null,"description":null}},{"lang":"vi","ordered":{"icon":{"id":"icon_14","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" height=\"40\" width=\"40\" id=\"Capa_1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 612 612\" enableBackground=\"new 0 0 612 612\" xmlSpace=\"preserve\"\u003e\u003cg\u003e\u003cg\u003e\u003cg\u003e\u003cpath d=\"M608.126,124.457c-3.239-3.945-8.075-6.233-13.179-6.233H107.539L91.367,34.782c-1.555-8.018-8.577-13.81-16.743-13.81     h-57.57C7.633,20.972,0,28.608,0,38.026s7.633,17.054,17.054,17.054h43.501l73.439,384.296     c1.435,8.155,8.519,14.101,16.796,14.101h60.242c-32.342,5.858-56.956,34.204-56.956,68.21c0,38.233,31.106,69.34,69.34,69.34     c38.233,0,69.336-31.106,69.336-69.34c0-34.005-24.609-62.351-56.953-68.21h221.5c-32.344,5.858-56.959,34.204-56.959,68.21     c0,38.233,31.109,69.34,69.344,69.34c38.233,0,69.339-31.106,69.339-69.34c0-34.005-24.612-62.351-56.953-68.21h51.932     c9.418,0,17.054-7.636,17.054-17.054c0-9.42-7.636-17.054-17.054-17.054H165.109l-5.224-29.721h387.974     c8.142,0,15.144-5.752,16.73-13.736l47.086-237.314C612.667,133.591,611.365,128.403,608.126,124.457z M504.917,521.687     c0,19.426-15.805,35.23-35.23,35.23c-19.428,0-35.236-15.804-35.236-35.23c0-19.426,15.808-35.23,35.236-35.23     C489.112,486.458,504.917,502.26,504.917,521.687z M258.646,521.687c0,19.426-15.802,35.23-35.227,35.23     c-19.428,0-35.233-15.804-35.233-35.23c0-19.426,15.805-35.23,35.233-35.23C242.842,486.458,258.646,502.26,258.646,521.687z      M153.539,355.539l-23.13-119.328h64.366l19.605,119.328H153.539z M327.099,355.539h-78.154l-19.605-119.328h97.76V355.539z      M440.591,355.539h-79.384V236.212h96.513L440.591,355.539z M533.857,355.539H475.05l17.13-119.328h65.352L533.857,355.539z      M564.299,202.104h-440.5l-9.648-49.77h460.025L564.299,202.104z\"\/\u003e\u003c\/g\u003e\u003c\/g\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003c\/svg\u003e"},"title":"Ordered","tooltip":null,"description":null},"delivered":{"icon":{"id":"icon_16","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Capa_1\" x=\"0px\" y=\"0px\" width=\"60\" height=\"60\" viewBox=\"0 0 38 38\" enableBackground=\"new 0 0 38 38\"  xmlSpace=\"preserve\"\u003e\u003cg\u003e\u003cpath d=\"M19,0C11.096,0,4.666,6.43,4.666,14.333c0,11.379,12.796,22.81,13.341,23.292C18.292,37.875,18.646,38,19,38   c0.368,0,0.736-0.135,1.023-0.404c0.543-0.508,13.311-12.568,13.311-23.262C33.334,6.431,26.902,0,19,0z M19,21.168   c-3.775,0-6.834-3.061-6.834-6.833S15.225,7.502,19,7.502c3.773,0,6.832,3.06,6.832,6.833S22.773,21.168,19,21.168z\"\/\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003cg\u003e\u003c\/g\u003e\u003c\/svg\u003e"},"title":"Order Delivered","tooltip":null,"description":null}
1686,"dispatched":{"icon":{"id":"icon_29","svg":"\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlnsXlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" id=\"Layer_1\" x=\"0px\" y=\"0px\" width=\"40\" height=\"40\" viewBox=\"0 0 512 512\" enableBackground=\"new 0 0 512 512\" xmlSpace=\"preserve\"\u003e\n            \u003cpath d=\"M497.081,14.933c-1.515-1.495-3.75-1.912-5.703-1.048L26.753,221.692c-6.771,3.027-11.623,9.185-12.947,16.471  c-1.355,7.286,0.978,14.769,6.206,20.006l100.095,100.095L392.792,111.76c1.009-0.93,2.585-0.89,3.563,0.088  c0.979,0.974,1.009,2.553,0.096,3.584L149.978,388.117l12.693,98.073c0.412,3.29,2.492,6.141,5.482,7.553  c3.027,1.425,8.979,0.101,11.059-2.492c11.658-14.422,32.234-42.187,32.234-42.187l42.376,42.906  c5.259,5.237,12.725,7.562,20.006,6.215c7.307-1.342,13.452-6.185,16.475-12.944L498.12,20.622  C499.002,18.692,498.563,16.429,497.081,14.933z\"\/\u003e\n            \u003c\/svg\u003e"},"title":"Order Dispatched","status":true,"tooltip":null,"description":null}}]}},"translations":[{"lang":"default","time":{"hours":"Hours","minutes":"Minutes","seconds":"Seconds"}}],"productPreview":{"productPreview":{"ids":[10666571170138]}}},"condition_configs":{"manual":{"on_pages":["productPage"],"device_targeting":{"show_on":"all"}},"automate":{"operator":"and","conditions":[{"value":null,"where":"EQUALS","select":"ALL","values":[]}]}},"status":1}}[11486];
1687          
1688        
1689    
1690    
1691
1692    Samita.Countdowns.dataSalesPopups = []
1693    
1694    
1695
1696    Samita.Countdowns.dataBanners = []
1697    
1698    
1699
1700  
1701  </script>
1701
1702  <!-- END app block -->
1702<script src="https://cdn.shopify.com/extensions/01a11e93-cfdd-7e31-8fce-4101c959d1b1/avada-upsell-272/assets/avada-free-gift.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1702
1702
1703<script src="https://cdn.shopify.com/extensions/01a11c04-5004-7089-99f7-e26379ae3845/forms-2615/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1703
1703
1704<script src="https://cdn.shopify.com/extensions/01a0d281-f883-79d1-9066-ada610f6412a/countdown-timer-bar-samita-118/assets/samita.countdowns.index.js" type="text/javascript" defer="defer"></script>
1704
1705<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1706<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: 98633711962,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};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 1706
1706
1707<script>
1708  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1709</script>
vendor: 1 bytes, line 1709
1709
1710<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}
1710).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: 98633711962,storefrontBaseUrl: "https://www.tnbl.co.uk",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.tnbl.co.uk/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"4197941594","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6e6b2e32fe6866115b7e49e2ae3c75b2","type":"APP","apiClientId":5940125,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1710,"dataSharingState":"unrestricted"},{"id":"4022337882","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\",\\\"GT-WVR4LPWJ\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/iUKXCJqpmZIcEP-q_5kC\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/W-woCJarmZIcEP-q_5kC\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-7TERMZ9RHX\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/p09LCJOrmZIcEP-q_5kC\\\",\\\"MC-E9WFHS98NK\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-7TERMZ9RHX\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/xjToCJepmZIcEP-q_5kC\\\",\\\"MC-E9WFHS98NK\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/zMS7CJCrmZIcEP-q_5kC\\\",\\\"MC-E9WFHS98NK\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-7TERMZ9RHX\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/j0WjCJmrmZIcEP-q_5kC\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-7TERMZ9RHX\\\",\\\"AW-591385983\\\/A2rDCI2rmZIcEP-q_5kC\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-7TERMZ9RHX\\\"}],\\\"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":"3721855322","configuration":"{\"siteID\":\"c7accaaa-a294-445b-957a-64072951e91d\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"f5a1297a20299bbb60a304a0ec8edd84","type":"APP","apiClientId":3983114241,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"307069274","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Tag Manager"},{"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":"TNBL UK","paymentSettings":{"currencyCode":"GBP"},"myshopifyDomain":"tnbl-uk.myshopify.com","countryCode":"GB","storefrontUrl":"https:\/\/www.tnbl.co.uk"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"10912290505050","handle":"onail-nail-drill-pro-max","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54397449830746","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11024830300506","handle":"rechargeable-intelligent-uv-disinfector-for-nail-beauty-tools","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54933241299290","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11022935228762","handle":"mr-nail-3-layer-lint-free-nail-wipes-500pcs","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54925456146778","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1710,{"id":"11022914093402","handle":"disposable-salon-towels-biodegradable-70-x-35cm-hair-nails-pedicure","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54925336052058","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11022872576346","handle":"tnbl-breast-cancer-charity-day-5-entry-ticket-wednesday-21st-october-2026","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54925177520474","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11020550406490","handle":"apres-nova-led-lamp-mini","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54916494557530","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11020474974554","handle":"adjustable-silicone-nail-stamper-enlarge-reduce-stamping-designs","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54915240788314","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11006315200858","handle":"cnd-shellac™-magenta-sky-polish-7-3ml-hema-tpo-free","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54841813926234","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"11005042655578","handle":"saeyang-k38-portable-nail-file-machine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54838219735386","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10666571170138","handle":"tnbl-h-easy-french-v-shape-cutters-silver","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53270702719322","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10666571268442","handle":"tnbl-k-easy-french-water-drop-cutters-gold","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53270702883162","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10666571235674","handle":"tnbl-k-easy-french-water-drop-cutters-silver","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53270702850394","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10666595680602","handle":"tnbl-0-25g-long-handle-measuring-spoon-4pcs","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53270759309658","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.tnbl.co.uk/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"193010991450","themePublished":"true","eventMetadataId":"c75db4c8-fb76-4afd-90e3-3ad003c35abc","pageType":"home","shopId":"98633711962","storefrontBaseUrl":"https:\/\/www.tnbl.co.uk","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1710<script>
1711  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1712  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1713  window.ShopifyAnalytics.meta.currency = 'GBP';
1714  var meta = {"page":{"pageType":"home","requestId":"cfc2cb5b-ea41-489e-8d0c-2823e7cb911e-1791516082"}};
1715  for (var attr in meta) {
1716    window.ShopifyAnalytics.meta[attr] = meta[attr];
1717  }
1718</script>
vendor: 1 bytes, line 1718
1718
1719<script class="analytics">
1720  (function () {
1721    var customDocumentWrite = function(content) {
1722      var jquery = null;
1723
1724      if (window.jQuery) {
1725        jquery = window.jQuery;
1726      } else if (window.Checkout && window.Checkout.$) {
1727        jquery = window.Checkout.$;
1728      }
1729
1730      if (jquery) {
1731        jquery('body').append(content);
1732      }
1733    };
1734
1735    var hasLoggedConversion = function(token) {
1736      if (token) {
1737        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
1738      }
1739      return false;
1740    }
1741
1742    var setCookieIfConversion = function(token) {
1743      if (token) {
1744        var twoMonthsFromNow = new Date(Date.now());
1745        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
1746
1747        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
1748      }
1749    }
1750
1751    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
1752    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
1753    if (trekkie.integrations) {
1754      return;
1755    }
1756    trekkie.methods = [
1757      'identify',
1758      'page',
1759      'ready',
1760      'track',
1761      'trackForm',
1762      'trackLink'
1763    ];
1764    trekkie.factory = function(method) {
1765      return function() {
1766        var args = Array.prototype.slice.call(arguments);
1767        args.unshift(method);
1768        trekkie.push(args);
1769        if (method == 'track' || method == 'page') {
1770          var pageUrl;
1771          try {
1772            pageUrl = window.location.href;
1773          } catch (e) {}
1774          var pageReferrer;
1775          try {
1776            pageReferrer = document.referrer;
1777          } catch (e) {}
1778          try {
1779            if (window.__TREKKIE_SHIM_QUEUE == null) {
1780              window.__TREKKIE_SHIM_QUEUE = [];
1781            }
1782            window.__TREKKIE_SHIM_QUEUE.push({
1783              from: 'trekkie-stub',
1784              method: method,
1785              args: args.slice(1),
1786              pageContext: {
1787                url: pageUrl,
1788                referrer: pageReferrer
1789              }
1790            });
1791          } catch (e) {
1792            // no-op
1793          }
1794        }
1795        return trekkie;
1796      };
1797    };
1798    for (var i = 0; i < trekkie.methods.length; i++) {
1799      var key = trekkie.methods[i];
1800      trekkie[key] = trekkie.factory(key);
1801    }
1802    trekkie.load = function(config) {
1803      trekkie.config = config || {};
1804      trekkie.config.initialDocumentCookie = document.cookie;
1805      var first = document.getElementsByTagName('script')[0];
1806var script = document.createElement('script');
1807script.type = 'text/javascript';
1808script.onerror = function(e) {
1809  var scriptFallback = document.createElement('script');
1810  scriptFallback.type = 'text/javascript';
1811  scriptFallback.onerror = function(error) {
1812          var Monorail = {
1813      produce: function produce(monorailDomain, schemaId, payload) {
1814        var currentMs = new Date().getTime();
1815        var event = {
1816          schema_id: schemaId,
1817          payload: payload,
1818          metadata: {
1819            event_created_at_ms: currentMs,
1820            event_sent_at_ms: currentMs
1821          }
1822        };
1823        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
1824      },
1825      sendRequest: function sendRequest(endpointUrl, payload) {
1826        // Try the sendBeacon API
1827        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
1828          var blobData = new window.Blob([payload], {
1829            type: 'text/plain'
1830          });
1831
1832          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
1833            return true;
1834          } // sendBeacon was not successful
1835
1836        } // XHR beacon
1837
1838        var xhr = new XMLHttpRequest();
1839
1840        try {
1841          xhr.open('POST', endpointUrl);
1842          xhr.setRequestHeader('Content-Type', 'text/plain');
1843          xhr.send(payload);
1844        } catch (e) {
1845          console.log(e);
1846        }
1847
1848        return false;
1849      },
1850      isIos12: function isIos12() {
1851        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
1852      }
1853    };
1854    Monorail.produce('monorail-edge.shopifysvc.com',
1855      'trekkie_storefront_load_errors/1.1',
1856      {shop_id: 98633711962,
1857      theme_id: 193010991450,
1858      app_name: "storefront",
1859      context_url: window.location.href,
1860      source_url: "//www.tnbl.co.uk/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
1861
1862  };
1863  scriptFallback.async = true;
1864  scriptFallback.src = '//www.tnbl.co.uk/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
1865  first.parentNode.insertBefore(scriptFallback, first);
1866};
1867script.async = true;
1868script.src = '//www.tnbl.co.uk/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
1869first.parentNode.insertBefore(script, first);
1870
1871    };
1872    trekkie.load(
1873      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":98633711962,"isMerchantRequest":null,"themeId":193010991450,"themeCityHash":"6561244280233220478","contentLanguage":"en","currency":"GBP","eventMetadataId":"c75db4c8-fb76-4afd-90e3-3ad003c35abc"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
1874    );
1875
1876    var loaded = false;
1877    trekkie.ready(function() {
1878      if (loaded) return;
1879      loaded = true;
1880
1881      window.ShopifyAnalytics.lib = window.trekkie;
1882
1883      var originalDocumentWrite = document.write;
1884      document.write = customDocumentWrite;
1885      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
1886      document.write = originalDocumentWrite;
1887
1888      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
1889      var token = match? match[1]: undefined;
1890      if (!hasLoggedConversion(token)) {
1891        setCookieIfConversion(token);
1892        
1893      }
1894    });
1895
1896    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"cfc2cb5b-ea41-489e-8d0c-2823e7cb911e-1791516082","shopifyEmitted":true});
1897
1898    var eventsListenerScript = document.createElement('script');
1899    eventsListenerScript.async = true;
1900    eventsListenerScript.src = "//www.tnbl.co.uk/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
1901    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
1902})();</script>
vendor: 1 bytes, line 1902
1902
1903<script
1904  defer
1905  src="https://www.tnbl.co.uk/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js"
1906  data-application="storefront-renderer"
1907  data-shop-id="98633711962"
1908  data-render-region="gcp-us-west1"
1909  data-page-type="index"
1910  data-theme-instance-id="193010991450"
1911  data-theme-name="Horizon"
1912  data-theme-version="3.2.1"
1913  data-monorail-region="shop_domain"
1914  data-resource-timing-sampling-rate="10"
1915  data-shs="true"
1916  data-shs-beacon="true"
1917  data-shs-export-with-fetch="true"
1918  data-shs-logs-sample-rate="1"
1919  data-shs-beacon-endpoint="https://www.tnbl.co.uk/api/collect"
1920></script>
1920
1921<meta name="shopify-y" content="79cb4c2c-205a-4b89-b875-2d7849e23950" data-expiration="1823073682000"><meta name="shopify-s" content="a5b4ee7d-e3fa-44b6-8494-d4551df1fa8e" data-expiration="1791517882000">
1922</head>
1923
1924  <body class="page-width-narrow card-hover-effect-none">
1925    <a
1926  class="skip-to-content-link button-secondary"
1927  href="#MainContent"
1928>
1929  Skip to content
1930</a>
1931
1932    <div id="header-group">
1933      <!-- BEGIN sections: header-group -->
1934<div id="shopify-section-sections--28213213561178__header_announcements_9jGBFp" class="shopify-section shopify-section-group-header-group">
1935
1936
1937  
1937<script
1938    src="//www.tnbl.co.uk/cdn/shop/t/6/assets/announcement-bar.js?v=34024675399582161451774530326"
1939    type="module"
1940    fetchpriority="low"
1941  ></script>
1941
1942
1943
1944<div class="section-background color-scheme-3"></div>
1945<aside
1946  class="announcement-bar spacing-style section section--page-width color-scheme-3"
1947  style="--padding-block-start: 15px; --padding-block-end:15px; 
1948--padding-inline-start:0px; --padding-inline-end:0px; 
1949; --border-bottom-width: 0px;"
1950>
1951  
1952
1953  <announcement-bar-component
1954    class="announcement-bar__slider"
1955    
1956      autoplay="5" aria-live="polite"
1957    
1958  >
1959    
1960      <slideshow-arrows
1961  position="center"
1962  
1963><button
1964  class="
1965    slideshow-control slideshow-control--previous
1966    
1967    
1968    slideshow-control--style-chevron
1969    button button-unstyled button-unstyled--transparent
1970     flip-x
1971  "
1972  
1973  aria-label="Previous slide"
1974  
1975  on:click="/previous"
1976  ref="previous"
1977>
1978  <span class="svg-wrapper icon-caret"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
1979  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
1980</svg>
1981</span>
1982</button>
1983<button
1984  class="
1985    slideshow-control slideshow-control--next
1986    
1987    
1988    slideshow-control--style-chevron
1989    button button-unstyled button-unstyled--transparent
1990    
1991  "
1992  
1993  aria-label="Next slide"
1994  
1995  on:click="/next"
1996  ref="next"
1997>
1998  <span class="svg-wrapper icon-caret"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
1999  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2000</svg>
2001</span>
2002</button>
2003</slideshow-arrows>
2004
2005    
2006
2007    <div class="announcement-bar__slides">
2008      
2009<slideshow-slide
2010    ref="slides[]"
2011    class="
2012      announcement-bar__slide
2013      text-block
2014      text-block--AM0lZaU1DR3pweWRvW__announcement_BxgCk9
2015      text-block--align-center
2016      text-block--full-width
2017      custom-typography
2018      custom-font-size
2019      
2020    "
2021    style="
2022      
2023--color: ;--font-size: 0.75rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-);        --letter-spacing: var(--letter-spacing--body-normal);
2024      --width: 100%;
2025      --text-align: center;
2026      --line-height: 1.2;
2027    "
2028    
2029    aria-hidden="false"
2030  >
2031    <p class="announcement-bar__text">
2032      Free UK mainland delivery on orders over £60
2033    </p>
2034
2035    
2036  </slideshow-slide>
2037
2038
2039
2040<slideshow-slide
2041    ref="slides[]"
2042    class="
2043      announcement-bar__slide
2044      text-block
2045      text-block--AVDhBRytvdzZSTGN6b__announcement_qJjj8M
2046      text-block--align-center
2047      text-block--full-width
2048      custom-typography
2049      custom-font-size
2050      
2051    "
2052    style="
2053      
2054--color: ;--font-size: 0.75rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-);        --letter-spacing: var(--letter-spacing--body-normal);
2055      --width: 100%;
2056      --text-align: center;
2057      --line-height: 1.2;
2058    "
2059    
2060    aria-hidden="true"
2061  >
2062    <p class="announcement-bar__text">
2063      Sign up for a Trade Account today
2064    </p>
2065
2066    
2067      <a
2068        class="announcement-bar__link"
2069        href="https://account.tnbl.co.uk"
2070      >
2071        <span class="visually-hidden">
2072          Sign up for a Trade Account today
2073        </span>
2074      </a>
2075    
2076  </slideshow-slide>
2077
2078
2079
2080<slideshow-slide
2081    ref="slides[]"
2082    class="
2083      announcement-bar__slide
2084      text-block
2085      text-block--AQXJDYUxHQVc2Qk9uQ__announcement_dC8YgV
2086      text-block--align-center
2087      text-block--full-width
2088      custom-typography
2089      custom-font-size
2090      
2091    "
2092    style="
2093      
2094--color: ;--font-size: 0.75rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-);        --letter-spacing: var(--letter-spacing--body-normal);
2095      --width: 100%;
2096      --text-align: center;
2097      --line-height: 1.2;
2098    "
2099    
2100    aria-hidden="true"
2101  >
2102    <p class="announcement-bar__text">
2103      Check out our Nail Courses
2104    </p>
2105
2106    
2107      <a
2108        class="announcement-bar__link"
2109        href="/pages/courses"
2110      >
2111        <span class="visually-hidden">
2112          Check out our Nail Courses
2113        </span>
2114      </a>
2115    
2116  </slideshow-slide>
2117
2118
2119
2120    </div>
2121  </announcement-bar-component>
2122</aside>
2123
2124
2125
2126
2127</div><header id="shopify-section-sections--28213213561178__header_section" class="shopify-section shopify-section-group-header-group header-section">
2128
2129
2130
2131
2132
2133<script type="application/ld+json">
2134  {
2135    "@context": "http://schema.org",
2136    "@type": "Organization",
2137    "name": "TNBL UK",
2138    
2139      "logo": "https:\/\/www.tnbl.co.uk\/cdn\/shop\/files\/TNBL.png?v=1766497859\u0026width=500",
2140    
2141    "url": "https:\/\/www.tnbl.co.uk"
2142  }
2143</script>
2143
2144
2145<header-component
2146  id="header-component"
2147  class="header"
2148  data-theme-color="rgb(255 255 255)"
2149  
2150  
2151    sticky="always"
2152  
2153  data-skip-node-update
2154  data-scroll-direction="none"
2155><h1 class="visually-hidden">TNBL UK</h1>
2156    
2157
2158    
2159
2160    
2161    
2162      <div
2163        class="header__row header__row--top color-scheme-1 section section--full-width-margin section--page-width"
2164        ref="headerRowTop"style="--border-bottom-width: 0px; --border-bottom-width-mobile: 0px;">
2165        <div class="header__columns spacing-style">
2166          <div
2167      class="header__column header__column--left"
2168      data-testid="header-top-left"
2169    >
2170      
2171        
2172          
2173              
2174
2175
2176
2177    <div
2178      class="header__drawer desktop:hidden"
2179      ref="headerDrawerContainer"
2180      
2181    >
2182      
2183
2184<script
2185  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/header-drawer.js?v=44357639294953783801774530325"
2186  type="module"
2187  fetchpriority="low"
2188></script>
2188
2189
2190<header-drawer
2191  class="header-drawer header__drawer--mobile"
2192  style="--menu-image-border-radius: 12px; --resource-card-corner-radius: 12px;"
2193>
2194  <details
2195    id="Details-menu-drawer-container"
2196    data-skip-node-update="true"
2197    class="menu-drawer-container"
2198    ref="details"
2199    scroll-lock
2200  >
2201    <summary
2202      class="header__icon header__icon--menu header__icon--summary"
2203      aria-label="Menu"
2204      on:click="/toggle"
2205    >
2206      <span class="svg-wrapper header-drawer-icon header-drawer-icon--open"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2207  <path d="M1 3.5H13" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
2208  <path d="M1 10.5H13" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
2209</svg>
2210</span>
2211      <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2212  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2213  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2214</svg>
2215</span>
2216    </summary>
2217    <div
2218      data-header-drawer
2219      class="
2220        menu-drawer
2221        motion-reduce
2222        color-scheme-1
2223      "
2224    >
2225      <button
2226        class="button button-unstyled close-button menu-drawer__close-button"
2227        type="button"
2228        aria-label="Close"
2229        on:click="/close"
2230      >
2231        <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2232  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2233  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2234</svg>
2235</span>
2236      </button>
2237      <nav
2238        class="menu-drawer__navigation"
2239        style="--menu-top-level-font-family: var(--font-body--family);
2240--menu-top-level-font-size-desktop: 1rem; --menu-top-level-font-style: var(--font-body--style); --menu-top-level-font-weight: var(--font-body--weight); --menu-top-level-font-case:none;
2241
2242  --menu-top-level-font-size: var(--menu-font-2xl--size); --menu-top-level-font-line-height:
2243  var(--menu-font-2xl--line-height);
2244
2245--menu-top-level-font-color: var(--color-foreground); --menu-top-level-font-color-rgb: var(--color-foreground-rgb);
2246
2247--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
2248var(--font-body--style); --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
2249none;
2250
2251    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
2252    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
2253    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
2254  
2255--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
2256var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
2257none;
2258
2259    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
2260    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
2261    --menu-child-active-font-color: var(--color-foreground);
2262  
2263
2264        "
2265      >
2266        <ul
2267          class="menu-drawer__menu has-submenu"
2268          role="list"
2269        >
2270
2271
2272              <li
2273                class="menu-drawer__list-item"
2274                style="--menu-drawer-animation-index: 1;"
2275              ><a
2276                    id="HeaderDrawer-new-in"
2277                    href="/collections/new"
2278                    class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
2279                    
2280                  >
2281                    <span class="menu-drawer__menu-item-text wrap-text">New In</span>
2282                  </a></li>
2283              <li
2284                class="menu-drawer__list-item"
2285                style="--menu-drawer-animation-index: 2;"
2286              ><details
2287                    id="Details-menu-drawer-menu-item-2"
2288                    class="menu-drawer__menu-container"
2289                  >
2290                    <summary
2291                      id="HeaderDrawer-apres-nails"
2292                      class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
2293                      on:click="header-drawer/open"
2294                    >
2295                      <span class="menu-drawer__menu-item-text wrap-text">Apres Nails</span>
2296                      <span class="svg-wrapper icon-caret icon-caret--forward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2297  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2298</svg>
2299</span>
2300                    </summary>
2301                    <div
2302                      id="link-apres-nails"
2303                      class="menu-drawer__submenu has-submenu gradient motion-reduce"
2304                      tabindex="-1"
2305                      style="--menu-drawer-animation-index: 2;"
2306                    >
2307                      <div class="menu-drawer__inner-submenu">
2308                        <div class="menu-drawer__nav-buttons">
2309                          <button
2310                            class="button menu-drawer__back-button focus-inset"
2311                            aria-expanded="true"
2312                            on:click="header-drawer/back"
2313                            aria-label="Back"
2314                          >
2315                            <span class="svg-wrapper icon-caret icon-caret--backward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2316  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2317</svg>
2318</span>
2319                            <span class="menu-drawer__menu-item-text wrap-text">Apres Nails</span>
2320                          </button>
2321                          <button
2322                            class="button button-unstyled close-button menu-drawer__close-button"
2323                            type="button"
2324                            aria-label="Close"
2325                            on:click="header-drawer/close"
2326                          >
2327                            <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2328  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2329  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2330</svg>
2331</span>
2332                          </button>
2333                        </div>
2334                        
2335                        
2336                        <ul
2337                          class="menu-drawer__menu menu-drawer__menu--childlist"
2338                          role="list"
2339                          tabindex="-1"
2340                        >
2341                          <li
2342                              class="
2343                                menu-drawer__list-item
2344                                menu-drawer__list-item--flat
2345                              "
2346                            >
2347                                
2348<a
2349                                    id="HeaderDrawer-apres-nails-apres-nails"
2350                                    href="/pages/apres"
2351                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
2352                                  >
2353                                    <span class="menu-drawer__menu-item-text wrap-text">Apres Nails</span>
2354                                  </a>
2355                                  
2356                                  <ul
2357                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
2358                                    role="list"
2359                                    tabindex="-1"
2360                                  ><li
2361                                        class="menu-drawer__list-item"
2362                                        style="--menu-drawer-animation-index: 1;"
2363                                      >
2364                                        <a
2365                                          id="HeaderDrawer-apres-nails-apres-nails-gel-x-kits"
2366                                          href="/collections/apres-gel-x-kits"
2367                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2368                                          
2369                                        >
2370                                          
2371                                          <span class="menu-drawer__menu-item-text wrap-text">Gel-X Kits</span>
2372                                        </a>
2373                                      </li><li
2374                                        class="menu-drawer__list-item"
2375                                        style="--menu-drawer-animation-index: 2;"
2376                                      >
2377                                        <a
2378                                          id="HeaderDrawer-apres-nails-apres-nails-gel-x-tips"
2379                                          href="/collections/apres-gel-x-tips"
2380                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2381                                          
2382                                        >
2383                                          
2384                                          <span class="menu-drawer__menu-item-text wrap-text">Gel-X Tips</span>
2385                                        </a>
2386                                      </li><li
2387                                        class="menu-drawer__list-item"
2388                                        style="--menu-drawer-animation-index: 3;"
2389                                      >
2390                                        <a
2391                                          id="HeaderDrawer-apres-nails-apres-nails-gel-colours"
2392                                          href="/collections/apres-gel-colour"
2393                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2394                                          
2395                                        >
2396                                          
2397                                          <span class="menu-drawer__menu-item-text wrap-text">Gel Colours</span>
2398                                        </a>
2399                                      </li><li
2400                                        class="menu-drawer__list-item"
2401                                        style="--menu-drawer-animation-index: 4;"
2402                                      >
2403                                        <a
2404                                          id="HeaderDrawer-apres-nails-apres-nails-essentials"
2405                                          href="/collections/apres-essentials"
2406                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2407                                          
2408                                        >
2409                                          
2410                                          <span class="menu-drawer__menu-item-text wrap-text">Essentials</span>
2411                                        </a>
2412                                      </li><li
2413                                        class="menu-drawer__list-item"
2414                                        style="--menu-drawer-animation-index: 5;"
2415                                      >
2416                                        <a
2417                                          id="HeaderDrawer-apres-nails-apres-nails-tools-accessories"
2418                                          href="/collections/apres-tools-accessories"
2419                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2420                                          
2421                                        >
2422                                          
2423                                          <span class="menu-drawer__menu-item-text wrap-text">Tools &amp; Accessories</span>
2424                                        </a>
2425                                      </li><li
2426                                        class="menu-drawer__list-item"
2427                                        style="--menu-drawer-animation-index: 6;"
2428                                      >
2429                                        <a
2430                                          id="HeaderDrawer-apres-nails-apres-nails-aer-gel"
2431                                          href="/collections/apres-aer-gel"
2432                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2433                                          
2434                                        >
2435                                          
2436                                          <span class="menu-drawer__menu-item-text wrap-text">Aer Gel</span>
2437                                        </a>
2438                                      </li><li
2439                                        class="menu-drawer__list-item"
2440                                        style="--menu-drawer-animation-index: 7;"
2441                                      >
2442                                        <a
2443                                          id="HeaderDrawer-apres-nails-apres-nails-art-inks"
2444                                          href="/collections/apres-art-inks"
2445                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2446                                          
2447                                        >
2448                                          
2449                                          <span class="menu-drawer__menu-item-text wrap-text">Art Inks</span>
2450                                        </a>
2451                                      </li><li
2452                                        class="menu-drawer__list-item"
2453                                        style="--menu-drawer-animation-index: 8;"
2454                                      >
2455                                        <a
2456                                          id="HeaderDrawer-apres-nails-apres-nails-apres-clearance"
2457                                          href="/collections/apres-clearance"
2458                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2459                                          
2460                                        >
2461                                          
2462                                          <span class="menu-drawer__menu-item-text wrap-text">Apres Clearance</span>
2463                                        </a>
2464                                      </li></ul></li></ul>
2465                        
2466                      </div>
2467                    </div>
2468                  </details></li>
2469              <li
2470                class="menu-drawer__list-item"
2471                style="--menu-drawer-animation-index: 3;"
2472              ><details
2473                    id="Details-menu-drawer-menu-item-3"
2474                    class="menu-drawer__menu-container"
2475                  >
2476                    <summary
2477                      id="HeaderDrawer-nails"
2478                      class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
2479                      on:click="header-drawer/open"
2480                    >
2481                      <span class="menu-drawer__menu-item-text wrap-text">Nails</span>
2482                      <span class="svg-wrapper icon-caret icon-caret--forward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2483  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2484</svg>
2485</span>
2486                    </summary>
2487                    <div
2488                      id="link-nails"
2489                      class="menu-drawer__submenu has-submenu gradient motion-reduce"
2490                      tabindex="-1"
2491                      style="--menu-drawer-animation-index: 3;"
2492                    >
2493                      <div class="menu-drawer__inner-submenu">
2494                        <div class="menu-drawer__nav-buttons">
2495                          <button
2496                            class="button menu-drawer__back-button focus-inset"
2497                            aria-expanded="true"
2498                            on:click="header-drawer/back"
2499                            aria-label="Back"
2500                          >
2501                            <span class="svg-wrapper icon-caret icon-caret--backward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2502  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2503</svg>
2504</span>
2505                            <span class="menu-drawer__menu-item-text wrap-text">Nails</span>
2506                          </button>
2507                          <button
2508                            class="button button-unstyled close-button menu-drawer__close-button"
2509                            type="button"
2510                            aria-label="Close"
2511                            on:click="header-drawer/close"
2512                          >
2513                            <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2514  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2515  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
2516</svg>
2517</span>
2518                          </button>
2519                        </div>
2520                        
2521                          
2522                          
2523                            <div class="menu-drawer__shop-by-colour menu-drawer__animated-element">
2524                              <p class="menu-drawer__shop-by-colour-title">Shop by Colour</p>
2525                              <ul class="menu-drawer__shop-by-colour-grid list-unstyled" role="list">
2526                                
2527                                  
2528                                  <li>
2529                                    <a
2530                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Beige&sort_by=best-selling&grid=default"
2531                                      class="menu-drawer__shop-by-colour-link"
2532                                      aria-label="Beige"
2533                                    >
2534                                      
2535                                        <span class="menu-drawer__shop-by-colour-placeholder"></span>
2536                                      
2537                                      <span class="menu-drawer__shop-by-colour-name">Beige</span>
2538                                    </a>
2539                                  </li>
2540                                
2541                                  
2542                                  <li>
2543                                    <a
2544                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Black&sort_by=best-selling&grid=default"
2545                                      class="menu-drawer__shop-by-colour-link"
2546                                      aria-label="Black"
2547                                    >
2548                                      
2549                                        <span class="menu-drawer__shop-by-colour-swatch">
2550                                          <img
2551                                            src="//www.tnbl.co.uk/cdn/shop/files/Black.png?v=1770112825&width=200"
2552                                            alt=""
2553                                            width="24"
2554                                            height="24"
2555                                            loading="lazy"
2556                                          >
2557                                        </span>
2558                                      
2559                                      <span class="menu-drawer__shop-by-colour-name">Black</span>
2560                                    </a>
2561                                  </li>
2562                                
2563                                  
2564                                  <li>
2565                                    <a
2566                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Blue&sort_by=best-selling&grid=default"
2567                                      class="menu-drawer__shop-by-colour-link"
2568                                      aria-label="Blue"
2569                                    >
2570                                      
2571                                        <span class="menu-drawer__shop-by-colour-swatch">
2572                                          <img
2573                                            src="//www.tnbl.co.uk/cdn/shop/files/Blue.png?v=1770112825&width=200"
2574                                            alt=""
2575                                            width="24"
2576                                            height="24"
2577                                            loading="lazy"
2578                                          >
2579                                        </span>
2580                                      
2581                                      <span class="menu-drawer__shop-by-colour-name">Blue</span>
2582                                    </a>
2583                                  </li>
2584                                
2585                                  
2586                                  <li>
2587                                    <a
2588                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Brown&sort_by=best-selling&grid=default"
2589                                      class="menu-drawer__shop-by-colour-link"
2590                                      aria-label="Brown"
2591                                    >
2592                                      
2593                                        <span class="menu-drawer__shop-by-colour-swatch">
2594                                          <img
2595                                            src="//www.tnbl.co.uk/cdn/shop/files/Brown.png?v=1770112826&width=200"
2596                                            alt=""
2597                                            width="24"
2598                                            height="24"
2599                                            loading="lazy"
2600                                          >
2601                                        </span>
2602                                      
2603                                      <span class="menu-drawer__shop-by-colour-name">Brown</span>
2604                                    </a>
2605                                  </li>
2606                                
2607                                  
2608                                  <li>
2609                                    <a
2610                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Clear&sort_by=best-selling&grid=default"
2611                                      class="menu-drawer__shop-by-colour-link"
2612                                      aria-label="Clear"
2613                                    >
2614                                      
2615                                        <span class="menu-drawer__shop-by-colour-swatch">
2616                                          <img
2617                                            src="//www.tnbl.co.uk/cdn/shop/files/Clear.png?v=1770112825&width=200"
2618                                            alt=""
2619                                            width="24"
2620                                            height="24"
2621                                            loading="lazy"
2622                                          >
2623                                        </span>
2624                                      
2625                                      <span class="menu-drawer__shop-by-colour-name">Clear</span>
2626                                    </a>
2627                                  </li>
2628                                
2629                                  
2630                                  <li>
2631                                    <a
2632                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Gold&sort_by=best-selling&grid=default"
2633                                      class="menu-drawer__shop-by-colour-link"
2634                                      aria-label="Gold"
2635                                    >
2636                                      
2637                                        <span class="menu-drawer__shop-by-colour-swatch">
2638                                          <img
2639                                            src="//www.tnbl.co.uk/cdn/shop/files/Gold.png?v=1770112826&width=200"
2640                                            alt=""
2641                                            width="24"
2642                                            height="24"
2643                                            loading="lazy"
2644                                          >
2645                                        </span>
2646                                      
2647                                      <span class="menu-drawer__shop-by-colour-name">Gold</span>
2648                                    </a>
2649                                  </li>
2650                                
2651                                  
2652                                  <li>
2653                                    <a
2654                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Green&sort_by=best-selling&grid=default"
2655                                      class="menu-drawer__shop-by-colour-link"
2656                                      aria-label="Green"
2657                                    >
2658                                      
2659                                        <span class="menu-drawer__shop-by-colour-swatch">
2660                                          <img
2661                                            src="//www.tnbl.co.uk/cdn/shop/files/Green.png?v=1770112825&width=200"
2662                                            alt=""
2663                                            width="24"
2664                                            height="24"
2665                                            loading="lazy"
2666                                          >
2667                                        </span>
2668                                      
2669                                      <span class="menu-drawer__shop-by-colour-name">Green</span>
2670                                    </a>
2671                                  </li>
2672                                
2673                                  
2674                                  <li>
2675                                    <a
2676                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Grey&sort_by=best-selling&grid=default"
2677                                      class="menu-drawer__shop-by-colour-link"
2678                                      aria-label="Grey"
2679                                    >
2680                                      
2681                                        <span class="menu-drawer__shop-by-colour-swatch">
2682                                          <img
2683                                            src="//www.tnbl.co.uk/cdn/shop/files/Grey.png?v=1770112826&width=200"
2684                                            alt=""
2685                                            width="24"
2686                                            height="24"
2687                                            loading="lazy"
2688                                          >
2689                                        </span>
2690                                      
2691                                      <span class="menu-drawer__shop-by-colour-name">Grey</span>
2692                                    </a>
2693                                  </li>
2694                                
2695                                  
2696                                  <li>
2697                                    <a
2698                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Natural&sort_by=best-selling&grid=default"
2699                                      class="menu-drawer__shop-by-colour-link"
2700                                      aria-label="Natural"
2701                                    >
2702                                      
2703                                        <span class="menu-drawer__shop-by-colour-swatch">
2704                                          <img
2705                                            src="//www.tnbl.co.uk/cdn/shop/files/Natural.png?v=1770112826&width=200"
2706                                            alt=""
2707                                            width="24"
2708                                            height="24"
2709                                            loading="lazy"
2710                                          >
2711                                        </span>
2712                                      
2713                                      <span class="menu-drawer__shop-by-colour-name">Natural</span>
2714                                    </a>
2715                                  </li>
2716                                
2717                                  
2718                                  <li>
2719                                    <a
2720                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Nude&sort_by=best-selling&grid=default"
2721                                      class="menu-drawer__shop-by-colour-link"
2722                                      aria-label="Nude"
2723                                    >
2724                                      
2725                                        <span class="menu-drawer__shop-by-colour-swatch">
2726                                          <img
2727                                            src="//www.tnbl.co.uk/cdn/shop/files/Nude.png?v=1770112825&width=200"
2728                                            alt=""
2729                                            width="24"
2730                                            height="24"
2731                                            loading="lazy"
2732                                          >
2733                                        </span>
2734                                      
2735                                      <span class="menu-drawer__shop-by-colour-name">Nude</span>
2736                                    </a>
2737                                  </li>
2738                                
2739                                  
2740                                  <li>
2741                                    <a
2742                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Orange&sort_by=best-selling&grid=default"
2743                                      class="menu-drawer__shop-by-colour-link"
2744                                      aria-label="Orange"
2745                                    >
2746                                      
2747                                        <span class="menu-drawer__shop-by-colour-swatch">
2748                                          <img
2749                                            src="//www.tnbl.co.uk/cdn/shop/files/Orange.png?v=1770112825&width=200"
2750                                            alt=""
2751                                            width="24"
2752                                            height="24"
2753                                            loading="lazy"
2754                                          >
2755                                        </span>
2756                                      
2757                                      <span class="menu-drawer__shop-by-colour-name">Orange</span>
2758                                    </a>
2759                                  </li>
2760                                
2761                                  
2762                                  <li>
2763                                    <a
2764                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Pink&sort_by=best-selling&grid=default"
2765                                      class="menu-drawer__shop-by-colour-link"
2766                                      aria-label="Pink"
2767                                    >
2768                                      
2769                                        <span class="menu-drawer__shop-by-colour-swatch">
2770                                          <img
2771                                            src="//www.tnbl.co.uk/cdn/shop/files/Pink.png?v=1770112826&width=200"
2772                                            alt=""
2773                                            width="24"
2774                                            height="24"
2775                                            loading="lazy"
2776                                          >
2777                                        </span>
2778                                      
2779                                      <span class="menu-drawer__shop-by-colour-name">Pink</span>
2780                                    </a>
2781                                  </li>
2782                                
2783                                  
2784                                  <li>
2785                                    <a
2786                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Purple&sort_by=best-selling&grid=default"
2787                                      class="menu-drawer__shop-by-colour-link"
2788                                      aria-label="Purple"
2789                                    >
2790                                      
2791                                        <span class="menu-drawer__shop-by-colour-swatch">
2792                                          <img
2793                                            src="//www.tnbl.co.uk/cdn/shop/files/Purple.png?v=1770112826&width=200"
2794                                            alt=""
2795                                            width="24"
2796                                            height="24"
2797                                            loading="lazy"
2798                                          >
2799                                        </span>
2800                                      
2801                                      <span class="menu-drawer__shop-by-colour-name">Purple</span>
2802                                    </a>
2803                                  </li>
2804                                
2805                                  
2806                                  <li>
2807                                    <a
2808                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Red&sort_by=best-selling&grid=default"
2809                                      class="menu-drawer__shop-by-colour-link"
2810                                      aria-label="Red"
2811                                    >
2812                                      
2813                                        <span class="menu-drawer__shop-by-colour-swatch">
2814                                          <img
2815                                            src="//www.tnbl.co.uk/cdn/shop/files/Red.png?v=1770112825&width=200"
2816                                            alt=""
2817                                            width="24"
2818                                            height="24"
2819                                            loading="lazy"
2820                                          >
2821                                        </span>
2822                                      
2823                                      <span class="menu-drawer__shop-by-colour-name">Red</span>
2824                                    </a>
2825                                  </li>
2826                                
2827                                  
2828                                  <li>
2829                                    <a
2830                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Silver&sort_by=best-selling&grid=default"
2831                                      class="menu-drawer__shop-by-colour-link"
2832                                      aria-label="Silver"
2833                                    >
2834                                      
2835                                        <span class="menu-drawer__shop-by-colour-swatch">
2836                                          <img
2837                                            src="//www.tnbl.co.uk/cdn/shop/files/Silver.png?v=1770112826&width=200"
2838                                            alt=""
2839                                            width="24"
2840                                            height="24"
2841                                            loading="lazy"
2842                                          >
2843                                        </span>
2844                                      
2845                                      <span class="menu-drawer__shop-by-colour-name">Silver</span>
2846                                    </a>
2847                                  </li>
2848                                
2849                                  
2850                                  <li>
2851                                    <a
2852                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=White&sort_by=best-selling&grid=default"
2853                                      class="menu-drawer__shop-by-colour-link"
2854                                      aria-label="White"
2855                                    >
2856                                      
2857                                        <span class="menu-drawer__shop-by-colour-swatch">
2858                                          <img
2859                                            src="//www.tnbl.co.uk/cdn/shop/files/White.png?v=1770112826&width=200"
2860                                            alt=""
2861                                            width="24"
2862                                            height="24"
2863                                            loading="lazy"
2864                                          >
2865                                        </span>
2866                                      
2867                                      <span class="menu-drawer__shop-by-colour-name">White</span>
2868                                    </a>
2869                                  </li>
2870                                
2871                                  
2872                                  <li>
2873                                    <a
2874                                      href="/collections/gel-nail-polish?filter.p.m.custom.colour=Yellow&sort_by=best-selling&grid=default"
2875                                      class="menu-drawer__shop-by-colour-link"
2876                                      aria-label="Yellow"
2877                                    >
2878                                      
2879                                        <span class="menu-drawer__shop-by-colour-swatch">
2880                                          <img
2881                                            src="//www.tnbl.co.uk/cdn/shop/files/Yellow.png?v=1770112824&width=200"
2882                                            alt=""
2883                                            width="24"
2884                                            height="24"
2885                                            loading="lazy"
2886                                          >
2887                                        </span>
2888                                      
2889                                      <span class="menu-drawer__shop-by-colour-name">Yellow</span>
2890                                    </a>
2891                                  </li>
2892                                
2893                              </ul>
2894                            </div>
2895                          
2896                        
2897                        
2898                        <ul
2899                          class="menu-drawer__menu menu-drawer__menu--childlist"
2900                          role="list"
2901                          tabindex="-1"
2902                        >
2903                          <li
2904                              class="
2905                                menu-drawer__list-item
2906                                menu-drawer__list-item--flat
2907                              "
2908                            >
2909                                
2910<a
2911                                    id="HeaderDrawer-nails-nail-extensions"
2912                                    href="/collections/nail-extensions"
2913                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
2914                                  >
2915                                    <span class="menu-drawer__menu-item-text wrap-text">Nail Extensions</span>
2916                                  </a>
2917                                  
2918                                  <ul
2919                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
2920                                    role="list"
2921                                    tabindex="-1"
2922                                  ><li
2923                                        class="menu-drawer__list-item"
2924                                        style="--menu-drawer-animation-index: 1;"
2925                                      >
2926                                        <a
2927                                          id="HeaderDrawer-nails-nail-extensions-acrylic-powder"
2928                                          href="/collections/nail-extensions-acrylic-powder"
2929                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2930                                          
2931                                        >
2932                                          
2933                                          <span class="menu-drawer__menu-item-text wrap-text">Acrylic Powder</span>
2934                                        </a>
2935                                      </li><li
2936                                        class="menu-drawer__list-item"
2937                                        style="--menu-drawer-animation-index: 2;"
2938                                      >
2939                                        <a
2940                                          id="HeaderDrawer-nails-nail-extensions-acrylic-monomer-liquids"
2941                                          href="/collections/nail-extensions-acrylic-monomer-liquids"
2942                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2943                                          
2944                                        >
2945                                          
2946                                          <span class="menu-drawer__menu-item-text wrap-text">Acrylic Monomer &amp; Liquids</span>
2947                                        </a>
2948                                      </li><li
2949                                        class="menu-drawer__list-item"
2950                                        style="--menu-drawer-animation-index: 3;"
2951                                      >
2952                                        <a
2953                                          id="HeaderDrawer-nails-nail-extensions-acrylic-gel-brushes"
2954                                          href="/collections/nail-extensions-acrylic-gel-brushes"
2955                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2956                                          
2957                                        >
2958                                          
2959                                          <span class="menu-drawer__menu-item-text wrap-text">Acrylic Gel &amp; Brushes</span>
2960                                        </a>
2961                                      </li><li
2962                                        class="menu-drawer__list-item"
2963                                        style="--menu-drawer-animation-index: 4;"
2964                                      >
2965                                        <a
2966                                          id="HeaderDrawer-nails-nail-extensions-soft-gel-extensions"
2967                                          href="/collections/nail-extensions-soft-gel-extensions"
2968                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2969                                          
2970                                        >
2971                                          
2972                                          <span class="menu-drawer__menu-item-text wrap-text">Soft Gel Extensions</span>
2973                                        </a>
2974                                      </li><li
2975                                        class="menu-drawer__list-item"
2976                                        style="--menu-drawer-animation-index: 5;"
2977                                      >
2978                                        <a
2979                                          id="HeaderDrawer-nails-nail-extensions-dipping-powder"
2980                                          href="/collections/nail-extensions-dip-powder"
2981                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2982                                          
2983                                        >
2984                                          
2985                                          <span class="menu-drawer__menu-item-text wrap-text">Dipping Powder</span>
2986                                        </a>
2987                                      </li><li
2988                                        class="menu-drawer__list-item"
2989                                        style="--menu-drawer-animation-index: 6;"
2990                                      >
2991                                        <a
2992                                          id="HeaderDrawer-nails-nail-extensions-nail-prep"
2993                                          href="/collections/nail-extensions-nail-prep"
2994                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
2995                                          
2996                                        >
2997                                          
2998                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Prep</span>
2999                                        </a>
3000                                      </li><li
3001                                        class="menu-drawer__list-item"
3002                                        style="--menu-drawer-animation-index: 7;"
3003                                      >
3004                                        <a
3005                                          id="HeaderDrawer-nails-nail-extensions-nail-tips"
3006                                          href="/collections/nail-extensions-nail-tips"
3007                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3008                                          
3009                                        >
3010                                          
3011                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Tips</span>
3012                                        </a>
3013                                      </li><li
3014                                        class="menu-drawer__list-item"
3015                                        style="--menu-drawer-animation-index: 8;"
3016                                      >
3017                                        <a
3018                                          id="HeaderDrawer-nails-nail-extensions-nail-glue"
3019                                          href="/collections/nail-extensions-nail-glue"
3020                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3021                                          
3022                                        >
3023                                          
3024                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Glue</span>
3025                                        </a>
3026                                      </li></ul></li><li
3027                              class="
3028                                menu-drawer__list-item
3029                                menu-drawer__list-item--flat
3030                              "
3031                            >
3032                                
3033<a
3034                                    id="HeaderDrawer-nails-gel-nail-polish"
3035                                    href="/collections/gel-nail-polish"
3036                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3037                                  >
3038                                    <span class="menu-drawer__menu-item-text wrap-text">Gel &amp; Nail Polish</span>
3039                                  </a>
3040                                  
3041                                  <ul
3042                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3043                                    role="list"
3044                                    tabindex="-1"
3045                                  ><li
3046                                        class="menu-drawer__list-item"
3047                                        style="--menu-drawer-animation-index: 1;"
3048                                      >
3049                                        <a
3050                                          id="HeaderDrawer-nails-gel-nail-polish-nail-polish"
3051                                          href="/collections/nail-polish"
3052                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3053                                          
3054                                        >
3055                                          
3056                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Polish</span>
3057                                        </a>
3058                                      </li><li
3059                                        class="menu-drawer__list-item"
3060                                        style="--menu-drawer-animation-index: 2;"
3061                                      >
3062                                        <a
3063                                          id="HeaderDrawer-nails-gel-nail-polish-hema-tpo-free-gel-polish"
3064                                          href="/collections/https-www-tnbl-co-uk-collections-hema-tpo-free-gel-polish"
3065                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3066                                          
3067                                        >
3068                                          
3069                                          <span class="menu-drawer__menu-item-text wrap-text">Hema + TPO Free Gel Polish</span>
3070                                        </a>
3071                                      </li><li
3072                                        class="menu-drawer__list-item"
3073                                        style="--menu-drawer-animation-index: 3;"
3074                                      >
3075                                        <a
3076                                          id="HeaderDrawer-nails-gel-nail-polish-gel-polish"
3077                                          href="/collections/gel-nail-polish-gel-polish"
3078                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3079                                          
3080                                        >
3081                                          
3082                                          <span class="menu-drawer__menu-item-text wrap-text">Gel Polish</span>
3083                                        </a>
3084                                      </li><li
3085                                        class="menu-drawer__list-item"
3086                                        style="--menu-drawer-animation-index: 4;"
3087                                      >
3088                                        <a
3089                                          id="HeaderDrawer-nails-gel-nail-polish-builder-gel-biab"
3090                                          href="/collections/builder
3090-gel-biab"
3091                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3092                                          
3093                                        >
3094                                          
3095                                          <span class="menu-drawer__menu-item-text wrap-text">Builder Gel (BIAB)</span>
3096                                        </a>
3097                                      </li><li
3098                                        class="menu-drawer__list-item"
3099                                        style="--menu-drawer-animation-index: 5;"
3100                                      >
3101                                        <a
3102                                          id="HeaderDrawer-nails-gel-nail-polish-hard-gel"
3103                                          href="/collections/gel-nail-polish-hard-gel"
3104                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3105                                          
3106                                        >
3107                                          
3108                                          <span class="menu-drawer__menu-item-text wrap-text">Hard Gel</span>
3109                                        </a>
3110                                      </li><li
3111                                        class="menu-drawer__list-item"
3112                                        style="--menu-drawer-animation-index: 6;"
3113                                      >
3114                                        <a
3115                                          id="HeaderDrawer-nails-gel-nail-polish-poly-gel"
3116                                          href="/collections/poly-gel"
3117                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3118                                          
3119                                        >
3120                                          
3121                                          <span class="menu-drawer__menu-item-text wrap-text">Poly Gel</span>
3122                                        </a>
3123                                      </li><li
3124                                        class="menu-drawer__list-item"
3125                                        style="--menu-drawer-animation-index: 7;"
3126                                      >
3127                                        <a
3128                                          id="HeaderDrawer-nails-gel-nail-polish-gel-essentials"
3129                                          href="/collections/gel-nail-polish-gel-essentials"
3130                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3131                                          
3132                                        >
3133                                          
3134                                          <span class="menu-drawer__menu-item-text wrap-text">Gel Essentials</span>
3135                                        </a>
3136                                      </li><li
3137                                        class="menu-drawer__list-item"
3138                                        style="--menu-drawer-animation-index: 8;"
3139                                      >
3140                                        <a
3141                                          id="HeaderDrawer-nails-gel-nail-polish-nail-polish-essentials"
3142                                          href="/collections/nail-polish-essentials"
3143                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3144                                          
3145                                        >
3146                                          
3147                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Polish Essentials</span>
3148                                        </a>
3149                                      </li><li
3150                                        class="menu-drawer__list-item"
3151                                        style="--menu-drawer-animation-index: 9;"
3152                                      >
3153                                        <a
3154                                          id="HeaderDrawer-nails-gel-nail-polish-gel-art"
3155                                          href="/collections/gel-nail-polish-gel-art"
3156                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3157                                          
3158                                        >
3159                                          
3160                                          <span class="menu-drawer__menu-item-text wrap-text">Gel Art</span>
3161                                        </a>
3162                                      </li></ul></li><li
3163                              class="
3164                                menu-drawer__list-item
3165                                menu-drawer__list-item--flat
3166                              "
3167                            >
3168                                
3169<a
3170                                    id="HeaderDrawer-nails-nail-art"
3171                                    href="/collections/nail-art"
3172                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3173                                  >
3174                                    <span class="menu-drawer__menu-item-text wrap-text">Nail Art</span>
3175                                  </a>
3176                                  
3177                                  <ul
3178                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3179                                    role="list"
3180                                    tabindex="-1"
3181                                  ><li
3182                                        class="menu-drawer__list-item"
3183                                        style="--menu-drawer-animation-index: 1;"
3184                                      >
3185                                        <a
3186                                          id="HeaderDrawer-nails-nail-art-nail-art-brushes-tools"
3187                                          href="/collections/nail-art-brushes-tools"
3188                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3189                                          
3190                                        >
3191                                          
3192                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Art Brushes &amp; Tools</span>
3193                                        </a>
3194                                      </li><li
3195                                        class="menu-drawer__list-item"
3196                                        style="--menu-drawer-animation-index: 2;"
3197                                      >
3198                                        <a
3199                                          id="HeaderDrawer-nails-nail-art-chrome-powders-pigments"
3200                                          href="/collections/nail-art-chrome-powders-pigments"
3201                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3202                                          
3203                                        >
3204                                          
3205                                          <span class="menu-drawer__menu-item-text wrap-text">Chrome Powders &amp; Pigments</span>
3206                                        </a>
3207                                      </li><li
3208                                        class="menu-drawer__list-item"
3209                                        style="--menu-drawer-animation-index: 3;"
3210                                      >
3211                                        <a
3212                                          id="HeaderDrawer-nails-nail-art-crystals-rhinestones"
3213                                          href="/collections/nail-art-crystal-rhinestones"
3214                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3215                                          
3216                                        >
3217                                          
3218                                          <span class="menu-drawer__menu-item-text wrap-text">Crystals &amp; Rhinestones</span>
3219                                        </a>
3220                                      </li><li
3221                                        class="menu-drawer__list-item"
3222                                        style="--menu-drawer-animation-index: 4;"
3223                                      >
3224                                        <a
3225                                          id="HeaderDrawer-nails-nail-art-glitters"
3226                                          href="/collections/nail-art-glitters"
3227                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3228                                          
3229                                        >
3230                                          
3231                                          <span class="menu-drawer__menu-item-text wrap-text">Glitters</span>
3232                                        </a>
3233                                      </li><li
3234                                        class="menu-drawer__list-item"
3235                                        style="--menu-drawer-animation-index: 5;"
3236                                      >
3237                                        <a
3238                                          id="HeaderDrawer-nails-nail-art-glitter-shapes"
3239                                          href="/collections/nail-art-glitter-shapes"
3240                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3241                                          
3242                                        >
3243                                          
3244                                          <span class="menu-drawer__menu-item-text wrap-text">Glitter Shapes</span>
3245                                        </a>
3246                                      </li><li
3247                                        class="menu-drawer__list-item"
3248                                        style="--menu-drawer-animation-index: 6;"
3249                                      >
3250                                        <a
3251                                          id="HeaderDrawer-nails-nail-art-stickers"
3252                                          href="/collections/nail-art-stickers"
3253                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3254                                          
3255                                        >
3256                                          
3257                                          <span class="menu-drawer__menu-item-text wrap-text">Stickers</span>
3258                                        </a>
3259                                      </li><li
3260                                        class="menu-drawer__list-item"
3261                                        style="--menu-drawer-animation-index: 7;"
3262                                      >
3263                                        <a
3264                                          id="HeaderDrawer-nails-nail-art-charms-decals"
3265                                          href="/collections/nail-art-charms-decals"
3266                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3267                                          
3268                                        >
3269                                          
3270                                          <span class="menu-drawer__menu-item-text wrap-text">Charms &amp; Decals</span>
3271                                        </a>
3272                                      </li><li
3273                                        class="menu-drawer__list-item"
3274                                        style="--menu-drawer-animation-index: 8;"
3275                                      >
3276                                        <a
3277                                          id="HeaderDrawer-nails-nail-art-angel-paper-transfer-foils"
3278                                          href="/collections/nail-art-angel-paper-transfer-foils"
3279                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3280                                          
3281                                        >
3282                                          
3283                                          <span class="menu-drawer__menu-item-text wrap-text">Angel Paper &amp; Transfer Foils</span>
3284                                        </a>
3285                                      </li><li
3286                                        class="menu-drawer__list-item"
3287                                        style="--menu-drawer-animation-index: 9;"
3288                                      >
3289                                        <a
3290                                          id="HeaderDrawer-nails-nail-art-flakes"
3291                                          href="/collections/nail-art-flakes"
3292                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3293                                          
3294                                        >
3295                                          
3296                                          <span class="menu-drawer__menu-item-text wrap-text">Flakes</span>
3297                                        </a>
3298                                      </li><li
3299                                        class="menu-drawer__list-item"
3300                                        style="--menu-drawer-animation-index: 10;"
3301                                      >
3302                                        <a
3303                                          id="HeaderDrawer-nails-nail-art-dried-flowers"
3304                                          href="/collections/nail-art-dried-flowers"
3305                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3306                                          
3307                                        >
3308                                          
3309                                          <span class="menu-drawer__menu-item-text wrap-text">Dried Flowers</span>
3310                                        </a>
3311                                      </li><li
3312                                        class="menu-drawer__list-item"
3313                                        style="--menu-drawer-animation-index: 11;"
3314                                      >
3315                                        <a
3316                                          id="HeaderDrawer-nails-nail-art-fimo"
3317                                          href="/collections/nail-art-fimo"
3318                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3319                                          
3320                                        >
3321                                          
3322                                          <span class="menu-drawer__menu-item-text wrap-text">Fimo</span>
3323                                        </a>
3324                                      </li><li
3325                                        class="menu-drawer__list-item"
3326                                        style="--menu-drawer-animation-index: 12;"
3327                                      >
3328                                        <a
3329                                          id="HeaderDrawer-nails-nail-art-chains"
3330                                          href="/collections/nail-art-chains"
3331                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3332                                          
3333                                        >
3334                                          
3335                                          <span class="menu-drawer__menu-item-text wrap-text">Chains</span>
3336                                        </a>
3337                                      </li><li
3338                                        class="menu-drawer__list-item"
3339                                        style="--menu-drawer-animation-index: 13;"
3340                                      >
3341                                        <a
3342                                          id="HeaderDrawer-nails-nail-art-netting-lace"
3343                                          href="/collections/nail-art-netting-lace"
3344                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3345                                          
3346                                        >
3347                                          
3348                                          <span class="menu-drawer__menu-item-text wrap-text">Netting &amp; Lace</span>
3349                                        </a>
3350                                      </li><li
3351                                        class="menu-drawer__list-item"
3352                                        style="--menu-drawer-animation-index: 14;"
3353                                      >
3354                                        <a
3355                                          id="HeaderDrawer-nails-nail-art-micro-beads"
3356                                          href="/collections/nail-art-micro-beads"
3357                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3358                                          
3359                                        >
3360                                          
3361                                          <span class="menu-drawer__menu-item-text wrap-text">Micro Beads</span>
3362                                        </a>
3363                                      </li><li
3364                                        class="menu-drawer__list-item"
3365                                        style="--menu-drawer-animation-index: 15;"
3366                                      >
3367                                        <a
3368                                          id="HeaderDrawer-nails-nail-art-nail-art-stripers-paint"
3369                                          href="/collections/nail-art-stripers-paint"
3370                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3371                                          
3372                                        >
3373                                          
3374                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Art Stripers &amp; Paint</span>
3375                                        </a>
3376                                      </li><li
3377                                        class="menu-drawer__list-item"
3378                                        style="--menu-drawer-animation-index: 16;"
3379                                      >
3380                                        <a
3381                                          id="HeaderDrawer-nails-nail-art-other"
3382                                          href="/collections/nail-art-other"
3383                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3384                                          
3385                                        >
3386                                          
3387                                          <span class="menu-drawer__menu-item-text wrap-text">Other</span>
3388                                        </a>
3389                                      </li></ul></li><li
3390                              class="
3391                                menu-drawer__list-item
3392                                menu-drawer__list-item--flat
3393                              "
3394                            >
3395                                
3396<a
3397                                    id="HeaderDrawer-nails-nail-tools-accessories"
3398                                    href="/collections/nail-tools-accessories"
3399                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3400                                  >
3401                                    <span class="menu-drawer__menu-item-text wrap-text">Nail Tools &amp; Accessories</span>
3402                                  </a>
3403                                  
3404                                  <ul
3405                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3406                                    role="list"
3407                                    tabindex="-1"
3408                                  ><li
3409                                        class="menu-drawer__list-item"
3410                                        style="--menu-drawer-animation-index: 1;"
3411                                      >
3412                                        <a
3413                                          id="HeaderDrawer-nails-nail-tools-accessories-brushes"
3414                                          href="/collections/nail-tools-accessories-brushes"
3415                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3416                                          
3417                                        >
3418                                          
3419                                          <span class="menu-drawer__menu-item-text wrap-text">Brushes</span>
3420                                        </a>
3421                                      </li><li
3422                                        class="menu-drawer__list-item"
3423                                        style="--menu-drawer-animation-index: 2;"
3424                                      >
3425                                        <a
3426                                          id="HeaderDrawer-nails-nail-tools-accessories-cuticle-pushers-nippers"
3427                                          href="/collections/cuticle-pushers-nippers"
3428                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3429                                          
3430                                        >
3431                                          
3432                                          <span class="menu-drawer__menu-item-text wrap-text">Cuticle Pushers &amp; Nippers</span>
3433                                        </a>
3434                                      </li><li
3435                                        class="menu-drawer__list-item"
3436                                        style="--menu-drawer-animation-index: 3;"
3437                                      >
3438                                        <a
3439                                          id="HeaderDrawer-nails-nail-tools-accessories-tip-cutters-nail-clippers"
3440                                          href="/collections/tip-cutters-nail-clippers"
3441                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3442                                          
3443                                        >
3444                                          
3445                                          <span class="menu-drawer__menu-item-text wrap-text">Tip Cutters &amp; Nail Clippers</span>
3446                                        </a>
3447                                      </li><li
3448                                        class="menu-drawer__list-item"
3449                                        style="--menu-drawer-animation-index: 4;"
3450                                      >
3451                                        <a
3452                                          id="HeaderDrawer-nails-nail-tools-accessories-nail-files-buffers"
3453                                          href="/collections/nail-files-buffers"
3454                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3455                                          
3456                                        >
3457                                          
3458                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Files &amp; Buffers</span>
3459                                        </a>
3460                                      </li><li
3461                                        class="menu-drawer__list-item"
3462                                        style="--menu-drawer-animation-index: 5;"
3463                                      >
3464                                        <a
3465                                          id="HeaderDrawer-nails-nail-tools-accessories-drill-bits-accessories"
3466                                          href="/collections/drill-bits-accessories"
3467                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3468                                          
3469                                        >
3470                                          
3471                                          <span class="menu-drawer__menu-item-text wrap-text">Drill Bits &amp; Accessories</span>
3472                                        </a>
3473                                      </li><li
3474                                        class="menu-drawer__list-item"
3475                                        style="--menu-drawer-animation-index: 6;"
3476                                      >
3477                                        <a
3478                                          id="HeaderDrawer-nails-nail-tools-accessories-implements"
3479                                          href="/collections/nail-tools-accessories-implements"
3480                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3481                                          
3482                                        >
3483                                          
3484                                          <span class="menu-drawer__menu-item-text wrap-text">Implements</span>
3485                                        </a>
3486                                      </li><li
3487                                        class="menu-drawer__list-item"
3488                                        style="--menu-drawer-animation-index: 7;"
3489                                      >
3490                                        <a
3491                                          id="HeaderDrawer-nails-nail-tools-accessories-dappen-dishes"
3492                                          href="/collections/dappen-dishes"
3493                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3494                                          
3495                                        >
3496                                          
3497                                          <span class="menu-drawer__menu-item-text wrap-text">Dappen Dishes</span>
3498                                        </a>
3499                                      </li><li
3500                                        class="menu-drawer__list-item"
3501                                        style="--menu-drawer-animation-index: 8;"
3502                                      >
3503                                        <a
3504                                          id="HeaderDrawer-nails-nail-tools-accessories-storage"
3505                                          href="/collections/nail-tools-accessories-storage"
3506                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3507                                          
3508                                        >
3509                                          
3510                                          <span class="menu-drawer__menu-item-text wrap-text">Storage</span>
3511                                        </a>
3512                                      </li><li
3513                                        class="menu-drawer__list-item"
3514                                        style="--menu-drawer-animation-index: 9;"
3515                                      >
3516                                        <a
3517                                          id="HeaderDrawer-nails-nail-tools-accessories-display-swatches"
3518                                          href="/collections/displays-swatches"
3519                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3520                                          
3521                                        >
3522                                          
3523                                          <span class="menu-drawer__menu-item-text wrap-text">Display &amp; Swatches</span>
3524                                        </a>
3525                                      </li><li
3526                                        class="menu-drawer__list-item"
3527                                        style="--menu-drawer-animation-index: 10;"
3528                                      >
3529                                        <a
3530                                          id="HeaderDrawer-nails-nail-tools-accessories-practice-hands-fingers"
3531                                          href="/collections/practise-hands-fingers"
3532                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3533                                          
3534                                        >
3535                                          
3536                                          <span class="menu-drawer__menu-item-text wrap-text">Practice Hands &amp; Fingers</span>
3537                                        </a>
3538                                      </li><li
3539                                        class="menu-drawer__list-item"
3540                                        style="--menu-drawer-animation-index: 11;"
3541                                      >
3542                                        <a
3543                                          id="HeaderDrawer-nails-nail-tools-accessories-soak-off"
3544                                          href="/collections/nail-tools-accessories-soak-off"
3545                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3546                                          
3547                                        >
3548                                          
3549                                          <span class="menu-drawer__menu-item-text wrap-text">Soak Off</span>
3550                                        </a>
3551                                      </li></ul></li><li
3552                              class="
3553                                menu-drawer__list-item
3554                                menu-drawer__list-item--flat
3555                              "
3556                            >
3557                                
3558<a
3559                                    id="HeaderDrawer-nails-salon-care-hygiene"
3560                                    href="/collections/salon-essentials-hygiene"
3561                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3562                                  >
3563                                    <span class="menu-drawer__menu-item-text wrap-text">Salon Care &amp; Hygiene</span>
3564                                  </a>
3565                                  
3566                                  <ul
3567                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3568                                    role="list"
3569                                    tabindex="-1"
3570                                  ><li
3571                                        class="menu-drawer__list-item"
3572                                        style="--menu-drawer-animation-index: 1;"
3573                                      >
3574                                        <a
3575                                          id="HeaderDrawer-nails-salon-care-hygiene-nail-wipes"
3576                                          href="/collections/hygiene-nail-wipes"
3577                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3578                                          
3579                                        >
3580                                          
3581                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Wipes</span>
3582                                        </a>
3583                                      </li><li
3584                                        class="menu-drawer__list-item"
3585                                        style="--menu-drawer-animation-index: 2;"
3586                                      >
3587                                        <a
3588                                          id="HeaderDrawer-nails-salon-care-hygiene-face-mask-gloves"
3589                                          href="/collections/hygiene-face-masks-gloves"
3590                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3591                                          
3592                                        >
3593                                          
3594                                          <span class="menu-drawer__menu-item-text wrap-text">Face Mask &amp; Gloves</span>
3595                                        </a>
3596                                      </li><li
3597                                        class="menu-drawer__list-item"
3598                                        style="--menu-drawer-animation-index: 3;"
3599                                      >
3600                                        <a
3601                                          id="HeaderDrawer-nails-salon-care-hygiene-table-mats"
3602                                          href="/collections/hygiene-table-mats"
3603                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3604                                          
3605                                        >
3606                                          
3607                                          <span class="menu-drawer__menu-item-text wrap-text">Table Mats</span>
3608                                        </a>
3609                                      </li><li
3610                                        class="menu-drawer__list-item"
3611                                        style="--menu-drawer-animation-index: 4;"
3612                                      >
3613                                        <a
3614                                          id="HeaderDrawer-nails-salon-care-hygiene-sanitisers-disinfectants"
3615                                          href="/collections/hygiene-sanitizers-disinfectants"
3616                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3617                                          
3618                                        >
3619                                          
3620                                          <span class="menu-drawer__menu-item-text wrap-text">Sanitisers &amp; Disinfectants</span>
3621                                        </a>
3622                                      </li><li
3623                                        class="menu-drawer__list-item"
3624                                        style="--menu-drawer-animation-index: 5;"
3625                                      >
3626                                        <a
3627                                          id="HeaderDrawer-nails-salon-care-hygiene-empty-bottles-pots"
3628                                          href="/collections/hygiene-empty-bottles-accessories"
3629                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3630                                          
3631                                        >
3632                                          
3633                                          <span class="menu-drawer__menu-item-text wrap-text">Empty Bottles &amp; Pots</span>
3634                                        </a>
3635                                      </li><li
3636                                        class="menu-drawer__list-item"
3637                                        style="--menu-drawer-animation-index: 6;"
3638                                      >
3639                                        <a
3640                                          id="HeaderDrawer-nails-salon-care-hygiene-miscellaneous"
3641                                          href="/collections/nail-kits-misc"
3642                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3643                                          
3644                                        >
3645                                          
3646                                          <span class="menu-drawer__menu-item-text wrap-text">Miscellaneous</span>
3647                                        </a>
3648                                      </li></ul></li><li
3649                              class="
3650                                menu-drawer__list-item
3651                                menu-drawer__list-item--flat
3652                              "
3653                            >
3654                                
3655<a
3656                                    id="HeaderDrawer-nails-nail-kits"
3657                                    href="/collections/nail-kits"
3658                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3659                                  >
3660                                    <span class="menu-drawer__menu-item-text wrap-text">Nail Kits</span>
3661                                  </a>
3662                                  
3663                                  <ul
3664                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3665                                    role="list"
3666                                    tabindex="-1"
3667                                  ><li
3668                                        class="menu-drawer__list-item"
3669                                        style="--menu-drawer-animation-index: 1;"
3670                                      >
3671                                        <a
3672                                          id="HeaderDrawer-nails-nail-kits-acrylic-nail-kits"
3673                                          href="/collections/nail-kits-acrylic-nail-kits"
3674                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3675                                          
3676                                        >
3677                                          
3678                                          <span class="menu-drawer__menu-item-text wrap-text">Acrylic Nail Kits</span>
3679                                        </a>
3680                                      </li><li
3681                                        class="menu-drawer__list-item"
3682                                        style="--menu-drawer-animation-index: 2;"
3683                                      >
3684                                        <a
3685                                          id="HeaderDrawer-nails-nail-kits-gel-nail-kits"
3686                                          href="/collections/nail-kits-gel-nail-kits"
3687                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3688                                          
3689                                        >
3690                                          
3691                                          <span class="menu-drawer__menu-item-text wrap-text">Gel Nail Kits</span>
3692                                        </a>
3693                                      </li><li
3694                                        class="menu-drawer__list-item"
3695                                        style="--menu-drawer-animation-index: 3;"
3696                                      >
3697                                        <a
3698                                          id="HeaderDrawer-nails-nail-kits-nail-art-kits"
3699                                          href="/collections/nail-kits-nail-art-kits"
3700                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3701                                          
3702                                        >
3703                                          
3704                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Art Kits</span>
3705                                        </a>
3706                                      </li><li
3707                                        class="menu-drawer__list-item"
3708                                        style="--menu-drawer-animation-index: 4;"
3709                                      >
3710                                        <a
3711                                          id="HeaderDrawer-nails-nail-kits-soft-gel-extensions"
3712                                          href="/collections/nail-extensions-soft-gel-extensions"
3713                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3714                                          
3715                                        >
3716                                          
3717                                          <span class="menu-drawer__menu-item-text wrap-text">Soft Gel Extensions</span>
3718                                        </a>
3719                                      </li><li
3720                                        class="menu-drawer__list-item"
3721                                        style="--menu-drawer-animation-index: 5;"
3722                                      >
3723                                        <a
3724                                          id="HeaderDrawer-nails-nail-kits-dip-powder-kits"
3725                                          href="/collections/nail-extensions-dip-powder"
3726                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3727                                          
3728                                        >
3729                                          
3730                                          <span class="menu-drawer__menu-item-text wrap-text">Dip Powder Kits</span>
3731                                        </a>
3732                                      </li><li
3733                                        class="menu-drawer__list-item"
3734                                        style="--menu-drawer-animation-index: 6;"
3735                                      >
3736                                        <a
3737                                          id="HeaderDrawer-nails-nail-kits-misc"
3738                                          href="/collections/nail-kits-misc"
3739                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3740                                          
3741                                        >
3742                                          
3743                                          <span class="menu-drawer__menu-item-text wrap-text">Misc</span>
3744                                        </a>
3745                                      </li></ul></li><li
3746                              class="
3747                                menu-drawer__list-item
3748                                menu-drawer__list-item--flat
3749                              "
3750                            >
3751                                
3752<a
3753                                    id="HeaderDrawer-nails-manicure-pedicure"
3754                                    href="/collections/manicure-pedicure"
3755                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3756                                  >
3757                                    <span class="menu-drawer__menu-item-text wrap-text">Manicure &amp; Pedicure</span>
3758                                  </a>
3759                                  
3760                                  <ul
3761                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3762                                    role="list"
3763                                    tabindex="-1"
3764                                  ><li
3765                                        class="menu-drawer__list-item"
3766                                        style="--menu-drawer-animation-index: 1;"
3767                                      >
3768                                        <a
3769                                          id="HeaderDrawer-nails-manicure-pedicure-nail-cuticle-care"
3770                                          href="/collections/manicure-pedicure-nail-cuticle-care"
3771                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3772                                          
3773                                        >
3774                                          
3775                                          <span class="menu-drawer__menu-item-text wrap-text">Nail &amp; Cuticle Care</span>
3776                                        </a>
3777                                      </li><li
3778                                        class="menu-drawer__list-item"
3779                                        style="--menu-drawer-animation-index: 2;"
3780                                      >
3781                                        <a
3782                                          id="HeaderDrawer-nails-manicure-pedicure-moisturising-lotions-creams"
3783                                          href="/collections/manicure-pedicure-moisturising-lotions-creams"
3784                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3785                                          
3786                                        >
3787                                          
3788                                          <span class="menu-drawer__menu-item-text wrap-text">Moisturising Lotions &amp; Creams</span>
3789                                        </a>
3790                                      </li><li
3791                                        class="menu-drawer__list-item"
3792                                        style="--menu-drawer-animation-index: 3;"
3793                                      >
3794                                        <a
3795                                          id="HeaderDrawer-nails-manicure-pedicure-soaks-scrubs"
3796                                          href="/collections/manicure-pedicure-soaks-scrubs"
3797                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3798                                          
3799                                        >
3800                                          
3801                                          <span class="menu-drawer__menu-item-text wrap-text">Soaks &amp; Scrubs</span>
3802                                        </a>
3803                                      </li><li
3804                                        class="menu-drawer__list-item"
3805                                        style="--menu-drawer-animation-index: 4;"
3806                                      >
3807                                        <a
3808                                          id="HeaderDrawer-nails-manicure-pedicure-masks"
3809                                          href="/collections/manicure-pedicure-masks"
3810                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3811                                          
3812                                        >
3813                                          
3814                                          <span class="menu-drawer__menu-item-text wrap-text">Masks</span>
3815                                        </a>
3816                                      </li><li
3817                                        class="menu-drawer__list-item"
3818                                        style="--menu-drawer-animation-index: 5;"
3819                                      >
3820                                        <a
3821                                          id="HeaderDrawer-nails-manicure-pedicure-foot-files-accessories"
3822                                          href="/collections/manicure-pedicure-foot-file-accesories"
3823                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3824                                          
3825                                        >
3826                                          
3827                                          <span class="menu-drawer__menu-item-text wrap-text">Foot Files &amp; Accessories</span>
3828                                        </a>
3829                                      </li><li
3830                                        class="menu-drawer__list-item"
3831                                        style="--menu-drawer-animation-index: 6;"
3832                                      >
3833                                        <a
3834                                          id="HeaderDrawer-nails-manicure-pedicure-bowls-accessories"
3835                                          href="/collections/manicure-pedicure-bowls-accesories"
3836                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3837                                          
3838                                        >
3839                                          
3840                                          <span class="menu-drawer__menu-item-text wrap-text">Bowls &amp; Accessories</span>
3841                                        </a>
3842                                      </li><li
3843                                        class="menu-drawer__list-item"
3844                                        style="--menu-drawer-animation-index: 7;"
3845                                      >
3846                                        <a
3847                                          id="HeaderDrawer-nails-manicure-pedicure-toe-separators-slippers"
3848                                          href="/collections/manicure-pedicure-toe-seperators-slippers"
3849                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3850                                          
3851                                        >
3852                                          
3853                                          <span class="menu-drawer__menu-item-text wrap-text">Toe Separators &amp; Slippers</span>
3854                                        </a>
3855                                      </li></ul></li><li
3856                              class="
3857                                menu-drawer__list-item
3858                                menu-drawer__list-item--flat
3859                              "
3860                            >
3861                                
3862<a
3863                                    id="HeaderDrawer-nails-miscellaneous"
3864                                    href="/collections/nails-misc"
3865                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3866                                  >
3867                                    <span class="menu-drawer__menu-item-text wrap-text">Miscellaneous</span>
3868                                  </a>
3869                                  
3870                                  <ul
3871                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3872                                    role="list"
3873                                    tabindex="-1"
3874                                  ><li
3875                                        class="menu-drawer__list-item"
3876                                        style="--menu-drawer-animation-index: 1;"
3877                                      >
3878                                        <a
3879                                          id="HeaderDrawer-nails-miscellaneous-salon-posters"
3880                                          href="/collections/misc-salon-posters"
3881                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3882                                          
3883                                        >
3884                                          
3885                                          <span class="menu-drawer__menu-item-text wrap-text">Salon Posters</span>
3886                                        </a>
3887                                      </li></ul></li></ul>
3888                        
3889                      </div>
3890                    </div>
3891                  </details></li>
3892              <li
3893                class="menu-drawer__list-item"
3894                style="--menu-drawer-animation-index: 4;"
3895              ><details
3896                    id="Details-menu-drawer-menu-item-4"
3897                    class="menu-drawer__menu-container"
3898                  >
3899                    <summary
3900                      id="HeaderDrawer-beauty"
3901                      class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
3902                      on:click="header-drawer/open"
3903                    >
3904                      <span class="menu-drawer__menu-item-text wrap-text">Beauty</span>
3905                      <span class="svg-wrapper icon-caret icon-caret--forward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3906  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3907</svg>
3908</span>
3909                    </summary>
3910                    <div
3911                      id="link-beauty"
3912                      class="menu-drawer__submenu has-submenu gradient motion-reduce"
3913                      tabindex="-1"
3914                      style="--menu-drawer-animation-index: 4;"
3915                    >
3916                      <div class="menu-drawer__inner-submenu">
3917                        <div class="menu-drawer__nav-buttons">
3918                          <button
3919                            class="button menu-drawer__back-button focus-inset"
3920                            aria-expanded="true"
3921                            on:click="header-drawer/back"
3922                            aria-label="Back"
3923                          >
3924                            <span class="svg-wrapper icon-caret icon-caret--backward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3925  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3926</svg>
3927</span>
3928                            <span class="menu-drawer__menu-item-text wrap-text">Beauty</span>
3929                          </button>
3930                          <button
3931                            class="button button-unstyled close-button menu-drawer__close-button"
3932                            type="button"
3933                            aria-label="Close"
3934                            on:click="header-drawer/close"
3935                          >
3936                            <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3937  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3938  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3939</svg>
3940</span>
3941                          </button>
3942                        </div>
3943                        
3944                        
3945                        <ul
3946                          class="menu-drawer__menu menu-drawer__menu--childlist"
3947                          role="list"
3948                          tabindex="-1"
3949                        >
3950                          <li
3951                              class="
3952                                menu-drawer__list-item
3953                                menu-drawer__list-item--flat
3954                              "
3955                            >
3956                                
3957<a
3958                                    id="HeaderDrawer-beauty-beauty"
3959                                    href="/collections/beauty"
3960                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
3961                                  >
3962                                    <span class="menu-drawer__menu-item-text wrap-text">Beauty</span>
3963                                  </a>
3964                                  
3965                                  <ul
3966                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
3967                                    role="list"
3968                                    tabindex="-1"
3969                                  ><li
3970                                        class="menu-drawer__list-item"
3971                                        style="--menu-drawer-animation-index: 1;"
3972                                      >
3973                                        <a
3974                                          id="HeaderDrawer-beauty-beauty-body"
3975                                          href="/collections/body"
3976                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3977                                          
3978                                        >
3979                                          
3980                                          <span class="menu-drawer__menu-item-text wrap-text">Body</span>
3981                                        </a>
3982                                      </li><li
3983                                        class="menu-drawer__list-item"
3984                                        style="--menu-drawer-animation-index: 2;"
3985                                      >
3986                                        <a
3987                                          id="HeaderDrawer-beauty-beauty-eyebrows"
3988                                          href="/collections/eyebrows"
3989                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
3990                                          
3991                                        >
3992                                          
3993                                          <span class="menu-drawer__menu-item-text wrap-text">Eyebrows</span>
3994                                        </a>
3995                                      </li><li
3996                                        class="menu-drawer__list-item"
3997                                        style="--menu-drawer-animation-index: 3;"
3998                                      >
3999                                        <a
4000                                          id="HeaderDrawer-beauty-beauty-eyelashes"
4001                                          href="/collections/eyelashes"
4002                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4003                                          
4004                                        >
4005                                          
4006                                          <span class="menu-drawer__menu-item-text wrap-text">Eyelashes</span>
4007                                        </a>
4008                                      </li><li
4009                                        class="menu-drawer__list-item"
4010                                        style="--menu-drawer-animation-index: 4;"
4011                                      >
4012                                        <a
4013                                          id="HeaderDrawer-beauty-beauty-waxing"
4014                                          href="/collections/waxing"
4015                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4016                                          
4017                                        >
4018                                          
4019                                          <span class="menu-drawer__menu-item-text wrap-text">Waxing</span>
4020                                        </a>
4021                                      </li><li
4022                                        class="menu-drawer__list-item"
4023                                        style="--menu-drawer-animation-index: 5;"
4024                                      >
4025                                        <a
4026                                          id="HeaderDrawer-beauty-beauty-tanning"
4027                                          href="/collections/tanning"
4028                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4029                                          
4030                                        >
4031                                          
4032                                          <span class="menu-drawer__menu-item-text wrap-text">Tanning</span>
4033                                        </a>
4034                                      </li><li
4035                                        class="menu-drawer__list-item"
4036                                        style="--menu-drawer-animation-index: 6;"
4037                                      >
4038                                        <a
4039                                          id="HeaderDrawer-beauty-beauty-facial"
4040                                          href="/collections/facial"
4041                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4042                                          
4043                                        >
4044                                          
4045                                          <span class="menu-drawer__menu-item-text wrap-text">Facial</span>
4046                                        </a>
4047                                      </li></ul></li></ul>
4048                        
4049                      </div>
4050                    </div>
4051                  </details></li>
4052              <li
4053                class="menu-drawer__list-item"
4054                style="--menu-drawer-animation-index: 5;"
4055              ><details
4056                    id="Details-menu-drawer-menu-item-5"
4057                    class="menu-drawer__menu-container"
4058                  >
4059                    <summary
4060                      id="HeaderDrawer-electricals"
4061                      class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
4062                      on:click="header-drawer/open"
4063                    >
4064                      <span class="menu-drawer__menu-item-text wrap-text">Electricals</span>
4065                      <span class="svg-wrapper icon-caret icon-caret--forward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4066  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4067</svg>
4068</span>
4069                    </summary>
4070                    <div
4071                      id="link-electricals"
4072                      class="menu-drawer__submenu has-submenu gradient motion-reduce"
4073                      tabindex="-1"
4074                      style="--menu-drawer-animation-index: 5;"
4075                    >
4076                      <div class="menu-drawer__inner-submenu">
4077                        <div class="menu-drawer__nav-buttons">
4078                          <button
4079                            class="button menu-drawer__back-button focus-inset"
4080                            aria-expanded="true"
4081                            on:click="header-drawer/back"
4082                            aria-label="Back"
4083                          >
4084                            <span class="svg-wrapper icon-caret icon-caret--backward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4085  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4086</svg>
4087</span>
4088                            <span class="menu-drawer__menu-item-text wrap-text">Electricals</span>
4089                          </button>
4090                          <button
4091                            class="button button-unstyled close-button menu-drawer__close-button"
4092                            type="button"
4093                            aria-label="Close"
4094                            on:click="header-drawer/close"
4095                          >
4096                            <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4097  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4098  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4099</svg>
4100</span>
4101                          </button>
4102                        </div>
4103                        
4104                        
4105                        <ul
4106                          class="menu-drawer__menu menu-drawer__menu--childlist"
4107                          role="list"
4108                          tabindex="-1"
4109                        >
4110                          <li
4111                              class="
4112                                menu-drawer__list-item
4113                                menu-drawer__list-item--flat
4114                              "
4115                            >
4116                                
4117<a
4118                                    id="HeaderDrawer-electricals-electricals"
4119                                    href="/collections/electricals"
4120                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
4121                                  >
4122                                    <span class="menu-drawer__menu-item-text wrap-text">Electricals</span>
4123                                  </a>
4124                                  
4125                                  <ul
4126                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
4127                                    role="list"
4128                                    tabindex="-1"
4129                                  ><li
4130                                        class="menu-drawer__list-item"
4131                                        style="--menu-drawer-animation-index: 1;"
4132                                      >
4133                                        <a
4134                                          id="HeaderDrawer-electricals-electricals-nail-file-machines"
4135                                          href="/collections/nail-file-machines"
4136                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4137                                          
4138                                        >
4139                                          
4140                                          <span class="menu-drawer__menu-item-text wrap-text">Nail File Machines</span>
4141                                        </a>
4142                                      </li><li
4143                                        class="menu-drawer__list-item"
4144                                        style="--menu-drawer-animation-index: 2;"
4145                                      >
4146                                        <a
4147                                          id="HeaderDrawer-electricals-electricals-uv-led-lamps"
4148                                          href="/collections/uv-led-lamps"
4149                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4150                                          
4151                                        >
4152                                          
4153                                          <span class="menu-drawer__menu-item-text wrap-text">UV/LED Lamps</span>
4154                                        </a>
4155                                      </li><li
4156                                        class="menu-drawer__list-item"
4157                                        style="--menu-drawer-animation-index: 3;"
4158                                      >
4159                                        <a
4160                                          id="HeaderDrawer-electricals-electricals-dust-collector"
4161                                          href="/collections/dust-collector"
4162                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4163                                          
4164                                        >
4165                                          
4166                                          <span class="menu-drawer__menu-item-text wrap-text">Dust Collector</span>
4167                                        </a>
4168                                      </li><li
4169                                        class="menu-drawer__list-item"
4170                                        style="--menu-drawer-animation-index: 4;"
4171                                      >
4172                                        <a
4173                                          id="HeaderDrawer-electricals-electricals-table-lamps"
4174                                          href="/collections/table-lamps"
4175                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4176                                          
4177                                        >
4178                                          
4179                                          <span class="menu-drawer__menu-item-text wrap-text">Table Lamps</span>
4180                                        </a>
4181                                      </li><li
4182                                        class="menu-drawer__list-item"
4183                                        style="--menu-drawer-animation-index: 5;"
4184                                      >
4185                                        <a
4186                                          id="HeaderDrawer-electricals-electricals-nail-dryers"
4187                                          href="/collections/nail-dryers"
4188                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4189                                          
4190                                        >
4191                                          
4192                                          <span class="menu-drawer__menu-item-text wrap-text">Nail Dryers</span>
4193                                        </a>
4194                                      </li><li
4195                                        class="menu-drawer__list-item"
4196                                        style="--menu-drawer-animation-index: 6;"
4197                                      >
4198                                        <a
4199                                          id="HeaderDrawer-electricals-electricals-wax-heaters"
4200                                          href="/collections/wax-heaters"
4201                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4202                                          
4203                                        >
4204                                          
4205                                          <span class="menu-drawer__menu-item-text wrap-text">Wax Heaters</span>
4206                                        </a>
4207                                      </li><li
4208                                        class="menu-drawer__list-item"
4209                                        style="--menu-drawer-animation-index: 7;"
4210                                      >
4211                                        <a
4212                                          id="HeaderDrawer-electricals-electricals-steriliser"
4213                                          href="/collections/steriliser"
4214                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4215                                          
4216                                        >
4217                                          
4218                                          <span class="menu-drawer__menu-item-text wrap-text">Steriliser</span>
4219                                        </a>
4220                                      </li><li
4221                                        class="menu-drawer__list-item"
4222                                        style="--menu-drawer-animation-index: 8;"
4223                                      >
4224                                        <a
4225                                          id="HeaderDrawer-electricals-electricals-towel-warmers"
4226                                          href="/collections/towel-warmers"
4227                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4228                                          
4229                                        >
4230                                          
4231                                          <span class="menu-drawer__menu-item-text wrap-text">Towel Warmers</span>
4232                                        </a>
4233                                      </li><li
4234                                        class="menu-drawer__list-item"
4235                                        style="--menu-drawer-animation-index: 9;"
4236                                      >
4237                                        <a
4238                                          id="HeaderDrawer-electricals-electricals-accessories-spares"
4239                                          href="/collections/accessories-spare-parts"
4240                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4241                                          
4242                                        >
4243                                          
4244                                          <span class="menu-drawer__menu-item-text wrap-text">Accessories &amp; Spares</span>
4245                                        </a>
4246                                      </li><li
4247                                        class="menu-drawer__list-item"
4248                                        style="--menu-drawer-animation-index: 10;"
4249                                      >
4250                                        <a
4251                                          id="HeaderDrawer-electricals-electricals-servicing-repairs"
4252                                          href="/collections/servicing-repairs"
4253                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4254                                          
4255                                        >
4256                                          
4257                                          <span class="menu-drawer__menu-item-text wrap-text">Servicing &amp; Repairs</span>
4258                                        </a>
4259                                      </li></ul></li></ul>
4260                        
4261                      </div>
4262                    </div>
4263                  </details></li>
4264              <li
4265                class="menu-drawer__list-item"
4266                style="--menu-drawer-animation-index: 6;"
4267              ><details
4268                    id="Details-menu-drawer-menu-item-6"
4269                    class="menu-drawer__menu-container"
4270                  >
4271                    <summary
4272                      id="HeaderDrawer-furniture"
4273                      class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
4274                      on:click="header-drawer/open"
4275                    >
4276                      <span class="menu-drawer__menu-item-text wrap-text">Furniture</span>
4277                      <span class="svg-wrapper icon-caret icon-caret--forward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4278  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4279</svg>
4280</span>
4281                    </summary>
4282                    <div
4283                      id="link-furniture"
4284                      class="menu-drawer__submenu has-submenu gradient motion-reduce"
4285                      tabindex="-1"
4286                      style="--menu-drawer-animation-index: 6;"
4287                    >
4288                      <div class="menu-drawer__inner-submenu">
4289                        <div class="menu-drawer__nav-buttons">
4290                          <button
4291                            class="button menu-drawer__back-button focus-inset"
4292                            aria-expanded="true"
4293                            on:click="header-drawer/back"
4294                            aria-label="Back"
4295                          >
4296                            <span class="svg-wrapper icon-caret icon-caret--backward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4297  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4298</svg>
4299</span>
4300                            <span class="menu-drawer__menu-item-text wrap-text">Furniture</span>
4301                          </button>
4302                          <button
4303                            class="button button-unstyled close-button menu-drawer__close-button"
4304                            type="button"
4305                            aria-label="Close"
4306                            on:click="header-drawer/close"
4307                          >
4308                            <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4309  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4310  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4311</svg>
4312</span>
4313                          </button>
4314                        </div>
4315                        
4316                        
4317                        <ul
4318                          class="menu-drawer__menu menu-drawer__menu--childlist"
4319                          role="list"
4320                          tabindex="-1"
4321                        >
4322                          <li
4323                              class="
4324                                menu-drawer__list-item
4325                                menu-drawer__list-item--flat
4326                              "
4327                            >
4328                                
4329<a
4330                                    id="HeaderDrawer-furniture-furniture"
4331                                    href="/collections/furniture"
4332                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
4333                                  >
4334                                    <span class="menu-drawer__menu-item-text wrap-text">Furniture</span>
4335                                  </a>
4336                                  
4337                                  <ul
4338                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
4339                                    role="list"
4340                                    tabindex="-1"
4341                                  ><li
4342                                        class="menu-drawer__list-item"
4343                                        style="--menu-drawer-animation-index: 1;"
4344                                      >
4345                                        <a
4346                                          id="HeaderDrawer-furniture-furniture-manicure-table"
4347                                          href="/collections/manicure-tables"
4348                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4349                                          
4350                                        >
4351                                          
4352                                          <span class="menu-drawer__menu-item-text wrap-text">Manicure Table</span>
4353                                        </a>
4354                                      </li><li
4355                                        class="menu-drawer__list-item"
4356                                        style="--menu-drawer-animation-index: 2;"
4357                                      >
4358                                        <a
4359                                          id="HeaderDrawer-furniture-furniture-pedicure-chairs"
4360                                          href="/collections/pedicure-chairs"
4361                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4362                                          
4363                                        >
4364                                          
4365                                          <span class="menu-drawer__menu-item-text wrap-text">Pedicure Chairs</span>
4366                                        </a>
4367                                      </li><li
4368                                        class="menu-drawer__list-item"
4369                                        style="--menu-drawer-animation-index: 3;"
4370                                      >
4371                                        <a
4372                                          id="HeaderDrawer-furniture-furniture-reception-desks"
4373                                          href="/collections/reception-desks"
4374                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4375                                          
4376                                        >
4377                                          
4378                                          <span class="menu-drawer__menu-item-text wrap-text">Reception Desks</span>
4379                                        </a>
4380                                      </li><li
4381                                        class="menu-drawer__list-item"
4382                                        style="--menu-drawer-animation-index: 4;"
4383                                      >
4384                                        <a
4385                                          id="HeaderDrawer-furniture-furniture-chairs-stools"
4386                                          href="/collections/chairs-stools"
4387                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4388                                          
4389                                        >
4390                                          
4391                                          <span class="menu-drawer__menu-item-text wrap-text">Chairs &amp; Stools</span>
4392                                        </a>
4393                                      </li><li
4394                                        class="menu-drawer__list-item"
4395                                        style="--menu-drawer-animation-index: 5;"
4396                                      >
4397                                        <a
4398                                          id="HeaderDrawer-furniture-furniture-trolleys"
4399                                          href="/collections/trolleys"
4400                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4401                                          
4402                                        >
4403                                          
4404                                          <span class="menu-drawer__menu-item-text wrap-text">Trolleys</span>
4405                                        </a>
4406                                      </li><li
4407                                        class="menu-drawer__list-item"
4408                                        style="--menu-drawer-animation-index: 6;"
4409                                      >
4410                                        <a
4411                                          id="HeaderDrawer-furniture-furniture-arm-foot-rests"
4412                                          href="/collections/arm-foot-rests"
4413                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4414                                          
4415                                        >
4416                                          
4417                                          <span class="menu-drawer__menu-item-text wrap-text">Arm &amp; Foot Rests</span>
4418                                        </a>
4419                                      </li><li
4420                                        class="menu-drawer__list-item"
4421                                        style="--menu-drawer-animation-index: 7;"
4422                                      >
4423                                        <a
4424                                          id="HeaderDrawer-furniture-furniture-wall-counter-displays"
4425                                          href="/collections/wall-counter-displays"
4426                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4427                                          
4428                                        >
4429                                          
4430                                          <span class="menu-drawer__menu-item-text wrap-text">Wall &amp; Counter Displays</span>
4431                                        </a>
4432                                      </li></ul></li></ul>
4433                        
4434                      </div>
4435                    </div>
4436                  </details></li>
4437              <li
4438                class="menu-drawer__list-item"
4439                style="--menu-drawer-animation-index: 7;"
4440              ><details
4441                    id="Details-menu-drawer-menu-item-7"
4442                    class="menu-drawer__menu-container"
4443                  >
4444                    <summary
4445                      id="HeaderDrawer-brands"
4446                      class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset menu-drawer__menu-item--active"
4447                      on:click="header-drawer/open"
4448                    >
4449                      <span class="menu-drawer__menu-item-text wrap-text">Brands</span>
4450                      <span class="svg-wrapper icon-caret icon-caret--forward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4451  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4452</svg>
4453</span>
4454                    </summary>
4455                    <div
4456                      id="link-brands"
4457                      class="menu-drawer__submenu has-submenu gradient motion-reduce"
4458                      tabindex="-1"
4459                      style="--menu-drawer-animation-index: 7;"
4460                    >
4461                      <div class="menu-drawer__inner-submenu">
4462                        <div class="menu-drawer__nav-buttons">
4463                          <button
4464                            class="button menu-drawer__back-button focus-inset"
4465                            aria-expanded="true"
4466                            on:click="header-drawer/back"
4467                            aria-label="Back"
4468                          >
4469                            <span class="svg-wrapper icon-caret icon-caret--backward"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4470  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4471</svg>
4472</span>
4473                            <span class="menu-drawer__menu-item-text wrap-text">Brands</span>
4474                          </button>
4475                          <button
4476                            class="button button-unstyled close-button menu-drawer__close-button"
4477                            type="button"
4478                            aria-label="Close"
4479                            on:click="header-drawer/close"
4480                          >
4481                            <span class="svg-wrapper header-drawer-icon header-drawer-icon--close"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
4482  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4483  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
4484</svg>
4485</span>
4486                          </button>
4487                        </div>
4488                        
4489                        
4490                        <ul
4491                          class="menu-drawer__menu menu-drawer__menu--childlist"
4492                          role="list"
4493                          tabindex="-1"
4494                        >
4495                          <li
4496                              class="
4497                                menu-drawer__list-item
4498                                menu-drawer__list-item--flat
4499                              "
4500                            >
4501                                
4502<a
4503                                    id="HeaderDrawer-brands-lorem-ipsum"
4504                                    href="/collections"
4505                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset"
4506                                  >
4507                                    <span class="menu-drawer__menu-item-text wrap-text">Lorem Ipsum</span>
4508                                  </a>
4509                                  
4510                                  <ul
4511                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
4512                                    role="list"
4513                                    tabindex="-1"
4514                                  ><li
4515                                        class="menu-drawer__list-item"
4516                                        style="--menu-drawer-animation-index: 1;"
4517                                      >
4518                                        <a
4519                                          id="HeaderDrawer-brands-lorem-ipsum-777"
4520                                          href="/collections/777"
4521                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4522                                          
4523                                        >
4524                                          
4525                                          <span class="menu-drawer__menu-item-text wrap-text">777</span>
4526                                        </a>
4527                                      </li><li
4528                                        class="menu-drawer__list-item"
4529                                        style="--menu-drawer-animation-index: 2;"
4530                                      >
4531                                        <a
4532                                          id="HeaderDrawer-brands-lorem-ipsum-aeon"
4533                                          href="/collections/aeon"
4534                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4535                                          
4536                                        >
4537                                          
4538                                          <span class="menu-drawer__menu-item-text wrap-text">AEON</span>
4539                                        </a>
4540                                      </li><li
4541                                        class="menu-drawer__list-item"
4542                                        style="--menu-drawer-animation-index: 3;"
4543                                      >
4544                                        <a
4545                                          id="HeaderDrawer-brands-lorem-ipsum-aiko"
4546                                          href="/collections/aiko"
4547                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4548                                          
4549                                        >
4550                                          
4551                                          <span class="menu-drawer__menu-item-text wrap-text">AIKO</span>
4552                                        </a>
4553                                      </li><li
4554                                        class="menu-drawer__list-item"
4555                                        style="--menu-drawer-animation-index: 4;"
4556                                      >
4557                                        <a
4558                                          id="HeaderDrawer-brands-lorem-ipsum-apres"
4559                                          href="/collections/apres"
4560                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4561                                          
4562                                        >
4563                                          
4564                                          <span class="menu-drawer__menu-item-text wrap-text">APRES</span>
4565                                        </a>
4566                                      </li><li
4567                                        class="menu-drawer__list-item"
4568                                        style="--menu-drawer-animation-index: 5;"
4569                                      >
4570                                        <a
4571                                          id="HeaderDrawer-brands-lorem-ipsum-ardell"
4572                                          href="/collections/ardell"
4573                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4574                                          
4575                                        >
4576                                          
4577                                          <span class="menu-drawer__menu-item-text wrap-text">ARDELL</span>
4578                                        </a>
4579                                      </li><li
4580                                        class="menu-drawer__list-item"
4581                                        style="--menu-drawer-animation-index: 6;"
4582                                      >
4583                                        <a
4584                                          id="HeaderDrawer-brands-lorem-ipsum-art-club"
4585                                          href="/collections/art-club"
4586                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4587                                          
4588                                        >
4589                                          
4590                                          <span class="menu-drawer__menu-item-text wrap-text">ART CLUB</span>
4591                                        </a>
4592                                      </li><li
4593                                        class="menu-drawer__list-item"
4594                                        style="--menu-drawer-animation-index: 7;"
4595                                      >
4596                                        <a
4597                                          id="HeaderDrawer-brands-lorem-ipsum-aurelia"
4598                                          href="/collections/aurelia"
4599                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4600                                          
4601                                        >
4602                                          
4603                                          <span class="menu-drawer__menu-item-text wrap-text">AURELIA</span>
4604                                        </a>
4605                                      </li><li
4606                                        class="menu-drawer__list-item"
4607                                        style="--menu-drawer-animation-index: 8;"
4608                                      >
4609                                        <a
4610                                          id="HeaderDrawer-brands-lorem-ipsum-avp"
4611                                          href="/collections/avp"
4612                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4613                                          
4614                                        >
4615                                          
4616                                          <span class="menu-drawer__menu-item-text wrap-text">AVP</span>
4617                                        </a>
4618                                      </li><li
4619                                        class="menu-drawer__list-item"
4620                                        style="--menu-drawer-animation-index: 9;"
4621                                      >
4622                                        <a
4623                                          id="HeaderDrawer-brands-lorem-ipsum-baisidai"
4624                                          href="/collections/baisidai"
4625                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4626                                          
4627                                        >
4628                                          
4629                                          <span class="menu-drawer__menu-item-text wrap-text">BAISIDAI</span>
4630                                        </a>
4631                                      </li><li
4632                                        class="menu-drawer__list-item"
4633                                        style="--menu-drawer-animation-index: 10;"
4634                                      >
4635                                        <a
4636                                          id="HeaderDrawer-brands-lorem-ipsum-barbicide"
4637                                          href="/collections/barbicide"
4638                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4639                                          
4640                                        >
4641                                          
4642                                          <span class="menu-drawer__menu-item-text wrap-text">BARBICIDE</span>
4643                                        </a>
4644                                      </li><li
4645                                        class="menu-drawer__list-item"
4646                                        style="--menu-drawer-animation-index: 11;"
4647                                      >
4648                                        <a
4649                                          id="HeaderDrawer-brands-lorem-ipsum-be-beauty"
4650                                          href="/collections/be-beauty"
4651                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4652                                          
4653                                        >
4654                                          
4655                                          <span class="menu-drawer__menu-item-text wrap-text">BE BEAUTY</span>
4656                                        </a>
4657                                      </li><li
4658                                        class="menu-drawer__list-item"
4659                                        style="--menu-drawer-animation-index: 12;"
4660                                      >
4661                                        <a
4662                                          id="HeaderDrawer-brands-lorem-ipsum-beauty-max"
4663                                          href="/collections/beauty-max"
4664                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4665                                          
4666                                        >
4667                                          
4668                                          <span class="menu-drawer__menu-item-text wrap-text">BEAUTY MAX</span>
4669                                        </a>
4670                                      </li><li
4671                                        class="menu-drawer__list-item"
4672                                        style="--menu-drawer-animation-index: 13;"
4673                                      >
4674                                        <a
4675                                          id="HeaderDrawer-brands-lorem-ipsum-cacee"
4676                                          href="/collections/cacee"
4677                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4678                                          
4679                                        >
4680                                          
4681                                          <span class="menu-drawer__menu-item-text wrap-text">CACEE</span>
4682                                        </a>
4683                                      </li><li
4684                                        class="menu-drawer__list-item"
4685                                        style="--menu-drawer-animation-index: 14;"
4686                                      >
4687                                        <a
4688                                          id="HeaderDrawer-brands-lorem-ipsum-chernaya-rechka"
4689                                          href="/collections/chernaya-rechka"
4690                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4691                                          
4692                                        >
4693                                          
4694                                          <span class="menu-drawer__menu-item-text wrap-text">CHERNAYA RECHKA</span>
4695                                        </a>
4696                                      </li><li
4697                                        class="menu-drawer__list-item"
4698                                        style="--menu-drawer-animation-index: 15;"
4699                                      >
4700                                        <a
4701                                          id="HeaderDrawer-brands-lorem-ipsum-christrio"
4702                                          href="/collections/christrio"
4703                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4704                                          
4705                                        >
4706                                          
4707                                          <span class="menu-drawer__menu-item-text wrap-text">CHRISTRIO</span>
4708                                        </a>
4709                                      </li><li
4710                                        class="menu-drawer__list-item"
4711                                        style="--menu-drawer-animation-index: 16;"
4712                                      >
4713                                        <a
4714                                          id="HeaderDrawer-brands-lorem-ipsum-cnd"
4715                                          href="/collections/cnd"
4716                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4717                                          
4718                                        >
4719                                          
4720                                          <span class="menu-drawer__menu-item-text wrap-text">CND</span>
4721                                        </a>
4722                                      </li><li
4723                                        class="menu-drawer__list-item"
4724                                        style="--menu-drawer-animation-index: 17;"
4725                                      >
4726                                        <a
4727                                          id="HeaderDrawer-brands-lorem-ipsum-color-club"
4728                                          href="/collections/color-club"
4729                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4730                                          
4731                                        >
4732                                          
4733                                          <span class="menu-drawer__menu-item-text wrap-text">COLOR CLUB</span>
4734                                        </a>
4735                                      </li><li
4736                                        class="menu-drawer__list-item"
4737                                        style="--menu-drawer-animation-index: 18;"
4738                                      >
4739                                        <a
4740                                          id="HeaderDrawer-brands-lorem-ipsum-credo"
4741                                          href="/collections/credo"
4742                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4743                                          
4744                                        >
4745                                          
4746                                          <span class="menu-drawer__menu-item-text wrap-text">CREDO</span>
4747                                        </a>
4748                                      </li></ul></li><li
4749                              class="
4750                                menu-drawer__list-item
4751                                menu-drawer__list-item--flat
4752                              "
4753                            >
4754                                
4755<a
4756                                    id="HeaderDrawer-brands-lorem-ipsum"
4757                                    href="/"
4758                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset menu-drawer__menu-item--active"
4759                                  >
4760                                    <span class="menu-drawer__menu-item-text wrap-text">Lorem Ipsum</span>
4761                                  </a>
4762                                  
4763                                  <ul
4764                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
4765                                    role="list"
4766                                    tabindex="-1"
4767                                  ><li
4768                                        class="menu-drawer__list-item"
4769                                        style="--menu-drawer-animation-index: 1;"
4770                                      >
4771                                        <a
4772                                          id="HeaderDrawer-brands-lorem-ipsum-cuccio"
4773                                          href="/collections/cuccio"
4774                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4775                                          
4776                                        >
4777                                          
4778                                          <span class="menu-drawer__menu-item-text wrap-text">CUCCIO</span>
4779                                        </a>
4780                                      </li><li
4781                                        class="menu-drawer__list-item"
4782                                        style="--menu-drawer-animation-index: 2;"
4783                                      >
4784                                        <a
4785                                          id="HeaderDrawer-brands-lorem-ipsum-daisy"
4786                                          href="/collections/daisy"
4787                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4788                                          
4789                                        >
4790                                          
4791                                          <span class="menu-drawer__menu-item-text wrap-text">DAISY</span>
4792                                        </a>
4793                                      </li><li
4794                                        class="menu-drawer__list-item"
4795                                        style="--menu-drawer-animation-index: 3;"
4796                                      >
4797                                        <a
4798                                          id="HeaderDrawer-brands-lorem-ipsum-derma-v10"
4799                                          href="/collections/derma-v10"
4800                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4801                                          
4802                                        >
4803                                          
4804                                          <span class="menu-drawer__menu-item-text wrap-text">DERMA V10</span>
4805                                        </a>
4806                                      </li><li
4807                                        class="menu-drawer__list-item"
4808                                        style="--menu-drawer-animation-index: 4;"
4809                                      >
4810                                        <a
4811                                          id="HeaderDrawer-brands-lorem-ipsum-dermert"
4812                                          href="/collections/dermert"
4813                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4814                                          
4815                                        >
4816                                          
4817                                          <span class="menu-drawer__menu-item-text wrap-text">DERMERT</span>
4818                                        </a>
4819                                      </li><li
4820                                        class="menu-drawer__list-item"
4821                                        style="--menu-drawer-animation-index: 5;"
4822                                      >
4823                                        <a
4824                                          id="HeaderDrawer-brands-lorem-ipsum-dnd-dc"
4825                                          href="/collections/dnd-dc"
4826                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4827                                          
4828                                        >
4829                                          
4830                                          <span class="menu-drawer__menu-item-text wrap-text">DND DC</span>
4831                                        </a>
4832                                      </li><li
4833                                        class="menu-drawer__list-item"
4834                                        style="--menu-drawer-animation-index: 6;"
4835                                      >
4836                                        <a
4837                                          id="HeaderDrawer-brands-lorem-ipsum-emi"
4838                                          href="/collections/emi"
4839                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4840                                          
4841                                        >
4842                                          
4843                                          <span class="menu-drawer__menu-item-text wrap-text">EMI</span>
4844                                        </a>
4845                                      </li><li
4846                                        class="menu-drawer__list-item"
4847                                        style="--menu-drawer-animation-index: 7;"
4848                                      >
4849                                        <a
4850                                          id="HeaderDrawer-brands-lorem-ipsum-entity"
4851                                          href="/collections/entity"
4852                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4853                                          
4854                                        >
4855                                          
4856                                          <span class="menu-drawer__menu-item-text wrap-text">ENTITY</span>
4857                                        </a>
4858                                      </li><li
4859                                        class="menu-drawer__list-item"
4860                                        style="--menu-drawer-animation-index: 8;"
4861                                      >
4862                                        <a
4863                                          id="HeaderDrawer-brands-lorem-ipsum-ezflow"
4864                                          href="/collections/ezflow"
4865                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4866                                          
4867                                        >
4868                                          
4869                                          <span class="menu-drawer__menu-item-text wrap-text">EZFLOW</span>
4870                                        </a>
4871                                      </li><li
4872                                        class="menu-drawer__list-item"
4873                                        style="--menu-drawer-animation-index: 9;"
4874                                      >
4875                                        <a
4876                                          id="HeaderDrawer-brands-lorem-ipsum-gelish"
4877                                          href="/collections/gelish"
4878                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4879                                          
4880                                        >
4881                                          
4882                                          <span class="menu-drawer__menu-item-text wrap-text">GELISH</span>
4883                                        </a>
4884                                      </li><li
4885                                        class="menu-drawer__list-item"
4886                                        style="--menu-drawer-animation-index: 10;"
4887                                      >
4888                                        <a
4889                                          id="HeaderDrawer-brands-lorem-ipsum-glam-glits"
4890                                          href="/collections/glam-glits"
4891                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4892                                          
4893                                        >
4894                                          
4895                                          <span class="menu-drawer__menu-item-text wrap-text">GLAM &amp; GLITS</span>
4896                                        </a>
4897                                      </li><li
4898                                        class="menu-drawer__list-item"
4899                                        style="--menu-drawer-animation-index: 11;"
4900                                      >
4901                                        <a
4902                                          id="HeaderDrawer-brands-lorem-ipsum-glamlac"
4903                                          href="/collections/glamlac"
4904                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4905                                          
4906                                        >
4907                                          
4908                                          <span class="menu-drawer__menu-item-text wrap-text">GLAMLAC</span>
4909                                        </a>
4910                                      </li><li
4911                                        class="menu-drawer__list-item"
4912                                        style="--menu-drawer-animation-index: 12;"
4913                                      >
4914                                        <a
4915                                          id="HeaderDrawer-brands-lorem-ipsum-glamlash"
4916                                          href="/collections/glamlash"
4917                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4918                                          
4919                                        >
4920                                          
4921                                          <span class="menu-drawer__menu-item-text wrap-text">GLAMLASH</span>
4922                                        </a>
4923                                      </li><li
4924                                        class="menu-drawer__list-item"
4925                                        style="--menu-drawer-animation-index: 13;"
4926                                      >
4927                                        <a
4928                                          id="HeaderDrawer-brands-lorem-ipsum-glamlashes"
4929                                          href="/collections/glamlashes"
4930                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4931                                          
4932                                        >
4933                                          
4934                                          <span class="menu-drawer__menu-item-text wrap-text">GLAMLASHES</span>
4935                                        </a>
4936                                      </li><li
4937                                        class="menu-drawer__list-item"
4938                                        style="--menu-drawer-animation-index: 14;"
4939                                      >
4940                                        <a
4941                                          id="HeaderDrawer-brands-lorem-ipsum-halo"
4942                                          href="/collections/halo"
4943                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4944                                          
4945                                        >
4946                                          
4947                                          <span class="menu-drawer__menu-item-text wrap-text">HALO</span>
4948                                        </a>
4949                                      </li><li
4950                                        class="menu-drawer__list-item"
4951                                        style="--menu-drawer-animation-index: 15;"
4952                                      >
4953                                        <a
4954                                          id="HeaderDrawer-brands-lorem-ipsum-hong-kong-girl"
4955                                          href="/collections/hong-kong-girl"
4956                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4957                                          
4958                                        >
4959                                          
4960                                          <span class="menu-drawer__menu-item-text wrap-text">HONG KONG GIRL</span>
4961                                        </a>
4962                                      </li><li
4963                                        class="menu-drawer__list-item"
4964                                        style="--menu-drawer-animation-index: 16;"
4965                                      >
4966                                        <a
4967                                          id="HeaderDrawer-brands-lorem-ipsum-ibd"
4968                                          href="/collections/ibd"
4969                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4970                                          
4971                                        >
4972                                          
4973                                          <span class="menu-drawer__menu-item-text wrap-text">IBD</span>
4974                                        </a>
4975                                      </li><li
4976                                        class="menu-drawer__list-item"
4977                                        style="--menu-drawer-animation-index: 17;"
4978                                      >
4979                                        <a
4980                                          id="HeaderDrawer-brands-lorem-ipsum-icon"
4981                                          href="/collections/icon"
4982                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
4983                                          
4984                                        >
4985                                          
4986                                          <span class="menu-drawer__menu-item-text wrap-text">ICON</span>
4987                                        </a>
4988                                      </li></ul></li><li
4989                              class="
4990                                menu-drawer__list-item
4991                                menu-drawer__list-item--flat
4992                              "
4993                            >
4994                                
4995<a
4996                                    id="HeaderDrawer-brands-lorem-ipsum"
4997                                    href="/"
4998                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset menu-drawer__menu-item--active"
4999                                  >
5000                                    <span class="menu-drawer__menu-item-text wrap-text">Lorem Ipsum</span>
5001                                  </a>
5002                                  
5003                                  <ul
5004                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
5005                                    role="list"
5006                                    tabindex="-1"
5007                                  ><li
5008                                        class="menu-drawer__list-item"
5009                                        style="--menu-drawer-animation-index: 1;"
5010                                      >
5011                                        <a
5012                                          id="HeaderDrawer-brands-lorem-ipsum-infalab"
5013                                          href="/collections/infalab"
5014                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5015                                          
5016                                        >
5017                                          
5018                                          <span class="menu-drawer__menu-item-text wrap-text">INFALAB</span>
5019                                        </a>
5020                                      </li><li
5021                                        class="menu-drawer__list-item"
5022                                        style="--menu-drawer-animation-index: 2;"
5023                                      >
5024                                        <a
5025                                          id="HeaderDrawer-brands-lorem-ipsum-jet"
5026                                          href="/collections/jet"
5027                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5028                                          
5029                                        >
5030                                          
5031                                          <span class="menu-drawer__menu-item-text wrap-text">JET</span>
5032                                        </a>
5033                                      </li><li
5034                                        class="menu-drawer__list-item"
5035                                        style="--menu-drawer-animation-index: 3;"
5036                                      >
5037                                        <a
5038                                          id="HeaderDrawer-brands-lorem-ipsum-jinhong"
5039                                          href="/collections/jinhong"
5040                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5041                                          
5042                                        >
5043                                          
5044                                          <span class="menu-drawer__menu-item-text wrap-text">JINHONG</span>
5045                                        </a>
5046                                      </li><li
5047                                        class="menu-drawer__list-item"
5048                                        style="--menu-drawer-animation-index: 4;"
5049                                      >
5050                                        <a
5051                                          id="HeaderDrawer-brands-lorem-ipsum-kds"
5052                                          href="/collections/kds"
5053                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5054                                          
5055                                        >
5056                                          
5057                                          <span class="menu-drawer__menu-item-text wrap-text">KDS</span>
5058                                        </a>
5059                                      </li><li
5060                                        class="menu-drawer__list-item"
5061                                        style="--menu-drawer-animation-index: 5;"
5062                                      >
5063                                        <a
5064                                          id="HeaderDrawer-brands-lorem-ipsum-keli"
5065                                          href="/collections/keli"
5066                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5067                                          
5068                                        >
5069                                          
5070                                          <span class="menu-drawer__menu-item-text wrap-text">KELI</span>
5071                                        </a>
5072                                      </li><li
5073                                        class="menu-drawer__list-item"
5074                                        style="--menu-drawer-animation-index: 6;"
5075                                      >
5076                                        <a
5077                                          id="HeaderDrawer-brands-lorem-ipsum-kiara-sky"
5078                                          href="/collections/kiara-sky"
5079                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5080                                          
5081                                        >
5082                                          
5083                                          <span class="menu-drawer__menu-item-text wrap-text">KIARA SKY</span>
5084                                        </a>
5085                                      </li><li
5086                                        class="menu-drawer__list-item"
5087                                        style="--menu-drawer-animation-index: 7;"
5088                                      >
5089                                        <a
5090                                          id="HeaderDrawer-brands-lorem-ipsum-kiehl"
5091                                          href="/collections/kiehl"
5092                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5093                                          
5094                                        >
5095                                          
5096                                          <span class="menu-drawer__menu-item-text wrap-text">KIEHL</span>
5097                                        </a>
5098                                      </li><li
5099                                        class="menu-drawer__list-item"
5100                                        style="--menu-drawer-animation-index: 8;"
5101                                      >
5102                                        <a
5103                                          id="HeaderDrawer-brands-lorem-ipsum-kupa"
5104                                          href="/collections/kupa"
5105                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5106                                          
5107                                        >
5108                                          
5109                                          <span class="menu-drawer__menu-item-text wrap-text">KUPA</span>
5110                                        </a>
5111                                      </li><li
5112                                        class="menu-drawer__list-item"
5113                                        style="--menu-drawer-animation-index: 9;"
5114                                      >
5115                                        <a
5116                                          id="HeaderDrawer-brands-lorem-ipsum-lamour"
5117                                          href="/collections/lamour"
5118                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5119                                          
5120                                        >
5121                                          
5122                                          <span class="menu-drawer__menu-item-text wrap-text">LAMOUR</span>
5123                                        </a>
5124                                      </li><li
5125                                        class="menu-drawer__list-item"
5126                                        style="--menu-drawer-animation-index: 10;"
5127                                      >
5128                                        <a
5129                                          id="HeaderDrawer-brands-lorem-ipsum-lazy-fun"
5130                                          href="/collections/lazy-fun"
5131                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5132                                          
5133                                        >
5134                                          
5135                                          <span class="menu-drawer__menu-item-text wrap-text">LAZY FUN</span>
5136                                        </a>
5137                                      </li><li
5138                                        class="menu-drawer__list-item"
5139                                        style="--menu-drawer-animation-index: 11;"
5140                                      >
5141                                        <a
5142                                          id="HeaderDrawer-brands-lorem-ipsum-lion"
5143                                          href="/collections/lion"
5144                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5145                                          
5146                                        >
5147                                          
5148                                          <span class="menu-drawer__menu-item-text wrap-text">LION</span>
5149                                        </a>
5150                                      </li><li
5151                                        class="menu-drawer__list-item"
5152                                        style="--menu-drawer-animation-index: 12;"
5153                                      >
5154                                        <a
5155                                          id="HeaderDrawer-brands-lorem-ipsum-lorossi"
5156                                          href="/collections/lorossi"
5157                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5158                                          
5159                                        >
5160                                          
5161                                          <span class="menu-drawer__menu-item-text wrap-text">LOROSSI</span>
5162                                        </a>
5163                                      </li><li
5164                                        class="menu-drawer__list-item"
5165                                        style="--menu-drawer-animation-index: 13;"
5166                                      >
5167                                        <a
5168                                          id="HeaderDrawer-brands-lorem-ipsum-mae"
5169                                          href="/collections/mae"
5170                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5171                                          
5172                                        >
5173                                          
5174                                          <span class="menu-drawer__menu-item-text wrap-text">MAE</span>
5175                                        </a>
5176                                      </li><li
5177                                        class="menu-drawer__list-item"
5178                                        style="--menu-drawer-animation-index: 14;"
5179                                      >
5180                                        <a
5181                                          id="HeaderDrawer-brands-lorem-ipsum-medicool"
5182                                          href="/collections/medicool"
5183                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5184                                          
5185                                        >
5186                                          
5187                                          <span class="menu-drawer__menu-item-text wrap-text">MEDICOOL</span>
5188                                        </a>
5189                                      </li><li
5190                                        class="menu-drawer__list-item"
5191                                        style="--menu-drawer-animation-index: 15;"
5192                                      >
5193                                        <a
5194                                          id="HeaderDrawer-brands-lorem-ipsum-mei-na-si"
5195                                          href="/collections/mei-na-si"
5196                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5197                                          
5198                                        >
5199                                          
5200                                          <span class="menu-drawer__menu-item-text wrap-text">MEI NA SI</span>
5201                                        </a>
5202                                      </li><li
5203                                        class="menu-drawer__list-item"
5204                                        style="--menu-drawer-animation-index: 16;"
5205                                      >
5206                                        <a
5207                                          id="HeaderDrawer-brands-lorem-ipsum-micra"
5208                                          href="/collections/micra"
5209                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5210                                          
5211                                        >
5212                                          
5213                                          <span class="menu-drawer__menu-item-text wrap-text">MICRA</span>
5214                                        </a>
5215                                      </li><li
5216                                        class="menu-drawer__list-item"
5217                                        style="--menu-drawer-animation-index: 17;"
5218                                      >
5219                                        <a
5220                                          id="HeaderDrawer-brands-lorem-ipsum-moding"
5221                                          href="/collections/moding"
5222                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5223                                          
5224                                        >
5225                                          
5226                                          <span class="menu-drawer__menu-item-text wrap-text">MODING</span>
5227                                        </a>
5228                                      </li></ul></li><li
5229                              class="
5230                                menu-drawer__list-item
5231                                menu-drawer__list-item--flat
5232                              "
5233                            >
5234                                
5235<a
5236                                    id="HeaderDrawer-brands-lorem-ipsum"
5237                                    href="/"
5238                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset menu-drawer__menu-item--active"
5239                                  >
5240                                    <span class="menu-drawer__menu-item-text wrap-text">Lorem Ipsum</span>
5241                                  </a>
5242                                  
5243                                  <ul
5244                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
5245                                    role="list"
5246                                    tabindex="-1"
5247                                  ><li
5248                                        class="menu-drawer__list-item"
5249                                        style="--menu-drawer-animation-index: 1;"
5250                                      >
5251                                        <a
5252                                          id="HeaderDrawer-brands-lorem-ipsum-morgan-taylor"
5253                                          href="/collections/morgan-taylor"
5254                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5255                                          
5256                                        >
5257                                          
5258                                          <span class="menu-drawer__menu-item-text wrap-text">MORGAN TAYLOR</span>
5259                                        </a>
5260                                      </li><li
5261                                        class="menu-drawer__list-item"
5262                                        style="--menu-drawer-animation-index: 2;"
5263                                      >
5264                                        <a
5265                                          id="HeaderDrawer-brands-lorem-ipsum-nail-artists"
5266                                          href="/collections/nail-artists"
5267                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5268                                          
5269                                        >
5270                                          
5271                                          <span class="menu-drawer__menu-item-text wrap-text">NAIL ARTISTS</span>
5272                                        </a>
5273                                      </li><li
5274                                        class="menu-drawer__list-item"
5275                                        style="--menu-drawer-animation-index: 3;"
5276                                      >
5277                                        <a
5278                                          id="HeaderDrawer-brands-lorem-ipsum-nailpro"
5279                                          href="/collections/nailpro"
5280                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5281                                          
5282                                        >
5283                                          
5284                                          <span class="menu-drawer__menu-item-text wrap-text">NAILPRO</span>
5285                                        </a>
5286                                      </li><li
5287                                        class="menu-drawer__list-item"
5288                                        style="--menu-drawer-animation-index: 4;"
5289                                      >
5290                                        <a
5291                                          id="HeaderDrawer-brands-lorem-ipsum-nghia"
5292                                          href="/collections/nghia"
5293                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5294                                          
5295                                        >
5296                                          
5297                                          <span class="menu-drawer__menu-item-text wrap-text">NGHIA</span>
5298                                        </a>
5299                                      </li><li
5300                                        class="menu-drawer__list-item"
5301                                        style="--menu-drawer-animation-index: 5;"
5302                                      >
5303                                        <a
5304                                          id="HeaderDrawer-brands-lorem-ipsum-nola"
5305                                          href="/collections/nola"
5306                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5307                                          
5308                                        >
5309                                          
5310                                          <span class="menu-drawer__menu-item-text wrap-text">NOLA</span>
5311                                        </a>
5312                                      </li><li
5313                                        class="menu-drawer__list-item"
5314                                        style="--menu-drawer-animation-index: 6;"
5315                                      >
5316                                        <a
5317                                          id="HeaderDrawer-brands-lorem-ipsum-nps"
5318                                          href="/collections/nps"
5319                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5320                                          
5321                                        >
5322                                          
5323                                          <span class="menu-drawer__menu-item-text wrap-text">NPS</span>
5324                                        </a>
5325                                      </li><li
5326                                        class="menu-drawer__list-item"
5327                                        style="--menu-drawer-animation-index: 7;"
5328                                      >
5329                                        <a
5330                                          id="HeaderDrawer-brands-lorem-ipsum-ns-101"
5331                                          href="/collections/ns-101"
5332                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5333                                          
5334                                        >
5335                                          
5336                                          <span class="menu-drawer__menu-item-text wrap-text">NS-101</span>
5337                                        </a>
5338                                      </li><li
5339                                        class="menu-drawer__list-item"
5340                                        style="--menu-drawer-animation-index: 8;"
5341                                      >
5342                                        <a
5343                                          id="HeaderDrawer-brands-lorem-ipsum-nsi"
5344                                          href="/collections/nsi"
5345                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5346                                          
5347                                        >
5348                                          
5349                                          <span class="menu-drawer__menu-item-text wrap-text">NSI</span>
5350                                        </a>
5351                                      </li><li
5352                                        class="menu-drawer__list-item"
5353                                        style="--menu-drawer-animation-index: 9;"
5354                                      >
5355                                        <a
5356                                          id="HeaderDrawer-brands-lorem-ipsum-opi"
5357                                          href="/collections/opi"
5358                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5359                                          
5360                                        >
5361                                          
5362                                          <span class="menu-drawer__menu-item-text wrap-text">OPI</span>
5363                                        </a>
5364                                      </li><li
5365                                        class="menu-drawer__list-item"
5366                                        style="--menu-drawer-animation-index: 10;"
5367                                      >
5368                                        <a
5369                                          id="HeaderDrawer-brands-lorem-ipsum-orly"
5370                                          href="/collections/orly"
5371                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5372                                          
5373                                        >
5374                                          
5375                                          <span class="menu-drawer__menu-item-text wrap-text">ORLY</span>
5376                                        </a>
5377                                      </li><li
5378                                        class="menu-drawer__list-item"
5379                                        style="--menu-drawer-animation-index: 11;"
5380                                      >
5381                                        <a
5382                                          id="HeaderDrawer-brands-lorem-ipsum-qtica"
5383                                          href="/collections/qtica"
5384                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5385                                          
5386                                        >
5387                                          
5388                                          <span class="menu-drawer__menu-item-text wrap-text">QTICA</span>
5389                                        </a>
5390                                      </li><li
5391                                        class="menu-drawer__list-item"
5392                                        style="--menu-drawer-animation-index: 12;"
5393                                      >
5394                                        <a
5395                                          id="HeaderDrawer-brands-lorem-ipsum-refectocil"
5396                                          href="/collections/refectocil"
5397                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5398                                          
5399                                        >
5400                                          
5401                                          <span class="menu-drawer__menu-item-text wrap-text">REFECTOCIL</span>
5402                                        </a>
5403                                      </li><li
5404                                        class="menu-drawer__list-item"
5405                                        style="--menu-drawer-animation-index: 13;"
5406                                      >
5407                                        <a
5408                                          id="HeaderDrawer-brands-lorem-ipsum-rococo"
5409                                          href="/collections/rococo"
5410                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5411                                          
5412                                        >
5413                                          
5414                                          <span class="menu-drawer__menu-item-text wrap-text">ROCOCO</span>
5415                                        </a>
5416                                      </li><li
5417                                        class="menu-drawer__list-item"
5418                                        style="--menu-drawer-animation-index: 14;"
5419                                      >
5420                                        <a
5421                                          id="HeaderDrawer-brands-lorem-ipsum-saeyang"
5422                                          href="/collections/saeyang"
5423                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5424                                          
5425                                        >
5426                                          
5427                                          <span class="menu-drawer__menu-item-text wrap-text">SAEYANG</span>
5428                                        </a>
5429                                      </li><li
5430                                        class="menu-drawer__list-item"
5431                                        style="--menu-drawer-animation-index: 15;"
5432                                      >
5433                                        <a
5434                                          id="HeaderDrawer-brands-lorem-ipsum-salon-system"
5435                                          href="/collections/salon-system"
5436                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5437                                          
5438                                        >
5439                                          
5440                                          <span class="menu-drawer__menu-item-text wrap-text">SALON SYSTEM</span>
5441                                        </a>
5442                                      </li><li
5443                                        class="menu-drawer__list-item"
5444                                        style="--menu-drawer-animation-index: 16;"
5445                                      >
5446                                        <a
5447                                          id="HeaderDrawer-brands-lorem-ipsum-seche"
5448                                          href="/collections/seche"
5449                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5450                                          
5451                                        >
5452                                          
5453                                          <span class="menu-drawer__menu-item-text wrap-text">SECHE</span>
5454                                        </a>
5455                                      </li><li
5456                                        class="menu-drawer__list-item"
5457                                        style="--menu-drawer-animation-index: 17;"
5458                                      >
5459                                        <a
5460                                          id="HeaderDrawer-brands-lorem-ipsum-seiko"
5461                                          href="/collections/seiko"
5462                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5463                                          
5464                                        >
5465                                          
5466                                          <span class="menu-drawer__menu-item-text wrap-text">SEIKO</span>
5467                                        </a>
5468                                      </li></ul></li><li
5469                              class="
5470                                menu-drawer__list-item
5471                                menu-drawer__list-item--flat
5472                              "
5473                            >
5474                                
5475<a
5476                                    id="HeaderDrawer-brands-lorem-ipsum"
5477                                    href="/"
5478                                    class="menu-drawer__menu-item menu-drawer__menu-item--parent focus-inset menu-drawer__menu-item--active"
5479                                  >
5480                                    <span class="menu-drawer__menu-item-text wrap-text">Lorem Ipsum</span>
5481                                  </a>
5482                                  
5483                                  <ul
5484                                    class="menu-drawer__menu menu-drawer__menu--grandchildlist details-content"
5485                                    role="list"
5486                                    tabindex="-1"
5487                                  ><li
5488                                        class="menu-drawer__list-item"
5489                                        style="--menu-drawer-animation-index: 1;"
5490                                      >
5491                                        <a
5492                                          id="HeaderDrawer-brands-lorem-ipsum-simply"
5493                                          href="/collections/simply"
5494                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5495                                          
5496                                        >
5497                                          
5498                                          <span class="menu-drawer__menu-item-text wrap-text">SIMPLY</span>
5499                                        </a>
5500                                      </li><li
5501                                        class="menu-drawer__list-item"
5502                                        style="--menu-drawer-animation-index: 2;"
5503                                      >
5504                                        <a
5505                                          id="HeaderDrawer-brands-lorem-ipsum-sleep-in-rollers"
5506                                          href="/collections/sleep-in-rollers"
5507                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5508                                          
5509                                        >
5510                                          
5511                                          <span class="menu-drawer__menu-item-text wrap-text">SLEEP IN ROLLERS</span>
5512                                        </a>
5513                                      </li><li
5514                                        class="menu-drawer__list-item"
5515                                        style="--menu-drawer-animation-index: 3;"
5516                                      >
5517                                        <a
5518                                          id="HeaderDrawer-brands-lorem-ipsum-startool"
5519                                          href="/collections/startool"
5520                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5521                                          
5522                                        >
5523                                          
5524                                          <span class="menu-drawer__menu-item-text wrap-text">STARTOOL</span>
5525                                        </a>
5526                                      </li><li
5527                                        class="menu-drawer__list-item"
5528                                        style="--menu-drawer-animation-index: 4;"
5529                                      >
5530                                        <a
5531                                          id="HeaderDrawer-brands-lorem-ipsum-strictly-professional"
5532                                          href="/collections/strictly-professional"
5533                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5534                                          
5535                                        >
5536                                          
5537                                          <span class="menu-drawer__menu-item-text wrap-text">STRICTLY PROFESSIONAL</span>
5538                                        </a>
5539                                      </li><li
5540                                        class="menu-drawer__list-item"
5541                                        style="--menu-drawer-animation-index: 5;"
5542                                      >
5543                                        <a
5544                                          id="HeaderDrawer-brands-lorem-ipsum-supernail"
5545                                          href="/collections/supernail"
5546                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5547                                          
5548                                        >
5549                                          
5550                                          <span class="menu-drawer__menu-item-text wrap-text">SUPERNAIL</span>
5551                                        </a>
5552                                      </li><li
5553                                        class="menu-drawer__list-item"
5554                                        style="--menu-drawer-animation-index: 6;"
5555                                      >
5556                                        <a
5557                                          id="HeaderDrawer-brands-lorem-ipsum-swarovski"
5558                                          href="/collections/swarovski"
5559                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5560                                          
5561                                        >
5562                                          
5563                                          <span class="menu-drawer__menu-item-text wrap-text">SWAROVSKI</span>
5564                                        </a>
5565                                      </li><li
5566                                        class="menu-drawer__list-item"
5567                                        style="--menu-drawer-animation-index: 7;"
5568                                      >
5569                                        <a
5570                                          id="HeaderDrawer-brands-lorem-ipsum-titania"
5571                                          href="/collections/titania"
5572                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5573                                          
5574                                        >
5575                                          
5576                                          <span class="menu-drawer__menu-item-text wrap-text">TITANIA</span>
5577                                        </a>
5578                                      </li><li
5579                                        class="menu-drawer__list-item"
5580                                        style="--menu-drawer-animation-index: 8;"
5581                                      >
5582                                        <a
5583                                          id="HeaderDrawer-brands-lorem-ipsum-tnbl"
5584                                          href="/collections/tnbl"
5585                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5586                                          
5587                                        >
5588                                          
5589                                          <span class="menu-drawer__menu-item-text wrap-text">TNBL</span>
5590                                        </a>
5591                                      </li><li
5592                                        class="menu-drawer__list-item"
5593                                        style="--menu-drawer-animation-index: 9;"
5594                                      >
5595                                        <a
5596                                          id="HeaderDrawer-brands-lorem-ipsum-upower"
5597                                          href="/collections/upower"
5598                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5599                                          
5600                                        >
5601                                          
5602                                          <span class="menu-drawer__menu-item-text wrap-text">UPOWER</span>
5603                                        </a>
5604                                      </li><li
5605                                        class="menu-drawer__list-item"
5606                                        style="--menu-drawer-animation-index: 10;"
5607                                      >
5608                                        <a
5609                                          id="HeaderDrawer-brands-lorem-ipsum-varisi"
5610                                          href="/collections/varisi"
5611                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5612                                          
5613                                        >
5614                                          
5615                                          <span class="menu-drawer__menu-item-text wrap-text">VARISI</span>
5616                                        </a>
5617                                      </li><li
5618                                        class="menu-drawer__list-item"
5619                                        style="--menu-drawer-animation-index: 11;"
5620                                      >
5621                                        <a
5622                                          id="HeaderDrawer-brands-lorem-ipsum-veniiz"
5623                                          href="/collections/veniiz"
5624                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5625                                          
5626                                        >
5627                                          
5628                                          <span class="menu-drawer__menu-item-text wrap-text">VENIIZ</span>
5629                                        </a>
5630                                      </li><li
5631                                        class="menu-drawer__list-item"
5632                                        style="--menu-drawer-animation-index: 12;"
5633                                      >
5634                                        <a
5635                                          id="HeaderDrawer-brands-lorem-ipsum-vina"
5636                                          href="/collections/vina"
5637                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5638                                          
5639                                        >
5640                                          
5641                                          <span class="menu-drawer__menu-item-text wrap-text">VINA</span>
5642                                        </a>
5643                                      </li><li
5644                                        class="menu-drawer__list-item"
5645                                        style="--menu-drawer-animation-index: 13;"
5646                                      >
5647                                        <a
5648                                          id="HeaderDrawer-brands-lorem-ipsum-vins"
5649                                          href="/collections/vins"
5650                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5651                                          
5652                                        >
5653                                          
5654                                          <span class="menu-drawer__menu-item-text wrap-text">VINS</span>
5655                                        </a>
5656                                      </li><li
5657                                        class="menu-drawer__list-item"
5658                                        style="--menu-drawer-animation-index: 14;"
5659                                      >
5660                                        <a
5661                                          id="HeaderDrawer-brands-lorem-ipsum-voesh"
5662                                          href="/collections/voesh"
5663                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5664                                          
5665                                        >
5666                                          
5667                                          <span class="menu-drawer__menu-item-text wrap-text">VOESH</span>
5668                                        </a>
5669                                      </li><li
5670                                        class="menu-drawer__list-item"
5671                                        style="--menu-drawer-animation-index: 15;"
5672                                      >
5673                                        <a
5674                                          id="HeaderDrawer-brands-lorem-ipsum-willow"
5675                                          href="/collections/willow"
5676                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5677                                          
5678                                        >
5679                                          
5680                                          <span class="menu-drawer__menu-item-text wrap-text">WILLOW</span>
5681                                        </a>
5682                                      </li><li
5683                                        class="menu-drawer__list-item"
5684                                        style="--menu-drawer-animation-index: 16;"
5685                                      >
5686                                        <a
5687                                          id="HeaderDrawer-brands-lorem-ipsum-wonder-gel"
5688                                          href="/collections/wonder-gel"
5689                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5690                                          
5691                                        >
5692                                          
5693                                          <span class="menu-drawer__menu-item-text wrap-text">WONDER GEL</span>
5694                                        </a>
5695                                      </li><li
5696                                        class="menu-drawer__list-item"
5697                                        style="--menu-drawer-animation-index: 17;"
5698                                      >
5699                                        <a
5700                                          id="HeaderDrawer-brands-lorem-ipsum-yoyo"
5701                                          href="/collections/yoyo"
5702                                          class="menu-drawer__menu-item menu-drawer__menu-item--child focus-inset"
5703                                          
5704                                        >
5705                                          
5706                                          <span class="menu-drawer__menu-item-text wrap-text">YOYO</span>
5707                                        </a>
5708                                      </li></ul></li></ul>
5709                        
5710                      </div>
5711                    </div>
5712                  </details></li>
5713              <li
5714                class="menu-drawer__list-item"
5715                style="--menu-drawer-animation-index: 8;"
5716              ><a
5717                    id="HeaderDrawer-sale"
5718                    href="/collections/tnbl-sale"
5719                    class="menu-drawer__menu-item menu-drawer__menu-item--mainlist menu-drawer__animated-element focus-inset"
5720                    
5721                  >
5722                    <span class="menu-drawer__menu-item-text wrap-text">Sale</span>
5723                  </a></li>
5724        </ul>
5725      </nav>
5726      <div
5727        class="menu-drawer__utility-links menu-drawer__animated-element"
5728        style="--menu-drawer-animation-index: 8;"
5729      >
5730        
5731        </div>
5732
5733      
5734    </div>
5735    <div
5736      class="menu-drawer__backdrop"
5737      on:click="header-drawer/close"
5738    ></div>
5739  </details>
5740</header-drawer>
5741
5742
5743
5744    </div>
5745
5746  
5747
5748
5749
5750
5751
5752            
5753        
5754      
5755        
5756          
5757              
5758  <search-button class="search-action desktop:hidden">
5759    <button
5760      on:click="#search-modal/showDialog"
5761      class="button button-unstyled search-modal__button header-actions__action"
5762      aria-label="Search"
5763      aria-haspopup="dialog"
5764    >
5765      <span
5766        aria-hidden="true"
5767        class="svg-wrapper"
5768      >
5769        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
5770<path d="M19.1361 20L11.4929 12.3568C10.8825 12.8764 10.1807 13.2786 9.38723 13.5634C8.59379 13.8483 7.79649 13.9907 6.99533 13.9907C5.04023 13.9907 3.38552 13.3139 2.03119 11.9604C0.677063 10.6069 0 8.95318 0 6.9993C0 5.04522 0.676758 3.39009 2.03027 2.03393C3.38379 0.677977 5.03748 0 6.99136 0C8.94545 0 10.6006 0.677063 11.9567 2.03119C13.3127 3.38552 13.9907 5.04023 13.9907 6.99533C13.9907 7.84349 13.8404 8.66429 13.5399 9.45772C13.2394 10.2512 12.8451 10.9295 12.3568 11.4929L20 19.1364L19.1361 20ZM6.99533 12.77C8.61495 12.77 9.9823 12.2125 11.0974 11.0974C12.2125 9.9825 12.77 8.61515 12.77 6.99533C12.77 5.37551 12.2125 4.00816 11.0974 2.89328C9.9823 1.7782 8.61495 1.22067 6.99533 1.22067C5.37551 1.22067 4.00816 1.7782 2.89328 2.89328C1.7782 4.00816 1.22067 5.37551 1.22067 6.99533C1.22067 8.61515 1.7782 9.9825 2.89328 11.0974C4.00816 12.2125 5.37551 12.77 6.99533 12.77Z" fill="#111111"/>
5771</svg>
5772
5773      </span>
5774    </button>
5775  </search-button>
5776
5777
5778
5779
5780            
5781        
5782      
5783        
5784          
5785              
5786
5787
5788
5789
5790<a
5791  
5792  href="/"
5793  class="size-style spacing-style header-logo"
5794  style="
5795    --size-style-width: ;--size-style-height: ;
5796    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
5797    --font-family: var(--font-body--family);
5798    --font-style: var(--font-body--style);
5799    --font-weight: 600;
5800  "
5801  
5802>
5803  
5804
5805  <span
5806    class="header-logo__image-container header-logo__image-container--original"
5807    data-testid="header-logo"
5808  >
5809    
5810  
5811  
5812  
5813
5814  
5815
5816  
5817
5818  
5819
5820  <img src="//www.tnbl.co.uk/cdn/shop/files/TNBL.png?height=60&amp;v=1766497859" alt="" width="130" height="60" class="header-logo__image" srcset="//www.tnbl.co.uk/cdn/shop/files/TNBL.png?height=60&amp;v=1766497859 1x, //www.tnbl.co.uk/cdn/shop/files/TNBL.png?height=120&amp;v=1766497859 2x, //www.tnbl.co.uk/cdn/shop/files/TNBL.png?height=180&amp;v=1766497859 3x" style="--header-logo-image-width: 130px;--header-logo-image-width-mobile: 91px; --header-logo-image-height: 60px; --header-logo-image-height-mobile: 42px;">
5821
5822
5823  </span>
5824
5825  
5826</a>
5827
5828
5829
5830
5831
5832            
5833        
5834      
5835    </div><div
5836      class="header__column header__column--center"
5837      data-testid="header-top-center"
5838    >
5839      
5840        
5841          
5842              
5843
5844
5845
5846    
5847
5848    
5849
5850    <header-menu
5851      ref="headerMenu"
5852      class="header-menu mobile:hidden"
5853      data-animation-delay="200"
5854      
5855      style="--submenu-animation-speed: 200ms;"
5856    >
5857      <div class="header-menu__inner">
5858        <nav header-menu>
5859          <div
5860            class="menu-list"
5861            style="--menu-top-level-font-family: var(--font-body--family);
5862--menu-top-level-font-size-desktop: 1rem; --menu-top-level-font-style: var(--font-body--style);
5862 --menu-top-level-font-weight: var(--font-body--weight); --menu-top-level-font-case:none;
5863
5864  --menu-top-level-font-size: var(--menu-font-sm--size); --menu-top-level-font-line-height:
5865  var(--menu-font-sm--line-height);
5866
5867--menu-top-level-font-color: var(--color-foreground); --menu-top-level-font-color-rgb: var(--color-foreground-rgb);
5868"
5869          >
5870            
5871            <overflow-list
5872  
5873    ref="overflowMenu"
5874  
5875  
5876    class="overflow-menu color-scheme-matches-parent"
5877  
5878  
5879    minimum-items="2"
5880  
5881  
5882    data-testid="header-menu-overflow-list"
5883  
5884  
5885    data-skip-node-update
5886  
5887>
5888  <template shadowrootmode="open">
5889    <link href="//www.tnbl.co.uk/cdn/shop/t/6/assets/overflow-list.css?v=101911674359793798601774530324" rel="stylesheet" type="text/css" media="all" />
5890
5891    <ul part="list">
5892      <slot></slot>
5893      <slot
5894        name="more"
5895        part="more"
5896        hidden
5897        
5898      >
5899        <li
5900          part="more"
5901        >
5902          <button
5903            class="button"
5904            type="button"
5905            tabindex="0"
5906          >
5907            More
5908          </button>
5909        </li>
5910      </slot>
5911      <li
5912        part="placeholder"
5913        hidden
5914      ></li>
5915    </ul>
5916
5917    <div part="overflow">
5918      <ul part="overflow-list">
5919        <slot name="overflow"></slot>
5920      </ul>
5921    </div>
5922  </template>
5923
5924  
5925      
5926        <li
5927          role="presentation"
5928          class="menu-list__list-item"
5929          on:focus="/activate"
5930          on:blur="/deactivate"
5931          on:pointerenter="/activate"
5932          on:pointerleave="/deactivate"
5933        >
5934          <a
5935            href="/collections/new"
5936            data-skip-node-update="true"
5937            class="menu-list__link"ref="menuitem"
5938          >
5939            <span class="menu-list__link-title">New In</span>
5940          </a></li>
5941      
5942        <li
5943          role="presentation"
5944          class="menu-list__list-item"
5945          on:focus="/activate"
5946          on:blur="/deactivate"
5947          on:pointerenter="/activate"
5948          on:pointerleave="/deactivate"
5949        >
5950          <a
5951            href="/pages/apres"
5952            data-skip-node-update="true"
5953            class="menu-list__link"aria-controls="submenu-2"
5954              aria-haspopup="true"
5955              aria-expanded="false"ref="menuitem"
5956          >
5957            <span class="menu-list__link-title">Apres Nails</span>
5958          </a><div class="menu-list__submenu color-scheme-matches-parent" ref="submenu[]">
5959              <div
5960                id="submenu-2"
5961                class="menu-list__submenu-inner menu-list__submenu-inner--apres-nails"
5962                style="--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
5963var(--font-body--style); --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
5964none;
5965
5966    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
5967    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
5968    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
5969  
5970--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
5971var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
5972none;
5973
5974    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
5975    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
5976    --menu-child-active-font-color: var(--color-foreground);
5977  
5978"
5979              >
5980                
5981                <div class="mega-menu section section--full-width-margin section--page-width">
5982                  <div
5983                    class="mega-menu__grid"
5984                    data-menu-grid-id="MegaMenuList-2"
5985                  >
5986                    
5987<ul
5988  data-menu-list-id="MegaMenuList-2"
5989  class="mega-menu__list list-unstyled"
5990  style="--menu-image-border-radius: 12px;"
5991>
5992  
5993  
5994  
5995    <li class="mega-menu__column mega-menu__column--span-1">
5996    <div>
5997      <a
5998        
5999          href="/pages/apres"
6000        
6001        class="mega-menu__link mega-menu__link--parent"
6002      >
6003        
6004        <span
6005          class="mega-menu__link-title wrap-text"
6006        >Apres Nails</span>
6007      </a>
6008      
6009        <ul
6010          class="list-unstyled"
6011          style="column-count: 1;"
6012        >
6013          
6014            <li
6015            class="mega-menu__link--child"
6016            >
6017              <a
6018                href="/collections/apres-gel-x-kits"
6019                class="mega-menu__link"
6020              >
6021                <span class="mega-menu__link-title wrap-text">Gel-X Kits</span>
6022              </a>
6023            </li>
6024          
6025            <li
6026            class="mega-menu__link--child"
6027            >
6028              <a
6029                href="/collections/apres-gel-x-tips"
6030                class="mega-menu__link"
6031              >
6032                <span class="mega-menu__link-title wrap-text">Gel-X Tips</span>
6033              </a>
6034            </li>
6035          
6036            <li
6037            class="mega-menu__link--child"
6038            >
6039              <a
6040                href="/collections/apres-gel-colour"
6041                class="mega-menu__link"
6042              >
6043                <span class="mega-menu__link-title wrap-text">Gel Colours</span>
6044              </a>
6045            </li>
6046          
6047            <li
6048            class="mega-menu__link--child"
6049            >
6050              <a
6051                href="/collections/apres-essentials"
6052                class="mega-menu__link"
6053              >
6054                <span class="mega-menu__link-title wrap-text">Essentials</span>
6055              </a>
6056            </li>
6057          
6058            <li
6059            class="mega-menu__link--child"
6060            >
6061              <a
6062                href="/collections/apres-tools-accessories"
6063                class="mega-menu__link"
6064              >
6065                <span class="mega-menu__link-title wrap-text">Tools & Accessories</span>
6066              </a>
6067            </li>
6068          
6069            <li
6070            class="mega-menu__link--child"
6071            >
6072              <a
6073                href="/collections/apres-aer-gel"
6074                class="mega-menu__link"
6075              >
6076                <span class="mega-menu__link-title wrap-text">Aer Gel</span>
6077              </a>
6078            </li>
6079          
6080            <li
6081            class="mega-menu__link--child"
6082            >
6083              <a
6084                href="/collections/apres-art-inks"
6085                class="mega-menu__link"
6086              >
6087                <span class="mega-menu__link-title wrap-text">Art Inks</span>
6088              </a>
6089            </li>
6090          
6091            <li
6092            class="mega-menu__link--child"
6093            >
6094              <a
6095                href="/collections/apres-clearance"
6096                class="mega-menu__link"
6097              >
6098                <span class="mega-menu__link-title wrap-text">Apres Clearance</span>
6099              </a>
6100            </li>
6101          
6102        </ul>
6103      
6104    </div>
6105
6106    </li>
6107  
6108  
6109</ul>
6110
6111
6112
6113<style data-shopify>
6114  [data-menu-grid-id="MegaMenuList-2"] {
6115    
6116      --menu-columns-desktop: 5;
6117      --menu-columns-tablet: 3;
6118    
6119  }
6120
6121  [data-menu-list-id="MegaMenuList-2"] {
6122    
6123      --menu-columns-desktop: 1;
6124      --menu-columns-tablet: 1;
6125    
6126  }
6127</style>
6128
6129
6130
6131    
6132
6133    <span
6134      class="mega-menu__content"
6135      style="--menu-content-columns-desktop: 1; --menu-content-columns-tablet: 1; --resource-card-corner-radius: 12px;"
6136    >
6137      <ul
6138        class="mega-menu__content-list mega-menu__content-list--promos list-unstyled"
6139      >
6140        
6141        
6142
6143      </ul>
6144    </span>
6145
6146
6147                  </div>
6148                </div>
6149              </div>
6150            </div></li>
6151      
6152        <li
6153          role="presentation"
6154          class="menu-list__list-item"
6155          on:focus="/activate"
6156          on:blur="/deactivate"
6157          on:pointerenter="/activate"
6158          on:pointerleave="/deactivate"
6159        >
6160          <a
6161            href="/collections/nails"
6162            data-skip-node-update="true"
6163            class="menu-list__link"aria-controls="submenu-3"
6164              aria-haspopup="true"
6165              aria-expanded="false"ref="menuitem"
6166          >
6167            <span class="menu-list__link-title">Nails</span>
6168          </a>
6168<div class="menu-list__submenu color-scheme-matches-parent" ref="submenu[]">
6169              <div
6170                id="submenu-3"
6171                class="menu-list__submenu-inner menu-list__submenu-inner--nails"
6172                style="--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
6173var(--font-body--style); --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
6174none;
6175
6176    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
6177    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
6178    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
6179  
6180--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
6181var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
6182none;
6183
6184    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
6185    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
6186    --menu-child-active-font-color: var(--color-foreground);
6187  
6188"
6189              >
6190                
6191                <div class="mega-menu section section--full-width-margin section--page-width">
6192                  <div
6193                    class="mega-menu__grid"
6194                    data-menu-grid-id="MegaMenuList-3"
6195                  >
6196                    
6197<ul
6198  data-menu-list-id="MegaMenuList-3"
6199  class="mega-menu__list list-unstyled"
6200  style="--menu-image-border-radius: 12px;"
6201>
6202  
6203    
6204    
6205    <li class="mega-menu__column mega-menu__column--shop-by-colour">
6206      <div class="mega-menu__shop-by-colour-inner">
6207        <h3 class="mega-menu__shop-by-colour-title">Shop by Colour</h3>
6208        <ul class="mega-menu__shop-by-colour-grid list-unstyled">
6209          
6210            
6211            <li class="mega-menu__shop-by-colour-item">
6212              <a
6213                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Beige&sort_by=best-selling&grid=default"
6214                class="mega-menu__shop-by-colour-card"
6215                aria-label="Beige"
6216              >
6217                
6218                  <div class="mega-menu__shop-by-colour-placeholder"></div>
6219                
6220                <span class="mega-menu__shop-by-colour-name">Beige</span>
6221              </a>
6222            </li>
6223          
6224            
6225            <li class="mega-menu__shop-by-colour-item">
6226              <a
6227                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Black&sort_by=best-selling&grid=default"
6228                class="mega-menu__shop-by-colour-card"
6229                aria-label="Black"
6230              >
6231                
6232                  <div class="mega-menu__shop-by-colour-swatch">
6233                    <img
6234                      src="//www.tnbl.co.uk/cdn/shop/files/Black.png?v=1770112825&width=200"
6235                      alt="Black"
6236                      width="24"
6237                      height="24"
6238                      loading="lazy"
6239                    >
6240                  </div>
6241                
6242                <span class="mega-menu__shop-by-colour-name">Black</span>
6243              </a>
6244            </li>
6245          
6246            
6247            <li class="mega-menu__shop-by-colour-item">
6248              <a
6249                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Blue&sort_by=best-selling&grid=default"
6250                class="mega-menu__shop-by-colour-card"
6251                aria-label="Blue"
6252              >
6253                
6254                  <div class="mega-menu__shop-by-colour-swatch">
6255                    <img
6256                      src="//www.tnbl.co.uk/cdn/shop/files/Blue.png?v=1770112825&width=200"
6257                      alt="Blue"
6258                      width="24"
6259                      height="24"
6260                      loading="lazy"
6261                    >
6262                  </div>
6263                
6264                <span class="mega-menu__shop-by-colour-name">Blue</span>
6265              </a>
6266            </li>
6267          
6268            
6269            <li class="mega-menu__shop-by-colour-item">
6270              <a
6271                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Brown&sort_by=best-selling&grid=default"
6272                class="mega-menu__shop-by-colour-card"
6273                aria-label="Brown"
6274              >
6275                
6276                  <div class="mega-menu__shop-by-colour-swatch">
6277                    <img
6278                      src="//www.tnbl.co.uk/cdn/shop/files/Brown.png?v=1770112826&width=200"
6279                      alt="Brown"
6280                      width="24"
6281                      height="24"
6282                      loading="lazy"
6283                    >
6284                  </div>
6285                
6286                <span class="mega-menu__shop-by-colour-name">Brown</span>
6287              </a>
6288            </li>
6289          
6290            
6291            <li class="mega-menu__shop-by-colour-item">
6292              <a
6293                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Clear&sort_by=best-selling&grid=default"
6294                class="mega-menu__shop-by-colour-card"
6295                aria-label="Clear"
6296              >
6297                
6298                  <div class="mega-menu__shop-by-colour-swatch">
6299                    <img
6300                      src="//www.tnbl.co.uk/cdn/shop/files/Clear.png?v=1770112825&width=200"
6301                      alt="Clear"
6302                      width="24"
6303                      height="24"
6304                      loading="lazy"
6305                    >
6306                  </div>
6307                
6308                <span class="mega-menu__shop-by-colour-name">Clear</span>
6309              </a>
6310            </li>
6311          
6312            
6313            <li class="mega-menu__shop-by-colour-item">
6314              <a
6315                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Gold&sort_by=best-selling&grid=default"
6316                class="mega-menu__shop-by-colour-card"
6317                aria-label="Gold"
6318              >
6319                
6320                  <div class="mega-menu__shop-by-colour-swatch">
6321                    <img
6322                      src="//www.tnbl.co.uk/cdn/shop/files/Gold.png?v=1770112826&width=200"
6323                      alt="Gold"
6324                      width="24"
6325                      height="24"
6326                      loading="lazy"
6327                    >
6328                  </div>
6329                
6330                <span class="mega-menu__shop-by-colour-name">Gold</span>
6331              </a>
6332            </li>
6333          
6334            
6335            <li class="mega-menu__shop-by-colour-item">
6336              <a
6337                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Green&sort_by=best-selling&grid=default"
6338                class="mega-menu__shop-by-colour-card"
6339                aria-label="Green"
6340              >
6341                
6342                  <div class="mega-menu__shop-by-colour-swatch">
6343                    <img
6344                      src="//www.tnbl.co.uk/cdn/shop/files/Green.png?v=1770112825&width=200"
6345                      alt="Green"
6346                      width="24"
6347                      height="24"
6348                      loading="lazy"
6349                    >
6350                  </div>
6351                
6352                <span class="mega-menu__shop-by-colour-name">Green</span>
6353              </a>
6354            </li>
6355          
6356            
6357            <li class="mega-menu__shop-by-colour-item">
6358              <a
6359                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Grey&sort_by=best-selling&grid=default"
6360                class="mega-menu__shop-by-colour-card"
6361                aria-label="Grey"
6362              >
6363                
6364                  <div class="mega-menu__shop-by-colour-swatch">
6365                    <img
6366                      src="//www.tnbl.co.uk/cdn/shop/files/Grey.png?v=1770112826&width=200"
6367                      alt="Grey"
6368                      width="24"
6369                      height="24"
6370                      loading="lazy"
6371                    >
6372                  </div>
6373                
6374                <span class="mega-menu__shop-by-colour-name">Grey</span>
6375              </a>
6376            </li>
6377          
6378            
6379            <li class="mega-menu__shop-by-colour-item">
6380              <a
6381                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Natural&sort_by=best-selling&grid=default"
6382                class="mega-menu__shop-by-colour-card"
6383                aria-label="Natural"
6384              >
6385                
6386                  <div class="mega-menu__shop-by-colour-swatch">
6387                    <img
6388                      src="//www.tnbl.co.uk/cdn/shop/files/Natural.png?v=1770112826&width=200"
6389                      alt="Natural"
6390                      width="24"
6391                      height="24"
6392                      loading="lazy"
6393                    >
6394                  </div>
6395                
6396                <span class="mega-menu__shop-by-colour-name">Natural</span>
6397              </a>
6398            </li>
6399          
6400            
6401            <li class="mega-menu__shop-by-colour-item">
6402              <a
6403                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Nude&sort_by=best-selling&grid=default"
6404                class="mega-menu__shop-by-colour-card"
6405                aria-label="Nude"
6406              >
6407                
6408                  <div class="mega-menu__shop-by-colour-swatch">
6409                    <img
6410                      src="//www.tnbl.co.uk/cdn/shop/files/Nude.png?v=1770112825&width=200"
6411                      alt="Nude"
6412                      width="24"
6413                      height="24"
6414                      loading="lazy"
6415                    >
6416                  </div>
6417                
6418                <span class="mega-menu__shop-by-colour-name">Nude</span>
6419              </a>
6420            </li>
6421          
6422            
6423            <li class="mega-menu__shop-by-colour-item">
6424              <a
6425                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Orange&sort_by=best-selling&grid=default"
6426                class="mega-menu__shop-by-colour-card"
6427                aria-label="Orange"
6428              >
6429                
6430                  <div class="mega-menu__shop-by-colour-swatch">
6431                    <img
6432                      src="//www.tnbl.co.uk/cdn/shop/files/Orange.png?v=1770112825&width=200"
6433                      alt="Orange"
6434                      width="24"
6435                      height="24"
6436                      loading="lazy"
6437                    >
6438                  </div>
6439                
6440                <span class="mega-menu__shop-by-colour-name">Orange</span>
6441              </a>
6442            </li>
6443          
6444            
6445            <li class="mega-menu__shop-by-colour-item">
6446              <a
6447                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Pink&sort_by=best-selling&grid=default"
6448                class="mega-menu__shop-by-colour-card"
6449                aria-label="Pink"
6450              >
6451                
6452                  <div class="mega-menu__shop-by-colour-swatch">
6453                    <img
6454                      src="//www.tnbl.co.uk/cdn/shop/files/Pink.png?v=1770112826&width=200"
6455                      alt="Pink"
6456                      width="24"
6457                      height="24"
6458                      loading="lazy"
6459                    >
6460                  </div>
6461                
6462                <span class="mega-menu__shop-by-colour-name">Pink</span>
6463              </a>
6464            </li>
6465          
6466            
6467            <li class="mega-menu__shop-by-colour-item">
6468              <a
6469                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Purple&sort_by=best-selling&grid=default"
6470                class="mega-menu__shop-by-colour-card"
6471                aria-label="Purple"
6472              >
6473                
6474                  <div class="mega-menu__shop-by-colour-swatch">
6475                    <img
6476                      src="//www.tnbl.co.uk/cdn/shop/files/Purple.png?v=1770112826&width=200"
6477                      alt="Purple"
6478                      width="24"
6479                      height="24"
6480                      loading="lazy"
6481                    >
6482                  </div>
6483                
6484                <span class="mega-menu__shop-by-colour-name">Purple</span>
6485              </a>
6486            </li>
6487          
6488            
6489            <li class="mega-menu__shop-by-colour-item">
6490              <a
6491                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Red&sort_by=best-selling&grid=default"
6492                class="mega-menu__shop-by-colour-card"
6493                aria-label="Red"
6494              >
6495                
6496                  <div class="mega-menu__shop-by-colour-swatch">
6497                    <img
6498                      src="//www.tnbl.co.uk/cdn/shop/files/Red.png?v=1770112825&width=200"
6499                      alt="Red"
6500                      width="24"
6501                      height="24"
6502                      loading="lazy"
6503                    >
6504                  </div>
6505                
6506                <span class="mega-menu__shop-by-colour-name">Red</span>
6507              </a>
6508            </li>
6509          
6510            
6511            <li class="mega-menu__shop-by-colour-item">
6512              <a
6513                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Silver&sort_by=best-selling&grid=default"
6514                class="mega-menu__shop-by-colour-card"
6515                aria-label="Silver"
6516              >
6517                
6518                  <div class="mega-menu__shop-by-colour-swatch">
6519                    <img
6520                      src="//www.tnbl.co.uk/cdn/shop/files/Silver.png?v=1770112826&width=200"
6521                      alt="Silver"
6522                      width="24"
6523                      height="24"
6524                      loading="lazy"
6525                    >
6526                  </div>
6527                
6528                <span class="mega-menu__shop-by-colour-name">Silver</span>
6529              </a>
6530            </li>
6531          
6532            
6533            <li class="mega-menu__shop-by-colour-item">
6534              <a
6535                href="/collections/gel-nail-polish?filter.p.m.custom.colour=White&sort_by=best-selling&grid=default"
6536                class="mega-menu__shop-by-colour-card"
6537                aria-label="White"
6538              >
6539                
6540                  <div class="mega-menu__shop-by-colour-swatch">
6541                    <img
6542                      src="//www.tnbl.co.uk/cdn/shop/files/White.png?v=1770112826&width=200"
6543                      alt="White"
6544                      width="24"
6545                      height="24"
6546                      loading="lazy"
6547                    >
6548                  </div>
6549                
6550                <span class="mega-menu__shop-by-colour-name">White</span>
6551              </a>
6552            </li>
6553          
6554            
6555            <li class="mega-menu__shop-by-colour-item">
6556              <a
6557                href="/collections/gel-nail-polish?filter.p.m.custom.colour=Yellow&sort_by=best-selling&grid=default"
6558                class="mega-menu__shop-by-colour-card"
6559                aria-label="Yellow"
6560              >
6561                
6562                  <div class="mega-menu__shop-by-colour-swatch">
6563                    <img
6564                      src="//www.tnbl.co.uk/cdn/shop/files/Yellow.png?v=1770112824&width=200"
6565                      alt="Yellow"
6566                      width="24"
6567                      height="24"
6568                      loading="lazy"
6569                    >
6570                  </div>
6571                
6572                <span class="mega-menu__shop-by-colour-name">Yellow</span>
6573              </a>
6574            </li>
6575          
6576        </ul>
6577      </div>
6578    </li>
6579    
6580  
6581  
6582    
6583    
6584    
6585    
6586    
6587      
6588      
6589        
6590          <li class="mega-menu__column mega-menu__column--span-1">
6591            <div>
6592              <a href="/collections/nail-extensions" class="mega-menu__link mega-menu__link--parent">
6593                <span class="mega-menu__link-title wrap-text">Nail Extensions</span>
6594              </a>
6595              
6596                <ul class="list-unstyled" style="column-count: 1;">
6597                  
6598                    <li class="mega-menu__link--child">
6599                      <a href="/collections/nail-extensions-acrylic-powder" class="mega-menu__link">
6600                        <span class="mega-menu__link-title wrap-text">Acrylic Powder</span>
6601                      </a>
6602                    </li>
6603                  
6604                    <li class="mega-menu__link--child">
6605                      <a href="/collections/nail-extensions-acrylic-monomer-liquids" class="mega-menu__link">
6606                        <span class="mega-menu__link-title wrap-text">Acrylic Monomer & Liquids</span>
6607                      </a>
6608                    </li>
6609                  
6610                    <li class="mega-menu__link--child">
6611                      <a href="/collections/nail-extensions-acrylic-gel-brushes" class="mega-menu__link">
6612                        <span class="mega-menu__link-title wrap-text">Acrylic Gel & Brushes</span>
6613                      </a>
6614                    </li>
6615                  
6616                    <li class="mega-menu__link--child">
6617                      <a href="/collections/nail-extensions-soft-gel-extensions" class="mega-menu__link">
6618                        <span class="mega-menu__link-title wrap-text">Soft Gel Extensions</span>
6619                      </a>
6620                    </li>
6621                  
6622                    <li class="mega-menu__link--child">
6623                      <a href="/collections/nail-extensions-dip-powder" class="mega-menu__link">
6624                        <span class="mega-menu__link-title wrap-text">Dipping Powder</span>
6625                      </a>
6626                    </li>
6627                  
6628                    <li class="mega-menu__link--child">
6629                      <a href="/collections/nail-extensions-nail-prep" class="mega-menu__link">
6630                        <span class="mega-menu__link-title wrap-text">Nail Prep</span>
6631                      </a>
6632                    </li>
6633                  
6634                    <li class="mega-menu__link--child">
6635                      <a href="/collections/nail-extensions-nail-tips" class="mega-menu__link">
6636                        <span class="mega-menu__link-title wrap-text">Nail Tips</span>
6637                      </a>
6638                    </li>
6639                  
6640                    <li class="mega-menu__link--child">
6641                      <a href="/collections/nail-extensions-nail-glue" class="mega-menu__link">
6642                        <span class="mega-menu__link-title wrap-text">Nail Glue</span>
6643                      </a>
6644                    </li>
6645                  
6646                </ul>
6647              
6648            </div>
6649            
6650              
6651                
6652              
6653                
6654              
6655                
6656              
6657                
6658              
6659                
6660              
6661                
6662                  <div>
6663                    <a href="/collections/nail-kits" class="mega-menu__link mega-menu__link--parent">
6664                      <span class="mega-menu__link-title wrap-text">Nail Kits</span>
6665                    </a>
6666                    
6667                      <ul class="list-unstyled" style="column-count: 1;">
6668                        
6669                          <li class="mega-menu__link--child">
6670                            <a href="/collections/nail-kits-acrylic-nail-kits" class="mega-menu__link">
6671                              <span class="mega-menu__link-title wrap-text">Acrylic Nail Kits</span>
6672                            </a>
6673                          </li>
6674                        
6675                          <li class="mega-menu__link--child">
6676                            <a href="/collections/nail-kits-gel-nail-kits" class="mega-menu__link">
6677                              <span class="mega-menu__link-title wrap-text">Gel Nail Kits</span>
6678                            </a>
6679                          </li>
6680                        
6681                          <li class="mega-menu__link--child">
6682                            <a href="/collections/nail-kits-nail-art-kits" class="mega-menu__link">
6683                              <span class="mega-menu__link-title wrap-text">Nail Art Kits</span>
6684                            </a>
6685                          </li>
6686                        
6687                          <li class="mega-menu__link--child">
6688                            <a href="/collections/nail-extensions-soft-gel-extensions" class="mega-menu__link">
6689                              <span class="mega-menu__link-title wrap-text">Soft Gel Extensions</span>
6690                            </a>
6691                          </li>
6692                        
6693                          <li class="mega-menu__link--child">
6694                            <a href="/collections/nail-extensions-dip-powder" class="mega-menu__link">
6695                              <span class="mega-menu__link-title wrap-text">Dip Powder Kits</span>
6696                            </a>
6697                          </li>
6698                        
6699                          <li class="mega-menu__link--child">
6700                            <a href="/collections/nail-kits-misc" class="mega-menu__link">
6701                              <span class="mega-menu__link-title wrap-text">Misc</span>
6702                            </a>
6703                          </li>
6704                        
6705                      </ul>
6706                    
6707                  </div>
6708                  
6709            
6710          </li>
6711          
6712    
6713      
6714      
6715        
6716      
6717        
6718          <li class="mega-menu__column mega-menu__column--span-1">
6719            <div>
6720              <a href="/collections/gel-nail-polish" class="mega-menu__link mega-menu__link--parent">
6721                <span class="mega-menu__link-title wrap-text">Gel & Nail Polish</span>
6722              </a>
6723              
6724                <ul class="list-unstyled" style="column-count: 1;">
6725                  
6726                    <li class="mega-menu__link--child">
6727                      <a href="/collections/nail-polish" class="mega-menu__link">
6728                        <span class="mega-menu__link-title wrap-text">Nail Polish</span>
6729                      </a>
6730                    </li>
6731                  
6732                    <li class="mega-menu__link--child">
6733                      <a href="/collections/https-www-tnbl-co-uk-collections-hema-tpo-free-gel-polish" class="mega-menu__link">
6734                        <span class="mega-menu__link-title wrap-text">Hema + TPO Free Gel Polish</span>
6735                      </a>
6736                    </li>
6737                  
6738                    <li class="mega-menu__link--child">
6739                      <a href="/collections/gel-nail-polish-gel-polish" class="mega-menu__link">
6740                        <span class="mega-menu__link-title wrap-text">Gel Polish</span>
6741                      </a>
6742                    </li>
6743                  
6744                    <li class="mega-menu__link--child">
6745                      <a href="/collections/builder-gel-biab" class="mega-menu__link">
6746                        <span class="mega-menu__link-title wrap-text">Builder Gel (BIAB)</span>
6747                      </a>
6748                    </li>
6749                  
6750                    <li class="mega-menu__link--child">
6751                      <a href="/collections/gel-nail-polish-hard-gel" class="mega-menu__link">
6752                        <span class="mega-menu__link-title wrap-text">Hard Gel</span>
6753                      </a>
6754                    </li>
6755                  
6756                    <li class="mega-menu__link--child">
6757                      <a href="/collections/poly-gel" class="mega-menu__link">
6758                        <span class="mega-menu__link-title wrap-text">Poly Gel</span>
6759                      </a>
6760                    </li>
6761                  
6762                    <li class="mega-menu__link--child">
6763                      <a href="/collections/gel-nail-polish-gel-essentials" class="mega-menu__link">
6764                        <span class="mega-menu__link-title wrap-text">Gel Essentials</span>
6765                      </a>
6766                    </li>
6767                  
6768                    <li class="mega-menu__link--child">
6769                      <a href="/collections/nail-polish-essentials" class="mega-menu__link">
6770                        <span class="mega-menu__link-title wrap-text">Nail Polish Essentials</span>
6771                      </a>
6772                    </li>
6773                  
6774                    <li class="mega-menu__link--child">
6775                      <a href="/collections/gel-nail-polish-gel-art" class="mega-menu__link">
6776                        <span class="mega-menu__link-title wrap-text">Gel Art</span>
6777                      </a>
6778                    </li>
6779                  
6780                </ul>
6781              
6782            </div>
6783            
6784              
6785                
6786              
6787                
6788              
6789                
6790              
6791                
6792              
6793                
6794              
6795                
6796              
6797                
6798                  <div>
6799                    <a href="/collections/manicure-pedicure" class="mega-menu__link mega-menu__link--parent">
6800                      <span class="mega-menu__link-title wrap-text">Manicure & Pedicure</span>
6801                    </a>
6802                    
6803                      <ul class="list-unstyled" style="column-count: 1;">
6804                        
6805                          <li class="mega-menu__link--child">
6806                            <a href="/collections/manicure-pedicure-nail-cuticle-care" class="mega-menu__link">
6807                              <span class="mega-menu__link-title wrap-text">Nail & Cuticle Care</span>
6808                            </a>
6809                          </li>
6810                        
6811                          <li class="mega-menu__link--child">
6812                            <a href="/collections/manicure-pedicure-moisturising-lotions-creams" class="mega-menu__link">
6813                              <span class="mega-menu__link-title wrap-text">Moisturising Lotions & Creams</span>
6814                            </a>
6815                          </li>
6816                        
6817                          <li class="mega-menu__link--child">
6818                            <a href="/collections/manicure-pedicure-soaks-scrubs" class="mega-menu__link">
6819                              <span class="mega-menu__link-title wrap-text">Soaks & Scrubs</span>
6820                            </a>
6821                          </li>
6822                        
6823                          <li class="mega-menu__link--child">
6824                            <a href="/collections/manicure-pedicure-masks" class="mega-menu__link">
6825                              <span class="mega-menu__link-title wrap-text">Masks</span>
6826                            </a>
6827                          </li>
6828                        
6829                          <li class="mega-menu__link--child">
6830                            <a href="/collections/manicure-pedicure-foot-file-accesories" class="mega-menu__link">
6831                              <span class="mega-menu__link-title wrap-text">Foot Files & Accessories</span>
6832                            </a>
6833                          </li>
6834                        
6835                          <li class="mega-menu__link--child">
6836                            <a href="/collections/manicure-pedicure-bowls-accesories" class="mega-menu__link">
6837                              <span class="mega-menu__link-title wrap-text">Bowls & Accessories</span>
6838                            </a>
6839                          </li>
6840                        
6841                          <li class="mega-menu__link--child">
6842                            <a href="/collections/manicure-pedicure-toe-seperators-slippers" class="mega-menu__link">
6843                              <span class="mega-menu__link-title wrap-text">Toe Separators & Slippers</span>
6844                            </a>
6845                          </li>
6846                        
6847                      </ul>
6848                    
6849                  </div>
6850                  
6851            
6852          </li>
6853          
6854    
6855      
6856      
6857        
6858      
6859        
6860      
6861        
6862          <li class="mega-menu__column mega-menu__column--span-1">
6863            <div>
6864              <a href="/collections/nail-art" class="mega-menu__link mega-menu__link--parent">
6865                <span class="mega-menu__link-title wrap-text">Nail Art</span>
6866              </a>
6867              
6868                <ul class="list-unstyled" style="column-count: 1;">
6869                  
6870                    <li class="mega-menu__link--child">
6871                      <a href="/collections/nail-art-brushes-tools" class="mega-menu__link">
6872                        <span class="mega-menu__link-title wrap-text">Nail Art Brushes & Tools</span>
6873                      </a>
6874                    </li>
6875                  
6876                    <li class="mega-menu__link--child">
6877                      <a href="/collections/nail-art-chrome-powders-pigments" class="mega-menu__link">
6878                        <span class="mega-menu__link-title wrap-text">Chrome Powders & Pigments</span>
6879                      </a>
6880                    </li>
6881                  
6882                    <li class="mega-menu__link--child">
6883                      <a href="/collections/nail-art-crystal-rhinestones" class="mega-menu__link">
6884                        <span class="mega-menu__link-title wrap-text">Crystals & Rhinestones</span>
6885                      </a>
6886                    </li>
6887                  
6888                    <li class="mega-menu__link--child">
6889                      <a href="/collections/nail-art-glitters" class="mega-menu__link">
6890                        <span class="mega-menu__link-title wrap-text">Glitters</span>
6891                      </a>
6892                    </li>
6893                  
6894                    <li class="mega-menu__link--child">
6895                      <a href="/collections/nail-art-glitter-shapes" class="mega-menu__link">
6896                        <span class="mega-menu__link-title wrap-text">Glitter Shapes</span>
6897                      </a>
6898                    </li>
6899                  
6900                    <li class="mega-menu__link--child">
6901                      <a href="/collections/nail-art-stickers" class="mega-menu__link">
6902                        <span class="mega-menu__link-title wrap-text">Stickers</span>
6903                      </a>
6904                    </li>
6905                  
6906                    <li class="mega-menu__link--child">
6907                      <a href="/collections/nail-art-charms-decals" class="mega-menu__link">
6908                        <span class="mega-menu__link-title wrap-text">Charms & Decals</span>
6909                      </a>
6910                    </li>
6911                  
6912                    <li class="mega-menu__link--child">
6913                      <a href="/collections/nail-art-angel-paper-transfer-foils" class="mega-menu__link">
6914                        <span class="mega-menu__link-title wrap-text">Angel Paper & Transfer Foils</span>
6915                      </a>
6916                    </li>
6917                  
6918                    <li class="mega-menu__link--child">
6919                      <a href="/collections/nail-art-flakes" class="mega-menu__link">
6920                        <span class="mega-menu__link-title wrap-text">Flakes</span>
6921                      </a>
6922                    </li>
6923                  
6924                    <li class="mega-menu__link--child">
6925                      <a href="/collections/nail-art-dried-flowers" class="mega-menu__link">
6926                        <span class="mega-menu__link-title wrap-text">Dried Flowers</span>
6927                      </a>
6928                    </li>
6929                  
6930                    <li class="mega-menu__link--child">
6931                      <a href="/collections/nail-art-fimo" class="mega-menu__link">
6932                        <span class="mega-menu__link-title wrap-text">Fimo</span>
6933                      </a>
6934                    </li>
6935                  
6936                    <li class="mega-menu__link--child">
6937                      <a href="/collections/nail-art-chains" class="mega-menu__link">
6938                        <span class="mega-menu__link-title wrap-text">Chains</span>
6939                      </a>
6940                    </li>
6941                  
6942                    <li class="mega-menu__link--child">
6943                      <a href="/collections/nail-art-netting-lace" class="mega-menu__link">
6944                        <span class="mega-menu__link-title wrap-text">Netting & Lace</span>
6945                      </a>
6946                    </li>
6947                  
6948                    <li class="mega-menu__link--child">
6949                      <a href="/collections/nail-art-micro-beads" class="mega-menu__link">
6950                        <span class="mega-menu__link-title wrap-text">Micro Beads</span>
6951                      </a>
6952                    </li>
6953                  
6954                    <li class="mega-menu__link--child">
6955                      <a href="/collections/nail-art-stripers-paint" class="mega-menu__link">
6956                        <span class="mega-menu__link-title wrap-text">Nail Art Stripers & Paint</span>
6957                      </a>
6958                    </li>
6959                  
6960                    <li class="mega-menu__link--child">
6961                      <a href="/collections/nail-art-other" class="mega-menu__link">
6962                        <span class="mega-menu__link-title wrap-text">Other</span>
6963                      </a>
6964                    </li>
6965                  
6966                </ul>
6967              
6968            </div>
6969            
6970          </li>
6971          
6972    
6973      
6974      
6975        
6976      
6977        
6978      
6979        
6980      
6981        
6982          <li class="mega-menu__column mega-menu__column--span-1">
6983            <div>
6984              <a href="/collections/nail-tools-accessories" class="mega-menu__link mega-menu__link--parent">
6985                <span class="mega-menu__link-title wrap-text">Nail Tools & Accessories</span>
6986              </a>
6987              
6988                <ul class="list-unstyled" style="column-count: 1;">
6989                  
6990                    <li class="mega-menu__link--child">
6991                      <a href="/collections/nail-tools-accessories-brushes" class="mega-menu__link">
6992                        <span class="mega-menu__link-title wrap-text">Brushes</span>
6993                      </a>
6994                    </li>
6995                  
6996                    <li class="mega-menu__link--child">
6997                      <a href="/collections/cuticle-pushers-nippers" class="mega-menu__link">
6998                        <span class="mega-menu__link-title wrap-text">Cuticle Pushers & Nippers</span>
6999                      </a>
7000                    </li>
7001                  
7002                    <li class="mega-menu__link--child">
7003                      <a href="/collections/tip-cutters-nail-clippers" class="mega-menu__link">
7004                        <span class="mega-menu__link-title wrap-text">Tip Cutters & Nail Clippers</span>
7005                      </a>
7006                    </li>
7007                  
7008                    <li class="mega-menu__link--child">
7009                      <a href="/collections/nail-files-buffers" class="mega-menu__link">
7010                        <span class="mega-menu__link-title wrap-text">Nail Files & Buffers</span>
7011                      </a>
7012                    </li>
7013                  
7014                    <li class="mega-menu__link--child">
7015                      <a href="/collections/drill-bits-accessories" class="mega-menu__link">
7016                        <span class="mega-menu__link-title wrap-text">Drill Bits & Accessories</span>
7017                      </a>
7018                    </li>
7019                  
7020                    <li class="mega-menu__link--child">
7021                      <a href="/collections/nail-tools-accessories-implements" class="mega-menu__link">
7022                        <span class="mega-menu__link-title wrap-text">Implements</span>
7023                      </a>
7024                    </li>
7025                  
7026                    <li class="mega-menu__link--child">
7027                      <a href="/collections/dappen-dishes" class="mega-menu__link">
7028                        <span class="mega-menu__link-title wrap-text">Dappen Dishes</span>
7029                      </a>
7030                    </li>
7031                  
7032                    <li class="mega-menu__link--child">
7033                      <a href="/collections/nail-tools-accessories-storage" class="mega-menu__link">
7034                        <span class="mega-menu__link-title wrap-text">Storage</span>
7035                      </a>
7036                    </li>
7037                  
7038                    <li class="mega-menu__link--child">
7039                      <a href="/collections/displays-swatches" class="mega-menu__link">
7040                        <span class="mega-menu__link-title wrap-text">Display & Swatches</span>
7041                      </a>
7042                    </li>
7043                  
7044                    <li class="mega-menu__link--child">
7045                      <a href="/collections/practise-hands-fingers" class="mega-menu__link">
7046                        <span class="mega-menu__link-title wrap-text">Practice Hands & Fingers</span>
7047                      </a>
7048                    </li>
7049                  
7050                    <li class="mega-menu__link--child">
7051                      <a href="/collections/nail-tools-accessories-soak-off" class="mega-menu__link">
7052                        <span class="mega-menu__link-title wrap-text">Soak Off</span>
7053                      </a>
7054                    </li>
7055                  
7056                </ul>
7057              
7058            </div>
7059            
7060          </li>
7061          
7062    
7063      
7064      
7065        
7066      
7067        
7068      
7069        
7070      
7071        
7072      
7073        
7074          <li class="mega-menu__column mega-menu__column--span-1">
7075            <div>
7076              <a href="/collections/salon-essentials-hygiene" class="mega-menu__link mega-menu__link--parent">
7077                <span class="mega-menu__link-title wrap-text">Salon Care & Hygiene</span>
7078              </a>
7079              
7080                <ul class="list-unstyled" style="column-count: 1;">
7081                  
7082                    <li class="mega-menu__link--child">
7083                      <a href="/collections/hygiene-nail-wipes" class="mega-menu__link">
7084                        <span class="mega-menu__link-title wrap-text">Nail Wipes</span>
7085                      </a>
7086                    </li>
7087                  
7088                    <li class="mega-menu__link--child">
7089                      <a href="/collections/hygiene-face-masks-gloves" class="mega-menu__link">
7090                        <span class="mega-menu__link-title wrap-text">Face Mask & Gloves</span>
7091                      </a>
7092                    </li>
7093                  
7094                    <li class="mega-menu__link--child">
7095                      <a href="/collections/hygiene-table-mats" class="mega-menu__link">
7096                        <span class="mega-menu__link-title wrap-text">Table Mats</span>
7097                      </a>
7098                    </li>
7099                  
7100                    <li class="mega-menu__link--child">
7101                      <a href="/collections/hygiene-sanitizers-disinfectants" class="mega-menu__link">
7102                        <span class="mega-menu__link-title wrap-text">Sanitisers & Disinfectants</span>
7103                      </a>
7104                    </li>
7105                  
7106                    <li class="mega-menu__link--child">
7107                      <a href="/collections/hygiene-empty-bottles-accessories" class="mega-menu__link">
7108                        <span class="mega-menu__link-title wrap-text">Empty Bottles & Pots</span>
7109                      </a>
7110                    </li>
7111                  
7112                    <li class="mega-menu__link--child">
7113                      <a href="/collections/nail-kits-misc" class="mega-menu__link">
7114                        <span class="mega-menu__link-title wrap-text">Miscellaneous</span>
7115                      </a>
7116                    </li>
7117                  
7118                </ul>
7119              
7120            </div>
7121            
7122              
7123                
7124              
7125                
7126              
7127                
7128              
7129                
7130              
7131                
7132              
7133                
7134              
7135                
7136              
7137                
7138                  <div>
7139                    <a href="/collections/nails-misc" class="mega-menu__link mega-menu__link--parent">
7140                      <span class="mega-menu__link-title wrap-text">Miscellaneous</span>
7141                    </a>
7142                    
7143                      <ul class="list-unstyled" style="column-count: 1;">
7144                        
7145                          <li class="mega-menu__link--child">
7146                            <a href="/collections/misc-salon-posters" class="mega-menu__link">
7147                              <span class="mega-menu__link-title wrap-text">Salon Posters</span>
7148                            </a>
7149                          </li>
7150                        
7151                      </ul>
7152                    
7153                  </div>
7154                  
7155            
7156          </li>
7157          
7158    
7159    
7160      
7161      
7162    
7163      
7164      
7165    
7166      
7167      
7168    
7169      
7170      
7171    
7172      
7173      
7174    
7175      
7176      
7177    
7178      
7179      
7180    
7181      
7182      
7183    
7184  
7185</ul>
7186
7187
7188
7189<style data-shopify>
7190  [data-menu-grid-id="MegaMenuList-3"] {
7191    
7192      
7193      
7194        --menu-columns-desktop: 10;
7195        --menu-columns-tablet: 8;
7196      
7197    
7198  }
7199
7200  [data-menu-list-id="MegaMenuList-3"] {
7201    
7202      --menu-columns-desktop: 6;
7203      --menu-columns-tablet: 6;
7204    
7205  }
7206</style>
7207
7208
7209
7210    
7211
7212    <span
7213      class="mega-menu__content"
7214      style="--menu-content-columns-desktop: 1; --menu-content-columns-tablet: 1; --resource-card-corner-radius: 12px;"
7215    >
7216      <ul
7217        class="mega-menu__content-list mega-menu__content-list--promos list-unstyled"
7218      >
7219        
7220        
7221
7222      </ul>
7223    </span>
7224
7225
7226                  </div>
7227                </div>
7228              </div>
7229            </div></li>
7230      
7231        <li
7232          role="presentation"
7233          class="menu-list__list-item"
7234          on:focus="/activate"
7235          on:blur="/deactivate"
7236          on:pointerenter="/activate"
7237          on:pointerleave="/deactivate"
7238        >
7239          <a
7240            href="/collections/beauty"
7241            data-skip-node-update="true"
7242            class="menu-list__link"aria-controls="submenu-4"
7243              aria-haspopup="true"
7244              aria-expanded="false"ref="menuitem"
7245          >
7246            <span class="menu-list__link-title">Beauty</span>
7247          </a><div class="menu-list__submenu color-scheme-matches-parent" ref="submenu[]">
7248              <div
7249                id="submenu-4"
7250                class="menu-list__submenu-inner menu-list__submenu-inner--beauty"
7251                style="--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
7252var(--font-body--style);
7252 --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
7253none;
7254
7255    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
7256    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
7257    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
7258  
7259--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
7260var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
7261none;
7262
7263    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
7264    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
7265    --menu-child-active-font-color: var(--color-foreground);
7266  
7267"
7268              >
7269                
7270                <div class="mega-menu section section--full-width-margin section--page-width">
7271                  <div
7272                    class="mega-menu__grid"
7273                    data-menu-grid-id="MegaMenuList-4"
7274                  >
7275                    
7276<ul
7277  data-menu-list-id="MegaMenuList-4"
7278  class="mega-menu__list list-unstyled"
7279  style="--menu-image-border-radius: 12px;"
7280>
7281  
7282  
7283  
7284    <li class="mega-menu__column mega-menu__column--span-1">
7285    <div>
7286      <a
7287        
7288          href="/collections/beauty"
7289        
7290        class="mega-menu__link mega-menu__link--parent"
7291      >
7292        
7293        <span
7294          class="mega-menu__link-title wrap-text"
7295        >Beauty</span>
7296      </a>
7297      
7298        <ul
7299          class="list-unstyled"
7300          style="column-count: 1;"
7301        >
7302          
7303            <li
7304            class="mega-menu__link--child"
7305            >
7306              <a
7307                href="/collections/body"
7308                class="mega-menu__link"
7309              >
7310                <span class="mega-menu__link-title wrap-text">Body</span>
7311              </a>
7312            </li>
7313          
7314            <li
7315            class="mega-menu__link--child"
7316            >
7317              <a
7318                href="/collections/eyebrows"
7319                class="mega-menu__link"
7320              >
7321                <span class="mega-menu__link-title wrap-text">Eyebrows</span>
7322              </a>
7323            </li>
7324          
7325            <li
7326            class="mega-menu__link--child"
7327            >
7328              <a
7329                href="/collections/eyelashes"
7330                class="mega-menu__link"
7331              >
7332                <span class="mega-menu__link-title wrap-text">Eyelashes</span>
7333              </a>
7334            </li>
7335          
7336            <li
7337            class="mega-menu__link--child"
7338            >
7339              <a
7340                href="/collections/waxing"
7341                class="mega-menu__link"
7342              >
7343                <span class="mega-menu__link-title wrap-text">Waxing</span>
7344              </a>
7345            </li>
7346          
7347            <li
7348            class="mega-menu__link--child"
7349            >
7350              <a
7351                href="/collections/tanning"
7352                class="mega-menu__link"
7353              >
7354                <span class="mega-menu__link-title wrap-text">Tanning</span>
7355              </a>
7356            </li>
7357          
7358            <li
7359            class="mega-menu__link--child"
7360            >
7361              <a
7362                href="/collections/facial"
7363                class="mega-menu__link"
7364              >
7365                <span class="mega-menu__link-title wrap-text">Facial</span>
7366              </a>
7367            </li>
7368          
7369        </ul>
7370      
7371    </div>
7372
7373    </li>
7374  
7375  
7376</ul>
7377
7378
7379
7380<style data-shopify>
7381  [data-menu-grid-id="MegaMenuList-4"] {
7382    
7383      --menu-columns-desktop: 5;
7384      --menu-columns-tablet: 3;
7385    
7386  }
7387
7388  [data-menu-list-id="MegaMenuList-4"] {
7389    
7390      --menu-columns-desktop: 1;
7391      --menu-columns-tablet: 1;
7392    
7393  }
7394</style>
7395
7396
7397
7398    
7399
7400    <span
7401      class="mega-menu__content"
7402      style="--menu-content-columns-desktop: 3; --menu-content-columns-tablet: 2; --resource-card-corner-radius: 12px;"
7403    >
7404      <ul
7405        class="mega-menu__content-list mega-menu__content-list--promos list-unstyled"
7406      >
7407        
7408        
7409          <li class="mega-menu__content-list-item">
7410            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7411              <div class="mega-menu__promo-card__media-wrap">
7412                
7413                  <a href="/collections/eyelashes" class="mega-menu__promo-card__link">
7414                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_2.png?v=1770737954&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_2.png?v=1770737954&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7415                  </a>
7416                
7417                
7418                  <div
7419                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
7420                    style="
7421                      --overlay-layer: var(--layer-flat);
7422                      --overlay-color: #00000026;
7423                      --overlay-color--end: rgba(0, 0, 0, 0);
7424                      --overlay-direction: to top;
7425                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
7426                    "
7427                  ></div>
7428                
7429              </div>
7430              <p class="resource-card__title h5 mega-menu__promo-card__title">Eyelashes</p>
7431            </div>
7432          </li>
7433        
7434          <li class="mega-menu__content-list-item">
7435            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7436              <div class="mega-menu__promo-card__media-wrap">
7437                
7438                  <a href="/collections/body" class="mega-menu__promo-card__link">
7439                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy.png?v=1770737954&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy.png?v=1770737954&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7440                  </a>
7441                
7442                
7443                  <div
7444                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
7445                    style="
7446                      --overlay-layer: var(--layer-flat);
7447                      --overlay-color: #00000026;
7448                      --overlay-color--end: rgba(0, 0, 0, 0);
7449                      --overlay-direction: to top;
7450                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
7451                    "
7452                  ></div>
7453                
7454              </div>
7455              <p class="resource-card__title h5 mega-menu__promo-card__title">Body</p>
7456            </div>
7457          </li>
7458        
7459          <li class="mega-menu__content-list-item mega-menu__content-list-item--hidden-tablet">
7460            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7461              <div class="mega-menu__promo-card__media-wrap">
7462                
7463                  <a href="/collections/eyebrows" class="mega-menu__promo-card__link">
7464                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_2.png?v=1770737954&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_2.png?v=1770737954&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7465                  </a>
7466                
7467                
7468                  <div
7469                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
7470                    style="
7471                      --overlay-layer: var(--layer-flat);
7472                      --overlay-color: #00000026;
7473                      --overlay-color--end: rgba(0, 0, 0, 0);
7474                      --overlay-direction: to top;
7475                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
7476                    "
7477                  ></div>
7478                
7479              </div>
7480              <p class="resource-card__title h5 mega-menu__promo-card__title">Eyebrows</p>
7481            </div>
7482          </li>
7483        
7484
7485      </ul>
7486    </span>
7487
7488
7489                  </div>
7490                </div>
7491              </div>
7492            </div></li>
7493      
7494        <li
7495          role="presentation"
7496          class="menu-list__list-item"
7497          on:focus="/activate"
7498          on:blur="/deactivate"
7499          on:pointerenter="/activate"
7500          on:pointerleave="/deactivate"
7501        >
7502          <a
7503            href="/collections/electricals"
7504            data-skip-node-update="true"
7505            class="menu-list__link"aria-controls="submenu-5"
7506              aria-haspopup="true"
7507              aria-expanded="false"ref="menuitem"
7508          >
7509            <span class="menu-list__link-title">Electricals</span>
7510          </a><div class="menu-list__submenu color-scheme-matches-parent" ref="submenu[]">
7511              <div
7512                id="submenu-5"
7513                class="menu-list__submenu-inner menu-list__submenu-inner--electricals"
7514                style="--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
7515var(--font-body--style); --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
7516none;
7517
7518    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
7519    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
7520    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
7521  
7522--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
7523var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
7524none;
7525
7526    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
7527    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
7528    --menu-child-active-font-color: var(--color-foreground);
7529  
7530"
7531              >
7532                
7533                <div class="mega-menu section section--full-width-margin section--page-width">
7534                  <div
7535                    class="mega-menu__grid"
7536                    data-menu-grid-id="MegaMenuList-5"
7537                  >
7538                    
7539<ul
7540  data-menu-list-id="MegaMenuList-5"
7541  class="mega-menu__list list-unstyled"
7542  style="--menu-image-border-radius: 12px;"
7543>
7544  
7545  
7546  
7547    <li class="mega-menu__column mega-menu__column--span-1">
7548    <div>
7549      <a
7550        
7551          href="/collections/electricals"
7552        
7553        class="mega-menu__link mega-menu__link--parent"
7554      >
7555        
7556        <span
7557          class="mega-menu__link-title wrap-text"
7558        >Electricals</span>
7559      </a>
7560      
7561        <ul
7562          class="list-unstyled"
7563          style="column-count: 1;"
7564        >
7565          
7566            <li
7567            class="mega-menu__link--child"
7568            >
7569              <a
7570                href="/collections/nail-file-machines"
7571                class="mega-menu__link"
7572              >
7573                <span class="mega-menu__link-title wrap-text">Nail File Machines</span>
7574              </a>
7575            </li>
7576          
7577            <li
7578            class="mega-menu__link--child"
7579            >
7580              <a
7581                href="/collections/uv-led-lamps"
7582                class="mega-menu__link"
7583              >
7584                <span class="mega-menu__link-title wrap-text">UV/LED Lamps</span>
7585              </a>
7586            </li>
7587          
7588            <li
7589            class="mega-menu__link--child"
7590            >
7591              <a
7592                href="/collections/dust-collector"
7593                class="mega-menu__link"
7594              >
7595                <span class="mega-menu__link-title wrap-text">Dust Collector</span>
7596              </a>
7597            </li>
7598          
7599            <li
7600            class="mega-menu__link--child"
7601            >
7602              <a
7603                href="/collections/table-lamps"
7604                class="mega-menu__link"
7605              >
7606                <span class="mega-menu__link-title wrap-text">Table Lamps</span>
7607              </a>
7608            </li>
7609          
7610            <li
7611            class="mega-menu__link--child"
7612            >
7613              <a
7614                href="/collections/nail-dryers"
7615                class="mega-menu__link"
7616              >
7617                <span class="mega-menu__link-title wrap-text">Nail Dryers</span>
7618              </a>
7619            </li>
7620          
7621            <li
7622            class="mega-menu__link--child"
7623            >
7624              <a
7625                href="/collections/wax-heaters"
7626                class="mega-menu__link"
7627              >
7628                <span class="mega-menu__link-title wrap-text">Wax Heaters</span>
7629              </a>
7630            </li>
7631          
7632            <li
7633            class="mega-menu__link--child"
7634            >
7635              <a
7636                href="/collections/steriliser"
7637                class="mega-menu__link"
7638              >
7639                <span class="mega-menu__link-title wrap-text">Steriliser</span>
7640              </a>
7641            </li>
7642          
7643            <li
7644            class="mega-menu__link--child"
7645            >
7646              <a
7647                href="/collections/towel-warmers"
7648                class="mega-menu__link"
7649              >
7650                <span class="mega-menu__link-title wrap-text">Towel Warmers</span>
7651              </a>
7652            </li>
7653          
7654            <li
7655            class="mega-menu__link--child"
7656            >
7657              <a
7658                href="/collections/accessories-spare-parts"
7659                class="mega-menu__link"
7660              >
7661                <span class="mega-menu__link-title wrap-text">Accessories & Spares</span>
7662              </a>
7663            </li>
7664          
7665            <li
7666            class="mega-menu__link--child"
7667            >
7668              <a
7669                href="/collections/servicing-repairs"
7670                class="mega-menu__link"
7671              >
7672                <span class="mega-menu__link-title wrap-text">Servicing & Repairs</span>
7673              </a>
7674            </li>
7675          
7676        </ul>
7677      
7678    </div>
7679
7680    </li>
7681  
7682  
7683</ul>
7684
7685
7686
7687<style data-shopify>
7688  [data-menu-grid-id="MegaMenuList-5"] {
7689    
7690      --menu-columns-desktop: 5;
7691      --menu-columns-tablet: 3;
7692    
7693  }
7694
7695  [data-menu-list-id="MegaMenuList-5"] {
7696    
7697      --menu-columns-desktop: 1;
7698      --menu-columns-tablet: 1;
7699    
7700  }
7701</style>
7702
7703
7704
7705    
7706
7707    <span
7708      class="mega-menu__content"
7709      style="--menu-content-columns-desktop: 3; --menu-content-columns-tablet: 2; --resource-card-corner-radius: 12px;"
7710    >
7711      <ul
7712        class="mega-menu__content-list mega-menu__content-list--promos list-unstyled"
7713      >
7714        
7715        
7716          <li class="mega-menu__content-list-item">
7717            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7718              <div class="mega-menu__promo-card__media-wrap">
7719                
7720                  <a href="/collections/nail-file-machines" class="mega-menu__promo-card__link">
7721                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65.png?v=1770737946&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65.png?v=1770737946&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7722                  </a>
7723                
7724                
7725                  <div
7726                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
7727                    style="
7728                      --overlay-layer: var(--layer-flat);
7729                      --overlay-color: #00000026;
7730                      --overlay-color--end: rgba(0, 0, 0, 0);
7731                      --overlay-direction: to top;
7732                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
7733                    "
7734                  ></div>
7735                
7736              </div>
7737              <p class="resource-card__title h5 mega-menu__promo-card__title">Nail File Machines</p>
7738            </div>
7739          </li>
7740        
7741          <li class="mega-menu__content-list-item">
7742            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7743              <div class="mega-menu__promo-card__media-wrap">
7744                
7745                  <a href="/collections/uv-led-lamps" class="mega-menu__promo-card__link">
7746                    <img src="//www.tnbl.co.uk/cdn/shop/files/image_1.png?v=1770737946&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/image_1.png?v=1770737946&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7747                  </a>
7748                
7749                
7750                  <div
7751                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
7752                    style="
7753                      --overlay-layer: var(--layer-flat);
7754                      --overlay-color: #00000026;
7755                      --overlay-color--end: rgba(0, 0, 0, 0);
7756                      --overlay-direction: to top;
7757                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
7758                    "
7759                  ></div>
7760                
7761              </div>
7762              <p class="resource-card__title h5 mega-menu__promo-card__title">UV/LED Lamps</p>
7763            </div>
7764          </li>
7765        
7766          <li class="mega-menu__content-list-item mega-menu__content-list-item--hidden-tablet">
7767            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7768              <div class="mega-menu__promo-card__media-wrap">
7769                
7770                  <a href="/collections/table-lamps" class="mega-menu__promo-card__link">
7771                    <img src="//www.tnbl.co.uk/cdn/shop/files/image_2.png?v=1770737945&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/image_2.png?v=1770737945&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7772                  </a>
7773                
7774                
7775                  <div
7776                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
7777                    style="
7778                      --overlay-layer: var(--layer-flat);
7779                      --overlay-color: #00000026;
7780                      --overlay-color--end: rgba(0, 0, 0, 0);
7781                      --overlay-direction: to top;
7782                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
7783                    "
7784                  ></div>
7785                
7786              </div>
7787              <p class="resource-card__title h5 mega-menu__promo-card__title">Table Lamps</p>
7788            </div>
7789          </li>
7790        
7791
7792      </ul>
7793    </span>
7794
7795
7796                  </div>
7797                </div>
7798              </div>
7799            </div></li>
7800      
7801        <li
7802          role="presentation"
7803          class="menu-list__list-item"
7804          on:focus="/activate"
7805          on:blur="/deactivate"
7806          on:pointerenter="/activate"
7807          on:pointerleave="/deactivate"
7808        >
7809          <a
7810            href="/collections/furniture"
7811            data-skip-node-update="true"
7812            class="menu-list__link"aria-controls="submenu-6"
7813              aria-haspopup="true"
7814              aria-expanded="false"ref="menuitem"
7815          >
7816            <span class="menu-list__link-title">Furniture</span>
7817          </a><div class="menu-list__submenu color-scheme-matches-parent" ref="submenu[]">
7818              <div
7819                id="submenu-6"
7820                class="menu-list__submenu-inner menu-list__submenu-inner--furniture"
7821                style="--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
7822var(--font-body--style); --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
7823none;
7824
7825    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
7826    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
7827    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
7828  
7829--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
7830var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
7831none;
7832
7833    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
7834    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
7835    --menu-child-active-font-color: var(--color-foreground);
7836  
7837"
7838              >
7839                
7840                <div class="mega-menu section section--full-width-margin section--page-width">
7841                  <div
7842                    class="mega-menu__grid"
7843                    data-menu-grid-id="MegaMenuList-6"
7844                  >
7845                    
7846<ul
7847  data-menu-list-id="MegaMenuList-6"
7848  class="mega-menu__list list-unstyled"
7849  style="--menu-image-border-radius: 12px;"
7850>
7851  
7852  
7853  
7854    <li class="mega-menu__column mega-menu__column--span-1">
7855    <div>
7856      <a
7857        
7858          href="/collections/furniture"
7859        
7860        class="mega-menu__link mega-menu__link--parent"
7861      >
7862        
7863        <span
7864          class="mega-menu__link-title wrap-text"
7865        >Furniture</span>
7866      </a>
7867      
7868        <ul
7869          class="list-unstyled"
7870          style="column-count: 1;"
7871        >
7872          
7873            <li
7874            class="mega-menu__link--child"
7875            >
7876              <a
7877                href="/collections/manicure-tables"
7878                class="mega-menu__link"
7879              >
7880                <span class="mega-menu__link-title wrap-text">Manicure Table</span>
7881              </a>
7882            </li>
7883          
7884            <li
7885            class="mega-menu__link--child"
7886            >
7887              <a
7888                href="/collections/pedicure-chairs"
7889                class="mega-menu__link"
7890              >
7891                <span class="mega-menu__link-title wrap-text">Pedicure Chairs</span>
7892              </a>
7893            </li>
7894          
7895            <li
7896            class="mega-menu__link--child"
7897            >
7898              <a
7899                href="/collections/reception-desks"
7900                class="mega-menu__link"
7901              >
7902                <span class="mega-menu__link-title wrap-text">Reception Desks</span>
7903              </a>
7904            </li>
7905          
7906            <li
7907            class="mega-menu__link--child"
7908            >
7909              <a
7910                href="/collections/chairs-stools"
7911                class="mega-menu__link"
7912              >
7913                <span class="mega-menu__link-title wrap-text">Chairs & Stools</span>
7914              </a>
7915            </li>
7916          
7917            <li
7918            class="mega-menu__link--child"
7919            >
7920              <a
7921                href="/collections/trolleys"
7922                class="mega-menu__link"
7923              >
7924                <span class="mega-menu__link-title wrap-text">Trolleys</span>
7925              </a>
7926            </li>
7927          
7928            <li
7929            class="mega-menu__link--child"
7930            >
7931              <a
7932                href="/collections/arm-foot-rests"
7933                class="mega-menu__link"
7934              >
7935                <span class="mega-menu__link-title wrap-text">Arm & Foot Rests</span>
7936              </a>
7937            </li>
7938          
7939            <li
7940            class="mega-menu__link--child"
7941            >
7942              <a
7943                href="/collections/wall-counter-displays"
7944                class="mega-menu__link"
7945              >
7946                <span class="mega-menu__link-title wrap-text">Wall & Counter Displays</span>
7947              </a>
7948            </li>
7949          
7950        </ul>
7951      
7952    </div>
7953
7954    </li>
7955  
7956  
7957</ul>
7958
7959
7960
7961<style data-shopify>
7962  [data-menu-grid-id="MegaMenuList-6"] {
7963    
7964      --menu-columns-desktop: 5;
7965      --menu-columns-tablet: 3;
7966    
7967  }
7968
7969  [data-menu-list-id="MegaMenuList-6"] {
7970    
7971      --menu-columns-desktop: 1;
7972      --menu-columns-tablet: 1;
7973    
7974  }
7975</style>
7976
7977
7978
7979    
7980
7981    <span
7982      class="mega-menu__content"
7983      style="--menu-content-columns-desktop: 3; --menu-content-columns-tablet: 2; --resource-card-corner-radius: 12px;"
7984    >
7985      <ul
7986        class="mega-menu__content-list mega-menu__content-list--promos list-unstyled"
7987      >
7988        
7989        
7990          <li class="mega-menu__content-list-item">
7991            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
7992              <div class="mega-menu__promo-card__media-wrap">
7993                
7994                  <a href="/collections/chairs-stools" class="mega-menu__promo-card__link">
7995                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_a305ecf2-f347-48e9-95ba-4ade1adc1183.png?v=1770737962&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_a305ecf2-f347-48e9-95ba-4ade1adc1183.png?v=1770737962&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
7996                  </a>
7997                
7998                
7999                  <div
8000                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
8001                    style="
8002                      --overlay-layer: var(--layer-flat);
8003                      --overlay-color: #00000026;
8004                      --overlay-color--end: rgba(0, 0, 0, 0);
8005                      --overlay-direction: to top;
8006                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
8007                    "
8008                  ></div>
8009                
8010              </div>
8011              <p class="resource-card__title h5 mega-menu__promo-card__title">Chairs & Stools</p>
8012            </div>
8013          </li>
8014        
8015          <li class="mega-menu__content-list-item">
8016            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
8017              <div class="mega-menu__promo-card__media-wrap">
8018                
8019                  <a href="/collections/arm-foot-rests" class="mega-menu__promo-card__link">
8020                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_2_c245f012-56d0-4715-9846-a264cdd818a9.png?v=1770737962&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_2_c245f012-56d0-4715-9846-a264cdd818a9.png?v=1770737962&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
8021                  </a>
8022                
8023                
8024                  <div
8025                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
8026                    style="
8027                      --overlay-layer: var(--layer-flat);
8028                      --overlay-color: #00000026;
8029                      --overlay-color--end: rgba(0, 0, 0, 0);
8030                      --overlay-direction: to top;
8031                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
8032                    "
8033                  ></div>
8034                
8035              </div>
8036              <p class="resource-card__title h5 mega-menu__promo-card__title">Arm & Foot Rests</p>
8037            </div>
8038          </li>
8039        
8040          <li class="mega-menu__content-list-item mega-menu__content-list-item--hidden-tablet">
8041            <div class="resource-card mega-menu__promo-card" data-resource-type="promo">
8042              <div class="mega-menu__promo-card__media-wrap">
8043                
8044                  <a href="/collections/displays-swatches" class="mega-menu__promo-card__link">
8045                    <img src="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_8972af1f-2
8045656-4029-8887-cbb22aee3ee0.png?v=1770737961&amp;width=302" srcset="//www.tnbl.co.uk/cdn/shop/files/Rectangle_65_copy_8972af1f-2656-4029-8887-cbb22aee3ee0.png?v=1770737961&amp;width=302 302w" width="302" height="302" loading="lazy" class="mega-menu__content-promo">
8046                  </a>
8047                
8048                
8049                  <div
8050                    class="overlay overlay--gradient mega-menu__promo-card__overlay"
8051                    style="
8052                      --overlay-layer: var(--layer-flat);
8053                      --overlay-color: #00000026;
8054                      --overlay-color--end: rgba(0, 0, 0, 0);
8055                      --overlay-direction: to top;
8056                      --overlay-border-radius: var(--resource-card-corner-radius, 0);
8057                    "
8058                  ></div>
8059                
8060              </div>
8061              <p class="resource-card__title h5 mega-menu__promo-card__title">Display Stands</p>
8062            </div>
8063          </li>
8064        
8065
8066      </ul>
8067    </span>
8068
8069
8070                  </div>
8071                </div>
8072              </div>
8073            </div></li>
8074      
8075        <li
8076          role="presentation"
8077          class="menu-list__list-item"
8078          on:focus="/activate"
8079          on:blur="/deactivate"
8080          on:pointerenter="/activate"
8081          on:pointerleave="/deactivate"
8082        >
8083          <a
8084            href="/"
8085            data-skip-node-update="true"
8086            class="menu-list__link menu-list__link--active"aria-controls="submenu-7"
8087              aria-haspopup="true"
8088              aria-expanded="false"ref="menuitem"
8089          >
8090            <span class="menu-list__link-title">Brands</span>
8091          </a><div class="menu-list__submenu color-scheme-matches-parent" ref="submenu[]">
8092              <div
8093                id="submenu-7"
8094                class="menu-list__submenu-inner menu-list__submenu-inner--brands"
8095                style="--menu-parent-font-family: var(--font-body--family); --menu-parent-font-style:
8096var(--font-body--style); --menu-parent-font-weight: var(--font-body--weight); --menu-parent-font-case:
8097none;
8098
8099    --menu-parent-font-size: var(--menu-font-md--size); --menu-parent-font-line-height:
8100    var(--menu-font-md--line-height); --menu-parent-font-color: var(--color-foreground);
8101    --menu-parent-active-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
8102  
8103--menu-child-font-family: var(--font-body--family); --menu-child-font-style:
8104var(--font-body--style); --menu-child-font-weight: var(--font-body--weight); --menu-child-font-case:
8105none;
8106
8107    --menu-child-font-size: var(--menu-font-sm--size); --menu-child-font-line-height: var(--menu-font-sm--line-height);
8108    --menu-child-font-color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text));
8109    --menu-child-active-font-color: var(--color-foreground);
8110  
8111"
8112              >
8113                
8114                <div class="mega-menu section section--full-width-margin section--page-width">
8115                  <div
8116                    class="mega-menu__grid"
8117                    data-menu-grid-id="MegaMenuList-7"
8118                  >
8119                    
8120<ul
8121  data-menu-list-id="MegaMenuList-7"
8122  class="mega-menu__list list-unstyled"
8123  style="--menu-image-border-radius: 12px;"
8124>
8125  
8126  
8127  
8128    <li class="mega-menu__column mega-menu__column--span-2 mega-menu__column--hide-title">
8129    <div>
8130      <a
8131        
8132          href="/collections"
8133        
8134        class="mega-menu__link mega-menu__link--parent"
8135      >
8136        
8137        <span
8138          class="mega-menu__link-title wrap-text"
8139        >Lorem Ipsum</span>
8140      </a>
8141      
8142        <ul
8143          class="list-unstyled"
8144          style="column-count: 1;"
8145        >
8146          
8147            <li
8148            class="mega-menu__link--child"
8149            >
8150              <a
8151                href="/collections/777"
8152                class="mega-menu__link"
8153              >
8154                <span class="mega-menu__link-title wrap-text">777</span>
8155              </a>
8156            </li>
8157          
8158            <li
8159            class="mega-menu__link--child"
8160            >
8161              <a
8162                href="/collections/aeon"
8163                class="mega-menu__link"
8164              >
8165                <span class="mega-menu__link-title wrap-text">AEON</span>
8166              </a>
8167            </li>
8168          
8169            <li
8170            class="mega-menu__link--child"
8171            >
8172              <a
8173                href="/collections/aiko"
8174                class="mega-menu__link"
8175              >
8176                <span class="mega-menu__link-title wrap-text">AIKO</span>
8177              </a>
8178            </li>
8179          
8180            <li
8181            class="mega-menu__link--child"
8182            >
8183              <a
8184                href="/collections/apres"
8185                class="mega-menu__link"
8186              >
8187                <span class="mega-menu__link-title wrap-text">APRES</span>
8188              </a>
8189            </li>
8190          
8191            <li
8192            class="mega-menu__link--child"
8193            >
8194              <a
8195                href="/collections/ardell"
8196                class="mega-menu__link"
8197              >
8198                <span class="mega-menu__link-title wrap-text">ARDELL</span>
8199              </a>
8200            </li>
8201          
8202            <li
8203            class="mega-menu__link--child"
8204            >
8205              <a
8206                href="/collections/art-club"
8207                class="mega-menu__link"
8208              >
8209                <span class="mega-menu__link-title wrap-text">ART CLUB</span>
8210              </a>
8211            </li>
8212          
8213            <li
8214            class="mega-menu__link--child"
8215            >
8216              <a
8217                href="/collections/aurelia"
8218                class="mega-menu__link"
8219              >
8220                <span class="mega-menu__link-title wrap-text">AURELIA</span>
8221              </a>
8222            </li>
8223          
8224            <li
8225            class="mega-menu__link--child"
8226            >
8227              <a
8228                href="/collections/avp"
8229                class="mega-menu__link"
8230              >
8231                <span class="mega-menu__link-title wrap-text">AVP</span>
8232              </a>
8233            </li>
8234          
8235            <li
8236            class="mega-menu__link--child"
8237            >
8238              <a
8239                href="/collections/baisidai"
8240                class="mega-menu__link"
8241              >
8242                <span class="mega-menu__link-title wrap-text">BAISIDAI</span>
8243              </a>
8244            </li>
8245          
8246            <li
8247            class="mega-menu__link--child"
8248            >
8249              <a
8250                href="/collections/barbicide"
8251                class="mega-menu__link"
8252              >
8253                <span class="mega-menu__link-title wrap-text">BARBICIDE</span>
8254              </a>
8255            </li>
8256          
8257            <li
8258            class="mega-menu__link--child"
8259            >
8260              <a
8261                href="/collections/be-beauty"
8262                class="mega-menu__link"
8263              >
8264                <span class="mega-menu__link-title wrap-text">BE BEAUTY</span>
8265              </a>
8266            </li>
8267          
8268            <li
8269            class="mega-menu__link--child"
8270            >
8271              <a
8272                href="/collections/beauty-max"
8273                class="mega-menu__link"
8274              >
8275                <span class="mega-menu__link-title wrap-text">BEAUTY MAX</span>
8276              </a>
8277            </li>
8278          
8279            <li
8280            class="mega-menu__link--child"
8281            >
8282              <a
8283                href="/collections/cacee"
8284                class="mega-menu__link"
8285              >
8286                <span class="mega-menu__link-title wrap-text">CACEE</span>
8287              </a>
8288            </li>
8289          
8290            <li
8291            class="mega-menu__link--child"
8292            >
8293              <a
8294                href="/collections/chernaya-rechka"
8295                class="mega-menu__link"
8296              >
8297                <span class="mega-menu__link-title wrap-text">CHERNAYA RECHKA</span>
8298              </a>
8299            </li>
8300          
8301            <li
8302            class="mega-menu__link--child"
8303            >
8304              <a
8305                href="/collections/christrio"
8306                class="mega-menu__link"
8307              >
8308                <span class="mega-menu__link-title wrap-text">CHRISTRIO</span>
8309              </a>
8310            </li>
8311          
8312            <li
8313            class="mega-menu__link--child"
8314            >
8315              <a
8316                href="/collections/cnd"
8317                class="mega-menu__link"
8318              >
8319                <span class="mega-menu__link-title wrap-text">CND</span>
8320              </a>
8321            </li>
8322          
8323            <li
8324            class="mega-menu__link--child"
8325            >
8326              <a
8327                href="/collections/color-club"
8328                class="mega-menu__link"
8329              >
8330                <span class="mega-menu__link-title wrap-text">COLOR CLUB</span>
8331              </a>
8332            </li>
8333          
8334            <li
8335            class="mega-menu__link--child"
8336            >
8337              <a
8338                href="/collections/credo"
8339                class="mega-menu__link"
8340              >
8341                <span class="mega-menu__link-title wrap-text">CREDO</span>
8342              </a>
8343            </li>
8344          
8345        </ul>
8346      
8347    </div>
8348
8349    </li>
8350  
8351    <li class="mega-menu__column mega-menu__column--span-2 mega-menu__column--hide-title">
8352    <div>
8353      <a
8354        
8355          href="/"
8356        
8357        class="mega-menu__link mega-menu__link--parent"
8358      >
8359        
8360        <span
8361          class="mega-menu__link-title wrap-text"
8362        >Lorem Ipsum</span>
8363      </a>
8364      
8365        <ul
8366          class="list-unstyled"
8367          style="column-count: 1;"
8368        >
8369          
8370            <li
8371            class="mega-menu__link--child"
8372            >
8373              <a
8374                href="/collections/cuccio"
8375                class="mega-menu__link"
8376              >
8377                <span class="mega-menu__link-title wrap-text">CUCCIO</span>
8378              </a>
8379            </li>
8380          
8381            <li
8382            class="mega-menu__link--child"
8383            >
8384              <a
8385                href="/collections/daisy"
8386                class="mega-menu__link"
8387              >
8388                <span class="mega-menu__link-title wrap-text">DAISY</span>
8389              </a>
8390            </li>
8391          
8392            <li
8393            class="mega-menu__link--child"
8394            >
8395              <a
8396                href="/collections/derma-v10"
8397                class="mega-menu__link"
8398              >
8399                <span class="mega-menu__link-title wrap-text">DERMA V10</span>
8400              </a>
8401            </li>
8402          
8403            <li
8404            class="mega-menu__link--child"
8405            >
8406              <a
8407                href="/collections/dermert"
8408                class="mega-menu__link"
8409              >
8410                <span class="mega-menu__link-title wrap-text">DERMERT</span>
8411              </a>
8412            </li>
8413          
8414            <li
8415            class="mega-menu__link--child"
8416            >
8417              <a
8418                href="/collections/dnd-dc"
8419                class="mega-menu__link"
8420              >
8421                <span class="mega-menu__link-title wrap-text">DND DC</span>
8422              </a>
8423            </li>
8424          
8425            <li
8426            class="mega-menu__link--child"
8427            >
8428              <a
8429                href="/collections/emi"
8430                class="mega-menu__link"
8431              >
8432                <span class="mega-menu__link-title wrap-text">EMI</span>
8433              </a>
8434            </li>
8435          
8436            <li
8437            class="mega-menu__link--child"
8438            >
8439              <a
8440                href="/collections/entity"
8441                class="mega-menu__link"
8442              >
8443                <span class="mega-menu__link-title wrap-text">ENTITY</span>
8444              </a>
8445            </li>
8446          
8447            <li
8448            class="mega-menu__link--child"
8449            >
8450              <a
8451                href="/collections/ezflow"
8452                class="mega-menu__link"
8453              >
8454                <span class="mega-menu__link-title wrap-text">EZFLOW</span>
8455              </a>
8456            </li>
8457          
8458            <li
8459            class="mega-menu__link--child"
8460            >
8461              <a
8462                href="/collections/gelish"
8463                class="mega-menu__link"
8464              >
8465                <span class="mega-menu__link-title wrap-text">GELISH</span>
8466              </a>
8467            </li>
8468          
8469            <li
8470            class="mega-menu__link--child"
8471            >
8472              <a
8473                href="/collections/glam-glits"
8474                class="mega-menu__link"
8475              >
8476                <span class="mega-menu__link-title wrap-text">GLAM & GLITS</span>
8477              </a>
8478            </li>
8479          
8480            <li
8481            class="mega-menu__link--child"
8482            >
8483              <a
8484                href="/collections/glamlac"
8485                class="mega-menu__link"
8486              >
8487                <span class="mega-menu__link-title wrap-text">GLAMLAC</span>
8488              </a>
8489            </li>
8490          
8491            <li
8492            class="mega-menu__link--child"
8493            >
8494              <a
8495                href="/collections/glamlash"
8496                class="mega-menu__link"
8497              >
8498                <span class="mega-menu__link-title wrap-text">GLAMLASH</span>
8499              </a>
8500            </li>
8501          
8502            <li
8503            class="mega-menu__link--child"
8504            >
8505              <a
8506                href="/collections/glamlashes"
8507                class="mega-menu__link"
8508              >
8509                <span class="mega-menu__link-title wrap-text">GLAMLASHES</span>
8510              </a>
8511            </li>
8512          
8513            <li
8514            class="mega-menu__link--child"
8515            >
8516              <a
8517                href="/collections/halo"
8518                class="mega-menu__link"
8519              >
8520                <span class="mega-menu__link-title wrap-text">HALO</span>
8521              </a>
8522            </li>
8523          
8524            <li
8525            class="mega-menu__link--child"
8526            >
8527              <a
8528                href="/collections/hong-kong-girl"
8529                class="mega-menu__link"
8530              >
8531                <span class="mega-menu__link-title wrap-text">HONG KONG GIRL</span>
8532              </a>
8533            </li>
8534          
8535            <li
8536            class="mega-menu__link--child"
8537            >
8538              <a
8539                href="/collections/ibd"
8540                class="mega-menu__link"
8541              >
8542                <span class="mega-menu__link-title wrap-text">IBD</span>
8543              </a>
8544            </li>
8545          
8546            <li
8547            class="mega-menu__link--child"
8548            >
8549              <a
8550                href="/collections/icon"
8551                class="mega-menu__link"
8552              >
8553                <span class="mega-menu__link-title wrap-text">ICON</span>
8554              </a>
8555            </li>
8556          
8557        </ul>
8558      
8559    </div>
8560
8561    </li>
8562  
8563    <li class="mega-menu__column mega-menu__column--span-2 mega-menu__column--hide-title">
8564    <div>
8565      <a
8566        
8567          href="/"
8568        
8569        class="mega-menu__link mega-menu__link--parent"
8570      >
8571        
8572        <span
8573          class="mega-menu__link-title wrap-text"
8574        >Lorem Ipsum</span>
8575      </a>
8576      
8577        <ul
8578          class="list-unstyled"
8579          style="column-count: 1;"
8580        >
8581          
8582            <li
8583            class="mega-menu__link--child"
8584            >
8585              <a
8586                href="/collections/infalab"
8587                class="mega-menu__link"
8588              >
8589                <span class="mega-menu__link-title wrap-text">INFALAB</span>
8590              </a>
8591            </li>
8592          
8593            <li
8594            class="mega-menu__link--child"
8595            >
8596              <a
8597                href="/collections/jet"
8598                class="mega-menu__link"
8599              >
8600                <span class="mega-menu__link-title wrap-text">JET</span>
8601              </a>
8602            </li>
8603          
8604            <li
8605            class="mega-menu__link--child"
8606            >
8607              <a
8608                href="/collections/jinhong"
8609                class="mega-menu__link"
8610              >
8611                <span class="mega-menu__link-title wrap-text">JINHONG</span>
8612              </a>
8613            </li>
8614          
8615            <li
8616            class="mega-menu__link--child"
8617            >
8618              <a
8619                href="/collections/kds"
8620                class="mega-menu__link"
8621              >
8622                <span class="mega-menu__link-title wrap-text">KDS</span>
8623              </a>
8624            </li>
8625          
8626            <li
8627            class="mega-menu__link--child"
8628            >
8629              <a
8630                href="/collections/keli"
8631                class="mega-menu__link"
8632              >
8633                <span class="mega-menu__link-title wrap-text">KELI</span>
8634              </a>
8635            </li>
8636          
8637            <li
8638            class="mega-menu__link--child"
8639            >
8640              <a
8641                href="/collections/kiara-sky"
8642                class="mega-menu__link"
8643              >
8644                <span class="mega-menu__link-title wrap-text">KIARA SKY</span>
8645              </a>
8646            </li>
8647          
8648            <li
8649            class="mega-menu__link--child"
8650            >
8651              <a
8652                href="/collections/kiehl"
8653                class="mega-menu__link"
8654              >
8655                <span class="mega-menu__link-title wrap-text">KIEHL</span>
8656              </a>
8657            </li>
8658          
8659            <li
8660            class="mega-menu__link--child"
8661            >
8662              <a
8663                href="/collections/kupa"
8664                class="mega-menu__link"
8665              >
8666                <span class="mega-menu__link-title wrap-text">KUPA</span>
8667              </a>
8668            </li>
8669          
8670            <li
8671            class="mega-menu__link--child"
8672            >
8673              <a
8674                href="/collections/lamour"
8675                class="mega-menu__link"
8676              >
8677                <span class="mega-menu__link-title wrap-text">LAMOUR</span>
8678              </a>
8679            </li>
8680          
8681            <li
8682            class="mega-menu__link--child"
8683            >
8684              <a
8685                href="/collections/lazy-fun"
8686                class="mega-menu__link"
8687              >
8688                <span class="mega-menu__link-title wrap-text">LAZY FUN</span>
8689              </a>
8690            </li>
8691          
8692            <li
8693            class="mega-menu__link--child"
8694            >
8695              <a
8696                href="/collections/lion"
8697                class="mega-menu__link"
8698              >
8699                <span class="mega-menu__link-title wrap-text">LION</span>
8700              </a>
8701            </li>
8702          
8703            <li
8704            class="mega-menu__link--child"
8705            >
8706              <a
8707                href="/collections/lorossi"
8708                class="mega-menu__link"
8709              >
8710                <span class="mega-menu__link-title wrap-text">LOROSSI</span>
8711              </a>
8712            </li>
8713          
8714            <li
8715            class="mega-menu__link--child"
8716            >
8717              <a
8718                href="/collections/mae"
8719                class="mega-menu__link"
8720              >
8721                <span class="mega-menu__link-title wrap-text">MAE</span>
8722              </a>
8723            </li>
8724          
8725            <li
8726            class="mega-menu__link--child"
8727            >
8728              <a
8729                href="/collections/medicool"
8730                class="mega-menu__link"
8731              >
8732                <span class="mega-menu__link-title wrap-text">MEDICOOL</span>
8733              </a>
8734            </li>
8735          
8736            <li
8737            class="mega-menu__link--child"
8738            >
8739              <a
8740                href="/collections/mei-na-si"
8741                class="mega-menu__link"
8742              >
8743                <span class="mega-menu__link-title wrap-text">MEI NA SI</span>
8744              </a>
8745            </li>
8746          
8747            <li
8748            class="mega-menu__link--child"
8749            >
8750              <a
8751                href="/collections/micra"
8752                class="mega-menu__link"
8753              >
8754                <span class="mega-menu__link-title wrap-text">MICRA</span>
8755              </a>
8756            </li>
8757          
8758            <li
8759            class="mega-menu__link--child"
8760            >
8761              <a
8762                href="/collections/moding"
8763                class="mega-menu__link"
8764              >
8765                <span class="mega-menu__link-title wrap-text">MODING</span>
8766              </a>
8767            </li>
8768          
8769        </ul>
8770      
8771    </div>
8772
8773    </li>
8774  
8775    <li class="mega-menu__column mega-menu__column--span-2 mega-menu__column--hide-title">
8776    <div>
8777      <a
8778        
8779          href="/"
8780        
8781        class="mega-menu__link mega-menu__link--parent"
8782      >
8783        
8784        <span
8785          class="mega-menu__link-title wrap-text"
8786        >Lorem Ipsum</span>
8787      </a>
8788      
8789        <ul
8790          class="list-unstyled"
8791          style="column-count: 1;"
8792        >
8793          
8794            <li
8795            class="mega-menu__link--child"
8796            >
8797              <a
8798                href="/collections/morgan-taylor"
8799                class="mega-menu__link"
8800              >
8801                <span class="mega-menu__link-title wrap-text">MORGAN TAYLOR</span>
8802              </a>
8803            </li>
8804          
8805            <li
8806            class="mega-menu__link--child"
8807            >
8808              <a
8809                href="/collections/nail-artists"
8810                class="mega-menu__link"
8811              >
8812                <span class="mega-menu__link-title wrap-text">NAIL ARTISTS</span>
8813              </a>
8814            </li>
8815          
8816            <li
8817            class="mega-menu__link--child"
8818            >
8819              <a
8820                href="/collections/nailpro"
8821                class="mega-menu__link"
8822              >
8823                <span class="mega-menu__link-title wrap-text">NAILPRO</span>
8824              </a>
8825            </li>
8826          
8827            <li
8828            class="mega-menu__link--child"
8829            >
8830              <a
8831                href="/collections/nghia"
8832                class="mega-menu__link"
8833              >
8834                <span class="mega-menu__link-title wrap-text">NGHIA</span>
8835              </a>
8836            </li>
8837          
8838            <li
8839            class="mega-menu__link--child"
8840            >
8841              <a
8842                href="/collections/nola"
8843                class="mega-menu__link"
8844              >
8845                <span class="mega-menu__link-title wrap-text">NOLA</span>
8846              </a>
8847            </li>
8848          
8849            <li
8850            class="mega-menu__link--child"
8851            >
8852              <a
8853                href="/collections/nps"
8854                class="mega-menu__link"
8855              >
8856                <span class="mega-menu__link-title wrap-text">NPS</span>
8857              </a>
8858            </li>
8859          
8860            <li
8861            class="mega-menu__link--child"
8862            >
8863              <a
8864                href="/collections/ns-101"
8865                class="mega-menu__link"
8866              >
8867                <span class="mega-menu__link-title wrap-text">NS-101</span>
8868              </a>
8869            </li>
8870          
8871            <li
8872            class="mega-menu__link--child"
8873            >
8874              <a
8875                href="/collections/nsi"
8876                class="mega-menu__link"
8877              >
8878                <span class="mega-menu__link-title wrap-text">NSI</span>
8879              </a>
8880            </li>
8881          
8882            <li
8883            class="mega-menu__link--child"
8884            >
8885              <a
8886                href="/collections/opi"
8887                class="mega-menu__link"
8888              >
8889                <span class="mega-menu__link-title wrap-text">OPI</span>
8890              </a>
8891            </li>
8892          
8893            <li
8894            class="mega-menu__link--child"
8895            >
8896              <a
8897                href="/collections/orly"
8898                class="mega-menu__link"
8899              >
8900                <span class="mega-menu__link-title wrap-text">ORLY</span>
8901              </a>
8902            </li>
8903          
8904            <li
8905            class="mega-menu__link--child"
8906            >
8907              <a
8908                href="/collections/qtica"
8909                class="mega-menu__link"
8910              >
8911                <span class="mega-menu__link-title wrap-text">QTICA</span>
8912              </a>
8913            </li>
8914          
8915            <li
8916            class="mega-menu__link--child"
8917            >
8918              <a
8919                href="/collections/refectocil"
8920                class="mega-menu__link"
8921              >
8922                <span class="mega-menu__link-title wrap-text">REFECTOCIL</span>
8923              </a>
8924            </li>
8925          
8926            <li
8927            class="mega-menu__link--child"
8928            >
8929              <a
8930                href="/collections/rococo"
8931                class="mega-menu__link"
8932              >
8933                <span class="mega-menu__link-title wrap-text">ROCOCO</span>
8934              </a>
8935            </li>
8936          
8937            <li
8938            class="mega-menu__link--child"
8939            >
8940              <a
8941                href="/collections/saeyang"
8942                class="mega-menu__link"
8943              >
8944                <span class="mega-menu__link-title wrap-text">SAEYANG</span>
8945              </a>
8946            </li>
8947          
8948            <li
8949            class="mega-menu__link--child"
8950            >
8951              <a
8952                href="/collections/salon-system"
8953                class="mega-menu__link"
8954              >
8955                <span class="mega-menu__link-title wrap-text">SALON SYSTEM</span>
8956              </a>
8957            </li>
8958          
8959            <li
8960            class="mega-menu__link--child"
8961            >
8962              <a
8963                href="/collections/seche"
8964                class="mega-menu__link"
8965              >
8966                <span class="mega-menu__link-title wrap-text">SECHE</span>
8967              </a>
8968            </li>
8969          
8970            <li
8971            class="mega-menu__link--child"
8972            >
8973              <a
8974                href="/collections/seiko"
8975                class="mega-menu__link"
8976              >
8977                <span class="mega-menu__link-title wrap-text">SEIKO</span>
8978              </a>
8979            </li>
8980          
8981        </ul>
8982      
8983    </div>
8984
8985    </li>
8986  
8987    <li class="mega-menu__column mega-menu__column--span-2 mega-menu__column--hide-title">
8988    <div>
8989      <a
8990        
8991          href="/"
8992        
8993        class="mega-menu__link mega-menu__link--parent"
8994      >
8995        
8996        <span
8997          class="mega-menu__link-title wrap-text"
8998        >Lorem Ipsum</span>
8999      </a>
9000      
9001        <ul
9002          class="list-unstyled"
9003          style="column-count: 1;"
9004        >
9005          
9006            <li
9007            class="mega-menu__link--child"
9008            >
9009              <a
9010                href="/collections/simply"
9011                class="mega-menu__link"
9012              >
9013                <span class="mega-menu__link-title wrap-text">SIMPLY</span>
9014              </a>
9015            </li>
9016          
9017            <li
9018            class="mega-menu__link--child"
9019            >
9020              <a
9021                href="/collections/sleep-in-rollers"
9022                class="mega-menu__link"
9023              >
9024                <span class="mega-menu__link-title wrap-text">SLEEP IN ROLLERS</span>
9025              </a>
9026            </li>
9027          
9028            <li
9029            class="mega-menu__link--child"
9030            >
9031              <a
9032                href="/collections/startool"
9033                class="mega-menu__link"
9034              >
9035                <span class="mega-menu__link-title wrap-text">STARTOOL</span>
9036              </a>
9037            </li>
9038          
9039            <li
9040            class="mega-menu__link--child"
9041            >
9042              <a
9043                href="/collections/strictly-professional"
9044                class="mega-menu__link"
9045              >
9046                <span class="mega-menu__link-title wrap-text">STRICTLY PROFESSIONAL</span>
9047              </a>
9048            </li>
9049          
9050            <li
9051            class="mega-menu__link--child"
9052            >
9053              <a
9054                href="/collections/supernail"
9055                class="mega-menu__link"
9056              >
9057                <span class="mega-menu__link-title wrap-text">SUPERNAIL</span>
9058              </a>
9059            </li>
9060          
9061            <li
9062            class="mega-menu__link--child"
9063            >
9064              <a
9065                href="/collections/swarovski"
9066                class="mega-menu__link"
9067              >
9068                <span class="mega-menu__link-title wrap-text">SWAROVSKI</span>
9069              </a>
9070            </li>
9071          
9072            <li
9073            class="mega-menu__link--child"
9074            >
9075              <a
9076                href="/collections/titania"
9077                class="mega-menu__link"
9078              >
9079                <span class="mega-menu__link-title wrap-text">TITANIA</span>
9080              </a>
9081            </li>
9082          
9083            <li
9084            class="mega-menu__link--child"
9085            >
9086              <a
9087                href="/collections/tnbl"
9088                class="mega-menu__link"
9089              >
9090                <span class="mega-menu__link-title wrap-text">TNBL</span>
9091              </a>
9092            </li>
9093          
9094            <li
9095            class="mega-menu__link--child"
9096            >
9097              <a
9098                href="/collections/upower"
9099                class="mega-menu__link"
9100              >
9101                <span class="mega-menu__link-title wrap-text">UPOWER</span>
9102              </a>
9103            </li>
9104          
9105            <li
9106            class="mega-menu__link--child"
9107            >
9108              <a
9109                href="/collections/varisi"
9110                class="mega-menu__link"
9111              >
9112                <span class="mega-menu__link-title wrap-text">VARISI</span>
9113              </a>
9114            </li>
9115          
9116            <li
9117            class="mega-menu__link--child"
9118            >
9119              <a
9120                href="/collections/veniiz"
9121                class="mega-menu__link"
9122              >
9123                <span class="mega-menu__link-title wrap-text">VENIIZ</span>
9124              </a>
9125            </li>
9126          
9127            <li
9128            class="mega-menu__link--child"
9129            >
9130              <a
9131                href="/collections/vina"
9132                class="mega-menu__link"
9133              >
9134                <span class="mega-menu__link-title wrap-text">VINA</span>
9135              </a>
9136            </li>
9137          
9138            <li
9139            class="mega-menu__link--child"
9140            >
9141              <a
9142                href="/collections/vins"
9143                class="mega-menu__link"
9144              >
9145                <span class="mega-menu__link-title wrap-text">VINS</span>
9146              </a>
9147            </li>
9148          
9149            <li
9150            class="mega-menu__link--child"
9151            >
9152              <a
9153                href="/collections/voesh"
9154                class="mega-menu__link"
9155              >
9156                <span class="mega-menu__link-title wrap-text">VOESH</span>
9157              </a>
9158            </li>
9159          
9160            <li
9161            class="mega-menu__link--child"
9162            >
9163              <a
9164                href="/collections/willow"
9165                class="mega-menu__link"
9166              >
9167                <span class="mega-menu__link-title wrap-text">WILLOW</span>
9168              </a>
9169            </li>
9170          
9171            <li
9172            class="mega-menu__link--child"
9173            >
9174              <a
9175                href="/collections/wonder-gel"
9176                class="mega-menu__link"
9177              >
9178                <span class="mega-menu__link-title wrap-text">WONDER GEL</span>
9179              </a>
9180            </li>
9181          
9182            <li
9183            class="mega-menu__link--child"
9184            >
9185              <a
9186                href="/collections/yoyo"
9187                class="mega-menu__link"
9188              >
9189                <span class="mega-menu__link-title wrap-text">YOYO</span>
9190              </a>
9191            </li>
9192          
9193        </ul>
9194      
9195    </div>
9196
9197    </li>
9198  
9199  
9200</ul>
9201
9202
9203
9204<style data-shopify>
9205  [data-menu-grid-id="MegaMenuList-7"] {
9206    
9207      --menu-columns-desktop: 12;
9208      --menu-columns-tablet: 11;
9209    
9210  }
9211
9212  [data-menu-list-id="MegaMenuList-7"] {
9213    
9214      --menu-columns-desktop: 10;
9215      --menu-columns-tablet: 10;
9216    
9217  }
9218</style>
9219
9220
9221
9222    
9223
9224    <span
9225      class="mega-menu__content"
9226      style="--menu-content-columns-desktop: 1; --menu-content-columns-tablet: 1; --resource-card-corner-radius: 12px;"
9227    >
9228      <ul
9229        class="mega-menu__content-list mega-menu__content-list--promos list-unstyled"
9230      >
9231        
9232        
9233
9234      </ul>
9235    </span>
9236
9237
9238                  </div>
9239                </div>
9240              </div>
9241            </div></li>
9242      
9243        <li
9244          role="presentation"
9245          class="menu-list__list-item"
9246          on:focus="/activate"
9247          on:blur="/deactivate"
9248          on:pointerenter="/activate"
9249          on:pointerleave="/deactivate"
9250        >
9251          <a
9252            href="/collections/tnbl-sale"
9253            data-skip-node-update="true"
9254            class="menu-list__link"ref="menuitem"
9255          >
9256            <span class="menu-list__link-title">Sale</span>
9257          </a></li>
9258      
9259      <li
9260        class="menu-list__list-item"
9261        role="presentation"
9262        slot="more"
9263        on:focus="/activate"
9264        on:blur="/deactivate"
9265        on:pointerenter="/activate"
9266        on:pointerleave="/deactivate"
9267      >
9268        <button role="menuitem" class="button menu-list__link button-unstyled">
9269          <span class="menu-list__link-title">More</span>
9270        </button>
9271      </li>
9272    
9273</overflow-list>
9274
9275          </div>
9276        </nav>
9277      </div>
9278
9279      
9279<script
9280        src="//www.tnbl.co.uk/cdn/shop/t/6/assets/header-menu.js?v=32392277473258403531774530326"
9281        type="module"
9282        fetchpriority="low"
9283      ></script>
9283
9284    </header-menu>
9285
9286
9287
9288
9289
9290
9291            
9292        
9293      
9294    </div><div
9295      class="header__column header__column--right"
9296      data-testid="header-top-right"
9297    >
9298      
9299        
9300          
9301              
9302  
9303  
9304
9305            
9306        
9307      
9308        
9309          
9310              
9311  <search-button class="search-action mobile:hidden">
9312    <button
9313      on:click="#search-modal/showDialog"
9314      class="button button-unstyled search-modal__button header-actions__action"
9315      aria-label="Search"
9316      aria-haspopup="dialog"
9317    >
9318      <span
9319        aria-hidden="true"
9320        class="svg-wrapper"
9321      >
9322        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9323<path d="M19.1361 20L11.4929 12.3568C10.8825 12.8764 10.1807 13.2786 9.38723 13.5634C8.59379 13.8483 7.79649 13.9907 6.99533 13.9907C5.04023 13.9907 3.38552 13.3139 2.03119 11.9604C0.677063 10.6069 0 8.95318 0 6.9993C0 5.04522 0.676758 3.39009 2.03027 2.03393C3.38379 0.677977 5.03748 0 6.99136 0C8.94545 0 10.6006 0.677063 11.9567 2.03119C13.3127 3.38552 13.9907 5.04023 13.9907 6.99533C13.9907 7.84349 13.8404 8.66429 13.5399 9.45772C13.2394 10.2512 12.8451 10.9295 12.3568 11.4929L20 19.1364L19.1361 20ZM6.99533 12.77C8.61495 12.77 9.9823 12.2125 11.0974 11.0974C12.2125 9.9825 12.77 8.61515 12.77 6.99533C12.77 5.37551 12.2125 4.00816 11.0974 2.89328C9.9823 1.7782 8.61495 1.22067 6.99533 1.22067C5.37551 1.22067 4.00816 1.7782 2.89328 2.89328C1.7782 4.00816 1.22067 5.37551 1.22067 6.99533C1.22067 8.61515 1.7782 9.9825 2.89328 11.0974C4.00816 12.2125 5.37551 12.77 6.99533 12.77Z" fill="#111111"/>
9324</svg>
9325
9326      </span>
9327    </button>
9328  </search-button>
9329
9330
9331
9332
9333            
9334        
9335      
9336        
9337          
9338              
9338<script
9339  type="module"
9340  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/cart-icon.js?v=157241182139685326961774530324"
9341  fetchpriority="low"
9342></script>
9342
9343
9344
9345
9346<header-actions>
9347  <button
9348    class="st-wishlist-details-button st-wishlist-details-button--header-icon header-actions__action"
9349    data-type="manually"
9350    title="Open Wishlist Details"
9351    aria-label="Open Wishlist Details"
9352  >
9353    <span
9354      class="svg-wrapper st-wishlist-icon"
9355      aria-hidden="true"
9356    >
9357      <svg width="22" height="20" viewBox="0 0 22 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9358<path d="M11 20L10.0739 19.1446C8.0792 17.2813 6.42919 15.6863 5.12386 14.3598C3.81873 13.033 2.7885 11.8629 2.03317 10.8496C1.27783 9.83634 0.750139 8.91947 0.450083 8.09904C0.150028 7.27881 0 6.4537 0 5.62368C0 4.03426 0.528102 2.69968 1.58431 1.61993C2.64031 0.539977 3.94554 0 5.5 0C6.57494 0 7.58328 0.281184 8.525 0.843552C9.46672 1.40592 10.2917 2.22385 11 3.29735C11.7083 2.22385 12.5333 1.40592 13.475 0.843552C14.4167 0.281184 15.4251 0 16.5 0C18.0545 0 19.3597 0.539977 20.4157 1.61993C21.4719 2.69968 22 4.03426 22 5.62368C22 6.4537 21.85 7.27881 21.5499 8.09904C21.2499 8.91947 20.7222 9.83634 19.9668 10.8496C19.2115 11.8629 18.1851 13.033 16.8878 14.3598C15.5904 15.6863 13.9365 17.2813 11.9261 19.1446L11 20ZM11 18.3082C12.9556 16.5009 14.5648 14.9528 15.8278 13.664C17.0907 12.3749 18.0889 11.2565 18.8222 10.3088C19.5556 9.36114 20.0648 8.52165 20.35 7.79036C20.6352 7.05887 20.7778 6.33664 20.7778 5.62368C20.7778 4.37397 20.3704 3.33255 19.5556 2.49941C18.7407 1.66628 17.7222 1.24971 16.5 1.24971C15.5269 1.24971 14.6291 1.5337 13.8065 2.1017C12.9838 2.66969 12.2473 3.5248 11.5971 4.66703H10.4029C9.73704 3.50876 8.99668 2.64959 8.18186 2.08951C7.36705 1.52964 6.47309 1.24971 5.5 1.24971C4.29346 1.24971 3.27882 1.66628 2.45606 2.49941C1.6335 3.33255 1.22222 4.37397 1.22222 5.62368C1.22222 6.33664 1.36481 7.05887 1.65 7.79036C1.93519 8.52165 2.44444 9.36114 3.17778 10.3088C3.91111 11.2565 4.90926 12.3708 6.17222 13.6518C7.43518 14.9327 9.04444 16.4849 11 18.3082Z" fill="#111111"/>
9359</svg>
9360
9361    </span>
9362  </button>
9363
9364  
9365    
9365<script
9366      src="//www.tnbl.co.uk/cdn/shop/t/6/assets/dialog.js?v=61774032287387761671774530324"
9367      type="module"
9368    ></script>
9368
9369
9370    <anchored-popover-component
9371      data-close-on-resize="true"
9372      class="account-popover mobile:hidden"
9373    >
9374      <button
9375  class="account-button header-actions__action"
9376  aria-label="Account"
9377  aria-haspopup="dialog"popovertarget="account-popover"
9378    popovertargetaction="toggle"ref="trigger"
9379  
9380><span
9381      class="account-button__icon"
9382      aria-hidden="true"
9383    ><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9384<path d="M10.5 9.06961C9.2625 9.06961 8.20312 8.62558 7.32188 7.73751C6.44063 6.84944 6 5.78188 6 4.5348C6 3.28773 6.44063 2.22016 7.32188 1.3321C8.20312 0.444033 9.2625 0 10.5 0C11.7375 0 12.7969 0.444033 13.6781 1.3321C14.5594 2.22016 15 3.28773 15 4.5348C15 5.78188 14.5594 6.84944 13.6781 7.73751C12.7969 8.62558 11.7375 9.06961 10.5 9.06961ZM0 20V17.5115C0 16.8875 0.18025 16.3036 0.54075 15.76C0.9015 15.2165 1.38662 14.7945 1.99612 14.494C3.41162 13.81 4.828 13.2969 6.24525 12.9548C7.6625 12.6129 9.08075 12.442 10.5 12.442C11.9193 12.442 13.3375 12.6129 14.7548 12.9548C16.172 13.2969 17.5884 13.81 19.0039 14.494C19.6134 14.7945 20.0985 15.2165 20.4593 15.76C20.8198 16.3036 21 16.8875 21 17.5115V20H0ZM1.5 18.4884H19.5V17.5115C19.5 17.1762 19.3927 16.8613 19.1782 16.5668C18.964 16.2723 18.6674 16.0232 18.2884 15.8197C17.0539 15.217 15.781 14.7554 14.4698 14.4347C13.1585 14.1139 11.8353 13.9536 10.5 13.9536C9.16475 13.9536 7.8415 14.1139 6.53025 14.4347C5.219 14.7554 3.94613 15.217 2.71163 15.8197C2.33262 16.0232 2.036 16.2723 1.82175 16.5668C1.60725 16.8613 1.5 17.1762 1.5 17.5115V18.4884ZM10.5 7.55801C11.325 7.55801 12.0312 7.26199 12.6188 6.66994C13.2063 6.0779 13.5 5.36619 13.5 4.5348C13.5 3.70342 13.2063 2.99171 12.6188 2.39967C12.0312 1.80762 11.325 1.5116 10.5 1.5116C9.675 1.5116 8.96875 1.80762 8.38125 2.39967C7.79375 2.99171 7.5 3.70342 7.5 4.5348C7.5 5.36619 7.79375 6.0779 8.38125 6.66994C8.96875 7.26199 9.675 7.55801 10.5 7.55801Z" fill="#111111"/>
9385</svg>
9386</span></button>
9387
9388
9389
9390      <div
9391        class="account-popover__panel details-content color-scheme-1"
9392        id="account-popover"
9393        popover="auto"
9394        ref="popover"
9395      >
9396        <div class="account-actions">
9397  <div class="account-actions__main-menu">
9398    <header class="account-actions__header">
9399      <h2
9400        id="account-drawer-heading"
9401        class="account-actions__title h5"
9402      >
9403        
9404          Account
9405        
9406      </h2>
9407      
9408    </header>
9409
9410    
9411      <div
9412        class="account-actions__sign-ins"
9413        data-skip-subtree-update="true"
9414      >
9415        
9415<script
9416          src="//www.tnbl.co.uk/cdn/shop/t/6/assets/account-login-actions.js?v=132624473766457443991774530324"
9417          type="module"
9418          fetchpriority="low"
9419        ></script>
9419
9420        <account-login-actions class="account-actions__shop-login">
9421          
9421<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-login-button.en.esm.js"></script>
vendor: 1 bytes, line 9421
9421
9422<script type="module">
9423  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-login-button.en.esm.js");
9424
9425  
9426</script>
9426
9427
9428<shop-login-button ux-mode="windoid" return-uri="https://www.tnbl.co.uk/account/redirect" proxy="true" proxy-core-idp="true" redirect-type="iframe" response-type="code"></shop-login-button>
9429
9430        </account-login-actions>
9431
9432        <a
9433          href="/customer_authentication/login?return_to=%2F&locale=en&ui_hint=full&region_country=GB"
9434          class="account-actions__link button"
9435        >
9436          <span class="account-actions__sign-in-text">
9437            Other sign in options
9438          </span>
9439          <span class="account-actions__fallback-text">
9440            Sign in
9441          </span>
9442        </a>
9443      </div>
9444    
9445
9446    <nav class="account-actions__nav">
9447      <ul class="account-actions__list">
9448        <li class="account-actions__list-item">
9449          <a
9450            href="/account"
9451            class="account-actions__link button-secondary"
9452          >
9453            <span
9454              class="account-actions__icon"
9455              aria-hidden="true"
9456            ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none">
9457  <path stroke-linecap="round" stroke="currentColor" stroke-width="var(--icon-stroke-width)" d="M2.929 7.705c0-.482.154-.95.44-1.338L5.06 4.08c.303-.41.783-.652 1.293-.652h7.42c.525 0 1.018.257 1.319.69l1.577 2.266c.262.377.403.826.403 1.285v8.294c0 .888-.72 1.608-1.608 1.608H4.536c-.888 0-1.607-.72-1.607-1.608V7.705Z"/>
9458  <path stroke="currentColor" stroke-width="var(--icon-stroke-width)" d="M2.929 6.965h14.143M10 3.428v3.535M6.143 14.035v-2.571c0-.178.143-.321.321-.321h3.857c.178 0 .322.143.322.321v2.571a.321.321 0 0 1-.322.322H6.464a.321.321 0 0 1-.321-.322Z"/>
9459</svg>
9460</span>
9461            Orders
9462          </a>
9463        </li>
9464        <li class="account-actions__list-item">
9465          <a
9466            href="/account/addresses"
9467            class="account-actions__link button-secondary"
9468          >
9469            <span
9470              class="account-actions__icon"
9471              aria-hidden="true"
9472            ><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9473<path d="M10.5 9.06961C9.2625 9.06961 8.20312 8.62558 7.32188 7.73751C6.44063 6.84944 6 5.78188 6 4.5348C6 3.28773 6.44063 2.22016 7.32188 1.3321C8.20312 0.444033 9.2625 0 10.5 0C11.7375 0 12.7969 0.444033 13.6781 1.3321C14.5594 2.22016 15 3.28773 15 4.5348C15 5.78188 14.5594 6.84944 13.6781 7.73751C12.7969 8.62558 11.7375 9.06961 10.5 9.06961ZM0 20V17.5115C0 16.8875 0.18025 16.3036 0.54075 15.76C0.9015 15.2165 1.38662 14.7945 1.99612 14.494C3.41162 13.81 4.828 13.2969 6.24525 12.9548C7.6625 12.6129 9.08075 12.442 10.5 12.442C11.9193 12.442 13.3375 12.6129 14.7548 12.9548C16.172 13.2969 17.5884 13.81 19.0039 14.494C19.6134 14.7945 20.0985 15.2165 20.4593 15.76C20.8198 16.3036 21 16.8875 21 17.5115V20H0ZM1.5 18.4884H19.5V17.5115C19.5 17.1762 19.3927 16.8613 19.1782 16.5668C18.964 16.2723 18.6674 16.0232 18.2884 15.8197C17.0539 15.217 15.781 14.7554 14.4698 14.4347C13.1585 14.1139 11.8353 13.9536 10.5 13.9536C9.16475 13.9536 7.8415 14.1139 6.53025 14.4347C5.219 14.7554 3.94613 15.217 2.71163 15.8197C2.33262 16.0232 2.036 16.2723 1.82175 16.5668C1.60725 16.8613 1.5 17.1762 1.5 17.5115V18.4884ZM10.5 7.55801C11.325 7.55801 12.0312 7.26199 12.6188 6.66994C13.2063 6.0779 13.5 5.36619 13.5 4.5348C13.5 3.70342 13.2063 2.99171 12.6188 2.39967C12.0312 1.80762 11.325 1.5116 10.5 1.5116C9.675 1.5116 8.96875 1.80762 8.38125 2.39967C7.79375 2.99171 7.5 3.70342 7.5 4.5348C7.5 5.36619 7.79375 6.0779 8.38125 6.66994C8.96875 7.26199 9.675 7.55801 10.5 7.55801Z" fill="#111111"/>
9474</svg>
9475</span>
9476            Profile
9477          </a>
9478        </li>
9479      </ul>
9480    </nav>
9481  </div>
9482</div>
9483
9484
9485
9486      </div>
9487    </anchored-popover-component>
9488
9489    <dialog-component
9490      class="account-drawer"
9491      
9492    >
9493      <button
9494  class="account-button header-actions__action"
9495  aria-label="Account"
9496  aria-haspopup="dialog"ref="trigger"
9497  on:click="/showDialog"
9498><span
9499      class="account-button__icon"
9500      aria-hidden="true"
9501    ><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9502<path d="M10.5 9.06961C9.2625 9.06961 8.20312 8.62558 7.32188 7.73751C6.44063 6.84944 6 5.78188 6 4.5348C6 3.28773 6.44063 2.22016 7.32188 1.3321C8.20312 0.444033 9.2625 0 10.5 0C11.7375 0 12.7969 0.444033 13.6781 1.3321C14.5594 2.22016 15 3.28773 15 4.5348C15 5.78188 14.5594 6.84944 13.6781 7.73751C12.7969 8.62558 11.7375 9.06961 10.5 9.06961ZM0 20V17.5115C0 16.8875 0.18025 16.3036 0.54075 15.76C0.9015 15.2165 1.38662 14.7945 1.99612 14.494C3.41162 13.81 4.828 13.2969 6.24525 12.9548C7.6625 12.6129 9.08075 12.442 10.5 12.442C11.9193 12.442 13.3375 12.6129 14.7548 12.9548C16.172 13.2969 17.5884 13.81 19.0039 14.494C19.6134 14.7945 20.0985 15.2165 20.4593 15.76C20.8198 16.3036 21 16.8875 21 17.5115V20H0ZM1.5 18.4884H19.5V17.5115C19.5 17.1762 19.3927 16.8613 19.1782 16.5668C18.964 16.2723 18.6674 16.0232 18.2884 15.8197C17.0539 15.217 15.781 14.7554 14.4698 14.4347C13.1585 14.1139 11.8353 13.9536 10.5 13.9536C9.16475 13.9536 7.8415 14.1139 6.53025 14.4347C5.219 14.7554 3.94613 15.217 2.71163 15.8197C2.33262 16.0232 2.036 16.2723 1.82175 16.5668C1.60725 16.8613 1.5 17.1762 1.5 17.5115V18.4884ZM10.5 7.55801C11.325 7.55801 12.0312 7.26199 12.6188 6.66994C13.2063 6.0779 13.5 5.36619 13.5 4.5348C13.5 3.70342 13.2063 2.99171 12.6188 2.39967C12.0312 1.80762 11.325 1.5116 10.5 1.5116C9.675 1.5116 8.96875 1.80762 8.38125 2.39967C7.79375 2.99171 7.5 3.70342 7.5 4.5348C7.5 5.36619 7.79375 6.0779 8.38125 6.66994C8.96875 7.26199 9.675 7.55801 10.5 7.55801Z" fill="#111111"/>
9503</svg>
9504</span></button>
9505
9506
9507
9508      <dialog
9509        ref="dialog"
9510        class="color-scheme-1 dialog-modal dialog-drawer dialog-bottom-sheet account-drawer__dialog"
9511        scroll-lock
9512        aria-labelledby="account-drawer-heading"
9513      >
9514        <button
9515          ref="closeButton"
9516          on:click="/closeDialog"
9517          class="button button-unstyled close-button account-drawer__close-button"
9518          aria-label="Close dialog"
9519          autofocus
9520        >
9521          <span
9522            class="svg-wrapper"
9523            aria-hidden="true"
9524          ><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
9525  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
9526  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
9527</svg>
9528</span>
9529        </button>
9530        <div class="account-actions">
9531  <div class="account-actions__main-menu">
9532    <header class="account-actions__header">
9533      <h2
9534        id="account-drawer-heading"
9535        class="account-actions__title h5"
9536      >
9537        
9538          Account
9539        
9540      </h2>
9541      
9542    </header>
9543
9544    
9545      <div
9546        class="account-actions__sign-ins"
9547        data-skip-subtree-update="true"
9548      >
9549        
9549<script
9550          src="//www.tnbl.co.uk/cdn/shop/t/6/assets/account-login-actions.js?v=132624473766457443991774530324"
9551          type="module"
9552          fetchpriority="low"
9553        ></script>
9553
9554        <account-login-actions class="account-actions__shop-login">
9555          
9555<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-login-button.en.esm.js"></script>
vendor: 1 bytes, line 9555
9555
9556<script type="module">
9557  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-login-button.en.esm.js");
9558
9559  
9560</script>
9560
9561
9562<shop-login-button ux-mode="windoid" return-uri="https://www.tnbl.co.uk/account/redirect" proxy="true" proxy-core-idp="true" redirect-type="iframe" response-type="code"></shop-login-button>
9563
9564        </account-login-actions>
9565
9566        <a
9567          href="/customer_authentication/login?return_to=%2F&locale=en&ui_hint=full&region_country=GB"
9568          class="account-actions__link button"
9569        >
9570          <span class="account-actions__sign-in-text">
9571            Other sign in options
9572          </span>
9573          <span class="account-actions__fallback-text">
9574            Sign in
9575          </span>
9576        </a>
9577      </div>
9578    
9579
9580    <nav class="account-actions__nav">
9581      <ul class="account-actions__list">
9582        <li class="account-actions__list-item">
9583          <a
9584            href="/account"
9585            class="account-actions__link button-secondary"
9586          >
9587            <span
9588              class="account-actions__icon"
9589              aria-hidden="true"
9590            ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none">
9591  <path stroke-linecap="round" stroke="currentColor" stroke-width="var(--icon-stroke-width)" d="M2.929 7.705c0-.482.154-.95.44-1.338L5.06 4.08c.303-.41.783-.652 1.293-.652h7.42c.525 0 1.018.257 1.319.69l1.577 2.266c.262.377.403.826.403 1.285v8.294c0 .888-.72 1.608-1.608 1.608H4.536c-.888 0-1.607-.72-1.607-1.608V7.705Z"/>
9592  <path stroke="currentColor" stroke-width="var(--icon-stroke-width)" d="M2.929 6.965h14.143M10 3.428v3.535M6.143 14.035v-2.571c0-.178.143-.321.321-.321h3.857c.178 0 .322.143.322.321v2.571a.321.321 0 0 1-.322.322H6.464a.321.321 0 0 1-.321-.322Z"/>
9593</svg>
9594</span>
9595            Orders
9596          </a>
9597        </li>
9598        <li class="account-actions__list-item">
9599          <a
9600            href="/account/addresses"
9601            class="account-actions__link button-secondary"
9602          >
9603            <span
9604              class="account-actions__icon"
9605              aria-hidden="true"
9606            ><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9607<path d="M10.5 9.06961C9.2625 9.06961 8.20312 8.62558 7.32188 7.73751C6.44063 6.84944 6 5.78188 6 4.5348C6 3.28773 6.44063 2.22016 7.32188 1.3321C8.20312 0.444033 9.2625 0 10.5 0C11.7375 0 12.7969 0.444033 13.6781 1.3321C14.5594 2.22016 15 3.28773 15 4.5348C15 5.78188 14.5594 6.84944 13.6781 7.73751C12.7969 8.62558 11.7375 9.06961 10.5 9.06961ZM0 20V17.5115C0 16.8875 0.18025 16.3036 0.54075 15.76C0.9015 15.2165 1.38662 14.7945 1.99612 14.494C3.41162 13.81 4.828 13.2969 6.24525 12.9548C7.6625 12.6129 9.08075 12.442 10.5 12.442C11.9193 12.442 13.3375 12.6129 14.7548 12.9548C16.172 13.2969 17.5884 13.81 19.0039 14.494C19.6134 14.7945 20.0985 15.2165 20.4593 15.76C20.8198 16.3036 21 16.8875 21 17.5115V20H0ZM1.5 18.4884H19.5V17.5115C19.5 17.1762 19.3927 16.8613 19.1782 16.5668C18.964 16.2723 18.6674 16.0232 18.2884 15.8197C17.0539 15.217 15.781 14.7554 14.4698 14.4347C13.1585 14.1139 11.8353 13.9536 10.5 13.9536C9.16475 13.9536 7.8415 14.1139 6.53025 14.4347C5.219 14.7554 3.94613 15.217 2.71163 15.8197C2.33262 16.0232 2.036 16.2723 1.82175 16.5668C1.60725 16.8613 1.5 17.1762 1.5 17.5115V18.4884ZM10.5 7.55801C11.325 7.55801 12.0312 7.26199 12.6188 6.66994C13.2063 6.0779 13.5 5.36619 13.5 4.5348C13.5 3.70342 13.2063 2.99171 12.6188 2.39967C12.0312 1.80762 11.325 1.5116 10.5 1.5116C9.675 1.5116 8.96875 1.80762 8.38125 2.39967C7.79375 2.99171 7.5 3.70342 7.5 4.5348C7.5 5.36619 7.79375 6.0779 8.38125 6.66994C8.96875 7.26199 9.675 7.55801 10.5 7.55801Z" fill="#111111"/>
9608</svg>
9609</span>
9610            Profile
9611          </a>
9612        </li>
9613      </ul>
9614    </nav>
9615  </div>
9616</div>
9617
9618
9619
9620      </dialog>
9621    </dialog-component>
9622  
9623
9624  
9625    <a
9626      href="/cart"
9627      class="header-actions__action action__cart"
9628      aria-label="Cart"
9629      aria-describedby="cart-bubble-text"
9630    >
9631      
9632  <cart-icon
9633    class="
9634      header-actions__cart-icon
9635      
9636    "
9637    data-testid="cart-icon"
9638  >
9639    <span
9640      class="svg-wrapper"
9641      aria-hidden="true"
9642    >
9643      <svg width="16" height="20" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">
9644<path d="M1.84629 20C1.32019 20 0.880952 19.8287 0.528571 19.4861C0.17619 19.1435 0 18.7165 0 18.205V6.23944C0 5.72796 0.17619 5.30093 0.528571 4.95833C0.880952 4.61574 1.32019 4.44444 1.84629 4.44444H4V3.88889C4 2.80907 4.38905 1.89102 5.16714 1.13472C5.94505 0.37824 6.88933 0 8 0C9.11067 0 10.055 0.37824 10.8329 1.13472C11.611 1.89102 12 2.80907 12 3.88889V4.44444H14.1537C14.6798 4.44444 15.119 4.61574 15.4714 4.95833C15.8238 5.30093 16 5.72796 16 6.23944V18.205C16 18.7165 15.8238 19.1435 15.4714 19.4861C15.119 19.8287 14.6798 20 14.1537 20H1.84629ZM1.84629 18.8889H14.1537C14.3297 18.8889 14.491 18.8177 14.6374 18.6753C14.7839 18.5329 14.8571 18.3761 14.8571 18.205V6.23944C14.8571 6.06833 14.7839 5.91157 14.6374 5.76917C14.491 5.62676 14.3297 5.55556 14.1537 5.55556H12V8.33333C12 8.49148 11.9454 8.62361 11.8363 8.72972C11.7271 8.83583 11.5912 8.88889 11.4286 8.88889C11.2659 8.88889 11.13 8.83583 11.02
964409 8.72972C10.9117 8.62361 10.8571 8.49148 10.8571 8.33333V5.55556H5.14286V8.33333C5.14286 8.49148 5.08829 8.62361 4.97914 8.72972C4.87 8.83583 4.7341 8.88889 4.57143 8.88889C4.40876 8.88889 4.27286 8.83583 4.16371 8.72972C4.05457 8.62361 4 8.49148 4 8.33333V5.55556H1.84629C1.67029 5.55556 1.50905 5.62676 1.36257 5.76917C1.2161 5.91157 1.14286 6.06833 1.14286 6.23944V18.205C1.14286 18.3761 1.2161 18.5329 1.36257 18.6753C1.50905 18.8177 1.67029 18.8889 1.84629 18.8889ZM5.14286 4.44444H10.8571V3.88889C10.8571 3.10685 10.5821 2.44833 10.032 1.91333C9.48171 1.37852 8.80438 1.11111 8 1.11111C7.19562 1.11111 6.51829 1.37852 5.968 1.91333C5.4179 2.44833 5.14286 3.10685 5.14286 3.88889V4.44444Z" fill="#111111"/>
9645</svg>
9646
9647    </span>
9648
9649    <div
9650  ref="cartBubble"
9651  class="cart-bubble visually-hidden"
9652  
9653  
9654    data-maintain-ratio
9655  
9656>
9657  <span class="cart-bubble__background"></span>
9658  <span
9659    ref="cartBubbleText"
9660    id="cart-bubble-text"
9661    class="cart-bubble__text"
9662    
9663      role="status"
9664    
9665  >
9666    <span class="visually-hidden">Total items in cart: 0
9667    </span>
9668    <span
9669      class="cart-bubble__text-count hidden"
9670      ref="cartBubbleCount"
9671      aria-hidden="true"
9672      data-testid="cart-bubble"
9673    >
96740</span>
9675  </span>
9676</div>
9677
9678  </cart-icon>
9679
9680    </a>
9681  
9682</header-actions>
9683
9684
9685
9686          
9687        
9688      
9689    </div>
9690        </div>
9691      </div>
9692    
9693  
9694    
9695
9696    
9697
9698    
9699    
9700  
9701
9702  
9703</header-component>
9704
9705<script
9706  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/header.js?v=155792906110242140481774530326"
9707  type="module"
9708></script>
9708
9709
9710
9711
9712
9713  
9713<script type="module">
9714    import { hydrate } from '@theme/section-hydration';
9715    const url = new URL(window.location.href);
9716    url.searchParams.delete('page');
9717    hydrate('sections--28213213561178__header_section', url);
9718  </script>
9718
9719
9720
9721
9722</header>
9723<!-- END sections: header-group -->
9724    </div>
9725
9726    
9726<script>
9727      // Inline header height calculation to prevent layout shift
9728      // Note: Updates in calculateHeaderGroupHeight() and updateTransparentHeaderOffset()utilities.js should be kept in sync with this function
9729      (function setHeaderHeighCustomProperties() {
9730        /*
9731         * Header calculation functions for maintaining CSS variables
9732         * Mimic calculateHeaderGroupHeight() in utilities.js
9733         */
9734        const header = document.querySelector('header-component');
9735        const headerGroup = document.querySelector('#header-group');
9736        const hasHeaderSection = headerGroup?.querySelector('.header-section');
9737
9738        if (!header || !headerGroup) return;
9739
9740        const headerHeight = header.offsetHeight;
9741
9742        // Calculate the total height of the header group
9743        let headerGroupHeight = 0;
9744        const children = headerGroup.children;
9745        for (let i = 0; i < children.length; i++) {
9746          const element = children[i];
9747          if (element === header || !(element instanceof HTMLElement)) continue;
9748          headerGroupHeight += element.offsetHeight;
9749        }
9750
9751        // Check for transparent header special case
9752        if (header.hasAttribute('transparent') && header.parentElement?.nextElementSibling) {
9753          headerGroupHeight += headerHeight;
9754        }
9755
9756        // Set CSS variables
9757        document.body.style.setProperty('--header-height', `${headerHeight}px`);
9758        document.body.style.setProperty('--header-group-height', `${headerGroupHeight}px`);
9759
9760        /**
9761         * Updates CSS custom properties for transparent header offset calculation
9762         * Mimic updateTransparentHeaderOffset() in utilities.js
9763         */
9764
9765        if (!hasHeaderSection || !header?.hasAttribute('transparent')) {
9766          document.body.style.setProperty('--transparent-header-offset-boolean', '0');
9767          return;
9768        }
9769
9770        const hasImmediateSection = hasHeaderSection.nextElementSibling?.classList.contains('shopify-section');
9771
9772        const shouldApplyOffset = !hasImmediateSection ? '1' : '0';
9773        document.body.style.setProperty('--transparent-header-offset-boolean', shouldApplyOffset);
9774      })();
9775    </script>
9775
9776
9777    <main
9778      id="MainContent"
9779      class="content-for-layout"
9780      role="main"
9781      data-page-transition-enabled="true"
9782      data-product-transition="true"
9783      data-template="index"
9784    >
9785      <div id="shopify-section-template--28213213921626__1791215612c0a88329" class="shopify-section section-wrapper">
9786
9787
9788
9789<div class="section-background color-scheme-1"></div>
9790<div
9791  class="section section--page-width color-scheme-1"
9792  data-testid="ui-test-section"
9793
9794  
9795
9796  style="
9797    
9798
9799    
9800  "
9801>
9802  <div class="custom-section-background">
9803    
9804
9805
9806
9807  </div>
9808
9809  <div
9810    class="border-style custom-section-content"
9811    style="--border-width: 1px; --border-style: none; --border-color:
9812rgb(var(--color-border-rgb) / 1.0); --border-radius:
98130px; 
9814"
9815  >
9816    
9817
9818    <div
9819      class="
9820        spacing-style
9821        layout-panel-flex
9822        layout-panel-flex--column
9823        section-content-wrapper
9824         mobile-column
9825      "
9826      style="
9827        --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
9828
9829--gap: 12px;
9830
9831--horizontal-alignment: flex-start; --vertical-alignment: center;
9832--vertical-alignment-mobile: center;
9833
9834        --padding-block-start: 0px;--padding-block-end: 0px;
9835      "
9836      data-testid="section-content"
9837    >
9838      
9839  
9840
9841<style data-shopify>
9842.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv{display:block;width:100%}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__viewport{position:relative;width:100%;max-width:100%;overflow:hidden;background:#eee9df}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide{display:none;position:relative;width:100%;height:600px;color:#000000}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide.is-active{display:block}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__media,.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__shade{position:absolute;inset:0}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__media img,.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__placeholder svg{display:block;width:100%;height:100%;object-fit:cover}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__shade{background:rgba(0,0,0,0.05)}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__placeholder{height:100%}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__empty{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);color:#333;background:#fff;padding:8px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content{position:absolute;z-index:1;display:flex;flex-direction:column;gap:12px;max-width:80%;padding:clamp(20px,5vw,64px)}
9843.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-1 .ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content{text-align:left;top:0;left:0;}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-2 .ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content{text-align:left;top:0;left:0;}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-3 .ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content{text-align:left;top:0;left:0;}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-4 .ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content{text-align:left;top:0;left:0;}
9844.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__heading{margin:0;font-family:Cormorant,serif;font-size:50px;line-height:1.1}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text{font-family:"Mona Sans",sans-serif;font-size:18px;line-height:1.5}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text p{margin:0}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__button{display:inline-flex;width:fit-content;padding:12px 24px;background:#ac9669;color:#ffffff;text-decoration:none}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid #fff;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;cursor:pointer}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow--prev{left:16px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow--next{right:16px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dots{position:absolute;z-index:3;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot{width:12px;height:12px;border:1px solid #fff;border-radius:50%;background:transparent}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot[aria-current=true]{background:#fff}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__button:focus-visible,.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow:focus-visible,.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot:focus-visible{outline:2px solid currentColor;outline-offset:3px}@media(max-width:749px){.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__viewport{width:100%}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide{height:400px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content{max-width:92%;padding:22px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__heading{font-size:18px}.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text{font-size:12px}}
9845</style>
9846<final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv" data-autoplay="false" data-interval="5" ><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__viewport" aria-roledescription="carousel">
9847<div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-1 is-active" ><a href="https://www.tnbl.co.uk/products/apres-nova-led-lamp-mini?_pos=2&_psq=nova&_psid=4f35e873a&_ss=e" aria-label="High Standards.                                                                                                                                                                                                                                                                                                                                           Mini Nova." style="position:absolute;inset:0;z-index:0"></a><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__media"><picture><source media="(max-width:749px)" srcset="//www.tnbl.co.uk/cdn/shop/files/Get_a_FREE_Extend_Gel_Set_with_every_Mini_Nova_LED_Lamp_while_stocks_last_3.png?v=1791471296&width=1000"><img src="//www.tnbl.co.uk/cdn/shop/files/High_Standards._Mini_Nova._1600_x_8
984700_px_1.png?v=1791471034&width=2400" alt="High Standards.                                                                                                                                                                                                                                                                                                                                           Mini Nova." loading="lazy" width="1600" height="800"></picture></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__shade"></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content"><h2 class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__heading">High Standards.                                                                                                                                                                                                                                                                                                                                           Mini Nova.</h2><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text"><p><br/>45 dual-wavelength LEDs,&nbsp;<br/>Low Heat Mode, Auto-Sensor, & more—built for every station.<br/><br/>Get a FREE Extend Gel Set with every<br/>Mini Nova LED Lamp — while stocks last!<br/><br/><br/></p></div><a class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__button" href="https://www.tnbl.co.uk/products/apres-nova-led-lamp-mini?_pos=2&_psq=nova&_psid=4f35e873a&_ss=e">Shop Mini Nova</a></div></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-2" hidden><a href="/collections/opi-gelcolor-intelli-gel" aria-label="OPI INTELLI-GEL" style="position:absolute;inset:0;z-index:0"></a><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__media"><picture><source media="(max-width:749px)" srcset="//www.tnbl.co.uk/cdn/shop/files/opi_intelli-gel.jpg?v=1791231412&width=1000"><img src="//www.tnbl.co.uk/cdn/shop/files/opi_intelli-gel_banner.jpg?v=1791231387&width=2400" alt="OPI INTELLI-GEL" loading="lazy" width="1600" height="800"></picture></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__shade"></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content"><h2 class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__heading">OPI INTELLI-GEL</h2><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text"><p>BOLD COLOURS. MODERN SHINE.<br/></p></div><a class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__button" href="/collections/opi-gelcolor-intelli-gel">shop now.</a></div></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-3" hidden><a href="/products/onail-nail-drill-pro-max" aria-label="King of Nail Drills" style="position:absolute;inset:0;z-index:0"></a><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__media"><picture><source media="(max-width:749px)" srcset="//www.tnbl.co.uk/cdn/shop/files/Minimalist_ONAIL_Nail_Device_Studio_Shot.png?v=1791230775&width=1000"><img src="//www.tnbl.co.uk/cdn/shop/files/onail_banner_2.jpg?v=1783521723&width=2400" alt="King of Nail Drills" loading="lazy" width="1869" height="842"></picture></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__shade"></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content"><h2 class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__heading">King of Nail Drills</h2><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text"><p>Up to 50,000 RPM</p><p>Ultra-Low Vibration</p><p>Quieter Performance</p><p>Cordless & Rechargeable</p><p></p></div><a class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__button" href="/products/onail-nail-drill-pro-max">shop now.</a></div></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide-4" hidden><a href="/collections/soft-gel-builders" aria-label="COLOR SOFT GEL BUILDER" style="position:absolute;inset:0;z-index:0"></a><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__media"><picture><source media="(max-width:749px)" srcset="//www.tnbl.co.uk/cdn/shop/files/Pastel_Pink_Gel_Polish_Collection.png?v=1791231165&width=1000"><img src="//www.tnbl.co.uk/cdn/shop/files/Apres_ColorSoftGelBuilder_LifestylePhotos162.jpg?v=1791231152&width=2400" alt="COLOR SOFT GEL BUILDER" loading="lazy" width="2500" height="1280"></picture></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__shade"></div><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__content"><h2 class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__heading">COLOR SOFT GEL BUILDER</h2><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__text"><p>Available in 5 colors</p></div><a class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__button" href="/collections/soft-gel-builders">shop now.</a></div></div>
9848<button class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow--prev" aria-label="Previous slide" type="button">‹</button><button class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow--next" aria-label="Next slide" type="button">›</button><div class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dots" role="group" aria-label="Cho
9848ose slide"><button class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot" type="button" data-dot="0" aria-label="Go to slide 1" aria-current="true"></button><button class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot" type="button" data-dot="1" aria-label="Go to slide 2" ></button><button class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot" type="button" data-dot="2" aria-label="Go to slide 3" ></button><button class="ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot" type="button" data-dot="3" aria-label="Go to slide 4" ></button></div></div></final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv>
9849<script>(function(){const n='final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv';if(customElements.get(n))return;class S extends HTMLElement{connectedCallback(){this.s=[...this.querySelectorAll('.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__slide')];this.d=[...this.querySelectorAll('.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__dot')];this.i=0;this.querySelector('.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow--prev')?.addEventListener('click',()=>this.show(this.i-1));this.querySelector('.ai-final-slideshow-asgh6cjh3n2twvgxttaigenblock0f1f114bfjyzv__arrow--next')?.addEventListener('click',()=>this.show(this.i+1));this.d.forEach(x=>x.addEventListener('click',()=>this.show(+x.dataset.dot)));if(this.dataset.autoplay==='true'&&this.s.length>1&&!matchMedia('(prefers-reduced-motion: reduce)').matches)this.timer=setInterval(()=>this.show(this.i+1),+this.dataset.interval*1000)}disconnectedCallback(){clearInterval(this.timer)}show(i){this.i=(i+this.s.length)%this.s.length;this.s.forEach((x,j)=>{x.hidden=j!==this.i;x.classList.toggle('is-active',j===this.i)});this.d.forEach((x,j)=>j===this.i?x.setAttribute('aria-current','true'):x.removeAttribute('aria-current'))}}customElements.define(n,S)})();</script>
9849
9850
9851
9852    </div>
9853  </div>
9854</div>
9855
9856
9857
9858
9859
9860</div><div id="shopify-section-template--28213213921626__collection_list_dEADaM" class="shopify-section ui-test-collection-list">
9861
9862
9863
9864<div class="section-background color-scheme-1"></div>
9865
9866<div
9867  class="
9868    section
9869    section--page-width
9870    color-scheme-1
9871    section-resource-list
9872    section-collection-list
9873    spacing-style
9874    gap-style
9875    
9876  "
9877  style="
9878    --padding-block-start: max(20px, calc(var(--spacing-scale) * 50px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 25px));
9879    --gap: 12px;
9880  "
9881  id="collection-list-template--28213213921626__collection_list_dEADaM"
9882  data-testid="collection-list"
9883  data-collection-card-reveal-enabled="false"
9884  data-collection-card-reveal-stagger-ms="100"
9885  data-mobile-columns="2"
9886  data-mobile-card-size="60cqw"
9887>
9888  <div class="section-resource-list__content"></div>
9889
9890  
9891
9892  
9893
9894  
9895
9896  
9897
9898<div
9899  class="
9900    resource-list
9901    
9902    
9903    resource-list--grid
9904  "
9905  style="--resource-list-column-gap-desktop: 24px;--resource-list-row-gap-desktop: 8px;--resource-list-columns: repeat(6, 1fr);--resource-list-columns-tablet: repeat(3, 1fr);--resource-list-columns-mobile: repeat(2, 1fr);--column-count-mobile: 2;"
9906  
9907    data-testid="collections-list-grid"
9908  
9909>
9910  
9911      
9912    
9913      <div
9914        class="resource-list__item"
9915        
9916      >
9917        
9918
9919
9920
9921
9922
9923
9924
9925<style data-shopify>
9926  
9927</style>
9928
9929
9930
9931<div
9932  class="
9933    collection-card
9934    border-style
9935    
9936    
9937    
9938    
9939  "
9940  data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card"
9941  
9942  style="
9943    --border-width: 1px; --border-style: none; --border-color:
9944rgb(var(--color-border-rgb) / 1.0); --border-radius:
994512px;  overflow: hidden; 
9946
9947    --horizontal-alignment: flex-start;
9948    --vertical-alignment: flex-start;
9949    --background-overlay-color: ;
9950    --gap: 8px;
9951  ">
9952  <a
9953    class="collection-card__link"
9954    
9955      href="/collections/apres"
9956    
9957  >
9958    <span class="visually-hidden">Apres</span>
9959  </a>
9960  <div class="collection-card__inner">
9961    
9962  
9963
9964
9965
9966
9967
9968<style data-shopify>
9969  
9970    .collection-card[data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card"] {
9971      --ratio: 1.375;
9972    }
9973    
9974  
9975</style>
9976
9977
9978  <div
9979    class="
9980      image-block
9981      resource-image
9982      
9983      
9984        collection-card__image
9985      
9986      spacing-style border-style
9987      
9988    "
9989    style="--border-width: 1px; --border-style: none; --border-color:
9990rgb(var(--color-border-rgb) / 1.0); --border-radius:
99910px; 
9992"
9993    
9994  >
9995      <img src="//www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=3840" alt="Apres" srcset="//www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/collections/ApresNails_60496a8d-449e-40fe-91eb-59e7e00d25b5.png?v=1770738257&amp;width=3840 3840w" width="3840" height="2793" loading="eager" class="image-block__image" sizes="(min-width: 750px) 16vw, 100vw">
9996    
9997  </div>
9998
9999
10000
10001
10002
10003
10004
10005
10006    <div class="collection-card__content layout-panel-flex--column">
10007      
10008  
10009
10010
10011
10012<div class="collection-title-wrapper collection-title-wrapper--arrow-on-mobile">
10013  
10014    
10015    
10016
10017
10018
10019
10020
10021
10022  
10023    <div class=" spacing-style text-block text-block--ARlJ4VmczaVlJelhka__collection_title_zD33z9 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:4px; --padding-inline-start:8px; --padding-inline-end:4px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
10024      <p>Apres</p>
10025    </div>
10026  
10027
10028
10029
10030
10031<script type="module">
10032  class TextReadMoreWrapper extends HTMLElement {
10033    #expanded = false;
10034    #animation = null;
10035    #collapsedHeight = 0;
10036
10037    connectedCallback() {
10038      const content = this.querySelector('.text-read-more__content');
10039      const textElement = this.querySelector('.text-read-more__text');
10040      const button = this.querySelector('.text-read-more__button');
10041
10042      if (!content || !textElement || !button) return;
10043
10044      // Set initial state
10045      this.dataset.expanded = 'false';
10046
10047      // Wait for content to render - use double RAF to ensure layout is complete
10048      requestAnimationFrame(() => {
10049        requestAnimationFrame(() => {
10050          // Additional small delay to ensure fonts and styles are applied
10051          setTimeout(() => {
10052            this.#checkOverflow(content, textElement, button);
10053          }, 50);
10054          
10055          // Recheck on resize
10056          const resizeObserver = new ResizeObserver(() => {
10057            if (!this.#expanded) {
10058              this.#checkOverflow(content, textElement, button);
10059            }
10060          });
10061          resizeObserver.observe(content);
10062
10063          // Setup button click handler
10064          button.addEventListener('click', (e) => {
10065            e.preventDefault();
10066            this.#toggle(content, textElement, button);
10067          });
10068        });
10069      });
10070    }
10071
10072    #checkOverflow(content, textElement, button) {
10073      // Ensure collapsed state is applied
10074      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
10075        textElement.classList.add('text-read-more__text--collapsed');
10076      }
10077      
10078      // Get collapsed height first
10079      const collapsedHeight = content.scrollHeight;
10080      this.#collapsedHeight = collapsedHeight;
10081      
10082      // Temporarily remove line-clamp to measure full height
10083      textElement.classList.remove('text-read-more__text--collapsed');
10084      
10085      // Force reflow
10086      void content.offsetHeight;
10087      
10088      const fullHeight = content.scrollHeight;
10089      
10090      // Restore line-clamp
10091      textElement.classList.add('text-read-more__text--collapsed');
10092      
10093      // Show button if content exceeds 2 lines (with small threshold for rounding)
10094      if (fullHeight > collapsedHeight + 5) {
10095        button.removeAttribute('hidden');
10096      } else {
10097        button.setAttribute('hidden', '');
10098      }
10099    }
10100
10101    #toggle(content, textElement, button) {
10102      const startHeight = content.offsetHeight;
10103      let endHeight;
10104
10105      if (!this.#expanded) {
10106        // Expanding
10107        textElement.classList.remove('text-read-more__text--collapsed');
10108        endHeight = content.scrollHeight;
10109        this.#expanded = true;
10110      } else {
10111        // Collapsing
10112        endHeight = this.#collapsedHeight;
10113        this.#expanded = false;
10114      }
10115
10116      this.dataset.expanded = this.#expanded;
10117      button.setAttribute('aria-expanded', this.#expanded);
10118
10119      // Animate
10120      content.style.overflow = 'hidden';
10121      this.#animation?.cancel();
10122
10123      this.#animation = content.animate(
10124        {
10125          height: [`${startHeight}px`, `${endHeight}px`],
10126        },
10127        {
10128          duration: 300,
10129          easing: 'ease-in-out',
10130        }
10131      );
10132
10133      this.#animation.onfinish = () => {
10134        if (this.#expanded) {
10135          content.style.removeProperty('height');
10136          content.style.overflow = '';
10137        } else {
10138          textElement.classList.add('text-read-more__text--collapsed');
10139          content.style.removeProperty('height');
10140          content.style.overflow = '';
10141        }
10142      };
10143    }
10144  }
10145
10146  if (!customElements.get('text-read-more-wrapper')) {
10147    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
10148  }
10149</script>
10149
10150
10151  
10152  
10153    <span class="collection-title-arrow">
10154      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
10155  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
10156</svg>
10157
10158    </span>
10159  
10160</div>
10161
10162
10163
10164
10165
10166
10167    </div>
10168  </div>
10169</div>
10170
10171
10172
10173
10174
10175
10176      </div>
10177      
10178        <!--@list/split-->
10179      
10180    
10181      <div
10182        class="resource-list__item"
10183        
10184      >
10185        
10186
10187
10188
10189
10190
10191
10192
10193<style data-shopify>
10194  
10195</style>
10196
10197
10198
10199<div
10200  class="
10201    collection-card
10202    border-style
10203    
10204    
10205    
10206    
10207  "
10208  data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-1"
10209  
10210  style="
10211    --border-width: 1px; --border-style: none; --border-color:
10212rgb(var(--color-border-rgb) / 1.0); --border-radius:
1021312px;  overflow: hidden; 
10214
10215    --horizontal-alignment: flex-start;
10216    --vertical-alignment: flex-start;
10217    --background-overlay-color: ;
10218    --gap: 8px;
10219  ">
10220  <a
10221    class="collection-card__link"
10222    
10223      href="/collections/gel-nail-polish"
10224    
10225  >
10226    <span class="visually-hidden">Gel & Nail Polish</span>
10227  </a>
10228  <div class="collection-card__inner">
10229    
10230  
10231
10232
10233
10234
10235
10236<style data-shopify>
10237  
10238    .collection-card[data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-1"] {
10239      --ratio: 1.375;
10240    }
10241    
10242  
10243</style>
10244
10245
10246  <div
10247    class="
10248      image-block
10249      resource-image
10250      
10251      
10252        collection-card__image
10253      
10254      spacing-style border-style
10255      
10256    "
10257    style="--border-width: 1px; --border-style: none; --border-color:
10258rgb(var(--color-border-rgb) / 1.0); --border-radius:
102590px; 
10260"
10261    
10262  >
10263      <img src="//www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=3840" alt="Gel &amp; Nail Polish" srcset="//www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/collections/Gel_NailPolish.png?v=1770738296&amp;width=3840 3840w" width="3840" height="2793" loading="eager" class="image-block__image" sizes="(min-width: 750px) 16vw, 100vw">
10264    
10265  </div>
10266
10267
10268
10269
10270
10271
10272
10273
10274    <div class="collection-card__content layout-panel-flex--column">
10275      
10276  
10277
10278
10279
10280<div class="collection-title-wrapper collection-title-wrapper--arrow-on-mobile">
10281  
10282    
10283    
10284
10285
10286
10287
10288
10289
10290  
10291    <div class=" spacing-style text-block text-block--ARlJ4VmczaVlJelhka__collection_title_zD33z9-1 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:4px; --padding-inline-start:8px; --padding-inline-end:4px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
10292      <p>Gel & Nail Polish</p>
10293    </div>
10294  
10295
10296
10297
10298
10299<script type="module">
10300  class TextReadMoreWrapper extends HTMLElement {
10301    #expanded = false;
10302    #animation = null;
10303    #collapsedHeight = 0;
10304
10305    connectedCallback() {
10306      const content = this.querySelector('.text-read-more__content');
10307      const textElement = this.querySelector('.text-read-more__text');
10308      const button = this.querySelector('.text-read-more__button');
10309
10310      if (!content || !textElement || !button) return;
10311
10312      // Set initial state
10313      this.dataset.expanded = 'false';
10314
10315      // Wait for content to render - use double RAF to ensure layout is complete
10316      requestAnimationFrame(() => {
10317        requestAnimationFrame(() => {
10318          // Additional small delay to ensure fonts and styles are applied
10319          setTimeout(() => {
10320            this.#checkOverflow(content, textElement, button);
10321          }, 50);
10322          
10323          // Recheck on resize
10324          const resizeObserver = new ResizeObserver(() => {
10325            if (!this.#expanded) {
10326              this.#checkOverflow(content, textElement, button);
10327            }
10328          });
10329          resizeObserver.observe(content);
10330
10331          // Setup button click handler
10332          button.addEventListener('click', (e) => {
10333            e.preventDefault();
10334            this.#toggle(content, textElement, button);
10335          });
10336        });
10337      });
10338    }
10339
10340    #checkOverflow(content, textElement, button) {
10341      // Ensure collapsed state is applied
10342      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
10343        textElement.classList.add('text-read-more__text--collapsed');
10344      }
10345      
10346      // Get collapsed height first
10347      const collapsedHeight = content.scrollHeight;
10348      this.#collapsedHeight = collapsedHeight;
10349      
10350      // Temporarily remove line-clamp to measure full height
10351      textElement.classList.remove('text-read-more__text--collapsed');
10352      
10353      // Force reflow
10354      void content.offsetHeight;
10355      
10356      const fullHeight = content.scrollHeight;
10357      
10358      // Restore line-clamp
10359      textElement.classList.add('text-read-more__text--collapsed');
10360      
10361      // Show button if content exceeds 2 lines (with small threshold for rounding)
10362      if (fullHeight > collapsedHeight + 5) {
10363        button.removeAttribute('hidden');
10364      } else {
10365        button.setAttribute('hidden', '');
10366      }
10367    }
10368
10369    #toggle(content, textElement, button) {
10370      const startHeight = content.offsetHeight;
10371      let endHeight;
10372
10373      if (!this.#expanded) {
10374        // Expanding
10375        textElement.classList.remove('text-read-more__text--collapsed');
10376        endHeight = content.scrollHeight;
10377        this.#expanded = true;
10378      } else {
10379        // Collapsing
10380        endHeight = this.#collapsedHeight;
10381        this.#expanded = false;
10382      }
10383
10384      this.dataset.expanded = this.#expanded;
10385      button.setAttribute('aria-expanded', this.#expanded);
10386
10387      // Animate
10388      content.style.overflow = 'hidden';
10389      this.#animation?.cancel();
10390
10391      this.#animation = content.animate(
10392        {
10393          height: [`${startHeight}px`, `${endHeight}px`],
10394        },
10395        {
10396          duration: 300,
10397          easing: 'ease-in-out',
10398        }
10399      );
10400
10401      this.#animation.onfinish = () => {
10402        if (this.#expanded) {
10403          content.style.removeProperty('height');
10404          content.style.overflow = '';
10405        } else {
10406          textElement.classList.add('text-read-more__text--collapsed');
10407          content.style.removeProperty('height');
10408          content.style.overflow = '';
10409        }
10410      };
10411    }
10412  }
10413
10414  if (!customElements.get('text-read-more-wrapper')) {
10415    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
10416  }
10417</script>
10417
10418
10419  
10420  
10421    <span class="collection-title-arrow">
10422      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
10423  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
10424</svg>
10425
10426    </span>
10427  
10428</div>
10429
10430
10431
10432
10433
10434
10435    </div>
10436  </div>
10437</div>
10438
10439
10440
10441
10442
10443
10444      </div>
10445      
10446        <!--@list/split-->
10447      
10448    
10449      <div
10450        class="resource-list__item"
10451        
10452      >
10453        
10454
10455
10456
10457
10458
10459
10460
10461<style data-shopify>
10462  
10463</style>
10464
10465
10466
10467<div
10468  class="
10469    collection-card
10470    border-style
10471    
10472    
10473    
10474    
10475  "
10476  data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-2"
10477  
10478  style="
10479    --border-width: 1px; --border-style: none; --border-color:
10480rgb(var(--color-border-rgb) / 1.0); --border-radius:
1048112px;  overflow: hidden; 
10482
10483    --horizontal-alignment: flex-start;
10484    --vertical-alignment: flex-start;
10485    --background-overlay-color: ;
10486    --gap: 8px;
10487  ">
10488  <a
10489    class="collection-card__link"
10490    
10491      href="/collections/nail-tools-accessories"
10492    
10493  >
10494    <span class="visually-hidden">Nail Tools & Accessories</span>
10495  </a>
10496  <div class="collection-card__inner">
10497    
10498  
10499
10500
10501
10502
10503
10504<style data-shopify>
10505  
10506    .collection-card[data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-2"] {
10507      --ratio: 1.375;
10508    }
10509    
10510  
10511</style>
10512
10513
10514  <div
10515    class="
10516      image-block
10517      resource-image
10518      
10519      
10520        collection-card__image
10521      
10522      spacing-style border-style
10523      
10524    "
10525    style="--border-width: 1px; --border-style: none; --border-color:
10526rgb(var(--color-border-rgb) / 1.0); --border-radius:
105270px; 
10528"
10529    
10530  >
10531      <img src="//www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=3840" alt="Nail Tools &amp; Accessories" srcset="//www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/collections/NailTools_f6ce766a-2e60-492d-9e89-00bac4fe0604.png?v=1770738331&amp;width=3840 3840w" width="3840" height="2793" loading="eager" class="image-block__image" sizes="(min-width: 750px) 16vw, 100vw">
10532    
10533  </div>
10534
10535
10536
10537
10538
10539
10540
10541
10542    <div class="collection-card__content layout-panel-flex--column">
10543      
10544  
10545
10546
10547
10548<div class="collection-title-wrapper collection-title-wrapper--arrow-on-mobile">
10549  
10550    
10551    
10552
10553
10554
10555
10556
10557
10558  
10559    <div class=" spacing-style text-block text-block--ARlJ4VmczaVlJelhka__collection_title_zD33z9-2 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:4px; --padding-inline-start:8px; --padding-inline-end:4px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
10560      <p>Nail Tools & Accessories</p>
10561    </div>
10562  
10563
10564
10565
10566
10567<script type="module">
10568  class TextReadMoreWrapper extends HTMLElement {
10569    #expanded = false;
10570    #animation = null;
10571    #collapsedHeight = 0;
10572
10573    connectedCallback() {
10574      const content = this.querySelector('.text-read-more__content');
10575      const textElement = this.querySelector('.text-read-more__text');
10576      const button = this.querySelector('.text-read-more__button');
10577
10578      if (!content || !textElement || !button) return;
10579
10580      // Set initial state
10581      this.dataset.expanded = 'false';
10582
10583      // Wait for content to render - use double RAF to ensure layout is complete
10584      requestAnimationFrame(() => {
10585        requestAnimationFrame(() => {
10586          // Additional small delay to ensure fonts and styles are applied
10587          setTimeout(() => {
10588            this.#checkOverflow(content, textElement, button);
10589          }, 50);
10590          
10591          // Recheck on resize
10592          const resizeObserver = new ResizeObserver(() => {
10593            if (!this.#expanded) {
10594              this.#checkOverflow(content, textElement, button);
10595            }
10596          });
10597          resizeObserver.observe(content);
10598
10599          // Setup button click handler
10600          button.addEventListener('click', (e) => {
10601            e.preventDefault();
10602            this.#toggle(content, textElement, button);
10603          });
10604        });
10605      });
10606    }
10607
10608    #checkOverflow(content, textElement, button) {
10609      // Ensure collapsed state is applied
10610      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
10611        textElement.classList.add('text-read-more__text--collapsed');
10612      }
10613      
10614      // Get collapsed height first
10615      const collapsedHeight = content.scrollHeight;
10616      this.#collapsedHeight = collapsedHeight;
10617      
10618      // Temporarily remove line-clamp to measure full height
10619      textElement.classList.remove('text-read-more__text--collapsed');
10620      
10621      // Force reflow
10622      void content.offsetHeight;
10623      
10624      const fullHeight = content.scrollHeight;
10625      
10626      // Restore line-clamp
10627      textElement.classList.add('text-read-more__text--collapsed');
10628      
10629      // Show button if content exceeds 2 lines (with small threshold for rounding)
10630      if (fullHeight > collapsedHeight + 5) {
10631        button.removeAttribute('hidden');
10632      } else {
10633        button.setAttribute('hidden', '');
10634      }
10635    }
10636
10637    #toggle(content, textElement, button) {
10638      const startHeight = content.offsetHeight;
10639      let endHeight;
10640
10641      if (!this.#expanded) {
10642        // Expanding
10643        textElement.classList.remove('text-read-more__text--collapsed');
10644        endHeight = content.scrollHeight;
10645        this.#expanded = true;
10646      } else {
10647        // Collapsing
10648        endHeight = this.#collapsedHeight;
10649        this.#expanded = false;
10650      }
10651
10652      this.dataset.expanded = this.#expanded;
10653      button.setAttribute('aria-expanded', this.#expanded);
10654
10655      // Animate
10656      content.style.overflow = 'hidden';
10657      this.#animation?.cancel();
10658
10659      this.#animation = content.animate(
10660        {
10661          height: [`${startHeight}px`, `${endHeight}px`],
10662        },
10663        {
10664          duration: 300,
10665          easing: 'ease-in-out',
10666        }
10667      );
10668
10669      this.#animation.onfinish = () => {
10670        if (this.#expanded) {
10671          content.style.removeProperty('height');
10672          content.style.overflow = '';
10673        } else {
10674          textElement.classList.add('text-read-more__text--collapsed');
10675          content.style.removeProperty('height');
10676          content.style.overflow = '';
10677        }
10678      };
10679    }
10680  }
10681
10682  if (!customElements.get('text-read-more-wrapper')) {
10683    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
10684  }
10685</script>
10685
10686
10687  
10688  
10689    <span class="collection-title-arrow">
10690      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
10691  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
10692</svg>
10693
10694    </span>
10695  
10696</div>
10697
10698
10699
10700
10701
10702
10703    </div>
10704  </div>
10705</div>
10706
10707
10708
10709
10710
10711
10712      </div>
10713      
10714        <!--@list/split-->
10715      
10716    
10717      <div
10718        class="resource-list__item"
10719        
10720      >
10721        
10722
10723
10724
10725
10726
10727
10728
10729<style data-shopify>
10730  
10731</style>
10732
10733
10734
10735<div
10736  class="
10737    collection-card
10738    border-style
10739    
10740    
10741    
10742    
10743  "
10744  data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-3"
10745  
10746  style="
10747    --border-width: 1px; --border-style: none; --border-color:
10748rgb(var(--color-border-rgb) / 1.0); --border-radius:
1074912px;  overflow: hidden; 
10750
10751    --horizontal-alignment: flex-start;
10752    --vertical-alignment: flex-start;
10753    --background-overlay-color: ;
10754    --gap: 8px;
10755  ">
10756  <a
10757    class="collection-card__link"
10758    
10759      href="/collections/nail-art"
10760    
10761  >
10762    <span class="visually-hidden">Nail Art</span>
10763  </a>
10764  <div class="collection-card__inner">
10765    
10766  
10767
10768
10769
10770
10771
10772<style data-shopify>
10773  
10774    .collection-card[data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-3"] {
10775      --ratio: 1.375;
10776    }
10777    
10778  
10779</style>
10780
10781
10782  <div
10783    class="
10784      image-block
10785      resource-image
10786      
10787      
10788        collection-card__image
10789      
10790      spacing-style border-style
10791      
10792    "
10793    style="--border-width: 1px; --border-style: none; --border-color:
10794rgb(var(--color-border-rgb) / 1.0); --border-radius:
107950px; 
10796"
10797    
10798  >
10799      <img src="//www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=3840" alt="Nail Art" srcset="//www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/collections/NailArt_c79e2974-2223-44ba-81ed-869861dc4c3e.png?v=1770738347&amp;width=3840 3840w" width="3840" height="2793" loading="eager" class="image-block__image" sizes="(min-width: 750px) 16vw, 100vw">
10800    
10801  </div>
10802
10803
10804
10805
10806
10807
10808
10809
10810    <div class="collection-card__content layout-panel-flex--column">
10811      
10812  
10813
10814
10815
10816<div class="collection-title-wrapper collection-title-wrapper--arrow-on-mobile">
10817  
10818    
10819    
10820
10821
10822
10823
10824
10825
10826  
10827    <div class=" spacing-style text-block text-block--ARlJ4VmczaVlJelhka__collection_title_zD33z9-3 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:4px; --padding-inline-start:8px; --padding-inline-end:4px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
10828      <p>Nail Art</p>
10829    </div>
10830  
10831
10832
10833
10834
10835<script type="module">
10836  class TextReadMoreWrapper extends HTMLElement {
10837    #expanded = false;
10838    #animation = null;
10839    #collapsedHeight = 0;
10840
10841    connectedCallback() {
10842      const content = this.querySelector('.text-read-more__content');
10843      const textElement = this.querySelector('.text-read-more__text');
10844      const button = this.querySelector('.text-read-more__button');
10845
10846      if (!content || !textElement || !button) return;
10847
10848      // Set initial state
10849      this.dataset.expanded = 'false';
10850
10851      // Wait for content to render - use double RAF to ensure layout is complete
10852      requestAnimationFrame(() => {
10853        requestAnimationFrame(() => {
10854          // Additional small delay to ensure fonts and styles are applied
10855          setTimeout(() => {
10856            this.#checkOverflow(content, textElement, button);
10857          }, 50);
10858          
10859          // Recheck on resize
10860          const resizeObserver = new ResizeObserver(() => {
10861            if (!this.#expanded) {
10862              this.#checkOverflow(content, textElement, button);
10863            }
10864          });
10865          resizeObserver.observe(content);
10866
10867          // Setup button click handler
10868          button.addEventListener('click', (e) => {
10869            e.preventDefault();
10870            this.#toggle(content, textElement, button);
10871          });
10872        });
10873      });
10874    }
10875
10876    #checkOverflow(content, textElement, button) {
10877      // Ensure collapsed state is applied
10878      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
10879        textElement.classList.add('text-read-more__text--collapsed');
10880      }
10881      
10882      // Get collapsed height first
10883      const collapsedHeight = content.scrollHeight;
10884      this.#collapsedHeight = collapsedHeight;
10885      
10886      // Temporarily remove line-clamp to measure full height
10887      textElement.classList.remove('text-read-more__text--collapsed');
10888      
10889      // Force reflow
10890      void content.offsetHeight;
10891      
10892      const fullHeight = content.scrollHeight;
10893      
10894      // Restore line-clamp
10895      textElement.classList.add('text-read-more__text--collapsed');
10896      
10897      // Show button if content exceeds 2 lines (with small threshold for rounding)
10898      if (fullHeight > collapsedHeight + 5) {
10899        button.removeAttribute('hidden');
10900      } else {
10901        button.setAttribute('hidden', '');
10902      }
10903    }
10904
10905    #toggle(content, textElement, button) {
10906      const startHeight = content.offsetHeight;
10907      let endHeight;
10908
10909      if (!this.#expanded) {
10910        // Expanding
10911        textElement.classList.remove('text-read-more__text--collapsed');
10912        endHeight = content.scrollHeight;
10913        this.#expanded = true;
10914      } else {
10915        // Collapsing
10916        endHeight = this.#collapsedHeight;
10917        this.#expanded = false;
10918      }
10919
10920      this.dataset.expanded = this.#expanded;
10921      button.setAttribute('aria-expanded', this.#expanded);
10922
10923      // Animate
10924      content.style.overflow = 'hidden';
10925      this.#animation?.cancel();
10926
10927      this.#animation = content.animate(
10928        {
10929          height: [`${startHeight}px`, `${endHeight}px`],
10930        },
10931        {
10932          duration: 300,
10933          easing: 'ease-in-out',
10934        }
10935      );
10936
10937      this.#animation.onfinish = () => {
10938        if (this.#expanded) {
10939          content.style.removeProperty('height');
10940          content.style.overflow = '';
10941        } else {
10942          textElement.classList.add('text-read-more__text--collapsed');
10943          content.style.removeProperty('height');
10944          content.style.overflow = '';
10945        }
10946      };
10947    }
10948  }
10949
10950  if (!customElements.get('text-read-more-wrapper')) {
10951    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
10952  }
10953</script>
10953
10954
10955  
10956  
10957    <span class="collection-title-arrow">
10958      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
10959  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
10960</svg>
10961
10962    </span>
10963  
10964</div>
10965
10966
10967
10968
10969
10970
10971    </div>
10972  </div>
10973</div>
10974
10975
10976
10977
10978
10979
10980      </div>
10981      
10982        <!--@list/split-->
10983      
10984    
10985      <div
10986        class="resource-list__item"
10987        
10988      >
10989        
10990
10991
10992
10993
10994
10995
10996
10997<style data-shopify>
10998  
10999</style>
11000
11001
11002
11003<div
11004  class="
11005    collection-card
11006    border-style
11007    
11008    
11009    
11010    
11011  "
11012  data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-4"
11013  
11014  style="
11015    --border-width: 1px; --border-style: none; --border-color:
11016rgb(var(--color-border-rgb) / 1.0); --border-radius:
1101712px;  overflow: hidden; 
11018
11019    --horizontal-alignment: flex-start;
11020    --vertical-alignment: flex-start;
11021    --background-overlay-color: ;
11022    --gap: 8px;
11023  ">
11024  <a
11025    class="collection-card__link"
11026    
11027      href="/collections/nail-extensions"
11028    
11029  >
11030    <span class="visually-hidden">Nail Extensions</span>
11031  </a>
11032  <div class="collection-card__inner">
11033    
11034  
11035
11036
11037
11038
11039
11040<style data-shopify>
11041  
11042    .collection-card[data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-4"] {
11043      --ratio: 1.375;
11044    }
11045    
11046  
11047</style>
11048
11049
11050  <div
11051    class="
11052      image-block
11053      resource-image
11054      
11055      
11056        collection-card__image
11057      
11058      spacing-style border-style
11059      
11060    "
11061    style="--border-width: 1px; --border-style: none; --border-color:
11062rgb(var(--color-border-rgb) / 1.0); --border-radius:
110630px; 
11064"
11065    
11066  >
11067      <img src="//www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=3840" alt="Nail Extensions" srcset="//www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/collections/NailExtensions_ea48b36f-6ede-4e56-9e37-69e441025cf6.png?v=1770738367&amp;width=3840 3840w" width="3840" height="2793" loading="eager" class="image-block__image" sizes="(min-width: 750px) 16vw, 100vw">
11068    
11069  </div>
11070
11071
11072
11073
11074
11075
11076
11077
11078    <div class="collection-card__content layout-panel-flex--column">
11079      
11080  
11081
11082
11083
11084<div class="collection-title-wrapper collection-title-wrapper--arrow-on-mobile">
11085  
11086    
11087    
11088
11089
11090
11091
11092
11093
11094  
11095    <div class=" spacing-style text-block text-block--ARlJ4VmczaVlJelhka__collection_title_zD33z9-4 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:4px; --padding-inline-start:8px; --padding-inline-end:4px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
11096      <p>Nail Extensions</p>
11097    </div>
11098  
11099
11100
11101
11102
11103<script type="module">
11104  class TextReadMoreWrapper extends HTMLElement {
11105    #expanded = false;
11106    #animation = null;
11107    #collapsedHeight = 0;
11108
11109    connectedCallback() {
11110      const content = this.querySelector('.text-read-more__content');
11111      const textElement = this.querySelector('.text-read-more__text');
11112      const button = this.querySelector('.text-read-more__button');
11113
11114      if (!content || !textElement || !button) return;
11115
11116      // Set initial state
11117      this.dataset.expanded = 'false';
11118
11119      // Wait for content to render - use double RAF to ensure layout is complete
11120      requestAnimationFrame(() => {
11121        requestAnimationFrame(() => {
11122          // Additional small delay to ensure fonts and styles are applied
11123          setTimeout(() => {
11124            this.#checkOverflow(content, textElement, button);
11125          }, 50);
11126          
11127          // Recheck on resize
11128          const resizeObserver = new ResizeObserver(() => {
11129            if (!this.#expanded) {
11130              this.#checkOverflow(content, textElement, button);
11131            }
11132          });
11133          resizeObserver.observe(content);
11134
11135          // Setup button click handler
11136          button.addEventListener('click', (e) => {
11137            e.preventDefault();
11138            this.#toggle(content, textElement, button);
11139          });
11140        });
11141      });
11142    }
11143
11144    #checkOverflow(content, textElement, button) {
11145      // Ensure collapsed state is applied
11146      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
11147        textElement.classList.add('text-read-more__text--collapsed');
11148      }
11149      
11150      // Get collapsed height first
11151      const collapsedHeight = content.scrollHeight;
11152      this.#collapsedHeight = collapsedHeight;
11153      
11154      // Temporarily remove line-clamp to measure full height
11155      textElement.classList.remove('text-read-more__text--collapsed');
11156      
11157      // Force reflow
11158      void content.offsetHeight;
11159      
11160      const fullHeight = content.scrollHeight;
11161      
11162      // Restore line-clamp
11163      textElement.classList.add('text-read-more__text--collapsed');
11164      
11165      // Show button if content exceeds 2 lines (with small threshold for rounding)
11166      if (fullHeight > collapsedHeight + 5) {
11167        button.removeAttribute('hidden');
11168      } else {
11169        button.setAttribute('hidden', '');
11170      }
11171    }
11172
11173    #toggle(content, textElement, button) {
11174      const startHeight = content.offsetHeight;
11175      let endHeight;
11176
11177      if (!this.#expanded) {
11178        // Expanding
11179        textElement.classList.remove('text-read-more__text--collapsed');
11180        endHeight = content.scrollHeight;
11181        this.#expanded = true;
11182      } else {
11183        // Collapsing
11184        endHeight = this.#collapsedHeight;
11185        this.#expanded = false;
11186      }
11187
11188      this.dataset.expanded = this.#expanded;
11189      button.setAttribute('aria-expanded', this.#expanded);
11190
11191      // Animate
11192      content.style.overflow = 'hidden';
11193      this.#animation?.cancel();
11194
11195      this.#animation = content.animate(
11196        {
11197          height: [`${startHeight}px`, `${endHeight}px`],
11198        },
11199        {
11200          duration: 300,
11201          easing: 'ease-in-out',
11202        }
11203      );
11204
11205      this.#animation.onfinish = () => {
11206        if (this.#expanded) {
11207          content.style.removeProperty('height');
11208          content.style.overflow = '';
11209        } else {
11210          textElement.classList.add('text-read-more__text--collapsed');
11211          content.style.removeProperty('height');
11212          content.style.overflow = '';
11213        }
11214      };
11215    }
11216  }
11217
11218  if (!customElements.get('text-read-more-wrapper')) {
11219    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
11220  }
11221</script>
11221
11222
11223  
11224  
11225    <span class="collection-title-arrow">
11226      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
11227  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
11228</svg>
11229
11230    </span>
11231  
11232</div>
11233
11234
11235
11236
11237
11238
11239    </div>
11240  </div>
11241</div>
11242
11243
11244
11245
11246
11247
11248      </div>
11249      
11250        <!--@list/split-->
11251      
11252    
11253      <div
11254        class="resource-list__item"
11255        
11256      >
11257        
11258
11259
11260
11261
11262
11263
11264
11265<style data-shopify>
11266  
11267</style>
11268
11269
11270
11271<div
11272  class="
11273    collection-card
11274    border-style
11275    
11276    
11277    
11278    
11279  "
11280  data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-5"
11281  
11282  style="
11283    --border-width: 1px; --border-style: none; --border-color:
11284rgb(var(--color-border-rgb) / 1.0); --border-radius:
1128512px;  overflow: hidden; 
11286
11287    --horizontal-alignment: flex-start;
11288    --vertical-alignment: flex-start;
11289    --background-overlay-color: ;
11290    --gap: 8px;
11291  ">
11292  <a
11293    class="collection-card__link"
11294    
11295      href="/collections/nail-kits"
11296    
11297  >
11298    <span class="visually-hidden">Nail Kits</span>
11299  </a>
11300  <div class="collection-card__inner">
11301    
11302  
11303
11304
11305
11306
11307
11308<style data-shopify>
11309  
11310    .collection-card[data-block-id="AeFNqblVIS2cxU0xkM__static-collection-card-5"] {
11311      --ratio: 1.375;
11312    }
11313    
11314  
11315</style>
11316
11317
11318  <div
11319    class="
11320      image-block
11321      resource-image
11322      
11323      
11324        collection-card__image
11325      
11326      spacing-style border-style
11327      
11328    "
11329    style="--border-width: 1px; --border-style: none; --border-color:
11330rgb(var(--color-border-rgb) / 1.0); --border-radius:
113310px; 
11332"
11333    
11334  >
11335      <img src="//www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=3840" alt="Nail Kits" srcset="//www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/collections/NailKits_836af5cf-6a10-4005-b221-67a0363ad645.png?v=1770738390&amp;width=3840 3840w" width="3840" height="2793" loading="eager" class="image-block__image" sizes="(min-width: 750px) 16vw, 100vw">
11336    
11337  </div>
11338
11339
11340
11341
11342
11343
11344
11345
11346    <div class="collection-card__content layout-panel-flex--column">
11347      
11348  
11349
11350
11351
11352<div class="collection-title-wrapper collection-title-wrapper--arrow-on-mobile">
11353  
11354    
11355    
11356
11357
11358
11359
11360
11361
11362  
11363    <div class=" spacing-style text-block text-block--ARlJ4VmczaVlJelhka__collection_title_zD33z9-5 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:4px; --padding-inline-start:8px; --padding-inline-end:4px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
11364      <p>Nail Kits</p>
11365    </div>
11366  
11367
11368
11369
11370
11371<script type="module">
11372  class TextReadMoreWrapper extends HTMLElement {
11373    #expanded = false;
11374    #animation = null;
11375    #collapsedHeight = 0;
11376
11377    connectedCallback() {
11378      const content = this.querySelector('.text-read-more__content');
11379      const textElement = this.querySelector('.text-read-more__text');
11380      const button = this.querySelector('.text-read-more__button');
11381
11382      if (!content || !textElement || !button) return;
11383
11384      // Set initial state
11385      this.dataset.expanded = 'false';
11386
11387      // Wait for content to render - use double RAF to ensure layout is complete
11388      requestAnimationFrame(() => {
11389        requestAnimationFrame(() => {
11390          // Additional small delay to ensure fonts and styles are applied
11391          setTimeout(() => {
11392            this.#checkOverflow(content, textElement, button);
11393          }, 50);
11394          
11395          // Recheck on resize
11396          const resizeObserver = new ResizeObserver(() => {
11397            if (!this.#expanded) {
11398              this.#checkOverflow(content, textElement, button);
11399            }
11400          });
11401          resizeObserver.observe(content);
11402
11403          // Setup button click handler
11404          button.addEventListener('click', (e) => {
11405            e.preventDefault();
11406            this.#toggle(content, textElement, button);
11407          });
11408        });
11409      });
11410    }
11411
11412    #checkOverflow(content, textElement, button) {
11413      // Ensure collapsed state is applied
11414      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
11415        textElement.classList.add('text-read-more__text--collapsed');
11416      }
11417      
11418      // Get collapsed height first
11419      const collapsedHeight = content.scrollHeight;
11420      this.#collapsedHeight = collapsedHeight;
11421      
11422      // Temporarily remove line-clamp to measure full height
11423      textElement.classList.remove('text-read-more__text--collapsed');
11424      
11425      // Force reflow
11426      void content.offsetHeight;
11427      
11428      const fullHeight = content.scrollHeight;
11429      
11430      // Restore line-clamp
11431      textElement.classList.add('text-read-more__text--collapsed');
11432      
11433      // Show button if content exceeds 2 lines (with small threshold for rounding)
11434      if (fullHeight > collapsedHeight + 5) {
11435        button.removeAttribute('hidden');
11436      } else {
11437        button.setAttribute('hidden', '');
11438      }
11439    }
11440
11441    #toggle(content, textElement, button) {
11442      const startHeight = content.offsetHeight;
11443      let endHeight;
11444
11445      if (!this.#expanded) {
11446        // Expanding
11447        textElement.classList.remove('text-read-more__text--collapsed');
11448        endHeight = content.scrollHeight;
11449        this.#expanded = true;
11450      } else {
11451        // Collapsing
11452        endHeight = this.#collapsedHeight;
11453        this.#expanded = false;
11454      }
11455
11456      this.dataset.expanded = this.#expanded;
11457      button.setAttribute('aria-expanded', this.#expanded);
11458
11459      // Animate
11460      content.style.overflow = 'hidden';
11461      this.#animation?.cancel();
11462
11463      this.#animation = content.animate(
11464        {
11465          height: [`${startHeight}px`, `${endHeight}px`],
11466        },
11467        {
11468          duration: 300,
11469          easing: 'ease-in-out',
11470        }
11471      );
11472
11473      this.#animation.onfinish = () => {
11474        if (this.#expanded) {
11475          content.style.removeProperty('height');
11476          content.style.overflow = '';
11477        } else {
11478          textElement.classList.add('text-read-more__text--collapsed');
11479          content.style.removeProperty('height');
11480          content.style.overflow = '';
11481        }
11482      };
11483    }
11484  }
11485
11486  if (!customElements.get('text-read-more-wrapper')) {
11487    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
11488  }
11489</script>
11489
11490
11491  
11492  
11493    <span class="collection-title-arrow">
11494      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
11495  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
11496</svg>
11497
11498    </span>
11499  
11500</div>
11501
11502
11503
11504
11505
11506
11507    </div>
11508  </div>
11509</div>
11510
11511
11512
11513
11514
11515
11516      </div>
11517      
11518    
11519  
11520
11521    
11522</div>
11523
11524
11525
11526
11527
11528  
11529</div>
11530
11531<script>
11532  (() => {
11533    const section = document.getElementById('collection-list-template--28213213921626__collection_list_dEADaM');
11534    if (!section) return;
11535
11536    if (section.dataset.collectionCardRevealEnabled !== 'true') return;
11537    if (section.dataset.collectionListRevealed === 'true') return;
11538
11539    // Only apply the hidden start state when JS is active
11540    section.dataset.collectionCardRevealInit = 'true';
11541
11542    const reducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches;
11543
11544    const reveal = () => {
11545      section.dataset.collectionListRevealed = 'true';
11546    };
11547
11548    // Progressive enhancement fallbacks
11549    if (window.Shopify?.designMode) {
11550      reveal();
11551      return;
11552    }
11553
11554    if (reducedMotion) {
11555      reveal();
11556      return;
11557    }
11558
11559    if (!('IntersectionObserver' in window)) {
11560      reveal();
11561      return;
11562    }
11563
11564    const observer = new IntersectionObserver(
11565      (entries) => {
11566        for (const entry of entries) {
11567          if (entry.isIntersecting) {
11568            reveal();
11569            observer.disconnect();
11570            break;
11571          }
11572        }
11573      },
11574      { root: null, threshold: 0.15 }
11575    );
11576
11577    observer.observe(section);
11578  })();
11579</script>
11579
11580
11581
11582</div><div id="shopify-section-template--28213213921626__product_list_ykU4x3" class="shopify-section ui-test-product-list">
11583
11584
11585
11586<div class="section-background color-scheme-1"></div>
11587<div
11588  data-testid="product-list"
11589  class="
11590    section
11591    section--page-width
11592    color-scheme-1
11593    section-resource-list
11594    spacing-style
11595    gap-style
11596  "
11597  style="
11598    --padding-block-start: max(20px, calc(var(--spacing-scale) * 25px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 80px));
11599    --gap: max(24px, calc(var(--gap-scale, 1.0) * 28px));
11600  "
11601>
11602  <div class="section-resource-list__header">
11603<div
11604  class="
11605    group-block
11606    group-block--height-fit
11607    group-block--width-fill
11608    border-style
11609    spacing-style
11610    size-style
11611    
11612    
11613    
11614    
11615  "
11616  style="
11617    --border-width: 1px; --border-style: none; --border-color:
11618rgb(var(--color-border-rgb) / 1.0); --border-radius:
116190px; 
11620
11621    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
11622    --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
11623    
11624  "
11625  
11626  data-testid="group-block"
11627><div class="group-block__media-wrapper">
11628    
11629
11630
11631
11632    
11633  </div>
11634
11635  <div
11636    class="
11637      group-block-content
11638      
11639      layout-panel-flex
11640      layout-panel-flex--row
11641      
11642      
11643      group-block-content--has-animation group-block-content--animate-
11644    "
11645    data-animation-type=""
11646    style="--flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
11647
11648--gap: 12px;
11649
11650--horizontal-alignment: space-between; --vertical-alignment: last baseline;
11651--vertical-alignment-mobile: last baseline;
11652"
11653  >
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665  
11666    <rte-formatter class=" spacing-style text-block text-block--ASlhVdjdIaE1uN2t3b__product_list_text_zkKMin rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
11667      <h3><strong>New In</strong></h3>
11668    </rte-formatter>
11669  
11670
11671
11672
11673
11674<script type="module">
11675  class TextReadMoreWrapper extends HTMLElement {
11676    #expanded = false;
11677    #animation = null;
11678    #collapsedHeight = 0;
11679
11680    connectedCallback() {
11681      const content = this.querySelector('.text-read-more__content');
11682      const textElement = this.querySelector('.text-read-more__text');
11683      const button = this.querySelector('.text-read-more__button');
11684
11685      if (!content || !textElement || !button) return;
11686
11687      // Set initial state
11688      this.dataset.expanded = 'false';
11689
11690      // Wait for content to render - use double RAF to ensure layout is complete
11691      requestAnimationFrame(() => {
11692        requestAnimationFrame(() => {
11693          // Additional small delay to ensure fonts and styles are applied
11694          setTimeout(() => {
11695            this.#checkOverflow(content, textElement, button);
11696          }, 50);
11697          
11698          // Recheck on resize
11699          const resizeObserver = new ResizeObserver(() => {
11700            if (!this.#expanded) {
11701              this.#checkOverflow(content, textElement, button);
11702            }
11703          });
11704          resizeObserver.observe(content);
11705
11706          // Setup button click handler
11707          button.addEventListener('click', (e) => {
11708            e.preventDefault();
11709            this.#toggle(content, textElement, button);
11710          });
11711        });
11712      });
11713    }
11714
11715    #checkOverflow(content, textElement, button) {
11716      // Ensure collapsed state is applied
11717      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
11718        textElement.classList.add('text-read-more__text--collapsed');
11719      }
11720      
11721      // Get collapsed height first
11722      const collapsedHeight = content.scrollHeight;
11723      this.#collapsedHeight = collapsedHeight;
11724      
11725      // Temporarily remove line-clamp to measure full height
11726      textElement.classList.remove('text-read-more__text--collapsed');
11727      
11728      // Force reflow
11729      void content.offsetHeight;
11730      
11731      const fullHeight = content.scrollHeight;
11732      
11733      // Restore line-clamp
11734      textElement.classList.add('text-read-more__text--collapsed');
11735      
11736      // Show button if content exceeds 2 lines (with small threshold for rounding)
11737      if (fullHeight > collapsedHeight + 5) {
11738        button.removeAttribute('hidden');
11739      } else {
11740        button.setAttribute('hidden', '');
11741      }
11742    }
11743
11744    #toggle(content, textElement, button) {
11745      const startHeight = content.offsetHeight;
11746      let endHeight;
11747
11748      if (!this.#expanded) {
11749        // Expanding
11750        textElement.classList.remove('text-read-more__text--collapsed');
11751        endHeight = content.scrollHeight;
11752        this.#expanded = true;
11753      } else {
11754        // Collapsing
11755        endHeight = this.#collapsedHeight;
11756        this.#expanded = false;
11757      }
11758
11759      this.dataset.expanded = this.#expanded;
11760      button.setAttribute('aria-expanded', this.#expanded);
11761
11762      // Animate
11763      content.style.overflow = 'hidden';
11764      this.#animation?.cancel();
11765
11766      this.#animation = content.animate(
11767        {
11768          height: [`${startHeight}px`, `${endHeight}px`],
11769        },
11770        {
11771          duration: 300,
11772          easing: 'ease-in-out',
11773        }
11774      );
11775
11776      this.#animation.onfinish = () => {
11777        if (this.#expanded) {
11778          content.style.removeProperty('height');
11779          content.style.overflow = '';
11780        } else {
11781          textElement.classList.add('text-read-more__text--collapsed');
11782          content.style.removeProperty('height');
11783          content.style.overflow = '';
11784        }
11785      };
11786    }
11787  }
11788
11789  if (!customElements.get('text-read-more-wrapper')) {
11790    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
11791  }
11792</script>
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802  
11803
11804
11805
11806<a
11807  
11808    href="/collections/new"
11809  
11810  class="
11811    size-style
11812    link
11813    link--ATkt5cndtVnhsblFoT__product_list_button_64f7VP
11814    
11815    button--arrow-on-mobile
11816  "
11817  style="--size-style-width: fit-content;--size-style-height: ;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
11818>
11819  Shop All New In
11820  
11821    <span class="button__arrow-icon" aria-hidden="true">
11822      <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
11823  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
11824</svg>
11825
11826    </span>
11827  
11828</a>
11829
11830
11831
11832
11833
11834
11835</div>
11836</div>
11837
11838
11839
11840<script type="module">
11841  (function() {
11842    // Only run if Intersection Observer is supported
11843    if (typeof IntersectionObserver === 'undefined') {
11844      // Fallback: show all animated content immediately
11845      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
11846        el.classList.add('group-block-content--in-view');
11847      });
11848      return;
11849    }
11850
11851    // Respect reduced motion preference
11852    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
11853    if (prefersReducedMotion) {
11854      // Show all animated content immediately without animation
11855      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
11856        el.style.opacity = '1';
11857        el.style.transform = 'none';
11858      });
11859      return;
11860    }
11861
11862    // Set up Intersection Observer for scroll-triggered animations
11863    const observerOptions = {
11864      root: null,
11865      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
11866      threshold: 0.1 // Trigger when 10% of element is visible
11867    };
11868
11869    const observer = new IntersectionObserver((entries) => {
11870      entries.forEach(entry => {
11871        if (entry.isIntersecting) {
11872          const contentElement = entry.target;
11873          // Add the in-view class to trigger animation
11874          contentElement.classList.add('group-block-content--in-view');
11875          // Unobserve after animation is triggered (only animate once)
11876          observer.unobserve(contentElement);
11877        }
11878      });
11879    }, observerOptions);
11880
11881    // Observe all group blocks with animations
11882    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
11883      observer.observe(el);
11884    });
11885  })();
11886</script>
11886
11887
11888</div>
11889
11890  
11891
11892  
11893
11894  
11895
11896<div
11897  class="
11898    resource-list
11899    
11900      force-full-width
11901    
11902    
11903    resource-list__carousel
11904  "
11905  style="--resource-list-column-gap-desktop: 24px;--column-count: 4;--column-count-mobile: 1;--mobile-card-size: 60cqw;"
11906  
11907    data-testid="resource-list-grid"
11908  
11909>
11910  
11911      
11912
11913
11914
11915<div
11916  class="resource-list__carousel"
11917  style="--gutter-slide-width: var(--util-page-margin-offset); --slide-width-max: 450px;"
11918>
11919  <slideshow-component
11920  
11921    ref="resourceListCarousel"
11922  
11923  
11924    class="resource-list__carousel"
11925  
11926  style="--slideshow-timeline: --slide-1, --slide-2, --slide-3, --slide-4, --slide-5, --slide-6, --slide-7, --slide-8;--slide-min-height: auto;--slide-min-height-desktop: auto;"
11927  
11928  initial-slide="0"
11929  
11930  
11931  
11932
11933  
11934>
11935  
11936  <slideshow-container ref="slideshowContainer">
11937    
11938      <slideshow-arrows
11939  position="center"
11940  
11941><button
11942  class="
11943    slideshow-control slideshow-control--previous
11944    
11945     slideshow-control--shape-circle
11946    slideshow-control--style-arrow
11947    button button-unstyled button-unstyled--transparent
11948     flip-x
11949  "
11950  
11951  aria-label="Previous slide"
11952  
11953  on:click="/previous"
11954  ref="previous"
11955>
11956  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
11957</span>
11958</button>
11959<button
11960  class="
11961    slideshow-control slideshow-control--next
11962    
11963     slideshow-control--shape-circle
11964    slideshow-control--style-arrow
11965    button button-unstyled button-unstyled--transparent
11966    
11967  "
11968  
11969  aria-label="Next slide"
11970  
11971  on:click="/next"
11972  ref="next"
11973>
11974  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
11975</span>
11976</button>
11977</slideshow-arrows>
11978
11979    
11980    
11981    <slideshow-slides
11982      tabindex="-1"
11983      ref="scroller"
11984      
11985        gutters="start end"
11986      
11987    >
11988      
11989  
11990    <slideshow-slide
11991  ref="slides[]"
11992  aria-hidden="false"
11993  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
11994  
11995    class="resource-list__slide"
11996  
11997  
11998  
11999  
12000  
12001  
12002  
12003>
12004  <div
12005            class="resource-list__item"
12006          >
12007            
12008              
12009
12010<div >
12011  
12012
12013<style data-shopify>
12014  
12015</style>
12016
12017
12018<product-card-link
12019    data-product-id="11024830300506"
12020    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&width=500"
12021    data-product-transition="true"
12022    
12023  ><product-card
12024  class="product-card"
12025  data-product-id="11024830300506"
12026  id="product-card-AeTdjd2lkb3BwakczM__static-product-card"
12027  data-product-transition="true"
12028  
12029  
12030>
12031  <a
12032    id="4e48057268a67adb3213cc44e81c9b93"
12033    
12034      href="/products/rechargeable-intelligent-uv-disinfector-for-nail-beauty-tools?variant=54933241299290"
12035    
12036    class="product-card__link"
12037    ref="productCardLink"
12038  >
12039    <span class="visually-hidden">
12040      Rechargeable Intelligent UV Disinfector for Nail & Beauty Tools
12041    </span>
12042  </a>
12043  <div
12044    class="
12045      product-card__content
12046      layout-panel-flex
12047      layout-panel-flex--column
12048      product-grid__card
12049      spacing-style
12050      border-style
12051      gap-style
12052      
12053    "
12054    style="
12055      --border-width: 1px; --border-style: none; --border-color:
12056rgb(var(--color-border-rgb) / 1.0); --border-radius:
120570px; 
12058
12059      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
12060
12061
12062
12063--horizontal-alignment: ; --vertical-alignment: ;
12064--vertical-alignment-mobile: ;
12065
12066      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
12067      --product-card-gap: 8px;
12068      --quick-add-display: flex;
12069      --quick-add-mobile-display: flex;
12070      --quick-add-mobile-opacity: 1;
12071      
12072      
12073      
12074      
12075    "
12076  >
12077    
12078  
12079
12080
12081
12082
12083
12084
12085
12086<div
12087  ref="cardGallery"
12088  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7 spacing-style border-style"
12089  style="
12090    --border-width: 1px; --border-style: solid; --border-color:
12091rgb(var(--color-border-rgb) / 1.0); --border-radius:
1209212px;  overflow: hidden; 
12093
12094    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
12095    --gallery-aspect-ratio: 1.0;
12096  "
12097  data-product-id="11024830300506"
12098  
12099    on:pointerenter="/previewImage"
12100    on:pointerleave="/resetImage"
12101  
12102  
12103    data-view-transition-to-main-product
12104  
12105  data-image-ratio="adapt"
12106  
12107>
12108    <a
12109      class="contents"
12110      ref="cardGalleryLink"
12111      href="/products/rechargeable-intelligent-uv-disinfector-for-nail-beauty-tools"
12112      aria-label="Rechargeable Intelligent UV Disinfector for Nail & Beauty Tools"
12113    >
12114      <slideshow-component
12115  
12116    ref="slideshow"
12117  
12118  
12119  style="--slideshow-timeline: --slide-1, --slide-2;--slide-min-height: auto;--slide-min-height-desktop: auto;"
12120  
12121  initial-slide="0"
12122  
12123  
12124    infinite
12125  
12126  
12127
12128  data-generic-media-size="2" allow-nested="true"
12129>
12130  
12131  <slideshow-container ref="slideshowContainer">
12132    
12133    
12134    <slideshow-slides
12135      tabindex="-1"
12136      ref="scroller"
12137      
12138    >
12139      <slideshow-slide
12140  ref="slides[]"
12141  aria-hidden="false"
12142  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
12143  
12144    class="product-media-container media-fit product-media-container--image"
12145  
12146  
12147  
12148  
12149    slide-id="62529835860314"
12150  
12151  
12152  
12153  
12154>
12155  
12156
12157<div
12158  class="product-media"
12159  style="--ratio: 1.0"
12160  data-media-id="62529835860314"
12161>
12162  
12163  <img src="//www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=3840" alt="Rechargeable Intelligent UV Disinfector for Nail &amp; Beauty Tools" srcset="//www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
12164
12165  
12166</div>
12167
12168
12169
12170</slideshow-slide>
12171<slideshow-slide
12172  ref="slides[]"
12173  aria-hidden="true"
12174  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
12175  
12176    class="product-media-container media-fit product-media-container--image"
12177  
12178  
12179  
12180  
12181    slide-id="62529835827546"
12182  
12183  
12184  
12185  
12186>
12187  
12188
12189<div
12190  class="product-media"
12191  style="--ratio: 1.0"
12192  data-media-id="62529835827546"
12193>
12194  
12195  <img src="//www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=3840" alt="Rechargeable Intelligent UV Disinfector for Nail &amp; Beauty Tools" srcset="//www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/intellegentdisinfector2.jpg?v=1791474363&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
12196
12197  
12198</div>
12199
12200
12201
12202</slideshow-slide>
12203
12204    </slideshow-slides>
12205  </slideshow-container>
12206  
12207</slideshow-component>
12208
12209
12210
12211    </a>
12212  
12213  
12214    <div
12215      class="product-badges product-badges--top-right"
12216      style="
12217        --badge-border-radius: 100px;
12218        --badge-font-family: var(--font-body--family);
12218 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
12219      "
12220    ></div>
12221    
12222      
12223
12224<quick-add-component
12225  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
12226  ref="quickAdd"
12227  data-product-title="Rechargeable Intelligent UV Disinfector for Nail & Beauty Tools"
12228  data-quick-add-button="add"
12229  data-product-options-count="1"
12230>
12231  <product-form-component
12232    data-section-id="template--28213213921626__product_list_ykU4x3"
12233    data-product-id="11024830300506"
12234    on:submit="/handleSubmit"
12235    class="quick-add__product-form-component"
12236  >
12237    <div
12238      class="visually-hidden"
12239      aria-live="assertive"
12240      role="status"
12241      aria-atomic="true"
12242      ref="liveRegion"
12243    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11024830300506-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
12244        type="hidden"
12245        name="id"
12246        ref="variantId"
12247        value="54933241299290"
12248        
12249      >
12250      <input
12251        type="hidden"
12252        name="quantity"
12253        value="1"
12254      >
12255      
12256      <add-to-cart-component
12257  ref="addToCartButtonContainer"
12258  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/intelligentdisinfector.jpg?v=1791474364&width=100"
12259  data-add-to-cart-animation="true"
12260>
12261  <button
12262    
12263    type="submit"
12264    name="add"
12265    ref="addToCartButton"
12266    on:click="/handleClick"
12267    class="button button quick-add__button quick-add__button--add add-to-cart-button"
12268    
12269    
12270  >
12271    <span
12272      class="add-to-cart-text"
12273    >
12274      
12275        <span
12276          aria-hidden="true"
12277          class="svg-wrapper add-to-cart-icon"
12278        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
12279</span>
12280      
12281      <span class="add-to-cart-text__content is-visually-hidden-mobile">
12282        <span>
12283          <span>Add</span>
12284        </span>
12285      </span>
12286    </span>
12287    
12288    <span class="add-to-cart__added">
12289      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
12290  <g class="check">
12291    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
12292    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
12293  </g>
12294  <g class="burst">
12295    <g style="--index: 0;">
12296      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12297    </g>
12298    <g style="--index: 1;">
12299      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12300    </g>
12301    <g style="--index: 2;">
12302      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12303    </g>
12304    <g style="--index: 3;">
12305      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12306    </g>
12307    <g style="--index: 4;">
12308      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12309    </g>
12310    <g style="--index: 5;">
12311      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12312    </g>
12313    <g style="--index: 6;">
12314      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12315    </g>
12316    <g style="--index: 7;">
12317      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
12318    </g>
12319  </g>
12320</svg>
12321</span>
12322    </span>
12323  </button>
12324</add-to-cart-component>
12325
12326
12327
12328
12329      <button
12330        class="button quick-add__button quick-add__button--choose add-to-cart-button"
12331        
12332        type="button"
12333        name="add"
12334        on:click="quick-add-component/handleClick"
12335      >
12336        <span
12337          class="add-to-cart-text quick-add__button-content"
12338        >
12339          
12340          <span
12341            aria-hidden="true"
12342            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
12343          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
12344</span>
12345          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
12346            <span>
12347              
12348              <span>
12349                Add
12350              </span>
12351            </span>
12352          </span>
12353        </span>
12354      </button><input type="hidden" name="product-id" value="11024830300506" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
12355</quick-add-component>
12356
12357
12358
12359    
12360  
12361
12362</div>
12363
12364
12365
12366
12367
12368<div class="product-grid-view-zoom-out--details">
12369  
12370    <h3 class="h4">Rechargeable Intelligent UV Disinfector for Nail & Beauty Tools</h3>
12371  
12372</div>
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386  
12387    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
12388      <p>TNBL </p>
12389    </div>
12390  
12391
12392
12393
12394
12395<script type="module">
12396  class TextReadMoreWrapper extends HTMLElement {
12397    #expanded = false;
12398    #animation = null;
12399    #collapsedHeight = 0;
12400
12401    connectedCallback() {
12402      const content = this.querySelector('.text-read-more__content');
12403      const textElement = this.querySelector('.text-read-more__text');
12404      const button = this.querySelector('.text-read-more__button');
12405
12406      if (!content || !textElement || !button) return;
12407
12408      // Set initial state
12409      this.dataset.expanded = 'false';
12410
12411      // Wait for content to render - use double RAF to ensure layout is complete
12412      requestAnimationFrame(() => {
12413        requestAnimationFrame(() => {
12414          // Additional small delay to ensure fonts and styles are applied
12415          setTimeout(() => {
12416            this.#checkOverflow(content, textElement, button);
12417          }, 50);
12418          
12419          // Recheck on resize
12420          const resizeObserver = new ResizeObserver(() => {
12421            if (!this.#expanded) {
12422              this.#checkOverflow(content, textElement, button);
12423            }
12424          });
12425          resizeObserver.observe(content);
12426
12427          // Setup button click handler
12428          button.addEventListener('click', (e) => {
12429            e.preventDefault();
12430            this.#toggle(content, textElement, button);
12431          });
12432        });
12433      });
12434    }
12435
12436    #checkOverflow(content, textElement, button) {
12437      // Ensure collapsed state is applied
12438      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
12439        textElement.classList.add('text-read-more__text--collapsed');
12440      }
12441      
12442      // Get collapsed height first
12443      const collapsedHeight = content.scrollHeight;
12444      this.#collapsedHeight = collapsedHeight;
12445      
12446      // Temporarily remove line-clamp to measure full height
12447      textElement.classList.remove('text-read-more__text--collapsed');
12448      
12449      // Force reflow
12450      void content.offsetHeight;
12451      
12452      const fullHeight = content.scrollHeight;
12453      
12454      // Restore line-clamp
12455      textElement.classList.add('text-read-more__text--collapsed');
12456      
12457      // Show button if content exceeds 2 lines (with small threshold for rounding)
12458      if (fullHeight > collapsedHeight + 5) {
12459        button.removeAttribute('hidden');
12460      } else {
12461        button.setAttribute('hidden', '');
12462      }
12463    }
12464
12465    #toggle(content, textElement, button) {
12466      const startHeight = content.offsetHeight;
12467      let endHeight;
12468
12469      if (!this.#expanded) {
12470        // Expanding
12471        textElement.classList.remove('text-read-more__text--collapsed');
12472        endHeight = content.scrollHeight;
12473        this.#expanded = true;
12474      } else {
12475        // Collapsing
12476        endHeight = this.#collapsedHeight;
12477        this.#expanded = false;
12478      }
12479
12480      this.dataset.expanded = this.#expanded;
12481      button.setAttribute('aria-expanded', this.#expanded);
12482
12483      // Animate
12484      content.style.overflow = 'hidden';
12485      this.#animation?.cancel();
12486
12487      this.#animation = content.animate(
12488        {
12489          height: [`${startHeight}px`, `${endHeight}px`],
12490        },
12491        {
12492          duration: 300,
12493          easing: 'ease-in-out',
12494        }
12495      );
12496
12497      this.#animation.onfinish = () => {
12498        if (this.#expanded) {
12499          content.style.removeProperty('height');
12500          content.style.overflow = '';
12501        } else {
12502          textElement.classList.add('text-read-more__text--collapsed');
12503          content.style.removeProperty('height');
12504          content.style.overflow = '';
12505        }
12506      };
12507    }
12508  }
12509
12510  if (!customElements.get('text-read-more-wrapper')) {
12511    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
12512  }
12513</script>
12513
12514
12515
12516
12517
12518
12519
12520  
12521  <a
12522    class="contents user-select-text"
12523    ref="productTitleLink"
12524    href="/products/rechargeable-intelligent-uv-disinfector-for-nail-beauty-tools"
12525  >
12526    
12527
12528
12529
12530
12531
12532
12533  
12534    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
12535      <p>Rechargeable Intelligent UV Disinfector for Nail & Beauty Tools</p>
12536    </div>
12537  
12538
12539
12540
12541
12542<script type="module">
12543  class TextReadMoreWrapper extends HTMLElement {
12544    #expanded = false;
12545    #animation = null;
12546    #collapsedHeight = 0;
12547
12548    connectedCallback() {
12549      const content = this.querySelector('.text-read-more__content');
12550      const textElement = this.querySelector('.text-read-more__text');
12551      const button = this.querySelector('.text-read-more__button');
12552
12553      if (!content || !textElement || !button) return;
12554
12555      // Set initial state
12556      this.dataset.expanded = 'false';
12557
12558      // Wait for content to render - use double RAF to ensure layout is complete
12559      requestAnimationFrame(() => {
12560        requestAnimationFrame(() => {
12561          // Additional small delay to ensure fonts and styles are applied
12562          setTimeout(() => {
12563            this.#checkOverflow(content, textElement, button);
12564          }, 50);
12565          
12566          // Recheck on resize
12567          const resizeObserver = new ResizeObserver(() => {
12568            if (!this.#expanded) {
12569              this.#checkOverflow(content, textElement, button);
12570            }
12571          });
12572          resizeObserver.observe(content);
12573
12574          // Setup button click handler
12575          button.addEventListener('click', (e) => {
12576            e.preventDefault();
12577            this.#toggle(content, textElement, button);
12578          });
12579        });
12580      });
12581    }
12582
12583    #checkOverflow(content, textElement, button) {
12584      // Ensure collapsed state is applied
12585      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
12586        textElement.classList.add('text-read-more__text--collapsed');
12587      }
12588      
12589      // Get collapsed height first
12590      const collapsedHeight = content.scrollHeight;
12591      this.#collapsedHeight = collapsedHeight;
12592      
12593      // Temporarily remove line-clamp to measure full height
12594      textElement.classList.remove('text-read-more__text--collapsed');
12595      
12596      // Force reflow
12597      void content.offsetHeight;
12598      
12599      const fullHeight = content.scrollHeight;
12600      
12601      // Restore line-clamp
12602      textElement.classList.add('text-read-more__text--collapsed');
12603      
12604      // Show button if content exceeds 2 lines (with small threshold for rounding)
12605      if (fullHeight > collapsedHeight + 5) {
12606        button.removeAttribute('hidden');
12607      } else {
12608        button.setAttribute('hidden', '');
12609      }
12610    }
12611
12612    #toggle(content, textElement, button) {
12613      const startHeight = content.offsetHeight;
12614      let endHeight;
12615
12616      if (!this.#expanded) {
12617        // Expanding
12618        textElement.classList.remove('text-read-more__text--collapsed');
12619        endHeight = content.scrollHeight;
12620        this.#expanded = true;
12621      } else {
12622        // Collapsing
12623        endHeight = this.#collapsedHeight;
12624        this.#expanded = false;
12625      }
12626
12627      this.dataset.expanded = this.#expanded;
12628      button.setAttribute('aria-expanded', this.#expanded);
12629
12630      // Animate
12631      content.style.overflow = 'hidden';
12632      this.#animation?.cancel();
12633
12634      this.#animation = content.animate(
12635        {
12636          height: [`${startHeight}px`, `${endHeight}px`],
12637        },
12638        {
12639          duration: 300,
12640          easing: 'ease-in-out',
12641        }
12642      );
12643
12644      this.#animation.onfinish = () => {
12645        if (this.#expanded) {
12646          content.style.removeProperty('height');
12647          content.style.overflow = '';
12648        } else {
12649          textElement.classList.add('text-read-more__text--collapsed');
12650          content.style.removeProperty('height');
12651          content.style.overflow = '';
12652        }
12653      };
12654    }
12655  }
12656
12657  if (!customElements.get('text-read-more-wrapper')) {
12658    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
12659  }
12660</script>
12660
12661
12662  </a>
12663
12664
12665
12666
12667
12668
12669<product-price
12670  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
12671  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT"
12672  data-product-id="11024830300506"
12673  style="
12674    
12675--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
12676    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
12677    --width: 100%;
12678  "
12679  
12680>
12681  <div ref="priceContainer">
12682  
12683    
12684    
12685
12686    
12687      <span class="price">£18.00</span>
12688    
12689
12690    
12691  
12692</div>
12693
12694  
12695</product-price>
12696
12697
12698
12699
12700
12701
12702
12703
12704  </div>
12705</product-card></product-card-link>
12706
12707</div>
12708
12709
12710
12711
12712
12713
12714            
12715          </div>
12716
12717          
12718            
12719</slideshow-slide>
12720
12721  
12722    <slideshow-slide
12723  ref="slides[]"
12724  aria-hidden="true"
12725  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
12726  
12727    class="resource-list__slide"
12728  
12729  
12730  
12731  
12732  
12733  
12734  
12735>
12736  
12737          
12738        
12739          <div
12740            class="resource-list__item"
12741          >
12742            
12743              
12744
12745<div >
12746  
12747
12748<style data-shopify>
12749  
12750</style>
12751
12752
12753<product-card-link
12754    data-product-id="11022935228762"
12755    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&width=500"
12756    data-product-transition="true"
12757    
12758  ><product-card
12759  class="product-card"
12760  data-product-id="11022935228762"
12761  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-1"
12762  data-product-transition="true"
12763  
12764  
12765>
12766  <a
12767    id="5ec47469afaaa59a91f4cc5778f4eb4c"
12768    
12769      href="/products/mr-nail-3-layer-lint-free-nail-wipes-500pcs?variant=54925456146778"
12770    
12771    class="product-card__link"
12772    ref="productCardLink"
12773  >
12774    <span class="visually-hidden">
12775      MR NAIL 3-Layer Lint-Free Nail Wipes – 500pcs
12776    </span>
12777  </a>
12778  <div
12779    class="
12780      product-card__content
12781      layout-panel-flex
12782      layout-panel-flex--column
12783      product-grid__card
12784      spacing-style
12785      border-style
12786      gap-style
12787      
12788    "
12789    style="
12790      --border-width: 1px; --border-style: none; --border-color:
12791rgb(var(--color-border-rgb) / 1.0); --border-radius:
127920px; 
12793
12794      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
12795
12796
12797
12798--horizontal-alignment: ; --vertical-alignment: ;
12799--vertical-alignment-mobile: ;
12800
12801      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
12802      --product-card-gap: 8px;
12803      --quick-add-display: flex;
12804      --quick-add-mobile-display: flex;
12805      --quick-add-mobile-opacity: 1;
12806      
12807      
12808      
12809      
12810    "
12811  >
12812    
12813  
12814
12815
12816
12817
12818
12819
12820
12821<div
12822  ref="cardGallery"
12823  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-1 spacing-style border-style"
12824  style="
12825    --border-width: 1px; --border-style: solid; --border-color:
12826rgb(var(--color-border-rgb) / 1.0); --border-radius:
1282712px;  overflow: hidden; 
12828
12829    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
12830    --gallery-aspect-ratio: 1.0;
12831  "
12832  data-product-id="11022935228762"
12833  
12834    on:pointerenter="/previewImage"
12835    on:pointerleave="/resetImage"
12836  
12837  
12838    data-view-transition-to-main-product
12839  
12840  data-image-ratio="adapt"
12841  
12842>
12843    <a
12844      class="contents"
12845      ref="cardGalleryLink"
12846      href="/products/mr-nail-3-layer-lint-free-nail-wipes-500pcs"
12847      aria-label="MR NAIL 3-Layer Lint-Free Nail Wipes – 500pcs"
12848    >
12849      <slideshow-component
12850  
12851    ref="slideshow"
12852  
12853  
12854  style="--slideshow-timeline: --slide-1;--slide-min-height: auto;--slide-min-height-desktop: auto;"
12855  
12856  initial-slide="0"
12857  
12858  
12859    infinite
12860  
12861  
12862
12863  data-generic-media-size="1" allow-nested="true"
12864>
12865  
12866  <slideshow-container ref="slideshowContainer">
12867    
12868    
12869    <slideshow-slides
12870      tabindex="-1"
12871      ref="scroller"
12872      
12873    >
12874      <slideshow-slide
12875  ref="slides[]"
12876  aria-hidden="false"
12877  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
12878  
12879    class="product-media-container media-fit product-media-container--image"
12880  
12881  
12882  
12883  
12884    slide-id="62515806470490"
12885  
12886  
12887  
12888  
12889>
12890  
12891
12892<div
12893  class="product-media"
12894  style="--ratio: 1.0"
12895  data-media-id="62515806470490"
12896>
12897  
12898  <img src="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=3840" alt="MR NAIL 3-Layer Lint-Free Nail Wipes – 500pcs" srcset="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
12899
12900  
12901</div>
12902
12903
12904
12905</slideshow-slide>
12906
12907    </slideshow-slides>
12908  </slideshow-container>
12909  
12910</slideshow-component>
12911
12912
12913
12914    </a>
12915  
12916  
12917    <div
12918      class="product-badges product-badges--top-right"
12919      style="
12920        --badge-border-radius: 100px;
12921        --badge-font-family: var(--font-body--family);
12921 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
12922      "
12923    ></div>
12924    
12925      
12926
12927<quick-add-component
12928  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
12929  ref="quickAdd"
12930  data-product-title="MR NAIL 3-Layer Lint-Free Nail Wipes – 500pcs"
12931  data-quick-add-button="add"
12932  data-product-options-count="1"
12933>
12934  <product-form-component
12935    data-section-id="template--28213213921626__product_list_ykU4x3"
12936    data-product-id="11022935228762"
12937    on:submit="/handleSubmit"
12938    class="quick-add__product-form-component"
12939  >
12940    <div
12941      class="visually-hidden"
12942      aria-live="assertive"
12943      role="status"
12944      aria-atomic="true"
12945      ref="liveRegion"
12946    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11022935228762-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-1" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
12947        type="hidden"
12948        name="id"
12949        ref="variantId"
12950        value="54925456146778"
12951        
12952      >
12953      <input
12954        type="hidden"
12955        name="quantity"
12956        value="1"
12957      >
12958      
12959      <add-to-cart-component
12960  ref="addToCartButtonContainer"
12961  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel_1.png?v=1791385545&width=100"
12962  data-add-to-cart-animation="true"
12963>
12964  <button
12965    
12966    type="submit"
12967    name="add"
12968    ref="addToCartButton"
12969    on:click="/handleClick"
12970    class="button button quick-add__button quick-add__button--add add-to-cart-button"
12971    
12972    
12973  >
12974    <span
12975      class="add-to-cart-text"
12976    >
12977      
12978        <span
12979          aria-hidden="true"
12980          class="svg-wrapper add-to-cart-icon"
12981        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
12982</span>
12983      
12984      <span class="add-to-cart-text__content is-visually-hidden-mobile">
12985        <span>
12986          <span>Add</span>
12987        </span>
12988      </span>
12989    </span>
12990    
12991    <span class="add-to-cart__added">
12992      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
12993  <g class="check">
12994    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
12995    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
12996  </g>
12997  <g class="burst">
12998    <g style="--index: 0;">
12999      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13000    </g>
13001    <g style="--index: 1;">
13002      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13003    </g>
13004    <g style="--index: 2;">
13005      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13006    </g>
13007    <g style="--index: 3;">
13008      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13009    </g>
13010    <g style="--index: 4;">
13011      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13012    </g>
13013    <g style="--index: 5;">
13014      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13015    </g>
13016    <g style="--index: 6;">
13017      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13018    </g>
13019    <g style="--index: 7;">
13020      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13021    </g>
13022  </g>
13023</svg>
13024</span>
13025    </span>
13026  </button>
13027</add-to-cart-component>
13028
13029
13030
13031
13032      <button
13033        class="button quick-add__button quick-add__button--choose add-to-cart-button"
13034        
13035        type="button"
13036        name="add"
13037        on:click="quick-add-component/handleClick"
13038      >
13039        <span
13040          class="add-to-cart-text quick-add__button-content"
13041        >
13042          
13043          <span
13044            aria-hidden="true"
13045            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
13046          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
13047</span>
13048          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
13049            <span>
13050              
13051              <span>
13052                Add
13053              </span>
13054            </span>
13055          </span>
13056        </span>
13057      </button><input type="hidden" name="product-id" value="11022935228762" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
13058</quick-add-component>
13059
13060
13061
13062    
13063  
13064
13065</div>
13066
13067
13068
13069
13070
13071<div class="product-grid-view-zoom-out--details">
13072  
13073    <h3 class="h4">MR NAIL 3-Layer Lint-Free Nail Wipes – 500pcs</h3>
13074  
13075</div>
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089  
13090    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-1 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
13091      <p>MR NAIL </p>
13092    </div>
13093  
13094
13095
13096
13097
13098<script type="module">
13099  class TextReadMoreWrapper extends HTMLElement {
13100    #expanded = false;
13101    #animation = null;
13102    #collapsedHeight = 0;
13103
13104    connectedCallback() {
13105      const content = this.querySelector('.text-read-more__content');
13106      const textElement = this.querySelector('.text-read-more__text');
13107      const button = this.querySelector('.text-read-more__button');
13108
13109      if (!content || !textElement || !button) return;
13110
13111      // Set initial state
13112      this.dataset.expanded = 'false';
13113
13114      // Wait for content to render - use double RAF to ensure layout is complete
13115      requestAnimationFrame(() => {
13116        requestAnimationFrame(() => {
13117          // Additional small delay to ensure fonts and styles are applied
13118          setTimeout(() => {
13119            this.#checkOverflow(content, textElement, button);
13120          }, 50);
13121          
13122          // Recheck on resize
13123          const resizeObserver = new ResizeObserver(() => {
13124            if (!this.#expanded) {
13125              this.#checkOverflow(content, textElement, button);
13126            }
13127          });
13128          resizeObserver.observe(content);
13129
13130          // Setup button click handler
13131          button.addEventListener('click', (e) => {
13132            e.preventDefault();
13133            this.#toggle(content, textElement, button);
13134          });
13135        });
13136      });
13137    }
13138
13139    #checkOverflow(content, textElement, button) {
13140      // Ensure collapsed state is applied
13141      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
13142        textElement.classList.add('text-read-more__text--collapsed');
13143      }
13144      
13145      // Get collapsed height first
13146      const collapsedHeight = content.scrollHeight;
13147      this.#collapsedHeight = collapsedHeight;
13148      
13149      // Temporarily remove line-clamp to measure full height
13150      textElement.classList.remove('text-read-more__text--collapsed');
13151      
13152      // Force reflow
13153      void content.offsetHeight;
13154      
13155      const fullHeight = content.scrollHeight;
13156      
13157      // Restore line-clamp
13158      textElement.classList.add('text-read-more__text--collapsed');
13159      
13160      // Show button if content exceeds 2 lines (with small threshold for rounding)
13161      if (fullHeight > collapsedHeight + 5) {
13162        button.removeAttribute('hidden');
13163      } else {
13164        button.setAttribute('hidden', '');
13165      }
13166    }
13167
13168    #toggle(content, textElement, button) {
13169      const startHeight = content.offsetHeight;
13170      let endHeight;
13171
13172      if (!this.#expanded) {
13173        // Expanding
13174        textElement.classList.remove('text-read-more__text--collapsed');
13175        endHeight = content.scrollHeight;
13176        this.#expanded = true;
13177      } else {
13178        // Collapsing
13179        endHeight = this.#collapsedHeight;
13180        this.#expanded = false;
13181      }
13182
13183      this.dataset.expanded = this.#expanded;
13184      button.setAttribute('aria-expanded', this.#expanded);
13185
13186      // Animate
13187      content.style.overflow = 'hidden';
13188      this.#animation?.cancel();
13189
13190      this.#animation = content.animate(
13191        {
13192          height: [`${startHeight}px`, `${endHeight}px`],
13193        },
13194        {
13195          duration: 300,
13196          easing: 'ease-in-out',
13197        }
13198      );
13199
13200      this.#animation.onfinish = () => {
13201        if (this.#expanded) {
13202          content.style.removeProperty('height');
13203          content.style.overflow = '';
13204        } else {
13205          textElement.classList.add('text-read-more__text--collapsed');
13206          content.style.removeProperty('height');
13207          content.style.overflow = '';
13208        }
13209      };
13210    }
13211  }
13212
13213  if (!customElements.get('text-read-more-wrapper')) {
13214    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
13215  }
13216</script>
13216
13217
13218
13219
13220
13221
13222
13223  
13224  <a
13225    class="contents user-select-text"
13226    ref="productTitleLink"
13227    href="/products/mr-nail-3-layer-lint-free-nail-wipes-500pcs"
13228  >
13229    
13230
13231
13232
13233
13234
13235
13236  
13237    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-1 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
13238      <p>MR NAIL 3-Layer Lint-Free Nail Wipes – 500pcs</p>
13239    </div>
13240  
13241
13242
13243
13244
13245<script type="module">
13246  class TextReadMoreWrapper extends HTMLElement {
13247    #expanded = false;
13248    #animation = null;
13249    #collapsedHeight = 0;
13250
13251    connectedCallback() {
13252      const content = this.querySelector('.text-read-more__content');
13253      const textElement = this.querySelector('.text-read-more__text');
13254      const button = this.querySelector('.text-read-more__button');
13255
13256      if (!content || !textElement || !button) return;
13257
13258      // Set initial state
13259      this.dataset.expanded = 'false';
13260
13261      // Wait for content to render - use double RAF to ensure layout is complete
13262      requestAnimationFrame(() => {
13263        requestAnimationFrame(() => {
13264          // Additional small delay to ensure fonts and styles are applied
13265          setTimeout(() => {
13266            this.#checkOverflow(content, textElement, button);
13267          }, 50);
13268          
13269          // Recheck on resize
13270          const resizeObserver = new ResizeObserver(() => {
13271            if (!this.#expanded) {
13272              this.#checkOverflow(content, textElement, button);
13273            }
13274          });
13275          resizeObserver.observe(content);
13276
13277          // Setup button click handler
13278          button.addEventListener('click', (e) => {
13279            e.preventDefault();
13280            this.#toggle(content, textElement, button);
13281          });
13282        });
13283      });
13284    }
13285
13286    #checkOverflow(content, textElement, button) {
13287      // Ensure collapsed state is applied
13288      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
13289        textElement.classList.add('text-read-more__text--collapsed');
13290      }
13291      
13292      // Get collapsed height first
13293      const collapsedHeight = content.scrollHeight;
13294      this.#collapsedHeight = collapsedHeight;
13295      
13296      // Temporarily remove line-clamp to measure full height
13297      textElement.classList.remove('text-read-more__text--collapsed');
13298      
13299      // Force reflow
13300      void content.offsetHeight;
13301      
13302      const fullHeight = content.scrollHeight;
13303      
13304      // Restore line-clamp
13305      textElement.classList.add('text-read-more__text--collapsed');
13306      
13307      // Show button if content exceeds 2 lines (with small threshold for rounding)
13308      if (fullHeight > collapsedHeight + 5) {
13309        button.removeAttribute('hidden');
13310      } else {
13311        button.setAttribute('hidden', '');
13312      }
13313    }
13314
13315    #toggle(content, textElement, button) {
13316      const startHeight = content.offsetHeight;
13317      let endHeight;
13318
13319      if (!this.#expanded) {
13320        // Expanding
13321        textElement.classList.remove('text-read-more__text--collapsed');
13322        endHeight = content.scrollHeight;
13323        this.#expanded = true;
13324      } else {
13325        // Collapsing
13326        endHeight = this.#collapsedHeight;
13327        this.#expanded = false;
13328      }
13329
13330      this.dataset.expanded = this.#expanded;
13331      button.setAttribute('aria-expanded', this.#expanded);
13332
13333      // Animate
13334      content.style.overflow = 'hidden';
13335      this.#animation?.cancel();
13336
13337      this.#animation = content.animate(
13338        {
13339          height: [`${startHeight}px`, `${endHeight}px`],
13340        },
13341        {
13342          duration: 300,
13343          easing: 'ease-in-out',
13344        }
13345      );
13346
13347      this.#animation.onfinish = () => {
13348        if (this.#expanded) {
13349          content.style.removeProperty('height');
13350          content.style.overflow = '';
13351        } else {
13352          textElement.classList.add('text-read-more__text--collapsed');
13353          content.style.removeProperty('height');
13354          content.style.overflow = '';
13355        }
13356      };
13357    }
13358  }
13359
13360  if (!customElements.get('text-read-more-wrapper')) {
13361    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
13362  }
13363</script>
13363
13364
13365  </a>
13366
13367
13368
13369
13370
13371
13372<product-price
13373  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
13374  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-1"
13375  data-product-id="11022935228762"
13376  style="
13377    
13378--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
13379    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
13380    --width: 100%;
13381  "
13382  
13383>
13384  <div ref="priceContainer">
13385  
13386    
13387    
13388
13389    
13390      <span class="price">£4.00</span>
13391    
13392
13393    
13394  
13395</div>
13396
13397  
13398</product-price>
13399
13400
13401
13402
13403
13404
13405
13406
13407  </div>
13408</product-card></product-card-link>
13409
13410</div>
13411
13412
13413
13414
13415
13416
13417            
13418          </div>
13419
13420          
13421            
13422</slideshow-slide>
13423
13424  
13425    <slideshow-slide
13426  ref="slides[]"
13427  aria-hidden="true"
13428  style="--slideshow-timeline: --slide-2; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
13429  
13430    class="resource-list__slide"
13431  
13432  
13433  
13434  
13435  
13436  
13437  
13438>
13439  
13440          
13441        
13442          <div
13443            class="resource-list__item"
13444          >
13445            
13446              
13447
13448<div >
13449  
13450
13451<style data-shopify>
13452  
13453</style>
13454
13455
13456<product-card-link
13457    data-product-id="11022914093402"
13458    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&width=500"
13459    data-product-transition="true"
13460    
13461  ><product-card
13462  class="product-card"
13463  data-product-id="11022914093402"
13464  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-2"
13465  data-product-transition="true"
13466  
13467  
13468>
13469  <a
13470    id="d2b62c68d28ecc9e46fddd064543554f"
13471    
13472      href="/products/disposable-salon-towels-biodegradable-70-x-35cm-hair-nails-pedicure?variant=54925336052058"
13473    
13474    class="product-card__link"
13475    ref="productCardLink"
13476  >
13477    <span class="visually-hidden">
13478      Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails & Pedicure
13479    </span>
13480  </a>
13481  <div
13482    class="
13483      product-card__content
13484      layout-panel-flex
13485      layout-panel-flex--column
13486      product-grid__card
13487      spacing-style
13488      border-style
13489      gap-style
13490      
13491    "
13492    style="
13493      --border-width: 1px; --border-style: none; --border-color:
13494rgb(var(--color-border-rgb) / 1.0); --border-radius:
134950px; 
13496
13497      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
13498
13499
13500
13501--horizontal-alignment: ; --vertical-alignment: ;
13502--vertical-alignment-mobile: ;
13503
13504      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
13505      --product-card-gap: 8px;
13506      --quick-add-display: flex;
13507      --quick-add-mobile-display: flex;
13508      --quick-add-mobile-opacity: 1;
13509      
13510      
13511      
13512      
13513    "
13514  >
13515    
13516  
13517
13518
13519
13520
13521
13522
13523
13524<div
13525  ref="cardGallery"
13526  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-2 spacing-style border-style"
13527  style="
13528    --border-width: 1px; --border-style: solid; --border-color:
13529rgb(var(--color-border-rgb) / 1.0); --border-radius:
1353012px;  overflow: hidden; 
13531
13532    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
13533    --gallery-aspect-ratio: 1.0;
13534  "
13535  data-product-id="11022914093402"
13536  
13537    on:pointerenter="/previewImage"
13538    on:pointerleave="/resetImage"
13539  
13540  
13541    data-view-transition-to-main-product
13542  
13543  data-image-ratio="adapt"
13544  
13545>
13546    <a
13547      class="contents"
13548      ref="cardGalleryLink"
13549      href="/products/disposable-salon-towels-biodegradable-70-x-35cm-hair-nails-pedicure"
13550      aria-label="Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails & Pedicure"
13551    >
13552      <slideshow-component
13553  
13554    ref="slideshow"
13555  
13556  
13557  style="--slideshow-timeline: --slide-1, --slide-2, --slide-3;--slide-min-height: auto;--slide-min-height-desktop: auto;"
13558  
13559  initial-slide="0"
13560  
13561  
13562    infinite
13563  
13564  
13565
13566  data-generic-media-size="3" allow-nested="true"
13567>
13568  
13569  <slideshow-container ref="slideshowContainer">
13570    
13571      <slideshow-arrows
13572  position="center"
13573  
13574><button
13575  class="
13576    slideshow-control slideshow-control--previous
13577    
13578    
13579    slideshow-control--style-arrow
13580    button button-unstyled button-unstyled--transparent
13581     flip-x
13582  "
13583  
13584  aria-label="Previous slide"
13585  
13586  on:click="/previous"
13587  ref="previous"
13588>
13589  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
13590</span>
13591</button>
13592<button
13593  class="
13594    slideshow-control slideshow-control--next
13595    
13596    
13597    slideshow-control--style-arrow
13598    button button-unstyled button-unstyled--transparent
13599    
13600  "
13601  
13602  aria-label="Next slide"
13603  
13604  on:click="/next"
13605  ref="next"
13606>
13607  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
13608</span>
13609</button>
13610</slideshow-arrows>
13611
13612    
13613    
13614    <slideshow-slides
13615      tabindex="-1"
13616      ref="scroller"
13617      
13618    >
13619      <slideshow-slide
13620  ref="slides[]"
13621  aria-hidden="false"
13622  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
13623  
13624    class="product-media-container media-fit product-media-container--image"
13625  
13626  
13627  
13628  
13629    slide-id="62515699155290"
13630  
13631  
13632  
13633  
13634>
13635  
13636
13637<div
13638  class="product-media"
13639  style="--ratio: 1.0"
13640  data-media-id="62515699155290"
13641>
13642  
13643  <img src="//www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=3840" alt="Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails &amp; Pedicure" srcset="//www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
13644
13645  
13646</div>
13647
13648
13649
13650</slideshow-slide>
13651<slideshow-slide
13652  ref="slides[]"
13653  aria-hidden="true"
13654  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
13655  
13656    class="product-media-container media-fit product-media-container--image"
13657  
13658  
13659  
13660  
13661    slide-id="62515699188058"
13662  
13663  
13664  
13665  
13666>
13667  
13668
13669<div
13670  class="product-media"
13671  style="--ratio: 1.0"
13672  data-media-id="62515699188058"
13673>
13674  
13675  <img src="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=3840" alt="Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails &amp; Pedicure" srcset="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/disposablesalontowel.png?v=1791384240&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
13676
13677  
13678</div>
13679
13680
13681
13682</slideshow-slide>
13683<slideshow-slide
13684  ref="slides[]"
13685  aria-hidden="true"
13686  style="--slideshow-timeline: --slide-2; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
13687  
13688    class="product-media-container media-fit product-media-container--image"
13689  
13690  
13691  
13692  
13693    slide-id="62515750601050"
13694  
13695  
13696  
13697  
13698>
13699  
13700
13701<div
13702  class="product-media"
13703  style="--ratio: 1.0"
13704  data-media-id="62515750601050"
13705>
13706  
13707  <img src="//www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=3840" alt="Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails &amp; Pedicure" srcset="//www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/disposabel_towel.jpg?v=1791384555&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
13708
13709  
13710</div>
13711
13712
13713
13714</slideshow-slide>
13715
13716    </slideshow-slides>
13717  </slideshow-container>
13718  
13719</slideshow-component>
13720
13721
13722
13723    </a>
13724  
13725  
13726    <div
13727      class="product-badges product-badges--top-right"
13728      style="
13729        --badge-border-radius: 100px;
13730        --badge-font-family: var(--font-body--family); --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
13731      "
13732    ></div>
13733    
13734      
13735
13736<quick-add-component
13737  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
13738  ref="quickAdd"
13739  data-product-title="Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails & Pedicure"
13740  data-quick-add-button="add"
13741  data-product-options-count="1"
13742>
13743  <product-form-component
13744    data-section-id="template--28213213921626__product_list_ykU4x3"
13745    data-product-id="11022914093402"
13746    on:submit="/handleSubmit"
13747    class="quick-add__product-form-component"
13748  >
13749    <div
13750      class="visually-hidden"
13751      aria-live="assertive"
13752      role="status"
13753      aria-atomic="true"
13754      ref="liveRegion"
13755    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11022914093402-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-2" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
13756        type="hidden"
13757        name="id"
13758        ref="variantId"
13759        value="54925336052058"
13760        
13761      >
13762      <input
13763        type="hidden"
13764        name="quantity"
13765        value="1"
13766      >
13767      
13768      <add-to-cart-component
13769  ref="addToCartButtonContainer"
13770  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/toweldisposable.jpg?v=1791384239&width=100"
13771  data-add-to-cart-animation="true"
13772>
13773  <button
13774    
13775    type="submit"
13776    name="add"
13777    ref="addToCartButton"
13778    on:click="/handleClick"
13779    class="button button quick-add__button quick-add__button--add add-to-cart-button"
13780    
13781    
13782  >
13783    <span
13784      class="add-to-cart-text"
13785    >
13786      
13787        <span
13788          aria-hidden="true"
13789          class="svg-wrapper add-to-cart-icon"
13790        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
13791</span>
13792      
13793      <span class="add-to-cart-text__content is-visually-hidden-mobile">
13794        <span>
13795          <span>Add</span>
13796        </span>
13797      </span>
13798    </span>
13799    
13800    <span class="add-to-cart__added">
13801      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
13802  <g class="check">
13803    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
13804    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
13805  </g>
13806  <g class="burst">
13807    <g style="--index: 0;">
13808      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13809    </g>
13810    <g style="--index: 1;">
13811      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13812    </g>
13813    <g style="--index: 2;">
13814      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13815    </g>
13816    <g style="--index: 3;">
13817      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13818    </g>
13819    <g style="--index: 4;">
13820      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13821    </g>
13822    <g style="--index: 5;">
13823      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13824    </g>
13825    <g style="--index: 6;">
13826      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13827    </g>
13828    <g style="--index: 7;">
13829      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
13830    </g>
13831  </g>
13832</svg>
13833</span>
13834    </span>
13835  </button>
13836</add-to-cart-component>
13837
13838
13839
13840
13841      <button
13842        class="button quick-add__button quick-add__button--choose add-to-cart-button"
13843        
13844        type="button"
13845        name="add"
13846        on:click="quick-add-component/handleClick"
13847      >
13848        <span
13849          class="add-to-cart-text quick-add__button-content"
13850        >
13851          
13852          <span
13853            aria-hidden="true"
13854            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
13855          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
13856</span>
13857          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
13858            <span>
13859              
13860              <span>
13861                Add
13862              </span>
13863            </span>
13864          </span>
13865        </span>
13866      </button><input type="hidden" name="product-id" value="11022914093402" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
13867</quick-add-component>
13868
13869
13870
13871    
13872  
13873
13874</div>
13875
13876
13877
13878
13879
13880<div class="product-grid-view-zoom-out--details">
13881  
13882    <h3 class="h4">Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails & Pedicure</h3>
13883  
13884</div>
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898  
13899    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-2 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
13900      <p>TNBL UK </p>
13901    </div>
13902  
13903
13904
13905
13906
13907<script type="module">
13908  class TextReadMoreWrapper extends HTMLElement {
13909    #expanded = false;
13910    #animation = null;
13911    #collapsedHeight = 0;
13912
13913    connectedCallback() {
13914      const content = this.querySelector('.text-read-more__content');
13915      const textElement = this.querySelector('.text-read-more__text');
13916      const button = this.querySelector('.text-read-more__button');
13917
13918      if (!content || !textElement || !button) return;
13919
13920      // Set initial state
13921      this.dataset.expanded = 'false';
13922
13923      // Wait for content to render - use double RAF to ensure layout is complete
13924      requestAnimationFrame(() => {
13925        requestAnimationFrame(() => {
13926          // Additional small delay to ensure fonts and styles are applied
13927          setTimeout(() => {
13928            this.#checkOverflow(content, textElement, button);
13929          }, 50);
13930          
13931          // Recheck on resize
13932          const resizeObserver = new ResizeObserver(() => {
13933            if (!this.#expanded) {
13934              this.#checkOverflow(content, textElement, button);
13935            }
13936          });
13937          resizeObserver.observe(content);
13938
13939          // Setup button click handler
13940          button.addEventListener('click', (e) => {
13941            e.preventDefault();
13942            this.#toggle(content, textElement, button);
13943          });
13944        });
13945      });
13946    }
13947
13948    #checkOverflow(content, textElement, button) {
13949      // Ensure collapsed state is applied
13950      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
13951        textElement.classList.add('text-read-more__text--collapsed');
13952      }
13953      
13954      // Get collapsed height first
13955      const collapsedHeight = content.scrollHeight;
13956      this.#collapsedHeight = collapsedHeight;
13957      
13958      // Temporarily remove line-clamp to measure full height
13959      textElement.classList.remove('text-read-more__text--collapsed');
13960      
13961      // Force reflow
13962      void content.offsetHeight;
13963      
13964      const fullHeight = content.scrollHeight;
13965      
13966      // Restore line-clamp
13967      textElement.classList.add('text-read-more__text--collapsed');
13968      
13969      // Show button if content exceeds 2 lines (with small threshold for rounding)
13970      if (fullHeight > collapsedHeight + 5) {
13971        button.removeAttribute('hidden');
13972      } else {
13973        button.setAttribute('hidden', '');
13974      }
13975    }
13976
13977    #toggle(content, textElement, button) {
13978      const startHeight = content.offsetHeight;
13979      let endHeight;
13980
13981      if (!this.#expanded) {
13982        // Expanding
13983        textElement.classList.remove('text-read-more__text--collapsed');
13984        endHeight = content.scrollHeight;
13985        this.#expanded = true;
13986      } else {
13987        // Collapsing
13988        endHeight = this.#collapsedHeight;
13989        this.#expanded = false;
13990      }
13991
13992      this.dataset.expanded = this.#expanded;
13993      button.setAttribute('aria-expanded', this.#expanded);
13994
13995      // Animate
13996      content.style.overflow = 'hidden';
13997      this.#animation?.cancel();
13998
13999      this.#animation = content.animate(
14000        {
14001          height: [`${startHeight}px`, `${endHeight}px`],
14002        },
14003        {
14004          duration: 300,
14005          easing: 'ease-in-out',
14006        }
14007      );
14008
14009      this.#animation.onfinish = () => {
14010        if (this.#expanded) {
14011          content.style.removeProperty('height');
14012          content.style.overflow = '';
14013        } else {
14014          textElement.classList.add('text-read-more__text--collapsed');
14015          content.style.removeProperty('height');
14016          content.style.overflow = '';
14017        }
14018      };
14019    }
14020  }
14021
14022  if (!customElements.get('text-read-more-wrapper')) {
14023    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
14024  }
14025</script>
14025
14026
14027
14028
14029
14030
14031
14032  
14033  <a
14034    class="contents user-select-text"
14035    ref="productTitleLink"
14036    href="/products/disposable-salon-towels-biodegradable-70-x-35cm-hair-nails-pedicure"
14037  >
14038    
14039
14040
14041
14042
14043
14044
14045  
14046    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-2 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
14047      <p>Biodegradable Disposable Salon Towels – 70 x 35cm | Hair, Nails & Pedicure</p>
14048    </div>
14049  
14050
14051
14052
14053
14054<script type="module">
14055  class TextReadMoreWrapper extends HTMLElement {
14056    #expanded = false;
14057    #animation = null;
14058    #collapsedHeight = 0;
14059
14060    connectedCallback() {
14061      const content = this.querySelector('.text-read-more__content');
14062      const textElement = this.querySelector('.text-read-more__text');
14063      const button = this.querySelector('.text-read-more__button');
14064
14065      if (!content || !textElement || !button) return;
14066
14067      // Set initial state
14068      this.dataset.expanded = 'false';
14069
14070      // Wait for content to render - use double RAF to ensure layout is complete
14071      requestAnimationFrame(() => {
14072        requestAnimationFrame(() => {
14073          // Additional small delay to ensure fonts and styles are applied
14074          setTimeout(() => {
14075            this.#checkOverflow(content, textElement, button);
14076          }, 50);
14077          
14078          // Recheck on resize
14079          const resizeObserver = new ResizeObserver(() => {
14080            if (!this.#expanded) {
14081              this.#checkOverflow(content, textElement, button);
14082            }
14083          });
14084          resizeObserver.observe(content);
14085
14086          // Setup button click handler
14087          button.addEventListener('click', (e) => {
14088            e.preventDefault();
14089            this.#toggle(content, textElement, button);
14090          });
14091        });
14092      });
14093    }
14094
14095    #checkOverflow(content, textElement, button) {
14096      // Ensure collapsed state is applied
14097      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
14098        textElement.classList.add('text-read-more__text--collapsed');
14099      }
14100      
14101      // Get collapsed height first
14102      const collapsedHeight = content.scrollHeight;
14103      this.#collapsedHeight = collapsedHeight;
14104      
14105      // Temporarily remove line-clamp to measure full height
14106      textElement.classList.remove('text-read-more__text--collapsed');
14107      
14108      // Force reflow
14109      void content.offsetHeight;
14110      
14111      const fullHeight = content.scrollHeight;
14112      
14113      // Restore line-clamp
14114      textElement.classList.add('text-read-more__text--collapsed');
14115      
14116      // Show button if content exceeds 2 lines (with small threshold for rounding)
14117      if (fullHeight > collapsedHeight + 5) {
14118        button.removeAttribute('hidden');
14119      } else {
14120        button.setAttribute('hidden', '');
14121      }
14122    }
14123
14124    #toggle(content, textElement, button) {
14125      const startHeight = content.offsetHeight;
14126      let endHeight;
14127
14128      if (!this.#expanded) {
14129        // Expanding
14130        textElement.classList.remove('text-read-more__text--collapsed');
14131        endHeight = content.scrollHeight;
14132        this.#expanded = true;
14133      } else {
14134        // Collapsing
14135        endHeight = this.#collapsedHeight;
14136        this.#expanded = false;
14137      }
14138
14139      this.dataset.expanded = this.#expanded;
14140      button.setAttribute('aria-expanded', this.#expanded);
14141
14142      // Animate
14143      content.style.overflow = 'hidden';
14144      this.#animation?.cancel();
14145
14146      this.#animation = content.animate(
14147        {
14148          height: [`${startHeight}px`, `${endHeight}px`],
14149        },
14150        {
14151          duration: 300,
14152          easing: 'ease-in-out',
14153        }
14154      );
14155
14156      this.#animation.onfinish = () => {
14157        if (this.#expanded) {
14158          content.style.removeProperty('height');
14159          content.style.overflow = '';
14160        } else {
14161          textElement.classList.add('text-read-more__text--collapsed');
14162          content.style.removeProperty('height');
14163          content.style.overflow = '';
14164        }
14165      };
14166    }
14167  }
14168
14169  if (!customElements.get('text-read-more-wrapper')) {
14170    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
14171  }
14172</script>
14172
14173
14174  </a>
14175
14176
14177
14178
14179
14180
14181<product-price
14182  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
14183  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-2"
14184  data-product-id="11022914093402"
14185  style="
14186    
14187--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
14188    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
14189    --width: 100%;
14190  "
14191  
14192>
14193  <div ref="priceContainer">
14194  
14195    
14196    
14197
14198    
14199      <span class="price">£15.00</span>
14200    
14201
14202    
14203  
14204</div>
14205
14206  
14207</product-price>
14208
14209
14210
14211
14212
14213
14214
14215
14216  </div>
14217</product-card></product-card-link>
14218
14219</div>
14220
14221
14222
14223
14224
14225
14226            
14227          </div>
14228
14229          
14230            
14231</slideshow-slide>
14232
14233  
14234    <slideshow-slide
14235  ref="slides[]"
14236  aria-hidden="true"
14237  style="--slideshow-timeline: --slide-3; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
14238  
14239    class="resource-list__slide"
14240  
14241  
14242  
14243  
14244  
14245  
14246  
14247>
14248  
14249          
14250        
14251          <div
14252            class="resource-list__item"
14253          >
14254            
14255              
14256
14257<div >
14258  
14259
14260<style data-shopify>
14261  
14262</style>
14263
14264
14265<product-card-link
14266    data-product-id="11022872576346"
14267    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&width=500"
14268    data-product-transition="true"
14269    
14270  ><product-card
14271  class="product-card"
14272  data-product-id="11022872576346"
14273  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-3"
14274  data-product-transition="true"
14275  
14276  
14277>
14278  <a
14279    id="8b1a0a652210a099a136cf0b86550ed5"
14280    
14281      href="/products/tnbl-breast-cancer-charity-day-5-entry-ticket-wednesday-21st-october-2026?variant=54925177520474"
14282    
14283    class="product-card__link"
14284    ref="productCardLink"
14285  >
14286    <span class="visually-hidden">
14287      TNBL Breast Cancer Charity Day – £5 Entry Ticket – Wednesday 21st October 2026
14288    </span>
14289  </a>
14290  <div
14291    class="
14292      product-card__content
14293      layout-panel-flex
14294      layout-panel-flex--column
14295      product-grid__card
14296      spacing-style
14297      border-style
14298      gap-style
14299      
14300    "
14301    style="
14302      --border-width: 1px; --border-style: none; --border-color:
14303rgb(var(--color-border-rgb) / 1.0); --border-radius:
143040px; 
14305
14306      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
14307
14308
14309
14310--horizontal-alignment: ; --vertical-alignment: ;
14311--vertical-alignment-mobile: ;
14312
14313      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
14314      --product-card-gap: 8px;
14315      --quick-add-display: flex;
14316      --quick-add-mobile-display: flex;
14317      --quick-add-mobile-opacity: 1;
14318      
14319      
14320      
14321      
14322    "
14323  >
14324    
14325  
14326
14327
14328
14329
14330
14331
14332
14333<div
14334  ref="cardGallery"
14335  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-3 spacing-style border-style"
14336  style="
14337    --border-width: 1px; --border-style: solid; --border-color:
14338rgb(var(--color-border-rgb) / 1.0); --border-radius:
1433912px;  overflow: hidden; 
14340
14341    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
14342    --gallery-aspect-ratio: 1.0;
14343  "
14344  data-product-id="11022872576346"
14345  
14346    on:pointerenter="/previewImage"
14347    on:pointerleave="/resetImage"
14348  
14349  
14350    data-view-transition-to-main-product
14351  
14352  data-image-ratio="adapt"
14353  
14354>
14355    <a
14356      class="contents"
14357      ref="cardGalleryLink"
14358      href="/products/tnbl-breast-cancer-charity-day-5-entry-ticket-wednesday-21st-october-2026"
14359      aria-label="TNBL Breast Cancer Charity Day – £5 Entry Ticket – Wednesday 21st October 2026"
14360    >
14361      <slideshow-component
14362  
14363    ref="slideshow"
14364  
14365  
14366  style="--slideshow-timeline: --slide-1;--slide-min-height: auto;--slide-min-height-desktop: auto;"
14367  
14368  initial-slide="0"
14369  
14370  
14371    infinite
14372  
14373  
14374
14375  data-generic-media-size="1" allow-nested="true"
14376>
14377  
14378  <slideshow-container ref="slideshowContainer">
14379    
14380    
14381    <slideshow-slides
14382      tabindex="-1"
14383      ref="scroller"
14384      
14385    >
14386      <slideshow-slide
14387  ref="slides[]"
14388  aria-hidden="false"
14389  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
14390  
14391    class="product-media-container media-fit product-media-container--image"
14392  
14393  
14394  
14395  
14396    slide-id="62513508483418"
14397  
14398  
14399  
14400  
14401>
14402  
14403
14404<div
14405  class="product-media"
14406  style="--ratio: 1.0"
14407  data-media-id="62513508483418"
14408>
14409  
14410  <img src="//www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=3840" alt="TNBL Breast Cancer Charity Day – £5 Entry Ticket – Wednesday 21st October 2026" srcset="//www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
14411
14412  
14413</div>
14414
14415
14416
14417</slideshow-slide>
14418
14419    </slideshow-slides>
14420  </slideshow-container>
14421  
14422</slideshow-component>
14423
14424
14425
14426    </a>
14427  
14428  
14429    <div
14430      class="product-badges product-badges--top-right"
14431      style="
14432        --badge-border-radius: 100px;
14433        --badge-font-family: var(--font-body--family);
14433 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
14434      "
14435    ></div>
14436    
14437      
14438
14439<quick-add-component
14440  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
14441  ref="quickAdd"
14442  data-product-title="TNBL Breast Cancer Charity Day – £5 Entry Ticket – Wednesday 21st October 2026"
14443  data-quick-add-button="add"
14444  data-product-options-count="1"
14445>
14446  <product-form-component
14447    data-section-id="template--28213213921626__product_list_ykU4x3"
14448    data-product-id="11022872576346"
14449    on:submit="/handleSubmit"
14450    class="quick-add__product-form-component"
14451  >
14452    <div
14453      class="visually-hidden"
14454      aria-live="assertive"
14455      role="status"
14456      aria-atomic="true"
14457      ref="liveRegion"
14458    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11022872576346-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-3" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
14459        type="hidden"
14460        name="id"
14461        ref="variantId"
14462        value="54925177520474"
14463        
14464      >
14465      <input
14466        type="hidden"
14467        name="quantity"
14468        value="1"
14469      >
14470      
14471      <add-to-cart-component
14472  ref="addToCartButtonContainer"
14473  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/Charitybreastcancerticket.jpg?v=1791381804&width=100"
14474  data-add-to-cart-animation="true"
14475>
14476  <button
14477    
14478    type="submit"
14479    name="add"
14480    ref="addToCartButton"
14481    on:click="/handleClick"
14482    class="button button quick-add__button quick-add__button--add add-to-cart-button"
14483    
14484    
14485  >
14486    <span
14487      class="add-to-cart-text"
14488    >
14489      
14490        <span
14491          aria-hidden="true"
14492          class="svg-wrapper add-to-cart-icon"
14493        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
14494</span>
14495      
14496      <span class="add-to-cart-text__content is-visually-hidden-mobile">
14497        <span>
14498          <span>Add</span>
14499        </span>
14500      </span>
14501    </span>
14502    
14503    <span class="add-to-cart__added">
14504      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14505  <g class="check">
14506    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
14507    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
14508  </g>
14509  <g class="burst">
14510    <g style="--index: 0;">
14511      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14512    </g>
14513    <g style="--index: 1;">
14514      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14515    </g>
14516    <g style="--index: 2;">
14517      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14518    </g>
14519    <g style="--index: 3;">
14520      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14521    </g>
14522    <g style="--index: 4;">
14523      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14524    </g>
14525    <g style="--index: 5;">
14526      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14527    </g>
14528    <g style="--index: 6;">
14529      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14530    </g>
14531    <g style="--index: 7;">
14532      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
14533    </g>
14534  </g>
14535</svg>
14536</span>
14537    </span>
14538  </button>
14539</add-to-cart-component>
14540
14541
14542
14543
14544      <button
14545        class="button quick-add__button quick-add__button--choose add-to-cart-button"
14546        
14547        type="button"
14548        name="add"
14549        on:click="quick-add-component/handleClick"
14550      >
14551        <span
14552          class="add-to-cart-text quick-add__button-content"
14553        >
14554          
14555          <span
14556            aria-hidden="true"
14557            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
14558          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
14559</span>
14560          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
14561            <span>
14562              
14563              <span>
14564                Add
14565              </span>
14566            </span>
14567          </span>
14568        </span>
14569      </button><input type="hidden" name="product-id" value="11022872576346" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
14570</quick-add-component>
14571
14572
14573
14574    
14575  
14576
14577</div>
14578
14579
14580
14581
14582
14583<div class="product-grid-view-zoom-out--details">
14584  
14585    <h3 class="h4">TNBL Breast Cancer Charity Day – £5 Entry Ticket – Wednesday 21st October 2026</h3>
14586  
14587</div>
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601  
14602    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-3 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
14603      <p>TNBL UK </p>
14604    </div>
14605  
14606
14607
14608
14609
14610<script type="module">
14611  class TextReadMoreWrapper extends HTMLElement {
14612    #expanded = false;
14613    #animation = null;
14614    #collapsedHeight = 0;
14615
14616    connectedCallback() {
14617      const content = this.querySelector('.text-read-more__content');
14618      const textElement = this.querySelector('.text-read-more__text');
14619      const button = this.querySelector('.text-read-more__button');
14620
14621      if (!content || !textElement || !button) return;
14622
14623      // Set initial state
14624      this.dataset.expanded = 'false';
14625
14626      // Wait for content to render - use double RAF to ensure layout is complete
14627      requestAnimationFrame(() => {
14628        requestAnimationFrame(() => {
14629          // Additional small delay to ensure fonts and styles are applied
14630          setTimeout(() => {
14631            this.#checkOverflow(content, textElement, button);
14632          }, 50);
14633          
14634          // Recheck on resize
14635          const resizeObserver = new ResizeObserver(() => {
14636            if (!this.#expanded) {
14637              this.#checkOverflow(content, textElement, button);
14638            }
14639          });
14640          resizeObserver.observe(content);
14641
14642          // Setup button click handler
14643          button.addEventListener('click', (e) => {
14644            e.preventDefault();
14645            this.#toggle(content, textElement, button);
14646          });
14647        });
14648      });
14649    }
14650
14651    #checkOverflow(content, textElement, button) {
14652      // Ensure collapsed state is applied
14653      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
14654        textElement.classList.add('text-read-more__text--collapsed');
14655      }
14656      
14657      // Get collapsed height first
14658      const collapsedHeight = content.scrollHeight;
14659      this.#collapsedHeight = collapsedHeight;
14660      
14661      // Temporarily remove line-clamp to measure full height
14662      textElement.classList.remove('text-read-more__text--collapsed');
14663      
14664      // Force reflow
14665      void content.offsetHeight;
14666      
14667      const fullHeight = content.scrollHeight;
14668      
14669      // Restore line-clamp
14670      textElement.classList.add('text-read-more__text--collapsed');
14671      
14672      // Show button if content exceeds 2 lines (with small threshold for rounding)
14673      if (fullHeight > collapsedHeight + 5) {
14674        button.removeAttribute('hidden');
14675      } else {
14676        button.setAttribute('hidden', '');
14677      }
14678    }
14679
14680    #toggle(content, textElement, button) {
14681      const startHeight = content.offsetHeight;
14682      let endHeight;
14683
14684      if (!this.#expanded) {
14685        // Expanding
14686        textElement.classList.remove('text-read-more__text--collapsed');
14687        endHeight = content.scrollHeight;
14688        this.#expanded = true;
14689      } else {
14690        // Collapsing
14691        endHeight = this.#collapsedHeight;
14692        this.#expanded = false;
14693      }
14694
14695      this.dataset.expanded = this.#expanded;
14696      button.setAttribute('aria-expanded', this.#expanded);
14697
14698      // Animate
14699      content.style.overflow = 'hidden';
14700      this.#animation?.cancel();
14701
14702      this.#animation = content.animate(
14703        {
14704          height: [`${startHeight}px`, `${endHeight}px`],
14705        },
14706        {
14707          duration: 300,
14708          easing: 'ease-in-out',
14709        }
14710      );
14711
14712      this.#animation.onfinish = () => {
14713        if (this.#expanded) {
14714          content.style.removeProperty('height');
14715          content.style.overflow = '';
14716        } else {
14717          textElement.classList.add('text-read-more__text--collapsed');
14718          content.style.removeProperty('height');
14719          content.style.overflow = '';
14720        }
14721      };
14722    }
14723  }
14724
14725  if (!customElements.get('text-read-more-wrapper')) {
14726    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
14727  }
14728</script>
14728
14729
14730
14731
14732
14733
14734
14735  
14736  <a
14737    class="contents user-select-text"
14738    ref="productTitleLink"
14739    href="/products/tnbl-breast-cancer-charity-day-5-entry-ticket-wednesday-21st-october-2026"
14740  >
14741    
14742
14743
14744
14745
14746
14747
14748  
14749    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-3 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
14750      <p>TNBL Breast Cancer Charity Day – £5 Entry Ticket – Wednesday 21st October 2026</p>
14751    </div>
14752  
14753
14754
14755
14756
14757<script type="module">
14758  class TextReadMoreWrapper extends HTMLElement {
14759    #expanded = false;
14760    #animation = null;
14761    #collapsedHeight = 0;
14762
14763    connectedCallback() {
14764      const content = this.querySelector('.text-read-more__content');
14765      const textElement = this.querySelector('.text-read-more__text');
14766      const button = this.querySelector('.text-read-more__button');
14767
14768      if (!content || !textElement || !button) return;
14769
14770      // Set initial state
14771      this.dataset.expanded = 'false';
14772
14773      // Wait for content to render - use double RAF to ensure layout is complete
14774      requestAnimationFrame(() => {
14775        requestAnimationFrame(() => {
14776          // Additional small delay to ensure fonts and styles are applied
14777          setTimeout(() => {
14778            this.#checkOverflow(content, textElement, button);
14779          }, 50);
14780          
14781          // Recheck on resize
14782          const resizeObserver = new ResizeObserver(() => {
14783            if (!this.#expanded) {
14784              this.#checkOverflow(content, textElement, button);
14785            }
14786          });
14787          resizeObserver.observe(content);
14788
14789          // Setup button click handler
14790          button.addEventListener('click', (e) => {
14791            e.preventDefault();
14792            this.#toggle(content, textElement, button);
14793          });
14794        });
14795      });
14796    }
14797
14798    #checkOverflow(content, textElement, button) {
14799      // Ensure collapsed state is applied
14800      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
14801        textElement.classList.add('text-read-more__text--collapsed');
14802      }
14803      
14804      // Get collapsed height first
14805      const collapsedHeight = content.scrollHeight;
14806      this.#collapsedHeight = collapsedHeight;
14807      
14808      // Temporarily remove line-clamp to measure full height
14809      textElement.classList.remove('text-read-more__text--collapsed');
14810      
14811      // Force reflow
14812      void content.offsetHeight;
14813      
14814      const fullHeight = content.scrollHeight;
14815      
14816      // Restore line-clamp
14817      textElement.classList.add('text-read-more__text--collapsed');
14818      
14819      // Show button if content exceeds 2 lines (with small threshold for rounding)
14820      if (fullHeight > collapsedHeight + 5) {
14821        button.removeAttribute('hidden');
14822      } else {
14823        button.setAttribute('hidden', '');
14824      }
14825    }
14826
14827    #toggle(content, textElement, button) {
14828      const startHeight = content.offsetHeight;
14829      let endHeight;
14830
14831      if (!this.#expanded) {
14832        // Expanding
14833        textElement.classList.remove('text-read-more__text--collapsed');
14834        endHeight = content.scrollHeight;
14835        this.#expanded = true;
14836      } else {
14837        // Collapsing
14838        endHeight = this.#collapsedHeight;
14839        this.#expanded = false;
14840      }
14841
14842      this.dataset.expanded = this.#expanded;
14843      button.setAttribute('aria-expanded', this.#expanded);
14844
14845      // Animate
14846      content.style.overflow = 'hidden';
14847      this.#animation?.cancel();
14848
14849      this.#animation = content.animate(
14850        {
14851          height: [`${startHeight}px`, `${endHeight}px`],
14852        },
14853        {
14854          duration: 300,
14855          easing: 'ease-in-out',
14856        }
14857      );
14858
14859      this.#animation.onfinish = () => {
14860        if (this.#expanded) {
14861          content.style.removeProperty('height');
14862          content.style.overflow = '';
14863        } else {
14864          textElement.classList.add('text-read-more__text--collapsed');
14865          content.style.removeProperty('height');
14866          content.style.overflow = '';
14867        }
14868      };
14869    }
14870  }
14871
14872  if (!customElements.get('text-read-more-wrapper')) {
14873    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
14874  }
14875</script>
14875
14876
14877  </a>
14878
14879
14880
14881
14882
14883
14884<product-price
14885  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
14886  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-3"
14887  data-product-id="11022872576346"
14888  style="
14889    
14890--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
14891    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
14892    --width: 100%;
14893  "
14894  
14895>
14896  <div ref="priceContainer">
14897  
14898    
14899    
14900
14901    
14902      <span class="price">£5.00</span>
14903    
14904
14905    
14906  
14907</div>
14908
14909  
14910</product-price>
14911
14912
14913
14914
14915
14916
14917
14918
14919  </div>
14920</product-card></product-card-link>
14921
14922</div>
14923
14924
14925
14926
14927
14928
14929            
14930          </div>
14931
14932          
14933            
14934</slideshow-slide>
14935
14936  
14937    <slideshow-slide
14938  ref="slides[]"
14939  aria-hidden="true"
14940  style="--slideshow-timeline: --slide-4; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
14941  
14942    class="resource-list__slide"
14943  
14944  
14945  
14946  
14947  
14948  
14949  
14950>
14951  
14952          
14953        
14954          <div
14955            class="resource-list__item"
14956          >
14957            
14958              
14959
14960<div >
14961  
14962
14963<style data-shopify>
14964  
14965</style>
14966
14967
14968<product-card-link
14969    data-product-id="11020550406490"
14970    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&width=500"
14971    data-product-transition="true"
14972    
14973  ><product-card
14974  class="product-card"
14975  data-product-id="11020550406490"
14976  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-4"
14977  data-product-transition="true"
14978  
14979  
14980>
14981  <a
14982    id="4aa6aad9e0e16f6d6f1c34ed862aba8a"
14983    
14984      href="/products/apres-nova-led-lamp-mini?variant=54916494557530"
14985    
14986    class="product-card__link"
14987    ref="productCardLink"
14988  >
14989    <span class="visually-hidden">
14990      Aprés Mini Nova Led Lamp
14991    </span>
14992  </a>
14993  <div
14994    class="
14995      product-card__content
14996      layout-panel-flex
14997      layout-panel-flex--column
14998      product-grid__card
14999      spacing-style
15000      border-style
15001      gap-style
15002      
15003    "
15004    style="
15005      --border-width: 1px; --border-style: none; --border-color:
15006rgb(var(--color-border-rgb) / 1.0); --border-radius:
150070px; 
15008
15009      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
15010
15011
15012
15013--horizontal-alignment: ; --vertical-alignment: ;
15014--vertical-alignment-mobile: ;
15015
15016      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
15017      --product-card-gap: 8px;
15018      --quick-add-display: flex;
15019      --quick-add-mobile-display: flex;
15020      --quick-add-mobile-opacity: 1;
15021      
15022      
15023      
15024      
15025    "
15026  >
15027    
15028  
15029
15030
15031
15032
15033
15034
15035
15036<div
15037  ref="cardGallery"
15038  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-4 spacing-style border-style"
15039  style="
15040    --border-width: 1px; --border-style: solid; --border-color:
15041rgb(var(--color-border-rgb) / 1.0); --border-radius:
1504212px;  overflow: hidden; 
15043
15044    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
15045    --gallery-aspect-ratio: 1.0;
15046  "
15047  data-product-id="11020550406490"
15048  
15049    on:pointerenter="/previewImage"
15050    on:pointerleave="/resetImage"
15051  
15052  
15053    data-view-transition-to-main-product
15054  
15055  data-image-ratio="adapt"
15056  
15057>
15058    <a
15059      class="contents"
15060      ref="cardGalleryLink"
15061      href="/products/apres-nova-led-lamp-mini"
15062      aria-label="Aprés Mini Nova Led Lamp"
15063    >
15064      <slideshow-component
15065  
15066    ref="slideshow"
15067  
15068  
15069  style="--slideshow-timeline: --slide-1, --slide-2, --slide-3, --slide-4, --slide-5, --slide-6, --slide-7, --slide-8, --slide-9;--slide-min-height: auto;--slide-min-height-desktop: auto;"
15070  
15071  initial-slide="0"
15072  
15073  
15074    infinite
15075  
15076  
15077
15078  data-generic-media-size="7" allow-nested="true"
15079>
15080  
15081  <slideshow-container ref="slideshowContainer">
15082    
15083      <slideshow-arrows
15084  position="center"
15085  
15086><button
15087  class="
15088    slideshow-control slideshow-control--previous
15089    
15090    
15091    slideshow-control--style-arrow
15092    button button-unstyled button-unstyled--transparent
15093     flip-x
15094  "
15095  
15096  aria-label="Previous slide"
15097  
15098  on:click="/previous"
15099  ref="previous"
15100>
15101  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
15102</span>
15103</button>
15104<button
15105  class="
15106    slideshow-control slideshow-control--next
15107    
15108    
15109    slideshow-control--style-arrow
15110    button button-unstyled button-unstyled--transparent
15111    
15112  "
15113  
15114  aria-label="Next slide"
15115  
15116  on:click="/next"
15117  ref="next"
15118>
15119  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
15120</span>
15121</button>
15122</slideshow-arrows>
15123
15124    
15125    
15126    <slideshow-slides
15127      tabindex="-1"
15128      ref="scroller"
15129      
15130    >
15131      <slideshow-slide
15132  ref="slides[]"
15133  aria-hidden="false"
15134  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15135  
15136    class="product-media-container media-fit product-media-container--image"
15137  
15138  variant-image
15139  
15140  
15141    slide-id="62492790292826"
15142  
15143  
15144  
15145  variant-image
15146>
15147  
15148
15149<div
15150  class="product-media"
15151  style="--ratio: 1.0"
15152  data-media-id="62492790292826"
15153>
15154  
15155  <img src="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=3840" alt="Aprés Mini Nova Led Lamp" srcset="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
15156
15157  
15158</div>
15159
15160
15161
15162</slideshow-slide>
15163<slideshow-slide
15164  ref="slides[]"
15165  aria-hidden="true"
15166  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15167  
15168    class="product-media-container media-fit product-media-container--image"
15169  
15170  
15171  
15172  
15173    slide-id="62492790358362"
15174  
15175  
15176  
15177  
15178>
15179  
15180
15181<div
15182  class="product-media"
15183  style="--ratio: 1.0"
15184  data-media-id="62492790358362"
15185>
15186  
15187  <img src="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=3840" alt="Aprés Mini Nova Led Lamp" srcset="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-03_84d8a61e-a804-40d2-bf85-d0171ee6bb0a.jpg?v=1791299545&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
15188
15189  
15190</div>
15191
15192
15193
15194</slideshow-slide>
15195<slideshow-slide
15196  ref="slides[]"
15197  aria-hidden="true"
15198  style="--slideshow-timeline: --slide-2; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15199  
15200    class="product-media-container media-fit product-media-container--image"
15201  
15202  
15203  
15204  
15205    slide-id="62492790423898"
15206  
15207  
15208  
15209  
15210>
15211  
15212
15213<div
15214  class="product-media"
15215  style="--ratio: 1.0"
15216  data-media-id="62492790423898"
15217>
15218  
15219  <img src="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=3840" alt="Aprés Mini Nova Led Lamp" srcset="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-05_016ed5ad-faee-4651-921c-27fd1752887b.jpg?v=1791299545&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
15220
15221  
15222</div>
15223
15224
15225
15226</slideshow-slide>
15227<slideshow-slide
15228  ref="slides[]"
15229  aria-hidden="true"
15230  style="--slideshow-timeline: --slide-3; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15231  
15232    class="product-media-container media-fit product-media-container--image"
15233  
15234  
15235  
15236  
15237    slide-id="62492790489434"
15238  
15239  
15240  
15241  
15242>
15243  
15244
15245<div
15246  class="product-media"
15247  style="--ratio: 1.0"
15248  data-media-id="62492790489434"
15249>
15250  
15251  <img src="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=3840" alt="Aprés Mini Nova Led Lamp" srcset="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-07_d3ec6f52-dd94-4aa0-b0d1-acf171211853.jpg?v=1791299545&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
15252
15253  
15254</div>
15255
15256
15257
15258</slideshow-slide>
15259<slideshow-slide
15260  ref="slides[]"
15261  aria-hidden="true"
15262  style="--slideshow-timeline: --slide-4; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15263  
15264    class="product-media-container media-fit product-media-container--image"
15265  
15266  
15267  
15268  
15269    slide-id="62492790522202"
15270  
15271  
15272  
15273  
15274>
15275  
15276
15277<div
15278  class="product-media"
15279  style="--ratio: 1.0"
15280  data-media-id="62492790522202"
15281>
15282  
15283  <img src="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=3840" alt="Aprés Mini Nova Led Lamp" srcset="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-02_5dc8cdd5-66c4-4d21-a840-c83697dbf979.jpg?v=1791299546&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
15284
15285  
15286</div>
15287
15288
15289
15290</slideshow-slide>
15291<slideshow-slide
15292  ref="slides[]"
15293  aria-hidden="true"
15294  style="--slideshow-timeline: --slide-6; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15295  
15296    class="product-media-container media-fit product-media-container--image"
15297  
15298  variant-image
15299  
15300  
15301    slide-id="62492795863386"
15302  
15303  
15304    hidden
15305  
15306  
15307  variant-image
15308>
15309  
15310
15311<div
15312  class="product-media"
15313  style="--ratio: 1.0"
15314  data-media-id="62492795863386"
15315>
15316  
15317  <img src="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=3840" alt="Aprés Mini Nova Led Lamp" srcset="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_White-01.jpg?v=1791299606&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
15318
15319  
15320</div>
15321
15322
15323
15324</slideshow-slide>
15325
15326    </slideshow-slides>
15327  </slideshow-container>
15328  
15329</slideshow-component>
15330
15331
15332
15333    </a>
15334  
15335  
15336    <div
15337      class="product-badges product-badges--top-right"
15338      style="
15339        --badge-border-radius: 100px;
15340        --badge-font-family: var(--font-body--family);
15340 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
15341      "
15342    ></div>
15343    
15344      
15345
15346<quick-add-component
15347  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
15348  ref="quickAdd"
15349  data-product-title="Aprés Mini Nova Led Lamp"
15350  data-quick-add-button="choose"
15351  data-product-options-count="1"
15352>
15353  <product-form-component
15354    data-section-id="template--28213213921626__product_list_ykU4x3"
15355    data-product-id="11020550406490"
15356    on:submit="/handleSubmit"
15357    class="quick-add__product-form-component"
15358  >
15359    <div
15360      class="visually-hidden"
15361      aria-live="assertive"
15362      role="status"
15363      aria-atomic="true"
15364      ref="liveRegion"
15365    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11020550406490-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-4" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
15366        type="hidden"
15367        name="id"
15368        ref="variantId"
15369        value="54916494557530"
15370        
15371      >
15372      <input
15373        type="hidden"
15374        name="quantity"
15375        value="1"
15376      >
15377      
15378      <add-to-cart-component
15379  ref="addToCartButtonContainer"
15380  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/Mini_Nova_LED_Lamp_-_Listing_Photos_Black-01_42c26b96-b29c-4fc0-b200-d0819dd343db.jpg?v=1791299544&width=100"
15381  data-add-to-cart-animation="true"
15382>
15383  <button
15384    
15385    type="submit"
15386    name="add"
15387    ref="addToCartButton"
15388    on:click="/handleClick"
15389    class="button button quick-add__button quick-add__button--add add-to-cart-button"
15390    
15391    
15392  >
15393    <span
15394      class="add-to-cart-text"
15395    >
15396      
15397        <span
15398          aria-hidden="true"
15399          class="svg-wrapper add-to-cart-icon"
15400        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
15401</span>
15402      
15403      <span class="add-to-cart-text__content is-visually-hidden-mobile">
15404        <span>
15405          <span>Add</span>
15406        </span>
15407      </span>
15408    </span>
15409    
15410    <span class="add-to-cart__added">
15411      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
15412  <g class="check">
15413    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
15414    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
15415  </g>
15416  <g class="burst">
15417    <g style="--index: 0;">
15418      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15419    </g>
15420    <g style="--index: 1;">
15421      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15422    </g>
15423    <g style="--index: 2;">
15424      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15425    </g>
15426    <g style="--index: 3;">
15427      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15428    </g>
15429    <g style="--index: 4;">
15430      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15431    </g>
15432    <g style="--index: 5;">
15433      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15434    </g>
15435    <g style="--index: 6;">
15436      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15437    </g>
15438    <g style="--index: 7;">
15439      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
15440    </g>
15441  </g>
15442</svg>
15443</span>
15444    </span>
15445  </button>
15446</add-to-cart-component>
15447
15448
15449
15450
15451      <button
15452        class="button quick-add__button quick-add__button--choose add-to-cart-button"
15453        
15454        type="button"
15455        name="add"
15456        on:click="quick-add-component/handleClick"
15457      >
15458        <span
15459          class="add-to-cart-text quick-add__button-content"
15460        >
15461          
15462          <span
15463            aria-hidden="true"
15464            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
15465          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
15466</span>
15467          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
15468            <span>
15469              
15470              <span>
15471                Add
15472              </span>
15473            </span>
15474          </span>
15475        </span>
15476      </button><input type="hidden" name="product-id" value="11020550406490" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
15477</quick-add-component>
15478
15479
15480
15481    
15482  
15483
15484</div>
15485
15486
15487
15488
15489
15490<div class="product-grid-view-zoom-out--details">
15491  
15492    <h3 class="h4">Aprés Mini Nova Led Lamp</h3>
15493  
15494</div>
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508  
15509    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-4 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
15510      <p>APRES </p>
15511    </div>
15512  
15513
15514
15515
15516
15517<script type="module">
15518  class TextReadMoreWrapper extends HTMLElement {
15519    #expanded = false;
15520    #animation = null;
15521    #collapsedHeight = 0;
15522
15523    connectedCallback() {
15524      const content = this.querySelector('.text-read-more__content');
15525      const textElement = this.querySelector('.text-read-more__text');
15526      const button = this.querySelector('.text-read-more__button');
15527
15528      if (!content || !textElement || !button) return;
15529
15530      // Set initial state
15531      this.dataset.expanded = 'false';
15532
15533      // Wait for content to render - use double RAF to ensure layout is complete
15534      requestAnimationFrame(() => {
15535        requestAnimationFrame(() => {
15536          // Additional small delay to ensure fonts and styles are applied
15537          setTimeout(() => {
15538            this.#checkOverflow(content, textElement, button);
15539          }, 50);
15540          
15541          // Recheck on resize
15542          const resizeObserver = new ResizeObserver(() => {
15543            if (!this.#expanded) {
15544              this.#checkOverflow(content, textElement, button);
15545            }
15546          });
15547          resizeObserver.observe(content);
15548
15549          // Setup button click handler
15550          button.addEventListener('click', (e) => {
15551            e.preventDefault();
15552            this.#toggle(content, textElement, button);
15553          });
15554        });
15555      });
15556    }
15557
15558    #checkOverflow(content, textElement, button) {
15559      // Ensure collapsed state is applied
15560      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
15561        textElement.classList.add('text-read-more__text--collapsed');
15562      }
15563      
15564      // Get collapsed height first
15565      const collapsedHeight = content.scrollHeight;
15566      this.#collapsedHeight = collapsedHeight;
15567      
15568      // Temporarily remove line-clamp to measure full height
15569      textElement.classList.remove('text-read-more__text--collapsed');
15570      
15571      // Force reflow
15572      void content.offsetHeight;
15573      
15574      const fullHeight = content.scrollHeight;
15575      
15576      // Restore line-clamp
15577      textElement.classList.add('text-read-more__text--collapsed');
15578      
15579      // Show button if content exceeds 2 lines (with small threshold for rounding)
15580      if (fullHeight > collapsedHeight + 5) {
15581        button.removeAttribute('hidden');
15582      } else {
15583        button.setAttribute('hidden', '');
15584      }
15585    }
15586
15587    #toggle(content, textElement, button) {
15588      const startHeight = content.offsetHeight;
15589      let endHeight;
15590
15591      if (!this.#expanded) {
15592        // Expanding
15593        textElement.classList.remove('text-read-more__text--collapsed');
15594        endHeight = content.scrollHeight;
15595        this.#expanded = true;
15596      } else {
15597        // Collapsing
15598        endHeight = this.#collapsedHeight;
15599        this.#expanded = false;
15600      }
15601
15602      this.dataset.expanded = this.#expanded;
15603      button.setAttribute('aria-expanded', this.#expanded);
15604
15605      // Animate
15606      content.style.overflow = 'hidden';
15607      this.#animation?.cancel();
15608
15609      this.#animation = content.animate(
15610        {
15611          height: [`${startHeight}px`, `${endHeight}px`],
15612        },
15613        {
15614          duration: 300,
15615          easing: 'ease-in-out',
15616        }
15617      );
15618
15619      this.#animation.onfinish = () => {
15620        if (this.#expanded) {
15621          content.style.removeProperty('height');
15622          content.style.overflow = '';
15623        } else {
15624          textElement.classList.add('text-read-more__text--collapsed');
15625          content.style.removeProperty('height');
15626          content.style.overflow = '';
15627        }
15628      };
15629    }
15630  }
15631
15632  if (!customElements.get('text-read-more-wrapper')) {
15633    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
15634  }
15635</script>
15635
15636
15637
15638
15639
15640
15641
15642  
15643  <a
15644    class="contents user-select-text"
15645    ref="productTitleLink"
15646    href="/products/apres-nova-led-lamp-mini"
15647  >
15648    
15649
15650
15651
15652
15653
15654
15655  
15656    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-4 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
15657      <p>Aprés Mini Nova Led Lamp</p>
15658    </div>
15659  
15660
15661
15662
15663
15664<script type="module">
15665  class TextReadMoreWrapper extends HTMLElement {
15666    #expanded = false;
15667    #animation = null;
15668    #collapsedHeight = 0;
15669
15670    connectedCallback() {
15671      const content = this.querySelector('.text-read-more__content');
15672      const textElement = this.querySelector('.text-read-more__text');
15673      const button = this.querySelector('.text-read-more__button');
15674
15675      if (!content || !textElement || !button) return;
15676
15677      // Set initial state
15678      this.dataset.expanded = 'false';
15679
15680      // Wait for content to render - use double RAF to ensure layout is complete
15681      requestAnimationFrame(() => {
15682        requestAnimationFrame(() => {
15683          // Additional small delay to ensure fonts and styles are applied
15684          setTimeout(() => {
15685            this.#checkOverflow(content, textElement, button);
15686          }, 50);
15687          
15688          // Recheck on resize
15689          const resizeObserver = new ResizeObserver(() => {
15690            if (!this.#expanded) {
15691              this.#checkOverflow(content, textElement, button);
15692            }
15693          });
15694          resizeObserver.observe(content);
15695
15696          // Setup button click handler
15697          button.addEventListener('click', (e) => {
15698            e.preventDefault();
15699            this.#toggle(content, textElement, button);
15700          });
15701        });
15702      });
15703    }
15704
15705    #checkOverflow(content, textElement, button) {
15706      // Ensure collapsed state is applied
15707      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
15708        textElement.classList.add('text-read-more__text--collapsed');
15709      }
15710      
15711      // Get collapsed height first
15712      const collapsedHeight = content.scrollHeight;
15713      this.#collapsedHeight = collapsedHeight;
15714      
15715      // Temporarily remove line-clamp to measure full height
15716      textElement.classList.remove('text-read-more__text--collapsed');
15717      
15718      // Force reflow
15719      void content.offsetHeight;
15720      
15721      const fullHeight = content.scrollHeight;
15722      
15723      // Restore line-clamp
15724      textElement.classList.add('text-read-more__text--collapsed');
15725      
15726      // Show button if content exceeds 2 lines (with small threshold for rounding)
15727      if (fullHeight > collapsedHeight + 5) {
15728        button.removeAttribute('hidden');
15729      } else {
15730        button.setAttribute('hidden', '');
15731      }
15732    }
15733
15734    #toggle(content, textElement, button) {
15735      const startHeight = content.offsetHeight;
15736      let endHeight;
15737
15738      if (!this.#expanded) {
15739        // Expanding
15740        textElement.classList.remove('text-read-more__text--collapsed');
15741        endHeight = content.scrollHeight;
15742        this.#expanded = true;
15743      } else {
15744        // Collapsing
15745        endHeight = this.#collapsedHeight;
15746        this.#expanded = false;
15747      }
15748
15749      this.dataset.expanded = this.#expanded;
15750      button.setAttribute('aria-expanded', this.#expanded);
15751
15752      // Animate
15753      content.style.overflow = 'hidden';
15754      this.#animation?.cancel();
15755
15756      this.#animation = content.animate(
15757        {
15758          height: [`${startHeight}px`, `${endHeight}px`],
15759        },
15760        {
15761          duration: 300,
15762          easing: 'ease-in-out',
15763        }
15764      );
15765
15766      this.#animation.onfinish = () => {
15767        if (this.#expanded) {
15768          content.style.removeProperty('height');
15769          content.style.overflow = '';
15770        } else {
15771          textElement.classList.add('text-read-more__text--collapsed');
15772          content.style.removeProperty('height');
15773          content.style.overflow = '';
15774        }
15775      };
15776    }
15777  }
15778
15779  if (!customElements.get('text-read-more-wrapper')) {
15780    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
15781  }
15782</script>
15782
15783
15784  </a>
15785
15786
15787
15788
15789
15790
15791<product-price
15792  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
15793  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-4"
15794  data-product-id="11020550406490"
15795  style="
15796    
15797--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
15798    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
15799    --width: 100%;
15800  "
15801  
15802>
15803  <div ref="priceContainer">
15804  
15805    
15806    
15807
15808    
15809      <span class="price">£99.95</span>
15810    
15811
15812    
15813  
15814</div>
15815
15816  
15817</product-price>
15818
15819
15820
15821
15822
15823
15824
15825
15826  </div>
15827</product-card></product-card-link>
15828
15829</div>
15830
15831
15832
15833
15834
15835
15836            
15837          </div>
15838
15839          
15840            
15841</slideshow-slide>
15842
15843  
15844    <slideshow-slide
15845  ref="slides[]"
15846  aria-hidden="true"
15847  style="--slideshow-timeline: --slide-5; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
15848  
15849    class="resource-list__slide"
15850  
15851  
15852  
15853  
15854  
15855  
15856  
15857>
15858  
15859          
15860        
15861          <div
15862            class="resource-list__item"
15863          >
15864            
15865              
15866
15867<div >
15868  
15869
15870<style data-shopify>
15871  
15872</style>
15873
15874
15875<product-card-link
15876    data-product-id="11020474974554"
15877    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&width=500"
15878    data-product-transition="true"
15879    
15880  ><product-card
15881  class="product-card"
15882  data-product-id="11020474974554"
15883  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-5"
15884  data-product-transition="true"
15885  
15886  
15887>
15888  <a
15889    id="1441a0d17d45dd3568532f95a07e33ad"
15890    
15891      href="/products/adjustable-silicone-nail-stamper-enlarge-reduce-stamping-designs?variant=54915240788314"
15892    
15893    class="product-card__link"
15894    ref="productCardLink"
15895  >
15896    <span class="visually-hidden">
15897      Adjustable Silicone Nail Stamper – Enlarge & Reduce Stamping Designs
15898    </span>
15899  </a>
15900  <div
15901    class="
15902      product-card__content
15903      layout-panel-flex
15904      layout-panel-flex--column
15905      product-grid__card
15906      spacing-style
15907      border-style
15908      gap-style
15909      
15910    "
15911    style="
15912      --border-width: 1px; --border-style: none; --border-color:
15913rgb(var(--color-border-rgb) / 1.0); --border-radius:
159140px; 
15915
15916      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
15917
15918
15919
15920--horizontal-alignment: ; --vertical-alignment: ;
15921--vertical-alignment-mobile: ;
15922
15923      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
15924      --product-card-gap: 8px;
15925      --quick-add-display: flex;
15926      --quick-add-mobile-display: flex;
15927      --quick-add-mobile-opacity: 1;
15928      
15929      
15930      
15931      
15932    "
15933  >
15934    
15935  
15936
15937
15938
15939
15940
15941
15942
15943<div
15944  ref="cardGallery"
15945  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-5 spacing-style border-style"
15946  style="
15947    --border-width: 1px; --border-style: solid; --border-color:
15948rgb(var(--color-border-rgb) / 1.0); --border-radius:
1594912px;  overflow: hidden; 
15950
15951    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
15952    --gallery-aspect-ratio: 1.0;
15953  "
15954  data-product-id="11020474974554"
15955  
15956    on:pointerenter="/previewImage"
15957    on:pointerleave="/resetImage"
15958  
15959  
15960    data-view-transition-to-main-product
15961  
15962  data-image-ratio="adapt"
15963  
15964>
15965    <a
15966      class="contents"
15967      ref="cardGalleryLink"
15968      href="/products/adjustable-silicone-nail-stamper-enlarge-reduce-stamping-designs"
15969      aria-label="Adjustable Silicone Nail Stamper – Enlarge & Reduce Stamping Designs"
15970    >
15971      <slideshow-component
15972  
15973    ref="slideshow"
15974  
15975  
15976  style="--slideshow-timeline: --slide-1, --slide-2, --slide-3;--slide-min-height: auto;--slide-min-height-desktop: auto;"
15977  
15978  initial-slide="0"
15979  
15980  
15981    infinite
15982  
15983  
15984
15985  data-generic-media-size="3" allow-nested="true"
15986>
15987  
15988  <slideshow-container ref="slideshowContainer">
15989    
15990      <slideshow-arrows
15991  position="center"
15992  
15993><button
15994  class="
15995    slideshow-control slideshow-control--previous
15996    
15997    
15998    slideshow-control--style-arrow
15999    button button-unstyled button-unstyled--transparent
16000     flip-x
16001  "
16002  
16003  aria-label="Previous slide"
16004  
16005  on:click="/previous"
16006  ref="previous"
16007>
16008  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
16009</span>
16010</button>
16011<button
16012  class="
16013    slideshow-control slideshow-control--next
16014    
16015    
16016    slideshow-control--style-arrow
16017    button button-unstyled button-unstyled--transparent
16018    
16019  "
16020  
16021  aria-label="Next slide"
16022  
16023  on:click="/next"
16024  ref="next"
16025>
16026  <span class="svg-wrapper icon-arrow"><svg 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)" vector-effect="non-scaling-stroke" d="M4.25 10h11.5m0 0-4-4m4 4-4 4"/></svg>
16027</span>
16028</button>
16029</slideshow-arrows>
16030
16031    
16032    
16033    <slideshow-slides
16034      tabindex="-1"
16035      ref="scroller"
16036      
16037    >
16038      <slideshow-slide
16039  ref="slides[]"
16040  aria-hidden="false"
16041  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
16042  
16043    class="product-media-container media-fit product-media-container--image"
16044  
16045  
16046  
16047  
16048    slide-id="62491997307226"
16049  
16050  
16051  
16052  
16053>
16054  
16055
16056<div
16057  class="product-media"
16058  style="--ratio: 1.0"
16059  data-media-id="62491997307226"
16060>
16061  
16062  <img src="//www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=3840" alt="Adjustable Silicone Nail Stamper – Enlarge &amp; Reduce Stamping Designs" srcset="//www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
16063
16064  
16065</div>
16066
16067
16068
16069</slideshow-slide>
16070<slideshow-slide
16071  ref="slides[]"
16072  aria-hidden="true"
16073  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
16074  
16075    class="product-media-container media-fit product-media-container--image"
16076  
16077  
16078  
16079  
16080    slide-id="62491997372762"
16081  
16082  
16083  
16084  
16085>
16086  
16087
16088<div
16089  class="product-media"
16090  style="--ratio: 1.0"
16091  data-media-id="62491997372762"
16092>
16093  
16094  <img src="//www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=3840" alt="Adjustable Silicone Nail Stamper – Enlarge &amp; Reduce Stamping Designs" srcset="//www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/mrnailstamper.jpg?v=1791294086&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
16095
16096  
16097</div>
16098
16099
16100
16101</slideshow-slide>
16102<slideshow-slide
16103  ref="slides[]"
16104  aria-hidden="true"
16105  style="--slideshow-timeline: --slide-2; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
16106  
16107    class="product-media-container media-fit product-media-container--image"
16108  
16109  
16110  
16111  
16112    slide-id="62491997339994"
16113  
16114  
16115  
16116  
16117>
16118  
16119
16120<div
16121  class="product-media"
16122  style="--ratio: 1.0"
16123  data-media-id="62491997339994"
16124>
16125  
16126  <img src="//www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=3840" alt="Adjustable Silicone Nail Stamper – Enlarge &amp; Reduce Stamping Designs" srcset="//www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=3840 3840w" width="3840" height="3840" loading="lazy" sizes="auto, (min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/5_10.jpg?v=1791294086&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
16127
16128  
16129</div>
16130
16131
16132
16133</slideshow-slide>
16134
16135    </slideshow-slides>
16136  </slideshow-container>
16137  
16138</slideshow-component>
16139
16140
16141
16142    </a>
16143  
16144  
16145    <div
16146      class="product-badges product-badges--top-right"
16147      style="
16148        --badge-border-radius: 100px;
16149        --badge-font-family: var(--font-body--family);
16149 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
16150      "
16151    ></div>
16152    
16153      
16154
16155<quick-add-component
16156  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
16157  ref="quickAdd"
16158  data-product-title="Adjustable Silicone Nail Stamper – Enlarge & Reduce Stamping Designs"
16159  data-quick-add-button="add"
16160  data-product-options-count="1"
16161>
16162  <product-form-component
16163    data-section-id="template--28213213921626__product_list_ykU4x3"
16164    data-product-id="11020474974554"
16165    on:submit="/handleSubmit"
16166    class="quick-add__product-form-component"
16167  >
16168    <div
16169      class="visually-hidden"
16170      aria-live="assertive"
16171      role="status"
16172      aria-atomic="true"
16173      ref="liveRegion"
16174    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11020474974554-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-5" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
16175        type="hidden"
16176        name="id"
16177        ref="variantId"
16178        value="54915240788314"
16179        
16180      >
16181      <input
16182        type="hidden"
16183        name="quantity"
16184        value="1"
16185      >
16186      
16187      <add-to-cart-component
16188  ref="addToCartButtonContainer"
16189  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/3_12.jpg?v=1791294086&width=100"
16190  data-add-to-cart-animation="true"
16191>
16192  <button
16193    
16194    type="submit"
16195    name="add"
16196    ref="addToCartButton"
16197    on:click="/handleClick"
16198    class="button button quick-add__button quick-add__button--add add-to-cart-button"
16199    
16200    
16201  >
16202    <span
16203      class="add-to-cart-text"
16204    >
16205      
16206        <span
16207          aria-hidden="true"
16208          class="svg-wrapper add-to-cart-icon"
16209        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
16210</span>
16211      
16212      <span class="add-to-cart-text__content is-visually-hidden-mobile">
16213        <span>
16214          <span>Add</span>
16215        </span>
16216      </span>
16217    </span>
16218    
16219    <span class="add-to-cart__added">
16220      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
16221  <g class="check">
16222    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
16223    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
16224  </g>
16225  <g class="burst">
16226    <g style="--index: 0;">
16227      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16228    </g>
16229    <g style="--index: 1;">
16230      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16231    </g>
16232    <g style="--index: 2;">
16233      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16234    </g>
16235    <g style="--index: 3;">
16236      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16237    </g>
16238    <g style="--index: 4;">
16239      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16240    </g>
16241    <g style="--index: 5;">
16242      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16243    </g>
16244    <g style="--index: 6;">
16245      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16246    </g>
16247    <g style="--index: 7;">
16248      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16249    </g>
16250  </g>
16251</svg>
16252</span>
16253    </span>
16254  </button>
16255</add-to-cart-component>
16256
16257
16258
16259
16260      <button
16261        class="button quick-add__button quick-add__button--choose add-to-cart-button"
16262        
16263        type="button"
16264        name="add"
16265        on:click="quick-add-component/handleClick"
16266      >
16267        <span
16268          class="add-to-cart-text quick-add__button-content"
16269        >
16270          
16271          <span
16272            aria-hidden="true"
16273            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
16274          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
16275</span>
16276          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
16277            <span>
16278              
16279              <span>
16280                Add
16281              </span>
16282            </span>
16283          </span>
16284        </span>
16285      </button><input type="hidden" name="product-id" value="11020474974554" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
16286</quick-add-component>
16287
16288
16289
16290    
16291  
16292
16293</div>
16294
16295
16296
16297
16298
16299<div class="product-grid-view-zoom-out--details">
16300  
16301    <h3 class="h4">Adjustable Silicone Nail Stamper – Enlarge & Reduce Stamping Designs</h3>
16302  
16303</div>
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317  
16318    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-5 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
16319      <p>MR NAIL </p>
16320    </div>
16321  
16322
16323
16324
16325
16326<script type="module">
16327  class TextReadMoreWrapper extends HTMLElement {
16328    #expanded = false;
16329    #animation = null;
16330    #collapsedHeight = 0;
16331
16332    connectedCallback() {
16333      const content = this.querySelector('.text-read-more__content');
16334      const textElement = this.querySelector('.text-read-more__text');
16335      const button = this.querySelector('.text-read-more__button');
16336
16337      if (!content || !textElement || !button) return;
16338
16339      // Set initial state
16340      this.dataset.expanded = 'false';
16341
16342      // Wait for content to render - use double RAF to ensure layout is complete
16343      requestAnimationFrame(() => {
16344        requestAnimationFrame(() => {
16345          // Additional small delay to ensure fonts and styles are applied
16346          setTimeout(() => {
16347            this.#checkOverflow(content, textElement, button);
16348          }, 50);
16349          
16350          // Recheck on resize
16351          const resizeObserver = new ResizeObserver(() => {
16352            if (!this.#expanded) {
16353              this.#checkOverflow(content, textElement, button);
16354            }
16355          });
16356          resizeObserver.observe(content);
16357
16358          // Setup button click handler
16359          button.addEventListener('click', (e) => {
16360            e.preventDefault();
16361            this.#toggle(content, textElement, button);
16362          });
16363        });
16364      });
16365    }
16366
16367    #checkOverflow(content, textElement, button) {
16368      // Ensure collapsed state is applied
16369      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
16370        textElement.classList.add('text-read-more__text--collapsed');
16371      }
16372      
16373      // Get collapsed height first
16374      const collapsedHeight = content.scrollHeight;
16375      this.#collapsedHeight = collapsedHeight;
16376      
16377      // Temporarily remove line-clamp to measure full height
16378      textElement.classList.remove('text-read-more__text--collapsed');
16379      
16380      // Force reflow
16381      void content.offsetHeight;
16382      
16383      const fullHeight = content.scrollHeight;
16384      
16385      // Restore line-clamp
16386      textElement.classList.add('text-read-more__text--collapsed');
16387      
16388      // Show button if content exceeds 2 lines (with small threshold for rounding)
16389      if (fullHeight > collapsedHeight + 5) {
16390        button.removeAttribute('hidden');
16391      } else {
16392        button.setAttribute('hidden', '');
16393      }
16394    }
16395
16396    #toggle(content, textElement, button) {
16397      const startHeight = content.offsetHeight;
16398      let endHeight;
16399
16400      if (!this.#expanded) {
16401        // Expanding
16402        textElement.classList.remove('text-read-more__text--collapsed');
16403        endHeight = content.scrollHeight;
16404        this.#expanded = true;
16405      } else {
16406        // Collapsing
16407        endHeight = this.#collapsedHeight;
16408        this.#expanded = false;
16409      }
16410
16411      this.dataset.expanded = this.#expanded;
16412      button.setAttribute('aria-expanded', this.#expanded);
16413
16414      // Animate
16415      content.style.overflow = 'hidden';
16416      this.#animation?.cancel();
16417
16418      this.#animation = content.animate(
16419        {
16420          height: [`${startHeight}px`, `${endHeight}px`],
16421        },
16422        {
16423          duration: 300,
16424          easing: 'ease-in-out',
16425        }
16426      );
16427
16428      this.#animation.onfinish = () => {
16429        if (this.#expanded) {
16430          content.style.removeProperty('height');
16431          content.style.overflow = '';
16432        } else {
16433          textElement.classList.add('text-read-more__text--collapsed');
16434          content.style.removeProperty('height');
16435          content.style.overflow = '';
16436        }
16437      };
16438    }
16439  }
16440
16441  if (!customElements.get('text-read-more-wrapper')) {
16442    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
16443  }
16444</script>
16444
16445
16446
16447
16448
16449
16450
16451  
16452  <a
16453    class="contents user-select-text"
16454    ref="productTitleLink"
16455    href="/products/adjustable-silicone-nail-stamper-enlarge-reduce-stamping-designs"
16456  >
16457    
16458
16459
16460
16461
16462
16463
16464  
16465    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-5 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
16466      <p>Adjustable Silicone Nail Stamper – Enlarge & Reduce Stamping Designs</p>
16467    </div>
16468  
16469
16470
16471
16472
16473<script type="module">
16474  class TextReadMoreWrapper extends HTMLElement {
16475    #expanded = false;
16476    #animation = null;
16477    #collapsedHeight = 0;
16478
16479    connectedCallback() {
16480      const content = this.querySelector('.text-read-more__content');
16481      const textElement = this.querySelector('.text-read-more__text');
16482      const button = this.querySelector('.text-read-more__button');
16483
16484      if (!content || !textElement || !button) return;
16485
16486      // Set initial state
16487      this.dataset.expanded = 'false';
16488
16489      // Wait for content to render - use double RAF to ensure layout is complete
16490      requestAnimationFrame(() => {
16491        requestAnimationFrame(() => {
16492          // Additional small delay to ensure fonts and styles are applied
16493          setTimeout(() => {
16494            this.#checkOverflow(content, textElement, button);
16495          }, 50);
16496          
16497          // Recheck on resize
16498          const resizeObserver = new ResizeObserver(() => {
16499            if (!this.#expanded) {
16500              this.#checkOverflow(content, textElement, button);
16501            }
16502          });
16503          resizeObserver.observe(content);
16504
16505          // Setup button click handler
16506          button.addEventListener('click', (e) => {
16507            e.preventDefault();
16508            this.#toggle(content, textElement, button);
16509          });
16510        });
16511      });
16512    }
16513
16514    #checkOverflow(content, textElement, button) {
16515      // Ensure collapsed state is applied
16516      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
16517        textElement.classList.add('text-read-more__text--collapsed');
16518      }
16519      
16520      // Get collapsed height first
16521      const collapsedHeight = content.scrollHeight;
16522      this.#collapsedHeight = collapsedHeight;
16523      
16524      // Temporarily remove line-clamp to measure full height
16525      textElement.classList.remove('text-read-more__text--collapsed');
16526      
16527      // Force reflow
16528      void content.offsetHeight;
16529      
16530      const fullHeight = content.scrollHeight;
16531      
16532      // Restore line-clamp
16533      textElement.classList.add('text-read-more__text--collapsed');
16534      
16535      // Show button if content exceeds 2 lines (with small threshold for rounding)
16536      if (fullHeight > collapsedHeight + 5) {
16537        button.removeAttribute('hidden');
16538      } else {
16539        button.setAttribute('hidden', '');
16540      }
16541    }
16542
16543    #toggle(content, textElement, button) {
16544      const startHeight = content.offsetHeight;
16545      let endHeight;
16546
16547      if (!this.#expanded) {
16548        // Expanding
16549        textElement.classList.remove('text-read-more__text--collapsed');
16550        endHeight = content.scrollHeight;
16551        this.#expanded = true;
16552      } else {
16553        // Collapsing
16554        endHeight = this.#collapsedHeight;
16555        this.#expanded = false;
16556      }
16557
16558      this.dataset.expanded = this.#expanded;
16559      button.setAttribute('aria-expanded', this.#expanded);
16560
16561      // Animate
16562      content.style.overflow = 'hidden';
16563      this.#animation?.cancel();
16564
16565      this.#animation = content.animate(
16566        {
16567          height: [`${startHeight}px`, `${endHeight}px`],
16568        },
16569        {
16570          duration: 300,
16571          easing: 'ease-in-out',
16572        }
16573      );
16574
16575      this.#animation.onfinish = () => {
16576        if (this.#expanded) {
16577          content.style.removeProperty('height');
16578          content.style.overflow = '';
16579        } else {
16580          textElement.classList.add('text-read-more__text--collapsed');
16581          content.style.removeProperty('height');
16582          content.style.overflow = '';
16583        }
16584      };
16585    }
16586  }
16587
16588  if (!customElements.get('text-read-more-wrapper')) {
16589    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
16590  }
16591</script>
16591
16592
16593  </a>
16594
16595
16596
16597
16598
16599
16600<product-price
16601  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
16602  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-5"
16603  data-product-id="11020474974554"
16604  style="
16605    
16606--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
16607    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
16608    --width: 100%;
16609  "
16610  
16611>
16612  <div ref="priceContainer">
16613  
16614    
16615    
16616
16617    
16618      <span class="price">£6.00</span>
16619    
16620
16621    
16622  
16623</div>
16624
16625  
16626</product-price>
16627
16628
16629
16630
16631
16632
16633
16634
16635  </div>
16636</product-card></product-card-link>
16637
16638</div>
16639
16640
16641
16642
16643
16644
16645            
16646          </div>
16647
16648          
16649            
16650</slideshow-slide>
16651
16652  
16653    <slideshow-slide
16654  ref="slides[]"
16655  aria-hidden="true"
16656  style="--slideshow-timeline: --slide-6; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
16657  
16658    class="resource-list__slide"
16659  
16660  
16661  
16662  
16663  
16664  
16665  
16666>
16667  
16668          
16669        
16670          <div
16671            class="resource-list__item"
16672          >
16673            
16674              
16675
16676<div >
16677  
16678
16679<style data-shopify>
16680  
16681</style>
16682
16683
16684<product-card-link
16685    data-product-id="11006315200858"
16686    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&width=500"
16687    data-product-transition="true"
16688    
16689  ><product-card
16690  class="product-card"
16691  data-product-id="11006315200858"
16692  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-6"
16693  data-product-transition="true"
16694  
16695  
16696>
16697  <a
16698    id="2f70f141bd401d32d1cc2a823a7430c3"
16699    
16700      href="/products/cnd-shellac%E2%84%A2-magenta-sky-polish-7-3ml-hema-tpo-free?variant=54841813926234"
16701    
16702    class="product-card__link"
16703    ref="productCardLink"
16704  >
16705    <span class="visually-hidden">
16706      CND SHELLAC™ Magenta Sky Polish 7.3ml – HEMA & TPO Free
16707    </span>
16708  </a>
16709  <div
16710    class="
16711      product-card__content
16712      layout-panel-flex
16713      layout-panel-flex--column
16714      product-grid__card
16715      spacing-style
16716      border-style
16717      gap-style
16718      
16719    "
16720    style="
16721      --border-width: 1px; --border-style: none; --border-color:
16722rgb(var(--color-border-rgb) / 1.0); --border-radius:
167230px; 
16724
16725      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
16726
16727
16728
16729--horizontal-alignment: ; --vertical-alignment: ;
16730--vertical-alignment-mobile: ;
16731
16732      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
16733      --product-card-gap: 8px;
16734      --quick-add-display: flex;
16735      --quick-add-mobile-display: flex;
16736      --quick-add-mobile-opacity: 1;
16737      
16738      
16739      
16740      
16741    "
16742  >
16743    
16744  
16745
16746
16747
16748
16749
16750
16751
16752<div
16753  ref="cardGallery"
16754  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-6 spacing-style border-style"
16755  style="
16756    --border-width: 1px; --border-style: solid; --border-color:
16757rgb(var(--color-border-rgb) / 1.0); --border-radius:
1675812px;  overflow: hidden; 
16759
16760    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
16761    --gallery-aspect-ratio: 1.0;
16762  "
16763  data-product-id="11006315200858"
16764  
16765    on:pointerenter="/previewImage"
16766    on:pointerleave="/resetImage"
16767  
16768  
16769    data-view-transition-to-main-product
16770  
16771  data-image-ratio="adapt"
16772  
16773>
16774    <a
16775      class="contents"
16776      ref="cardGalleryLink"
16777      href="/products/cnd-shellac%E2%84%A2-magenta-sky-polish-7-3ml-hema-tpo-free"
16778      aria-label="CND SHELLAC™ Magenta Sky Polish 7.3ml – HEMA & TPO Free"
16779    >
16780      <slideshow-component
16781  
16782    ref="slideshow"
16783  
16784  
16785  style="--slideshow-timeline: --slide-1;--slide-min-height: auto;--slide-min-height-desktop: auto;"
16786  
16787  initial-slide="0"
16788  
16789  
16790    infinite
16791  
16792  
16793
16794  data-generic-media-size="1" allow-nested="true"
16795>
16796  
16797  <slideshow-container ref="slideshowContainer">
16798    
16799    
16800    <slideshow-slides
16801      tabindex="-1"
16802      ref="scroller"
16803      
16804    >
16805      <slideshow-slide
16806  ref="slides[]"
16807  aria-hidden="false"
16808  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
16809  
16810    class="product-media-container media-fit product-media-container--image"
16811  
16812  
16813  
16814  
16815    slide-id="62361385238874"
16816  
16817  
16818  
16819  
16820>
16821  
16822
16823<div
16824  class="product-media"
16825  style="--ratio: 1.0"
16826  data-media-id="62361385238874"
16827>
16828  
16829  <img src="//www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=3840" alt="CND SHELLAC™ Magenta Sky Polish 7.3ml – HEMA &amp; TPO Free" srcset="//www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
16830
16831  
16832</div>
16833
16834
16835
16836</slideshow-slide>
16837
16838    </slideshow-slides>
16839  </slideshow-container>
16840  
16841</slideshow-component>
16842
16843
16844
16845    </a>
16846  
16847  
16848    <div
16849      class="product-badges product-badges--top-right"
16850      style="
16851        --badge-border-radius: 100px;
16852        --badge-font-family: var(--font-body--family);
16852 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
16853      "
16854    ></div>
16855    
16856      
16857
16858<quick-add-component
16859  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
16860  ref="quickAdd"
16861  data-product-title="CND SHELLAC™ Magenta Sky Polish 7.3ml – HEMA & TPO Free"
16862  data-quick-add-button="add"
16863  data-product-options-count="1"
16864>
16865  <product-form-component
16866    data-section-id="template--28213213921626__product_list_ykU4x3"
16867    data-product-id="11006315200858"
16868    on:submit="/handleSubmit"
16869    class="quick-add__product-form-component"
16870  >
16871    <div
16872      class="visually-hidden"
16873      aria-live="assertive"
16874      role="status"
16875      aria-atomic="true"
16876      ref="liveRegion"
16877    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11006315200858-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-6" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
16878        type="hidden"
16879        name="id"
16880        ref="variantId"
16881        value="54841813926234"
16882        
16883      >
16884      <input
16885        type="hidden"
16886        name="quantity"
16887        value="1"
16888      >
16889      
16890      <add-to-cart-component
16891  ref="addToCartButtonContainer"
16892  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/MagentaSky.png?v=1790262619&width=100"
16893  data-add-to-cart-animation="true"
16894>
16895  <button
16896    
16897    type="submit"
16898    name="add"
16899    ref="addToCartButton"
16900    on:click="/handleClick"
16901    class="button button quick-add__button quick-add__button--add add-to-cart-button"
16902    
16903    
16904  >
16905    <span
16906      class="add-to-cart-text"
16907    >
16908      
16909        <span
16910          aria-hidden="true"
16911          class="svg-wrapper add-to-cart-icon"
16912        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
16913</span>
16914      
16915      <span class="add-to-cart-text__content is-visually-hidden-mobile">
16916        <span>
16917          <span>Add</span>
16918        </span>
16919      </span>
16920    </span>
16921    
16922    <span class="add-to-cart__added">
16923      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
16924  <g class="check">
16925    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
16926    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
16927  </g>
16928  <g class="burst">
16929    <g style="--index: 0;">
16930      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16931    </g>
16932    <g style="--index: 1;">
16933      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16934    </g>
16935    <g style="--index: 2;">
16936      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16937    </g>
16938    <g style="--index: 3;">
16939      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16940    </g>
16941    <g style="--index: 4;">
16942      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16943    </g>
16944    <g style="--index: 5;">
16945      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16946    </g>
16947    <g style="--index: 6;">
16948      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16949    </g>
16950    <g style="--index: 7;">
16951      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
16952    </g>
16953  </g>
16954</svg>
16955</span>
16956    </span>
16957  </button>
16958</add-to-cart-component>
16959
16960
16961
16962
16963      <button
16964        class="button quick-add__button quick-add__button--choose add-to-cart-button"
16965        
16966        type="button"
16967        name="add"
16968        on:click="quick-add-component/handleClick"
16969      >
16970        <span
16971          class="add-to-cart-text quick-add__button-content"
16972        >
16973          
16974          <span
16975            aria-hidden="true"
16976            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
16977          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
16978</span>
16979          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
16980            <span>
16981              
16982              <span>
16983                Add
16984              </span>
16985            </span>
16986          </span>
16987        </span>
16988      </button><input type="hidden" name="product-id" value="11006315200858" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
16989</quick-add-component>
16990
16991
16992
16993    
16994  
16995
16996</div>
16997
16998
16999
17000
17001
17002<div class="product-grid-view-zoom-out--details">
17003  
17004    <h3 class="h4">CND SHELLAC™ Magenta Sky Polish 7.3ml – HEMA & TPO Free</h3>
17005  
17006</div>
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020  
17021    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-6 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
17022      <p>CND </p>
17023    </div>
17024  
17025
17026
17027
17028
17029<script type="module">
17030  class TextReadMoreWrapper extends HTMLElement {
17031    #expanded = false;
17032    #animation = null;
17033    #collapsedHeight = 0;
17034
17035    connectedCallback() {
17036      const content = this.querySelector('.text-read-more__content');
17037      const textElement = this.querySelector('.text-read-more__text');
17038      const button = this.querySelector('.text-read-more__button');
17039
17040      if (!content || !textElement || !button) return;
17041
17042      // Set initial state
17043      this.dataset.expanded = 'false';
17044
17045      // Wait for content to render - use double RAF to ensure layout is complete
17046      requestAnimationFrame(() => {
17047        requestAnimationFrame(() => {
17048          // Additional small delay to ensure fonts and styles are applied
17049          setTimeout(() => {
17050            this.#checkOverflow(content, textElement, button);
17051          }, 50);
17052          
17053          // Recheck on resize
17054          const resizeObserver = new ResizeObserver(() => {
17055            if (!this.#expanded) {
17056              this.#checkOverflow(content, textElement, button);
17057            }
17058          });
17059          resizeObserver.observe(content);
17060
17061          // Setup button click handler
17062          button.addEventListener('click', (e) => {
17063            e.preventDefault();
17064            this.#toggle(content, textElement, button);
17065          });
17066        });
17067      });
17068    }
17069
17070    #checkOverflow(content, textElement, button) {
17071      // Ensure collapsed state is applied
17072      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
17073        textElement.classList.add('text-read-more__text--collapsed');
17074      }
17075      
17076      // Get collapsed height first
17077      const collapsedHeight = content.scrollHeight;
17078      this.#collapsedHeight = collapsedHeight;
17079      
17080      // Temporarily remove line-clamp to measure full height
17081      textElement.classList.remove('text-read-more__text--collapsed');
17082      
17083      // Force reflow
17084      void content.offsetHeight;
17085      
17086      const fullHeight = content.scrollHeight;
17087      
17088      // Restore line-clamp
17089      textElement.classList.add('text-read-more__text--collapsed');
17090      
17091      // Show button if content exceeds 2 lines (with small threshold for rounding)
17092      if (fullHeight > collapsedHeight + 5) {
17093        button.removeAttribute('hidden');
17094      } else {
17095        button.setAttribute('hidden', '');
17096      }
17097    }
17098
17099    #toggle(content, textElement, button) {
17100      const startHeight = content.offsetHeight;
17101      let endHeight;
17102
17103      if (!this.#expanded) {
17104        // Expanding
17105        textElement.classList.remove('text-read-more__text--collapsed');
17106        endHeight = content.scrollHeight;
17107        this.#expanded = true;
17108      } else {
17109        // Collapsing
17110        endHeight = this.#collapsedHeight;
17111        this.#expanded = false;
17112      }
17113
17114      this.dataset.expanded = this.#expanded;
17115      button.setAttribute('aria-expanded', this.#expanded);
17116
17117      // Animate
17118      content.style.overflow = 'hidden';
17119      this.#animation?.cancel();
17120
17121      this.#animation = content.animate(
17122        {
17123          height: [`${startHeight}px`, `${endHeight}px`],
17124        },
17125        {
17126          duration: 300,
17127          easing: 'ease-in-out',
17128        }
17129      );
17130
17131      this.#animation.onfinish = () => {
17132        if (this.#expanded) {
17133          content.style.removeProperty('height');
17134          content.style.overflow = '';
17135        } else {
17136          textElement.classList.add('text-read-more__text--collapsed');
17137          content.style.removeProperty('height');
17138          content.style.overflow = '';
17139        }
17140      };
17141    }
17142  }
17143
17144  if (!customElements.get('text-read-more-wrapper')) {
17145    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
17146  }
17147</script>
17147
17148
17149
17150
17151
17152
17153
17154  
17155  <a
17156    class="contents user-select-text"
17157    ref="productTitleLink"
17158    href="/products/cnd-shellac%E2%84%A2-magenta-sky-polish-7-3ml-hema-tpo-free"
17159  >
17160    
17161
17162
17163
17164
17165
17166
17167  
17168    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-6 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
17169      <p>CND SHELLAC™ Magenta Sky Polish 7.3ml – HEMA & TPO Free</p>
17170    </div>
17171  
17172
17173
17174
17175
17176<script type="module">
17177  class TextReadMoreWrapper extends HTMLElement {
17178    #expanded = false;
17179    #animation = null;
17180    #collapsedHeight = 0;
17181
17182    connectedCallback() {
17183      const content = this.querySelector('.text-read-more__content');
17184      const textElement = this.querySelector('.text-read-more__text');
17185      const button = this.querySelector('.text-read-more__button');
17186
17187      if (!content || !textElement || !button) return;
17188
17189      // Set initial state
17190      this.dataset.expanded = 'false';
17191
17192      // Wait for content to render - use double RAF to ensure layout is complete
17193      requestAnimationFrame(() => {
17194        requestAnimationFrame(() => {
17195          // Additional small delay to ensure fonts and styles are applied
17196          setTimeout(() => {
17197            this.#checkOverflow(content, textElement, button);
17198          }, 50);
17199          
17200          // Recheck on resize
17201          const resizeObserver = new ResizeObserver(() => {
17202            if (!this.#expanded) {
17203              this.#checkOverflow(content, textElement, button);
17204            }
17205          });
17206          resizeObserver.observe(content);
17207
17208          // Setup button click handler
17209          button.addEventListener('click', (e) => {
17210            e.preventDefault();
17211            this.#toggle(content, textElement, button);
17212          });
17213        });
17214      });
17215    }
17216
17217    #checkOverflow(content, textElement, button) {
17218      // Ensure collapsed state is applied
17219      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
17220        textElement.classList.add('text-read-more__text--collapsed');
17221      }
17222      
17223      // Get collapsed height first
17224      const collapsedHeight = content.scrollHeight;
17225      this.#collapsedHeight = collapsedHeight;
17226      
17227      // Temporarily remove line-clamp to measure full height
17228      textElement.classList.remove('text-read-more__text--collapsed');
17229      
17230      // Force reflow
17231      void content.offsetHeight;
17232      
17233      const fullHeight = content.scrollHeight;
17234      
17235      // Restore line-clamp
17236      textElement.classList.add('text-read-more__text--collapsed');
17237      
17238      // Show button if content exceeds 2 lines (with small threshold for rounding)
17239      if (fullHeight > collapsedHeight + 5) {
17240        button.removeAttribute('hidden');
17241      } else {
17242        button.setAttribute('hidden', '');
17243      }
17244    }
17245
17246    #toggle(content, textElement, button) {
17247      const startHeight = content.offsetHeight;
17248      let endHeight;
17249
17250      if (!this.#expanded) {
17251        // Expanding
17252        textElement.classList.remove('text-read-more__text--collapsed');
17253        endHeight = content.scrollHeight;
17254        this.#expanded = true;
17255      } else {
17256        // Collapsing
17257        endHeight = this.#collapsedHeight;
17258        this.#expanded = false;
17259      }
17260
17261      this.dataset.expanded = this.#expanded;
17262      button.setAttribute('aria-expanded', this.#expanded);
17263
17264      // Animate
17265      content.style.overflow = 'hidden';
17266      this.#animation?.cancel();
17267
17268      this.#animation = content.animate(
17269        {
17270          height: [`${startHeight}px`, `${endHeight}px`],
17271        },
17272        {
17273          duration: 300,
17274          easing: 'ease-in-out',
17275        }
17276      );
17277
17278      this.#animation.onfinish = () => {
17279        if (this.#expanded) {
17280          content.style.removeProperty('height');
17281          content.style.overflow = '';
17282        } else {
17283          textElement.classList.add('text-read-more__text--collapsed');
17284          content.style.removeProperty('height');
17285          content.style.overflow = '';
17286        }
17287      };
17288    }
17289  }
17290
17291  if (!customElements.get('text-read-more-wrapper')) {
17292    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
17293  }
17294</script>
17294
17295
17296  </a>
17297
17298
17299
17300
17301
17302
17303<product-price
17304  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
17305  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-6"
17306  data-product-id="11006315200858"
17307  style="
17308    
17309--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
17310    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
17311    --width: 100%;
17312  "
17313  
17314>
17315  <div ref="priceContainer">
17316  
17317    
17318    
17319
17320    
17321      <span class="price">£14.00</span>
17322    
17323
17324    
17325  
17326</div>
17327
17328  
17329</product-price>
17330
17331
17332
17333
17334
17335
17336
17337
17338  </div>
17339</product-card></product-card-link>
17340
17341</div>
17342
17343
17344
17345
17346
17347
17348            
17349          </div>
17350
17351          
17352            
17353</slideshow-slide>
17354
17355  
17356    <slideshow-slide
17357  ref="slides[]"
17358  aria-hidden="true"
17359  style="--slideshow-timeline: --slide-7; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
17360  
17361    class="resource-list__slide"
17362  
17363  
17364  
17365  
17366  
17367  
17368  
17369>
17370  
17371          
17372        
17373          <div
17374            class="resource-list__item"
17375          >
17376            
17377              
17378
17379<div >
17380  
17381
17382<style data-shopify>
17383  
17384</style>
17385
17386
17387<product-card-link
17388    data-product-id="11005042655578"
17389    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&width=500"
17390    data-product-transition="true"
17391    
17392  ><product-card
17393  class="product-card"
17394  data-product-id="11005042655578"
17395  id="product-card-AeTdjd2lkb3BwakczM__static-product-card-7"
17396  data-product-transition="true"
17397  
17398  
17399>
17400  <a
17401    id="6286236381911b7ac399f25f03da4a64"
17402    
17403      href="/products/saeyang-k38-portable-nail-file-machine?variant=54838219735386"
17404    
17405    class="product-card__link"
17406    ref="productCardLink"
17407  >
17408    <span class="visually-hidden">
17409      SAEYANG K38 Portable Nail File Machine
17410    </span>
17411  </a>
17412  <div
17413    class="
17414      product-card__content
17415      layout-panel-flex
17416      layout-panel-flex--column
17417      product-grid__card
17418      spacing-style
17419      border-style
17420      gap-style
17421      
17422    "
17423    style="
17424      --border-width: 1px; --border-style: none; --border-color:
17425rgb(var(--color-border-rgb) / 1.0); --border-radius:
174260px; 
17427
17428      --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
17429
17430
17431
17432--horizontal-alignment: ; --vertical-alignment: ;
17433--vertical-alignment-mobile: ;
17434
17435      --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
17436      --product-card-gap: 8px;
17437      --quick-add-display: flex;
17438      --quick-add-mobile-display: flex;
17439      --quick-add-mobile-opacity: 1;
17440      
17441      
17442      
17443      
17444    "
17445  >
17446    
17447  
17448
17449
17450
17451
17452
17453
17454
17455<div
17456  ref="cardGallery"
17457  class="card-gallery card-gallery-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-7 spacing-style border-style"
17458  style="
17459    --border-width: 1px; --border-style: solid; --border-color:
17460rgb(var(--color-border-rgb) / 1.0); --border-radius:
1746112px;  overflow: hidden; 
17462
17463    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
17464    --gallery-aspect-ratio: 1.0;
17465  "
17466  data-product-id="11005042655578"
17467  
17468    on:pointerenter="/previewImage"
17469    on:pointerleave="/resetImage"
17470  
17471  
17472    data-view-transition-to-main-product
17473  
17474  data-image-ratio="adapt"
17475  
17476>
17477    <a
17478      class="contents"
17479      ref="cardGalleryLink"
17480      href="/products/saeyang-k38-portable-nail-file-machine"
17481      aria-label="SAEYANG K38 Portable Nail File Machine"
17482    >
17483      <slideshow-component
17484  
17485    ref="slideshow"
17486  
17487  
17488  style="--slideshow-timeline: --slide-1;--slide-min-height: auto;--slide-min-height-desktop: auto;"
17489  
17490  initial-slide="0"
17491  
17492  
17493    infinite
17494  
17495  
17496
17497  data-generic-media-size="1" allow-nested="true"
17498>
17499  
17500  <slideshow-container ref="slideshowContainer">
17501    
17502    
17503    <slideshow-slides
17504      tabindex="-1"
17505      ref="scroller"
17506      
17507    >
17508      <slideshow-slide
17509  ref="slides[]"
17510  aria-hidden="false"
17511  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
17512  
17513    class="product-media-container media-fit product-media-container--image"
17514  
17515  
17516  
17517  
17518    slide-id="62340411392346"
17519  
17520  
17521  
17522  
17523>
17524  
17525
17526<div
17527  class="product-media"
17528  style="--ratio: 1.0"
17529  data-media-id="62340411392346"
17530>
17531  
17532  <img src="//www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=3840" alt="SAEYANG K38 Portable Nail File Machine" srcset="//www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=3840 3840w" width="3840" height="3840" loading="eager" sizes="(min-width: 750px) 25.0vw, 100vw" class="product-media__image" transitionToProduct="true" data_max_resolution="//www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&amp;width=3840" fetchpriority="auto" style="--focal-point: 50.0% 50.0%;">
17533
17534  
17535</div>
17536
17537
17538
17539</slideshow-slide>
17540
17541    </slideshow-slides>
17542  </slideshow-container>
17543  
17544</slideshow-component>
17545
17546
17547
17548    </a>
17549  
17550  
17551    <div
17552      class="product-badges product-badges--top-right"
17553      style="
17554        --badge-border-radius: 100px;
17555        --badge-font-family: var(--font-body--family);
17555 --badge-font-weight: var(--font-body--weight); --badge-text-transform: none;
17556      "
17557    ></div>
17558    
17559      
17560
17561<quick-add-component
17562  class="quick-add color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 "
17563  ref="quickAdd"
17564  data-product-title="SAEYANG K38 Portable Nail File Machine"
17565  data-quick-add-button="add"
17566  data-product-options-count="1"
17567>
17568  <product-form-component
17569    data-section-id="template--28213213921626__product_list_ykU4x3"
17570    data-product-id="11005042655578"
17571    on:submit="/handleSubmit"
17572    class="quick-add__product-form-component"
17573  >
17574    <div
17575      class="visually-hidden"
17576      aria-live="assertive"
17577      role="status"
17578      aria-atomic="true"
17579      ref="liveRegion"
17580    ></div><form method="post" action="/cart/add" id="QuickAdd-ProductForm-11005042655578-AMkFPRXRiSW0yTnlCW__product_card_gallery_bDciU7-7" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-type="add-to-cart-form"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" /><input
17581        type="hidden"
17582        name="id"
17583        ref="variantId"
17584        value="54838219735386"
17585        
17586      >
17587      <input
17588        type="hidden"
17589        name="quantity"
17590        value="1"
17591      >
17592      
17593      <add-to-cart-component
17594  ref="addToCartButtonContainer"
17595  data-product-variant-media="//www.tnbl.co.uk/cdn/shop/files/K38White3_db2c2b9d-c3e3-459d-a8e6-b8163fda682e.png?v=1790170862&width=100"
17596  data-add-to-cart-animation="true"
17597>
17598  <button
17599    
17600    type="submit"
17601    name="add"
17602    ref="addToCartButton"
17603    on:click="/handleClick"
17604    class="button button quick-add__button quick-add__button--add add-to-cart-button"
17605    
17606    
17607  >
17608    <span
17609      class="add-to-cart-text"
17610    >
17611      
17612        <span
17613          aria-hidden="true"
17614          class="svg-wrapper add-to-cart-icon"
17615        ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
17616</span>
17617      
17618      <span class="add-to-cart-text__content is-visually-hidden-mobile">
17619        <span>
17620          <span>Add</span>
17621        </span>
17622      </span>
17623    </span>
17624    
17625    <span class="add-to-cart__added">
17626      <span class="svg-wrapper add-to-cart__added-icon"><svg aria-hidden="true" class="checkmark-burst" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
17627  <g class="check">
17628    <circle class="ring" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
17629    <path class="tick" d="M9 12.75L11.25 15L15 9.75" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
17630  </g>
17631  <g class="burst">
17632    <g style="--index: 0;">
17633      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17634    </g>
17635    <g style="--index: 1;">
17636      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17637    </g>
17638    <g style="--index: 2;">
17639      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17640    </g>
17641    <g style="--index: 3;">
17642      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17643    </g>
17644    <g style="--index: 4;">
17645      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17646    </g>
17647    <g style="--index: 5;">
17648      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17649    </g>
17650    <g style="--index: 6;">
17651      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17652    </g>
17653    <g style="--index: 7;">
17654      <line class="line" stroke-linecap="round" pathLength="1" x1="12" y1="8.5" x2="12" y2="15.5" stroke="currentColor"/>
17655    </g>
17656  </g>
17657</svg>
17658</span>
17659    </span>
17660  </button>
17661</add-to-cart-component>
17662
17663
17664
17665
17666      <button
17667        class="button quick-add__button quick-add__button--choose add-to-cart-button"
17668        
17669        type="button"
17670        name="add"
17671        on:click="quick-add-component/handleClick"
17672      >
17673        <span
17674          class="add-to-cart-text quick-add__button-content"
17675        >
17676          
17677          <span
17678            aria-hidden="true"
17679            class="svg-wrapper add-to-cart-icon quick-add__button-icon"
17680          ><svg 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="M16.608 9.421V6.906H3.392v8.016c0 .567.224 1.112.624 1.513.4.402.941.627 1.506.627H8.63M8.818 3h2.333c.618 0 1.212.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.344c0-.622.246-1.218.683-1.658A2.33 2.33 0 0 1 8.82 3"/><path stroke="currentColor" stroke-linecap="round" stroke-width="var(--icon-stroke-width)" d="M14.608 12.563v5m2.5-2.5h-5"/></svg>
17681</span>
17682          <span class="add-to-cart-text__content is-visually-hidden-mobile quick-add__button-text">
17683            <span>
17684              
17685              <span>
17686                Add
17687              </span>
17688            </span>
17689          </span>
17690        </span>
17691      </button><input type="hidden" name="product-id" value="11005042655578" /><input type="hidden" name="section-id" value="template--28213213921626__product_list_ykU4x3" /></form></product-form-component>
17692</quick-add-component>
17693
17694
17695
17696    
17697  
17698
17699</div>
17700
17701
17702
17703
17704
17705<div class="product-grid-view-zoom-out--details">
17706  
17707    <h3 class="h4">SAEYANG K38 Portable Nail File Machine</h3>
17708  
17709</div>
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723  
17724    <div class=" spacing-style text-block text-block--AWHY0bEN1blVtbmFle__text_JM9p8t-7 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
17725      <p>SAEYANG </p>
17726    </div>
17727  
17728
17729
17730
17731
17732<script type="module">
17733  class TextReadMoreWrapper extends HTMLElement {
17734    #expanded = false;
17735    #animation = null;
17736    #collapsedHeight = 0;
17737
17738    connectedCallback() {
17739      const content = this.querySelector('.text-read-more__content');
17740      const textElement = this.querySelector('.text-read-more__text');
17741      const button = this.querySelector('.text-read-more__button');
17742
17743      if (!content || !textElement || !button) return;
17744
17745      // Set initial state
17746      this.dataset.expanded = 'false';
17747
17748      // Wait for content to render - use double RAF to ensure layout is complete
17749      requestAnimationFrame(() => {
17750        requestAnimationFrame(() => {
17751          // Additional small delay to ensure fonts and styles are applied
17752          setTimeout(() => {
17753            this.#checkOverflow(content, textElement, button);
17754          }, 50);
17755          
17756          // Recheck on resize
17757          const resizeObserver = new ResizeObserver(() => {
17758            if (!this.#expanded) {
17759              this.#checkOverflow(content, textElement, button);
17760            }
17761          });
17762          resizeObserver.observe(content);
17763
17764          // Setup button click handler
17765          button.addEventListener('click', (e) => {
17766            e.preventDefault();
17767            this.#toggle(content, textElement, button);
17768          });
17769        });
17770      });
17771    }
17772
17773    #checkOverflow(content, textElement, button) {
17774      // Ensure collapsed state is applied
17775      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
17776        textElement.classList.add('text-read-more__text--collapsed');
17777      }
17778      
17779      // Get collapsed height first
17780      const collapsedHeight = content.scrollHeight;
17781      this.#collapsedHeight = collapsedHeight;
17782      
17783      // Temporarily remove line-clamp to measure full height
17784      textElement.classList.remove('text-read-more__text--collapsed');
17785      
17786      // Force reflow
17787      void content.offsetHeight;
17788      
17789      const fullHeight = content.scrollHeight;
17790      
17791      // Restore line-clamp
17792      textElement.classList.add('text-read-more__text--collapsed');
17793      
17794      // Show button if content exceeds 2 lines (with small threshold for rounding)
17795      if (fullHeight > collapsedHeight + 5) {
17796        button.removeAttribute('hidden');
17797      } else {
17798        button.setAttribute('hidden', '');
17799      }
17800    }
17801
17802    #toggle(content, textElement, button) {
17803      const startHeight = content.offsetHeight;
17804      let endHeight;
17805
17806      if (!this.#expanded) {
17807        // Expanding
17808        textElement.classList.remove('text-read-more__text--collapsed');
17809        endHeight = content.scrollHeight;
17810        this.#expanded = true;
17811      } else {
17812        // Collapsing
17813        endHeight = this.#collapsedHeight;
17814        this.#expanded = false;
17815      }
17816
17817      this.dataset.expanded = this.#expanded;
17818      button.setAttribute('aria-expanded', this.#expanded);
17819
17820      // Animate
17821      content.style.overflow = 'hidden';
17822      this.#animation?.cancel();
17823
17824      this.#animation = content.animate(
17825        {
17826          height: [`${startHeight}px`, `${endHeight}px`],
17827        },
17828        {
17829          duration: 300,
17830          easing: 'ease-in-out',
17831        }
17832      );
17833
17834      this.#animation.onfinish = () => {
17835        if (this.#expanded) {
17836          content.style.removeProperty('height');
17837          content.style.overflow = '';
17838        } else {
17839          textElement.classList.add('text-read-more__text--collapsed');
17840          content.style.removeProperty('height');
17841          content.style.overflow = '';
17842        }
17843      };
17844    }
17845  }
17846
17847  if (!customElements.get('text-read-more-wrapper')) {
17848    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
17849  }
17850</script>
17850
17851
17852
17853
17854
17855
17856
17857  
17858  <a
17859    class="contents user-select-text"
17860    ref="productTitleLink"
17861    href="/products/saeyang-k38-portable-nail-file-machine"
17862  >
17863    
17864
17865
17866
17867
17868
17869
17870  
17871    <div class=" spacing-style text-block text-block--ATnhFUTdmeU5LMzR6T__product_title_BLLeMm-7 custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 4px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
17872      <p>SAEYANG K38 Portable Nail File Machine</p>
17873    </div>
17874  
17875
17876
17877
17878
17879<script type="module">
17880  class TextReadMoreWrapper extends HTMLElement {
17881    #expanded = false;
17882    #animation = null;
17883    #collapsedHeight = 0;
17884
17885    connectedCallback() {
17886      const content = this.querySelector('.text-read-more__content');
17887      const textElement = this.querySelector('.text-read-more__text');
17888      const button = this.querySelector('.text-read-more__button');
17889
17890      if (!content || !textElement || !button) return;
17891
17892      // Set initial state
17893      this.dataset.expanded = 'false';
17894
17895      // Wait for content to render - use double RAF to ensure layout is complete
17896      requestAnimationFrame(() => {
17897        requestAnimationFrame(() => {
17898          // Additional small delay to ensure fonts and styles are applied
17899          setTimeout(() => {
17900            this.#checkOverflow(content, textElement, button);
17901          }, 50);
17902          
17903          // Recheck on resize
17904          const resizeObserver = new ResizeObserver(() => {
17905            if (!this.#expanded) {
17906              this.#checkOverflow(content, textElement, button);
17907            }
17908          });
17909          resizeObserver.observe(content);
17910
17911          // Setup button click handler
17912          button.addEventListener('click', (e) => {
17913            e.preventDefault();
17914            this.#toggle(content, textElement, button);
17915          });
17916        });
17917      });
17918    }
17919
17920    #checkOverflow(content, textElement, button) {
17921      // Ensure collapsed state is applied
17922      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
17923        textElement.classList.add('text-read-more__text--collapsed');
17924      }
17925      
17926      // Get collapsed height first
17927      const collapsedHeight = content.scrollHeight;
17928      this.#collapsedHeight = collapsedHeight;
17929      
17930      // Temporarily remove line-clamp to measure full height
17931      textElement.classList.remove('text-read-more__text--collapsed');
17932      
17933      // Force reflow
17934      void content.offsetHeight;
17935      
17936      const fullHeight = content.scrollHeight;
17937      
17938      // Restore line-clamp
17939      textElement.classList.add('text-read-more__text--collapsed');
17940      
17941      // Show button if content exceeds 2 lines (with small threshold for rounding)
17942      if (fullHeight > collapsedHeight + 5) {
17943        button.removeAttribute('hidden');
17944      } else {
17945        button.setAttribute('hidden', '');
17946      }
17947    }
17948
17949    #toggle(content, textElement, button) {
17950      const startHeight = content.offsetHeight;
17951      let endHeight;
17952
17953      if (!this.#expanded) {
17954        // Expanding
17955        textElement.classList.remove('text-read-more__text--collapsed');
17956        endHeight = content.scrollHeight;
17957        this.#expanded = true;
17958      } else {
17959        // Collapsing
17960        endHeight = this.#collapsedHeight;
17961        this.#expanded = false;
17962      }
17963
17964      this.dataset.expanded = this.#expanded;
17965      button.setAttribute('aria-expanded', this.#expanded);
17966
17967      // Animate
17968      content.style.overflow = 'hidden';
17969      this.#animation?.cancel();
17970
17971      this.#animation = content.animate(
17972        {
17973          height: [`${startHeight}px`, `${endHeight}px`],
17974        },
17975        {
17976          duration: 300,
17977          easing: 'ease-in-out',
17978        }
17979      );
17980
17981      this.#animation.onfinish = () => {
17982        if (this.#expanded) {
17983          content.style.removeProperty('height');
17984          content.style.overflow = '';
17985        } else {
17986          textElement.classList.add('text-read-more__text--collapsed');
17987          content.style.removeProperty('height');
17988          content.style.overflow = '';
17989        }
17990      };
17991    }
17992  }
17993
17994  if (!customElements.get('text-read-more-wrapper')) {
17995    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
17996  }
17997</script>
17997
17998
17999  </a>
18000
18001
18002
18003
18004
18005
18006<product-price
18007  class="text-block text-block--align-left custom-typography custom-font-size custom-color text-left custom spacing-style"
18008  data-block-id="ARDI3alNNdlArbVBQd__price_UQh7nT-7"
18009  data-product-id="11005042655578"
18010  style="
18011    
18012--color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-subheading--weight);--font-family: var(--font-subheading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);
18013    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
18014    --width: 100%;
18015  "
18016  
18017>
18018  <div ref="priceContainer">
18019  
18020    
18021    
18022
18023    
18024      <span class="price">£290.00</span>
18025    
18026
18027    
18028  
18029</div>
18030
18031  
18032</product-price>
18033
18034
18035
18036
18037
18038
18039
18040
18041  </div>
18042</product-card></product-card-link>
18043
18044</div>
18045
18046
18047
18048
18049
18050
18051            
18052          </div>
18053</slideshow-slide>
18054
18055  
18056
18057    </slideshow-slides>
18058  </slideshow-container>
18059  
18060</slideshow-component>
18061
18062
18063
18064</div>
18065
18066
18067    
18068</div>
18069
18070
18071
18072
18073
18074  <div
18075    class="section-resource-list__content"
18076    style="--horizontal-alignment: flex-start;"
18077  ></div>
18078</div>
18079
18080
18081</div><div id="shopify-section-template--28213213921626__section_tGN8jF" class="shopify-section section-wrapper">
18082
18083
18084
18085<div class="section-background color-scheme-1"></div>
18086<div
18087  class="section section--full-width color-scheme-1"
18088  data-testid="ui-test-section"
18089
18090  
18091
18092  style="
18093    
18094      --section-min-height: var(--section-height-small);
18095    
18096
18097    
18098     --section-preview-height: 600px;
18099     
18100  "
18101>
18102  <div class="custom-section-background">
18103    
18104
18105
18106
18107  </div>
18108
18109  <div
18110    class="border-style custom-section-content"
18111    style="--border-width: 1px; --border-style: none; --border-color:
18112rgb(var(--color-border-rgb) / 1.0); --border-radius:
181130px; 
18114"
18115  >
18116    
18117
18118    <div
18119      class="
18120        spacing-style
18121        layout-panel-flex
18122        layout-panel-flex--row
18123        section-content-wrapper
18124         mobile-column
18125      "
18126      style="
18127        --flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
18128
18129--gap: 24px;
18130
18131--horizontal-alignment: flex-start; --vertical-alignment: center;
18132--vertical-alignment-mobile: center;
18133
18134        --padding-block-start: 0px;--padding-block-end: 0px;
18135      "
18136      data-testid="section-content"
18137    >
18138      
18139  
18140
18141
18142<div
18143  class="
18144    group-block
18145    group-block--height-fill
18146    group-block--width-fill
18147    border-style
18148    spacing-style
18149    size-style
18150    
18151     color-scheme-6
18152     group-block--increase-mobile-height
18153    
18154  "
18155  style="
18156    --border-width: 1px; --border-style: none; --border-color:
18157rgb(var(--color-border-rgb) / 1.0); --border-radius:
181580px; 
18159
18160    --padding-block-start: max(20px, calc(var(--spacing-scale) * 40px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 80px));--padding-inline-start: max(20px, calc(var(--spacing-scale) * 40px));--padding-inline-end: max(20px, calc(var(--spacing-scale) * 40px));
18161    --size-style-width: 100%;--size-style-height: 100%;--size-style-height-mobile: 100%;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
18162    
18163  "
18164  
18165  data-testid="group-block"
18166><div class="group-block__media-wrapper">
18167    
18168  <div
18169    class="background-image-container"
18170  >
18171    
18172
18173      <img src="//www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Apres.jpg?v=1766423128&amp;width=3840 3840w" width="3840" height="2437" loading="lazy" sizes="100vw" fetchpriority="auto">
18174</div>
18175
18176
18177
18178
18179    
18180  </div>
18181
18182  <div
18183    class="
18184      group-block-content
18185      
18186      layout-panel-flex
18187      layout-panel-flex--column
18188       mobile-column
18189      
18190      group-block-content--has-animation group-block-content--animate-slide-in-bottom group-block-content--disable-animation-mobile
18191    "
18192    data-animation-type="slide-in-bottom"
18193    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
18194
18195--gap: max(24px, calc(var(--gap-scale, 1.0) * 32px));
18196
18197--horizontal-alignment: center; --vertical-alignment: flex-end;
18198--vertical-alignment-mobile: flex-end;
18199"
18200  >
18201  
18202
18203
18204
18205
18206
18207
18208
18209
18210  
18211    <div class=" spacing-style text-block text-block--AK2lZZEhnTnJ6UWFKO__text_tJL6rK h1      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
18212      <h3>Apres Nails</h3>
18213    </div>
18214  
18215
18216
18217
18218
18219<script type="module">
18220  class TextReadMoreWrapper extends HTMLElement {
18221    #expanded = false;
18222    #animation = null;
18223    #collapsedHeight = 0;
18224
18225    connectedCallback() {
18226      const content = this.querySelector('.text-read-more__content');
18227      const textElement = this.querySelector('.text-read-more__text');
18228      const button = this.querySelector('.text-read-more__button');
18229
18230      if (!content || !textElement || !button) return;
18231
18232      // Set initial state
18233      this.dataset.expanded = 'false';
18234
18235      // Wait for content to render - use double RAF to ensure layout is complete
18236      requestAnimationFrame(() => {
18237        requestAnimationFrame(() => {
18238          // Additional small delay to ensure fonts and styles are applied
18239          setTimeout(() => {
18240            this.#checkOverflow(content, textElement, button);
18241          }, 50);
18242          
18243          // Recheck on resize
18244          const resizeObserver = new ResizeObserver(() => {
18245            if (!this.#expanded) {
18246              this.#checkOverflow(content, textElement, button);
18247            }
18248          });
18249          resizeObserver.observe(content);
18250
18251          // Setup button click handler
18252          button.addEventListener('click', (e) => {
18253            e.preventDefault();
18254            this.#toggle(content, textElement, button);
18255          });
18256        });
18257      });
18258    }
18259
18260    #checkOverflow(content, textElement, button) {
18261      // Ensure collapsed state is applied
18262      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
18263        textElement.classList.add('text-read-more__text--collapsed');
18264      }
18265      
18266      // Get collapsed height first
18267      const collapsedHeight = content.scrollHeight;
18268      this.#collapsedHeight = collapsedHeight;
18269      
18270      // Temporarily remove line-clamp to measure full height
18271      textElement.classList.remove('text-read-more__text--collapsed');
18272      
18273      // Force reflow
18274      void content.offsetHeight;
18275      
18276      const fullHeight = content.scrollHeight;
18277      
18278      // Restore line-clamp
18279      textElement.classList.add('text-read-more__text--collapsed');
18280      
18281      // Show button if content exceeds 2 lines (with small threshold for rounding)
18282      if (fullHeight > collapsedHeight + 5) {
18283        button.removeAttribute('hidden');
18284      } else {
18285        button.setAttribute('hidden', '');
18286      }
18287    }
18288
18289    #toggle(content, textElement, button) {
18290      const startHeight = content.offsetHeight;
18291      let endHeight;
18292
18293      if (!this.#expanded) {
18294        // Expanding
18295        textElement.classList.remove('text-read-more__text--collapsed');
18296        endHeight = content.scrollHeight;
18297        this.#expanded = true;
18298      } else {
18299        // Collapsing
18300        endHeight = this.#collapsedHeight;
18301        this.#expanded = false;
18302      }
18303
18304      this.dataset.expanded = this.#expanded;
18305      button.setAttribute('aria-expanded', this.#expanded);
18306
18307      // Animate
18308      content.style.overflow = 'hidden';
18309      this.#animation?.cancel();
18310
18311      this.#animation = content.animate(
18312        {
18313          height: [`${startHeight}px`, `${endHeight}px`],
18314        },
18315        {
18316          duration: 300,
18317          easing: 'ease-in-out',
18318        }
18319      );
18320
18321      this.#animation.onfinish = () => {
18322        if (this.#expanded) {
18323          content.style.removeProperty('height');
18324          content.style.overflow = '';
18325        } else {
18326          textElement.classList.add('text-read-more__text--collapsed');
18327          content.style.removeProperty('height');
18328          content.style.overflow = '';
18329        }
18330      };
18331    }
18332  }
18333
18334  if (!customElements.get('text-read-more-wrapper')) {
18335    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
18336  }
18337</script>
18337
18338
18339
18340
18341
18342
18343
18344<div
18345  class="
18346    group-block
18347    group-block--height-fit
18348    group-block--width-fill
18349    border-style
18350    spacing-style
18351    size-style
18352    
18353    
18354    
18355    
18356  "
18357  style="
18358    --border-width: 1px; --border-style: none; --border-color:
18359rgb(var(--color-border-rgb) / 1.0); --border-radius:
183600px; 
18361
18362    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
18363    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
18364    
18365  "
18366  
18367  data-testid="group-block"
18368><div class="group-block__media-wrapper">
18369    
18370
18371
18372
18373    
18374  </div>
18375
18376  <div
18377    class="
18378      group-block-content
18379      
18380      layout-panel-flex
18381      layout-panel-flex--row
18382      
18383       group-block-content--force-single-row-mobile
18384      
18385    "
18386    
18387    style="--flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
18388
18389--gap: 24px;
18390
18391--horizontal-alignment: center; --vertical-alignment: center;
18392--vertical-alignment-mobile: center;
18393"
18394  >
18395  
18396
18397
18398
18399
18400<a
18401  
18402    href="/collections/apres-gel-x-tips"
18403  
18404  class="
18405    size-style
18406    button
18407    button--ANUZRQzNSMDFrUVdLV__button_9i7wCm
18408    
18409    
18410  "
18411  style="--size-style-width: fit-content;--size-style-height:75%;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
18412>
18413  Gel-X Tips
18414  
18415</a>
18416
18417
18418
18419
18420
18421
18422
18423
18424
18425
18426<a
18427  
18428    href="/collections/apres-gel-colour"
18429  
18430  class="
18431    size-style
18432    button
18433    button--AM3NBRS9MRzUzRk9lQ__button_6wBy9x
18434    
18435    
18436  "
18437  style="--size-style-width: fit-content;--size-style-height:75%;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
18438>
18439  Gel Colour
18440  
18441</a>
18442
18443
18444
18445
18446
18447
18448
18449
18450
18451
18452<a
18453  
18454    href="/collections/apres-gel-x-kits"
18455  
18456  class="
18457    size-style
18458    button
18459    button--AYjRpZyt6c0NHYzNtU__button_njY6q8
18460    
18461    
18462  "
18463  style="--size-style-width: fit-content;--size-style-height:75%;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
18464>
18465  Gel-X Kits
18466  
18467</a>
18468
18469
18470
18471
18472
18473
18474</div>
18475</div>
18476
18477
18478
18479<script type="module">
18480  (function() {
18481    // Only run if Intersection Observer is supported
18482    if (typeof IntersectionObserver === 'undefined') {
18483      // Fallback: show all animated content immediately
18484      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18485        el.classList.add('group-block-content--in-view');
18486      });
18487      return;
18488    }
18489
18490    // Respect reduced motion preference
18491    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
18492    if (prefersReducedMotion) {
18493      // Show all animated content immediately without animation
18494      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18495        el.style.opacity = '1';
18496        el.style.transform = 'none';
18497      });
18498      return;
18499    }
18500
18501    // Set up Intersection Observer for scroll-triggered animations
18502    const observerOptions = {
18503      root: null,
18504      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
18505      threshold: 0.1 // Trigger when 10% of element is visible
18506    };
18507
18508    const observer = new IntersectionObserver((entries) => {
18509      entries.forEach(entry => {
18510        if (entry.isIntersecting) {
18511          const contentElement = entry.target;
18512          // Add the in-view class to trigger animation
18513          contentElement.classList.add('group-block-content--in-view');
18514          // Unobserve after animation is triggered (only animate once)
18515          observer.unobserve(contentElement);
18516        }
18517      });
18518    }, observerOptions);
18519
18520    // Observe all group blocks with animations
18521    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18522      observer.observe(el);
18523    });
18524  })();
18525</script>
18525
18526
18527
18528
18529
18530</div>
18531</div>
18532
18533
18534
18535<script type="module">
18536  (function() {
18537    // Only run if Intersection Observer is supported
18538    if (typeof IntersectionObserver === 'undefined') {
18539      // Fallback: show all animated content immediately
18540      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18541        el.classList.add('group-block-content--in-view');
18542      });
18543      return;
18544    }
18545
18546    // Respect reduced motion preference
18547    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
18548    if (prefersReducedMotion) {
18549      // Show all animated content immediately without animation
18550      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18551        el.style.opacity = '1';
18552        el.style.transform = 'none';
18553      });
18554      return;
18555    }
18556
18557    // Set up Intersection Observer for scroll-triggered animations
18558    const observerOptions = {
18559      root: null,
18560      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
18561      threshold: 0.1 // Trigger when 10% of element is visible
18562    };
18563
18564    const observer = new IntersectionObserver((entries) => {
18565      entries.forEach(entry => {
18566        if (entry.isIntersecting) {
18567          const contentElement = entry.target;
18568          // Add the in-view class to trigger animation
18569          contentElement.classList.add('group-block-content--in-view');
18570          // Unobserve after animation is triggered (only animate once)
18571          observer.unobserve(contentElement);
18572        }
18573      });
18574    }, observerOptions);
18575
18576    // Observe all group blocks with animations
18577    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18578      observer.observe(el);
18579    });
18580  })();
18581</script>
18581
18582
18583
18584
18585
18586
18587
18588<div
18589  class="
18590    group-block
18591    group-block--height-fill
18592    group-block--width-fill
18593    border-style
18594    spacing-style
18595    size-style
18596    
18597     color-scheme-6
18598     group-block--increase-mobile-height
18599    
18600  "
18601  style="
18602    --border-width: 1px; --border-style: none; --border-color:
18603rgb(var(--color-border-rgb) / 1.0); --border-radius:
186040px; 
18605
18606    --padding-block-start: max(20px, calc(var(--spacing-scale) * 40px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 80px));--padding-inline-start: max(20px, calc(var(--spacing-scale) * 40px));--padding-inline-end: max(20px, calc(var(--spacing-scale) * 40px));
18607    --size-style-width: 100%;--size-style-height: 100%;--size-style-height-mobile: 100%;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
18608    
18609  "
18610  
18611  data-testid="group-block"
18612><div class="group-block__media-wrapper">
18613    
18614  <div
18615    class="background-image-container"
18616  >
18617    
18618
18619      <img src="//www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Salon.jpg?v=1766423135&amp;width=3840 3840w" width="3840" height="2437" loading="lazy" sizes="100vw" fetchpriority="auto">
18620</div>
18621
18622
18623
18624
18625    
18626  </div>
18627
18628  <div
18629    class="
18630      group-block-content
18631      
18632      layout-panel-flex
18633      layout-panel-flex--column
18634       mobile-column
18635      
18636      group-block-content--has-animation group-block-content--animate-slide-in-bottom group-block-content--disable-animation-mobile
18637    "
18638    data-animation-type="slide-in-bottom"
18639    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
18640
18641--gap: max(24px, calc(var(--gap-scale, 1.0) * 32px));
18642
18643--horizontal-alignment: center; --vertical-alignment: flex-end;
18644--vertical-alignment-mobile: flex-end;
18645"
18646  >
18647  
18648
18649
18650
18651
18652
18653
18654
18655
18656  
18657    <div class=" spacing-style text-block text-block--AaUlZbDJXZ0h0dktLT__text_3WNhRK h1      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
18658      <h3>Salon Ready</h3>
18659    </div>
18660  
18661
18662
18663
18664
18665<script type="module">
18666  class TextReadMoreWrapper extends HTMLElement {
18667    #expanded = false;
18668    #animation = null;
18669    #collapsedHeight = 0;
18670
18671    connectedCallback() {
18672      const content = this.querySelector('.text-read-more__content');
18673      const textElement = this.querySelector('.text-read-more__text');
18674      const button = this.querySelector('.text-read-more__button');
18675
18676      if (!content || !textElement || !button) return;
18677
18678      // Set initial state
18679      this.dataset.expanded = 'false';
18680
18681      // Wait for content to render - use double RAF to ensure layout is complete
18682      requestAnimationFrame(() => {
18683        requestAnimationFrame(() => {
18684          // Additional small delay to ensure fonts and styles are applied
18685          setTimeout(() => {
18686            this.#checkOverflow(content, textElement, button);
18687          }, 50);
18688          
18689          // Recheck on resize
18690          const resizeObserver = new ResizeObserver(() => {
18691            if (!this.#expanded) {
18692              this.#checkOverflow(content, textElement, button);
18693            }
18694          });
18695          resizeObserver.observe(content);
18696
18697          // Setup button click handler
18698          button.addEventListener('click', (e) => {
18699            e.preventDefault();
18700            this.#toggle(content, textElement, button);
18701          });
18702        });
18703      });
18704    }
18705
18706    #checkOverflow(content, textElement, button) {
18707      // Ensure collapsed state is applied
18708      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
18709        textElement.classList.add('text-read-more__text--collapsed');
18710      }
18711      
18712      // Get collapsed height first
18713      const collapsedHeight = content.scrollHeight;
18714      this.#collapsedHeight = collapsedHeight;
18715      
18716      // Temporarily remove line-clamp to measure full height
18717      textElement.classList.remove('text-read-more__text--collapsed');
18718      
18719      // Force reflow
18720      void content.offsetHeight;
18721      
18722      const fullHeight = content.scrollHeight;
18723      
18724      // Restore line-clamp
18725      textElement.classList.add('text-read-more__text--collapsed');
18726      
18727      // Show button if content exceeds 2 lines (with small threshold for rounding)
18728      if (fullHeight > collapsedHeight + 5) {
18729        button.removeAttribute('hidden');
18730      } else {
18731        button.setAttribute('hidden', '');
18732      }
18733    }
18734
18735    #toggle(content, textElement, button) {
18736      const startHeight = content.offsetHeight;
18737      let endHeight;
18738
18739      if (!this.#expanded) {
18740        // Expanding
18741        textElement.classList.remove('text-read-more__text--collapsed');
18742        endHeight = content.scrollHeight;
18743        this.#expanded = true;
18744      } else {
18745        // Collapsing
18746        endHeight = this.#collapsedHeight;
18747        this.#expanded = false;
18748      }
18749
18750      this.dataset.expanded = this.#expanded;
18751      button.setAttribute('aria-expanded', this.#expanded);
18752
18753      // Animate
18754      content.style.overflow = 'hidden';
18755      this.#animation?.cancel();
18756
18757      this.#animation = content.animate(
18758        {
18759          height: [`${startHeight}px`, `${endHeight}px`],
18760        },
18761        {
18762          duration: 300,
18763          easing: 'ease-in-out',
18764        }
18765      );
18766
18767      this.#animation.onfinish = () => {
18768        if (this.#expanded) {
18769          content.style.removeProperty('height');
18770          content.style.overflow = '';
18771        } else {
18772          textElement.classList.add('text-read-more__text--collapsed');
18773          content.style.removeProperty('height');
18774          content.style.overflow = '';
18775        }
18776      };
18777    }
18778  }
18779
18780  if (!customElements.get('text-read-more-wrapper')) {
18781    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
18782  }
18783</script>
18783
18784
18785
18786
18787
18788
18789
18790<div
18791  class="
18792    group-block
18793    group-block--height-fit
18794    group-block--width-fill
18795    border-style
18796    spacing-style
18797    size-style
18798    
18799    
18800    
18801    
18802  "
18803  style="
18804    --border-width: 1px; --border-style: none; --border-color:
18805rgb(var(--color-border-rgb) / 1.0); --border-radius:
188060px; 
18807
18808    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
18809    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
18810    
18811  "
18812  
18813  data-testid="group-block"
18814><div class="group-block__media-wrapper">
18815    
18816
18817
18818
18819    
18820  </div>
18821
18822  <div
18823    class="
18824      group-block-content
18825      
18826      layout-panel-flex
18827      layout-panel-flex--row
18828      
18829       group-block-content--force-single-row-mobile
18830      
18831    "
18832    
18833    style="--flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
18834
18835--gap: 24px;
18836
18837--horizontal-alignment: center; --vertical-alignment: center;
18838--vertical-alignment-mobile: center;
18839"
18840  >
18841  
18842
18843
18844
18845
18846<a
18847  
18848    href="/collections/furniture"
18849  
18850  class="
18851    size-style
18852    button
18853    button--AMElqZmFwQVMzbkdpd__button_JgkgGx
18854    
18855    
18856  "
18857  style="--size-style-width: fit-content;--size-style-height:75%;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
18858>
18859  Furniture
18860  
18861</a>
18862
18863
18864
18865
18866
18867
18868
18869
18870
18871
18872<a
18873  
18874    href="/collections/electricals"
18875  
18876  class="
18877    size-style
18878    button
18879    button--AN2FQTVZXY09PVzl4O__button_jm3n9p
18880    
18881    
18882  "
18883  style="--size-style-width: fit-content;--size-style-height:75%;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
18884>
18885  Electricals
18886  
18887</a>
18888
18889
18890
18891
18892
18893
18894
18895
18896
18897
18898<a
18899  
18900    href="/collections/salon-essentials-hygiene"
18901  
18902  class="
18903    size-style
18904    button
18905    button--AaHFxbUZRRzZIRSt4b__button_RikABB
18906    
18907    
18908  "
18909  style="--size-style-width: fit-content;--size-style-height:75%;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
18910>
18911  Hygiene
18912  
18913</a>
18914
18915
18916
18917
18918
18919
18920</div>
18921</div>
18922
18923
18924
18925<script type="module">
18926  (function() {
18927    // Only run if Intersection Observer is supported
18928    if (typeof IntersectionObserver === 'undefined') {
18929      // Fallback: show all animated content immediately
18930      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18931        el.classList.add('group-block-content--in-view');
18932      });
18933      return;
18934    }
18935
18936    // Respect reduced motion preference
18937    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
18938    if (prefersReducedMotion) {
18939      // Show all animated content immediately without animation
18940      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18941        el.style.opacity = '1';
18942        el.style.transform = 'none';
18943      });
18944      return;
18945    }
18946
18947    // Set up Intersection Observer for scroll-triggered animations
18948    const observerOptions = {
18949      root: null,
18950      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
18951      threshold: 0.1 // Trigger when 10% of element is visible
18952    };
18953
18954    const observer = new IntersectionObserver((entries) => {
18955      entries.forEach(entry => {
18956        if (entry.isIntersecting) {
18957          const contentElement = entry.target;
18958          // Add the in-view class to trigger animation
18959          contentElement.classList.add('group-block-content--in-view');
18960          // Unobserve after animation is triggered (only animate once)
18961          observer.unobserve(contentElement);
18962        }
18963      });
18964    }, observerOptions);
18965
18966    // Observe all group blocks with animations
18967    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18968      observer.observe(el);
18969    });
18970  })();
18971</script>
18971
18972
18973
18974
18975
18976</div>
18977</div>
18978
18979
18980
18981<script type="module">
18982  (function() {
18983    // Only run if Intersection Observer is supported
18984    if (typeof IntersectionObserver === 'undefined') {
18985      // Fallback: show all animated content immediately
18986      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18987        el.classList.add('group-block-content--in-view');
18988      });
18989      return;
18990    }
18991
18992    // Respect reduced motion preference
18993    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
18994    if (prefersReducedMotion) {
18995      // Show all animated content immediately without animation
18996      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
18997        el.style.opacity = '1';
18998        el.style.transform = 'none';
18999      });
19000      return;
19001    }
19002
19003    // Set up Intersection Observer for scroll-triggered animations
19004    const observerOptions = {
19005      root: null,
19006      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
19007      threshold: 0.1 // Trigger when 10% of element is visible
19008    };
19009
19010    const observer = new IntersectionObserver((entries) => {
19011      entries.forEach(entry => {
19012        if (entry.isIntersecting) {
19013          const contentElement = entry.target;
19014          // Add the in-view class to trigger animation
19015          contentElement.classList.add('group-block-content--in-view');
19016          // Unobserve after animation is triggered (only animate once)
19017          observer.unobserve(contentElement);
19018        }
19019      });
19020    }, observerOptions);
19021
19022    // Observe all group blocks with animations
19023    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
19024      observer.observe(el);
19025    });
19026  })();
19027</script>
19027
19028
19029
19030
19031
19032
19033    </div>
19034  </div>
19035</div>
19036
19037
19038
19039
19040
19041</div><div id="shopify-section-template--28213213921626__section_3KbkGV" class="shopify-section section-wrapper">
19042
19043
19044
19045<div class="section-background color-scheme-1"></div>
19046<div
19047  class="section section--page-width color-scheme-1"
19048  data-testid="ui-test-section"
19049
19050  
19051
19052  style="
19053    
19054
19055    
19056  "
19057>
19058  <div class="custom-section-background">
19059    
19060
19061
19062
19063  </div>
19064
19065  <div
19066    class="border-style custom-section-content"
19067    style="--border-width: 1px; --border-style: none; --border-color:
19068rgb(var(--color-border-rgb) / 1.0); --border-radius:
190690px; 
19070"
19071  >
19072    
19073
19074    <div
19075      class="
19076        spacing-style
19077        layout-panel-flex
19078        layout-panel-flex--column
19079        section-content-wrapper
19080         mobile-column
19081      "
19082      style="
19083        --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
19084
19085--gap: 18px;
19086
19087--horizontal-alignment: flex-start; --vertical-alignment: center;
19088--vertical-alignment-mobile: center;
19089
19090        --padding-block-start: max(20px, calc(var(--spacing-scale) * 70px));--padding-block-end: 0px;
19091      "
19092      data-testid="section-content"
19093    >
19094      
19095  
19096
19097
19098
19099
19100
19101
19102
19103
19104  
19105    <div class=" spacing-style text-block text-block--AZzcvcXN4Q1duRDBGQ__text_bDR4ec h3      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
19106      <h2>Shop By Colour</h2>
19107    </div>
19108  
19109
19110
19111
19112
19113<script type="module">
19114  class TextReadMoreWrapper extends HTMLElement {
19115    #expanded = false;
19116    #animation = null;
19117    #collapsedHeight = 0;
19118
19119    connectedCallback() {
19120      const content = this.querySelector('.text-read-more__content');
19121      const textElement = this.querySelector('.text-read-more__text');
19122      const button = this.querySelector('.text-read-more__button');
19123
19124      if (!content || !textElement || !button) return;
19125
19126      // Set initial state
19127      this.dataset.expanded = 'false';
19128
19129      // Wait for content to render - use double RAF to ensure layout is complete
19130      requestAnimationFrame(() => {
19131        requestAnimationFrame(() => {
19132          // Additional small delay to ensure fonts and styles are applied
19133          setTimeout(() => {
19134            this.#checkOverflow(content, textElement, button);
19135          }, 50);
19136          
19137          // Recheck on resize
19138          const resizeObserver = new ResizeObserver(() => {
19139            if (!this.#expanded) {
19140              this.#checkOverflow(content, textElement, button);
19141            }
19142          });
19143          resizeObserver.observe(content);
19144
19145          // Setup button click handler
19146          button.addEventListener('click', (e) => {
19147            e.preventDefault();
19148            this.#toggle(content, textElement, button);
19149          });
19150        });
19151      });
19152    }
19153
19154    #checkOverflow(content, textElement, button) {
19155      // Ensure collapsed state is applied
19156      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
19157        textElement.classList.add('text-read-more__text--collapsed');
19158      }
19159      
19160      // Get collapsed height first
19161      const collapsedHeight = content.scrollHeight;
19162      this.#collapsedHeight = collapsedHeight;
19163      
19164      // Temporarily remove line-clamp to measure full height
19165      textElement.classList.remove('text-read-more__text--collapsed');
19166      
19167      // Force reflow
19168      void content.offsetHeight;
19169      
19170      const fullHeight = content.scrollHeight;
19171      
19172      // Restore line-clamp
19173      textElement.classList.add('text-read-more__text--collapsed');
19174      
19175      // Show button if content exceeds 2 lines (with small threshold for rounding)
19176      if (fullHeight > collapsedHeight + 5) {
19177        button.removeAttribute('hidden');
19178      } else {
19179        button.setAttribute('hidden', '');
19180      }
19181    }
19182
19183    #toggle(content, textElement, button) {
19184      const startHeight = content.offsetHeight;
19185      let endHeight;
19186
19187      if (!this.#expanded) {
19188        // Expanding
19189        textElement.classList.remove('text-read-more__text--collapsed');
19190        endHeight = content.scrollHeight;
19191        this.#expanded = true;
19192      } else {
19193        // Collapsing
19194        endHeight = this.#collapsedHeight;
19195        this.#expanded = false;
19196      }
19197
19198      this.dataset.expanded = this.#expanded;
19199      button.setAttribute('aria-expanded', this.#expanded);
19200
19201      // Animate
19202      content.style.overflow = 'hidden';
19203      this.#animation?.cancel();
19204
19205      this.#animation = content.animate(
19206        {
19207          height: [`${startHeight}px`, `${endHeight}px`],
19208        },
19209        {
19210          duration: 300,
19211          easing: 'ease-in-out',
19212        }
19213      );
19214
19215      this.#animation.onfinish = () => {
19216        if (this.#expanded) {
19217          content.style.removeProperty('height');
19218          content.style.overflow = '';
19219        } else {
19220          textElement.classList.add('text-read-more__text--collapsed');
19221          content.style.removeProperty('height');
19222          content.style.overflow = '';
19223        }
19224      };
19225    }
19226  }
19227
19228  if (!customElements.get('text-read-more-wrapper')) {
19229    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
19230  }
19231</script>
19231
19232
19233
19234
19235
19236
19237
19238
19239
19240
19241
19242
19243
19244  
19245    <div class=" spacing-style text-block text-block--AYS9EU0dteG5mOWVpM__text_hD397y custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.125rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
19246      <p>Find your perfect shade instantly</p>
19247    </div>
19248  
19249
19250
19251
19252
19253<script type="module">
19254  class TextReadMoreWrapper extends HTMLElement {
19255    #expanded = false;
19256    #animation = null;
19257    #collapsedHeight = 0;
19258
19259    connectedCallback() {
19260      const content = this.querySelector('.text-read-more__content');
19261      const textElement = this.querySelector('.text-read-more__text');
19262      const button = this.querySelector('.text-read-more__button');
19263
19264      if (!content || !textElement || !button) return;
19265
19266      // Set initial state
19267      this.dataset.expanded = 'false';
19268
19269      // Wait for content to render - use double RAF to ensure layout is complete
19270      requestAnimationFrame(() => {
19271        requestAnimationFrame(() => {
19272          // Additional small delay to ensure fonts and styles are applied
19273          setTimeout(() => {
19274            this.#checkOverflow(content, textElement, button);
19275          }, 50);
19276          
19277          // Recheck on resize
19278          const resizeObserver = new ResizeObserver(() => {
19279            if (!this.#expanded) {
19280              this.#checkOverflow(content, textElement, button);
19281            }
19282          });
19283          resizeObserver.observe(content);
19284
19285          // Setup button click handler
19286          button.addEventListener('click', (e) => {
19287            e.preventDefault();
19288            this.#toggle(content, textElement, button);
19289          });
19290        });
19291      });
19292    }
19293
19294    #checkOverflow(content, textElement, button) {
19295      // Ensure collapsed state is applied
19296      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
19297        textElement.classList.add('text-read-more__text--collapsed');
19298      }
19299      
19300      // Get collapsed height first
19301      const collapsedHeight = content.scrollHeight;
19302      this.#collapsedHeight = collapsedHeight;
19303      
19304      // Temporarily remove line-clamp to measure full height
19305      textElement.classList.remove('text-read-more__text--collapsed');
19306      
19307      // Force reflow
19308      void content.offsetHeight;
19309      
19310      const fullHeight = content.scrollHeight;
19311      
19312      // Restore line-clamp
19313      textElement.classList.add('text-read-more__text--collapsed');
19314      
19315      // Show button if content exceeds 2 lines (with small threshold for rounding)
19316      if (fullHeight > collapsedHeight + 5) {
19317        button.removeAttribute('hidden');
19318      } else {
19319        button.setAttribute('hidden', '');
19320      }
19321    }
19322
19323    #toggle(content, textElement, button) {
19324      const startHeight = content.offsetHeight;
19325      let endHeight;
19326
19327      if (!this.#expanded) {
19328        // Expanding
19329        textElement.classList.remove('text-read-more__text--collapsed');
19330        endHeight = content.scrollHeight;
19331        this.#expanded = true;
19332      } else {
19333        // Collapsing
19334        endHeight = this.#collapsedHeight;
19335        this.#expanded = false;
19336      }
19337
19338      this.dataset.expanded = this.#expanded;
19339      button.setAttribute('aria-expanded', this.#expanded);
19340
19341      // Animate
19342      content.style.overflow = 'hidden';
19343      this.#animation?.cancel();
19344
19345      this.#animation = content.animate(
19346        {
19347          height: [`${startHeight}px`, `${endHeight}px`],
19348        },
19349        {
19350          duration: 300,
19351          easing: 'ease-in-out',
19352        }
19353      );
19354
19355      this.#animation.onfinish = () => {
19356        if (this.#expanded) {
19357          content.style.removeProperty('height');
19358          content.style.overflow = '';
19359        } else {
19360          textElement.classList.add('text-read-more__text--collapsed');
19361          content.style.removeProperty('height');
19362          content.style.overflow = '';
19363        }
19364      };
19365    }
19366  }
19367
19368  if (!customElements.get('text-read-more-wrapper')) {
19369    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
19370  }
19371</script>
19371
19372
19373
19374
19375
19376
19377    </div>
19378  </div>
19379</div>
19380
19381
19382
19383
19384
19385</div><div id="shopify-section-template--28213213921626__collection_list_pDpFPq" class="shopify-section ui-test-collection-list">
19386
19387
19388
19389<div class="section-background color-scheme-1"></div>
19390
19391<div
19392  class="
19393    section
19394    section--page-width
19395    color-scheme-1
19396    section-resource-list
19397    section-collection-list
19398    spacing-style
19399    gap-style
19400    section-collection-list--colour-swatches
19401  "
19402  style="
19403    --padding-block-start: max(20px, calc(var(--spacing-scale) * 24px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 48px));
19404    --gap: 0px;
19405  "
19406  id="collection-list-template--28213213921626__collection_list_pDpFPq"
19407  data-testid="collection-list"
19408  data-collection-card-reveal-enabled="true"
19409  data-collection-card-reveal-stagger-ms="100"
19410  data-mobile-columns="2"
19411  data-mobile-card-size="33cqw"
19412>
19413  <div class="section-resource-list__content"></div>
19414
19415  
19416
19417  
19418
19419  
19420
19421  
19422
19423<div
19424  class="
19425    resource-list
19426    
19427      force-full-width
19428    
19429    
19430    resource-list__carousel
19431  "
19432  style="--resource-list-column-gap-desktop: 0px;--column-count: 8;--column-count-mobile: 1;--mobile-card-size: 33cqw;"
19433  
19434    data-testid="collections-list-grid"
19435  
19436>
19437  
19438      
19439
19440
19441
19442<div
19443  class="resource-list__carousel"
19444  style="--gutter-slide-width: var(--util-page-margin-offset); --slide-width-max: 450px;"
19445>
19446  <slideshow-component
19447  
19448    ref="collectionList"
19449  
19450  
19451    class="resource-list__carousel"
19452  
19453  style="--slideshow-timeline: --slide-1, --slide-2, --slide-3, --slide-4, --slide-5, --slide-6, --slide-7, --slide-8, --slide-9, --slide-10, --slide-11;--slide-min-height: auto;--slide-min-height-desktop: auto;"
19454  
19455  initial-slide="0"
19456  
19457  
19458  
19459    data-scroll-persistence-key="template--28213213921626__collection_list_pDpFPq-collectionList"
19460  
19461
19462  
19463>
19464  
19465  <slideshow-container ref="slideshowContainer">
19466    
19467    
19468    <slideshow-slides
19469      tabindex="-1"
19470      ref="scroller"
19471      
19472        gutters="start end"
19473      
19474    >
19475      
19476  
19477    <slideshow-slide
19478  ref="slides[]"
19479  aria-hidden="false"
19480  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
19481  
19482    class="resource-list__slide"
19483  
19484  
19485  
19486  
19487  
19488  
19489  
19490>
19491  <div
19492        class="resource-list__item"
19493        
19494          style="--collection-card-reveal-delay: 0ms;"
19495        
19496      >
19497        
19498
19499
19500
19501
19502
19503
19504
19505<style data-shopify>
19506  
19507</style>
19508
19509
19510
19511<div
19512  class="
19513    collection-card
19514    border-style
19515    
19516    
19517    
19518    
19519  "
19520  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card"
19521  
19522  style="
19523    --border-width: 1px; --border-style: none; --border-color:
19524rgb(var(--color-border-rgb) / 1.0); --border-radius:
195250px; 
19526
19527    --horizontal-alignment: center;
19528    --vertical-alignment: center;
19529    --background-overlay-color: ;
19530    --gap: 12px;
19531  ">
19532  <a
19533    class="collection-card__link"
19534    
19535      href="/collections/white"
19536    
19537  >
19538    <span class="visually-hidden">White</span>
19539  </a>
19540  <div class="collection-card__inner">
19541    
19542  
19543
19544
19545
19546
19547
19548<style data-shopify>
19549  
19550    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card"] {
19551      --ratio: 1 / 1;
19552    }
19553    
19554      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card"] .collection-card__image {
19555        width: 110px;
19556        height: 110px;
19557        aspect-ratio: unset;
19558        flex-shrink: 0;
19559      }
19560    
19561  
19562</style>
19563
19564
19565  <div
19566    class="
19567      image-block
19568      resource-image
19569       resource-image--swatch
19570      
19571        collection-card__image
19572      
19573      spacing-style border-style
19574      
19575    "
19576    style="--border-width: 1px; --border-style: none; --border-color:
19577rgb(var(--color-border-rgb) / 1.0); --border-radius:
195780px; 
19579"
19580    
19581  >
19582      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832743-97077200_f4da23fd-2d21-4c70-a4ef-c160acb189b8.png?v=1770115060&amp;width=220" alt="White" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832743-97077200_f4da23fd-2d21-4c70-a4ef-c160acb189b8.png?v=1770115060&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832743-97077200_f4da23fd-2d21-4c70-a4ef-c160acb189b8.png?v=1770115060&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
19583    
19584  </div>
19585
19586
19587
19588
19589
19590
19591
19592
19593    <div class="collection-card__content layout-panel-flex--column">
19594      
19595  
19596
19597
19598
19599<div class="collection-title-wrapper">
19600  
19601    
19602    
19603
19604
19605
19606
19607
19608
19609  
19610    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
19611      <p>White</p>
19612    </div>
19613  
19614
19615
19616
19617
19618<script type="module">
19619  class TextReadMoreWrapper extends HTMLElement {
19620    #expanded = false;
19621    #animation = null;
19622    #collapsedHeight = 0;
19623
19624    connectedCallback() {
19625      const content = this.querySelector('.text-read-more__content');
19626      const textElement = this.querySelector('.text-read-more__text');
19627      const button = this.querySelector('.text-read-more__button');
19628
19629      if (!content || !textElement || !button) return;
19630
19631      // Set initial state
19632      this.dataset.expanded = 'false';
19633
19634      // Wait for content to render - use double RAF to ensure layout is complete
19635      requestAnimationFrame(() => {
19636        requestAnimationFrame(() => {
19637          // Additional small delay to ensure fonts and styles are applied
19638          setTimeout(() => {
19639            this.#checkOverflow(content, textElement, button);
19640          }, 50);
19641          
19642          // Recheck on resize
19643          const resizeObserver = new ResizeObserver(() => {
19644            if (!this.#expanded) {
19645              this.#checkOverflow(content, textElement, button);
19646            }
19647          });
19648          resizeObserver.observe(content);
19649
19650          // Setup button click handler
19651          button.addEventListener('click', (e) => {
19652            e.preventDefault();
19653            this.#toggle(content, textElement, button);
19654          });
19655        });
19656      });
19657    }
19658
19659    #checkOverflow(content, textElement, button) {
19660      // Ensure collapsed state is applied
19661      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
19662        textElement.classList.add('text-read-more__text--collapsed');
19663      }
19664      
19665      // Get collapsed height first
19666      const collapsedHeight = content.scrollHeight;
19667      this.#collapsedHeight = collapsedHeight;
19668      
19669      // Temporarily remove line-clamp to measure full height
19670      textElement.classList.remove('text-read-more__text--collapsed');
19671      
19672      // Force reflow
19673      void content.offsetHeight;
19674      
19675      const fullHeight = content.scrollHeight;
19676      
19677      // Restore line-clamp
19678      textElement.classList.add('text-read-more__text--collapsed');
19679      
19680      // Show button if content exceeds 2 lines (with small threshold for rounding)
19681      if (fullHeight > collapsedHeight + 5) {
19682        button.removeAttribute('hidden');
19683      } else {
19684        button.setAttribute('hidden', '');
19685      }
19686    }
19687
19688    #toggle(content, textElement, button) {
19689      const startHeight = content.offsetHeight;
19690      let endHeight;
19691
19692      if (!this.#expanded) {
19693        // Expanding
19694        textElement.classList.remove('text-read-more__text--collapsed');
19695        endHeight = content.scrollHeight;
19696        this.#expanded = true;
19697      } else {
19698        // Collapsing
19699        endHeight = this.#collapsedHeight;
19700        this.#expanded = false;
19701      }
19702
19703      this.dataset.expanded = this.#expanded;
19704      button.setAttribute('aria-expanded', this.#expanded);
19705
19706      // Animate
19707      content.style.overflow = 'hidden';
19708      this.#animation?.cancel();
19709
19710      this.#animation = content.animate(
19711        {
19712          height: [`${startHeight}px`, `${endHeight}px`],
19713        },
19714        {
19715          duration: 300,
19716          easing: 'ease-in-out',
19717        }
19718      );
19719
19720      this.#animation.onfinish = () => {
19721        if (this.#expanded) {
19722          content.style.removeProperty('height');
19723          content.style.overflow = '';
19724        } else {
19725          textElement.classList.add('text-read-more__text--collapsed');
19726          content.style.removeProperty('height');
19727          content.style.overflow = '';
19728        }
19729      };
19730    }
19731  }
19732
19733  if (!customElements.get('text-read-more-wrapper')) {
19734    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
19735  }
19736</script>
19736
19737
19738  
19739  
19740</div>
19741
19742
19743
19744
19745
19746
19747    </div>
19748  </div>
19749</div>
19750
19751
19752
19753
19754
19755
19756      </div>
19757      
19758        
19759</slideshow-slide>
19760
19761  
19762    <slideshow-slide
19763  ref="slides[]"
19764  aria-hidden="true"
19765  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
19766  
19767    class="resource-list__slide"
19768  
19769  
19770  
19771  
19772  
19773  
19774  
19775>
19776  
19777      
19778    
19779      <div
19780        class="resource-list__item"
19781        
19782          style="--collection-card-reveal-delay: 100ms;"
19783        
19784      >
19785        
19786
19787
19788
19789
19790
19791
19792
19793<style data-shopify>
19794  
19795</style>
19796
19797
19798
19799<div
19800  class="
19801    collection-card
19802    border-style
19803    
19804    
19805    
19806    
19807  "
19808  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-1"
19809  
19810  style="
19811    --border-width: 1px; --border-style: none; --border-color:
19812rgb(var(--color-border-rgb) / 1.0); --border-radius:
198130px; 
19814
19815    --horizontal-alignment: center;
19816    --vertical-alignment: center;
19817    --background-overlay-color: ;
19818    --gap: 12px;
19819  ">
19820  <a
19821    class="collection-card__link"
19822    
19823      href="/collections/blue"
19824    
19825  >
19826    <span class="visually-hidden">Blue</span>
19827  </a>
19828  <div class="collection-card__inner">
19829    
19830  
19831
19832
19833
19834
19835
19836<style data-shopify>
19837  
19838    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-1"] {
19839      --ratio: 1 / 1;
19840    }
19841    
19842      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-1"] .collection-card__image {
19843        width: 110px;
19844        height: 110px;
19845        aspect-ratio: unset;
19846        flex-shrink: 0;
19847      }
19848    
19849  
19850</style>
19851
19852
19853  <div
19854    class="
19855      image-block
19856      resource-image
19857       resource-image--swatch
19858      
19859        collection-card__image
19860      
19861      spacing-style border-style
19862      
19863    "
19864    style="--border-width: 1px; --border-style: none; --border-color:
19865rgb(var(--color-border-rgb) / 1.0); --border-radius:
198660px; 
19867"
19868    
19869  >
19870      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832758-60793800.png?v=1770114994&amp;width=220" alt="Blue" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832758-60793800.png?v=1770114994&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832758-60793800.png?v=1770114994&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
19871    
19872  </div>
19873
19874
19875
19876
19877
19878
19879
19880
19881    <div class="collection-card__content layout-panel-flex--column">
19882      
19883  
19884
19885
19886
19887<div class="collection-title-wrapper">
19888  
19889    
19890    
19891
19892
19893
19894
19895
19896
19897  
19898    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-1 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
19899      <p>Blue</p>
19900    </div>
19901  
19902
19903
19904
19905
19906<script type="module">
19907  class TextReadMoreWrapper extends HTMLElement {
19908    #expanded = false;
19909    #animation = null;
19910    #collapsedHeight = 0;
19911
19912    connectedCallback() {
19913      const content = this.querySelector('.text-read-more__content');
19914      const textElement = this.querySelector('.text-read-more__text');
19915      const button = this.querySelector('.text-read-more__button');
19916
19917      if (!content || !textElement || !button) return;
19918
19919      // Set initial state
19920      this.dataset.expanded = 'false';
19921
19922      // Wait for content to render - use double RAF to ensure layout is complete
19923      requestAnimationFrame(() => {
19924        requestAnimationFrame(() => {
19925          // Additional small delay to ensure fonts and styles are applied
19926          setTimeout(() => {
19927            this.#checkOverflow(content, textElement, button);
19928          }, 50);
19929          
19930          // Recheck on resize
19931          const resizeObserver = new ResizeObserver(() => {
19932            if (!this.#expanded) {
19933              this.#checkOverflow(content, textElement, button);
19934            }
19935          });
19936          resizeObserver.observe(content);
19937
19938          // Setup button click handler
19939          button.addEventListener('click', (e) => {
19940            e.preventDefault();
19941            this.#toggle(content, textElement, button);
19942          });
19943        });
19944      });
19945    }
19946
19947    #checkOverflow(content, textElement, button) {
19948      // Ensure collapsed state is applied
19949      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
19950        textElement.classList.add('text-read-more__text--collapsed');
19951      }
19952      
19953      // Get collapsed height first
19954      const collapsedHeight = content.scrollHeight;
19955      this.#collapsedHeight = collapsedHeight;
19956      
19957      // Temporarily remove line-clamp to measure full height
19958      textElement.classList.remove('text-read-more__text--collapsed');
19959      
19960      // Force reflow
19961      void content.offsetHeight;
19962      
19963      const fullHeight = content.scrollHeight;
19964      
19965      // Restore line-clamp
19966      textElement.classList.add('text-read-more__text--collapsed');
19967      
19968      // Show button if content exceeds 2 lines (with small threshold for rounding)
19969      if (fullHeight > collapsedHeight + 5) {
19970        button.removeAttribute('hidden');
19971      } else {
19972        button.setAttribute('hidden', '');
19973      }
19974    }
19975
19976    #toggle(content, textElement, button) {
19977      const startHeight = content.offsetHeight;
19978      let endHeight;
19979
19980      if (!this.#expanded) {
19981        // Expanding
19982        textElement.classList.remove('text-read-more__text--collapsed');
19983        endHeight = content.scrollHeight;
19984        this.#expanded = true;
19985      } else {
19986        // Collapsing
19987        endHeight = this.#collapsedHeight;
19988        this.#expanded = false;
19989      }
19990
19991      this.dataset.expanded = this.#expanded;
19992      button.setAttribute('aria-expanded', this.#expanded);
19993
19994      // Animate
19995      content.style.overflow = 'hidden';
19996      this.#animation?.cancel();
19997
19998      this.#animation = content.animate(
19999        {
20000          height: [`${startHeight}px`, `${endHeight}px`],
20001        },
20002        {
20003          duration: 300,
20004          easing: 'ease-in-out',
20005        }
20006      );
20007
20008      this.#animation.onfinish = () => {
20009        if (this.#expanded) {
20010          content.style.removeProperty('height');
20011          content.style.overflow = '';
20012        } else {
20013          textElement.classList.add('text-read-more__text--collapsed');
20014          content.style.removeProperty('height');
20015          content.style.overflow = '';
20016        }
20017      };
20018    }
20019  }
20020
20021  if (!customElements.get('text-read-more-wrapper')) {
20022    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
20023  }
20024</script>
20024
20025
20026  
20027  
20028</div>
20029
20030
20031
20032
20033
20034
20035    </div>
20036  </div>
20037</div>
20038
20039
20040
20041
20042
20043
20044      </div>
20045      
20046        
20047</slideshow-slide>
20048
20049  
20050    <slideshow-slide
20051  ref="slides[]"
20052  aria-hidden="true"
20053  style="--slideshow-timeline: --slide-2; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
20054  
20055    class="resource-list__slide"
20056  
20057  
20058  
20059  
20060  
20061  
20062  
20063>
20064  
20065      
20066    
20067      <div
20068        class="resource-list__item"
20069        
20070          style="--collection-card-reveal-delay: 200ms;"
20071        
20072      >
20073        
20074
20075
20076
20077
20078
20079
20080
20081<style data-shopify>
20082  
20083</style>
20084
20085
20086
20087<div
20088  class="
20089    collection-card
20090    border-style
20091    
20092    
20093    
20094    
20095  "
20096  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-2"
20097  
20098  style="
20099    --border-width: 1px; --border-style: none; --border-color:
20100rgb(var(--color-border-rgb) / 1.0); --border-radius:
201010px; 
20102
20103    --horizontal-alignment: center;
20104    --vertical-alignment: center;
20105    --background-overlay-color: ;
20106    --gap: 12px;
20107  ">
20108  <a
20109    class="collection-card__link"
20110    
20111      href="/collections/gold"
20112    
20113  >
20114    <span class="visually-hidden">Gold</span>
20115  </a>
20116  <div class="collection-card__inner">
20117    
20118  
20119
20120
20121
20122
20123
20124<style data-shopify>
20125  
20126    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-2"] {
20127      --ratio: 1 / 1;
20128    }
20129    
20130      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-2"] .collection-card__image {
20131        width: 110px;
20132        height: 110px;
20133        aspect-ratio: unset;
20134        flex-shrink: 0;
20135      }
20136    
20137  
20138</style>
20139
20140
20141  <div
20142    class="
20143      image-block
20144      resource-image
20145       resource-image--swatch
20146      
20147        collection-card__image
20148      
20149      spacing-style border-style
20150      
20151    "
20152    style="--border-width: 1px; --border-style: none; --border-color:
20153rgb(var(--color-border-rgb) / 1.0); --border-radius:
201540px; 
20155"
20156    
20157  >
20158      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832782-80810400.png?v=1770114722&amp;width=220" alt="Gold" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832782-80810400.png?v=1770114722&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832782-80810400.png?v=1770114722&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
20159    
20160  </div>
20161
20162
20163
20164
20165
20166
20167
20168
20169    <div class="collection-card__content layout-panel-flex--column">
20170      
20171  
20172
20173
20174
20175<div class="collection-title-wrapper">
20176  
20177    
20178    
20179
20180
20181
20182
20183
20184
20185  
20186    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-2 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
20187      <p>Gold</p>
20188    </div>
20189  
20190
20191
20192
20193
20194<script type="module">
20195  class TextReadMoreWrapper extends HTMLElement {
20196    #expanded = false;
20197    #animation = null;
20198    #collapsedHeight = 0;
20199
20200    connectedCallback() {
20201      const content = this.querySelector('.text-read-more__content');
20202      const textElement = this.querySelector('.text-read-more__text');
20203      const button = this.querySelector('.text-read-more__button');
20204
20205      if (!content || !textElement || !button) return;
20206
20207      // Set initial state
20208      this.dataset.expanded = 'false';
20209
20210      // Wait for content to render - use double RAF to ensure layout is complete
20211      requestAnimationFrame(() => {
20212        requestAnimationFrame(() => {
20213          // Additional small delay to ensure fonts and styles are applied
20214          setTimeout(() => {
20215            this.#checkOverflow(content, textElement, button);
20216          }, 50);
20217          
20218          // Recheck on resize
20219          const resizeObserver = new ResizeObserver(() => {
20220            if (!this.#expanded) {
20221              this.#checkOverflow(content, textElement, button);
20222            }
20223          });
20224          resizeObserver.observe(content);
20225
20226          // Setup button click handler
20227          button.addEventListener('click', (e) => {
20228            e.preventDefault();
20229            this.#toggle(content, textElement, button);
20230          });
20231        });
20232      });
20233    }
20234
20235    #checkOverflow(content, textElement, button) {
20236      // Ensure collapsed state is applied
20237      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
20238        textElement.classList.add('text-read-more__text--collapsed');
20239      }
20240      
20241      // Get collapsed height first
20242      const collapsedHeight = content.scrollHeight;
20243      this.#collapsedHeight = collapsedHeight;
20244      
20245      // Temporarily remove line-clamp to measure full height
20246      textElement.classList.remove('text-read-more__text--collapsed');
20247      
20248      // Force reflow
20249      void content.offsetHeight;
20250      
20251      const fullHeight = content.scrollHeight;
20252      
20253      // Restore line-clamp
20254      textElement.classList.add('text-read-more__text--collapsed');
20255      
20256      // Show button if content exceeds 2 lines (with small threshold for rounding)
20257      if (fullHeight > collapsedHeight + 5) {
20258        button.removeAttribute('hidden');
20259      } else {
20260        button.setAttribute('hidden', '');
20261      }
20262    }
20263
20264    #toggle(content, textElement, button) {
20265      const startHeight = content.offsetHeight;
20266      let endHeight;
20267
20268      if (!this.#expanded) {
20269        // Expanding
20270        textElement.classList.remove('text-read-more__text--collapsed');
20271        endHeight = content.scrollHeight;
20272        this.#expanded = true;
20273      } else {
20274        // Collapsing
20275        endHeight = this.#collapsedHeight;
20276        this.#expanded = false;
20277      }
20278
20279      this.dataset.expanded = this.#expanded;
20280      button.setAttribute('aria-expanded', this.#expanded);
20281
20282      // Animate
20283      content.style.overflow = 'hidden';
20284      this.#animation?.cancel();
20285
20286      this.#animation = content.animate(
20287        {
20288          height: [`${startHeight}px`, `${endHeight}px`],
20289        },
20290        {
20291          duration: 300,
20292          easing: 'ease-in-out',
20293        }
20294      );
20295
20296      this.#animation.onfinish = () => {
20297        if (this.#expanded) {
20298          content.style.removeProperty('height');
20299          content.style.overflow = '';
20300        } else {
20301          textElement.classList.add('text-read-more__text--collapsed');
20302          content.style.removeProperty('height');
20303          content.style.overflow = '';
20304        }
20305      };
20306    }
20307  }
20308
20309  if (!customElements.get('text-read-more-wrapper')) {
20310    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
20311  }
20312</script>
20312
20313
20314  
20315  
20316</div>
20317
20318
20319
20320
20321
20322
20323    </div>
20324  </div>
20325</div>
20326
20327
20328
20329
20330
20331
20332      </div>
20333      
20334        
20335</slideshow-slide>
20336
20337  
20338    <slideshow-slide
20339  ref="slides[]"
20340  aria-hidden="true"
20341  style="--slideshow-timeline: --slide-3; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
20342  
20343    class="resource-list__slide"
20344  
20345  
20346  
20347  
20348  
20349  
20350  
20351>
20352  
20353      
20354    
20355      <div
20356        class="resource-list__item"
20357        
20358          style="--collection-card-reveal-delay: 300ms;"
20359        
20360      >
20361        
20362
20363
20364
20365
20366
20367
20368
20369<style data-shopify>
20370  
20371</style>
20372
20373
20374
20375<div
20376  class="
20377    collection-card
20378    border-style
20379    
20380    
20381    
20382    
20383  "
20384  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-3"
20385  
20386  style="
20387    --border-width: 1px; --border-style: none; --border-color:
20388rgb(var(--color-border-rgb) / 1.0); --border-radius:
203890px; 
20390
20391    --horizontal-alignment: center;
20392    --vertical-alignment: center;
20393    --background-overlay-color: ;
20394    --gap: 12px;
20395  ">
20396  <a
20397    class="collection-card__link"
20398    
20399      href="/collections/natural"
20400    
20401  >
20402    <span class="visually-hidden">Natural</span>
20403  </a>
20404  <div class="collection-card__inner">
20405    
20406  
20407
20408
20409
20410
20411
20412<style data-shopify>
20413  
20414    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-3"] {
20415      --ratio: 1 / 1;
20416    }
20417    
20418      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-3"] .collection-card__image {
20419        width: 110px;
20420        height: 110px;
20421        aspect-ratio: unset;
20422        flex-shrink: 0;
20423      }
20424    
20425  
20426</style>
20427
20428
20429  <div
20430    class="
20431      image-block
20432      resource-image
20433       resource-image--swatch
20434      
20435        collection-card__image
20436      
20437      spacing-style border-style
20438      
20439    "
20440    style="--border-width: 1px; --border-style: none; --border-color:
20441rgb(var(--color-border-rgb) / 1.0); --border-radius:
204420px; 
20443"
20444    
20445  >
20446      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832745-78176900.png?v=1770114893&amp;width=220" alt="Natural" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832745-78176900.png?v=1770114893&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832745-78176900.png?v=1770114893&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
20447    
20448  </div>
20449
20450
20451
20452
20453
20454
20455
20456
20457    <div class="collection-card__content layout-panel-flex--column">
20458      
20459  
20460
20461
20462
20463<div class="collection-title-wrapper">
20464  
20465    
20466    
20467
20468
20469
20470
20471
20472
20473  
20474    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-3 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
20475      <p>Natural</p>
20476    </div>
20477  
20478
20479
20480
20481
20482<script type="module">
20483  class TextReadMoreWrapper extends HTMLElement {
20484    #expanded = false;
20485    #animation = null;
20486    #collapsedHeight = 0;
20487
20488    connectedCallback() {
20489      const content = this.querySelector('.text-read-more__content');
20490      const textElement = this.querySelector('.text-read-more__text');
20491      const button = this.querySelector('.text-read-more__button');
20492
20493      if (!content || !textElement || !button) return;
20494
20495      // Set initial state
20496      this.dataset.expanded = 'false';
20497
20498      // Wait for content to render - use double RAF to ensure layout is complete
20499      requestAnimationFrame(() => {
20500        requestAnimationFrame(() => {
20501          // Additional small delay to ensure fonts and styles are applied
20502          setTimeout(() => {
20503            this.#checkOverflow(content, textElement, button);
20504          }, 50);
20505          
20506          // Recheck on resize
20507          const resizeObserver = new ResizeObserver(() => {
20508            if (!this.#expanded) {
20509              this.#checkOverflow(content, textElement, button);
20510            }
20511          });
20512          resizeObserver.observe(content);
20513
20514          // Setup button click handler
20515          button.addEventListener('click', (e) => {
20516            e.preventDefault();
20517            this.#toggle(content, textElement, button);
20518          });
20519        });
20520      });
20521    }
20522
20523    #checkOverflow(content, textElement, button) {
20524      // Ensure collapsed state is applied
20525      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
20526        textElement.classList.add('text-read-more__text--collapsed');
20527      }
20528      
20529      // Get collapsed height first
20530      const collapsedHeight = content.scrollHeight;
20531      this.#collapsedHeight = collapsedHeight;
20532      
20533      // Temporarily remove line-clamp to measure full height
20534      textElement.classList.remove('text-read-more__text--collapsed');
20535      
20536      // Force reflow
20537      void content.offsetHeight;
20538      
20539      const fullHeight = content.scrollHeight;
20540      
20541      // Restore line-clamp
20542      textElement.classList.add('text-read-more__text--collapsed');
20543      
20544      // Show button if content exceeds 2 lines (with small threshold for rounding)
20545      if (fullHeight > collapsedHeight + 5) {
20546        button.removeAttribute('hidden');
20547      } else {
20548        button.setAttribute('hidden', '');
20549      }
20550    }
20551
20552    #toggle(content, textElement, button) {
20553      const startHeight = content.offsetHeight;
20554      let endHeight;
20555
20556      if (!this.#expanded) {
20557        // Expanding
20558        textElement.classList.remove('text-read-more__text--collapsed');
20559        endHeight = content.scrollHeight;
20560        this.#expanded = true;
20561      } else {
20562        // Collapsing
20563        endHeight = this.#collapsedHeight;
20564        this.#expanded = false;
20565      }
20566
20567      this.dataset.expanded = this.#expanded;
20568      button.setAttribute('aria-expanded', this.#expanded);
20569
20570      // Animate
20571      content.style.overflow = 'hidden';
20572      this.#animation?.cancel();
20573
20574      this.#animation = content.animate(
20575        {
20576          height: [`${startHeight}px`, `${endHeight}px`],
20577        },
20578        {
20579          duration: 300,
20580          easing: 'ease-in-out',
20581        }
20582      );
20583
20584      this.#animation.onfinish = () => {
20585        if (this.#expanded) {
20586          content.style.removeProperty('height');
20587          content.style.overflow = '';
20588        } else {
20589          textElement.classList.add('text-read-more__text--collapsed');
20590          content.style.removeProperty('height');
20591          content.style.overflow = '';
20592        }
20593      };
20594    }
20595  }
20596
20597  if (!customElements.get('text-read-more-wrapper')) {
20598    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
20599  }
20600</script>
20600
20601
20602  
20603  
20604</div>
20605
20606
20607
20608
20609
20610
20611    </div>
20612  </div>
20613</div>
20614
20615
20616
20617
20618
20619
20620      </div>
20621      
20622        
20623</slideshow-slide>
20624
20625  
20626    <slideshow-slide
20627  ref="slides[]"
20628  aria-hidden="true"
20629  style="--slideshow-timeline: --slide-4; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
20630  
20631    class="resource-list__slide"
20632  
20633  
20634  
20635  
20636  
20637  
20638  
20639>
20640  
20641      
20642    
20643      <div
20644        class="resource-list__item"
20645        
20646          style="--collection-card-reveal-delay: 400ms;"
20647        
20648      >
20649        
20650
20651
20652
20653
20654
20655
20656
20657<style data-shopify>
20658  
20659</style>
20660
20661
20662
20663<div
20664  class="
20665    collection-card
20666    border-style
20667    
20668    
20669    
20670    
20671  "
20672  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-4"
20673  
20674  style="
20675    --border-width: 1px; --border-style: none; --border-color:
20676rgb(var(--color-border-rgb) / 1.0); --border-radius:
206770px; 
20678
20679    --horizontal-alignment: center;
20680    --vertical-alignment: center;
20681    --background-overlay-color: ;
20682    --gap: 12px;
20683  ">
20684  <a
20685    class="collection-card__link"
20686    
20687      href="/collections/purple"
20688    
20689  >
20690    <span class="visually-hidden">Purple</span>
20691  </a>
20692  <div class="collection-card__inner">
20693    
20694  
20695
20696
20697
20698
20699
20700<style data-shopify>
20701  
20702    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-4"] {
20703      --ratio: 1 / 1;
20704    }
20705    
20706      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-4"] .collection-card__image {
20707        width: 110px;
20708        height: 110px;
20709        aspect-ratio: unset;
20710        flex-shrink: 0;
20711      }
20712    
20713  
20714</style>
20715
20716
20717  <div
20718    class="
20719      image-block
20720      resource-image
20721       resource-image--swatch
20722      
20723        collection-card__image
20724      
20725      spacing-style border-style
20726      
20727    "
20728    style="--border-width: 1px; --border-style: none; --border-color:
20729rgb(var(--color-border-rgb) / 1.0); --border-radius:
207300px; 
20731"
20732    
20733  >
20734      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832750-05508400.png?v=1770114916&amp;width=220" alt="Purple" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832750-05508400.png?v=1770114916&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832750-05508400.png?v=1770114916&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
20735    
20736  </div>
20737
20738
20739
20740
20741
20742
20743
20744
20745    <div class="collection-card__content layout-panel-flex--column">
20746      
20747  
20748
20749
20750
20751<div class="collection-title-wrapper">
20752  
20753    
20754    
20755
20756
20757
20758
20759
20760
20761  
20762    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-4 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
20763      <p>Purple</p>
20764    </div>
20765  
20766
20767
20768
20769
20770<script type="module">
20771  class TextReadMoreWrapper extends HTMLElement {
20772    #expanded = false;
20773    #animation = null;
20774    #collapsedHeight = 0;
20775
20776    connectedCallback() {
20777      const content = this.querySelector('.text-read-more__content');
20778      const textElement = this.querySelector('.text-read-more__text');
20779      const button = this.querySelector('.text-read-more__button');
20780
20781      if (!content || !textElement || !button) return;
20782
20783      // Set initial state
20784      this.dataset.expanded = 'false';
20785
20786      // Wait for content to render - use double RAF to ensure layout is complete
20787      requestAnimationFrame(() => {
20788        requestAnimationFrame(() => {
20789          // Additional small delay to ensure fonts and styles are applied
20790          setTimeout(() => {
20791            this.#checkOverflow(content, textElement, button);
20792          }, 50);
20793          
20794          // Recheck on resize
20795          const resizeObserver = new ResizeObserver(() => {
20796            if (!this.#expanded) {
20797              this.#checkOverflow(content, textElement, button);
20798            }
20799          });
20800          resizeObserver.observe(content);
20801
20802          // Setup button click handler
20803          button.addEventListener('click', (e) => {
20804            e.preventDefault();
20805            this.#toggle(content, textElement, button);
20806          });
20807        });
20808      });
20809    }
20810
20811    #checkOverflow(content, textElement, button) {
20812      // Ensure collapsed state is applied
20813      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
20814        textElement.classList.add('text-read-more__text--collapsed');
20815      }
20816      
20817      // Get collapsed height first
20818      const collapsedHeight = content.scrollHeight;
20819      this.#collapsedHeight = collapsedHeight;
20820      
20821      // Temporarily remove line-clamp to measure full height
20822      textElement.classList.remove('text-read-more__text--collapsed');
20823      
20824      // Force reflow
20825      void content.offsetHeight;
20826      
20827      const fullHeight = content.scrollHeight;
20828      
20829      // Restore line-clamp
20830      textElement.classList.add('text-read-more__text--collapsed');
20831      
20832      // Show button if content exceeds 2 lines (with small threshold for rounding)
20833      if (fullHeight > collapsedHeight + 5) {
20834        button.removeAttribute('hidden');
20835      } else {
20836        button.setAttribute('hidden', '');
20837      }
20838    }
20839
20840    #toggle(content, textElement, button) {
20841      const startHeight = content.offsetHeight;
20842      let endHeight;
20843
20844      if (!this.#expanded) {
20845        // Expanding
20846        textElement.classList.remove('text-read-more__text--collapsed');
20847        endHeight = content.scrollHeight;
20848        this.#expanded = true;
20849      } else {
20850        // Collapsing
20851        endHeight = this.#collapsedHeight;
20852        this.#expanded = false;
20853      }
20854
20855      this.dataset.expanded = this.#expanded;
20856      button.setAttribute('aria-expanded', this.#expanded);
20857
20858      // Animate
20859      content.style.overflow = 'hidden';
20860      this.#animation?.cancel();
20861
20862      this.#animation = content.animate(
20863        {
20864          height: [`${startHeight}px`, `${endHeight}px`],
20865        },
20866        {
20867          duration: 300,
20868          easing: 'ease-in-out',
20869        }
20870      );
20871
20872      this.#animation.onfinish = () => {
20873        if (this.#expanded) {
20874          content.style.removeProperty('height');
20875          content.style.overflow = '';
20876        } else {
20877          textElement.classList.add('text-read-more__text--collapsed');
20878          content.style.removeProperty('height');
20879          content.style.overflow = '';
20880        }
20881      };
20882    }
20883  }
20884
20885  if (!customElements.get('text-read-more-wrapper')) {
20886    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
20887  }
20888</script>
20888
20889
20890  
20891  
20892</div>
20893
20894
20895
20896
20897
20898
20899    </div>
20900  </div>
20901</div>
20902
20903
20904
20905
20906
20907
20908      </div>
20909      
20910        
20911</slideshow-slide>
20912
20913  
20914    <slideshow-slide
20915  ref="slides[]"
20916  aria-hidden="true"
20917  style="--slideshow-timeline: --slide-5; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
20918  
20919    class="resource-list__slide"
20920  
20921  
20922  
20923  
20924  
20925  
20926  
20927>
20928  
20929      
20930    
20931      <div
20932        class="resource-list__item"
20933        
20934          style="--collection-card-reveal-delay: 500ms;"
20935        
20936      >
20937        
20938
20939
20940
20941
20942
20943
20944
20945<style data-shopify>
20946  
20947</style>
20948
20949
20950
20951<div
20952  class="
20953    collection-card
20954    border-style
20955    
20956    
20957    
20958    
20959  "
20960  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-5"
20961  
20962  style="
20963    --border-width: 1px; --border-style: none; --border-color:
20964rgb(var(--color-border-rgb) / 1.0); --border-radius:
209650px; 
20966
20967    --horizontal-alignment: center;
20968    --vertical-alignment: center;
20969    --background-overlay-color: ;
20970    --gap: 12px;
20971  ">
20972  <a
20973    class="collection-card__link"
20974    
20975      href="/collections/silver"
20976    
20977  >
20978    <span class="visually-hidden">Silver</span>
20979  </a>
20980  <div class="collection-card__inner">
20981    
20982  
20983
20984
20985
20986
20987
20988<style data-shopify>
20989  
20990    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-5"] {
20991      --ratio: 1 / 1;
20992    }
20993    
20994      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-5"] .collection-card__image {
20995        width: 110px;
20996        height: 110px;
20997        aspect-ratio: unset;
20998        flex-shrink: 0;
20999      }
21000    
21001  
21002</style>
21003
21004
21005  <div
21006    class="
21007      image-block
21008      resource-image
21009       resource-image--swatch
21010      
21011        collection-card__image
21012      
21013      spacing-style border-style
21014      
21015    "
21016    style="--border-width: 1px; --border-style: none; --border-color:
21017rgb(var(--color-border-rgb) / 1.0); --border-radius:
210180px; 
21019"
21020    
21021  >
21022      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832755-99924400.png?v=1770115016&amp;width=220" alt="Silver" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832755-99924400.png?v=1770115016&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832755-99924400.png?v=1770115016&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
21023    
21024  </div>
21025
21026
21027
21028
21029
21030
21031
21032
21033    <div class="collection-card__content layout-panel-flex--column">
21034      
21035  
21036
21037
21038
21039<div class="collection-title-wrapper">
21040  
21041    
21042    
21043
21044
21045
21046
21047
21048
21049  
21050    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-5 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
21051      <p>Silver</p>
21052    </div>
21053  
21054
21055
21056
21057
21058<script type="module">
21059  class TextReadMoreWrapper extends HTMLElement {
21060    #expanded = false;
21061    #animation = null;
21062    #collapsedHeight = 0;
21063
21064    connectedCallback() {
21065      const content = this.querySelector('.text-read-more__content');
21066      const textElement = this.querySelector('.text-read-more__text');
21067      const button = this.querySelector('.text-read-more__button');
21068
21069      if (!content || !textElement || !button) return;
21070
21071      // Set initial state
21072      this.dataset.expanded = 'false';
21073
21074      // Wait for content to render - use double RAF to ensure layout is complete
21075      requestAnimationFrame(() => {
21076        requestAnimationFrame(() => {
21077          // Additional small delay to ensure fonts and styles are applied
21078          setTimeout(() => {
21079            this.#checkOverflow(content, textElement, button);
21080          }, 50);
21081          
21082          // Recheck on resize
21083          const resizeObserver = new ResizeObserver(() => {
21084            if (!this.#expanded) {
21085              this.#checkOverflow(content, textElement, button);
21086            }
21087          });
21088          resizeObserver.observe(content);
21089
21090          // Setup button click handler
21091          button.addEventListener('click', (e) => {
21092            e.preventDefault();
21093            this.#toggle(content, textElement, button);
21094          });
21095        });
21096      });
21097    }
21098
21099    #checkOverflow(content, textElement, button) {
21100      // Ensure collapsed state is applied
21101      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
21102        textElement.classList.add('text-read-more__text--collapsed');
21103      }
21104      
21105      // Get collapsed height first
21106      const collapsedHeight = content.scrollHeight;
21107      this.#collapsedHeight = collapsedHeight;
21108      
21109      // Temporarily remove line-clamp to measure full height
21110      textElement.classList.remove('text-read-more__text--collapsed');
21111      
21112      // Force reflow
21113      void content.offsetHeight;
21114      
21115      const fullHeight = content.scrollHeight;
21116      
21117      // Restore line-clamp
21118      textElement.classList.add('text-read-more__text--collapsed');
21119      
21120      // Show button if content exceeds 2 lines (with small threshold for rounding)
21121      if (fullHeight > collapsedHeight + 5) {
21122        button.removeAttribute('hidden');
21123      } else {
21124        button.setAttribute('hidden', '');
21125      }
21126    }
21127
21128    #toggle(content, textElement, button) {
21129      const startHeight = content.offsetHeight;
21130      let endHeight;
21131
21132      if (!this.#expanded) {
21133        // Expanding
21134        textElement.classList.remove('text-read-more__text--collapsed');
21135        endHeight = content.scrollHeight;
21136        this.#expanded = true;
21137      } else {
21138        // Collapsing
21139        endHeight = this.#collapsedHeight;
21140        this.#expanded = false;
21141      }
21142
21143      this.dataset.expanded = this.#expanded;
21144      button.setAttribute('aria-expanded', this.#expanded);
21145
21146      // Animate
21147      content.style.overflow = 'hidden';
21148      this.#animation?.cancel();
21149
21150      this.#animation = content.animate(
21151        {
21152          height: [`${startHeight}px`, `${endHeight}px`],
21153        },
21154        {
21155          duration: 300,
21156          easing: 'ease-in-out',
21157        }
21158      );
21159
21160      this.#animation.onfinish = () => {
21161        if (this.#expanded) {
21162          content.style.removeProperty('height');
21163          content.style.overflow = '';
21164        } else {
21165          textElement.classList.add('text-read-more__text--collapsed');
21166          content.style.removeProperty('height');
21167          content.style.overflow = '';
21168        }
21169      };
21170    }
21171  }
21172
21173  if (!customElements.get('text-read-more-wrapper')) {
21174    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
21175  }
21176</script>
21176
21177
21178  
21179  
21180</div>
21181
21182
21183
21184
21185
21186
21187    </div>
21188  </div>
21189</div>
21190
21191
21192
21193
21194
21195
21196      </div>
21197      
21198        
21199</slideshow-slide>
21200
21201  
21202    <slideshow-slide
21203  ref="slides[]"
21204  aria-hidden="true"
21205  style="--slideshow-timeline: --slide-6; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
21206  
21207    class="resource-list__slide"
21208  
21209  
21210  
21211  
21212  
21213  
21214  
21215>
21216  
21217      
21218    
21219      <div
21220        class="resource-list__item"
21221        
21222          style="--collection-card-reveal-delay: 600ms;"
21223        
21224      >
21225        
21226
21227
21228
21229
21230
21231
21232
21233<style data-shopify>
21234  
21235</style>
21236
21237
21238
21239<div
21240  class="
21241    collection-card
21242    border-style
21243    
21244    
21245    
21246    
21247  "
21248  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-6"
21249  
21250  style="
21251    --border-width: 1px; --border-style: none; --border-color:
21252rgb(var(--color-border-rgb) / 1.0); --border-radius:
212530px; 
21254
21255    --horizontal-alignment: center;
21256    --vertical-alignment: center;
21257    --background-overlay-color: ;
21258    --gap: 12px;
21259  ">
21260  <a
21261    class="collection-card__link"
21262    
21263      href="/collections/yellow"
21264    
21265  >
21266    <span class="visually-hidden">Yellow</span>
21267  </a>
21268  <div class="collection-card__inner">
21269    
21270  
21271
21272
21273
21274
21275
21276<style data-shopify>
21277  
21278    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-6"] {
21279      --ratio: 1 / 1;
21280    }
21281    
21282      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-6"] .collection-card__image {
21283        width: 110px;
21284        height: 110px;
21285        aspect-ratio: unset;
21286        flex-shrink: 0;
21287      }
21288    
21289  
21290</style>
21291
21292
21293  <div
21294    class="
21295      image-block
21296      resource-image
21297       resource-image--swatch
21298      
21299        collection-card__image
21300      
21301      spacing-style border-style
21302      
21303    "
21304    style="--border-width: 1px; --border-style: none; --border-color:
21305rgb(var(--color-border-rgb) / 1.0); --border-radius:
213060px; 
21307"
21308    
21309  >
21310      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832782-80810400_31cc1f5a-0d37-4e7f-b589-1674fb222b9a.png?v=1770118697&amp;width=220" alt="Yellow" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832782-80810400_31cc1f5a-0d37-4e7f-b589-1674fb222b9a.png?v=1770118697&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832782-80810400_31cc1f5a-0d37-4e7f-b589-1674fb222b9a.png?v=1770118697&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
21311    
21312  </div>
21313
21314
21315
21316
21317
21318
21319
21320
21321    <div class="collection-card__content layout-panel-flex--column">
21322      
21323  
21324
21325
21326
21327<div class="collection-title-wrapper">
21328  
21329    
21330    
21331
21332
21333
21334
21335
21336
21337  
21338    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-6 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
21339      <p>Yellow</p>
21340    </div>
21341  
21342
21343
21344
21345
21346<script type="module">
21347  class TextReadMoreWrapper extends HTMLElement {
21348    #expanded = false;
21349    #animation = null;
21350    #collapsedHeight = 0;
21351
21352    connectedCallback() {
21353      const content = this.querySelector('.text-read-more__content');
21354      const textElement = this.querySelector('.text-read-more__text');
21355      const button = this.querySelector('.text-read-more__button');
21356
21357      if (!content || !textElement || !button) return;
21358
21359      // Set initial state
21360      this.dataset.expanded = 'false';
21361
21362      // Wait for content to render - use double RAF to ensure layout is complete
21363      requestAnimationFrame(() => {
21364        requestAnimationFrame(() => {
21365          // Additional small delay to ensure fonts and styles are applied
21366          setTimeout(() => {
21367            this.#checkOverflow(content, textElement, button);
21368          }, 50);
21369          
21370          // Recheck on resize
21371          const resizeObserver = new ResizeObserver(() => {
21372            if (!this.#expanded) {
21373              this.#checkOverflow(content, textElement, button);
21374            }
21375          });
21376          resizeObserver.observe(content);
21377
21378          // Setup button click handler
21379          button.addEventListener('click', (e) => {
21380            e.preventDefault();
21381            this.#toggle(content, textElement, button);
21382          });
21383        });
21384      });
21385    }
21386
21387    #checkOverflow(content, textElement, button) {
21388      // Ensure collapsed state is applied
21389      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
21390        textElement.classList.add('text-read-more__text--collapsed');
21391      }
21392      
21393      // Get collapsed height first
21394      const collapsedHeight = content.scrollHeight;
21395      this.#collapsedHeight = collapsedHeight;
21396      
21397      // Temporarily remove line-clamp to measure full height
21398      textElement.classList.remove('text-read-more__text--collapsed');
21399      
21400      // Force reflow
21401      void content.offsetHeight;
21402      
21403      const fullHeight = content.scrollHeight;
21404      
21405      // Restore line-clamp
21406      textElement.classList.add('text-read-more__text--collapsed');
21407      
21408      // Show button if content exceeds 2 lines (with small threshold for rounding)
21409      if (fullHeight > collapsedHeight + 5) {
21410        button.removeAttribute('hidden');
21411      } else {
21412        button.setAttribute('hidden', '');
21413      }
21414    }
21415
21416    #toggle(content, textElement, button) {
21417      const startHeight = content.offsetHeight;
21418      let endHeight;
21419
21420      if (!this.#expanded) {
21421        // Expanding
21422        textElement.classList.remove('text-read-more__text--collapsed');
21423        endHeight = content.scrollHeight;
21424        this.#expanded = true;
21425      } else {
21426        // Collapsing
21427        endHeight = this.#collapsedHeight;
21428        this.#expanded = false;
21429      }
21430
21431      this.dataset.expanded = this.#expanded;
21432      button.setAttribute('aria-expanded', this.#expanded);
21433
21434      // Animate
21435      content.style.overflow = 'hidden';
21436      this.#animation?.cancel();
21437
21438      this.#animation = content.animate(
21439        {
21440          height: [`${startHeight}px`, `${endHeight}px`],
21441        },
21442        {
21443          duration: 300,
21444          easing: 'ease-in-out',
21445        }
21446      );
21447
21448      this.#animation.onfinish = () => {
21449        if (this.#expanded) {
21450          content.style.removeProperty('height');
21451          content.style.overflow = '';
21452        } else {
21453          textElement.classList.add('text-read-more__text--collapsed');
21454          content.style.removeProperty('height');
21455          content.style.overflow = '';
21456        }
21457      };
21458    }
21459  }
21460
21461  if (!customElements.get('text-read-more-wrapper')) {
21462    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
21463  }
21464</script>
21464
21465
21466  
21467  
21468</div>
21469
21470
21471
21472
21473
21474
21475    </div>
21476  </div>
21477</div>
21478
21479
21480
21481
21482
21483
21484      </div>
21485      
21486        
21487</slideshow-slide>
21488
21489  
21490    <slideshow-slide
21491  ref="slides[]"
21492  aria-hidden="true"
21493  style="--slideshow-timeline: --slide-7; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
21494  
21495    class="resource-list__slide"
21496  
21497  
21498  
21499  
21500  
21501  
21502  
21503>
21504  
21505      
21506    
21507      <div
21508        class="resource-list__item"
21509        
21510          style="--collection-card-reveal-delay: 700ms;"
21511        
21512      >
21513        
21514
21515
21516
21517
21518
21519
21520
21521<style data-shopify>
21522  
21523</style>
21524
21525
21526
21527<div
21528  class="
21529    collection-card
21530    border-style
21531    
21532    
21533    
21534    
21535  "
21536  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-7"
21537  
21538  style="
21539    --border-width: 1px; --border-style: none; --border-color:
21540rgb(var(--color-border-rgb) / 1.0); --border-radius:
215410px; 
21542
21543    --horizontal-alignment: center;
21544    --vertical-alignment: center;
21545    --background-overlay-color: ;
21546    --gap: 12px;
21547  ">
21548  <a
21549    class="collection-card__link"
21550    
21551      href="/collections/orange-copy"
21552    
21553  >
21554    <span class="visually-hidden">Pink</span>
21555  </a>
21556  <div class="collection-card__inner">
21557    
21558  
21559
21560
21561
21562
21563
21564<style data-shopify>
21565  
21566    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-7"] {
21567      --ratio: 1 / 1;
21568    }
21569    
21570      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-7"] .collection-card__image {
21571        width: 110px;
21572        height: 110px;
21573        aspect-ratio: unset;
21574        flex-shrink: 0;
21575      }
21576    
21577  
21578</style>
21579
21580
21581  <div
21582    class="
21583      image-block
21584      resource-image
21585       resource-image--swatch
21586      
21587        collection-card__image
21588      
21589      spacing-style border-style
21590      
21591    "
21592    style="--border-width: 1px; --border-style: none; --border-color:
21593rgb(var(--color-border-rgb) / 1.0); --border-radius:
215940px; 
21595"
21596    
21597  >
21598      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832774-62067100.png?v=1770114752&amp;width=220" alt="Pink" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832774-62067100.png?v=1770114752&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832774-62067100.png?v=1770114752&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
21599    
21600  </div>
21601
21602
21603
21604
21605
21606
21607
21608
21609    <div class="collection-card__content layout-panel-flex--column">
21610      
21611  
21612
21613
21614
21615<div class="collection-title-wrapper">
21616  
21617    
21618    
21619
21620
21621
21622
21623
21624
21625  
21626    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-7 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
21627      <p>Pink</p>
21628    </div>
21629  
21630
21631
21632
21633
21634<script type="module">
21635  class TextReadMoreWrapper extends HTMLElement {
21636    #expanded = false;
21637    #animation = null;
21638    #collapsedHeight = 0;
21639
21640    connectedCallback() {
21641      const content = this.querySelector('.text-read-more__content');
21642      const textElement = this.querySelector('.text-read-more__text');
21643      const button = this.querySelector('.text-read-more__button');
21644
21645      if (!content || !textElement || !button) return;
21646
21647      // Set initial state
21648      this.dataset.expanded = 'false';
21649
21650      // Wait for content to render - use double RAF to ensure layout is complete
21651      requestAnimationFrame(() => {
21652        requestAnimationFrame(() => {
21653          // Additional small delay to ensure fonts and styles are applied
21654          setTimeout(() => {
21655            this.#checkOverflow(content, textElement, button);
21656          }, 50);
21657          
21658          // Recheck on resize
21659          const resizeObserver = new ResizeObserver(() => {
21660            if (!this.#expanded) {
21661              this.#checkOverflow(content, textElement, button);
21662            }
21663          });
21664          resizeObserver.observe(content);
21665
21666          // Setup button click handler
21667          button.addEventListener('click', (e) => {
21668            e.preventDefault();
21669            this.#toggle(content, textElement, button);
21670          });
21671        });
21672      });
21673    }
21674
21675    #checkOverflow(content, textElement, button) {
21676      // Ensure collapsed state is applied
21677      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
21678        textElement.classList.add('text-read-more__text--collapsed');
21679      }
21680      
21681      // Get collapsed height first
21682      const collapsedHeight = content.scrollHeight;
21683      this.#collapsedHeight = collapsedHeight;
21684      
21685      // Temporarily remove line-clamp to measure full height
21686      textElement.classList.remove('text-read-more__text--collapsed');
21687      
21688      // Force reflow
21689      void content.offsetHeight;
21690      
21691      const fullHeight = content.scrollHeight;
21692      
21693      // Restore line-clamp
21694      textElement.classList.add('text-read-more__text--collapsed');
21695      
21696      // Show button if content exceeds 2 lines (with small threshold for rounding)
21697      if (fullHeight > collapsedHeight + 5) {
21698        button.removeAttribute('hidden');
21699      } else {
21700        button.setAttribute('hidden', '');
21701      }
21702    }
21703
21704    #toggle(content, textElement, button) {
21705      const startHeight = content.offsetHeight;
21706      let endHeight;
21707
21708      if (!this.#expanded) {
21709        // Expanding
21710        textElement.classList.remove('text-read-more__text--collapsed');
21711        endHeight = content.scrollHeight;
21712        this.#expanded = true;
21713      } else {
21714        // Collapsing
21715        endHeight = this.#collapsedHeight;
21716        this.#expanded = false;
21717      }
21718
21719      this.dataset.expanded = this.#expanded;
21720      button.setAttribute('aria-expanded', this.#expanded);
21721
21722      // Animate
21723      content.style.overflow = 'hidden';
21724      this.#animation?.cancel();
21725
21726      this.#animation = content.animate(
21727        {
21728          height: [`${startHeight}px`, `${endHeight}px`],
21729        },
21730        {
21731          duration: 300,
21732          easing: 'ease-in-out',
21733        }
21734      );
21735
21736      this.#animation.onfinish = () => {
21737        if (this.#expanded) {
21738          content.style.removeProperty('height');
21739          content.style.overflow = '';
21740        } else {
21741          textElement.classList.add('text-read-more__text--collapsed');
21742          content.style.removeProperty('height');
21743          content.style.overflow = '';
21744        }
21745      };
21746    }
21747  }
21748
21749  if (!customElements.get('text-read-more-wrapper')) {
21750    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
21751  }
21752</script>
21752
21753
21754  
21755  
21756</div>
21757
21758
21759
21760
21761
21762
21763    </div>
21764  </div>
21765</div>
21766
21767
21768
21769
21770
21771
21772      </div>
21773      
21774        
21775</slideshow-slide>
21776
21777  
21778    <slideshow-slide
21779  ref="slides[]"
21780  aria-hidden="true"
21781  style="--slideshow-timeline: --slide-8; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
21782  
21783    class="resource-list__slide"
21784  
21785  
21786  
21787  
21788  
21789  
21790  
21791>
21792  
21793      
21794    
21795      <div
21796        class="resource-list__item"
21797        
21798          style="--collection-card-reveal-delay: 800ms;"
21799        
21800      >
21801        
21802
21803
21804
21805
21806
21807
21808
21809<style data-shopify>
21810  
21811</style>
21812
21813
21814
21815<div
21816  class="
21817    collection-card
21818    border-style
21819    
21820    
21821    
21822    
21823  "
21824  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-8"
21825  
21826  style="
21827    --border-width: 1px; --border-style: none; --border-color:
21828rgb(var(--color-border-rgb) / 1.0); --border-radius:
218290px; 
21830
21831    --horizontal-alignment: center;
21832    --vertical-alignment: center;
21833    --background-overlay-color: ;
21834    --gap: 12px;
21835  ">
21836  <a
21837    class="collection-card__link"
21838    
21839      href="/collections/red-copy"
21840    
21841  >
21842    <span class="visually-hidden">Nude</span>
21843  </a>
21844  <div class="collection-card__inner">
21845    
21846  
21847
21848
21849
21850
21851
21852<style data-shopify>
21853  
21854    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-8"] {
21855      --ratio: 1 / 1;
21856    }
21857    
21858      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-8"] .collection-card__image {
21859        width: 110px;
21860        height: 110px;
21861        aspect-ratio: unset;
21862        flex-shrink: 0;
21863      }
21864    
21865  
21866</style>
21867
21868
21869  <div
21870    class="
21871      image-block
21872      resource-image
21873       resource-image--swatch
21874      
21875        collection-card__image
21876      
21877      spacing-style border-style
21878      
21879    "
21880    style="--border-width: 1px; --border-style: none; --border-color:
21881rgb(var(--color-border-rgb) / 1.0); --border-radius:
218820px; 
21883"
21884    
21885  >
21886      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832789-80164700.png?v=1770114563&amp;width=220" alt="Nude" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832789-80164700.png?v=1770114563&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832789-80164700.png?v=1770114563&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
21887    
21888  </div>
21889
21890
21891
21892
21893
21894
21895
21896
21897    <div class="collection-card__content layout-panel-flex--column">
21898      
21899  
21900
21901
21902
21903<div class="collection-title-wrapper">
21904  
21905    
21906    
21907
21908
21909
21910
21911
21912
21913  
21914    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-8 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
21915      <p>Nude</p>
21916    </div>
21917  
21918
21919
21920
21921
21922<script type="module">
21923  class TextReadMoreWrapper extends HTMLElement {
21924    #expanded = false;
21925    #animation = null;
21926    #collapsedHeight = 0;
21927
21928    connectedCallback() {
21929      const content = this.querySelector('.text-read-more__content');
21930      const textElement = this.querySelector('.text-read-more__text');
21931      const button = this.querySelector('.text-read-more__button');
21932
21933      if (!content || !textElement || !button) return;
21934
21935      // Set initial state
21936      this.dataset.expanded = 'false';
21937
21938      // Wait for content to render - use double RAF to ensure layout is complete
21939      requestAnimationFrame(() => {
21940        requestAnimationFrame(() => {
21941          // Additional small delay to ensure fonts and styles are applied
21942          setTimeout(() => {
21943            this.#checkOverflow(content, textElement, button);
21944          }, 50);
21945          
21946          // Recheck on resize
21947          const resizeObserver = new ResizeObserver(() => {
21948            if (!this.#expanded) {
21949              this.#checkOverflow(content, textElement, button);
21950            }
21951          });
21952          resizeObserver.observe(content);
21953
21954          // Setup button click handler
21955          button.addEventListener('click', (e) => {
21956            e.preventDefault();
21957            this.#toggle(content, textElement, button);
21958          });
21959        });
21960      });
21961    }
21962
21963    #checkOverflow(content, textElement, button) {
21964      // Ensure collapsed state is applied
21965      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
21966        textElement.classList.add('text-read-more__text--collapsed');
21967      }
21968      
21969      // Get collapsed height first
21970      const collapsedHeight = content.scrollHeight;
21971      this.#collapsedHeight = collapsedHeight;
21972      
21973      // Temporarily remove line-clamp to measure full height
21974      textElement.classList.remove('text-read-more__text--collapsed');
21975      
21976      // Force reflow
21977      void content.offsetHeight;
21978      
21979      const fullHeight = content.scrollHeight;
21980      
21981      // Restore line-clamp
21982      textElement.classList.add('text-read-more__text--collapsed');
21983      
21984      // Show button if content exceeds 2 lines (with small threshold for rounding)
21985      if (fullHeight > collapsedHeight + 5) {
21986        button.removeAttribute('hidden');
21987      } else {
21988        button.setAttribute('hidden', '');
21989      }
21990    }
21991
21992    #toggle(content, textElement, button) {
21993      const startHeight = content.offsetHeight;
21994      let endHeight;
21995
21996      if (!this.#expanded) {
21997        // Expanding
21998        textElement.classList.remove('text-read-more__text--collapsed');
21999        endHeight = content.scrollHeight;
22000        this.#expanded = true;
22001      } else {
22002        // Collapsing
22003        endHeight = this.#collapsedHeight;
22004        this.#expanded = false;
22005      }
22006
22007      this.dataset.expanded = this.#expanded;
22008      button.setAttribute('aria-expanded', this.#expanded);
22009
22010      // Animate
22011      content.style.overflow = 'hidden';
22012      this.#animation?.cancel();
22013
22014      this.#animation = content.animate(
22015        {
22016          height: [`${startHeight}px`, `${endHeight}px`],
22017        },
22018        {
22019          duration: 300,
22020          easing: 'ease-in-out',
22021        }
22022      );
22023
22024      this.#animation.onfinish = () => {
22025        if (this.#expanded) {
22026          content.style.removeProperty('height');
22027          content.style.overflow = '';
22028        } else {
22029          textElement.classList.add('text-read-more__text--collapsed');
22030          content.style.removeProperty('height');
22031          content.style.overflow = '';
22032        }
22033      };
22034    }
22035  }
22036
22037  if (!customElements.get('text-read-more-wrapper')) {
22038    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
22039  }
22040</script>
22040
22041
22042  
22043  
22044</div>
22045
22046
22047
22048
22049
22050
22051    </div>
22052  </div>
22053</div>
22054
22055
22056
22057
22058
22059
22060      </div>
22061      
22062        
22063</slideshow-slide>
22064
22065  
22066    <slideshow-slide
22067  ref="slides[]"
22068  aria-hidden="true"
22069  style="--slideshow-timeline: --slide-9; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
22070  
22071    class="resource-list__slide"
22072  
22073  
22074  
22075  
22076  
22077  
22078  
22079>
22080  
22081      
22082    
22083      <div
22084        class="resource-list__item"
22085        
22086          style="--collection-card-reveal-delay: 900ms;"
22087        
22088      >
22089        
22090
22091
22092
22093
22094
22095
22096
22097<style data-shopify>
22098  
22099</style>
22100
22101
22102
22103<div
22104  class="
22105    collection-card
22106    border-style
22107    
22108    
22109    
22110    
22111  "
22112  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-9"
22113  
22114  style="
22115    --border-width: 1px; --border-style: none; --border-color:
22116rgb(var(--color-border-rgb) / 1.0); --border-radius:
221170px; 
22118
22119    --horizontal-alignment: center;
22120    --vertical-alignment: center;
22121    --background-overlay-color: ;
22122    --gap: 12px;
22123  ">
22124  <a
22125    class="collection-card__link"
22126    
22127      href="/collections/gold-copy"
22128    
22129  >
22130    <span class="visually-hidden">Red</span>
22131  </a>
22132  <div class="collection-card__inner">
22133    
22134  
22135
22136
22137
22138
22139
22140<style data-shopify>
22141  
22142    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-9"] {
22143      --ratio: 1 / 1;
22144    }
22145    
22146      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-9"] .collection-card__image {
22147        width: 110px;
22148        height: 110px;
22149        aspect-ratio: unset;
22150        flex-shrink: 0;
22151      }
22152    
22153  
22154</style>
22155
22156
22157  <div
22158    class="
22159      image-block
22160      resource-image
22161       resource-image--swatch
22162      
22163        collection-card__image
22164      
22165      spacing-style border-style
22166      
22167    "
22168    style="--border-width: 1px; --border-style: none; --border-color:
22169rgb(var(--color-border-rgb) / 1.0); --border-radius:
221700px; 
22171"
22172    
22173  >
22174      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832786-82595100.png?v=1770114537&amp;width=220" alt="Red" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832786-82595100.png?v=1770114537&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832786-82595100.png?v=1770114537&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
22175    
22176  </div>
22177
22178
22179
22180
22181
22182
22183
22184
22185    <div class="collection-card__content layout-panel-flex--column">
22186      
22187  
22188
22189
22190
22191<div class="collection-title-wrapper">
22192  
22193    
22194    
22195
22196
22197
22198
22199
22200
22201  
22202    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-9 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
22203      <p>Red</p>
22204    </div>
22205  
22206
22207
22208
22209
22210<script type="module">
22211  class TextReadMoreWrapper extends HTMLElement {
22212    #expanded = false;
22213    #animation = null;
22214    #collapsedHeight = 0;
22215
22216    connectedCallback() {
22217      const content = this.querySelector('.text-read-more__content');
22218      const textElement = this.querySelector('.text-read-more__text');
22219      const button = this.querySelector('.text-read-more__button');
22220
22221      if (!content || !textElement || !button) return;
22222
22223      // Set initial state
22224      this.dataset.expanded = 'false';
22225
22226      // Wait for content to render - use double RAF to ensure layout is complete
22227      requestAnimationFrame(() => {
22228        requestAnimationFrame(() => {
22229          // Additional small delay to ensure fonts and styles are applied
22230          setTimeout(() => {
22231            this.#checkOverflow(content, textElement, button);
22232          }, 50);
22233          
22234          // Recheck on resize
22235          const resizeObserver = new ResizeObserver(() => {
22236            if (!this.#expanded) {
22237              this.#checkOverflow(content, textElement, button);
22238            }
22239          });
22240          resizeObserver.observe(content);
22241
22242          // Setup button click handler
22243          button.addEventListener('click', (e) => {
22244            e.preventDefault();
22245            this.#toggle(content, textElement, button);
22246          });
22247        });
22248      });
22249    }
22250
22251    #checkOverflow(content, textElement, button) {
22252      // Ensure collapsed state is applied
22253      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
22254        textElement.classList.add('text-read-more__text--collapsed');
22255      }
22256      
22257      // Get collapsed height first
22258      const collapsedHeight = content.scrollHeight;
22259      this.#collapsedHeight = collapsedHeight;
22260      
22261      // Temporarily remove line-clamp to measure full height
22262      textElement.classList.remove('text-read-more__text--collapsed');
22263      
22264      // Force reflow
22265      void content.offsetHeight;
22266      
22267      const fullHeight = content.scrollHeight;
22268      
22269      // Restore line-clamp
22270      textElement.classList.add('text-read-more__text--collapsed');
22271      
22272      // Show button if content exceeds 2 lines (with small threshold for rounding)
22273      if (fullHeight > collapsedHeight + 5) {
22274        button.removeAttribute('hidden');
22275      } else {
22276        button.setAttribute('hidden', '');
22277      }
22278    }
22279
22280    #toggle(content, textElement, button) {
22281      const startHeight = content.offsetHeight;
22282      let endHeight;
22283
22284      if (!this.#expanded) {
22285        // Expanding
22286        textElement.classList.remove('text-read-more__text--collapsed');
22287        endHeight = content.scrollHeight;
22288        this.#expanded = true;
22289      } else {
22290        // Collapsing
22291        endHeight = this.#collapsedHeight;
22292        this.#expanded = false;
22293      }
22294
22295      this.dataset.expanded = this.#expanded;
22296      button.setAttribute('aria-expanded', this.#expanded);
22297
22298      // Animate
22299      content.style.overflow = 'hidden';
22300      this.#animation?.cancel();
22301
22302      this.#animation = content.animate(
22303        {
22304          height: [`${startHeight}px`, `${endHeight}px`],
22305        },
22306        {
22307          duration: 300,
22308          easing: 'ease-in-out',
22309        }
22310      );
22311
22312      this.#animation.onfinish = () => {
22313        if (this.#expanded) {
22314          content.style.removeProperty('height');
22315          content.style.overflow = '';
22316        } else {
22317          textElement.classList.add('text-read-more__text--collapsed');
22318          content.style.removeProperty('height');
22319          content.style.overflow = '';
22320        }
22321      };
22322    }
22323  }
22324
22325  if (!customElements.get('text-read-more-wrapper')) {
22326    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
22327  }
22328</script>
22328
22329
22330  
22331  
22332</div>
22333
22334
22335
22336
22337
22338
22339    </div>
22340  </div>
22341</div>
22342
22343
22344
22345
22346
22347
22348      </div>
22349      
22350        
22351</slideshow-slide>
22352
22353  
22354    <slideshow-slide
22355  ref="slides[]"
22356  aria-hidden="true"
22357  style="--slideshow-timeline: --slide-10; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
22358  
22359    class="resource-list__slide"
22360  
22361  
22362  
22363  
22364  
22365  
22366  
22367>
22368  
22369      
22370    
22371      <div
22372        class="resource-list__item"
22373        
22374          style="--collection-card-reveal-delay: 1000ms;"
22375        
22376      >
22377        
22378
22379
22380
22381
22382
22383
22384
22385<style data-shopify>
22386  
22387</style>
22388
22389
22390
22391<div
22392  class="
22393    collection-card
22394    border-style
22395    
22396    
22397    
22398    
22399  "
22400  data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-10"
22401  
22402  style="
22403    --border-width: 1px; --border-style: none; --border-color:
22404rgb(var(--color-border-rgb) / 1.0); --border-radius:
224050px; 
22406
22407    --horizontal-alignment: center;
22408    --vertical-alignment: center;
22409    --background-overlay-color: ;
22410    --gap: 12px;
22411  ">
22412  <a
22413    class="collection-card__link"
22414    
22415      href="/collections/pink-copy"
22416    
22417  >
22418    <span class="visually-hidden">Black</span>
22419  </a>
22420  <div class="collection-card__inner">
22421    
22422  
22423
22424
22425
22426
22427
22428<style data-shopify>
22429  
22430    .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-10"] {
22431      --ratio: 1 / 1;
22432    }
22433    
22434      .collection-card[data-block-id="AS1lXanF6Z216VmJDa__static-collection-card-10"] .collection-card__image {
22435        width: 110px;
22436        height: 110px;
22437        aspect-ratio: unset;
22438        flex-shrink: 0;
22439      }
22440    
22441  
22442</style>
22443
22444
22445  <div
22446    class="
22447      image-block
22448      resource-image
22449       resource-image--swatch
22450      
22451        collection-card__image
22452      
22453      spacing-style border-style
22454      
22455    "
22456    style="--border-width: 1px; --border-style: none; --border-color:
22457rgb(var(--color-border-rgb) / 1.0); --border-radius:
224580px; 
22459"
22460    
22461  >
22462      <img src="//www.tnbl.co.uk/cdn/shop/collections/1726832785-53381800.png?v=1770114156&amp;width=220" alt="Black" srcset="//www.tnbl.co.uk/cdn/shop/collections/1726832785-53381800.png?v=1770114156&amp;width=110 110w, //www.tnbl.co.uk/cdn/shop/collections/1726832785-53381800.png?v=1770114156&amp;width=220 220w" width="220" height="220" loading="eager" class="image-block__image" sizes="110px">
22463    
22464  </div>
22465
22466
22467
22468
22469
22470
22471
22472
22473    <div class="collection-card__content layout-panel-flex--column">
22474      
22475  
22476
22477
22478
22479<div class="collection-title-wrapper">
22480  
22481    
22482    
22483
22484
22485
22486
22487
22488
22489  
22490    <div class=" spacing-style text-block text-block--AUnkvcXVrOU1BSFU3M__collection_title_QC3aEP-10 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
22491      <p>Black</p>
22492    </div>
22493  
22494
22495
22496
22497
22498<script type="module">
22499  class TextReadMoreWrapper extends HTMLElement {
22500    #expanded = false;
22501    #animation = null;
22502    #collapsedHeight = 0;
22503
22504    connectedCallback() {
22505      const content = this.querySelector('.text-read-more__content');
22506      const textElement = this.querySelector('.text-read-more__text');
22507      const button = this.querySelector('.text-read-more__button');
22508
22509      if (!content || !textElement || !button) return;
22510
22511      // Set initial state
22512      this.dataset.expanded = 'false';
22513
22514      // Wait for content to render - use double RAF to ensure layout is complete
22515      requestAnimationFrame(() => {
22516        requestAnimationFrame(() => {
22517          // Additional small delay to ensure fonts and styles are applied
22518          setTimeout(() => {
22519            this.#checkOverflow(content, textElement, button);
22520          }, 50);
22521          
22522          // Recheck on resize
22523          const resizeObserver = new ResizeObserver(() => {
22524            if (!this.#expanded) {
22525              this.#checkOverflow(content, textElement, button);
22526            }
22527          });
22528          resizeObserver.observe(content);
22529
22530          // Setup button click handler
22531          button.addEventListener('click', (e) => {
22532            e.preventDefault();
22533            this.#toggle(content, textElement, button);
22534          });
22535        });
22536      });
22537    }
22538
22539    #checkOverflow(content, textElement, button) {
22540      // Ensure collapsed state is applied
22541      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
22542        textElement.classList.add('text-read-more__text--collapsed');
22543      }
22544      
22545      // Get collapsed height first
22546      const collapsedHeight = content.scrollHeight;
22547      this.#collapsedHeight = collapsedHeight;
22548      
22549      // Temporarily remove line-clamp to measure full height
22550      textElement.classList.remove('text-read-more__text--collapsed');
22551      
22552      // Force reflow
22553      void content.offsetHeight;
22554      
22555      const fullHeight = content.scrollHeight;
22556      
22557      // Restore line-clamp
22558      textElement.classList.add('text-read-more__text--collapsed');
22559      
22560      // Show button if content exceeds 2 lines (with small threshold for rounding)
22561      if (fullHeight > collapsedHeight + 5) {
22562        button.removeAttribute('hidden');
22563      } else {
22564        button.setAttribute('hidden', '');
22565      }
22566    }
22567
22568    #toggle(content, textElement, button) {
22569      const startHeight = content.offsetHeight;
22570      let endHeight;
22571
22572      if (!this.#expanded) {
22573        // Expanding
22574        textElement.classList.remove('text-read-more__text--collapsed');
22575        endHeight = content.scrollHeight;
22576        this.#expanded = true;
22577      } else {
22578        // Collapsing
22579        endHeight = this.#collapsedHeight;
22580        this.#expanded = false;
22581      }
22582
22583      this.dataset.expanded = this.#expanded;
22584      button.setAttribute('aria-expanded', this.#expanded);
22585
22586      // Animate
22587      content.style.overflow = 'hidden';
22588      this.#animation?.cancel();
22589
22590      this.#animation = content.animate(
22591        {
22592          height: [`${startHeight}px`, `${endHeight}px`],
22593        },
22594        {
22595          duration: 300,
22596          easing: 'ease-in-out',
22597        }
22598      );
22599
22600      this.#animation.onfinish = () => {
22601        if (this.#expanded) {
22602          content.style.removeProperty('height');
22603          content.style.overflow = '';
22604        } else {
22605          textElement.classList.add('text-read-more__text--collapsed');
22606          content.style.removeProperty('height');
22607          content.style.overflow = '';
22608        }
22609      };
22610    }
22611  }
22612
22613  if (!customElements.get('text-read-more-wrapper')) {
22614    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
22615  }
22616</script>
22616
22617
22618  
22619  
22620</div>
22621
22622
22623
22624
22625
22626
22627    </div>
22628  </div>
22629</div>
22630
22631
22632
22633
22634
22635
22636      </div>
22637</slideshow-slide>
22638
22639  
22640
22641    </slideshow-slides>
22642  </slideshow-container>
22643  
22644</slideshow-component>
22645
22646
22647
22648</div>
22649
22650
22651    
22652</div>
22653
22654
22655
22656
22657
22658  
22659    <style>
22660      @container resource-list-carousel (min-width: 750px) {
22661        #collection-list-template--28213213921626__collection_list_pDpFPq.section-collection-list--colour-swatches .resource-list__carousel .resource-list__slide {
22662          --slide-width: calc(var(--section-slide-width, var(--fallback-slide-width)) * 0.85);
22663        }
22664        #collection-list-template--28213213921626__collection_list_pDpFPq.section-collection-list--colour-swatches .resource-list__carousel .collection-card__inner {
22665          align-items: center;
22666          justify-content: center;
22667        }
22668        #collection-list-template--28213213921626__collection_list_pDpFPq.section-collection-list--colour-swatches .resource-list__carousel .collection-card__image {
22669          display: flex;
22670          justify-content: center;
22671          align-items: center;
22672        }
22673        #collection-list-template--28213213921626__collection_list_pDpFPq.section-collection-list--colour-swatches .resource-list__carousel .collection-card__image .image-block__image {
22674          object-fit: contain;
22675          object-position: center;
22676        }
22677      }
22678      @container resource-list-carousel (min-width: 750px) and (max-width: 989px) {
22679        #collection-list-template--28213213921626__collection_list_pDpFPq.section-collection-list--colour-swatches .resource-list__carousel .resource-list__slide {
22680          --slide-width: calc(var(--section-slide-width, var(--fallback-slide-width)) * 0.65);
22681          min-width: 140px;
22682        }
22683        #collection-list-template--28213213921626__collection_list_pDpFPq.section-collection-list--colour-swatches .resource-list__carousel slideshow-slides {
22684          gap: 24px;
22685        }
22686      }
22687    </style>
22688  
22689</div>
22690
22691<script>
22692  (() => {
22693    const section = document.getElementById('collection-list-template--28213213921626__collection_list_pDpFPq');
22694    if (!section) return;
22695
22696    if (section.dataset.collectionCardRevealEnabled !== 'true') return;
22697    if (section.dataset.collectionListRevealed === 'true') return;
22698
22699    // Only apply the hidden start state when JS is active
22700    section.dataset.collectionCardRevealInit = 'true';
22701
22702    const reducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches;
22703
22704    const reveal = () => {
22705      section.dataset.collectionListRevealed = 'true';
22706    };
22707
22708    // Progressive enhancement fallbacks
22709    if (window.Shopify?.designMode) {
22710      reveal();
22711      return;
22712    }
22713
22714    if (reducedMotion) {
22715      reveal();
22716      return;
22717    }
22718
22719    if (!('IntersectionObserver' in window)) {
22720      reveal();
22721      return;
22722    }
22723
22724    const observer = new IntersectionObserver(
22725      (entries) => {
22726        for (const entry of entries) {
22727          if (entry.isIntersecting) {
22728            reveal();
22729            observer.disconnect();
22730            break;
22731          }
22732        }
22733      },
22734      { root: null, threshold: 0.15 }
22735    );
22736
22737    observer.observe(section);
22738  })();
22739</script>
22739
22740
22741
22742</div><div id="shopify-section-template--28213213921626__divider_zxcRey" class="shopify-section">
22743
22744
22745
22746
22747
22748<div class="section-background color-scheme-4"></div>
22749<div
22750  class="section section--page-width color-scheme-4"
22751  data-testid="divider-template--28213213921626__divider_zxcRey"
22752>
22753  <div
22754  class="divider divider-template--28213213921626__divider_zxcRey spacing-style"
22755  style="
22756    --divider-justify-content: center;
22757    --padding-block-start: 0px;--padding-block-end: 0px;
22758  "
22759  
22760
22761>
22762  <span
22763    class="divider__line"
22764    style="
22765      --divider-border-thickness: 1px;
22766      
22767        --divider-border-rounded: 0;
22768      
22769      --divider-flex-basis: 100%;
22770    "
22771  ></span>
22772</div>
22773
22774
22775
22776</div>
22777
22778
22779</div><div id="shopify-section-template--28213213921626__divider_kBFUjB" class="shopify-section">
22780
22781
22782
22783
22784
22785<div class="section-background color-scheme-4"></div>
22786<div
22787  class="section section--page-width color-scheme-4"
22788  data-testid="divider-template--28213213921626__divider_kBFUjB"
22789>
22790  <div
22791  class="divider divider-template--28213213921626__divider_kBFUjB spacing-style"
22792  style="
22793    --divider-justify-content: center;
22794    --padding-block-start: 0px;--padding-block-end: 0px;
22795  "
22796  
22797
22798>
22799  <span
22800    class="divider__line"
22801    style="
22802      --divider-border-thickness: 1px;
22803      
22804        --divider-border-rounded: 0;
22805      
22806      --divider-flex-basis: 100%;
22807    "
22808  ></span>
22809</div>
22810
22811
22812
22813</div>
22814
22815
22816</div><div id="shopify-section-template--28213213921626__section_U8fwi3" class="shopify-section section-wrapper">
22817
22818
22819
22820<div class="section-background color-scheme-1"></div>
22821<div
22822  class="section section--page-width color-scheme-1"
22823  data-testid="ui-test-section"
22824
22825  
22826
22827  style="
22828    
22829
22830    
22831  "
22832>
22833  <div class="custom-section-background">
22834    
22835
22836
22837
22838  </div>
22839
22840  <div
22841    class="border-style custom-section-content"
22842    style="--border-width: 1px; --border-style: none; --border-color:
22843rgb(var(--color-border-rgb) / 1.0); --border-radius:
228440px; 
22845"
22846  >
22847    
22848
22849    <div
22850      class="
22851        spacing-style
22852        layout-panel-flex
22853        layout-panel-flex--column
22854        section-content-wrapper
22855         mobile-column
22856      "
22857      style="
22858        --flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
22859
22860--gap: max(24px, calc(var(--gap-scale, 1.0) * 25px));
22861
22862--horizontal-alignment: flex-start; --vertical-alignment: center;
22863--vertical-alignment-mobile: center;
22864
22865        --padding-block-start: max(20px, calc(var(--spacing-scale) * 70px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 40px));
22866      "
22867      data-testid="section-content"
22868    >
22869      
22870  
22871
22872
22873
22874
22875
22876
22877
22878
22879  
22880    <div class=" spacing-style text-block text-block--AS0hlalFCOTlzSnBLN__text_gHm4pp h3      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
22881      <h2>Shop By Brand</h2>
22882    </div>
22883  
22884
22885
22886
22887
22888<script type="module">
22889  class TextReadMoreWrapper extends HTMLElement {
22890    #expanded = false;
22891    #animation = null;
22892    #collapsedHeight = 0;
22893
22894    connectedCallback() {
22895      const content = this.querySelector('.text-read-more__content');
22896      const textElement = this.querySelector('.text-read-more__text');
22897      const button = this.querySelector('.text-read-more__button');
22898
22899      if (!content || !textElement || !button) return;
22900
22901      // Set initial state
22902      this.dataset.expanded = 'false';
22903
22904      // Wait for content to render - use double RAF to ensure layout is complete
22905      requestAnimationFrame(() => {
22906        requestAnimationFrame(() => {
22907          // Additional small delay to ensure fonts and styles are applied
22908          setTimeout(() => {
22909            this.#checkOverflow(content, textElement, button);
22910          }, 50);
22911          
22912          // Recheck on resize
22913          const resizeObserver = new ResizeObserver(() => {
22914            if (!this.#expanded) {
22915              this.#checkOverflow(content, textElement, button);
22916            }
22917          });
22918          resizeObserver.observe(content);
22919
22920          // Setup button click handler
22921          button.addEventListener('click', (e) => {
22922            e.preventDefault();
22923            this.#toggle(content, textElement, button);
22924          });
22925        });
22926      });
22927    }
22928
22929    #checkOverflow(content, textElement, button) {
22930      // Ensure collapsed state is applied
22931      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
22932        textElement.classList.add('text-read-more__text--collapsed');
22933      }
22934      
22935      // Get collapsed height first
22936      const collapsedHeight = content.scrollHeight;
22937      this.#collapsedHeight = collapsedHeight;
22938      
22939      // Temporarily remove line-clamp to measure full height
22940      textElement.classList.remove('text-read-more__text--collapsed');
22941      
22942      // Force reflow
22943      void content.offsetHeight;
22944      
22945      const fullHeight = content.scrollHeight;
22946      
22947      // Restore line-clamp
22948      textElement.classList.add('text-read-more__text--collapsed');
22949      
22950      // Show button if content exceeds 2 lines (with small threshold for rounding)
22951      if (fullHeight > collapsedHeight + 5) {
22952        button.removeAttribute('hidden');
22953      } else {
22954        button.setAttribute('hidden', '');
22955      }
22956    }
22957
22958    #toggle(content, textElement, button) {
22959      const startHeight = content.offsetHeight;
22960      let endHeight;
22961
22962      if (!this.#expanded) {
22963        // Expanding
22964        textElement.classList.remove('text-read-more__text--collapsed');
22965        endHeight = content.scrollHeight;
22966        this.#expanded = true;
22967      } else {
22968        // Collapsing
22969        endHeight = this.#collapsedHeight;
22970        this.#expanded = false;
22971      }
22972
22973      this.dataset.expanded = this.#expanded;
22974      button.setAttribute('aria-expanded', this.#expanded);
22975
22976      // Animate
22977      content.style.overflow = 'hidden';
22978      this.#animation?.cancel();
22979
22980      this.#animation = content.animate(
22981        {
22982          height: [`${startHeight}px`, `${endHeight}px`],
22983        },
22984        {
22985          duration: 300,
22986          easing: 'ease-in-out',
22987        }
22988      );
22989
22990      this.#animation.onfinish = () => {
22991        if (this.#expanded) {
22992          content.style.removeProperty('height');
22993          content.style.overflow = '';
22994        } else {
22995          textElement.classList.add('text-read-more__text--collapsed');
22996          content.style.removeProperty('height');
22997          content.style.overflow = '';
22998        }
22999      };
23000    }
23001  }
23002
23003  if (!customElements.get('text-read-more-wrapper')) {
23004    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
23005  }
23006</script>
23006
23007
23008
23009
23010
23011
23012    </div>
23013  </div>
23014</div>
23015
23016
23017
23018
23019
23020</div><div id="shopify-section-template--28213213921626__section_FMJwqj" class="shopify-section section-wrapper">
23021
23022
23023
23024<div class="section-background color-scheme-1"></div>
23025<div
23026  class="section section--page-width color-scheme-1"
23027  data-testid="ui-test-section"
23028
23029  
23030
23031  style="
23032    
23033
23034    
23035  "
23036>
23037  <div class="custom-section-background">
23038    
23039
23040
23041
23042  </div>
23043
23044  <div
23045    class="border-style custom-section-content"
23046    style="--border-width: 1px; --border-style: none; --border-color:
23047rgb(var(--color-border-rgb) / 1.0); --border-radius:
2304812px;  overflow: hidden; 
23049"
23050  >
23051    
23052
23053    <div
23054      class="
23055        spacing-style
23056        layout-panel-flex
23057        layout-panel-flex--row
23058        section-content-wrapper
23059         mobile-grid
23060      "
23061      style="
23062        --flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
23063
23064--gap: 24px;
23065
23066--horizontal-alignment: flex-start; --vertical-alignment: center;
23067--vertical-alignment-mobile: center;
23068
23069        --padding-block-start: 0px;--padding-block-end: max(20px, calc(var(--spacing-scale) * 70px));
23070      "
23071      data-testid="section-content"
23072    >
23073      
23074  
23075
23076
23077<div
23078  class="
23079    group-block
23080    group-block--height-fit
23081    group-block--width-fill
23082    border-style
23083    spacing-style
23084    size-style
23085    
23086    
23087    
23088    
23089  "
23090  style="
23091    --border-width: 1px; --border-style: none; --border-color:
23092rgb(var(--color-border-rgb) / 1.0); --border-radius:
230930px; 
23094
23095    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
23096    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
23097    
23098  "
23099  
23100  data-testid="group-block"
23101><div class="group-block__media-wrapper">
23102    
23103
23104
23105
23106    
23107  </div>
23108
23109  <div
23110    class="
23111      group-block-content
23112      
23113      layout-panel-flex
23114      layout-panel-flex--column
23115       mobile-column
23116      
23117      
23118    "
23119    
23120    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
23121
23122--gap: 12px;
23123
23124--horizontal-alignment: flex-start; --vertical-alignment: center;
23125--vertical-alignment-mobile: center;
23126"
23127  >
23128  
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
23139
23140
23141
23142
23143
23144  <a
23145    href="/collections/apres"
23146    class="
23147  image-block image-block--AUnRQV0ptdklxa2R4b__image_hover_overlay_DKdFe6 image-block--height-fit spacing-style size-style
23148  image-block--has-overlay
23149  image-block--show-overlay-mobile
23150"
23151    style="
23152  --ratio: 1.375;
23153  --primary-image-opacity: 0.65;
23154  --primary-image-brightness: 0.5;
23155  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
23156  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
23157"
23158    
23159  >
23160    <div class="image-block__container">
23161      
23162<img src="//www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Apres_Default.png?v=1766575782&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
23163  --ratio: 1.375;
23164  --border-width: 1px; --border-style: none; --border-color:
23165rgb(var(--color-border-rgb) / 1.0); --border-radius:
231660px; 
23167
23168" sizes="auto, (min-width: 750px) 100vw, 100vw">
23169
23170      
23171<img src="//www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;
23171width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Apres_Logo.png?v=1767781614&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--overlay border-style" style="
23172  --ratio: 1.375;
23173  --border-width: 1px; --border-style: none; --border-color:
23174rgb(var(--color-border-rgb) / 1.0); --border-radius:
231750px; 
23176
23177" sizes="auto, (min-width: 750px) 100vw, 100vw">
23178
23179    </div>
23180  </a>
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196  
23197    <div class=" spacing-style text-block text-block--AWG5jeUxuUW1RMExYN__text_W3P3yA custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
23198      <p>Apres</p>
23199    </div>
23200  
23201
23202
23203
23204
23205<script type="module">
23206  class TextReadMoreWrapper extends HTMLElement {
23207    #expanded = false;
23208    #animation = null;
23209    #collapsedHeight = 0;
23210
23211    connectedCallback() {
23212      const content = this.querySelector('.text-read-more__content');
23213      const textElement = this.querySelector('.text-read-more__text');
23214      const button = this.querySelector('.text-read-more__button');
23215
23216      if (!content || !textElement || !button) return;
23217
23218      // Set initial state
23219      this.dataset.expanded = 'false';
23220
23221      // Wait for content to render - use double RAF to ensure layout is complete
23222      requestAnimationFrame(() => {
23223        requestAnimationFrame(() => {
23224          // Additional small delay to ensure fonts and styles are applied
23225          setTimeout(() => {
23226            this.#checkOverflow(content, textElement, button);
23227          }, 50);
23228          
23229          // Recheck on resize
23230          const resizeObserver = new ResizeObserver(() => {
23231            if (!this.#expanded) {
23232              this.#checkOverflow(content, textElement, button);
23233            }
23234          });
23235          resizeObserver.observe(content);
23236
23237          // Setup button click handler
23238          button.addEventListener('click', (e) => {
23239            e.preventDefault();
23240            this.#toggle(content, textElement, button);
23241          });
23242        });
23243      });
23244    }
23245
23246    #checkOverflow(content, textElement, button) {
23247      // Ensure collapsed state is applied
23248      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
23249        textElement.classList.add('text-read-more__text--collapsed');
23250      }
23251      
23252      // Get collapsed height first
23253      const collapsedHeight = content.scrollHeight;
23254      this.#collapsedHeight = collapsedHeight;
23255      
23256      // Temporarily remove line-clamp to measure full height
23257      textElement.classList.remove('text-read-more__text--collapsed');
23258      
23259      // Force reflow
23260      void content.offsetHeight;
23261      
23262      const fullHeight = content.scrollHeight;
23263      
23264      // Restore line-clamp
23265      textElement.classList.add('text-read-more__text--collapsed');
23266      
23267      // Show button if content exceeds 2 lines (with small threshold for rounding)
23268      if (fullHeight > collapsedHeight + 5) {
23269        button.removeAttribute('hidden');
23270      } else {
23271        button.setAttribute('hidden', '');
23272      }
23273    }
23274
23275    #toggle(content, textElement, button) {
23276      const startHeight = content.offsetHeight;
23277      let endHeight;
23278
23279      if (!this.#expanded) {
23280        // Expanding
23281        textElement.classList.remove('text-read-more__text--collapsed');
23282        endHeight = content.scrollHeight;
23283        this.#expanded = true;
23284      } else {
23285        // Collapsing
23286        endHeight = this.#collapsedHeight;
23287        this.#expanded = false;
23288      }
23289
23290      this.dataset.expanded = this.#expanded;
23291      button.setAttribute('aria-expanded', this.#expanded);
23292
23293      // Animate
23294      content.style.overflow = 'hidden';
23295      this.#animation?.cancel();
23296
23297      this.#animation = content.animate(
23298        {
23299          height: [`${startHeight}px`, `${endHeight}px`],
23300        },
23301        {
23302          duration: 300,
23303          easing: 'ease-in-out',
23304        }
23305      );
23306
23307      this.#animation.onfinish = () => {
23308        if (this.#expanded) {
23309          content.style.removeProperty('height');
23310          content.style.overflow = '';
23311        } else {
23312          textElement.classList.add('text-read-more__text--collapsed');
23313          content.style.removeProperty('height');
23314          content.style.overflow = '';
23315        }
23316      };
23317    }
23318  }
23319
23320  if (!customElements.get('text-read-more-wrapper')) {
23321    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
23322  }
23323</script>
23323
23324
23325
23326
23327
23328</div>
23329</div>
23330
23331
23332
23333<script type="module">
23334  (function() {
23335    // Only run if Intersection Observer is supported
23336    if (typeof IntersectionObserver === 'undefined') {
23337      // Fallback: show all animated content immediately
23338      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23339        el.classList.add('group-block-content--in-view');
23340      });
23341      return;
23342    }
23343
23344    // Respect reduced motion preference
23345    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
23346    if (prefersReducedMotion) {
23347      // Show all animated content immediately without animation
23348      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23349        el.style.opacity = '1';
23350        el.style.transform = 'none';
23351      });
23352      return;
23353    }
23354
23355    // Set up Intersection Observer for scroll-triggered animations
23356    const observerOptions = {
23357      root: null,
23358      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
23359      threshold: 0.1 // Trigger when 10% of element is visible
23360    };
23361
23362    const observer = new IntersectionObserver((entries) => {
23363      entries.forEach(entry => {
23364        if (entry.isIntersecting) {
23365          const contentElement = entry.target;
23366          // Add the in-view class to trigger animation
23367          contentElement.classList.add('group-block-content--in-view');
23368          // Unobserve after animation is triggered (only animate once)
23369          observer.unobserve(contentElement);
23370        }
23371      });
23372    }, observerOptions);
23373
23374    // Observe all group blocks with animations
23375    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23376      observer.observe(el);
23377    });
23378  })();
23379</script>
23379
23380
23381
23382
23383
23384
23385
23386<div
23387  class="
23388    group-block
23389    group-block--height-fit
23390    group-block--width-fill
23391    border-style
23392    spacing-style
23393    size-style
23394    
23395    
23396    
23397    
23398  "
23399  style="
23400    --border-width: 1px; --border-style: none; --border-color:
23401rgb(var(--color-border-rgb) / 1.0); --border-radius:
234020px; 
23403
23404    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
23405    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
23406    
23407  "
23408  
23409  data-testid="group-block"
23410><div class="group-block__media-wrapper">
23411    
23412
23413
23414
23415    
23416  </div>
23417
23418  <div
23419    class="
23420      group-block-content
23421      
23422      layout-panel-flex
23423      layout-panel-flex--column
23424       mobile-column
23425      
23426      
23427    "
23428    
23429    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
23430
23431--gap: 12px;
23432
23433--horizontal-alignment: flex-start; --vertical-alignment: center;
23434--vertical-alignment-mobile: center;
23435"
23436  >
23437  
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453  <a
23454    href="/collections/dnd-dc"
23455    class="
23456  image-block image-block--ATFpGQjRCUXcrbzFLK__image_hover_overlay_LWQ6wV image-block--height-fit spacing-style size-style
23457  image-block--has-overlay
23458  image-block--show-overlay-mobile
23459"
23460    style="
23461  --ratio: 1.375;
23462  --primary-image-opacity: 0.65;
23463  --primary-image-brightness: 0.5;
23464  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
23465  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
23466"
23467    
23468  >
23469    <div class="image-block__container">
23470      
23471<img src="//www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website.jpg?v=1774527890&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
23472  --ratio: 1.375;
23473  --border-width: 1px; --border-style: none; --border-color:
23474rgb(var(--color-border-rgb) / 1.0); --border-radius:
234750px; 
23476
23477" sizes="auto, (min-width: 750px) 100vw, 100vw">
23478
23479      
23480<img src="//www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/DND_1.png?v=1767781614&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--overlay border-style" style="
23481  --ratio: 1.375;
23482  --border-width: 1px; --border-style: none; --border-color:
23483rgb(var(--color-border-rgb) / 1.0); --border-radius:
234840px; 
23485
23486" sizes="auto, (min-width: 750px) 100vw, 100vw">
23487
23488    </div>
23489  </a>
23490
23491
23492
23493
23494
23495
23496
23497
23498
23499
23500
23501
23502
23503
23504
23505  
23506    <div class=" spacing-style text-block text-block--ATk5NRlBObm81aWRpb__text_JeFr6z custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
23507      <p>DND</p>
23508    </div>
23509  
23510
23511
23512
23513
23514<script type="module">
23515  class TextReadMoreWrapper extends HTMLElement {
23516    #expanded = false;
23517    #animation = null;
23518    #collapsedHeight = 0;
23519
23520    connectedCallback() {
23521      const content = this.querySelector('.text-read-more__content');
23522      const textElement = this.querySelector('.text-read-more__text');
23523      const button = this.querySelector('.text-read-more__button');
23524
23525      if (!content || !textElement || !button) return;
23526
23527      // Set initial state
23528      this.dataset.expanded = 'false';
23529
23530      // Wait for content to render - use double RAF to ensure layout is complete
23531      requestAnimationFrame(() => {
23532        requestAnimationFrame(() => {
23533          // Additional small delay to ensure fonts and styles are applied
23534          setTimeout(() => {
23535            this.#checkOverflow(content, textElement, button);
23536          }, 50);
23537          
23538          // Recheck on resize
23539          const resizeObserver = new ResizeObserver(() => {
23540            if (!this.#expanded) {
23541              this.#checkOverflow(content, textElement, button);
23542            }
23543          });
23544          resizeObserver.observe(content);
23545
23546          // Setup button click handler
23547          button.addEventListener('click', (e) => {
23548            e.preventDefault();
23549            this.#toggle(content, textElement, button);
23550          });
23551        });
23552      });
23553    }
23554
23555    #checkOverflow(content, textElement, button) {
23556      // Ensure collapsed state is applied
23557      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
23558        textElement.classList.add('text-read-more__text--collapsed');
23559      }
23560      
23561      // Get collapsed height first
23562      const collapsedHeight = content.scrollHeight;
23563      this.#collapsedHeight = collapsedHeight;
23564      
23565      // Temporarily remove line-clamp to measure full height
23566      textElement.classList.remove('text-read-more__text--collapsed');
23567      
23568      // Force reflow
23569      void content.offsetHeight;
23570      
23571      const fullHeight = content.scrollHeight;
23572      
23573      // Restore line-clamp
23574      textElement.classList.add('text-read-more__text--collapsed');
23575      
23576      // Show button if content exceeds 2 lines (with small threshold for rounding)
23577      if (fullHeight > collapsedHeight + 5) {
23578        button.removeAttribute('hidden');
23579      } else {
23580        button.setAttribute('hidden', '');
23581      }
23582    }
23583
23584    #toggle(content, textElement, button) {
23585      const startHeight = content.offsetHeight;
23586      let endHeight;
23587
23588      if (!this.#expanded) {
23589        // Expanding
23590        textElement.classList.remove('text-read-more__text--collapsed');
23591        endHeight = content.scrollHeight;
23592        this.#expanded = true;
23593      } else {
23594        // Collapsing
23595        endHeight = this.#collapsedHeight;
23596        this.#expanded = false;
23597      }
23598
23599      this.dataset.expanded = this.#expanded;
23600      button.setAttribute('aria-expanded', this.#expanded);
23601
23602      // Animate
23603      content.style.overflow = 'hidden';
23604      this.#animation?.cancel();
23605
23606      this.#animation = content.animate(
23607        {
23608          height: [`${startHeight}px`, `${endHeight}px`],
23609        },
23610        {
23611          duration: 300,
23612          easing: 'ease-in-out',
23613        }
23614      );
23615
23616      this.#animation.onfinish = () => {
23617        if (this.#expanded) {
23618          content.style.removeProperty('height');
23619          content.style.overflow = '';
23620        } else {
23621          textElement.classList.add('text-read-more__text--collapsed');
23622          content.style.removeProperty('height');
23623          content.style.overflow = '';
23624        }
23625      };
23626    }
23627  }
23628
23629  if (!customElements.get('text-read-more-wrapper')) {
23630    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
23631  }
23632</script>
23632
23633
23634
23635
23636
23637</div>
23638</div>
23639
23640
23641
23642<script type="module">
23643  (function() {
23644    // Only run if Intersection Observer is supported
23645    if (typeof IntersectionObserver === 'undefined') {
23646      // Fallback: show all animated content immediately
23647      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23648        el.classList.add('group-block-content--in-view');
23649      });
23650      return;
23651    }
23652
23653    // Respect reduced motion preference
23654    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
23655    if (prefersReducedMotion) {
23656      // Show all animated content immediately without animation
23657      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23658        el.style.opacity = '1';
23659        el.style.transform = 'none';
23660      });
23661      return;
23662    }
23663
23664    // Set up Intersection Observer for scroll-triggered animations
23665    const observerOptions = {
23666      root: null,
23667      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
23668      threshold: 0.1 // Trigger when 10% of element is visible
23669    };
23670
23671    const observer = new IntersectionObserver((entries) => {
23672      entries.forEach(entry => {
23673        if (entry.isIntersecting) {
23674          const contentElement = entry.target;
23675          // Add the in-view class to trigger animation
23676          contentElement.classList.add('group-block-content--in-view');
23677          // Unobserve after animation is triggered (only animate once)
23678          observer.unobserve(contentElement);
23679        }
23680      });
23681    }, observerOptions);
23682
23683    // Observe all group blocks with animations
23684    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23685      observer.observe(el);
23686    });
23687  })();
23688</script>
23688
23689
23690
23691
23692
23693
23694
23695<div
23696  class="
23697    group-block
23698    group-block--height-fit
23699    group-block--width-fill
23700    border-style
23701    spacing-style
23702    size-style
23703    
23704    
23705    
23706    
23707  "
23708  style="
23709    --border-width: 1px; --border-style: none; --border-color:
23710rgb(var(--color-border-rgb) / 1.0); --border-radius:
237110px; 
23712
23713    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
23714    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
23715    
23716  "
23717  
23718  data-testid="group-block"
23719><div class="group-block__media-wrapper">
23720    
23721
23722
23723
23724    
23725  </div>
23726
23727  <div
23728    class="
23729      group-block-content
23730      
23731      layout-panel-flex
23732      layout-panel-flex--column
23733       mobile-column
23734      
23735      
23736    "
23737    
23738    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
23739
23740--gap: 12px;
23741
23742--horizontal-alignment: flex-start; --vertical-alignment: center;
23743--vertical-alignment-mobile: center;
23744"
23745  >
23746  
23747
23748
23749
23750
23751
23752
23753
23754
23755
23756
23757
23758
23759
23760
23761
23762  <a
23763    href="/collections/nola"
23764    class="
23765  image-block image-block--ASlJIZlZtRTlhVUZ0T__image_hover_overlay_yj6yNr image-block--height-fit spacing-style size-style
23766  
23767  image-block--show-overlay-mobile
23768"
23769    style="
23770  --ratio: 1.375;
23771  --primary-image-opacity: 0.65;
23772  --primary-image-brightness: 0.5;
23773  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
23774  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
23775"
23776    
23777  >
23778    <div class="image-block__container">
23779      
23780<img src="//www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/brand_image_for_shopify_website_1.jpg?v=1774528163&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
23781  --ratio: 1.375;
23782  --border-width: 1px; --border-style: none; --border-color:
23783rgb(var(--color-border-rgb) / 1.0); --border-radius:
237840px; 
23785
23786" sizes="auto, (min-width: 750px) 100vw, 100vw">
23787
23788      
23789
23790    </div>
23791  </a>
23792
23793
23794
23795
23796
23797
23798
23799
23800
23801
23802
23803
23804
23805
23806
23807  
23808    <div class=" spacing-style text-block text-block--AcWJYYm44SHlYSURKU__text_HMbHaV custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
23809      <p>NOLA</p>
23810    </div>
23811  
23812
23813
23814
23815
23816<script type="module">
23817  class TextReadMoreWrapper extends HTMLElement {
23818    #expanded = false;
23819    #animation = null;
23820    #collapsedHeight = 0;
23821
23822    connectedCallback() {
23823      const content = this.querySelector('.text-read-more__content');
23824      const textElement = this.querySelector('.text-read-more__text');
23825      const button = this.querySelector('.text-read-more__button');
23826
23827      if (!content || !textElement || !button) return;
23828
23829      // Set initial state
23830      this.dataset.expanded = 'false';
23831
23832      // Wait for content to render - use double RAF to ensure layout is complete
23833      requestAnimationFrame(() => {
23834        requestAnimationFrame(() => {
23835          // Additional small delay to ensure fonts and styles are applied
23836          setTimeout(() => {
23837            this.#checkOverflow(content, textElement, button);
23838          }, 50);
23839          
23840          // Recheck on resize
23841          const resizeObserver = new ResizeObserver(() => {
23842            if (!this.#expanded) {
23843              this.#checkOverflow(content, textElement, button);
23844            }
23845          });
23846          resizeObserver.observe(content);
23847
23848          // Setup button click handler
23849          button.addEventListener('click', (e) => {
23850            e.preventDefault();
23851            this.#toggle(content, textElement, button);
23852          });
23853        });
23854      });
23855    }
23856
23857    #checkOverflow(content, textElement, button) {
23858      // Ensure collapsed state is applied
23859      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
23860        textElement.classList.add('text-read-more__text--collapsed');
23861      }
23862      
23863      // Get collapsed height first
23864      const collapsedHeight = content.scrollHeight;
23865      this.#collapsedHeight = collapsedHeight;
23866      
23867      // Temporarily remove line-clamp to measure full height
23868      textElement.classList.remove('text-read-more__text--collapsed');
23869      
23870      // Force reflow
23871      void content.offsetHeight;
23872      
23873      const fullHeight = content.scrollHeight;
23874      
23875      // Restore line-clamp
23876      textElement.classList.add('text-read-more__text--collapsed');
23877      
23878      // Show button if content exceeds 2 lines (with small threshold for rounding)
23879      if (fullHeight > collapsedHeight + 5) {
23880        button.removeAttribute('hidden');
23881      } else {
23882        button.setAttribute('hidden', '');
23883      }
23884    }
23885
23886    #toggle(content, textElement, button) {
23887      const startHeight = content.offsetHeight;
23888      let endHeight;
23889
23890      if (!this.#expanded) {
23891        // Expanding
23892        textElement.classList.remove('text-read-more__text--collapsed');
23893        endHeight = content.scrollHeight;
23894        this.#expanded = true;
23895      } else {
23896        // Collapsing
23897        endHeight = this.#collapsedHeight;
23898        this.#expanded = false;
23899      }
23900
23901      this.dataset.expanded = this.#expanded;
23902      button.setAttribute('aria-expanded', this.#expanded);
23903
23904      // Animate
23905      content.style.overflow = 'hidden';
23906      this.#animation?.cancel();
23907
23908      this.#animation = content.animate(
23909        {
23910          height: [`${startHeight}px`, `${endHeight}px`],
23911        },
23912        {
23913          duration: 300,
23914          easing: 'ease-in-out',
23915        }
23916      );
23917
23918      this.#animation.onfinish = () => {
23919        if (this.#expanded) {
23920          content.style.removeProperty('height');
23921          content.style.overflow = '';
23922        } else {
23923          textElement.classList.add('text-read-more__text--collapsed');
23924          content.style.removeProperty('height');
23925          content.style.overflow = '';
23926        }
23927      };
23928    }
23929  }
23930
23931  if (!customElements.get('text-read-more-wrapper')) {
23932    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
23933  }
23934</script>
23934
23935
23936
23937
23938
23939</div>
23940</div>
23941
23942
23943
23944<script type="module">
23945  (function() {
23946    // Only run if Intersection Observer is supported
23947    if (typeof IntersectionObserver === 'undefined') {
23948      // Fallback: show all animated content immediately
23949      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23950        el.classList.add('group-block-content--in-view');
23951      });
23952      return;
23953    }
23954
23955    // Respect reduced motion preference
23956    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
23957    if (prefersReducedMotion) {
23958      // Show all animated content immediately without animation
23959      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23960        el.style.opacity = '1';
23961        el.style.transform = 'none';
23962      });
23963      return;
23964    }
23965
23966    // Set up Intersection Observer for scroll-triggered animations
23967    const observerOptions = {
23968      root: null,
23969      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
23970      threshold: 0.1 // Trigger when 10% of element is visible
23971    };
23972
23973    const observer = new IntersectionObserver((entries) => {
23974      entries.forEach(entry => {
23975        if (entry.isIntersecting) {
23976          const contentElement = entry.target;
23977          // Add the in-view class to trigger animation
23978          contentElement.classList.add('group-block-content--in-view');
23979          // Unobserve after animation is triggered (only animate once)
23980          observer.unobserve(contentElement);
23981        }
23982      });
23983    }, observerOptions);
23984
23985    // Observe all group blocks with animations
23986    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
23987      observer.observe(el);
23988    });
23989  })();
23990</script>
23990
23991
23992
23993
23994
23995
23996
23997<div
23998  class="
23999    group-block
24000    group-block--height-fit
24001    group-block--width-fill
24002    border-style
24003    spacing-style
24004    size-style
24005    
24006    
24007    
24008    
24009  "
24010  style="
24011    --border-width: 1px; --border-style: none; --border-color:
24012rgb(var(--color-border-rgb) / 1.0); --border-radius:
240130px; 
24014
24015    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24016    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24017    
24018  "
24019  
24020  data-testid="group-block"
24021><div class="group-block__media-wrapper">
24022    
24023
24024
24025
24026    
24027  </div>
24028
24029  <div
24030    class="
24031      group-block-content
24032      
24033      layout-panel-flex
24034      layout-panel-flex--column
24035       mobile-column
24036      
24037      
24038    "
24039    
24040    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
24041
24042--gap: 12px;
24043
24044--horizontal-alignment: flex-start; --vertical-alignment: center;
24045--vertical-alignment-mobile: center;
24046"
24047  >
24048  
24049
24050
24051
24052
24053
24054
24055
24056
24057
24058
24059
24060
24061
24062
24063
24064  <a
24065    href="/collections/kiara-sky"
24066    class="
24067  image-block image-block--AY0dXUFIvQWt4ekFrZ__image_hover_overlay_eyCzrq image-block--height-fit spacing-style size-style
24068  image-block--has-overlay
24069  image-block--show-overlay-mobile
24070"
24071    style="
24072  --ratio: 1.375;
24073  --primary-image-opacity: 0.65;
24074  --primary-image-brightness: 0.5;
24075  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24076  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24077"
24078    
24079  >
24080    <div class="image-block__container">
24081      
24082<img src="//www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Kiara_Default.png?v=1766575926&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
24083  --ratio: 1.375;
24084  --border-width: 1px; --border-style: none; --border-color:
24085rgb(var(--color-border-rgb) / 1.0); --border-radius:
240860px; 
24087
24088" sizes="auto, (min-width: 750px) 100vw, 100vw">
24089
24090      
24091<img src="//www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/KiaraSky_1.png?v=1767781614&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--overlay border-style" style="
24092  --ratio: 1.375;
24093  --border-width: 1px; --border-style: none; --border-color:
24094rgb(var(--color-border-rgb) / 1.0); --border-radius:
240950px; 
24096
24097" sizes="auto, (min-width: 750px) 100vw, 100vw">
24098
24099    </div>
24100  </a>
24101
24102
24103
24104
24105
24106
24107
24108
24109
24110
24111
24112
24113
24114
24115
24116  
24117    <div class=" spacing-style text-block text-block--AUlBML2NzYlowTGNUM__text_qfrprc custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
24118      <p>Kiara Sky</p>
24119    </div>
24120  
24121
24122
24123
24124
24125<script type="module">
24126  class TextReadMoreWrapper extends HTMLElement {
24127    #expanded = false;
24128    #animation = null;
24129    #collapsedHeight = 0;
24130
24131    connectedCallback() {
24132      const content = this.querySelector('.text-read-more__content');
24133      const textElement = this.querySelector('.text-read-more__text');
24134      const button = this.querySelector('.text-read-more__button');
24135
24136      if (!content || !textElement || !button) return;
24137
24138      // Set initial state
24139      this.dataset.expanded = 'false';
24140
24141      // Wait for content to render - use double RAF to ensure layout is complete
24142      requestAnimationFrame(() => {
24143        requestAnimationFrame(() => {
24144          // Additional small delay to ensure fonts and styles are applied
24145          setTimeout(() => {
24146            this.#checkOverflow(content, textElement, button);
24147          }, 50);
24148          
24149          // Recheck on resize
24150          const resizeObserver = new ResizeObserver(() => {
24151            if (!this.#expanded) {
24152              this.#checkOverflow(content, textElement, button);
24153            }
24154          });
24155          resizeObserver.observe(content);
24156
24157          // Setup button click handler
24158          button.addEventListener('click', (e) => {
24159            e.preventDefault();
24160            this.#toggle(content, textElement, button);
24161          });
24162        });
24163      });
24164    }
24165
24166    #checkOverflow(content, textElement, button) {
24167      // Ensure collapsed state is applied
24168      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
24169        textElement.classList.add('text-read-more__text--collapsed');
24170      }
24171      
24172      // Get collapsed height first
24173      const collapsedHeight = content.scrollHeight;
24174      this.#collapsedHeight = collapsedHeight;
24175      
24176      // Temporarily remove line-clamp to measure full height
24177      textElement.classList.remove('text-read-more__text--collapsed');
24178      
24179      // Force reflow
24180      void content.offsetHeight;
24181      
24182      const fullHeight = content.scrollHeight;
24183      
24184      // Restore line-clamp
24185      textElement.classList.add('text-read-more__text--collapsed');
24186      
24187      // Show button if content exceeds 2 lines (with small threshold for rounding)
24188      if (fullHeight > collapsedHeight + 5) {
24189        button.removeAttribute('hidden');
24190      } else {
24191        button.setAttribute('hidden', '');
24192      }
24193    }
24194
24195    #toggle(content, textElement, button) {
24196      const startHeight = content.offsetHeight;
24197      let endHeight;
24198
24199      if (!this.#expanded) {
24200        // Expanding
24201        textElement.classList.remove('text-read-more__text--collapsed');
24202        endHeight = content.scrollHeight;
24203        this.#expanded = true;
24204      } else {
24205        // Collapsing
24206        endHeight = this.#collapsedHeight;
24207        this.#expanded = false;
24208      }
24209
24210      this.dataset.expanded = this.#expanded;
24211      button.setAttribute('aria-expanded', this.#expanded);
24212
24213      // Animate
24214      content.style.overflow = 'hidden';
24215      this.#animation?.cancel();
24216
24217      this.#animation = content.animate(
24218        {
24219          height: [`${startHeight}px`, `${endHeight}px`],
24220        },
24221        {
24222          duration: 300,
24223          easing: 'ease-in-out',
24224        }
24225      );
24226
24227      this.#animation.onfinish = () => {
24228        if (this.#expanded) {
24229          content.style.removeProperty('height');
24230          content.style.overflow = '';
24231        } else {
24232          textElement.classList.add('text-read-more__text--collapsed');
24233          content.style.removeProperty('height');
24234          content.style.overflow = '';
24235        }
24236      };
24237    }
24238  }
24239
24240  if (!customElements.get('text-read-more-wrapper')) {
24241    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
24242  }
24243</script>
24243
24244
24245
24246
24247
24248</div>
24249</div>
24250
24251
24252
24253<script type="module">
24254  (function() {
24255    // Only run if Intersection Observer is supported
24256    if (typeof IntersectionObserver === 'undefined') {
24257      // Fallback: show all animated content immediately
24258      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24259        el.classList.add('group-block-content--in-view');
24260      });
24261      return;
24262    }
24263
24264    // Respect reduced motion preference
24265    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
24266    if (prefersReducedMotion) {
24267      // Show all animated content immediately without animation
24268      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24269        el.style.opacity = '1';
24270        el.style.transform = 'none';
24271      });
24272      return;
24273    }
24274
24275    // Set up Intersection Observer for scroll-triggered animations
24276    const observerOptions = {
24277      root: null,
24278      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
24279      threshold: 0.1 // Trigger when 10% of element is visible
24280    };
24281
24282    const observer = new IntersectionObserver((entries) => {
24283      entries.forEach(entry => {
24284        if (entry.isIntersecting) {
24285          const contentElement = entry.target;
24286          // Add the in-view class to trigger animation
24287          contentElement.classList.add('group-block-content--in-view');
24288          // Unobserve after animation is triggered (only animate once)
24289          observer.unobserve(contentElement);
24290        }
24291      });
24292    }, observerOptions);
24293
24294    // Observe all group blocks with animations
24295    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24296      observer.observe(el);
24297    });
24298  })();
24299</script>
24299
24300
24301
24302
24303
24304
24305
24306<div
24307  class="
24308    group-block
24309    group-block--height-fit
24310    group-block--width-fill
24311    border-style
24312    spacing-style
24313    size-style
24314    
24315    
24316    
24317    
24318  "
24319  style="
24320    --border-width: 1px; --border-style: none; --border-color:
24321rgb(var(--color-border-rgb) / 1.0); --border-radius:
243220px; 
24323
24324    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24325    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24326    
24327  "
24328  
24329  data-testid="group-block"
24330><div class="group-block__media-wrapper">
24331    
24332
24333
24334
24335    
24336  </div>
24337
24338  <div
24339    class="
24340      group-block-content
24341      
24342      layout-panel-flex
24343      layout-panel-flex--column
24344       mobile-column
24345      
24346      
24347    "
24348    
24349    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
24350
24351--gap: 12px;
24352
24353--horizontal-alignment: flex-start; --vertical-alignment: center;
24354--vertical-alignment-mobile: center;
24355"
24356  >
24357  
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
24368
24369
24370
24371
24372
24373  <a
24374    href="/collections/vina"
24375    class="
24376  image-block image-block--AQ0JCT05QQVNiNGNZb__image_hover_overlay_eRT8i4 image-block--height-fit spacing-style size-style
24377  image-block--has-overlay
24378  image-block--show-overlay-mobile
24379"
24380    style="
24381  --ratio: 1.375;
24382  --primary-image-opacity: 0.65;
24383  --primary-image-brightness: 0.5;
24384  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24385  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24386"
24387    
24388  >
24389    <div class="image-block__container">
24390      
24391<img src="//www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/VINA_Default.png?v=1766575935&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
24392  --ratio: 1.375;
24393  --border-width: 1px; --border-style: none; --border-color:
24394rgb(var(--color-border-rgb) / 1.0); --border-radius:
243950px; 
24396
24397" sizes="auto, (min-width: 750px) 100vw, 100vw">
24398
24399      
24400<img src="//www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Vina_1.png?v=1767781614&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--overlay border-style" style="
24401  --ratio: 1.375;
24402  --border-width: 1px; --border-style: none; --border-color:
24403rgb(var(--color-border-rgb) / 1.0); --border-radius:
244040px; 
24405
24406" sizes="auto, (min-width: 750px) 100vw, 100vw">
24407
24408    </div>
24409  </a>
24410
24411
24412
24413
24414
24415
24416
24417
24418
24419
24420
24421
24422
24423
24424
24425  
24426    <div class=" spacing-style text-block text-block--AU3Y3cVJvNS8xM1lRT__text_wtBNrW custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
24427      <p>VINA</p>
24428    </div>
24429  
24430
24431
24432
24433
24434<script type="module">
24435  class TextReadMoreWrapper extends HTMLElement {
24436    #expanded = false;
24437    #animation = null;
24438    #collapsedHeight = 0;
24439
24440    connectedCallback() {
24441      const content = this.querySelector('.text-read-more__content');
24442      const textElement = this.querySelector('.text-read-more__text');
24443      const button = this.querySelector('.text-read-more__button');
24444
24445      if (!content || !textElement || !button) return;
24446
24447      // Set initial state
24448      this.dataset.expanded = 'false';
24449
24450      // Wait for content to render - use double RAF to ensure layout is complete
24451      requestAnimationFrame(() => {
24452        requestAnimationFrame(() => {
24453          // Additional small delay to ensure fonts and styles are applied
24454          setTimeout(() => {
24455            this.#checkOverflow(content, textElement, button);
24456          }, 50);
24457          
24458          // Recheck on resize
24459          const resizeObserver = new ResizeObserver(() => {
24460            if (!this.#expanded) {
24461              this.#checkOverflow(content, textElement, button);
24462            }
24463          });
24464          resizeObserver.observe(content);
24465
24466          // Setup button click handler
24467          button.addEventListener('click', (e) => {
24468            e.preventDefault();
24469            this.#toggle(content, textElement, button);
24470          });
24471        });
24472      });
24473    }
24474
24475    #checkOverflow(content, textElement, button) {
24476      // Ensure collapsed state is applied
24477      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
24478        textElement.classList.add('text-read-more__text--collapsed');
24479      }
24480      
24481      // Get collapsed height first
24482      const collapsedHeight = content.scrollHeight;
24483      this.#collapsedHeight = collapsedHeight;
24484      
24485      // Temporarily remove line-clamp to measure full height
24486      textElement.classList.remove('text-read-more__text--collapsed');
24487      
24488      // Force reflow
24489      void content.offsetHeight;
24490      
24491      const fullHeight = content.scrollHeight;
24492      
24493      // Restore line-clamp
24494      textElement.classList.add('text-read-more__text--collapsed');
24495      
24496      // Show button if content exceeds 2 lines (with small threshold for rounding)
24497      if (fullHeight > collapsedHeight + 5) {
24498        button.removeAttribute('hidden');
24499      } else {
24500        button.setAttribute('hidden', '');
24501      }
24502    }
24503
24504    #toggle(content, textElement, button) {
24505      const startHeight = content.offsetHeight;
24506      let endHeight;
24507
24508      if (!this.#expanded) {
24509        // Expanding
24510        textElement.classList.remove('text-read-more__text--collapsed');
24511        endHeight = content.scrollHeight;
24512        this.#expanded = true;
24513      } else {
24514        // Collapsing
24515        endHeight = this.#collapsedHeight;
24516        this.#expanded = false;
24517      }
24518
24519      this.dataset.expanded = this.#expanded;
24520      button.setAttribute('aria-expanded', this.#expanded);
24521
24522      // Animate
24523      content.style.overflow = 'hidden';
24524      this.#animation?.cancel();
24525
24526      this.#animation = content.animate(
24527        {
24528          height: [`${startHeight}px`, `${endHeight}px`],
24529        },
24530        {
24531          duration: 300,
24532          easing: 'ease-in-out',
24533        }
24534      );
24535
24536      this.#animation.onfinish = () => {
24537        if (this.#expanded) {
24538          content.style.removeProperty('height');
24539          content.style.overflow = '';
24540        } else {
24541          textElement.classList.add('text-read-more__text--collapsed');
24542          content.style.removeProperty('height');
24543          content.style.overflow = '';
24544        }
24545      };
24546    }
24547  }
24548
24549  if (!customElements.get('text-read-more-wrapper')) {
24550    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
24551  }
24552</script>
24552
24553
24554
24555
24556
24557</div>
24558</div>
24559
24560
24561
24562<script type="module">
24563  (function() {
24564    // Only run if Intersection Observer is supported
24565    if (typeof IntersectionObserver === 'undefined') {
24566      // Fallback: show all animated content immediately
24567      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24568        el.classList.add('group-block-content--in-view');
24569      });
24570      return;
24571    }
24572
24573    // Respect reduced motion preference
24574    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
24575    if (prefersReducedMotion) {
24576      // Show all animated content immediately without animation
24577      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24578        el.style.opacity = '1';
24579        el.style.transform = 'none';
24580      });
24581      return;
24582    }
24583
24584    // Set up Intersection Observer for scroll-triggered animations
24585    const observerOptions = {
24586      root: null,
24587      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
24588      threshold: 0.1 // Trigger when 10% of element is visible
24589    };
24590
24591    const observer = new IntersectionObserver((entries) => {
24592      entries.forEach(entry => {
24593        if (entry.isIntersecting) {
24594          const contentElement = entry.target;
24595          // Add the in-view class to trigger animation
24596          contentElement.classList.add('group-block-content--in-view');
24597          // Unobserve after animation is triggered (only animate once)
24598          observer.unobserve(contentElement);
24599        }
24600      });
24601    }, observerOptions);
24602
24603    // Observe all group blocks with animations
24604    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24605      observer.observe(el);
24606    });
24607  })();
24608</script>
24608
24609
24610
24611
24612
24613
24614
24615<div
24616  class="
24617    group-block
24618    group-block--height-fit
24619    group-block--width-fill
24620    border-style
24621    spacing-style
24622    size-style
24623    
24624    
24625    
24626    
24627  "
24628  style="
24629    --border-width: 1px; --border-style: none; --border-color:
24630rgb(var(--color-border-rgb) / 1.0); --border-radius:
246310px; 
24632
24633    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24634    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24635    
24636  "
24637  
24638  data-testid="group-block"
24639><div class="group-block__media-wrapper">
24640    
24641
24642
24643
24644    
24645  </div>
24646
24647  <div
24648    class="
24649      group-block-content
24650      
24651      layout-panel-flex
24652      layout-panel-flex--column
24653       mobile-column
24654      
24655      
24656    "
24657    
24658    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
24659
24660--gap: 12px;
24661
24662--horizontal-alignment: flex-start; --vertical-alignment: center;
24663--vertical-alignment-mobile: center;
24664"
24665  >
24666  
24667
24668
24669
24670
24671
24672
24673
24674
24675
24676
24677
24678
24679
24680
24681
24682  <a
24683    href="/collections/cuccio"
24684    class="
24685  image-block image-block--AbksyRXpTT3kwMjlzU__image_hover_overlay_rmw9UD image-block--height-fit spacing-style size-style
24686  image-block--has-overlay
24687  image-block--show-overlay-mobile
24688"
24689    style="
24690  --ratio: 1.375;
24691  --primary-image-opacity: 0.65;
24692  --primary-image-brightness: 0.5;
24693  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24694  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24695"
24696    
24697  >
24698    <div class="image-block__container">
24699      
24700<img src="//www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_Default.png?v=1766575944&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
24701  --ratio: 1.375;
24702  --border-width: 1px; --border-style: none; --border-color:
24703rgb(var(--color-border-rgb) / 1.0); --border-radius:
247040px; 
24705
24706" sizes="auto, (min-width: 750px) 100vw, 100vw">
24707
24708      
24709<img src="//www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Cuccio_1.png?v=1767781614&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--overlay border-style" style="
24710  --ratio: 1.375;
24711  --border-width: 1px; --border-style: none; --border-color:
24712rgb(var(--color-border-rgb) / 1.0); --border-radius:
247130px; 
24714
24715" sizes="auto, (min-width: 750px) 100vw, 100vw">
24716
24717    </div>
24718  </a>
24719
24720
24721
24722
24723
24724
24725
24726
24727
24728
24729
24730
24731
24732
24733
24734  
24735    <div class=" spacing-style text-block text-block--AcldmTENzVjNhRU96T__text_BQPFnU custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
24736      <p>Cuccio</p>
24737    </div>
24738  
24739
24740
24741
24742
24743<script type="module">
24744  class TextReadMoreWrapper extends HTMLElement {
24745    #expanded = false;
24746    #animation = null;
24747    #collapsedHeight = 0;
24748
24749    connectedCallback() {
24750      const content = this.querySelector('.text-read-more__content');
24751      const textElement = this.querySelector('.text-read-more__text');
24752      const button = this.querySelector('.text-read-more__button');
24753
24754      if (!content || !textElement || !button) return;
24755
24756      // Set initial state
24757      this.dataset.expanded = 'false';
24758
24759      // Wait for content to render - use double RAF to ensure layout is complete
24760      requestAnimationFrame(() => {
24761        requestAnimationFrame(() => {
24762          // Additional small delay to ensure fonts and styles are applied
24763          setTimeout(() => {
24764            this.#checkOverflow(content, textElement, button);
24765          }, 50);
24766          
24767          // Recheck on resize
24768          const resizeObserver = new ResizeObserver(() => {
24769            if (!this.#expanded) {
24770              this.#checkOverflow(content, textElement, button);
24771            }
24772          });
24773          resizeObserver.observe(content);
24774
24775          // Setup button click handler
24776          button.addEventListener('click', (e) => {
24777            e.preventDefault();
24778            this.#toggle(content, textElement, button);
24779          });
24780        });
24781      });
24782    }
24783
24784    #checkOverflow(content, textElement, button) {
24785      // Ensure collapsed state is applied
24786      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
24787        textElement.classList.add('text-read-more__text--collapsed');
24788      }
24789      
24790      // Get collapsed height first
24791      const collapsedHeight = content.scrollHeight;
24792      this.#collapsedHeight = collapsedHeight;
24793      
24794      // Temporarily remove line-clamp to measure full height
24795      textElement.classList.remove('text-read-more__text--collapsed');
24796      
24797      // Force reflow
24798      void content.offsetHeight;
24799      
24800      const fullHeight = content.scrollHeight;
24801      
24802      // Restore line-clamp
24803      textElement.classList.add('text-read-more__text--collapsed');
24804      
24805      // Show button if content exceeds 2 lines (with small threshold for rounding)
24806      if (fullHeight > collapsedHeight + 5) {
24807        button.removeAttribute('hidden');
24808      } else {
24809        button.setAttribute('hidden', '');
24810      }
24811    }
24812
24813    #toggle(content, textElement, button) {
24814      const startHeight = content.offsetHeight;
24815      let endHeight;
24816
24817      if (!this.#expanded) {
24818        // Expanding
24819        textElement.classList.remove('text-read-more__text--collapsed');
24820        endHeight = content.scrollHeight;
24821        this.#expanded = true;
24822      } else {
24823        // Collapsing
24824        endHeight = this.#collapsedHeight;
24825        this.#expanded = false;
24826      }
24827
24828      this.dataset.expanded = this.#expanded;
24829      button.setAttribute('aria-expanded', this.#expanded);
24830
24831      // Animate
24832      content.style.overflow = 'hidden';
24833      this.#animation?.cancel();
24834
24835      this.#animation = content.animate(
24836        {
24837          height: [`${startHeight}px`, `${endHeight}px`],
24838        },
24839        {
24840          duration: 300,
24841          easing: 'ease-in-out',
24842        }
24843      );
24844
24845      this.#animation.onfinish = () => {
24846        if (this.#expanded) {
24847          content.style.removeProperty('height');
24848          content.style.overflow = '';
24849        } else {
24850          textElement.classList.add('text-read-more__text--collapsed');
24851          content.style.removeProperty('height');
24852          content.style.overflow = '';
24853        }
24854      };
24855    }
24856  }
24857
24858  if (!customElements.get('text-read-more-wrapper')) {
24859    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
24860  }
24861</script>
24861
24862
24863
24864
24865
24866</div>
24867</div>
24868
24869
24870
24871<script type="module">
24872  (function() {
24873    // Only run if Intersection Observer is supported
24874    if (typeof IntersectionObserver === 'undefined') {
24875      // Fallback: show all animated content immediately
24876      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24877        el.classList.add('group-block-content--in-view');
24878      });
24879      return;
24880    }
24881
24882    // Respect reduced motion preference
24883    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
24884    if (prefersReducedMotion) {
24885      // Show all animated content immediately without animation
24886      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24887        el.style.opacity = '1';
24888        el.style.transform = 'none';
24889      });
24890      return;
24891    }
24892
24893    // Set up Intersection Observer for scroll-triggered animations
24894    const observerOptions = {
24895      root: null,
24896      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
24897      threshold: 0.1 // Trigger when 10% of element is visible
24898    };
24899
24900    const observer = new IntersectionObserver((entries) => {
24901      entries.forEach(entry => {
24902        if (entry.isIntersecting) {
24903          const contentElement = entry.target;
24904          // Add the in-view class to trigger animation
24905          contentElement.classList.add('group-block-content--in-view');
24906          // Unobserve after animation is triggered (only animate once)
24907          observer.unobserve(contentElement);
24908        }
24909      });
24910    }, observerOptions);
24911
24912    // Observe all group blocks with animations
24913    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
24914      observer.observe(el);
24915    });
24916  })();
24917</script>
24917
24918
24919
24920
24921
24922
24923
24924<div
24925  class="
24926    group-block
24927    group-block--height-fit
24928    group-block--width-fill
24929    border-style
24930    spacing-style
24931    size-style
24932    
24933    
24934    
24935    
24936  "
24937  style="
24938    --border-width: 1px; --border-style: none; --border-color:
24939rgb(var(--color-border-rgb) / 1.0); --border-radius:
249400px; 
24941
24942    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
24943    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
24944    
24945  "
24946  
24947  data-testid="group-block"
24948><div class="group-block__media-wrapper">
24949    
24950
24951
24952
24953    
24954  </div>
24955
24956  <div
24957    class="
24958      group-block-content
24959      
24960      layout-panel-flex
24961      layout-panel-flex--column
24962       mobile-column
24963      
24964      
24965    "
24966    
24967    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
24968
24969--gap: 12px;
24970
24971--horizontal-alignment: flex-start; --vertical-alignment: center;
24972--vertical-alignment-mobile: center;
24973"
24974  >
24975  
24976
24977
24978
24979
24980
24981
24982
24983
24984
24985
24986
24987
24988
24989
24990
24991  <a
24992    href="/collections/cnd"
24993    class="
24994  image-block image-block--AdThsQTUray9HeUpEK__image_hover_overlay_b8yaxT image-block--height-fit spacing-style size-style
24995  image-block--has-overlay
24996  image-block--show-overlay-mobile
24997"
24998    style="
24999  --ratio: 1.375;
25000  --primary-image-opacity: 0.65;
25001  --primary-image-brightness: 0.5;
25002  --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
25003  --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
25004"
25005    
25006  >
25007    <div class="image-block__container">
25008      
25009<img src="//www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/CND_Default.png?v=1766575918&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--primary border-style" style="
25010  --ratio: 1.375;
25011  --border-width: 1px; --border-style: none; --border-color:
25012rgb(var(--color-border-rgb) / 1.0); --border-radius:
250130px; 
25014
25015" sizes="auto, (min-width: 750px) 100vw, 100vw">
25016
25017      
25018<img src="//www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/CND_1.png?v=1767781614&amp;width=3840 3840w" width="440" height="320" loading="lazy" class="image-block__image image-block__image--overlay border-style" style="
25019  --ratio: 1.375;
25020  --border-width: 1px; --border-style: none; --border-color:
25021rgb(var(--color-border-rgb) / 1.0); --border-radius:
250220px; 
25023
25024" sizes="auto, (min-width: 750px) 100vw, 100vw">
25025
25026    </div>
25027  </a>
25028
25029
25030
25031
25032
25033
25034
25035
25036
25037
25038
25039
25040
25041
25042
25043  
25044    <div class=" spacing-style text-block text-block--ANmd4V0dwSWZodUtqS__text_K9GEkE custom     custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1rem;      --font-weight: var(--font-body--weight);--font-family: var(--font-body--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
25045      <p>CND</p>
25046    </div>
25047  
25048
25049
25050
25051
25052<script type="module">
25053  class TextReadMoreWrapper extends HTMLElement {
25054    #expanded = false;
25055    #animation = null;
25056    #collapsedHeight = 0;
25057
25058    connectedCallback() {
25059      const content = this.querySelector('.text-read-more__content');
25060      const textElement = this.querySelector('.text-read-more__text');
25061      const button = this.querySelector('.text-read-more__button');
25062
25063      if (!content || !textElement || !button) return;
25064
25065      // Set initial state
25066      this.dataset.expanded = 'false';
25067
25068      // Wait for content to render - use double RAF to ensure layout is complete
25069      requestAnimationFrame(() => {
25070        requestAnimationFrame(() => {
25071          // Additional small delay to ensure fonts and styles are applied
25072          setTimeout(() => {
25073            this.#checkOverflow(content, textElement, button);
25074          }, 50);
25075          
25076          // Recheck on resize
25077          const resizeObserver = new ResizeObserver(() => {
25078            if (!this.#expanded) {
25079              this.#checkOverflow(content, textElement, button);
25080            }
25081          });
25082          resizeObserver.observe(content);
25083
25084          // Setup button click handler
25085          button.addEventListener('click', (e) => {
25086            e.preventDefault();
25087            this.#toggle(content, textElement, button);
25088          });
25089        });
25090      });
25091    }
25092
25093    #checkOverflow(content, textElement, button) {
25094      // Ensure collapsed state is applied
25095      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
25096        textElement.classList.add('text-read-more__text--collapsed');
25097      }
25098      
25099      // Get collapsed height first
25100      const collapsedHeight = content.scrollHeight;
25101      this.#collapsedHeight = collapsedHeight;
25102      
25103      // Temporarily remove line-clamp to measure full height
25104      textElement.classList.remove('text-read-more__text--collapsed');
25105      
25106      // Force reflow
25107      void content.offsetHeight;
25108      
25109      const fullHeight = content.scrollHeight;
25110      
25111      // Restore line-clamp
25112      textElement.classList.add('text-read-more__text--collapsed');
25113      
25114      // Show button if content exceeds 2 lines (with small threshold for rounding)
25115      if (fullHeight > collapsedHeight + 5) {
25116        button.removeAttribute('hidden');
25117      } else {
25118        button.setAttribute('hidden', '');
25119      }
25120    }
25121
25122    #toggle(content, textElement, button) {
25123      const startHeight = content.offsetHeight;
25124      let endHeight;
25125
25126      if (!this.#expanded) {
25127        // Expanding
25128        textElement.classList.remove('text-read-more__text--collapsed');
25129        endHeight = content.scrollHeight;
25130        this.#expanded = true;
25131      } else {
25132        // Collapsing
25133        endHeight = this.#collapsedHeight;
25134        this.#expanded = false;
25135      }
25136
25137      this.dataset.expanded = this.#expanded;
25138      button.setAttribute('aria-expanded', this.#expanded);
25139
25140      // Animate
25141      content.style.overflow = 'hidden';
25142      this.#animation?.cancel();
25143
25144      this.#animation = content.animate(
25145        {
25146          height: [`${startHeight}px`, `${endHeight}px`],
25147        },
25148        {
25149          duration: 300,
25150          easing: 'ease-in-out',
25151        }
25152      );
25153
25154      this.#animation.onfinish = () => {
25155        if (this.#expanded) {
25156          content.style.removeProperty('height');
25157          content.style.overflow = '';
25158        } else {
25159          textElement.classList.add('text-read-more__text--collapsed');
25160          content.style.removeProperty('height');
25161          content.style.overflow = '';
25162        }
25163      };
25164    }
25165  }
25166
25167  if (!customElements.get('text-read-more-wrapper')) {
25168    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
25169  }
25170</script>
25170
25171
25172
25173
25174
25175</div>
25176</div>
25177
25178
25179
25180<script type="module">
25181  (function() {
25182    // Only run if Intersection Observer is supported
25183    if (typeof IntersectionObserver === 'undefined') {
25184      // Fallback: show all animated content immediately
25185      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
25186        el.classList.add('group-block-content--in-view');
25187      });
25188      return;
25189    }
25190
25191    // Respect reduced motion preference
25192    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
25193    if (prefersReducedMotion) {
25194      // Show all animated content immediately without animation
25195      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
25196        el.style.opacity = '1';
25197        el.style.transform = 'none';
25198      });
25199      return;
25200    }
25201
25202    // Set up Intersection Observer for scroll-triggered animations
25203    const observerOptions = {
25204      root: null,
25205      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
25206      threshold: 0.1 // Trigger when 10% of element is visible
25207    };
25208
25209    const observer = new IntersectionObserver((entries) => {
25210      entries.forEach(entry => {
25211        if (entry.isIntersecting) {
25212          const contentElement = entry.target;
25213          // Add the in-view class to trigger animation
25214          contentElement.classList.add('group-block-content--in-view');
25215          // Unobserve after animation is triggered (only animate once)
25216          observer.unobserve(contentElement);
25217        }
25218      });
25219    }, observerOptions);
25220
25221    // Observe all group blocks with animations
25222    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
25223      observer.observe(el);
25224    });
25225  })();
25226</script>
25226
25227
25228
25229
25230
25231
25232    </div>
25233  </div>
25234</div>
25235
25236
25237
25238
25239
25240</div><div id="shopify-section-template--28213213921626__section_xx9rAM" class="shopify-section section-wrapper">
25241
25242
25243
25244<div class="section-background color-scheme-2"></div>
25245<div
25246  class="section section--page-width color-scheme-2"
25247  data-testid="ui-test-section"
25248
25249  
25250
25251  style="
25252    
25253
25254    
25255  "
25256>
25257  <div class="custom-section-background">
25258    
25259
25260
25261
25262  </div>
25263
25264  <div
25265    class="border-style custom-section-content"
25266    style="--border-width: 1px; --border-style: none; --border-color:
25267rgb(var(--color-border-rgb) / 1.0); --border-radius:
252680px; 
25269"
25270  >
25271    
25272
25273    <div
25274      class="
25275        spacing-style
25276        layout-panel-flex
25277        layout-panel-flex--row
25278        section-content-wrapper
25279         mobile-column
25280      "
25281      style="
25282        --flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
25283
25284--gap: 24px;
25285
25286--horizontal-alignment: flex-start; --vertical-alignment: center;
25287--vertical-alignment-mobile: center;
25288
25289        --padding-block-start: max(20px, calc(var(--spacing-scale) * 50px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 50px));
25290      "
25291      data-testid="section-content"
25292    >
25293      
25294  
25295
25296
25297<div
25298  class="
25299    group-block
25300    group-block--height-custom_px
25301    group-block--width-fill
25302    border-style
25303    spacing-style
25304    size-style
25305     group-block--text-arrow-on-hover
25306    
25307    
25308    
25309  "
25310  style="
25311    --border-width: 1px; --border-style: none; --border-color:
25312rgb(var(--color-border-rgb) / 1.0); --border-radius:
2531312px;  overflow: hidden; 
25314
25315    --padding-block-start: max(20px, calc(var(--spacing-scale) * 100px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 36px));--padding-inline-start: max(20px, calc(var(--spacing-scale) * 36px));--padding-inline-end: max(20px, calc(var(--spacing-scale) * 36px));
25316    --size-style-width: 100%;--size-style-height: 260px;--size-style-height-mobile: 240px;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
25317    
25318  "
25319  
25320  data-testid="group-block"
25321><a
25322      href="/pages/courses"
25323      class="group-block__link"
25324      
25325    ></a><div class="group-block__media-wrapper">
25326    
25327  <div
25328    class="background-image-container"
25329  >
25330    
25331
25332      <img src="//www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Nail_Courses.png?v=1766494674&amp;width=3840 3840w" width="3840" height="2152" loading="lazy" sizes="(min-width: 1440px) 1440px, 100vw" fetchpriority="auto">
25333</div>
25334
25335
25336
25337
25338    
25339  </div>
25340
25341  <div
25342    class="
25343      group-block-content
25344      
25345      layout-panel-flex
25346      layout-panel-flex--column
25347       mobile-column
25348      
25349      
25350    "
25351    
25352    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
25353
25354--gap: 12px;
25355
25356--horizontal-alignment: flex-start; --vertical-alignment: flex-end;
25357--vertical-alignment-mobile: flex-end;
25358"
25359  >
25360  
25361
25362
25363
25364
25365
25366
25367
25368
25369  
25370    <div class=" spacing-style text-block text-block--AZ1preUY3Zm1DNG9Hd__text_3VewnW h3      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
25371      <h2>Nail Courses</h2>
25372    </div>
25373  
25374
25375
25376
25377
25378<script type="module">
25379  class TextReadMoreWrapper extends HTMLElement {
25380    #expanded = false;
25381    #animation = null;
25382    #collapsedHeight = 0;
25383
25384    connectedCallback() {
25385      const content = this.querySelector('.text-read-more__content');
25386      const textElement = this.querySelector('.text-read-more__text');
25387      const button = this.querySelector('.text-read-more__button');
25388
25389      if (!content || !textElement || !button) return;
25390
25391      // Set initial state
25392      this.dataset.expanded = 'false';
25393
25394      // Wait for content to render - use double RAF to ensure layout is complete
25395      requestAnimationFrame(() => {
25396        requestAnimationFrame(() => {
25397          // Additional small delay to ensure fonts and styles are applied
25398          setTimeout(() => {
25399            this.#checkOverflow(content, textElement, button);
25400          }, 50);
25401          
25402          // Recheck on resize
25403          const resizeObserver = new ResizeObserver(() => {
25404            if (!this.#expanded) {
25405              this.#checkOverflow(content, textElement, button);
25406            }
25407          });
25408          resizeObserver.observe(content);
25409
25410          // Setup button click handler
25411          button.addEventListener('click', (e) => {
25412            e.preventDefault();
25413            this.#toggle(content, textElement, button);
25414          });
25415        });
25416      });
25417    }
25418
25419    #checkOverflow(content, textElement, button) {
25420      // Ensure collapsed state is applied
25421      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
25422        textElement.classList.add('text-read-more__text--collapsed');
25423      }
25424      
25425      // Get collapsed height first
25426      const collapsedHeight = content.scrollHeight;
25427      this.#collapsedHeight = collapsedHeight;
25428      
25429      // Temporarily remove line-clamp to measure full height
25430      textElement.classList.remove('text-read-more__text--collapsed');
25431      
25432      // Force reflow
25433      void content.offsetHeight;
25434      
25435      const fullHeight = content.scrollHeight;
25436      
25437      // Restore line-clamp
25438      textElement.classList.add('text-read-more__text--collapsed');
25439      
25440      // Show button if content exceeds 2 lines (with small threshold for rounding)
25441      if (fullHeight > collapsedHeight + 5) {
25442        button.removeAttribute('hidden');
25443      } else {
25444        button.setAttribute('hidden', '');
25445      }
25446    }
25447
25448    #toggle(content, textElement, button) {
25449      const startHeight = content.offsetHeight;
25450      let endHeight;
25451
25452      if (!this.#expanded) {
25453        // Expanding
25454        textElement.classList.remove('text-read-more__text--collapsed');
25455        endHeight = content.scrollHeight;
25456        this.#expanded = true;
25457      } else {
25458        // Collapsing
25459        endHeight = this.#collapsedHeight;
25460        this.#expanded = false;
25461      }
25462
25463      this.dataset.expanded = this.#expanded;
25464      button.setAttribute('aria-expanded', this.#expanded);
25465
25466      // Animate
25467      content.style.overflow = 'hidden';
25468      this.#animation?.cancel();
25469
25470      this.#animation = content.animate(
25471        {
25472          height: [`${startHeight}px`, `${endHeight}px`],
25473        },
25474        {
25475          duration: 300,
25476          easing: 'ease-in-out',
25477        }
25478      );
25479
25480      this.#animation.onfinish = () => {
25481        if (this.#expanded) {
25482          content.style.removeProperty('height');
25483          content.style.overflow = '';
25484        } else {
25485          textElement.classList.add('text-read-more__text--collapsed');
25486          content.style.removeProperty('height');
25487          content.style.overflow = '';
25488        }
25489      };
25490    }
25491  }
25492
25493  if (!customElements.get('text-read-more-wrapper')) {
25494    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
25495  }
25496</script>
25496
25497
25498
25499
25500
25501
25502
25503
25504
25505
25506
25507
25508
25509  
25510    <rte-formatter class=" spacing-style text-block text-block--AVXlLbk1sVC9WSlVJL__text_8PykCU rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
25511      <p>Unlock the secrets of nail artistry</p>
25512    </rte-formatter>
25513  
25514
25515
25516
25517
25518<script type="module">
25519  class TextReadMoreWrapper extends HTMLElement {
25520    #expanded = false;
25521    #animation = null;
25522    #collapsedHeight = 0;
25523
25524    connectedCallback() {
25525      const content = this.querySelector('.text-read-more__content');
25526      const textElement = this.querySelector('.text-read-more__text');
25527      const button = this.querySelector('.text-read-more__button');
25528
25529      if (!content || !textElement || !button) return;
25530
25531      // Set initial state
25532      this.dataset.expanded = 'false';
25533
25534      // Wait for content to render - use double RAF to ensure layout is complete
25535      requestAnimationFrame(() => {
25536        requestAnimationFrame(() => {
25537          // Additional small delay to ensure fonts and styles are applied
25538          setTimeout(() => {
25539            this.#checkOverflow(content, textElement, button);
25540          }, 50);
25541          
25542          // Recheck on resize
25543          const resizeObserver = new ResizeObserver(() => {
25544            if (!this.#expanded) {
25545              this.#checkOverflow(content, textElement, button);
25546            }
25547          });
25548          resizeObserver.observe(content);
25549
25550          // Setup button click handler
25551          button.addEventListener('click', (e) => {
25552            e.preventDefault();
25553            this.#toggle(content, textElement, button);
25554          });
25555        });
25556      });
25557    }
25558
25559    #checkOverflow(content, textElement, button) {
25560      // Ensure collapsed state is applied
25561      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
25562        textElement.classList.add('text-read-more__text--collapsed');
25563      }
25564      
25565      // Get collapsed height first
25566      const collapsedHeight = content.scrollHeight;
25567      this.#collapsedHeight = collapsedHeight;
25568      
25569      // Temporarily remove line-clamp to measure full height
25570      textElement.classList.remove('text-read-more__text--collapsed');
25571      
25572      // Force reflow
25573      void content.offsetHeight;
25574      
25575      const fullHeight = content.scrollHeight;
25576      
25577      // Restore line-clamp
25578      textElement.classList.add('text-read-more__text--collapsed');
25579      
25580      // Show button if content exceeds 2 lines (with small threshold for rounding)
25581      if (fullHeight > collapsedHeight + 5) {
25582        button.removeAttribute('hidden');
25583      } else {
25584        button.setAttribute('hidden', '');
25585      }
25586    }
25587
25588    #toggle(content, textElement, button) {
25589      const startHeight = content.offsetHeight;
25590      let endHeight;
25591
25592      if (!this.#expanded) {
25593        // Expanding
25594        textElement.classList.remove('text-read-more__text--collapsed');
25595        endHeight = content.scrollHeight;
25596        this.#expanded = true;
25597      } else {
25598        // Collapsing
25599        endHeight = this.#collapsedHeight;
25600        this.#expanded = false;
25601      }
25602
25603      this.dataset.expanded = this.#expanded;
25604      button.setAttribute('aria-expanded', this.#expanded);
25605
25606      // Animate
25607      content.style.overflow = 'hidden';
25608      this.#animation?.cancel();
25609
25610      this.#animation = content.animate(
25611        {
25612          height: [`${startHeight}px`, `${endHeight}px`],
25613        },
25614        {
25615          duration: 300,
25616          easing: 'ease-in-out',
25617        }
25618      );
25619
25620      this.#animation.onfinish = () => {
25621        if (this.#expanded) {
25622          content.style.removeProperty('height');
25623          content.style.overflow = '';
25624        } else {
25625          textElement.classList.add('text-read-more__text--collapsed');
25626          content.style.removeProperty('height');
25627          content.style.overflow = '';
25628        }
25629      };
25630    }
25631  }
25632
25633  if (!customElements.get('text-read-more-wrapper')) {
25634    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
25635  }
25636</script>
25636
25637
25638
25639
25640
25641</div>
25642</div>
25643
25644
25645
25646<script type="module">
25647  (function() {
25648    // Only run if Intersection Observer is supported
25649    if (typeof IntersectionObserver === 'undefined') {
25650      // Fallback: show all animated content immediately
25651      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
25652        el.classList.add('group-block-content--in-view');
25653      });
25654      return;
25655    }
25656
25657    // Respect reduced motion preference
25658    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
25659    if (prefersReducedMotion) {
25660      // Show all animated content immediately without animation
25661      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
25662        el.style.opacity = '1';
25663        el.style.transform = 'none';
25664      });
25665      return;
25666    }
25667
25668    // Set up Intersection Observer for scroll-triggered animations
25669    const observerOptions = {
25670      root: null,
25671      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
25672      threshold: 0.1 // Trigger when 10% of element is visible
25673    };
25674
25675    const observer = new IntersectionObserver((entries) => {
25676      entries.forEach(entry => {
25677        if (entry.isIntersecting) {
25678          const contentElement = entry.target;
25679          // Add the in-view class to trigger animation
25680          contentElement.classList.add('group-block-content--in-view');
25681          // Unobserve after animation is triggered (only animate once)
25682          observer.unobserve(contentElement);
25683        }
25684      });
25685    }, observerOptions);
25686
25687    // Observe all group blocks with animations
25688    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
25689      observer.observe(el);
25690    });
25691  })();
25692</script>
25692
25693
25694
25695
25696
25697
25698
25699<div
25700  class="
25701    group-block
25702    group-block--height-custom_px
25703    group-block--width-fill
25704    border-style
25705    spacing-style
25706    size-style
25707     group-block--text-arrow-on-hover
25708    
25709    
25710    
25711  "
25712  style="
25713    --border-width: 1px; --border-style: none; --border-color:
25714rgb(var(--color-border-rgb) / 1.0); --border-radius:
2571512px;  overflow: hidden; 
25716
25717    --padding-block-start: max(20px, calc(var(--spacing-scale) * 100px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 36px));--padding-inline-start: max(20px, calc(var(--spacing-scale) * 36px));--padding-inline-end: max(20px, calc(var(--spacing-scale) * 36px));
25718    --size-style-width: 100%;--size-style-height: 260px;--size-style-height-mobile: 240px;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
25719    
25720  "
25721  
25722  data-testid="group-block"
25723><a
25724      href="https://account.tnbl.co.uk"
25725      class="group-block__link"
25726      
25727        target="_blank" rel="noopener"
25728      
25729    ></a><div class="group-block__media-wrapper">
25730    
25731  <div
25732    class="background-image-container"
25733  >
25734    
25735
25736      <img src="//www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Trade_Accounts.png?v=1766494686&amp;width=3840 3840w" width="3840" height="2152" loading="lazy" sizes="(min-width: 1440px) 1440px, 100vw" fetchpriority="auto">
25737</div>
25738
25739
25740
25741
25742    
25743  </div>
25744
25745  <div
25746    class="
25747      group-block-content
25748      
25749      layout-panel-flex
25750      layout-panel-flex--column
25751       mobile-column
25752      
25753      
25754    "
25755    
25756    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
25757
25758--gap: 12px;
25759
25760--horizontal-alignment: flex-start; --vertical-alignment: flex-end;
25761--vertical-alignment-mobile: flex-end;
25762"
25763  >
25764  
25765
25766
25767
25768
25769
25770
25771
25772
25773  
25774    <div class=" spacing-style text-block text-block--AbitCSVE4alprdDdlS__text_KkFtgm h3      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
25775      <h2>Trade Account</h2>
25776    </div>
25777  
25778
25779
25780
25781
25782<script type="module">
25783  class TextReadMoreWrapper extends HTMLElement {
25784    #expanded = false;
25785    #animation = null;
25786    #collapsedHeight = 0;
25787
25788    connectedCallback() {
25789      const content = this.querySelector('.text-read-more__content');
25790      const textElement = this.querySelector('.text-read-more__text');
25791      const button = this.querySelector('.text-read-more__button');
25792
25793      if (!content || !textElement || !button) return;
25794
25795      // Set initial state
25796      this.dataset.expanded = 'false';
25797
25798      // Wait for content to render - use double RAF to ensure layout is complete
25799      requestAnimationFrame(() => {
25800        requestAnimationFrame(() => {
25801          // Additional small delay to ensure fonts and styles are applied
25802          setTimeout(() => {
25803            this.#checkOverflow(content, textElement, button);
25804          }, 50);
25805          
25806          // Recheck on resize
25807          const resizeObserver = new ResizeObserver(() => {
25808            if (!this.#expanded) {
25809              this.#checkOverflow(content, textElement, button);
25810            }
25811          });
25812          resizeObserver.observe(content);
25813
25814          // Setup button click handler
25815          button.addEventListener('click', (e) => {
25816            e.preventDefault();
25817            this.#toggle(content, textElement, button);
25818          });
25819        });
25820      });
25821    }
25822
25823    #checkOverflow(content, textElement, button) {
25824      // Ensure collapsed state is applied
25825      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
25826        textElement.classList.add('text-read-more__text--collapsed');
25827      }
25828      
25829      // Get collapsed height first
25830      const collapsedHeight = content.scrollHeight;
25831      this.#collapsedHeight = collapsedHeight;
25832      
25833      // Temporarily remove line-clamp to measure full height
25834      textElement.classList.remove('text-read-more__text--collapsed');
25835      
25836      // Force reflow
25837      void content.offsetHeight;
25838      
25839      const fullHeight = content.scrollHeight;
25840      
25841      // Restore line-clamp
25842      textElement.classList.add('text-read-more__text--collapsed');
25843      
25844      // Show button if content exceeds 2 lines (with small threshold for rounding)
25845      if (fullHeight > collapsedHeight + 5) {
25846        button.removeAttribute('hidden');
25847      } else {
25848        button.setAttribute('hidden', '');
25849      }
25850    }
25851
25852    #toggle(content, textElement, button) {
25853      const startHeight = content.offsetHeight;
25854      let endHeight;
25855
25856      if (!this.#expanded) {
25857        // Expanding
25858        textElement.classList.remove('text-read-more__text--collapsed');
25859        endHeight = content.scrollHeight;
25860        this.#expanded = true;
25861      } else {
25862        // Collapsing
25863        endHeight = this.#collapsedHeight;
25864        this.#expanded = false;
25865      }
25866
25867      this.dataset.expanded = this.#expanded;
25868      button.setAttribute('aria-expanded', this.#expanded);
25869
25870      // Animate
25871      content.style.overflow = 'hidden';
25872      this.#animation?.cancel();
25873
25874      this.#animation = content.animate(
25875        {
25876          height: [`${startHeight}px`, `${endHeight}px`],
25877        },
25878        {
25879          duration: 300,
25880          easing: 'ease-in-out',
25881        }
25882      );
25883
25884      this.#animation.onfinish = () => {
25885        if (this.#expanded) {
25886          content.style.removeProperty('height');
25887          content.style.overflow = '';
25888        } else {
25889          textElement.classList.add('text-read-more__text--collapsed');
25890          content.style.removeProperty('height');
25891          content.style.overflow = '';
25892        }
25893      };
25894    }
25895  }
25896
25897  if (!customElements.get('text-read-more-wrapper')) {
25898    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
25899  }
25900</script>
25900
25901
25902
25903
25904
25905
25906
25907
25908
25909
25910
25911
25912
25913  
25914    <rte-formatter class=" spacing-style text-block text-block--AN1pqeUFkMHp0cjFGQ__text_KtqYH9 rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
25915      <p>All accounts get our best prices. *T&C's Apply.</p>
25916    </rte-formatter>
25917  
25918
25919
25920
25921
25922<script type="module">
25923  class TextReadMoreWrapper extends HTMLElement {
25924    #expanded = false;
25925    #animation = null;
25926    #collapsedHeight = 0;
25927
25928    connectedCallback() {
25929      const content = this.querySelector('.text-read-more__content');
25930      const textElement = this.querySelector('.text-read-more__text');
25931      const button = this.querySelector('.text-read-more__button');
25932
25933      if (!content || !textElement || !button) return;
25934
25935      // Set initial state
25936      this.dataset.expanded = 'false';
25937
25938      // Wait for content to render - use double RAF to ensure layout is complete
25939      requestAnimationFrame(() => {
25940        requestAnimationFrame(() => {
25941          // Additional small delay to ensure fonts and styles are applied
25942          setTimeout(() => {
25943            this.#checkOverflow(content, textElement, button);
25944          }, 50);
25945          
25946          // Recheck on resize
25947          const resizeObserver = new ResizeObserver(() => {
25948            if (!this.#expanded) {
25949              this.#checkOverflow(content, textElement, button);
25950            }
25951          });
25952          resizeObserver.observe(content);
25953
25954          // Setup button click handler
25955          button.addEventListener('click', (e) => {
25956            e.preventDefault();
25957            this.#toggle(content, textElement, button);
25958          });
25959        });
25960      });
25961    }
25962
25963    #checkOverflow(content, textElement, button) {
25964      // Ensure collapsed state is applied
25965      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
25966        textElement.classList.add('text-read-more__text--collapsed');
25967      }
25968      
25969      // Get collapsed height first
25970      const collapsedHeight = content.scrollHeight;
25971      this.#collapsedHeight = collapsedHeight;
25972      
25973      // Temporarily remove line-clamp to measure full height
25974      textElement.classList.remove('text-read-more__text--collapsed');
25975      
25976      // Force reflow
25977      void content.offsetHeight;
25978      
25979      const fullHeight = content.scrollHeight;
25980      
25981      // Restore line-clamp
25982      textElement.classList.add('text-read-more__text--collapsed');
25983      
25984      // Show button if content exceeds 2 lines (with small threshold for rounding)
25985      if (fullHeight > collapsedHeight + 5) {
25986        button.removeAttribute('hidden');
25987      } else {
25988        button.setAttribute('hidden', '');
25989      }
25990    }
25991
25992    #toggle(content, textElement, button) {
25993      const startHeight = content.offsetHeight;
25994      let endHeight;
25995
25996      if (!this.#expanded) {
25997        // Expanding
25998        textElement.classList.remove('text-read-more__text--collapsed');
25999        endHeight = content.scrollHeight;
26000        this.#expanded = true;
26001      } else {
26002        // Collapsing
26003        endHeight = this.#collapsedHeight;
26004        this.#expanded = false;
26005      }
26006
26007      this.dataset.expanded = this.#expanded;
26008      button.setAttribute('aria-expanded', this.#expanded);
26009
26010      // Animate
26011      content.style.overflow = 'hidden';
26012      this.#animation?.cancel();
26013
26014      this.#animation = content.animate(
26015        {
26016          height: [`${startHeight}px`, `${endHeight}px`],
26017        },
26018        {
26019          duration: 300,
26020          easing: 'ease-in-out',
26021        }
26022      );
26023
26024      this.#animation.onfinish = () => {
26025        if (this.#expanded) {
26026          content.style.removeProperty('height');
26027          content.style.overflow = '';
26028        } else {
26029          textElement.classList.add('text-read-more__text--collapsed');
26030          content.style.removeProperty('height');
26031          content.style.overflow = '';
26032        }
26033      };
26034    }
26035  }
26036
26037  if (!customElements.get('text-read-more-wrapper')) {
26038    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
26039  }
26040</script>
26040
26041
26042
26043
26044
26045</div>
26046</div>
26047
26048
26049
26050<script type="module">
26051  (function() {
26052    // Only run if Intersection Observer is supported
26053    if (typeof IntersectionObserver === 'undefined') {
26054      // Fallback: show all animated content immediately
26055      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
26056        el.classList.add('group-block-content--in-view');
26057      });
26058      return;
26059    }
26060
26061    // Respect reduced motion preference
26062    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
26063    if (prefersReducedMotion) {
26064      // Show all animated content immediately without animation
26065      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
26066        el.style.opacity = '1';
26067        el.style.transform = 'none';
26068      });
26069      return;
26070    }
26071
26072    // Set up Intersection Observer for scroll-triggered animations
26073    const observerOptions = {
26074      root: null,
26075      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
26076      threshold: 0.1 // Trigger when 10% of element is visible
26077    };
26078
26079    const observer = new IntersectionObserver((entries) => {
26080      entries.forEach(entry => {
26081        if (entry.isIntersecting) {
26082          const contentElement = entry.target;
26083          // Add the in-view class to trigger animation
26084          contentElement.classList.add('group-block-content--in-view');
26085          // Unobserve after animation is triggered (only animate once)
26086          observer.unobserve(contentElement);
26087        }
26088      });
26089    }, observerOptions);
26090
26091    // Observe all group blocks with animations
26092    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
26093      observer.observe(el);
26094    });
26095  })();
26096</script>
26096
26097
26098
26099
26100
26101
26102
26103<div
26104  class="
26105    group-block
26106    group-block--height-custom_px
26107    group-block--width-fill
26108    border-style
26109    spacing-style
26110    size-style
26111     group-block--text-arrow-on-hover
26112    
26113    
26114    
26115  "
26116  style="
26117    --border-width: 1px; --border-style: none; --border-color:
26118rgb(var(--color-border-rgb) / 1.0); --border-radius:
2611912px;  overflow: hidden; 
26120
26121    --padding-block-start: max(20px, calc(var(--spacing-scale) * 100px));--padding-block-end: max(20px, calc(var(--spacing-scale) * 36px));--padding-inline-start: max(20px, calc(var(--spacing-scale) * 36px));--padding-inline-end: max(20px, calc(var(--spacing-scale) * 36px));
26122    --size-style-width: 100%;--size-style-height: 260px;--size-style-height-mobile: 240px;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
26123    
26124  "
26125  
26126  data-testid="group-block"
26127><a
26128      href="/pages/our-store"
26129      class="group-block__link"
26130      
26131    ></a><div class="group-block__media-wrapper">
26132    
26133  <div
26134    class="background-image-container"
26135  >
26136    
26137
26138      <img src="//www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=3840" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/files/Our_Store.png?v=1766494696&amp;width=3840 3840w" width="3840" height="2152" loading="lazy" sizes="(min-width: 1440px) 1440px, 100vw" fetchpriority="auto">
26139</div>
26140
26141
26142
26143
26144    
26145  </div>
26146
26147  <div
26148    class="
26149      group-block-content
26150      
26151      layout-panel-flex
26152      layout-panel-flex--column
26153       mobile-column
26154      
26155      
26156    "
26157    
26158    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
26159
26160--gap: 12px;
26161
26162--horizontal-alignment: flex-start; --vertical-alignment: flex-end;
26163--vertical-alignment-mobile: flex-end;
26164"
26165  >
26166  
26167
26168
26169
26170
26171
26172
26173
26174
26175  
26176    <div class=" spacing-style text-block text-block--AeHVzV1E2ZFdoVGdmO__text_Bacjhw h3      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
26177      <h2>Our Store</h2>
26178    </div>
26179  
26180
26181
26182
26183
26184<script type="module">
26185  class TextReadMoreWrapper extends HTMLElement {
26186    #expanded = false;
26187    #animation = null;
26188    #collapsedHeight = 0;
26189
26190    connectedCallback() {
26191      const content = this.querySelector('.text-read-more__content');
26192      const textElement = this.querySelector('.text-read-more__text');
26193      const button = this.querySelector('.text-read-more__button');
26194
26195      if (!content || !textElement || !button) return;
26196
26197      // Set initial state
26198      this.dataset.expanded = 'false';
26199
26200      // Wait for content to render - use double RAF to ensure layout is complete
26201      requestAnimationFrame(() => {
26202        requestAnimationFrame(() => {
26203          // Additional small delay to ensure fonts and styles are applied
26204          setTimeout(() => {
26205            this.#checkOverflow(content, textElement, button);
26206          }, 50);
26207          
26208          // Recheck on resize
26209          const resizeObserver = new ResizeObserver(() => {
26210            if (!this.#expanded) {
26211              this.#checkOverflow(content, textElement, button);
26212            }
26213          });
26214          resizeObserver.observe(content);
26215
26216          // Setup button click handler
26217          button.addEventListener('click', (e) => {
26218            e.preventDefault();
26219            this.#toggle(content, textElement, button);
26220          });
26221        });
26222      });
26223    }
26224
26225    #checkOverflow(content, textElement, button) {
26226      // Ensure collapsed state is applied
26227      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
26228        textElement.classList.add('text-read-more__text--collapsed');
26229      }
26230      
26231      // Get collapsed height first
26232      const collapsedHeight = content.scrollHeight;
26233      this.#collapsedHeight = collapsedHeight;
26234      
26235      // Temporarily remove line-clamp to measure full height
26236      textElement.classList.remove('text-read-more__text--collapsed');
26237      
26238      // Force reflow
26239      void content.offsetHeight;
26240      
26241      const fullHeight = content.scrollHeight;
26242      
26243      // Restore line-clamp
26244      textElement.classList.add('text-read-more__text--collapsed');
26245      
26246      // Show button if content exceeds 2 lines (with small threshold for rounding)
26247      if (fullHeight > collapsedHeight + 5) {
26248        button.removeAttribute('hidden');
26249      } else {
26250        button.setAttribute('hidden', '');
26251      }
26252    }
26253
26254    #toggle(content, textElement, button) {
26255      const startHeight = content.offsetHeight;
26256      let endHeight;
26257
26258      if (!this.#expanded) {
26259        // Expanding
26260        textElement.classList.remove('text-read-more__text--collapsed');
26261        endHeight = content.scrollHeight;
26262        this.#expanded = true;
26263      } else {
26264        // Collapsing
26265        endHeight = this.#collapsedHeight;
26266        this.#expanded = false;
26267      }
26268
26269      this.dataset.expanded = this.#expanded;
26270      button.setAttribute('aria-expanded', this.#expanded);
26271
26272      // Animate
26273      content.style.overflow = 'hidden';
26274      this.#animation?.cancel();
26275
26276      this.#animation = content.animate(
26277        {
26278          height: [`${startHeight}px`, `${endHeight}px`],
26279        },
26280        {
26281          duration: 300,
26282          easing: 'ease-in-out',
26283        }
26284      );
26285
26286      this.#animation.onfinish = () => {
26287        if (this.#expanded) {
26288          content.style.removeProperty('height');
26289          content.style.overflow = '';
26290        } else {
26291          textElement.classList.add('text-read-more__text--collapsed');
26292          content.style.removeProperty('height');
26293          content.style.overflow = '';
26294        }
26295      };
26296    }
26297  }
26298
26299  if (!customElements.get('text-read-more-wrapper')) {
26300    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
26301  }
26302</script>
26302
26303
26304
26305
26306
26307
26308
26309
26310
26311
26312
26313
26314
26315  
26316    <rte-formatter class=" spacing-style text-block text-block--AbytKN3ZqU1o5Y2k3U__text_rJw4KU rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
26317      <p>Come visit us in person</p>
26318    </rte-formatter>
26319  
26320
26321
26322
26323
26324<script type="module">
26325  class TextReadMoreWrapper extends HTMLElement {
26326    #expanded = false;
26327    #animation = null;
26328    #collapsedHeight = 0;
26329
26330    connectedCallback() {
26331      const content = this.querySelector('.text-read-more__content');
26332      const textElement = this.querySelector('.text-read-more__text');
26333      const button = this.querySelector('.text-read-more__button');
26334
26335      if (!content || !textElement || !button) return;
26336
26337      // Set initial state
26338      this.dataset.expanded = 'false';
26339
26340      // Wait for content to render - use double RAF to ensure layout is complete
26341      requestAnimationFrame(() => {
26342        requestAnimationFrame(() => {
26343          // Additional small delay to ensure fonts and styles are applied
26344          setTimeout(() => {
26345            this.#checkOverflow(content, textElement, button);
26346          }, 50);
26347          
26348          // Recheck on resize
26349          const resizeObserver = new ResizeObserver(() => {
26350            if (!this.#expanded) {
26351              this.#checkOverflow(content, textElement, button);
26352            }
26353          });
26354          resizeObserver.observe(content);
26355
26356          // Setup button click handler
26357          button.addEventListener('click', (e) => {
26358            e.preventDefault();
26359            this.#toggle(content, textElement, button);
26360          });
26361        });
26362      });
26363    }
26364
26365    #checkOverflow(content, textElement, button) {
26366      // Ensure collapsed state is applied
26367      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
26368        textElement.classList.add('text-read-more__text--collapsed');
26369      }
26370      
26371      // Get collapsed height first
26372      const collapsedHeight = content.scrollHeight;
26373      this.#collapsedHeight = collapsedHeight;
26374      
26375      // Temporarily remove line-clamp to measure full height
26376      textElement.classList.remove('text-read-more__text--collapsed');
26377      
26378      // Force reflow
26379      void content.offsetHeight;
26380      
26381      const fullHeight = content.scrollHeight;
26382      
26383      // Restore line-clamp
26384      textElement.classList.add('text-read-more__text--collapsed');
26385      
26386      // Show button if content exceeds 2 lines (with small threshold for rounding)
26387      if (fullHeight > collapsedHeight + 5) {
26388        button.removeAttribute('hidden');
26389      } else {
26390        button.setAttribute('hidden', '');
26391      }
26392    }
26393
26394    #toggle(content, textElement, button) {
26395      const startHeight = content.offsetHeight;
26396      let endHeight;
26397
26398      if (!this.#expanded) {
26399        // Expanding
26400        textElement.classList.remove('text-read-more__text--collapsed');
26401        endHeight = content.scrollHeight;
26402        this.#expanded = true;
26403      } else {
26404        // Collapsing
26405        endHeight = this.#collapsedHeight;
26406        this.#expanded = false;
26407      }
26408
26409      this.dataset.expanded = this.#expanded;
26410      button.setAttribute('aria-expanded', this.#expanded);
26411
26412      // Animate
26413      content.style.overflow = 'hidden';
26414      this.#animation?.cancel();
26415
26416      this.#animation = content.animate(
26417        {
26418          height: [`${startHeight}px`, `${endHeight}px`],
26419        },
26420        {
26421          duration: 300,
26422          easing: 'ease-in-out',
26423        }
26424      );
26425
26426      this.#animation.onfinish = () => {
26427        if (this.#expanded) {
26428          content.style.removeProperty('height');
26429          content.style.overflow = '';
26430        } else {
26431          textElement.classList.add('text-read-more__text--collapsed');
26432          content.style.removeProperty('height');
26433          content.style.overflow = '';
26434        }
26435      };
26436    }
26437  }
26438
26439  if (!customElements.get('text-read-more-wrapper')) {
26440    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
26441  }
26442</script>
26442
26443
26444
26445
26446
26447</div>
26448</div>
26449
26450
26451
26452<script type="module">
26453  (function() {
26454    // Only run if Intersection Observer is supported
26455    if (typeof IntersectionObserver === 'undefined') {
26456      // Fallback: show all animated content immediately
26457      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
26458        el.classList.add('group-block-content--in-view');
26459      });
26460      return;
26461    }
26462
26463    // Respect reduced motion preference
26464    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
26465    if (prefersReducedMotion) {
26466      // Show all animated content immediately without animation
26467      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
26468        el.style.opacity = '1';
26469        el.style.transform = 'none';
26470      });
26471      return;
26472    }
26473
26474    // Set up Intersection Observer for scroll-triggered animations
26475    const observerOptions = {
26476      root: null,
26477      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
26478      threshold: 0.1 // Trigger when 10% of element is visible
26479    };
26480
26481    const observer = new IntersectionObserver((entries) => {
26482      entries.forEach(entry => {
26483        if (entry.isIntersecting) {
26484          const contentElement = entry.target;
26485          // Add the in-view class to trigger animation
26486          contentElement.classList.add('group-block-content--in-view');
26487          // Unobserve after animation is triggered (only animate once)
26488          observer.unobserve(contentElement);
26489        }
26490      });
26491    }, observerOptions);
26492
26493    // Observe all group blocks with animations
26494    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
26495      observer.observe(el);
26496    });
26497  })();
26498</script>
26498
26499
26500
26501
26502
26503
26504    </div>
26505  </div>
26506</div>
26507
26508
26509
26510
26511
26512</div><section id="shopify-section-template--28213213921626__featured_blog_posts_FbCxA9" class="shopify-section featured-blog-posts">
26513
26514
26515
26516<div class="section-background color-scheme-1"></div>
26517
26518<div
26519  class="
26520    section
26521    section--page-width
26522    color-scheme-1
26523    section-resource-list
26524    spacing-style
26525    gap-style
26526    
26527  "
26528  style="--padding-block-start: 0px;--padding-block-end: max(20px, calc(var(--spacing-scale) * 82px));--gap: 12px;"
26529>
26530  <div id="shopify-block-AcHZEa2pqWTVsblpOU__static-blog-title" class="shopify-block">
26531
26532
26533
26534<div class="featured-blog-posts-title-wrapper">
26535  <div class="featured-blog-posts-title__title">
26536    
26537
26538
26539
26540
26541
26542
26543  
26544    <div class=" spacing-style text-block text-block--AcHZEa2pqWTVsblpOU__static-blog-title h3      "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
26545      <h3>Beyond the Base Coat</h3>
26546    </div>
26547  
26548
26549
26550
26551
26552<script type="module">
26553  class TextReadMoreWrapper extends HTMLElement {
26554    #expanded = false;
26555    #animation = null;
26556    #collapsedHeight = 0;
26557
26558    connectedCallback() {
26559      const content = this.querySelector('.text-read-more__content');
26560      const textElement = this.querySelector('.text-read-more__text');
26561      const button = this.querySelector('.text-read-more__button');
26562
26563      if (!content || !textElement || !button) return;
26564
26565      // Set initial state
26566      this.dataset.expanded = 'false';
26567
26568      // Wait for content to render - use double RAF to ensure layout is complete
26569      requestAnimationFrame(() => {
26570        requestAnimationFrame(() => {
26571          // Additional small delay to ensure fonts and styles are applied
26572          setTimeout(() => {
26573            this.#checkOverflow(content, textElement, button);
26574          }, 50);
26575          
26576          // Recheck on resize
26577          const resizeObserver = new ResizeObserver(() => {
26578            if (!this.#expanded) {
26579              this.#checkOverflow(content, textElement, button);
26580            }
26581          });
26582          resizeObserver.observe(content);
26583
26584          // Setup button click handler
26585          button.addEventListener('click', (e) => {
26586            e.preventDefault();
26587            this.#toggle(content, textElement, button);
26588          });
26589        });
26590      });
26591    }
26592
26593    #checkOverflow(content, textElement, button) {
26594      // Ensure collapsed state is applied
26595      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
26596        textElement.classList.add('text-read-more__text--collapsed');
26597      }
26598      
26599      // Get collapsed height first
26600      const collapsedHeight = content.scrollHeight;
26601      this.#collapsedHeight = collapsedHeight;
26602      
26603      // Temporarily remove line-clamp to measure full height
26604      textElement.classList.remove('text-read-more__text--collapsed');
26605      
26606      // Force reflow
26607      void content.offsetHeight;
26608      
26609      const fullHeight = content.scrollHeight;
26610      
26611      // Restore line-clamp
26612      textElement.classList.add('text-read-more__text--collapsed');
26613      
26614      // Show button if content exceeds 2 lines (with small threshold for rounding)
26615      if (fullHeight > collapsedHeight + 5) {
26616        button.removeAttribute('hidden');
26617      } else {
26618        button.setAttribute('hidden', '');
26619      }
26620    }
26621
26622    #toggle(content, textElement, button) {
26623      const startHeight = content.offsetHeight;
26624      let endHeight;
26625
26626      if (!this.#expanded) {
26627        // Expanding
26628        textElement.classList.remove('text-read-more__text--collapsed');
26629        endHeight = content.scrollHeight;
26630        this.#expanded = true;
26631      } else {
26632        // Collapsing
26633        endHeight = this.#collapsedHeight;
26634        this.#expanded = false;
26635      }
26636
26637      this.dataset.expanded = this.#expanded;
26638      button.setAttribute('aria-expanded', this.#expanded);
26639
26640      // Animate
26641      content.style.overflow = 'hidden';
26642      this.#animation?.cancel();
26643
26644      this.#animation = content.animate(
26645        {
26646          height: [`${startHeight}px`, `${endHeight}px`],
26647        },
26648        {
26649          duration: 300,
26650          easing: 'ease-in-out',
26651        }
26652      );
26653
26654      this.#animation.onfinish = () => {
26655        if (this.#expanded) {
26656          content.style.removeProperty('height');
26657          content.style.overflow = '';
26658        } else {
26659          textElement.classList.add('text-read-more__text--collapsed');
26660          content.style.removeProperty('height');
26661          content.style.overflow = '';
26662        }
26663      };
26664    }
26665  }
26666
26667  if (!customElements.get('text-read-more-wrapper')) {
26668    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
26669  }
26670</script>
26670
26671
26672  </div>
26673  
26674  
26675    <div class="featured-blog-posts-title__link-wrapper">
26676      <a 
26677        href="/blogs/blog"
26678        class="featured-blog-posts-title__link custom-typography
26679          custom-font-size
26680          custom-color"
26681        style="
26682          
26683            
26684              
26685              
26686                --font-size: 1rem;
26687              
26688            
26689            
26690              --font-family: var(--font-body--family);
26691              --font-weight: var(--font-body--weight);
26692            
26693            --text-transform: none;
26694            --line-height: var(--line-height--body-normal);
26695            --letter-spacing: var(--letter-spacing--body-normal);
26696          
26697          --color: var(--color-primary);
26698          text-decoration: none;
26699          white-space: nowrap;
26700        "
26701      >
26702        View Blog
26703        <span class="featured-blog-posts-title__link-icon" aria-hidden="true">
26704          <svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg">
26705  <path d="M1.5 1L6.5 6L1.5 11" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
26706</svg>
26707
26708        </span>
26709      </a>
26710    </div>
26711  
26712</div>
26713
26714
26715
26716
26717</div>
26718
26719
26720  
26721      
26722    
26723
26724  
26725
26726  
26727
26728  
26729
26730<div
26731  class="
26732    resource-list
26733    
26734      force-full-width
26735    
26736    
26737    resource-list__carousel
26738  "
26739  style="--resource-list-column-gap-desktop: 24px;--column-count: 4;--column-count-mobile: 1;--mobile-card-size: 60cqw;"
26740  
26741    data-testid="featured-blog-posts"
26742  
26743>
26744  
26745      
26746
26747
26748
26749<div
26750  class="resource-list__carousel"
26751  style="--gutter-slide-width: var(--util-page-margin-offset); --slide-width-max: 450px;"
26752>
26753  <slideshow-component
26754  
26755    ref="featuredBlog"
26756  
26757  
26758    class="resource-list__carousel"
26759  
26760  style="--slideshow-timeline: --slide-1, --slide-2, --slide-3, --slide-4, --slide-5, --slide-6, --slide-7, --slide-8, --slide-9, --slide-10;--slide-min-height: auto;--slide-min-height-desktop: auto;"
26761  
26762  initial-slide="0"
26763  
26764  
26765  
26766
26767  
26768>
26769  
26770  <slideshow-container ref="slideshowContainer">
26771    
26772    
26773    <slideshow-slides
26774      tabindex="-1"
26775      ref="scroller"
26776      
26777        gutters="start end"
26778      
26779    >
26780      
26781  
26782    <slideshow-slide
26783  ref="slides[]"
26784  aria-hidden="false"
26785  style="--slideshow-timeline: --slide-0; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
26786  
26787    class="resource-list__slide"
26788  
26789  
26790  
26791  
26792  
26793  
26794  
26795>
26796  <div class="resource-list__item">
26797        
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
26808
26809
26810
26811<div
26812  class="
26813    featured-blog-posts-card spacing-style border-style
26814    
26815    
26816  "
26817  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card"
26818  data-testid="featured-blog-posts-card"
26819  
26820  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
26821rgb(var(--color-border-rgb) / 1.0); --border-radius:
268220px; 
26823--text-align: left;
26824    --horizontal-alignment: left;
26825    --gap: 8px;
26826  "
26827  
26828>
26829  <a
26830    class="featured-blog-posts-card__link"
26831    
26832      href="/blogs/blog/should-i-use-led-or-uv-nail-lamp"
26833    
26834  >
26835    <span class="visually-hidden">Should I Use LED or UV Nail Lamp?</span>
26836  </a>
26837
26838  <div class="featured-blog-posts-card__inner">
26839    
26840      
26841  
26842
26843
26844
26845
26846<style data-shopify>
26847  
26848    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card"] {
26849      --ratio: 1 / 1;
26850    }
26851  
26852</style>
26853
26854
26855  <div
26856    class="
26857      image-block
26858      resource-image
26859      
26860      
26861        featured-blog-posts-card__image
26862      
26863      spacing-style border-style
26864      
26865    "
26866    style="--border-width: 1px; --border-style: none; --border-color:
26867rgb(var(--color-border-rgb) / 1.0); --border-radius:
2686812px;  overflow: hidden; 
26869"
26870    
26871  >
26872      <img src="//www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=3840" alt="Should I Use LED or UV Nail Lamp?" srcset="//www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/UV_LED_Lamp_46caee69-3202-4498-b4c2-cf81d7681959.png?v=1789728093&amp;width=3840 3840w" width="3840" height="2560" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
26873    
26874  </div>
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885    
26886
26887    <div class="featured-blog-posts-card__content layout-panel-flex--column">
26888      <h4>
26889  
26890
26891
26892
26893
26894
26895
26896
26897  
26898    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
26899      <h4>Should I Use LED or UV Nail Lamp?</h4>
26900    </div>
26901  
26902
26903
26904
26905
26906<script type="module">
26907  class TextReadMoreWrapper extends HTMLElement {
26908    #expanded = false;
26909    #animation = null;
26910    #collapsedHeight = 0;
26911
26912    connectedCallback() {
26913      const content = this.querySelector('.text-read-more__content');
26914      const textElement = this.querySelector('.text-read-more__text');
26915      const button = this.querySelector('.text-read-more__button');
26916
26917      if (!content || !textElement || !button) return;
26918
26919      // Set initial state
26920      this.dataset.expanded = 'false';
26921
26922      // Wait for content to render - use double RAF to ensure layout is complete
26923      requestAnimationFrame(() => {
26924        requestAnimationFrame(() => {
26925          // Additional small delay to ensure fonts and styles are applied
26926          setTimeout(() => {
26927            this.#checkOverflow(content, textElement, button);
26928          }, 50);
26929          
26930          // Recheck on resize
26931          const resizeObserver = new ResizeObserver(() => {
26932            if (!this.#expanded) {
26933              this.#checkOverflow(content, textElement, button);
26934            }
26935          });
26936          resizeObserver.observe(content);
26937
26938          // Setup button click handler
26939          button.addEventListener('click', (e) => {
26940            e.preventDefault();
26941            this.#toggle(content, textElement, button);
26942          });
26943        });
26944      });
26945    }
26946
26947    #checkOverflow(content, textElement, button) {
26948      // Ensure collapsed state is applied
26949      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
26950        textElement.classList.add('text-read-more__text--collapsed');
26951      }
26952      
26953      // Get collapsed height first
26954      const collapsedHeight = content.scrollHeight;
26955      this.#collapsedHeight = collapsedHeight;
26956      
26957      // Temporarily remove line-clamp to measure full height
26958      textElement.classList.remove('text-read-more__text--collapsed');
26959      
26960      // Force reflow
26961      void content.offsetHeight;
26962      
26963      const fullHeight = content.scrollHeight;
26964      
26965      // Restore line-clamp
26966      textElement.classList.add('text-read-more__text--collapsed');
26967      
26968      // Show button if content exceeds 2 lines (with small threshold for rounding)
26969      if (fullHeight > collapsedHeight + 5) {
26970        button.removeAttribute('hidden');
26971      } else {
26972        button.setAttribute('hidden', '');
26973      }
26974    }
26975
26976    #toggle(content, textElement, button) {
26977      const startHeight = content.offsetHeight;
26978      let endHeight;
26979
26980      if (!this.#expanded) {
26981        // Expanding
26982        textElement.classList.remove('text-read-more__text--collapsed');
26983        endHeight = content.scrollHeight;
26984        this.#expanded = true;
26985      } else {
26986        // Collapsing
26987        endHeight = this.#collapsedHeight;
26988        this.#expanded = false;
26989      }
26990
26991      this.dataset.expanded = this.#expanded;
26992      button.setAttribute('aria-expanded', this.#expanded);
26993
26994      // Animate
26995      content.style.overflow = 'hidden';
26996      this.#animation?.cancel();
26997
26998      this.#animation = content.animate(
26999        {
27000          height: [`${startHeight}px`, `${endHeight}px`],
27001        },
27002        {
27003          duration: 300,
27004          easing: 'ease-in-out',
27005        }
27006      );
27007
27008      this.#animation.onfinish = () => {
27009        if (this.#expanded) {
27010          content.style.removeProperty('height');
27011          content.style.overflow = '';
27012        } else {
27013          textElement.classList.add('text-read-more__text--collapsed');
27014          content.style.removeProperty('height');
27015          content.style.overflow = '';
27016        }
27017      };
27018    }
27019  }
27020
27021  if (!customElements.get('text-read-more-wrapper')) {
27022    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
27023  }
27024</script>
27024
27025
27026
27027
27028
27029
27030
27031</h4>
27032      
27033  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text" class="shopify-block">
27034
27035
27036
27037
27038<div
27039    class="
27040      blog-post-details
27041      spacing-style
27042      justify-left
27043      
27044    "
27045    style="--padding-block-start: 0px;--padding-block-end: 0px;"
27046  ><span><time datetime="2026-09-17T13:45:02Z">September 17, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
27047
27048
27049
27050
27051
27052</div>
27053
27054
27055      
27056  
27057
27058      
27059        <a href="/blogs/blog/should-i-use-led-or-uv-nail-lamp" class="featured-blog-posts-card__read-more">Read more...</a>
27060      
27061    </div>
27062  </div>
27063</div>
27064
27065
27066
27067
27068
27069      </div>
27070      
27071        
27072</slideshow-slide>
27073
27074  
27075    <slideshow-slide
27076  ref="slides[]"
27077  aria-hidden="true"
27078  style="--slideshow-timeline: --slide-1; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
27079  
27080    class="resource-list__slide"
27081  
27082  
27083  
27084  
27085  
27086  
27087  
27088>
27089  
27090      
27091    
27092      <div class="resource-list__item">
27093        
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107<div
27108  class="
27109    featured-blog-posts-card spacing-style border-style
27110    
27111    
27112  "
27113  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-1"
27114  data-testid="featured-blog-posts-card"
27115  
27116  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
27117rgb(var(--color-border-rgb) / 1.0); --border-radius:
271180px; 
27119--text-align: left;
27120    --horizontal-alignment: left;
27121    --gap: 8px;
27122  "
27123  
27124>
27125  <a
27126    class="featured-blog-posts-card__link"
27127    
27128      href="/blogs/blog/you-might-be-doing-this-wrong"
27129    
27130  >
27131    <span class="visually-hidden">You Might Be Doing This Wrong</span>
27132  </a>
27133
27134  <div class="featured-blog-posts-card__inner">
27135    
27136      
27137  
27138
27139
27140
27141
27142<style data-shopify>
27143  
27144    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-1"] {
27145      --ratio: 1 / 1;
27146    }
27147  
27148</style>
27149
27150
27151  <div
27152    class="
27153      image-block
27154      resource-image
27155      
27156      
27157        featured-blog-posts-card__image
27158      
27159      spacing-style border-style
27160      
27161    "
27162    style="--border-width: 1px; --border-style: none; --border-color:
27163rgb(var(--color-border-rgb) / 1.0); --border-radius:
2716412px;  overflow: hidden; 
27165"
27166    
27167  >
27168      <img src="//www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=3840" alt="You Might Be Doing This Wrong" srcset="//www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/Blog1_96bc7f51-a5d3-4698-994b-afe1ce91c7ea.jpg?v=1789651809&amp;width=3840 3840w" width="3840" height="3840" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
27169    
27170  </div>
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181    
27182
27183    <div class="featured-blog-posts-card__content layout-panel-flex--column">
27184      <h4>
27185  
27186
27187
27188
27189
27190
27191
27192
27193  
27194    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-1 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
27195      <h4>You Might Be Doing This Wrong</h4>
27196    </div>
27197  
27198
27199
27200
27201
27202<script type="module">
27203  class TextReadMoreWrapper extends HTMLElement {
27204    #expanded = false;
27205    #animation = null;
27206    #collapsedHeight = 0;
27207
27208    connectedCallback() {
27209      const content = this.querySelector('.text-read-more__content');
27210      const textElement = this.querySelector('.text-read-more__text');
27211      const button = this.querySelector('.text-read-more__button');
27212
27213      if (!content || !textElement || !button) return;
27214
27215      // Set initial state
27216      this.dataset.expanded = 'false';
27217
27218      // Wait for content to render - use double RAF to ensure layout is complete
27219      requestAnimationFrame(() => {
27220        requestAnimationFrame(() => {
27221          // Additional small delay to ensure fonts and styles are applied
27222          setTimeout(() => {
27223            this.#checkOverflow(content, textElement, button);
27224          }, 50);
27225          
27226          // Recheck on resize
27227          const resizeObserver = new ResizeObserver(() => {
27228            if (!this.#expanded) {
27229              this.#checkOverflow(content, textElement, button);
27230            }
27231          });
27232          resizeObserver.observe(content);
27233
27234          // Setup button click handler
27235          button.addEventListener('click', (e) => {
27236            e.preventDefault();
27237            this.#toggle(content, textElement, button);
27238          });
27239        });
27240      });
27241    }
27242
27243    #checkOverflow(content, textElement, button) {
27244      // Ensure collapsed state is applied
27245      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
27246        textElement.classList.add('text-read-more__text--collapsed');
27247      }
27248      
27249      // Get collapsed height first
27250      const collapsedHeight = content.scrollHeight;
27251      this.#collapsedHeight = collapsedHeight;
27252      
27253      // Temporarily remove line-clamp to measure full height
27254      textElement.classList.remove('text-read-more__text--collapsed');
27255      
27256      // Force reflow
27257      void content.offsetHeight;
27258      
27259      const fullHeight = content.scrollHeight;
27260      
27261      // Restore line-clamp
27262      textElement.classList.add('text-read-more__text--collapsed');
27263      
27264      // Show button if content exceeds 2 lines (with small threshold for rounding)
27265      if (fullHeight > collapsedHeight + 5) {
27266        button.removeAttribute('hidden');
27267      } else {
27268        button.setAttribute('hidden', '');
27269      }
27270    }
27271
27272    #toggle(content, textElement, button) {
27273      const startHeight = content.offsetHeight;
27274      let endHeight;
27275
27276      if (!this.#expanded) {
27277        // Expanding
27278        textElement.classList.remove('text-read-more__text--collapsed');
27279        endHeight = content.scrollHeight;
27280        this.#expanded = true;
27281      } else {
27282        // Collapsing
27283        endHeight = this.#collapsedHeight;
27284        this.#expanded = false;
27285      }
27286
27287      this.dataset.expanded = this.#expanded;
27288      button.setAttribute('aria-expanded', this.#expanded);
27289
27290      // Animate
27291      content.style.overflow = 'hidden';
27292      this.#animation?.cancel();
27293
27294      this.#animation = content.animate(
27295        {
27296          height: [`${startHeight}px`, `${endHeight}px`],
27297        },
27298        {
27299          duration: 300,
27300          easing: 'ease-in-out',
27301        }
27302      );
27303
27304      this.#animation.onfinish = () => {
27305        if (this.#expanded) {
27306          content.style.removeProperty('height');
27307          content.style.overflow = '';
27308        } else {
27309          textElement.classList.add('text-read-more__text--collapsed');
27310          content.style.removeProperty('height');
27311          content.style.overflow = '';
27312        }
27313      };
27314    }
27315  }
27316
27317  if (!customElements.get('text-read-more-wrapper')) {
27318    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
27319  }
27320</script>
27320
27321
27322
27323
27324
27325
27326
27327</h4>
27328      
27329  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-1" class="shopify-block">
27330
27331
27332
27333
27334<div
27335    class="
27336      blog-post-details
27337      spacing-style
27338      justify-left
27339      
27340    "
27341    style="--padding-block-start: 0px;--padding-block-end: 0px;"
27342  ><span><time datetime="2026-09-17T13:30:07Z">September 17, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
27343
27344
27345
27346
27347
27348</div>
27349
27350
27351      
27352  
27353
27354      
27355        <a href="/blogs/blog/you-might-be-doing-this-wrong" class="featured-blog-posts-card__read-more">Read more...</a>
27356      
27357    </div>
27358  </div>
27359</div>
27360
27361
27362
27363
27364
27365      </div>
27366      
27367        
27368</slideshow-slide>
27369
27370  
27371    <slideshow-slide
27372  ref="slides[]"
27373  aria-hidden="true"
27374  style="--slideshow-timeline: --slide-2; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
27375  
27376    class="resource-list__slide"
27377  
27378  
27379  
27380  
27381  
27382  
27383  
27384>
27385  
27386      
27387    
27388      <div class="resource-list__item">
27389        
27390
27391
27392
27393
27394
27395
27396
27397
27398
27399
27400
27401
27402
27403<div
27404  class="
27405    featured-blog-posts-card spacing-style border-style
27406    
27407    
27408  "
27409  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-2"
27410  data-testid="featured-blog-posts-card"
27411  
27412  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
27413rgb(var(--color-border-rgb) / 1.0); --border-radius:
274140px; 
27415--text-align: left;
27416    --horizontal-alignment: left;
27417    --gap: 8px;
27418  "
27419  
27420>
27421  <a
27422    class="featured-blog-posts-card__link"
27423    
27424      href="/blogs/blog/opi-intelli-gel-review-everything-you-need-to-know-about-opi-gelcolor-intelli-gel"
27425    
27426  >
27427    <span class="visually-hidden">OPI Intelli-Gel Review: Everything You Need to Know About OPI GelColor Intelli-Gel</span>
27428  </a>
27429
27430  <div class="featured-blog-posts-card__inner">
27431    
27432      
27433  
27434
27435
27436
27437
27438<style data-shopify>
27439  
27440    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-2"] {
27441      --ratio: 1 / 1;
27442    }
27443  
27444</style>
27445
27446
27447  <div
27448    class="
27449      image-block
27450      resource-image
27451      
27452      
27453        featured-blog-posts-card__image
27454      
27455      spacing-style border-style
27456      
27457    "
27458    style="--border-width: 1px; --border-style: none; --border-color:
27459rgb(var(--color-border-rgb) / 1.0); --border-radius:
2746012px;  overflow: hidden; 
27461"
27462    
27463  >
27464      <img src="//www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=3840" alt="OPI Intelli-Gel Review: Everything You Need to Know About OPI GelColor Intelli-Gel" srcset="//www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/OPI_Intelli-Gel_Blog_cd743011-603c-4750-842c-d7923e22a68f.png?v=1789728060&amp;width=3840 3840w" width="3840" height="4096" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
27465    
27466  </div>
27467
27468
27469
27470
27471
27472
27473
27474
27475
27476
27477    
27478
27479    <div class="featured-blog-posts-card__content layout-panel-flex--column">
27480      <h4>
27481  
27482
27483
27484
27485
27486
27487
27488
27489  
27490    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-2 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
27491      <h4>OPI Intelli-Gel Review: Everything You Need to Know About OPI GelColor Intelli-Gel</h4>
27492    </div>
27493  
27494
27495
27496
27497
27498<script type="module">
27499  class TextReadMoreWrapper extends HTMLElement {
27500    #expanded = false;
27501    #animation = null;
27502    #collapsedHeight = 0;
27503
27504    connectedCallback() {
27505      const content = this.querySelector('.text-read-more__content');
27506      const textElement = this.querySelector('.text-read-more__text');
27507      const button = this.querySelector('.text-read-more__button');
27508
27509      if (!content || !textElement || !button) return;
27510
27511      // Set initial state
27512      this.dataset.expanded = 'false';
27513
27514      // Wait for content to render - use double RAF to ensure layout is complete
27515      requestAnimationFrame(() => {
27516        requestAnimationFrame(() => {
27517          // Additional small delay to ensure fonts and styles are applied
27518          setTimeout(() => {
27519            this.#checkOverflow(content, textElement, button);
27520          }, 50);
27521          
27522          // Recheck on resize
27523          const resizeObserver = new ResizeObserver(() => {
27524            if (!this.#expanded) {
27525              this.#checkOverflow(content, textElement, button);
27526            }
27527          });
27528          resizeObserver.observe(content);
27529
27530          // Setup button click handler
27531          button.addEventListener('click', (e) => {
27532            e.preventDefault();
27533            this.#toggle(content, textElement, button);
27534          });
27535        });
27536      });
27537    }
27538
27539    #checkOverflow(content, textElement, button) {
27540      // Ensure collapsed state is applied
27541      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
27542        textElement.classList.add('text-read-more__text--collapsed');
27543      }
27544      
27545      // Get collapsed height first
27546      const collapsedHeight = content.scrollHeight;
27547      this.#collapsedHeight = collapsedHeight;
27548      
27549      // Temporarily remove line-clamp to measure full height
27550      textElement.classList.remove('text-read-more__text--collapsed');
27551      
27552      // Force reflow
27553      void content.offsetHeight;
27554      
27555      const fullHeight = content.scrollHeight;
27556      
27557      // Restore line-clamp
27558      textElement.classList.add('text-read-more__text--collapsed');
27559      
27560      // Show button if content exceeds 2 lines (with small threshold for rounding)
27561      if (fullHeight > collapsedHeight + 5) {
27562        button.removeAttribute('hidden');
27563      } else {
27564        button.setAttribute('hidden', '');
27565      }
27566    }
27567
27568    #toggle(content, textElement, button) {
27569      const startHeight = content.offsetHeight;
27570      let endHeight;
27571
27572      if (!this.#expanded) {
27573        // Expanding
27574        textElement.classList.remove('text-read-more__text--collapsed');
27575        endHeight = content.scrollHeight;
27576        this.#expanded = true;
27577      } else {
27578        // Collapsing
27579        endHeight = this.#collapsedHeight;
27580        this.#expanded = false;
27581      }
27582
27583      this.dataset.expanded = this.#expanded;
27584      button.setAttribute('aria-expanded', this.#expanded);
27585
27586      // Animate
27587      content.style.overflow = 'hidden';
27588      this.#animation?.cancel();
27589
27590      this.#animation = content.animate(
27591        {
27592          height: [`${startHeight}px`, `${endHeight}px`],
27593        },
27594        {
27595          duration: 300,
27596          easing: 'ease-in-out',
27597        }
27598      );
27599
27600      this.#animation.onfinish = () => {
27601        if (this.#expanded) {
27602          content.style.removeProperty('height');
27603          content.style.overflow = '';
27604        } else {
27605          textElement.classList.add('text-read-more__text--collapsed');
27606          content.style.removeProperty('height');
27607          content.style.overflow = '';
27608        }
27609      };
27610    }
27611  }
27612
27613  if (!customElements.get('text-read-more-wrapper')) {
27614    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
27615  }
27616</script>
27616
27617
27618
27619
27620
27621
27622
27623</h4>
27624      
27625  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-2" class="shopify-block">
27626
27627
27628
27629
27630<div
27631    class="
27632      blog-post-details
27633      spacing-style
27634      justify-left
27635      
27636    "
27637    style="--padding-block-start: 0px;--padding-block-end: 0px;"
27638  ><span><time datetime="2026-09-17T11:27:12Z">September 17, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
27639
27640
27641
27642
27643
27644</div>
27645
27646
27647      
27648  
27649
27650      
27651        <a href="/blogs/blog/opi-intelli-gel-review-everything-you-need-to-know-about-opi-gelcolor-intelli-gel" class="featured-blog-posts-card__read-more">Read more...</a>
27652      
27653    </div>
27654  </div>
27655</div>
27656
27657
27658
27659
27660
27661      </div>
27662      
27663        
27664</slideshow-slide>
27665
27666  
27667    <slideshow-slide
27668  ref="slides[]"
27669  aria-hidden="true"
27670  style="--slideshow-timeline: --slide-3; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
27671  
27672    class="resource-list__slide"
27673  
27674  
27675  
27676  
27677  
27678  
27679  
27680>
27681  
27682      
27683    
27684      <div class="resource-list__item">
27685        
27686
27687
27688
27689
27690
27691
27692
27693
27694
27695
27696
27697
27698
27699<div
27700  class="
27701    featured-blog-posts-card spacing-style border-style
27702    
27703    
27704  "
27705  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-3"
27706  data-testid="featured-blog-posts-card"
27707  
27708  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
27709rgb(var(--color-border-rgb) / 1.0); --border-radius:
277100px; 
27711--text-align: left;
27712    --horizontal-alignment: left;
27713    --gap: 8px;
27714  "
27715  
27716>
27717  <a
27718    class="featured-blog-posts-card__link"
27719    
27720      href="/blogs/blog/what-is-a-russian-manicure-the-ultimate-guide-to-precision-e-file-nail-care"
27721    
27722  >
27723    <span class="visually-hidden">What Is a Russian Manicure? The Ultimate Guide to Precision E-File Nail Care</span>
27724  </a>
27725
27726  <div class="featured-blog-posts-card__inner">
27727    
27728      
27729  
27730
27731
27732
27733
27734<style data-shopify>
27735  
27736    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-3"] {
27737      --ratio: 1 / 1;
27738    }
27739  
27740</style>
27741
27742
27743  <div
27744    class="
27745      image-block
27746      resource-image
27747      
27748      
27749        featured-blog-posts-card__image
27750      
27751      spacing-style border-style
27752      
27753    "
27754    style="--border-width: 1px; --border-style: none; --border-color:
27755rgb(var(--color-border-rgb) / 1.0); --border-radius:
2775612px;  overflow: hidden; 
27757"
27758    
27759  >
27760      <img src="//www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=3840" alt="What Is a Russian Manicure? The Ultimate Guide to Precision E-File Nail Care" srcset="//www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/Gemini_Generated_Image_habzgihabzgihabz_d91c00b4-d39d-42bc-a8a3-e990f23c6c2a.png?v=1788473396&amp;width=3840 3840w" width="3840" height="3018" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
27761    
27762  </div>
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773    
27774
27775    <div class="featured-blog-posts-card__content layout-panel-flex--column">
27776      <h4>
27777  
27778
27779
27780
27781
27782
27783
27784
27785  
27786    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-3 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
27787      <h4>What Is a Russian Manicure? The Ultimate Guide to Precision E-File Nail Care</h4>
27788    </div>
27789  
27790
27791
27792
27793
27794<script type="module">
27795  class TextReadMoreWrapper extends HTMLElement {
27796    #expanded = false;
27797    #animation = null;
27798    #collapsedHeight = 0;
27799
27800    connectedCallback() {
27801      const content = this.querySelector('.text-read-more__content');
27802      const textElement = this.querySelector('.text-read-more__text');
27803      const button = this.querySelector('.text-read-more__button');
27804
27805      if (!content || !textElement || !button) return;
27806
27807      // Set initial state
27808      this.dataset.expanded = 'false';
27809
27810      // Wait for content to render - use double RAF to ensure layout is complete
27811      requestAnimationFrame(() => {
27812        requestAnimationFrame(() => {
27813          // Additional small delay to ensure fonts and styles are applied
27814          setTimeout(() => {
27815            this.#checkOverflow(content, textElement, button);
27816          }, 50);
27817          
27818          // Recheck on resize
27819          const resizeObserver = new ResizeObserver(() => {
27820            if (!this.#expanded) {
27821              this.#checkOverflow(content, textElement, button);
27822            }
27823          });
27824          resizeObserver.observe(content);
27825
27826          // Setup button click handler
27827          button.addEventListener('click', (e) => {
27828            e.preventDefault();
27829            this.#toggle(content, textElement, button);
27830          });
27831        });
27832      });
27833    }
27834
27835    #checkOverflow(content, textElement, button) {
27836      // Ensure collapsed state is applied
27837      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
27838        textElement.classList.add('text-read-more__text--collapsed');
27839      }
27840      
27841      // Get collapsed height first
27842      const collapsedHeight = content.scrollHeight;
27843      this.#collapsedHeight = collapsedHeight;
27844      
27845      // Temporarily remove line-clamp to measure full height
27846      textElement.classList.remove('text-read-more__text--collapsed');
27847      
27848      // Force reflow
27849      void content.offsetHeight;
27850      
27851      const fullHeight = content.scrollHeight;
27852      
27853      // Restore line-clamp
27854      textElement.classList.add('text-read-more__text--collapsed');
27855      
27856      // Show button if content exceeds 2 lines (with small threshold for rounding)
27857      if (fullHeight > collapsedHeight + 5) {
27858        button.removeAttribute('hidden');
27859      } else {
27860        button.setAttribute('hidden', '');
27861      }
27862    }
27863
27864    #toggle(content, textElement, button) {
27865      const startHeight = content.offsetHeight;
27866      let endHeight;
27867
27868      if (!this.#expanded) {
27869        // Expanding
27870        textElement.classList.remove('text-read-more__text--collapsed');
27871        endHeight = content.scrollHeight;
27872        this.#expanded = true;
27873      } else {
27874        // Collapsing
27875        endHeight = this.#collapsedHeight;
27876        this.#expanded = false;
27877      }
27878
27879      this.dataset.expanded = this.#expanded;
27880      button.setAttribute('aria-expanded', this.#expanded);
27881
27882      // Animate
27883      content.style.overflow = 'hidden';
27884      this.#animation?.cancel();
27885
27886      this.#animation = content.animate(
27887        {
27888          height: [`${startHeight}px`, `${endHeight}px`],
27889        },
27890        {
27891          duration: 300,
27892          easing: 'ease-in-out',
27893        }
27894      );
27895
27896      this.#animation.onfinish = () => {
27897        if (this.#expanded) {
27898          content.style.removeProperty('height');
27899          content.style.overflow = '';
27900        } else {
27901          textElement.classList.add('text-read-more__text--collapsed');
27902          content.style.removeProperty('height');
27903          content.style.overflow = '';
27904        }
27905      };
27906    }
27907  }
27908
27909  if (!customElements.get('text-read-more-wrapper')) {
27910    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
27911  }
27912</script>
27912
27913
27914
27915
27916
27917
27918
27919</h4>
27920      
27921  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-3" class="shopify-block">
27922
27923
27924
27925
27926<div
27927    class="
27928      blog-post-details
27929      spacing-style
27930      justify-left
27931      
27932    "
27933    style="--padding-block-start: 0px;--padding-block-end: 0px;"
27934  ><span><time datetime="2026-09-03T22:09:51Z">September 3, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
27935
27936
27937
27938
27939
27940</div>
27941
27942
27943      
27944  
27945
27946      
27947        <a href="/blogs/blog/what-is-a-russian-manicure-the-ultimate-guide-to-precision-e-file-nail-care" class="featured-blog-posts-card__read-more">Read more...</a>
27948      
27949    </div>
27950  </div>
27951</div>
27952
27953
27954
27955
27956
27957      </div>
27958      
27959        
27960</slideshow-slide>
27961
27962  
27963    <slideshow-slide
27964  ref="slides[]"
27965  aria-hidden="true"
27966  style="--slideshow-timeline: --slide-4; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
27967  
27968    class="resource-list__slide"
27969  
27970  
27971  
27972  
27973  
27974  
27975  
27976>
27977  
27978      
27979    
27980      <div class="resource-list__item">
27981        
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995<div
27996  class="
27997    featured-blog-posts-card spacing-style border-style
27998    
27999    
28000  "
28001  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-4"
28002  data-testid="featured-blog-posts-card"
28003  
28004  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
28005rgb(var(--color-border-rgb) / 1.0); --border-radius:
280060px; 
28007--text-align: left;
28008    --horizontal-alignment: left;
28009    --gap: 8px;
28010  "
28011  
28012>
28013  <a
28014    class="featured-blog-posts-card__link"
28015    
28016      href="/blogs/blog/how-to-use-builder-gel-the-ultimate-biab-bible-for-flawless-nails"
28017    
28018  >
28019    <span class="visually-hidden">How to Use Builder Gel: The Ultimate BIAB Bible for Flawless Nails</span>
28020  </a>
28021
28022  <div class="featured-blog-posts-card__inner">
28023    
28024      
28025  
28026
28027
28028
28029
28030<style data-shopify>
28031  
28032    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-4"] {
28033      --ratio: 1 / 1;
28034    }
28035  
28036</style>
28037
28038
28039  <div
28040    class="
28041      image-block
28042      resource-image
28043      
28044      
28045        featured-blog-posts-card__image
28046      
28047      spacing-style border-style
28048      
28049    "
28050    style="--border-width: 1px; --border-style: none; --border-color:
28051rgb(var(--color-border-rgb) / 1.0); --border-radius:
2805212px;  overflow: hidden; 
28053"
28054    
28055  >
28056      <img src="//www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=3840" alt="How to Use Builder Gel: The Ultimate BIAB Bible for Flawless Nails" srcset="//www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/Screenshot_2026-08-12_at_10.05.46_c217598d-5c32-44cf-879d-2ac5e74c8c45.png?v=1788470580&amp;width=3840 3840w" width="3840" height="6410" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
28057    
28058  </div>
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069    
28070
28071    <div class="featured-blog-posts-card__content layout-panel-flex--column">
28072      <h4>
28073  
28074
28075
28076
28077
28078
28079
28080
28081  
28082    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-4 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
28083      <h4>How to Use Builder Gel: The Ultimate BIAB Bible for Flawless Nails</h4>
28084    </div>
28085  
28086
28087
28088
28089
28090<script type="module">
28091  class TextReadMoreWrapper extends HTMLElement {
28092    #expanded = false;
28093    #animation = null;
28094    #collapsedHeight = 0;
28095
28096    connectedCallback() {
28097      const content = this.querySelector('.text-read-more__content');
28098      const textElement = this.querySelector('.text-read-more__text');
28099      const button = this.querySelector('.text-read-more__button');
28100
28101      if (!content || !textElement || !button) return;
28102
28103      // Set initial state
28104      this.dataset.expanded = 'false';
28105
28106      // Wait for content to render - use double RAF to ensure layout is complete
28107      requestAnimationFrame(() => {
28108        requestAnimationFrame(() => {
28109          // Additional small delay to ensure fonts and styles are applied
28110          setTimeout(() => {
28111            this.#checkOverflow(content, textElement, button);
28112          }, 50);
28113          
28114          // Recheck on resize
28115          const resizeObserver = new ResizeObserver(() => {
28116            if (!this.#expanded) {
28117              this.#checkOverflow(content, textElement, button);
28118            }
28119          });
28120          resizeObserver.observe(content);
28121
28122          // Setup button click handler
28123          button.addEventListener('click', (e) => {
28124            e.preventDefault();
28125            this.#toggle(content, textElement, button);
28126          });
28127        });
28128      });
28129    }
28130
28131    #checkOverflow(content, textElement, button) {
28132      // Ensure collapsed state is applied
28133      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
28134        textElement.classList.add('text-read-more__text--collapsed');
28135      }
28136      
28137      // Get collapsed height first
28138      const collapsedHeight = content.scrollHeight;
28139      this.#collapsedHeight = collapsedHeight;
28140      
28141      // Temporarily remove line-clamp to measure full height
28142      textElement.classList.remove('text-read-more__text--collapsed');
28143      
28144      // Force reflow
28145      void content.offsetHeight;
28146      
28147      const fullHeight = content.scrollHeight;
28148      
28149      // Restore line-clamp
28150      textElement.classList.add('text-read-more__text--collapsed');
28151      
28152      // Show button if content exceeds 2 lines (with small threshold for rounding)
28153      if (fullHeight > collapsedHeight + 5) {
28154        button.removeAttribute('hidden');
28155      } else {
28156        button.setAttribute('hidden', '');
28157      }
28158    }
28159
28160    #toggle(content, textElement, button) {
28161      const startHeight = content.offsetHeight;
28162      let endHeight;
28163
28164      if (!this.#expanded) {
28165        // Expanding
28166        textElement.classList.remove('text-read-more__text--collapsed');
28167        endHeight = content.scrollHeight;
28168        this.#expanded = true;
28169      } else {
28170        // Collapsing
28171        endHeight = this.#collapsedHeight;
28172        this.#expanded = false;
28173      }
28174
28175      this.dataset.expanded = this.#expanded;
28176      button.setAttribute('aria-expanded', this.#expanded);
28177
28178      // Animate
28179      content.style.overflow = 'hidden';
28180      this.#animation?.cancel();
28181
28182      this.#animation = content.animate(
28183        {
28184          height: [`${startHeight}px`, `${endHeight}px`],
28185        },
28186        {
28187          duration: 300,
28188          easing: 'ease-in-out',
28189        }
28190      );
28191
28192      this.#animation.onfinish = () => {
28193        if (this.#expanded) {
28194          content.style.removeProperty('height');
28195          content.style.overflow = '';
28196        } else {
28197          textElement.classList.add('text-read-more__text--collapsed');
28198          content.style.removeProperty('height');
28199          content.style.overflow = '';
28200        }
28201      };
28202    }
28203  }
28204
28205  if (!customElements.get('text-read-more-wrapper')) {
28206    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
28207  }
28208</script>
28208
28209
28210
28211
28212
28213
28214
28215</h4>
28216      
28217  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-4" class="shopify-block">
28218
28219
28220
28221
28222<div
28223    class="
28224      blog-post-details
28225      spacing-style
28226      justify-left
28227      
28228    "
28229    style="--padding-block-start: 0px;--padding-block-end: 0px;"
28230  ><span><time datetime="2026-09-03T21:22:56Z">September 3, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
28231
28232
28233
28234
28235
28236</div>
28237
28238
28239      
28240  
28241
28242      
28243        <a href="/blogs/blog/how-to-use-builder-gel-the-ultimate-biab-bible-for-flawless-nails" class="featured-blog-posts-card__read-more">Read more...</a>
28244      
28245    </div>
28246  </div>
28247</div>
28248
28249
28250
28251
28252
28253      </div>
28254      
28255        
28256</slideshow-slide>
28257
28258  
28259    <slideshow-slide
28260  ref="slides[]"
28261  aria-hidden="true"
28262  style="--slideshow-timeline: --slide-5; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
28263  
28264    class="resource-list__slide"
28265  
28266  
28267  
28268  
28269  
28270  
28271  
28272>
28273  
28274      
28275    
28276      <div class="resource-list__item">
28277        
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291<div
28292  class="
28293    featured-blog-posts-card spacing-style border-style
28294    
28295    
28296  "
28297  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-5"
28298  data-testid="featured-blog-posts-card"
28299  
28300  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
28301rgb(var(--color-border-rgb) / 1.0); --border-radius:
283020px; 
28303--text-align: left;
28304    --horizontal-alignment: left;
28305    --gap: 8px;
28306  "
28307  
28308>
28309  <a
28310    class="featured-blog-posts-card__link"
28311    
28312      href="/blogs/blog/gel-x-lifting-the-ultimate-troubleshooting-guide"
28313    
28314  >
28315    <span class="visually-hidden">Gel-X Lifting? The Ultimate Troubleshooting Guide</span>
28316  </a>
28317
28318  <div class="featured-blog-posts-card__inner">
28319    
28320      
28321  
28322
28323
28324
28325
28326<style data-shopify>
28327  
28328    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-5"] {
28329      --ratio: 1 / 1;
28330    }
28331  
28332</style>
28333
28334
28335  <div
28336    class="
28337      image-block
28338      resource-image
28339      
28340      
28341        featured-blog-posts-card__image
28342      
28343      spacing-style border-style
28344      
28345    "
28346    style="--border-width: 1px; --border-style: none; --border-color:
28347rgb(var(--color-border-rgb) / 1.0); --border-radius:
2834812px;  overflow: hidden; 
28349"
28350    
28351  >
28352      <img src="//www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=3840" alt="Gel-X Lifting? The Ultimate Troubleshooting Guide" srcset="//www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/tnbl_gel_x_3005ebfc-f796-4f6e-84f2-53099da9c0da.jpg?v=1788467631&amp;width=3840 3840w" width="3840" height="3799" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
28353    
28354  </div>
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365    
28366
28367    <div class="featured-blog-posts-card__content layout-panel-flex--column">
28368      <h4>
28369  
28370
28371
28372
28373
28374
28375
28376
28377  
28378    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-5 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
28379      <h4>Gel-X Lifting? The Ultimate Troubleshooting Guide</h4>
28380    </div>
28381  
28382
28383
28384
28385
28386<script type="module">
28387  class TextReadMoreWrapper extends HTMLElement {
28388    #expanded = false;
28389    #animation = null;
28390    #collapsedHeight = 0;
28391
28392    connectedCallback() {
28393      const content = this.querySelector('.text-read-more__content');
28394      const textElement = this.querySelector('.text-read-more__text');
28395      const button = this.querySelector('.text-read-more__button');
28396
28397      if (!content || !textElement || !button) return;
28398
28399      // Set initial state
28400      this.dataset.expanded = 'false';
28401
28402      // Wait for content to render - use double RAF to ensure layout is complete
28403      requestAnimationFrame(() => {
28404        requestAnimationFrame(() => {
28405          // Additional small delay to ensure fonts and styles are applied
28406          setTimeout(() => {
28407            this.#checkOverflow(content, textElement, button);
28408          }, 50);
28409          
28410          // Recheck on resize
28411          const resizeObserver = new ResizeObserver(() => {
28412            if (!this.#expanded) {
28413              this.#checkOverflow(content, textElement, button);
28414            }
28415          });
28416          resizeObserver.observe(content);
28417
28418          // Setup button click handler
28419          button.addEventListener('click', (e) => {
28420            e.preventDefault();
28421            this.#toggle(content, textElement, button);
28422          });
28423        });
28424      });
28425    }
28426
28427    #checkOverflow(content, textElement, button) {
28428      // Ensure collapsed state is applied
28429      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
28430        textElement.classList.add('text-read-more__text--collapsed');
28431      }
28432      
28433      // Get collapsed height first
28434      const collapsedHeight = content.scrollHeight;
28435      this.#collapsedHeight = collapsedHeight;
28436      
28437      // Temporarily remove line-clamp to measure full height
28438      textElement.classList.remove('text-read-more__text--collapsed');
28439      
28440      // Force reflow
28441      void content.offsetHeight;
28442      
28443      const fullHeight = content.scrollHeight;
28444      
28445      // Restore line-clamp
28446      textElement.classList.add('text-read-more__text--collapsed');
28447      
28448      // Show button if content exceeds 2 lines (with small threshold for rounding)
28449      if (fullHeight > collapsedHeight + 5) {
28450        button.removeAttribute('hidden');
28451      } else {
28452        button.setAttribute('hidden', '');
28453      }
28454    }
28455
28456    #toggle(content, textElement, button) {
28457      const startHeight = content.offsetHeight;
28458      let endHeight;
28459
28460      if (!this.#expanded) {
28461        // Expanding
28462        textElement.classList.remove('text-read-more__text--collapsed');
28463        endHeight = content.scrollHeight;
28464        this.#expanded = true;
28465      } else {
28466        // Collapsing
28467        endHeight = this.#collapsedHeight;
28468        this.#expanded = false;
28469      }
28470
28471      this.dataset.expanded = this.#expanded;
28472      button.setAttribute('aria-expanded', this.#expanded);
28473
28474      // Animate
28475      content.style.overflow = 'hidden';
28476      this.#animation?.cancel();
28477
28478      this.#animation = content.animate(
28479        {
28480          height: [`${startHeight}px`, `${endHeight}px`],
28481        },
28482        {
28483          duration: 300,
28484          easing: 'ease-in-out',
28485        }
28486      );
28487
28488      this.#animation.onfinish = () => {
28489        if (this.#expanded) {
28490          content.style.removeProperty('height');
28491          content.style.overflow = '';
28492        } else {
28493          textElement.classList.add('text-read-more__text--collapsed');
28494          content.style.removeProperty('height');
28495          content.style.overflow = '';
28496        }
28497      };
28498    }
28499  }
28500
28501  if (!customElements.get('text-read-more-wrapper')) {
28502    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
28503  }
28504</script>
28504
28505
28506
28507
28508
28509
28510
28511</h4>
28512      
28513  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-5" class="shopify-block">
28514
28515
28516
28517
28518<div
28519    class="
28520      blog-post-details
28521      spacing-style
28522      justify-left
28523      
28524    "
28525    style="--padding-block-start: 0px;--padding-block-end: 0px;"
28526  ><span><time datetime="2026-09-03T20:33:47Z">September 3, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
28527
28528
28529
28530
28531
28532</div>
28533
28534
28535      
28536  
28537
28538      
28539        <a href="/blogs/blog/gel-x-lifting-the-ultimate-troubleshooting-guide" class="featured-blog-posts-card__read-more">Read more...</a>
28540      
28541    </div>
28542  </div>
28543</div>
28544
28545
28546
28547
28548
28549      </div>
28550      
28551        
28552</slideshow-slide>
28553
28554  
28555    <slideshow-slide
28556  ref="slides[]"
28557  aria-hidden="true"
28558  style="--slideshow-timeline: --slide-6; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
28559  
28560    class="resource-list__slide"
28561  
28562  
28563  
28564  
28565  
28566  
28567  
28568>
28569  
28570      
28571    
28572      <div class="resource-list__item">
28573        
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587<div
28588  class="
28589    featured-blog-posts-card spacing-style border-style
28590    
28591    
28592  "
28593  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-6"
28594  data-testid="featured-blog-posts-card"
28595  
28596  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
28597rgb(var(--color-border-rgb) / 1.0); --border-radius:
285980px; 
28599--text-align: left;
28600    --horizontal-alignment: left;
28601    --gap: 8px;
28602  "
28603  
28604>
28605  <a
28606    class="featured-blog-posts-card__link"
28607    
28608      href="/blogs/blog/e-files-vs-hand-files-what-s-the-difference-and-which-should-you-use"
28609    
28610  >
28611    <span class="visually-hidden">E-Files vs Hand Files: What’s the Difference and Which Should You Use?</span>
28612  </a>
28613
28614  <div class="featured-blog-posts-card__inner">
28615    
28616      
28617  
28618
28619
28620
28621
28622<style data-shopify>
28623  
28624    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-6"] {
28625      --ratio: 1 / 1;
28626    }
28627  
28628</style>
28629
28630
28631  <div
28632    class="
28633      image-block
28634      resource-image
28635      
28636      
28637        featured-blog-posts-card__image
28638      
28639      spacing-style border-style
28640      
28641    "
28642    style="--border-width: 1px; --border-style: none; --border-color:
28643rgb(var(--color-border-rgb) / 1.0); --border-radius:
2864412px;  overflow: hidden; 
28645"
28646    
28647  >
28648      <img src="//www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=3840" alt="E-Files vs Hand Files: What’s the Difference and Which Should You Use?" srcset="//www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/onail5_b801bbd0-7566-4192-b075-536ebe2e70aa.jpg?v=1787841080&amp;width=3840 3840w" width="3840" height="3840" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
28649    
28650  </div>
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661    
28662
28663    <div class="featured-blog-posts-card__content layout-panel-flex--column">
28664      <h4>
28665  
28666
28667
28668
28669
28670
28671
28672
28673  
28674    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-6 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
28675      <h4>E-Files vs Hand Files: What’s the Difference and Which Should You Use?</h4>
28676    </div>
28677  
28678
28679
28680
28681
28682<script type="module">
28683  class TextReadMoreWrapper extends HTMLElement {
28684    #expanded = false;
28685    #animation = null;
28686    #collapsedHeight = 0;
28687
28688    connectedCallback() {
28689      const content = this.querySelector('.text-read-more__content');
28690      const textElement = this.querySelector('.text-read-more__text');
28691      const button = this.querySelector('.text-read-more__button');
28692
28693      if (!content || !textElement || !button) return;
28694
28695      // Set initial state
28696      this.dataset.expanded = 'false';
28697
28698      // Wait for content to render - use double RAF to ensure layout is complete
28699      requestAnimationFrame(() => {
28700        requestAnimationFrame(() => {
28701          // Additional small delay to ensure fonts and styles are applied
28702          setTimeout(() => {
28703            this.#checkOverflow(content, textElement, button);
28704          }, 50);
28705          
28706          // Recheck on resize
28707          const resizeObserver = new ResizeObserver(() => {
28708            if (!this.#expanded) {
28709              this.#checkOverflow(content, textElement, button);
28710            }
28711          });
28712          resizeObserver.observe(content);
28713
28714          // Setup button click handler
28715          button.addEventListener('click', (e) => {
28716            e.preventDefault();
28717            this.#toggle(content, textElement, button);
28718          });
28719        });
28720      });
28721    }
28722
28723    #checkOverflow(content, textElement, button) {
28724      // Ensure collapsed state is applied
28725      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
28726        textElement.classList.add('text-read-more__text--collapsed');
28727      }
28728      
28729      // Get collapsed height first
28730      const collapsedHeight = content.scrollHeight;
28731      this.#collapsedHeight = collapsedHeight;
28732      
28733      // Temporarily remove line-clamp to measure full height
28734      textElement.classList.remove('text-read-more__text--collapsed');
28735      
28736      // Force reflow
28737      void content.offsetHeight;
28738      
28739      const fullHeight = content.scrollHeight;
28740      
28741      // Restore line-clamp
28742      textElement.classList.add('text-read-more__text--collapsed');
28743      
28744      // Show button if content exceeds 2 lines (with small threshold for rounding)
28745      if (fullHeight > collapsedHeight + 5) {
28746        button.removeAttribute('hidden');
28747      } else {
28748        button.setAttribute('hidden', '');
28749      }
28750    }
28751
28752    #toggle(content, textElement, button) {
28753      const startHeight = content.offsetHeight;
28754      let endHeight;
28755
28756      if (!this.#expanded) {
28757        // Expanding
28758        textElement.classList.remove('text-read-more__text--collapsed');
28759        endHeight = content.scrollHeight;
28760        this.#expanded = true;
28761      } else {
28762        // Collapsing
28763        endHeight = this.#collapsedHeight;
28764        this.#expanded = false;
28765      }
28766
28767      this.dataset.expanded = this.#expanded;
28768      button.setAttribute('aria-expanded', this.#expanded);
28769
28770      // Animate
28771      content.style.overflow = 'hidden';
28772      this.#animation?.cancel();
28773
28774      this.#animation = content.animate(
28775        {
28776          height: [`${startHeight}px`, `${endHeight}px`],
28777        },
28778        {
28779          duration: 300,
28780          easing: 'ease-in-out',
28781        }
28782      );
28783
28784      this.#animation.onfinish = () => {
28785        if (this.#expanded) {
28786          content.style.removeProperty('height');
28787          content.style.overflow = '';
28788        } else {
28789          textElement.classList.add('text-read-more__text--collapsed');
28790          content.style.removeProperty('height');
28791          content.style.overflow = '';
28792        }
28793      };
28794    }
28795  }
28796
28797  if (!customElements.get('text-read-more-wrapper')) {
28798    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
28799  }
28800</script>
28800
28801
28802
28803
28804
28805
28806
28807</h4>
28808      
28809  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-6" class="shopify-block">
28810
28811
28812
28813
28814<div
28815    class="
28816      blog-post-details
28817      spacing-style
28818      justify-left
28819      
28820    "
28821    style="--padding-block-start: 0px;--padding-block-end: 0px;"
28822  ><span><time datetime="2026-08-27T14:31:17Z">August 27, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
28823
28824
28825
28826
28827
28828</div>
28829
28830
28831      
28832  
28833
28834      
28835        <a href="/blogs/blog/e-files-vs-hand-files-what-s-the-difference-and-which-should-you-use" class="featured-blog-posts-card__read-more">Read more...</a>
28836      
28837    </div>
28838  </div>
28839</div>
28840
28841
28842
28843
28844
28845      </div>
28846      
28847        
28848</slideshow-slide>
28849
28850  
28851    <slideshow-slide
28852  ref="slides[]"
28853  aria-hidden="true"
28854  style="--slideshow-timeline: --slide-7; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
28855  
28856    class="resource-list__slide"
28857  
28858  
28859  
28860  
28861  
28862  
28863  
28864>
28865  
28866      
28867    
28868      <div class="resource-list__item">
28869        
28870
28871
28872
28873
28874
28875
28876
28877
28878
28879
28880
28881
28882
28883<div
28884  class="
28885    featured-blog-posts-card spacing-style border-style
28886    
28887    
28888  "
28889  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-7"
28890  data-testid="featured-blog-posts-card"
28891  
28892  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
28893rgb(var(--color-border-rgb) / 1.0); --border-radius:
288940px; 
28895--text-align: left;
28896    --horizontal-alignment: left;
28897    --gap: 8px;
28898  "
28899  
28900>
28901  <a
28902    class="featured-blog-posts-card__link"
28903    
28904      href="/blogs/blog/how-to-know-if-i-am-allergic-to-nail-products"
28905    
28906  >
28907    <span class="visually-hidden">How to Know If I Am Allergic to Nail Products</span>
28908  </a>
28909
28910  <div class="featured-blog-posts-card__inner">
28911    
28912      
28913  
28914
28915
28916
28917
28918<style data-shopify>
28919  
28920    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-7"] {
28921      --ratio: 1 / 1;
28922    }
28923  
28924</style>
28925
28926
28927  <div
28928    class="
28929      image-block
28930      resource-image
28931      
28932      
28933        featured-blog-posts-card__image
28934      
28935      spacing-style border-style
28936      
28937    "
28938    style="--border-width: 1px; --border-style: none; --border-color:
28939rgb(var(--color-border-rgb) / 1.0); --border-radius:
2894012px;  overflow: hidden; 
28941"
28942    
28943  >
28944      <img src="//www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=3840" alt="How to Know If I Am Allergic to Nail Products" srcset="//www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/Nail_tech_gloves_56a5ee40-8051-44b7-8a52-3c33a1774912.jpg?v=1787841056&amp;width=3840 3840w" width="3840" height="4798" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
28945    
28946  </div>
28947
28948
28949
28950
28951
28952
28953
28954
28955
28956
28957    
28958
28959    <div class="featured-blog-posts-card__content layout-panel-flex--column">
28960      <h4>
28961  
28962
28963
28964
28965
28966
28967
28968
28969  
28970    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-7 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
28971      <h4>How to Know If I Am Allergic to Nail Products</h4>
28972    </div>
28973  
28974
28975
28976
28977
28978<script type="module">
28979  class TextReadMoreWrapper extends HTMLElement {
28980    #expanded = false;
28981    #animation = null;
28982    #collapsedHeight = 0;
28983
28984    connectedCallback() {
28985      const content = this.querySelector('.text-read-more__content');
28986      const textElement = this.querySelector('.text-read-more__text');
28987      const button = this.querySelector('.text-read-more__button');
28988
28989      if (!content || !textElement || !button) return;
28990
28991      // Set initial state
28992      this.dataset.expanded = 'false';
28993
28994      // Wait for content to render - use double RAF to ensure layout is complete
28995      requestAnimationFrame(() => {
28996        requestAnimationFrame(() => {
28997          // Additional small delay to ensure fonts and styles are applied
28998          setTimeout(() => {
28999            this.#checkOverflow(content, textElement, button);
29000          }, 50);
29001          
29002          // Recheck on resize
29003          const resizeObserver = new ResizeObserver(() => {
29004            if (!this.#expanded) {
29005              this.#checkOverflow(content, textElement, button);
29006            }
29007          });
29008          resizeObserver.observe(content);
29009
29010          // Setup button click handler
29011          button.addEventListener('click', (e) => {
29012            e.preventDefault();
29013            this.#toggle(content, textElement, button);
29014          });
29015        });
29016      });
29017    }
29018
29019    #checkOverflow(content, textElement, button) {
29020      // Ensure collapsed state is applied
29021      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
29022        textElement.classList.add('text-read-more__text--collapsed');
29023      }
29024      
29025      // Get collapsed height first
29026      const collapsedHeight = content.scrollHeight;
29027      this.#collapsedHeight = collapsedHeight;
29028      
29029      // Temporarily remove line-clamp to measure full height
29030      textElement.classList.remove('text-read-more__text--collapsed');
29031      
29032      // Force reflow
29033      void content.offsetHeight;
29034      
29035      const fullHeight = content.scrollHeight;
29036      
29037      // Restore line-clamp
29038      textElement.classList.add('text-read-more__text--collapsed');
29039      
29040      // Show button if content exceeds 2 lines (with small threshold for rounding)
29041      if (fullHeight > collapsedHeight + 5) {
29042        button.removeAttribute('hidden');
29043      } else {
29044        button.setAttribute('hidden', '');
29045      }
29046    }
29047
29048    #toggle(content, textElement, button) {
29049      const startHeight = content.offsetHeight;
29050      let endHeight;
29051
29052      if (!this.#expanded) {
29053        // Expanding
29054        textElement.classList.remove('text-read-more__text--collapsed');
29055        endHeight = content.scrollHeight;
29056        this.#expanded = true;
29057      } else {
29058        // Collapsing
29059        endHeight = this.#collapsedHeight;
29060        this.#expanded = false;
29061      }
29062
29063      this.dataset.expanded = this.#expanded;
29064      button.setAttribute('aria-expanded', this.#expanded);
29065
29066      // Animate
29067      content.style.overflow = 'hidden';
29068      this.#animation?.cancel();
29069
29070      this.#animation = content.animate(
29071        {
29072          height: [`${startHeight}px`, `${endHeight}px`],
29073        },
29074        {
29075          duration: 300,
29076          easing: 'ease-in-out',
29077        }
29078      );
29079
29080      this.#animation.onfinish = () => {
29081        if (this.#expanded) {
29082          content.style.removeProperty('height');
29083          content.style.overflow = '';
29084        } else {
29085          textElement.classList.add('text-read-more__text--collapsed');
29086          content.style.removeProperty('height');
29087          content.style.overflow = '';
29088        }
29089      };
29090    }
29091  }
29092
29093  if (!customElements.get('text-read-more-wrapper')) {
29094    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
29095  }
29096</script>
29096
29097
29098
29099
29100
29101
29102
29103</h4>
29104      
29105  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-7" class="shopify-block">
29106
29107
29108
29109
29110<div
29111    class="
29112      blog-post-details
29113      spacing-style
29114      justify-left
29115      
29116    "
29117    style="--padding-block-start: 0px;--padding-block-end: 0px;"
29118  ><span><time datetime="2026-08-27T14:30:52Z">August 27, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
29119
29120
29121
29122
29123
29124</div>
29125
29126
29127      
29128  
29129
29130      
29131        <a href="/blogs/blog/how-to-know-if-i-am-allergic-to-nail-products" class="featured-blog-posts-card__read-more">Read more...</a>
29132      
29133    </div>
29134  </div>
29135</div>
29136
29137
29138
29139
29140
29141      </div>
29142      
29143        
29144</slideshow-slide>
29145
29146  
29147    <slideshow-slide
29148  ref="slides[]"
29149  aria-hidden="true"
29150  style="--slideshow-timeline: --slide-8; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
29151  
29152    class="resource-list__slide"
29153  
29154  
29155  
29156  
29157  
29158  
29159  
29160>
29161  
29162      
29163    
29164      <div class="resource-list__item">
29165        
29166
29167
29168
29169
29170
29171
29172
29173
29174
29175
29176
29177
29178
29179<div
29180  class="
29181    featured-blog-posts-card spacing-style border-style
29182    
29183    
29184  "
29185  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-8"
29186  data-testid="featured-blog-posts-card"
29187  
29188  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
29189rgb(var(--color-border-rgb) / 1.0); --border-radius:
291900px; 
29191--text-align: left;
29192    --horizontal-alignment: left;
29193    --gap: 8px;
29194  "
29195  
29196>
29197  <a
29198    class="featured-blog-posts-card__link"
29199    
29200      href="/blogs/blog/how-to-price-your-nail-sets-without-losing-clients-2026-guide"
29201    
29202  >
29203    <span class="visually-hidden">How to Price Your Nail Sets Without Losing Clients (2026 Guide)</span>
29204  </a>
29205
29206  <div class="featured-blog-posts-card__inner">
29207    
29208      
29209  
29210
29211
29212
29213
29214<style data-shopify>
29215  
29216    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-8"] {
29217      --ratio: 1 / 1;
29218    }
29219  
29220</style>
29221
29222
29223  <div
29224    class="
29225      image-block
29226      resource-image
29227      
29228      
29229        featured-blog-posts-card__image
29230      
29231      spacing-style border-style
29232      
29233    "
29234    style="--border-width: 1px; --border-style: none; --border-color:
29235rgb(var(--color-border-rgb) / 1.0); --border-radius:
2923612px;  overflow: hidden; 
29237"
29238    
29239  >
29240      <img src="//www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=3840" alt="How to Price Your Nail Sets Without Losing Clients (2026 Guide)" srcset="//www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/Nail_prices_1bde0895-e455-4d85-a9a4-4f6ee812d23d.png?v=1786613056&amp;width=3840 3840w" width="3840" height="2560" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
29241    
29242  </div>
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253    
29254
29255    <div class="featured-blog-posts-card__content layout-panel-flex--column">
29256      <h4>
29257  
29258
29259
29260
29261
29262
29263
29264
29265  
29266    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-8 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
29267      <h4>How to Price Your Nail Sets Without Losing Clients (2026 Guide)</h4>
29268    </div>
29269  
29270
29271
29272
29273
29274<script type="module">
29275  class TextReadMoreWrapper extends HTMLElement {
29276    #expanded = false;
29277    #animation = null;
29278    #collapsedHeight = 0;
29279
29280    connectedCallback() {
29281      const content = this.querySelector('.text-read-more__content');
29282      const textElement = this.querySelector('.text-read-more__text');
29283      const button = this.querySelector('.text-read-more__button');
29284
29285      if (!content || !textElement || !button) return;
29286
29287      // Set initial state
29288      this.dataset.expanded = 'false';
29289
29290      // Wait for content to render - use double RAF to ensure layout is complete
29291      requestAnimationFrame(() => {
29292        requestAnimationFrame(() => {
29293          // Additional small delay to ensure fonts and styles are applied
29294          setTimeout(() => {
29295            this.#checkOverflow(content, textElement, button);
29296          }, 50);
29297          
29298          // Recheck on resize
29299          const resizeObserver = new ResizeObserver(() => {
29300            if (!this.#expanded) {
29301              this.#checkOverflow(content, textElement, button);
29302            }
29303          });
29304          resizeObserver.observe(content);
29305
29306          // Setup button click handler
29307          button.addEventListener('click', (e) => {
29308            e.preventDefault();
29309            this.#toggle(content, textElement, button);
29310          });
29311        });
29312      });
29313    }
29314
29315    #checkOverflow(content, textElement, button) {
29316      // Ensure collapsed state is applied
29317      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
29318        textElement.classList.add('text-read-more__text--collapsed');
29319      }
29320      
29321      // Get collapsed height first
29322      const collapsedHeight = content.scrollHeight;
29323      this.#collapsedHeight = collapsedHeight;
29324      
29325      // Temporarily remove line-clamp to measure full height
29326      textElement.classList.remove('text-read-more__text--collapsed');
29327      
29328      // Force reflow
29329      void content.offsetHeight;
29330      
29331      const fullHeight = content.scrollHeight;
29332      
29333      // Restore line-clamp
29334      textElement.classList.add('text-read-more__text--collapsed');
29335      
29336      // Show button if content exceeds 2 lines (with small threshold for rounding)
29337      if (fullHeight > collapsedHeight + 5) {
29338        button.removeAttribute('hidden');
29339      } else {
29340        button.setAttribute('hidden', '');
29341      }
29342    }
29343
29344    #toggle(content, textElement, button) {
29345      const startHeight = content.offsetHeight;
29346      let endHeight;
29347
29348      if (!this.#expanded) {
29349        // Expanding
29350        textElement.classList.remove('text-read-more__text--collapsed');
29351        endHeight = content.scrollHeight;
29352        this.#expanded = true;
29353      } else {
29354        // Collapsing
29355        endHeight = this.#collapsedHeight;
29356        this.#expanded = false;
29357      }
29358
29359      this.dataset.expanded = this.#expanded;
29360      button.setAttribute('aria-expanded', this.#expanded);
29361
29362      // Animate
29363      content.style.overflow = 'hidden';
29364      this.#animation?.cancel();
29365
29366      this.#animation = content.animate(
29367        {
29368          height: [`${startHeight}px`, `${endHeight}px`],
29369        },
29370        {
29371          duration: 300,
29372          easing: 'ease-in-out',
29373        }
29374      );
29375
29376      this.#animation.onfinish = () => {
29377        if (this.#expanded) {
29378          content.style.removeProperty('height');
29379          content.style.overflow = '';
29380        } else {
29381          textElement.classList.add('text-read-more__text--collapsed');
29382          content.style.removeProperty('height');
29383          content.style.overflow = '';
29384        }
29385      };
29386    }
29387  }
29388
29389  if (!customElements.get('text-read-more-wrapper')) {
29390    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
29391  }
29392</script>
29392
29393
29394
29395
29396
29397
29398
29399</h4>
29400      
29401  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-8" class="shopify-block">
29402
29403
29404
29405
29406<div
29407    class="
29408      blog-post-details
29409      spacing-style
29410      justify-left
29411      
29412    "
29413    style="--padding-block-start: 0px;--padding-block-end: 0px;"
29414  ><span><time datetime="2026-08-07T14:58:29Z">August 7, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
29415
29416
29417
29418
29419
29420</div>
29421
29422
29423      
29424  
29425
29426      
29427        <a href="/blogs/blog/how-to-price-your-nail-sets-without-losing-clients-2026-guide" class="featured-blog-posts-card__read-more">Read more...</a>
29428      
29429    </div>
29430  </div>
29431</div>
29432
29433
29434
29435
29436
29437      </div>
29438      
29439        
29440</slideshow-slide>
29441
29442  
29443    <slideshow-slide
29444  ref="slides[]"
29445  aria-hidden="true"
29446  style="--slideshow-timeline: --slide-9; --product-media-fit: cover; --grid-template-rows: 50dvh 1fr; --grid-template-rows-desktop: 70dvh 1fr;"
29447  
29448    class="resource-list__slide"
29449  
29450  
29451  
29452  
29453  
29454  
29455  
29456>
29457  
29458      
29459    
29460      <div class="resource-list__item">
29461        
29462
29463
29464
29465
29466
29467
29468
29469
29470
29471
29472
29473
29474
29475<div
29476  class="
29477    featured-blog-posts-card spacing-style border-style
29478    
29479    
29480  "
29481  data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-9"
29482  data-testid="featured-blog-posts-card"
29483  
29484  style="--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;--border-width: 1px; --border-style: none; --border-color:
29485rgb(var(--color-border-rgb) / 1.0); --border-radius:
294860px; 
29487--text-align: left;
29488    --horizontal-alignment: left;
29489    --gap: 8px;
29490  "
29491  
29492>
29493  <a
29494    class="featured-blog-posts-card__link"
29495    
29496      href="/blogs/blog/choosing-the-right-acrylic-liquid-monomer-which-one-is-best-for-you"
29497    
29498  >
29499    <span class="visually-hidden">Choosing the Right Acrylic Liquid Monomer: Which One Is Best for You?</span>
29500  </a>
29501
29502  <div class="featured-blog-posts-card__inner">
29503    
29504      
29505  
29506
29507
29508
29509
29510<style data-shopify>
29511  
29512    .featured-blog-posts-card[data-block-id="AcVFUazVHSndoeFhaN__static-blog-post-card-9"] {
29513      --ratio: 1 / 1;
29514    }
29515  
29516</style>
29517
29518
29519  <div
29520    class="
29521      image-block
29522      resource-image
29523      
29524      
29525        featured-blog-posts-card__image
29526      
29527      spacing-style border-style
29528      
29529    "
29530    style="--border-width: 1px; --border-style: none; --border-color:
29531rgb(var(--color-border-rgb) / 1.0); --border-radius:
2953212px;  overflow: hidden; 
29533"
29534    
29535  >
29536      <img src="//www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=3840" alt="Choosing the Right Acrylic Liquid Monomer: Which One Is Best for You?" srcset="//www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=352 352w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=832 832w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=1200 1200w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=1600 1600w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=1920 1920w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=2560 2560w, //www.tnbl.co.uk/cdn/shop/articles/tnbl-premium-acrylic-monomer-hema-free-500ml-monomer-deodoriser-30ml-bundle-p10283-22016_medium_33549618-3366-4d67-a4e7-6893787699dc.jpg?v=1783674240&amp;width=3840 3840w" width="3840" height="3840" loading="eager" class="image-block__image" sizes="(min-width: 750px) 25vw, 100vw">
29537    
29538  </div>
29539
29540
29541
29542
29543
29544
29545
29546
29547
29548
29549    
29550
29551    <div class="featured-blog-posts-card__content layout-panel-flex--column">
29552      <h4>
29553  
29554
29555
29556
29557
29558
29559
29560
29561  
29562    <div class=" spacing-style text-block text-block--AMFBLazAvd0ZjbmJse__title-9 custom    text-block--align-left custom-typography  custom-font-size  custom-color   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);--font-size: 1.25rem;      --font-weight: var(--font-heading--weight);--font-family: var(--font-heading--family);    --text-transform: none;    --text-wrap: pretty;          --line-height: var(--line-height--body-normal);        --letter-spacing: var(--letter-spacing--body-normal);    --width: 100%;    --max-width: var(--max-width--body-);          --text-align: left;          ">
29563      <h4>Choosing the Right Acrylic Liquid Monomer: Which One Is Best for You?</h4>
29564    </div>
29565  
29566
29567
29568
29569
29570<script type="module">
29571  class TextReadMoreWrapper extends HTMLElement {
29572    #expanded = false;
29573    #animation = null;
29574    #collapsedHeight = 0;
29575
29576    connectedCallback() {
29577      const content = this.querySelector('.text-read-more__content');
29578      const textElement = this.querySelector('.text-read-more__text');
29579      const button = this.querySelector('.text-read-more__button');
29580
29581      if (!content || !textElement || !button) return;
29582
29583      // Set initial state
29584      this.dataset.expanded = 'false';
29585
29586      // Wait for content to render - use double RAF to ensure layout is complete
29587      requestAnimationFrame(() => {
29588        requestAnimationFrame(() => {
29589          // Additional small delay to ensure fonts and styles are applied
29590          setTimeout(() => {
29591            this.#checkOverflow(content, textElement, button);
29592          }, 50);
29593          
29594          // Recheck on resize
29595          const resizeObserver = new ResizeObserver(() => {
29596            if (!this.#expanded) {
29597              this.#checkOverflow(content, textElement, button);
29598            }
29599          });
29600          resizeObserver.observe(content);
29601
29602          // Setup button click handler
29603          button.addEventListener('click', (e) => {
29604            e.preventDefault();
29605            this.#toggle(content, textElement, button);
29606          });
29607        });
29608      });
29609    }
29610
29611    #checkOverflow(content, textElement, button) {
29612      // Ensure collapsed state is applied
29613      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
29614        textElement.classList.add('text-read-more__text--collapsed');
29615      }
29616      
29617      // Get collapsed height first
29618      const collapsedHeight = content.scrollHeight;
29619      this.#collapsedHeight = collapsedHeight;
29620      
29621      // Temporarily remove line-clamp to measure full height
29622      textElement.classList.remove('text-read-more__text--collapsed');
29623      
29624      // Force reflow
29625      void content.offsetHeight;
29626      
29627      const fullHeight = content.scrollHeight;
29628      
29629      // Restore line-clamp
29630      textElement.classList.add('text-read-more__text--collapsed');
29631      
29632      // Show button if content exceeds 2 lines (with small threshold for rounding)
29633      if (fullHeight > collapsedHeight + 5) {
29634        button.removeAttribute('hidden');
29635      } else {
29636        button.setAttribute('hidden', '');
29637      }
29638    }
29639
29640    #toggle(content, textElement, button) {
29641      const startHeight = content.offsetHeight;
29642      let endHeight;
29643
29644      if (!this.#expanded) {
29645        // Expanding
29646        textElement.classList.remove('text-read-more__text--collapsed');
29647        endHeight = content.scrollHeight;
29648        this.#expanded = true;
29649      } else {
29650        // Collapsing
29651        endHeight = this.#collapsedHeight;
29652        this.#expanded = false;
29653      }
29654
29655      this.dataset.expanded = this.#expanded;
29656      button.setAttribute('aria-expanded', this.#expanded);
29657
29658      // Animate
29659      content.style.overflow = 'hidden';
29660      this.#animation?.cancel();
29661
29662      this.#animation = content.animate(
29663        {
29664          height: [`${startHeight}px`, `${endHeight}px`],
29665        },
29666        {
29667          duration: 300,
29668          easing: 'ease-in-out',
29669        }
29670      );
29671
29672      this.#animation.onfinish = () => {
29673        if (this.#expanded) {
29674          content.style.removeProperty('height');
29675          content.style.overflow = '';
29676        } else {
29677          textElement.classList.add('text-read-more__text--collapsed');
29678          content.style.removeProperty('height');
29679          content.style.overflow = '';
29680        }
29681      };
29682    }
29683  }
29684
29685  if (!customElements.get('text-read-more-wrapper')) {
29686    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
29687  }
29688</script>
29688
29689
29690
29691
29692
29693
29694
29695</h4>
29696      
29697  <div id="shopify-block-Ad05lb0dMSDA1bFAyU__blog-post-info-text-9" class="shopify-block">
29698
29699
29700
29701
29702<div
29703    class="
29704      blog-post-details
29705      spacing-style
29706      justify-left
29707      
29708    "
29709    style="--padding-block-start: 0px;--padding-block-end: 0px;"
29710  ><span><time datetime="2026-07-10T09:03:18Z">July 10, 2026</time></span><span>|</span><span>Tnbl Tnbl</span></div>
29711
29712
29713
29714
29715
29716</div>
29717
29718
29719      
29720  
29721
29722      
29723        <a href="/blogs/blog/choosing-the-right-acrylic-liquid-monomer-which-one-is-best-for-you" class="featured-blog-posts-card__read-more">Read more...</a>
29724      
29725    </div>
29726  </div>
29727</div>
29728
29729
29730
29731
29732
29733      </div>
29734</slideshow-slide>
29735
29736  
29737
29738    </slideshow-slides>
29739  </slideshow-container>
29740  
29741</slideshow-component>
29742
29743
29744
29745</div>
29746
29747
29748    
29749</div>
29750
29751
29752
29753
29754</div>
29755
29756
29757
29758
29759</section>
29760    </main>
29761
29762    <!-- BEGIN sections: footer-group -->
29763<footer id="shopify-section-sections--28213213528410__footer_m9NzUG" class="shopify-section shopify-section-group-footer-group section-wrapper">
29764
29765<div class="section-background color-scheme-3"></div>
29766<div
29767  class="section section--page-width color-scheme-3"
29768>
29769  
29770  <div
29771    class="
29772      footer-content
29773      spacing-style
29774      
29775      
29776    "
29777    style="
29778      --padding-block-start: max(20px, calc(var(--spacing-scale) * 30px));--padding-block-end: 0px;
29779      --footer-gap: 20px;
29780      --grid-columns: 1;
29781      --last-row-count: 1;
29782      --tablet-last-row-count: 1;
29783    "
29784  >
29785    
29786
29787
29788<div
29789  class="
29790    group-block
29791    group-block--height-fit
29792    group-block--width-fill
29793    border-style
29794    spacing-style
29795    size-style
29796    
29797    
29798    
29799    
29800  "
29801  style="
29802    --border-width: 1px; --border-style: none; --border-color:
29803rgb(var(--color-border-rgb) / 1.0); --border-radius:
298040px; 
29805
29806    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
29807    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
29808    
29809  "
29810  
29811  data-testid="group-block"
29812><div class="group-block__media-wrapper">
29813    
29814
29815
29816
29817    
29818  </div>
29819
29820  <div
29821    class="
29822      group-block-content
29823      
29824      layout-panel-flex
29825      layout-panel-flex--column
29826       mobile-column
29827      
29828      
29829    "
29830    
29831    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
29832
29833--gap: 12px;
29834
29835--horizontal-alignment: flex-start; --vertical-alignment: center;
29836--vertical-alignment-mobile: center;
29837"
29838  >
29839  
29840
29841
29842<div
29843  class="
29844    group-block
29845    group-block--height-fit
29846    group-block--width-fill
29847    border-style
29848    spacing-style
29849    size-style
29850    
29851    
29852    
29853    
29854  "
29855  style="
29856    --border-width: 1px; --border-style: none; --border-color:
29857rgb(var(--color-border-rgb) / 1.0); --border-radius:
298580px; 
29859
29860    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
29861    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
29862    
29863  "
29864  
29865  data-testid="group-block"
29866><div class="group-block__media-wrapper">
29867    
29868
29869
29870
29871    
29872  </div>
29873
29874  <div
29875    class="
29876      group-block-content
29877      
29878      layout-panel-flex
29879      layout-panel-flex--column
29880       mobile-column
29881      
29882      
29883    "
29884    
29885    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
29886
29887--gap: 12px;
29888
29889--horizontal-alignment: flex-start; --vertical-alignment: center;
29890--vertical-alignment-mobile: center;
29891"
29892  >
29893  
29894
29895
29896<email-signup-block
29897  class="email-signup-block size-style spacing-style"
29898  style="--size-style-width: 100%;--size-style-height: ;--padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;"
29899  
29900>
29901  
29902    <div class="email-signup__heading paragraph">
29903      Newsletter
29904    </div>
29905  
29906<form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="email-signup__form spacing-style"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
29907    <div
29908      class="email-signup__input-group "
29909      style="--border-width: 1px; --border-radius: 100px;"
29910    >
29911      <label
29912        for="EmailInput-ANTllNjRyTVZRaVNTW__email_signup_JFmxQg"
29913        class="visually-hidden"
29914      >
29915        Email
29916      </label>
29917      <input
29918        id="EmailInput-ANTllNjRyTVZRaVNTW__email_signup_JFmxQg"
29919        class="email-signup__input email-signup__input--underline h3 "
29920        type="email"
29921        name="contact[email]"
29922        autocorrect="off"
29923        autocapitalize="off"
29924        autocomplete="email"
29925        placeholder="Email address"
29926        required
29927        
29928      >
29929      <button
29930        class="email-signup__button email-signup__button--integrated email-signup__button--both paragraph button-unstyled button-unstyled--ANTllNjRyTVZRaVNTW__email_signup_JFmxQg "
29931        
29932          aria-label="Sign up"
29933        
29934      >
29935        
29936        Subscribe
29937        <svg
29938          viewBox="0 0 20 20"
29939          xmlns="http://www.w3.org/2000/svg"
29940          focusable="false"
29941          aria-hidden="true"
29942          class="email-signup__button-icon"
29943        >
29944          
29945<path
29946      clip-rule="evenodd"
29947      d="m11.246 5.31759c.0322-.07821.0833-.14723.1486-.20093.0654-.0537.143-.09041.2259-.10686.083-.01645.1688-.01214.2497.01257.0808.0247.1544.06902.214.12902l4.104 4.104c.0478.04765.0857.10426.1115.16659.0259.06232.0392.12913.0392.19661 0 .06747-.0133.13429-.0392.19661-.0258.06233-.0637.11893-.1115.16659l-4.104 4.10401c-.0963.0963-.227.1504-.3632.1504s-.2669-.0541-.3632-.1504-.1504-.227-.1504-.3632.0541-.2669.1504-.3632l3.2288-3.2278h-11.0736c-.13606 0-.26654-.0541-.36275-.15027-.0962-.0962-.15025-.22669-.15025-.36274 0-.13606.05405-.26654.15025-.36275.09621-.0962.22669-.15025.36275-.15025h11.0736l-3.2288-3.2278c-.0721-.07178-.1212-.16335-.1411-.2631s-.0097-.20316.0293-.2971z"
29948      fill="currentColor"
29949      fill-rule="evenodd"
29950    />
29951        </svg>
29952        
29953      </button>
29954    </div></form>
29955
29956  
29956<script
29957    src="//www.tnbl.co.uk/cdn/shop/t/6/assets/email-signup.js?v=11926998321451148611774530326"
29958    defer
29959  ></script>
29959
29960</email-signup-block>
29961
29962
29963
29964
29965
29966</div>
29967</div>
29968
29969
29970
29971<script type="module">
29972  (function() {
29973    // Only run if Intersection Observer is supported
29974    if (typeof IntersectionObserver === 'undefined') {
29975      // Fallback: show all animated content immediately
29976      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
29977        el.classList.add('group-block-content--in-view');
29978      });
29979      return;
29980    }
29981
29982    // Respect reduced motion preference
29983    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
29984    if (prefersReducedMotion) {
29985      // Show all animated content immediately without animation
29986      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
29987        el.style.opacity = '1';
29988        el.style.transform = 'none';
29989      });
29990      return;
29991    }
29992
29993    // Set up Intersection Observer for scroll-triggered animations
29994    const observerOptions = {
29995      root: null,
29996      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
29997      threshold: 0.1 // Trigger when 10% of element is visible
29998    };
29999
30000    const observer = new IntersectionObserver((entries) => {
30001      entries.forEach(entry => {
30002        if (entry.isIntersecting) {
30003          const contentElement = entry.target;
30004          // Add the in-view class to trigger animation
30005          contentElement.classList.add('group-block-content--in-view');
30006          // Unobserve after animation is triggered (only animate once)
30007          observer.unobserve(contentElement);
30008        }
30009      });
30010    }, observerOptions);
30011
30012    // Observe all group blocks with animations
30013    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30014      observer.observe(el);
30015    });
30016  })();
30017</script>
30017
30018
30019
30020
30021
30022
30023
30024<div
30025  class="
30026    group-block
30027    group-block--height-fit
30028    group-block--width-fill
30029    border-style
30030    spacing-style
30031    size-style
30032    
30033    
30034    
30035    
30036  "
30037  style="
30038    --border-width: 1px; --border-style: none; --border-color:
30039rgb(var(--color-border-rgb) / 1.0); --border-radius:
300400px; 
30041
30042    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
30043    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
30044    
30045  "
30046  
30047  data-testid="group-block"
30048><div class="group-block__media-wrapper">
30049    
30050
30051
30052
30053    
30054  </div>
30055
30056  <div
30057    class="
30058      group-block-content
30059      
30060      layout-panel-flex
30061      layout-panel-flex--row
30062       mobile-column
30063      
30064      
30065    "
30066    
30067    style="--flex-direction: row; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
30068
30069--gap: 24px;
30070
30071--horizontal-alignment: flex-start; --vertical-alignment: flex-start;
30072--vertical-alignment-mobile: flex-start;
30073"
30074  >
30075  
30076
30077
30078
30079
30080  <accordion-custom
30081    class="
30082      menu
30083       menu--accordion menu--plus
30084       menu--dividers
30085      
30086    "
30087    data-disable-on-desktop="true"
30088    open-by-default-on-desktop
30089    
30090  >
30091    <details
30092      class="
30093        menu__details
30094        spacing-style
30095        
30096      "
30097      data-testid="menu-details"
30098      style="
30099        --spacing--size: 12px;
30100        --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
30101      "
30102      
30103      
30104    >
30105      <summary class="menu__heading h4">
30106        <span class="menu__heading__default">About TNBL</span>
30107        <span class="menu__heading__accordion">
30108          About TNBL
30109          <span class="menu__heading__toggle svg-wrapper icon-caret icon-animated"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
30110  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
30111</svg>
30112</span>
30113          <span class="menu__heading__toggle svg-wrapper icon-plus"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
30114  <path class="vertical" d="M2.75 7H11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
30115  <path class="horizontal" d="M7 2.75L7 11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
30116</svg>
30117</span>
30118        </span>
30119      </summary>
30120
30121      <div class="details-content">
30122        
30123          <ul class="list-unstyled">
30124            
30125              <li class="menu__item paragraph">
30126                <a href="/pages/about-us">
30127                  About us
30128                  
30129                </a>
30130              </li>
30131            
30132              <li class="menu__item paragraph">
30133                <a href="/pages/our-store">
30134                  Our Store
30135                  
30136                </a>
30137              </li>
30138            
30139              <li class="menu__item paragraph">
30140                <a href="/blogs/blog">
30141                  Blog
30142                  
30143                </a>
30144              </li>
30145            
30146              <li class="menu__item paragraph">
30147                <a href="/pages/privacy-policy">
30148                  Privacy Policy
30149                  
30150                </a>
30151              </li>
30152            
30153              <li class="menu__item paragraph">
30154                <a href="/pages/cookie-policy">
30155                  Cookie Policy
30156                  
30157                </a>
30158              </li>
30159            
30160          </ul>
30161        
30162      </div>
30163    </details>
30164  </accordion-custom>
30165
30166
30167
30168
30169
30170
30171
30172
30173
30174
30175  <accordion-custom
30176    class="
30177      menu
30178       menu--accordion menu--plus
30179       menu--dividers
30180      
30181    "
30182    data-disable-on-desktop="true"
30183    open-by-default-on-desktop
30184    
30185  >
30186    <details
30187      class="
30188        menu__details
30189        spacing-style
30190        
30191      "
30192      data-testid="menu-details"
30193      style="
30194        --spacing--size: 12px;
30195        --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
30196      "
30197      
30198      
30199    >
30200      <summary class="menu__heading h4">
30201        <span class="menu__heading__default">Orders</span>
30202        <span class="menu__heading__accordion">
30203          Orders
30204          <span class="menu__heading__toggle svg-wrapper icon-caret icon-animated"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
30205  <path d="M11 5.5L7 9.5L3 5.5" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
30206</svg>
30207</span>
30208          <span class="menu__heading__toggle svg-wrapper icon-plus"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
30209  <path class="vertical" d="M2.75 7H11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
30210  <path class="horizontal" d="M7 2.75L7 11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
30211</svg>
30212</span>
30213        </span>
30214      </summary>
30215
30216      <div class="details-content">
30217        
30218          <ul class="list-unstyled">
30219            
30220              <li class="menu__item paragraph">
30221                <a href="https://account.tnbl.co.uk/orders?locale=en&region_country=GB&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0bmJsLXVrLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MjEyMDg4MiwibmJmIjoxNzkxNTE2MDgyfQ.oj-nKjeVLw2YuaOMhVAV-fhFJ3qYdfwRbP0e84V91u8">
30222                  Trade Account
30223                  
30224                </a>
30225              </li>
30226            
30227              <li class="menu__item paragraph">
30228                <a href="/pages/delivery-returns">
30229                  Delivery & Returns
30230                  
30231                </a>
30232              </li>
30233            
30234              <li class="menu__item paragraph">
30235                <a href="/policies/terms-of-service">
30236                  Terms & Conditions
30237                  
30238                </a>
30239              </li>
30240            
30241              <li class="menu__item paragraph">
30242                <a href="/products/tnbl-gift-card">
30243                  Gift Vouchers
30244                  
30245                </a>
30246              </li>
30247            
30248          </ul>
30249        
30250      </div>
30251    </details>
30252  </accordion-custom>
30253
30254
30255
30256
30257
30258
30259
30260<div class="group-accordion-block"><accordion-custom
30261      class="
30262        group-accordion
30263         group-accordion--dividers
30264      "
30265      data-disable-on-desktop="true"
30266      open-by-default-on-desktop
30267      
30268    >
30269      <details
30270        class="
30271          group-accordion__details
30272          spacing-style
30273          
30274        "
30275        data-testid="accordion-details"
30276        style="
30277          --spacing--size: 12px;
30278          --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
30279        "
30280        
30281        
30282      >
30283        <summary class="group-accordion__heading h4">
30284          <span class="group-accordion__heading__default">Contact Us</span>
30285          <span class="group-accordion__heading__accordion">
30286            Contact Us
30287            <span class="group-accordion__heading__toggle svg-wrapper icon-plus"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
30288  <path class="vertical" d="M2.75 7H11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
30289  <path class="horizontal" d="M7 2.75L7 11.25" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round"/>
30290</svg>
30291</span>
30292          </span>
30293        </summary>
30294
30295        <div class="details-content">
30296          <div
30297  class="
30298    group-block
30299    group-block--height-fit
30300    group-block--width-fill
30301    border-style
30302    spacing-style
30303    size-style
30304    
30305    
30306    
30307    
30308  "
30309  style="
30310    --border-width: 1px; --border-style: none; --border-color:
30311rgb(var(--color-border-rgb) / 1.0); --border-radius:
303120px; 
30313
30314    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
30315    --size-style-width: 100%;--size-style-height: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
30316    
30317  "
30318  
30319  data-testid="group-block"
30320><div class="group-block__media-wrapper">
30321    
30322
30323
30324
30325    
30326  </div>
30327
30328  <div
30329    class="
30330      group-block-content
30331      
30332      layout-panel-flex
30333      layout-panel-flex--column
30334       mobile-column
30335      
30336      group-block-content--has-animation group-block-content--animate-
30337    "
30338    data-animation-type=""
30339    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
30340
30341--gap: 12px;
30342
30343--horizontal-alignment: flex-start; --vertical-alignment: center;
30344--vertical-alignment-mobile: center;
30345"
30346  >
30347  
30348
30349
30350
30351
30352
30353
30354
30355
30356  
30357    <rte-formatter class=" spacing-style text-block text-block--ANEFuMGl2QjlIQXE1b__text_KwyarJ rte     rte   "  style="    --padding-block-start: 0px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;         --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
30358      <p>50-62 Hockley Street</p><p>Birmingham, B18 6BH</p><p>0121 523 5535</p><p>[email protected]</p><p>Company Registration Number: 10765654 </p><p>VAT no. 276203803</p>
30359    </rte-formatter>
30360  
30361
30362
30363
30364
30365<script type="module">
30366  class TextReadMoreWrapper extends HTMLElement {
30367    #expanded = false;
30368    #animation = null;
30369    #collapsedHeight = 0;
30370
30371    connectedCallback() {
30372      const content = this.querySelector('.text-read-more__content');
30373      const textElement = this.querySelector('.text-read-more__text');
30374      const button = this.querySelector('.text-read-more__button');
30375
30376      if (!content || !textElement || !button) return;
30377
30378      // Set initial state
30379      this.dataset.expanded = 'false';
30380
30381      // Wait for content to render - use double RAF to ensure layout is complete
30382      requestAnimationFrame(() => {
30383        requestAnimationFrame(() => {
30384          // Additional small delay to ensure fonts and styles are applied
30385          setTimeout(() => {
30386            this.#checkOverflow(content, textElement, button);
30387          }, 50);
30388          
30389          // Recheck on resize
30390          const resizeObserver = new ResizeObserver(() => {
30391            if (!this.#expanded) {
30392              this.#checkOverflow(content, textElement, button);
30393            }
30394          });
30395          resizeObserver.observe(content);
30396
30397          // Setup button click handler
30398          button.addEventListener('click', (e) => {
30399            e.preventDefault();
30400            this.#toggle(content, textElement, button);
30401          });
30402        });
30403      });
30404    }
30405
30406    #checkOverflow(content, textElement, button) {
30407      // Ensure collapsed state is applied
30408      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
30409        textElement.classList.add('text-read-more__text--collapsed');
30410      }
30411      
30412      // Get collapsed height first
30413      const collapsedHeight = content.scrollHeight;
30414      this.#collapsedHeight = collapsedHeight;
30415      
30416      // Temporarily remove line-clamp to measure full height
30417      textElement.classList.remove('text-read-more__text--collapsed');
30418      
30419      // Force reflow
30420      void content.offsetHeight;
30421      
30422      const fullHeight = content.scrollHeight;
30423      
30424      // Restore line-clamp
30425      textElement.classList.add('text-read-more__text--collapsed');
30426      
30427      // Show button if content exceeds 2 lines (with small threshold for rounding)
30428      if (fullHeight > collapsedHeight + 5) {
30429        button.removeAttribute('hidden');
30430      } else {
30431        button.setAttribute('hidden', '');
30432      }
30433    }
30434
30435    #toggle(content, textElement, button) {
30436      const startHeight = content.offsetHeight;
30437      let endHeight;
30438
30439      if (!this.#expanded) {
30440        // Expanding
30441        textElement.classList.remove('text-read-more__text--collapsed');
30442        endHeight = content.scrollHeight;
30443        this.#expanded = true;
30444      } else {
30445        // Collapsing
30446        endHeight = this.#collapsedHeight;
30447        this.#expanded = false;
30448      }
30449
30450      this.dataset.expanded = this.#expanded;
30451      button.setAttribute('aria-expanded', this.#expanded);
30452
30453      // Animate
30454      content.style.overflow = 'hidden';
30455      this.#animation?.cancel();
30456
30457      this.#animation = content.animate(
30458        {
30459          height: [`${startHeight}px`, `${endHeight}px`],
30460        },
30461        {
30462          duration: 300,
30463          easing: 'ease-in-out',
30464        }
30465      );
30466
30467      this.#animation.onfinish = () => {
30468        if (this.#expanded) {
30469          content.style.removeProperty('height');
30470          content.style.overflow = '';
30471        } else {
30472          textElement.classList.add('text-read-more__text--collapsed');
30473          content.style.removeProperty('height');
30474          content.style.overflow = '';
30475        }
30476      };
30477    }
30478  }
30479
30480  if (!customElements.get('text-read-more-wrapper')) {
30481    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
30482  }
30483</script>
30483
30484
30485
30486
30487
30488
30489
30490
30491
30492<a
30493  
30494    href="/pages/contact"
30495  
30496  class="
30497    size-style
30498    link
30499    link--AcEFnVjVYMFVhK2wvU__button_hXfpnL
30500    
30501    
30502  "
30503  style="--size-style-width: fit-content;--size-style-height: fit-content;--size-style-width-mobile: fit-content; --size-style-width-mobile-min: fit-content;"
30504>
30505  Contact Us
30506  
30507</a>
30508
30509
30510
30511
30512
30513
30514</div>
30515</div>
30516
30517
30518
30519<script type="module">
30520  (function() {
30521    // Only run if Intersection Observer is supported
30522    if (typeof IntersectionObserver === 'undefined') {
30523      // Fallback: show all animated content immediately
30524      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30525        el.classList.add('group-block-content--in-view');
30526      });
30527      return;
30528    }
30529
30530    // Respect reduced motion preference
30531    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
30532    if (prefersReducedMotion) {
30533      // Show all animated content immediately without animation
30534      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30535        el.style.opacity = '1';
30536        el.style.transform = 'none';
30537      });
30538      return;
30539    }
30540
30541    // Set up Intersection Observer for scroll-triggered animations
30542    const observerOptions = {
30543      root: null,
30544      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
30545      threshold: 0.1 // Trigger when 10% of element is visible
30546    };
30547
30548    const observer = new IntersectionObserver((entries) => {
30549      entries.forEach(entry => {
30550        if (entry.isIntersecting) {
30551          const contentElement = entry.target;
30552          // Add the in-view class to trigger animation
30553          contentElement.classList.add('group-block-content--in-view');
30554          // Unobserve after animation is triggered (only animate once)
30555          observer.unobserve(contentElement);
30556        }
30557      });
30558    }, observerOptions);
30559
30560    // Observe all group blocks with animations
30561    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30562      observer.observe(el);
30563    });
30564  })();
30565</script>
30565
30566
30567        </div>
30568      </details>
30569    </accordion-custom></div>
30570
30571
30572
30573
30574
30575
30576
30577
30578<div
30579  class="
30580    group-block
30581    group-block--height-fit
30582    group-block--width-fill
30583    border-style
30584    spacing-style
30585    size-style
30586    
30587    
30588    
30589    
30590  "
30591  style="
30592    --border-width: 1px; --border-style: none; --border-color:
30593rgb(var(--color-border-rgb) / 1.0); --border-radius:
305940px; 
30595
30596    --padding-block-start: 0px;--padding-block-end: 0px;--padding-inline-start: 0px;--padding-inline-end: 0px;
30597    --size-style-width: 100%;--size-style-height: fit;--size-style-height-mobile: fit;--size-style-width-mobile: 100%; --size-style-width-mobile-min: 5rem;
30598    
30599  "
30600  
30601  data-testid="group-block"
30602><div class="group-block__media-wrapper">
30603    
30604
30605
30606
30607    
30608  </div>
30609
30610  <div
30611    class="
30612      group-block-content
30613      
30614      layout-panel-flex
30615      layout-panel-flex--column
30616       mobile-column
30617      
30618      
30619    "
30620    
30621    style="--flex-direction: column; --flex-wrap: nowrap; --flex-wrap-mobile: wrap;
30622
30623--gap: 12px;
30624
30625--horizontal-alignment: flex-start; --vertical-alignment: center;
30626--vertical-alignment-mobile: center;
30627"
30628  >
30629  
30630
30631
30632
30633
30634
30635
30636
30637
30638  
30639    <div class=" spacing-style text-block text-block--AVHduTXlRL3hMSk95N__text_LzTnqK h4      "  style="    --padding-block-start: 10px; --padding-block-end:0px; --padding-inline-start:0px; --padding-inline-end:0px;     --color: var(--color-foreground);    --width: fit-content;    --max-width: var(--max-width--body-normal);          ">
30640      <h2>Socials</h2>
30641    </div>
30642  
30643
30644
30645
30646
30647<script type="module">
30648  class TextReadMoreWrapper extends HTMLElement {
30649    #expanded = false;
30650    #animation = null;
30651    #collapsedHeight = 0;
30652
30653    connectedCallback() {
30654      const content = this.querySelector('.text-read-more__content');
30655      const textElement = this.querySelector('.text-read-more__text');
30656      const button = this.querySelector('.text-read-more__button');
30657
30658      if (!content || !textElement || !button) return;
30659
30660      // Set initial state
30661      this.dataset.expanded = 'false';
30662
30663      // Wait for content to render - use double RAF to ensure layout is complete
30664      requestAnimationFrame(() => {
30665        requestAnimationFrame(() => {
30666          // Additional small delay to ensure fonts and styles are applied
30667          setTimeout(() => {
30668            this.#checkOverflow(content, textElement, button);
30669          }, 50);
30670          
30671          // Recheck on resize
30672          const resizeObserver = new ResizeObserver(() => {
30673            if (!this.#expanded) {
30674              this.#checkOverflow(content, textElement, button);
30675            }
30676          });
30677          resizeObserver.observe(content);
30678
30679          // Setup button click handler
30680          button.addEventListener('click', (e) => {
30681            e.preventDefault();
30682            this.#toggle(content, textElement, button);
30683          });
30684        });
30685      });
30686    }
30687
30688    #checkOverflow(content, textElement, button) {
30689      // Ensure collapsed state is applied
30690      if (!textElement.classList.contains('text-read-more__text--collapsed')) {
30691        textElement.classList.add('text-read-more__text--collapsed');
30692      }
30693      
30694      // Get collapsed height first
30695      const collapsedHeight = content.scrollHeight;
30696      this.#collapsedHeight = collapsedHeight;
30697      
30698      // Temporarily remove line-clamp to measure full height
30699      textElement.classList.remove('text-read-more__text--collapsed');
30700      
30701      // Force reflow
30702      void content.offsetHeight;
30703      
30704      const fullHeight = content.scrollHeight;
30705      
30706      // Restore line-clamp
30707      textElement.classList.add('text-read-more__text--collapsed');
30708      
30709      // Show button if content exceeds 2 lines (with small threshold for rounding)
30710      if (fullHeight > collapsedHeight + 5) {
30711        button.removeAttribute('hidden');
30712      } else {
30713        button.setAttribute('hidden', '');
30714      }
30715    }
30716
30717    #toggle(content, textElement, button) {
30718      const startHeight = content.offsetHeight;
30719      let endHeight;
30720
30721      if (!this.#expanded) {
30722        // Expanding
30723        textElement.classList.remove('text-read-more__text--collapsed');
30724        endHeight = content.scrollHeight;
30725        this.#expanded = true;
30726      } else {
30727        // Collapsing
30728        endHeight = this.#collapsedHeight;
30729        this.#expanded = false;
30730      }
30731
30732      this.dataset.expanded = this.#expanded;
30733      button.setAttribute('aria-expanded', this.#expanded);
30734
30735      // Animate
30736      content.style.overflow = 'hidden';
30737      this.#animation?.cancel();
30738
30739      this.#animation = content.animate(
30740        {
30741          height: [`${startHeight}px`, `${endHeight}px`],
30742        },
30743        {
30744          duration: 300,
30745          easing: 'ease-in-out',
30746        }
30747      );
30748
30749      this.#animation.onfinish = () => {
30750        if (this.#expanded) {
30751          content.style.removeProperty('height');
30752          content.style.overflow = '';
30753        } else {
30754          textElement.classList.add('text-read-more__text--collapsed');
30755          content.style.removeProperty('height');
30756          content.style.overflow = '';
30757        }
30758      };
30759    }
30760  }
30761
30762  if (!customElements.get('text-read-more-wrapper')) {
30763    customElements.define('text-read-more-wrapper', TextReadMoreWrapper);
30764  }
30765</script>
30765
30766
30767
30768
30769
30770
30771<div
30772  class="social-icons__wrapper footer-utilities__icons"
30773  
30774>
30775  
30776
30777  
30778    
30779
30780    
30781    
30782      
30783        <div
30784          class="social-icons__icon-wrapper"
30785        >
30786          <a
30787            href="https://www.facebook.com/thenailandbeautylink/"
30788            target="_blank"
30789            rel="noopener noreferrer"
30790            aria-label="Facebook"
30791            
30792          >
30793            <span class="social-icons__icon-label">Facebook</span>
30794            
30795              <svg
30796                class="social-icons__icon icon-default"
30797                aria-hidden="true"
30798                focusable="false"
30799                xmlns="http://www.w3.org/2000/svg"
30800                viewBox="0 0 20 20"
30801              >
30802<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>
30803            
30804          </a>
30805        </div>
30806      
30807    
30808  
30809    
30810
30811    
30812    
30813      
30814        <div
30815          class="social-icons__icon-wrapper"
30816        >
30817          <a
30818            href="https://www.instagram.com/tnbl_uk/"
30819            target="_blank"
30820            rel="noopener noreferrer"
30821            aria-label="Instagram"
30822            
30823          >
30824            <span class="social-icons__icon-label">Instagram</span>
30825            
30826              <svg
30827                class="social-icons__icon icon-default"
30828                aria-hidden="true"
30829                focusable="false"
30830                xmlns="http://www.w3.org/2000/svg"
30831                viewBox="0 0 20 20"
30832              >
30833<path
30834      fill-rule="evenodd"
30835      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"
30836      clip-rule="evenodd"
30837    /></svg>
30838            
30839          </a>
30840        </div>
30841      
30842    
30843  
30844    
30845
30846    
30847    
30848  
30849    
30850
30851    
30852    
30853  
30854    
30855
30856    
30857    
30858  
30859    
30860
30861    
30862    
30863  
30864    
30865
30866    
30867    
30868  
30869    
30870
30871    
30872    
30873  
30874    
30875
30876    
30877    
30878  
30879    
30880
30881    
30882    
30883  
30884    
30885
30886    
30887    
30888  
30889    
30890
30891    
30892    
30893  
30894    
30895
30896    
30897    
30898  
30899</div>
30900
30901
30902
30903
30904
30905</div>
30906</div>
30907
30908
30909
30910<script type="module">
30911  (function() {
30912    // Only run if Intersection Observer is supported
30913    if (typeof IntersectionObserver === 'undefined') {
30914      // Fallback: show all animated content immediately
30915      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30916        el.classList.add('group-block-content--in-view');
30917      });
30918      return;
30919    }
30920
30921    // Respect reduced motion preference
30922    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
30923    if (prefersReducedMotion) {
30924      // Show all animated content immediately without animation
30925      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30926        el.style.opacity = '1';
30927        el.style.transform = 'none';
30928      });
30929      return;
30930    }
30931
30932    // Set up Intersection Observer for scroll-triggered animations
30933    const observerOptions = {
30934      root: null,
30935      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
30936      threshold: 0.1 // Trigger when 10% of element is visible
30937    };
30938
30939    const observer = new IntersectionObserver((entries) => {
30940      entries.forEach(entry => {
30941        if (entry.isIntersecting) {
30942          const contentElement = entry.target;
30943          // Add the in-view class to trigger animation
30944          contentElement.classList.add('group-block-content--in-view');
30945          // Unobserve after animation is triggered (only animate once)
30946          observer.unobserve(contentElement);
30947        }
30948      });
30949    }, observerOptions);
30950
30951    // Observe all group blocks with animations
30952    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30953      observer.observe(el);
30954    });
30955  })();
30956</script>
30956
30957
30958
30959
30960
30961</div>
30962</div>
30963
30964
30965
30966<script type="module">
30967  (function() {
30968    // Only run if Intersection Observer is supported
30969    if (typeof IntersectionObserver === 'undefined') {
30970      // Fallback: show all animated content immediately
30971      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30972        el.classList.add('group-block-content--in-view');
30973      });
30974      return;
30975    }
30976
30977    // Respect reduced motion preference
30978    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
30979    if (prefersReducedMotion) {
30980      // Show all animated content immediately without animation
30981      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
30982        el.style.opacity = '1';
30983        el.style.transform = 'none';
30984      });
30985      return;
30986    }
30987
30988    // Set up Intersection Observer for scroll-triggered animations
30989    const observerOptions = {
30990      root: null,
30991      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
30992      threshold: 0.1 // Trigger when 10% of element is visible
30993    };
30994
30995    const observer = new IntersectionObserver((entries) => {
30996      entries.forEach(entry => {
30997        if (entry.isIntersecting) {
30998          const contentElement = entry.target;
30999          // Add the in-view class to trigger animation
31000          contentElement.classList.add('group-block-content--in-view');
31001          // Unobserve after animation is triggered (only animate once)
31002          observer.unobserve(contentElement);
31003        }
31004      });
31005    }, observerOptions);
31006
31007    // Observe all group blocks with animations
31008    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
31009      observer.observe(el);
31010    });
31011  })();
31012</script>
31012
31013
31014
31015
31016
31017
31018<div
31019  class="divider divider-ASVNVckZuY1A0UWlCc__divider_JKifR7 spacing-style"
31020  style="
31021    --divider-justify-content: center;
31022    --padding-block-start: 0px;--padding-block-end: 0px;
31023  "
31024  
31025
31026>
31027  <span
31028    class="divider__line"
31029    style="
31030      --divider-border-thickness: 1px;
31031      
31032        --divider-border-rounded: 0;
31033      
31034      --divider-flex-basis: 100%;
31035    "
31036  ></span>
31037</div>
31038
31039
31040
31041
31042
31043
31044</div>
31045</div>
31046
31047
31048
31049<script type="module">
31050  (function() {
31051    // Only run if Intersection Observer is supported
31052    if (typeof IntersectionObserver === 'undefined') {
31053      // Fallback: show all animated content immediately
31054      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
31055        el.classList.add('group-block-content--in-view');
31056      });
31057      return;
31058    }
31059
31060    // Respect reduced motion preference
31061    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
31062    if (prefersReducedMotion) {
31063      // Show all animated content immediately without animation
31064      document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
31065        el.style.opacity = '1';
31066        el.style.transform = 'none';
31067      });
31068      return;
31069    }
31070
31071    // Set up Intersection Observer for scroll-triggered animations
31072    const observerOptions = {
31073      root: null,
31074      rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% from bottom of viewport
31075      threshold: 0.1 // Trigger when 10% of element is visible
31076    };
31077
31078    const observer = new IntersectionObserver((entries) => {
31079      entries.forEach(entry => {
31080        if (entry.isIntersecting) {
31081          const contentElement = entry.target;
31082          // Add the in-view class to trigger animation
31083          contentElement.classList.add('group-block-content--in-view');
31084          // Unobserve after animation is triggered (only animate once)
31085          observer.unobserve(contentElement);
31086        }
31087      });
31088    }, observerOptions);
31089
31090    // Observe all group blocks with animations
31091    document.querySelectorAll('.group-block-content--has-animation').forEach(el => {
31092      observer.observe(el);
31093    });
31094  })();
31095</script>
31095
31096
31097
31098
31099
31100  </div>
31101</div>
31102
31103
31104
31105
31106</footer><div id="shopify-section-sections--28213213528410__footer_utilities_jLGE8U" class="shopify-section shopify-section-group-footer-group footer-utilities">
31107
31108<div class="section-background color-scheme-3"></div>
31109<div
31110  class="section section--page-width color-scheme-3"
31111  
31112>
31113  <div
31114    class="utilities utilities--blocks-2 spacing-style"
31115    style="--padding-block-start: 20px;--padding-block-end: max(20px, calc(var(--spacing-scale) * 48px)); --border-width: 0px; --gap: 24px;"
31116    data-testid="footer-utilities"
31117  >
31118    
31119
31120<div
31121  class="
31122    footer-utilities__group-copyright
31123    custom-typography
31124    footer-utilities__text
31125    custom-font-size
31126  "
31127  style="
31128--color: ;--font-size: 0.75rem;      --font-weight: ;--font-family: ;    --text-transform: uppercase;    --text-wrap: pretty;          --line-height: var(--line-height--body-);        --letter-spacing: var(--letter-spacing--body-);"
31129  
31130>
31131  <span class="footer-utilities__text">
31132    &copy; 2026
31133    <a href="/" title="">TNBL UK</a></span>
31134</div>
31135
31136
31137
31138
31139<div
31140  class="
31141    payment-icons
31142    spacing-style
31143  "
31144  style="
31145    --padding-block-start: 0px; --padding-block-end:0px; 
31146--padding-inline-start:0px; --padding-inline-end:0px; 
31147
31148    --icon-gap: 10px;
31149    --alignment: flex-end;
31150    --alignment-mobile: flex-start;
31151  "
31152  
31153>
31154  <span class="visually-hidden">Payment methods</span>
31155  <ul
31156    class="payment-icons__list"
31157    role="list"
31158  ><li class="payment-icons__item">
31159        <svg class="icon icon--full-color" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
31159<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
31160
31161      </li><li class="payment-icons__item">
31162        <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
3116206zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>
31163
31164      </li><li class="payment-icons__item">
31165        <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
31166
31167      </li><li class="payment-icons__item">
31168        <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 
311680-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg>
31169      </li><li class="payment-icons__item">
31170        <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
3117016.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
31171
31172      </li></ul>
31173</div>
31174
31175
31176
31177
31178
31179  </div>
31180</div>
31181
31182
31183
31184
31185</div>
31186<!-- END sections: footer-group -->
31187
31188    
31188<script
31189  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/dialog.js?v=61774032287387761671774530324"
31190  type="module"
31191></script>
31191
31192
31193<script
31194  src="//www.tnbl.co.uk/cdn/shop/t/6/assets/predictive-search.js?v=149240552485540508541774530329"
31195  type="module"
31196  fetchpriority="low"
31197></script>
31197
31198
31199<dialog-component
31200  id="search-modal"
31201  class="search-modal"
31202  
31203>
31204  <dialog
31205    ref="dialog"
31206    on:click="/closeDialogOnClickOutside"
31207    on:keydown="/closeDialogOnEscapePress"
31208    class="search-modal__content dialog-modal"
31209    scroll-lock
31210    aria-labelledby="search-modal-heading"
31211  >
31212    <h2
31213      id="search-modal-heading"
31214      class="visually-hidden"
31215    >
31216      Search
31217    </h2>
31218    <predictive-search-component
31219      class="predictive-search color-scheme-1"
31220      style="--product-corner-radius: 0px; --card-corner-radius: 4px;"
31221      data-section-id="predictive-search"
31222      data-testid="search-component--modal"
31223      role="search"
31224      aria-label="Search"
31225    >
31226      <form
31227        action="/search"
31228        method="get"
31229        role="search"
31230        class="predictive-search-form"
31231        ref="form"
31232        on:keydown="/onSearchKeyDown"
31233      >
31234        <div
31235          class="predictive-search-form__header"
31236        >
31237          <div class="predictive-search-form__header-inner">
31238            <label
31239              for="cmdk-input"
31240              class="visually-hidden"
31241            >Search</label>
31242            <input
31243              class="search-input"
31244              id="cmdk-input"
31245              type="search"
31246              name="q"
31247              role="combobox"
31248              aria-expanded="false"
31249              aria-owns="predictive-search-results"
31250              aria-controls="predictive-search-results"
31251              aria-haspopup="listbox"
31252              aria-autocomplete="list"
31253              autocomplete="off"
31254              placeholder="Search"
31255              ref="searchInput"
31256              on:input="/search"
31257              on:keydown="/onSearchKeyDown"
31258            >
31259            <input
31260              name="options[prefix]"
31261              type="hidden"
31262              value="last"
31263            >
31264            <span class="svg-wrapper predictive-search__icon">
31265              <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
31266<path d="M19.1361 20L11.4929 12.3568C10.8825 12.8764 10.1807 13.2786 9.38723 13.5634C8.59379 13.8483 7.79649 13.9907 6.99533 13.9907C5.04023 13.9907 3.38552 13.3139 2.03119 11.9604C0.677063 10.6069 0 8.95318 0 6.9993C0 5.04522 0.676758 3.39009 2.03027 2.03393C3.38379 0.677977 5.03748 0 6.99136 0C8.94545 0 10.6006 0.677063 11.9567 2.03119C13.3127 3.38552 13.9907 5.04023 13.9907 6.99533C13.9907 7.84349 13.8404 8.66429 13.5399 9.45772C13.2394 10.2512 12.8451 10.9295 12.3568 11.4929L20 19.1364L19.1361 20ZM6.99533 12.77C8.61495 12.77 9.9823 12.2125 11.0974 11.0974C12.2125 9.9825 12.77 8.61515 12.77 6.99533C12.77 5.37551 12.2125 4.00816 11.0974 2.89328C9.9823 1.7782 8.61495 1.22067 6.99533 1.22067C5.37551 1.22067 4.00816 1.7782 2.89328 2.89328C1.7782 4.00816 1.22067 5.37551 1.22067 6.99533C1.22067 8.61515 1.7782 9.9825 2.89328 11.0974C4.00816 12.2125 5.37551 12.77 6.99533 12.77Z" fill="#111111"/>
31267</svg>
31268
31269            </span>
31270            <button
31271              type="button"
31272              class="button-unstyled predictive-search__reset-button"
31273              ref="resetButton"
31274              hidden
31275              on:click="/resetSearch"
31276            >
31277              Clear
31278            </button>
31279          </div>
31280          <button
31281            type="button"
31282            class="button predictive-search__close-modal-button"
31283            aria-label="Close dialog"
31284            on:click="dialog-component/closeDialog"
31285            ref="closeModalButton"
31286          >
31287            <span class="svg-wrapper">
31288              <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
31289  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
31290  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
31291</svg>
31292
31293            </span>
31294          </button>
31295        </div>
31296
31297        <div class="predictive-search-form__content-wrapper">
31298          <div
31299            class="predictive-search-form__content"
31300            tabindex="-1"
31301            ref="predictiveSearchResults"
31302            on:click="/handleModalClick"
31303          >
31304            
31305
31306<div
31307  id="predictive-search-results"
31308  class="predictive-search-dropdown"
31309  role="listbox"
31310  aria-expanded="true"
31311  style="--color-shadow: rgb(var(--color-foreground-rgb) / 0.1);"
31312>
31313  
31314    <div class="predictive-search-results__inner">
31315      
31316      
31317        
31318        
31319        
31320          <div
31321  id="predictive-search-products"
31322  class="predictive-search-results__products"
31323  
31324    data-testid="products-list-default--modal"
31325  
31326>
31327  
31328    <h4 class="predictive-search-results__title">
31329      Products
31330    </h4>
31331    <ul
31332      class="predictive-search-results__list predictive-search-results__wrapper-products list-unstyled"
31333      role="listbox"
31334      aria-label="Products"
31335    >
31336      
31337      
31338        <li
31339          class="predictive-search-results__card predictive-search-results__card--product"
31340          ref="resultsItems[]"
31341        >
31342          
31343<product-card-link
31344    data-product-id="10666571170138"
31345    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/1656080832-28260200_b0edcac7-1c87-4e6e-84f6-f4bd52d39a1b.jpg?v=1768909812&width=500"
31346    data-product-transition="true"
31347  ><div
31348  class="resource-card"
31349  href="/products/tnbl-h-easy-french-v-shape-cutters-silver"
31350  data-resource-type="product"
31351>
31352  <a
31353    class="resource-card__link"
31354    href="/products/tnbl-h-easy-french-v-shape-cutters-silver"
31355  >
31356    <span class="visually-hidden">
31357      #H Easy French V-Shape Cutters - Silver
31358    </span>
31359  </a>
31360  <div
31361    class="resource-card__media"
31362    style="--resource-card-aspect-ratio: 4 / 5;"
31363    
31364      data-view-transition-to-main-product
31365    
31366  >
31367      
31368      
31369<img src="//www.tnbl.co.uk/cdn/shop/files/1656080832-28260200_b0edcac7-1c87-4e6e-84f6-f4bd52d39a1b.jpg?v=1768909812&amp;width=500" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/1656080832-28260200_b0edcac7-1c87-4e6e-84f6-f4bd52d39a1b.jpg?v=1768909812&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/1656080832-28260200_b0edcac7-1c87-4e6e-84f6-f4bd52d39a1b.jpg?v=1768909812&amp;width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" transitionToProduct="true" style="object-position: 50.0% 50.0%;">
31370</div>
31371
31372  <div class="resource-card__content">
31373    
31374      <p class="resource-card__vendor paragraph">
31375        TNBL
31376      </p>
31377    
31378    <p class="resource-card__title paragraph">#H Easy French V-Shape Cutters - Silver</p>
31379
31380    
31381      <div ref="priceContainer">
31382  
31383    
31384    
31385
31386    
31387      <span class="price">£5.00</span>
31388    
31389
31390    
31391  
31392</div>
31393    
31394  </div>
31395</div></product-card-link>
31396
31397        </li>
31398      
31399        <li
31400          class="predictive-search-results__card predictive-search-results__card--product"
31401          ref="resultsItems[]"
31402        >
31403          
31404<product-card-link
31405    data-product-id="10666571268442"
31406    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/1656501983-43261500_1efed7e0-0701-4485-b979-6f08f38e0f00.png?v=1768909817&width=500"
31407    data-product-transition="true"
31408  ><div
31409  class="resource-card"
31410  href="/products/tnbl-k-easy-french-water-drop-cutters-gold"
31411  data-resource-type="product"
31412>
31413  <a
31414    class="resource-card__link"
31415    href="/products/tnbl-k-easy-french-water-drop-cutters-gold"
31416  >
31417    <span class="visually-hidden">
31418      #K Easy French Water Drop Cutters - Gold
31419    </span>
31420  </a>
31421  <div
31422    class="resource-card__media"
31423    style="--resource-card-aspect-ratio: 4 / 5;"
31424    
31425      data-view-transition-to-main-product
31426    
31427  >
31428      
31429      
31430<img src="//www.tnbl.co.uk/cdn/shop/files/1656501983-43261500_1efed7e0-0701-4485-b979-6f08f38e0f00.png?v=1768909817&amp;width=500" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/1656501983-43261500_1efed7e0-0701-4485-b979-6f08f38e0f00.png?v=1768909817&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/1656501983-43261500_1efed7e0-0701-4485-b979-6f08f38e0f00.png?v=1768909817&amp;width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" transitionToProduct="true" style="object-position: 50.0% 50.0%;">
31431</div>
31432
31433  <div class="resource-card__content">
31434    
31435      <p class="resource-card__vendor paragraph">
31436        TNBL
31437      </p>
31438    
31439    <p class="resource-card__title paragraph">#K Easy French Water Drop Cutters - Gold</p>
31440
31441    
31442      <div ref="priceContainer">
31443  
31444    
31445    
31446
31447    
31448      <span class="price">£5.00</span>
31449    
31450
31451    
31452  
31453</div>
31454    
31455  </div>
31456</div></product-card-link>
31457
31458        </li>
31459      
31460        <li
31461          class="predictive-search-results__card predictive-search-results__card--product"
31462          ref="resultsItems[]"
31463        >
31464          
31465<product-card-link
31466    data-product-id="10666571235674"
31467    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/1656080832-86649200_3a7669c5-f579-4718-9c0a-6f684f1e876a.jpg?v=1768909816&width=500"
31468    data-product-transition="true"
31469  ><div
31470  class="resource-card"
31471  href="/products/tnbl-k-easy-french-water-drop-cutters-silver"
31472  data-resource-type="product"
31473>
31474  <a
31475    class="resource-card__link"
31476    href="/products/tnbl-k-easy-french-water-drop-cutters-silver"
31477  >
31478    <span class="visually-hidden">
31479      #K Easy French Water Drop Cutters - Silver
31480    </span>
31481  </a>
31482  <div
31483    class="resource-card__media"
31484    style="--resource-card-aspect-ratio: 4 / 5;"
31485    
31486      data-view-transition-to-main-product
31487    
31488  >
31489      
31490      
31491<img src="//www.tnbl.co.uk/cdn/shop/files/1656080832-86649200_3a7669c5-f579-4718-9c0a-6f684f1e876a.jpg?v=1768909816&amp;width=500" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/1656080832-86649200_3a7669c5-f579-4718-9c0a-6f684f1e876a.jpg?v=1768909816&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/1656080832-86649200_3a7669c5-f579-4718-9c0a-6f684f1e876a.jpg?v=1768909816&amp;width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" transitionToProduct="true" style="object-position: 50.0% 50.0%;">
31492</div>
31493
31494  <div class="resource-card__content">
31495    
31496      <p class="resource-card__vendor paragraph">
31497        TNBL
31498      </p>
31499    
31500    <p class="resource-card__title paragraph">#K Easy French Water Drop Cutters - Silver</p>
31501
31502    
31503      <div ref="priceContainer">
31504  
31505    
31506    
31507
31508    
31509      <span class="price">£5.00</span>
31510    
31511
31512    
31513  
31514</div>
31515    
31516  </div>
31517</div></product-card-link>
31518
31519        </li>
31520      
31521        <li
31522          class="predictive-search-results__card predictive-search-results__card--product"
31523          ref="resultsItems[]"
31524        >
31525          
31526<product-card-link
31527    data-product-id="10666595680602"
31528    data-featured-media-url="//www.tnbl.co.uk/cdn/shop/files/1705842587-67525300_f9520136-4076-48ea-8504-b94aec7b7572.png?v=1768910747&width=500"
31529    data-product-transition="true"
31530  ><div
31531  class="resource-card"
31532  href="/products/tnbl-0-25g-long-handle-measuring-spoon-4pcs"
31533  data-resource-type="product"
31534>
31535  <a
31536    class="resource-card__link"
31537    href="/products/tnbl-0-25g-long-handle-measuring-spoon-4pcs"
31538  >
31539    <span class="visually-hidden">
31540      0.25g Long Handle Measuring Spoon 4pcs
31541    </span>
31542  </a>
31543  <div
31544    class="resource-card__media"
31545    style="--resource-card-aspect-ratio: 4 / 5;"
31546    
31547      data-view-transition-to-main-product
31548    
31549  >
31550      
31551      
31552<img src="//www.tnbl.co.uk/cdn/shop/files/1705842587-67525300_f9520136-4076-48ea-8504-b94aec7b7572.png?v=1768910747&amp;width=500" alt="" srcset="//www.tnbl.co.uk/cdn/shop/files/1705842587-67525300_f9520136-4076-48ea-8504-b94aec7b7572.png?v=1768910747&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/1705842587-67525300_f9520136-4076-48ea-8504-b94aec7b7572.png?v=1768910747&amp;width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image" sizes="auto" transitionToProduct="true" style="object-position: 50.0% 50.0%;">
31553
31554          <img src="//www.tnbl.co.uk/cdn/shop/files/1705842606-03003100_f447e117-fb23-4c00-94f7-a5ed87bc4bc0.png?v=1768910747&amp;width=500" alt="0.25g Long Handle Measuring Spoon 4pcs" srcset="//www.tnbl.co.uk/cdn/shop/files/1705842606-03003100_f447e117-fb23-4c00-94f7-a5ed87bc4bc0.png?v=1768910747&amp;width=240 240w, //www.tnbl.co.uk/cdn/shop/files/1705842606-03003100_f447e117-fb23-4c00-94f7-a5ed87bc4bc0.png?v=1768910747&amp;width=352 352w" width="500" height="500" loading="lazy" class="resource-card__image resource-card__image--secondary" sizes="auto" transitionToProduct="true" data-media-id="58105734037850" style="object-position: 50.0% 50.0%;">
31555</div>
31556
31557  <div class="resource-card__content">
31558    
31559      <p class="resource-card__vendor paragraph">
31560        TNBL
31561      </p>
31562    
31563    <p class="resource-card__title paragraph">0.25g Long Handle Measuring Spoon 4pcs</p>
31564
31565    
31566      <div ref="priceContainer">
31567  
31568    
31569    
31570
31571    
31572      <span class="price">£0.80</span>
31573    
31574
31575    
31576  
31577</div>
31578    
31579  </div>
31580</div></product-card-link>
31581
31582        </li>
31583      
31584    </ul>
31585  
31586</div>
31587
31588
31589
31590        
31591      
31592    </div>
31593  
31594</div>
31595
31596          </div>
31597
31598          <div class="predictive-search-form__footer">
31599            <button
31600              class="button button-primary predictive-search__search-button"
31601              ref="viewAllButton"
31602            >
31603              View all
31604            </button>
31605          </div>
31606        </div>
31607      </form>
31608    </predictive-search-component>
31609  </dialog>
31610</dialog-component>
31611
31612
31613
31614
31615    
31616      <quick-add-dialog id="quick-add-dialog">
31617  <dialog
31618    class="quick-add-modal dialog-modal color-scheme-1"
31619    ref="dialog"
31620    scroll-lock
31621  >
31622    <button
31623      ref="closeButton"
31624      on:click="/closeDialog"
31625      class="button button-unstyled close-button quick-add-modal__close"
31626      aria-label="Close dialog"
31627    ><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
31628  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
31629  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
31630</svg>
31631</button>
31632    <div
31633      id="quick-add-modal-content"
31634      class="quick-add-modal__content"
31635    ></div>
31636  </dialog>
31637</quick-add-dialog>
31638
31639
31640
31641    
31642
31643    <style data-shopify>
31644  .samita-cutoff-time .samita-countdown-remaining--text:empty:before {
31645    content: '23 hours';
31646    font-size: 13px !important;
31647    font-weight: bold !important;
31648  }
31649</style>
31650  <div id="shopify-block-AVDVzSVVWclljdm5RV__18147337299481159562" class="shopify-block shopify-app-block">
31651<link rel="preload" href="https://cdn.shopify.com/extensions/01a0c2dc-0fea-7e5e-93fb-190052337476/pify-order-purchase-limit-452/assets/pol_def.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
31652<noscript><link rel="stylesheet" href="https://cdn.shopify.com/extensions/01a0c2dc-0fea-7e5e-93fb-190052337476/pify-order-purchase-limit-452/assets/pol_def.min.css"></noscript>
31653
31654<!-- BEGIN app snippet: app-init-zip -->
31655
31656
31657
31658
31659
31660<div class="pol-m">
31661  <div class="pol-m-c">
31662    <div class="pol-i">
31663      <div class="pol-i-li1">
31664        <div class="pol-i-li1-t">Cannot place order, conditions not met:</div>
31665        <div class="pol-i-li1-x">
31666          <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" class="icon-close"
31667            fill="none" viewBox="0 0 18 17">
31668            <path
31669              d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
31670              fill="currentColor"></path>
31671          </svg>
31672        </div>
31673      </div>
31674      <div class="pol-i-li2">
31675        <div class="pol-u"></div>
31676      </div>
31677      <div class="pol-i-li3">
31678        <div class="pol-i-li3-t">
31679        </div>
31680        <div class="pol-i-li3-s">OK</div>
31681      </div>
31682    </div>
31683  </div>
31684</div>
31685
31686<script>
31687  var _ps = {};
31688  var _pol_rate = Shopify.currency?.rate ?? 1.0;
31689
31690  _ps.pageType = "index"; //index/collection/product/cart/page/search/list-collections
31691  _ps.shopDomain = Shopify.shop;
31692  // Custom compatibility for firewood-factory.myshopify.com.
31693  if (
31694    _ps.shopDomain === 'firewood-factory.myshopify.com' &&
31695    !document.querySelector('link[data-pify-firewood-factory-css="1"]')
31696  ) {
31697    var pifyFirewoodFactoryCss = document.createElement('link');
31698    pifyFirewoodFactoryCss.rel = 'stylesheet';
31699    pifyFirewoodFactoryCss.href = "https:\/\/cdn.shopify.com\/extensions\/01a0c2dc-0fea-7e5e-93fb-190052337476\/pify-order-purchase-limit-452\/assets\/pol_def_firewood-factory.min.css";
31700    pifyFirewoodFactoryCss.setAttribute('data-pify-firewood-factory-css', '1');
31701    document.head.appendChild(pifyFirewoodFactoryCss);
31702  }
31703  
31704  _ps.countryCode = "GB";
31705  
31706  
31707  _ps.marketHandle = "gb";
31708  
31709  _ps.marketId = null;
31710  
31711  
31712  _ps.defaultLanguageIsoCode = "en";
31713  
31714  _ps._sdwcc = true;
31715  
31716  
31717  _ps._iispwl = false;
31718  
31719  
31720  _ps._iisrwl = false;
31721  
31722  
31723  _ps.locale = "en";
31724  var _shopifyLocale = typeof Shopify !== "undefined" ? Shopify.locale : null;
31725  if (typeof _shopifyLocale === "string" && _shopifyLocale.trim() !== "") _ps.locale = _shopifyLocale;
31726  
31727  
31728
31729
31730  
31731  _ps.customerCurrency = { "currencyCode": "GBP", "currencySymbol": "£", "currencyRate": _pol_rate };
31732  _ps.shopCurrency = { "currencyCode": "GBP", "weightUnit": "g" };
31733  _ps.theme = { "schemaName": Shopify.theme.schema_name }
31734  _ps.globalSetting = {};
31735  _ps.cartLimitRules = {};
31736  _ps.orderLimitRules = {};
31737  _ps.globalLimitRules = {};
31738  _ps.collectionLimitRules = [];
31739  _ps.productLimitRules = [];
31740  _ps.variantLimitRules = [];
31741  _ps.orderLimitAlertMessages = {};
31742  _ps.collectionLimitAlertMessages = {};
31743  _ps.productLimitAlertMessages = {};
31744  _ps.variantLimitAlertMessages = {};
31745  _ps._pub = false;
31746  _ps.product = {};
31747  _ps.productCollectionIds = [];
31748  _ps.variants = [];
31749  
31750  
31751  
31752  
31753  
31754  
31755  
31756  
31757  
31758  
31759  _ps.productLimitRules = [{"p":10666632642906,"inasp":true,"mq":1,"Mq":1,"qm":1,"mqv":1,"Mqv":1,"mv":1,"evil":[53270900539738],"ut":1788881624,"gst":"all"}];
31760  
31761  
31762  
31763  
31764  
31765  
31766  
31767  
31768  
31769  
31770  
31771  
31772  
31773  
31774  
31775  _ps.productLimitAlertMessages = [{"Key":"en","Value":{"languageIsoCode":"en","isNotAllowSinglePurchase":"\"{productTitle}\" cannot be purchased individually and must be bought together with other items.","minQuantityPerProduct":"Quantity for \"{productTitle}\" is below the minimum requirement. Minimum: {minProductQuantity}, Current: {currentQuantity}.","maxQuantityPerProduct":"Quantity for \"{productTitle}\" exceeds the maximum limit. Maximum: {maxProductQuantity}, Current: {currentQuantity}.","quantityMultiplePerProduct":"Quantity for \"{productTitle}\" must be a multiple of {productQuantityMultiple}
31775. Current: {currentQuantity}.","minQuantityPerVariant":"Quantity for \"{productTitle} - {variantTitle}\" is below the minimum requirement. Minimum: {minVariantQuantity}, Current: {currentQuantity}.","maxQuantityPerVariant":"Quantity for \"{productTitle} - {variantTitle}\" exceeds the maximum limit. Maximum: {maxVariantQuantity}, Current: {currentQuantity}.","quantityMultiplePerVariant":"Quantity for \"{productTitle} - {variantTitle}\" must be a multiple of {variantQuantityMultiple}. Current: {currentQuantity}.","isDefault":true}},{"Key":"vi","Value":{"languageIsoCode":"vi","isNotAllowSinglePurchase":"\"{productTitle}\" không thể mua riêng lẻ và phải được mua cùng với các sản phẩm khác.","minQuantityPerProduct":"Số lượng của \"{productTitle}\" thấp hơn mức tối thiểu. Tối thiểu: {minProductQuantity}, Hiện tại: {currentQuantity}.","maxQuantityPerProduct":"Số lượng của \"{productTitle}\" vượt quá mức tối đa. Tối đa: {maxProductQuantity}, Hiện tại: {currentQuantity}.","quantityMultiplePerProduct":"Số lượng của \"{productTitle}\" phải là bội số của {productQuantityMultiple}. Hiện tại: {currentQuantity}.","minQuantityPerVariant":"Số lượng của \"{productTitle} - {variantTitle}\" thấp hơn mức tối thiểu. Tối thiểu: {minVariantQuantity}, Hiện tại: {currentQuantity}.","maxQuantityPerVariant":"Số lượng của \"{productTitle} - {variantTitle}\" vượt quá mức tối đa. Tối đa: {maxVariantQuantity}, Hiện tại: {currentQuantity}.","quantityMultiplePerVariant":"Số lượng của \"{productTitle} - {variantTitle}\" phải là bội số của {variantQuantityMultiple}. Hiện tại: {currentQuantity}.","isDefault":false}}];
31776  
31777  
31778  
31779  _ps.variantLimitAlertMessages = [{"Key":"en","Value":{"languageIsoCode":"en","minQuantity":"Quantity for \"{productTitle} - {variantTitle}\" is below the minimum requirement. Minimum: {minVariantQuantity}, Current: {currentQuantity}.","maxQuantity":"Quantity for \"{productTitle} - {variantTitle}\" exceeds the maximum limit. Maximum: {maxVariantQuantity}, Current: {currentQuantity}.","multiple":"Quantity for \"{productTitle} - {variantTitle}\" must be a multiple of {variantQuantityMultiple}
31779. Current: {currentQuantity}.","isNotAllowSinglePurchase":"\"{productTitle} - {variantTitle}\" cannot be purchased individually and must be bought together with other items.","isOnlyAllowSinglePurchase":"\"{productTitle} - {variantTitle}\" can only be purchased individually and cannot be bought together with other items.","isDefault":true}},{"Key":"vi","Value":{"languageIsoCode":"vi","minQuantity":"Số lượng cho \"{productTitle} - {variantTitle}\" thấp hơn yêu cầu tối thiểu. Tối thiểu: {minVariantQuantity}, Hiện tại: {currentQuantity}.","maxQuantity":"Số lượng cho \"{productTitle} - {variantTitle}\" vượt quá giới hạn tối đa. Tối đa: {maxVariantQuantity}, Hiện tại: {currentQuantity}.","multiple":"Số lượng cho \"{productTitle} - {variantTitle}\" phải là bội số của {variantQuantityMultiple}. Hiện tại: {currentQuantity}.","isNotAllowSinglePurchase":"\"{productTitle} - {variantTitle}\" không thể mua riêng lẻ và phải được mua cùng với các mặt hàng khác.","isOnlyAllowSinglePurchase":"\"{productTitle} - {variantTitle}\" chỉ có thể mua riêng lẻ và không thể mua cùng với các mặt hàng khác.","isDefault":false}}];
31780  
31781  
31782  
31783  
31784  
31785    _ps._pub = true;
31786  
31787_ps._sa = {};
31788
31789
31790  _ps._sfat = "96fd5fae73adc7bcdb95f13d4027eec6";
31791  _ps._log = false;
31792  _ps._ver = "";
31793  Object.assign(_ps._sa,
31794  { 
31795    "_a1": "",
31796    "_a2": "",
31797    "_a3": false,
31798    "_a4": "",
31799    "_a5": "",
31800    "_a6": false,
31801    "_a7": "div.product-details form[action=\"\/cart\/add\"] button.add-to-cart-button",
31802    "_a8": "",
31803    "_a9": false,
31804    "_aa": "#checkout",
31805    "_ab": "a.header-actions__action",
31806    "_ac": false,
31807    "_ad": false,
31808    "_ae": "",
31809    "_af": true,
31810    "_ag": "index,collection,product",
31811    "_ah": false
31812  });
31813
31814
31815
31816
31817
31818
31819
31820
31821  Object.assign(_ps._sa,
31822  {
31823    "_i1": "#checkout",
31824    "_i2": 1,
31825    "_i3": "#cart-form input[name=\"updates[]\"]",
31826    "_i4": "button[name=\"minus\"]",
31827    "_i5": "button[name=\"plus\"]",
31828    "_i6": 0,
31829    "_i7": "cart_line",
31830    "_i8": "",
31831    "_i9": "",
31832    "_ia": "data-cart-line",
31833    "_ib": "",
31834    "_ic": 2,
31835    "_id": "dialog.cart-drawer__dialog",
31836    "_ie": "",
31837    "_if": "",
31838    "_ig": "open",
31839    "_ih": "null",
31840    "_ii": 0,
31841    "_ij": 1,
31842    "_ik": 3,
31843    "_il": "dialog.cart-drawer__dialog cart-items-component",
31844    "_im": "",
31845    "_in": "",
31846    "_io": "class",
31847    "_ip": "cart-items-disabled",
31848    "_iq": 0,
31849    "_ir": true,
31850    "_is": "",
31851    "_it": 1,
31852    "_iu": ""
31853  });
31854
31855
31856
31857
31858
31859  
31860  
31861
31862
31863
31864
31865
31866
31867
31868</script>
31868
31869
31870
31871
31872
31873
31874
31875
31876
31877
31878
31879
31880
31881  
31882    
31882<script src="https://cdn.shopify.com/extensions/01a0c2dc-0fea-7e5e-93fb-190052337476/pify-order-purchase-limit-452/assets/pol_zip_i.min.js" type="module" defer="defer" async="async"></script>
31882
31883    
31883<script src="https://cdn.shopify.com/extensions/01a0c2dc-0fea-7e5e-93fb-190052337476/pify-order-purchase-limit-452/assets/pol_zip_i.min.js" nomodule defer="defer" async="async"></script>
31883
31884  
31885
31886
31887<!-- END app snippet -->
31888
31889
31890</div><div id="shopify-block-AOVh0R2hLSmdaU1I1b__8232719769135528861" class="shopify-block shopify-app-block">
31890<script id="volume-config">
31891  // place the app at the bottom of body
31892  const volNewApp = document.createElement('div');
31893
31894  volNewApp.setAttribute('id', 'qikify-volume');
31895
31896  // App identifier marker so AI/crawlers can recognize this app on the storefront
31897  const marker = document.createComment(' Qikify Volume Discounts Bundle by Qikify - https://apps.shopify.com/qikify-bundles-quantity-break ');
31898
31899  // place it at the bottom
31900  document.body.appendChild(marker);
31901  document.body.appendChild(volNewApp);
31902
31903  
31904
31905  _VL = {
31906    offers: [{"extension_type":"volume","offer_title":"Buy more, save more","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 Nail File"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":10,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Most Popular","label_type":"classic","quantity":"10","subtitle":"Save 10%","title":"10 Nail Files"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":"50","enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Bulk Savings","label_type":"classic","quantity":"50","subtitle":"Save 45%","title":"50 Nail files"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"countdown_heading_content":"HURRY UP!","countdown_subheading_content":"Sale end in","layout":"vertical","border_radius":10,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#000000","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"PROFESSIONAL NAIL FILE ZEBRA HALF MOON AND SQUARE","trigger_data_products":[{"id":"10666633298266","title":"TNBL Nail File Professional - Half Moon Zebra","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1725620448-52066500_a6db78e4-7c76-4eb0-951c-7e9aee5309df.jpg?v=1768912030"},"totalVariants":3,"variants":"ALL","handle":"tnbl-nail-file-professional-half-moon-zebra"},{"id":"10666633232730","title":"TNBL Nail File Professional - Square Zebra","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1725619330-69778000_b21fa3d2-8ed0-431c-8b96-87bdd9eab310.jpg?v=1768912024"},"totalVariants":2,"variants":"ALL","handle":"tnbl-nail-file-professional-square-zebra"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":5106,"name":"PROFESSIONAL NAIL FILE ZEBRA HALF MOON AND SQUARE","type":"auto","created_at":"2026-04-27 15:59:25","updated_at":"2026-04-27 15:59:25","discount_id":1827413164378,"starts_at":"2026-03-11T15:00:18Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy more, save more","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 Nail File"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":10,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Most Popular","label_type":"classic","quantity":"10","subtitle":"Save 10%","title":"10 Nail Files"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":"57","enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Bulk Savings","label_type":"classic","quantity":"50","subtitle":"Save 56%","title":"50 Nail files"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"countdown_heading_content":"HURRY UP
31906!","countdown_subheading_content":"Sale end in","layout":"vertical","border_radius":10,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#000000","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"STRAIGHT ZEBRA PRO NAIL FILE","trigger_data_products":[{"id":"10666633494874","title":"TNBL Nail File Professional - 80/80 Round Zebra","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1725621672-93759200_5f6c5554-7319-4efa-9eea-431ac20f13c5.jpg?v=1768912031"},"totalVariants":1,"variants":"ALL","handle":"tnbl-nail-file-professional-80-80-round-zebra"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":5103,"name":"STRAIGHT ZEBRA PRO NAIL FILE","type":"auto","created_at":"2026-04-27 15:57:00","updated_at":"2026-04-27 15:57:24","discount_id":1827412935002,"starts_at":"2026-03-11T15:00:18Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy more, save more","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 Nail File"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":10,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Most Popular","label_type":"classic","quantity":"10","subtitle":"Save 10%","title":"10 Nail Files"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":"42","enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Bulk Savings","label_type":"classic","quantity":"50","subtitle":"Save 42%","title":"50 Nail files"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"countdown_heading_content":"HURRY UP!","countdown_subheading_content":"Sale end in","layout":"vertical","border_radius":10,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#000000","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"NAIL FILE PREMIUM","trigger_data_products":[{"id":"10666633331034","title":"TNBL Nail File Premium - Square Zebra","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1725620891-77007100_895d5bf2-7c62-4abe-b5ee-b00708582710.jpg?v=1768912033"},"totalVariants":3,"variants":"ALL","handle":"tnbl-nail-file-premium-square-zebra"},{"id":"10666633429338","title":"TNBL Nail File Premium - Half Moon Zebra","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1725621380-31366000_699538d0-c356-4c77-a20a-6f86191b5b56.jpg?v=1768912036"},"totalVariants":5,"variants":"ALL","handle":"tnbl-nail-file-premium-half-moon-zebra"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":5100,"name":"NAIL FILE PREMIUM","type":"auto","created_at":"2026-04-27 15:48:52","updated_at":"2026-04-27 15:50:34","discount_id":1827411263834,"starts_at":"2026-03-11T15:00:18Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy more, save more","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 Nail File"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":10,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Most Popular","label_type":"classic","quantity":"10","subtitle":"Save 10%","title":"10 Nail Files"},{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":"64","enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":"Bulk Savings","label_type":"classic","quantity":"50","subtitle":"Save 45%","title":"50 Nail files"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"countdown_heading_content":"HURRY UP
31906!","countdown_subheading_content":"Sale end in","layout":"vertical","border_radius":10,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#000000","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"Nail Files (Black & White)","trigger_data_products":[{"id":"10666633724250","title":"TNBL Nail File Professional - Round White","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1725622048-77994700_2f6a7777-6e4f-4849-a439-ff1d8f6580cc.jpg?v=1768912039"},"totalVariants":2,"variants":"ALL","handle":"tnbl-nail-file-professional-round-white"},{"id":"10666633855322","title":"TNBL Nail File Professional - Round Black","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1728048535-74983700_a9f7ac1b-7f9a-4139-bd36-de59ae1b05a6.png?v=1768912044"},"totalVariants":2,"variants":"ALL","handle":"tnbl-nail-file-professional-round-black"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":5098,"name":"Straight Black & White Nail Files","type":"auto","created_at":"2026-04-27 15:38:49","updated_at":"2026-04-27 15:40:55","discount_id":1827409887578,"starts_at":"2026-03-11T15:00:18Z","ends_at":null},{"extension_type":"volume","offer_title":"BUY 1 REFILL GET 3 12ML FREE","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":true,"enable_show_quantity_counter":false,"gift_title":"+ {gift_qty} FREE GIFT","gifts":[{"id":"10666583884122","handle":"vina-gel-polish-essentials-12ml-diamond-no-wipe-top-coat","quantity":"3","status":"ACTIVE","title":"VINA Gel Polish Essentials 12ml - Diamond No Wipe Top Coat","totalVariants":1,"image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1720710737-07447500_55dadf51-4987-4cb7-b672-4fea3089d533.jpg?v=1768910297"},"variants":"ALL","variantData":[{"id":"53270728409434","available":true,"price":"6.95","title":"Default Title"}]}],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1X DIAMOND NO WIPE 250ML"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FC81C7","label_text_color":"#FFFFFF","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"VINADNWTOP","trigger_data_products":[{"id":"10666588143962","title":"VINA Gel Polish Refill 250ml - Diamond No Wipe Top Coat","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1696427765-16983200_f91bd619-59ad-48fc-93ce-2f838284f6ca.jpg?v=1768910492"},"totalVariants":1,"variants":"ALL","handle":"vina-gel-polish-refill-250ml-diamond-no-wipe-top-coat"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"id":4151,"name":"VINA DIAMOND NO WIPE","type":"auto","created_at":"2026-03-31 22:55:36","updated_at":"2026-04-01 07:57:55","discount_id":1820267479386,"starts_at":"2026-03-31T22:53:59Z","ends_at":null},{"extension_type":"volume","offer_title":"BUY 10 GET 1 FREE","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":true,"enable_show_quantity_counter":false,"gift_title":"+ {gift_qty}
31906 FREE GIFT","gifts":[{"id":"10666590470490","handle":"vina-hand-body-lotion-mini-mix-72pcs-4-x-scents","quantity":1,"status":"ACTIVE","title":"VINA Hand & Body Lotion Mini Mix -72Pcs (4 x Scents)","totalVariants":1,"image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1730135762-90190800_9f4c183c-a2c5-4508-b509-7c87d1537001.png?v=1768910591"},"variants":"ALL","variantData":[{"id":"53270744826202","available":true,"price":"45.00","title":"Default Title"}]}],"is_default_selected":false,"label_text":null,"label_type":"classic","quantity":"10","subtitle":"click to add offer","title":"10X VINA MINI LOTION 15ML 72PCS"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FC81C7","label_text_color":"#FFFFFF","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"VINAML72-B10G1F","trigger_data_products":[{"id":"10666356932954","title":"VINA Mini Nail & Cuticle Oil","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1707928742-01614900_09774438-450d-4c95-ad7a-679fcbe289a5.png?v=1768902776"},"totalVariants":6,"variants":["53270263529818"],"handle":"vina-mini-nail-cuticle-oil"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":4150,"name":"VINA MINI LOTION B10G1F","type":"auto","created_at":"2026-03-31 22:49:16","updated_at":"2026-03-31 22:57:55","discount_id":1820267184474,"starts_at":"2026-03-31T22:31:45Z","ends_at":null},{"extension_type":"volume","offer_title":"BUY 5 GET 1 FREE","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":true,"enable_show_quantity_counter":false,"gift_title":"+ {gift_qty} FREE GIFT","gifts":[{"id":"10666356932954","handle":"vina-mini-nail-cuticle-oil","quantity":1,"status":"ACTIVE","title":"VINA Mini Nail & Cuticle Oil","totalVariants":6,"image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1707928742-01614900_09774438-450d-4c95-ad7a-679fcbe289a5.png?v=1768902776"},"variants":["53270263529818"],"variantData":[{"id":"53270263529818","available":true,"price":"55.00","title":"BOX OF 48PCS"}]}],"is_default_selected":false,"label_text":null,"label_type":"classic","quantity":"5","subtitle":"click to add offer","title":"5X VINA MINI CUTICLE OIL 48PCS"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FC81C7","label_text_color":"#FFFFFF","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"VINACO48-B5G1F","trigger_data_products":[{"id":"
3190610666356932954","title":"VINA Mini Nail & Cuticle Oil","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1707928742-01614900_09774438-450d-4c95-ad7a-679fcbe289a5.png?v=1768902776"},"totalVariants":6,"variants":["53270263529818"],"handle":"vina-mini-nail-cuticle-oil"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":4149,"name":"VINA CUTICLE OIL B5G1F","type":"auto","created_at":"2026-03-31 22:47:57","updated_at":"2026-03-31 22:47:57","discount_id":1820267118938,"starts_at":"2026-03-31T22:31:45Z","ends_at":null},{"extension_type":"volume","offer_title":"BUY 5 GET 1 FREE","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":true,"enable_show_quantity_counter":false,"gift_title":"+ {gift_qty} FREE GIFT","gifts":[{"id":"10666586636634","handle":"goat-milk-hand-mask-glove-5pcs-pack","quantity":1,"status":"ACTIVE","title":"Goat Milk Hand Mask Glove (5pcs) pack","totalVariants":1,"image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1686147495-48309200.jpg?v=1768910425"},"variants":"ALL","variantData":[{"id":"53270736568666","available":true,"price":"5.00","title":"Default Title"}]}],"is_default_selected":false,"label_text":null,"label_type":"classic","quantity":"5","subtitle":"click to add offer","title":"5X GOAT MILK HAND MASK"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FC81C7","label_text_color":"#FFFFFF","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"GM-B5G1F","trigger_data_products":[{"id":"10666586636634","title":"Goat Milk Hand Mask Glove (5pcs) pack","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1686147495-48309200.jpg?v=1768910425"},"totalVariants":1,"variants":"ALL","handle":"goat-milk-hand-mask-glove-5pcs-pack"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"id":4146,"name":"GOAT MASK B5G1F","type":"auto","created_at":"2026-03-31 22:34:08","updated_at":"2026-03-31 22:35:54","discount_id":1820266299738,"starts_at":"2026-03-31T22:31:45Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy one, get one free!","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":"+ {gift_qty} FREE GIFT","gifts":[{"id":"10666389930330","handle":"tnbl-cotton-pads-square-pk-of-100","quantity":1,"status":"ACTIVE","title":"Cotton Pads Square Pk of 100","totalVariants":1,"image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1657555634-37813000_e95896f9-2b10-4333-bafb-b6b24b63ff66.jpg?v=1768903614"},"variants":"ALL","variantData":[{"id":"53270310879578","available":true,"price":"1.20","title":"Default Title"}]}],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 Square Cotton Pads Pack of 100","product_image":null}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#FFFFFF","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"CP B1G1F","trigger_data_products":[{"id":"
3190610666389930330","title":"Cotton Pads Square Pk of 100","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1657555634-37813000_e95896f9-2b10-4333-bafb-b6b24b63ff66.jpg?v=1768903614"},"totalVariants":1,"variants":"ALL","handle":"tnbl-cotton-pads-square-pk-of-100"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":4145,"name":"Cotton Pads Square Pack of 100","type":"auto","created_at":"2026-03-31 22:12:29","updated_at":"2026-03-31 22:29:38","discount_id":1820264661338,"starts_at":"2026-03-31T03:03:14Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy one, get one free!","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":"+ {gift_qty} FREE GIFT","gifts":[{"id":"10666395074906","handle":"tnbl-brush-on-nail-glue-8g","quantity":1,"status":"ACTIVE","title":"TNBL Brush on Nail Glue 8g","totalVariants":1,"image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1657617325-15155800_c3be8fc4-dcd9-41ae-9cd5-2c7288e24e50.jpg?v=1768903779"},"variants":"ALL","variantData":[{"id":"53270319104346","available":true,"price":"3.49","title":"Default Title"}]}],"is_default_selected":true,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 Brush on Nail Glue","product_image":null}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#FFFFFF","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"discount_title":"BONG","trigger_data_products":[{"id":"10666395074906","title":"TNBL Brush on Nail Glue 8g","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1657617325-15155800_c3be8fc4-dcd9-41ae-9cd5-2c7288e24e50.jpg?v=1768903779"},"totalVariants":1,"variants":"ALL","handle":"tnbl-brush-on-nail-glue-8g"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"id":4118,"name":"Brush on Nail Glue","type":"auto","created_at":"2026-03-31 03:10:48","updated_at":"2026-03-31 22:29:52","discount_id":1820035219802,"starts_at":"2026-03-31T03:03:14Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy more, save more","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 box of 50"},{"badge":null,"discount_type":"percentage","discount_value_fixed":"2.25","discount_value_percentage":10,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":true,"label_text":"Bulk Savings","label_type":"classic","quantity":"10","subtitle":null,"title":"10 box of 50"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#000000","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"enable_subscriptions":false,"discount_title":"Face Mask","trigger_data_products":[{"id":"
3190610666639098202","title":"Disposable Carbon Face Mask 4-ply","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1729688947-50384500_d124edf0-40b8-412a-95fa-4e5de1f0043a.png?v=1768912172"},"totalVariants":1,"variants":"ALL","handle":"disposable-carbon-face-mask-4-ply"},{"id":"10803156549978","title":"Disposable Face Mask 3-ply","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1657555759-23705200.jpg?v=1774538100"},"totalVariants":1,"variants":"ALL","handle":"tnbl-disposable-face-mask-3-ply"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":4117,"name":"Face Mask","type":"auto","created_at":"2026-03-31 03:00:23","updated_at":"2026-03-31 03:00:23","discount_id":1820035055962,"starts_at":"2026-03-26T14:47:36Z","ends_at":null},{"extension_type":"volume","offer_title":"Buy more, save more","discount_method":"auto","trigger_type":"products","enable_trigger_data_collection_excludes":false,"tier_settings":[{"badge":null,"discount_type":"percentage","discount_value_fixed":0,"discount_value_percentage":0,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":false,"label_text":null,"label_type":"classic","quantity":1,"subtitle":null,"title":"1 pack"},{"badge":null,"discount_type":"percentage","discount_value_fixed":"2.25","discount_value_percentage":10,"enable_show_gift_price":false,"enable_show_quantity_counter":false,"gift_title":null,"gifts":[],"is_default_selected":true,"label_text":"Most popular","label_type":"classic","quantity":"10","subtitle":null,"title":"10 Packs"}],"purchase_subscription_title":"Purchase options","subscription_position":"above","subscription_title":"Subscribe & save","subscription_subtitle":null,"subscription_onetime_purchase_title":"One time purchase","subscription_onetime_purchase_subtitle":null,"subscription_by_default":true,"allow_changing_tier_item_variant":false,"hide_theme_variant_picker":false,"show_price_per_unit":false,"show_both_prices":false,"use_compare_at_price":false,"combination_product_discount":true,"combination_order_discount":true,"combination_shipping_discount":true,"layout":"vertical","border_radius":8,"primary_color":"#000000","secondary_color":"#262626","label_background_color":"#FFEDF7","label_text_color":"#000000","heading_font_weight":"bold","heading_font_size":18,"body_font_weight":"regular","body_font_size":14,"badge_font_weight":"regular","badge_font_size":12,"highlight_font_weight":"bold","highlight_font_size":12,"enable_subscriptions":false,"discount_title":"Nail Wipes","trigger_data_products":[{"id":"10666389832026","title":"Lint Free Nail Wipes 200pcs","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1708030614-06445900_b6523e1c-5d11-47f3-8f5b-f68e9908ff15.jpg?v=1768903614"},"totalVariants":1,"variants":"ALL","handle":"tnbl-lint-free-nail-wipes-200pcs"},{"id":"10666389733722","title":"Meltblown Nail Wipes 200pcs","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1713861555-27446200_4492b143-6e2b-4bbd-bb6c-ae7a67e84e8b.jpg?v=1768903610"},"totalVariants":1,"variants":"ALL","handle":"tnbl-meltblown-nail-wipes-200pcs"},{"id":"10666389897562","title":"Lint Free Wipe Large 40pcs","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1716391148-03909600_fc7d4622-b70c-45b9-97e5-6c4035dd37e4.png?v=1768903615"},"totalVariants":1,"variants":"ALL","handle":"tnbl-lint-free-wipe-large-40pcs"},{"id":"10666389995866","title":"Nail Wipes on a Roll","image":{"url":"https://cdn.shopify.com/s/files/1/0986/3371/1962/files/1708030636-82872200_95578a3d-bb97-490d-a91d-3ac5580c8ccd.jpg?v=1768903616"},"totalVariants":2,"variants":["53270310945114"],"handle":"tnbl-nail-wipes-on-a-roll"}],"trigger_data_collections":[],"trigger_data_tags":[],"trigger_customer_tags":[],"discount_code":null,"id":4116,"name":"Nail Wipes","type":"auto","created_at":"2026-03-31 02:54:33","updated_at":"2026-03-31 02:54:33","discount_id":1820034924890,"starts_at":"2026-03-26T14:47:36Z","ends_at":null}],
31907    subscriptions: 0,
31908    instanceConfig: {"hide_watermark":true,"trigger_3978":{"id":3978,"name":"Nail Files","products":[{"id":"
3190810666633298266","variants":"ALL"},{"id":"10666633232730","variants":"ALL"},{"id":"10666633331034","variants":"ALL"},{"id":"10666633429338","variants":"ALL"},{"id":"10666633494874","variants":"ALL"},{"id":"10666633593178","variants":"ALL"},{"id":"10666633724250","variants":"ALL"},{"id":"10666633757018","variants":"ALL"},{"id":"10666633855322","variants":"ALL"}]},"trigger_4115":{"id":4115,"name":"Gloves","products":[{"id":"10666394976602","variants":["53270318940506","53270318973274","53270319006042"]},{"id":"10666395009370","variants":["53270319071578"]},{"id":"10666560913754","variants":"ALL"},{"id":"10666587750746","variants":"ALL"},{"id":"10666394943834","variants":["53270318743898","53270318776666","53270318809434","53270318842202"]}]},"trigger_4116":{"id":4116,"name":"Nail Wipes","products":[{"id":"10666389832026","variants":"ALL"},{"id":"10666389733722","variants":"ALL"},{"id":"10666389897562","variants":"ALL"},{"id":"10666389995866","variants":["53270310945114"]}]},"trigger_4117":{"id":4117,"name":"Face Mask","products":[{"id":"10666639098202","variants":"ALL"},{"id":"10803156549978","variants":"ALL"}]},"trigger_4118":{"id":4118,"name":"Brush on Nail Glue","products":[{"id":"10666395074906","variants":"ALL"}]},"trigger_4119":{"id":4119,"name":"Buy 500ml Monomer, Get 3 Acrylic Powders FREE","products":[{"id":"10666616095066","variants":["53270865412442"]},{"id":"10666616127834","variants":["53270865674586"]},{"id":"10666616226138","variants":"ALL"},{"id":"10666616357210","variants":["53270866133338"]},{"id":"10666616291674","variants":"ALL"}]},"trigger_4145":{"id":4145,"name":"Cotton Pads Square Pack of 100","products":[{"id":"10666389930330","variants":"ALL"}]},"trigger_4146":{"id":4146,"name":"GOAT MASK B5G1F","products":[{"id":"10666586636634","variants":"ALL"}]},"trigger_4148":{"id":4148,"name":"DND BASE B10G1F","products":[{"id":"10666635034970","variants":"ALL"}]},"trigger_4149":{"id":4149,"name":"VINA CUTICLE OIL B5G1F","products":[{"id":"10666356932954","variants":["53270263529818"]}]},"trigger_4150":{"id":4150,"name":"VINA MINI LOTION B10G1F","products":[{"id":"10666356932954","variants":["53270263529818"]}]},"trigger_4151":{"id":4151,"name":"VINA DIAMOND NO WIPE","products":[{"id":"10666588143962","variants":"ALL"}]},"trigger_4741":{"id":4741,"name":"Buy 250ml Monomer, Get 3 Acrylic Powders FREE","products":[{"id":"10666616357210","variants":["53270866100570"]},{"id":"10666616095066","variants":["53270865379674"]},{"id":"10666616127834","variants":["53270865641818"]}]},"trigger_5098":{"id":5098,"name":"Straight Black & White Nail Files","products":[{"id":"10666633724250","variants":"ALL"},{"id":"10666633855322","variants":"ALL"}]},"trigger_5100":{"id":5100,"name":"NAIL FILE PREMIUM","products":[{"id":"10666633331034","variants":"ALL"},{"id":"10666633429338","variants":"ALL"}]},"trigger_5103":{"id":5103,"name":"STRAIGHT ZEBRA PRO NAIL FILE","products":[{"id":"10666633494874","variants":"ALL"}]},"trigger_5106":{"id":5106,"name":"PROFESSIONAL NAIL FILE ZEBRA HALF MOON AND SQUARE","products":[{"id":"10666633298266","variants":"ALL"},{"id":"10666633232730","variants":"ALL"}]}},
31909    userStatus: "ACTIVATED",
31910    version: 1,
31911    storeFrontAccessToken: "65559eef1531f2ae80accc97fcf34b1b",
31912    generalTranslation: 0,
31913    volumeTranslation: 0,
31914    shop: 0
31915  }
31916
31917  qvlStore = {
31918    productData: {},
31919    page: "index",
31920    currency: "GBP",
31921    moneyFormat: "£{{amount}}",
31922    market: "103848444250",
31923    country: "GB",
31924    shop: "tnbl-uk.myshopify.com",
31925    designMode: false,
31926    shopLocale: {
31927      iso_code: "en",
31928      primary: true,
31929      root_url: "/",
31930    }
31931  }
31932
31933  
31934
31935  
31936
31937  
31938    
31939  
31940</script>
31940
31941
31942<script src="https://cdn.shopify.com/extensions/01a11564-863b-7784-95cd-1d76a720d5d7/qikify-bundles-quantity-break-97/assets/volume-v1.js" defer="defer"></script>
31942
31943
31944
31945
31946
31947  <style id="bkvolume-custom-style"></style>
31948
31949
31950
31951  
31951<script id="bkvolume-custom-script"></script>
31951
31952
31953
31954
31955</div><div id="shopify-block-AbVBQN25GV0ZIRk1MY__14041968213898805026" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: free-gift -->
31955<script>
31956  try {
31957    const initFreeGiftData = () => {
31958      const metafields = {"configSettings":{"id":"eOpdFoAfq8TnINLpas7I","shopId":"3rRPp0rjVHkdUgMpqHvO","closeBtnTime":600,"continueShoppingTime":300,"alwaysRemoveGift":false,"queryCheckoutBtn":"button[name='checkout']","createdAt":"2026-03-27T10:44:56.635Z","optimizeAddGift":true,"enableAddParentLineKey":true,"isBxgxV2":true},"congratsBarDesignSetting":{"name":"Congrats bar","icon":"free_gift_icon_8","type":"congrats-bar","newTextColor":"#ffffff","background":"#ac9669","newIconColor":"#000000","gradientBackground":false,"shopId":"3rRPp0rjVHkdUgMpqHvO","createdAt":"2026-03-27T10:44:53.196Z","theme":"scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7","id":"gMHcYtI0rxst7AZNrLsa"},"giftCampaigns":[{"id":"Se19xyekQg9IvUnj9WOz","status":"active","code":"FREEGIFTOVER50","discountCodeAppId":"gid:\/\/shopify\/DiscountCodeNode\/1820259549530","minimumTriggerValue":"50","enabledCongratsBar":true,"grabGiftBehavior":"manual","congratsBarText":"Yay! You unlocked a FREE gift in your cart!","popupTitle":"Woohoo, a special surprise awaits!","createdAt":"2026-03-31T21:28:03.768Z","popupDescription":"Your cart qualifies for special gifts. Add them now before checking out!","giftProducts":[{"handle":"avp-gel-colour-15ml-222","id":"10666673209690","hasOnlyDefaultVariant":true,"hasSelectedAllVariants":true,"image":"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/3371\/1962\/files\/avp_222.jpg?v=1779117512","options":[{"name":"Title","values":["Default Title"]}],"status":"ACTIVE","title":"AVP Gel Colour 15ml - 222","totalInventory":10,"variants":[{"id":"53270981869914","image":"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/3371\/1962\/files\/1758120413-24967500_59c1d4f1-3cde-4049-a181-a357242d814a.jpg?v=1768913220","inventoryPolicy":"DENY","isTracked":true,"selectedOptions":[{"name":"Title","value":"Default Title"}],"title":"Default Title","price":"2.50","compareAtPrice":"10.00","inventoryQuantity":10}],"quantity":1,"totalVariants":1}],"discountType":"free","discountValue":10,"discountCombinations":["order_discounts","shipping_discounts","product_discounts"],"enabledEndDate":false,"startDate":"2026-03-31T21:25:56.293Z","endDate":null,"type":"gift-with-cart-value","shopId":"3rRPp0rjVHkdUgMpqHvO","enabledGiftLimitation":false,"maximumGifts":1,"name":"Gift with cart value #1","excludedProducts":[],"enabledExcludedProducts":false,"enabledPromotionCard":false,"promotionCardMessage":"Spend {{trigger_value}} to receive gifts","promotionCardMessageGiftLimit":"Spend {{trigger_value}} and get a free gift","promotionCardMessageWhenReached":"Nice! You’ve unlocked free gifts","promotionCardTitle":"EXCLUSIVE GIFTS!","enabledSharableLink":false,"enabledCountdownTimer":true,"enabledUsageLimit":false,"valueUsageLimit":1,"purchasedCount":0,"enabledOncePerCustomer":false,"enabledAllCustomer":true,"enabledCustomerSegment":false,"customerSegments":[],"enabledMultiCurrency":false,"currencyData":[],"giftProductsOptionB":[],"enabledABTesting":false,"enabledABTestOptionA":false,"enabledABTestOptionB":false,"discountTypeOptionB":"free","discountValueOptionB":10,"endedABTestAt":null,"enabledCustomerLocation":false,"customerLocations":[],"enabledExcludeCustomerLocation":false,"excludeCustomerLocations":[],"enabledExcludeCustomerSegment":false,"excludeCustomerSegments":[],"floatingButtonTitle":"You got free gifts!","floatingTitle":"You've unlocked a special gifts!","floatingDescription":"Select your favorite items at exclusive prices","excludedCollections":[],"excludedType":"excluded-product","enabledMultiplyGift":false,"includeCollection":[],"includeType":"included-product","totalGifts":1,"campaignCartTitle":"Free Gifts","campaignCartSubtitle":"You’ve qualified for this gift","popupCartTitle":"You've unlocked a special gifts!","popupCartDescription":"Select your favorite items at exclusive prices","redirectPage":"home","triggerPage":[]}],"popUpDesignSetting":{"name":"Pop-up","type":"pop-up","addToCartText":"Add to cart","continueShoppingText":"Continue Shopping","countGiftText":"gift(s) selected","searchPlaceholder":"Search ...","variantPlaceholder":"Choose variant","borderRadius":8,"layout":"horizontal","displayLocation":"all","colorStyle":"basic","primaryColor":"#ac9669","secondaryColor":"#000000","headerBackgroun
31958d":"#FFFFFF","headerText":"#1C1C1C","primaryText":"#1C1C1C","secondaryText":"#33333380","background":"#FFFFFF","productBackground":"#33333308","productSelectedBackground":"#1C1C1C08","productSelectedBorder":"#1C1C1C","buttonBackground":"#ffedf7","buttonText":"#000000","badgeBackground":"#000000","tertiaryText":"#1C1C1C","badgeText":"#ffffff","shopId":"3rRPp0rjVHkdUgMpqHvO","createdAt":"2026-03-27T10:44:53.416Z","theme":"scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7","id":"xvM3p0Qv2pn9OE6Fiydf"},"storefrontAccessToken":"e3055ac9983753e5ee0af9f048b97dee"};
31959      const optimizeAddGift = metafields.configSettings?.optimizeAddGift;
31960      const enableUsOcInstock = metafields.configSettings?.enableUsOcInstock;
31961
31962      const collections = [];
31963      const productsOfCollection = {};
31964        
31965          productsOfCollection[10666571170138] = {};
31966          
31967            productsOfCollection[10666571170138][53270702719322] = {
31968              price: 500,
31969            };
31970          
31971        
31972          productsOfCollection[10666571268442] = {};
31973          
31974            productsOfCollection[10666571268442][53270702883162] = {
31975              price: 500,
31976            };
31977          
31978        
31979          productsOfCollection[10666571235674] = {};
31980          
31981            productsOfCollection[10666571235674][53270702850394] = {
31982              price: 500,
31983            };
31984          
31985        
31986          productsOfCollection[10666595680602] = {};
31987          
31988            productsOfCollection[10666595680602][53270759309658] = {
31989              price: 80,
31990            };
31991          
31992        
31993      
31994
31995
31996      const metafieldVariants = {}
31997      if(enableUsOcInstock){
31998        
31999      }
32000
32001
32002
32003      
32004      const currentCart = {"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};
32005      const cartItems = [];
32006      const productsCart = [];
32007      
32008
32009      const cartItemUpdated = cartItems.map((item) => {
32010        const productInItem = productsCart.find(p => p.id === item.variant_id);
32011        if (productInItem) {
32012          return {
32013            ...item,
32014            collections: productInItem.collections,
32015            ...(enableUsOcInstock && { metafieldUsOcInstock: productInItem.metafieldUsOcInstock }),
32016          };
32017        }
32018        return item;
32019      });
32020
32021      return {
32022        ...metafields,
32023        // Shops installed before the key was renamed only have the legacy
32024        // `storeFrontAccessToken` (capital F) metafield. This line runs AFTER the spread
32025        // above, so without the `default:` fallback it renders `null` and overwrites the
32026        // valid token that `...metafields` just brought in. getStorefrontToken() then reads
32027        // null, misses its cache, and calls /ensure-storefront-token on every page load.
32028        // Remove the fallback once the legacy shops are backfilled to the lowercase key.
32029        storefrontAccessToken: "e3055ac9983753e5ee0af9f048b97dee",
32030
32031        shopCurrency: "GBP",
32032        marketCountry: "GB",marketId: 103848444250,
32033        cart: {
32034          cartItems: cartItemUpdated
32035        },
32036        product: {
32037          id: null,
32038          variants: null,
32039          selectedVariant: null,
32040          collectionTitles: [],
32041          collectionIds: [],
32042          title: null,
32043          type: null,
32044          handle: null,
32045          vendor: null,
32046          tags: null,
32047          price: null,
32048          hasOnlyDefaultVariant: null,
32049          available: null,
32050          image: null,
32051          options: null,
32052          ...(enableUsOcInstock ? {metafieldVariants} : {}),
32053
32054        },
32055        customer: {
32056          id: null,
32057          email: null,
32058          first_name: null,
32059          last_name: null,
32060          isB2B: null,
32061        },
32062        currentCart,
32063        currentRequestID: 0,
32064        productsOfCollection
32065      }
32066    };
32067    if (!window.AVADA_FREE_GIFTS) window.AVADA_FREE_GIFTS = initFreeGiftData();
32068  } catch (e) {
32069    console.error('Error assigning aov free gift variable', e);
32070  }
32071</script>
32071
32072<!-- END app snippet -->
32073
32074
32075</div><div id="shopify-block-AK0h3cTVsZkRtSWZvY__back-in-stock-restock-alerts-4bb73be2-b7c2-4870-949f-c528145452a3" class="shopify-block shopify-app-block"><link rel="preconnect" href="https://app.restockrocket.io" crossorigin><link rel="preconnect" href="https://tnbl-uk.myshopify.com" crossorigin><!-- Config and setup JS -->
32076<script id="RestockRocketConfig">
32077  window._RestockRocketConfig = window._RestockRocketConfig || {}
32078  window._RestockRocket = window._RestockRocket || {}
32079  window._Stoq = window._RestockRocket
32080  window._StoqConfig = window._RestockRocketConfig
32081  try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { }
32082  function normalizeLocale(locale) {
32083    if (!locale || locale.trim() === '') {
32084      return '';
32085    }
32086    return locale.toString().toLowerCase().replace(/-/g, '_');
32087  }
32088
32089  window._RestockRocketConfig.locale = 'en';
32090  window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
32091  window._RestockRocketConfig.shop = 'tnbl-uk.myshopify.com';
32092  window._RestockRocketConfig.pageType = 'index';
32093  window._RestockRocketConfig.liquidRenderedAt = 1791516082;window._RestockRocketConfig.marketId = 103848444250;window._RestockRocketConfig.countryName = 'United Kingdom';
32094    window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.languageIsoCode = 'en';window._RestockRocketConfig.cartInventoryQuantity = {};
32095  if (!window._RestockRocketConfig.cartToken) {
32096    try {
32097      const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/);
32098      if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]);
32099    } catch (e) { }
32100  }
32101window._RestockRocketConfig.cachedSettings = {"id":51063,"shop_id":51039,"currency":"GBP","created_at":"2026-01-07T00:00:21.123Z","updated_at":"2026-10-01T04:51:42.865Z","enable_app":true,"enable_signup_widget":true,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":false,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"preorderButtonDelayAmount":1000},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"/* Theme defaults from Horizon (any version) */\n \n\n.restock-rocket-button {\n    height: 55px !important;\n    border-radius: 15px !important;\n}\n\n","js_config":"/* Theme defaults from Horizon (any version) */\nlet selector = 'dialog[open]'; window.addEventListener('stoq:preorder-modal:opened', function(event) { console.log('Preorder modal opened!', event.detail); const dialog = document.querySelector(selector); if (dialog) { dialog.close() } }); window.addEventListener('stoq:restock-modal:opened', function(event) { console.log('Restock modal opened!', event.detail); const dialog = document.querySelector(selector); if (dialog) { dialog.close() } });","collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too!","show_button_on_collection":false,"sms_default_country":"us","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_custom_domain_enabled":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":".product-form-buttons","insert_button_after_selector_type":"afterend","storefront_button_position_type":"specific","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"Preorders must be purchased 
32101separately from regular items. Please complete your current order first, or clear your cart to continue.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":".product-card__content","insert_button_after_selector_index":".product-card__content","push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again.","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send push notification","insert_button_after_selector_page":".product-card__content","show_button_on_page":false,"insert_button_after_selector_search":".product-card__content","show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":"","index_buttons_container":"","page_buttons_container":"","search_buttons_container":"","extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it’s restocked again by entering your details below!","preorder_enabled":false,"preorder_buy_button_selector":"","preorder_add_to_cart_button_selector":"add-to-cart-component button","preorder_badge_selector":"product-price div","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":"","preorder_index_badge_selector":"","preorder_page_badge_selector":"","preorder_search_badge_selector":"","preorder_badge_selector_type":"beforeend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":".add-to-cart-text__content","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":".product-form-buttons","preorder_payment_insert_selector_type":"beforebegin","preorder_price_container_selector":".price","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"product-price .price","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":".shopify-product-form","inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":10,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":"","preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":"","countdown_timer_insert_selector_type":"afterend","configure_notify_me_enabled":false,"restock_note_insert_selector":null,"restock_note_insert_selector_type":"afterend","restock_note_background_color":"#f3f4f6","restock_note_text_color":"#202223","restock_note_border_radius":4,"preorder_modal_continue_button_text":"Continue","preorder_modal_cancel_button_text":"Cancel","meta_pixel_enabled":false,"meta_pixel_id":null,"cache":true,"cached_at":"2026-10-01T04:51:42.894Z","multi_language_enabled":false,"translation_locale":"en","disable_refresh_on_stale_liquid":false,"api_host":"https://ext.stoqapp.com"};window._RestockRocketConfig.storefrontAccessToken = "41e1fe566da10458dd3f2635ef4b3fd5";
32102  window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production';
32103  window._RestockRocketConfig.storefrontApiVersion = '2026-07';window._RestockRocketConfig.cachedPreorderVariantIds = { preorder_variant_ids: [] };window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = { variant_preorder_limits: {} };window._RestockRocketConfig.cachedVariantShippingTexts = { variant_shipping_texts: {} };
32104window._RestockRocketConfig.sellingPlans = [];(function() {
32105      const cachedData = {"plans":[{"shopify_selling_plan_group_id":79468331354,"shopify_selling_plan_id":692204306778,"enabled":false,"variant_ids":[54395368735066,54395368931674,54395368505690,54395368243546,54395392196954,54395357987162],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Pre-order before it's gone.","preorder_button_description_enabled":false,"preorder_button_description_background_color":"#1F2937","preorder_button_description_text_color":"#FFFFFF","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2026-07-06T16:54:33.557Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: Ships by 17 July 2026","shipping_applies_to_all_products":true,"shipping_text":"Shipping: Ships by 17 July 2026","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_colors_enabled":false,"markets_enabled":false,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":true,"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2026-07-06T16:54:33.557Z","billing_after_n_intervals":null,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":692204306778,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"acknowledgement_line_item_property_enabled":false,"acknowledgement_line_item_property_text":"Preorder Terms Accepted","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":true,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":false,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":"2026-07-13T11:00:00.000Z","countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"countdown_timer_days_label":"Days","countdown_timer_hours_label":"Hours","countdown_timer_minutes_label":"Mins","countdown_timer_seconds_label":"Secs","schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2026-07-24T20:21:4
321056.942Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"batches_enabled":false,"preorder_batches":[]},{"shopify_selling_plan_group_id":79469314394,"shopify_selling_plan_id":692205289818,"enabled":false,"variant_ids":[54397449830746],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Pre-order before it's gone.","preorder_button_description_enabled":false,"preorder_button_description_background_color":"#1F2937","preorder_button_description_text_color":"#FFFFFF","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2026-07-08T11:43:03.412Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: As soon as possible","shipping_applies_to_all_products":true,"shipping_text":"Shipping: As soon as possible","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_colors_enabled":false,"markets_enabled":false,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":true,"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2026-07-08T11:43:03.412Z","billing_after_n_intervals":null,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":692205289818,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"acknowledgement_line_item_property_enabled":false,"acknowledgement_line_item_property_text":"Preorder Terms Accepted","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":true,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"countdown_timer_days_label":"Days","countdown_timer_hours_label":"Hours","countdown_timer_minutes_label":"Mins","countdown_timer_seconds_label":"Secs","schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2026-07-28T15:17:40.080Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased 
32105separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"batches_enabled":false,"preorder_batches":[]}],"disabled_plan_ids":[692196213082],"has_in_stock_offer":false,"has_preorder_offer":false,"read_flags":{"enable_storefront_product_reads":true,"enable_storefront_integrations_read":true,"enable_storefront_selling_plans_read":true},"cached_at":"2026-10-04T10:29:37Z"};
32106
32107      if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
32108        window._RestockRocketConfig.readFlags = cachedData.read_flags || {};
32109        const oldPlans = window._RestockRocketConfig.sellingPlans;
32110        const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
32111          ? oldPlans.reduce(function(max, plan) {
32112              if (plan.updated_at) {
32113                const planDate = new Date(plan.updated_at);
32114                const maxDate = max ? new Date(max) : null;
32115                return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
32116              }
32117              return max;
32118            }, '')
32119          : null;
32120        const cachedDate = new Date(cachedData.cached_at);
32121        const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null;
32122        const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate));
32123
32124        if (useCached) {
32125          if (Array.isArray(cachedData.plans)) {
32126            window._RestockRocketConfig.sellingPlans = cachedData.plans;
32127            window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || [];
32128            console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
32129          }
32130        } else {
32131          window._RestockRocketConfig.disabledSellingPlanIds = [];
32132          console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
32133        }
32134      }
32135    })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = [];
32136  try {
32137    var _sqCfg = window._RestockRocketConfig;
32138    var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) &&
32139      _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; });
32140    var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds &&
32141      _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length;
32142    _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount);
32143  } catch (e) { }
32144  try {
32145    var _sqc = window._RestockRocketConfig;
32146    var _sqOn = !(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout === false);
32147    var _sqPre = (_sqc.cachedPreorderVariantIds &&
32148      _sqc.cachedPreorderVariantIds.preorder_variant_ids) || [];
32149    var _sqArm = false;
32150    if (_sqOn && _sqc.preordersConfigured) {
32151      if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) {
32152        _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; });
32153      } else {
32154        _sqArm = (_sqc.integrations || []).some(function (i) {
32155          return i && i.type === 'featured_product' && i.enabled &&
32156            Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1;
32157        });
32158      }
32159    }
32160    if (_sqArm && document.documentElement) {
32161      _sqc.acceleratedGateArmed = true;
32162      document.documentElement.classList.add('stoq-buy-now-pending');
32163      setTimeout(function () {
32164        document.documentElement.classList.remove('stoq-buy-now-pending');
32165      }, 6000);
32166    }
32167  } catch (e) { }
32168
32169  window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a11b87-29d7-70f4-9f88-0cbf7270f710/restockrocket-1-602/assets/restockrocket-product.js'
32170  window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a11b87-29d7-70f4-9f88-0cbf7270f710/restockrocket-1-602/assets/restockrocket-collection.js'
32171  window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a11b87-29d7-70f4-9f88-0cbf7270f710/restockrocket-1-602/assets/restockrocket-product-bis.js'
32172  window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a11b87-29d7-70f4-9f88-0cbf7270f710/restockrocket-1-602/assets/restockrocket-collection-bis.js'
32173  window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
32174  window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io'
32175  try {
32176    const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/);
32177    window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || '';
32178  } catch (e) {
32179    window._RestockRocketConfig.appVersion = '';
32180  }
32181  const SETTINGS_CACHE_DURATION = 15 * 60 * 1000;
32182  const LIQUID_CACHE_MAX_AGE = 15 * 60;
32183  const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
32184  if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
32185    console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
32186    window._RestockRocketConfig.isLiquidCacheFresh = true;
32187    window._RestockRocketConfig.liquidCacheAge = null;
32188  } else {
32189    const now = Math.floor(Date.now() / 1000);
32190    const liquidCacheAge = now - liquidRenderedAt;
32191    window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge);
32192    if (liquidCacheAge < 0) {
32193      console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
32194      window._RestockRocketConfig.isLiquidCacheFresh = true;
32195    } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) {
32196      console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
32197      window._RestockRocketConfig.isLiquidCacheFresh = true;
32198    } else {
32199      console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
32200      window._RestockRocketConfig.isLiquidCacheFresh = false;
32201    }
32202  }
32203
32204  function checkSettingsExpiry(settings) {
32205    try {
32206      if (!settings || !settings.updated_at) {
32207        console.debug('STOQ - Invalid settings data structure');
32208        return null;
32209      }
32210
32211      if (!settings.cache) {
32212        console.debug('STOQ - settings caching disabled');
32213        return null;
32214      }
32215      if (settings.multi_language_enabled) {
32216        if (!settings.translations) {
32217          console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
32218          return null;
32219        }
32220        if (window._RestockRocketConfig.normalizedLocale &&
32221            !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
32222          console.debug('STOQ - locale not explicitly translated, will use default language from cache');
32223        }
32224      }
32225
32226      const updatedAt = new Date(settings.updated_at);
32227      if (isNaN(updatedAt.getTime())) {
32228        console.debug('STOQ - Invalid updated_at date format in settings');
32229        return null;
32230      }
32231
32232      const age = Date.now() - updatedAt.getTime();
32233      if (age < SETTINGS_CACHE_DURATION) {
32234        console.debug('STOQ - settings changed recently, skipping cache');
32235        return null;
32236      }
32237
32238      return settings;
32239    } catch (error) {
32240      console.debug('STOQ - Error checking settings cache:', error);
32241      return null;
32242    }
32243  }
32244
32245  function createRestockRocketContainer() {
32246    const restockRocketContainer = document.createElement('div');
32247    restockRocketContainer.id = 'restock-rocket';
32248    document.body.appendChild(restockRocketContainer);
32249  }
32250
32251  function createRestockRocketScript(scriptUrl) {
32252    const restockRocketScriptElement = document.createElement('script');
32253    restockRocketScriptElement.setAttribute('defer', 'defer');
32254    restockRocketScriptElement.src = scriptUrl;
32255    document.body.appendChild(restockRocketScriptElement);
32256  }
32257
32258  createRestockRocketContainer()
32259
32260  console.debug('STOQ - extension activated')
32261  try {
32262    const _stoqInitConfig = window._RestockRocketConfig;
32263    const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)
32263)
32264      ? _stoqInitConfig.product.variants.map(function(v) { return v.id })
32265      : [];
32266    const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id;
32267    var _stoqPageSeq = 0;
32268    try {
32269      _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1;
32270      window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq));
32271    } catch (e) { }
32272    Shopify?.analytics?.publish?.('stoq_initialized', {
32273      cart_token: _stoqInitConfig.cartToken || '',
32274      page_url: window.location.href,
32275      page_type: _stoqInitConfig.pageType || '',
32276      shop_domain: _stoqInitConfig.shop || '',
32277      market_id: _stoqInitConfig.marketId || '',
32278      country_code: _stoqInitConfig.countryIsoCode || '',
32279      detected_variant_ids: _stoqDetectedVariantIds,
32280      selected_variant_id: _stoqSelectedVariantId || '',
32281      page_load_seq: _stoqPageSeq,
32282      liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0,
32283      app_version: _stoqInitConfig.appVersion || '',
32284      liquid_cache_age: _stoqInitConfig.liquidCacheAge,
32285      inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '',
32286      inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId],
32287    });
32288  } catch (e) {
32289    console.debug('STOQ - stoq_initialized publish failed:', e);
32290  }
32291  try {
32292    var _sqTrack = window._RestockRocketConfig;
32293    if (_sqTrack.preordersConfigured) {
32294      document.addEventListener('click', function (e) {
32295        try {
32296          var t = e.target;
32297          if (!t || !t.closest) return;
32298          var host = t.closest('.shopify-payment-button, shopify-payment-terms');
32299          if (!host) return;
32300          var channel = host.matches && host.matches('shopify-payment-terms')
32301            ? 'shop_pay_installments' : 'buy_now';
32302          var form = host.closest('form');
32303          var vidEl = form && form.querySelector('[name="id"]');
32304          var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || '';
32305          var _sqVidNum = Number(variantId);
32306          var _sqPlan = null;
32307          var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : [];
32308          var _sqMktId = Number(_sqTrack.marketId);
32309          var _sqForVariant = function (pl) {
32310            return pl && pl.enabled && Array.isArray(pl.variant_ids) &&
32311              pl.variant_ids.indexOf(_sqVidNum) !== -1;
32312          };
32313          _sqPlans.forEach(function (pl) {
32314            if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled &&
32315                Array.isArray(pl.shopify_market_ids) &&
32316                pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; }
32317          });
32318          if (!_sqPlan) {
32319            _sqPlans.forEach(function (pl) {
32320              if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; }
32321            });
32322          }
32323          Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', {
32324            variant_id: variantId,
32325            product_id: (_sqTrack.product && _sqTrack.product.id) || '',
32326            channel: channel,
32327            market_id: _sqTrack.marketId || '',
32328            country_code: _sqTrack.countryIsoCode || '',
32329            page_type: _sqTrack.pageType || '',
32330            cart_token: _sqTrack.cartToken || '',
32331            page_url: (window.location && window.location.href) || '',
32332            properties: {
32333              is_preorder_variant: (function () {
32334                var vid = Number(variantId);
32335                var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; };
32336                return has(_sqTrack.preorderVariantIds) ||
32337                  has(_sqTrack.cachedPreorderVariantIds &&
32338                    _sqTrack.cachedPreorderVariantIds.preorder_variant_ids);
32339              })(),
32340              in_enabled_plan: !!_sqPlan,
32341              is_instock_variant: (function () {
32342                var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; };
32343                return has(_sqTrack.inStockVariantIds) ||
32344                  has(_sqTrack.cachedInStockVariantIds &&
32345                    _sqTrack.cachedInStockVariantIds.in_stock_variant_ids);
32346              })(),
32347              enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '',
32348              enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '',
32349              block_enabled: !(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout === false),
32350              gate_armed: !!_sqTrack.acceleratedGateArmed,
32351              gate_active_at_click: !!(document.documentElement &&
32352                document.documentElement.classList.contains('stoq-buy-now-pending')),
32353              blocked: (function () {
32354                try {
32355                  var rr = window._RestockRocket;
32356                  return !!(rr && typeof rr.willBlockAcceleratedCl
32356ick === 'function' &&
32357                    rr.willBlockAcceleratedClick(e));
32358                } catch (err) { return false; }
32359              })(),
32360            },
32361          });
32362        } catch (err) { }
32363      }, true);
32364    }
32365  } catch (e) { }
32366  function applyTranslations(settings) {
32367    try {
32368      if (!settings || !settings.multi_language_enabled) {
32369        return settings;
32370      }
32371
32372      if (!settings.translations) {
32373        console.debug('STOQ - No translations found, skipping translation');
32374        return settings;
32375      }
32376
32377      const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
32378      const translations = settings.translations;
32379
32380      if (!normalizedLocale) {
32381        console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
32382        delete settings.translations;
32383        return settings;
32384      }
32385
32386      console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
32387
32388      const translatedFields = translations[normalizedLocale];
32389      if (translatedFields && typeof translatedFields === 'object') {
32390        Object.keys(translatedFields).forEach(function(key) {
32391          const value = translatedFields[key];
32392          if (value !== null && value !== undefined && value !== '') {
32393            settings[key] = value;
32394          }
32395        });
32396      } else {
32397        console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
32398      }
32399
32400      delete settings.translations;
32401      return settings;
32402    } catch (e) {
32403      console.debug('STOQ - error applying translations:', e);
32404      return settings;
32405    }
32406  }
32407  function setupCartSellingPlanUpdater(settings) {
32408    window.addEventListener('stoq:inventory-data-loaded', function(event) {
32409      console.debug('STOQ - Inventory data loaded, updating cart selling plans');
32410      if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
32411        window._RestockRocket.updateCartSellingPlans()
32412          .then(hasUpdates => {
32413            if (hasUpdates) {
32414              console.debug('STOQ - cart selling plans updated successfully');
32415            } else {
32416              console.debug('STOQ - no cart selling plan updates needed');
32417            }
32418          })
32419          .catch(error => {
32420            console.error('STOQ - error updating cart selling plans:', error);
32421          });
32422      }
32423    });
32424  }
32425  function storefrontGraphql(query, variables) {
32426    const cfg = window._RestockRocketConfig;
32427    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) {
32428      return Promise.reject(new Error('Storefront API unavailable'));
32429    }
32430    return fetch(
32431      `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`,
32432      {
32433        method: 'POST',
32434        headers: {
32435          'Content-Type': 'application/json',
32436          'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken,
32437        },
32438        body: JSON.stringify({ query: query, variables: variables }),
32439      }
32440    )
32441    .then(function(response) {
32442      if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); }
32443      return response.json();
32444    })
32445    .then(function(body) {
32446      if (body && body.errors && body.errors.length) {
32447        throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', '));
32448      }
32449      return body && body.data;
32450    });
32451  }
32452  function fetchStorefrontShopMetafield(key) {
32453    const cfg = window._RestockRocketConfig;
32454    const query = 'query StoqShopMetafield($namespace: String!, $key: String!) { shop { metafield(namespace: $namespace, key: $key) { value } } }';
32455    return storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key })
32456    .then(function(data) {
32457      const value = data && data.shop && data.shop.metafield && data.shop.metafield.value;
32458      if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); }
32459      return JSON.parse(value);
32460    });
32461  }
32462  (function loadStorefrontSettings() {
32463    const cfg = window._RestockRocketConfig;
32464    if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return;
32465    function run() {
32466      // The live-settings read is one more shop-level metafield fetch, so it
32467      // shares fetchStorefrontShopMetafield with the integrations/selling_plans
32468      // reads rather than re-issuing the same query + parse.
32469      fetchStorefrontShopMetafield('settings')
32470      .then(function(settings) {
32471        cfg.storefrontSettings = settings;
32472        console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings');
32473      })
32474      .catch(function(e) {
32475        console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message);
32476      });
32477    }
32478
32479    if (typeof window.requestIdleCallback === 'function') {
32480      window.requestIdleCallback(run, { timeout: 5000 });
32481    } else {
32482      setTimeout(run, 0);
32483    }
32484  })();
32485  const cachedSettings = window._RestockRocketConfig.cachedSettings;
32486  const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
32487
32488  if (validCachedSettings) {
32489    console.debug('STOQ - using cached settings');
32490    initializeScripts(validCachedSettings);
32491  } else {
32492    console.debug('STOQ - fetching fresh settings');
32493    const headers = {
32494      'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
32495      'ngrok-skip-browser-warning': 'skip'
32496    };
32497
32498    if (window.Shopify?.theme?.role === 'main') {
32499      headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
32500      headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
32501      headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
32502    }
32503
32504    fetch(
32505      `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
32506      { headers }
32507    )
32508    .then(function(response) {
32509      if (!response.ok) {
32510        throw new Error('Network response was not ok');
32511      }
32512      return response.json();
32513    })
32514    .then(function(settings) {
32515      initializeScripts(settings);
32516    })
32517    .catch(function(error) {
32518      if (cachedSettings) {
32519        console.debug('STOQ - using expired cached settings as fallback');
32520        initializeScripts(cachedSettings);
32521      } else {
32522        console.error('STOQ - failed to load settings:', error);
32523      }
32524    })
32525    .catch(function(e) {
32526      console.error(e)
32527    })
32528  }
32529
32530  function fetchEmbedConfig(endpoint, apply) {
32531    return fetch(
32532      `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
32533      {
32534        headers: {
32535          'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
32536          'ngrok-skip-browser-warning': 'skip'
32537        }
32538      }
32539    )
32540    .then(function(response) {
32541      if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`);
32542      return response.json();
32543    })
32544    .then(function(data) {
32545      try {
32546        apply(data);
32547      } catch (applyError) {
32548        console.error('STOQ - apply failed for ' + endpoint + ':', applyError);
32549        throw applyError;
32550      }
32551    })
32552    .catch(function(error) {
32553      console.debug(`STOQ - using cached ${endpoint}:`, error.message);
32554    });
32555  }
32556  function refreshShopConfig(source) {
32557    const cfg = window._RestockRocketConfig;
32558    const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); };
32559    const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true;
32560    if (!flagOn || source.embedOnly === true) { return viaEmbed(); }
32561
32562    return fetchStorefrontShopMetafield(source.metafieldKey)
32563      .then(function(value) {
32564        if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); }
32565        source.apply(value);
32566        console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API');
32567      })
32568      .catch(function(error) {
32569        console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message);
32570        return viaEmbed();
32571      });
32572  }
32573  function refreshIntegrations() {
32574    const cfg = window._RestockRocketConfig;
32575    return refreshShopConfig({
32576      endpoint: 'integrations',
32577      metafieldKey: 'integrations',
32578      flag: 'enable_storefront_integrations_read',
32579      isValid: function(value) { return Array.isArray(value); },
32580      apply: function(data) {
32581        cfg.integrations = data;
32582      }
32583    });
32584  }
32585  function refreshSellingPlans(embedOnly) {
32586    const cfg = window._RestockRocketConfig;
32587    return refreshShopConfig({
32588      embedOnly: embedOnly === true,
32589      endpoint: 'selling_plans',
32590      metafieldKey: 'cachedSellingPlans',
32591      flag: 'enable_storefront_selling_plans_read',
32592      isValid: function(value) { return !!value && Array.isArray(value.plans); },
32593      apply: function(data) {
32594        cfg.sellingPlans = data.plans;
32595        cfg.disabledSellingPlanIds = data.disabled_plan_ids || [];
32596        if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) {
32597          cfg.readFlags = data.read_flags;
32598        }
32599      }
32600    });
32601  }
32602
32603  function initializeScripts(settings) {
32604    settings = applyTranslations(settings);
32605    window._RestockRocketConfig.settings = settings;
32606    console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
32607    const forceEmbedSellingPlans = settings.force_embed_selling_plans === true;
32608    const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid;
32609    if (forceEmbedSellingPlans || staleRefresh) {
32610      console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)'));
32611      const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)];
32612      if (staleRefresh) { refreshes.push(refreshIntegrations()); }
32613      Promise.race([
32614        Promise.all(refreshes),
32615        new Promise(function(resolve) { setTimeout(resolve, 1000); })
32616      ]).then(function() { loadScripts(settings); });
32617      return;
32618    }
32619
32620    loadScripts(settings);
32621  }
32622
32623  function loadScripts(settings) {
32624    setupCartSellingPlanUpdater(settings);
32625
32626    if(settings.enable_app) {
32627      const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
32628        return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
32629      })
32630      const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans)
32631        && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; });
32632      const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds)
32633        && window._RestockRocketConfig.disabledSellingPlanIds.length > 0;
32634      const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds;
32635
32636      const collectionScriptUrl = usePreorderBuild
32637        ? window._RestockRocketConfig.scriptUrlCollection
32638        : window._RestockRocketConfig.scriptUrlCollectionBis;
32639      const productScriptUrl = usePreorderBuild
32640        ? window._RestockRocketConfig.scriptUrlProduct
32641        : window._RestockRocketConfig.scriptUrlProductBis;
32642
32643      const pageType = window._RestockRocketConfig.pageType;
32644      const collectionPageTypes = ['collection', 'index', 'search', 'page'];
32645
32646      if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) {
32647        createRestockRocketScript(collectionScriptUrl);
32648      } else if(pageType === 'product') {
32649        createRestockRocketScript(productScriptUrl);
32650      } else if(hijackIntegration) {
32651        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
32652      } else if(usePreorderBuild) {
32653        createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
32654      } else {
32655        console.debug(`STOQ - no scripts enabled for ${pageType}`);
32656      }
32657      const appLoadedEvent = new CustomEvent('stoq:loaded', {
32658        detail: {
32659          pageType: window._RestockRocketConfig.pageType,
32660          enabled: settings.enable_app,
32661          settings: settings,
32662          preorderEnabled: settings.preorder_enabled
32663        }
32664      });
32665      console.debug('STOQ - dispatching app loaded event');
32666      window.dispatchEvent(appLoadedEvent);
32667    }
32668  }
32669</script>
32669<style id="RestockRocketStyle">html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}</style>
32670
32671
32672</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
32672<script>
32673  window['ShopifyForms'] = {
32674    ...window['ShopifyForms'],
32675    currentPageType: "index"
32676  };
32677</script>
32677
32678
32679
32680</div><div id="shopify-block-Aa2IwTnk2KzlzQURZd__6933373160360723723" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: wishlist_styles --><style> :root{ --st-add-icon-color: #121212; --st-added-icon-color: #dc2626; --st-loading-icon-color: #6b7280; --st-add-icon-background-color: transparent; --st-added-icon-background-color: transparent; --st-atc-button-border-radius: 8px; --st-atc-button-color: #ffffff; --st-atc-button-background-color: #111111; --st-product-card-btn-size: 40px; --st-product-card-icon-size: 20px; --st-product-card-btn-border-width: 0px; --st-product-card-btn-border-style: none; --st-product-card-btn-border-color: transparent; }  /* Product-card circular button: lock square size early (before st_wl_styles). */ .st-wishlist-button[data-type="product-card"], .st-wishlist-button.st-wishlist-button--product-card { box-sizing: border-box !important; width: var(--st-product-card-btn-size, 40px) !important; height: var(--st-product-card-btn-size, 40px) !important; min-width: var(--st-product-card-btn-size, 40px) !important; min-height: var(--st-product-card-btn-size, 40px) !important; max-width: var(--st-product-card-btn-size, 40px) !important; max-height: var(--st-product-card-btn-size, 40px) !important; padding: 0 !important; line-height: 1 !important; border-width: var(--st-product-card-btn-border-width, 0px) !important; border-style: var(--st-product-card-btn-border-style, none) !important; border-color: var(--st-product-card-btn-border-color, transparent) !important; border-radius: 50%; align-items: center; justify-content: center; }  .st-wishlist-button[data-type="product-card"]:empty, .st-wishlist-button.st-wishlist-button--product-card:empty { display: none !important; }  .st-wishlist-button[data-type="product-card"] .st-wishlist-icon, .st-wishlist-button[data-type="product-card"] .st-wishlist-loading-icon, .st-wishlist-button[data-type="product-card"] svg:not(.st-locker-icon), .st-wishlist-button.st-wishlist-button--product-card .st-wishlist-icon, .st-wishlist-button.st-wishlist-button--product-card .st-wishlist-loading-icon, .st-wishlist-button.st-wishlist-button--product-card svg:not(.st-locker-icon) { width: var(--st-product-card-icon-size, 20px) !important; height: var(--st-product-card-icon-size, 20px) !important; }  /* .st-wishlist-button, #st_wishlist_icons, .st-wishlist-details-button{ display: none; } */  /* Visually hide the SVG symbol sprite without `display: none`. WebKit/Safari often fails to paint <use href="#…"> when the referenced symbol lives in a display:none subtree (Chrome still paints).  Keep a non-zero box off-screen: width/height 0 can still collapse <use> intrinsic size on Safari (PDP icon-only buttons then paint at ~0px). */ #st_wishlist_icons, #st-wishlist-icons-sprites { position: absolute !important; left: -10000px !important; top: -10000px !important; width: 24px !important; height: 24px !important; overflow: hidden !important; pointer-events: none !important; /* Do not use display:none / visibility:hidden / opacity:0 / zero-box here. */ }  /* Hard icon box so theme rules like `svg { width:auto; height:auto }` cannot collapse <use> icons on WebKit. Product-card keeps its own size vars (higher specificity). Details PDP uses this 20px box. */ .st-wishlist-button .st-wishlist-icon, .st-wishlist-button .st-wishlist-loading-icon, .st-wishlist-button svg:not(.st-locker-icon) { width: 20px !important; height: 20px !important; min-width: 20px !important; min-height: 20px !important; flex-shrink: 0 !important; overflow: visible !important; }  .st-wishlist-button[data-type="details"] .st-wishlist-icon, .st-wishlist-button[data-type="details"] .st-wishlist-loading-icon, .st-wishlist-button[data-type="details"] svg:not(.st-locker-icon) { width: 20px !important; height: 20px !important; min-width: 20px !important; min-height: 20px !important; flex-shrink: 0 !important; overflow: visible !important; }  .st-wishlist-initialized .st-wishlist-button{ display: flex; }  /* Override store's --colorTextBody variable to prevent color inheritance */ .st-wishlist-button:not([data-type="details"]) { --colorTextBody: var(--st-add-icon-color) !important; }  .st-wishlist-button.st-is-added:not([data-type="details"]) { --colorTextBody: var(--st-added-icon-color) !important; }  .st-wishlist-button.st-is-loading:not([data-type="details"]) { --colorTextBody: var(--st-loading-icon-color) !important; }  .st-wishlist-loading-icon{ color: var(--st-loading-icon-color) !important; fill: var(--st-loading-icon-color) !important; }  .st-wishlist-button:not([data-type="details"]) .st-wishlist-icon{ color: var(--st-add-icon-color) !important; fill: var(--st-add-icon-color) !important; }  .st-wishlist-button:not([data-type="details"]) .st-wishlist-icon use { fill: var(--st-add-icon-color) !important; }  .st-wishlist-button.st-is-added:not([data-type="details"]) .st-wishlist-icon{ color: var(--st-added-icon-color) !important; fill: var(--st-added-icon-color) !important; }  .st-wishlist-button.st-is-added:not([data-type="details"]) .st-wishlist-icon use { fill: var(--st-added-icon-color) !important; }  .st-wishlist-button.st-is-loading:not([data-type="details"]) .st-wishlist-icon{ color: var(--st-loading-icon-color) !important; fill: var(--st-loading-icon-color) !important; }  .st-wishlist-button.st-is-loading:not([data-type="details"]) .st-wishlist-icon use { fill: var(--st-loading-icon-color) !important; }  .st-wishlist-initialized { .st-wishlist-details-button--header-icon, .st-wishlist-details-button { display: flex; } }  .st-initialized.st-wishlist-details-button--header-icon, .st-initialized.st-wishlist-details-button{ display: flex; }  .st-wishlist-details-button { cursor: pointer; }  .st-wishlist-details-button:not([data-custom-icon="true"]):not([data-swishlist-had-custom-icon-at-mark="1"]) { --colorTextBody: var(--icon-color) !important; }  .st-wishlist-details-button:not([data-custom-icon="true"]):not([data-swishlist-had-custom-icon-at-mark="1"]) .st-wishlist-icon{ color: var(--icon-color); fill: var(--icon-color); }  .st-wishlist-details-button:not([data-custom-icon="true"]):not([data-swishlist-had-custom-icon-at-mark="1"]) .st-wishlist-icon use { fill: var(--icon-color) !important; }  /* ===== Wishlist popups (create / manage / confirm) ===== */  .st-popup { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; pointer-events: none; }  .st-popup_overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.4); pointer-events: auto; }  .st-popup_box { position: relative; pointer-events: auto; background-color: #ffffff; color: #202223; min-width: min(420px, 92vw); max-width: 520px; border-radius: 10px; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.14); /* padding: 20px 24px 18px; */ }  .st-popup_box header { margin-bottom: 12px; }  .st-popup_box header .st-h3 { font-size: 18px; font-weight: 600; }  .st-popup_box main { margin: 8px 0 16px; }  .st-popup_box footer { margin-top: 4px; opacity: 1 !important; transform: none !important; transition: none !important; }  /* Close button in popup header */ .st-popup_box .st-close-button { border: none; background: transparent; cursor: pointer; padding: 0; color: #8c9196; }  .st-popup_box .st-close-button:hover { color: #202223; }  /* Create / manage wishlist specific styling */ .st-popup--create-wishlist label, .st-popup--manage-wishlist label { display: block; margin-bottom: 6px; font-size: 13px; color: #6d7175; }  .st-popup--create-wishlist input[type="text"], .st-popup--manage-wishlist input[type="text"] { width: 100%; border-radius: 6px; border: 1px solid #c9ccd0; padding: 7px 10px; font-size: 14px; box-shadow: inset 0 0 0 1px transparent; outline: none; }  .st-popup--create-wishlist input[type="text"]:focus, .st-popup--manage-wishlist input[type="text"]:focus { border-color: #5c6ac4; box-shadow: 0 0 0 1px #5c6ac4; }  .st-popup--manage-wishlist .st-wishlist-item_input { flex: 1 1 auto; }  .st-popup--manage-wishlist .st-wishhlist-item form { display: flex; align-items: center; justify-content: space-between; gap: 12px; }  .st-popup--manage-wishlist .st-wishhlist-item + .st-wishhlist-item { margin-top: 8px; }  .st-popup--manage-wishlist .st-edit-button, .st-popup--manage-wishlist .st-delete-button { border: none; background: #f6f6f7; border-radius: 6px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }  .st-popup--manage-wishlist .st-delete-button { margin-left: 4px; }  .st-popup--manage-wishlist .st-edit-button:hover { background: #e3e5e8; }  .st-popup--manage-wishlist .st-delete-button:hover { background: #fdebea; }  /* Hide delete button when only one wishlist (safety) */ .st-popup--manage-wishlist.st-has-single-wishlist .st-delete-button { display: none; }  /* Confirm popup buttons */ .st-popup--confirm footer .st-cancel-button, .st-popup--confirm footer .st-confirm-button { min-width: 110px; border-radius: 6px; padding: 7px 14px; font-size: 14px; font-weight: 500; border: 1px solid transparent; cursor: pointer; }  .st-popup--confirm footer .st-cancel-button { background: #ffffff; color: #202223; border-color: #c9ccd0; }  .st-popup--confirm footer .st-cancel-button:hover { background: #f6f6f7; }  .st-popup--confirm footer .st-confirm-button { background: #de3618;
32680 color: #ffffff; border-color: #de3618; }  .st-popup--confirm footer .st-confirm-button:hover { background: #bf2710; border-color: #bf2710; }  .st-popup--danger .st-confirm-button { background: #de3618; border-color: #de3618; }  /* Login popup */ .st-popup--login { z-index: 2041997; }  .st-popup--login.st-is-open { display: flex !important; }  .st-popup--login .popup-close-x { position: absolute; top: 0; right: 0; padding: 10px; }  .st-popup--login .popup-close-x button { background: transparent; border: none; color: #AAAAAA; transition: color 0.2s ease; cursor: pointer; }  .st-popup--login .popup-close-x button:hover { color: #FFFFFF; }  .st-popup--login .popup-header { background: #000; padding: 10px 10px; }  .st-popup--login .popup-header .header-title { color: #fff; font-size: 18px; font-weight: bold; text-align: center; margin: 0; }  .st-popup--login .popup-body { display: flex; flex-wrap: wrap; padding: 16px; align-items: center; gap: 16px; color: #000; }  .st-popup--login .popup-footer { display: flex; justify-content: center; align-items: center; padding: 16px; gap: 16px; color: #000; }  .st-popup--login .popup--button { background: #eee; padding: 10px 20px; border-radius: 5px; border: 1px solid #ccc; cursor: pointer; }  .st-popup--login .popup--button:hover { background: #ddd; }  </style>  <!-- END app snippet --><link rel="stylesheet" href="https://cdn.shopify.com/extensions/01a11a04-6da5-7ed6-89a8-7dba9a26990f/swishlist-606/assets/st_wl_styles.min.css" media="print" onload="this.media='all'" > <noscript><link href="//cdn.shopify.com/extensions/01a11a04-6da5-7ed6-89a8-7dba9a26990f/swishlist-606/assets/st_wl_styles.min.css" rel="stylesheet" type="text/css" media="all" /></noscript>  <style id="st-wishlist-custom-css">  </style>              <template id="st_wishlist_template"><!-- BEGIN app snippet: wishlist_template_core --><div id="wishlist_button"> <svg width="20" height="20" class="st-wishlist-icon"> <use xlink:href="#st_add_icon"></use> </svg> <span class="st-label">[label]</span> </div>  <div class="st-toast"> <div class="st-content"></div> <button class="st-close-button" aria-label="Close" title="Close"> <svg class="st-icon" width="20" height="20" aria-hidden="true" focusable="false"> <use xlink:href="#st_close_icon"></use> </svg> </button> </div>  <div id="st_toast_error"> <div class="st-toast-error"> <span class="st-error-icon" role="img" aria-label="Error">🔴</span> <p class="st-message">[message]</p> </div> </div>  <div id="toast_product_message"> <div class="st-product-toast"> <div class="st-product-toast_content" data-src="[src]"> <div class="st-image"> [img] </div> </div> <div class="st-product-toast_title"> <p>[title]</p> <span>[message]</span> <p class="st-product-toast_sub-message">[subMessage]</p> </div> </div> </div><!-- BEGIN app snippet: details_button --><button type="button" class="st-wishlist-details-button" aria-label="Open Wishlist Details" title="Open Wishlist Details" data-type="floating" > <svg width="20" height="20" class="st-wishlist-icon"> <use xlink:href="#st_details_icon"></use> </svg> <span class="st-label st-none st-js-label">My Wishlist</span> <span class="st-number st-js-number st-none">0</span> </button>  <!-- END app snippet --><!-- END app snippet --></template><template id="st_wishlist_shell_template"><!-- BEGIN app snippet: wishlist_template_shell --><!-- BEGIN app snippet: wishlist_drawer --> <div class="st-wishlist-details st-wishlist-details--drawer st-wishlist-details--right st-is-loading "> <div class="st-wishlist-details_overlay"><span></span></div>  <div class="st-wishlist-details_wrapper"> <div class="st-wishlist-details_header"> <div class="st-wishlist-details_title st-flex st-justify-between"> <div class="st-h3 h2">My Wishlist</div> <button class="st-close-button" aria-label="Close the wishlist drawer" title="Close the wishlist drawer" > <svg class="st-icon" width="20" height="20" aria-hidden="true" focusable="false"> <use xlink:href="#st_close_icon"></use> </svg> </button> </div><div class="st-wishlist-details_shares"><!-- BEGIN app snippet: wishlist_shares --><div class="st-wishlist-shares-wrap"> <ul class="st-wishlist-shares st-list-style-none st-flex st-gap-20 st-justify-center" data-list=""> <li class="st-wishlist-share-item st-wishlist-share-item--facebook"> <button class="st-share-button" data-type="facebook" aria-label="Share on Facebook" title="Share on Facebook" > <svg class="st-icon" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" > <g>
32680<path fill="currentColor" d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"></path></g> </svg> </button> </li> <li class="st-wishlist-share-item st-wishlist-share-item--pinterest"> <button class="st-share-button" data-type="pinterest" aria-label="Pin on Pinterest" title="Pin on Pinterest" > <svg class="st-icon" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" > <path fill="currentColor" d="M12.137,0.5C5.86,0.5,2.695,5,2.695,8.752c0,2.272,0.8 ,4.295,2.705,5.047c0.303,0.124,0.574,0.004,0.661-0.33 c0.062-0.231,0.206-0.816,0.271-1.061c0.088-0.331,0.055-0.446-0.19-0.736c-0.532-0.626-0.872-1.439-0.872-2.59 c0-3.339,2.498-6.328,6.505-6.328c3.548,0,5.497,2.168,5.497,5.063c0,3.809-1.687,7.024-4.189,7.024 c-1.382,0-2.416-1.142-2.085-2.545c0.397-1.675,1.167-3.479,1.167-4.688c0-1.081-0.58-1.983-1.782-1.983 c-1.413,0-2.548,1.461-2.548,3.42c0,1.247,0.422,2.09,0.422,2.09s-1.445,6.126-1.699,7.199c-0.505,2.137-0.076,4.756-0.04,5.02 c0.021,0.157,0.224,0.195,0.314,0.078c0.13-0.171,1.813-2.25,2.385-4.325c0.162-0.589,0.929-3.632,0.929-3.632 c0.459,0.876,1.801,1.646,3.228,1.646c4.247,0,7.128-3.871,7.128-9.053C20.5,4.15,17.182,0.5,12.137,0.5z"></path> </svg> </button> </li> <li class="st-wishlist-share-item st-wishlist-share-item--twitter"> <button class="st-share-button" data-type="twitter" aria-label="Tweet on Twitter" title="Tweet on Twitter" > <svg class="st-icon" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" > <path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/> </svg> </button> </li> <li class="st-wishlist-share-item st-wishlist-share-item--whatsapp"> <button class="st-share-button" data-type="whatsapp" aria-label="Share on WhatsApp" title="Share on WhatsApp" > <svg class="st-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"> <path fill="currentColor" d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/> </svg> </button> </li> <li class="st-wishlist-share-item st-wishlist-share-item--email"> <button class="st-share-button" data-type="email" aria-label="Share on Email" title="Share on Email" > <svg class="st-icon" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" > <path fill="currentColor" d="M22,4H2C0.897,4,0,4.897,0,6v12c0,1.103,0.897,2,2,2h20c1.103,0,2-0.897,2-2V6C24,4.897,23.103,4,22,4z M7.248,14.434 l-3.5,2C3.67,16.479,3.584,16.5,3.5,16.5c-0.174,0-0.342-0.09-0.435-0.252c-0.137-0.239-0.054-0.545,0.186-0.682l3.5-2 c0.24-0.137,0.545-0.054,0.682,0.186C7.571,13.992,7.488,14.297,7.248,14.434z M12,14.5c-0.094,0-0.189-0.026-0.271-0.08l-8.5-5.5 C2.997,8.77,2.93,8.46,3.081,8.229c0.15-0.23,0.459-0.298,0.691-0.147L12,13.405l8.229-5.324c0.232-0.15,0.542-0.084,0.691,0.147 c0.15,0.232,0.083,0.542-0.148,0.691l-8.5,5.5C12.189,14.474,12.095,14.5,12,14.5z M20.934,16.248 C20.842,16.41,20.673,16.5,20.5,16.5c-0.084,0-0.169-0.021-0.248-0.065l-3.5-2c-0.24-0.137-0.323-0.442-0.186-0.682 s0.443-0.322,0.682-0.186l3.5,2C20.988,15.703,21.071,16.009,20.934,16.248z"></path> </svg> </button> </li> <li class="st-wishlist-share-item st-wishlist-share-item--copy_link"> <button class="st-share-button" data-type="copy_link" aria-label="Copy to Clipboard" title="Copy to Clipboard" > <svg class="st-icon" width="24" height="24" viewBox="0 0 512 512">
32680 <path fill="currentColor" d="M459.654,233.373l-90.531,90.5c-49.969,50-131.031,50-181,0c-7.875-7.844-14.031-16.688-19.438-25.813 l42.063-42.063c2-2.016,4.469-3.172,6.828-4.531c2.906,9.938,7.984,19.344,15.797,27.156c24.953,24.969,65.563,24.938,90.5,0 l90.5-90.5c24.969-24.969,24.969-65.563,0-90.516c-24.938-24.953-65.531-24.953-90.5,0l-32.188,32.219 c-26.109-10.172-54.25-12.906-81.641-8.891l68.578-68.578c50-49.984,131.031-49.984,181.031,0 C509.623,102.342,509.623,183.389,459.654,233.373z M220.326,382.186l-32.203,32.219c-24.953,24.938-65.563,24.938-90.516,0 c-24.953-24.969-24.953-65.563,0-90.531l90.516-90.5c24.969-24.969,65.547-24.969,90.5,0c7.797,7.797,12.875,17.203,15.813,27.125 c2.375-1.375,4.813-2.5,6.813-4.5l42.063-42.047c-5.375-9.156-11.563-17.969-19.438-25.828c-49.969-49.984-131.031-49.984-181.016,0 l-90.5,90.5c-49.984,50-49.984,131.031,0,181.031c49.984,49.969,131.031,49.969,181.016,0l68.594-68.594 C274.561,395.092,246.42,392.342,220.326,382.186z"></path> </svg> <span>Copied</span> </button> </li> </ul> <div class="st-email-options-popup-content"> <button type="button" class="st-email-options-popup-close-button" data-email-action="close" >×</button>  <div class="st-email-options-popup-title">Choose email method</div>  <div class="st-email-options-popup-buttons"> <button type="button" class="st-email-options-popup-option-button" data-email-action="mail-client" aria-label="Email client" title="Email client" > <div class="st-email-options-popup-option-icon">@</div> <div class="st-email-options-popup-option-text"> <div class="st-email-options-popup-option-title">Mail Client</div> <div class="st-email-options-popup-option-description">Outlook, Apple Mail, Thunderbird</div> </div> </button>  <button type="button" class="st-email-options-popup-option-button" data-email-action="gmail" aria-label="Gmail Web" title="Gmail Web" > <div class="st-email-options-popup-option-icon">G</div> <div class="st-email-options-popup-option-text"> <div class="st-email-options-popup-option-title">Gmail Web</div> <div class="st-email-options-popup-option-description">Open in browser</div> </div> </button>  <button type="button" class="st-email-options-popup-option-button" data-email-action="outlook" aria-label="Outlook Web" title="Outlook Web" > <div class="st-email-options-popup-option-icon">O</div> <div class="st-email-options-popup-option-text"> <div class="st-email-options-popup-option-title">Outlook Live Web</div> <div class="st-email-options-popup-option-description">Open Outlook Live web in browser</div> </div> </button>  <button type="button" class="st-email-options-popup-option-button" data-email-action="copy" aria-label="Copy shareable link" title="Copy shareable link" > <div class="st-email-options-popup-option-icon">C</div> <div class="st-email-options-popup-option-text"> <div class="st-email-options-popup-option-title st-email-options-popup-copy-title">Copy Link</div> <div class="st-email-options-popup-option-description">Copy shareable link</div> </div> </button> </div> </div> </div>  <!-- END app snippet --></div></div>  <div class="st-wishlist-details_main"><div class="st-wishlist-details_products st-js-products"></div> <div class="st-wishlist-details_products_total_price"> <span class="st-total-price-label">Total in Wishlist:</span> <span class="st-total-price-value">[totalPriceWishlist]</span> </div>  <div class="st-wishlist-details_loading"> <svg width="50" height="50"> <use xlink:href="#st_loading_icon"></use> </svg> </div> <div class="st-wishlist-details_empty st-text-center"> <p> <b>Love it? Add to your wishlist</b> </p> <p>Your favorites, all in one place. Shop quickly and easily with the wishlist feature!</p> <div class="st-wishlist-details_empty_actions"> <a href="/collections/all" class="st-atc-button" > Start Shopping </a> </div> </div> </div> <div class="st-wishlist-details_footer_buttons"> <button type="button" class="st-footer-button st-add-all-to-cart-button" data-location-button="drawer" data-add-all-label="Add All to Cart"> Add All to Cart </button> <button type="button" class="st-footer-button st-go-to-cart-button" data-cart-url="/cart"> Go to Cart </button> <button type="button" class="st-footer-button st-remove-all-items-button" data-remove-all-label="Clear Wishlist"> Clear Wishlist </button> </div><div class="st-wishlist-save-your-wishlist"><!-- BEGIN app snippet: guest_save_wishlist_login_link --><a href="https://www.tnbl.co.uk/customer_authentication/redirect?locale=en&region_country=GB&return_url=%2F" rel="nofollow">Log in to save it and sync across devices.</a>  <!-- END app snippet --></div></div> <template style="display: none;"> <!-- BEGIN app snippet: product_card --><st-product-card data-handle="[handle]" data-id="[id]" data-wishlist-id="[wishlistId]" data-variant-id="[variantId]" class="st-product-card st-product-card--drawer st-product-card--[viewMode]" > <div class="st-product-card_image"> <div class="st-image">[img]</div> </div>  <form action="/cart/add" class="st-product-card_form"> <input type="hidden" name="form_type" value="product"> <input type="hidden" name="quantity" value="[quantityRuleMin]">  <div class="st-product-card_group st-product-card_group--title">
32680 <div class="st-product-card_vendor_title [vendorClass]"> <div class="st-product-card_vendor">[vendor]</div> <div class="st-product-card_title">[title]</div> <div class="st-product-card_sku [skuClass]">[sku]</div> </div>  <div class="st-product-card_options st-none"> <div class="st-pr"> <select name="id" data-product-id="[id]"></select> <span class="st-product-card_variant-text st-none"></span> <svg class="st-variant-select-caret" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" > <path fill-rule="evenodd" clip-rule="evenodd" d="M10 12.9998C9.68524 12.9998 9.38885 12.8516 9.2 12.5998L6.20001 8.59976C5.97274 8.29674 5.93619 7.89133 6.10558 7.55254C6.27497 7.21376 6.62123 6.99976 7 6.99976H13C13.3788 6.99976 13.725 7.21376 13.8944 7.55254C14.0638 7.89133 14.0273 8.29674 13.8 8.59976L10.8 12.5998C10.6111 12.8516 10.3148 12.9998 10 12.9998Z" fill="black"/> </svg> </div> </div> </div>  <div class="st-product-card_group st-product-card_group--quantity"> <div class="st-product-card_quantity"> <p class="st-product-card_price st-js-price [priceFreeClass] [compareAtPriceClass] [visibilityHidePriceClass]">[price]<span class="st-js-compare-at-price">[compareAtPrice]</span></p> <div class="st-quantity-widget st-none"> <button type="button" class="st-minus-button" aria-label="" > - </button> <input type="number" class="st-quantity-input" min="1" value="[quantityRuleMin]"> <button type="button" class="st-plus-button" aria-label="" > + </button> </div> </div>  <button type="submit" class="st-atc-button [visibilityHideAtcClass]"> <span>Add to Cart</span> <svg width="20" height="20"> <use xlink:href="#st_loading_icon"></use> </svg> </button> </div> </form>  <div class="st-product-card_actions st-pa st-js-actions"> <button class="st-delete-button st-flex st-justify-center st-align-center" aria-label="Delete" title="Delete" > <svg width="24" height="24" class="st-icon st-delete-icon"> <use xlink:href="#st_close_icon"></use> </svg> </button> </div>  <div class="st-product-card_loading"> <div></div> <svg width="50" height="50"> <use xlink:href="#st_loading_icon"></use> </svg> </div> </st-product-card>  <!-- END app snippet --> </template> </div>  <!-- END app snippet --> <!-- BEGIN app snippet: confirm_popup --> <div class="st-popup st-popup--confirm" style="display:none;"> <div class="st-popup_overlay"></div> <div class="st-popup_box"> <header class="st-text-center">  </header>  <main> <div class="message st-text-center"></div> </main>  <footer class="st-flex st-justify-center st-gap-20"> <button class="st-cancel-button"> Cancel </button> <button class="st-confirm-button"> Delete </button> </footer> </div> </div>  <!-- END app snippet --><!-- END app snippet --></template> 
32680<script id="swishlist-bootstrap-data" type="application/json"> { "configuration": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaG9wIjoidG5ibC11ay5teXNob3BpZnkuY29tIiwiaWF0IjoxNzY3NzQzNjA4fQ.Zina85-L3b8kuc6hsqoDRgzjJIusvG8SNSsb6TvJwy0", "customer": null, "currency": { "currency": "GBP", "moneyFormat": "£{{amount}}", "moneyWithCurrencyFormat": "£{{amount}} GBP" }, "routes": { "root_url": "\/", "account_login_url": "https:\/\/www.tnbl.co.uk\/customer_authentication\/redirect?locale=en\u0026region_country=GB", "account_logout_url": "\/account\/logout", "account_profile_url": "https:\/\/account.tnbl.co.uk\/profile?locale=en\u0026region_country=GB\u0026buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0bmJsLXVrLm15c2hvcGlmeS5jb20iLCJmbGFncyI6W10sImV4cCI6MTc5MjEyMDg4MiwibmJmIjoxNzkxNTE2MDgyfQ.oj-nKjeVLw2YuaOMhVAV-fhFJ3qYdfwRbP0e84V91u8", "account_url": "\/account", "collections_url": "\/collections", "cart_url": "\/cart", "product_recommendations_url": "\/recommendations\/products" }, "visibility": { "showAddWishlistButton": true }, "pdpWishlistButtonMissingBeforeFallback": false, "pdpWishlistFloatingFallbackApplied": false, "debug": {} }, "appOtherInfo": {"isReachedLimit":false,"typeReachedLimit":"","levelReachedLimit":1}, "activeThemeId": null, "themeSettings": null, "numberThemesSettings": 4, "themesSettings": [{"id":"46106","storeId":11604,"themeId":"193038713178","settings":{"general":{"pages":{"wishlistDetails":"","shareWishlist":""},"addToCartButtonStyles":{"borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff"},"redirectToPage":false,"afterAddedItemToCartBehavior":"redirect_cart_page","afterAddedItemToCartBehaviorCustomUrl":"","customer":{"allowGuest":true,"useLoginPopup":false,"redirectLoginPage":false,"syncLocalToServer":true,"tagsMode":"all","tags":[]},"allowAddMultipleVariants":false,"icons":{"loading":{"type":"icon_5","custom":null,"color":"#6b7280"},"add":{"type":"icon_2","custom":null,"color":"#121212","backgroundColor":"transparent","buttonBackgroundColor":"transparent"},"added":{"type":"icon_1","custom":null,"color":"#dc2626","backgroundColor":"transparent","buttonBackgroundColor":"transparent"}},"sharing":{"socialList":["facebook","twitter","pinterest","email","copy_link"]}},"detailsButton":{"itemsCount":{"show":true,"hideWhenEmpty":true,"color":{"hex":"#fff","alpha":1},"bgColor":{"hex":"#FF0001","alpha":1}},"type":"floating","selectorQueries":[],"afterClick":"open_drawer","showLabel":true,"styles":{"borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff"},"placement":"bottom_right","icon":{"type":"icon_2","color":"#dc2626","custom":null},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenEmpty":true,"interval":"20s"},"imageFitType":"cover","otherInfo":{"price":{"styles":{"color":"#111827"}},"vendor":{"show":false,"position":"above_product_title","styles":{"color":"#111827"}},"compareAtPrice":{"show":false,"position":"right_of_price","styles":{"color":"#b91c1c"}},"sku":{"show":false,"styles":{"color":"#111827"}},"totalPrice":{"show":false,"position":"bottom","styles":{"color":"#111827","fontSize":"20px"}},"formatPrice":{"type":"amount_without_currency"},"quantityWidget":{"show":false,"styles":{}},"variantSelector":{"hide":false,"type":"select","styles":{}}}},"notificationPopup":{"placement":"left_top","duration":3000,"effect":{"type":""},"hideOnAddRemoveItemToWishlist":false,"hideOnAddRemoveItemToCart":false,"showPopupReminder":false,"numberProductsPopupReminder":1,"showNotificationReminder":false,"minDaysShowPopupReminder":2,"minDaysReShowPopupReminder":2,"showPopupReminderInProductPage":true,"stylesToast":{"backgroundColor":"#ffffff","colorTitle":"#000000","colorMessage":"#000000","colorClose":"#000000"},"stylesReminder":{"backgroundColor":"#ffffff","shadowColor":"#000000","backgroundColorHeader":"#000000","colorHeader":"#ffffff","colorProductTitle":"#000000","backgroundButton":"#000000","colorButton":"#ffffff"}},"eventNotification":{"enable":false,"saleEventProducts":[],"priceEventProducts":[],"inventoryEventProducts":[],"settings":{"useImage":false,"useIcon":false,"useGreeting":false,"requireInteraction":false,"imageType":"default","iconType":"default","imageUpload":null,"iconUpload":null,"quietTime":{"enable":false,"start":"22:00","end":"08:00","timezone":"UTC+0"},"batching":{"enable":false},"saleEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}},"priceEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}},"inventoryEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}}},"saleOn":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleOff":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleDeeper":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleShallower":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceDrop":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceRise":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"outStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"inStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"}},"productPage":{"insertType":"manually","buttonPosition":"beforebegin","floatingButtonPosition":"bottom_right","insertSelector":"","wishlistButton":{"fullWidth":true,"showLabel":true,"showNumberActivities":false,"icon":{"color":"#FF0000","addedColor":"#ffffff"},"styles":{"borderWidth":"1px","borderColor":"#e5e7eb","borderStyle":"solid","borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff","margin":"10px 0px","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}},"productCard":{"insertType":"manually","buttonPosition":"right_top","childPosition":"last_child","insertSelector":"","wishlistButton":{"fullWidth":false,"showLabel":false,"showNumberActivities":false,"icon":{"color":"#FF0000","addedColor":"#ffffff","backgroundColor":"transparent","addedBackgroun
32680dColor":"transparent"},"styles":{"borderWidth":"1px","borderColor":"#e5e7eb","borderStyle":"solid","borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff","margin":"","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}}},"version":"1.0.0","createdAt":"2026-03-30T07:23:25.031Z","updatedAt":"2026-03-30T07:23:25.031Z"},{"id":"45981","storeId":11604,"themeId":"193010991450","settings":{"general":{"pages":{"wishlistDetails":"","shareWishlist":""},"addToCartButtonStyles":{"borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff"},"redirectToPage":false,"afterAddedItemToCartBehavior":"redirect_cart_page","afterAddedItemToCartBehaviorCustomUrl":"","customer":{"allowGuest":true,"useLoginPopup":false,"redirectLoginPage":false,"syncLocalToServer":true,"tagsMode":"all","tags":[]},"allowAddMultipleVariants":false,"icons":{"loading":{"type":"icon_5","custom":null,"color":"#6b7280"},"add":{"type":"icon_2","custom":null,"color":"#111111","backgroundColor":"transparent","buttonBackgroundColor":"transparent"},"added":{"type":"icon_1","custom":null,"color":"#111111","backgroundColor":"transparent","buttonBackgroundColor":"transparent"}},"sharing":{"socialList":["facebook","twitter","pinterest","email","copy_link"]}},"detailsButton":{"itemsCount":{"show":false,"hideWhenEmpty":true,"color":{"hex":"#fff","alpha":1},"bgColor":{"hex":"#FF0001","alpha":1}},"type":"header_icon","selectorQueries":[],"afterClick":"redirect_to_page","showLabel":true,"styles":{"borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff"},"placement":"bottom_right","icon":{"type":"icon_2","color":"#111111","custom":null},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenEmpty":true,"interval":"20s"},"imageFitType":"cover","otherInfo":{"price":{"styles":{"color":"#111827"}},"vendor":{"show":false,"position":"above_product_title","styles":{"color":"#111827"}},"compareAtPrice":{"show":false,"position":"right_of_price","styles":{"color":"#b91c1c"}},"sku":{"show":false,"styles":{"color":"#111827"}},"totalPrice":{"show":false,"position":"bottom","styles":{"color":"#111827","fontSize":"20px"}},"formatPrice":{"type":"amount_without_currency"},"quantityWidget":{"show":false,"styles":{}},"variantSelector":{"hide":false,"type":"select","styles":{}}}},"notificationPopup":{"placement":"left_top","duration":3000,"effect":{"type":""},"hideOnAddRemoveItemToWishlist":false,"hideOnAddRemoveItemToCart":false,"showPopupReminder":false,"numberProductsPopupReminder":1,"showNotificationReminder":false,"minDaysShowPopupReminder":2,"minDaysReShowPopupReminder":2,"showPopupReminderInProductPage":true,"stylesToast":{"backgroundColor":"#ffffff","colorTitle":"#000000","colorMessage":"#000000","colorClose":"#000000"},"stylesReminder":{"backgroundColor":"#ffffff","shadowColor":"#000000","backgroundColorHeader":"#000000","colorHeader":"#ffffff","colorProductTitle":"#000000","backgroundButton":"#000000","colorButton":"#ffffff"}},"eventNotification":{"enable":false,"saleEventProducts":[],"priceEventProducts":[],"inventoryEventProducts":[],"settings":{"useImage":false,"useIcon":false,"useGreeting":false,"requireInteraction":false,"imageType":"default","iconType":"default","imageUpload":null,"iconUpload":null,"quietTime":{"enable":false,"start":"22:00","end":"08:00","timezone":"UTC+0"},"batching":{"enable":false},"saleEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}},"priceEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}},"inventoryEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}}},"saleOn":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleOff":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleDeeper":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleShallower":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceDrop":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceRise":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"outStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"inStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"}},"productPage":{"insertType":"manually","buttonPosition":"beforebegin","floatingButtonPosition":"bottom_right","insertSelector":"","wishlistButton":{"fullWidth":true,"showLabel":true,"showNumberActivities":false,"icon":{"color":"#111111","addedColor":"#111111"},"styles":{"borderWidth":"1px","borderColor":"#AC9669","borderStyle":"solid","borderRadius":"15px","backgroundColor":"#ffffff","color":"#111111","margin":"","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}},"productCard":{"insertType":"manually","buttonPosition":"right_top","childPosition":"last_child","insertSelector":"","wishlistButton":{"fullWidth":false,"showLabel":false,"showNumberActivities":false,"icon":{"color":"#FF0000","addedColor":"#ffffff","backgroundColor":"transparent","addedBackgroun
32680dColor":"transparent"},"styles":{"borderWidth":"1px","borderColor":"#e5e7eb","borderStyle":"solid","borderRadius":"8px","backgroundColor":"#111111","color":"#ffffff","margin":"","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}}},"version":"1.0.0","createdAt":"2026-03-26T16:11:31.533Z","updatedAt":"2026-03-30T07:27:48.374Z"},{"id":"42723","storeId":11604,"themeId":"191642468698","settings":{"general":{"pages":{"wishlistDetails":"","shareWishlist":""},"addToCartButtonStyles":{"borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff"},"redirectToPage":false,"afterAddedItemToCartBehavior":"redirect_cart_page","afterAddedItemToCartBehaviorCustomUrl":"","customer":{"allowGuest":true,"useLoginPopup":false,"redirectLoginPage":false,"syncLocalToServer":true,"tagsMode":"all","tags":[]},"allowAddMultipleVariants":false,"icons":{"loading":{"type":"icon_5","custom":null,"color":"#000000"},"add":{"type":"icon_2","custom":null,"color":"#000000","backgroundColor":"transparent","buttonBackgroundColor":"transparent"},"added":{"type":"icon_1","custom":null,"color":"#FF0000","backgroundColor":"transparent","buttonBackgroundColor":"transparent"}},"sharing":{"socialList":["facebook","twitter","pinterest","email","copy_link"]}},"detailsButton":{"itemsCount":{"show":false,"hideWhenEmpty":true,"color":{"hex":"#fff","alpha":1},"bgColor":{"hex":"#FF0001","alpha":1}},"type":"floating","selectorQueries":[],"afterClick":"redirect_to_page","showLabel":true,"styles":{"borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff"},"placement":"bottom_right","icon":{"type":"icon_2","color":"#FF0000","custom":null},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenEmpty":true,"interval":"20s"},"imageFitType":"cover","otherInfo":{"price":{"styles":{"color":"#000000"}},"vendor":{"show":false,"position":"above_product_title","styles":{"color":"#000000"}},"compareAtPrice":{"show":false,"position":"right_of_price","styles":{"color":"#FF0000"}},"totalPrice":{"show":false,"position":"bottom","styles":{"color":"#000000","fontSize":"20px"}},"formatPrice":{"type":"amount_without_currency"}}},"notificationPopup":{"placement":"left_top","duration":3000,"effect":{"type":""},"hideOnAddRemoveItemToWishlist":false,"hideOnAddRemoveItemToCart":false,"showPopupReminder":false,"numberProductsPopupReminder":1,"showNotificationReminder":false,"minDaysShowPopupReminder":2,"minDaysReShowPopupReminder":2,"showPopupReminderInProductPage":true,"stylesToast":{"backgroundColor":"#ffffff","colorTitle":"#000000","colorMessage":"#000000","colorClose":"#000000"},"stylesReminder":{"backgroundColor":"#ffffff","shadowColor":"#000000","backgroundColorHeader":"#000000","colorHeader":"#ffffff","colorProductTitle":"#000000","backgroundButton":"#000000","colorButton":"#ffffff"}},"eventNotification":{"enable":false,"saleEventProducts":[],"priceEventProducts":[],"inventoryEventProducts":[],"settings":{"useImage":false,"useIcon":false,"useGreeting":false,"requireInteraction":false,"imageType":"default","iconType":"default","imageUpload":null,"iconUpload":null,"quietTime":{"enable":false,"start":"22:00","end":"08:00","timezone":"UTC+0"},"batching":{"enable":false},"saleEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}},"priceEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}},"inventoryEventsSchedule":{"mode":"immediately","delay":0,"cooldown":{"enable":false,"duration":3600}}},"saleOn":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleOff":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleDeeper":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleShallower":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceDrop":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceRise":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"outStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"inStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"}}
32680,"productPage":{"insertType":"","buttonPosition":"","insertSelector":"","wishlistButton":{"fullWidth":true,"showLabel":true,"showNumberActivities":false,"icon":{"color":"#FF0000","addedColor":"#ffffff"},"styles":{"borderWidth":"4px","borderColor":"#000000","borderStyle":"inherit","borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff","margin":"10px 0px","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}},"productCard":{"insertType":"manually","buttonPosition":"right_top","childPosition":"last_child","insertSelector":"","wishlistButton":{"fullWidth":false,"showLabel":false,"showNumberActivities":false,"icon":{"color":"#FF0000","addedColor":"#ffffff","backgroundColor":"transparent","addedBackgroundColor":"transparent"},"styles":{"borderWidth":"4px","borderColor":"#000000","borderStyle":"inherit","borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff","margin":"","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}}},"version":"1.0.0","createdAt":"2026-01-29T17:40:09.808Z","updatedAt":"2026-03-09T11:12:31.612Z"},{"id":"41853","storeId":11604,"themeId":"190369366362","settings":{"general":{"pages":{"wishlistDetails":"","shareWishlist":""},"addToCartButtonStyles":{"borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff"},"redirectToPage":false,"afterAddedItemToCartBehavior":"redirect_cart_page","afterAddedItemToCartBehaviorCustomUrl":"","customer":{"allowGuest":true,"useLoginPopup":false,"redirectLoginPage":false,"syncLocalToServer":true,"tagsMode":"all","tags":[]},"allowAddMultipleVariants":false,"icons":{"loading":{"type":"icon_5","custom":null,"color":"#000000"},"add":{"type":"icon_2","custom":null,"color":"#111111","backgroundColor":"transparent","buttonBackgroundColor":"transparent"},"added":{"type":"icon_1","custom":null,"color":"#111111","backgroundColor":"transparent","buttonBackgroundColor":"transparent"}},"sharing":{"socialList":["facebook","twitter","pinterest","email","copy_link"]}},"detailsButton":{"itemsCount":{"show":false,"hideWhenEmpty":true,"color":{"hex":"#fff","alpha":1},"bgColor":{"hex":"#FF0001","alpha":1}},"type":"header_icon","selectorQueries":[],"afterClick":"redirect_to_page","showLabel":true,"styles":{"borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff"},"placement":"bottom_right","icon":{"type":"icon_2","color":"#111111","custom":null},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenEmpty":true,"interval":"20s"},"imageFitType":"cover","otherInfo":{"price":{"styles":{"color":"#111111"}},"vendor":{"show":false,"position":"above_product_title","styles":{"color":"#000000"}},"compareAtPrice":{"show":false,"position":"right_of_price","styles":{"color":"#FF0000"}},"totalPrice":{"show":false,"position":"bottom","styles":{"color":"#000000","fontSize":"20px"}},"formatPrice":{"type":"amount_without_currency"}}},"notificationPopup":{"placement":"left_top","duration":3000,"effect":{"type":""},"hideOnAddRemoveItemToWishlist":false,"hideOnAddRemoveItemToCart":false,"showPopupReminder":false,"numberProductsPopupReminder":1,"showNotificationReminder":false,"minDaysShowPopupReminder":2,"minDaysReShowPopupReminder":2,"showPopupReminderInProductPage":true,"stylesToast":{"backgroundColor":"#ffffff","colorTitle":"#000000","colorMessage":"#000000","colorClose":"#000000"},"stylesReminder":{"backgroundColor":"#ffffff","shadowColor":"#000000","backgroundColorHeader":"#000000","colorHeader":"#ffffff","colorProductTitle":"#000000","backgroundButton":"#000000","colorButton":"#ffffff"}},"eventNotification":{"enable":false,"saleEventProducts":[],"priceEventProducts":[],"inventoryEventProducts":[],"settings":{"useImage":false,"useIcon":false,"useGreeting":false,"requireInteraction":false,"imageType":"default","iconType":"default","imageUpload":null,"iconUpload":null},"saleOn":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleOff":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleDeeper":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"saleShallower":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceDrop":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"priceRise":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"outStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"},"inStock":{"enable":false,"products":[],"text_color":"#ffffff","background_color":"#000000"}}
32680,"productPage":{"insertType":"extension","buttonPosition":"","insertSelector":"","wishlistButton":{"fullWidth":true,"showLabel":true,"showNumberActivities":false,"icon":{"color":"#111111","addedColor":"#111111"},"styles":{"borderWidth":"1px","borderColor":"#AC9669","borderStyle":"solid","borderRadius":"15px","backgroundColor":"#ffffff","color":"#111111","margin":"","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}},"productCard":{"insertType":"manually","buttonPosition":"right_top","childPosition":"first_child","insertSelector":"","wishlistButton":{"fullWidth":false,"showLabel":false,"showNumberActivities":false,"icon":{"color":"#FF0000","addedColor":"#ffffff","backgroundColor":"transparent","addedBackgroundColor":"transparent"},"styles":{"borderWidth":"4px","borderColor":"#000000","borderStyle":"inherit","borderRadius":"25px","backgroundColor":"#000000","color":"#ffffff","margin":"","padding":"10px"},"animation":{"canUse":false,"enable":false,"type":"animation-sw-shake","disableWhenAdded":true,"interval":"20s"}}}},"version":"1.0.0","createdAt":"2026-01-14T12:32:27.443Z","updatedAt":"2026-03-09T11:12:42.202Z"}], "storeSettings": null, "localesInfo": [{"name":"Afrikaans","locale":"af","version":3},{"name":"Akan","locale":"ak","version":3},{"name":"Amharic","locale":"am","version":3},{"name":"Arabic","locale":"ar","version":3},{"name":"Assamese","locale":"as","version":3},{"name":"Azerbaijani","locale":"az","version":3},{"name":"Belarusian","locale":"be","version":3},{"name":"Bulgarian","locale":"bg","version":3},{"name":"Bambara","locale":"bm","version":3},{"name":"Bangla","locale":"bn","version":3},{"name":"Tibetan","locale":"bo","version":3},{"name":"Breton","locale":"br","version":3},{"name":"Bosnian","locale":"bs","version":3},{"name":"Catalan","locale":"ca","version":3},{"name":"Chechen","locale":"ce","version":3},{"name":"Central Kurdish","locale":"ckb","version":3},{"name":"Czech","locale":"cs","version":3},{"name":"Welsh","locale":"cy","version":3},{"name":"Danish","locale":"da","version":3},{"name":"German","locale":"de","version":3},{"name":"Dzongkha","locale":"dz","version":3},{"name":"Ewe","locale":"ee","version":3},{"name":"Greek","locale":"el","version":3},{"name":"English","locale":"en","version":3},{"name":"Esperanto","locale":"eo","version":3},{"name":"Spanish","locale":"es","version":3},{"name":"Estonian","locale":"et","version":3},{"name":"Basque","locale":"eu","version":3},{"name":"Persian","locale":"fa","version":3},{"name":"Fulah","locale":"ff","version":3},{"name":"Finnish","locale":"fi","version":3},{"name":"Filipino","locale":"fil","version":3},{"name":"Faroese","locale":"fo","version":3},{"name":"French","locale":"fr","version":3},{"name":"Western Frisian","locale":"fy","version":3},{"name":"Irish","locale":"ga","version":3},{"name":"Scottish Gaelic","locale":"gd","version":3},{"name":"Galician","locale":"gl","version":3},{"name":"Gujarati","locale":"gu","version":3},{"name":"Manx","locale":"gv","version":3},{"name":"Hausa","locale":"ha","version":3},{"name":"Hebrew","locale":"he","version":3},{"name":"Hindi","locale":"hi","version":3},{"name":"Croatian","locale":"hr","version":3},{"name":"Hungarian","locale":"hu","version":3},{"name":"Armenian","locale":"hy","version":3},{"name":"Interlingua","locale":"ia","version":3},{"name":"Indonesian","locale":"id","version":3},{"name":"Igbo","locale":"ig","version":3},{"name":"Sichuan Yi","locale":"ii","version":3},{"name":"Icelandic","locale":"is","version":3},{"name":"Italian","locale":"it","version":3},{"name":"Japanese","locale":"ja","version":3},{"name":"Javanese","locale":"jv","version":3},{"name":"Georgian","locale":"ka","version":3},{"name":"Kikuyu","locale":"ki","version":3},{"name":"Kazakh","locale":"kk","version":3},{"name":"Kalaallisut","locale":"kl","version":3},{"name":"Khmer","locale":"km","version":3},{"name":"Kannada","locale":"kn","version":3},{"name":"Korean","locale":"ko","version":3},{"name":"Kashmiri","locale":"ks","version":3},{"name":"Kurdish","locale":"ku","version":3},{"name":"Cornish","locale":"kw","version":3},{"name":"Kyrgyz","locale":"ky","version":3},{"name":"Luxembourgish","locale":"lb","version":3},{"name":"Ganda","locale":"lg","version":3},{"name":"Lingala","locale":"ln","version":3},{"name":"Lao","locale":"lo","version":3},{"name":"Lithuanian","locale":"lt","version":3}
32680,{"name":"Luba-Katanga","locale":"lu","version":3},{"name":"Latvian","locale":"lv","version":3},{"name":"Malagasy","locale":"mg","version":3},{"name":"Māori","locale":"mi","version":3},{"name":"Macedonian","locale":"mk","version":3},{"name":"Malayalam","locale":"ml","version":3},{"name":"Mongolian","locale":"mn","version":3},{"name":"Marathi","locale":"mr","version":3},{"name":"Malay","locale":"ms","version":3},{"name":"Maltese","locale":"mt","version":3},{"name":"Burmese","locale":"my","version":3},{"name":"Norwegian (Bokmål)","locale":"nb","version":3},{"name":"North Ndebele","locale":"nd","version":3},{"name":"Nepali","locale":"ne","version":3},{"name":"Dutch","locale":"nl","version":3},{"name":"Norwegian Nynorsk","locale":"nn","version":3},{"name":"Norwegian","locale":"no","version":3},{"name":"Oromo","locale":"om","version":3},{"name":"Odia","locale":"or","version":3},{"name":"Ossetic","locale":"os","version":3},{"name":"Punjabi","locale":"pa","version":3},{"name":"Polish","locale":"pl","version":3},{"name":"Pashto","locale":"ps","version":3},{"name":"Portuguese (Brazil)","locale":"pt-BR","version":3},{"name":"Portuguese (Portugal)","locale":"pt-PT","version":3},{"name":"Quechua","locale":"qu","version":3},{"name":"Romansh","locale":"rm","version":3},{"name":"Rundi","locale":"rn","version":3},{"name":"Romanian","locale":"ro","version":3},{"name":"Russian","locale":"ru","version":3},{"name":"Kinyarwanda","locale":"rw","version":3},{"name":"Sanskrit","locale":"sa","version":3},{"name":"Sardinian","locale":"sc","version":3},{"name":"Sindhi","locale":"sd","version":3},{"name":"Northern Sami","locale":"se","version":3},{"name":"Sango","locale":"sg","version":3},{"name":"Sinhala","locale":"si","version":3},{"name":"Slovak","locale":"sk","version":3},{"name":"Slovenian","locale":"sl","version":3},{"name":"Shona","locale":"sn","version":3},{"name":"Somali","locale":"so","version":3},{"name":"Albanian","locale":"sq","version":3},{"name":"Serbian","locale":"sr","version":3},{"name":"Sundanese","locale":"su","version":3},{"name":"Swedish","locale":"sv","version":3},{"name":"Swahili","locale":"sw","version":3},{"name":"Tamil","locale":"ta","version":3},{"name":"Telugu","locale":"te","version":3},{"name":"Tajik","locale":"tg","version":3},{"name":"Thai","locale":"th","version":3},{"name":"Tigrinya","locale":"ti","version":3},{"name":"Turkmen","locale":"tk","version":3},{"name":"Tongan","locale":"to","version":3},{"name":"Turkish","locale":"tr","version":3},{"name":"Tatar","locale":"tt","version":3},{"name":"Uyghur","locale":"ug","version":3},{"name":"Ukrainian","locale":"uk","version":3},{"name":"Urdu","locale":"ur","version":3},{"name":"Uzbek","locale":"uz","version":3},{"name":"Vietnamese","locale":"vi","version":3},{"name":"Wolof","locale":"wo","version":3},{"name":"Xhosa","locale":"xh","version":3},{"name":"Yiddish","locale":"yi","version":3},{"name":"Yoruba","locale":"yo","version":3},{"name":"Chinese (Simplified)","locale":"zh-CN","version":3},{"name":"Chinese (Traditional)","locale":"zh-TW","version":3},{"name":"Zulu","locale":"zu","version":3}], "plan": { "type": "basic", "st_app_plan": "basic", "isFreePlan": false, "isBasicPlan": true, "isPremiumPlan": false }, "productJSON": null, "strings": { "locale": "en", "version": 3, "isPrimary": true, "accessibility": { "detailsButton": "Open Wishlist Details" }, "shareSocialContent": "Check out some of my favorite things {{link}}", "toast": { "errors": { "requiredLogin": "Please login to continue - \u003ca href='https:\/\/www.tnbl.co.uk\/customer_authentication\/redirect?locale=en\u0026region_country=GB' rel='nofollow' class='st-toast-login-link'\u003eLogin\u003c\/a\u003e", "requiredLoginWithoutLink": null, "noProductsToShare": "No Products to share", "noImageForPinterest": "A product image is required to share on Pinterest", "noWishlistLink": "This item is no longer on your wishlist. Refresh the page if it still appears.", "linkCustomerMismatch": "We couldn't update this wishlist item. Please refresh and try again.", "productNotInCatalog": "This product is no longer available in the store catalog.", "variantLinkMismatch": "This product variant is no longer on your wishlist.", "removeFailed": "Could not remove this item from your wishlist." }, "success": { "add": "Added to Wishlist successfully" }, "productAdded": "Added to Wishlist successfully", "productDeleted": "Deleted from Wishlist successfully", "productAddedCartSuccess": "Added to cart successfully", "productAddedCartFailed": "Failed to add to cart", "loginToKeepAndAccessWishlist": "Log in to keep your wishlist and access it anytime." }, "productCard": { "buttons": { "moreDetails": "More Details", "addToCart": "Add to Cart", "outOfStock": "Out of Stock" } }, "productPage": { "wishlistButton": { "add": "Add to Wishlist", "added": "Added to Wishlist" } }, "likeCount": { "label": "Likes", "tooltip": "[[sw_mb]]count[[sw_me]] shoppers saved this item" }, "guestOptIn": { "title": "Keep these favorites?", "body": "Leave your email so we can save this wishlist for you - and let you know about restocks and price drops.", "emailLabel": "Email", "consentLabel": "Yes, save my email with this wishlist.", "submit": "Save wishlist", "skip": "Not now", "errorEmail"
32680: "Enter a valid email.", "errorConsent": "Please tick the box to continue.", "errorGeneric": "Could not save. Please try again." } } } </script>
32680  
32680<script src="https://cdn.shopify.com/extensions/01a11a04-6da5-7ed6-89a8-7dba9a26990f/swishlist-606/assets/st-wishlist-config.js" defer></script>
32680 
32680<script> window.SWishlistIconLoaderConfig = { fullIconsScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-icons.js" }; </script>
32680<script> window.SWishlistRuntimeConfig = Object.assign(window.SWishlistRuntimeConfig || {}, {guestOptInScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-guest-opt-in.js" }); </script>
32680<script src="https://cdn.shopify.com/extensions/01a11a04-6da5-7ed6-89a8-7dba9a26990f/swishlist-606/assets/st-wishlist-icons-loader.js" defer></script>
32680<script> window.SWishlistLoaderConfig = { mainScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist.js", sharedScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-shared.js", detailsScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-details.js", productCardScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-product-card.js", sharePageScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-share-page.js", sharePageStylesheetUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st_share_page.min.css", settingsFallbackScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-settings-fallback.js", wishlistDetailsPageScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-details-page.js", customerToken: "", templateName: "index", guestOptInScriptUrl: "https:\/\/cdn.shopify.com\/extensions\/01a11a04-6da5-7ed6-89a8-7dba9a26990f\/swishlist-606\/assets\/st-wishlist-guest-opt-in.js" }; </script>
32680 
32680<script src="https://cdn.shopify.com/extensions/01a11a04-6da5-7ed6-89a8-7dba9a26990f/swishlist-606/assets/st-wishlist-loader.js" defer></script>
32680  </div>
32680<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
32680
32681</body>
32682</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.