1<!doctype html> 2<html lang="en" class="prevent-x-overflow"> 3 <head> 4
5<script 6 id="Cookiebot" 7 src="https://consent.cookiebot.com/uc.js" 8 data-cbid="db955543-bf2c-4822-81bd-5b13d2bfc796" 9 type="text/javascript" 10 data-blockingmode="auto" 11 data-framework="IAB" 12 defer 13></script>
13 14 15 16 <meta charset="UTF-8"> 17 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 18 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"> 19 <meta name="description" content="Find the perfect beer gift with BrewDogâs craft beer gift sets, mixed packs and personalised beer cans. Ideal for birthdays, celebrations and for beer lovers. Shop now!"> 20 <meta name="google-site-verification" content="CIbk4ZmbvooRapodjBdmUy3lTYM9fgn68GLeOT6y5sA" /> 21 22 23 <link href="//brewdog.com/cdn/shop/t/271/assets/main-B0HiAEwe.css" rel="stylesheet" type="text/css" media="all" /> 24 25 26 27 28 <link href="//brewdog.com/cdn/shop/t/271/assets/critical-Cxm142hA.css" rel="stylesheet" type="text/css" media="all" /> 29 30 31 32 33
33<script src="//brewdog.com/cdn/shop/t/271/assets/main-AufMj1Vk.js" type="module" crossorigin="anonymous"></script>
33 34 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/cart-DY-kXn0p.js" crossorigin="anonymous"> 35 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/main-cart-biDIKC76.js" crossorigin="anonymous"> 36 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/index-BWUlHjDv.js" crossorigin="anonymous"> 37 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/recently-viewed-Cs24S5du.js" crossorigin="anonymous"> 38 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/index-Qx5q438i.js" crossorigin="anonymous"> 39 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/index-YiDbbM_u.js" crossorigin="anonymous"> 40 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/splide.esm-Cg9MkWOe.js" crossorigin="anonymous"> 41 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/utils-D8tYCXRD.js" crossorigin="anonymous"> 42 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/quantity-selector-BVsmLMCA.js" crossorigin="anonymous"> 43 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/accordion-akljWgFK.js" crossorigin="anonymous"> 44 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/modal-C2lX66I4.js" crossorigin="anonymous"> 45 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/free-shipping-indicator-pe5l3IaX.js" crossorigin="anonymous"> 46 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/cart-item-BTsqq82R.js" crossorigin="anonymous"> 47 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/cart-upsell-Cr_-13ZP.js" crossorigin="anonymous"> 48 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/replacePersonalCansSection-BoLk9oIv.js" crossorigin="anonymous"> 49 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/hooks.module-Cc20K0Ba.js" crossorigin="anonymous"> 50 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/preact.module-B5ZnQuyU.js" crossorigin="anonymous"> 51 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/currency-DRNmrEpZ.js" crossorigin="anonymous"> 52 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/ProductPrice--l97YCzz.js" crossorigin="anonymous"> 53 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/index-8UhTnbf1.js" crossorigin="anonymous"> 54 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/section-rendering-Bf2mDQN0.js" crossorigin="anonymous"> 55 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/storefront-Bthd_nt4.js" crossorigin="anonymous"> 56 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/klevu-BVC2pWRs.js" crossorigin="anonymous"> 57 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/tua-bsl-uIxvG2ZV.js" crossorigin="anonymous"> 58 <link href="//brewdog.com/cdn/shop/t/271/assets/main-B9MYsL0c.css" rel="stylesheet" type="text/css" media="all" /> 59 60 61 62 63
63<script src="//brewdog.com/cdn/shop/t/271/assets/free-gift-E9uc3aqF.js" type="module" crossorigin="anonymous"></script>
63 64 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/cart-DXzKAPAO.js" crossorigin="anonymous"> 65 66 67 68 69
69<script src="//brewdog.com/cdn/shop/t/271/assets/quickshop-button-CqbumraX.js" type="module" crossorigin="anonymous"></script>
69 70 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/cart-DXzKAPAO.js" crossorigin="anonymous"> 71 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/currency-DRNmrEpZ.js" crossorigin="anonymous"> 72 73 74 <link rel="shortcut icon" href="//brewdog.com/cdn/shop/files/brand_brewdog_shield.svg?v=1722348642&width=32" type="image/png"> 75 <link rel="apple-touch-icon" href="//brewdog.com/cdn/shop/files/brand_brewdog_shield.svg?v=1722348642&width=180"> 76 77 78 79 <link rel="dns-prefetch" href="https://cdn.shopify.com"> 80 81 82 83 84 85<link rel="canonical" href="https://brewdog.com/collections/shop-all-gifts"> 86 87 88<title>Beer Gifts & Craft Beer Gift Packs - Personalised Beer Gifts 89 – BrewDog</title> 90 91 92 93 94 95 96 97
98<script> 99 var ThemeVars = { 100 moneyFormat: "£{{amount}}", 101 102 103 104 105 106 collection: { 107 products_count: 41, 108 products_per_page: 24 109 }, 110 111 112 template: { 113 directory: null, 114 name: "collection", 115 suffix: null 116 }, 117 118 theme: { 119 id: 185229017414, 120 name: "brewdog-uk\/main", 121 role: "main" 122 }, 123 124 country_option_tags: `<option value="United Kingdom" data-provinces="[["British Forces","British Forces"],["England","England"],["Northern Ireland","Northern Ireland"],["Scotland","Scotland"],["Wales","Wales"]]">United Kingdom</option>`, 125 126 currency: { 127 name: "British Pound", 128 iso_code: "GBP", 129 symbol: "£" 130 }, 131 132 localization: { 133 available_countries: ["Austria","Belgium","Bulgaria","Croatia","Cyprus","Czechia","Denmark","Estonia","Finland","France","Germany","Greece","Hungary","Ireland","Italy","Latvia","Lithuania","Luxembourg","Malta","Netherlands","Poland","Portugal","Romania","Slovakia","Slovenia","Spain","Sweden","United Kingdom"], 134 available_languages: [{"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}], 135 country: "United Kingdom", 136 language: {"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}} 137 }, 138 139 140 swatches: { 141 142 } 143 144 }; 145</script>
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
201<script> 202 window.themeVars = window.themeVars || {}; 203 204 // Localization liquid variables 205 window.themeVars.locale = { 206 country: { 207 code: "GB", 208 name: "United Kingdom", 209 }, 210 language: {"shop_locale":{"locale":"en","enabled":true,"primary":true,"published":true}}, 211 market: { 212 handle: "gb", 213 id: 74677944646, 214 }, 215 }; 216 217 // Liquid Routes 218 window.themeVars.routes = { 219 cart: "\/cart", 220 checkout: "/cart?locale=en", 221 product_recommendations_url: "\/recommendations\/products" 222 } 223 224 window.themeVars.personalised_cans = { 225 img_learn_more: "\u003cp\u003eMax image size - 4.5mb. Inappropriate images will not be accepted. \u003c\/p\u003e", 226 message_learn_more: "\u003cp\u003eWe do not accept inappropriate swearing, discriminatory, threatening, or inflammatory language\u003c\/p\u003e", 227 disclaimer: "\u003cp\u003e\u003cstrong\u003ePersonalised items can't be changed once they're made\u003c\/strong\u003e. Please make sure your text is free of any typos or errors before adding your product to the basket.\u003c\/p\u003e", 228 terms_text: "By adding to basket you are confirming the label is correct, for more information read", 229 terms_link_text: "T\u0026C's here.", 230 terms_modal_content: "", 231 personalise_image_accept:"Certain images will not be accepted", 232 personalise_no_labels: "No labels available", 233 personalise_image_drag: "Drag files to upload or", 234 personalise_image_rules: "Supports: JPG, PNG, JPEG 2000. File size should not exceed 4.5MB", 235 personalise_message_accept: "Certain messages will not be accepted.", 236 personalise_message_more: "Learn More", 237 personalise_name_max: "max. 11 characters. English characters only ", 238 personalise_message_max: "max. 20 characters. English characters only ", 239 personalise_next_text: "Next step", 240 personalise_add_to_cart_text: "Add to Cart", 241 personalise_default_name: "NAME", 242 personalise_default_message: "YOUR MESSAGE", 243 personalise_name_error: "You have reached the 11 characters limit", 244 personalise_message_error: "You have reached the 20 characters limit", 245 personalise_choose_file: "Choose file", 246 personalise_file_waiting: "Waiting for file...", 247 personalise_file_error: "File error - Max upload size 4.5mb", 248 personalise_file_type_error: "File error - Only JPG, PNG, JPEG 2000 files are supported", 249 personalised_product_disclaimer: "Customers can purchase one Personalised Can pack per order. This item will ship separately.", 250 } 251 252 window.themeVars.free_gift = { 253 gift_product_id: null, 254 gift_product_price: null, 255 gift_product_img: null, 256 gift_product_title: null, 257 gift_product_variant: null, 258 title_threshold: "", 259 threshold: "50", 260 title: "", 261 text: "" 262 }, 263 264 // Customer liquid variables 265 window.themeVars.customer = { 266 isLoggedIn: false, 267 268 staff: false, 269 staffDiscount: 0, 270 271 272 efpMember: false, 273 274 id: "null", 275 email: "null", 276 tags: "null" 277 }; 278 279 // Check and clear sensitive information if the customer is not logged in 280 if (!window.themeVars.customer.isLoggedIn) { 281 const customerKeys = Object.keys(window.themeVars.customer); 282 for (const key of customerKeys) { 283 if (key !== 'isLoggedIn') { 284 window.themeVars.customer[key] = null; 285 } 286 } 287 } 288 289 // Icons liquid variables 290 window.themeVars.icons = { 291 basket: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.8222 3.18079C12.6354 2.91099 12.3281 2.75 12 2.75C11.6719 2.75 11.3646 2.91099 11.1778 3.18079L6.97605 9.25H3.00001C2.69207 9.25 2.40131 9.39187 2.2118 9.63459C2.0223 9.8773 1.95518 10.1938 2.02987 10.4925L4.52987 20.4925C4.64116 20.9377 5.04114 21.25 5.50001 21.25H18.5C18.9589 21.25 19.3589 20.9377 19.4702 20.4925L21.9702 10.4925C22.0448 10.1938 21.9777 9.8773 21.7882 9.63459C21.5987 9.39187 21.3079 9.25 21 9.25H17.024L12.8222 3.18079ZM16.4874 11.25C16.4964 11.2501 16.5054 11.2501 16.5143 11.25H19.7192L17.7192 19.25H6.28079L4.28079 11.25H7.48566C7.49464 11.2501 7.50361 11.2501 7.51257 11.25H16.4874ZM14.5914 9.25L12 5.50682L9.40857 9.25H14.5914Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 292 basket_white: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.8222 3.18079C12.6354 2.91099 12.3281 2.75 12 2.75C11.6719 2.75 11.3646 2.91099 11.1778 3.18079L6.97605 9.25H3.00001C2.69207 9.25 2.40131 9.39187 2.2118 9.63459C2.0223 9.8773 1.95518 10.1938 2.02987 10.4925L4.52987 20.4925C4.64116 20.9377 5.04114 21.25 5.50001 21.25H18.5C18.9589 21.25 19.3589 20.9377 19.4702 20.4925L21.9702 10.4925C22.0448 10.1938 21.9777 9.8773 21.7882 9.63459C21.5987 9.39187 21.3079 9.25 21 9.25H1
2927.024L12.8222 3.18079ZM16.4874 11.25C16.4964 11.2501 16.5054 11.2501 16.5143 11.25H19.7192L17.7192 19.25H6.28079L4.28079 11.25H7.48566C7.49464 11.2501 7.50361 11.2501 7.51257 11.25H16.4874ZM14.5914 9.25L12 5.50682L9.40857 9.25H14.5914Z\" fill=\"#ffffff\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 293 close: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M13.3443 12L18.9999 6.34431L17.6556 5L12 10.6557L6.34431 5L5 6.34431L10.6557 12L5 17.6556L6.34431 19L12 13.3443L17.6556 19L18.9999 17.6556L13.3443 12Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 294 list: "\n \n\n\n\n\n", 295 card: "\n \n\n\n\n\n", 296 settings: "\n \n\n\n\n\n", 297 delete: "\n \n\n\n \u003csvg class=\"\" width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M3 18C2.45 18 1.97917 17.8042 1.5875 17.4125C1.19583 17.0208 1 16.55 1 16V3H0V1H5V0H11V1H16V3H15V16C15 16.55 14.8042 17.0208 14.4125 17.4125C14.0208 17.8042 13.55 18 13 18H3ZM13 3H3V16H13V3ZM5 14H7V5H5V14ZM9 14H11V5H9V14Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 298 minus: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M20 11H4V13H20V11Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 299 plus: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M13 11V4H11V11H4V13H11V20H13V13H20V11H13Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 300 error: "\n \n\n\n \u003csvg class=\"\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M10 19.5C9.7606 19.5 9.53242 19.4551 9.31546 19.3653C9.0985 19.2756 8.90025 19.1484 8.7207 18.9838L1.51621 11.7793C1.35162 11.5998 1.22444 11.4015 1.13466 11.1845C1.04489 10.9676 1 10.7394 1 10.5C1 10.2606 1.04489 10.0287 1.13466 9.80424C1.22444 9.5798 1.35162 9.38529 1.51621 9.2207L8.7207 2.01621C8.90025 1.83666 9.0985 1.70574 9.31546 1.62344C9.53242 1.54115 9.7606 1.5 10 1.5C10.2394 1.5 10.4713 1.54115 10.6958 1.62344C10.9202 1.70574 11.1147 1.83666 11.2793 2.01621L18.4838 9.2207C18.6633 9.38529 18.7943 9.5798 18.8766 9.80424C18.9589 10.0287 19 10.2606 19 10.5C19 10.7394 18.9589 10.9676 18.8766 11.1845C18.7943 11.4015 18.6633 11.5998 18.4838 11.7793L11.2793 18.9838C11.1147 19.1484 10.9202 19.2756 10.6958 19.3653C10.4713 19.4551 10.2394 19.5 10 19.5ZM10 17.7045L17.2045 10.5L10 3.29551L2.79551 10.5L10 17.7045ZM9.10224 11.3978H10.8978V6.01122H9.10224V11.3978ZM10 14.091C10.2544 14.091 10.4676 14.005 10.6397 13.8329C10.8117 13.6608 10.8978 13.4476 10.8978 13.1933C10.8978 12.9389 10.8117 12.7257 10.6397 12.5536C10.4676 12.3815 10.2544 12.2955 10 12.2955C9.74564 12.2955 9.53242 12.3815 9.36035 12.5536C9.18828 12.7257 9.10224 12.9389 9.10224 13.1933C9.10224 13.4476 9.18828 13.6608 9.36035 13.8329C9.53242 14.005 9.74564 14.091 10 14.091Z\" \/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 301 chevronLeft: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.2018 12L16.7339 18.5321L15.2659 20L7.26594 12L15.2659 4L16.7339 5.46796L10.2018 12Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 302 chevronRight: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.798 12L7.26599 5.46795L8.73395 4L16.7339 12L8.73395 20L7.26599 18.532L13.798 12Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 303 chevronDown: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 13.7981L18.5321 7.26605L20 8.73401L12 16.734L4 8.73401L5.46796 7.26605L12 13.7981Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 304 lock: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.80005 8.4H6.60005C6.60005 5.41766 9.01771 3 12 3C14.9824 3 17.4 5.41766 17.4 8.4H19.2V21H4.80005V8.4ZM12 4.8C10.0118 4.8 8.4000
3045 6.41177 8.40005 8.4H15.6C15.6 6.41177 13.9882 4.8 12 4.8ZM6.60005 10.2V19.2H17.4V10.2H6.60005ZM12 11.1C10.5089 11.1 9.30005 12.3088 9.30005 13.8C9.30005 14.9756 10.0514 15.9757 11.1 16.3464V18.3H12.9V16.3464C13.9487 15.9757 14.7 14.9756 14.7 13.8C14.7 12.3088 13.4912 11.1 12 11.1ZM11.1 13.8C11.1 13.3029 11.503 12.9 12 12.9C12.4971 12.9 12.9 13.3029 12.9 13.8C12.9 14.2971 12.4971 14.7 12 14.7C11.503 14.7 11.1 14.2971 11.1 13.8Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 305 singleColumn: "\n \n\n\n \u003csvg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003crect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"19.5\" stroke=\"#666666\"\/\u003e\n \u003crect x=\"12\" y=\"12\" width=\"5.5\" height=\"5.5\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003crect x=\"12\" y=\"22.5\" width=\"5.5\" height=\"5.5\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003crect x=\"22.5\" y=\"12\" width=\"5.5\" height=\"5.5\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003crect x=\"22.5\" y=\"22.5\" width=\"5.5\" height=\"5.5\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 306 fourColumns: "\n \n\n\n \u003csvg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003crect x=\"0.5\" y=\"0.5\" width=\"39\" height=\"39\" rx=\"19.5\" stroke=\"#666666\"\/\u003e\n \u003crect x=\"12\" y=\"12\" width=\"16\" height=\"5\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003crect x=\"12\" y=\"23\" width=\"16\" height=\"5\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 307 checkmark: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M20 6.70587L9.88235 17.2941L4 11.4118\" stroke=\"#111111\" stroke-width=\"2\"\/\u003e\n \u003c\/svg\u003e\n\n \n\n\n", 308 thumb: "\n \n\n\n \u003csvg class=\"\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M16.548 20.4594H7.2762V9.34636L13.0819 3.54065L14.2642 4.67024C14.3746 4.77554 14.4654 4.92061 14.5369 5.10545C14.6083 5.29028 14.644 5.46973 14.644 5.64378V5.88259L13.7349 9.34636H19.0886C19.5936 9.34636 20.0384 9.53869 20.423 9.92334C20.8077 10.308 21 10.7528 21 11.2577V12.6318C21 12.7379 20.986 12.8516 20.958 12.9729C20.93 13.0943 20.8986 13.2057 20.8639 13.3071L18.3134 19.3155C18.1706 19.6357 17.9312 19.9065 17.5953 20.1277C17.2593 20.3488 16.9102 20.4594 16.548 20.4594ZM9.11216 18.548H16.548L19.0786 12.6318V11.2577H11.3865L12.4604 6.88301L9.11216 10.2313V18.548ZM7.2762 9.34636V11.2577H4.91136V18.548H7.2762V20.4594H3V9.34636H7.2762Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 309 bell: "\n \n\n\n \u003csvg class=\"\" width=\"16\" height=\"20\" viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M0 17V15H2V8C2 6.61667 2.41667 5.3875 3.25 4.3125C4.08333 3.2375 5.16667 2.53333 6.5 2.2V1.5C6.5 1.08333 6.64583 0.729167 6.9375 0.4375C7.22917 0.145833 7.58333 0 8 0C8.41667 0 8.77083 0.145833 9.0625 0.4375C9.35417 0.729167 9.5 1.08333 9.5 1.5V2.2C10.8333 2.53333 11.9167 3.2375 12.75 4.3125C13.5833 5.3875 14 6.61667 14 8V15H16V17H0ZM8 20C7.45 20 6.97917 19.8042 6.5875 19.4125C6.19583 19.0208 6 18.55 6 18H10C10 18.55 9.80417 19.0208 9.4125 19.4125C9.02083 19.8042 8.55 20 8 20ZM4 15H12V8C12 6.9 11.6083 5.95833 10.825 5.175C10.0417 4.39167 9.1 4 8 4C6.9 4 5.95833 4.39167 5.175 5.175C4.39167 5.95833 4 6.9 4 8V15Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n ", 310 addToCart: "\n \n\n\n \u003csvg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003crect width=\"40\" height=\"40\" rx=\"20\" fill=\"#111111\"\/\u003e\n \u003cg clip-path=\"url(#clip0_11213_12243)\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.8222 11.0558C20.6354 10.786 20.3282 10.625 20 10.625C19.6719 10.625 19.3646 10.786 19.1778 11.0558L14.9761 17.125H11C10.6921 17.125 10.4013 17.2669 10.2118 17.5096C10.0223 17.7523 9.95518 18.0688 10.0299 18.3675L12.5299 28.3675C12.6412 28.8127 13.0411 29.125 13.5 29.125H20V27.125H14.2808L12.2808 19.125H15.4857C15.4946 19.1251 15.5036 19.1251 15.5126 19.125H24.4874C24.4964 19.1251 24.5054 19.1251 24.5144 19.125H27.4835L26.5809 21.2311L28.4192 22.0189L29.9192 18.5189C30.0516 18.21 30.0199 17.8551 29.8349 17.5745C29.6498 17.2939 29.3362 17.125 29 17.125H25.024L20.8222 11.0558ZM22.5914 17.125L20 13.3818L17.4086 17.125H22.5914ZM20 24.375H21H23V22.375V21.375H25V22.375V24.375H27H28V26.375H27H25V28.375V29.375H23V28.375V26.375H21H20V24.375Z\" fill=\"white\"\/\u003e\n \u003c\/g\u003e\n \u003cdefs\u003e\n \u003cclipPath id=\"clip0_11213_12243\"\u003e\n \u003crect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10)\"\/\u003e\n \u003c\/clipPath\u003e\n \u003c\/defs\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 311 circleCheck: "\n \n\n\n \u003csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M7 10L9 12L13 8M19 10C19 14.9706 14.9706 19 10 19C5.02944 19 1 14.9706 1 10C1 5.02944 5.02944 1 10 1C14.9706 1 19 5.02944 19 10Z\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 312 warning: "\n \n\n\n \u003csvg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M12 22.0251C11.7333 22.0251 11.4791 21.9751 11.2375 21.8751C10.9958 21.7751 10.775 21.6334 10.575 21.4501L2.54998 13.4251C2.36664 13.2251 2.22498 13.0043 2.12498 12.7626C2.02498 12.5209 1.97498 12.2668 1.97498 12.0001C1.97498 11.7334 2.02498 11.4751 2.12498 11.2251C2.22498 10.9751 2.36664 10.7584 2.54998 10.5
312751L10.575 2.5501C10.775 2.3501 10.9958 2.20426 11.2375 2.1126C11.4791 2.02093 11.7333 1.9751 12 1.9751C12.2666 1.9751 12.525 2.02093 12.775 2.1126C13.025 2.20426 13.2416 2.3501 13.425 2.5501L21.45 10.5751C21.65 10.7584 21.7958 10.9751 21.8875 11.2251C21.9791 11.4751 22.025 11.7334 22.025 12.0001C22.025 12.2668 21.9791 12.5209 21.8875 12.7626C21.7958 13.0043 21.65 13.2251 21.45 13.4251L13.425 21.4501C13.2416 21.6334 13.025 21.7751 12.775 21.8751C12.525 21.9751 12.2666 22.0251 12 22.0251ZM12 20.0251L20.025 12.0001L12 3.9751L3.97498 12.0001L12 20.0251ZM11 13.0001H13V7.0001H11V13.0001ZM12 16.0001C12.2833 16.0001 12.5208 15.9043 12.7125 15.7126C12.9041 15.5209 13 15.2834 13 15.0001C13 14.7168 12.9041 14.4793 12.7125 14.2876C12.5208 14.0959 12.2833 14.0001 12 14.0001C11.7166 14.0001 11.4791 14.0959 11.2875 14.2876C11.0958 14.4793 11 14.7168 11 15.0001C11 15.2834 11.0958 15.5209 11.2875 15.7126C11.4791 15.9043 11.7166 16.0001 12 16.0001Z\" fill=\"#C21632\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 313 image: "\n \n\n\n \u003csvg width=\"115\" height=\"86\" viewBox=\"0 0 115 86\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\"\u003e\n \u003crect width=\"115\" height=\"86\" fill=\"url(#pattern0_15030_2956)\"\/\u003e\n \u003cdefs\u003e\n \u003cpattern id=\"pattern0_15030_2956\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\"\u003e\n \u003cuse xlink:href=\"#image0_15030_2956\" transform=\"matrix(0.00125 0 0 0.00167151 0 -0.00145349)\"\/\u003e\n \u003c\/pattern\u003e\n \u003cimage id=\"image0_15030_2956\" width=\"800\" height=\"600\" xlink:href=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAADIKADAAQAAAABAAACWAAAAADCarWUAAAwG0lEQVR4Ae3d+7Nd1V0AcGIS8iAh5EESCCFA0jyh4REIgRAq2rHDL\/6zjqOj1V8cx7aj1hnt1BlraxGtKKXagrTl4fcr96b3Hu7jPPZjrbU\/a2Zxz2uv9f1+Vrjnfs\/e++wHHtAIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAg
313EA3Anu6GcYoBAgQ+JLA3ngku0aAQN0Cv6o7fNETIFCagAKktBURD4G6BQ5E+Dejn4\/+UN2piJ4AgTWBT+Pn+9H\/Ifo7a4\/5QYAAgaUFfDq5NJ0NCRCYEciC4+3oj0d\/cOY5dwkQqFfgtyL0\/P\/76bUU\/qPeVEROgEAJAgqQElZBDATaEHgr0jjeRiqyIEBgG4Gz8fh70X+xzfMeJkCAwK4C+amGRoAAgVUFsvA4s+ogtidAoAqBq1VEKUgCBIoVUIAUuzQCI1CVgD0fVS2XYAmsJOD\/95X4bEyAgALEvwECBLoQcDhnF4rGIFCHwL46whQlAQKlCihASl0ZcREgQIAAAQIECBBoUEAB0uCiSokAAQIECBAgQIBAqQIKkFJXRlwECBAgQIAAAQIEGhRwHGeDiyolAgULfBCxfVxwfEIjMHWBUwGwf+oI8idAoF8BBUi\/vkYnQGCzwHfjrispbzZxj0BJAnkx0SxCNAIECPQm4BCs3mgNTIAAAQIECBAgQIDArIACZFbEfQIECBAgQIAAAQIEehNQgPRGa2ACBAgQIECAAAECBGYFFCCzIu4TIECAAAECBAgQINCbgAKkN1oDEyBAgAABAgQIECAwK6AAmRVxnwABAgQIECBAgACB3gQUIL3RGpgAAQIECBAgQIAAgVkBBcisiPsECBAgQIAAAQIECPQmoADpjdbABAgQIECAAAECBAjMCihAZkXcJ0CAAAECBAgQIECgNwEFSG+0BiZAgAABAgQIECBAYFZAATIr4j4BAgQIECBAgAABAr0JKEB6ozUwAQIECBAgQIAAAQKzAgqQWRH3CRAgQIAAAQIECBDoTWBfbyMbmAABAuML7IkQDkc\/uCGUT+P2z6PnT40AAQIECBAYWEABMjC46QgQ6F3gkZjhQvTHop+Mvjf6bPs8Hsgi5CfR34n+b9HzMY0AAQIECBDoWUAB0jOw4QkQGEzgiZjpq9FPzTFj7hl5eK1fjp8fR\/9e9O9H\/yS6RoAAAQIECPQkoADpCdawBAgMJpCFxKvRz64wYx6i9WL0q9G\/E\/1fomsECBAgQIBADwIKkB5QDUmAwGACF2Om29G7+l2W54u8Gf0H0b8V3d6QQNAIECBAgECXAl29aXcZk7EIECCwm0AeQnUn+qXdXrjk81nY5Pkj34z+4ZJj2IwAAQIECBDYQsDX8G6B4iECBIoXyL0efRUf68nnyexfj35g\/QE\/CRAgQIAAgdUFFCCrGxqBAIFhBW7EdHni+BAtzy\/57eh+Vw6hbQ4CBAgQmISAN9VJLLMkCTQjcDoyyZPFh2xjzDlkfuYiQIAAAQKDCihABuU2GQECKwjk9Txej57nfwzdrseEZ4ae1HwECBAgQKBFAQVIi6sqJwJtClyJtI6OmNrQe15GTNXUBAgQIECgPwEFSH+2RiZAoDuB3PuR536M2R6NyfPq6hoBAgQIECCwgoACZAU8mxIgMJjAhZjp0GCzbT\/Rte2f8gwBAgQIECAwj4ACZB4lryFAYGyBp8cOYG3+x+Onr+UtZDGEQYAAAQJ1CihA6lw3UROYkkAefnW2kITzd2YpsRRCIgwCBAgQILCYgAJkMS+vJkBgeIETMWUWIaW0PBdEI0CAAAECBJYUUIAsCWczAgQGEzg22EzzTZRXSNcIECBAgACBJQUUIEvC2YwAgcEEjgw203wTlRbPfFF7FQECBAgQKERAAVLIQgiDAIFtBfZt+8w4T+wfZ1qzEiBAgACBNgQUIG2soywItCwwxpXPd\/IsLZ6dYvUcAQIECBAoTkABUtySCIgAgRmBT2buj33312MHYH4CBAgQIFCzgAKk5tUTO4FpCHxUWJofFhaPcAgQIECAQFUCCpCqlkuwBCYp8D+FZf3zwuIRDgECBAgQqEpAAVLVcgmWwCQF\/iuy\/qygzN8rKBahECBAgACB6gQUINUtmYAJTE4gz7l4v6Csf1JQLEIhQIAAAQLVCShAqlsyAROYpMA\/F5J1Fh\/OASlkMYRBgAABAnUKKEDqXDdRE5iawI8i4RK+DeufpgYvXwIECBAg0LVAaRf46jo\/4xEg0IbALyONf4x+Y8R08uTzH444\/9Smzvens9Efif5g9Nzz9O\/RS\/tSgghJI0CAAIFFBBQgi2h5LQECYwr8fUx+KfqBkYL465j385HmntK0WWzcjJ5rvdVV538aj\/9t9HejawQIECBQoYBDsCpcNCETmKhA7gX5zki5vxPz\/nikuac07ZlI9vejX4u+VfGRFiei\/070t6Ifjq4RIECAQGUCCpDKFky4BCYukCejD30eRh7685cTdx8i\/Qsxye9GPzTnZE\/E696OfnLO13sZAQIECBQioAApZCGEQYDA3ALfilcO9VW4v4q5vhk9975o\/Qnkno83ou9dcIrcA\/J70RUhC8J5OQECBMYUUICMqW9uAgSWEfg0Nvrz6HlCcp\/t4xj8T6P\/rM9JjP3AkTD4WvRl34\/yXMa3ouc4GgECBAhUILDsL\/wKUhMiAQINC+TFCXPPxPd7yjEvfPiH0fMq7Fp\/AvkedC\/6ql8skIdt5Tje0wJBI0CAQOkCflmXvkLiI0BgO4HP4olvR8+9IR9t96IFH88x89u2\/ij6Lxbc1ssXF3gxNjm1+GZbbpHj5HgaAQIECBQukLuuNQIECNQskN9QleeEXI+e356UX+O6aMuv1\/1x9O9G\/+9FN\/b6pQTOxVa5Zl22HC8PzfMVvV2qGosAAQIdCyhAOgY1HAECowjkIVl\/F\/170Z+Mnt+olBex2+l3XBYdeajVv0b\/YfS80KA2jMDhmOb1nqbKcf8geld7xXoK07AECBCYrsBOb87TVZE5AQK1CmQh8oO1noeYHot+NPrB6OstT2LPq2nnno78littWIE9Md3d6BvXpMsIctwc\/0+iZ5GpESBAgEBhAgqQwhZEOAQIdCaQ53N8sNY7G9RAKwvcjBFy71SfLcfPefKQOo0AAQIEChNwEnphCyIcAgQINCzwWOT23ED55Tw5n0aAAAEChQkoQApbEOEQIECgUYH8qtw3ouchWEO0nCfny3k1AgQIEChIQAFS0GIIhQABAg0LvBa59XXex3ZsOV\/OqxEgQIBAQQIKkIIWQygECBBoVOBG5HVupNxy3pxfI0CAAIFCBBQghSyEMAgQINCowKOR1wsj55bzZxwaAQIECBQgoAApYBGEQIAAgUYF8qKQ+ZW4Y7\/X5PwZxzIXqYzNNAIECBDoUmDsN4UuczEWAQIECJQlcCfCyeuwlNAyjoxHI0CAAIGRBRQgIy+A6QkQINCowFcir7wifUkt48m4NAIECBAYUUABMiK+qQkQINCowPHI65VCc8u4Mj6NAAECBEYSUICMBG9aAgQINCqwL\/LK62\/sLTS\/jCvjyzg1AgQIEBhBQAEyAropCRAg0LDArcjtkcLzy\/gyTo0AAQIERhBQgIyAbkoCBAg0KvB05HW5ktwyzoxXI0CAAIGBBRQgA4ObjgABAo0KHIm8bleWW8abcWsECBAgMKCAAmRAbFMRIECgUYF8L7kXvbbrbGS8Gbf3wkDQCBAgMJSAX7pDSZuHAAEC7QrklcZPVZpexv18pbELmwABAlUKKECqXDZBEyBAoBiBJyKSG8VEs1wgz8ZmmYdGgAABAgMIKEAGQDYFAQIEGhU4HHm91khumcehRnKRBgECBIoWUIAUvTyCI0CAQLECeyKyvJ7GwWIjXCywzCPzybw0AgQIEOhRQAHSI66hCRAg0LBAHrZ0prH8zkY+mZdGgAABAj0KKEB6xDU0AQIEGhU4HXm1euJ25pX5aQQIECDQk4ACpCdYwxIgQKBRgQORV351bauHKq0fWpZ5agQIECDQg4ACpAdUQxIgQKBhgdcjtzz5vOX2UCR3p+UE5UaAAIExBRQgY+qbmwABAnUJXI1wp\/J1tU9GrlfqWh7REiBAoA4BBUgd6yRKAgQIjC1wIgJ4aewgBp7\/VsyXeWsECBAg0KGAAqRDTEMRIECgUYH9kdeb0fc2mt92aWW+eb5L5q8RIECAQEcCCpCOIA1DgACBhgVeidyONpzfTqk9HE++vNMLPEeAAAECiwkoQBbz8moCBAhMTeCZSPji1JKeyfdS3E8HjQABAgQ6EFCAdIBoCAIECDQqcCzyerXR3BZNKx1yb4hGgAABAisK7Ftxe5sTIECAwJcF8ora+Yl5nsCc5w98Ev2D6D+K\/m70z6OX3vIDqvzKXe8TX6xUOqTHH0f\/7IuH\/JcAAQIElhHwxrKMmm0IECCwtcDxeDg\/KX90i6fzuSxKfhr929Hfi15yeyGCO1VygCPEluuaV0r\/mxHmNiUBAgSaEXAIVjNLKRECBEYWuBDzvx19q+JjY2i5V+Qb0bNQKfV38LmI7UZ07csC6fLYlx\/2CAECBAjMK1Dqm9+88XsdAQIEShDIk7Tz61oX+Zray\/H6r0d\/MHpJ7VAEk4caaVsL7ImH34h+cOunPUqAAAECuwkoQHYT8jwBAgR2FshPw1+Lnn+YLtrOxAZZhOR5IiW0zCGv9+GP651XI33SaZk133lkzxIgQGACAgqQCSyyFAkQ6E3gcIycn4av8ofoydj+bm8RLjbws\/Hy04ttMtlXZ\/HoMLXJLr\/ECRBYRUABsoqebQkQmLJA\/v78WvQu9hacj3Hyj\/8xW+7JyROstfkF8kT9\/MYzjQABAgQWEFCALIDlpQQIENggcDNud\/ktUfnH7G4nsG+YvtObed7HqntyOg2oksFyz1fuvTpQSbzCJECAQBECCpAilkEQBAhUJpB7C7reY5F\/zOaJ7GP8MZvnsHSxJyeGmVzLw\/BKOYRucvgSJkCgTgEFSJ3rJmoCBMYT6HNvwUOR1p2BU7se8+XX7mrLC6TfteU3tyUBAgSmJaAAmdZ6y5YAgdUEci9FfkVtn3sLnozxr6wW5txb5yFfL879ai\/cSSAd8xovGgECBAjsIqAA2QXI0wQIENggkHsLHt9wv6+bt2Lgvv+YzeuP5KFD3ge6WcW8Bkx+NW8pX6ncTVZGIUCAQA8C3nh6QDUkAQJNCgy5tyD\/mM3zQfr8YzYP9Tra5EqNl1R6Dn0I3XjZmpkAAQJLCihAloSzGQECkxLIE8OzIFjleh+Lgj0cG7y86EZzvv4r8boLc77WyxYTeCpefnGxTbyaAAEC0xJQgExrvWVLgMByAq\/GZnmC+NDtUkz4TMeTHo\/xXul4TMNtFrgdd49tfsg9AgQIEFgXUICsS\/hJgACBrQUux8Nj7i3I4if3hnTR9sUgeb2PPMRL608gnXOPGef+jI1MgEDFAgqQihdP6AQI9C6Qewv6Ogxq3uDXi4Yufl\/nye2PzDux160kkP92XlppBBsTIECgUYEu3tAapZEWAQITFyjpU+yTsRarfl3u0zFG7s3RhhO4GlOdH246MxEgQKAOAQVIHeskSgIEhhfIvQUlHcefXwG87B+zR2LbPC9BG14grxszxvlDw2dqRgIECMwpoACZE8rLCBCYlECpewvyK14PL7gS+Xs+z0fI635owwuke14fxPvt8PZmJECgUAG\/EAtdGGERIDCaQMl7C\/IK7HkS+SJfB\/x8vP7UaJomToH0\/yoKAgQIEPhCQAHiXwIBAgR+I1DD3oIzEe5zvwl5x1tPxLPP7vgKTw4lkGv22FCTmYcAAQIlCyhASl4dsREgMLTACzFhDXsLbkacZ3fByUO1XtvlNZ4eTiD3WuXeq0PDTWkmAgQIlCmgAClzXURFgMDwArm34Mbw0y41Y\/4xezd6XqF9q7b+fB6ypZUjkOuhKCxnPURCgMBIAgqQkeBNS4BAUQI17i3ImPMblrZqedjVbntIttrOY\/0LnIspail0+9cwAwECkxRQgExy2SVNgMAGgZr3FuRem2sbcsmbp6PniedauQJ5qN+j5YYnMgIECPQroADp19foBAiUL1D73oK8QOGJNeY8JGvRb8kqf4XaizDfe\/MQOl+N3N7ayogAgTkEFCBzIHkJAQLNCrSwt2BvrE5eZ2J\/dBe9q+ef6tEINa\/rohEgQGByAgqQyS25hAkQWBPIT5\/zD\/Y8BKv2ln\/MfiN6HpKl1SNwIUK9WE+4IiVAgEA3AgqQbhyNQoBAfQL5bUT5h3sr7XgriUwsj1cjX2s3sUWXLoGpCyhApv4vQP4EpilwJdJ+cpqpy7owgTyELs\/b2VdYXMIhQIBAbwIKkN5oDUyAQKECecL2rUJjE9Y0BR7xb3KaCy9rAlMVUIBMdeXlTWCaAnmi9r3o+amzRqAkgcsRzNMlBSQWAgQI9CWgAOlL1rgECJQo8HIE9XCJgYmJQAjcjn6EBAECBFoXUIC0vsLyI0BgXeCZuHFp\/Y6fBAoUyG9myz103psLXBwhESDQnYBfct1ZGokAgXIFcq9HftuQRqB0gVMRoCvZl75K4iNAYCUBBchKfDYmQKACgfw951uGKlgoId4XeDZuuabLfQ43CBBoTUAB0tqKyocAgVmBF+OBk7MPuk+gcIG8Ts2hwmMU
313HgECBJYSUIAsxWYjAgQqETgfcV6vJFZhEtgocDDu5J67PRsfdJsAAQItCChAWlhFORAgsJXA4XgwP0XWCNQqcDYCz8OxNAIECDQloABpajklQ4DAmkB+apyfHh8gQqBygTwh\/XTlOQifAAECmwQUIJs43CFAoBGB5yKPM43kIo1pCyimp73+sifQpIACpMlllRSBSQvkYSs3Jy0g+dYEHoqE7rSWlHwIEJiugAJkumsvcwItCuQhV3ejO3G3xdWddk5PRvpXpk0gewIEWhFQgLSykvIgQCAFsvjIk881Ai0K3IqkTrSYmJwIEJiWgAJkWustWwItC1yL5M61nKDcJi+wNwTuRd8\/eQkABAhULaAAqXr5BE+AwJpAfiqcFxzUCLQu8HAk+HLrScqPAIG2BRQgba+v7AhMQSA\/DX4zen46rBGYgsClSPKZKSQqRwIE2hRQgLS5rrIiMCWBVyLZo1NKWK4EQuDV6Lk3RCNAgEB1AgqQ6pZMwAQIbBC4GLezawSmJrAvEs6LbXofn9rKy5dAAwJ+cTWwiFIgMFGBY5H37YnmLm0CKXAyunOf\/FsgQKA6AQVIdUsmYAIEQmD924DyU2CNwJQFrkfy56cMIHcCBOoTUIDUt2YiJkDgi099j4MgQOD\/BV6L\/7r+jX8MBAhUI6AAqWapBEqAwJpAftqb1\/zQCBD4QuBA\/MjzQfYAIUCAQA0CCpAaVkmMBAisCzwUN15fv+MnAQL3Bc7Erefu33ODAAECBQsoQApeHKERILBJID\/dzU95H9z0qDsECKwL3IwbZ9fv+EmAAIFSBRQgpa6MuAgQmBXIP65Ozz7oPgEC9wWySL8bPQ\/J0ggQIFCsgAKk2KURGAECGwQei9sOL9kA4iaBbQTyZPQsQjQCBAgUK6AAKXZpBEaAwJrAwfjpBFv\/HAjML3AuXuqLGub38koCBAYWUIAMDG46AgQWFsiTzrMI0QgQmF8gL1B4Yv6XeyUBAgSGE1CADGdtJgIEFhfIi6zlp7kaAQKLCeTFOt+Mvn+xzbyaAAEC\/QsoQPo3NgMBAssJPBqb5ae4GgECywkcjc3uLLeprQgQINCfgAKkP1sjEyCwvEB+apsn0vodtbyhLQmkwFPRL+YNjQABAqUIeHMvZSXEQYDARoH81DY\/vdUIEFhd4HYMcWz1YYxAgACBbgQUIN04GoUAge4ELsVQT3U3nJEITF5gXwjci57nhWgECBAYXUABMvoSCIAAgQ0C+SntKxvuu0mAQDcCx2OYl7oZyigECBBYTUABspqfrQkQ6E4gfx\/leR\/5aa1GgED3AldjSN8q172rEQkQWFDAG\/2CYF5OgEBvAlmA\/FVvoxuYAIEU+DUGAgQIjC2gABl7BcxPgMC6wCdx4\/31O34SIECAAAECbQo4BKvNdZUVAQIECBAgQIAAgSIFFCBFLougCBAgQIAAAQIECLQpoABpc11lRYAAAQIECBAgQKBIAQVIkcsiKAIECBAgQIAAAQJtCjgJvc11lRWBUgXyWgR5srlGgECZAg+WGZaoCBBoSUAB0tJqyoVA+QLPlx+iCAkQIECAAIE+BRyC1aeusQkQIECAAAECBAgQ2CSgANnE4Q4BAgQIECBAgAABAn0KKED61DU2AQIECBAgQIAAAQKbBBQgmzjcIUBgSYHPl9zOZgQI1Cfg\/\/f61kzEBIoSUIAUtRyCIVCtwMfVRi5wAgQWFfjfRTfwegIECGwUUIBs1HCbAIFlBd6LDX297rJ6tiNQl8C7dYUrWgIEShPYW1pA4iFAoEqBTyPq7I9XGb2gCRCYV+DDeOFfRM\/\/3zUCBAgsJaAAWYrNRgQIbCHwn\/FYHht+OvqeLZ73EAECdQv8LML\/s+gf1Z2G6AkQGFvAHwljr4D5CbQncCRSOhd9f3upyYjAZAWy+MhDr5yAPtl\/AhInQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDA3AL\/Bzbp6\/Vbc8N4AAAAAElFTkSuQmCC\"\/\u003e\n \u003c\/defs\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 314 trash: "\n \n\n\n \u003csvg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M6.61646 20.8052C6.06646 20.8052 5.59562 20.6093 5.20396 20.2177C4.81229 19.826 4.61646 19.3552 4.61646 18.8052V5.80518H3.61646V3.80518H8.61646V2.80518H14.6165V3.80518H19.6165V5.80518H18.6165V18.8052C18.6165 19.3552 18.4206 19.826 18.029 20.2177C17.6373 20.6093 17.1665 20.8052 16.6165 20.8052H6.61646ZM16.6165 5.80518H6.61646V18.8052H16.6165V5.80518ZM8.61646 16.8052H10.6165V
3147.80518H8.61646V16.8052ZM12.6165 16.8052H14.6165V7.80518H12.6165V16.8052Z\" fill=\"#111111\"\/\u003e\n \u003c\/svg\u003e\n\n\n\n\n", 315 file: "\n \n\n\n \u003csvg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n \u003cpath d=\"M29.3238 12.3477H29.9274L29.5006 11.9209L22.5166 4.9369L22.0898 4.51012V5.11367V12.0977V12.3477H22.3398H29.3238ZM29.3906 33.2031H29.6406V32.9531V14.6211V14.3711H29.3906H21.375C21.0279 14.3711 20.6951 14.2332 20.4497 13.9878C20.2043 13.7424 20.0664 13.4096 20.0664 13.0625V5.04688V4.79688H19.8164H8.60938H8.35938V5.04688V32.9531V33.2031H8.60938H29.3906ZM23.551 2.9006L31.5369 10.8865C31.7127 11.0623 31.8125 11.303 31.8125 11.5521V34.4375C31.8125 34.9563 31.3938 35.375 30.875 35.375H7.125C6.60624 35.375 6.1875 34.9563 6.1875 34.4375V3.5625C6.1875 3.04374 6.60624 2.625 7.125 2.625H22.8891C23.1374 2.625 23.3746 2.72424 23.551 2.9006Z\" fill=\"#333333\" stroke=\"#F5F5F5\" stroke-width=\"0.5\"\/\u003e\n \u003c\/svg\u003e\n \n\n\n\n" 316 } 317 318 // Config/theme settings liquid variables 319 window.themeVars.config = { 320 storefrontAccessToken: "84f615122685515459b1eaa1cd8fe8be", 321 storefrontApiVersion: "2024-01", 322 cart: { 323 enableMinimumCartThreshold: true, 324 minimumCartThreshold: 1500, 325 deliveryMessaging: "\u003cp\u003e\u003cstrong\u003eFree Delivery over £60\u003c\/strong\u003e\u003c\/p\u003e", 326 }, 327 pfandProduct: null, 328 freeShippingIndicator: { 329 threshold: -1400 330 }, 331 enableCartRecommendations: false 332 }; 333 334 335 window.themeVars.collection = { 336 promo_banner_one: { 337 title: ``, 338 text: ``, 339 url: ``, 340 color: "" 341 }, 342 promo_banner_two: { 343 title: ``, 344 text: ``, 345 url: ``, 346 color: "" 347 } 348 } 349 350 // Translation Strings 351 window.themeVars.strings = { 352 accessibility: { 353 skipToContent: "Skip to content", 354 closeModal: "Close (esc)", 355 accessAccount: "Access Account Area", 356 toggleMenu: "Toggle menu", 357 close: "close", 358 }, 359 cart: { 360 myCart: "My cart", 361 basket: "Basket", 362 cartEmpty: "Your basket is currently empty.", 363 cartOpen: "Open cart", 364 cartClose: "Close cart", 365 viewBasket: "View Basket \u0026 Checkout", 366 continueShopping: "Continue Shopping", 367 checkout: "Checkout", 368 quantity: "Quantity", 369 remove: "Remove", 370 delivery: "Delivery", 371 free: "Calculated at Checkout", 372 bestDiscountApplied: "Discount applied", 373 subtotal: "Subtotal", 374 total: "Total", 375 cartUnderValue: "Your basket is under {{ value }}, keep shopping!", 376 loadUpYourBasket: "Load up your basket", 377 preOrder: "Pre-order", 378 preOrderShipDate: "This item will ship separately on: {{ date }}", 379 deliverNow: "Deliver Now", 380 equityDiscountApplied: "Your Discount Applied", 381 staffDiscountApplied: "Staff Discount Applied" 382 }, 383 localization: { 384 country_default: "country", 385 language_default: "language", 386 }, 387 collection: { 388 changeGrid: "Change grid", 389 loadMore: "Load more", 390 loadPrevious: "Load previous", 391 products: "Items", 392 refineBy: "Filters", 393 sortBy: "Sort:", 394 sortByManual: "Most Popular", 395 sortByTitleAsc: "Title, A-Z", 396 sortByTitleDesc: "Title, Z-A", 397 sortByPriceAsc: "Price, low to high", 398 sortByPriceDesc: "Price, high to low", 399 sortByCreatedAsc: "Date, old to new", 400 sortByCreatedDesc: "Date, new to old", 401 sortByBestSelling: "Best Selling", 402 filtersButton: "Filters \u0026amp; Sort", 403 applyFilters: "Apply filters", 404 clearFilters: "Clear filters", 405 showPromoBannerOne: true, 406 promoBannerOneTitle: "ð¦FREE DELIVERYð¦", 407 promoBannerOneText: "When you spend over £60", 408 showPromoBannerTwo: true, 409 promoBannerTwoTitle: "ð¦NEXT DAY DELIVERYð¦", 410 promoBannerTwoText: "Only £2.95 when you spend over £60", 411 promo_title: "", 412 promo_button_text: "", 413 promo_button_link: "", 414 promo_image: "//brewdog.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12.gif", 415 promo_position_horizontal: "center", 416 promo_position_vertical: "middle", 417 promo_text_color: "white", 418 promo_button_color: "black", 419 promo_grid_position: 12, 420 collectionHidePromoBanner1: false, 421 collectionHidePromoBanner2: false,
422 singleColumnLabel: "Switch grid to single column", 423 fourColumnsLabel: "Switch grid to four columns", 424 productCard: { 425 keyFeatures: "Key Features", 426 }, 427 promos: [] 428 }, 429 product: { 430 details: { 431 abv: "ABV", 432 style: "Style", 433 size: "Size", 434 hops: "Hops", 435 malts: "Malts", 436 colour: "Colour", 437 hoppyness: "Hoppyness", 438 bitterness: "Bitterness", 439 maltyness: "Maltyness", 440 tasteProfile: "Taste profile", 441 ingredients: "Ingredients", 442 brewSheet: "Brew sheet" 443 }, 444 price: { 445 regular: "Regular price", 446 sale: "Sale price", 447 onSale: "On sale", 448 soldOut: "Sold out", 449 priceRange: "Price range", 450 fromPriceHtml: "From {{ price }}" 451 }, 452 from: "From", 453 perCan: "per can", 454 btnOptions: "Quick Shop", 455 btnDetails: "See More", 456 btnPersonalise: "Personalise", 457 readMore: "Read More", 458 lockedTitle: "This product is exclusive to OG Punks", 459 lockedText: "to your OG Punk account to access this product", 460 logIn: "Log in", 461 signUp: " ", 462 logInLink: "/customer_authentication/login?return_to=/collections/shop-all-gifts", 463 maxQuantityReached: "You\u0026#39;ve reached the max quantity for", 464 signUpLink: "/customer_authentication/login?return_to=/collections/shop-all-gifts", 465 quickshopLabel: "Open quickshop for ", 466 linkLabel: "View details for ", 467 efpDiscount: "Your Discount Applied at Basket", 468 staffDiscount: "Staff Discount Applied at Basket", 469 selectQuantities: "Select your quantity", 470 pleaseSelectQuantity: "Please select your pack size", 471 addToCart: "Add to basket", 472 soldOut: "Sold out", 473 notifyMe: "Notify me", 474 notifyMeModalSuccess: "Success", 475 notifyMeModalError: "Already Registered", 476 notifyMeModalTitle: "Notify Me!", 477 notifyMeModalText: "If a product comes back in stock we will email you.", 478 notifyMeModalEmail: "Email", 479 notifyMeModalSubmit: "Notify Me", 480 notifyMeModalOption: "Option", 481 off: "off", 482 personaliseStepOne: "Choose Label", 483 personaliseStepTwo: "Add a Photo", 484 personaliseStepThree: "Add a Message", 485 pre_order: "Pre-order", 486 }, 487 search: { 488 noResults: "No results found for â{{terms}}â. Check the spelling or use a different word or phrase.", 489 noResultsFound: "No results found for ââ. Check the spelling or use a different word or phrase.", 490 searchPending: "Add a search term in the input above to search across our store", 491 loading: "Loading results, please wait...", 492 }, 493 freeShippingIndicator: { 494 spendMore: "Spend \u003cspan\u003e{{ amount }}\u003c\/span\u003e more to get Free Delivery*", 495 achievedFreeShipping: "You\u0026#39;ve achieved free delivery", 496 successMessage: "Good news! You\u0026#39;ve got free delivery" 497 }, 498 customer: { 499 restrictions: { 500 all: { 501 title: "This product is for BrewDog account holders.", 502 desc: "Please log-in or sign-up for access" 503 }, 504 efp: { 505 title: "This product is exclusive to OG Punks", 506 desc: "to your OG Punk account to access this product" 507 }, 508 pb: { 509 title: "This product is exclusive to Planet BrewDog Members.", 510 desc: "Please log-in or sign-up for access." 511 }, 512 efp_pb: { 513 title: "This product is exclusive to Equity Punks and Planet BrewDog Members.", 514 desc: "" 515 }, 516 default: { 517 title: "This product is exclusive to OG Punks", 518 desc: "to your OG Punk account to access this product" 519 } 520 } 521 } 522 }; 523 524 window.themeVars.booleans = { 525 product: { 526 527 beer_box: false, 528 529 } 530 } 531 532 // Store liquid variables 533 window.themeVars.store = { 534 permanent_domain: "b32dd2-83.myshopify.com", 535 currency: { 536 symbol: "£" 537 }, 538 template: "collection" 539 }; 540 541</script>
541 542 543 544 545<style data-shopify> 546 547 548 @font-face { 549 font-family: 'New Grotesk Four'; 550 src: url('https://cdn.shopify.com/s/files/1/0702/9738/7220/files/NewGroteskSquareFOURWEB.woff?v=1718809016') format('woff'); 551 font-weight: normal; 552 font-style: normal; 553 font-display: swap; 554 } 555 556 @font-face { 557 font-family: Inter; 558 font-weight: 400; 559 font-style: normal; 560 font-display: auto; 561 src: url("//brewdog.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"), 562 url("//brewdog.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff"); 563} 564 565 @font-face { 566 font-family: Inter; 567 font-weight: 700; 568 font-style: normal; 569 font-display: auto; 570 src: url("//brewdog.com/cdn/fonts/inter/inter_n7.02711e6b374660cfc7915d1afc1c204e633421e4.woff2") format("woff2"), 571 url("//brewdog.com/cdn/fonts/inter/inter_n7.6dab87426f6b8813070abd79972ceaf2f8d3b012.woff") format("woff"); 572} 573 574 @font-face { 575 font-family: Inter; 576 font-weight: 700; 577 font-style: normal; 578 font-display: auto; 579 src: url("//brewdog.com/cdn/fonts/inter/inter_n7.02711e6b374660cfc7915d1afc1c204e633421e4.woff2") format("woff2"), 580 url("//brewdog.com/cdn/fonts/inter/inter_n7.6dab87426f6b8813070abd79972ceaf2f8d3b012.woff") format("woff"); 581} 582 583 584 :root { 585 --text-font: Inter, sans-serif; 586 --heading-font: "New Grotesk Four", sans-serif; 587 --font-body-scale: 0.0; 588 --font-heading-scale: 0.0; 589 --color-white: rgb(255 255 255); 590 --color-grey-900: rgba(17, 17, 17, 1); 591 --color-grey-700: rgba(51, 51, 51, 1); 592 --color-grey-500: rgba(102, 102, 102, 1); 593 --color-grey-200: rgba(224, 222, 220, 1); 594 --color-grey-100: rgba(245, 245, 245, 1); 595 --color-blue-700: rgba(0, 128, 166, 1); 596 --color-blue-500: rgba(1, 167, 201, 1); 597 --color-blue-200: rgba(117, 201, 225, 1); 598 --color-blue-100: rgba(198, 240, 252, 1); 599 --color-orange-700: rgba(227, 125, 6, 1); 600 --color-orange-500: rgba(244, 155, 36, 1); 601 --color-orange-200: rgba(251, 186, 99, 1); 602 --color-orange-100: rgba(255, 219, 172, 1); 603 --color-error-700: rgba(194, 22, 50, 1); 604 --color-error-500: rgba(240, 68, 56, 1); 605 --color-error-200: rgba(254, 228, 226, 1); 606 --color-error-100: rgba(255, 216, 209, 1); 607 --color-success-700: rgba(2, 122, 72, 1); 608 --color-success-500: rgba(18, 183, 106, 1); 609 --color-success-200: rgba(209, 250, 223, 1); 610 --color-success-100: rgba(216, 242, 234, 1); 611 --color-100: rgba(102, 102, 102, 1); 612 613 --font-size-xs-body: 0.75rem; 614 --font-size-sm-body: 0.875rem; 615 --font-size-md-body: 1rem; 616 --font-size-lg-body: 1.125rem; 617 --font-size-heading-1: 3.5rem; 618 --font-size-heading-2: 2.625rem; 619 --font-size-heading-3: 2.375rem; 620 --font-size-heading-4: 1.75rem; 621 --font-size-heading-5: 1.125rem; 622 --font-size-mob-heading-1: 2.5rem; 623 --font-size-mob-heading-2: 2.25rem; 624 --font-size-mob-heading-3: 2rem; 625 --font-size-mob-heading-4: 1.625rem; 626 --font-size-mob-heading-5: 1rem; 627 628 --weight-light: 200; 629 --weight-book: 300; 630 --weight-regular: 400; 631 --weight-semi: 600; 632 --weight-bold: 700; 633 --weight-black: 800; 634 635 --spacing-80: 5rem; 636 --spacing-70: 4.375rem; 637 --spacing-64: 4rem; 638 --spacing-52: 3.25rem; 639 --spacing-44: 2.75rem; 640 --spacing-40: 2.5rem; 641 --spacing-32: 2rem; 642 --spacing-30: 1.875rem; 643 --spacing-28: 1.75rem; 644 --spacing-24: 1.5rem; 645 --spacing-22: 1.375rem; 646 --spacing-20: 1.25rem; 647 --spacing-16: 1rem; 648 --spacing-12: 0.75rem; 649 --spacing-10: 0.625rem; 650 --spacing-8: 0.5rem; 651 --spacing-4: 0.25rem; 652 --spacing-2: 0.125rem; 653 654 --layout-xs: 5rem; 655 --layout-s: 8rem; 656 --layout-m: 12rem; 657 --layout-l: 16rem; 658 --layout-xl: 24rem; 659 --layout-2xl: 32rem; 660 --layout-3xl: 64rem; 661 662 --screen-s: 480px; 663 --screen-m: 768px; 664 --screen-l: 960px; 665 --screen-xl: 1330px; 666 --screen-wide: 1920px; 667 668 --duration-short: 0.2s; 669 --duration-normal: 0.4s; 670 --duration-long: 0.8s; 671 672 --container-width: 90%; 673 --container-max-width: 1400px; 674 --container-small-max-width: 900px; 675 --container-margin: 0 auto; 676 677 --zindex-dropdown: 1000; 678 --zindex-sticky: 1020; 679 --zindex-fixed: 1030; 680 --zindex-modal-backdrop: 1040; 681 --zindex-modal: 1050; 682 --zindex-popover: 1060; 683 --zindex-tooltip: 1070; 684 685 --icon-chevron-down: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23666' viewB
685ox='0 0 12 12'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E"; 686 } 687 688 *, 689 *::before, 690 *::after { 691 box-sizing: inherit; 692 } 693 694 html { 695 box-sizing: border-box; 696 font-size: 16px; 697 height: 100%; 698 } 699 700 body { 701 min-height: 100%; 702 margin: 0; 703 background-color: var(--color-off-white) !important; 704 } 705 706 a { 707 text-transform: none; 708 text-decoration: none; 709 color: rgba(var(--color-link), 0.7); 710 transition: color 0.2s ease-in-out; 711 } 712 713 a:hover { 714 color: rgba(var(--color-link), 1); 715 transition: color 0.2s ease-in-out; 716 } 717</style> 718<link 719 rel="preload" 720 as="font" 721 href="//brewdog.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2" 722 type="font/woff2" 723 crossorigin 724 > 725 726 727
727<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
727<meta name="google-site-verification" content="ME7fuswkZf1q5tecvjLf3ZDhVbVU9sDU34eHXUBe8fw"> 728<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/82272813382/digital_wallets/dialog"> 729<meta id="in-context-paypal-metadata" data-shop-id="82272813382" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="GBP"> 730<link rel="alternate" type="application/atom+xml" title="Feed" href="/collections/shop-all-gifts.atom" /> 731<link rel="alternate" type="application/json+oembed" href="https://brewdog.com/collections/shop-all-gifts.oembed">
732<script async="async" src="/checkouts/internal/preloads.js?locale=en-GB&default_configuration_id=6490030406"></script>
732 733<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
734<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-GB&default_configuration_id=6490030406&shop_id=82272813382" crossorigin="anonymous"></script>
vendor: 1 bytes, line 734
734
735<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":82272813382,"countryCode":"GB","currencyCode":"GBP","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/82272813382","merchantName":"BrewDog","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","amex","discover","elo"],"total":{"type":"pending","label":"BrewDog","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 735
735
736<script id="shopify-features" type="application/json">{"accessToken":"009dd242c27de166a1faf5c464d591a8","betas":["rich-media-storefront-analytics"],"domain":"brewdog.com","predictiveSearch":true,"shopId":82272813382,"locale":"en"}</script>
vendor: 1 bytes, line 736
736
737<script>var Shopify = Shopify || {}; 738Shopify.shop = "b32dd2-83.myshopify.com"; 739Shopify.locale = "en"; 740Shopify.currency = {"active":"GBP","rate":"1.0"}; 741Shopify.country = "GB"; 742Shopify.theme = {"name":"brewdog-uk\/main","id":185229017414,"schema_name":"UWP FW4 Theme","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 743Shopify.theme.handle = "null"; 744Shopify.theme.style = {"id":null,"handle":null}; 745Shopify.cdnHost = "brewdog.com/cdn"; 746Shopify.routes = Shopify.routes || {}; 747Shopify.routes.root = "/"; 748Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 749Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 750Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 751Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 751
751
752<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 752
752
753<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 753
753
754<script> 755 window.ShopifyPay = window.ShopifyPay || {}; 756 window.ShopifyPay.apiHost = "shop.app\/pay"; 757 window.ShopifyPay.redirectState = null; 758</script>
vendor: 1 bytes, line 758
758
759<script> 760 window.Shopify = window.Shopify || {}; 761 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 762 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 763 window.Shopify.SignInWithShop.eligible = true; 764</script>
vendor: 1 bytes, line 764
764
765<script id="shop-js-analytics" type="application/json">{"pageType":"collection"}</script>
vendor: 1 bytes, line 765
765
766<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 766
766
767<script type="module"> 768 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 769 770 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 771 772</script>
vendor: 1 bytes, line 772
772
773<script> 774 window.Shopify = window.Shopify || {}; 775 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 776 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"]}; 777</script>
vendor: 1 bytes, line 777
777
778<script>(function() { 779 var isLoaded = false; 780 function asyncLoad() { 781 if (isLoaded) return; 782 isLoaded = true; 783 var urls = ["https:\/\/intg.snapchat.com\/shopify\/shopify-scevent-init.js?id=4fbc280f-dabf-4e2c-bdd8-e1517fadde6f\u0026shop=b32dd2-83.myshopify.com","https:\/\/d2fk970j0emtue.cloudfront.net\/shop\/js\/free-gift-cart-upsell-pro.min.js?shop=b32dd2-83.myshopify.com","https:\/\/dr4qe3ddw9y32.cloudfront.net\/awin-shopify-integration-code.js?aid=19216\u0026v=shopifyApp_5.1.5\u0026ts=1743430022262\u0026shop=b32dd2-83.myshopify.com"]; 784 for (var i = 0; i < urls.length; i++) { 785 var s = document.createElement('script'); 786 s.type = 'text/javascript'; 787 s.async = true; 788 s.src = urls[i]; 789 var x = document.getElementsByTagName('script')[0]; 790 x.parentNode.insertBefore(s, x); 791 } 792 }; 793 if(window.attachEvent) { 794 window.attachEvent('onload', asyncLoad); 795 } else { 796 window.addEventListener('load', asyncLoad, false); 797 } 798})();</script>
vendor: 1 bytes, line 798
798
799<script id="__st">var __st={"a":82272813382,"offset":3600,"reqid":"87939359-7e4f-45b8-b9c2-60da4e6041f7-1790239296","pageurl":"brewdog.com\/collections\/shop-all-gifts","u":"07a53e7fffb2","p":"collection","rtyp":"collection","rid":628219543878};</script>
vendor: 1 bytes, line 799
799
800<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 800
800
801<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 801
801
802<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//brewdog.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 802
802
803<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 = "//brewdog.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
803<script crossorigin="anonymous" defer="defer" src="//brewdog.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 803
803
804<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 804
804
805<script> 806 window.Shopify = window.Shopify || {}; 807 window.Shopify.MCP = window.Shopify.MCP || {}; 808 window.Shopify.MCP.enabled = true; 809 window.Shopify.MCP.shop = "b32dd2-83.myshopify.com"; 810 window.Shopify.MCP.mcpEndpoint = "https:\/\/brewdog.com\/api\/mcp"; 811 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 812</script>
vendor: 1 bytes, line 812
812
813<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("\/\/brewdog.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f1e1e155.js","sha256-86F2r\/8tANRiv732G7Azvy4FxZLwNMjSp3zeaR2BCbY=");})(); 814</script>
vendor: 1 bytes, line 814
814
815<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://brewdog.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 816</script>
vendor: 1 bytes, line 816
816
817<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 818 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); 819</script>
vendor: 1 bytes, line 819
819
820<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})}})); 821</script>
821 822<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://brewdog.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 823<style id="shopify-accelerated-checkout-cart"> 824 #shopify-buyer-consent { 825 margin-top: 1em; 826 display: inline-block; 827 width: 100%; 828} 829 830#shopify-buyer-consent.hidden { 831 display: none; 832} 833 834#shopify-subscription-policy-button { 835 background: none; 836 border: none; 837 padding: 0; 838 text-decoration: underline; 839 font-size: inherit; 840 cursor: pointer; 841} 842 843#shopify-subscription-policy-button::before { 844 box-shadow: none; 845} 846 847 </style> 848
849<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
849 850 851 852
852<script> 853 window.dataLayer = window.dataLayer || []; 854 855 function subscribeCookieListener(dataLayer) { 856 // Step to process information already existing in the datalayer 857 dataLayer.forEach(processDatalayerEvent) 858 859 // Set-up a "listener" 860 const originalPush = dataLayer.push; 861 dataLayer.push = function() { 862 originalPush.apply(dataLayer, arguments); 863 Array.from(arguments).forEach(processDatalayerEvent); 864 }; 865 866 } 867 868 subscribeCookieListener(window.dataLayer); 869 870 function processDatalayerEvent(event){ 871 if(event.event === "bre.cookie"){ 872 Shopify.analytics.publish("bre.cookie",event); 873 } 874 } 875</script>
875 876 877
878<script> 879 !function(e,n,t,i,r,o){function s(e){if("number"!=typeof e)return e;var n=new Date;return new Date(n.getTime()+1e3*e)}var a=4e3,c="xnpe_async_hide";function p(e){return e.reduce((function(e,n){return e[n]=function(){e._.push([n.toString(),arguments])},e}),{_:[]})}function m(e,n,t){var i=t.createElement(n);i.src=e;var r=t.getElementsByTagName(n)[0];return r.parentNode.insertBefore(i,r),i}function u(e){return"[object Date]"===Object.prototype.toString.call(e)}o.target=o.target||"https://api.exponea.com",o.file_path=o.file_path||o.target+"/js/exponea.min.js",r[n]=p(["anonymize","initialize","identify","getSegments","update","track","trackLink","trackEnhancedEcommerce","getHtml","showHtml","showBanner","showWebLayer","ping","getAbTest","loadDependency","getRecommendation","reloadWebLayers","_preInitialize","_initializeConfig"]),r[n].notifications=p(["isAvailable","isSubscribed","subscribe","unsubscribe"]),r[n].segments=p(["subscribe"]),r[n]["snippetVersion"]="v2.7.0",function(e,n,t){e[n]["_"+t]={},e[n]["_"+t].nowFn=Date.now,e[n]["_"+t].snippetStartTime=e[n]["_"+t].nowFn()}(r,n,"performance"),function(e,n,t,i,r,o){e[r]={sdk:e[i],sdkObjectName:i,skipExperiments:!!t.new_experiments,sign:t.token+"/"+(o.exec(n.cookie)||["","new"])[1],path:t.target}}(r,e,o,n,i,RegExp("__exponea_etc__"+"=([\\w-]+)")),function(e,n,t){m(e.file_path,n,t)}(o,t,e),function(e,n,t,i,r,o,p){if(e.new_experiments){!0===e.new_experiments&&(e.new_experiments={});var l,f=e.new_experiments.hide_class||c,_=e.new_experiments.timeout||a,g=encodeURIComponent(o.location.href.split("#")[0]);e.cookies&&e.cookies.expires&&("number"==typeof e.cookies.expires||u(e.cookies.expires)?l=s(e.cookies.expires):e.cookies.expires.tracking&&("number"==typeof e.cookies.expires.tracking||u(e.cookies.expires.tracking))&&(l=s(e.cookies.expires.tracking))),l&&l<new Date&&(l=void 0);var d=e.target+"/webxp/"+n+"/"+o[t].sign+"/modifications.min.js?http-referer="+g+"&timeout="+_+"ms"+(l?"&cookie-expires="+Math.floor(l.getTime()/1e3):"");"sync"===e.new_experiments.mode&&o.localStorage.getItem("__exponea__sync_modifications__")?function(e,n,t,i,r){t[r][n]="<"+n+' src="'+e+'"></'+n+">",i.writeln(t[r][n]),i.writeln("<"+n+">!"+r+".init && document.writeln("+r+"."+n+'.replace("/'+n+'/", "/'+n+'-async/").replace("><", " async><"))</'+n+">")}(d,n,o,p,t):function(e,n,t,i,r,o,s,a){o.documentElement.classList.add(e);var c=m(t,i,o);function p(){r[a].init||m(t.replace("/"+i+"/","/"+i+"-async/"),i,o)}function u(){o.documentElement.classList.remove(e)}c.onload=p,c.onerror=p,r.setTimeout(u,n),r[s]._revealPage=u}(f,_,d,n,o,p,r,t)}}(o,t,i,0,n,r,e),function(e,n,t){var i;e[n]._initializeConfig(t),(null===(i=t.experimental)||void 0===i?void 0:i.non_personalized_weblayers)&&e[n]._preInitialize(t),e[n].start=function(i){i&&Object.keys(i).forEac
879h((function(e){return t[e]=i[e]})),e[n].initialize(t)}}(r,n,o)}(document,"exponea","script","webxpClient",window,{ 880 target: "https://api.exponea.com", 881 token: "ea3bff42-5ee3-11ef-b39d-16571f73b836", 882 data_layer: true, 883 experimental: { 884 non_personalized_weblayers: true 885 }, 886 new_experiments: { mode: "sync" }, 887 track: { 888 visits: true, 889 google_analytics: false, 890 }, 891}); 892function getCookie(cname) { 893 var name = cname + "="; 894 var ca = document.cookie.split(';'); 895 var cookie = undefined; 896 for (var i = 0; i < ca.length; i++) { 897 var c = ca[i]; 898 while (c.charAt(0) == ' ') { 899 c = c.substring(1); 900 } 901 if (c.indexOf(name) == 0) { 902 cookie = c.substring(name.length, c.length); 903 break; 904 } 905 } 906 cookie = decodeURIComponent(cookie); 907 cookie = cookie.split('?')[0]; 908 return cookie; 909 } 910 var customer = {}; 911 var cart_id = getCookie('cart'); 912 if (cart_id) customer.cart_id = cart_id; 913 914 exponea.start({ 915 "customer": customer 916 }); 917</script>
917 918 919 920 921
922<script> 923(function() { 924 'use strict'; 925 926 // Global configuration 927 window.BrewDogBooking = window.BrewDogBooking || { 928 hasEmbeddedForm: false, 929 embeddedFormSelector: null, 930 initialized: false 931 }; 932 933 /** 934 * Detect if there's an embedded booking widget on the page 935 * Checks for common embedded widget containers 936 */ 937 function detectEmbeddedBookingForm() { 938 // Check for various embedded booking widget containers 939 const embeddedSelectors = [ 940 '[data-embedded="true"]', 941 '#dmn-embed-container', 942 '.bar-booking-embed__widget', 943 '.multi-venue-booking-embed__widget', 944 '[id^="dmn-embed-container-"]', 945 '[id^="dmn-multi-venue-container-"]', 946 '[id^="dmn-booking-embed-"]', 947 '[id^="embedded-widget-"]' 948 ]; 949 950 for (let selector of embeddedSelectors) { 951 const element = document.querySelector(selector); 952 if (element) { 953 console.log('â Embedded booking form detected:', selector); 954 window.BrewDogBooking.hasEmbeddedForm = true; 955 window.BrewDogBooking.embeddedFormSelector = selector; 956 return element; 957 } 958 } 959 960 console.log('â¹ï¸ No embedded booking form detected - will use popup modal'); 961 window.BrewDogBooking.hasEmbeddedForm = false; 962 return null; 963 } 964 965 /** 966 * Scroll to the embedded booking form smoothly 967 */ 968 function scrollToEmbeddedForm() { 969 const embeddedForm = document.querySelector(window.BrewDogBooking.embeddedFormSelector); 970 if (embeddedForm) { 971 console.log('ð Scrolling to embedded booking form'); 972 embeddedForm.scrollIntoView({ 973 behavior: 'smooth', 974 block: 'center' 975 }); 976 return true; 977 } 978 return false; 979 } 980 981 /** 982 * Initialize the global booking widget manager 983 */ 984 function init() { 985 if (window.BrewDogBooking.initialized) { 986 return; 987 } 988 989 console.log('ð¯ Initializing BrewDog Booking Widget Manager'); 990 991 // Detect embedded forms on page load 992 detectEmbeddedBookingForm(); 993 994 // Store the original openBookingWidget function if it exists 995 const originalOpenBookingWidget = window.openBookingWidget; 996 997 /** 998 * Global booking widget opener - smart routing 999 * This replaces/wraps the standard openBookingWidget function 1000 */ 1001 window.openBookingWidget = function(button) { 1002 const venueId = button.getAttribute('data-venue-id'); 1003 const storeId = button.getAttribute('data-store-id'); 1004 1005 console.log('ð Book button clicked', { 1006 venueId: venueId, 1007 storeId: storeId, 1008 hasEmbeddedForm: window.BrewDogBooking.hasEmbeddedForm 1009 }); 1010 1011 // If embedded form exists, scroll to it instead of opening popup 1012 if (window.BrewDogBooking.hasEmbeddedForm) { 1013 const scrolled = scrollToEmbeddedForm(); 1014 if (scrolled) { 1015 console.log('â Redirected to embedded form'); 1016 return; 1017 } 1018 } 1019 1020 // Otherwise, use the original popup behavior 1021 console.log('ðª Opening popup modal'); 1022 if (originalOpenBookingWidget) { 1023 originalOpenBookingWidget.call(this, button); 1024 } else { 1025 // Fallback to opening popup (call the setupWidget directly) 1026 openBookingPopup(button); 1027 } 1028 }; 1029 1030 window.BrewDogBooking.initialized = true; 1031 console.log('â BrewDog Booking Widget Manager initialized'); 1032 } 1033 1034 /** 1035 * Open the booking widget as a popup modal 1036 * This is the fallback/default behavior when no embedded form exists 1037 */ 1038 function openBookingPopup(button) { 1039 const venueId = button.getAttribute('data-venue-id'); 1040 const storeId = button.getAttribute('data-store-id'); 1041 const googleAnalyticsId = button.getAttribute('data-google-analytics-id') || 'G-362FWZ3P8G'; 1042 const baseReturnUrl = 'https://jmypzafsk8.execute-api.eu-west-2.amazonaws.com/default/send'; 1043 1044 if (!venueId) { 1045 console.error('â Missing venue_id'); 1046 return; 1047 } 1048 1049 console.log('ð¯ Opening booking popup for venue:', venueId); 1050 1051 // Capture GA4 parameters if available 1052 if (window.gtag) { 1053 const gaParams = {}; 1054 1055 gtag('get', googleAnalyticsId, 'client_id', function(clientId) { 1056 gaParams.client_id = clientId; 1057 1058 gtag('get', googleAnalyticsId, 'session_number', function(sessionNumber) { 1059 gaParams.session_number = sessionNumber || '1'; 1060 1061 gtag('get', googleAnalyticsId, 'campaign', function(campaign) { 1062 gaParams.campaign = campaign || ''; 1063 1064 gtag('get', googleAnalyticsId, 'medium', function(medium) { 1065 gaParams.medium = medium || ''; 1066 1067 gtag('get', googleAnalyticsId, 'source', function(source) { 1068 gaParams.traffic_source = source || ''; 1069 1070 gtag('get', googleAnalyticsId, 'currency', function(currency) { 1071 gaParams.currency = currency || ''; 1072 1073 const sessionId = Math.floor(Date.now() / 1000).toString(); 1074 1075 const params = new URLSearchParams({ 1076 ga_client_id: gaParams.client_id, 1077 ga_session_id: sessionId, 1078 ga_session_number: gaParams.session_number, 1079 campaign: gaParams.campaign, 1080 medium: gaParams.medium, 1081 traffic_source: gaParams.traffic_source, 1082 currency: gaParams.currency, 1083 page_location: window.location.href, 1084 page_title: document.title, 1085 page_referrer: document.referrer || '' 1086 }); 1087 1088 const finalReturnUrl = `${baseReturnUrl}?${params.toString()}`; 1089 const presetDate = button.getAttribute('data-preset-date'); 1090 setupPopupWidget(venueId, storeId, finalReturnUrl, googleAnalyticsId, presetDate); 1091 }); 1092 }); 1093 }); 1094 }); 1095 }); 1096 }); 1097 } else { 1098 const presetDate = button.getAttribute('data-preset-date'); 1099 setupPopupWidget(venueId, storeId, baseReturnUrl, googleAnalyticsId, presetDate); 1100 } 1101 } 1102 1103 /** 1104 * Setup the popup widget with DesignMyNight script 1105 */ 1106 function setupPopupWidget(venueId, storeId, returnUrl, googleAnalyticsId, presetDate) { 1107 const dmnWrapId = '#dmn-partner-widget'; 1108 const dmnScriptId = '#dmn-booking-widget-script'; 1109 1110 const existingScript = document.querySelector(dmnScriptId); 1111 if (existingScript) existingScript.remove(); 1112 1113 const existingWidget = document.querySelector(dmnWrapId); 1114 if (existingWidget) existingWidget.remove(); 1115 1116 const script = document.createElement('script');
1117 script.src = '//widgets.designmynight.com/bookings-partner.min.js'; 1118 script.id = dmnScriptId.substring(1); 1119 script.setAttribute('dmn-booking-form', 'true'); 1120 script.setAttribute('venue', venueId); 1121 script.setAttribute('ref', 'booking-widget'); 1122 script.setAttribute('show-type-first', 'false'); 1123 script.setAttribute('hide-powered-by', 'true'); 1124 script.setAttribute('return-url', returnUrl); 1125 if (googleAnalyticsId) script.setAttribute('google-analytics-code', googleAnalyticsId); 1126 1127 script.onload = function() { 1128 const widget = document.querySelector(dmnWrapId); 1129 if (widget) { 1130 widget.style.display = 'block'; 1131 if (!document.getElementById('dmn-widget-close-btn')) { 1132 const closeBtn = document.createElement('button'); 1133 closeBtn.id = 'dmn-widget-close-btn'; 1134 closeBtn.innerHTML = 'Ã'; 1135 closeBtn.onclick = window.closeBookingWidget; 1136 widget.appendChild(closeBtn); 1137 } 1138 showBackdrop(); 1139 1140 if (presetDate && window.DMN && window.DMN.BookingFormHelper) { 1141 setTimeout(function() { 1142 const w = window.DMN.BookingFormHelper.getWidgetByRef('booking-widget'); 1143 if (w) w.setDate(new Date(presetDate)); 1144 }, 100); 1145 } 1146 } 1147 }; 1148 1149 document.body.appendChild(script); 1150 setTimeout(function() { fireBookingStartedEvent(venueId, storeId); }, 1000); 1151 } 1152 1153 /** 1154 * Close the booking popup widget 1155 */ 1156 window.closeBookingWidget = function() { 1157 const widget = document.querySelector('#dmn-partner-widget'); 1158 if (widget) { 1159 widget.style.display = 'none'; 1160 1161 const closeBtn = document.getElementById('dmn-widget-close-btn'); 1162 if (closeBtn) { 1163 closeBtn.remove(); 1164 } 1165 } 1166 hideBackdrop(); 1167 }; 1168 1169 /** 1170 * Show the backdrop 1171 */ 1172 function showBackdrop() { 1173 let backdrop = document.getElementById('booking-backdrop'); 1174 if (!backdrop) { 1175 backdrop = document.createElement('div'); 1176 backdrop.id = 'booking-backdrop'; 1177 backdrop.style.cssText = 'display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:9998;'; 1178 document.body.appendChild(backdrop); 1179 } 1180 backdrop.style.display = 'block'; 1181 } 1182 1183 /** 1184 * Hide the backdrop 1185 */ 1186 function hideBackdrop() { 1187 const backdrop = document.getElementById('booking-backdrop'); 1188 if (backdrop) { 1189 backdrop.style.display = 'none'; 1190 } 1191 } 1192 1193 /** 1194 * Fire booking started tracking event 1195 */ 1196 function fireBookingStartedEvent(venueId, storeId) { 1197 console.log('ð Booking started', { venueId: venueId, storeId: storeId }); 1198 1199 window.dataLayer = window.dataLayer || []; 1200 window.dataLayer.push({ 1201 event: 'booking_started', 1202 url: window.location.href, 1203 store_id: storeId, 1204 dmn_venue_id: venueId 1205 }); 1206 1207 if (window.analytics && typeof window.analytics.track === 'function') { 1208 window.analytics.track('booking_started', { 1209 url: window.location.href, 1210 store_id: storeId, 1211 dmn_venue_id: venueId 1212 }); 1213 } 1214 } 1215 1216 // Close widget on backdrop click 1217 document.addEventListener('click', function(e) { 1218 if (e.target && e.target.id === 'booking-backdrop') { 1219 window.closeBookingWidget(); 1220 } 1221 }); 1222 1223 // Close widget on ESC key 1224 document.addEventListener('keydown', function(e) { 1225 if (e.key === 'Escape' || e.key === 'Esc') { 1226 const widget = document.querySelector('#dmn-partner-widget'); 1227 if (widget && widget.style.display === 'block') { 1228 window.closeBookingWidget(); 1229 } 1230 } 1231 }); 1232 1233 // Initialize when DOM is ready 1234 if (document.readyState === 'loading') { 1235 document.addEventListener('DOMContentLoaded', init); 1236 } else { 1237 init(); 1238 } 1239 1240 // Re-check for embedded forms after a delay (in case they load asynchronously) 1241 setTimeout(function() { 1242 if (!window.BrewDogBooking.hasEmbeddedForm) { 1243 detectEmbeddedBookingForm(); 1244 } 1245 }, 1000); 1246 1247})(); 1248</script>
1248 1249 1250<style> 1251 /* Global backdrop styling */ 1252 #booking-backdrop { 1253 display: none; 1254 position: fixed; 1255 top: 0; 1256 left: 0; 1257 width: 100%; 1258 height: 100%; 1259 background: rgba(0, 0, 0, 0.5); 1260 z-index: 9998; 1261 cursor: pointer; 1262 } 1263 1264 /* Global widget popup styling */ 1265 #dmn-partner-widget { 1266 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; 1267 font-size: 14px; 1268 width: 90%; 1269 max-width: 420px; 1270 max-height: 85vh; 1271 -webkit-font-smoothing: antialiased; 1272 -moz-osx-font-smoothing: grayscale; 1273 color: #000; 1274 line-height: 1.5; 1275 display: none; 1276 position: fixed; 1277 top: 50%; 1278 left: 50%; 1279 z-index: 10000; 1280 transform: translate(-50%, -50%); 1281 padding: 1rem; 1282 padding-top: 2.5rem; 1283 background: #fff; 1284 border: none; 1285 border-radius: 16px; 1286 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); 1287 overflow-y: auto; 1288 overflow-x: hidden; 1289 } 1290 1291 /* Close button */ 1292 #dmn-widget-close-btn, 1293 #dmn-partner-widget #dmn-widget-close-btn { 1294 position: absolute !important; 1295 top: 0.75rem !important; 1296 right: 0.75rem !important; 1297 width: 36px !important; 1298 height: 36px !important; 1299 min-width: 36px !important; 1300 max-width: 36px !important; 1301 background: #000 !important; 1302 border: 2px solid #000 !important; 1303 border-radius: 50% !important; 1304 color: #fff !important; 1305 font-size: 1.5rem !important; 1306 line-height: 1 !important; 1307 cursor: pointer !important; 1308 display: flex !important; 1309 align-items: center !important; 1310 justify-content: center !important; 1311 z-index: 10001 !important; 1312 padding: 0 0 3px 0 !important; 1313 text-transform: none !important; 1314 letter-spacing: 0 !important; 1315 } 1316 1317 #dmn-widget-close-btn:hover, 1318 #dmn-partner-widget #dmn-widget-close-btn:hover { 1319 background: #333 !important; 1320 } 1321 1322 /* Make widget responsive on mobile */ 1323 @media (max-width: 480px) { 1324 #dmn-partner-widget { 1325 width: 95%; 1326 max-width: none; 1327 padding: 1rem; 1328 padding-top: 2.5rem; 1329 } 1330 } 1331</style> 1332 1333 1334 1335<style> 1336 /* Global font family */ 1337 #dmn-partner-widget * { 1338 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; 1339 } 1340 1341 #dmn-partner-widget .footer { 1342 display: none !important; 1343 } 1344 1345 /* Buttons */ 1346 #dmn-partner-widget button, 1347 #dmn-partner-widget .button { 1348 font-family: 'Inter', sans-serif !important; 1349 box-sizing: border-box; 1350 padding: 0.625rem 1rem; 1351 border: 2px solid #000; 1352 background-color: #000; 1353 color: #fff; 1354 border-radius: 12px; 1355 outline: 0; 1356 cursor: pointer; 1357 font-weight: 400 !important; 1358 text-transform: uppercase; 1359 letter-spacing: 0.5px; 1360 width: 100%; 1361 font-size: 0.9375rem !important; 1362 } 1363 1364 #dmn-partner-widget button:hover, 1365 #dmn-partner-widget .button:hover { 1366 background-color: #333; 1367 } 1368 1369 /* Widget inner container */ 1370 #dmn-partner-widget #dmn-widget-inner { 1371 border: none; 1372 background-color: #f9f9f2 !important; 1373 border-radius: 0; 1374 height: auto !important; 1375 min-height: auto !important; 1376 max-height: none !important; 1377 overflow: visible !important; 1378 box-shadow: none; 1379 position: relative; 1380 padding: 0; 1381 } 1382 1383 /* Popup container - border and background (embedded sections override these) */ 1384 #dmn-partner-widget { 1385 border: 2px solid #000 !important; 1386 background-color: #f9f9f2 !important; 1387 scrollbar-width: thin; 1388 scrollbar-color: #ccc transparent; 1389 } 1390 1391 #dmn-partner-widget::-webkit-scrollbar {
1392 width: 6px; 1393 } 1394 1395 #dmn-partner-widget::-webkit-scrollbar-track { 1396 background: transparent; 1397 } 1398 1399 #dmn-partner-widget::-webkit-scrollbar-thumb { 1400 background-color: #ccc; 1401 border-radius: 3px; 1402 } 1403 1404 #dmn-partner-widget::-webkit-scrollbar-thumb:hover { 1405 background-color: #999; 1406 } 1407 1408 /* Stages */ 1409 #dmn-partner-widget #dmn-widget-inner .stage, 1410 #dmn-partner-widget #dmn-widget-inner .stage[style], 1411 #dmn-partner-widget .stage[data-stage] { 1412 position: relative; 1413 background-color: #f9f9f2 !important; 1414 padding: 0; 1415 margin-top: 0 !important; 1416 } 1417 1418 /* Form fieldsets */ 1419 #dmn-partner-widget .detail-stage fieldset { 1420 border: 0; 1421 padding: 0; 1422 margin: 0.375rem 0; 1423 } 1424 1425 /* Form inputs */ 1426 #dmn-partner-widget .detail-stage fieldset input, 1427 #dmn-partner-widget .detail-stage fieldset textarea, 1428 #dmn-partner-widget .detail-stage fieldset select { 1429 -webkit-appearance: none; 1430 width: 100% !important; 1431 font-size: 0.875rem; 1432 padding: 0.625rem 0.75rem; 1433 box-sizing: border-box; 1434 border: 2px solid #000; 1435 background-color: #fff; 1436 color: #000; 1437 border-radius: 12px; 1438 outline: 0; 1439 font-weight: 500; 1440 transition: all 0.2s ease; 1441 } 1442 1443 #dmn-partner-widget .detail-stage fieldset input:focus, 1444 #dmn-partner-widget .detail-stage fieldset textarea:focus, 1445 #dmn-partner-widget .detail-stage fieldset select:focus { 1446 border-color: #000; 1447 outline: 2px solid #000; 1448 outline-offset: 2px; 1449 } 1450 1451 /* Labels */ 1452 #dmn-partner-widget label, 1453 #dmn-partner-widget .stage label, 1454 #dmn-partner-widget .detail-stage label, 1455 #dmn-partner-widget .detail-stage fieldset label { 1456 display: none !important; 1457 } 1458 1459 #dmn-partner-widget .number-people-dropdown-facade { 1460 display: none !important; 1461 } 1462 1463 /* Show labels for specific fields */ 1464 #dmn-partner-widget .detail-stage fieldset label[for="email"], 1465 #dmn-partner-widget .detail-stage fieldset label[for="first_name"], 1466 #dmn-partner-widget .detail-stage fieldset label[for="last_name"], 1467 #dmn-partner-widget .detail-stage fieldset label[for="phone"], 1468 #dmn-partner-widget label[for="email"], 1469 #dmn-partner-widget label[for="first_name"], 1470 #dmn-partner-widget label[for="last_name"], 1471 #dmn-partner-widget label[for="phone"] { 1472 font-weight: 700; 1473 display: block !important; 1474 color: #000; 1475 padding: 0.5rem 0; 1476 text-align: left; 1477 text-transform: uppercase; 1478 font-size: 0.75rem; 1479 letter-spacing: 0.5px; 1480 } 1481 1482 /* Primary submit buttons */ 1483 #dmn-partner-widget .detail-stage fieldset .button.button--primary, 1484 #dmn-partner-widget .detail-stage fieldset .button.submit-form-button { 1485 background-color: #000; 1486 color: #fff; 1487 border: 2px solid #000; 1488 font-weight: 400 !important; 1489 padding: 1rem 2rem; 1490 font-size: 1.0625rem !important; 1491 width: 100%; 1492 margin-top: 1rem; 1493 } 1494 1495 #dmn-partner-widget .detail-stage fieldset .button.button--primary:hover, 1496 #dmn-partner-widget .detail-stage fieldset .button.submit-form-button:hover { 1497 background-color: #333; 1498 } 1499 1500 /* List slots (venue items, time slots, etc.) */ 1501 #dmn-partner-widget .list-slot { 1502 border: 2px solid #000; 1503 border-bottom: 2px solid #000; 1504 box-sizing: border-box; 1505 padding: 0.5rem 2.5rem 0.5rem 0.75rem; 1506 margin: 0.25rem 0; 1507 border-radius: 12px; 1508 position: relative; 1509 background-color: #fff; 1510 min-height: auto; 1511 cursor: pointer; 1512 transition: all 0.2s ease; 1513 width: 100%; 1514 font-size: 0.75rem; 1515 } 1516 1517 #dmn-partner-widget .list-slot:hover { 1518 background-color: #f5f5f5; 1519 } 1520 1521 #dmn-partner-widget .list-slot .list-slot__title { 1522 font-weight: 700; 1523 font-size: 1rem; 1524 color: #000 !important; 1525 text-transform: uppercase; 1526 letter-spacing: 0.5px; 1527 } 1528 1529 #dmn-partner-widget .list-slot .list-slot__arrow { 1530 position: absolute !important; 1531 right: 0.75rem !important; 1532 top: 50% !important; 1533 transform: translateY(-50%) !important; 1534 } 1535 1536 #dmn-partner-widget .list-slot .list-slot__subtitle { 1537 color: #666 !important; 1538 font-size: 0.6875rem; 1539 } 1540 1541 /* Disabled list slots - hidden (unavailable booking types are not shown) */ 1542 #dmn-partner-widget .list-slot.list-slot--disabled { 1543 display: none !important; 1544 } 1545 1546 /* Time selection - two column layout */ 1547 #dmn-partner-widget .time-header { 1548 display: flex !important; 1549 flex-direction: row !important; 1550 gap: 1rem; 1551 margin-bottom: 0.5rem; 1552 border-bottom: 1px solid #e5e5e5; 1553 padding-bottom: 0.5rem; 1554 } 1555 1556 #dmn-partner-widget .time-header > div { 1557 flex: 1; 1558 font-weight: 700; 1559 font-size: 0.6875rem; 1560 text-transform: uppercase; 1561 letter-spacing: 0.5px; 1562 color: #666; 1563 } 1564 1565 #dmn-partner-widget .time-selection-columns { 1566 display: flex !important; 1567 flex-direction: row !important; 1568 gap: 1rem; 1569 } 1570 1571 #dmn-partner-widget .time-selection-columns > div { 1572 flex: 1; 1573 overflow: visible; 1574 } 1575 1576 #dmn-partner-widget .time-selection-columns .from-list, 1577 #dmn-partner-widget .time-selection-columns .to-list, 1578 #dmn-partner-widget .time-selection-columns .scroll-height { 1579 flex: 1; 1580 display: flex !important; 1581 flex-direction: column !important; 1582 flex-wrap: nowrap !important; 1583 max-height: 320px !important; 1584 overflow-y: auto !important; 1585 overflow-x: hidden; 1586 } 1587 1588 #dmn-partner-widget .time-selection-columns .to-list:empty::after, 1589 #dmn-partner-widget .time-selection-columns > div:last-child:not(.from-list) { 1590 display: flex; 1591 align-items: center; 1592 justify-content: center; 1593 background-color: #f5f5f5; 1594 border-radius: 12px; 1595 min-height: 150px; 1596 color: #999; 1597 font-size: 0.75rem; 1598 text-align: center; 1599 padding: 1rem; 1600 } 1601 1602 #dmn-partner-widget .time-selection-columns .list-slot { 1603 padding: 0.5rem; 1604 margin: 0.25rem 0; 1605 font-size: 0.75rem; 1606 width: 100% !important; 1607 flex-shrink: 0; 1608 } 1609 1610 #dmn-partner-widget .time-selection-columns .list-slot .list-slot__title { 1611 font-size: 0.875rem; 1612 font-weight: 700; 1613 } 1614 1615 #dmn-partner-widget .time-selection-columns .list-slot .list-slot__subtitle { 1616 font-size: 0.625rem; 1617 } 1618 1619 /* Edit and Change buttons */ 1620 #dmn-partner-widget .dropdown__edit-btn { 1621 margin-left: 0.75rem !important; 1622 cursor: pointer !important; 1623 } 1624 1625 #dmn-partner-widget a { 1626 cursor: pointer !important; 1627 } 1628 1629 #dmn-partner-widget #dmn-widget-inner strong, 1630 #dmn-partner-widget #dmn-widget-inner b { 1631 cursor: pointer; 1632 } 1633 1634 #dmn-partner-widget .list-slot * { 1635 color: #000 !important; 1636 } 1637 1638 /* Dropdowns - General */ 1639 #dmn-partner-widget .dropdown { 1640 border: 2px solid #000; 1641 background-color: #fff; 1642 padding: 0.625rem 0.75rem; 1643 margin: 0.375rem 0; 1644 border-radius: 12px; 1645 width: 100%; 1646 box-sizing: border-box; 1647 font-size: 0.875rem; 1648 } 1649 1650 /* Stage header (SELECT GROUP NUMBER & DATE BELOW) - plain text, not a button */ 1651 #dmn-partner-widget .stage .dropdown { 1652 height: auto; 1653 min-height: auto; 1654 background-color: transparent !important; 1655 color: #000 !important; 1656 border: none !important; 1657 display: flex; 1658 align-items: center; 1659 padding: 0 !important; 1660 border-radius: 0 !important; 1661 width: 100%; 1662 max-width: 100%; 1663 box-sizing: border-box; 1664 margin-bottom: 0.5rem; 1665 font-size: 0.875rem; 1666 } 1667 1668 #dmn-partner-widget .stage .dropdown .dropdown__title { 1669 color: #000 !important; 1670 text-transform: uppercase; 1671 font-weight: 700 !important; 1672 letter-spacing: 1px; 1673 margin-left: 0.5rem; 1674 font-size: 0.875rem !important; 1675 } 1676 1677 #dmn-partner-widget .stage .dropdown * { 1678 color: #000 !important; 1679 } 1680 1681 #dmn-partner-widget .stage .dropdown svg { 1682 flex-shrink: 0; 1683 margin-right: 0.25rem; 1684 } 1685 1686 #dmn-partner-widget .stage .dropdown svg path { 1687 fill: #000 !important; 1688 stroke: #000 !important; 1689 } 1690 1691 /* Close/Back buttons */ 1692 #dmn-partner-widget .modal__inner .modal__header .btn, 1693 #dmn-partner-widget .dropdown__edit-btn, 1694 #dmn-partner-widget .button--no-outline { 1695 background: transparent !important; 1696 border: 2px solid #000 !important; 1697 color: #000 !important; 1698 font-weight: 700; 1699 font-size: 1rem; 1700 width: auto !important; 1701 padding: 0.5rem 1rem !important; 1702 border-radius: 16px !important; 1703 } 1704 1705 /* Dropdown arrows */ 1706 #dmn-partner-widget .dropdown__icon svg path, 1707 #dmn-partner-widget svg path { 1708 fill: #000 !important; 1709 stroke: #000 !important; 1710 } 1711 1712 /* Quick date buttons (TODAY, TOMORROW) */ 1713 #dmn-partner-widget .date-selector .date-selector__quick-buttons { 1714 display: flex; 1715 gap: 0.5rem; 1716 margin: 1rem 0; 1717 } 1718 1719 #dmn-partner-widget .date-selector .date-selector__quick-buttons button { 1720 flex: 1; 1721 padding: 0.75rem 1rem !important; 1722 border: 2px solid #000 !important; 1723 background-color: transparent !important; 1724 color: #000 !important; 1725 border-radius: 16px !important; 1726 font-weight: 400 !important; 1727 text-transform: uppercase !important; 1728 cursor: pointer !important; 1729 } 1730 1731 #dmn-partner-widget .date-selector .date-selector__quick-buttons button:hover { 1732 background-color: #000 !important; 1733 color: #fff !important; 1734 } 1735 1736 /* Calendar styling */ 1737 #dmn-partner-widget .vdp-datepicker .vdp-datepicker__calendar { 1738 background-color: #fff; 1739 border: 2px solid #000; 1740 border-radius: 12px; 1741 padding: 0.5rem; 1742 width: 100%; 1743 box-sizing: border-box; 1744 } 1745 1746 #dmn-partner-widget .vdp-datepicker .vdp-datepicker__calendar .cell { 1747 border-radius: 12px; 1748 font-weight: 600; 1749 } 1750 1751 /* Number of people dropdown */ 1752 #dmn-partner-widget .number-people-dropdown select, 1753 #dmn-partner-widget select { 1754 width: 100% !important; 1755 padding: 0.75rem 1rem; 1756 border: 2px solid #000; 1757 border-radius: 16px; 1758 background-color: #fff; 1759 font-weight: 500; 1760 cursor: pointer; 1761 } 1762
1763 /* Ensure all containers are full width */ 1764 #dmn-partner-widget .stage .content, 1765 #dmn-partner-widget .stage .scroll-height, 1766 #dmn-partner-widget form, 1767 #dmn-partner-widget fieldset { 1768 width: 100%; 1769 box-sizing: border-box; 1770 } 1771 1772 #dmn-partner-widget .contents { 1773 padding: 0.75rem; 1774 min-height: auto !important; 1775 height: auto !important; 1776 } 1777 1778 #dmn-partner-widget .contents.contents--padded-interior, 1779 #dmn-partner-widget .contents { 1780 padding: 0.5rem; 1781 } 1782 1783 #dmn-partner-widget .scroll-height { 1784 max-height: none !important; 1785 height: auto !important; 1786 overflow: visible !important; 1787 } 1788 1789 /* Ensure all text is visible */ 1790 #dmn-partner-widget { 1791 color: #000 !important; 1792 } 1793 1794 #dmn-partner-widget p, 1795 #dmn-partner-widget span, 1796 #dmn-partner-widget div, 1797 #dmn-partner-widget label { 1798 color: #000 !important; 1799 } 1800 1801 /* Calendar text */ 1802 #dmn-partner-widget .vdp-datepicker .vdp-datepicker__calendar .cell { 1803 color: #000 !important; 1804 } 1805 1806 #dmn-partner-widget .vdp-datepicker .vdp-datepicker__calendar .cell.disabled { 1807 color: #ccc !important; 1808 } 1809 1810 #dmn-partner-widget .vdp-datepicker .vdp-datepicker__calendar .cell.selected { 1811 background-color: #000 !important; 1812 color: #fff !important; 1813 } 1814 1815 /* Clickable elements - cursor pointer */ 1816 #dmn-partner-widget .dropdown span, 1817 #dmn-partner-widget .dropdown__edit-btn, 1818 #dmn-partner-widget .stage .dropdown span, 1819 #dmn-partner-widget a { 1820 cursor: pointer !important; 1821 } 1822 1823 /* Offers section - icon + title + see offers on one line */ 1824 #dmn-partner-widget .offers-header { 1825 display: flex !important; 1826 flex-direction: row !important; 1827 align-items: center !important; 1828 gap: 0.5rem !important; 1829 } 1830 1831 #dmn-partner-widget .offers-list { 1832 margin: 0.5rem 0 !important; 1833 } 1834 1835 #dmn-partner-widget .offers-header, 1836 #dmn-partner-widget .show-offers, 1837 #dmn-partner-widget .hide-offers { 1838 cursor: pointer !important; 1839 font-weight: 600 !important; 1840 text-decoration: underline !important; 1841 } 1842 1843 #dmn-partner-widget .offers-header:hover, 1844 #dmn-partner-widget .show-offers:hover, 1845 #dmn-partner-widget .hide-offers:hover { 1846 opacity: 0.7 !important; 1847 } 1848 1849 /* Individual offer slots */ 1850 #dmn-partner-widget .offer-slot { 1851 border: 2px solid #000 !important; 1852 border-radius: 12px !important; 1853 padding: 1rem !important; 1854 margin: 0.5rem 0 !important; 1855 background: #fff !important; 1856 cursor: pointer !important; 1857 transition: all 0.2s ease !important; 1858 } 1859 1860 #dmn-partner-widget .offer-slot:hover { 1861 background: #f5f5f5 !important; 1862 } 1863 1864 #dmn-partner-widget .offer-slot__title { 1865 font-weight: 700 !important; 1866 font-size: 0.875rem !important; 1867 text-transform: uppercase !important; 1868 letter-spacing: 0.5px !important; 1869 margin-bottom: 0.25rem !important; 1870 } 1871 1872 #dmn-partner-widget .offer-slot__description { 1873 font-size: 0.8125rem !important; 1874 color: #666 !important; 1875 line-height: 1.4 !important; 1876 } 1877 1878 #dmn-partner-widget .offer-slot__details { 1879 font-size: 0.75rem !important; 1880 color: #999 !important; 1881 margin-top: 0.5rem !important; 1882 } 1883 1884 /* List slots - venue items */ 1885 #dmn-partner-widget .list-slot * { 1886 color: #000 !important; 1887 } 1888 1889 /* Edit buttons */ 1890 #dmn-partner-widget #dmn-widget-inner strong, 1891 #dmn-partner-widget #dmn-widget-inner b { 1892 cursor: pointer; 1893 } 1894 1895 /* Dropdowns - General */ 1896 #dmn-partner-widget .dropdown { 1897 border: 2px solid #000; 1898 background-color: #fff; 1899 padding: 0.625rem 0.75rem; 1900 margin: 0.375rem 0; 1901 border-radius: 12px; 1902 width: 100%; 1903 box-sizing: border-box; 1904 font-size: 0.875rem; 1905 } 1906 1907 /* Stage header (SELECT GROUP NUMBER & DATE BELOW) - plain text, not a button */ 1908 #dmn-partner-widget .stage .dropdown { 1909 height: auto; 1910 min-height: auto; 1911 background-color: transparent !important; 1912 color: #000 !important; 1913 border: none !important; 1914 display: flex; 1915 align-items: center; 1916 padding: 0 !important; 1917 border-radius: 0 !important; 1918 width: 100%; 1919 max-width: 100%; 1920 box-sizing: border-box; 1921 margin-bottom: 0.5rem; 1922 font-size: 0.875rem; 1923 } 1924 1925 #dmn-partner-widget .stage .dropdown .dropdown__title { 1926 color: #000 !important; 1927 text-transform: uppercase; 1928 font-weight: 700 !important; 1929 letter-spacing: 1px; 1930 margin-left: 0.5rem; 1931 font-size: 0.875rem !important; 1932 } 1933 1934 #dmn-partner-widget .stage .dropdown * { 1935 color: #000 !important; 1936 } 1937 1938 #dmn-partner-widget .stage .dropdown svg { 1939 flex-shrink: 0; 1940 margin-right: 0.25rem; 1941 } 1942 1943 #dmn-partner-widget .stage .dropdown svg path { 1944 fill: #000 !important; 1945 stroke: #000 !important; 1946 } 1947 1948 /* Time slot items in time picker */ 1949 #dmn-partner-widget .time-selection-columns .list-slot { 1950 padding: 0.5rem; 1951 margin: 0.25rem 0; 1952 font-size: 0.75rem; 1953 width: 100% !important; 1954 flex-shrink: 0; 1955 } 1956 1957 #dmn-partner-widget .time-selection-columns .list-slot .list-slot__title { 1958 font-size: 0.875rem; 1959 font-weight: 700; 1960 } 1961 1962 #dmn-partner-widget .time-selection-columns .list-slot .list-slot__subtitle { 1963 font-size: 0.625rem; 1964 } 1965</style> 1966
1967<script> 1968 1969(function() { 1970 'use strict'; 1971 1972 function hideDMNDisabledSlots(root) { 1973 var slots = (root || document).querySelectorAll('.list-slot.list-slot--disabled'); 1974 slots.forEach(function(slot) { 1975 slot.style.display = 'none'; 1976 }); 1977 } 1978 1979 // Fix stage dropdown: DMN sets inline styles making text white â override them directly 1980 function fixStageDropdown(root) { 1981 var dropdowns = (root || document).querySelectorAll('#dmn-partner-widget .stage .dropdown'); 1982 dropdowns.forEach(function(el) { 1983 el.style.setProperty('color', '#000', 'important'); 1984 el.style.setProperty('background-color', 'transparent', 'important'); 1985 el.style.setProperty('border', 'none', 'important'); 1986 el.style.setProperty('padding', '0', 'important'); 1987 el.style.setProperty('border-radius', '0', 'important'); 1988 // Fix all child elements too 1989 el.querySelectorAll('*').forEach(function(child) { 1990 child.style.setProperty('color', '#000', 'important'); 1991 }); 1992 el.querySelectorAll('svg path').forEach(function(path) { 1993 path.style.setProperty('fill', '#000', 'important'); 1994 path.style.setProperty('stroke', '#000', 'important'); 1995 }); 1996 }); 1997 } 1998 1999 // Fix offers section: .offers-header is the container â make it a flex row 2000 function fixOffersInline(root) { 2001 var ctx = root || document; 2002 ctx.querySelectorAll('#dmn-partner-widget .offers-header').forEach(function(el) { 2003 el.style.setProperty('display', 'flex', 'important'); 2004 el.style.setProperty('flex-direction', 'row', 'important'); 2005 el.style.setProperty('align-items', 'center', 'important'); 2006 el.style.setProperty('gap', '0.5rem', 'important'); 2007 }); 2008 } 2009 2010 // Fix time selection columns: cap height and make scrollable 2011 function fixTimeScroll(root) { 2012 var ctx = root || document; 2013 var selectors = [ 2014 '#dmn-partner-widget .time-selection-columns .from-list', 2015 '#dmn-partner-widget .time-selection-columns .to-list', 2016 '#dmn-partner-widget .time-selection-columns .scroll-height' 2017 ]; 2018 selectors.forEach(function(sel) { 2019 ctx.querySelectorAll(sel).forEach(function(el) { 2020 el.style.setProperty('max-height', '320px', 'important'); 2021 el.style.setProperty('overflow-y', 'auto', 'important'); 2022 el.style.setProperty('overflow-x', 'hidden', 'important'); 2023 }); 2024 }); 2025 } 2026 2027 // Debounce: batch up rapid-fire mutations to avoid interfering with DMN's own rendering 2028 var dmnFixTimer = null; 2029 var pendingHideNodes = []; 2030 2031 var observer = new MutationObserver(function(mutations) { 2032 mutations.forEach(function(mutation) { 2033 mutation.addedNodes.forEach(function(node) { 2034 if (node.nodeType !== 1) return; 2035 // Hide disabled slots immediately â purely additive, safe to do inline 2036 if (node.classList && node.classList.contains('list-slot') && node.classList.contains('list-slot--disabled')) { 2037 node.style.display = 'none'; 2038 } 2039 if (node.querySelectorAll) { 2040 node.querySelectorAll('.list-slot.list-slot--disabled').forEach(function(slot) { 2041 slot.style.display = 'none'; 2042 }); 2043 } 2044 // Queue a debounced fix for style overrides â don't call mid-render 2045 var isInDMN = node.id === 'dmn-partner-widget' || 2046 (node.querySelector && node.querySelector('#dmn-partner-widget')) || 2047 (node.closest && node.closest('#dmn-partner-widget')); 2048 if (isInDMN) { 2049 if (dmnFixTimer) clearTimeout(dmnFixTimer); 2050 dmnFixTimer = setTimeout(function() { 2051 fixStageDropdown(); 2052 fixOffersInline(); 2053 fixTimeScroll(); 2054 dmnFixTimer = null; 2055 }, 150); 2056 } 2057 }); 2058 }); 2059 }); 2060 2061 function startObserver() { 2062 hideDMNDisabledSlots(); 2063 fixStageDropdown(); 2064 fixOffersInline(); 2065 fixTimeScroll(); 2066 observer.observe(document.body, { childList: true, subtree: true }); 2067 } 2068 2069 if (document.readyState === 'loading') { 2070 document.addEventListener('DOMContentLoaded', startObserver); 2071 } else { 2072 startObserver(); 2073 } 2074})(); 2075</script>
2075 2076 2077 2078 2079<style id="efp-member-badge-og-punks-override"> 2080 .efp-member-badge { 2081 background-color: #c8ecfa !important; 2082 padding: 0px 0px; 2083 overflow:hidden; 2084 max-height:50px; 2085 } 2086 2087 .efp-member-badge::after { 2088 content: ""; 2089 display: inline-block; 2090 flex-shrink: 0; 2091 width: 60px; 2092 height: 60px; 2093 margin-inline-start: 0.25rem; 2094 vertical-align: middle; 2095 background: url("https://cdn.shopify.com/s/files/1/0822/7281/3382/files/og.svg?v=1778671809") 2096 no-repeat center / contain; 2097 } 2098 2099 /* Product lock: hide SVG padlock (Liquid renders <svg>; cards use <span>â¦</span>) */ 2100 .product-lock__content > svg, 2101 .product-lock__content > span:first-child { 2102 display: none !important; 2103 } 2104 2105 /* OG mark beside copy */ 2106 .product-lock__content { 2107 background-color: #c8ecfa !important; 2108 display: grid !important; 2109 grid-template-columns: auto 1fr; 2110 grid-template-rows: auto; 2111 align-items: center; 2112 column-gap: var(--spacing-16); 2113 } 2114 2115 .product-lock__content::after { 2116 content: ""; 2117 grid-column: 1; 2118 grid-row: 1; 2119 width: 60px; 2120 height: 60px; 2121 justify-self: center; 2122 background: url("https://cdn.shopify.com/s/files/1/0822/7281/3382/files/og.svg?v=1778671809") 2123 no-repeat center / contain; 2124 } 2125 2126 .product-lock__content > .product-lock__text { 2127 grid-column: 2; 2128 grid-row: 1; 2129 align-self: center; 2130 } 2131 2132 /* Collapse empty price wrappers (avoids default <p> margin / reserved grid gap) */ 2133 .product-card__price:empty, 2134 .product-card-stacked__price:empty { 2135 display: none !important; 2136 margin: 0 !important; 2137 padding: 0 !important; 2138 } 2139 2140 /* No `div.price` from `snippets/price.liquid` â treat as no price row */ 2141 .product-card__price:not(:has(.price)), 2142 .product-card-stacked__price:not(:has(.price)) { 2143 display: none !important; 2144 margin: 0 !important; 2145 padding: 0 !important; 2146 } 2147</style> 2148 2149 <!-- BEGIN app block: shopify://apps/gorgias-live-chat-helpdesk/blocks/gorgias/a66db725-7b96-4e3f-916e-6c8e6f87aaaa -->
2150<script defer data-gorgias-loader-chat src="https://config.gorgias.chat/bundle-loader/shopify/b32dd2-83.myshopify.com"></script>
2150 2151 2152
2153<script defer data-gorgias-loader-convert src="https://content.9gtb.com/loader.js"></script>
2153 2154 2155
2156<script defer data-gorgias-loader-mailto-replace src="https://config.gorgias.help/api/contact-forms/replace-mailto-script.js?shopName=b32dd2-83"></script>
2156 2157 2158 2159<!-- END app block --><!-- BEGIN app block: shopify://apps/minmaxify-order-limits/blocks/app-embed-block/3acfba32-89f3-4377-ae20-cbb9abc48475 --> 2160 2161<!-- END app block --><!-- BEGIN app block: shopify://apps/addingwell/blocks/aw-gtm/c8ed21e7-0ac8-4249-8c91-cbdde850b5b8 -->
2161<script 2162 type="module" 2163> 2164 setTimeout(async function () { 2165 const keySessionStorage = 'aw_settings'; 2166 let __AW__settings = JSON.parse(sessionStorage.getItem(keySessionStorage)); 2167 if(!__AW__settings) { 2168 const awSettings = await fetch( 2169 "/apps/addingwell-proxy", 2170 { 2171 method: "GET", 2172 redirect: "follow", 2173 headers: {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'} 2174 } 2175 ); 2176 if (awSettings.ok) { 2177 __AW__settings = await awSettings.json(); 2178 sessionStorage.setItem(keySessionStorage, JSON.stringify(__AW__settings)); 2179 } else { 2180 console.error('Addingwell - Loading proxy error', awSettings.status); 2181 return; 2182 } 2183 } 2184 2185 if(__AW__settings.insertGtmTag && __AW__settings.gtmId) { 2186 let __AW__gtmUrl = 'https://www.googletagmanager.com/gtm.js'; 2187 let __AW__isAddingwellCdn = false; 2188 if(__AW__settings.insertGtmUrl && __AW__settings.gtmUrl) { 2189 __AW__gtmUrl = __AW__settings.gtmUrl; 2190 __AW__isAddingwellCdn = __AW__settings.isAddingwellCdn; 2191 } 2192 2193 (function(w,d,s,l,i){ 2194 w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 2195 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 2196 j.async=true; 2197 j.src=`${__AW__gtmUrl}?${__AW__isAddingwellCdn ? 'awl' : 'id'}=`+(__AW__isAddingwellCdn ? i.replace(/^GTM-/, '') : i)+dl;f.parentNode.insertBefore(j,f); 2198 })(window,document,'script',`${__AW__settings.dataLayerVariableName}`,`${__AW__settings.gtmId}`); 2199 } 2200 2201 const __AW__getEventNameWithSuffix = (eventName) => { 2202 return eventName + (__AW__settings.dataLayerEventSuffix ? "_" + __AW__settings.dataLayerEventSuffix : ""); 2203 } 2204 2205 function __AW__waitForShopifyYCookie(maxAttempts, intervalMs) { 2206 return new Promise(function(resolve) { 2207 let attempts = 0; 2208 maxAttempts = maxAttempts || 5; 2209 intervalMs = intervalMs || 200; 2210 function check() { 2211 const match = document.cookie.match(/(?:^|;\s*)_shopify_y=([^;]*)/); 2212 if (match) { 2213 resolve(match[1]); 2214 } else if (attempts < maxAttempts) { 2215 attempts++; 2216 setTimeout(check, intervalMs); 2217 } else { 2218 console.warn('[AW] _shopify_y cookie not found after consent'); 2219 resolve(null); 2220 } 2221 } 2222 check(); 2223 }); 2224 } 2225 2226 const __AW__CONSENT_KEY = 'aw_consent_state'; 2227 2228 function __AW__getConsentState() { 2229 try { 2230 if (window.Shopify?.customerPrivacy?.currentVisitorConsent) { 2231 return JSON.stringify(window.Shopify.customerPrivacy.currentVisitorConsent()); 2232 } 2233 } catch(e) {} 2234 return null; 2235 } 2236 2237 function __AW__isEmptyConsent(stateStr) { 2238 try { 2239 return Object.values(JSON.parse(stateStr)).every(v => v === ''); 2240 } catch(e) {} 2241 return true; 2242 } 2243 2244 let __AW__prevConsentState = __AW__getConsentState() ?? localStorage.getItem(__AW__CONSENT_KEY); 2245 2246 document.addEventListener('visitorConsentCollected', async function(event) { 2247 const currentConsentState = __AW__getConsentState(); 2248 2249 if (currentConsentState !== null && currentConsentState === __AW__prevConsentState) { 2250 return; 2251 } 2252 2253 __AW__prevConsentState = currentConsentState; 2254 2255 if (currentConsentState !== null) { 2256 if (__AW__isEmptyConsent(currentConsentState)) { 2257 localStorage.removeItem(__AW__CONSENT_KEY); 2258 } else { 2259 localStorage.setItem(__AW__CONSENT_KEY, currentConsentState); 2260 } 2261 } 2262 2263 window.Shopify.analytics.publish('addingwell:shopify_update_consent', {visitorConsentCollected: true}); 2264 2265 const shopifyY = await __AW__waitForShopifyYCookie(); 2266 if (!shopifyY) return; 2267 2268 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; 2269 window[__AW__settings.dataLayerVariableName].push({ 2270 event: __AW__getEventNameWithSuffix('shopify_consent_updated'), 2271 }); 2272 }); 2273 2274 if(__AW__settings.enableDataLayer) { 2275 const MAX_ITEMS_BATCH = 10; 2276 const sendBatchEvents = (items, eventName, eventObject) => { 2277 let batch = []; 2278 for(let i = 0; i < items.length; i++) { 2279 batch.push(items[i]); 2280 if(batch.length === MAX_ITEMS_BATCH || i === items.length - 1) { 2281 const eventClone = { 2282 ...eventObject, 2283 ecommerce: { 2284 ...eventObject.ecommerce, 2285 items: [...batch] 2286 } 2287 }; 2288 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 2289 window[__AW__settings.dataLayerVariableName].push({ 2290 ...{'event': __AW__getEventNameWithSuffix(eventName)}, 2291 ...eventClone 2292 }); 2293 2294 batch = []; 2295 } 2296 } 2297 } 2298 2299 function __AW__filterNullOrEmpty(obj) { 2300 let filteredObj = {}; 2301 2302 for (let key in obj) { 2303 if (obj.hasOwnProperty(key)) { 2304 let value = obj[key]; 2305 2306 // If value is an object (and not null), recursively filter sub-elements 2307 if (typeof value === "object" && value !== null && value !== undefined) { 2308 let filteredSubObject = __AW__filterNullOrEmpty(value); 2309 2310 // Add the filtered sub-object only if it's not empty 2311 if (Object.keys(filteredSubObject).length > 0) { 2312 filteredObj[key] = filteredSubObject; 2313 } 2314 } else { 2315 // Add the value only if it's neither null nor an empty string 2316 if (value !== null && value !== "" && value !== undefined) { 2317 filteredObj[key] = value; 2318 } 2319 } 2320 } 2321 } 2322 return filteredObj; 2323 } 2324 2325 function getPageType(value) { 2326 const pageTypeMapping = { 2327 404: '404', 2328 article: 'article', 2329 blog: 'blog', 2330 cart: 'cart', 2331 collection: 'collection', 2332 gift_card: 'gift_card', 2333 index: 'homepage', 2334 product: 'product', 2335 search: 'searchresults', 2336 'customers/login': 'login', 2337 'customers/register': 'sign_up' 2338 }; 2339 return pageTypeMapping[value] || 'other'; 2340 } 2341 let __AW__cartReady = false;
2342 2343 function pushDataLayerEvents() { 2344 initCart(); 2345 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; // init data layer if doesn't already exist 2346 const templateName = "collection"; 2347 2348 const getFormattedPrice = (priceInCents) => priceInCents/100; 2349 /********************** 2350 * DATALAYER SECTIONS 2351 ***********************/ 2352 /** 2353 * DATALAYER: User Data 2354 * Build user_data properties. 2355 */ 2356 let newCustomer = true; 2357 window.__AW__CommonData = { 2358 user_data: { 2359 new_customer: newCustomer, 2360 } 2361 }; 2362 2363 2364 2365 window.__AW__CommonData.country = "GB" 2366 window.__AW__CommonData.market = "gb" 2367 window.__AW__CommonData.marketId = 74677944646 2368 2369 2370 window.__AW__CommonData.language = "en-GB"; 2371 2372 window.__AW__CommonData = __AW__filterNullOrEmpty(window.__AW__CommonData); 2373 2374 // Ajout du hash SHA256 des champs sensibles de user_data (version robuste) 2375 async function sha256(str) { 2376 if (!str) return undefined; 2377 if (!(window.crypto && window.crypto.subtle)) { 2378 console.error('Crypto.subtle non supporté, hash impossible pour :', str); 2379 return undefined; 2380 } 2381 try { 2382 const buf = await window.crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)); 2383 return Array.from(new Uint8Array(buf)).map(x => x.toString(16).padStart(2, '0')).join(''); 2384 } catch (e) { 2385 console.error('Erreur lors du hash SHA256 pour', str, e); 2386 return undefined; 2387 } 2388 } 2389 async function getUserDataHash(user_data) { 2390 const hashObj = {}; 2391 if (!user_data) return hashObj; 2392 try { 2393 if (user_data.email_address) hashObj.email_address = await sha256(user_data.email_address); 2394 if (user_data.phone_number) hashObj.phone_number = await sha256(user_data.phone_number); 2395 if (user_data.address && typeof user_data.address === 'object') { 2396 hashObj.address = {}; 2397 if (user_data.address.first_name) hashObj.address.first_name = await sha256(user_data.address.first_name); 2398 if (user_data.address.last_name) hashObj.address.last_name = await sha256(user_data.address.last_name); 2399 if (user_data.address.street) hashObj.address.street = await sha256(user_data.address.street); 2400 if (user_data.address.city) hashObj.address.city = await sha256(user_data.address.city); 2401 if (user_data.address.region) hashObj.address.region = await sha256(user_data.address.region); 2402 if (user_data.address.postal_code) hashObj.address.postal_code = await sha256(user_data.address.postal_code); 2403 if (user_data.address.country) hashObj.address.country = await sha256(user_data.address.country); 2404 } 2405 } catch (e) { 2406 console.error('Erreur lors du hash user_data_hashed', e); 2407 } 2408 return __AW__filterNullOrEmpty(hashObj); 2409 } 2410 (async function() { 2411 if (window.__AW__CommonData && window.__AW__CommonData.user_data) { 2412 window.__AW__CommonData.user_data_hashed = await getUserDataHash(window.__AW__CommonData.user_data); 2413 } 2414 })(); 2415 2416 window.__AW__CommonData["page_type"] = getPageType(templateName); 2417 window.__AW__CommonData["theme"] = window?.Shopify?.theme; 2418 window[__AW__settings.dataLayerVariableName].push(window.__AW__CommonData); 2419 2420 window[__AW__settings.dataLayerVariableName].push({"event": __AW__getEventNameWithSuffix("page_view")}); 2421 2422 /** DATALAYER: select_item handoff */ 2423 const pendingSelectItemName = "aw_pending_select_item"; 2424 2425 const __AW__pushSelectItem = (payload) => { 2426 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 2427 window[__AW__settings.dataLayerVariableName].push(payload); 2428 }; 2429 2430 const __AW__flushPendingSelectItem = () => { 2431 let pending = null; 2432 try { 2433 pending = sessionStorage.getItem(pendingSelectItemName); 2434 sessionStorage.removeItem(pendingSelectItemName); 2435 } catch (e) { 2436 return; 2437 } 2438 if (!pending) return; 2439 try { 2440 __AW__pushSelectItem(JSON.parse(pending)); 2441 } catch (e) { 2442 console.warn('[AW] pending select_item error', e); 2443 } 2444 }; 2445 2446 __AW__flushPendingSelectItem(); 2447 2448 2449 /** 2450 * DATALAYER: 404 Pages 2451 * Fire on 404 Pages */ 2452 2453 2454 2455 /** 2456 * DATALAYER: Blog Articles 2457 * Fire on Blog Article Pages */ 2458 2459 2460 2461 2462 2463 2464 /** DATALAYER: Product List Page (Collections, Category) 2465 * Fire on all product listing pages. */ 2466 2467 const __AW__transformNumberToString = (value) => { 2468 if (value !== null && value !== undefined && typeof value === 'number') { 2469 return value.toString(); 2470 } 2471 /** By Default return the current value */ 2472 return value; 2473 }; 2474 2475 let discountPrice = 0.00; 2476 2477 2478 var __AW__items = []; 2479 2480 var __AW__itemVariantQuantity = -2549; 2481 var __AW__itemVariant = {"id":57113497731398,"title":"1 Advent Calendar","o
2481ption1":"1 Advent Calendar","option2":null,"option3":null,"sku":"10000-ADVENT-2026-EC","requires_shipping":true,"taxable":true,"featured_image":{"id":88060278276422,"product_id":15676241281350,"position":1,"created_at":"2026-08-14T13:31:03+01:00","updated_at":"2026-08-14T13:31:06+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/brewdog.com\/cdn\/shop\/files\/PDP_Advent_2.png?v=1786710666","variant_ids":[57113497731398]},"available":true,"name":"Advent Calendar 2026 - 1 Advent Calendar","public_title":"1 Advent Calendar","options":["1 Advent Calendar"],"price":5199,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":75486155342150,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/brewdog.com\/cdn\/shop\/files\/PDP_Advent_2.png?v=1786710666"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2482 2483 2484 discountPrice = 0.00; 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 __AW__items.push( 2498 { 2499 'index' : 1, 2500 'item_id' : __AW__transformNumberToString(15676241281350), 2501 'item_variant' : __AW__itemVariant?.title ?? null, 2502 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2503 'item_variant_title': __AW__itemVariant?.title ?? null, 2504 'item_product_id' : __AW__transformNumberToString(15676241281350), 2505 'item_product_title': "Advent Calendar 2026", 2506 'item_name' : "Advent Calendar 2026", 2507 'discount' : discountPrice, 2508 'price' : getFormattedPrice(5199), 2509 'item_brand' : "BrewDog", 2510 'item_category' : "Advent", 2511 'item_list_id' : 628219543878, 2512 'item_list_name' : "Gifts", 2513 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2514 'url' : "\/products\/beer-advent-calendar-2026", 2515 'quantity' : 1, 2516 'inventory_quantity' : __AW__itemVariantQuantity, 2517 'selling_plan_id' : null, 2518 'selling_plan_name' : null 2519 } 2520 ) 2521 2522 var __AW__itemVariantQuantity = 0; 2523 var __AW__itemVariant = {"id":54116156277062,"title":"6 cans x 1 glass","option1":"6 cans x 1 glass","option2":null,"option3":null,"sku":"PUNK-PERSONALISED-6","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Dads Match Beer - 6 cans x 1 glass","public_title":"6 cans x 1 glass","options":["6 cans x 1 glass"],"price":2699,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2524 2525 2526 discountPrice = 0.00; 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 __AW__items.push( 2546 { 2547 'index' : 2, 2548 'item_id' : __AW__transformNumberToString(14908242002246), 2549 'item_variant' : __AW__itemVariant?.title ?? null, 2550 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2551 'item_variant_title': __AW__itemVariant?.title ?? null, 2552 'item_product_id' : __AW__transformNumberToString(14908242002246), 2553 'item_product_title': "Dads Match Beer", 2554 'item_name' : "Dads Match Beer", 2555 'discount' : discountPrice, 2556 'price' : getFormattedPrice(2699),
2557 'item_brand' : "BrewDog", 2558 'item_category' : "Gift", 2559 'item_list_id' : 628219543878, 2560 'item_list_name' : "Gifts", 2561 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2562 'url' : "\/products\/dad-match-beer-personalised", 2563 'quantity' : 1, 2564 'inventory_quantity' : __AW__itemVariantQuantity, 2565 'selling_plan_id' : null, 2566 'selling_plan_name' : null 2567 } 2568 ) 2569 2570 var __AW__itemVariantQuantity = 0; 2571 var __AW__itemVariant = {"id":54116189503814,"title":"6 cans x 1 glass","option1":"6 cans x 1 glass","option2":null,"option3":null,"sku":"PUNK-PERSONALISED-6","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Tartan Brew - 6 cans x 1 glass","public_title":"6 cans x 1 glass","options":["6 cans x 1 glass"],"price":2699,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2572 2573 2574 discountPrice = 0.00; 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 __AW__items.push( 2594 { 2595 'index' : 3, 2596 'item_id' : __AW__transformNumberToString(14908252324166), 2597 'item_variant' : __AW__itemVariant?.title ?? null, 2598 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2599 'item_variant_title': __AW__itemVariant?.title ?? null, 2600 'item_product_id' : __AW__transformNumberToString(14908252324166), 2601 'item_product_title': "Tartan Brew", 2602 'item_name' : "Tartan Brew", 2603 'discount' : discountPrice, 2604 'price' : getFormattedPrice(2699), 2605 'item_brand' : "BrewDog", 2606 'item_category' : "Gift", 2607 'item_list_id' : 628219543878, 2608 'item_list_name' : "Gifts", 2609 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2610 'url' : "\/products\/purple-tartan-personalised", 2611 'quantity' : 1, 2612 'inventory_quantity' : __AW__itemVariantQuantity, 2613 'selling_plan_id' : null, 2614 'selling_plan_name' : null 2615 } 2616 ) 2617 2618 var __AW__itemVariantQuantity = -2; 2619 var __AW__itemVariant = {"id":53601172586822,"title":"6 cans x 1 glass","option1":"6 cans x 1 glass","option2":null,"option3":null,"sku":"PUNK-PERSONALISED-6","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BIRTHDAY - Personalised - 6 cans x 1 glass","public_title":"6 cans x 1 glass","options":["6 cans x 1 glass"],"price":2699,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2620 2621 2622 discountPrice = 0.00; 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 __AW__items.push( 2642 { 2643 'index' : 4, 2644 'item_id' : __AW__transformNumberToString(14770715754822), 2645 'item_variant' : __AW__itemVariant?.title ?? null, 2646 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null),
2647 'item_variant_title': __AW__itemVariant?.title ?? null, 2648 'item_product_id' : __AW__transformNumberToString(14770715754822), 2649 'item_product_title': "BIRTHDAY - Personalised", 2650 'item_name' : "BIRTHDAY - Personalised", 2651 'discount' : discountPrice, 2652 'price' : getFormattedPrice(2699), 2653 'item_brand' : "BrewDog", 2654 'item_category' : "Beer", 2655 'item_list_id' : 628219543878, 2656 'item_list_name' : "Gifts", 2657 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2658 'url' : "\/products\/birthday", 2659 'quantity' : 1, 2660 'inventory_quantity' : __AW__itemVariantQuantity, 2661 'selling_plan_id' : null, 2662 'selling_plan_name' : null 2663 } 2664 ) 2665 2666 var __AW__itemVariantQuantity = 1196; 2667 var __AW__itemVariant = {"id":56000119046470,"title":"8 Pack (4 of each)","option1":"8 Pack (4 of each)","option2":null,"option3":null,"sku":"23005-10111-8","requires_shipping":true,"taxable":true,"featured_image":{"id":83751485505862,"product_id":15429630591302,"position":1,"created_at":"2026-02-19T12:58:56+00:00","updated_at":"2026-02-19T12:59:00+00:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940","variant_ids":[56000119046470,56000119079238]},"available":true,"name":"Lagerita Pack - 8 Pack (4 of each)","public_title":"8 Pack (4 of each)","options":["8 Pack (4 of each)"],"price":1999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":71305595879750,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2668 2669 2670 discountPrice = 0.00; 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 __AW__items.push( 2686 { 2687 'index' : 5, 2688 'item_id' : __AW__transformNumberToString(15429630591302), 2689 'item_variant' : __AW__itemVariant?.title ?? null, 2690 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2691 'item_variant_title': __AW__itemVariant?.title ?? null, 2692 'item_product_id' : __AW__transformNumberToString(15429630591302), 2693 'item_product_title': "Lagerita Pack", 2694 'item_name' : "Lagerita Pack", 2695 'discount' : discountPrice, 2696 'price' : getFormattedPrice(1999), 2697 'item_brand' : "Distilling", 2698 'item_category' : "Cocktails", 2699 'item_list_id' : 628219543878, 2700 'item_list_name' : "Gifts", 2701 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2702 'url' : "\/products\/lagerita-pack", 2703 'quantity' : 1, 2704 'inventory_quantity' : __AW__itemVariantQuantity, 2705 'selling_plan_id' : null, 2706 'selling_plan_name' : null 2707 } 2708 ) 2709 2710 var __AW__itemVariantQuantity = 98; 2711 var __AW__itemVariant = {"id":53624210456902,"title":"1 Dog Toy","option1":"1 Dog Toy","option2":null,"option3":null,"sku":"MA101006","requires_shipping":true,"taxable":true,"featured_image":{"id":72008648294726,"product_id":14776049566022,"position":1,"created_at":"2024-11-12T10:04:30+00:00","updated_at":"2024-11-12T10:04:33+00:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-wingman-dog-toy-brewdog-v2.jpg?v=1731405873","variant_ids":[53624210456902]},"available":true,"name":"Wingman Dog Toy - 1 Dog Toy","public_title":"1 Dog Toy","options":["1 Dog Toy"],"price":1200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":63171318645062,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-wingman-dog-toy-brewdog-v2.jpg?v=1731405873"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2712 2713 2714 discountPrice = 0.00; 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 __AW__items.push( 2728 { 2729 'index' : 6, 2730 'item_id' : __AW__transformNumberToString(14776049566022),
2731 'item_variant' : __AW__itemVariant?.title ?? null, 2732 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2733 'item_variant_title': __AW__itemVariant?.title ?? null, 2734 'item_product_id' : __AW__transformNumberToString(14776049566022), 2735 'item_product_title': "Wingman Dog Toy", 2736 'item_name' : "Wingman Dog Toy", 2737 'discount' : discountPrice, 2738 'price' : getFormattedPrice(1200), 2739 'item_brand' : "BrewDog", 2740 'item_category' : "Accessories", 2741 'item_list_id' : 628219543878, 2742 'item_list_name' : "Gifts", 2743 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2744 'url' : "\/products\/wingman-dog-toy", 2745 'quantity' : 1, 2746 'inventory_quantity' : __AW__itemVariantQuantity, 2747 'selling_plan_id' : null, 2748 'selling_plan_name' : null 2749 } 2750 ) 2751 2752 var __AW__itemVariantQuantity = 0; 2753 var __AW__itemVariant = {"id":50237234446662,"title":"1 x Pint Glass","option1":"1 x Pint Glass","option2":null,"option3":null,"sku":"MG100243","requires_shipping":true,"taxable":true,"featured_image":{"id":57305394839878,"product_id":9160965030214,"position":1,"created_at":"2024-08-13T19:51:49+01:00","updated_at":"2024-08-13T19:51:51+01:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-20oz-lost-hero-glass-brewdog.jpg?v=1723575111","variant_ids":[50237234446662]},"available":false,"name":"Lost Lager Glass - 1 x Pint Glass","public_title":"1 x Pint Glass","options":["1 x Pint Glass"],"price":400,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":49716348420422,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-20oz-lost-hero-glass-brewdog.jpg?v=1723575111"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2754 2755 2756 discountPrice = 0.00; 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 __AW__items.push( 2770 { 2771 'index' : 7, 2772 'item_id' : __AW__transformNumberToString(9160965030214), 2773 'item_variant' : __AW__itemVariant?.title ?? null, 2774 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2775 'item_variant_title': __AW__itemVariant?.title ?? null, 2776 'item_product_id' : __AW__transformNumberToString(9160965030214), 2777 'item_product_title': "Lost Lager Glass", 2778 'item_name' : "Lost Lager Glass", 2779 'discount' : discountPrice, 2780 'price' : getFormattedPrice(400), 2781 'item_brand' : "Merch", 2782 'item_category' : "Glassware", 2783 'item_list_id' : 628219543878, 2784 'item_list_name' : "Gifts", 2785 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2786 'url' : "\/products\/lost-lager-glass", 2787 'quantity' : 1, 2788 'inventory_quantity' : __AW__itemVariantQuantity, 2789 'selling_plan_id' : null, 2790 'selling_plan_name' : null 2791 } 2792 ) 2793 2794 var __AW__itemVariantQuantity = 0; 2795 var __AW__itemVariant = {"id":53780158546246,"title":"1 Glass","option1":"1 Glass","option2":null,"option3":null,"sku":"MG100260","requires_shipping":true,"taxable":true,"featured_image":{"id":72386123530566,"product_id":14807160750406,"position":1,"created_at":"2024-12-04T13:28:34+00:00","updated_at":"2024-12-04T13:28:37+00:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-wingman-hero-glass-merch-brewdog-uk-v_2.png?v=1733318917","variant_ids":[53780158546246]},"available":false,"name":"Wingman Hero Glass - 1 Glass","public_title":"1 Glass","options":["1 Glass"],"price":500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":63415062692166,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-wingman-hero-glass-merch-brewdog-uk-v_2.png?v=1733318917"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2796 2797 2798 discountPrice = 0.00; 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 __AW__items.push( 2812 { 2813 'index' : 8, 2814 'item_id' : __AW__transformNumberToString(14807160750406),
2815 'item_variant' : __AW__itemVariant?.title ?? null, 2816 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2817 'item_variant_title': __AW__itemVariant?.title ?? null, 2818 'item_product_id' : __AW__transformNumberToString(14807160750406), 2819 'item_product_title': "Wingman Hero Glass", 2820 'item_name' : "Wingman Hero Glass", 2821 'discount' : discountPrice, 2822 'price' : getFormattedPrice(500), 2823 'item_brand' : "BrewDog", 2824 'item_category' : "Glassware", 2825 'item_list_id' : 628219543878, 2826 'item_list_name' : "Gifts", 2827 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2828 'url' : "\/products\/wingman-hero-glass", 2829 'quantity' : 1, 2830 'inventory_quantity' : __AW__itemVariantQuantity, 2831 'selling_plan_id' : null, 2832 'selling_plan_name' : null 2833 } 2834 ) 2835 2836 var __AW__itemVariantQuantity = 0; 2837 var __AW__itemVariant = {"id":53780169359686,"title":"1 Glass","option1":"1 Glass","option2":null,"option3":null,"sku":"MG100261","requires_shipping":true,"taxable":true,"featured_image":{"id":72386193097030,"product_id":14807162388806,"position":2,"created_at":"2024-12-04T13:37:51+00:00","updated_at":"2024-12-04T13:37:53+00:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-cold-beer-lager-glassware-brewdog-uk_1.png?v=1733319473","variant_ids":[53780169359686]},"available":false,"name":"Cold Beer Hero Glass - 1 Glass","public_title":"1 Glass","options":["1 Glass"],"price":500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":63415119118662,"position":2,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-cold-beer-lager-glassware-brewdog-uk_1.png?v=1733319473"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2838 2839 2840 discountPrice = 0.00; 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 __AW__items.push( 2854 { 2855 'index' : 9, 2856 'item_id' : __AW__transformNumberToString(14807162388806), 2857 'item_variant' : __AW__itemVariant?.title ?? null, 2858 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2859 'item_variant_title': __AW__itemVariant?.title ?? null, 2860 'item_product_id' : __AW__transformNumberToString(14807162388806), 2861 'item_product_title': "Cold Beer Hero Glass", 2862 'item_name' : "Cold Beer Hero Glass", 2863 'discount' : discountPrice, 2864 'price' : getFormattedPrice(500), 2865 'item_brand' : "BrewDog", 2866 'item_category' : "Glassware", 2867 'item_list_id' : 628219543878, 2868 'item_list_name' : "Gifts", 2869 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2870 'url' : "\/products\/cold-beer-hero-glass", 2871 'quantity' : 1, 2872 'inventory_quantity' : __AW__itemVariantQuantity, 2873 'selling_plan_id' : null, 2874 'selling_plan_name' : null 2875 } 2876 ) 2877 2878 var __AW__itemVariantQuantity = 0; 2879 var __AW__itemVariant = {"id":53949474439494,"title":"1 Glass","option1":"1 Glass","option2":null,"option3":null,"sku":"MG100241","requires_shipping":true,"taxable":true,"featured_image":{"id":73038263091526,"product_id":14857377743174,"position":1,"created_at":"2025-01-09T12:18:01+00:00","updated_at":"2025-01-14T09:46:23+00:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-punk-pint-glass-beer-brewdog-v_2.png?v=1736847983","variant_ids":[53949474439494]},"available":false,"name":"PUNK HERO GLASS - 1 Glass","public_title":"1 Glass","options":["1 Glass"],"price":500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":63825179803974,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/pdp-punk-pint-glass-beer-brewdog-v_2.png?v=1736847983"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2880 2881 2882 discountPrice = 0.00; 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 __AW__items.push( 2896 { 2897 'index' : 10, 2898 'item_id' : __AW__transformNumberToString(14857377743174),
2899 'item_variant' : __AW__itemVariant?.title ?? null, 2900 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2901 'item_variant_title': __AW__itemVariant?.title ?? null, 2902 'item_product_id' : __AW__transformNumberToString(14857377743174), 2903 'item_product_title': "PUNK HERO GLASS", 2904 'item_name' : "PUNK HERO GLASS", 2905 'discount' : discountPrice, 2906 'price' : getFormattedPrice(500), 2907 'item_brand' : "BrewDog", 2908 'item_category' : "Glasses \u0026 Barware", 2909 'item_list_id' : 628219543878, 2910 'item_list_name' : "Gifts", 2911 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2912 'url' : "\/products\/punk-hero-glass", 2913 'quantity' : 1, 2914 'inventory_quantity' : __AW__itemVariantQuantity, 2915 'selling_plan_id' : null, 2916 'selling_plan_name' : null 2917 } 2918 ) 2919 2920 var __AW__itemVariantQuantity = 0; 2921 var __AW__itemVariant = {"id":55336966914374,"title":"1 x Bar Bundle","option1":"1 x Bar Bundle","option2":null,"option3":null,"sku":"10111-C10BB","requires_shipping":true,"taxable":true,"featured_image":{"id":83376929571142,"product_id":15227517436230,"position":1,"created_at":"2026-02-05T14:21:53+00:00","updated_at":"2026-02-05T14:21:57+00:00","alt":null,"width":1050,"height":1050,"src":"\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317","variant_ids":[55336966914374]},"available":true,"name":"Lost Lager Bar Bundle - 1 x Bar Bundle","public_title":"1 x Bar Bundle","options":["1 x Bar Bundle"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":70942228283718,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1050,"width":1050,"src":"\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2922 2923 2924 discountPrice = 0.00; 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 __AW__items.push( 2938 { 2939 'index' : 11, 2940 'item_id' : __AW__transformNumberToString(15227517436230), 2941 'item_variant' : __AW__itemVariant?.title ?? null, 2942 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2943 'item_variant_title': __AW__itemVariant?.title ?? null, 2944 'item_product_id' : __AW__transformNumberToString(15227517436230), 2945 'item_product_title': "Lost Lager Bar Bundle", 2946 'item_name' : "Lost Lager Bar Bundle", 2947 'discount' : discountPrice, 2948 'price' : getFormattedPrice(3299), 2949 'item_brand' : "BrewDog", 2950 'item_category' : "Bundle", 2951 'item_list_id' : 628219543878, 2952 'item_list_name' : "Gifts", 2953 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2954 'url' : "\/products\/lost-lager-bar-bundle", 2955 'quantity' : 1, 2956 'inventory_quantity' : __AW__itemVariantQuantity, 2957 'selling_plan_id' : null, 2958 'selling_plan_name' : null 2959 } 2960 ) 2961 2962 var __AW__itemVariantQuantity = 0; 2963 var __AW__itemVariant = {"id":55929741934918,"title":"56 cans","option1":"56 cans","option2":null,"option3":null,"sku":"MD-LEGENDS-56","requires_shipping":true,"taxable":true,"featured_image":{"id":86294543073606,"product_id":15409143218502,"position":2,"created_at":"2026-05-27T14:26:22+01:00","updated_at":"2026-05-27T14:26:24+01:00","alt":null,"width":800,"height":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384","variant_ids":[55929741934918]}
2963,"available":true,"name":"Matchday Legends - 56 cans","public_title":"56 cans","options":["56 cans"],"price":6999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":73782677373254,"position":2,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 2964 2965 2966 discountPrice = 0.00; 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 __AW__items.push( 2982 { 2983 'index' : 12, 2984 'item_id' : __AW__transformNumberToString(15409143218502), 2985 'item_variant' : __AW__itemVariant?.title ?? null, 2986 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 2987 'item_variant_title': __AW__itemVariant?.title ?? null, 2988 'item_product_id' : __AW__transformNumberToString(15409143218502), 2989 'item_product_title': "Matchday Legends", 2990 'item_name' : "Matchday Legends", 2991 'discount' : discountPrice, 2992 'price' : getFormattedPrice(6999), 2993 'item_brand' : "BrewDog", 2994 'item_category' : "Beer", 2995 'item_list_id' : 628219543878, 2996 'item_list_name' : "Gifts", 2997 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 2998 'url' : "\/products\/match-day-legends", 2999 'quantity' : 1, 3000 'inventory_quantity' : __AW__itemVariantQuantity, 3001 'selling_plan_id' : null, 3002 'selling_plan_name' : null 3003 } 3004 ) 3005 3006 var __AW__itemVariantQuantity = -1024; 3007 var __AW__itemVariant = {"id":53853018358086,"title":"£25.00","option1":"£25.00","option2":null,"option3":null,"sku":"1-GIFTCARD-25","requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"Gift Card - Online Only - £25.00","public_title":"£25.00","options":["£25.00"],"price":2500,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 3008 3009 3010 discountPrice = 0.00; 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 __AW__items.push( 3028 { 3029 'index' : 13, 3030 'item_id' : __AW__transformNumberToString(14827964072262), 3031 'item_variant' : __AW__itemVariant?.title ?? null, 3032 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 3033 'item_variant_title': __AW__itemVariant?.title ?? null, 3034 'item_product_id' : __AW__transformNumberToString(14827964072262), 3035 'item_product_title': "Gift Card - Online Only", 3036 'item_name' : "Gift Card - Online Only", 3037 'discount' : discountPrice, 3038 'price' : getFormattedPrice(2500), 3039 'item_brand' : "BrewDog", 3040 'item_category' : "Bundle", 3041 'item_list_id' : 628219543878, 3042 'item_list_name' : "Gifts", 3043 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 3044 'url' : "\/products\/gift-card", 3045 'quantity' : 1, 3046 'inventory_quantity' : __AW__itemVariantQuantity, 3047 'selling_plan_id' : null, 3048 'selling_plan_name' : null 3049 } 3050 ) 3051 3052 var __AW__itemVariantQuantity = -2; 3053 var __AW__itemVariant = {"id":53653157708102,"title":"6 cans x 1 glass","option1":"6 cans x 1 glass","option2":null,"option3":null,"sku":"PUNK-PERSONALISED-6","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"CONGRATS - Personalised - 6 cans x 1 glass","public_title":"6 cans x 1 glass","options":["6 cans x 1 glass"],"price":2699,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 3054 3055 3056 discountPrice = 0.00; 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 __AW__items.push( 3070 { 3071 'index' : 14, 3072 'item_id' : __AW__transformNumberToString(14780519711046),
3073 'item_variant' : __AW__itemVariant?.title ?? null, 3074 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 3075 'item_variant_title': __AW__itemVariant?.title ?? null, 3076 'item_product_id' : __AW__transformNumberToString(14780519711046), 3077 'item_product_title': "CONGRATS - Personalised", 3078 'item_name' : "CONGRATS - Personalised", 3079 'discount' : discountPrice, 3080 'price' : getFormattedPrice(2699), 3081 'item_brand' : "BrewDog", 3082 'item_category' : "Beer", 3083 'item_list_id' : 628219543878, 3084 'item_list_name' : "Gifts", 3085 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 3086 'url' : "\/products\/congrats", 3087 'quantity' : 1, 3088 'inventory_quantity' : __AW__itemVariantQuantity, 3089 'selling_plan_id' : null, 3090 'selling_plan_name' : null 3091 } 3092 ) 3093 3094 var __AW__itemVariantQuantity = 9; 3095 var __AW__itemVariant = {"id":55955936936262,"title":"1 x Bottle","option1":"1 x Bottle","option2":null,"option3":null,"sku":"06-WN-56","requires_shipping":true,"taxable":true,"featured_image":{"id":83402517283142,"product_id":15412545978694,"position":3,"created_at":"2026-02-06T15:41:01+00:00","updated_at":"2026-02-06T15:41:06+00:00","alt":null,"width":1080,"height":1080,"src":"\/\/brewdog.com\/cdn\/shop\/files\/BDxNewTheory_SweetTalk_1080x1080_03.png?v=1770392466","variant_ids":[55955936936262]},"available":true,"name":"Sweet Talk - 1 x Bottle","public_title":"1 x Bottle","options":["1 x Bottle"],"price":1999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":70966334816582,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/brewdog.com\/cdn\/shop\/files\/BDxNewTheory_SweetTalk_1080x1080_03.png?v=1770392466"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 3096 3097 3098 discountPrice = 0.00; 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 __AW__items.push( 3112 { 3113 'index' : 15, 3114 'item_id' : __AW__transformNumberToString(15412545978694), 3115 'item_variant' : __AW__itemVariant?.title ?? null, 3116 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 3117 'item_variant_title': __AW__itemVariant?.title ?? null, 3118 'item_product_id' : __AW__transformNumberToString(15412545978694), 3119 'item_product_title': "Sweet Talk", 3120 'item_name' : "Sweet Talk", 3121 'discount' : discountPrice, 3122 'price' : getFormattedPrice(1999), 3123 'item_brand' : "BrewDog", 3124 'item_category' : "Wine", 3125 'item_list_id' : 628219543878, 3126 'item_list_name' : "Gifts", 3127 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 3128 'url' : "\/products\/sweet-talk", 3129 'quantity' : 1, 3130 'inventory_quantity' : __AW__itemVariantQuantity, 3131 'selling_plan_id' : null, 3132 'selling_plan_name' : null 3133 } 3134 ) 3135 3136 var __AW__itemVariantQuantity = 72; 3137 var __AW__itemVariant = {"id":50169179537734,"title":"6 Cans + 1 Harmony Glass","option1":"6 Cans + 1 Harmony Glass","option2":null,"option3":null,"sku":"10000-C6330-YOU","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Craft Beer Gift Pack - 6 Cans + 1 Harmony Glass","public_title":"6 Cans + 1 Harmony Glass","options":["6 Cans + 1 Harmony Glass"],"price":1999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 3138 3139 3140 discountPrice = 0.00; 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 __AW__items.push( 3154 { 3155 'index' : 16, 3156 'item_id' : __AW__transformNumberToString(9139983221062),
3157 'item_variant' : __AW__itemVariant?.title ?? null, 3158 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id ?? null), 3159 'item_variant_title': __AW__itemVariant?.title ?? null, 3160 'item_product_id' : __AW__transformNumberToString(9139983221062), 3161 'item_product_title': "Craft Beer Gift Pack", 3162 'item_name' : "Craft Beer Gift Pack", 3163 'discount' : discountPrice, 3164 'price' : getFormattedPrice(1999), 3165 'item_brand' : "Gifting", 3166 'item_category' : "Beer", 3167 'item_list_id' : 628219543878, 3168 'item_list_name' : "Gifts", 3169 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku ?? null), 3170 'url' : "\/products\/the-craft-beer-gift-pack", 3171 'quantity' : 1, 3172 'inventory_quantity' : __AW__itemVariantQuantity, 3173 'selling_plan_id' : null, 3174 'selling_plan_name' : null 3175 } 3176 ) 3177 3178 3179 const awEcommerceList = { 3180 ecommerce: { 3181 currency: "GBP", 3182 item_list_id: 628219543878, 3183 item_list_name: "Gifts", 3184 items: [] 3185 } 3186 }; 3187 sendBatchEvents(__AW__items, "view_item_list", awEcommerceList); 3188 3189 3190 const __AW__trackSelectItem = function(event) { 3191 if(!(event.target instanceof Element)) { 3192 return; 3193 } 3194 3195 const productLink = event.target.closest('a[href*="/products/"]'); 3196 3197 if(productLink) { 3198 const linkUrl = productLink.getAttribute('href'); 3199 const matchProduct = (item) => { 3200 var itemSlug = (item.url.split('/products/')[1]).split('#')[0].split('?')[0].trim(); 3201 var linkUrlItemSlug = (linkUrl.split('/products/')[1]).split('#')[0].split('?')[0].trim(); 3202 return itemSlug === linkUrlItemSlug; 3203 } 3204 3205 const selectedItem = __AW__items.find(matchProduct); 3206 3207 if(selectedItem) { 3208 const payload = { 3209 ...{'event': __AW__getEventNameWithSuffix('select_item')}, 3210 ...{ 3211 ecommerce: { 3212 currency: "GBP", 3213 item_list_id: 628219543878, 3214 item_list_name: "Gifts", 3215 items: [selectedItem] 3216 } 3217 } 3218 }; 3219 3220 const keepsPageAlive = event.button !== 0 || event.metaKey 3221 || event.ctrlKey || event.shiftKey || productLink.target.toLowerCase() === '_blank'; 3222 3223 if(keepsPageAlive) { 3224 __AW__pushSelectItem(payload); 3225 return; 3226 } 3227 3228 try { 3229 sessionStorage.setItem(pendingSelectItemName, JSON.stringify(payload)); 3230 setTimeout(__AW__flushPendingSelectItem, 800); 3231 } catch (e) { 3232 __AW__pushSelectItem(payload); 3233 } 3234 } 3235 } 3236 }; 3237 3238 document.addEventListener('click', __AW__trackSelectItem, true); 3239 document.addEventListener('auxclick', function(event) { 3240 if(event.button === 1) { 3241 __AW__trackSelectItem(event); 3242 } 3243 }, true); 3244 3245 3246 /** DATALAYER: Product Page 3247 * Fire on all Product View pages. */ 3248 3249 3250 /** DATALAYER: Cart View 3251 * Fire anytime a user views their cart (non-dynamic) */ 3252 3253 3254 let drawerCartAlreadyOpened = false; 3255 let pendingViewCartTimeout = null; 3256 3257 let stateObserver = null; 3258 let domObserver = null; 3259 3260 function initCart() { 3261 fetch(`${window.Shopify?.routes?.root || "/"}cart.js?adw=1&init=1`, { 3262 credentials: 'same-origin', 3263 headers: { 'Accept': 'application/json' } 3264 }).then(r => r.ok ? r.json() : null) 3265 .then(freshCart => { 3266 if (freshCart) { 3267 window.__AW__slaveShopifyCart = freshCart; 3268 } else { 3269 window.__AW__slaveShopifyCart = { items: [] }; 3270 } 3271 __AW__cartReady = true; 3272 }) 3273 .catch(e => { 3274 console.warn('[AW] Cart hydration failed', e); 3275 window.__AW__slaveShopifyCart = { items: [] }; 3276 __AW__cartReady = true; 3277 }); 3278 } 3279 3280 function fireViewCartOncePerOpen() { 3281 if (pendingViewCartTimeout) return; 3282 3283 drawerCartAlreadyOpened = true; 3284 3285 pendingViewCartTimeout = setTimeout(() => { 3286 pendingViewCartTimeout = null; 3287 if (!__AW__cartReady) return; 3288 const ecommerceDataLayer = { 3289 ecommerce: { 3290 currency: window.__AW__slaveShopifyCart.currency, 3291 value: window.__AW__slaveShopifyCart.total_price / 100,
3292 items: window.__AW__slaveShopifyCart.items.map(item => { 3293 const price = (item.discounted_price ?? item.price) / 100; 3294 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 3295 3296 let coupon = ""; 3297 if (Array.isArray(item?.discounts)) { 3298 coupon = item.discounts 3299 .filter(d => typeof d?.title === "string") 3300 .map(d => d.title) 3301 .join(", "); 3302 } 3303 3304 return { 3305 item_id: __AW__transformNumberToString(item.product_id), 3306 item_variant: item.variant_title, 3307 item_variant_title: item.variant_title, 3308 item_variant_id: __AW__transformNumberToString(item.variant_id), 3309 item_product_id: __AW__transformNumberToString(item.product_id), 3310 item_product_title: item.product_title, 3311 item_name: item.product_title, 3312 price, 3313 discount, 3314 item_brand: item.vendor, 3315 item_category: item.product_type, 3316 item_list_name: item.collection || "", 3317 item_list_id: "", 3318 quantity: item.quantity, 3319 sku: __AW__transformNumberToString(item.sku), 3320 coupon, 3321 url: item.url, 3322 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 3323 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 3324 3325 }; 3326 }) 3327 } 3328 }; 3329 3330 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 3331 window[__AW__settings.dataLayerVariableName].push({ 3332 event: __AW__getEventNameWithSuffix("view_cart"), 3333 ...ecommerceDataLayer 3334 }); 3335 }, 1000); 3336 } 3337 3338 function resetOnClose() { 3339 drawerCartAlreadyOpened = false; 3340 if (pendingViewCartTimeout) { 3341 clearTimeout(pendingViewCartTimeout); 3342 pendingViewCartTimeout = null; 3343 } 3344 } 3345 3346 function getTargets() { 3347 const cartDrawer = document.querySelector("cart-drawer"); 3348 const dialog = 3349 document.querySelector("cart-drawer dialog") || 3350 document.querySelector("cart-drawer-component dialog") || 3351 document.querySelector("cart-drawer-component dialog[ref='dialog']"); 3352 3353 return { cartDrawer, dialog }; 3354 } 3355 3356 function isCartOpen({ cartDrawer, dialog }) { 3357 const openByDialog = !!dialog && (dialog.open || dialog.hasAttribute("open")); 3358 const openByClass = !!cartDrawer && cartDrawer.classList.contains("active"); 3359 const openByAttr = !!cartDrawer && cartDrawer.hasAttribute("open"); 3360 return openByDialog || openByClass || openByAttr; 3361 } 3362 3363 function attachStateObserver() { 3364 const { cartDrawer, dialog } = getTargets(); 3365 3366 if (stateObserver) stateObserver.disconnect(); 3367 3368 stateObserver = new MutationObserver(() => { 3369 const openNow = isCartOpen(getTargets()); 3370 3371 if (openNow) { 3372 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 3373 } else { 3374 resetOnClose(); 3375 } 3376 }); 3377 3378 if (cartDrawer) { 3379 stateObserver.observe(cartDrawer, { 3380 attributes: true, 3381 attributeFilter: ["class", "open"] 3382 }); 3383 } 3384 3385 if (dialog) { 3386 stateObserver.observe(dialog, { 3387 attributes: true, 3388 attributeFilter: ["open"] 3389 }); 3390 } 3391 3392 const openNow = isCartOpen(getTargets()); 3393 if (openNow) { 3394 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 3395 } else { 3396 resetOnClose(); 3397 } 3398 } 3399 3400 function observeCartDrawerOpen() { 3401 attachStateObserver(); 3402 3403 if (domObserver) domObserver.disconnect(); 3404 3405 domObserver = new MutationObserver(() => { 3406 attachStateObserver(); 3407 }); 3408 3409 domObserver.observe(document.documentElement, { 3410 childList: true, 3411 subtree: true 3412 }); 3413 } 3414 3415 observeCartDrawerOpen(); 3416 3417 3418 /** DATALAYER: Search Results */ 3419 var searchPage = new RegExp("search", "g"); 3420 if(document.location.pathname.match(searchPage)){ 3421 var __AW__items = []; 3422 3423 3424 const awEcommerceSearch = { 3425 search_term: null, 3426 results_count: null, 3427 ecommerce: { 3428 currency: "GBP", 3429 items : [] 3430 } 3431 }; 3432 sendBatchEvents(__AW__items, "search", awEcommerceSearch); 3433 } 3434 3435 3436 const cartRegex = /\/cart\/(add|change|update)(\.js|\.json)?(\?.*)?$/; 3437 const pendingCartEventName = "aw_pending_cart_event"; 3438 let awCartQueue = Promise.resolve(); 3439 3440 if(sessionStorage.getItem(pendingCartEventName)) { 3441 scheduleCartSync(); 3442 } 3443 3444 document.addEventListener('click', async function(e) { 3445 const btn = e.target.closest('[href*="/cart/add"], [action*="/cart/add"], button[name="add"]'); 3446 if (!btn || !__AW__cartReady) return; 3447 snapshotCart(); 3448 }, true); 3449 3450 patchFetch(); 3451 patchXhr(); 3452 3453 function snapshotCart() { 3454 try { 3455 sessionStorage.setItem( 3456 pendingCartEventName, 3457 JSON.stringify(window.__AW__slaveShopifyCart ?? { items: [] }) 3458 ); 3459 } catch (e) { 3460 console.warn('[AW] snapshot error', e); 3461 } 3462 } 3463 3464 function patchXhr() { 3465 const nativeSend = typeof XMLHttpRequest === 'function' ? XMLHttpRequest.prototype?.send : null; 3466 if (typeof nativeSend !== 'function' || nativeSend.__AW__patched) return; 3467 3468 XMLHttpRequest.prototype.send = function(body) { 3469 this.addEventListener('load', () => { 3470 try { 3471 const abs = this.responseURL || ''; 3472 const u = new URL(abs, location.origin); 3473 const mt = u.pathname + (u.search || ''); 3474 if (this.status === 200 && cartRegex.test(mt)) { 3475 scheduleCartSync(); 3476 } 3477 } catch (e) { 3478 console.error('[AW] XHR handler error', e); 3479 } 3480 }); 3481 return nativeSend.apply(this, arguments); 3482 }; 3483 3484 XMLHttpRequest.prototype.send.__AW__patched = true; 3485 } 3486 3487 function patchFetch() { 3488 const previousFetch = window.fetch; 3489 if (typeof previousFetch !== 'function' || previousFetch.__AW__patched) return; 3490 3491 window.fetch = async function (...args) { 3492 const resource = args[0]; 3493 try { 3494 3495 const url = resource instanceof Request ? resource.url : resource instanceof URL ? resource.href : String(resource); 3496 if (cartRegex.test(url)) { 3497 const response = await previousFetch.apply(this, args); 3498 if (response.ok) { 3499 scheduleCartSync(); 3500 } else { 3501 console.warn(`Fetch for ${url} failed with status: ${response.status}`); 3502 } 3503 return response; 3504 } 3505 } catch (error) { 3506 console.error('[AW] Fetch Wrapper Error:', error); 3507 } 3508 3509 return previousFetch.apply(this, args); 3510 }; 3511 3512 window.fetch.__AW__patched = true; 3513 } 3514 3515 function scheduleCartSync() { 3516 if (!__AW__cartReady) return; 3517 awCartQueue = awCartQueue 3518 .then(() => { 3519 if (!sessionStorage.getItem(pendingCartEventName)) snapshotCart(); 3520 return runCartSyncOnce(); 3521 }).catch(e => { 3522 console.error('[AW] scheduleCartSync error', e); 3523 }); 3524 } 3525 3526 async function runCartSyncOnce() { 3527 try { 3528 const response = await fetch(`${window.Shopify.routes.root || "/"}cart.js?adw=1`, { 3529 credentials: 'same-origin', 3530 headers: { 'Accept': 'application/json' } 3531 }); 3532 if (!response.ok) throw new Error('HTTP ' + response.status); 3533 const newCart = await response.json(); 3534 await compareCartData(newCart); 3535 } catch (error) { 3536 console.error('[AW] Error fetching /cart.js (singleton):', error); 3537 } 3538 } 3539 3540 function compareCartData(newCartData) { 3541 return new Promise((resolve) => { 3542 setTimeout(() => { 3543 try { 3544 const oldCartData = sessionStorage.getItem(pendingCartEventName) ? JSON.parse(sessionStorage.getItem(pendingCartEventName)) : {items: []}; 3545 newCartData = newCartData || {items: []}; 3546 const cartItemKey = item => `${item.variant_id ?? item.id}:${item.selling_plan_allocation?.selling_plan?.id ?? ''}`; 3547 const oldItems = new Map(oldCartData.items.map(item => [cartItemKey(item), item])); 3548 const newItems = new Map(newCartData.items.map(item => [cartItemKey(item), item])); 3549
3550 newItems.forEach((newItem, key) => { 3551 const oldItem = oldItems.get(key); 3552 const eventName = "add_to_cart"; 3553 if (!oldItem) { 3554 handleCartDataLayer(eventName, newItem.quantity, newItem); 3555 } else if (newItem.quantity > oldItem.quantity) { 3556 handleCartDataLayer(eventName, newItem.quantity - oldItem.quantity, newItem); 3557 } 3558 }); 3559 3560 oldItems.forEach((oldItem, key) => { 3561 const newItem = newItems.get(key); 3562 const eventName = "remove_from_cart"; 3563 if (!newItem) { 3564 handleCartDataLayer(eventName, oldItem.quantity, oldItem); 3565 } else if (oldItem.quantity > newItem.quantity) { 3566 handleCartDataLayer(eventName, oldItem.quantity - newItem.quantity, newItem); 3567 } 3568 }); 3569 3570 sessionStorage.removeItem(pendingCartEventName); 3571 window.__AW__slaveShopifyCart = newCartData; 3572 } catch(e) { 3573 console.error('[AW] compareCartData error', e); 3574 sessionStorage.removeItem(pendingCartEventName); 3575 } finally { 3576 resolve(); 3577 } 3578 }, 500); 3579 }); 3580 } 3581 3582 function handleCartDataLayer(eventName, quantity, item) { 3583 const price = (item.discounted_price ?? item.price) / 100; 3584 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 3585 const totalValue = price * quantity; 3586 let coupon = ""; 3587 if(Array.isArray(item?.discounts)) { 3588 coupon = item.discounts 3589 .filter(discount => typeof discount?.title === 'string') 3590 .map(discount => discount.title) 3591 .join(', '); 3592 } 3593 3594 const ecommerceCart = { 3595 ecommerce: { 3596 currency: "GBP", 3597 value: totalValue, 3598 items: [{ 3599 item_id: __AW__transformNumberToString(item.product_id), 3600 item_variant: item.variant_title || "Default Variant", 3601 item_variant_id: __AW__transformNumberToString(item.variant_id), 3602 item_variant_title: item.variant_title || "Default Variant", 3603 item_name: item.product_title, 3604 item_product_id: __AW__transformNumberToString(item.product_id), 3605 item_product_title: item.product_title, 3606 sku: __AW__transformNumberToString(item.sku), 3607 discount: discount, 3608 price: price, 3609 item_brand: item.vendor, 3610 item_category: item.product_type, 3611 quantity: quantity, 3612 coupon: coupon, 3613 url: item?.url, 3614 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 3615 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 3616 }] 3617 } 3618 }; 3619 3620 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 3621 window[__AW__settings.dataLayerVariableName].push({ 3622 ...{ 'event': __AW__getEventNameWithSuffix(eventName) }, 3623 ...ecommerceCart 3624 }); 3625 3626 } 3627 } 3628 3629 if (document.readyState === 'loading') { 3630 // document still loading... 3631 document.addEventListener('DOMContentLoaded', () => { 3632 pushDataLayerEvents(); 3633 }); 3634 } else { 3635 // already loaded, chocs away! 3636 pushDataLayerEvents(); 3637 } 3638 } 3639 }, 0); 3640</script>
3640 3641 3642 3643<!-- END app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext -->
3643<script type="text/javascript"> 3644 3645 if (typeof window.formbuilder_customer != "object") { 3646 window.formbuilder_customer = {} 3647 } 3648 3649 3650 3651 window.hulkFormBuilder = { 3652 form_data: {"form_5sRdE_ZtDiL9knRoj2JLqQ":{"uuid":"5sRdE_ZtDiL9knRoj2JLqQ","form_name":"Mashtag - 3 - Hops","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e#MASHTAG VOTE 3\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mashtag - 3 - Hops","form_access_message":"\u
3652003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"\u003cp\u003eVote for this year\u0026#39;s hops!\u003c\/p\u003e\n","formElements":[{"Conditions":{},"type":"radio","position":0,"label":"Hops","align":"vertical","values":"40 IBU NZ Hops\n40 IBU American Hops\n50 IBU NZ Hops\n50 IBU American Hops","elementCost":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"w6VMwfynhcfzWDIIyr-fEg","shop_timezone":"Europe\/London","shop_id":150018,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Plus","shop_shopify_domain":"b32dd2-83.myshopify.com","popup_settings":{},"form_is_active":true},"form_CyWJx2J6sCBHV5TDFcL1Lw":{"uuid":"CyWJx2J6sCBHV5TDFcL1Lw","form_name":"Mashtag - 4 - Additions","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e#MASHTAG VOTE 4\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"yes","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mashtag - 4 - Additions","form_access_message":"\u
3652003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"\u003cp\u003eVote for this year\u0026#39;s Additions!\u003c\/p\u003e\n","captcha_honeypot":"no","formElements":[{"Conditions":{},"type":"radio","position":0,"label":"Additions:","align":"vertical","values":"Dry Hop\nDouble Dry Hop\nTriple Dry Hop","elementCost":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"w6VMwfynhcfzWDIIyr-fEg","shop_timezone":"Europe\/London","shop_id":150018,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Plus","shop_shopify_domain":"b32dd2-83.myshopify.com","popup_settings":{},"form_is_active":true},"form_JphiHGaP3zsORrH_vu-mlQ":{"uuid":"JphiHGaP3zsORrH_vu-mlQ","form_name":"Mashtag - 5 - Can Label","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e#MASHTAG VOTE 5\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mashtag - 5 - Can Label","form_access_message":"\u
3652003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"\u003cp\u003eFinal vote time - vote for your prefered label from the lineup!\u003c\/p\u003e\n","formElements":[{"Conditions":{},"type":"radio","position":0,"label":"Label Design","align":"vertical","values":"Design 1\nDesign 2\nDesign 3\nDesign 4","elementCost":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"w6VMwfynhcfzWDIIyr-fEg","shop_timezone":"Europe\/London","shop_id":150018,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Plus","shop_shopify_domain":"b32dd2-83.myshopify.com","popup_settings":{},"form_is_active":true},"form_P655luuqAyVE8i65Y1VuJg":{"uuid":"P655luuqAyVE8i65Y1VuJg","form_name":"Mashtag - 1 - Style","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e#MASHTAG VOTE 1\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eThanks for your submission!\u003cbr \/\u003e\n\u003cbr \/\u003e\nCheck back for the next voting stage soon...\u003c\/p\u003e\n","captcha_enable":"yes","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mashtag - 1 - Style","form_access_message":"\u
3652003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"\u003cp\u003eTime to vote for the style of this year\u0026#39;s beer!\u003c\/p\u003e\n","form_banner_alignment":"left","captcha_honeypot":"no","captcha_align":"center","captcha_lang":"en-GB","formElements":[{"Conditions":{},"type":"radio","position":0,"label":"Beer Style","values":"Stout\nCold IPA\nMountain IPA\nAmerican Wheat Beer\nNEIPA","elementCost":{},"page_number":1,"align":"vertical"}]},"is_spam_form":false,"shop_uuid":"w6VMwfynhcfzWDIIyr-fEg","shop_timezone":"Europe\/London","shop_id":150018,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Plus","shop_shopify_domain":"b32dd2-83.myshopify.com","popup_settings":{},"form_is_active":true},"form_sz96WGP5rgtrH0DKwsjWGw":{"uuid":"sz96WGP5rgtrH0DKwsjWGw","form_name":"Mashtag - 2 - ABV\/MALT","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003e#MASHTAG VOTE 2\u003c\/h3\u003e\n\n\u003cp\u003e\u0026nbsp;\u003c\/p\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"yes","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mashtag - 2 - ABV\/MALT","form_access_message":"\u
3652003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"\u003cp\u003eTime to vote for the ABV for this year\u0026#39;s beer!\u003c\/p\u003e\n","captcha_honeypot":"no","formElements":[{"Conditions":{},"type":"radio","position":0,"label":"ABV","align":"vertical","values":"5%\n7.5% Double\n10% Triple","elementCost":{},"page_number":1}]},"is_spam_form":false,"shop_uuid":"w6VMwfynhcfzWDIIyr-fEg","shop_timezone":"Europe\/London","shop_id":150018,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Plus","shop_shopify_domain":"b32dd2-83.myshopify.com","popup_settings":{},"form_is_active":true}}, 3653 shop_data: {"shop_w6VMwfynhcfzWDIIyr-fEg":{"shop_uuid":"w6VMwfynhcfzWDIIyr-fEg","shop_timezone":"Europe\/London","shop_id":150018,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Plus","shop_shopify_domain":"b32dd2-83.myshopify.com","shop_created_at":"2025-09-23T04:13:29.438-05:00","is_skip_metafield":false,"shop_deleted":false,"shop_disabled":false}}, 3654 settings_data: {"shop_settings":{"shop_customise_msgs":[],"default_customise_msgs":{"is_required":"is required","thank_you":"Thank you! The form was submitted successfully.","processing":"Processing...","valid_data":"Please provide valid data","valid_email":"Provide valid email format","valid_tags":"HTML Tags are not allowed","valid_phone":"Provide valid phone number","valid_captcha":"Please provide a valid CAPTCHA response.","valid_url":"Provide valid URL","only_number_alloud":"Provide valid number in","number_less":"must be less than","number_more":"must be more than","image_must_less":"Image must be less than 20MB","image_number":"Images allowed","image_extension":"Invalid extension! Please provide image file","error_image_upload":"Error in image upload. Please try again.","error_file_upload":"Error in file upload. Please try again.","your_response":"Your response","error_form_submit":"Error occur.Please try again after sometime.","email_submitted":"Form with this email is already submitted","invalid_email_by_zerobounce":"The email address you entered appears to be invalid. Please check it and try again.","download_file":"Download file","card_details_invalid":"Your card details are invalid","card_details":"Card details","please_enter_card_details":"Please enter card details","card_number":"Card number","exp_mm":"Exp MM","exp_yy":"Exp YY","crd_cvc":"CVV","payment_value":"Payment amount","please_enter_payment_amount":"Please enter a payment amount.","address1":"Address line 1","address2":"Address line 2","city":"City","province":"Province","zipcode":"Zip code","country":"Country","blocked_domain":"This form does not accept addresses from","file_must_less":"File must be less than 20MB","file_extension":"Invalid extension! Please provide file","only_file_number_alloud":"files allowed","previous":"Previous","next":"Next","must_have_a_input":"Please enter at least one field.","please_enter_required_data":"Please enter required data","atleast_one_special_char":"Include at least one special character","atleast_one_lowercase_char":"Include at least one lowercase character","atleast_one_uppercase_char":"Include at least one uppercase character","atleast_one_number":"Include at least one number","must_have_8_chars":"Must have 8 characters long","be_between_8_and_12_chars":"Be between 8 and 12 characters long","please_select":"Please Select","phone_submitted":"Form with this phone number is already submitted","user_res_parse_error":"Error while submitting the form","valid_same_values":"values must be the same","product_choice_clear_selection":"Clear Selection","picture_choice_clear_selection":"Clear Selection","remove_all_for_file_image_upload":"Remove All","invalid_file_type_for_image_upload":"You can't upload files of this type.","invalid_file_type_for_signature_upload":"You can't upload files of this type.","max_files_exceeded_for_file_upload":"You can not upload any more files.","max_files_exceeded_for_image_upload":"You can not upload any more files.","file_already_exist":"File already uploaded","max_limit_exceed":"You have added the maximum number of text fields.","cancel_upload_for_file_upload":"Cancel upload","cancel_upload_for_image_upload":"Cancel upload","cancel_upload_for_signature_upload":"Cancel upload"}}}, 3655 features_data: {"shop_plan_features":{"shop_plan_features":["unlimited-forms","full-design-customization","export-form-submissions","multiple-recipients-for-form-submissions","multiple-admin-notifications","enable-captcha","unlimited-file-uploads","save-submitted-form-data","set-auto-response-message","conditional-logic","form-banner","save-as-draft-facility","include-user-response-in-admin-email","disable-form-submission","forms-limit","submissions-visibility-limit","file-upload"]}}, 3656 shop: null, 3657 shop_id: null, 3658 plan_features: null, 3659 validateDoubleQuotes: false, 3660 assets: { 3661 searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder
3661-by-hulkapps-74/assets/searchable-dropdown.js", 3662 extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js", 3663 extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css", 3664 bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css", 3665 }, 3666 translations: { 3667 htmlTagNotAllowed: "HTML Tags are not allowed", 3668 sqlQueryNotAllowed: "SQL Queries are not allowed", 3669 doubleQuoteNotAllowed: "Double quotes are not allowed", 3670 3671 maxTextFieldsReached: "You have added the maximum number of text fields.", 3672 3673 3674 3675 zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.", 3676 } 3677 3678 } 3679 3680 3681 3682 window.FbThemeAppExtSettingsHash = {} 3683 3684</script>
3684<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/pagefly-ai-page-builder/blocks/app-embed/83e179f7-59a0-4589-8c66-c0dddf959200 --> 3685 3686<!-- BEGIN app snippet: pagefly-cro-ab-testing-main --> 3687 3688 3689 3690 3691 3692 3693
3694<script> 3695 ;(function () { 3696 const url = new URL(window.location) 3697 const viewParam = url.searchParams.get('view') 3698 if (viewParam && viewParam.includes('variant-pf-')) { 3699 url.searchParams.set('pf_v', viewParam) 3700 url.searchParams.delete('view') 3701 window.history.replaceState({}, '', url) 3702 } 3703 })() 3704</script>
3704 3705 3706 3707
3708<script type='module'> 3709 3710 window.PAGEFLY_CRO = window.PAGEFLY_CRO || {} 3711 3712 window.PAGEFLY_CRO['data_debug'] = { 3713 original_template_suffix: "all_collections", 3714 allow_ab_test: false, 3715 ab_test_start_time: 0, 3716 ab_test_end_time: 0, 3717 today_date_time: 1790239296000, 3718 } 3719 window.PAGEFLY_CRO['GA4'] = { enabled: false} 3720</script>
3720 3721 3722<!-- END app snippet --> 3723 3724 3725 3726 3727 3728 3729 3730 3731
3731<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-helper.js' defer='defer'></script>
3731 3732 3733
3733<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-general-helper.js' defer='defer'></script>
3733 3734 3735
3735<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-snap-slider.js' defer='defer'></script>
3735 3736 3737
3737<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-slideshow-v3.js' defer='defer'></script>
3737 3738 3739
3739<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-slideshow-v4.js' defer='defer'></script>
3739 3740 3741
3741<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-glider.js' defer='defer'></script>
3741 3742 3743
3743<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-slideshow-v1-v2.js' defer='defer'></script>
3743 3744 3745
3745<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-product-media.js' defer='defer'></script>
3745 3746 3747
3747<script src='https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-product.js' defer='defer'></script>
3747 3748 3749
3750<script id='pagefly-helper-data' type='application/json'> 3751 { 3752 "page_optimization": { 3753 "assets_prefetching": false 3754 }, 3755 "elements_asset_mapper": { 3756 "Accordion": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-accordion.js", 3757 "Accordion3": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-accordion3.js", 3758 "CountDown": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-countdown.js", 3759 "GMap1": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-gmap.js", 3760 "GMap2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-gmap.js", 3761 "GMapBasicV2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-gmap.js", 3762 "GMapAdvancedV2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-gmap.js", 3763 "HTML.Video": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-htmlvideo.js", 3764 "HTML.Video2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-htmlvideo2.js", 3765 "HTML.Video3": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-htmlvideo2.js", 3766 "BackgroundVideo": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-htmlvideo2.js", 3767 "Instagram": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-instagram.js", 3768 "Instagram2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-instagram.js", 3769 "Insta3": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-instagram3.js", 3770 "Tabs": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-tab.js", 3771 "Tabs3": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-tab3.js", 3772 "ProductBox": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-cart.js", 3773 "FBPageBox2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-facebook.js", 3774 "FBLikeButton2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-facebook.js", 3775 "TwitterFeed2": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-twitter.js", 3776 "Paragraph4": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-paragraph4.js", 3777 3778 "AliReviews": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3779 "BackInStock": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3780 "GloboBackInStock": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3781 "GrowaveWishlist": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3782 "InfiniteOptionsShopPad": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3783 "InkybayProductPersonalizer": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder
3783-358/assets/pagefly-3rd-elements.js", 3784 "LimeSpot": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3785 "Loox": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3786 "Opinew": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3787 "Powr": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3788 "ProductReviews": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3789 "PushOwl": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3790 "ReCharge": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3791 "Rivyo": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3792 "TrackingMore": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3793 "Vitals": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js", 3794 "Wiser": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-3rd-elements.js" 3795 }, 3796 "custom_elements_mapper": { 3797 "pf-click-action-element": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-click-action-element.js", 3798 "pf-dialog-element": "https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-dialog-element.js" 3799 } 3800 } 3801</script>
3801 3802
3803<script id='pagefly-heatmap-config' type='application/json'> 3804 {} 3805</script>
vendor: 1 bytes, line 3805
3805
3806<script> 3807 (function () { 3808 var el = document.getElementById('pagefly-heatmap-config') 3809 if (!el) { window.__pagefly_heatmap_config__ = {}; return } 3810 try { 3811 window.__pagefly_heatmap_config__ = JSON.parse(el.textContent || '{}') || {} 3812 } catch (e) { 3813 window.__pagefly_heatmap_config__ = {} 3814 } 3815 })() 3816</script>
vendor: 1 bytes, line 3816
3816
3817<script> 3818 // Heatmap overlay loader. Three gates, all of them cheap, none of them trusting the URL: 3819 // the visitor must have arrived on a pf_heatmap link, the SERVER must have published an 3820 // overlay path in the metafield, and this page must already be one the merchant enabled 3821 // tracking for. The last gate is what stops a crafted link pulling the asset onto an 3822 // arbitrary storefront page. Everything else is decided inside the asset, and by the server. 3823 (function () { 3824 var cfg = window.__pagefly_heatmap_config__ || {} 3825 var id = (window.__pagefly_page_setting__ || {}).pageId 3826 if (!/[#&]pf_heatmap=/.test(window.location.hash || '')) return 3827 if (!cfg.overlay_data_path || !Array.isArray(cfg.enabled_page_ids)) return 3828 if (!id || cfg.enabled_page_ids.indexOf(id) === -1) return 3829 var s = document.createElement('script') 3830 s.src = 'https://cdn.shopify.com/extensions/01a0cd11-9bda-742e-87f0-b3e83c926dd7/pagefly-ai-page-builder-358/assets/pagefly-heatmap-overlay.js' 3831 s.defer = true 3832 document.head.appendChild(s) 3833 })() 3834</script>
3834 3835 3836<!-- BEGIN app snippet: pf-ai-schema --> 3837<!-- END app snippet --> 3838 3839 3840<!-- END app block -->
3840<script src="https://cdn.shopify.com/extensions/01a0cf34-180a-76e0-b733-42974a96768f/giftnote-app-142/assets/giftnote.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 3840
3840
3841<script src="https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
3841 3842<meta property="og:image" content="https://cdn.shopify.com/s/files/1/0822/7281/3382/collections/Brewdog_Advent_20256235__conorgaultphotography_WebRes_-_300_x_200_86b23572-469b-4765-a7f3-a5c4ff9eb2ab.jpg?v=1773770691" /> 3843<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0822/7281/3382/collections/Brewdog_Advent_20256235__conorgaultphotography_WebRes_-_300_x_200_86b23572-469b-4765-a7f3-a5c4ff9eb2ab.jpg?v=1773770691" /> 3844<meta property="og:image:width" content="300" /> 3845<meta property="og:image:height" content="200" /> 3846<meta property="og:image:alt" content="Gifts" /> 3847<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
3848<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: 82272813382,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "collection"};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 3848
3848
3849<script> 3850 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 3851</script>
vendor: 1 bytes, line 3851
3851
3852<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}
3852).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: 82272813382,storefrontBaseUrl: "https://brewdog.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://brewdog.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"3849617734","configuration":"{\"store_id\":\"223037\",\"environment\":\"prod\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"10c4f173702937db6fa4bf871600cafd","type":"APP","apiClientId":294517,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
3852,"dataSharingState":"unrestricted"},{"id":"3841491270","configuration":"{\"shopId\":\"82272813382\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"83adcaf06c5deacff41ffdf8f92d9129","type":"APP","apiClientId":246667608065,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"3144778054","configuration":"{\"Enabled\":\"true\",\"UpdatedAt\":\"2026-06-04T03:35:09.213Z\",\"DeveloperPreview\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7913f49eba866a6cbbe1bb85b5400251","type":"APP","apiClientId":34646425601,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2862678342","configuration":"{\"focusDuration\":\"3\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"78f180345468801b73943f50de9e9980","type":"APP","apiClientId":1743893,"privacyPurposes":["ANALYTICS","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2049966406","configuration":"{\"pixelCode\":\"D0H3M0RC77UE5QUUMN7G\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":[]},"dataSharingState":"optimized"},{"id":"1904410950","configuration":"{\"advertiserId\":\"19216\",\"shopDomain\":\"b32dd2-83.myshopify.com\",\"appVersion\":\"shopifyApp_5.1.5\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"110308a0e5cef2680d096c831a6295ee","type":"APP","apiClientId":2887701,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"935952710","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-CXQ9LKJ4HM\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-CXQ9LKJ4HM\\\"}],\\\"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":"792789318","configuration":"{\"target\":\"https:\/\/api.exponea.com\",\"token\":\"ea3bff42-5ee3-11ef-b39d-16571f73b836\",\"search_tracking\":\"true\", \"checkout_tracking\":\"true\", \"view_category_tracking\":\"true\", \"view_item_tracking\":\"true\",\"page_viewed_tracking\":\"false\",\"integration_id\":\"964c565b-fc32-49a9-8e43-b4d3b211dcb8\",\"gateway_url\":\"https:\/\/api.exponea.com\",\"domain\":\"b32dd2-83.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"281f5176d59c18052a7f231c2196b454","type":"APP","apiClientId":35679600641,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"610271558","configuration":"{\"pixelId\":\"4fbc280f-dabf-4e2c-bdd8-e1517fadde6f\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c119f01612c13b62ab52809eb08154bb","type":"APP","apiClientId":2556259,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
3852,{"id":"155812166","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"NM datalayer Addingwell"},{"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":"BrewDog","paymentSettings":{"currencyCode":"GBP"},"myshopifyDomain":"b32dd2-83.myshopify.com","countryCode":"GB","storefrontUrl":"https:\/\/brewdog.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"15676241281350","handle":"beer-advent-calendar-2026","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"57113497731398","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14908242002246","handle":"dad-match-beer-personalised","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54116156277062","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14908252324166","handle":"purple-tartan-personalised","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54116189503814","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14770715754822","handle":"birthday","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53601172586822","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15429630591302","handle":"lagerita-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"56000119046470","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14776049566022","handle":"wingman-dog-toy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53624210456902","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9160965030214","handle":"lost-lager-glass","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50237234446662","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14807160750406","handle":"wingman-hero-glass","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53780158546246","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14807162388806","handle":"cold-beer-hero-glass","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53780169359686","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14857377743174","handle":"punk-hero-glass","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53949474439494","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15227517436230","handle":"lost-lager-bar-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"55336966914374","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15409143218502","handle":"match-day-legends","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"55929741934918","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
3852,{"id":"14827964072262","handle":"gift-card","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53853018358086","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"14780519711046","handle":"congrats","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53653157708102","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15412545978694","handle":"sweet-talk","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"55955936936262","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9139983221062","handle":"the-craft-beer-gift-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50169179537734","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://brewdog.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"185229017414","themePublished":"true","eventMetadataId":"0efdf58b-4bdc-47d8-9b65-372d2639dfda","pageType":"collection","resourceId":"628219543878","shopId":"82272813382","storefrontBaseUrl":"https:\/\/brewdog.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}],[\"collection_viewed\",{\"collection\":{\"id\":\"628219543878\",\"title\":\"Gifts\",\"productVariants\":[{\"price\":{\"amount\":51.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Advent Calendar 2026\",\"vendor\":\"BrewDog\",\"id\":\"15676241281350\",\"untranslatedTitle\":\"Advent Calendar 2026\",\"url\":\"\/products\/beer-advent-calendar-2026\",\"type\":\"Advent\"},\"id\":\"57113497731398\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/PDP_Advent_2.png?v=1786710666\"},\"sku\":\"10000-ADVENT-2026-EC\",\"title\":\"1 Advent Calendar\",\"untranslatedTitle\":\"1 Advent Calendar\"},{\"price\":{\"amount\":26.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Dads Match Beer\",\"vendor\":\"BrewDog\",\"id\":\"14908242002246\",\"untranslatedTitle\":\"Dads Match Beer\",\"url\":\"\/products\/dad-match-beer-personalised\",\"type\":\"Gift\"},\"id\":\"54116156277062\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/DadSportsBeer_Personalised_PDP.png?v=1778250431\"},\"sku\":\"PUNK-PERSONALISED-6\",\"title\":\"6 cans x 1 glass\",\"untranslatedTitle\":\"6 cans x 1 glass\"},{\"price\":{\"amount\":26.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Tartan Brew\",\"vendor\":\"BrewDog\",\"id\":\"14908252324166\",\"untranslatedTitle\":\"Tartan Brew\",\"url\":\"\/products\/purple-tartan-personalised\",\"type\":\"Gift\"},\"id\":\"54116189503814\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/DadTartan_Personalised_PDP.png?v=1778238939\"},\"sku\":\"PUNK-PERSONALISED-6\",\"title\":\"6 cans x 1 glass\",\"untranslatedTitle\":\"6 cans x 1 glass\"},{\"price\":{\"amount\":26.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"BIRTHDAY - Personalised\",\"vendor\":\"BrewDog\",\"id\":\"14770715754822\",\"untranslatedTitle\":\"BIRTHDAY - Personalised\",\"url\":\"\/products\/birthday\",\"type\":\"Beer\"},\"id\":\"53601172586822\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-personalisedcans-birdthdaybundle-800x800-brewdog.jpg?v=1731596470\"},\"sku\":\"PUNK-PERSONALISED-6\",\"title\":\"6 cans x 1 glass\",\"untranslatedTitle\":\"6 cans x 1 glass\"},{\"price\":{\"amount\":19.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Lagerita Pack\",\"vendor\":\"Distilling\",\"id\":\"15429630591302\",\"untranslatedTitle\":\"Lagerita Pack\",\"url\":\"\/products\/lagerita-pack\",\"type\":\"Cocktails\"},\"id\":\"56000119046470\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940\"},\"sku\":\"23005-10111-8\",\"title\":\"8 Pack (4 of each)\",\"untranslatedTitle\":\"8 Pack (4 of each)\"},{\"price\":{\"amount\":12.0,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Wingman Dog Toy\",\"vendor\":\"BrewDog\",\"id\":\"14776049566022\",\"untranslatedTitle\":\"Wingman Dog Toy\",\"url\":\"\/products\/wingman-dog-toy\",\"type\":\"Accessories\"},\"id\":\"53624210456902\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-wingman-dog-toy-brewdog-v2.jpg?v=1731405873\"},\"sku\":\"MA101006\",\"title\":\"1 Dog Toy\",\"untranslatedTitle\":\"1 Dog Toy\"},{\"price\":{\"amount\":4.0,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Lost Lager Glass\",\"vendor\":\"Merch\",\"id\":\"9160965030214\",\"untranslatedTitle\":\"Lost Lager Glass\",\"url\":\"\/products\/lost-lager-glass\",\"type\":\"Glassware\"},\"id\":\"50237234446662\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-20oz-lost-hero-glass-brewdog.jpg?v=1723575111\"},\"sku\":\"MG100243\",\"title\":\"1 x Pint Glass\",\"untranslatedTitle\":\"1 x Pint Glass\"},{\"price\":{\"amount\":5.0,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Wingman Hero Glass\",\"vendor\":\"BrewDog\",\"id\":\"14807160750406\",\"untranslatedTitle\":\"Wingman Hero Glass\",\"url\":\"\/products\/wingman-hero-glass\",\"type\":\"Glassware\"},\"id\":\"53780158546246\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-wingman-hero-glass-merch-brewdog-uk-v_2.png?v=1733318917\"}
3852,\"sku\":\"MG100260\",\"title\":\"1 Glass\",\"untranslatedTitle\":\"1 Glass\"},{\"price\":{\"amount\":5.0,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Cold Beer Hero Glass\",\"vendor\":\"BrewDog\",\"id\":\"14807162388806\",\"untranslatedTitle\":\"Cold Beer Hero Glass\",\"url\":\"\/products\/cold-beer-hero-glass\",\"type\":\"Glassware\"},\"id\":\"53780169359686\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-cold-beer-lager-glassware-brewdog-uk_1.png?v=1733319473\"},\"sku\":\"MG100261\",\"title\":\"1 Glass\",\"untranslatedTitle\":\"1 Glass\"},{\"price\":{\"amount\":5.0,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"PUNK HERO GLASS\",\"vendor\":\"BrewDog\",\"id\":\"14857377743174\",\"untranslatedTitle\":\"PUNK HERO GLASS\",\"url\":\"\/products\/punk-hero-glass\",\"type\":\"Glasses \u0026 Barware\"},\"id\":\"53949474439494\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-punk-pint-glass-beer-brewdog-v_2.png?v=1736847983\"},\"sku\":\"MG100241\",\"title\":\"1 Glass\",\"untranslatedTitle\":\"1 Glass\"},{\"price\":{\"amount\":32.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Lost Lager Bar Bundle\",\"vendor\":\"BrewDog\",\"id\":\"15227517436230\",\"untranslatedTitle\":\"Lost Lager Bar Bundle\",\"url\":\"\/products\/lost-lager-bar-bundle\",\"type\":\"Bundle\"},\"id\":\"55336966914374\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317\"},\"sku\":\"10111-C10BB\",\"title\":\"1 x Bar Bundle\",\"untranslatedTitle\":\"1 x Bar Bundle\"},{\"price\":{\"amount\":69.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Matchday Legends\",\"vendor\":\"BrewDog\",\"id\":\"15409143218502\",\"untranslatedTitle\":\"Matchday Legends\",\"url\":\"\/products\/match-day-legends\",\"type\":\"Beer\"},\"id\":\"55929741934918\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384\"}
3852,\"sku\":\"MD-LEGENDS-56\",\"title\":\"56 cans\",\"untranslatedTitle\":\"56 cans\"},{\"price\":{\"amount\":25.0,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Gift Card - Online Only\",\"vendor\":\"BrewDog\",\"id\":\"14827964072262\",\"untranslatedTitle\":\"Gift Card - Online Only\",\"url\":\"\/products\/gift-card\",\"type\":\"Bundle\"},\"id\":\"53853018358086\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/FRESH_PDP_GIFT_CARD.png?v=1754576346\"},\"sku\":\"1-GIFTCARD-25\",\"title\":\"£25.00\",\"untranslatedTitle\":\"£25.00\"},{\"price\":{\"amount\":26.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"CONGRATS - Personalised\",\"vendor\":\"BrewDog\",\"id\":\"14780519711046\",\"untranslatedTitle\":\"CONGRATS - Personalised\",\"url\":\"\/products\/congrats\",\"type\":\"Beer\"},\"id\":\"53653157708102\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/pdp-personalisedcans-celebrationbundle-800x800-brewdog.jpg?v=1731682191\"},\"sku\":\"PUNK-PERSONALISED-6\",\"title\":\"6 cans x 1 glass\",\"untranslatedTitle\":\"6 cans x 1 glass\"},{\"price\":{\"amount\":19.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Sweet Talk\",\"vendor\":\"BrewDog\",\"id\":\"15412545978694\",\"untranslatedTitle\":\"Sweet Talk\",\"url\":\"\/products\/sweet-talk\",\"type\":\"Wine\"},\"id\":\"55955936936262\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/BDxNewTheory_SweetTalk_1080x1080_03.png?v=1770392466\"},\"sku\":\"06-WN-56\",\"title\":\"1 x Bottle\",\"untranslatedTitle\":\"1 x Bottle\"},{\"price\":{\"amount\":19.99,\"currencyCode\":\"GBP\"},\"product\":{\"title\":\"Craft Beer Gift Pack\",\"vendor\":\"Gifting\",\"id\":\"9139983221062\",\"untranslatedTitle\":\"Craft Beer Gift Pack\",\"url\":\"\/products\/the-craft
3852-beer-gift-pack\",\"type\":\"Beer\"},\"id\":\"50169179537734\",\"image\":{\"src\":\"\/\/brewdog.com\/cdn\/shop\/files\/Fathers_Day_2026_Digital_Assets_11_800x800_PDP.png?v=1782899742\"},\"sku\":\"10000-C6330-YOU\",\"title\":\"6 Cans + 1 Harmony Glass\",\"untranslatedTitle\":\"6 Cans + 1 Harmony Glass\"}]}}]]"});})();</script>
3852<script> 3853 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 3854 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 3855 window.ShopifyAnalytics.meta.currency = 'GBP'; 3856 var meta = {"products":[{"id":15676241281350,"gid":"gid:\/\/shopify\/Product\/15676241281350","vendor":"BrewDog","type":"Advent","handle":"beer-advent-calendar-2026","variants":[{"id":57113497731398,"price":5199,"name":"Advent Calendar 2026 - 1 Advent Calendar","public_title":"1 Advent Calendar","sku":"10000-ADVENT-2026-EC"}],"remote":false},{"id":14908242002246,"gid":"gid:\/\/shopify\/Product\/14908242002246","vendor":"BrewDog","type":"Gift","handle":"dad-match-beer-personalised","variants":[{"id":54116156277062,"price":2699,"name":"Dads Match Beer - 6 cans x 1 glass","public_title":"6 cans x 1 glass","sku":"PUNK-PERSONALISED-6"},{"id":56535138238790,"price":3999,"name":"Dads Match Beer - 12 cans","public_title":"12 cans","sku":"PUNK-PERSONALISED-12"},{"id":56535138271558,"price":7499,"name":"Dads Match Beer - 24 cans","public_title":"24 cans","sku":"PUNK-PERSONALISED-24"},{"id":56535138304326,"price":13999,"name":"Dads Match Beer - 48 cans","public_title":"48 cans","sku":"PUNK-PERSONALISED-48"}],"remote":false},{"id":14908252324166,"gid":"gid:\/\/shopify\/Product\/14908252324166","vendor":"BrewDog","type":"Gift","handle":"purple-tartan-personalised","variants":[{"id":54116189503814,"price":2699,"name":"Tartan Brew - 6 cans x 1 glass","public_title":"6 cans x 1 glass","sku":"PUNK-PERSONALISED-6"},{"id":56533490008390,"price":3999,"name":"Tartan Brew - 12 cans","public_title":"12 cans","sku":"PUNK-PERSONALISED-12"},{"id":56533490041158,"price":7499,"name":"Tartan Brew - 24 cans","public_title":"24 cans","sku":"PUNK-PERSONALISED-24"},{"id":56533490073926,"price":13999,"name":"Tartan Brew - 48 cans","public_title":"48 cans","sku":"PUNK-PERSONALISED-48"}],"remote":false},{"id":14770715754822,"gid":"gid:\/\/shopify\/Product\/14770715754822","vendor":"BrewDog","type":"Beer","handle":"birthday","variants":[{"id":53601172586822,"price":2699,"name":"BIRTHDAY - Personalised - 6 cans x 1 glass","public_title":"6 cans x 1 glass","sku":"PUNK-PERSONALISED-6"},{"id":56006085247302,"price":3999,"name":"BIRTHDAY - Personalised - 12 cans","public_title":"12 cans","sku":"PUNK-PERSONALISED-12"},{"id":56006085280070,"price":7499,"name":"BIRTHDAY - Personalised - 24 cans","public_title":"24 cans","sku":"PUNK-PERSONALISED-24"},{"id":56006085312838,"price":13999,"name":"BIRTHDAY - Personalised - 48 cans","public_title":"48 cans","sku":"PUNK-PERSONALISED-48"}],"remote":false},{"id":15429630591302,"gid":"gid:\/\/shopify\/Product\/15429630591302","vendor":"Distilling","type":"Cocktails","handle":"lagerita-pack","variants":[{"id":56000119046470,"price":1999,"name":"Lagerita Pack - 8 Pack (4 of each)","public_title":"8 Pack (4 of each)","sku":"23005-10111-8"},{"id":56000119079238,"price":3799,"name":"Lagerita Pack - 16 Pack (8 of each)","public_title":"16 Pack (8 of each)","sku":"23005-10111-8"}],"remote":false},{"id":14776049566022,"gid":"gid:\/\/shopify\/Product\/14776049566022","vendor":"BrewDog","type":"Accessories","handle":"wingman-dog-toy","variants":[{"id":53624210456902,"price":1200,"name":"Wingman Dog Toy - 1 Dog Toy","public_title":"1 Dog Toy","sku":"MA101006"}],"remote":false},{"id":9160965030214,"gid":"gid:\/\/shopify\/Product\/9160965030214","vendor":"Merch","type":"Glassware","handle":"lost-lager-glass","variants":[{"id":50237234446662,"price":400,"name":"Lost Lager Glass - 1 x Pint Glass","public_title":"1 x Pint Glass","sku":"MG100243"}],"remote":false},{"id":14807160750406,"gid":"gid:\/\/shopify\/Product\/14807160750406","vendor":"BrewDog","type":"Glassware","handle":"wingman-hero-glass","variants":[{"id":53780158546246,"price":500,"name":"Wingman Hero Glass - 1 Glass","public_title":"1 Glass","sku":"MG100260"}],"remote":false},{"id":14807162388806,"gid":"gid:\/\/shopify\/Product\/14807162388806","vendor":"BrewDog","type":"Glassware","handle":"cold-beer-hero-glass","variants":[{"id":53780169359686,"price":500,"name":"Cold Beer Hero Glass - 1 Glass","public_title":"1 Glass","sku":"MG100261"}],"remote":false},{"id":14857377743174,"gid":"gid:\/\/shopify\/Product\/14857377743174","vendor":"BrewDog","type":"Glasses \u0026 Barware","handle":"punk-hero-glass","variants":[{"id":53949474439494,"price":500,"name":"PUNK HERO GLASS - 1 Glass","public_title":"1 Glass","sku":"MG100241"}],"remote":false},{"id":15227517436230,"gid":"gid:\/\/shopify\/Product\/15227517436230","vendor":"BrewDog","type":"Bundle","handle":"lost-lager-bar-bundle","variants":[{"id":55336966914374,"price":3299,"name":"Lost Lager Bar Bundle - 1 x Bar Bundle","public_title":"1 x Bar Bundle","sku":"10111-C10BB"}],"remote":false},{"id":15409143218502,"gid":"gid:\/\/shopify\/Product\/15409143218502","vendor":"BrewDog","type":"Beer","handle":"match-day-legends","variants":[{"id":55929741934918,"price":6999,"name":"Matchd
3856ay Legends - 56 cans","public_title":"56 cans","sku":"MD-LEGENDS-56"},{"id":56658712854854,"price":7499,"name":"Matchday Legends - 56 cans + 2 Glass","public_title":"56 cans + 2 Glass","sku":"MD-LEGENDS-56+2G"}],"remote":false},{"id":14827964072262,"gid":"gid:\/\/shopify\/Product\/14827964072262","vendor":"BrewDog","type":"Bundle","handle":"gift-card","variants":[{"id":53853018358086,"price":2500,"name":"Gift Card - Online Only - £25.00","public_title":"£25.00","sku":"1-GIFTCARD-25"},{"id":53853018390854,"price":5000,"name":"Gift Card - Online Only - £50.00","public_title":"£50.00","sku":"1-GIFTCARD-50"},{"id":53853018423622,"price":10000,"name":"Gift Card - Online Only - £100.00","public_title":"£100.00","sku":"1-GIFTCARD-100"}],"remote":false},{"id":14780519711046,"gid":"gid:\/\/shopify\/Product\/14780519711046","vendor":"BrewDog","type":"Beer","handle":"congrats","variants":[{"id":53653157708102,"price":2699,"name":"CONGRATS - Personalised - 6 cans x 1 glass","public_title":"6 cans x 1 glass","sku":"PUNK-PERSONALISED-6"}],"remote":false},{"id":15412545978694,"gid":"gid:\/\/shopify\/Product\/15412545978694","vendor":"BrewDog","type":"Wine","handle":"sweet-talk","variants":[{"id":55955936936262,"price":1999,"name":"Sweet Talk - 1 x Bottle","public_title":"1 x Bottle","sku":"06-WN-56"}],"remote":false},{"id":9139983221062,"gid":"gid:\/\/shopify\/Product\/9139983221062","vendor":"Gifting","type":"Beer","handle":"the-craft-beer-gift-pack","variants":[{"id":50169179537734,"price":1999,"name":"Craft Beer Gift Pack - 6 Cans + 1 Harmony Glass","public_title":"6 Cans + 1 Harmony Glass","sku":"10000-C6330-YOU"}],"remote":false}],"page":{"pageType":"collection","resourceType":"collection","resourceId":628219543878,"requestId":"87939359-7e4f-45b8-b9c2-60da4e6041f7-1790239296"}}; 3857 for (var attr in meta) { 3858 window.ShopifyAnalytics.meta[attr] = meta[attr]; 3859 } 3860</script>
vendor: 1 bytes, line 3860
3860
3861<script class="analytics"> 3862 (function () { 3863 var customDocumentWrite = function(content) { 3864 var jquery = null; 3865 3866 if (window.jQuery) { 3867 jquery = window.jQuery; 3868 } else if (window.Checkout && window.Checkout.$) { 3869 jquery = window.Checkout.$; 3870 } 3871 3872 if (jquery) { 3873 jquery('body').append(content); 3874 } 3875 }; 3876 3877 var hasLoggedConversion = function(token) { 3878 if (token) { 3879 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 3880 } 3881 return false; 3882 } 3883 3884 var setCookieIfConversion = function(token) { 3885 if (token) { 3886 var twoMonthsFromNow = new Date(Date.now()); 3887 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 3888 3889 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 3890 } 3891 } 3892 3893 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 3894 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 3895 if (trekkie.integrations) { 3896 return; 3897 } 3898 trekkie.methods = [ 3899 'identify', 3900 'page', 3901 'ready', 3902 'track', 3903 'trackForm', 3904 'trackLink' 3905 ]; 3906 trekkie.factory = function(method) { 3907 return function() { 3908 var args = Array.prototype.slice.call(arguments); 3909 args.unshift(method); 3910 trekkie.push(args); 3911 if (method == 'track' || method == 'page') { 3912 try { 3913 if (window.__TREKKIE_SHIM_QUEUE == null) { 3914 window.__TREKKIE_SHIM_QUEUE = []; 3915 } 3916 window.__TREKKIE_SHIM_QUEUE.push({ 3917 from: 'trekkie-stub', 3918 method: method, 3919 args: args.slice(1) 3920 }); 3921 } catch (e) { 3922 // no-op 3923 } 3924 } 3925 return trekkie; 3926 }; 3927 }; 3928 for (var i = 0; i < trekkie.methods.length; i++) { 3929 var key = trekkie.methods[i]; 3930 trekkie[key] = trekkie.factory(key); 3931 } 3932 trekkie.load = function(config) { 3933 trekkie.config = config || {}; 3934 trekkie.config.initialDocumentCookie = document.cookie; 3935 var first = document.getElementsByTagName('script')[0]; 3936var script = document.createElement('script'); 3937script.type = 'text/javascript'; 3938script.onerror = function(e) { 3939 var scriptFallback = document.createElement('script'); 3940 scriptFallback.type = 'text/javascript'; 3941 scriptFallback.onerror = function(error) { 3942 var Monorail = { 3943 produce: function produce(monorailDomain, schemaId, payload) { 3944 var currentMs = new Date().getTime(); 3945 var event = { 3946 schema_id: schemaId, 3947 payload: payload, 3948 metadata: { 3949 event_created_at_ms: currentMs, 3950 event_sent_at_ms: currentMs 3951 } 3952 }; 3953 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 3954 }, 3955 sendRequest: function sendRequest(endpointUrl, payload) { 3956 // Try the sendBeacon API 3957 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 3958 var blobData = new window.Blob([payload], { 3959 type: 'text/plain' 3960 }); 3961 3962 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 3963 return true; 3964 } // sendBeacon was not successful 3965 3966 } // XHR beacon 3967 3968 var xhr = new XMLHttpRequest(); 3969 3970 try { 3971 xhr.open('POST', endpointUrl); 3972 xhr.setRequestHeader('Content-Type', 'text/plain'); 3973 xhr.send(payload); 3974 } catch (e) { 3975 console.log(e); 3976 } 3977 3978 return false; 3979 }, 3980 isIos12: function isIos12() { 3981 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 3982 } 3983 }; 3984 Monorail.produce('monorail-edge.shopifysvc.com', 3985 'trekkie_storefront_load_errors/1.1', 3986 {shop_id: 82272813382, 3987 theme_id: 185229017414, 3988 app_name: "storefront", 3989 context_url: window.location.href, 3990 source_url: "//brewdog.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 3991 3992 }; 3993 scriptFallback.async = true; 3994 scriptFallback.src = '//brewdog.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 3995 first.parentNode.insertBefore(scriptFallback, first); 3996}; 3997script.async = true; 3998script.src = '//brewdog.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 3999first.parentNode.insertBefore(script, first); 4000 4001 }; 4002 trekkie.load( 4003 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":82272813382,"isMerchantRequest":null,"themeId":185229017414,"themeCityHash":"4144757869152782196","contentLanguage":"en","currency":"GBP","eventMetadataId":"0efdf58b-4bdc-47d8
4003-9b65-372d2639dfda"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 4004 ); 4005 4006 var loaded = false; 4007 trekkie.ready(function() { 4008 if (loaded) return; 4009 loaded = true; 4010 4011 window.ShopifyAnalytics.lib = window.trekkie; 4012 4013 var originalDocumentWrite = document.write; 4014 document.write = customDocumentWrite; 4015 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 4016 document.write = originalDocumentWrite; 4017 4018 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 4019 var token = match? match[1]: undefined; 4020 if (!hasLoggedConversion(token)) { 4021 setCookieIfConversion(token); 4022 window.ShopifyAnalytics.lib.track("Viewed Product Category",{"currency":"GBP","category":"Collection: shop-all-gifts","collectionName":"shop-all-gifts","collectionId":628219543878,"nonInteraction":true},undefined,undefined,{"shopifyEmitted":true}); 4023 } 4024 }); 4025 4026 window.ShopifyAnalytics.lib.page(null,{"pageType":"collection","resourceType":"collection","resourceId":628219543878,"requestId":"87939359-7e4f-45b8-b9c2-60da4e6041f7-1790239296","shopifyEmitted":true}); 4027 4028 var eventsListenerScript = document.createElement('script'); 4029 eventsListenerScript.async = true; 4030 eventsListenerScript.src = "//brewdog.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 4031 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 4032})();</script>
vendor: 1 bytes, line 4032
4032
4033<script 4034 defer 4035 src="https://brewdog.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 4036 data-application="storefront-renderer" 4037 data-shop-id="82272813382" 4038 data-render-region="gcp-us-west1" 4039 data-page-type="collection" 4040 data-theme-instance-id="185229017414" 4041 data-theme-name="UWP FW4 Theme" 4042 data-theme-version="1.0.0" 4043 data-monorail-region="shop_domain" 4044 data-resource-timing-sampling-rate="10" 4045 data-shs="true" 4046 data-shs-beacon="true" 4047 data-shs-export-with-fetch="true" 4048 data-shs-logs-sample-rate="1" 4049 data-shs-beacon-endpoint="https://brewdog.com/api/collect" 4050></script>
4050 4051<meta name="shopify-y" content="4d20ddec-998e-4bd1-b793-bfc96962ceb2" data-expiration="1821796896000"><meta name="shopify-s" content="3eff4869-91b6-4363-8e19-b53c477be2c9" data-expiration="1790241096000"><meta name="new-cookie-storage-activated" content="t"> 4052</head> 4053 <body class="template-collection brewdog prevent-x-overflow"> 4054 4055 <a class="visually-hidden focusable skip-link" href="#main-content"> 4056 Skip to content 4057 </a> 4058 <div id="shopify-section-localization-ui" class="shopify-section"> 4059 4060 4061
4061<script src="//brewdog.com/cdn/shop/t/271/assets/localization-ui-wIC-bWLM.js" type="module" crossorigin="anonymous"></script>
4061 4062 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/utils-D8tYCXRD.js" crossorigin="anonymous"> 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074<uwp-localization-ui 4075 role="section" 4076 class="localization-ui" 4077 aria-label="Where would you like to shop?" 4078 setting-multi-store="true" 4079 setting-store-instances=" 4080 { 4081 "instances": [ 4082 4083 { 4084 "name": "", 4085 "publicUrl": "https://au.brewdog.com/", 4086 "shopifyUrl": "", 4087 "supportedLocales": ["EN-AU"], 4088 "supportedCountries": ["EN:Australia"], 4089 "supportedLanguages": ["EN:English"], 4090 "baseCountry": "AU", 4091 "baseLanguage": "EN" 4092 }, 4093 { 4094 "name": "", 4095 "publicUrl": "https://de.brewdog.com/", 4096 "shopifyUrl": "", 4097 "supportedLocales": ["DE-DE"], 4098 "supportedCountries": ["DE:Germany"], 4099 "supportedLanguages": ["DE:German"], 4100 "baseCountry": "DE", 4101 "baseLanguage": "DE" 4102 }, 4103 { 4104 "name": "", 4105 "publicUrl": "https://es.brewdog.com/", 4106 "shopifyUrl": "", 4107 "supportedLocales": ["ES-ES"], 4108 "supportedCountries": ["ES:Spain"], 4109 "supportedLanguages": ["ES:Spanish"], 4110 "baseCountry": "ES", 4111 "baseLanguage": "ES" 4112 }, 4113 { 4114 "name": "", 4115 "publicUrl": "https://fr.brewdog.com/", 4116 "shopifyUrl": "", 4117 "supportedLocales": ["FR-FR"], 4118 "supportedCountries": ["FR:France"], 4119 "supportedLanguages": ["FR:French"], 4120 "baseCountry": "FR", 4121 "baseLanguage": "FR" 4122 }, 4123 { 4124 "name": "", 4125 "publicUrl": "https://nl.brewdog.com/", 4126 "shopifyUrl": "", 4127 "supportedLocales": ["NL-NL"], 4128 "supportedCountries": ["NL:Netherlands"], 4129 "supportedLanguages": ["NL:Dutch"], 4130 "baseCountry": "NL", 4131 "baseLanguage": "NL" 4132 }, 4133 { 4134 "name": "", 4135 "publicUrl": "https://usa.brewdog.com/", 4136 "shopifyUrl": "", 4137 "supportedLocales": ["EN-US"], 4138 "supportedCountries": ["US:United States"], 4139 "supportedLanguages": ["EN:English"], 4140 "baseCountry": "US", 4141 "baseLanguage": "EN" 4142 } 4143 ] 4144 } 4145" 4146 setting-store-markets=" 4147 { 4148 "markets": [ 4149 4150 { 4151 "name": "Austria", 4152 "isoCode": "AT", 4153 "languages": [ 4154 4155 { 4156 "name": "English", 4157 "isoCode": "EN" 4158 } 4159 4160 ] 4161 }, 4162 { 4163 "name": "Belgium", 4164 "isoCode": "BE", 4165 "languages": [ 4166 4167 { 4168 "name": "English", 4169 "isoCode": "EN" 4170 } 4171 4172 ] 4173 }, 4174 { 4175 "name": "Bulgaria", 4176 "isoCode": "BG", 4177 "languages": [ 4178 4179 { 4180 "name": "English", 4181 "isoCode": "EN" 4182 } 4183 4184 ] 4185 }, 4186 { 4187 "name": "Croatia", 4188 "isoCode": "HR", 4189 "languages": [ 4190 4191 { 4192 "name": "English", 4193 "isoCode": "EN" 4194 } 4195 4196 ] 4197 }, 4198 { 4199 "name": "Cyprus", 4200 "isoCode": "CY", 4201 "languages": [ 4202 4203 { 4204 "name": "English", 4205 "isoCode": "EN" 4206 } 4207 4208 ] 4209 }, 4210 { 4211 "name": "Czechia", 4212 "isoCode": "CZ", 4213 "languages": [ 4214 4215 { 4216 "name": "English", 4217 "isoCode": "EN" 4218 } 4219 4220 ] 4221 }, 4222 { 4223 "name": "Denmark", 4224 "isoCode": "DK", 4225 "languages": [ 4226 4227 { 4228 "name": "English", 4229 "isoCode": "EN" 4230 } 4231 4232 ] 4233 }, 4234 { 4235 "name": "Estonia", 4236 "isoCode": "EE", 4237 "languages": [ 4238 4239 { 4240 "name": "English", 4241 "isoCode": "EN" 4242 } 4243 4244 ] 4245 }, 4246 { 4247 "name": "Finland", 4248 "isoCode": "FI", 4249 "languages": [ 4250 4251 { 4252 "name": "English", 4253 "isoCode": "EN" 4254 } 4255 4256 ] 4257 }, 4258 { 4259 "name": "France", 4260 "isoCode": "FR", 4261 "languages": [ 4262 4263 { 4264 "name": "English", 4265 "isoCode": "EN" 4266 } 4267 4268 ] 4269 }, 4270 { 4271 "name": "Germany", 4272 "isoCode": "DE", 4273 "languages": [ 4274 4275 { 4276 "name": "English", 4277 "isoCode": "EN" 4278 } 4279 4280 ] 4281 }, 4282 { 4283 "name": "Greece", 4284 "isoCode": "GR", 4285 "languages": [ 4286 4287 { 4288 "name": "English", 4289 "isoCode": "EN" 4290 } 4291 4292 ] 4293 }, 4294 { 4295 "name": "Hungary", 4296 "isoCode": "HU", 4297 "languages": [ 4298 4299 { 4300 "name": "English", 4301 "isoCode": "EN" 4302 } 4303 4304 ] 4305 }, 4306 { 4307 "name": "Ireland", 4308 "isoCode": "IE", 4309 "languages": [ 4310 4311 { 4312 "name": "English", 4313 "isoCode": "EN" 4314 } 4315 4316 ] 4317 }, 4318 { 4319 "name": "Italy", 4320 "isoCode": "IT", 4321 "languages": [ 4322 4323 { 4324 "name": "English", 4325 "isoCode": "EN" 4326 } 4327 4328 ] 4329 }, 4330 { 4331 "name": "Latvia", 4332 "isoCode": "LV", 4333 "languages": [ 4334 4335 { 4336 "name": "English", 4337 "isoCode": "EN" 4338 } 4339 4340 ] 4341 }, 4342 { 4343 "name": "Lithuania", 4344 "isoCode": "LT", 4345 "languages": [ 4346 4347 { 4348 "name": "English", 4349 "isoCode": "EN" 4350 } 4351 4352 ] 4353 }, 4354 { 4355 "name": "Luxembourg", 4356 "isoCode": "LU", 4357 "languages": [ 4358 4359 { 4360 "name": "English", 4361 "isoCode": "EN" 4362 } 4363 4364 ] 4365 }, 4366 { 4367 "name": "Malta", 4368 "isoCode": "MT", 4369 "languages": [ 4370 4371 { 4372 "name": "English", 4373 "isoCode": "EN" 4374 } 4375 4376 ] 4377 }, 4378 { 4379 "name": "Netherlands", 4380 "isoCode": "NL", 4381 "languages": [ 4382 4383 { 4384 "name": "English", 4385 "isoCode": "EN" 4386 } 4387 4388 ] 4389 }, 4390 { 4391 "name": "Poland", 4392 "isoCode": "PL", 4393 "languages": [ 4394 4395 { 4396 "name": "English", 4397 "isoCode": "EN" 4398 } 4399 4400 ] 4401 }, 4402 { 4403 "name": "Portugal", 4404 "isoCode": "PT", 4405 "languages": [ 4406 4407 { 4408 "name": "English", 4409 "isoCode": "EN" 4410 } 4411 4412 ] 4413 }, 4414 { 4415 "name": "Romania", 4416 "isoCode": "RO", 4417 "languages": [ 4418 4419 { 4420 "name": "English", 4421 "isoCode": "EN" 4422 } 4423 4424 ] 4425 }, 4426 { 4427 "name": "Slovakia", 4428 "isoCode": "SK", 4429 "languages": [ 4430 4431 { 4432 "name": "English", 4433 "isoCode": "EN" 4434 } 4435 4436 ] 4437 }, 4438 { 4439 "name": "Slovenia", 4440 "isoCode": "SI", 4441 "languages": [ 4442 4443 { 4444 "name": "English", 4445 "isoCode": "EN" 4446 } 4447 4448 ] 4449 }, 4450 { 4451 "name": "Spain", 4452 "isoCode": "ES", 4453 "languages": [ 4454 4455 { 4456 "name": "English", 4457 "isoCode": "EN" 4458 } 4459 4460 ] 4461 }, 4462 { 4463 "name": "Sweden", 4464 "isoCode": "SE", 4465 "languages": [ 4466 4467 { 4468 "name": "English", 4469 "isoCode": "EN" 4470 } 4471 4472 ] 4473 }, 4474 { 4475 "name": "United Kingdom", 4476 "isoCode": "GB", 4477 "languages": [ 4478 4479 { 4480 "name": "English", 4481 "isoCode": "EN" 4482 } 4483 4484 ] 4485 } 4486 ] 4487 } 4488" 4489 setting-current-country="GB" 4490 setting-current-language="EN" 4491 setting-persist-days="28" 4492> 4493 4494 4495 4496 4497 <uwp-modal 4498 modal-name="localization" 4499 class="modal" 4500 aria-hidden="true" 4501> 4502 4503 4504 <div class="modal__overlay" tabindex="-1" data-close-modal></div> 4505 4506 4507 <dialog 4508 class="modal__container" 4509 role="dialog" 4510 aria-modal="true" 4511 js-uwp-modal="modal" 4512 4513 aria-labelledby="This is a modal window." 4514 4515 > 4516 <div class="modal__container-content"> 4517 <button 4518 class="modal__close-button" 4519 data-close-modal 4520 type="button" 4521 aria-label="Close dialog" 4522 > 4523 4524 4525 4526 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 4527 <path d="M13.3443 12L18.9999 6.34431L17.6556 5L12 10.6557L6.34431 5L5 6.34431L10.6557 12L5 17.6556L6.34431 19L12 13.3443L17.6556 19L18.9999 17.6556L13.3443 12Z" fill="#111111"/> 4528 </svg> 4529 4530 4531 4532 4533 </button> 4534 4535 <div class="modal__content"> 4536 4537 4538 4539 <div 4540 js-localization-ui="choice" 4541 class="localization-ui__choice visually-hidden" 4542 >
4543 <span class="localization-ui__title text-2l--bold"> 4544 Look's like you're in 4545 <span js-localization-ui="choice-country"></span> 4546 </span> 4547 4548 <span class="localization-ui__text text-m" js-localization-ui="choice-text"> 4549 Do you want to shop on our [replace-here] site instead? 4550 </span> 4551 4552 <div class="localization-ui__choice-actions"> 4553 <button 4554 js-localization-ui="shop-here" 4555 class="btn btn-transparent localization-ui__button" 4556 type="button" 4557 > 4558 Remain on [replace-here] store 4559 </button> 4560 4561 <button 4562 js-localization-ui="change-region" 4563 class="localization-ui__button btn btn-black" 4564 type="button" 4565 > 4566 Change Store 4567 </button> 4568 </div> 4569 </div> 4570 4571 4572 <div 4573 js-localization-ui="settings" 4574 class="localization-ui__settings" 4575 ><form method="post" action="/localization" id="localization-ui-settings-form" accept-charset="UTF-8" class="localization-ui__form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/collections/shop-all-gifts" /><span class="localization-ui__title text-2l--bold"> 4576 Where are we shipping to? 4577 </span> 4578 <div class="localization-ui__form-field"> 4579 <label class="localization-ui__form-label label">Shipping to</label> 4580 4581 <select 4582 js-localization-ui="country-select" 4583 class="localization-ui__form-select" 4584 name="country_code" 4585 > 4586 <option disabled value=""> 4587 country 4588 </option><option 4589 value="AT" 4590 4591 4592 > 4593 Austria - AT</option><option 4594 value="BE" 4595 4596 4597 > 4598 Belgium - BE</option><option 4599 value="BG" 4600 4601 4602 > 4603 Bulgaria - BG</option><option 4604 value="HR" 4605 4606 4607 > 4608 Croatia - HR</option><option 4609 value="CY" 4610 4611 4612 > 4613 Cyprus - CY</option><option 4614 value="CZ" 4615 4616 4617 > 4618 Czechia - CZ</option><option 4619 value="DK" 4620 4621 4622 > 4623 Denmark - DK</option><option 4624 value="EE" 4625 4626 4627 > 4628 Estonia - EE</option><option 4629 value="FI" 4630 4631 4632 > 4633 Finland - FI</option><option 4634 value="FR" 4635 4636 4637 > 4638 France - FR</option><option 4639 value="DE" 4640 4641 4642 > 4643 Germany - DE</option><option 4644 value="GR" 4645 4646 4647 > 4648 Greece - GR</option><option 4649 value="HU" 4650 4651 4652 > 4653 Hungary - HU</option><option 4654 value="IE" 4655 4656 4657 > 4658 Ireland - IE</option><option 4659 value="IT" 4660 4661 4662 > 4663 Italy - IT</option><option 4664 value="LV" 4665 4666 4667 > 4668 Latvia - LV</option><option 4669 value="LT" 4670 4671 4672 > 4673 Lithuania - LT</option><option 4674 value="LU" 4675 4676 4677 > 4678 Luxembourg - LU</option><option 4679 value="MT" 4680 4681 4682 > 4683 Malta - MT</option><option 4684 value="NL" 4685 4686 4687 > 4688 Netherlands - NL</option><option 4689 value="PL" 4690 4691 4692 > 4693 Poland - PL</option><option 4694 value="PT" 4695 4696 4697 > 4698 Portugal - PT</option><option 4699 value="RO" 4700 4701 4702 > 4703 Romania - RO</option><option 4704 value="SK" 4705 4706 4707 > 4708 Slovakia - SK</option><option 4709 value="SI" 4710 4711 4712 > 4713 Slovenia - SI</option><option 4714 value="ES" 4715 4716 4717 > 4718 Spain - ES</option><option 4719 value="SE" 4720 4721 4722 > 4723 Sweden - SE</option><option 4724 value="GB" 4725 4726 selected 4727 4728 4729 selected 4730 4731 > 4732 United Kingdom - GB</option></select> 4733 </div> 4734 4735 4736 4737 4738 <button 4739 js-localization-ui="submit" 4740 class="localization-ui__submit btn btn-black" 4741 type="button" 4742 > 4743 Save 4744 </button></form></div> 4745 4746 </div> 4747 </div> 4748 </dialog> 4749 4750</uwp-modal> 4751 4752</uwp-localization-ui> 4753 4754 4755</div> 4756 4757 <div id="shopify-section-generic-popup" class="shopify-section"> 4758 4759 4760 4761 4762</div> 4763 <div id="shopify-section-og-popup" class="shopify-section"> 4764</div> 4765 <uwp-cart cart-data="{"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}"></uwp-cart> 4766 <header id="shopify-section-header-new" class="shopify-section header-new-section"> 4767 4768<style> 4769 /* âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4770 HEADER-NEW | Self-contained styles (bdh- prefix) 4771 âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 4772 .bdh-header *, 4773 .bdh-header *::before,
4774 .bdh-header *::after { 4775 box-sizing: border-box; 4776 } 4777 4778 .bdh-header { 4779 position: sticky; 4780 top: 0; 4781 z-index: 500; 4782 width: 100%; 4783 font-family: inherit; 4784 margin-bottom: 20px; 4785 } 4786 4787 /* ââ TOP BAR âââââââââââââââââââââââââââââââââââââââ */ 4788 .bdh-header__topbar { 4789 background-color: #f5f5f5; 4790 border-bottom: 1px solid #e5e5e3; 4791 padding: 10px 0px 10px 0px; 4792 } 4793 4794 .bdh-header__topbar-inner { 4795 max-width: 1280px; 4796 margin: 0 auto; 4797 padding: 0 24px; 4798 height: 36px; 4799 display: flex; 4800 align-items: center; 4801 justify-content: space-between; 4802 } 4803 4804 .bdh-header__delivery { 4805 font-size: 12px; 4806 font-weight: 600; 4807 color: #1a1a18; 4808 letter-spacing: 0.02em; 4809 } 4810 4811 .bdh-header__utility { 4812 display: flex; 4813 align-items: center; 4814 list-style: none; 4815 gap: 0; 4816 } 4817 4818 .bdh-header__utility-link { 4819 font-size: 12px; 4820 font-weight: 500; 4821 color: #1a1a18; 4822 text-decoration: none; 4823 padding: 0 10px; 4824 transition: opacity 0.15s; 4825 white-space: nowrap; 4826 } 4827 4828 .bdh-header__utility-link:hover { 4829 opacity: 0.65; 4830 } 4831 4832 .bdh-header__utility-sep { 4833 color: #c8c8c6; 4834 font-size: 12px; 4835 user-select: none; 4836 pointer-events: none; 4837 } 4838 4839 /* UK country placeholder */ 4840 .mupheader { 4841 position: relative; 4842 display: inline-flex; 4843 align-items: center; 4844 overflow: visible; 4845 } 4846 4847 /* The MUP app embed injects its dropdown with z-index: 100. The sticky 4848 header creates a stacking context at z-index: 500, so without this 4849 override the dropdown renders beneath other header elements. */ 4850 .mupheader .uk-region-custom-select__dropdown { 4851 z-index: 600 !important; 4852 } 4853 4854 /* The app's placeholder_text setting isn't propagating correctly via 4855 Liquid. Hide the rendered text and replace via ::after so the MUP 4856 JS reset also picks up the visual change. */ 4857 /* Match desktop trigger size to the MUP app's own compact mobile sizing */ 4858 .mupheader .uk-region-custom-select__trigger { 4859 margin-left: 6px; 4860 margin-right: 6px; 4861 padding: 6px 8px; 4862 gap: 6px; 4863 } 4864 4865 /* App embed has min-width: 300px â remove it so it fits the utility bar */ 4866 .mupheader .uk-region-selector-app-embed { 4867 min-width: 0 !important; 4868 max-width: none !important; 4869 } 4870 4871 /* Mobile: collapse "Select Region" and replace with "REGION" */ 4872 @media (max-width: 768px) { 4873 .mupheader .uk-region-custom-select__placeholder { 4874 font-size: 0; 4875 } 4876 .mupheader .uk-region-custom-select__placeholder::after { 4877 content: 'REGION'; 4878 font-size: 12px; 4879 } 4880 } 4881 4882 .mupheader__btn { 4883 display: flex; 4884 align-items: center; 4885 gap: 3px; 4886 background: none; 4887 border: none; 4888 cursor: pointer; 4889 font-size: 12px; 4890 font-weight: 600; 4891 color: #1a1a18; 4892 padding: 0 0 0 10px; 4893 transition: opacity 0.15s; 4894 } 4895 4896 .mupheader__btn:hover { 4897 opacity: 0.65; 4898 } 4899 4900 .mupheader__btn svg { 4901 width: 10px; 4902 height: 10px; 4903 transition: transform 0.2s; 4904 flex-shrink: 0; 4905 } 4906 4907 .mupheader.is-open .mupheader__btn svg { 4908 transform: rotate(180deg); 4909 } 4910 4911 .mupheader__dropdown { 4912 position: absolute; 4913 top: calc(100% + 10px); 4914 right: 0; 4915 min-width: 140px; 4916 background: #ffffff; 4917 border: 1px solid #e5e5e3; 4918 border-radius: 6px; 4919 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); 4920 padding: 8px 0; 4921 opacity: 0; 4922 visibility: hidden; 4923 transform: translateY(-6px); 4924 transition: all 0.18s ease; 4925 z-index: 600; 4926 } 4927 4928 .mupheader.is-open .mupheader__dropdown { 4929 opacity: 1; 4930 visibility: visible; 4931 transform: translateY(0); 4932 } 4933 4934 /* ââ MAIN NAV BAR ââââââââââââââââââââââââââââââââââ */ 4935 .bdh-header__main { 4936 background-color: #ffffff; 4937 border-bottom: 1px solid #e5e5e3; 4938 position: relative; /* positioning context for full-width mega menu */ 4939 } 4940 4941 .bdh-header__main-inner { 4942 max-width: 1280px; 4943 margin: 0 auto; 4944 padding: 0 24px; 4945 height: 68px; 4946 /* 3-column grid: logo | nav (truly centred) | actions */ 4947 display: grid; 4948 grid-template-columns: 1fr auto 1fr;
4949 align-items: center; 4950 } 4951 4952 /* Logo */ 4953 .bdh-header__logo { 4954 display: flex; 4955 align-items: center; 4956 text-decoration: none; 4957 color: inherit; 4958 justify-self: start; 4959 padding: 6px 0; 4960 } 4961 4962 .bdh-header__logo svg, 4963 .bdh-header__logo img { 4964 height: 46px; 4965 width: auto; 4966 display: block; 4967 } 4968 4969 /* Mobile logo: visible on small screens, hidden on desktop. 4970 Nested selectors (.bdh-header__logo .bdh-header__logo-*) outrank 4971 the generic .bdh-header__logo img rule above. */ 4972 .bdh-header__logo .bdh-header__logo-mobile { display: block; height: 30px; } 4973 .bdh-header__logo .bdh-header__logo-desktop { display: none; } 4974 4975 @media (min-width: 1025px) { 4976 .bdh-header__logo .bdh-header__logo-mobile { display: none; } 4977 .bdh-header__logo .bdh-header__logo-desktop { display: block; } 4978 } 4979 4980 /* ââ DESKTOP NAV âââââââââââââââââââââââââââââââââââ */ 4981 .bdh-header__nav { 4982 display: flex; 4983 align-items: stretch; 4984 height: 100%; 4985 } 4986 4987 .bdh-header__nav-list { 4988 display: flex; 4989 align-items: stretch; 4990 list-style: none; 4991 height: 100%; 4992 } 4993 4994 .bdh-header__nav-item { 4995 position: relative; 4996 display: flex; 4997 align-items: stretch; 4998 } 4999 5000 /* Pipe separator item */ 5001 .bdh-header__nav-item--sep { 5002 display: flex; 5003 align-items: center; 5004 padding: 0 4px; 5005 color: #c8c8c6; 5006 font-size: 16px; 5007 pointer-events: none; 5008 user-select: none; 5009 } 5010 5011 .bdh-header__nav-link { 5012 display: flex; 5013 align-items: center; 5014 gap: 5px; 5015 padding: 0 14px; 5016 font-size: 14px; 5017 font-weight: 600; 5018 color: #1a1a18; 5019 text-decoration: none; 5020 white-space: nowrap; 5021 border-bottom: 2px solid transparent; 5022 transition: border-color 0.15s, color 0.15s; 5023 cursor: pointer; 5024 background: none; 5025 border-left: none; 5026 border-right: none; 5027 border-top: none; 5028 } 5029 5030 .bdh-header__nav-link:hover, 5031 .bdh-header__nav-item--active > .bdh-header__nav-link, 5032 .bdh-header__nav-item.is-open > .bdh-header__nav-link { 5033 border-bottom-color: #1a1a18; 5034 color: #1a1a18; 5035 } 5036 5037 .bdh-header__nav-chevron { 5038 width: 11px; 5039 height: 11px; 5040 flex-shrink: 0; 5041 transition: transform 0.2s; 5042 } 5043 5044 .bdh-header__nav-item.is-open > .bdh-header__nav-link .bdh-header__nav-chevron { 5045 transform: rotate(180deg); 5046 } 5047 5048 /* ââ DROPDOWN ââââââââââââââââââââââââââââââââââââââ */ 5049 .bdh-header__dropdown { 5050 position: absolute; 5051 top: 100%; 5052 left: 0; 5053 min-width: 210px; 5054 background: #ffffff; 5055 border: 1px solid #e5e5e3; 5056 border-radius: 0 0 8px 8px; 5057 box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); 5058 padding: 6px 0; 5059 opacity: 0; 5060 visibility: hidden; 5061 transform: translateY(-4px); 5062 transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s; 5063 z-index: 450; 5064 } 5065 5066 .bdh-header__nav-item.is-open > .bdh-header__dropdown { 5067 opacity: 1; 5068 visibility: visible; 5069 transform: translateY(0); 5070 } 5071 5072 .bdh-header__dropdown-list { 5073 list-style: none; 5074 } 5075 5076 .bdh-header__dropdown-link { 5077 display: block; 5078 padding: 10px 20px; 5079 font-size: 14px; 5080 font-weight: 500; 5081 color: #1a1a18; 5082 text-decoration: none; 5083 transition: background 0.12s; 5084 white-space: nowrap; 5085 } 5086 5087 .bdh-header__dropdown-link:hover { 5088 background-color: #f5f5f5; 5089 } 5090 5091 /* sub-section label */ 5092 .bdh-header__dropdown-group-label { 5093 display: block; 5094 padding: 8px 20px 4px; 5095 font-size: 11px; 5096 font-weight: 700; 5097 color: #888; 5098 letter-spacing: 0.06em; 5099 text-transform: uppercase; 5100 border-top: 1px solid #f0f0ee; 5101 margin-top: 4px; 5102 } 5103 5104 .bdh-header__dropdown-group-label:first-child { 5105 border-top: none; 5106 margin-top: 0; 5107 } 5108 5109 /* ââ MEGA MENU (full-width grid, all children visible) ââ */ 5110 5111 /* Nav items that have a mega menu must not create a positioning context 5112 so the mega can position itself relative to .bdh-header__main */ 5113 .bdh-header__nav-item.has-mega { 5114 position: static; 5115 } 5116 5117 .bdh-mega { 5118 position: absolute; 5119 top: 100%; 5120 left: 0; 5121 right: 0; 5122 width: 100%; 5123 background: #ffffff; 5124 border: 1px solid #e5e5e3; 5125 border-top: none; 5126 border-radius: 20px 20px 10px 10px; 5127 box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12); 5128 opacity: 0; 5129 visibility: hidden; 5130 transform: translateY(-4px); 5131 transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s; 5132 z-index: 450; 5133 overflow: hidden; 5134 } 5135 5136 .bdh-header__nav-item.is-open > .bdh-mega { 5137 opacity: 1; 5138 visibility: visible; 5139 transform: translateY(0); 5140 } 5141 5142 /* Grid: up to 4 nav columns; 5 when a feature card is also present */ 5143 .bdh-mega__grid { 5144 max-width: 1280px; 5145 margin: 0 auto; 5146 padding: 28px 24px; 5147 display: grid; 5148 grid-template-columns: repeat(4, 1fr); 5149 gap: 32px 24px; 5150 } 5151 5152 /* When a feature card is in the grid it takes one slot, nav fills the rest */ 5153 .bdh-mega__grid--with-card { 5154 grid-template-columns: repeat(5, 1fr); 5155 } 5156 5157 /* Level-2 category heading (always a link) */ 5158 .bdh-mega__col-title { 5159 display: block; 5160 font-size: 11px; 5161 font-weight: 700; 5162 color: #1a1a18; 5163 text-decoration: none; 5164 text-transform: uppercase; 5165 letter-spacing: 0.07em; 5166 padding-bottom: 10px; 5167 margin-bottom: 4px; 5168 border-bottom: 2px solid #e5e5e3; 5169 transition: opacity 0.15s; 5170 } 5171 5172 .bdh-mega__col-title:hover { 5173 opacity: 0.6; 5174 } 5175 5176 /* Level-3 links list */ 5177 .bdh-mega__col-links { 5178 list-style: none; 5179 display: flex; 5180 flex-direction: column; 5181 } 5182 5183 .bdh-mega__col-link { 5184 display: block; 5185 padding: 8px 0; 5186 font-size: 14px; 5187 font-weight: 500; 5188 color: #444; 5189 text-decoration: none; 5190 border-bottom: 1px solid #f5f5f3; 5191 transition: color 0.12s, padding-left 0.12s; 5192 } 5193 5194 .bdh-mega__col-link:last-child { 5195 border-bottom: none; 5196 } 5197 5198 .bdh-mega__col-link:hover { 5199 color: #1a1a18; 5200 padding-left: 6px; 5201 } 5202 5203 /* ââ MEGA MENU FEATURE CARD âââââââââââââââââââââââ */ 5204 5205 .bdh-mega__card { 5206 position: relative; 5207 border-radius: 8px; 5208 overflow: hidden; 5209 aspect-ratio: 1 / 1; 5210 align-self: start; /* prevent grid stretch from overriding aspect-ratio */ 5211 width: 100%; 5212 background-size: cover; 5213 background-position: center; 5214 background-color: #1a1a18; /* fallback, overridden inline */ 5215 text-decoration: none; 5216 display: block; 5217 } 5218 5219 /* Desktop position â CSS order on the shared grid */ 5220 .bdh-mega__card--pos-start { order: -1; } 5221 .bdh-mega__card--pos-end { order: 999; } 5222 5223 /* Overlay layer that holds text + button */ 5224 .bdh-mega__card-inner { 5225 position: absolute; 5226 inset: 0; 5227 display: flex; 5228 flex-direction: column; 5229 padding: 18px 16px; 5230 /* default: bottom-left â overridden by modifier classes below */ 5231 align-items: flex-start; 5232 justify-content: flex-end; 5233 } 5234 5235 /* Button position variants */ 5236 .bdh-mega__card--btn-top-left .bdh-mega__card-inner { align-items: flex-start; justify-content: flex-start; } 5237 .bdh-mega__card--btn-top-center .bdh-mega__card-inner { align-items: center; justify-content: flex-start; } 5238 .bdh-mega__card--btn-top-right .bdh-mega__card-inner { align-items: flex-end; justify-content: flex-start; } 5239 .bdh-mega__card--btn-center .bdh-mega__card-inner { align-items: center; justify-content: center; } 5240 .bdh-mega__card--btn-bottom-left .bdh-mega__card-inner { align-items: flex-start; justify-content: flex-end; } 5241 .bdh-mega__card--btn-bottom-center .bdh-mega__card-inner { align-items: center; justify-content: flex-end; } 5242 .bdh-mega__card--btn-bottom-right .bdh-mega__card-inner { align-items: flex-end; justify-content: flex-end; } 5243 5244 .bdh-mega__card-heading { 5245 font-size: 15px; 5246 font-weight: 700; 5247 line-height: 1.3; 5248 margin: 0 0 10px; 5249 color: inherit; 5250 } 5251 5252 .bdh-mega__card-btn { 5253 display: inline-block; 5254 padding: 9px 20px; 5255 font-size: 12px; 5256 font-weight: 700; 5257 letter-spacing: 0.06em; 5258 text-transform: uppercase; 5259 border: 2px solid transparent; 5260 border-radius: 9999px; 5261 text-decoration: none; 5262 transition: opacity 0.15s; 5263 white-space: nowrap; 5264 } 5265 5266 /* Solid black button â white text */ 5267 .bdh-mega__card-btn--black { 5268 background: #1a1a18; 5269 color: #ffffff; 5270 border-color: #1a1a18; 5271 } 5272 5273 /* Solid white button â black text */ 5274 .bdh-mega__card-btn--white { 5275 background: #ffffff; 5276 color: #1a1a18; 5277 border-color: #ffffff; 5278 } 5279 5280 .bdh-mega__card-btn:hover { 5281 opacity: 0.75; 5282 } 5283 5284 /* On smaller screens the card always appears at the bottom of the stacked grid */ 5285 @media (max-width: 1024px) { 5286 .bdh-mega__card { 5287 order: 999; 5288 min-height: 140px; 5289 } 5290 } 5291 5292 /* ââ ACTIONS (search, account, cart) âââââââââââââââ */ 5293 .bdh-header__actions { 5294 display: flex; 5295 align-items: center; 5296 gap: 4px; 5297 justify-self: end; 5298 align-self: stretch; /* grid item fills full 68px header height */ 5299 height: 100%; 5300 } 5301 5302 /* ââ ENHANCED SEARCH ââââââââââââââââââââââââââââââ */ 5303 .bdh-search { 5304 position: relative; 5305 } 5306 5307 /* Input bar â border is ALWAYS the light grey, never dark */ 5308 .bdh-search__bar { 5309 display: flex; 5310 align-items: center; 5311 border: none; 5312 border-radius: 100px; 5313 height: 38px; 5314 width: 200px; 5315 background: #f5f5f5; 5316 transition: width 0.25s ease, border-radius 0.18s, background 0.18s; 5317 overflow: hidden; 5318 } 5319 5320 /* Kill any global focus/hover border or outline on the bar itself */ 5321 .bdh-search__bar:focus, 5322 .bdh-search__bar:focus-within, 5323 .bdh-search.is-open .bdh-search__bar { 5324 border: none !important; 5325 outline: none !important; 5326 box-shadow: none !important; 5327 } 5328 5329 /* Expanded state â keep the pill, just widen it */ 5330 .bdh-search.is-open .bdh-search__bar,
5331 .bdh-search__bar:focus-within { 5332 background: #f5f5f5; 5333 width: 280px; 5334 } 5335 5336 .bdh-search__submit { 5337 display: flex; 5338 align-items: center; 5339 justify-content: center; 5340 background: none; 5341 border: none; 5342 cursor: pointer; 5343 padding: 0 10px; 5344 color: #888; 5345 flex-shrink: 0; 5346 height: 100%; 5347 transition: color 0.15s; 5348 } 5349 5350 .bdh-search__submit:hover { color: #1a1a18; } 5351 .bdh-search__submit svg { width: 16px; height: 16px; } 5352 5353 .bdh-search__input { 5354 flex: 1; 5355 border: none !important; 5356 outline: none !important; 5357 box-shadow: none !important; 5358 background: transparent; 5359 font-size: 13px; 5360 color: #1a1a18; 5361 padding: 0; 5362 min-width: 0; 5363 font-family: inherit; 5364 } 5365 5366 /* Override main-B0HiAEwe.css which applies outline:1px solid on 5367 input[type=text]:focus/:hover (specificity 0-2-1). 5368 Using ID + attribute + type = 1-2-1 beats it outright. */ 5369 #bdh-search input[type="text"], 5370 #bdh-search input[type="text"]:focus, 5371 #bdh-search input[type="text"]:focus-visible, 5372 #bdh-search input[type="text"]:hover, 5373 #bdh-search input[type="text"]:active, 5374 #bdh-msearch-wrap input[type="text"], 5375 #bdh-msearch-wrap input[type="text"]:focus, 5376 #bdh-msearch-wrap input[type="text"]:focus-visible, 5377 #bdh-msearch-wrap input[type="text"]:hover, 5378 #bdh-msearch-wrap input[type="text"]:active { 5379 outline: none !important; 5380 box-shadow: none !important; 5381 border: none !important; 5382 -webkit-appearance: none; 5383 appearance: none; 5384 } 5385 5386 /* Also kill on the form container itself */ 5387 #bdh-search .bdh-search__bar, 5388 #bdh-search .bdh-search__bar:focus, 5389 #bdh-search .bdh-search__bar:hover, 5390 #bdh-search .bdh-search__bar:focus-within { 5391 outline: none !important; 5392 box-shadow: none !important; 5393 border: none !important; 5394 } 5395 5396 .bdh-search__input::placeholder { color: #aaa; } 5397 5398 .bdh-search__clear { 5399 display: flex; 5400 align-items: center; 5401 justify-content: center; 5402 background: none; 5403 border: none; 5404 cursor: pointer; 5405 padding: 0 10px; 5406 color: #aaa; 5407 flex-shrink: 0; 5408 height: 100%; 5409 transition: color 0.15s; 5410 } 5411 5412 .bdh-search__clear:hover { color: #1a1a18; } 5413 .bdh-search__clear svg { width: 14px; height: 14px; } 5414 .bdh-search__clear[hidden] { display: none; } 5415 5416 /* Dropdown panel â floats below the pill with a small gap */ 5417 .bdh-search__dropdown { 5418 position: absolute; 5419 top: calc(100% + 6px); 5420 right: 0; 5421 width: 280px; 5422 background: #f5f5f5; 5423 border: none; 5424 border-radius: 16px; 5425 box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); 5426 z-index: 500; 5427 } 5428 5429 .bdh-search__dropdown[hidden] { display: none; } 5430 5431 /* Loading skeleton */ 5432 .bdh-search__loading { 5433 padding: 16px 16px; 5434 display: flex; 5435 flex-direction: column; 5436 gap: 12px; 5437 } 5438 5439 .bdh-search__loading[hidden] { display: none; } 5440 5441 .bdh-search__skel-row { 5442 display: flex; 5443 align-items: center; 5444 gap: 10px; 5445 } 5446 5447 .bdh-search__skel-img { 5448 width: 44px; 5449 height: 44px; 5450 border-radius: 4px; 5451 background: linear-gradient(90deg, #f0f0ee 25%, #e8e8e6 50%, #f0f0ee 75%); 5452 background-size: 200% 100%; 5453 animation: bdh-shimmer 1.2s infinite; 5454 flex-shrink: 0; 5455 } 5456 5457 .bdh-search__skel-lines { 5458 flex: 1; 5459 display: flex; 5460 flex-direction: column; 5461 gap: 6px; 5462 } 5463 5464 .bdh-search__skel-line { 5465 height: 10px; 5466 border-radius: 3px; 5467 background: linear-gradient(90deg, #f0f0ee 25%, #e8e8e6 50%, #f0f0ee 75%); 5468 background-size: 200% 100%; 5469 animation: bdh-shimmer 1.2s infinite; 5470 } 5471 5472 .bdh-search__skel-line--short { width: 50%; } 5473 5474 @keyframes bdh-shimmer { 5475 0% { background-position: 200% 0; } 5476 100% { background-position: -200% 0; } 5477 } 5478 5479 /* Results list */ 5480 .bdh-search__results[hidden] { display: none; } 5481 5482 .bdh-search__result-item { 5483 display: flex; 5484 align-items: center; 5485 gap: 12px; 5486 padding: 10px 14px; 5487 text-decoration: none; 5488 color: #1a1a18; 5489 transition: background 0.12s; 5490 outline: none; 5491 } 5492 5493 .bdh-search__result-item:hover, 5494 .bdh-search__result-item.is-focused { 5495 background: #ebebea; 5496 } 5497 5498 .bdh-search__result-img { 5499 width: 44px; 5500 height: 44px; 5501 object-fit: cover; 5502 border-radius: 4px; 5503 flex-shrink: 0; 5504 background: #f0f0ee; 5505 display: block; 5506 } 5507 5508 .bdh-search__result-img-placeholder { 5509 width: 44px; 5510 height: 44px; 5511 border-radius: 4px; 5512 background: #f0f0ee; 5513 flex-shrink: 0; 5514 display: flex; 5515 align-items: center; 5516 justify-content: center; 5517 color: #ccc; 5518 } 5519 5520 .bdh-search__result-img-placeholder svg {
5521 width: 20px; 5522 height: 20px; 5523 } 5524 5525 .bdh-search__result-meta { 5526 flex: 1; 5527 min-width: 0; 5528 display: flex; 5529 flex-direction: column; 5530 gap: 2px; 5531 } 5532 5533 .bdh-search__result-title { 5534 font-size: 13px; 5535 font-weight: 600; 5536 color: #1a1a18; 5537 line-height: 1.3; 5538 } 5539 5540 .bdh-search__result-title mark { 5541 background: none; 5542 color: inherit; 5543 font-weight: 800; 5544 } 5545 5546 .bdh-search__result-price { 5547 display: none; 5548 font-size: 12px; 5549 color: #555; 5550 margin-top: 2px; 5551 } 5552 5553 /* No results */ 5554 .bdh-search__empty { 5555 padding: 20px 16px; 5556 text-align: center; 5557 font-size: 13px; 5558 color: #888; 5559 } 5560 5561 .bdh-search__empty[hidden] { display: none; } 5562 5563 .bdh-search__empty strong { 5564 display: block; 5565 color: #1a1a18; 5566 font-size: 14px; 5567 margin-bottom: 4px; 5568 } 5569 5570 /* Divider between results and footer */ 5571 .bdh-search__footer { 5572 border-top: 1px solid #f0f0ee; 5573 padding: 10px 14px; 5574 display: flex; 5575 align-items: center; 5576 justify-content: space-between; 5577 } 5578 5579 .bdh-search__footer[hidden] { display: none; } 5580 5581 .bdh-search__view-all { 5582 font-size: 13px; 5583 font-weight: 600; 5584 color: #1a1a18; 5585 text-decoration: none; 5586 display: flex; 5587 align-items: center; 5588 gap: 4px; 5589 transition: gap 0.15s; 5590 } 5591 5592 .bdh-search__view-all:hover { gap: 7px; } 5593 5594 .bdh-search__view-all svg { 5595 width: 14px; 5596 height: 14px; 5597 } 5598 5599 .bdh-search__result-count { 5600 font-size: 12px; 5601 color: #aaa; 5602 } 5603 5604 /* Account button â mirrors .bdh-header__nav-item so top:100% == header bottom */ 5605 .bdh-header__account-wrap { 5606 position: relative; /* positioning context, exactly like nav-item */ 5607 display: flex; 5608 align-items: center; 5609 align-self: stretch; /* fills the full 68px actions height */ 5610 } 5611 5612 /* ââ ACCOUNT DROPDOWN ââ */ 5613 .bdh-account-dropdown { 5614 position: absolute; 5615 top: 100%; 5616 right: 0; 5617 min-width: 240px; 5618 background: #ffffff; 5619 border: 1px solid #e5e5e3; 5620 border-radius: 0 0 8px 8px; 5621 box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); 5622 padding: 6px 0; 5623 z-index: 500; 5624 overflow: hidden; 5625 opacity: 0; 5626 visibility: hidden; 5627 transform: translateY(-4px); 5628 transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s; 5629 } 5630 5631 .bdh-account-dropdown.is-open { 5632 opacity: 1; 5633 visibility: visible; 5634 transform: translateY(0); 5635 } 5636 5637 .bdh-account-list { 5638 list-style: none; 5639 padding: 0; 5640 margin: 0; 5641 } 5642 5643 .bdh-account-link { 5644 display: block; 5645 padding: 9px 20px; 5646 font-family: inherit; 5647 font-size: 15px; 5648 font-weight: 600; 5649 color: #1a1a18; 5650 text-decoration: none; 5651 white-space: nowrap; 5652 border-radius: 5px; 5653 margin: 0 6px; 5654 transition: background 0.12s, padding-left 0.12s; 5655 } 5656 5657 .bdh-account-link:hover { 5658 background: #f5f5f3; 5659 padding-left: 24px; 5660 } 5661 5662 .bdh-account-link--signout { 5663 color: #888; 5664 font-weight: 500; 5665 } 5666 5667 .bdh-account-sep { 5668 height: 1px; 5669 background: #e8e8e6; 5670 margin: 6px 14px; 5671 padding: 0; 5672 } 5673 5674 .bdh-header__icon-btn { 5675 display: flex; 5676 align-items: center; 5677 justify-content: center; 5678 background: none; 5679 border: none; 5680 cursor: pointer; 5681 padding: 8px; 5682 color: #1a1a18; 5683 text-decoration: none; 5684 border-radius: 4px; 5685 transition: background 0.15s; 5686 } 5687 5688 .bdh-header__icon-btn:hover { 5689 background: #f5f5f3; 5690 } 5691 5692 .bdh-header__icon-btn svg { 5693 width: 22px; 5694 height: 22px; 5695 display: block; 5696 } 5697 5698 /* Cart slot */ 5699 .bdh-header__cart { 5700 display: flex; 5701 align-items: center; 5702 } 5703 5704 /* Hamburger (mobile only) */ 5705 .bdh-header__hamburger { 5706 display: none; 5707 align-items: center; 5708 justify-content: center; 5709 background: none; 5710 border: none; 5711 cursor: pointer; 5712 padding: 8px; 5713 color: #1a1a18; 5714 margin-left: 8px; 5715 flex-shrink: 0; 5716 } 5717 5718 .bdh-header__hamburger svg { 5719 width: 24px; 5720 height: 24px; 5721 } 5722 5723 /* Mobile search icon â hidden on desktop, shown on mobile */ 5724 .bdh-header__mobile-search-btn { 5725 display: none; 5726 align-items: center; 5727 justify-content: center; 5728 background: none; 5729 border: none; 5730 cursor: pointer; 5731 padding: 8px; 5732 color: #1a1a18; 5733 flex-shrink: 0; 5734 } 5735 5736 .bdh-header__mobile-search-btn svg { 5737 width: 22px; 5738 height: 22px; 5739 } 5740 5741 /* ââ MOBILE OVERLAY âââââââââââââââââââââââââââââââ */ 5742 .bdh-header__overlay { 5743 display: none; 5744 position: fixed; 5745 inset: 0; 5746 background: rgba(0, 0, 0, 0.45); 5747 z-index: 900; 5748 opacity: 0; 5749 transition: opacity 0.3s; 5750 } 5751 5752 .bdh-header__overlay.is-visible { 5753 display: block; 5754 } 5755 5756 .bdh-header__overlay.is-active { 5757 opacity: 1; 5758 } 5759 5760 /* ââ MOBILE MENU DRAWER âââââââââââââââââââââââââââ */ 5761 .bdh-header__mobile-menu { 5762 position: fixed; 5763 top: 0; 5764 left: 0; 5765 width: 100%; 5766 max-width: 360px; 5767 height: 100dvh; 5768 background: #ffffff; 5769 z-index: 950; 5770 transform: translateX(-100%); 5771 transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); 5772 overflow-y: auto; 5773 overscroll-behavior: contain; 5774 display: flex; 5775 flex-direction: column; 5776 } 5777 5778 .bdh-header__mobile-menu.is-open { 5779 transform: translateX(0); 5780 } 5781 5782 .bdh-mobile-header { 5783 display: flex; 5784 align-items: center; 5785 justify-content: space-between; 5786 padding: 16px 20px; 5787 border-bottom: 1px solid #e5e5e3; 5788 flex-shrink: 0; 5789 } 5790 5791 .bdh-mobile-header a { 5792 display: flex; 5793 align-items: center; 5794 text-decoration: none; 5795 } 5796 5797 .bdh-mobile-header svg, 5798 .bdh-mobile-header img { 5799 height: 38px; 5800 width: auto; 5801 } 5802 5803 .bdh-mobile-close { 5804 display: flex; 5805 align-items: center; 5806 justify-content: center; 5807 background: none; 5808 border: none; 5809 cursor: pointer; 5810 padding: 8px; 5811 color: #1a1a18; 5812 border-radius: 4px; 5813 transition: background 0.15s; 5814 } 5815 5816 .bdh-mobile-close:hover { 5817 background: #f5f5f3; 5818 } 5819 5820 .bdh-mobile-close svg { 5821 width: 22px; 5822 height: 22px; 5823 } 5824 5825 /* Mobile search */ 5826 .bdh-mobile-search { 5827 padding: 14px 20px; 5828 border-bottom: 1px solid #e5e5e3; 5829 flex-shrink: 0; 5830 } 5831 5832 .bdh-mobile-search form { 5833 display: flex; 5834 align-items: center; 5835 border: 1px solid #d8d8d6; 5836 border-radius: 5px; 5837 overflow: hidden; 5838 height: 40px; 5839 background: #fafafa; 5840 } 5841 5842 .bdh-mobile-search form:focus-within { 5843 border-color: #1a1a18; 5844 background: #fff; 5845 } 5846 5847 .bdh-mobile-search button[type="submit"] { 5848 display: flex; 5849 align-items: center; 5850 justify-content: center; 5851 background: none; 5852 border: none; 5853 cursor: pointer; 5854 padding: 0 12px; 5855 color: #888; 5856 height: 100%; 5857 flex-shrink: 0; 5858 } 5859 5860 .bdh-mobile-search button[type="submit"] svg { 5861 width: 16px; 5862 height: 16px; 5863 } 5864 5865 .bdh-mobile-search input { 5866 flex: 1; 5867 border: none; 5868 outline: none; 5869 background: transparent; 5870 font-size: 14px; 5871 color: #1a1a18; 5872 padding: 0 12px 0 0; 5873 font-family: inherit; 5874 } 5875 5876 .bdh-mobile-search input::placeholder { 5877 color: #aaa; 5878 } 5879 5880 /* Clear button inside mobile search form */ 5881 .bdh-msearch-clear { 5882 display: flex; 5883 align-items: center; 5884 justify-content: center; 5885 background: none; 5886 border: none; 5887 cursor: pointer; 5888 padding: 0 10px; 5889 color: #888; 5890 height: 100%; 5891 flex-shrink: 0; 5892 } 5893 .bdh-msearch-clear[hidden] { display: none; } 5894 .bdh-msearch-clear svg { width: 13px; height: 13px; } 5895 5896 /* Predictive results dropdown â continues from the form border */ 5897 .bdh-mobile-search__dropdown { 5898 border: 1px solid #d8d8d6; 5899 border-top: none; 5900 border-radius: 0 0 5px 5px; 5901 background: #fafafa; 5902 overflow: hidden; 5903 } 5904 .bdh-mobile-search__dropdown[hidden] { display: none; } 5905 5906 .bdh-mobile-search__empty { 5907 padding: 16px 14px; 5908 font-size: 13px; 5909 color: #888; 5910 } 5911 5912 .bdh-mobile-search__footer { 5913 display: flex; 5914 align-items: center; 5915 justify-content: space-between; 5916 padding: 10px 14px; 5917 border-top: 1px solid #eeeeec; 5918 font-size: 12px; 5919 color: #888; 5920 } 5921 5922 .bdh-mobile-search__view-all { 5923 font-size: 12px; 5924 font-weight: 600; 5925 color: #1a1a18; 5926 text-decoration: none; 5927 } 5928 5929 /* Result items reuse desktop classes but sit inside the mobile form width */ 5930 .bdh-mobile-search__dropdown .bdh-search__result-item { 5931 display: flex; 5932 align-items: center; 5933 gap: 10px; 5934 padding: 10px 14px; 5935 text-decoration: none; 5936 color: #1a1a18; 5937 border-bottom: 1px solid #eeeeec; 5938 font-size: 13px; 5939 } 5940 .bdh-mobile-search__dropdown .bdh-search__result-item:last-child { border-bottom: none; } 5941 .bdh-mobile-search__dropdown .bdh-search__result-item:hover { background: #f0f0ee; } 5942 .bdh-mobile-search__dropdown .bdh-search__result-img { width: 36px; height: 36px; object-fit: cover; border-radius: 4px; flex-shrink: 0; } 5943 .bdh-mobile-search__dropdown .bdh-search__result-img-placeholder { width: 36px; height: 36px; border-radius: 4px; flex-shrink: 0; background: #e8e8e6; display: flex; align-items: center; justify-content: center; color: #bbb; } 5944 .bdh-mobile-search__dropdown .bdh-search__result-img-placeholder svg { width: 16px; height: 16px; } 5945 .bdh-mobile-search__dropdown .bdh-search__result-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; } 5946 .bdh-mobile-search__dropdown .bdh-search__result-title { font-size: 13px; font-weight: 500; color: #1a1a18; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 5947 .bdh-mobile-search__dropdown .bdh-search__result-price { font-size: 12px; color: #666; } 5948 .bdh-mobile-search__dropdown .bdh-search__result-title mark { background: none; font-weight: 700; color: #1a1a18; } 5949 5950 /* Skeleton rows for mobile */ 5951 .bdh-mobile-search__loading { padding: 10px 14px; display: flex; flex-direction: column; gap: 10px; } 5952 .bdh-mobile-search__loading[hidden] { display: none; } 5953 5954 /* Mobile nav list */ 5955 .bdh-mobile-nav { 5956 flex: 1; 5957 overflow-y: auto; 5958 } 5959 5960 .bdh-mobile-nav-list { 5961 list-style: none; 5962 } 5963 5964 .bdh-mobile-nav-item {
5965 border-bottom: 1px solid #f0f0ee; 5966 } 5967 5968 .bdh-mobile-nav-row { 5969 display: flex; 5970 align-items: center; 5971 justify-content: space-between; 5972 width: 100%; 5973 } 5974 5975 .bdh-mobile-nav-link { 5976 flex: 1; 5977 display: block; 5978 padding: 16px 20px; 5979 font-size: 15px; 5980 font-weight: 600; 5981 color: #1a1a18; 5982 text-decoration: none; 5983 } 5984 5985 /* Top-level items with children are buttons, not links */ 5986 .bdh-mobile-nav-link--toggle { 5987 width: 100%; 5988 background: none; 5989 border: none; 5990 cursor: pointer; 5991 text-align: left; 5992 display: flex; 5993 align-items: center; 5994 justify-content: space-between; 5995 } 5996 5997 .bdh-mobile-nav-chevron { 5998 width: 18px; 5999 height: 18px; 6000 flex-shrink: 0; 6001 transition: transform 0.22s; 6002 } 6003 6004 .bdh-mobile-nav-item.is-open > .bdh-mobile-nav-row .bdh-mobile-nav-chevron { 6005 transform: rotate(180deg); 6006 } 6007 6008 .bdh-mobile-expand-btn { 6009 display: flex; 6010 align-items: center; 6011 justify-content: center; 6012 background: none; 6013 border: none; 6014 cursor: pointer; 6015 padding: 16px 20px; 6016 color: #1a1a18; 6017 flex-shrink: 0; 6018 } 6019 6020 .bdh-mobile-expand-btn svg { 6021 width: 18px; 6022 height: 18px; 6023 transition: transform 0.22s; 6024 } 6025 6026 .bdh-mobile-nav-item.is-open .bdh-mobile-expand-btn svg { 6027 transform: rotate(180deg); 6028 } 6029 6030 .bdh-mobile-sub-list { 6031 list-style: none; 6032 max-height: 0; 6033 overflow: hidden; 6034 transition: max-height 0.3s ease; 6035 background: #f9f9f7; 6036 } 6037 6038 .bdh-mobile-nav-item.is-open > .bdh-mobile-sub-list { 6039 max-height: 3000px; 6040 } 6041 6042 .bdh-mobile-sub-link { 6043 display: block; 6044 padding: 12px 20px 12px 36px; 6045 font-size: 14px; 6046 font-weight: 500; 6047 color: #444; 6048 text-decoration: none; 6049 border-bottom: 1px solid #eeeeec; 6050 transition: background 0.12s; 6051 } 6052 6053 .bdh-mobile-sub-link:last-child { 6054 border-bottom: none; 6055 } 6056 6057 /* Level-2 toggle button (has grandchildren â no link, just accordion) */ 6058 .bdh-mobile-sub-link--toggle { 6059 width: 100%; 6060 background: none; 6061 border: none; 6062 cursor: pointer; 6063 text-align: left; 6064 display: flex; 6065 align-items: center; 6066 justify-content: space-between; 6067 } 6068 6069 .bdh-mobile-sub-item.is-open > .bdh-mobile-sub-row .bdh-mobile-nav-chevron { 6070 transform: rotate(180deg); 6071 } 6072 6073 /* Level-2 items that have grandchildren â row with expand button */ 6074 .bdh-mobile-sub-item { 6075 border-bottom: 1px solid #eeeeec; 6076 } 6077 6078 .bdh-mobile-sub-item:last-child { 6079 border-bottom: none; 6080 } 6081 6082 .bdh-mobile-sub-row { 6083 display: flex; 6084 align-items: center; 6085 justify-content: space-between; 6086 } 6087 6088 .bdh-mobile-sub-row .bdh-mobile-sub-link { 6089 flex: 1; 6090 border-bottom: none; /* border is on the parent li, not the link */ 6091 } 6092 6093 .bdh-mobile-expand-btn--sm { 6094 padding: 10px 16px; 6095 } 6096 6097 .bdh-mobile-sub-item.is-open > .bdh-mobile-expand-btn--sm svg, 6098 .bdh-mobile-sub-item.is-open > .bdh-mobile-sub-row .bdh-mobile-expand-btn--sm svg { 6099 transform: rotate(180deg); 6100 } 6101 6102 /* Level-3 (grandchild) sub-list */ 6103 .bdh-mobile-sub-list--nested { 6104 background: #f0f0ee; 6105 max-height: 0; 6106 overflow: hidden; 6107 transition: max-height 0.3s ease; 6108 } 6109 6110 .bdh-mobile-sub-item.is-open > .bdh-mobile-sub-list--nested { 6111 max-height: 1000px; 6112 } 6113 6114 .bdh-mobile-sub-link--nested { 6115 padding-left: 52px; 6116 font-size: 13px; 6117 font-weight: 400; 6118 color: #555; 6119 border-bottom: 1px solid #e8e8e6; 6120 } 6121 6122 .bdh-mobile-sub-link--nested:last-child { 6123 border-bottom: none; 6124 } 6125 6126 .bdh-mobile-sub-link:hover { 6127 background: #f0f0ee; 6128 color: #1a1a18; 6129 } 6130 6131 /* ââ MOBILE FEATURE CARD âââââââââââââââââââââââââ */ 6132 .bdh-mobile-feature-card-item { 6133 padding: 12px 16px 16px; 6134 border-bottom: none; 6135 } 6136 6137 .bdh-mobile-feature-card { 6138 display: block; 6139 position: relative; 6140 border-radius: 10px; 6141 overflow: hidden; 6142 width: 100%; 6143 aspect-ratio: 2 / 1; 6144 background-size: cover; 6145 background-position: center; 6146 text-decoration: none; 6147 } 6148 6149 .bdh-mobile-feature-card-inner { 6150 position: absolute; 6151 inset: 0; 6152 display: flex; 6153 flex-direction: column; 6154 padding: 14px 16px; 6155 align-items: flex-start; 6156 justify-content: flex-end; /* default: bottom-left */ 6157 } 6158 6159 /* Button position variants â same axis logic as desktop card */ 6160 .bdh-mobile-feature-card--btn-top-left .bdh-mobile-feature-card-inner { align-items: flex-start; justify-content: flex-start; } 6161 .bdh-mobile-feature-card--btn-top-center .bdh-mobile-feature-card-inner { align-items: center; justify-content: flex-start; } 6162 .bdh-mobile-feature-card--btn-top-right .bdh-mobile-feature-card-inner { align-items: flex-end; justify-content: flex-start; } 6163 .bdh-mobile-feature-card--btn-center .bdh-mobile-feature-card-inner { align-items: center; justify-content: center; } 6164 .bdh-mobile-feature-card--btn-bottom-left .bdh-mobile-feature-card-inner { align-items: flex-start; justify-content: flex-end; } 6165 .bdh-mobile-feature-card--btn-bottom-center .bdh-mobile-feature-card-inner { align-items: center; justify-content: flex-end; } 6166 .bdh-mobile-feature-card--btn-bottom-right .bdh-mobile-feature-card-inner { align-items: flex-end; justify-content: flex-end; } 6167 6168 /* Mobile utility links at the bottom */ 6169 .bdh-mobile-utility { 6170 padding: 16px 20px; 6171 border-top: 1px solid #e5e5e3; 6172 display: flex; 6173 flex-direction: column; 6174 gap: 0; 6175 flex-shrink: 0; 6176 } 6177 6178 .bdh-mobile-utility a, 6179 .bdh-mobile-utility button { 6180 display: flex; 6181 align-items: center; 6182 gap: 10px; 6183 padding: 12px 0; 6184 font-size: 14px; 6185 font-weight: 500; 6186 color: #1a1a18; 6187 text-decoration: none; 6188 background: none; 6189 border: none; 6190 cursor: pointer;
6191 border-bottom: 1px solid #f0f0ee; 6192 width: 100%; 6193 text-align: left; 6194 } 6195 6196 .bdh-mobile-utility a:last-child, 6197 .bdh-mobile-utility button:last-child { 6198 border-bottom: none; 6199 } 6200 6201 .bdh-mobile-utility svg { 6202 width: 18px; 6203 height: 18px; 6204 flex-shrink: 0; 6205 } 6206 6207 /* ââ RESPONSIVE âââââââââââââââââââââââââââââââââââ */ 6208 @media (max-width: 1024px) { 6209 .bdh-header__nav, 6210 .bdh-header__search-wrap { 6211 display: none; 6212 } 6213 6214 /* Hide the full pill search bar, show the icon button instead */ 6215 #bdh-search { 6216 display: none; 6217 } 6218 6219 .bdh-header__mobile-search-btn { 6220 display: flex; 6221 } 6222 6223 .bdh-header__hamburger { 6224 display: flex; 6225 } 6226 6227 /* On mobile: revert to simple flex so logo stays left, actions right */ 6228 .bdh-header__main-inner { 6229 height: 60px; 6230 display: flex; 6231 align-items: center; 6232 justify-content: space-between; 6233 position: relative; 6234 } 6235 6236 /* Center the logo absolutely so it sits mid-way regardless of icon widths */ 6237 .bdh-header__logo { 6238 position: absolute; 6239 left: 50%; 6240 transform: translateX(-50%); 6241 justify-self: unset; 6242 z-index: 0; 6243 pointer-events: auto; 6244 } 6245 6246 /* Ensure buttons sit above the absolutely-positioned logo so clicks/hovers register */ 6247 .bdh-header__hamburger, 6248 .bdh-header__actions { 6249 justify-self: unset; 6250 position: relative; 6251 z-index: 1; 6252 } 6253 6254 .bdh-header__actions { 6255 margin-left: auto; /* push actions to the right */ 6256 } 6257 } 6258 6259 @media (max-width: 600px) { 6260 .bdh-header__topbar-inner { 6261 padding: 0 16px; 6262 } 6263 6264 .bdh-header__delivery { 6265 font-size: 11px; 6266 } 6267 6268 .bdh-header__utility-link, 6269 .bdh-header__utility-sep, 6270 .mupheader__btn { 6271 font-size: 11px; 6272 padding: 0 6px; 6273 } 6274 6275 .bdh-header__main-inner { 6276 padding: 0 16px; 6277 } 6278 } 6279 6280 /* ââ FULL-BLEED / TRANSPARENT MODE ââââââââââââââââââââââââââââââââââ 6281 Applied when the current page matches a Full Bleed URLs metaobject entry. 6282 The header switches from sticky to absolute so it overlays page content. 6283 âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 6284 6285 .bdh-header--transparent { 6286 position: absolute; /* overlay page hero instead of pushing content down */ 6287 background: transparent; 6288 } 6289 6290 .bdh-header--transparent .bdh-header__topbar { 6291 background: transparent; 6292 border-bottom-color: transparent; 6293 } 6294 6295 .bdh-header--transparent .bdh-header__main { 6296 background: transparent; 6297 border-bottom-color: transparent; 6298 } 6299 6300 /* White pill background on desktop nav links in transparent mode */ 6301 .bdh-header--transparent .bdh-header__nav-item { 6302 align-items: center; /* center pills vertically instead of stretching */ 6303 } 6304 6305 .bdh-header--transparent .bdh-header__nav-link { 6306 background: transparent; 6307 border-radius: 9999px; 6308 padding: 7px 8px; 6309 margin: 0 6px; 6310 border-bottom: 2px solid transparent !important; 6311 color: #ffffff !important; 6312 transition: none !important; 6313 } 6314 6315 /* Pill appears instantly on hover/active/open with black text */ 6316 .bdh-header--transparent .bdh-header__nav-link:hover, 6317 .bdh-header--transparent .bdh-header__nav-item--active > .bdh-header__nav-link, 6318 .bdh-header--transparent .bdh-header__nav-item.is-open > .bdh-header__nav-link { 6319 background: #ffffff; 6320 border-bottom-color: transparent !important; 6321 color: #1a1a18 !important; 6322 } 6323 6324 /* ââ WHITE-TEXT MODE âââââââââââââââââââââââââââââââââââââââââââââââââ 6325 Flips all text, icons and interactive borders to white. 6326 SVGs use stroke="currentColor" so they inherit automatically. 6327 âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 6328 6329 .bdh-header--white-text .bdh-header__delivery, 6330 .bdh-header--white-text .bdh-header__utility-link, 6331 .bdh-header--white-text .mupheader__btn { 6332 color: #ffffff; 6333 } 6334 6335 .bdh-header--white-text .bdh-header__utility-sep { 6336 color: rgba(255, 255, 255, 0.45); 6337 } 6338 6339 .bdh-header--white-text .bdh-header__nav-link { 6340 color: #ffffff; 6341 } 6342 6343 .bdh-header--white-text .bdh-header__nav-link:hover, 6344 .bdh-header--white-text .bdh-header__nav-item--active > .bdh-header__nav-link, 6345 .bdh-header--white-text .bdh-header__nav-item.is-open > .bdh-header__nav-link { 6346 border-bottom-color: #ffffff; 6347 color: #ffffff; 6348 } 6349 6350 .bdh-header--white-text .bdh-header__nav-item--sep { 6351 color: rgba(255, 255, 255, 0.45); 6352 } 6353 6354 .bdh-header--white-text .bdh-header__icon-btn, 6355 .bdh-header--white-text .bdh-header__hamburger, 6356 .bdh-header--white-text .bdh-header__mobile-search-btn { 6357 color: #ffffff; 6358 } 6359 6360 .bdh-header--white-text .bdh-header__icon-btn:hover, 6361 .bdh-header--white-text .bdh-header__hamburger:hover, 6362 .bdh-header--white-text .bdh-header__mobile-search-btn:hover { 6363 background: rgba(255, 255, 255, 0.12); 6364 } 6365 6366 /* Search pill â solid white on ANY transparent-header page so it's 6367 always visible over hero imagery, regardless of text-colour mode. */
6368 .bdh-header--transparent .bdh-search__bar { 6369 background: #ffffff !important; 6370 } 6371 6372 .bdh-header--transparent .bdh-search.is-open .bdh-search__bar, 6373 .bdh-header--transparent .bdh-search__bar:focus-within { 6374 background: #ffffff !important; 6375 } 6376 6377 /* Icons and typed text inside the pill stay dark since the pill is white */ 6378 .bdh-header--transparent .bdh-search__submit, 6379 .bdh-header--transparent .bdh-search__clear { 6380 color: #888; 6381 } 6382 6383 .bdh-header--transparent .bdh-search__submit:hover, 6384 .bdh-header--transparent .bdh-search__clear:hover { 6385 color: #1a1a18; 6386 } 6387 6388 .bdh-header--transparent .bdh-search__input { 6389 color: #1a1a18; 6390 } 6391 6392 .bdh-header--transparent .bdh-search__input::placeholder { 6393 color: #aaa; 6394 } 6395</style> 6396 6397 6398<div class="bdh-header__overlay" id="bdh-overlay" aria-hidden="true"></div> 6399 6400 6401<div 6402 class="bdh-header__mobile-menu" 6403 id="bdh-mobile-menu" 6404 role="dialog" 6405 aria-modal="true" 6406 aria-label="Navigation menu" 6407 aria-hidden="true" 6408> 6409 <div class="bdh-mobile-header"> 6410 <a href="https://brewdog.com" aria-label="BrewDog"> 6411 6412 6413 <img 6414 src="//brewdog.com/cdn/shop/files/BrewDogLogo_Shield_Black_Master_2.png?v=1772813524&width=180" 6415 alt="BrewDog" 6416 width="88" 6417 height="auto" 6418 > 6419 6420 </a> 6421 <button 6422 class="bdh-mobile-close" 6423 id="bdh-mobile-close" 6424 aria-label="Close menu" 6425 > 6426 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6427 <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/> 6428 </svg> 6429 </button> 6430 </div> 6431 6432 <div class="bdh-mobile-search" id="bdh-msearch-wrap"> 6433 <form action="/search" method="get" autocomplete="off"> 6434 <input type="hidden" name="type" value="product"> 6435 <button type="submit" aria-label="Access Search"> 6436 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 6437 <circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/> 6438 </svg> 6439 </button> 6440 <input 6441 id="bdh-msearch-input" 6442 type="text" 6443 name="q" 6444 placeholder="Search..." 6445 autocomplete="off" 6446 aria-autocomplete="list" 6447 aria-controls="bdh-msearch-dropdown" 6448 aria-expanded="false" 6449 role="combobox" 6450 > 6451 <button type="button" id="bdh-msearch-clear" class="bdh-msearch-clear" aria-label="Clear Search" hidden> 6452 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"> 6453 <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/> 6454 </svg> 6455 </button> 6456 </form> 6457 6458 <div class="bdh-mobile-search__dropdown" id="bdh-msearch-dropdown" hidden> 6459 6460 <div class="bdh-mobile-search__loading" id="bdh-msearch-loading" hidden> 6461 6462 <div class="bdh-search__skel-row"> 6463 <div class="bdh-search__skel-img"></div> 6464 <div class="bdh-search__skel-lines"> 6465 <div class="bdh-search__skel-line"></div> 6466 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 6467 </div> 6468 </div> 6469 6470 <div class="bdh-search__skel-row"> 6471 <div class="bdh-search__skel-img"></div> 6472 <div class="bdh-search__skel-lines"> 6473 <div class="bdh-search__skel-line"></div> 6474 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 6475 </div> 6476 </div> 6477 6478 <div class="bdh-search__skel-row"> 6479 <div class="bdh-search__skel-img"></div> 6480 <div class="bdh-search__skel-lines"> 6481 <div class="bdh-search__skel-line"></div> 6482 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 6483 </div> 6484 </div> 6485 6486 </div> 6487 6488 <div id="bdh-msearch-results" hidden></div> 6489 6490 <div class="bdh-mobile-search__empty" id="bdh-msearch-empty" hidden> 6491 <span id="bdh-msearch-empty-msg">No results found.</span> 6492 </div> 6493 6494 <div class="bdh-mobile-search__footer" id="bdh-msearch-footer" hidden>
6495 <span id="bdh-msearch-count"></span> 6496 <a href="/search" id="bdh-msearch-viewall" class="bdh-mobile-search__view-all"> 6497 View all results â 6498 </a> 6499 </div> 6500 6501 </div> 6502 </div> 6503 6504 <nav class="bdh-mobile-nav" aria-label="Mobile navigation"> 6505 <ul class="bdh-mobile-nav-list"> 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 <li class="bdh-mobile-nav-item " data-mobile-item> 6522 6523 <div class="bdh-mobile-nav-row"> 6524 <button 6525 class="bdh-mobile-nav-link bdh-mobile-nav-link--toggle" 6526 aria-expanded="false" 6527 aria-label="Open Shop menu" 6528 > 6529 Shop 6530 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6531 <polyline points="6 9 12 15 18 9"/> 6532 </svg> 6533 </button> 6534 </div> 6535 <ul class="bdh-mobile-sub-list"> 6536 6537 6538<li class="bdh-mobile-sub-item" data-mobile-item> 6539 <div class="bdh-mobile-sub-row"> 6540 <button 6541 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6542 aria-expanded="false" 6543 aria-label="Open Highlights menu" 6544 > 6545 Highlights 6546 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6547 <polyline points="6 9 12 15 18 9"/> 6548 </svg> 6549 </button> 6550 </div> 6551 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6552 6553 <li> 6554 <a href="/collections/best-sellers" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6555 Bestsellers 6556 </a> 6557 </li> 6558 6559 <li> 6560 <a href="/collections/new-in" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6561 New in 6562 </a> 6563 </li> 6564 6565 <li> 6566 <a href="/products/beer-advent-calendar-2026" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6567 Advent Calendar 6568 </a> 6569 </li> 6570 6571 <li> 6572 <a href="/collections/small-batch" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6573 Small Batch 6574 </a> 6575 </li> 6576 6577 <li> 6578 <a href="/collections/beer" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6579 Shop all Beer 6580 </a> 6581 </li> 6582 6583 <li> 6584 <a href="/collections/hi-ball-sparkling-energy-water" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6585 Try Hi*Ball 6586 </a> 6587 </li> 6588 6589 </ul> 6590 </li> 6591 6592 6593 6594<li class="bdh-mobile-sub-item" data-mobile-item> 6595 <div class="bdh-mobile-sub-row"> 6596 <button 6597 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6598 aria-expanded="false" 6599 aria-label="Open Shop by Style menu" 6600 > 6601 Shop by Style 6602 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6603 <polyline points="6 9 12 15 18 9"/> 6604 </svg> 6605 </button> 6606 </div> 6607 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6608 6609 <li> 6610 <a href="/collections/beer/IPA" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6611 IPA 6612 </a> 6613 </li> 6614 6615 <li> 6616 <a href="/collections/beer/Lager" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6617 Lager 6618 </a> 6619 </li> 6620 6621 <li> 6622 <a href="/collections/beer/Stout+Porter" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6623 Stout & Porter 6624 </a> 6625 </li> 6626 6627 <li>
6628 <a href="/collections/alcohol-free" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6629 Alcohol Free 6630 </a> 6631 </li> 6632 6633 <li> 6634 <a href="/collections/all-spirits-and-cocktails" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6635 Spirits & Cocktails 6636 </a> 6637 </li> 6638 6639 <li> 6640 <a href="/collections/clothing-accessories" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6641 Glassware & Merch 6642 </a> 6643 </li> 6644 6645 <li> 6646 <a href="/collections/hi-ball-sparkling-energy-water" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6647 Hi*Ball Sparkling Energy Drink 6648 </a> 6649 </li> 6650 6651 </ul> 6652 </li> 6653 6654 6655 6656<li class="bdh-mobile-sub-item" data-mobile-item> 6657 <div class="bdh-mobile-sub-row"> 6658 <button 6659 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6660 aria-expanded="false" 6661 aria-label="Open Shop by Occasion menu" 6662 > 6663 Shop by Occasion 6664 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6665 <polyline points="6 9 12 15 18 9"/> 6666 </svg> 6667 </button> 6668 </div> 6669 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6670 6671 <li> 6672 <a href="/collections/bundles-mixed-packs" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6673 Events & Parties 6674 </a> 6675 </li> 6676 6677 <li> 6678 <a href="/collections/bundles-mixed-packs" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6679 Stock your Fridge 6680 </a> 6681 </li> 6682 6683 <li> 6684 <a href="/collections/bundles-mixed-packs" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6685 Matchday Beers 6686 </a> 6687 </li> 6688 6689 </ul> 6690 </li> 6691 6692 6693 6694<li class="bdh-mobile-sub-item" data-mobile-item> 6695 <div class="bdh-mobile-sub-row"> 6696 <button 6697 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6698 aria-expanded="false" 6699 aria-label="Open Bundles & Sale menu" 6700 > 6701 Bundles & Sale 6702 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6703 <polyline points="6 9 12 15 18 9"/> 6704 </svg> 6705 </button> 6706 </div> 6707 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6708 6709 <li> 6710 <a href="/collections/personalised-can-sale" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6711 30% off Personalised Cans 6712 </a> 6713 </li> 6714 6715 <li> 6716 <a href="/collections/bundles-mixed-packs" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6717 Mixed Packs 6718 </a> 6719 </li> 6720 6721 <li> 6722 <a href="/collections/clearance" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6723 Clearance 6724 </a> 6725 </li> 6726 6727 <li> 6728 <a href="/collections/deals-offers" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6729 Latest Deals 6730 </a> 6731 </li> 6732 6733 </ul> 6734 </li> 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 <li class="bdh-mobile-feature-card-item"> 6757 <a 6758 href="/products/punk-ipa" 6759 class="bdh-mobile-feature-card bdh-mobile-feature-card--btn-bottom-left" 6760 style="background-color: #1a1a18; color: #ffffff; background-image: url('//brewdog.com/cdn/shop/files/Park_IPA_Web_Navigation_2-1.jpg?v=1786436836&width=600');" 6761 > 6762 <div class="bdh-mobile-feature-card-inner"> 6763 6764 <p class="bdh-mega__card-heading">USE CODE SAVE15</p> 6765
6766 <span class="bdh-mega__card-btn bdh-mega__card-btn--white">SAVE 15%</span> 6767 </div> 6768 </a> 6769 </li> 6770 6771 6772 6773 </ul> 6774 6775 </li> 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 <li class="bdh-mobile-nav-item " data-mobile-item> 6788 6789 <div class="bdh-mobile-nav-row"> 6790 <button 6791 class="bdh-mobile-nav-link bdh-mobile-nav-link--toggle" 6792 aria-expanded="false" 6793 aria-label="Open Bars menu" 6794 > 6795 Bars 6796 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6797 <polyline points="6 9 12 15 18 9"/> 6798 </svg> 6799 </button> 6800 </div> 6801 <ul class="bdh-mobile-sub-list"> 6802 6803 6804<li class="bdh-mobile-sub-item" data-mobile-item> 6805 <div class="bdh-mobile-sub-row"> 6806 <button 6807 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6808 aria-expanded="false" 6809 aria-label="Open Find menu" 6810 > 6811 Find 6812 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6813 <polyline points="6 9 12 15 18 9"/> 6814 </svg> 6815 </button> 6816 </div> 6817 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6818 6819 <li> 6820 <a href="/pages/bar-locator-1" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6821 Our Bars 6822 </a> 6823 </li> 6824 6825 <li> 6826 <a href="/pages/hotels" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6827 Our Hotels 6828 </a> 6829 </li> 6830 6831 </ul> 6832 </li> 6833 6834 6835 6836<li class="bdh-mobile-sub-item" data-mobile-item> 6837 <div class="bdh-mobile-sub-row"> 6838 <button 6839 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6840 aria-expanded="false" 6841 aria-label="Open What's On menu" 6842 > 6843 What's On 6844 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6845 <polyline points="6 9 12 15 18 9"/> 6846 </svg> 6847 </button> 6848 </div> 6849 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6850 6851 <li> 6852 <a href="/pages/wings-wednesday" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6853 Wings Wednesday: Unlimited Wings 6854 </a> 6855 </li> 6856 6857 <li> 6858 <a href="https://brewdog.com/pages/bars/waterloo" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6859 Oktoberfest 6860 </a> 6861 </li> 6862 6863 <li> 6864 <a href="/pages/live-sports" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6865 Live Sport 6866 </a> 6867 </li> 6868 6869 <li>
6870 <a href="https://brewdog.com/pages/christmas-bookings" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6871 Christmas 6872 </a> 6873 </li> 6874 6875 <li> 6876 <a href="/pages/beer-launches" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6877 Beer Releases 6878 </a> 6879 </li> 6880 6881 </ul> 6882 </li> 6883 6884 6885 6886<li class="bdh-mobile-sub-item" data-mobile-item> 6887 <div class="bdh-mobile-sub-row"> 6888 <button 6889 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6890 aria-expanded="false" 6891 aria-label="Open Offers menu" 6892 > 6893 Offers 6894 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6895 <polyline points="6 9 12 15 18 9"/> 6896 </svg> 6897 </button> 6898 </div> 6899 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6900 6901 <li> 6902 <a href="https://brewdog.com/pages/lunch-offer" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6903 Lunch Club 6904 </a> 6905 </li> 6906 6907 <li> 6908 <a href="https://brewdog.com/pages/u25-club" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6909 Student Sundays: 50% Off 6910 </a> 6911 </li> 6912 6913 <li> 6914 <a href="https://brewdog.com/pages/5-pints" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6915 £5 Pints 6916 </a> 6917 </li> 6918 6919 <li> 6920 <a href="/pages/birthdays" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6921 Birthdays: Drinks On Us 6922 </a> 6923 </li> 6924 6925 <li> 6926 <a href="/pages/deskdog-coworking-spaces" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6927 DeskDog: Co-Working 6928 </a> 6929 </li> 6930 6931 <li> 6932 <a href="/pages/beer-school" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6933 Beer Schools 6934 </a> 6935 </li> 6936 6937 <li> 6938 <a href="/pages/brewdog-treats" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6939 BrewDog Treats 6940 </a> 6941 </li> 6942 6943 </ul> 6944 </li> 6945 6946 6947 6948<li class="bdh-mobile-sub-item" data-mobile-item> 6949 <div class="bdh-mobile-sub-row"> 6950 <button 6951 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 6952 aria-expanded="false" 6953 aria-label="Open Food menu" 6954 > 6955 Food 6956 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 6957 <polyline points="6 9 12 15 18 9"/> 6958 </svg> 6959 </button> 6960 </div> 6961 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 6962 6963 <li> 6964 <a href="/pages/brewdog-bars-food" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6965 Bar Menu 6966 </a> 6967 </li> 6968 6969 <li> 6970 <a href="/pages/brunch-menu" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6971 Brunch Menu 6972 </a> 6973 </li> 6974 6975 <li> 6976 <a href="https://brewdog.com/pages/kids-menu" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 6977 Kids Menu 6978 </a> 6979 </li> 6980 6981 </ul> 6982 </li> 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 <li class="bdh-mobile-feature-card-item"> 7005 <a 7006 href="https://brewdog.com/pages/brewdog-treats" 7007 class="bdh-mobile-feature-card bdh-mobile-feature-card--btn-bottom-left" 7008 style="background-color: #ffffff; color: #ffffff; background-image: url('//brewdog.com/cdn/shop/files/Students_1.png?v=1784537064&width=600');" 7009 > 7010 <div class="bdh-mobile-feature-card-inner"> 7011 7012 <p class="bdh-mega__card-heading">2 PINTS ON US</p> 7013
7014 <span class="bdh-mega__card-btn bdh-mega__card-btn--white">Join Treats</span> 7015 </div> 7016 </a> 7017 </li> 7018 7019 7020 7021 </ul> 7022 7023 </li> 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 <li class="bdh-mobile-nav-item " data-mobile-item> 7036 7037 <div class="bdh-mobile-nav-row"> 7038 <button 7039 class="bdh-mobile-nav-link bdh-mobile-nav-link--toggle" 7040 aria-expanded="false" 7041 aria-label="Open Gifting menu" 7042 > 7043 Gifting 7044 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 7045 <polyline points="6 9 12 15 18 9"/> 7046 </svg> 7047 </button> 7048 </div> 7049 <ul class="bdh-mobile-sub-list"> 7050 7051 7052<li class="bdh-mobile-sub-item" data-mobile-item> 7053 <div class="bdh-mobile-sub-row"> 7054 <button 7055 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 7056 aria-expanded="false" 7057 aria-label="Open Personalised Cans menu" 7058 > 7059 Personalised Cans 7060 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 7061 <polyline points="6 9 12 15 18 9"/> 7062 </svg> 7063 </button> 7064 </div> 7065 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 7066 7067 <li> 7068 <a href="/products/birthday" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7069 Birthday 7070 </a> 7071 </li> 7072 7073 <li> 7074 <a href="/products/congrats" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7075 Celebration 7076 </a> 7077 </li> 7078 7079 <li> 7080 <a href="/products/wedding" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7081 Wedding 7082 </a> 7083 </li> 7084 7085 <li> 7086 <a href="/collections/personalised-cans" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7087 Bulk 7088 </a> 7089 </li> 7090 7091 <li> 7092 <a href="/collections/personalised-cans" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7093 Shop All 7094 </a> 7095 </li> 7096 7097 </ul> 7098 </li> 7099 7100 7101 7102<li class="bdh-mobile-sub-item" data-mobile-item> 7103 <div class="bdh-mobile-sub-row"> 7104 <button 7105 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 7106 aria-expanded="false" 7107 aria-label="Open Gifts by Price menu" 7108 > 7109 Gifts by Price 7110 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 7111 <polyline points="6 9 12 15 18 9"/> 7112 </svg> 7113 </button> 7114 </div> 7115 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 7116 7117 <li> 7118 <a href="/collections/gifts-under-25" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7119 Gifts Under £25 7120 </a> 7121 </li> 7122 7123 <li> 7124 <a href="/collections/gifts-under-50" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7125 Gifts Under £50 7126 </a> 7127 </li> 7128 7129 <li> 7130 <a href="/collections/gifts-under-75" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7131 Gifts Under £75 7132 </a> 7133 </li> 7134 7135 <li> 7136 <a href="/collections/shop-all-gifts" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7137 Shop All Gifts 7138 </a> 7139 </li> 7140 7141 </ul> 7142 </li> 7143 7144 7145 7146<li class="bdh-mobile-sub-item" data-mobile-item> 7147 <div class="bdh-mobile-sub-row"> 7148 <button 7149 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 7150 aria-expanded="false" 7151 aria-label="Open Gifts by Type menu" 7152 > 7153 Gifts by Type 7154 <svg class="bdh-mobile-nav-chevron" viewB
7154ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 7155 <polyline points="6 9 12 15 18 9"/> 7156 </svg> 7157 </button> 7158 </div> 7159 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 7160 7161 <li> 7162 <a href="/products/beer-advent-calendar-2026" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7163 Advent Calendar 7164 </a> 7165 </li> 7166 7167 <li> 7168 <a href="/pages/giftcard" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7169 Bar Gift Vouchers 7170 </a> 7171 </li> 7172 7173 <li> 7174 <a href="/collections/shop-all-gifts/Gift-Box" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7175 Gift Boxes 7176 </a> 7177 </li> 7178 7179 <li> 7180 <a href="/collections/bundles-mixed-packs" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7181 Mixed Bundles 7182 </a> 7183 </li> 7184 7185 <li> 7186 <a href="/collections/clothing-accessories" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7187 Merch & Clothing 7188 </a> 7189 </li> 7190 7191 <li> 7192 <a href="/collections/glassware-barware" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7193 Glassware & Barware 7194 </a> 7195 </li> 7196 7197 </ul> 7198 </li> 7199 7200 7201 7202<li class="bdh-mobile-sub-item" data-mobile-item> 7203 <div class="bdh-mobile-sub-row"> 7204 <button 7205 class="bdh-mobile-sub-link bdh-mobile-sub-link--toggle" 7206 aria-expanded="false" 7207 aria-label="Open Gifts For menu" 7208 > 7209 Gifts For 7210 <svg class="bdh-mobile-nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 7211 <polyline points="6 9 12 15 18 9"/> 7212 </svg> 7213 </button> 7214 </div> 7215 <ul class="bdh-mobile-sub-list bdh-mobile-sub-list--nested"> 7216 7217 <li> 7218 <a href="/collections/shop-all-gifts/Craft-Beer-Fans" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7219 Craft Beer Fans 7220 </a> 7221 </li> 7222 7223 <li> 7224 <a href="/collections/shop-all-gifts/Lager" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7225 Lager Lovers 7226 </a> 7227 </li> 7228 7229 <li> 7230 <a href="/collections/shop-all-gifts/IPA" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7231 IPA Enthusiasts 7232 </a> 7233 </li> 7234 7235 <li> 7236 <a href="/collections/all-spirits-and-cocktails" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7237 Cocktail Lovers 7238 </a> 7239 </li> 7240 7241 <li> 7242 <a href="/collections/glassware-barware" class="bdh-mobile-sub-link bdh-mobile-sub-link--nested"> 7243 Home Bars 7244 </a> 7245 </li> 7246 7247 </ul> 7248 </li> 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 <li class="bdh-mobile-feature-card-item"> 7271 <a 7272 href="/products/beer-advent-calendar-2026" 7273 class="bdh-mobile-feature-card bdh-mobile-feature-card--btn-bottom-left" 7274 style="background-color: #ffffff; color: #333333; background-image: url('//brewdog.com/cdn/shop/files/PDP_Advent_2_358d3856-d429-48ce-8b16-da644811ee53.png?v=1786978374&width=600');" 7275 > 7276 <div class="bdh-mobile-feature-card-inner"> 7277
7278 <span class="bdh-mega__card-btn bdh-mega__card-btn--white">Pre-order Advent</span> 7279 </div> 7280 </a> 7281 </li> 7282 7283 7284 7285 </ul> 7286 7287 </li> 7288 7289 7290 7291 7292 7293 7294 <li class="bdh-mobile-nav-item " data-mobile-item> 7295 7296 <div class="bdh-mobile-nav-row"> 7297 <a 7298 href="https://brewdog.com/products/subscriptions-bundle-builder" 7299 class="bdh-mobile-nav-link" 7300 > 7301 Subscribe & Save 7302 </a> 7303 </div> 7304 7305 </li> 7306 7307 </ul> 7308 </nav> 7309 7310 <div class="bdh-mobile-utility"> 7311 7312 <a href="/account"> 7313 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 7314 <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/> 7315 </svg> 7316 7317 Login 7318 7319 </a> 7320 7321 7322 7323 <a href="https://brewdog-ijnwidpa3ld.gorgias.help/en-GB"> 7324 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 7325 <circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/> 7326 </svg> 7327 Help 7328 </a> 7329 7330 7331 7332 <a href="/pages/bar-locator"> 7333 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 7334 <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/> 7335 </svg> 7336 Bars 7337 </a> 7338 7339 </div> 7340</div> 7341 7342 7343<header 7344 class="bdh-header" 7345 role="banner" 7346> 7347 7348 7349 <div class="bdh-header__topbar"> 7350 <div class="bdh-header__topbar-inner"> 7351 <span class="bdh-header__delivery">FREE Delivery over £60 7352</span> 7353 7354 <ul class="bdh-header__utility"> 7355 <li> 7356 <a class="bdh-header__utility-link" href="https://brewdog-ijnwidpa3ld.gorgias.help/en-GB">Help</a> 7357 </li> 7358 <li><span class="bdh-header__utility-sep">|</span></li> 7359 7360 7361 <li> 7362 <a class="bdh-header__utility-link" href="/account">Sign In</a> 7363 </li> 7364 <li><span class="bdh-header__utility-sep">|</span></li> 7365 7366 7367 7368 <li> 7369 <a class="bdh-header__utility-link" href="/pages/bar-locator">Bars</a> 7370 </li> 7371 7372 7373 <li> 7374 <div class="mupheader" id="bdh-uk-dropdown"> 7375 7376 </div> 7377 </li> 7378 </ul> 7379 </div> 7380 </div> 7381 7382 7383 <div class="bdh-header__main"> 7384 <div class="bdh-header__main-inner"> 7385 7386 7387 <button 7388 class="bdh-header__hamburger" 7389 id="bdh-hamburger" 7390 aria-label="Toggle menu" 7391 aria-expanded="false" 7392 aria-controls="bdh-mobile-menu" 7393 > 7394 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 7395 <line x1="3" y1="6" x2="21" y2="6"/> 7396 <line x1="3" y1="12" x2="21" y2="12"/> 7397 <line x1="3" y1="18" x2="21" y2="18"/> 7398 </svg> 7399 </button> 7400 7401 7402 <a class="bdh-header__logo" href="https://brewdog.com" aria-label="BrewDog"> 7403 7404 7405 7406 <img 7407 class="bdh-header__logo-desktop" 7408 src="//brewdog.com/cdn/shop/files/BD_Fresh_Master_Wordmark_-_Small_42f3d191-5a2b-4cf3-bd43-7068b4f3db4b.png?v=1772125702&width=240" 7409 alt="BrewDog" 7410 width="120" 7411 height="auto" 7412 > 7413 7414 7415 7416 7417 <img 7418 class="bdh-header__logo-mobile" 7419 src="//brewdog.com/cdn/shop/files/BrewDogLogo_Shield_Black_Master_2.png?v=1772813524&width=240" 7420 alt="BrewDog" 7421 width="90" 7422 height="auto" 7423 > 7424 7425 7426 </a> 7427 7428 7429 <nav class="bdh-header__nav" aria-label="Main navigation"> 7430 <ul class="bdh-header__nav-list"> 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 <li 7447 class="bdh-header__nav-item has-children has-mega" 7448 data-nav-item 7449 > 7450 7451 7452 <button 7453 type="button" 7454 class="bdh-header__nav-link" 7455 aria-haspopup="true" 7456 aria-expanded="false" 7457 data-nav-toggle 7458 > 7459 Shop
7460 <svg class="bdh-header__nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"> 7461 <polyline points="6 9 12 15 18 9"/> 7462 </svg> 7463 </button> 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 <div class="bdh-mega" role="region" aria-label="Shop submenu"> 7484 <div class="bdh-mega__grid bdh-mega__grid--with-card"> 7485 7486 7487 7488 7489 7490 7491 7492 7493 <a 7494 href="/products/punk-ipa" 7495 class="bdh-mega__card bdh-mega__card--pos-end bdh-mega__card--btn-bottom-left" 7496 style="background-color: #1a1a18; color: #ffffff; background-image: url('//brewdog.com/cdn/shop/files/Park_IPA_Web_Navigation_1-1.jpg?v=1786436836&width=480');" 7497 7498 > 7499 <div class="bdh-mega__card-inner"> 7500 7501 <p class="bdh-mega__card-heading">USE CODE SAVE15</p> 7502 7503 <span class="bdh-mega__card-btn bdh-mega__card-btn--white">SAVE 15%</span> 7504 </div> 7505 </a> 7506 7507 7508 7509 7510 <div class="bdh-mega__col"> 7511 7512 7513 <a href="/" class="bdh-mega__col-title"> 7514 Highlights 7515 </a> 7516 7517 7518 7519 <ul class="bdh-mega__col-links"> 7520 7521 <li> 7522 <a href="/collections/best-sellers" class="bdh-mega__col-link"> 7523 Bestsellers 7524 </a> 7525 </li> 7526 7527 <li> 7528 <a href="/collections/new-in" class="bdh-mega__col-link"> 7529 New in 7530 </a> 7531 </li> 7532 7533 <li> 7534 <a href="/products/beer-advent-calendar-2026" class="bdh-mega__col-link"> 7535 Advent Calendar 7536 </a> 7537 </li> 7538 7539 <li> 7540 <a href="/collections/small-batch" class="bdh-mega__col-link"> 7541 Small Batch 7542 </a> 7543 </li> 7544 7545 <li> 7546 <a href="/collections/beer" class="bdh-mega__col-link"> 7547 Shop all Beer 7548 </a> 7549 </li> 7550 7551 <li> 7552 <a href="/collections/hi-ball-sparkling-energy-water" class="bdh-mega__col-link"> 7553 Try Hi*Ball 7554 </a> 7555 </li> 7556 7557 </ul> 7558 7559 7560 </div> 7561 7562 <div class="bdh-mega__col"> 7563 7564 7565 <a href="/" class="bdh-mega__col-title"> 7566 Shop by Style 7567 </a> 7568 7569 7570 7571 <ul class="bdh-mega__col-links"> 7572 7573 <li> 7574 <a href="/collections/beer/IPA" class="bdh-mega__col-link"> 7575 IPA 7576 </a> 7577 </li> 7578 7579 <li> 7580 <a href="/collections/beer/Lager" class="bdh-mega__col-link"> 7581 Lager 7582 </a> 7583 </li> 7584 7585 <li> 7586 <a href="/collections/beer/Stout+Porter" class="bdh-mega__col-link"> 7587 Stout & Porter 7588 </a> 7589 </li> 7590 7591 <li>
7592 <a href="/collections/alcohol-free" class="bdh-mega__col-link"> 7593 Alcohol Free 7594 </a> 7595 </li> 7596 7597 <li> 7598 <a href="/collections/all-spirits-and-cocktails" class="bdh-mega__col-link"> 7599 Spirits & Cocktails 7600 </a> 7601 </li> 7602 7603 <li> 7604 <a href="/collections/clothing-accessories" class="bdh-mega__col-link"> 7605 Glassware & Merch 7606 </a> 7607 </li> 7608 7609 <li> 7610 <a href="/collections/hi-ball-sparkling-energy-water" class="bdh-mega__col-link"> 7611 Hi*Ball Sparkling Energy Drink 7612 </a> 7613 </li> 7614 7615 </ul> 7616 7617 7618 </div> 7619 7620 <div class="bdh-mega__col"> 7621 7622 7623 <a href="/" class="bdh-mega__col-title"> 7624 Shop by Occasion 7625 </a> 7626 7627 7628 7629 <ul class="bdh-mega__col-links"> 7630 7631 <li> 7632 <a href="/collections/bundles-mixed-packs" class="bdh-mega__col-link"> 7633 Events & Parties 7634 </a> 7635 </li> 7636 7637 <li> 7638 <a href="/collections/bundles-mixed-packs" class="bdh-mega__col-link"> 7639 Stock your Fridge 7640 </a> 7641 </li> 7642 7643 <li> 7644 <a href="/collections/bundles-mixed-packs" class="bdh-mega__col-link"> 7645 Matchday Beers 7646 </a> 7647 </li> 7648 7649 </ul> 7650 7651 7652 </div> 7653 7654 <div class="bdh-mega__col"> 7655 7656 7657 <a href="/" class="bdh-mega__col-title"> 7658 Bundles & Sale 7659 </a> 7660 7661 7662 7663 <ul class="bdh-mega__col-links"> 7664 7665 <li> 7666 <a href="/collections/personalised-can-sale" class="bdh-mega__col-link"> 7667 30% off Personalised Cans 7668 </a> 7669 </li> 7670 7671 <li> 7672 <a href="/collections/bundles-mixed-packs" class="bdh-mega__col-link"> 7673 Mixed Packs 7674 </a> 7675 </li> 7676 7677 <li> 7678 <a href="/collections/clearance" class="bdh-mega__col-link"> 7679 Clearance 7680 </a> 7681 </li> 7682 7683 <li> 7684 <a href="/collections/deals-offers" class="bdh-mega__col-link"> 7685 Latest Deals 7686 </a> 7687 </li> 7688 7689 </ul> 7690 7691 7692 </div> 7693 7694 7695 </div> 7696 </div> 7697 7698 7699 7700 7701 </li> 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 <li 7714 class="bdh-header__nav-item has-children has-mega" 7715 data-nav-item 7716 > 7717 7718 7719 <button 7720 type="button" 7721 class="bdh-header__nav-link" 7722 aria-haspopup="true" 7723 aria-expanded="false" 7724 data-nav-toggle 7725 > 7726 Bars
7727 <svg class="bdh-header__nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"> 7728 <polyline points="6 9 12 15 18 9"/> 7729 </svg> 7730 </button> 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 <div class="bdh-mega" role="region" aria-label="Bars submenu"> 7751 <div class="bdh-mega__grid bdh-mega__grid--with-card"> 7752 7753 7754 7755 7756 7757 7758 7759 7760 <a 7761 href="https://brewdog.com/pages/brewdog-treats" 7762 class="bdh-mega__card bdh-mega__card--pos-end bdh-mega__card--btn-bottom-left" 7763 style="background-color: #ffffff; color: #ffffff; background-image: url('//brewdog.com/cdn/shop/files/Students_1.png?v=1784537064&width=480');" 7764 7765 > 7766 <div class="bdh-mega__card-inner"> 7767 7768 <p class="bdh-mega__card-heading">2 PINTS ON US</p> 7769 7770 <span class="bdh-mega__card-btn bdh-mega__card-btn--white">Join Treats</span> 7771 </div> 7772 </a> 7773 7774 7775 7776 7777 <div class="bdh-mega__col"> 7778 7779 7780 <a href="/pages/hotels" class="bdh-mega__col-title"> 7781 Find 7782 </a> 7783 7784 7785 7786 <ul class="bdh-mega__col-links"> 7787 7788 <li> 7789 <a href="/pages/bar-locator-1" class="bdh-mega__col-link"> 7790 Our Bars 7791 </a> 7792 </li> 7793 7794 <li> 7795 <a href="/pages/hotels" class="bdh-mega__col-link"> 7796 Our Hotels 7797 </a> 7798 </li> 7799 7800 </ul> 7801 7802 7803 </div> 7804 7805 <div class="bdh-mega__col"> 7806 7807 7808 <a href="/" class="bdh-mega__col-title"> 7809 What's On 7810 </a> 7811 7812 7813 7814 <ul class="bdh-mega__col-links"> 7815 7816 <li> 7817 <a href="/pages/wings-wednesday" class="bdh-mega__col-link"> 7818 Wings Wednesday: Unlimited Wings 7819 </a> 7820 </li> 7821 7822 <li> 7823 <a href="https://brewdog.com/pages/bars/waterloo" class="bdh-mega__col-link"> 7824 Oktoberfest 7825 </a> 7826 </li> 7827 7828 <li> 7829 <a href="/pages/live-sports" class="bdh-mega__col-link"> 7830 Live Sport 7831 </a> 7832 </li> 7833 7834 <li> 7835 <a href="https://brewdog.com/pages/c
7835hristmas-bookings" class="bdh-mega__col-link"> 7836 Christmas 7837 </a> 7838 </li> 7839 7840 <li> 7841 <a href="/pages/beer-launches" class="bdh-mega__col-link"> 7842 Beer Releases 7843 </a> 7844 </li> 7845 7846 </ul> 7847 7848 7849 </div> 7850 7851 <div class="bdh-mega__col"> 7852 7853 7854 <a href="/" class="bdh-mega__col-title"> 7855 Offers 7856 </a> 7857 7858 7859 7860 <ul class="bdh-mega__col-links"> 7861 7862 <li> 7863 <a href="https://brewdog.com/pages/lunch-offer" class="bdh-mega__col-link"> 7864 Lunch Club 7865 </a> 7866 </li> 7867 7868 <li> 7869 <a href="https://brewdog.com/pages/u25-club" class="bdh-mega__col-link"> 7870 Student Sundays: 50% Off 7871 </a> 7872 </li> 7873 7874 <li> 7875 <a href="https://brewdog.com/pages/5-pints" class="bdh-mega__col-link"> 7876 £5 Pints 7877 </a> 7878 </li> 7879 7880 <li> 7881 <a href="/pages/birthdays" class="bdh-mega__col-link"> 7882 Birthdays: Drinks On Us 7883 </a> 7884 </li> 7885 7886 <li> 7887 <a href="/pages/deskdog-coworking-spaces" class="bdh-mega__col-link"> 7888 DeskDog: Co-Working 7889 </a> 7890 </li> 7891 7892 <li> 7893 <a href="/pages/beer-school" class="bdh-mega__col-link"> 7894 Beer Schools 7895 </a> 7896 </li> 7897 7898 <li> 7899 <a href="/pages/brewdog-treats" class="bdh-mega__col-link"> 7900 BrewDog Treats 7901 </a> 7902 </li> 7903 7904 </ul> 7905 7906 7907 </div> 7908 7909 <div class="bdh-mega__col"> 7910 7911 7912 <a href="/" class="bdh-mega__col-title"> 7913 Food 7914 </a> 7915 7916 7917 7918 <ul class="bdh-mega__col-links"> 7919 7920 <li> 7921 <a href="/pages/brewdog-bars-food" class="bdh-mega__col-link"> 7922 Bar Menu 7923 </a> 7924 </li> 7925 7926 <li> 7927 <a href="/pages/brunch-menu" class="bdh-mega__col-link"> 7928 Brunch Menu 7929 </a> 7930 </li> 7931 7932 <li> 7933 <a href="https://brewdog.com/pages/kids-menu" class="bdh-mega__col-link"> 7934 Kids Menu 7935 </a> 7936 </li> 7937 7938 </ul> 7939 7940 7941 </div> 7942 7943 7944 </div> 7945 </div> 7946 7947 7948 7949 7950 </li> 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 <li 7963 class="bdh-header__nav-item has-children has-mega" 7964 data-nav-item 7965 > 7966 7967 7968 <button 7969 type="button" 7970 class="bdh-header__nav-link" 7971 aria-haspopup="true" 7972 aria-expanded="false" 7973 data-nav-toggle 7974 > 7975 Gifting
7976 <svg class="bdh-header__nav-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"> 7977 <polyline points="6 9 12 15 18 9"/> 7978 </svg> 7979 </button> 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 <div class="bdh-mega" role="region" aria-label="Gifting submenu"> 8000 <div class="bdh-mega__grid bdh-mega__grid--with-card"> 8001 8002 8003 8004 8005 8006 8007 8008 8009 <a 8010 href="/products/beer-advent-calendar-2026" 8011 class="bdh-mega__card bdh-mega__card--pos-end bdh-mega__card--btn-bottom-left" 8012 style="background-color: #ffffff; color: #333333; background-image: url('//brewdog.com/cdn/shop/files/PDP_Advent_2_358d3856-d429-48ce-8b16-da644811ee53.png?v=1786978374&width=480');" 8013 8014 > 8015 <div class="bdh-mega__card-inner"> 8016 8017 <span class="bdh-mega__card-btn bdh-mega__card-btn--white">Pre-order Advent</span> 8018 </div> 8019 </a> 8020 8021 8022 8023 8024 <div class="bdh-mega__col"> 8025 8026 8027 <a href="/collections/personalised-cans" class="bdh-mega__col-title"> 8028 Personalised Cans 8029 </a> 8030 8031 8032 8033 <ul class="bdh-mega__col-links"> 8034 8035 <li> 8036 <a href="/products/birthday" class="bdh-mega__col-link"> 8037 Birthday 8038 </a> 8039 </li> 8040 8041 <li> 8042 <a href="/products/congrats" class="bdh-mega__col-link"> 8043 Celebration 8044 </a> 8045 </li> 8046 8047 <li> 8048 <a href="/products/wedding" class="bdh-mega__col-link"> 8049 Wedding 8050 </a> 8051 </li> 8052 8053 <li> 8054 <a href="/collections/personalised-cans" class="bdh-mega__col-link"> 8055 Bulk 8056 </a> 8057 </li> 8058 8059 <li> 8060 <a href="/collections/personalised-cans" class="bdh-mega__col-link"> 8061 Shop All 8062 </a> 8063 </li> 8064 8065 </ul> 8066 8067 8068 </div> 8069 8070 <div class="bdh-mega__col"> 8071 8072 8073 <a href="/" class="bdh-mega__col-title"> 8074 Gifts by Price 8075 </a> 8076 8077 8078 8079 <ul class="bdh-mega__col-links"> 8080 8081 <li> 8082 <a href="/collections/gifts-under-25" class="bdh-mega__col-link"> 8083 Gifts Under £25 8084 </a> 8085 </li> 8086 8087 <li> 8088 <a href="/collections/gifts-under-50" class="bdh-mega__col-link"> 8089 Gifts Under £50 8090 </a> 8091 </li> 8092 8093 <li> 8094 <a href="/collections/gifts-under-75" class="bdh-mega__col-link"> 8095 Gifts Under £75 8096 </a> 8097 </li> 8098 8099 <li> 8100 <a href="/collections/shop-all-gifts" class="bdh-mega__col-link"> 8101 Shop All Gifts 8102 </a> 8103 </li> 8104 8105 </ul> 8106 8107 8108 </div> 8109 8110 <div class="bdh-mega__col"> 8111 8112 8113 <a href="/" class="bdh-mega__col-title"> 8114 Gifts by Type 8115 </a> 8116 8117 8118 8119 <ul class="bdh-mega__col-links"> 8120 8121 <li> 8122 <a href="/products/beer-advent-calendar-2026" class="bdh-mega__col-link"> 8123 Advent Calendar 8124 </a> 8125 </li> 8126 8127 <li> 8128 <a href="/pages/giftcard" class="bdh-mega__col-link"> 8129 Bar Gift Vouchers 8130 </a> 8131 </li> 8132 8133 <li> 8134 <a href="/collections/shop-all-gifts/Gift-Box" class="bdh-mega__col-link"> 8135 Gift Boxes 8136 </a> 8137 </li> 8138 8139 <li> 8140 <a href="/collections/bundles-mixed-packs" class="bdh-mega__col-link"> 8141 Mixed Bundles 8142 </a> 8143 </li> 8144 8145 <li> 8146 <a href="/collections/clothing-accessories" class="bdh-mega__col-link"> 8147 Merch & Clothing 8148 </a> 8149 </li> 8150 8151 <li> 8152 <a href="/collections/glassware-barware" class="bdh-mega__col-link"> 8153 Glassware & Barware 8154 </a> 8155 </li> 8156 8157 </ul> 8158 8159 8160 </div> 8161 8162 <div class="bdh-mega__col"> 8163 8164 8165 <a href="/collections/shop-all-gifts" class="bdh-mega__col-title"> 8166 Gifts For 8167 </a> 8168 8169 8170 8171 <ul class="bdh-mega__col-links"> 8172 8173 <li> 8174 <a href="/collections/shop-all-gifts/Craft-Beer-Fans" class="bdh-mega__col-link"> 8175 Craft Beer Fans 8176 </a> 8177 </li> 8178 8179 <li> 8180 <a href="/collections/shop-all-gifts/Lager" class="bdh-mega__col-link"> 8181 Lager Lovers 8182 </a> 8183 </li> 8184 8185 <li> 8186 <a href="/collections/shop-all-gifts/IPA" class="bdh-mega__col-link"> 8187 IPA Enthusiasts 8188 </a> 8189 </li> 8190 8191 <li> 8192 <a href="/collections/all-spirits-and-cocktails" class="bdh-mega__col-link"> 8193 Cocktail Lovers 8194 </a> 8195 </li> 8196 8197 <li> 8198 <a href="/collections/glassware-barware" class="bdh-mega__col-link"> 8199 Home Bars 8200 </a> 8201 </li> 8202 8203 </ul> 8204 8205 8206 </div> 8207 8208 8209 </div> 8210 </div> 8211 8212 8213 8214 8215 </li> 8216 8217 8218 8219 8220 8221 8222 <li 8223 class="bdh-header__nav-item " 8224 data-nav-item 8225 > 8226 8227 <a 8228 href="https://brewdog.com/products/subscriptions-bundle-builder" 8229 class="bdh-header__nav-link" 8230 8231 > 8232 Subscribe & Save
8233 </a> 8234 8235 </li> 8236 8237 8238 8239 </ul> 8240 </nav> 8241 8242 8243 <div class="bdh-header__actions"> 8244 8245 8246 <div class="bdh-search" id="bdh-search" role="search"> 8247 8248 <form class="bdh-search__bar" action="/search" method="get" autocomplete="off"> 8249 <input type="hidden" name="type" value="product"> 8250 <button type="submit" class="bdh-search__submit" aria-label="Access Search"> 8251 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 8252 <circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/> 8253 </svg> 8254 </button> 8255 <input 8256 id="bdh-search-input" 8257 type="text" 8258 name="q" 8259 class="bdh-search__input" 8260 placeholder="Search..." 8261 aria-label="Search..." 8262 aria-autocomplete="list" 8263 aria-controls="bdh-search-dropdown" 8264 aria-expanded="false" 8265 role="combobox" 8266 > 8267 <button type="button" class="bdh-search__clear" id="bdh-search-clear" aria-label="Clear Search" hidden> 8268 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"> 8269 <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/> 8270 </svg> 8271 </button> 8272 </form> 8273 8274 <div class="bdh-search__dropdown" id="bdh-search-dropdown" role="listbox" aria-label="Search results" hidden> 8275 8276 8277 <div class="bdh-search__loading" id="bdh-search-loading" hidden> 8278 8279 <div class="bdh-search__skel-row"> 8280 <div class="bdh-search__skel-img"></div> 8281 <div class="bdh-search__skel-lines"> 8282 <div class="bdh-search__skel-line"></div> 8283 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 8284 </div> 8285 </div> 8286 8287 <div class="bdh-search__skel-row"> 8288 <div class="bdh-search__skel-img"></div> 8289 <div class="bdh-search__skel-lines"> 8290 <div class="bdh-search__skel-line"></div> 8291 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 8292 </div> 8293 </div> 8294 8295 <div class="bdh-search__skel-row"> 8296 <div class="bdh-search__skel-img"></div> 8297 <div class="bdh-search__skel-lines"> 8298 <div class="bdh-search__skel-line"></div> 8299 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 8300 </div> 8301 </div> 8302 8303 <div class="bdh-search__skel-row"> 8304 <div class="bdh-search__skel-img"></div> 8305 <div class="bdh-search__skel-lines"> 8306 <div class="bdh-search__skel-line"></div> 8307 <div class="bdh-search__skel-line bdh-search__skel-line--short"></div> 8308 </div> 8309 </div> 8310 8311 </div> 8312 8313 8314 <div class="bdh-search__results" id="bdh-search-results" hidden></div> 8315 8316 8317 <div class="bdh-search__empty" id="bdh-search-empty" hidden> 8318 <strong id="bdh-search-empty-msg">No results found.</strong> 8319 Try something else 8320 </div> 8321 8322 8323 <div class="bdh-search__footer" id="bdh-search-footer" hidden> 8324 <span class="bdh-search__result-count" id="bdh-search-count"></span> 8325 <a href="/search" id="bdh-search-view-all" class="bdh-search__view-all"> 8326 View all results 8327 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"> 8328 <line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/> 8329 </svg> 8330 </a> 8331 </div> 8332 8333 </div> 8334 </div> 8335 8336 8337 8338 <div class="bdh-header__account-wrap"> 8339 <button 8340 type="button" 8341 id="bdh-account-btn" 8342 class="bdh-header__icon-btn" 8343 aria-haspopup="true" 8344 aria-expanded="false" 8345 aria-label="Access Account Area" 8346 > 8347 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"> 8348 <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/> 8349 </svg> 8350 </button> 8351 8352 <div class="bdh-account-dropdown" id="bdh-account-dropdown" hidden> 8353 <ul class="bdh-account-list"> 8354 <li> 8355 <a href="/account" class="bdh-account-link">Login</a> 8356 </li></ul> 8357 </div> 8358 </div> 8359 8360 8361 8362 <div class="bdh-header__cart"> 8363 <uwp-minicart 8364 class="minicart" 8365 open="false" 8366 8367 ></uwp-minicart> 8368 </div> 8369 8370 8371 8372 8373 8374 8375 <button 8376 class="bdh-header__mobile-search-btn" 8377 id="bdh-mobile-search-btn" 8378 aria-label="Access Search" 8379 aria-controls="bdh-mobile-menu" 8380 > 8381 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 8382 <circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/> 8383 </svg> 8384 </button> 8385 8386 </div> 8387 </div> 8388 </div> 8389 8390</header> 8391
8392<script> 8393(function () { 8394 'use strict'; 8395 8396 // ââ Helpers ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 8397 function qs(sel, ctx) { return (ctx || document).querySelector(sel); } 8398 function qsa(sel, ctx) { return Array.from((ctx || document).querySelectorAll(sel)); } 8399 8400 // ââ Desktop nav dropdowns (hover + click/keyboard) ââââââââââââââââââââ 8401 var navItems = qsa('[data-nav-item]'); 8402 8403 function closeAllNav(except) { 8404 navItems.forEach(function (item) { 8405 if (item === except) return; 8406 item.classList.remove('is-open'); 8407 var btn = qs('[data-nav-toggle]', item); 8408 if (btn) btn.setAttribute('aria-expanded', 'false'); 8409 }); 8410 } 8411 8412 navItems.forEach(function (item) { 8413 var toggle = qs('[data-nav-toggle]', item); 8414 if (!toggle) return; 8415 8416 var closeTimer; 8417 8418 // open on mouse-enter 8419 item.addEventListener('mouseenter', function () { 8420 clearTimeout(closeTimer); 8421 closeAllNav(item); 8422 item.classList.add('is-open'); 8423 toggle.setAttribute('aria-expanded', 'true'); 8424 // close account dropdown if open 8425 var accDrop = qs('#bdh-account-dropdown'); 8426 var accBtn = qs('#bdh-account-btn'); 8427 if (accDrop && accDrop.classList.contains('is-open')) { 8428 accDrop.classList.remove('is-open'); 8429 if (accBtn) accBtn.setAttribute('aria-expanded', 'false'); 8430 } 8431 }); 8432 8433 // delayed close on mouse-leave 8434 item.addEventListener('mouseleave', function () { 8435 closeTimer = setTimeout(function () { 8436 item.classList.remove('is-open'); 8437 toggle.setAttribute('aria-expanded', 'false'); 8438 }, 120); 8439 }); 8440 8441 // click/keyboard toggle 8442 toggle.addEventListener('click', function () { 8443 var isOpen = item.classList.contains('is-open'); 8444 closeAllNav(); 8445 if (!isOpen) { 8446 item.classList.add('is-open'); 8447 toggle.setAttribute('aria-expanded', 'true'); 8448 } else { 8449 item.classList.remove('is-open'); 8450 toggle.setAttribute('aria-expanded', 'false'); 8451 } 8452 }); 8453 }); 8454 8455 // Close nav when clicking outside 8456 document.addEventListener('click', function (e) { 8457 if (!e.target.closest('[data-nav-item]')) { 8458 closeAllNav(); 8459 } 8460 }); 8461 8462 // Close on Escape 8463 document.addEventListener('keydown', function (e) { 8464 if (e.key === 'Escape') { 8465 closeAllNav(); 8466 closeMobileMenu(); 8467 } 8468 }); 8469 8470 // ââ Account dropdown âââââââââââââââââââââââââââââââââââââââââââââââââ 8471 var accountBtn = qs('#bdh-account-btn'); 8472 var accountDropdown = qs('#bdh-account-dropdown'); 8473 8474 function closeAccountDropdown() { 8475 if (!accountDropdown) return; 8476 accountDropdown.classList.remove('is-open'); 8477 accountBtn.setAttribute('aria-expanded', 'false'); 8478 } 8479 8480 if (accountBtn && accountDropdown) { 8481 accountDropdown.hidden = false; // visibility handled by CSS opacity/transition 8482 8483 accountBtn.addEventListener('click', function (e) { 8484 e.stopPropagation(); 8485 var isOpen = accountDropdown.classList.toggle('is-open'); 8486 accountBtn.setAttribute('aria-expanded', String(isOpen)); 8487 }); 8488 8489 document.addEventListener('click', function (e) { 8490 if (accountDropdown.classList.contains('is-open') && 8491 !accountBtn.contains(e.target) && 8492 !accountDropdown.contains(e.target)) { 8493 closeAccountDropdown(); 8494 } 8495 }); 8496 8497 document.addEventListener('keydown', function (e) { 8498 if (e.key === 'Escape' && accountDropdown.classList.contains('is-open')) { 8499 closeAccountDropdown(); 8500 accountBtn.focus(); 8501 } 8502 }); 8503 } 8504 8505 // ââ UK placeholder dropdown âââââââââââââââââââââââââââââââââââââââââââ 8506 var ukWrap = qs('#bdh-uk-dropdown'); 8507 var ukBtn = qs('#bdh-uk-btn'); 8508 8509 if (ukBtn && ukWrap) { 8510 ukBtn.addEventListener('click', function (e) { 8511 e.stopPropagation(); 8512 var open = ukWrap.classList.toggle('is-open'); 8513 ukBtn.setAttribute('aria-expanded', String(open)); 8514 }); 8515 8516 document.addEventListener('click', function (e) { 8517 if (!ukWrap.contains(e.target)) { 8518 ukWrap.classList.remove('is-open'); 8519 ukBtn.setAttribute('aria-expanded', 'false'); 8520 } 8521 }); 8522 } 8523 8524 // ââ Mobile menu âââââââââââââââââââââââââââââââââââââââââââââââââââââââ 8525 var hamburger = qs('#bdh-hamburger'); 8526 var mobileMenu = qs('#bdh-mobile-menu'); 8527 var mobileClose = qs('#bdh-mobile-close'); 8528 var overlay = qs('#bdh-overlay'); 8529 8530 function openMobileMenu() { 8531 if (!mobileMenu) return; 8532 mobileMenu.classList.add('is-open'); 8533 mobileMenu.setAttribute('aria-hidden', 'false'); 8534 overlay.classList.add('is-visible'); 8535 // rAF trick to trigger opacity transition after display:block 8536 requestAnimationFrame(function () { 8537 overlay.classList.add('is-active'); 8538 }); 8539 if (hamburger) hamburger.setAttribute('aria-expanded', 'true'); 8540 document.body.style.overflow = 'hidden'; 8541 // Focus first focusable element in menu 8542 var firstFocusable = mobileMenu.querySelector('a, button, input'); 8543 if (firstFocusable) firstFocusable.focus(); 8544 } 8545 8546 function closeMobileMenu() { 8547 if (!mobileMenu) return; 8548 mobileMenu.classList.remove('is-open'); 8549 mobileMenu.setAttribute('aria-hidden', 'true'); 8550 overlay.classList.remove('is-active'); 8551 // wait for overlay fade before hiding 8552 setTimeout(function () { 8553 overlay.classList.remove('is-visible'); 8554 }, 300); 8555 if (hamburger) hamburger.setAttribute('aria-expanded', 'false'); 8556 document.body.style.overflow = ''; 8557 } 8558
8559 if (hamburger) hamburger.addEventListener('click', openMobileMenu); 8560 if (mobileClose) mobileClose.addEventListener('click', closeMobileMenu); 8561 if (overlay) overlay.addEventListener('click', closeMobileMenu); 8562 8563 // Mobile search icon â open drawer then focus the search input 8564 var mobileSearchBtn = qs('#bdh-mobile-search-btn'); 8565 if (mobileSearchBtn) { 8566 mobileSearchBtn.addEventListener('click', function () { 8567 openMobileMenu(); 8568 // Wait for the drawer slide-in transition before focusing 8569 setTimeout(function () { 8570 var mInput = qs('#bdh-msearch-input'); 8571 if (mInput) mInput.focus(); 8572 }, 320); 8573 }); 8574 } 8575 8576 // ââ Mobile sub-menu accordion (level-1 uses toggle-button, level-2 uses expand-btn) ââ 8577 qsa('[data-mobile-item]').forEach(function (item) { 8578 // Find the toggle button for this item only (direct child or inside direct row wrapper). 8579 // Level-1 items use .bdh-mobile-nav-link--toggle 8580 // Level-2 items use .bdh-mobile-expand-btn inside .bdh-mobile-sub-row 8581 var toggleBtn = null; 8582 var children = item.children; 8583 for (var i = 0; i < children.length; i++) { 8584 var el = children[i]; 8585 // Level-1: the row div contains the toggle button 8586 if (el.classList.contains('bdh-mobile-nav-row')) { 8587 var t = qs('.bdh-mobile-nav-link--toggle', el); 8588 if (t) { toggleBtn = t; break; } 8589 } 8590 // Level-2: the sub-row div contains a small expand button 8591 if (el.classList.contains('bdh-mobile-sub-row')) { 8592 var t2 = qs('.bdh-mobile-sub-link--toggle', el); 8593 if (t2) { toggleBtn = t2; break; } 8594 } 8595 } 8596 if (!toggleBtn) return; 8597 8598 toggleBtn.addEventListener('click', function (e) { 8599 e.stopPropagation(); // don't bubble up to a parent item's button 8600 var isOpen = item.classList.contains('is-open'); 8601 // Close same-level siblings only 8602 var parentList = item.parentElement; 8603 if (parentList) { 8604 qsa('[data-mobile-item].is-open', parentList).forEach(function (openItem) { 8605 if (openItem !== item && openItem.parentElement === parentList) { 8606 openItem.classList.remove('is-open'); 8607 var openBtn = qs('.bdh-mobile-nav-link--toggle, .bdh-mobile-sub-link--toggle', openItem); 8608 if (openBtn) openBtn.setAttribute('aria-expanded', 'false'); 8609 } 8610 }); 8611 } 8612 item.classList.toggle('is-open', !isOpen); 8613 toggleBtn.setAttribute('aria-expanded', String(!isOpen)); 8614 }); 8615 }); 8616 8617 // ââ Enhanced search âââââââââââââââââââââââââââââââââââââââââââââââââââ 8618 (function () { 8619 var searchWrap = qs('#bdh-search'); 8620 var searchInput = qs('#bdh-search-input'); 8621 var searchClear = qs('#bdh-search-clear'); 8622 var searchDrop = qs('#bdh-search-dropdown'); 8623 var searchLoading = qs('#bdh-search-loading'); 8624 var searchResults = qs('#bdh-search-results'); 8625 var searchEmpty = qs('#bdh-search-empty'); 8626 var searchFooter = qs('#bdh-search-footer'); 8627 var searchCount = qs('#bdh-search-count'); 8628 var searchViewAll = qs('#bdh-search-view-all'); 8629 8630 if (!searchInput || !searchWrap) return; 8631 8632 var debounceTimer = null; 8633 var currentQuery = ''; 8634 var focusedIndex = -1; 8635 8636 // ââ Shopify CDN image sizing helper ââââââââââââââââââââââââââââââ 8637 // Appends _200x to the filename before the extension for 200px wide images 8638 function sizedImgUrl(url, size) { 8639 if (!url) return ''; 8640 size = size || '200x'; 8641 // Shopify CDN pattern: â¦/filename.ext?v=⦠8642 return url.replace(/(\.[a-z]+)(\?|$)/i, '_' + size + '$1$2'); 8643 } 8644 8645 // ââ Price formatter âââââââââââââââââââââââââââââââââââââââââââââââ 8646 // Shopify's Predictive Search API returns price as a decimal string 8647 // in the major currency unit (e.g. "6.49"), NOT as integer pence. 8648 function formatPrice(raw) { 8649 if (raw === undefined || raw === null) return ''; 8650 var amount = parseFloat(raw); 8651 if (isNaN(amount)) return ''; 8652 return '£' + amount.toFixed(2); 8653 } 8654 8655 // ââ Highlight matched text ââââââââââââââââââââââââââââââââââââââââ 8656 function highlight(text, query) { 8657 if (!query) return escHtml(text); 8658 var escaped = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 8659 return escHtml(text).replace( 8660 new RegExp('(' + escaped + ')', 'gi'), 8661 '<mark>$1</mark>' 8662 ); 8663 } 8664 8665 function escHtml(str) { 8666 return String(str) 8667 .replace(/&/g, '&') 8668 .replace(/</g, '<') 8669 .replace(/>/g, '>') 8670 .replace(/"/g, '"'); 8671 } 8672 8673 // ââ Show / hide states ââââââââââââââââââââââââââââââââââââââââââââ 8674 function showDropdown() { 8675 searchDrop.hidden = false;
8676 searchWrap.classList.add('is-open'); 8677 searchInput.setAttribute('aria-expanded', 'true'); 8678 } 8679 8680 function hideDropdown() { 8681 searchDrop.hidden = true; 8682 searchWrap.classList.remove('is-open'); 8683 searchInput.setAttribute('aria-expanded', 'false'); 8684 focusedIndex = -1; 8685 } 8686 8687 function setState(state) { 8688 // states: 'loading' | 'results' | 'empty' | 'idle' 8689 searchLoading.hidden = state !== 'loading'; 8690 searchResults.hidden = state !== 'results'; 8691 searchEmpty.hidden = state !== 'empty'; 8692 searchFooter.hidden = state !== 'results'; 8693 } 8694 8695 // ââ Keyboard navigation âââââââââââââââââââââââââââââââââââââââââââ 8696 function getResultLinks() { 8697 return Array.from(searchResults.querySelectorAll('.bdh-search__result-item')); 8698 } 8699 8700 function setFocus(index) { 8701 var links = getResultLinks(); 8702 links.forEach(function (l) { l.classList.remove('is-focused'); }); 8703 if (index < 0 || index >= links.length) { 8704 focusedIndex = -1; 8705 searchInput.focus(); 8706 return; 8707 } 8708 focusedIndex = index; 8709 links[index].classList.add('is-focused'); 8710 links[index].focus(); 8711 } 8712 8713 searchInput.addEventListener('keydown', function (e) { 8714 if (!searchDrop || searchDrop.hidden) return; 8715 var links = getResultLinks(); 8716 if (e.key === 'ArrowDown') { 8717 e.preventDefault(); 8718 setFocus(Math.min(focusedIndex + 1, links.length - 1)); 8719 } else if (e.key === 'ArrowUp') { 8720 e.preventDefault(); 8721 setFocus(Math.max(focusedIndex - 1, -1)); 8722 } else if (e.key === 'Escape') { 8723 hideDropdown(); 8724 searchInput.blur(); 8725 } 8726 }); 8727 8728 // ââ Render product cards ââââââââââââââââââââââââââââââââââââââââââ 8729 var searchEmptyMsg = qs('#bdh-search-empty-msg'); 8730 8731 function renderProducts(products, query) { 8732 searchResults.innerHTML = ''; 8733 if (!products || !products.length) { 8734 if (searchEmptyMsg) searchEmptyMsg.textContent = 'No results for \u201c' + query + '\u201d'; 8735 setState('empty'); 8736 return; 8737 } 8738 8739 products = products.slice(0, 4); 8740 products.forEach(function (p) { 8741 var a = document.createElement('a'); 8742 a.className = 'bdh-search__result-item'; 8743 a.href = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root 8744 ? window.Shopify.routes.root 8745 : '/') + 'products/' + p.handle; 8746 a.setAttribute('role', 'option'); 8747 a.tabIndex = -1; 8748 8749 var imgHtml; 8750 if (p.featured_image && p.featured_image.url) { 8751 imgHtml = '<img class="bdh-search__result-img" src="' + 8752 escHtml(sizedImgUrl(p.featured_image.url, '200x')) + 8753 '" alt="' + escHtml(p.title) + '" width="44" height="44" loading="lazy">'; 8754 } else { 8755 imgHtml = '<div class="bdh-search__result-img-placeholder">' + 8756 '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">' + 8757 '<rect x="3" y="3" width="18" height="18" rx="2"/>' + 8758 '<circle cx="8.5" cy="8.5" r="1.5"/>' + 8759 '<polyline points="21 15 16 10 5 21"/>' + 8760 '</svg></div>'; 8761 } 8762 8763 var priceHtml = p.price 8764 ? '<span class="bdh-search__result-price">' + formatPrice(p.price) + '</span>' 8765 : ''; 8766 8767 a.innerHTML = imgHtml + 8768 '<div class="bdh-search__result-meta">' + 8769 '<span class="bdh-search__result-title">' + highlight(p.title, query) + '</span>' + 8770 priceHtml + 8771 '</div>'; 8772 8773 searchResults.appendChild(a); 8774 }); 8775 8776 // footer 8777 var total = products.length; 8778 if (searchCount) searchCount.textContent = (total === 4 ? '4+' : total) + ' result' + (total !== 1 ? 's' : ''); 8779 if (searchViewAll) searchViewAll.href = '/search?type=product&q=' + encodeURIComponent(query); 8780 8781 setState('results'); 8782 } 8783 8784 // ââ Fetch from Shopify Predictive Search API ââââââââââââââââââââââ 8785 function fetchResults(query) { 8786 showDropdown(); 8787 setState('loading'); 8788 8789 var url = '/search/suggest.json' 8790 + '?q=' + encodeURIComponent(query) 8791 + '&resources[type]=product' 8792 + '&resources[limit]=4' 8793 + '&resources[unavailable_products]=hide' 8794 + '&resources[fields]=title,product_type,variants.title,vendor'; 8795 8796 fetch(url) 8797 .then(function (r) { return r.json(); }) 8798 .then(function (data) { 8799 var products = 8800 data && 8801 data.resources && 8802 data.resources.results && 8803 data.resources.results.products; 8804 renderProducts(products || [], query); 8805 }) 8806 .catch(function () { 8807 setState('empty'); 8808 }); 8809 } 8810 8811 // ââ Input handler (debounced 250 ms, min 2 chars) âââââââââââââââââ 8812 searchInput.addEventListener('input', function () { 8813 var val = searchInput.value.trim(); 8814 8815 // show/hide clear button 8816 searchClear.hidden = !val; 8817 8818 if (val.length < 2) { 8819 clearTimeout(debounceTimer); 8820 hideDropdown(); 8821 currentQuery = ''; 8822 return; 8823 } 8824 8825 if (val === currentQuery) return; 8826 currentQuery = val; 8827 8828 clearTimeout(debounceTimer); 8829 debounceTimer = setTimeout(function () { 8830 fetchResults(val); 8831 }, 250); 8832 }); 8833 8834 // ââ Focus: reopen last results if input has value âââââââââââââââââ 8835 searchInput.addEventListener('focus', function () { 8836 if (searchInput.value.trim().length >= 2) { 8837 showDropdown(); 8838 if (currentQuery === searchInput.value.trim() && !searchResults.hidden) { 8839 // results already rendered, just show 8840 } else { 8841 fetchResults(searchInput.value.trim()); 8842 } 8843 } 8844 }); 8845 8846 // ââ Clear button ââââââââââââââââââââââââââââââââââââââââââââââââââ 8847 if (searchClear) { 8848 searchClear.addEventListener('click', function () { 8849 searchInput.value = ''; 8850 searchClear.hidden = true; 8851 currentQuery = ''; 8852 hideDropdown(); 8853 searchInput.focus(); 8854 }); 8855 } 8856 8857 // ââ Close on outside click ââââââââââââââââââââââââââââââââââââââââ 8858 document.addEventListener('click', function (e) {
8859 if (!searchWrap.contains(e.target)) { 8860 hideDropdown(); 8861 } 8862 }); 8863 8864 // close search dropdown when nav opens 8865 navItems.forEach(function (item) { 8866 item.addEventListener('mouseenter', hideDropdown); 8867 }); 8868 8869 }()); // end enhanced search 8870 8871 // ââ Mobile predictive search ââââââââââââââââââââââââââââââââââââââââââ 8872 (function () { 8873 var wrap = qs('#bdh-msearch-wrap'); 8874 var input = qs('#bdh-msearch-input'); 8875 var clear = qs('#bdh-msearch-clear'); 8876 var drop = qs('#bdh-msearch-dropdown'); 8877 var loading = qs('#bdh-msearch-loading'); 8878 var results = qs('#bdh-msearch-results'); 8879 var empty = qs('#bdh-msearch-empty'); 8880 var footer = qs('#bdh-msearch-footer'); 8881 var count = qs('#bdh-msearch-count'); 8882 var viewAll = qs('#bdh-msearch-viewall'); 8883 8884 if (!input || !wrap) return; 8885 8886 var timer = null; 8887 var lastQ = ''; 8888 8889 function esc(s) { 8890 return String(s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"'); 8891 } 8892 function price(raw) { 8893 var n = parseFloat(raw); return isNaN(n) ? '' : '£' + n.toFixed(2); 8894 } 8895 function thumb(url) { 8896 return url ? url.replace(/(\.[a-z]+)(\?|$)/i, '_200x$1$2') : ''; 8897 } 8898 function hilite(text, q) { 8899 if (!q) return esc(text); 8900 return esc(text).replace(new RegExp('(' + q.replace(/[.*+?^${}()|[\]\\]/g,'\\$&') + ')', 'gi'), '<mark>$1</mark>'); 8901 } 8902 8903 function setState(state) { 8904 loading.hidden = state !== 'loading'; 8905 results.hidden = state !== 'results'; 8906 empty.hidden = state !== 'empty'; 8907 footer.hidden = state !== 'results'; 8908 } 8909 8910 function showDrop() { drop.hidden = false; input.setAttribute('aria-expanded','true'); } 8911 function hideDrop() { drop.hidden = true; input.setAttribute('aria-expanded','false'); } 8912 8913 var mEmptyMsg = qs('#bdh-msearch-empty-msg'); 8914 8915 function render(products, q) { 8916 results.innerHTML = ''; 8917 if (!products || !products.length) { 8918 if (mEmptyMsg) mEmptyMsg.textContent = 'No results for \u201c' + q + '\u201d'; 8919 setState('empty'); 8920 return; 8921 } 8922 products.slice(0, 4).forEach(function (p) { 8923 var a = document.createElement('a'); 8924 a.className = 'bdh-search__result-item'; 8925 a.href = ((window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/') + 'products/' + p.handle; 8926 a.setAttribute('role', 'option'); 8927 var img = (p.featured_image && p.featured_image.url) 8928 ? '<img class="bdh-search__result-img" src="' + esc(thumb(p.featured_image.url)) + '" alt="' + esc(p.title) + '" width="36" height="36" loading="lazy">' 8929 : '<div class="bdh-search__result-img-placeholder"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>'; 8930 var pr = p.price ? '<span class="bdh-search__result-price">' + price(p.price) + '</span>' : ''; 8931 a.innerHTML = img + '<div class="bdh-search__result-meta"><span class="bdh-search__result-title">' + hilite(p.title, q) + '</span>' + pr + '</div>'; 8932 results.appendChild(a); 8933 }); 8934 if (count) count.textContent = (products.length === 4 ? '4+' : products.length) + ' result' + (products.length !== 1 ? 's' : ''); 8935 if (viewAll) viewAll.href = '/search?type=product&q=' + encodeURIComponent(q); 8936 setState('results'); 8937 } 8938 8939 function fetch$(q) { 8940 showDrop(); setState('loading'); 8941 fetch('/search/suggest.json?q=' + encodeURIComponent(q) + 8942 '&resources[type]=product&resources[limit]=4&resources[unavailable_products]=hide&resources[fields]=title,product_type,variants.title,vendor') 8943 .then(function (r) { return r.json(); }) 8944 .then(function (d) { render((d && d.resources && d.resources.results && d.resources.results.products) || [], q); }) 8945 .catch(function () { setState('empty'); }); 8946 } 8947 8948 input.addEventListener('input', function () { 8949 var val = input.value.trim(); 8950 clear.hidden = !val; 8951 if (val.length < 2) { clearTimeout(timer); hideDrop(); lastQ = ''; return; } 8952 if (val === lastQ) return; 8953 lastQ = val; 8954 clearTimeout(timer); 8955 timer = setTimeout(function () { fetch$(val); }, 250); 8956 }); 8957 8958 input.addEventListener('focus', function () { 8959 if (input.value.trim().length >= 2) { showDrop(); if (lastQ !== input.value.trim() || results.hidden) fetch$(input.value.trim()); } 8960 }); 8961 8962 if (clear) { 8963 clear.addEventListener('click', function () { 8964 input.value = ''; clear.hidden = true; lastQ = ''; hideDrop(); input.focus(); 8965 }); 8966 } 8967 8968 document.addEventListener('click', function (e) { 8969 if (!wrap.contains(e.target)) hideDrop(); 8970 }); 8971 8972 }()); // end mobile search 8973 8974})(); 8975</script>
8975 8976 8977 8978</header> 8979 8980 8981 8982 8983 8984
8984<script src="//brewdog.com/cdn/shop/t/271/assets/add-to-cart-notification-BU_jAJp-.js" type="module" crossorigin="anonymous"></script>
8984 8985 8986<uwp-add-to-cart-notification class="add-to-cart-notification"> 8987 <p class=" 8988 add-to-cart-notification__text 8989 text-md-body--semi-bold 8990 "> 8991 8992 8993 8994 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 8995 <path d="M20 6.70587L9.88235 17.2941L4 11.4118" stroke="#111111" stroke-width="2"/> 8996 </svg> 8997 8998 8999 9000 9001 9002 Item added to basket 9003 </p> 9004</uwp-add-to-cart-notification> 9005 9006
9007<script> 9008(function () { 9009 var BANNER_ID = 'minicart-subscription-banner'; 9010 var BANNER_SRC = 'https://cdn.shopify.com/s/files/1/0822/7281/3382/files/FG_1717_x_828_px_2.png?v=1782811217'; 9011 var BANNER_ALT = 'Your free glass will be shipped with your order'; 9012 9013 var pendingInject = false; 9014 9015 // ââ helpers ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 9016 9017 function getCartItems() { 9018 var cartEl = document.querySelector('uwp-cart'); 9019 return (cartEl && cartEl.cartData && cartEl.cartData.items) || []; 9020 } 9021 9022 function isSubscriptionCart() { 9023 return getCartItems().some(function (item) { 9024 return item.properties && item.properties._rc_bundle; 9025 }); 9026 } 9027 9028 // ââ DOM injection ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 9029 9030 function injectBanner() { 9031 pendingInject = false; 9032 9033 var existing = document.getElementById(BANNER_ID); 9034 9035 if (!isSubscriptionCart()) { 9036 if (existing) existing.remove(); 9037 return; 9038 } 9039 9040 // Banner already in place â nothing to do 9041 if (existing) return; 9042 9043 var drawer = document.querySelector('uwp-drawer[modal-name="mini-cart"]'); 9044 if (!drawer) return; 9045 9046 var itemsLists = drawer.querySelectorAll('.minicart__items-list'); 9047 if (!itemsLists.length) return; 9048 9049 var lastList = itemsLists[itemsLists.length - 1]; 9050 9051 var banner = document.createElement('div'); 9052 banner.id = BANNER_ID; 9053 banner.style.cssText = 'padding: 8px 0px 0px 0px;'; 9054 9055 var img = document.createElement('img'); 9056 img.src = BANNER_SRC; 9057 img.alt = BANNER_ALT; 9058 img.loading = 'lazy'; 9059 img.style.cssText = 'width: 100%; height: auto; display: block; border-radius: 8px;'; 9060 9061 banner.appendChild(img); 9062 lastList.append(banner); 9063 } 9064 9065 // Double rAF gives Preact two render cycles to finish before we touch the DOM 9066 function scheduleInject() { 9067 if (pendingInject) return; 9068 pendingInject = true; 9069 requestAnimationFrame(function () { 9070 requestAnimationFrame(injectBanner); 9071 }); 9072 } 9073 9074 // ââ observers ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 9075 9076 // Watch uwp-cart[cart-data] â fires on every cart change 9077 function observeCart(cartEl) { 9078 var observer = new MutationObserver(function (mutations) { 9079 mutations.forEach(function (m) { 9080 if (m.attributeName === 'cart-data') scheduleInject(); 9081 }); 9082 }); 9083 observer.observe(cartEl, { attributes: true }); 9084 } 9085 9086 // Watch minicart__body childList â catches Preact re-renders triggered by 9087 // async metafields loading that wipe our injected banner without a cart change 9088 function observeDrawerBody(body) { 9089 var observer = new MutationObserver(function () { 9090 if (isSubscriptionCart() && !document.getElementById(BANNER_ID)) { 9091 scheduleInject(); 9092 } 9093 }); 9094 observer.observe(body, { childList: true }); 9095 } 9096 9097 // ââ init âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 9098 9099 function init() { 9100 var cartEl = document.querySelector('uwp-cart'); 9101 if (cartEl) observeCart(cartEl); 9102 9103 // Preact needs a moment to mount the drawer into the DOM 9104 requestAnimationFrame(function () { 9105 requestAnimationFrame(function () { 9106 var body = document.querySelector( 9107 'uwp-drawer[modal-name="mini-cart"] .minicart__body' 9108 ); 9109 if (body) observeDrawerBody(body); 9110 scheduleInject(); 9111 }); 9112 }); 9113 } 9114 9115 // cart:updated fires for every cart mutation (add, remove, quantity change) 9116 document.addEventListener('cart:updated', scheduleInject); 9117 9118 if (document.readyState === 'loading') { 9119 document.addEventListener('DOMContentLoaded', init); 9120 } else { 9121 init(); 9122 } 9123})(); 9124</script>
9124 9125 9126 9127 <main id="main-content" role="main" tabindex="-1"> 9128 9129 9130 9131 9132 <div id="shopify-section-template--26216405205318__collection-header" class="shopify-section"> 9133 9134<div class="collection-header"> 9135 <div class="collection-header__container container"> 9136 9137<nav class="breadcrumbs" role="navigation" aria-label="breadcrumbs"> 9138 <ol class="breadcrumbs__list"> 9139 9140 9141 <li class="breadcrumbs__item"> 9142 <a class="breadcrumbs__link" href="/">Home</a> 9143 </li> 9144 9145<li class="breadcrumbs__item"> 9146 <a class="breadcrumbs__link" href="/collections/shop-all-gifts" aria-current="page">Gifts</a> 9147 </li></ol> 9148</nav>
9149<script> 9150 const breadcrumbsList = document.querySelector('.breadcrumbs__list'); 9151 9152 if (breadcrumbsList) { 9153 const showBackArrow = 'false'; 9154 if (showBackArrow === 'true') { 9155 // Insert back arrow inside first breadcrumb list 9156 const backArrowMarkup = ` 9157 9158 9159 9160`; 9161 const firstLink = breadcrumbsList.querySelector('a'); 9162 firstLink.insertAdjacentHTML('afterbegin', backArrowMarkup); 9163 } 9164 9165 // Update collection breadcrumb if we're on a product page and came from a collection 9166 if ("collection" === 'product') { 9167 const collectionBreadcrumb = document.getElementById('collection-breadcrumb'); 9168 const referrer = document.referrer; 9169 9170 console.log('Referrer URL:', referrer); 9171 console.log('Collection breadcrumb element:', collectionBreadcrumb); 9172 9173 if (collectionBreadcrumb && referrer && referrer.includes('/collections/')) { 9174 try { 9175 // Extract collection handle from referrer URL 9176 // Handles URLs like: https://site.com/collections/danny or https://site.com/collections/danny?page=1 9177 const collectionMatch = referrer.match(/\/collections\/([^\/\?]+)/); 9178 const collectionHandle = collectionMatch ? collectionMatch[1] : null; 9179 9180 console.log('Extracted collection handle:', collectionHandle); 9181 9182 if (collectionHandle && collectionHandle !== 'all') { 9183 console.log('Updating breadcrumb to collection:', collectionHandle); 9184 collectionBreadcrumb.href = `/collections/${collectionHandle}`; 9185 9186 // Fetch collection title to update breadcrumb text 9187 fetch(`/collections/${collectionHandle}.json`) 9188 .then(response => response.json()) 9189 .then(data => { 9190 if (data.collection && data.collection.title) { 9191 collectionBreadcrumb.textContent = data.collection.title; 9192 console.log('Updated breadcrumb text to:', data.collection.title); 9193 } 9194 }) 9195 .catch((error) => { 9196 console.log('Could not fetch collection title:', error); 9197 }); 9198 } 9199 } catch (error) { 9200 console.log('Error parsing collection from referrer:', error); 9201 } 9202 } 9203 } 9204 9205 // Append article tag to breadcrumbs if users is visiting from filtered blog page 9206 if (ThemeVars.template.name === 'article') { 9207 const previousUrl = document.referrer; 9208 if (previousUrl.includes('/tagged')) { 9209 const tagHandle = previousUrl.split('/').pop(); 9210 const tagName = tagHandle.replace('-', ' '); 9211 const breadcrumbsItems = breadcrumbsList.querySelectorAll('.breadcrumbs__item'); 9212 const lastBreadcrumbsItem = breadcrumbsItems[breadcrumbsItems.length - 1]; 9213 const newBreadcrumbsItem = document.createElement('li'); 9214 newBreadcrumbsItem.className = 'breadcrumbs__item'; 9215 newBreadcrumbsItem.innerHTML = `<a class="breadcrumbs__link" href="${previousUrl}" aria-current="page">${tagName}</a>`; 9216 breadcrumbsList.insertBefore(newBreadcrumbsItem, lastBreadcrumbsItem,); 9217 } 9218 } 9219 } 9220 9221</script>
9221 9222 <h1 class="collection-header__title heading-1" role="heading" aria-level="1">Gifts</h1> 9223 9224 <div class="collection-header__description rte" role="region" aria-label="Collection Description"> 9225 <style type="text/css"><!--td {border: 1px solid #cccccc;}br {mso-data-placement:same-cell;}--></style> 9226<p class="MsoNormal"><span data-sheets-root="1">Looking for the perfect beer gift? Youâve found it. Whether itâs craft beer bundles, personalised cans, or epic merch, weâve got gifts for beer lovers covered. Birthdays, celebrations, or just because. Raise a glass to great gifting.</span><br></p> 9227 </div> 9228 9229 <div role="region" aria-live="polite" aria-label="Related Collections"> 9230 9231 </div> 9232 9233 9234 <uwp-collection-carousel 9235 desktop-items="6" 9236 mobile-items="2.3" 9237 > 9238 <div class="swiper"> 9239 <div class="swiper-wrapper"> 9240 9241 9242 <div 9243 class="swiper-slide" 9244 role="group" 9245 aria-label="Slide 1 of 0" 9246 > 9247 <div 9248 class="collection-card" 9249 role="group" 9250 aria-label="Collection Card: Gifts Under £25" 9251> 9252 <a 9253 href="/collections/gifts-under-25" 9254 class="collection-card__link" 9255 aria-label="View collection: Gifts Under £25" 9256 > 9257 9258 9259 9260 9261 9262<div 9263 class=" 9264 responsive-image collection-card__image 9265 9266 " 9267 style="--aspect-ratio: 6/4;" 9268> 9269 9270 <img 9271 src="//brewdog.com/cdn/shop/collections/Fathers_Day_2026_Digital_Assets_11_800x800_089743ac-f25f-4ab8-8329-4f29e42e13db.png?v=1778576325&width=200" 9272 srcset=" 9273 //brewdog.com/cdn/shop/collections/Fathers_Day_2026_Digital_Assets_11_800x800_089743ac-f25f-4ab8-8329-4f29e42e13db.png?v=1778576325&width=320 320w, 9274 //brewdog.com/cdn/shop/collections/Fathers_Day_2026_Digital_Assets_11_800x800_089743ac-f25f-4ab8-8329-4f29e42e13db.png?v=1778576325&width=480 480w, 9275 //brewdog.com/cdn/shop/collections/Fathers_Day_2026_Digital_Assets_11_800x800_089743ac-f25f-4ab8-8329-4f29e42e13db.png?v=1778576325&width=768 768w, 9276 //brewdog.com/cdn/shop/collections/Fathers_Day_2026_Digital_Assets_11_800x800_089743ac-f25f-4ab8-8329-4f29e42e13db.png?v=1778576325&width=1024 1024w, 9277 //brewdog.com/cdn/shop/collections/Fathers_Day_2026_Digital_Assets_11_800x800_089743ac-f25f-4ab8-8329-4f29e42e13db.png?v=1778576325&width=2048 2048w 9278 " 9279 sizes="400x" 9280 alt="Gifts Under £25" 9281 9282 loading="lazy" 9283 9284 class="responsive-image__image collection-card__image-image" 9285 width="800" 9286 height="800" 9287 > 9288 9289 9290</div> 9291 9292 9293 9294 <p 9295 class="collection-card__title" 9296 role="heading" 9297 aria-level="2" 9298 > 9299 Gifts Under £25 9300 </p> 9301 </a> 9302</div> 9303 </div> 9304 9305 9306 <div 9307 class="swiper-slide" 9308 role="group" 9309 aria-label="Slide 2 of 0" 9310 > 9311 <div 9312 class="collection-card" 9313 role="group" 9314 aria-label="Collection Card: Gifts Under £50" 9315> 9316 <a 9317 href="/collections/gifts-under-50" 9318 class="collection-card__link" 9319 aria-label="View collection: Gifts Under £50" 9320 > 9321 9322 9323 9324 9325 9326<div 9327 class=" 9328 responsive-image collection-card__image 9329 9330 " 9331 style="--aspect-ratio: 6/4;" 9332> 9333 9334 <img 9335 src="//brewdog.com/cdn/shop/collections/Nice_list_and_Box-1_-_PDP_Product_Card.png?v=1775647226&width=200" 9336 srcset=" 9337 //brewdog.com/cdn/shop/collections/Nice_list_and_Box-1_-_PDP_Product_Card.png?v=1775647226&width=320 320w, 9338 //brewdog.com/cdn/shop/collections/Nice_list_and_Box-1_-_PDP_Product_Card.png?v=1775647226&width=480 480w, 9339 //brewdog.com/cdn/shop/collections/Nice_list_and_Box-1_-_PDP_Product_Card.png?v=1775647226&width=768 768w, 9340 //brewdog.com/cdn/shop/collections/Nice_list_and_Box-1_-_PDP_Product_Card.png?v=1775647226&width=1024 1024w, 9341 //brewdog.com/cdn/shop/collections/Nice_list_and_Box-1_-_PDP_Product_Card.png?v=1775647226&width=2048 2048w 9342 " 9343 sizes="400x" 9344 alt="Gifts Under £50" 9345 9346 loading="lazy" 9347 9348 class="responsive-image__image collection-card__image-image" 9349 width="2080" 9350 height="2080" 9351 > 9352 9353 9354</div> 9355 9356 9357 9358 <p 9359 class="collection-card__title" 9360 role="heading" 9361 aria-level="2" 9362 > 9363 Gifts Under £50 9364 </p> 9365 </a> 9366</div> 9367 </div> 9368 9369 9370 <div 9371 class="swiper-slide" 9372 role="group" 9373 aria-label="Slide 3 of 0" 9374 > 9375 <div 9376 class="collection-card" 9377 role="group" 9378 aria-label="Collection Card: Gifts Under £75" 9379> 9380 <a 9381 href="/collections/gifts-under-75" 9382 class="collection-card__link" 9383 aria-label="View collection: Gifts Under £75" 9384 > 9385 9386 9387 9388 9389 9390<div 9391 class=" 9392 responsive-image collection-card__image 9393 9394 " 9395 style="--aspect-ratio: 6/4;" 9396> 9397 9398 <img 9399 src="//brewdog.com/cdn/shop/collections/BundleEcomAssets_IPAEnthusiast_PDP2_800x800_V2_988a91c3-f91d-4af3-a6b7-f572fe22e743.png?v=1778576629&width=200" 9400 srcset=" 9401 //brewdog.com/cdn/shop/collections/BundleEcomAssets_IPAEnthusiast_PDP2_800x800_V2_988a91c3-f91d-4af3-a6b7-f572fe22e743.png?v=1778576629&width=320 320w, 9402 //brewdog.com/cdn/shop/collections/BundleEcomAssets_IPAEnthusiast_PDP2_800x800_V2_988a91c3-f91d-4af3-a6b7-f572fe22e743.png?v=1778576629&width=480 480w, 9403 //brewdog.com/cdn/shop/collections/BundleEcomAssets_IPAEnthusiast_PDP2_800x800_V2_988a91c3-f91d-4af3-a6b7-f572fe22e743.png?v=1778576629&width=768 768w, 9404 //brewdog.com/cdn/shop/collections/BundleEcomAssets_IPAEnthusiast_PDP2_800x800_V2_988a91c3-f91d-4af3-a6b7-f572fe22e743.png?v=1778576629&width=1024 1024
9404w, 9405 //brewdog.com/cdn/shop/collections/BundleEcomAssets_IPAEnthusiast_PDP2_800x800_V2_988a91c3-f91d-4af3-a6b7-f572fe22e743.png?v=1778576629&width=2048 2048w 9406 " 9407 sizes="400x" 9408 alt="Gifts Under £75" 9409 9410 loading="lazy" 9411 9412 class="responsive-image__image collection-card__image-image" 9413 width="800" 9414 height="800" 9415 > 9416 9417 9418</div> 9419 9420 9421 9422 <p 9423 class="collection-card__title" 9424 role="heading" 9425 aria-level="2" 9426 > 9427 Gifts Under £75 9428 </p> 9429 </a> 9430</div> 9431 </div> 9432 9433 9434 <div 9435 class="swiper-slide" 9436 role="group" 9437 aria-label="Slide 4 of 0" 9438 > 9439 <div 9440 class="collection-card" 9441 role="group" 9442 aria-label="Collection Card: Personalised Cans" 9443> 9444 <a 9445 href="/collections/personalised-cans" 9446 class="collection-card__link" 9447 aria-label="View collection: Personalised Cans" 9448 > 9449 9450 9451 9452 9453 9454<div 9455 class=" 9456 responsive-image collection-card__image 9457 9458 " 9459 style="--aspect-ratio: 6/4;" 9460> 9461 9462 <img 9463 src="//brewdog.com/cdn/shop/collections/promo-mothersday-personalisedcan.jpg?v=1767354499&width=200" 9464 srcset=" 9465 //brewdog.com/cdn/shop/collections/promo-mothersday-personalisedcan.jpg?v=1767354499&width=320 320w, 9466 //brewdog.com/cdn/shop/collections/promo-mothersday-personalisedcan.jpg?v=1767354499&width=480 480w, 9467 //brewdog.com/cdn/shop/collections/promo-mothersday-personalisedcan.jpg?v=1767354499&width=768 768w, 9468 //brewdog.com/cdn/shop/collections/promo-mothersday-personalisedcan.jpg?v=1767354499&width=1024 1024w, 9469 //brewdog.com/cdn/shop/collections/promo-mothersday-personalisedcan.jpg?v=1767354499&width=2048 2048w 9470 " 9471 sizes="400x" 9472 alt="Personalised Cans" 9473 9474 loading="lazy" 9475 9476 class="responsive-image__image collection-card__image-image" 9477 width="600" 9478 height="337" 9479 > 9480 9481 9482</div> 9483 9484 9485 9486 <p 9487 class="collection-card__title" 9488 role="heading" 9489 aria-level="2" 9490 > 9491 Personalised Cans 9492 </p> 9493 </a> 9494</div> 9495 </div> 9496 9497 </div> 9498 9499 <div class="carousel-controls hide-on-mobile right-only-container"> 9500 <div class="carousel-controls__scrollbar"> 9501 <div class="swiper-scrollbar"></div> 9502 </div> 9503 9504 <div class="carousel-controls__arrow-wrapper"> 9505 <button 9506 class=" 9507 carousel-controls__arrow 9508 swiper-button-prev 9509 " 9510 type="button" 9511 aria-label="Previous slide" 9512 > 9513 9514 9515 9516 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 9517 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.2018 12L16.7339 18.5321L15.2659 20L7.26594 12L15.2659 4L16.7339 5.46796L10.2018 12Z" fill="#111111"/> 9518 </svg> 9519 9520 9521 9522 9523 </button> 9524 9525 <button 9526 class=" 9527 carousel-controls__arrow 9528 swiper-button-next 9529 " 9530 type="button" 9531 aria-label="Next slide" 9532 > 9533 9534 9535 9536 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 9537 <path fill-rule="evenodd" clip-rule="evenodd" d="M13.798 12L7.26599 5.46795L8.73395 4L16.7339 12L8.73395 20L7.26599 18.532L13.798 12Z" fill="#111111"/> 9538 </svg> 9539 9540 9541 9542 9543 </button> 9544 </div> 9545 </div> 9546 </div> 9547 </uwp-collection-carousel> 9548 9549 </div> 9550</div> 9551 9552 9553</div><div id="shopify-section-template--26216405205318__main" class="shopify-section"> 9554 9555 9556 9557 9558 9559 9560 9561<uwp-collection 9562 collection-handle="shop-all-gifts" 9563 collection-id="628219543878" 9564 collection-desktop-columns="5" 9565 collection-mobile-columns="2" 9566 search-term="" 9567 products-per-page="16" 9568></uwp-collection> 9569 9570 9571</div><div id="shopify-section-template--26216405205318__collection-data" class="shopify-section"> 9572 9573 9574 9575 9576
9577<script type="json" id="CollectionData"> 9578{ 9579 "products":[ 9580 9581 9582 9583 9584 { 9585 "title": "Advent Calendar 2026", 9586 "handle": "beer-advent-calendar-2026", 9587 "compare_at_price": "", 9588 "real_compare_at_price": "", 9589 "created_at": "2026-08-12 13:49:19 +0100", 9590 "published_at": "2026-09-04 15:43:29 +0100", 9591 "id": "15676241281350", 9592 "images": [ 9593 9594 { 9595 "src": "https://brewdog.com/cdn/shop/files/PDP_Advent_2.png?v=1786710666", 9596 "alt": "Advent Calendar 2026", 9597 "width": 1600, 9598 "height": 1600 9599 }, 9600 9601 { 9602 "src": "https://brewdog.com/cdn/shop/files/PDP_Advent_1.png?v=1786710667", 9603 "alt": "Advent Calendar 2026", 9604 "width": 3653, 9605 "height": 3653 9606 } 9607 9608 ], 9609 "price": "£51.99", 9610 "hidePricePdp": "false", 9611 "hidePricePlp": "false", 9612 "preOrder": "true", 9613 "preOrderDispatchEta": "2026-10-05", 9614 9615 "tags": [ 9616 9617 9618 "Advent Calendar 2026" 9619 9620 ], 9621 9622 "available": true, 9623 "bis_enabled": false, 9624 9625 9626 9627 "url": "beer-advent-calendar-2026", 9628 9629 "subtitle": "BEER. ADVENT. 2026", 9630 9631 9632 9633 9634 9635 9636 "size": "Advent Calendar", 9637 9638 9639 9640 "customBadge": "no input", 9641 9642 9643 "vendor": "BrewDog", 9644 "accountOnly": false, 9645 "accessRestriction": "none", 9646 9647 9648 "variants": [ 9649 9650 9651 { 9652 "id": "57113497731398", 9653 9654 9655 9656 9657 "title": "1 Advent Calendar", 9658 "price": "£51.99", 9659 9660 9661 "min_quantity": 1, 9662 9663 9664 "max_quantity": 1000, 9665 9666 "real_compare_at_price": "", 9667 "compare_at_price": "", 9668 "available": true, 9669 9670 "bis_enabled": false, 9671 "inventory_quantity": -2549 9672 } 9673 9674 ] 9675 }, 9676 9677 9678 { 9679 "title": "Dads Match Beer", 9680 "handle": "dad-match-beer-personalised", 9681 "compare_at_price": "", 9682 "real_compare_at_price": "", 9683 "created_at": "2025-02-13 10:58:01 +0000", 9684 "published_at": "2026-05-08 16:08:10 +0100", 9685 "id": "14908242002246", 9686 "images": [ 9687 9688 { 9689 "src": "https://brewdog.com/cdn/shop/files/DadSportsBeer_Personalised_PDP.png?v=1778250431", 9690 "alt": "Dads Match Beer", 9691 "width": 800, 9692 "height": 800 9693 }, 9694 9695 { 9696 "src": "https://brewdog.com/cdn/shop/files/For_you_box_Dads_Match_v2.png?v=1748612699", 9697 "alt": "Dads Match Beer", 9698 "width": 2080, 9699 "height": 2080 9700 } 9701 9702 ], 9703 "price": "£26.99", 9704 "hidePricePdp": "false", 9705 "hidePricePlp": "false", 9706 "preOrder": "false", 9707 "preOrderDispatchEta": "", 9708 9709 "tags": [ 9710 9711 9712 "Craft Beer Fans", 9713 9714 9715 "Fathers Day", 9716 9717 9718 "Gift", 9719 9720 9721 "Gift Box", 9722 9723 9724 "Lager", 9725 9726 9727 "personalised" 9728 9729 ], 9730 9731 "available": true, 9732 "bis_enabled": false, 9733 9734 9735 9736 "url": "dad-match-beer-personalised", 9737 9738 "subtitle": "MATCH. DAY. LEGEND.", 9739 9740 9741 9742 9743 "abv": "5.4", 9744 9745 9746 "style": "IPA", 9747 9748 9749 "size": "330ml", 9750 9751 9752 9753 "customBadge": "Perfect Gift", 9754 9755 9756 "vendor": "BrewDog", 9757 "accountOnly": false, 9758 "accessRestriction": "none", 9759 9760 9761 "variants": [ 9762 9763 9764 { 9765 "id": "54116156277062", 9766 9767 9768 9769 9770 "title": "6 cans x 1 glass", 9771 "price": "£26.99", 9772 9773 9774 9775 9776 9777 9778 9779 "real_compare_at_price": "", 9780 "compare_at_price": "", 9781 "available": true, 9782 9783 "bis_enabled": false, 9784 "inventory_quantity": 0 9785 }, 9786 9787 9788 { 9789 "id": "56535138238790", 9790 9791 9792 "canAmount": "12", 9793 9794 9795 9796 "title": "12 cans", 9797 "price": "£39.99", 9798 9799 "price_per_can": "£3.33", 9800 "compare_price_per_can": "", 9801 9802 9803 9804 "min_quantity": 0, 9805 9806 9807 9808 9809 "max_quantity": 1000, 9810 9811 9812 "real_compare_at_price": "", 9813 "compare_at_price": "", 9814 "available": true, 9815 9816 "bis_enabled": false, 9817 "inventory_quantity": 0 9818 }, 9819 9820 9821 { 9822 "id": "56535138271558", 9823 9824 9825 "canAmount": "24", 9826 9827 9828 9829 "title": "24 cans", 9830 "price": "£74.99", 9831 9832 "price_per_can": "£3.12", 9833 "compare_price_per_can": "", 9834 9835 9836 9837 "min_quantity": 0, 9838 9839 9840 9841 9842 "max_quantity": 1000, 9843 9844 9845 "real_compare_at_price": "", 9846 "compare_at_price": "", 9847 "available": true, 9848 9849 "bis_enabled": false, 9850 "inventory_quantity": 0 9851 }, 9852 9853 9854 { 9855 "id": "56535138304326", 9856 9857 9858 "canAmount": "48", 9859 9860 9861 9862 "title": "48 cans", 9863 "price": "£139.99", 9864 9865 "price_per_can": "£2.91", 9866 "compare_price_per_can": "", 9867 9868 9869 9870 "min_quantity": 0, 9871 9872 9873 9874 9875 "max_quantity": 1000, 9876 9877 9878 "real_compare_at_price": "", 9879 "compare_at_price": "", 9880 "available": true, 9881 9882 "bis_enabled": false, 9883 "inventory_quantity": 0 9884 } 9885 9886 ] 9887 }, 9888 9889 9890 { 9891 "title": "Tartan Brew", 9892 "handle": "purple-tartan-personalised", 9893 "compare_at_price": "", 9894 "real_compare_at_price": "", 9895 "created_at": "2025-02-13 11:03:40 +0000", 9896 "published_at": "2026-05-08 14:19:26 +0100", 9897 "id": "14908252324166", 9898 "images": [ 9899 9900 {
9901 "src": "https://brewdog.com/cdn/shop/files/DadTartan_Personalised_PDP.png?v=1778238939", 9902 "alt": "Tartan Brew", 9903 "width": 800, 9904 "height": 800 9905 } 9906 9907 ], 9908 "price": "£26.99", 9909 "hidePricePdp": "false", 9910 "hidePricePlp": "false", 9911 "preOrder": "false", 9912 "preOrderDispatchEta": "", 9913 9914 "tags": [ 9915 9916 9917 "Craft Beer Fans", 9918 9919 9920 "Fathers Day", 9921 9922 9923 "Gift", 9924 9925 9926 "Gift Box", 9927 9928 9929 "Lager", 9930 9931 9932 "personalised" 9933 9934 ], 9935 9936 "available": true, 9937 "bis_enabled": false, 9938 9939 9940 9941 "url": "purple-tartan-personalised", 9942 9943 "subtitle": "PLAID. TO. PARTY.", 9944 9945 9946 9947 9948 "abv": "5.4", 9949 9950 9951 "style": "IPA", 9952 9953 9954 "size": "330ml", 9955 9956 9957 9958 "customBadge": "Perfect Gift", 9959 9960 9961 "vendor": "BrewDog", 9962 "accountOnly": false, 9963 "accessRestriction": "none", 9964 9965 9966 "variants": [ 9967 9968 9969 { 9970 "id": "54116189503814", 9971 9972 9973 9974 9975 "title": "6 cans x 1 glass", 9976 "price": "£26.99", 9977 9978 9979 9980 9981 9982 9983 9984 "real_compare_at_price": "", 9985 "compare_at_price": "", 9986 "available": true, 9987 9988 "bis_enabled": false, 9989 "inventory_quantity": 0 9990 }, 9991 9992 9993 { 9994 "id": "56533490008390", 9995 9996 9997 "canAmount": "12", 9998 9999 10000 10001 "title": "12 cans", 10002 "price": "£39.99", 10003 10004 "price_per_can": "£3.33", 10005 "compare_price_per_can": "", 10006 10007 10008 10009 "min_quantity": 0, 10010 10011 10012 10013 10014 "max_quantity": 1000, 10015 10016 10017 "real_compare_at_price": "", 10018 "compare_at_price": "", 10019 "available": true, 10020 10021 "bis_enabled": false, 10022 "inventory_quantity": 0 10023 }, 10024 10025 10026 { 10027 "id": "56533490041158", 10028 10029 10030 "canAmount": "24", 10031 10032 10033 10034 "title": "24 cans", 10035 "price": "£74.99", 10036 10037 "price_per_can": "£3.12", 10038 "compare_price_per_can": "", 10039 10040 10041 10042 "min_quantity": 0, 10043 10044 10045 10046 10047 "max_quantity": 1000, 10048 10049 10050 "real_compare_at_price": "", 10051 "compare_at_price": "", 10052 "available": true, 10053 10054 "bis_enabled": false, 10055 "inventory_quantity": 0 10056 }, 10057 10058 10059 { 10060 "id": "56533490073926", 10061 10062 10063 "canAmount": "48", 10064 10065 10066 10067 "title": "48 cans", 10068 "price": "£139.99", 10069 10070 "price_per_can": "£2.91", 10071 "compare_price_per_can": "", 10072 10073 10074 10075 "min_quantity": 0, 10076 10077 10078 10079 10080 "max_quantity": 1000, 10081 10082 10083 "real_compare_at_price": "", 10084 "compare_at_price": "", 10085 "available": true, 10086 10087 "bis_enabled": false, 10088 "inventory_quantity": 0 10089 } 10090 10091 ] 10092 }, 10093 10094 10095 { 10096 "title": "BIRTHDAY - Personalised", 10097 "handle": "birthday", 10098 "compare_at_price": "", 10099 "real_compare_at_price": "", 10100 "created_at": "2024-11-07 15:56:15 +0000", 10101 "published_at": "2025-10-23 11:25:01 +0100", 10102 "id": "14770715754822", 10103 "images": [ 10104 10105 { 10106 "src": "https://brewdog.com/cdn/shop/files/pdp-personalisedcans-birdthdaybundle-800x800-brewdog.jpg?v=1731596470", 10107 "alt": "BIRTHDAY - Personalised", 10108 "width": 800, 10109 "height": 800 10110 } 10111 10112 ], 10113 "price": "£26.99", 10114 "hidePricePdp": "false", 10115 "hidePricePlp": "false", 10116 "preOrder": "false", 10117 "preOrderDispatchEta": "", 10118 10119 "tags": [ 10120 10121 10122 "bundle", 10123 10124 10125 "Craft Beer Fans", 10126 10127 10128 "Gift", 10129 10130 10131 "Gift Box", 10132 10133 10134 "Lager", 10135 10136 10137 "personalised" 10138 10139 ], 10140 10141 "available": true, 10142 "bis_enabled": false, 10143 10144 10145 10146 "url": "birthday", 10147 10148 "subtitle": "HAPPY. HOPPY. BIRTHDAY. ", 10149 10150 10151 10152 10153 "abv": "5.4", 10154 10155 10156 "style": "IPA", 10157 10158 10159 "size": "330ml", 10160 10161 10162 10163 "customBadge": "Perfect Gift", 10164 10165 10166 "vendor": "BrewDog", 10167 "accountOnly": false, 10168 "accessRestriction": "none", 10169 10170 10171 "variants": [ 10172 10173 10174 { 10175 "id": "53601172586822", 10176 10177 10178 10179 10180 "title": "6 cans x 1 glass", 10181 "price": "£26.99", 10182 10183 10184 10185 10186 10187 10188 10189 "real_compare_at_price": "", 10190 "compare_at_price": "", 10191 "available": true, 10192 10193 "bis_enabled": false, 10194 "inventory_quantity": -2 10195 }, 10196 10197 10198 { 10199 "id": "56006085247302", 10200 10201 10202 "canAmount": "12", 10203 10204 10205 10206 "title": "12 cans", 10207 "price": "£39.99", 10208 10209 "price_per_can": "£3.33", 10210 "compare_price_per_can": "", 10211 10212 10213 10214 "min_quantity": 0, 10215 10216 10217 10218 10219 "max_quantity": 1000, 10220 10221 10222 "real_compare_at_price": "", 10223 "compare_at_price": "", 10224 "available": true, 10225 10226 "bis_enabled": false, 10227 "inventory_quantity": 0 10228 }, 10229 10230 10231 { 10232 "id": "56006085280070", 10233 10234 10235 "canAmount": "24", 10236 10237 10238 10239 "title": "24 cans", 10240 "price": "£74.99", 10241 10242 "price_per_can": "£3.12", 10243 "compare_price_per_can": "", 10244 10245 10246 10247 "min_quantity": 0, 10248 10249 10250 10251 10252 "max_quantity": 1000, 10253 10254 10255 "real_compare_at_price": "", 10256 "compare_at_price": "", 10257 "available": true, 10258 10259 "bis_enabled": false, 10260 "inventory_quantity": 0 10261 }, 10262 10263 10264 { 10265 "id": "56006085312838", 10266 10267 10268 "canAmount": "48", 10269 10270 10271 10272 "title": "48 cans", 10273 "price": "£139.99", 10274 10275 "price_per_can": "£2.91", 10276 "compare_price_per_can": "", 10277 10278 10279 10280 "min_quantity": 0, 10281 10282 10283 10284 10285 "max_quantity": 1000, 10286 10287 10288 "real_compare_at_price": "", 10289 "compare_at_price": "", 10290 "available": true, 10291 10292 "bis_enabled": false, 10293 "inventory_quantity": 0 10294 } 10295 10296 ] 10297 }, 10298 10299 10300 { 10301 "title": "Lagerita Pack", 10302 "handle": "lagerita-pack", 10303 "compare_at_price": "", 10304 "real_compare_at_price": "", 10305 "created_at": "2026-02-18 15:24:29 +0000",
10306 "published_at": "2026-02-19 13:57:18 +0000", 10307 "id": "15429630591302", 10308 "images": [ 10309 10310 { 10311 "src": "https://brewdog.com/cdn/shop/files/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940", 10312 "alt": "Lagerita Pack", 10313 "width": 800, 10314 "height": 800 10315 } 10316 10317 ], 10318 "price": "£19.99", 10319 "hidePricePdp": "false", 10320 "hidePricePlp": "false", 10321 "preOrder": "false", 10322 "preOrderDispatchEta": "", 10323 10324 "tags": [ 10325 10326 10327 "Beer", 10328 10329 10330 "Cocktail", 10331 10332 10333 "Gift", 10334 10335 10336 "Lager", 10337 10338 10339 "Spirits" 10340 10341 ], 10342 10343 "available": true, 10344 "bis_enabled": false, 10345 10346 10347 10348 "url": "lagerita-pack", 10349 10350 "subtitle": "BUILD. A. COCKTAIL.", 10351 10352 10353 10354 10355 10356 "style": "Cocktail", 10357 10358 10359 "size": "Mixed Pack", 10360 10361 10362 10363 "customBadge": "Free Gift", 10364 10365 10366 "vendor": "Distilling", 10367 "accountOnly": false, 10368 "accessRestriction": "none", 10369 10370 10371 "variants": [ 10372 10373 10374 { 10375 "id": "56000119046470", 10376 10377 "bundle_item": {"id":15429809865030,"title":"Lagerita Bundle (8 Pack)","handle":"lagerita-bundle-4-pack","description":null,"published_at":"2026-02-19T13:16:02+00:00","created_at":"2026-02-18T16:37:53+00:00","vendor":"BrewDog","type":"Hidden","tags":["__hidden","hidden","Hidden recommendation","Hide","seo-hidden"],"price":1999,"price_min":1999,"price_max":1999,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":56001471742278,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Lagerita Bundle (8 Pack)","public_title":null,"options":["Default Title"],"price":1999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940"],"featured_image":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940","options":["Title"],"media":[{"alt":null,"id":71305595879750,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940"},"aspect_ratio":1.0,"height":800,"media_type":"image","src":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940","width":800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null}, 10378 "bundle_item_inventory": 50, 10379 10380 10381 10382 10383 "title": "8 Pack (4 of each)", 10384 "price": "£19.99", 10385 10386 10387 10388 10389 10390 10391 10392 "real_compare_at_price": "", 10393 "compare_at_price": "", 10394 "available": true, 10395 10396 "bis_enabled": false, 10397 "inventory_quantity": 1196 10398 }, 10399 10400 10401 { 10402 "id": "56000119079238", 10403 10404 "bundle_item": {"id":15429812912454,"title":"Lagerita Bundle (16 Pack)","handle":"lagerita-bundle-16-pack","description":null,"published_at":"2026-02-19T13:15:20+00:00","created_at":"2026-02-18T16:39:55+00:00","vendor":"BrewDog","type":"Hidden","tags":["__hidden","hidden","Hidden recommendation","Hide","seo-hidden"],"price":3799,"price_min":3799,"price_max":3799,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":56001487962438,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Lagerita Bundle (16 Pack)","public_title":null,"options":["Default Title"],"price":3799,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940"],"featured_image":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940","options":["Title"],"media":[{"alt":null,"id":71305595879750,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940"},"aspect_ratio":1.0,"height":800,"media_type":"image","src":"\/\/brewdog.com\/cdn\/shop\/files\/BREWDOG_LAGARITA_V1_800_x_800.png?v=1771505940","width":800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null}, 10405 "bundle_item_inventory": 25, 10406 10407 10408 10409 10410 "title": "16 Pack (8 of each)", 10411 "price": "£37.99", 10412 10413 10414 10415 10416 10417 10418 10419 "real_compare_at_price": "", 10420 "compare_at_price": "", 10421 "available": true, 10422 10423 "bis_enabled": false, 10424 "inventory_quantity": 0 10425 } 10426 10427 ] 10428 }, 10429 10430 10431 { 10432 "title": "Wingman Dog Toy", 10433 "handle": "wingman-dog-toy", 10434 "compare_at_price": "", 10435 "real_compare_at_price": "", 10436 "created_at": "2024-11-12 10:05:46 +0000", 10437 "published_at": "2026-09-08 11:26:40 +0100", 10438 "id": "14776049566022", 10439 "images": [ 10440 10441 { 10442 "src": "https://brewdog.com/cdn/shop/files/pdp-wingman-dog-toy-brewdog-v2.jpg?v=1731405873", 10443 "alt": "Wingman Dog Toy", 10444 "width": 800, 10445 "height": 800 10446 }, 10447 10448 { 10449 "src": "https://brewdog.com/cdn/shop/files/pdp-wingman-dog-toy-brewdog-v1.jpg?v=1731405873", 10450 "alt": "Wingman Dog Toy", 10451 "width": 800, 10452 "height": 800 10453 } 10454 10455 ], 10456 "price": "£12.00", 10457 "hidePricePdp": "false", 10458 "hidePricePlp": "false", 10459 "preOrder": "false", 10460 "preOrderDispatchEta": "", 10461 10462 "tags": [ 10463 10464 10465 "Dog", 10466 10467 10468 "Merchandise" 10469 10470 ], 10471 10472 "available": true, 10473 "bis_enabled": false, 10474 10475 10476 10477 "url": "wingman-dog-toy", 10478 10479 "subtitle": "WINGMANâS. BEST. FRIEND. ", 10480 10481 10482 10483 10484 10485 10486 "size": "Dog Toy", 10487 10488 10489 10490 "customBadge": "no input", 10491 10492 10493 "vendor": "BrewDog", 10494 "accountOnly": false, 10495 "accessRestriction": "none", 10496 10497 10498 "variants": [ 10499 10500 10501 { 10502 "id": "53624210456902", 10503 10504 10505 10506 10507 "title": "1 Dog Toy", 10508 "price": "£12.00", 10509 10510 10511 10512 10513 10514 10515 10516 "real_compare_at_price": "", 10517 "compare_at_price": "", 10518 "available": true, 10519 10520 "bis_enabled": false, 10521 "inventory_quantity": 98 10522 } 10523 10524 ] 10525 }, 10526 10527 10528 { 10529 "title": "Lost Lager Glass", 10530 "handle": "lost-lager-glass", 10531 "compare_at_price": "", 10532 "real_compare_at_price": "", 10533 "created_at": "2024-08-13 10:38:01 +0100", 10534 "published_at": "2024-09-26 14:37:18 +0100", 10535 "id": "9160965030214", 10536 "images": [ 10537 10538 { 10539 "src": "https://brewdog.com/cdn/shop/files/pdp-20oz-lost-hero-glass-brewdog.jpg?v=1723575111", 10540 "alt": "Lost Lager Glass", 10541 "width": 800, 10542 "height": 800 10543 }, 10544 10545 { 10546 "src": "https://brewdog.com/cdn/shop/files/pdp-20oz-lost-hero-glass-lifestyle-2-brewdog.jpg?v=1723575228", 10547 "alt": "Lost Lager Glass", 10548 "width": 1200, 10549 "height": 1200 10550 } 10551 10552 ], 10553 "price": "£4.00", 10554 "hidePricePdp": "false", 10555 "hidePricePlp": "false", 10556 "preOrder": "false", 10557 "preOrderDispatchEta": "", 10558 10559 "tags": [ 10560 10561 10562 "Gift", 10563 10564 10565 "Glassware", 10566 10567 10568 "Lager", 10569 10570 10571 "Merchandise" 10572 10573 ], 10574 10575 "available": false, 10576 "bis_enabled": false, 10577 10578 10579 10580 "url": "lost-lager-glass", 10581 10582 "subtitle": "BESPOKE. AND. EXCLUSIVE.", 10583 10584 10585 10586 10587 10588 "style": "Glass", 10589 10590 10591 "size": "Barware", 10592 10593 10594 10595 "customBadge": "no input", 10596 10597 10598 "vendor": "Merch", 10599 "accountOnly": false, 10600 "accessRestriction": "none", 10601 10602 10603 "variants": [ 10604 10605 10606 { 10607 "id": "50237234446662", 10608 10609 10610 10611 10612 "title": "1 x Pint Glass", 10613 "price": "£4.00", 10614 10615 10616 10617 10618 10619 10620 10621 "real_compare_at_price": "", 10622 "compare_at_price": "", 10623 "available": false, 10624 10625 "bis_enabled": false, 10626 "inventory_quantity": 0 10627 } 10628 10629 ] 10630 }, 10631 10632 10633 { 10634 "title": "Wingman Hero Glass", 10635 "handle": "wingman-hero-glass", 10636 "compare_at_price": "", 10637 "real_compare_at_price": "", 10638 "created_at": "2024-12-04 10:26:14 +0000", 10639 "published_at": "2024-12-05 09:25:57 +0000", 10640 "id": "14807160750406", 10641 "images": [ 10642 10643 { 10644 "src": "https://brewdog.com/cdn/shop/files/pdp-wingman-hero-glass-merch-brewdog-uk-v_2.png?v=1733318917", 10645 "alt": "Wingman Hero Glass", 10646 "width": 800, 10647 "height": 800 10648 }, 10649 10650 { 10651 "src": "https://brewdog.com/cdn/shop/files/pdp-wingman-hero-glass-merch-brewdog-uk-v_1.png?v=1733318917", 10652 "alt": "Wingman Hero Glass", 10653 "width": 800, 10654 "height": 800 10655 } 10656 10657 ], 10658 "price": "£5.00", 10659 "hidePricePdp": "false", 10660 "hidePricePlp": "false", 10661 "preOrder": "false", 10662 "preOrderDispatchEta": "", 10663 10664 "tags": [ 10665 10666 10667 "Glass" 10668 10669 ], 10670 10671 "available": false, 10672 "bis_enabled": false, 10673 10674 10675 10676 "url": "wingman-hero-glass", 10677 10678 "subtitle": " NEED. A. HERO? ", 10679 10680 10681 10682 10683 10684 10685 "size": "Glass", 10686 10687 10688 10689 "customBadge": "New", 10690 10691 10692 "vendor": "BrewDog", 10693 "accountOnly": false, 10694 "accessRestriction": "none", 10695 10696 10697 "variants": [ 10698 10699 10700 { 10701 "id": "53780158546246", 10702 10703 10704 10705 10706 "title": "1 Glass", 10707 "price": "£5.00", 10708 10709 10710 10711 10712 10713 10714 10715 "real_compare_at_price": "", 10716 "compare_at_price": "", 10717 "available": false, 10718 10719 "bis_enabled": false, 10720 "inventory_quantity": 0 10721 } 10722 10723 ] 10724 }, 10725 10726 10727 { 10728 "title": "Cold Beer Hero Glass", 10729 "handle": "cold-beer-hero-glass", 10730 "compare_at_price": "", 10731 "real_compare_at_price": "", 10732 "created_at": "2024-12-04 10:30:16 +0000", 10733 "published_at": "2024-12-05 09:37:12 +0000", 10734 "id": "14807162388806", 10735 "images": [ 10736 10737 { 10738 "src": "https://brewdog.com/cdn/shop/files/pdp-cold-beer-lager-glassware-brewdog-uk_2.png?v=1733319473", 10739 "alt": "Cold Beer Hero Glass", 10740 "width": 800, 10741 "height": 800 10742 }, 10743 10744 { 10745 "src": "https://brewdog.com/cdn/shop/files/pdp-cold-beer-lager-glassware-brewdog-uk_1.png?v=1733319473", 10746 "alt": "Cold Beer Hero Glass", 10747 "width": 800, 10748 "height": 800 10749 } 10750 10751 ], 10752 "price": "£5.00", 10753 "hidePricePdp": "false", 10754 "hidePricePlp": "false", 10755 "preOrder": "false", 10756 "preOrderDispatchEta": "", 10757 10758 "tags": [ 10759 10760 10761 "Glass" 10762 10763 ], 10764 10765 "available": false, 10766 "bis_enabled": false, 10767 10768 10769 10770 "url": "cold-beer-hero-glass", 10771 10772 "subtitle": "DRINK. IT. COLD. ", 10773 10774 10775 10776 10777 10778 10779 "size": "Glass", 10780 10781 10782 10783 "customBadge": "no input", 10784 10785 10786 "vendor": "BrewDog", 10787 "accountOnly": false, 10788 "accessRestriction": "none", 10789 10790 10791 "variants": [ 10792 10793 10794 { 10795 "id": "53780169359686", 10796 10797 10798 10799 10800 "title": "1 Glass", 10801 "price": "£5.00", 10802 10803 10804 10805 "min_quantity": 1, 10806 10807 10808 10809 10810 "max_quantity": 2, 10811 10812 10813 "real_compare_at_price": "", 10814 "compare_at_price": "", 10815 "available": false, 10816 10817 "bis_enabled": false, 10818 "inventory_quantity": 0 10819 } 10820 10821 ] 10822 }, 10823 10824 10825 { 10826 "title": "PUNK HERO GLASS", 10827 "handle": "punk-hero-glass", 10828 "compare_at_price": "", 10829 "real_compare_at_price": "", 10830 "created_at": "2025-01-09 12:14:59 +0000", 10831 "published_at": "2025-01-14 09:46:14 +0000", 10832 "id": "14857377743174", 10833 "images": [ 10834 10835 { 10836 "src": "https://brewdog.com/cdn/shop/files/pdp-punk-pint-glass-beer-brewdog-v_2.png?v=1736847983", 10837 "alt": "PUNK HERO GLASS", 10838 "width": 800, 10839 "height": 800 10840 }, 10841 10842 { 10843 "src": "https://brewdog.com/cdn/shop/files/pdp-punk-pint-glass-beer-brewdog-v_1.png?v=1736847983", 10844 "alt": "PUNK HERO GLASS", 10845 "width": 800, 10846 "height": 800 10847 } 10848 10849 ], 10850 "price": "£5.00", 10851 "hidePricePdp": "false", 10852 "hidePricePlp": "false", 10853 "preOrder": "false", 10854 "preOrderDispatchEta": "", 10855 10856 "tags": [ 10857 10858 10859 "Craft Beer Fans", 10860 10861 10862 "Gift", 10863 10864 10865 "Merchandise" 10866 10867 ], 10868 10869 "available": false, 10870 "bis_enabled": false, 10871 10872 10873 10874 "url": "punk-hero-glass", 10875 10876 "subtitle": "PINTS. FOR. PUNKS. ", 10877 10878 10879 10880 10881 10882 10883 "size": "Glass", 10884 10885 10886 10887 "customBadge": "New"
10887, 10888 10889 10890 "vendor": "BrewDog", 10891 "accountOnly": false, 10892 "accessRestriction": "none", 10893 10894 10895 "variants": [ 10896 10897 10898 { 10899 "id": "53949474439494", 10900 10901 10902 10903 10904 "title": "1 Glass", 10905 "price": "£5.00", 10906 10907 10908 10909 10910 10911 10912 10913 "real_compare_at_price": "", 10914 "compare_at_price": "", 10915 "available": false, 10916 10917 "bis_enabled": false, 10918 "inventory_quantity": 0 10919 } 10920 10921 ] 10922 }, 10923 10924 10925 { 10926 "title": "Lost Lager Bar Bundle", 10927 "handle": "lost-lager-bar-bundle", 10928 "compare_at_price": "", 10929 "real_compare_at_price": "", 10930 "created_at": "2025-10-28 12:07:11 +0000", 10931 "published_at": "2025-10-28 12:26:14 +0000", 10932 "id": "15227517436230", 10933 "images": [ 10934 10935 { 10936 "src": "https://brewdog.com/cdn/shop/files/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317", 10937 "alt": "Lost Lager Bar Bundle", 10938 "width": 1050, 10939 "height": 1050 10940 }, 10941 10942 { 10943 "src": "https://brewdog.com/cdn/shop/files/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_2.png?v=1770301317", 10944 "alt": "Lost Lager Bar Bundle", 10945 "width": 1050, 10946 "height": 1050 10947 } 10948 10949 ], 10950 "price": "£32.99", 10951 "hidePricePdp": "false", 10952 "hidePricePlp": "false", 10953 "preOrder": "false", 10954 "preOrderDispatchEta": "", 10955 10956 "tags": [ 10957 10958 10959 "Beer", 10960 10961 10962 "Christmas", 10963 10964 10965 "Gift", 10966 10967 10968 "Lager" 10969 10970 ], 10971 10972 "available": true, 10973 "bis_enabled": false, 10974 10975 10976 10977 "url": "lost-lager-bar-bundle", 10978 10979 "subtitle": "LETâS. GET. LOST.", 10980 10981 10982 10983 10984 "abv": "4.5", 10985 10986 10987 10988 "size": "Mixed Pack", 10989 10990 10991 10992 "customBadge": "New", 10993 10994 10995 "vendor": "BrewDog", 10996 "accountOnly": false, 10997 "accessRestriction": "none", 10998 10999 11000 "variants": [ 11001 11002 11003 { 11004 "id": "55336966914374", 11005 11006 "bundle_item": {"id":15227529724230,"title":"Lost Lager Bar Bundle","handle":"lost-lager-bar-bundle-1","description":null,"published_at":"2025-10-28T12:17:51+00:00","created_at":"2025-10-28T12:17:19+00:00","vendor":"BrewDog","type":"Hidden","tags":["__hidden","hidden","Hidden recommendation","seo-hidden"],"price":3299,"price_min":3299,"price_max":3299,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":55336958296390,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Lost Lager Bar Bundle","public_title":null,"options":["Default Title"],"price":3299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317"],"featured_image":"\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317","options":["Title"],"media":[{"alt":null,"id":70942228283718,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1050,"width":1050,"src":"\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317"},"aspect_ratio":1.0,"height":1050,"media_type":"image","src":"\/\/brewdog.com\/cdn\/shop\/files\/VALENTINES_2024_DIGITAL_ASSETS_V2_1050_x_1050_1.png?v=1770301317","width":1050}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null}, 11007 "bundle_item_inventory": 0, 11008 11009 11010 11011 11012 "title": "1 x Bar Bundle", 11013 "price": "£32.99", 11014 11015 11016 11017 11018 11019 11020 11021 "real_compare_at_price": "", 11022 "compare_at_price": "", 11023 "available": true, 11024 11025 "bis_enabled": false, 11026 "inventory_quantity": 0 11027 } 11028 11029 ] 11030 }, 11031 11032 11033 { 11034 "title": "Matchday Legends", 11035 "handle": "match-day-legends", 11036 "compare_at_price": "", 11037 "real_compare_at_price": "", 11038 "created_at": "2026-02-05 10:34:00 +0000", 11039 "published_at": "2026-05-27 15:04:11 +0100", 11040 "id": "15409143218502", 11041 "images": [ 11042 11043 { 11044 "src": "https://brewdog.com/cdn/shop/files/World_Cup_PDP_Assets_800x8004_ec821a1a-e718-4d7a-b341-6d1d4d476fe6.jpg?v=1779888384", 11045 "alt": "Matchday Legends", 11046 "width": 800, 11047 "height": 800 11048 }, 11049 11050 { 11051 "src": "https://brewdog.com/cdn/shop/files/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384", 11052 "alt": "Matchday Legends", 11053 "width": 800, 11054 "height": 800 11055 } 11056 11057 ], 11058 "price": "£69.99", 11059 "hidePricePdp": "false", 11060 "hidePricePlp": "false", 11061 "preOrder": "false", 11062 "preOrderDispatchEta": "", 11063 11064 "tags": [ 11065 11066 11067 "Beer", 11068 11069 11070 "Craft Beer Fans", 11071 11072 11073 "Gift", 11074 11075 11076 "IPA", 11077 11078 11079 "Lager", 11080 11081 11082 "World Cup" 11083 11084 ], 11085 11086 "available": true, 11087 "bis_enabled": false, 11088 11089 11090 11091 "url": "match-day-legends", 11092 11093 "subtitle": "KICK. OFF. READY.", 11094 11095 11096 11097 11098 "abv": "3.4-5.4", 11099 11100 11101 "style": "Mixed Pack", 11102 11103 11104 "size": "56 cans", 11105 11106 11107 11108 "customBadge": "New", 11109 11110 11111 "vendor": "BrewDog", 11112 "accountOnly": false, 11113 "accessRestriction": "none", 11114 11115 11116 "variants": [ 11117 11118 11119 { 11120 "id": "55929741934918", 11121 11122 "bundle_item": {"id":15409595646278,"title":"Matchd
11122ay Legends Bundle","handle":"matchday-legends-bundle","description":null,"published_at":"2026-03-30T14:25:41+01:00","created_at":"2026-02-05T13:50:20+00:00","vendor":"BrewDog","type":"Hidden","tags":["__hidden","hidden","Hidden recommendation","Hide","seo-hidden"],"price":6999,"price_min":6999,"price_max":6999,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":55930765607238,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Matchday Legends Bundle","public_title":null,"options":["Default Title"],"price":6999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384"],"featured_image":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384","options":["Title"],"media":[{"alt":null,"id":73782677373254,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384"},"aspect_ratio":1.0,"height":800,"media_type":"image","src":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x800_4a9a358c-d8b7-4242-b98d-ea20dd132385.jpg?v=1779888384","width":800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null}, 11123 "bundle_item_inventory": 37, 11124 11125 11126 11127 11128 "title": "56 cans", 11129 "price": "£69.99", 11130 11131 11132 11133 "min_quantity": 0, 11134 11135 11136 11137 11138 "max_quantity": 1000, 11139 11140 11141 "real_compare_at_price": "", 11142 "compare_at_price": "", 11143 "available": true, 11144 11145 "bis_enabled": false, 11146 "inventory_quantity": 0 11147 }, 11148 11149 11150 { 11151 "id": "56658712854854", 11152 11153 "bundle_item": {"id":15574163816774,"title":"Matchday Legends + 2 Glass Bundle","handle":"matchday-legends-2-glass-bundle","description":null,"published_at":"2026-05-27T14:54:28+01:00","created_at":"2026-05-27T14:50:43+01:00","vendor":"BrewDog","type":"Hidden","tags":["__hidden","hidden","Hidden recommendation","Hide","seo-hidden"],"price":7499,"price_min":7499,"price_max":7499,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":56658745459014,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Matchday Legends + 2 Glass Bundle","public_title":null,"options":["Default Title"],"price":7499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x8003_ab321f76-633d-4cc2-aae1-37b68ca4a167.jpg?v=1779888384"],"featured_image":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x8003_ab321f76-633d-4cc2-aae1-37b68ca4a167.jpg?v=1779888384","options":["Title"],"media":[{"alt":null,"id":73782677438790,"position":1,"preview_image":{"aspect_ratio":1.0,"height":800,"width":800,"src":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x8003_ab321f76-633d-4cc2-aae1-37b68ca4a167.jpg?v=1779888384"},"aspect_ratio":1.0,"height":800,"media_type":"image","src":"\/\/brewdog.com\/cdn\/shop\/files\/World_Cup_PDP_Assets_800x8003_ab321f76-633d-4cc2-aae1-37b68ca4a167.jpg?v=1779888384","width":800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":null}, 11154 "bundle_item_inventory": 0, 11155 11156 11157 11158 11159 "title": "56 cans + 2 Glass", 11160 "price": "£74.99", 11161 11162 11163 11164 "min_quantity": 0, 11165 11166 11167 11168 11169 "max_quantity": 1000, 11170 11171 11172 "real_compare_at_price": "", 11173 "compare_at_price": "", 11174 "available": true, 11175 11176 "bis_enabled": false, 11177 "inventory_quantity": 0 11178 } 11179 11180 ] 11181 }, 11182 11183 11184 { 11185 "title": "Gift Card - Online Only", 11186 "handle": "gift-card", 11187 "compare_at_price": "", 11188 "real_compare_at_price": "", 11189 "created_at": "2024-12-18 15:26:12 +0000", 11190 "published_at": "2024-12-19 17:29:51 +0000", 11191 "id": "14827964072262", 11192 "images": [ 11193 11194 { 11195 "src": "https://brewdog.com/cdn/shop/files/FRESH_PDP_GIFT_CARD.png?v=1754576346", 11196 "alt": "Gift Card - Online Only", 11197 "width": 800, 11198 "height": 800 11199 } 11200 11201 ], 11202 "price": "£25.00", 11203 "hidePricePdp": "false", 11204 "hidePricePlp": "false", 11205 "preOrder": "false", 11206 "preOrderDispatchEta": "", 11207 11208 "tags": [ 11209 11210 11211 "Fathers Day" 11212 11213 ], 11214 11215 "available": true, 11216 "bis_enabled": false, 11217 11218 11219 11220 "url": "gift-card", 11221 11222 "subtitle": "THE. PERFECT. GIFT. ", 11223 11224 11225 11226 11227 11228 11229 "size": "Gift Card", 11230 11231 11232 11233 "customBadge": "no input", 11234 11235 11236 "vendor": "BrewDog", 11237 "accountOnly": false, 11238 "accessRestriction": "none", 11239 11240 11241 "variants": [ 11242 11243 11244 { 11245 "id": "53853018358086", 11246 11247 11248 11249 11250 "title": "£25.00", 11251 "price": "£25.00", 11252 11253 11254 11255 "min_quantity": 0, 11256 11257 11258 11259 11260 "max_quantity": 10000, 11261 11262 11263 "real_compare_at_price": "", 11264 "compare_at_price": "", 11265 "available": true, 11266 11267 "bis_enabled": false, 11268 "inventory_quantity": -1024 11269 }, 11270 11271 11272 { 11273 "id": "53853018390854", 11274 11275 11276 11277 11278 "title": "£50.00", 11279 "price": "£50.00", 11280 11281 11282 11283 "min_quantity": 0, 11284 11285 11286 11287 11288 "max_quantity": 1000, 11289 11290 11291 "real_compare_at_price": "", 11292 "compare_at_price": "", 11293 "available": true, 11294 11295 "bis_enabled": false, 11296 "inventory_quantity": -778 11297 }, 11298 11299 11300 { 11301 "id": "53853018423622", 11302 11303 11304 11305 11306 "title": "£100.00", 11307 "price": "£100.00", 11308 11309 11310 11311 "min_quantity": 0, 11312 11313 11314 11315 11316 "max_quantity": 1000, 11317 11318 11319 "real_compare_at_price": "", 11320 "compare_at_price": "", 11321 "available": true, 11322 11323 "bis_enabled": false, 11324 "inventory_quantity": -133 11325 } 11326 11327 ] 11328 }, 11329 11330 11331 { 11332 "title": "CONGRATS - Personalised", 11333 "handle": "congrats", 11334 "compare_at_price": "", 11335 "real_compare_at_price": "", 11336 "created_at": "2024-11-15 14:43:28 +0000", 11337 "published_at": "2025-10-23 11:25:03 +0100", 11338 "id": "14780519711046", 11339 "images": [ 11340 11341 { 11342 "src": "https://brewdog.com/cdn/shop/files/pdp-personalisedcans-celebrationbundle-800x800-brewdog.jpg?v=1731682191", 11343 "alt": "CONGRATS - Personalised", 11344 "width": 800, 11345 "height": 800 11346 } 11347 11348 ], 11349 "price": "£26.99", 11350 "hidePricePdp": "false", 11351 "hidePricePlp": "false", 11352 "preOrder": "false", 11353 "preOrderDispatchEta": "", 11354 11355 "tags": [ 11356 11357 11358 "Beer", 11359 11360 11361 "Craft Beer Fans", 11362 11363 11364 "Gift", 11365 11366 11367 "Gift Box", 11368 11369 11370 "Lager", 11371 11372 11373 "personalised" 11374 11375 ], 11376 11377 "available": true, 11378 "bis_enabled": false, 11379 11380 11381 11382 "url": "congrats", 11383 11384 "subtitle": "YOU. MASSIVE. LEGEND. ", 11385 11386 11387 11388 11389 "abv": "5.4", 11390 11391 11392 "style": "IPA", 11393 11394 11395 "size": "330ml", 11396 11397 11398 11399 "customBadge": "Perfect Gift", 11400 11401 11402 "vendor": "BrewDog", 11403 "accountOnly": false, 11404 "accessRestriction": "none", 11405 11406 11407 "variants": [ 11408 11409 11410 { 11411 "id": "53653157708102", 11412 11413 11414 11415 11416 "title": "6 cans x 1 glass", 11417 "price": "£26.99", 11418 11419 11420 11421 11422 11423 11424 11425 "real_compare_at_price": "", 11426 "compare_at_price": "", 11427 "available": true, 11428 11429 "bis_enabled": false, 11430 "inventory_quantity": -2 11431 } 11432 11433 ] 11434 }, 11435 11436 11437 { 11438 "title": "Sweet Talk", 11439 "handle": "sweet-talk", 11440 "compare_at_price": "", 11441 "real_compare_at_price": "", 11442 "created_at": "2026-02-06 16:10:20 +0000", 11443 "published_at": "2026-02-10 11:00:17 +0000", 11444 "id": "15412545978694", 11445 "images": [ 11446 11447 {
11448 "src": "https://brewdog.com/cdn/shop/files/BDxNewTheory_SweetTalk_1080x1080_01.png?v=1770392465", 11449 "alt": "Sweet Talk", 11450 "width": 1080, 11451 "height": 1080 11452 }, 11453 11454 { 11455 "src": "https://brewdog.com/cdn/shop/files/BDxNewTheory_SweetTalk_1080x1080_02.png?v=1770392466", 11456 "alt": "Sweet Talk", 11457 "width": 1080, 11458 "height": 1080 11459 } 11460 11461 ], 11462 "price": "£19.99", 11463 "hidePricePdp": "false", 11464 "hidePricePlp": "false", 11465 "preOrder": "false", 11466 "preOrderDispatchEta": "", 11467 11468 "tags": [], 11469 11470 "available": true, 11471 "bis_enabled": false, 11472 11473 11474 11475 "url": "sweet-talk", 11476 11477 "subtitle": "RIPE. JUICY. BLACKBERRY.", 11478 11479 11480 11481 11482 "abv": "12.5", 11483 11484 11485 "style": "Red Wine", 11486 11487 11488 "size": "750ml", 11489 11490 11491 11492 "customBadge": "New", 11493 11494 11495 "vendor": "BrewDog", 11496 "accountOnly": false, 11497 "accessRestriction": "none", 11498 11499 11500 "variants": [ 11501 11502 11503 { 11504 "id": "55955936936262", 11505 11506 11507 11508 11509 "title": "1 x Bottle", 11510 "price": "£19.99", 11511 11512 11513 11514 "min_quantity": 1, 11515 11516 11517 11518 11519 "max_quantity": 100, 11520 11521 11522 "real_compare_at_price": "", 11523 "compare_at_price": "", 11524 "available": true, 11525 11526 "bis_enabled": false, 11527 "inventory_quantity": 9 11528 } 11529 11530 ] 11531 }, 11532 11533 11534 { 11535 "title": "Craft Beer Gift Pack", 11536 "handle": "the-craft-beer-gift-pack", 11537 "compare_at_price": "", 11538 "real_compare_at_price": "", 11539 "created_at": "2024-07-30 17:34:19 +0100", 11540 "published_at": "2024-07-30 10:39:27 +0100", 11541 "id": "9139983221062", 11542 "images": [ 11543 11544 { 11545 "src": "https://brewdog.com/cdn/shop/files/Fathers_Day_2026_Digital_Assets_11_800x800_PDP.png?v=1782899742", 11546 "alt": "Craft Beer Gift Pack", 11547 "width": 800, 11548 "height": 800 11549 } 11550 11551 ], 11552 "price": "£19.99", 11553 "hidePricePdp": "false", 11554 "hidePricePlp": "false", 11555 "preOrder": "false", 11556 "preOrderDispatchEta": "", 11557 11558 "tags": [ 11559 11560 11561 "Beer", 11562 11563 11564 "Christmas", 11565 11566 11567 "Craft Beer Fans", 11568 11569 11570 "Fathers Day", 11571 11572 11573 "Gift", 11574 11575 11576 "Gift Box", 11577 11578 11579 "IPA", 11580 11581 11582 "Lager" 11583 11584 ], 11585 11586 "available": true, 11587 "bis_enabled": false, 11588 11589 11590 11591 "url": "the-craft-beer-gift-pack", 11592 11593 "subtitle": "GIFT. FOR. YOU.", 11594 11595 11596 11597 11598 11599 "style": "Various", 11600 11601 11602 "size": "330ml", 11603 11604 11605 11606 "customBadge": "Best Seller", 11607 11608 11609 "vendor": "Gifting", 11610 "accountOnly": false, 11611 "accessRestriction": "none", 11612 11613 11614 "variants": [ 11615 11616 11617 { 11618 "id": "50169179537734", 11619 11620 11621 11622 11623 "title": "6 Cans + 1 Harmony Glass", 11624 "price": "£19.99", 11625 11626 11627 11628 "min_quantity": 0, 11629 11630 11631 11632 11633 "max_quantity": 5, 11634 11635 11636 "real_compare_at_price": "", 11637 "compare_at_price": "", 11638 "available": true, 11639 11640 "bis_enabled": false, 11641 "inventory_quantity": 72 11642 } 11643 11644 ] 11645 } 11646 11647 11648 ],
11649 "productCount": "41", 11650 "pagination": { 11651 "currentPage": "1", 11652 "perPage": "16", 11653 "pages": "3" 11654 }, 11655 "filters": [ 11656 11657 { 11658 "label": "Style", 11659 "max_value": "", 11660 "min_value": "", 11661 "range_max": "", 11662 "values": [ 11663 11664 { 11665 "label": "IPA", 11666 "count": "19", 11667 "value": "" 11668 }, 11669 11670 { 11671 "label": "Lager", 11672 "count": "3", 11673 "value": "" 11674 }, 11675 11676 { 11677 "label": "Accessories", 11678 "count": "2", 11679 "value": "" 11680 }, 11681 11682 { 11683 "label": "Mixed Packs", 11684 "count": "3", 11685 "value": "" 11686 }, 11687 11688 { 11689 "label": "Spirits", 11690 "count": "2", 11691 "value": "" 11692 }, 11693 11694 { 11695 "label": "Other", 11696 "count": "1", 11697 "value": "" 11698 } 11699 11700 ], 11701 "param_name": "filter.p.m.brewdog.style" 11702 }, 11703 11704 { 11705 "label": "ABV", 11706 "max_value": "", 11707 "min_value": "", 11708 "range_max": "", 11709 "values": [ 11710 11711 { 11712 "label": "Medium", 11713 "count": "24", 11714 "value": "" 11715 }, 11716 11717 { 11718 "label": "High", 11719 "count": "2", 11720 "value": "" 11721 }, 11722 11723 { 11724 "label": "Mixed", 11725 "count": "3", 11726 "value": "" 11727 } 11728 11729 ], 11730 "param_name": "filter.p.m.brewdog.abv" 11731 }, 11732 11733 { 11734 "label": "Discount", 11735 "max_value": "", 11736 "min_value": "", 11737 "range_max": "", 11738 "values": [ 11739 11740 { 11741 "label": "Up to 20%", 11742 "count": "2", 11743 "value": "" 11744 }, 11745 11746 { 11747 "label": "Up to 40%", 11748 "count": "7", 11749 "value": "" 11750 }, 11751 11752 { 11753 "label": "Over 40%", 11754 "count": "1", 11755 "value": "" 11756 } 11757 11758 ], 11759 "param_name": "filter.p.m.brewdog.sale_badge" 11760 } 11761 11762 ] 11763} 11764</script>
11764 11765</div> 11766 11767 11768 </main> 11769 11770 11771 11772 11773 11774
11774<script src="//brewdog.com/cdn/shop/t/271/assets/age-gate-BOoscdW4.js" type="module" crossorigin="anonymous"></script>
11774 11775 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/modal-C2lX66I4.js" crossorigin="anonymous"> 11776 <link rel="modulepreload" href="//brewdog.com/cdn/shop/t/271/assets/tua-bsl-uIxvG2ZV.js" crossorigin="anonymous"> 11777 11778<uwp-age-gate 11779 modal-name="age-gate" 11780 class="modal age-gate" 11781 aria-hidden="true" 11782 settings-entry-gate-enabled="false" 11783 settings-entry-gate-delay="5000" 11784> 11785 <div 11786 class="modal__overlay" 11787 tabindex="-1" 11788 data-close-modal 11789 ></div> 11790 11791 <div 11792 class=" 11793 modal__container 11794 age-gate__dropdown 11795 " 11796 role="dialog" 11797 aria-modal="true" 11798 > 11799 <div class=" 11800 modal__content 11801 age-gate__container 11802 "> 11803 <p class=" 11804 age-gate__title 11805 heading-4 11806 "> 11807 Confirm your age 11808 </p> 11809 11810 <p class=" 11811 age-gate__subtitle 11812 text-md-body 11813 "> 11814 Please confirm you are over 18 years old 11815 </p> 11816 11817 <button 11818 type="button" 11819 class=" 11820 age-gate__confirm-button 11821 btn btn-black 11822 " 11823 js-age-gate="confirmButton" 11824 > 11825 Confirm 11826 </button> 11827 11828 <button 11829 type="button" 11830 class="
11831 age-gate__cancel-button 11832 text-md-body 11833 " 11834 js-age-gate="cancelButton" 11835 > 11836 Cancel 11837 </button> 11838 </div> 11839 </div> 11840</uwp-age-gate> 11841 11842 <div id="shopify-section-newsletter" class="shopify-section"><section class="newsletter has-dog"> 11843 11844 11845 <img 11846 src="https://cdn.shopify.com/s/files/1/0822/7281/3382/files/dog_svg_g.svg?v=1768221406" 11847 alt="" 11848 class="newsletter__dog" 11849 id="newsletter-dog" 11850 > 11851 <style> 11852 /* Keep Mello below header / utility dropdowns (.bdh-header is z-index: 500). 11853 Without isolation, a positioned child z-index can paint over those menus. */ 11854 .newsletter.has-dog { 11855 position: relative; 11856 margin-top: 80px; 11857 z-index: 0; 11858 isolation: isolate; 11859 } 11860 .newsletter.has-dog > .container { 11861 position: relative; 11862 z-index: 2; 11863 } 11864 .newsletter__dog { 11865 position: absolute; 11866 bottom: calc(100% - 22px); 11867 right: 200px; 11868 width: 400px; 11869 height: auto; 11870 z-index: 1; 11871 cursor: pointer; 11872 } 11873 @media (max-width: 767px) { 11874 .newsletter__dog { 11875 right: 30px; 11876 } 11877 } 11878 </style> 11879 <!-- Dog Modal --> 11880 <div id="newsletter-dog-modal" class="dog-modal"> 11881 <div class="dog-modal__overlay" data-dog-modal-close></div> 11882 <div class="dog-modal__container"> 11883 <div class="dog-modal__image-wrapper"> 11884 <img 11885 src="https://cdn.shopify.com/s/files/1/0822/7281/3382/files/2_bd390005-44f9-41db-ac7f-1fed743d78d7.png?v=1767877510" 11886 alt="" 11887 class="dog-modal__image" 11888 > 11889 <button class="dog-modal__close" data-dog-modal-close aria-label="Close"> 11890 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> 11891 <line x1="18" y1="6" x2="6" y2="18"></line> 11892 <line x1="6" y1="6" x2="18" y2="18"></line> 11893 </svg> 11894 </button> 11895 <div class="dog-modal__content"> 11896 11897 <p class="dog-modal__text">Say hello to Mello. Our latest 0.0% beer brewed with magnesium.</p> 11898 11899 11900 <a href="https://brewdog.com/products/mello-lime-mint" class="dog-modal__button"> 11901 Shop Now 11902 </a> 11903 11904 </div> 11905 </div> 11906 </div> 11907 </div> 11908 11909 <style> 11910 .dog-modal { 11911 display: none; 11912 position: fixed; 11913 top: 0; 11914 left: 0; 11915 width: 100%; 11916 height: 100%; 11917 z-index: 9999; 11918 } 11919 .dog-modal.visible { 11920 display: flex; 11921 align-items: center; 11922 justify-content: center; 11923 } 11924 .dog-modal__overlay { 11925 position: absolute; 11926 top: 0; 11927 left: 0; 11928 width: 100%; 11929 height: 100%; 11930 background: rgba(0, 0, 0, 0.5); 11931 } 11932 .dog-modal__container { 11933 position: relative; 11934 z-index: 1; 11935 width: 90vw; 11936 max-width: 670px; 11937 } 11938 .dog-modal__image-wrapper { 11939 position: relative; 11940 width: 100%; 11941 padding-bottom: 100%; 11942 } 11943 .dog-modal__image { 11944 position: absolute; 11945 top: 0; 11946 left: 0; 11947 width: 100%; 11948 height: 100%; 11949 object-fit: contain; 11950 } 11951 .dog-modal__close { 11952 position: absolute; 11953 top: 12%; 11954 right: 18%; 11955 background: #b983b6; 11956 border: none; 11957 width: 40px; 11958 height: 40px; 11959 border-radius: 50%; 11960 cursor: pointer; 11961 display: flex; 11962 align-items: center; 11963 justify-content: center; 11964 z-index: 10; 11965 } 11966 .dog-modal__close svg { 11967 width: 16px; 11968 height: 16px; 11969 stroke: #ffffff; 11970 } 11971 .dog-modal__content { 11972 position: absolute; 11973 top: 50%; 11974 left: 50%; 11975 transform: translate(-50%, -50%); 11976 width: 80%; 11977 display: flex; 11978 flex-direction: column; 11979 align-items: center; 11980 text-align: center; 11981 padding-top: 20%; 11982 } 11983 .dog-modal__text { 11984 color: #666666; 11985 font-size: 13px; 11986 line-height: 1.4; 11987 margin: 0 0 14px 0; 11988 max-width: 100%; 11989 } 11990 .dog-modal__button { 11991 background: #b983b6; 11992 color: #ffffff; 11993 border: none; 11994 padding: 12px 40px; 11995 border-radius: 30px; 11996 font-size: 14px; 11997 font-weight: 600; 11998 cursor: pointer; 11999 text-decoration: none; 12000 display: inline-block; 12001 } 12002 @media (max-width: 767px) { 12003 .dog-modal__content { 12004 width: 82%; 12005 padding-top: 23%; 12006 } 12007 .dog-modal__text { 12008 font-size: 13px; 12009 margin-bottom: 12px; 12010 } 12011 .dog-modal__button { 12012 padding: 5px 16px; 12013 margin-left:5px; 12014 font-size: 13px; 12015 } 12016 .dog-modal__close { 12017 top: 10%; 12018 right: 16%; 12019 width: 34px; 12020 height: 34px; 12021 } 12022 .dog-modal__close svg { 12023 width: 14px; 12024 height: 14px; 12025 } 12026 } 12027 @media (max-width: 374px) { 12028 .dog-modal__content { 12029 width: 84%; 12030 padding-top: 32%; 12031 } 12032 .dog-modal__text { 12033 font-size: 10px; 12034 margin-bottom: 10px;margin-top: 10px; 12035 } 12036 .dog-modal__button { 12037 padding: 8px 24px; 12038 font-size: 12px; 12039 } 12040 .dog-modal__close { 12041 top: 10%; 12042 right: 14%; 12043 width: 30px; 12044 height: 30px; 12045 } 12046 .dog-modal__close svg { 12047 width: 12px; 12048 height: 12px; 12049 } 12050 } 12051 </style> 12052 12053
12053<script> 12054 document.addEventListener('DOMContentLoaded', function() { 12055 var dog = document.getElementById('newsletter-dog'); 12056 var modal = document.getElementById('newsletter-dog-modal'); 12057 12058 if (dog && modal) { 12059 // Open modal 12060 dog.addEventListener('click', function() { 12061 modal.classList.add('visible'); 12062 document.body.style.overflow = 'hidden'; 12063 }); 12064 12065 // Close modal 12066 var closeButtons = modal.querySelectorAll('[data-dog-modal-close]'); 12067 closeButtons.forEach(function(btn) { 12068 btn.addEventListener('click', function() { 12069 modal.classList.remove('visible'); 12070 document.body.style.overflow = ''; 12071 }); 12072 }); 12073 12074 // Close on Escape 12075 document.addEventListener('keydown', function(e) { 12076 if (e.key === 'Escape' && modal.classList.contains('visible')) { 12077 modal.classList.remove('visible'); 12078 document.body.style.overflow = ''; 12079 } 12080 }); 12081 } 12082 }); 12083 </script>
12083 12084 12085 <div class="container"> 12086 12087 <h4 class=" 12088 newsletter__title 12089 heading-1 12090 "> 12091 Join Our Community. 12092 </h4> 12093 12094 12095 12096 <ul class="newsletter__usp-list"> 12097 12098 12099 12100 <li class=" 12101 newsletter__usp-item 12102 text-md-body 12103 "> 12104 <span class="newsletter__usp-item-dot"></span> 12105 Exclusive Offers 12106 </li> 12107 12108 12109 12110 <li class=" 12111 newsletter__usp-item 12112 text-md-body 12113 "> 12114 <span class="newsletter__usp-item-dot"></span> 12115 New Beer Drops 12116 </li> 12117 12118 12119 12120 <li class=" 12121 newsletter__usp-item 12122 text-md-body 12123 "> 12124 <span class="newsletter__usp-item-dot"></span> 12125 Bar Updates 12126 </li> 12127 12128 </ul> 12129 12130 12131 <!-- Shopify Native Consent Form --> 12132 <div id="shopify-consent-form" style="display: none;"> 12133 <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="newsletter__form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 12134 <input 12135 class="newsletter__form-input text-md-body" 12136 type="text" 12137 name="contact[first_name]" 12138 aria-label="First Name" 12139 placeholder="First Name" 12140 required 12141 > 12142 12143 <input 12144 class="newsletter__form-input text-md-body" 12145 type="email" 12146 autocapitalize="off" 12147 autocorrect="off" 12148 name="contact[email]" 12149 aria-label="Email" 12150 placeholder="Email" 12151 required 12152 > 12153 12154 <input type="hidden" name="contact[tags]" value="newsletter"> 12155 <label style="display: none;"> 12156 <input type="checkbox" name="contact[accepts_marketing]" value="true" checked> 12157 </label> 12158 12159 <p class=" 12160 newsletter__form-disclaimer 12161 hide-on-desktop 12162 text-xs-body 12163 "> 12164 You can unsubscribe anytime. For more details, review our
12164<a style="text-decoration: underline;" href="https://www.brewdog.com/uk/cookie-and-privacy-policy">Privacy Policy</a>. 12165 </p> 12166 12167 <button class="newsletter__form-submit btn btn-white" type="submit"> 12168 Join Now 12169 </button> 12170 </form> 12171 </div> 12172 12173 <!-- External Sign-Up Form --> 12174 <div id="external-signup-form" style="display: none;"> 12175 <form class="newsletter__form" onsubmit="sendBloomreachConsent(event)"> 12176 <input 12177 class="newsletter__form-input text-md-body" 12178 type="text" 12179 name="first_name" 12180 aria-label="First Name" 12181 placeholder="First Name" 12182 required 12183 > 12184 12185 <input 12186 class="newsletter__form-input text-md-body" 12187 type="email" 12188 name="email" 12189 aria-label="Email" 12190 placeholder="Email" 12191 required 12192 > 12193 12194 <p class=" 12195 newsletter__form-disclaimer 12196 hide-on-desktop 12197 text-xs-body 12198 "> 12199 You can unsubscribe anytime. For more details, review our
12199<a style="text-decoration: underline;" href="https://www.brewdog.com/uk/cookie-and-privacy-policy">Privacy Policy</a>. 12200 </p> 12201 12202 <button class="newsletter__form-submit btn btn-white" type="submit"> 12203 Join Now 12204 </button> 12205 </form> 12206 </div> 12207 12208 <p class=" 12209 newsletter__form-disclaimer 12210 hide-on-mobile 12211 text-xs-body 12212 "> 12213 You can unsubscribe anytime. For more details, review our <a style="text-decoration: underline;" href="https://www.brewdog.com/uk/cookie-and-privacy-policy">Privacy Policy</a>. 12214 </p> 12215 </div> 12216</section> 12217
12218<script> 12219 document.addEventListener("DOMContentLoaded", function() { 12220 if (window.location.origin.includes("brewdog.com")) { 12221 document.getElementById("shopify-consent-form").style.display = "block"; 12222 } else { 12223 document.getElementById("external-signup-form").style.display = "block"; 12224 } 12225 }); 12226 12227 async function sendBloomreachConsent(event) { 12228 event.preventDefault(); 12229 const form = event.target.closest('form'); 12230 const email = form.querySelector('input[name="email"]').value; 12231 const firstName = form.querySelector('input[name="first_name"]').value; 12232 12233 if (email && firstName) { 12234 try { 12235 console.log('uwp-su'); 12236 await fetch("https://brewdog.gadget.app/sign-up", { 12237 method: "POST", 12238 headers: { "Content-Type": "application/json" }, 12239 body: JSON.stringify({ 12240 "params": { "email": email, "name": firstName, "url": window.location.origin } 12241 }) 12242 }); 12243 form.submit(); 12244 } catch (error) { 12245 console.error("Error tracking consent:", error); 12246 form.submit(); 12247 } 12248 } 12249 } 12250</script>
12250 12251 12252</div> 12253 <div id="shopify-section-footer" class="shopify-section"><footer class="footer"> 12254 <div class="footer__main"> 12255 <div class=" 12256 footer__main-container 12257 container 12258 "> 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 <div class=" 12269 footer__navigation 12270 hide-on-desktop 12271 "> 12272 <uwp-accordion 12273 12274 open-first="true" 12275 12276 > 12277 <div class=" 12278 uwp-accordion__panel-control 12279 footer__accordion-control 12280 "> 12281 <p 12282 class=" 12283 footer__navigation-title 12284 heading-4 12285 " 12286 > 12287 Support 12288 </p> 12289 12290 12291 12292 12293 <svg class="footer__accordion-icon footer__accordion-plus" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12294 <path d="M13 11V4H11V11H4V13H11V20H13V13H20V11H13Z" fill="#111111"/> 12295 </svg> 12296 12297 12298 12299 12300 12301 12302 12303 12304 <svg class="footer__accordion-icon footer__accordion-minus" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12305 <path d="M20 11H4V13H20V11Z" fill="#111111"/> 12306 </svg> 12307 12308 12309 12310 12311 </div> 12312 12313 <div class=" 12314 uwp-accordion__panel-content 12315 footer__accordion-content 12316 "> 12317 <ul class="footer__navigation-list"> 12318 12319 <li class="footer__navigation-item"> 12320 <a 12321 class="text-sm-body" 12322 href="https://brewdog-ijnwidpa3ld.gorgias.help/en-GB" 12323 > 12324 FAQs 12325 </a> 12326 </li> 12327 12328 <li class="footer__navigation-item"> 12329 <a 12330 class="text-sm-body" 12331 href="/pages/contact-us" 12332 > 12333 Contact Us 12334 </a> 12335 </li> 12336 12337 <li class="footer__navigation-item"> 12338 <a 12339 class="text-sm-body" 12340 href="https://www.brewdog.com/uk/delivery-and-returns" 12341 > 12342 Delivery & Returns 12343 </a> 12344 </li> 12345 12346 <li class="footer__navigation-item"> 12347 <a 12348 class="text-sm-body" 12349 href="/pages/lost-property" 12350 > 12351 Accessibility 12352 </a> 12353 </li> 12354 12355 </ul> 12356 </div> 12357 </uwp-accordion> 12358 </div> 12359 12360 <div class=" 12361 footer__navigation 12362 hide-on-mobile 12363 "> 12364 <p 12365 class=" 12366 footer__navigation-title 12367 heading-4 12368 " 12369 > 12370 Support 12371 </p> 12372 12373 <ul class="footer__navigation-list"> 12374 12375 <li class="footer__navigation-item"> 12376 <a 12377 class="text-sm-body" 12378 href="https://brewdog-ijnwidpa3ld.gorgias.help/en-GB" 12379 > 12380 FAQs 12381 </a> 12382 </li> 12383 12384 <li class="footer__navigation-item"> 12385 <a 12386 class="text-sm-body" 12387 href="/pages/contact-us" 12388 > 12389 Contact Us 12390 </a> 12391 </li> 12392 12393 <li class="footer__navigation-item"> 12394 <a 12395 class="text-sm-body" 12396 href="https://www.brewdog.com/uk/delivery-and-returns" 12397 > 12398 Delivery & Returns 12399 </a> 12400 </li> 12401 12402 <li class="footer__navigation-item"> 12403 <a 12404 class="text-sm-body" 12405 href="/pages/lost-property" 12406 > 12407 Accessibility 12408 </a> 12409 </li> 12410 12411 </ul> 12412 </div> 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 <div class=" 12423 footer__navigation 12424 hide-on-desktop 12425 "> 12426 <uwp-accordion 12427 12428 > 12429 <div class=" 12430 uwp-accordion__panel-control 12431 footer__accordion-control 12432 "> 12433 <p 12434 class=" 12435 footer__navigation-title 12436 heading-4 12437 " 12438 > 12439 Legal 12440 </p> 12441 12442 12443 12444 12445 <svg class="footer__accordion-icon footer__accordion-plus" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12446 <path d="M13 11V4H11V11H4V13H11V20H13V13H20V11H13Z" fill="#111111"/> 12447 </svg> 12448 12449 12450 12451 12452 12453 12454 12455 12456 <svg class="footer__accordion-icon footer__accordion-minus" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12457 <path d="M20 11H4V13H20V11Z" fill="#111111"/> 12458 </svg> 12459 12460 12461 12462 12463 </div> 12464 12465 <div class=" 12466 uwp-accordion__panel-content 12467 footer__accordion-content 12468 "> 12469 <ul class="footer__navigation-list"> 12470 12471 <li class="footer__navigation-item"> 12472 <a 12473 class="text-sm-body" 12474 href="/pages/terms-and-conditions" 12475 > 12476 Terms & Conditions 12477 </a> 12478 </li> 12479 12480 <li class="footer__navigation-item"> 12481 <a 12482 class="text-sm-body" 12483 href="https://www.brewdog.com/uk/responsibility" 12484 > 12485 Responsibility 12486 </a> 12487 </li> 12488 12489 <li class="footer__navigation-item"> 12490 <a 12491 class="text-sm-body" 12492 href="https://www.brewdog.com/uk/responsibility/tackling-modern-slavery" 12493 > 12494 Modern Slavery Act 12495 </a> 12496 </li> 12497 12498 <li class="footer__navigation-item"> 12499 <a 12500 class="text-sm-body" 12501 href="https://www.brewdog.com/uk/gender-pay-gap-statement" 12502 > 12503 Gender Gap Statement 12504 </a> 12505 </li> 12506 12507 <li class="footer__navigation-item"> 12508 <a 12509 class="text-sm-body" 12510 href="/pages/cookie-and-privacy-policy" 12511 > 12512 Privacy Policy 12513 </a> 12514 </li> 12515 12516 </ul> 12517 </div> 12518 </uwp-accordion> 12519 </div> 12520 12521 <div class=" 12522 footer__navigation 12523 hide-on-mobile 12524 "> 12525 <p 12526 class=" 12527 footer__navigation-title 12528 heading-4 12529 " 12530 > 12531 Legal 12532 </p> 12533 12534 <ul class="footer__navigation-list"> 12535 12536 <li class="footer__navigation-item"> 12537 <a 12538 class="text-sm-body" 12539 href="/pages/terms-and-conditions" 12540 > 12541 Terms & Conditions 12542 </a> 12543 </li> 12544 12545 <li class="footer__navigation-item"> 12546 <a 12547 class="text-sm-body" 12548 href="https://www.brewdog.com/uk/responsibility" 12549 > 12550 Responsibility 12551 </a> 12552 </li> 12553 12554 <li class="footer__navigation-item"> 12555 <a 12556 class="text-sm-body" 12557 href="https://www.brewdog.com/uk/responsibility/tackling-modern-slavery" 12558 > 12559 Modern Slavery Act 12560 </a> 12561 </li> 12562 12563 <li class="footer__navigation-item"> 12564 <a 12565 class="text-sm-body" 12566 href="https://www.brewdog.com/uk/gender-pay-gap-statement" 12567 > 12568 Gender Gap Statement 12569 </a> 12570 </li> 12571 12572 <li class="footer__navigation-item"> 12573 <a 12574 class="text-sm-body" 12575 href="/pages/cookie-and-privacy-policy" 12576 > 12577 Privacy Policy 12578 </a> 12579 </li> 12580 12581 </ul> 12582 </div> 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 <div class=" 12593 footer__navigation 12594 hide-on-desktop 12595 "> 12596 <uwp-accordion 12597 12598 > 12599 <div class=" 12600 uwp-accordion__panel-control 12601 footer__accordion-control 12602 "> 12603 <p 12604 class=" 12605 footer__navigation-title 12606 heading-4 12607 " 12608 > 12609 Company 12610 </p> 12611 12612 12613 12614 12615 <svg class="footer__accordion-icon footer__accordion-plus" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12616 <path d="M13 11V4H11V11H4V13H11V20H13V13H20V11H13Z" fill="#111111"/> 12617 </svg> 12618 12619 12620 12621 12622 12623 12624 12625 12626 <svg class="footer__accordion-icon footer__accordion-minus" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12627 <path d="M20 11H4V13H20V11Z" fill="#111111"/> 12628 </svg> 12629 12630 12631 12632 12633 </div> 12634 12635 <div class=" 12636 uwp-accordion__panel-content 12637 footer__accordion-content 12638 "> 12639 <ul class="footer__navigation-list"> 12640 12641 <li class="footer__navigation-item"> 12642 <a 12643 class="text-sm-body" 12644 href="/pages/important-notice" 12645 > 12646 Important Notice 12647 </a> 12648 </li> 12649 12650 <li class="footer__navigation-item"> 12651 <a 12652 class="text-sm-body" 12653 href="/blogs/news" 12654 > 12655 News 12656 </a> 12657 </li> 12658 12659 <li class="footer__navigation-item"> 12660 <a 12661 class="text-sm-body" 12662 href="/pages/history" 12663 > 12664 History 12665 </a> 12666 </li> 12667 12668 <li class="footer__navigation-item"> 12669 <a 12670 class="text-sm-body" 12671 href="https://jobs.brewdog.com/" 12672 > 12673 Careers 12674 </a> 12675 </li> 12676 12677 <li class="footer__navigation-item"> 12678 <a 12679 class="text-sm-body" 12680 href="/pages/franchising" 12681 > 12682 Franchise Opportunities 12683 </a> 12684 </li> 12685 12686 <li class="footer__navigation-item"> 12687 <a 12688 class="text-sm-body" 12689 href="https://www.brewdog.com/uk/enquiry" 12690 > 12691 Trade Enquiries 12692 </a> 12693 </li> 12694 12695 </ul> 12696 </div> 12697 </uwp-accordion> 12698 </div> 12699 12700 <div class=" 12701 footer__navigation 12702 hide-on-mobile 12703 "> 12704 <p 12705 class=" 12706 footer__navigation-title 12707 heading-4 12708 " 12709 > 12710 Company 12711 </p> 12712 12713 <ul class="footer__navigation-list"> 12714 12715 <li class="footer__navigation-item"> 12716 <a 12717 class="text-sm-body" 12718 href="/pages/important-notice" 12719 > 12720 Important Notice 12721 </a> 12722 </li> 12723 12724 <li class="footer__navigation-item"> 12725 <a 12726 class="text-sm-body" 12727 href="/blogs/news" 12728 > 12729 News 12730 </a> 12731 </li> 12732 12733 <li class="footer__navigation-item"> 12734 <a 12735 class="text-sm-body" 12736 href="/pages/history" 12737 > 12738 History 12739 </a> 12740 </li> 12741 12742 <li class="footer__navigation-item"> 12743 <a 12744 class="text-sm-body" 12745 href="https://jobs.brewdog.com/" 12746 > 12747 Careers 12748 </a> 12749 </li> 12750 12751 <li class="footer__navigation-item"> 12752 <a 12753 class="text-sm-body" 12754 href="/pages/franchising" 12755 > 12756 Franchise Opportunities 12757 </a> 12758 </li> 12759 12760 <li class="footer__navigation-item"> 12761 <a 12762 class="text-sm-body" 12763 href="https://www.brewdog.com/uk/enquiry" 12764 > 12765 Trade Enquiries 12766 </a> 12767 </li> 12768 12769 </ul> 12770 </div> 12771 12772 12773 <div class="footer__additional"> 12774 <div class="footer__localization"> 12775 <p class=" 12776 footer__localization-title 12777 text-sm-body--semi-bold 12778 "> 12779 Country 12780 </p> 12781 12782 12783 12784 12785
12785<script src="//brewdog.com/cdn/shop/t/271/assets/country-selector-Bye9IB2I.js" type="module" crossorigin="anonymous"></script>
12785 12786 12787<uwp-country-selector class="country-selector"> 12788 <img 12789 class="country-selector__flag" 12790 src="https://cdn.kcak11.com/CountryFlags/countries/gb.svg" 12791 width="24" 12792 height="24" 12793 js-country-selector="flag" 12794 /> 12795 12796 <select 12797 class="country-selector__select" 12798 aria-labelledby="FooterCountrySelector" 12799 js-country-selector="select" 12800 > 12801 12802 12803 12804 <option 12805 value="gb-brewdog" 12806 12807 > 12808 GB BrewDog (GBP) 12809 </option> 12810 12811 12812 12813 <option 12814 value="gb-wonderland" 12815 12816 > 12817 GB Wonderland (GBP) 12818 </option> 12819 12820 12821 12822 <option 12823 value="fr" 12824 12825 > 12826 France (EUR) 12827 </option> 12828 12829 12830 12831 <option 12832 value="us" 12833 12834 > 12835 USA (USD) 12836 </option> 12837 12838 12839 12840 <option 12841 value="au" 12842 12843 > 12844 Australia (AUD) 12845 </option> 12846 12847 12848 12849 <option 12850 value="nl" 12851 12852 > 12853 Netherlands (EUR) 12854 </option> 12855 12856 12857 12858 <option 12859 value="es" 12860 12861 > 12862 Spain (EUR) 12863 </option> 12864 12865 12866 12867 <option 12868 value="de" 12869 12870 > 12871 Germany (EUR) 12872 </option> 12873 12874 </select> 12875</uwp-country-selector> 12876 </div> 12877 12878 <div class="footer__social"> 12879 <p class=" 12880 footer__social-title 12881 text-sm-body--semi-bold 12882 "> 12883 Follow us 12884 </p> 12885 12886 12887 12888 12889 12890<div class=" 12891 social-icons 12892 footer__social-icons 12893"> 12894 12895 12896 12897 12898 12899 12900 12901 12902 <a 12903 class=" 12904 social-icons__icon 12905 footer__social-icon 12906 " 12907 href="https://www.youtube.com/BrewDogBeer" 12908 > 12909 <span class="visually-hidden"> 12910 YouTube 12911 </span> 12912 12913 12914 12915 12916 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12917 <path d="M17.7113 5.38803C15.0082 5.20353 8.988 5.20428 6.28875 5.38803C3.366 5.58753 3.02175 7.35303 3 12C3.02175 16.6388 3.363 18.4118 6.28875 18.612C8.98875 18.7958 15.0082 18.7965 17.7113 18.612C20.634 18.4125 20.9783 16.647 21 12C20.9783 7.36128 20.637 5.58828 17.7113 5.38803ZM9.75 15V9.00003L15.75 11.9948L9.75 15Z" fill="#111111"/> 12918 </svg> 12919 12920 12921 12922 12923 </a> 12924 12925 12926 12927 12928 12929 <a 12930 class=" 12931 social-icons__icon 12932 footer__social-icon 12933 " 12934 href="https://www.instagram.com/brewdogofficial" 12935 > 12936 <span class="visually-hidden"> 12937 Instagram 12938 </span> 12939 12940 12941 12942 12943 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12944 <path d="M12 4.62225C14.403 4.62225 14.688 4.63125 15.6375 4.67475C18.0765 4.78575 19.2157 5.943 19.3267 8.364C19.3702 9.31275 19.3785 9.59775 19.3785 12.0008C19.3785 14.4045 19.3695 14.6888 19.3267 15.6375C19.215 18.0563 18.0788 19.2157 15.6375 19.3267C14.688 19.3702 14.4045 19.3792 12 19.3792C9.597 19.3792 9.312 19.3702 8.36325 19.3267C5.91825 19.215 4.785 18.0525 4.674 15.6368C4.6305 14.688 4.6215 14.4037 4.6215 12C4.6215 9.597 4.63125 9.31275 4.674 8.36325C4.78575 5.943 5.922 4.785 8.36325 4.674C9.31275 4.63125 9.597 4.62225 12 4.62225ZM12 3C9.55575 3 9.24975 3.0105 8.28975 3.054C5.02125 3.204 3.20475 5.0175 3.05475 8.289C3.0105 9.24975 3 9.55575 3 12C3 14.4443 3.0105 14.751 3.054 15.711C3.204 18.9795 5.0175 20.796 8.289 20.946C9.24975 20.9895 9.55575 21 12 21C14.4443 21 14.751 20.9895 15.711 20.946C18.9765 20.796 20.7975 18.9825 20.9452 15.711C20.9895 14.751 21 14.4443 21 12C21 9.55575 20.9895 9.24975 20.946 8.28975C20.799 5.02425 18.9832 3.20475 15.7118 3.05475C14.751 3.0105 14.4443 3 12 3ZM12 7.3785C9.44775 7.3785 7.3785 9.44775 7.3785 12C7.3785 14.5522 9.44775 16.6222 12 16.6222C14.5522 16.6222 16.6215 14.553 16.6215 12C16.6215 9.44775 14.5522 7.3785 12 7.3785ZM12 15C10.3432 15 9 13.6575 9 12C9 10.3432 10.3432 9 12 9C13.6567 9 15 10.3432 15 12C15 13.6575 13.6567 15 12 15ZM16.8045 6.11625C16.2075 6.11625 15.7238 6.6 15.7238 7.19625C15.7238 7.7925 16.2075 8.27625 16.8045 8.27625C17.4008 8.27625 17.8837 7.7925 17.8837 7.19625C17.8837 6.6 17.4008 6.11625 16.8045 6.11625Z" fill="#111111"/> 12945 </svg> 12946 12947 12948 12949 12950 </a> 12951 12952 12953 12954 12955 12956 <a 12957 class=" 12958 social-icons__icon 12959 footer__social-icon 12960 " 12961 href="https://x.com/brewdog" 12962 >
12963 <span class="visually-hidden"> 12964 Twitter (X) 12965 </span> 12966 12967 12968 12969 12970 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 12971 <path d="M17.176 3.86487H19.936L13.9061 10.7569L21 20.1351H15.4454L11.0951 14.4471L6.11727 20.1351H3.35539L9.80498 12.7635L3 3.86487H8.69528L12.6277 9.06378L17.176 3.86487ZM16.2073 18.483H17.7367L7.86432 5.43027H6.22323L16.2073 18.483Z" fill="#111111"/> 12972 </svg> 12973 12974 12975 12976 12977 </a> 12978 12979 12980 12981 12982 12983 <a 12984 class=" 12985 social-icons__icon 12986 footer__social-icon 12987 " 12988 href="https://untappd.com/brewdogbrewery" 12989 > 12990 <span class="visually-hidden"> 12991 Untappd 12992 </span> 12993 12994 12995 12996 12997 12998 12999 </a> 13000 13001 13002</div> 13003 </div> 13004 </div> 13005 </div> 13006 </div> 13007 13008 <div class="footer__bottom-bar"> 13009 <div class=" 13010 footer__bottom-bar-container 13011 container 13012 "> 13013 <div class="footer__bottom-bar-text"> 13014 <div class="footer__ssl"> 13015 13016 13017 13018 <svg class="" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 13019 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.80005 8.4H6.60005C6.60005 5.41766 9.01771 3 12 3C14.9824 3 17.4 5.41766 17.4 8.4H19.2V21H4.80005V8.4ZM12 4.8C10.0118 4.8 8.40005 6.41177 8.40005 8.4H15.6C15.6 6.41177 13.9882 4.8 12 4.8ZM6.60005 10.2V19.2H17.4V10.2H6.60005ZM12 11.1C10.5089 11.1 9.30005 12.3088 9.30005 13.8C9.30005 14.9756 10.0514 15.9757 11.1 16.3464V18.3H12.9V16.3464C13.9487 15.9757 14.7 14.9756 14.7 13.8C14.7 12.3088 13.4912 11.1 12 11.1ZM11.1 13.8C11.1 13.3029 11.503 12.9 12 12.9C12.4971 12.9 12.9 13.3029 12.9 13.8C12.9 14.2971 12.4971 14.7 12 14.7C11.503 14.7 11.1 14.2971 11.1 13.8Z" fill="#111111"/> 13020 </svg> 13021 13022 13023 13024 13025 13026 <span class=" 13027 footer__ssl-text 13028 text-xs-body--semi-bold 13029 "> 13030 Secure SSL Checkout 13031 </span> 13032 </div> 13033 13034 <p class=" 13035 footer__copyright 13036 text-xs-body 13037 "> 13038 13039 13040 © Copyright BrewDog 2015-2026; all images and content owned and produced by BrewDog PLC In Administration Clare Kennedy, Ian Partridge and Ben Browne were appointed Joint Administrators of BrewDog plc (the Company). Clare Kennedy, Ian Partridge and Ben Browne are licensed in the UK by the IPA. The affairs, business and property of the Company are being managed by the Administrators, who act as agents of the Company without personal liability 13041 </p> 13042 </div><div class="footer__payment-icons"> 13043 <div class="payment-icons"> 13044 <span class="visually-hidden">Supported payment methods</span> 13045 13046 <ul class="payment-icons__list"><li class="payment-icons__icon"> 13047 <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-american_express"><title id="pi-american_express">American Express</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="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/>
13047</svg> 13048 13049 </li><li class="payment-icons__icon"> 13050 <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" /><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> 13051 13052 </li><li class="payment-icons__icon"> 13053 <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</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 d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg> 13054 </li><li class="payment-icons__icon"> 13055 <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" 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 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-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg> 13056 </li><li class="payment-icons__icon"> 13057 <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.
1305706zM23.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> 13058 13059 </li><li class="payment-icons__icon"> 13060 <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-maestro"><title id="pi-maestro">Maestro</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"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg> 13061 </li><li class="payment-icons__icon"> 13062 <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> 13063 13064 </li><li class="payment-icons__icon"> 13065 <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
130650-.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> 13066 </li><li class="payment-icons__icon"> 13067 <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-shopify_pay"><title id="pi-shopify_pay">Shop Pay</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" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 13068 13069 </li><li class="payment-icons__icon"> 13070 <svg class="icon icon--full-color" viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.
13070635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg> 13071 </li><li class="payment-icons__icon"> 13072 <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
1307216.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> 13073 13074 </li></ul> 13075</div> 13076 </div></div> 13077 </div> 13078</footer> 13079 13080</div> 13081 <div id="shopify-section-app_optimisation" class="shopify-section"> 13082</div> 13083 13084 13085
13086<script>
vendor: 119 bytes, lines 13086-13089
13086 13087 (function(h,o,t,j,a,r){ 13088 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 13089 h._hjSettings={hjid:
130895078597
vendor: 248 bytes, lines 13089-13094
13089,hjsv:6}; 13090 a=o.getElementsByTagName('head')[0]; 13091 r=o.createElement('script');r.async=1; 13092 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 13093 a.appendChild(r); 13094 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
13095</script>
13095 13096 13097
13098<script async 13099 id="gorgias-chat-widget-install-v3" 13100 src="https://config.gorgias.chat/bundle-loader/01J00T4NMTVW64G3YYAG9CSX4M" 13101></script>
13101 13102 13103
13103<script> 13104(function() { 13105 if (window.__brewdogFormListenerInitialized) { 13106 console.log('Form listener already initialized, skipping'); 13107 return; 13108 } 13109 window.__brewdogFormListenerInitialized = true; 13110 13111 let eventSent = false; 13112 13113 // When a listed field exists on the current form, it must have a value or we skip Exponea. 13114 // Add Shopify field keys here as the team creates required fields (with or without custom#). 13115 const requiredFields = [ 13116 'which_bar_would_you_like_to_book_1' 13117 ]; 13118 13119 const cleanKey = (raw) => { 13120 if (!raw) return ''; 13121 return raw.startsWith('custom#') ? raw.slice(7) : raw; 13122 }; 13123 13124 const fieldExistsOnForm = (form, key) => { 13125 const raw = cleanKey(key); 13126 return !!( 13127 form.querySelector( 13128 '[name="custom#' + raw + '"], [name="' + raw + '"], [id="custom#' + raw + '"], [id="' + raw + '"], [data-testid="field-custom#' + raw + '"], [data-testid="field-' + raw + '"]' 13129 ) 13130 ); 13131 }; 13132 13133 const hasFieldValue = (data, key) => { 13134 const value = data[cleanKey(key)]; 13135 if (value === undefined || value === null || value === false) return false; 13136 return String(value).trim() !== ''; 13137 }; 13138 13139 const getFieldKey = (field) => { 13140 if ((field.type === 'radio' || field.type === 'checkbox') && field.name) { 13141 return cleanKey(field.name); 13142 } 13143 13144 const testId = field.getAttribute('data-testid') || ''; 13145 const fromTestId = testId.startsWith('field-') ? testId.slice(6) : ''; 13146 return cleanKey(field.name || field.id || fromTestId); 13147 }; 13148 13149 const isEmailField = (field, key, value) => { 13150 if (typeof value !== 'string' || !value.includes('@')) return false; 13151 13152 const inputMode = field.getAttribute('inputmode') || ''; 13153 return ( 13154 field.type === 'email' || 13155 field.id === 'email' || 13156 inputMode === 'email' || 13157 key.toLowerCase().includes('email') 13158 ); 13159 }; 13160 13161 document.addEventListener('DOMContentLoaded', () => { 13162 if (!window.location.href.includes('bdform')) return; 13163 13164 console.log('form listening v7 - required field gate'); 13165 let formProcessed = false; 13166 13167 const observer = new MutationObserver(() => { 13168 const shadowHost = 13169 document.querySelector('shopify-forms-embed') || 13170 document.querySelector('#app-embed'); 13171 if (!shadowHost || !shadowHost.shadowRoot) return; 13172 13173 const form = shadowHost.shadowRoot.querySelector('form[data-testid="form"]'); 13174 if (!form || formProcessed) return; 13175 13176 console.log('Form found inside shadow DOM!'); 13177 formProcessed = true; 13178 observer.disconnect(); 13179 13180 form.addEventListener('submit', function () { 13181 if (eventSent) { 13182 console.log('Event already sent, skipping duplicate'); 13183 return; 13184 } 13185 13186 const formData = {}; 13187 let customerEmail = null; 13188 13189 form.querySelectorAll('input, select, textarea').forEach((field) => { 13190 if (field.type === 'hidden' || field.type === 'submit' || field.type === 'button') { 13191 return; 13192 } 13193 13194 const key = getFieldKey(field); 13195 if (!key) return; 13196 13197 if (field.type === 'radio') { 13198 if (!field.checked) return; 13199 formData[key] = field.value; 13200 return; 13201 } 13202 13203 if (field.type === 'checkbox') { 13204 formData[key] = field.checked; 13205 return; 13206 } 13207 13208 const value = field.value; 13209 formData[key] = value; 13210 13211 if (isEmailField(field, key, value)) { 13212 customerEmail = value.trim(); 13213 } 13214 }); 13215 13216 const customDropdownButtons = form.querySelectorAll( 13217 'button[aria-controls*="custom#"]' 13218 ); 13219 customDropdownButtons.forEach((button) => { 13220 const ariaControl = button.getAttribute('aria-controls'); 13221 if (!ariaControl || !ariaControl.includes('custom#')) return; 13222 13223 const rawFieldName = ariaControl 13224 .split('custom#')[1] 13225 .split('-selector-dropdown')[0]; 13226 let value = ''; 13227 button.querySelectorAll('span').forEach((span) => { 13228 if (!span.querySelector('svg') && span.textContent.trim()) { 13229 value = span.textContent.trim(); 13230 } 13231 }); 13232 if (rawFieldName && value) { 13233 formData[rawFieldName] = value; 13234 } 13235 }); 13236 13237 const birthdayContainer = form.querySelector('[data-testid="date-birthday"]'); 13238 if (birthdayContainer) { 13239 const dayInput = birthdayContainer.querySelector('input[aria-labelledby="label-
13239DD"]'); 13240 const monthInput = birthdayContainer.querySelector('input[aria-labelledby="label-MM"]'); 13241 const yearInput = birthdayContainer.querySelector('input[aria-labelledby="label-YYYY"]'); 13242 13243 if (dayInput && monthInput && yearInput) { 13244 const day = dayInput.value.padStart(2, '0'); 13245 const month = monthInput.value.padStart(2, '0'); 13246 const year = yearInput.value; 13247 13248 if (day && month && year) { 13249 formData['birthday'] = `${day}-${month}-${year}`; 13250 } 13251 } 13252 } 13253 13254 const cleanedFormData = {}; 13255 Object.keys(formData).forEach((key) => { 13256 cleanedFormData[cleanKey(key)] = formData[key]; 13257 }); 13258 13259 console.log('Captured Form Data:', cleanedFormData); 13260 console.log('Customer Email:', customerEmail); 13261 13262 if (typeof exponea !== 'object' || !exponea.identify || !exponea.track) { 13263 console.warn('Exponea is not initialized or available.'); 13264 return; 13265 } 13266 13267 if (!customerEmail) { 13268 console.warn('No customer email found in form. Event not sent to specific user.'); 13269 return; 13270 } 13271 13272 const missingRequired = requiredFields.filter((key) => { 13273 return fieldExistsOnForm(form, key) && !hasFieldValue(cleanedFormData, key); 13274 }); 13275 13276 if (missingRequired.length) { 13277 console.warn('Required fields empty, Exponea event not sent:', missingRequired); 13278 return; 13279 } 13280 13281 try { 13282 exponea.identify({ email_id: customerEmail }); 13283 exponea.track('Shopify_Forms_Submission', cleanedFormData); 13284 eventSent = true; 13285 console.log('Exponea event sent:', { 13286 eventName: 'Shopify_Forms_Submission', 13287 eventData: cleanedFormData 13288 }); 13289 } catch (error) { 13290 console.error('Error sending Exponea event:', error); 13291 } 13292 }); 13293 13294 console.log('Event listener added to form submission.'); 13295 }); 13296 13297 observer.observe(document.body, { childList: true, subtree: true }); 13298 }); 13299})(); 13300</script>
13300 13301 13302 13303 13304 13305 13306 13307<style> 13308 #mello-skater-wrapper { 13309 position: fixed; 13310 bottom: 0px; 13311 left: 0; 13312 width: 100%; 13313 height: 240px; 13314 z-index: 999999; 13315 pointer-events: none; 13316 overflow: visible; 13317 } 13318 13319 @-webkit-keyframes mello-skate-desktop { 13320 from { 13321 -webkit-transform: translateX(0); 13322 transform: translateX(0); 13323 } 13324 to { 13325 -webkit-transform: translateX(calc(100vw + 350px)); 13326 transform: translateX(calc(100vw + 350px)); 13327 } 13328 } 13329 13330 @keyframes mello-skate-desktop { 13331 from { 13332 -webkit-transform: translateX(0); 13333 transform: translateX(0); 13334 } 13335 to { 13336 -webkit-transform: translateX(calc(100vw + 350px)); 13337 transform: translateX(calc(100vw + 350px)); 13338 } 13339 } 13340 13341 @-webkit-keyframes mello-skate-mobile { 13342 from { 13343 -webkit-transform: translateX(0); 13344 transform: translateX(0); 13345 } 13346 to { 13347 -webkit-transform: translateX(calc(-100vw - 100px)); 13348 transform: translateX(calc(-100vw - 100px)); 13349 } 13350 } 13351 13352 @keyframes mello-skate-mobile { 13353 from { 13354 -webkit-transform: translateX(0); 13355 transform: translateX(0); 13356 } 13357 to { 13358 -webkit-transform: translateX(calc(-100vw - 100px)); 13359 transform: translateX(calc(-100vw - 100px)); 13360 } 13361 } 13362 13363 #mello-skater { 13364 position: absolute; 13365 bottom: 0; 13366 height: 100%; 13367 width: auto; 13368 max-width: 300px; 13369 display: block; 13370 -webkit-backface-visibility: hidden; 13371 backface-visibility: hidden; 13372 -webkit-perspective: 1000; 13373 perspective: 1000; 13374 } 13375 13376 /* Desktop: start left, go right */ 13377 @media (min-width: 768px) { 13378 #mello-skater { 13379 left: -300px; 13380 } 13381 13382 #mello-skater.skating { 13383 -webkit-animation-name: mello-skate-desktop; 13384 animation-name: mello-skate-desktop; 13385 -webkit-animation-duration: 4s; 13386 animation-duration: 4s; 13387 -webkit-animation-timing-function: linear; 13388 animation-timing-function: linear; 13389 -webkit-animation-fill-mode: forwards; 13390 animation-fill-mode: forwards; 13391 } 13392 } 13393 13394 /* Mobile: start left, go right (same as desktop) */ 13395 @media (max-width: 767px) { 13396 #mello-skater { 13397 left: -280px; 13398 } 13399 13400 #mello-skater.skating { 13401 -webkit-animation-name: mello-skate-desktop; 13402 animation-name: mello-skate-desktop; 13403 -webkit-animation-duration: 4s; 13404 animation-duration: 4s; 13405 -webkit-animation-timing-function: linear; 13406 animation-timing-function: linear; 13407 -webkit-animation-fill-mode: forwards; 13408 animation-fill-mode: forwards; 13409 } 13410 } 13411</style> 13412 13413<div id="mello-skater-wrapper"> 13414 <img 13415 src="https://cdn.shopify.com/s/files/1/0822/7281/3382/files/Linda_Skate---Colour-Fill.gif?v=1768220534" 13416 alt="" 13417 id="mello-skater" 13418 aria-hidden="true" 13419 > 13420</div> 13421
13422<script> 13423(function() { 13424 var skateUrls = ["\/products\/mello-lime-mint","\/products\/mello-peach-passionfruit"]; 13425 var currentPath = window.location.pathname; 13426 var skater = document.getElementById('mello-skater'); 13427 13428 if (!skateUrls || skateUrls.length === 0 || !skater) return; 13429 13430 var shouldSkate = skateUrls.some(function(url) { 13431 return url.trim() && currentPath.indexOf(url.trim()) !== -1; 13432 }); 13433 13434 if (!shouldSkate) { 13435 skater.style.display = 'none'; 13436 return; 13437 } 13438 13439 // Ensure element is rendered first 13440 setTimeout(function() { 13441 var isMobile = window.innerWidth < 768; 13442 13443 if (isMobile) { 13444 // For mobile, use Web Animations API which Safari handles better 13445 // Start 20px visible on left, move all the way right off screen 13446 skater.animate([ 13447 { transform: 'translateX(20px)' }, 13448 { transform: 'translateX(calc(100vw + 300px))' } 13449 ], { 13450 duration: 4000, 13451 easing: 'linear', 13452 fill: 'forwards' 13453 }); 13454 } else { 13455 // Desktop can use CSS animation 13456 void skater.offsetHeight; 13457 requestAnimationFrame(function() { 13458 requestAnimationFrame(function() { 13459 skater.classList.add('skating'); 13460 }); 13461 }); 13462 } 13463 }, 2000); 13464})(); 13465</script>
13465 13466 13467 13468 13469
13470<script> 13471// Booking Confirmation Tracker - TEST 13472// This script auto-runs on /pages/booking-confirmed and fires a GA4 test event 13473// Uses GTM container GTM-NV34NR8 (Legacy container) 13474 13475(function() { 13476 'use strict'; 13477 13478 // Only run on booking-confirmed page 13479 if (!window.location.pathname.includes('booking-confirmed')) { 13480 return; 13481 } 13482 13483 console.log('=== BOOKING CONFIRMATION TRACKER ==='); 13484 console.log('Page:', window.location.href); 13485 13486 // Extract ALL URL parameters 13487 const urlParams = new URLSearchParams(window.location.search); 13488 13489 // Build booking data object from URL params - NO assumptions, NO faking 13490 const bookingData = { 13491 id: urlParams.get('id'), 13492 reference: urlParams.get('reference'), 13493 venue_id: urlParams.get('venue_id'), 13494 date: urlParams.get('date'), 13495 time: urlParams.get('time'), 13496 num_people: urlParams.get('num_people'), 13497 source: urlParams.get('source'), 13498 status: urlParams.get('status'), 13499 auto_confirmed: urlParams.get('auto_confirmed'), 13500 created_date: urlParams.get('created_date'), 13501 last_updated: urlParams.get('last_updated'), 13502 booking_type: urlParams.get('booking_type'), 13503 booking_value: urlParams.get('booking_value'), 13504 booking_guestlist: urlParams.get('booking_guestlist'), 13505 booking_private_hire: urlParams.get('booking_private_hire'), 13506 venue_title: urlParams.get('venue_title'), 13507 payments: urlParams.get('payments'), 13508 deposits: urlParams.get('deposits'), 13509 }; 13510 13511 // Log what we found (including nulls) 13512 /*console.log('ð¦ Booking Data from URL:'); 13513 Object.keys(bookingData).forEach(key => { 13514 console.log(` ${key}: ${bookingData[key] === null ? 'NULL' : bookingData[key]}`); 13515 });*/ 13516 13517 // Remove null values (GA4 doesn't need them) 13518 Object.keys(bookingData).forEach(key => { 13519 if (bookingData[key] === null || bookingData[key] === '') { 13520 delete bookingData[key]; 13521 } 13522 }); 13523 13524 /*console.log('ð¦ Cleaned Booking Data (nulls removed):'); 13525 console.log(bookingData);*/ 13526 13527 // If no booking data, don't send event 13528 if (Object.keys(bookingData).length === 0) { 13529 console.log('â ï¸ No booking data found in URL - skipping event'); 13530 return; 13531 } 13532 13533 // TESTING: Duplicate prevention DISABLED - will send on every page load 13534 const eventKey = 'booking_event_sent_' + (bookingData.id || bookingData.reference || 'unknown'); 13535 // if (sessionStorage.getItem(eventKey)) { 13536 // console.log('â ï¸ Event already sent for this booking - skipping to prevent duplicate'); 13537 // return; 13538 // } 13539 /*console.log('𧪠TESTING MODE: Duplicate prevention disabled - event will send on every refresh');*/ 13540 13541 // Push event to Shopify's default dataLayer 13542 console.log('â Pushing booking_completed_nm_gtag event to Shopify dataLayer'); 13543 13544 try { 13545 // Initialize Shopify's dataLayer if it doesn't exist 13546 window.dataLayer = window.dataLayer || []; 13547 13548 // Push event to Shopify's default dataLayer 13549 window.dataLayer.push({ 13550 event: 'booking_completed_nm', 13551 ...bookingData 13552 }); 13553 13554 console.log('â Event pushed to Shopify dataLayer'); 13555 /*console.log('ð DEBUG: dataLayer contents:', window.dataLayer);*/ 13556 13557 // Mark event as sent in sessionStorage immediately (prevents double-send on quick refresh) 13558 sessionStorage.setItem(eventKey, 'true'); 13559 13560 // Wait 3 seconds to ensure event is fully sent before clearing URL 13561 setTimeout(function() { 13562 if (window.history && window.history.replaceState) { 13563 window.history.replaceState({}, document.title, window.location.pathname); 13564 console.log('â URL params cleared after 3 seconds - event should be sent'); 13565 } 13566 }, 3000); 13567 } catch (error) { 13568 console.error('â Error sending event:', error); 13569 } 13570 13571 console.log('=== END BOOKING TRACKER ==='); 13572})(); 13573 13574 13575</script>
vendor: 1 bytes, line 13575
13575
13576<script> 13577// === GA / GTM DIAGNOSTIC (delayed) === 13578function runGADiagnostic() { 13579 console.group('=== GA / GTM DIAGNOSTIC ==='); 13580 13581 // gtag 13582 if (typeof window.gtag === 'function') { 13583 console.log('â gtag() is present'); 13584 } else { 13585 console.warn('â gtag() is NOT present'); 13586 } 13587 13588 // GTM script tags 13589 const gtmScripts = Array.from(document.querySelectorAll('script[src]')) 13590 .filter(s => s.src.includes('googletagmanager.com/gtm.js')); 13591 if (gtmScripts.length) { 13592 gtmScripts.forEach(s => { 13593 const match = s.src.match(/[?&]id=([^&]+)/); 13594 console.log('ð·ï¸ GTM Container:', match ? match[1] : s.src); 13595 }); 13596 } else { 13597 console.warn('â ï¸ No GTM script tag found (may be injected via app extension)'); 13598 } 13599 13600 // gtag.js script tags 13601 const gtagScripts = Array.from(document.querySelectorAll('script[src]')) 13602 .filter(s => s.src.includes('googletagmanager.com/gtag/js')); 13603 if (gtagScripts.length) { 13604 gtagScripts.forEach(s => { 13605 const match = s.src.match(/[?&]id=([^&]+)/); 13606 /*console.log('ð gtag.js ID:', match ? match[1] : s.src);*/ 13607 }); 13608 } else { 13609 console.warn('â ï¸ No gtag.js script tag found'); 13610 } 13611 13612 // dataLayer 13613 /*console.log('ð dataLayer:', window.dataLayer || 'NOT PRESENT');*/ 13614 13615 console.groupEnd(); 13616} 13617 13618// Run after full page load + extra 3s buffer for late-injected scripts 13619window.addEventListener('load', function() { 13620 setTimeout(runGADiagnostic, 3000); 13621}); 13622</script>
13622 13623 13624 <style> 13625.docapp-promo-widget-variables .docapp-promo-popup__header__title{ 13626 background-color:#000 !important; 13627} 13628 .docapp-promo-popup__header__title{ 13629 font-family: 'Inter' !important;} 13630 .docapp-promo-widget-variables .docapp-promo-popup__continue { 13631 font-size:1rem; background:#000; border-radius:100px !important; padding:0.75rem 1.75rem; 13632 13633 13634 line-height: 1.3; 13635 cursor: pointer; 13636 display: inline-block; 13637 text-align: center; 13638 letter-spacing: normal; 13639 font-weight: 600; } 13640 .docapp-promo-widget-variables .docapp-promo-close{ 13641 font-size:20px; 13642 right:15px; top:15px;} 13643 .docapp-promo-widget-variables .docapp-promo-offers { 13644 row-gap:20px; text-align:center;} 13645 13646 13647</style> 13648 <style> .read-time,.time.read-time {display: none !important;} uwp-desktop-menu {display: flex; align-items: center;} .uk-region-selector-app-embed {min-width: 200px;} .mup-discount-input + p + p,.mup-discount-input + p {display: none;} @media (max-width: 768px) {.uk-region-selector-app-embed {min-width: 60px; margin-left: 10px; }} </style> 13649<div id="shopify-block-Ad3lHck9Ccldkb2R1R__12526071353035850722" class="shopify-block shopify-app-block"> 13650
13650<script defer src="https://backinstock.useamp.com/widget/95461_1783064754.js?category=bis&v=6"></script>
13650 13651 13652
13653<script id="back-in-stock-helper-embedded"> 13654 var _BISConfig = _BISConfig || {}; 13655 13656 13657 13658 13659</script>
13659 13660
13661<script id="preorders-helper-embedded"> 13662 13663</script>
13663 13664
13665<script id="low-stock-helper-embedded"> 13666 13667</script>
13667 13668 13669 13670 13671
13672<script defer type="module" src="https://cdn.shopify.com/extensions/01a0ae82-28b0-715d-bb47-827eda8f44e3/back-in-stock-69/assets/wishlist.js"></script>
13672 13673 13674
13675<script defer type="module" src="https://cdn.shopify.com/extensions/01a0ae82-28b0-715d-bb47-827eda8f44e3/back-in-stock-69/assets/preorder-product-page-updater.js"></script>
13675 13676 13677 13678 13679 13680</div><div id="shopify-block-AT29lU3VIRlQwRkpEV__18412211718521571910" class="shopify-block shopify-app-block"> 13681 13682 13683 13684 13685<style> 13686 @font-face { 13687 font-family: Inter; 13688 font-weight: 400; 13689 font-style: normal; 13690 src: url("//brewdog.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"), 13691 url("//brewdog.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff"); 13692} 13693 13694 body.overflow-hidden { 13695 overflow: hidden; 13696 } 13697 body.gn-overflow-hidden { 13698 overflow: hidden; 13699 } 13700</style> 13701 13702 13703<template id="giftnote-core-template" data-gn-app-id="6070057"> 13704 <!-- Main modal --> 13705 <div 13706 id="giftnote-modal" 13707 aria-hidden="true" 13708 aria-labelledby="giftnote-modal-title" 13709 aria-describedby="giftnote-modal-description" 13710 data-disable-focus="false" 13711 data-locale="en" 13712 data-order-event="" 13713 data-voucher-event="gn_reload" 13714 data-force-open="false" 13715 class=" 13716 13717 fixed top-0 left-0 right-0 z-2147483647 hidden w-full p-4 overflow-y-auto overflow-x-hidden 13718 md:inset-0 h-[calc(100%-1rem)] max-h-full justify-center items-center 13719 en 13720 " 13721 > 13722 <div 13723 id="backdrop" 13724 class=" 13725 transition bg-gray-900/50 13726 fixed top-0 left-0 right-0 13727 z-0 w-screen h-screen 13728 duration-300 opacity-0 13729 " 13730 ></div> 13731 <div 13732 id="content" 13733 tabindex="-1" 13734 class=" 13735 relative max-h-full max-w-3xl overflow-x-hidden overflow-y-auto sm:rounded-lg z-10 13736 transition duration-300 opacity-0 scale-95 h-full sm:h-auto 13737 " 13738 > 13739 <div class="sm:rounded-lg pt-12 pb-4 px-6 md:px-12 sm:shadow-lg sm:pt-10 sm:pb-5 sm:border sm:border-gray-300 sm:dark:border-gray-800 "> 13740 <!-- BEGIN app snippet: close-button --><button 13741 type="button" 13742 id="close-button" 13743 class="absolute right-0 top-0 p-3 sm:p-4 z-10" 13744 data-modal-hide="giftnote-modal" 13745 aria-label="Close" 13746> 13747 <svg 13748 class="w-4 h-4 text-black dark:text-white" 13749 aria-hidden="true" 13750 xmlns="http://www.w3.org/2000/svg" 13751 fill="none" 13752 viewBox="0 0 14 14" 13753 > 13754 <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6"/> 13755 </svg> 13756 <span class="sr-only">Close</span> 13757</button> 13758<!-- END app snippet --> 13759 <!-- BEGIN app snippet: remove-button --><button 13760 type="button" 13761 id="remove-button" 13762 class=" 13763 hidden absolute left-0 top-0 group text-red-500 text-sm hover:bg-red-400 hover:text-gray-900 leading-none rounded-br-md rounded-tl-md 13764 transition-colors p-3 sm:p-4 13765 " 13766> 13767 <span class="group-[.loading]:hidden">Remove</span> 13768 <span class="hidden group-[.loading]:flex items-center justify-center"> 13769 <svg 13770 class="animate-spin h-3 w-3 text-gray-900" 13771 xmlns="http://www.w3.org/2000/svg" 13772 fill="none" 13773 viewBox="0 0 24 24" 13774 > 13775 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 13776 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 13777 </svg> 13778 </span> 13779</button> 13780<!-- END app snippet --> 13781 13782 <!-- Modal content --> 13783 <!-- BEGIN app snippet: logo --> 13784<!-- END app snippet --> 13785 <div class="flex flex-col items-center justify-center"> 13786 <p id="giftnote-modal-title" class="text-center text-2xl font-bold mb-4">Gifting has never been easier</p> 13787 <div id="giftnote-modal-description" class="text-center mb-4 text-gray-900 dark:text-white"><p>Perfect if you're short on time or are unable to deliver your gift yourself. Enter your message and select when to send it.</p></div> 13788 <!-- BEGIN app snippet: edit-form --> 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838<form 13839 id="form" 13840 data-product-vendor="" 13841 data-product-variant="" 13842 data-order-default-method="instant" 13843 data-giftcard-default-method="instant" 13844 data-sms-enabled="true" 13845 data-gn-config="standard" 13846 class="w-full h-full pt-8 border-t border-neutral-300 dark:border-neutral-700 " 13847 autocomplete="off" 13848> 13849 <div class="hidden! hidden force-hidden bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer 13850block text-base font-medium 13851bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer 13852border border-neutral-300 divide-neutral-200 text-neutral-800 dark:border-neutral-700 dark:divide-neutral-700 dark:text-neutral-100 flex font-medium flex-wrap sm:flex-nowrap sm:divide-x sm:divide-y-0 divide-x-0 divide-y text-center rounded-md overflow-hidden 13853bg-white hover:bg-neutral-50 dark:bg-neutral-800 dark:hover:bg-neutral-700 cursor-pointer inline-block w-full py-2 px-3 hover:text-current 13854"></div> 13855 <div class="grid gap-x-4 gap-y-4 mb-6 grid-cols-1 sm:grid-cols-2"> 13856 <div class="col-span-2 sm:col-span-1"> 13857 <div id="to-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer"> 13858 <label for="to" class="block text-base font-medium ">To</label> 13859 <input 13860 type="text" 13861 name="to" 13862 id="to" 13863 required 13864 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer " 13865 placeholder="Who is it for?" 13866 aria-describedby="to-required to-invalid" 13867 > 13868 </div> 13869 <p id="to-required" role="alert" class="mt-2 hidden peer-[.required]:block text-red-500 text-sm">To is required</p> 13870 <p id="to-invalid" role="alert" class="mt-2 hidden peer-[.invali
13870d]:block text-red-500 text-sm">Invalid</p> 13871 <p id="to-error" role="alert" class="mt-2 hidden peer-[.error]:block text-red-500 text-sm"> 13872 13873 </p> 13874 </div> 13875 <div class="col-span-2 sm:col-span-1"> 13876 <div id="from-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer"> 13877 <label for="from" class="block text-base font-medium ">From</label> 13878 <input 13879 type="text" 13880 name="from" 13881 id="from" 13882 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer " 13883 placeholder="Who is this from?" 13884 aria-describedby="from-required from-invalid" 13885 > 13886 </div> 13887 <p id="from-required" role="alert" class="mt-2 hidden peer-[.required]:block text-red-500 text-sm">From is required</p> 13888 <p id="from-invalid" role="alert" class="mt-2 hidden peer-[.invalid]:block text-red-500 text-sm">Invalid</p> 13889 <p id="from-error" role="alert" class="mt-2 hidden peer-[.error]:block text-red-500 text-sm"> 13890 13891 </p> 13892 </div> 13893 13894 <div class="col-span-2"> 13895 <div id="message-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer relative"> 13896 <label for="message" class="block text-base font-medium ">Message</label> 13897 <textarea 13898 type="text" 13899 name="message" 13900 id="message" 13901 rows="4" 13902 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer min-h-[100px]" 13903 placeholder="Write your message..." 13904 aria-describedby="message-required message-invalid" 13905 ></textarea> 13906 <div class="text-gray-400 absolute top-2 right-2 text-xs"><span id="message-count">0</span>/210</div> 13907 </div> 13908 <p id="message-required" role="alert" class="mt-2 hidden peer-[.required]:block text-red-500 text-sm">Message is required</p> 13909 <p id="message-invalid" role="alert" class="mt-2 hidden peer-[.invalid]:block text-red-500 text-sm">Invalid</p> 13910 <p id="message-error" role="alert" class="mt-2 hidden peer-[.error]:block text-red-500 text-sm"> 13911 13912 </p> 13913 </div> 13914 <div class="col-span-2"> 13915 <div id="email-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer"> 13916 <label for="email" class="block text-base font-medium ">Recipient's email</label> 13917 <input 13918 type="email" 13919 name="email" 13920 id="email" 13921 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer " 13922 placeholder="[email protected]" 13923 aria-describedby="email-invalid" 13924 > 13925 </div> 13926 <p id="email-invalid" role="alert" class="mt-2 hidden peer-[.invalid]:block text-red-500 text-sm">Invalid</p> 13927 <p id="email-error" role="alert" class="mt-2 hidden peer-[.error]:block text-red-500 text-sm"> 13928 13929 </p> 13930 </div> 13931 <div class="col-span-2 sm:col-span-1 force-hidden"> 13932 <div id="phone-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer"> 13933 <label for="phone" class="block text-base font-medium ">Recipient's phone number</label> 13934 <input 13935 type="tel" 13936 name="phone" 13937 id="phone" 13938 13939 readonly="true" 13940 13941 data-country="GB" 13942 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer " 13943 aria-describedby="phone-invalid phone-mobile" 13944 > 13945 </div> 13946 <p id="phone-invalid" role="alert" class="mt-2 hidden peer-[.invali
13946d]:block text-red-500 text-sm">Invalid</p> 13947 <p id="phone-mobile" role="alert" class="mt-2 hidden peer-[.mobile]:block text-red-500 text-sm">Enter a mobile phone number</p> 13948 </div> 13949 <p id="medium-error" role="alert" class="col-span-2 hidden text-red-500 text-sm -mt-3"> 13950 13951Email is required 13952 </p> 13953 <div class="col-span-2"> 13954 <h3 class="block text-base font-medium text-neutral-900 dark:text-neutral-200 my-2">When should we send your message?</h3> 13955 <div id="method-field" class="col-span-2 font-medium"> 13956 <ul 13957 id="method" 13958 13959 role="tablist" 13960 class="border border-neutral-300 divide-neutral-200 text-neutral-800 dark:border-neutral-700 dark:divide-neutral-700 dark:text-neutral-100 flex font-medium flex-wrap sm:flex-nowrap sm:divide-x sm:divide-y-0 divide-x-0 divide-y text-center rounded-md overflow-hidden " 13961 > 13962 <li 13963 id="tracked-tab-parent" 13964 class="w-full " 13965 role="presentation" 13966 > 13967 <input 13968 type="radio" 13969 id="tracked" 13970 name="method" 13971 value="tracked" 13972 class="hidden peer" 13973 required 13974 style="display: none;" 13975 > 13976 <button 13977 id="tracked-tab" 13978 class="bg-white hover:bg-neutral-50 dark:bg-neutral-800 dark:hover:bg-neutral-700 cursor-pointer inline-block w-full py-2 px-3 hover:text-current " 13979 type="button" 13980 for="tracked" 13981 role="tab" 13982 data-tabs-target="#tracked-panel" 13983 aria-controls="tracked-panel" 13984 aria-selected="false" 13985 aria-describedby="tracked-panel" 13986 >On Delivery</button> 13987 </li> 13988 13989 <li 13990 id="fulfillment-tab-parent" 13991 class="w-full force-hidden" 13992 role="presentation" 13993 > 13994 <input 13995 type="radio" 13996 id="fulfillment" 13997 name="method" 13998 value="fulfillment" 13999 class="hidden peer" 14000 required 14001 style="display: none;" 14002 > 14003 <button 14004 id="fulfillment-tab" 14005 class="bg-white hover:bg-neutral-50 dark:bg-neutral-800 dark:hover:bg-neutral-700 cursor-pointer inline-block w-full py-2 px-3 hover:text-current " 14006 type="button" 14007 for="fulfillment" 14008 role="tab" 14009 data-tabs-target="#fulfillment-panel" 14010 aria-controls="fulfillment-panel" 14011 aria-selected="false" 14012 aria-describedby="fulfillment-panel" 14013 >On Fulfillment</button> 14014 </li> 14015 14016 <li 14017 id="instant-tab-parent" 14018 class="w-full " 14019 role="presentation" 14020 > 14021 <input 14022 type="radio" 14023 id="instant" 14024 name="method" 14025 value="instant" 14026 class="hidden peer" 14027 required 14028 style="display: none;" 14029 > 14030 <button 14031 id="instant-tab" 14032 class="bg-white hover:bg-neutral-50 dark:bg-neutral-800 dark:hover:bg-neutral-700 cursor-pointer inline-block w-full py-2 px-3 hover:text-current " 14033 type="button" 14034 for="instant" 14035 role="tab" 14036 data-tabs-target="#instant-panel" 14037 aria-controls="instant-panel" 14038 aria-selected="false" 14039 aria-describedby="instant-panel" 14040 >Send Now</button> 14041 </li> 14042 <li 14043 id="scheduled-tab-parent" 14044 class="w-full " 14045 role="presentation" 14046 > 14047 <input 14048 type="radio" 14049 id="scheduled" 14050 name="method" 14051 value="scheduled" 14052 class="hidden peer" 14053 required 14054 style="display: none;" 14055 > 14056 <button 14057 id="scheduled-tab" 14058 class="bg-white hover:bg-neutral-50 dark:bg-neutral-800 dark:hover:bg-neutral-700 cursor-pointer inline-block w-full py-2 px-3 hover:text-current " 14059 type="button" 14060 for="scheduled" 14061 role="tab" 14062 data-tabs-target="#scheduled-panel" 14063 aria-controls="scheduled-panel" 14064 aria-selected="false" 14065 aria-describedby="scheduled-panel" 14066 >Send Later</button> 14067 </li> 14068 </ul> 14069 </div> 14070 </div> 14071 <p id="method-error" role="alert" class="col-span-2 hidden text-red-500 text-sm -mt-3">Select a method for your message</p> 14072 <div 14073 class=" 14074 bg-white text-neutral-500 border-neutral-300 dark:bg-neutral-800 dark:text-neutral-50 dark:border-neutral-700 14075 col-span-2 p-4 rounded-md shadow-sm font-medium border 14076 " 14077 id="methods" 14078 > 14079 <div 14080 class="hidden" 14081 id="instant-panel" 14082 role="tabpanel" 14083 aria-labelledby="instant-tab" 14084 > 14085 <p class="text-center">Your message will be sent when you complete your order</p> 14086 </div> 14087 <div 14088 class="hidden" 14089 id="scheduled-panel" 14090 role="tabpanel" 14091 aria-labelledby="scheduled-tab" 14092 > 14093 <p class="text-center mb-2">Your message will be sent at the selected date and time</p> 14094 <div class="grid gap-x-2 gap-y-2 grid-cols-1 sm:grid-cols-2"> 14095 <div class="col-span-2 sm:col-span-1"> 14096 <div id="date-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer "> 14097 <label for="date" class="block text-base font-medium ">Date</label> 14098 <input 14099 id="date" 14100 type="date" 14101 name="trip-start" 14102 14103 min="2026-09-24" 14104 max="2027-03-23" 14105 value="2026-09-24" 14106 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer " 14107 aria-describedby="date-required date-invalid" 14108 > 14109 </div> 14110 <p id="date-required" role="alert" class="mt-2 hidden peer-[.required]:block text-red-500 text-sm">Date is required</p> 14111 <p id="date-invalid" role="alert" class="mt-2 hidden peer-[.invali
14111d]:block text-red-500 text-sm">Select a date in the future</p> 14112 <p id="date-error" role="alert" class="mt-2 hidden peer-[.error]:block text-red-500 text-sm"> 14113 14114 </p> 14115 </div> 14116 <div class="col-span-2 sm:col-span-1"> 14117 <div id="time-field" class="bg-white text-neutral-900 dark:bg-neutral-800 dark:text-neutral-200 rounded-md px-3 pb-1.5 pt-2.5 shadow-sm ring-1 ring-neutral-300 dark:ring-neutral-700 ring-inset focus-within:ring-2 focus-within:ring-blue-600 peer"> 14118 <label for="time" class="block text-base font-medium ">Time</label> 14119 <select 14120 type="time" 14121 id="time" 14122 class="bg-white text-neutral-900 placeholder:text-neutral-400 dark:bg-neutral-800 dark:text-white dark:placeholder:text-neutral-400 text-base block w-full border-0 p-0 focus:ring-0 peer " 14123 required 14124 aria-describedby="time-required time-invalid" 14125 > 14126 <option value="0000">12:00 AM</option> 14127 <option value="0030">12:30 AM</option> 14128 <option value="0100">1:00 AM</option> 14129 <option value="0130">1:30 AM</option> 14130 <option value="0200">2:00 AM</option> 14131 <option value="0230">2:30 AM</option> 14132 <option value="0300">3:00 AM</option> 14133 <option value="0330">3:30 AM</option> 14134 <option value="0400">4:00 AM</option> 14135 <option value="0430">4:30 AM</option> 14136 <option value="0500">5:00 AM</option> 14137 <option value="0530">5:30 AM</option> 14138 <option value="0600">6:00 AM</option> 14139 <option value="0630">6:30 AM</option> 14140 <option value="0700">7:00 AM</option> 14141 <option value="0730">7:30 AM</option> 14142 <option value="0800">8:00 AM</option> 14143 <option value="0830">8:30 AM</option> 14144 <option value="0900">9:00 AM</option> 14145 <option value="0930">9:30 AM</option> 14146 <option value="1000">10:00 AM</option> 14147 <option value="1030">10:30 AM</option> 14148 <option value="1100">11:00 AM</option> 14149 <option value="1130">11:30 AM</option> 14150 <option value="1200">12:00 PM</option> 14151 <option value="1230">12:30 PM</option> 14152 <option value="1300">1:00 PM</option> 14153 <option value="1330">1:30 PM</option> 14154 <option value="1400">2:00 PM</option> 14155 <option value="1430">2:30 PM</option> 14156 <option value="1500">3:00 PM</option> 14157 <option value="1530">3:30 PM</option> 14158 <option value="1600">4:00 PM</option> 14159 <option value="1630">4:30 PM</option> 14160 <option value="1700">5:00 PM</option> 14161 <option value="1730">5:30 PM</option> 14162 <option value="1800">6:00 PM</option> 14163 <option value="1830">6:30 PM</option> 14164 <option value="1900">7:00 PM</option> 14165 <option value="1930">7:30 PM</option> 14166 <option value="2000">8:00 PM</option> 14167 <option value="2030">8:30 PM</option> 14168 <option value="2100">9:00 PM</option> 14169 <option value="2130">9:30 PM</option> 14170 <option value="2200">10:00 PM</option> 14171 <option value="2230">10:30 PM</option> 14172 <option value="2300">11:00 PM</option> 14173 <option value="2330">11:30 PM</option> 14174 </select> 14175 </div> 14176 <p id="time-required" role="alert" class="mt-2 hidden peer-[.required]:block text-red-500 text-sm">Time is required</p> 14177 <p id="time-invalid" role="alert" class="mt-2 hidden peer-[.invalid]:block text-red-500 text-sm">Select a time in the future</p> 14178 <p id="time-error" role="alert" class="mt-2 hidden peer-[.error]:block text-red-500 text-sm"> 14179 14180 </p> 14181 </div> 14182 </div> 14183 </div> 14184 <div id="tracked-panel" class="hidden" role="tabpanel" aria-labelledby="tracked-tab"> 14185 <p class="text-center">Your message will be sent when your order is delivered to your shipping address</p> 14186 </div> 14187 <div id="fulfillment-panel" class="hidden" role="tabpanel" aria-labelledby="fulfillment-tab"> 14188 <p class="text-center">Your message will be sent as soon as your gift is fulfilled (shipped)</p> 14189 </div> 14190 </div> 14191 </div> 14192 <button 14193 id="save-button" 14194 type="button"
14195 class="group bg-primary button-color py-3 px-4 rounded-md w-full shadow-sm transition-opacity hover:opacity-90 leading-6" 14196 > 14197 <span id="order-message" class="group-[.loading]:hidden">Save message</span> 14198 <span id="voucher-message" class="group-[.loading]:hidden">Add to cart</span> 14199 <span class="hidden group-[.loading]:flex items-center justify-center"> 14200 <svg 14201 class="animate-spin h-6 w-6 button-color" 14202 xmlns="http://www.w3.org/2000/svg" 14203 fill="none" 14204 viewBox="0 0 24 24" 14205 > 14206 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 14207 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 14208 </svg> 14209 </span> 14210 </button> 14211</form> 14212<!-- END app snippet --> 14213 </div> 14214 <!-- BEGIN app snippet: powered-by --><a 14215 id="powered" 14216 tabindex="-1" 14217 href="https://giftnote.com" 14218 target="_blank" 14219 class="text-neutral-500 dark:text-neutral-300 text-[10px] items-center justify-center gap-1 mt-3" 14220> 14221 <span>Powered by</span> 14222 <svg 14223 class="h-3 fill-[#071B2F] dark:fill-[#e3e5e7]" 14224 viewBox="0 0 168 34" 14225 fill="none" 14226 xmlns="http://www.w3.org/2000/svg" 14227 > 14228 <g clip-path="url(#clip0_298_13245)"> 14229 <path d="M66.3709 9.38923V25.458C66.3709 29.3579 63.3261 32.4107 57.9655 32.4107C53.5127 32.4107 50.5679 30.7022 50.2034 27.0964H54.4919C54.7563 28.4407 55.9213 28.9938 57.9369 28.9938C60.4814 28.9938 61.7536 27.4885 61.7536 25.619V23.1265C60.8531 24.6038 59.2806 25.584 56.8362 25.584C52.4477 25.584 49.603 22.1742 49.603 17.4551C49.603 12.2389 52.9552 9.22119 57.0006 9.22119C59.4164 9.22119 60.9531 10.1384 61.7894 11.4547L61.9252 9.38923H66.3709ZM61.7822 17.8822V16.93C61.7955 16.4238 61.7064 15.92 61.52 15.4477C61.3336 14.9754 61.0535 14.5439 60.6961 14.1781C60.3386 13.8123 59.9108 13.5194 59.4372 13.3164C58.9637 13.1134 58.4538 13.0042 57.9369 12.9951C55.7927 12.9951 54.2846 14.7665 54.2846 17.4551C54.2846 20.1438 55.7927 21.8172 57.9369 21.8172C58.4543 21.8099 58.9651 21.702 59.4396 21.4996C59.914 21.2972 60.3426 21.0044 60.7004 20.6382C61.0583 20.2721 61.3382 19.8398 61.5239 19.3667C61.7096 18.8935 61.7974 18.3889 61.7822 17.8822V17.8822Z" 14230 /> 14231 <path d="M71.9242 6.99466C71.5416 7.00591 71.1606 6.94179 70.8038 6.80608C70.447 6.67038 70.1216 6.46586 69.847 6.20467C69.5723 5.94348 69.354 5.63092 69.205 5.28553C69.056 4.94015 68.9793 4.56897 68.9795 4.194C69.0169 3.44895 69.3453 2.74651 69.8968 2.23215C70.4483 1.71779 71.1806 1.43091 71.9421 1.43091C72.7036 1.43091 73.4359 1.71779 73.9874 2.23215C74.5389 2.74651 74.8673 3.44895 74.9047 4.194C74.905 4.57203 74.8273 4.9462 74.6761 5.29399C74.5248 5.64178 74.3033 5.95599 74.0248 6.21767C73.7463 6.47935 73.4167 6.68309 73.0557 6.81663C72.6946 6.95016 72.3098 7.01073 71.9242 6.99466ZM69.6156 9.38922H74.2328V25.458H69.6156V9.38922Z" 14232 /> 14233 <path d="M83.3033 8.26189V9.41016H88.0635V12.981H83.3033V25.4789H78.7218V12.96H76.3774V9.38916H78.7218V8.07284C78.7218 4.36897 81.3949 1.77136 85.6191 1.77136C86.5298 1.78062 87.4372 1.87913 88.3279 2.06543L88.1635 5.83932C87.5703 5.63972 86.9467 5.54029 86.3195 5.54525C84.2753 5.51724 83.3033 6.5955 83.3033 8.26189Z" 14234 /> 14235 <path d="M101.951 25.1919C101.031 25.4957 100.063 25.6402 99.092 25.619C94.7392 25.619 92.3306 23.1264 92.3306 19.4855V12.96H89.9219V9.38917H92.6022V4.8241H96.8906V9.38917H101.772V12.96H96.8906V19.2615C96.8906 20.8369 97.6911 21.8521 99.7996 21.8521C100.474 21.8492 101.142 21.7283 101.772 21.495L101.951 25.1919Z" 14236 /> 14237 <path d="M119.534 15.3896V25.458H114.938V16.4049C114.938 14.3674 113.973 13.1281 112.029 13.1281C111.58 13.107 111.131 13.1797 110.712 13.3413C110.294 13.5029 109.916 13.7498 109.602 14.0656C109.288 14.3814 109.047 14.7589 108.894 15.1731C108.74 15.5872 108.678 16.0286 108.712 16.4679V25.458H104.131V9.38923H108.548L108.684 11.7488C109.649 10.2364 111.293 9.22119 113.801 9.22119C117.525 9.22119 119.534 11.7628 119.534 15.3896Z" 14238 /> 14239 <path d="M138.267 17.3641C138.267 22.1812 134.922 25.626 129.833 25.626C124.744 25.626 121.427 22.3492 121.427 17.5251C121.427 12.701 124.815 9.22815 129.833 9.22815C134.85 9.22815 138.267 12.5329 138.267 17.3641ZM126.052 17.4621C126.052 20.1157 127.56 21.9221 129.833 21.9221C132.105 21.9221 133.614 20.1157 133.614 17.4621C133.614 14.8085 132.184 12.932
14239129.833 12.932C127.481 12.932 126.052 14.7314 126.052 17.4551V17.4621Z" 14240 /> 14241 <path d="M150.925 25.1919C150.004 25.4942 149.037 25.6387 148.066 25.619C143.72 25.619 141.304 23.1264 141.304 19.4855V12.96H138.896V9.38917H141.576V4.8241H145.864V9.38917H150.753V12.96H145.864V19.2615C145.864 20.8369 146.665 21.8521 148.773 21.8521C149.45 21.8487 150.12 21.7278 150.753 21.495L150.925 25.1919Z" 14242 /> 14243 <path d="M168 18.4074H156.45C156.786 20.8649 158.258 22.1112 160.402 22.1112C162.547 22.1112 163.419 20.998 163.683 20.1438H167.936C167.4 22.9444 165.12 25.619 160.166 25.619C155.213 25.619 152.033 22.2653 152.033 17.4551C152.033 12.645 155.485 9.22119 160.238 9.22119C165.241 9.22119 168 12.631 168 17.5532V18.4074ZM156.521 15.8167H163.719C163.419 13.5202 162.146 12.568 160.267 12.568C158.387 12.568 156.957 13.5832 156.521 15.8167V15.8167Z" 14244 /> 14245 <path d="M40.8691 11.8749C40.8706 9.56445 40.178 7.30469 38.8775 5.37727C37.577 3.44984 35.7262 1.93999 33.5558 1.03592C31.3853 0.131847 28.9913 -0.126452 26.672 0.293201C24.3527 0.712854 22.2108 1.7919 20.5133 3.39586V3.39586C19.3514 4.49311 18.4272 5.80856 17.7959 7.26359C17.1647 8.71862 16.8394 10.2834 16.8394 11.8643C16.8394 13.4453 17.1647 15.0101 17.7959 16.4651C18.4272 17.9201 19.3514 19.2356 20.5133 20.3328L28.7328 28.5668L36.595 20.865C37.9334 19.7623 39.0095 18.3863 39.7478 16.8333C40.4861 15.2804 40.8688 13.588 40.8691 11.8749V11.8749Z" 14246 fill="#84E9FD"/> 14247 <path d="M32.8715 15.8383L20.1562 3.36136C17.9393 1.18965 14.9325 -0.0303955 11.7973 -0.0303955C8.66215 -0.0303955 5.65536 1.18965 3.43844 3.36136C1.22152 5.53306 -0.0239258 8.47854 -0.0239258 11.5498C-0.0239258 14.621 1.22152 17.5665 3.43844 19.7382L16.1537 32.1941C16.7365 32.7653 17.4284 33.2184 18.19 33.5276C18.9516 33.8367 19.7679 33.9958 20.5922 33.9958C21.4166 33.9958 22.2329 33.8367 22.9945 33.5276C23.7561 33.2184 24.448 32.7653 25.0308 32.1941L32.8501 24.5413C34.0309 23.39 34.6966 21.8263 34.7006 20.1942C34.7046 18.5621 34.0467 16.9952 32.8715 15.8383ZM8.88477 11.2032C8.41656 11.2046 7.95846 11.0698 7.56847 10.816C7.17848 10.5622 6.87413 10.2008 6.69398 9.7774C6.51382 9.35405 6.46594 8.88785 6.55642 8.43783C6.64689 7.98781 6.87166 7.57422 7.20223 7.2494C7.53281 6.92459 7.95434 6.70316 8.41345 6.61317C8.87256 6.52318 9.34861 6.56866 9.78132 6.74386C10.214 6.91906 10.5839 7.21611 10.8442 7.59738C11.1045 7.97865 11.2434 8.42699 11.2434 8.88566C11.2434 9.4991 10.9951 10.0875 10.553 10.5219C10.1109 10.9564 9.51098 11.2013 8.88477 11.2032Z" 14248 fill="#B8AFFC"/> 14249 <path d="M20.3775 3.59888C19.2494 4.70226 18.3573 6.01498 17.7535 7.46022C17.1497 8.90546 16.8462 10.4542 16.8609 12.0157C16.8755 13.5772 17.208 15.1202 17.8388 16.5543C18.4696 17.9885 19.3861 19.2849 20.5347 20.3678L28.7685 28.6018L33.057 24.4008C33.6154 23.8551 34.0585 23.2069 34.3607 22.4932C34.663 21.7795 34.8186 21.0145 34.8186 20.2418C34.8186 19.4691 34.663 18.7041 34.3607 17.9904C34.0585 17.2767 33.6154 16.6285 33.057 16.0828L20.3775 3.59888Z" 14250 fill="#696DF2"/> 14251 </g> 14252 <defs> 14253 <clipPath id="clip0_298_13245"> 14254 <rect width="168" height="34" fill="white"/> 14255 </clipPath> 14256 </defs> 14257 </svg> 14258</a> 14259<!-- END app snippet --> 14260 </div> 14261 </div> 14262 </div> 14263 <div id="alerts" class="fixed top-5 right-5 z-9998"> 14264 <div 14265 id="alert-save" 14266 role="alert" 14267 class="hidden group" 14268 > 14269 <div 14270 class="p-4 mb-4 text-sm text-green-800 rounded-lg bg-green-50 shadow-md border-gray-100" 14271 > 14272 <span class="font-medium">Message saved</span> 14273 </div> 14274 </div> 14275 <div 14276 id="alert-add" 14277 role="alert" 14278 class="hidden group" 14279 > 14280 <div 14281 class="p-4 mb-4 text-sm text-green-800 rounded-lg bg-green-50 shadow-md border-gray-100" 14282 > 14283 <span class="font-medium">Gift card added to cart!</span> 14284 </div> 14285 </div> 14286 <div 14287 id="alert-remove" 14288 role="alert" 14289 class="hidden group" 14290 > 14291 <div 14292 class="p-4 mb-4 text-sm text-red-800 rounded-lg bg-red-50 shadow-md border-gray-100" 14293 > 14294 <span class="font-medium">Message removed</span> 14295 </div> 14296 </div> 14297</div > 14298<!-- BEGIN app snippet: merchant-styles --> 14299 14300<style> 14301 @font-face { 14302 font-family: Inter; 14303 font-weight: 400; 14304 font-style: normal; 14305 src: url("//brewdog.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"), 14306 url("//brewdog.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff"); 14307} 14308 14309 14310 #content form, 14311 #content form *:focus, 14312 #content form *:focus-within:not(#methods) { 14313 --tw-ring-color: #111111; 14314 border-color:#111111; 14315 } 14316 14317 .dark #content #date { 14318 color-scheme: dark; 14319 } 14320 14321 #content { 14322 background: #ffffff; 14323 } 14324 #content, #alerts { 14325 font-family: "Arial, sans-serif"; 14326 } 14327 #content, #alerts { 14328 font-family: Inter, sans-serif; 14329 font-weight: 400; 14330 font-style: normal; 14331 } 14332 14333 #title { 14334 color: #000000; 14335 } 14336 14337 #content .bg-primary, 14338 #content #method .active { 14339 background: #111111; 14340 color: #ffffff; 14341 } 14342 14343 #content .button-color { 14344 color: #ffffff; 14345 } 14346 14347 #content form .focus{ 14348 border-color: #111111; 14349 } 14350 14351 /* 14352 * intl-tel-input 29.2.3 CSS variable vocabulary (see assets/phone.css header). 14353 * --iti-path-flags-1x/2x: still needed â the "no-assets" vendored CSS deliberately 14354 * omits a hardcoded flags path, and this is where merchant-styles supplies it. 14355 * --iti-path-globe-1x/2x: REMOVED â v29 renders the "no country" icon as an inline 14356 * <svg class="iti__globe-svg">, not a background-image; these vars no longer exist 14357 * and assets/globe.png / [email protected] have been deleted as dead. 14358 * --iti-dialcode-color: REMOVED â v29 has no dedicated dial-code color var; the dial 14359 * code now inherits the input's text color. 14360 * --iti-flag-height/-width, --iti-flag-sprite-width/-height: REMOVED â v2 sprite 14361 * geometry (16px flags, 3904px-wide sprite). The re-vendored sprite is v29's own 14362 * 20px/244-flag layout, so these MUST use v29's defaults, not be pinned back to v2. 14363 * --iti-dropdown-bg -> --iti-country-selector-bg, --iti-arrow-color -> --iti-icon-color: 14364 * straight renames, values preserved. 14365 * --iti-arrow-height/-width -> --iti-arrow-size: v2's CSS-triangle hack (width/height/ 14366 * triangle-border) became a single rotated-square icon sized by --iti-arrow-size; 14367 * 6px (the old arrow-width) is carried forward as the closest analog. 14368 */ 14369 .iti {
14370 --iti-path-flags-1x: url(https://cdn.shopify.com/extensions/01a0cf34-180a-76e0-b733-42974a96768f/giftnote-app-142/assets/flags.png) !important; 14371 --iti-path-flags-2x: url(https://cdn.shopify.com/extensions/01a0cf34-180a-76e0-b733-42974a96768f/giftnote-app-142/assets/[email protected]) !important; 14372 --iti-hover-color: rgba(0, 0, 0, 0.05); 14373 --iti-border-color: #ccc; 14374 --iti-country-selector-bg: white; 14375 --iti-icon-color: #555; 14376 --iti-spacer-horizontal: 8px; 14377 --iti-border-width: 1px; 14378 --iti-arrow-size: 6px; 14379 --iti-arrow-padding: 6px; 14380 --iti-mobile-popup-margin: 30px; 14381 } 14382 14383 .input { 14384 border-radius: 6px !important; 14385} 14386.ring-neutral-300 { 14387 padding-bottom: 14px; 14388} 14389button { 14390font-weight: bold; 14391font-family: 'Inter' !important; 14392border-radius: 50px !important;} 14393#method{ 14394border-radius: 50px !important;} 14395</style> 14396<style> 14397 #content #powered { 14398 display: flex !important; 14399 } 14400</style> 14401<!-- END app snippet --> 14402<link href="//cdn.shopify.com/extensions/01a0cf34-180a-76e0-b733-42974a96768f/giftnote-app-142/assets/giftnote.css" rel="stylesheet" type="text/css" media="all" /> 14403<link href="//cdn.shopify.com/extensions/01a0cf34-180a-76e0-b733-42974a96768f/giftnote-app-142/assets/phone.css" rel="stylesheet" type="text/css" media="all" /> 14404</template> 14405 14406<template id="giftnote-button-template" data-gn-app-id="6070057"> 14407 <!-- BEGIN app snippet: button-styles --><style> 14408 #container{ 14409 width: 100%; 14410 display: flex; 14411 align-items: center; 14412 } 14413 14414 #button { 14415 letter-spacing: 0.06rem; 14416 cursor: pointer; 14417 border-width: 1px; 14418 border-style: solid; 14419 line-height: 1; 14420 } 14421 14422 #button .hidden{ 14423 display: none; 14424 } 14425 14426 #container{ 14427 justify-content: center; 14428 } 14429 14430 #button { 14431 background-color: white; 14432 width: 100%; 14433 height: 50px; 14434 border-radius: 6px; 14435 border-color:black; 14436 color: black; 14437 font-size: 16px; 14438 font-family: ; 14439 } 14440 14441 @media screen and (max-width: 740px) { 14442 #container{ 14443 justify-content: center; 14444 } 14445 #button { 14446 height: 50px; 14447 width: 100%; 14448 } 14449 } 14450</style> 14451<!-- END app snippet --> 14452 <div id="container" className="w-full en"> 14453 <button 14454 command="show-modal" commandfor="dialog" 14455 id="button" 14456 data-vendor="" 14457 data-locale="en" 14458 data-shop="b32dd2-83" 14459 > 14460 <span id="add">Add a gift message ð</span> 14461 <span id="edit" class="hidden">Edit gift message ð</span> 14462 </button> 14463 </div> 14464</template> 14465 14466<template id="giftnote-balance-template" data-gn-app-id="6070057"> 14467 <!-- BEGIN app snippet: balance-styles --><style> 14468 #container{ 14469 width: 100%; 14470 display: flex; 14471 align-items: center; 14472 justify-content: center; 14473 } 14474 14475 #result { 14476 width: 100%; 14477 display: flex; 14478 flex-direction: column; 14479 align-items: stretch; 14480 justify-content: center; 14481 } 14482 14483 #result > div { 14484 margin-top:10px; 14485 } 14486 14487 #content { 14488 border-width: 1px; 14489 border-style: solid; 14490 padding: 16px 20px; 14491 background-color: white; 14492 } 14493 14494 #content .hidden{ 14495 display: none; 14496 } 14497 14498 #label { 14499 font-size: 16px; 14500 font-weight: 700; 14501 } 14502 14503 #input { 14504 margin-top: 5px; 14505 background-color: none; 14506 width: 100%; 14507 display: flex; 14508 align-items: center; 14509 gap: 6px; 14510 justify-content: space-between; 14511 } 14512 14513 #code { 14514 flex: 1; 14515 background-color: transparent; 14516 font-size: 16px; 14517 height: 24px; 14518 border: 0; 14519 border-bottom: 1px solid black; 14520 } 14521 #code:focus { 14522 outline: none !important; 14523 border-bottom: 2px solid black; 14524 } 14525 14526 #button { 14527 cursor: pointer ; 14528 background-color: transparent; 14529 border: 0; 14530 color: black; 14531 padding: 0; 14532 font-size: 16px; 14533 padding-top:2px; 14534 font-family: ; 14535 } 14536 14537 #button svg { 14538 width: 22px; 14539 height: 22px; 14540 } 14541 14542 #button svg path{ 14543 stroke: black; 14544 } 14545 14546 @media screen and (max-width: 740px) { 14547 #container{ 14548 justify-content: center; 14549 } 14550 #content { 14551 width: 100%; 14552 } 14553 } 14554</style> 14555<!-- END app snippet --> 14556 <div 14557 id="container" 14558 className="w-full en" 14559 data-locale="en" 14560 data-shop="b32dd2-83" 14561 > 14562 <div id="content" tabindex="-1"> 14563 <form id="form"> 14564 <label id="label" for="code">Check the balance of your gift card</label> 14565 <div id="input"> 14566 <input 14567 type="text" 14568 id="code" 14569 placeholder="Enter gift card code" 14570 required 14571 > 14572 <button id="button" type="submit" aria-label="Search"> 14573 <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20"> 14574 <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m19 19-4-4m0-7A7 7 0 1 1 1 8a7 7 0 0 1 14 0Z"/> 14575 </svg> 14576 </button> 14577 </div> 14578 </form> 14579 <div id="result"> 14580 <div id="loading" class="hidden">Searching...</div> 14581 <div id="not_found" class="hidden">Not found</div> 14582 <div id="expired" class="hidden">Expired on<span></span> 14583 </div> 14584 <div id="success" class="hidden"> 14585 <div id="balance">Balance: <span></span> 14586 </div> 14587 <div id="initial">Initial balance: <span></span> 14588 </div> 14589 <div id="expires_on" class="hidden">Expires on: <span></span> 14590 </div> 14591 </div> 14592 </div> 14593 </div> 14594 </div> 14595</template> 14596 14597<giftnote-core 14598 shop="b32dd2-83" 14599 domain="brewdog.com" 14600 name="BrewDog" 14601 locale="en" 14602 locale2="en" 14603 currency="GBP" 14604 data-gn-app-id="6070057" 14605></giftnote-core> 14606 14607 14608</div><div id="shopify-block-ATEd0dW1USllNcjBlV__16734351542755210015" class="shopify-block shopify-app-block"> 14609 14610<!-- REGION SELECTOR LOADED --> 14611 14612 14613 14614 14615 14616 14617 14618 14619<!-- Flag Icons CSS removed - using text abbreviations only --> 14620 14621<!-- MaxMind GeoIP2 JavaScript -->
14622<script src="//geoip-js.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
14622 14623 14624<style> 14625.uk-region-selector { 14626 display: flex; 14627 flex-direction: column; 14628 gap: 0.5rem; 14629 margin: 1rem 0; 14630} 14631 14632.uk-region-selector__wrapper { 14633 display: flex; 14634 flex-direction: column; 14635 gap: 0.5rem; 14636} 14637 14638/* Custom Select Styles */ 14639.uk-region-custom-select { 14640 position: relative; 14641 width: 100%; 14642} 14643 14644.uk-region-custom-select__trigger { 14645 display: flex; 14646 align-items: center; 14647 justify-content: space-between; 14648 padding: 8px 10px; 14649 background: #fff; 14650 border: 1px solid #d1d5db; 14651 border-radius: 0.375rem; 14652 cursor: pointer; 14653 gap: 15px; 14654 transition: border-color 0.2s; 14655 margin-right: 16px; 14656 margin-left: 16px; 14657} 14658 14659.uk-region-custom-select__trigger:hover { 14660 border-color: #9ca3af; 14661} 14662 14663.uk-region-custom-select.is-open .uk-region-custom-select__trigger { 14664 border-color: #000; 14665 box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); 14666} 14667 14668.uk-region-custom-select__value { 14669 display: flex; 14670 align-items: center; 14671 gap: 0.5rem; 14672 flex: 1; 14673} 14674 14675.uk-region-custom-select__placeholder { 14676 color: #9ca3af; 14677} 14678 14679/* Abbreviation badge shown in trigger */ 14680.uk-region-option__abbr { 14681 font-weight: 700; 14682 font-size: 0.8rem; 14683 letter-spacing: 0.06em; 14684 color: inherit; 14685 flex-shrink: 0; 14686} 14687 14688 14689.uk-region-custom-select__arrow { 14690 flex-shrink: 0; 14691 transition: transform 0.2s; 14692} 14693 14694.uk-region-custom-select.is-open .uk-region-custom-select__arrow { 14695 transform: rotate(180deg); 14696} 14697 14698.uk-region-custom-select__dropdown { 14699 position: absolute; 14700 top: calc(100% + 0.25rem); 14701 left: 0; 14702 right: 0; 14703 background: #fff; 14704 border: 1px solid #d1d5db; 14705 border-radius: 0.375rem; 14706 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); 14707 z-index: 100; 14708 max-height: 250px; 14709 overflow-y: auto; 14710 display: none; 14711} 14712 14713.uk-region-custom-select.is-open .uk-region-custom-select__dropdown { 14714 display: block; 14715} 14716 14717.uk-region-custom-select__option { 14718 width: 100%; 14719 display: flex; 14720 align-items: center; 14721 gap: 0.75rem; 14722 padding: 0.75rem 1rem; 14723 border: none; 14724 background: none; 14725 text-align: left; 14726 cursor: pointer; 14727 transition: background-color 0.15s; 14728 font-size: 1rem; 14729} 14730 14731.uk-region-custom-select__option:hover { 14732 background-color: #f3f4f6; 14733} 14734 14735.uk-region-custom-select__option.is-selected { 14736 background-color: #e5e7eb; 14737 font-weight: 600; 14738} 14739 14740.uk-region-selector__label { 14741 font-size: 0.875rem; 14742 font-weight: 600; 14743 color: var(--color-text, #000); 14744} 14745.uk-region-selector__select { 14746 width: 100%; 14747 padding: 0.75rem 1rem; 14748 font-size: 1rem; 14749 line-height: 1.5; 14750 color: var(--color-text, #000); 14751 background-color: var(--color-background, #fff); 14752 border: 1px solid var(--color-border, #d1d5db); 14753 border-radius: 0.375rem; 14754 transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; 14755 cursor: pointer; 14756} 14757.uk-region-selector__select:hover { 14758 border-color: var(--color-border-hover, #9ca3af); 14759} 14760.uk-region-selector__select:focus { 14761 outline: none; 14762 border-color: var(--color-primary, #000); 14763 box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); 14764} 14765.uk-region-selector__wrapper { 14766 display: flex; 14767 flex-direction: column; 14768 gap: 0.5rem; 14769 margin: 1rem 0; 14770} 14771.uk-region-modal { 14772 position: fixed; 14773 top: 0; 14774 left: 0; 14775 width: 100%; 14776 height: 100%; 14777 z-index: 9999; 14778 display: flex; 14779 align-items: center; 14780 justify-content: center; 14781 padding: 1rem; 14782} 14783.uk-region-modal__overlay { 14784 position: absolute; 14785 top: 0; 14786 left: 0; 14787 width: 100%; 14788 height: 100%; 14789 background-color: rgba(0, 0, 0, 0.7); 14790 cursor: pointer; 14791} 14792.uk-region-modal__content { 14793 position: relative; 14794 background-color: #fff; 14795 border-radius: 0.5rem; 14796 padding: 2rem; 14797 max-width: 500px; 14798 width: 100%; 14799 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 14800 z-index: 10000; 14801 animation: modalFadeIn 0.3s ease-out; 14802} 14803.uk-region-modal__close { 14804 position: absolute; 14805 top: 1rem; 14806 right: 1rem; 14807 background: none; 14808 border: none; 14809 cursor: pointer; 14810 padding: 0.5rem; 14811 display: flex; 14812 align-items: center; 14813 justify-content: center; 14814 color: #000; 14815 transition: opacity 0.2s; 14816} 14817.uk-region-modal__close:hover { 14818 opacity: 0.7; 14819} 14820.uk-region-modal__close svg { 14821 width: 1.5rem; 14822 height: 1.5rem; 14823} 14824.uk-region-modal__header { 14825 margin-bottom: 1.5rem; 14826 padding-right: 2rem; 14827} 14828.uk-region-modal__title { 14829 margin-bottom: 0.75rem; 14830 font-size: 1.5rem; 14831 font-weight: 600; 14832 color: #000; 14833} 14834.uk-region-modal__description { 14835 color: #6b7280; 14836 line-height: 1.6; 14837} 14838.uk-region-modal__body { 14839 display: flex; 14840 flex-direction: column; 14841 gap: 1rem; 14842} 14843.uk-region-modal__label { 14844 font-size: 0.875rem; 14845 font-weight: 600; 14846 color: #000; 14847} 14848.uk-region-modal__select { 14849 width: 100%; 14850 padding: 0.75rem 1rem; 14851 font-size: 1rem; 14852 line-height: 1.5; 14853 color: #000; 14854 background-color: #fff; 14855 border: 2px solid #d1d5db; 14856 border-radius: 0.375rem; 14857 transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
14858 cursor: pointer; 14859} 14860.uk-region-modal__select:hover { 14861 border-color: #9ca3af; 14862} 14863.uk-region-modal__select:focus { 14864 outline: none; 14865 border-color: #000; 14866 box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); 14867} 14868.uk-region-modal__submit { 14869 width: 100%; 14870 padding: 1rem; 14871 font-size: 1rem; 14872 font-weight: 600; 14873 margin-top: 0.5rem; 14874 background-color: #000; 14875 color: #fff; 14876 border: none; 14877 border-radius: 0.375rem; 14878 cursor: pointer; 14879 transition: opacity 0.2s; 14880} 14881.uk-region-modal__submit:hover { 14882 opacity: 0.9; 14883} 14884.uk-region-modal__submit:disabled { 14885 opacity: 0.5; 14886 cursor: not-allowed; 14887} 14888@keyframes modalFadeIn { 14889 from { 14890 opacity: 0; 14891 transform: translateY(-20px); 14892 } 14893 to { 14894 opacity: 1; 14895 transform: translateY(0); 14896 } 14897} 14898@keyframes modalShake { 14899 0%, 100% { transform: translateX(0); } 14900 20% { transform: translateX(-8px); } 14901 40% { transform: translateX(8px); } 14902 60% { transform: translateX(-5px); } 14903 80% { transform: translateX(5px); } 14904} 14905 14906@media (max-width: 992px) { 14907 .uk-region-custom-select__arrow { 14908 width: 10px; 14909 } 14910 .uk-region-custom-select__trigger { 14911 margin-left: 6px; 14912 margin-right: 6px; 14913 padding: 6px 8px; 14914 gap: 6px; 14915 } 14916} 14917 14918/* Toast Notification Styles */ 14919.uk-region-toast { 14920 position: fixed; 14921 top: 20px; 14922 right: 20px; 14923 background-color: #f5f5f5; 14924 border: 1px solid grey; 14925 padding: 16px 24px; 14926 border-radius: 0.5rem; 14927 z-index: 10000; 14928 display: inline-block; 14929 align-items: center; 14930 gap: 0.75rem; 14931 min-width: 300px; 14932 max-width: 500px; 14933 opacity: 0; 14934 transform: translateY(20px); 14935 transition: opacity 0.3s ease, transform 0.3s ease; 14936 pointer-events: none; 14937} 14938 14939.uk-region-toast.show { 14940 opacity: 1; 14941 transform: translateY(0); 14942 pointer-events: auto; 14943} 14944 14945.uk-region-toast__title { 14946 font-size: 16px; 14947 font-weight: 600; 14948 color: black; 14949 display: block; 14950} 14951 14952.uk-region-toast__description { 14953 font-size: 16px; 14954 color: grey; 14955} 14956 14957.uk-region-toast__close { 14958 position: absolute; 14959 top: 8px; 14960 right: 8px; 14961 background: none; 14962 border: none; 14963 cursor: pointer; 14964 padding: 4px; 14965 display: flex; 14966 align-items: center; 14967 justify-content: center; 14968 color: black; 14969 opacity: 0.7; 14970 transition: opacity 0.2s; 14971 z-index: 1; 14972} 14973 14974[id="item-55491361046854"], 14975[href="/products/mup-levy?variant=55491361046854"], 14976[href="/products/mup-levy?variant=55491361046854"] + .minicart__item-info { 14977 display: none; 14978} 14979 14980.uk-region-toast__close:hover { 14981 opacity: 1; 14982} 14983 14984.uk-region-toast__close svg { 14985 width: 16px; 14986 height: 16px; 14987} 14988 14989@media (max-width: 640px) { 14990 .uk-region-toast { 14991 top: 10px; 14992 right: 10px; 14993 left: 10px; 14994 min-width: auto; 14995 max-width: none; 14996 } 14997} 14998</style> 14999 15000<div 15001 id="uk-region-selector-global" 15002 class="uk-region-selector-app-embed uk-region-selector--global" 15003 style="display: none;" 15004 data-geoip-enabled="false" 15005 data-maxmind-account-id="" 15006 data-maxmind-license-key="" 15007> 15008 <div class="uk-region-selector__wrapper"> 15009 <div class="uk-region-custom-select" id="uk-region-custom-select"> 15010 <div class="uk-region-custom-select__trigger" data-select-trigger> 15011 <span class="uk-region-custom-select__value" data-select-value> 15012 <span class="uk-region-custom-select__placeholder">Select Region</span> 15013 </span> 15014 <svg class="uk-region-custom-select__arrow" width="12" height="8" viewBox="0 0 12 8" fill="none"> 15015 <path d="M1 1.5L6 6.5L11 1.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 15016 </svg> 15017 </div> 15018 15019 <div class="uk-region-custom-select__dropdown" data-select-dropdown> 15020 <button type="button" class="uk-region-custom-select__option" data-value="england">ENG</button> 15021 <button type="button" class="uk-region-custom-select__option" data-value="scotland">SCT</button> 15022 <button type="button" class="uk-region-custom-select__option" data-value="wales">WLS</button> 15023 <button type="button" class="uk-region-custom-select__option" data-value="northern_ireland">NIR</button> 15024 </div> 15025 </div> 15026 15027 <!-- Hidden input for compatibility with existing JS --> 15028 <input type="hidden" id="uk-region-select-global" data-region-select value=""> 15029 </div> 15030</div> 15031 15032<!-- Modal markup --> 15033<div 15034 id="uk-region-modal-global" 15035 class="uk-region-modal" 15036 style="display: none;" 15037 role="dialog" 15038 aria-labelledby="uk-region-modal-title-global" 15039 aria-modal="true" 15040> 15041 <div class="uk-region-modal__overlay" data-modal-close></div> 15042 15043 <div class="uk-region-modal__content"> 15044 <button 15045 class="uk-region-modal__close" 15046 aria-label="Close" 15047 data-modal-close 15048 > 15049 <svg width="20" height="20" viewBox="0 0 20 20" fill="none"> 15050 <path d="M15 5L5 15M5 5L15 15" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 15051 </svg> 15052 </button> 15053 15054 <div class="uk-region-modal__header"> 15055 <h2 id="uk-region-modal-title-global" class="uk-region-modal__title"> 15056 Select Your Region 15057 </h2> 15058 <p class="uk-region-modal__description"> 15059 Please select your region for accurate pricing and compliance information. 15060 </p> 15061 </div> 15062 15063 <div class="uk-region-modal__body"> 15064 <label for="uk-region-modal-select-global" class="uk-region-modal__label"> 15065 Your Region: 15066 </label> 15067 15068 <select 15069 id="uk-region-modal-select-global" 15070 class="uk-region-modal__select" 15071 data-modal-select 15072 > 15073 <option value="">Choose a region...</option> 15074 <option value="england">England</option> 15075 <option value="scotland">Scotland</option> 15076 <option value="wales">Wales</option> 15077 <option value="northern_ireland">Northern Ireland</option> 15078 </select> 15079 15080 <button 15081 class="uk-region-modal__submit" 15082 data-modal-submit 15083 disabled 15084 > 15085 Confirm Selection 15086 </button> 15087 </div> 15088 </div> 15089</div> 15090 15091<!-- Toast Notification --> 15092<div id="uk-region-toast" class="uk-region-toast"> 15093 <button class="uk-region-toast__close" aria-label="Close" data-toast-close>
15094 <svg width="16" height="16" viewBox="0 0 16 16" fill="none"> 15095 <path d="M12 4L4 12M4 4L12 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 15096 </svg> 15097 </button> 15098 <span class="uk-region-toast__title"><strong>Scotland Selected</strong></span> 15099 <span class="uk-region-toast__description">Orders may be subject to MUP restrictions and levies.</span> 15100</div> 15101 15102 15103
15104<script> 15105(function() { 15106 'use strict'; 15107 15108 const COOKIE_NAME = "mup_region"; 15109 const COOKIE_EXPIRY_DAYS = 180; 15110 const EXCLUDE_PATHS = "\/bars\/,\n\/pages\/dannytest"; 15111 const INCLUDE_PATHS = ""; 15112 15113 function parsePathList(raw) { 15114 return String(raw || '') 15115 .split(/[\n,]+/) 15116 .map((s) => s.trim()) 15117 .filter(Boolean); 15118 } 15119 15120 function pathMatchesAny(pathname, prefixes) { 15121 return prefixes.some((p) => pathname.includes(p)); 15122 } 15123 15124 // Skip forced region prompt on excluded URLs (and non-included URLs when include list is set). 15125 // Does not clear cookies â shop pages still get the normal journey if no region is set. 15126 function shouldSuppressRegionPrompt() { 15127 const pathname = window.location.pathname; 15128 const excludes = parsePathList(EXCLUDE_PATHS); 15129 const includes = parsePathList(INCLUDE_PATHS); 15130 15131 if (pathMatchesAny(pathname, excludes)) return true; 15132 if (includes.length > 0 && !pathMatchesAny(pathname, includes)) return true; 15133 return false; 15134 } 15135 15136 // Read MaxMind config from container data attributes 15137 function getGeoipEnabled() { 15138 const container = document.getElementById('uk-region-selector-global'); 15139 if (!container) { 15140 console.log('[Region Selector] Container not found yet'); 15141 return false; 15142 } 15143 15144 const geoipEnabled = container.dataset.geoipEnabled === 'true'; 15145 console.log('[Region Selector] GeoIP enabled:', geoipEnabled); 15146 return geoipEnabled; 15147 } 15148 15149 function getCookie(name) { 15150 const value = `; ${document.cookie}`; 15151 const parts = value.split(`; ${name}=`); 15152 if (parts.length === 2) { 15153 return parts.pop().split(';').shift(); 15154 } 15155 return null; 15156 } 15157 15158 function setCookie(name, value, days) { 15159 const date = new Date(); 15160 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 15161 const expires = `expires=${date.toUTCString()}`; 15162 document.cookie = `${name}=${value};${expires};path=/`; 15163 } 15164 15165 // Show toast notification for Scotland 15166 let toastTimeout = null; 15167 15168 function showScotlandToast() { 15169 const toast = document.getElementById('uk-region-toast'); 15170 if (!toast) return; 15171 15172 // Clear any existing timeout 15173 if (toastTimeout) { 15174 clearTimeout(toastTimeout); 15175 toastTimeout = null; 15176 } 15177 15178 // Show toast 15179 toast.classList.add('show'); 15180 15181 // Hide after 20 seconds 15182 toastTimeout = setTimeout(() => { 15183 toast.classList.remove('show'); 15184 toastTimeout = null; 15185 }, 20000); 15186 } 15187 15188 // Close toast function 15189 function closeToast() { 15190 const toast = document.getElementById('uk-region-toast'); 15191 if (!toast) return; 15192 15193 // Clear timeout if it exists 15194 if (toastTimeout) { 15195 clearTimeout(toastTimeout); 15196 toastTimeout = null; 15197 } 15198 15199 // Hide toast immediately 15200 toast.classList.remove('show'); 15201 } 15202 15203 async function setCartAttribute(region, silent = false) { 15204 try { 15205 const response = await fetch('/cart/update.js', { 15206 method: 'POST', 15207 headers: { 'Content-Type': 'application/json' }, 15208 body: JSON.stringify({ 15209 attributes: { 15210 uk_region: region, 15211 _uk_region_updated: new Date().toISOString() 15212 } 15213 }) 15214 }); 15215 if (response.ok) { 15216 console.log('[Region Selector] Cart attribute updated:', region); 15217 return await response.json(); 15218 } 15219 } catch (error) { 15220 console.error('[Region Selector] Failed to update cart:', error); 15221 } 15222 } 15223 15224 async function triggerCartTransform() { 15225 try { 15226 // Get current cart to trigger transform 15227 const cartResponse = await fetch('/cart.js'); 15228 const cart = await cartResponse.json(); 15229 15230 if (cart.items && cart.items.length > 0) { 15231 // Update first item quantity to same value to trigger cart transform 15232 const firstItem = cart.items[0]; 15233 await fetch('/cart/change.js', { 15234 method: 'POST', 15235 headers: { 'Content-Type': 'application/json' }, 15236 body: JSON.stringify({ 15237 id: firstItem.key, 15238 quantity: firstItem.quantity 15239 }) 15240 }); 15241 console.log('[Region Selector] Cart transform triggered'); 15242 } 15243 } catch (error) { 15244 console.error('[Region Selector] Failed to trigger cart transform:', error); 15245 } 15246 } 15247 15248 // Auto-detect UK region using MaxMind GeoIP 15249 async function autoDetectRegion() { 15250 const container = document.getElementById('uk-region-selector-global'); 15251 if (!container) { 15252 console.log('[Region Selector] Container not found in autoDetectRegion'); 15253 } 15254 15255 const accountId = container.dataset.maxmindAccountId; 15256 const licenseKey = container.dataset.maxmindLicenseKey; 15257 15258 15259 console.log('[Region Selector] Calling MaxMind GeoIP...'); 15260 15261 return new Promise((resolve) => { 15262 geoip2.city( 15263 function(response) { 15264 console.log('[Region Selector] GeoIP response:', response); 15265 15266 // Check if in UK 15267 if (response.country.iso_code !== 'GB') {
15268 console.log('[Region Selector] Not in UK, defaulting to England'); 15269 resolve({ detected: true, region: 'england' }); 15270 return; 15271 } 15272 15273 // Map MaxMind subdivision codes to our regions 15274 const subdivisions = response.subdivisions || []; 15275 let detectedRegion = 'england'; // Default to England 15276 15277 for (const subdivision of subdivisions) { 15278 const code = subdivision.iso_code; 15279 if (code === 'SCT') { 15280 detectedRegion = 'scotland'; 15281 break; 15282 } else if (code === 'WLS') { 15283 detectedRegion = 'wales'; 15284 break; 15285 } else if (code === 'NIR') { 15286 detectedRegion = 'northern_ireland'; 15287 break; 15288 } else if (code === 'ENG') { 15289 detectedRegion = 'england'; 15290 break; 15291 } 15292 } 15293 15294 console.log('[Region Selector] Detected region:', detectedRegion); 15295 resolve({ detected: true, region: detectedRegion }); 15296 }, 15297 function(error) { 15298 console.error('[Region Selector] MaxMind error:', error); 15299 console.log('[Region Selector] Defaulting to England due to error'); 15300 resolve({ detected: true, region: 'england' }); 15301 }, 15302 { w3c_geolocation: false } 15303 ); 15304 }); 15305 } 15306 15307 // Function to show toast notification 15308 function showToast(title = 'Scotland Selected', description = 'Orders may be subject to MUP restrictions and levies.') { 15309 // Check if there's an existing toast system in the theme 15310 if (typeof window.showNotification === 'function') { 15311 window.showNotification(description, 'success'); 15312 return; 15313 } 15314 15315 // Use the existing uk-region-toast structure 15316 const toast = document.createElement('div'); 15317 toast.className = 'uk-region-toast'; 15318 toast.innerHTML = ` 15319 <button class="uk-region-toast__close" aria-label="Close" data-toast-close> 15320 <svg width="16" height="16" viewBox="0 0 16 16" fill="none"> 15321 <path d="M12 4L4 12M4 4L12 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 15322 </svg> 15323 </button> 15324 <span class="uk-region-toast__title"><strong>${title}</strong></span> 15325 <span class="uk-region-toast__description">${description}</span> 15326 `; 15327 document.body.appendChild(toast); 15328 15329 // Show toast with animation 15330 setTimeout(() => toast.classList.add('show'), 10); 15331 15332 // Close button handler 15333 const closeBtn = toast.querySelector('[data-toast-close]'); 15334 const closeToast = () => { 15335 toast.classList.remove('show'); 15336 setTimeout(() => toast.remove(), 300); 15337 }; 15338 if (closeBtn) closeBtn.addEventListener('click', closeToast); 15339 15340 // Auto-dismiss after 20 seconds (matching original behavior) 15341 setTimeout(closeToast, 20000); 15342 } 15343 15344 // Clear any leftover pending toast from older builds (toast UI removed) 15345 function checkPendingNotifications() { 15346 try { 15347 sessionStorage.removeItem('pendingRegionNotification'); 15348 } catch (error) { 15349 // ignore 15350 } 15351 } 15352 15353 async function init() { 15354 console.log('[Region Selector] Initializing...'); 15355 15356 // Check for pending notifications first 15357 checkPendingNotifications(); 15358 15359 15360 const container = document.getElementById('uk-region-selector-global'); 15361 const modal = document.getElementById('uk-region-modal-global'); 15362 15363 console.log('[Region Selector] Container:', container); 15364 console.log('[Region Selector] Modal:', modal); 15365 15366 if (!container || !modal) { 15367 console.error('[Region Selector] Container or modal not found!'); 15368 return; 15369 } 15370 15371 const modalSelect = modal.querySelector('[data-modal-select]'); 15372 const modalSubmit = modal.querySelector('[data-modal-submit]'); 15373 const modalCloseButtons = modal.querySelectorAll('[data-modal-close]'); 15374 15375 // Region data with labels and abbreviations 15376 const regionData = { 15377 'england': { label: 'England', abbr: 'ENG' }, 15378 'scotland': { label: 'Scotland', abbr: 'SCT' }, 15379 'wales': { label: 'Wales', abbr: 'WLS' }, 15380 'northern_ireland': { label: 'Northern Ireland', abbr: 'NIR' } 15381 }; 15382 15383 // Custom select elements (will be initialized after injection) 15384 let select, customSelect, trigger, valueDisplay, dropdown, options; 15385 15386 // Function to update custom select display 15387 function updateCustomSelectDisplay(region) { 15388 if (!valueDisplay) return; 15389 15390 if (region && regionData[region]) { 15391 const data = regionData[region]; 15392 valueDisplay.innerHTML = `<span class="uk-region-option__abbr">${data.abbr}</span>`;
15393 } else { 15394 valueDisplay.innerHTML = `<span class="uk-region-custom-select__placeholder">Select Region</span>`; 15395 } 15396 15397 // Update selected state on options 15398 options?.forEach(opt => { 15399 if (opt.getAttribute('data-value') === region) { 15400 opt.classList.add('is-selected'); 15401 } else { 15402 opt.classList.remove('is-selected'); 15403 } 15404 }); 15405 } 15406 15407 // Function to setup custom select (called after injection) 15408 function setupCustomSelect() { 15409 console.log('[Region Selector] Setting up custom select...'); 15410 15411 select = container.querySelector('[data-region-select]'); 15412 customSelect = document.getElementById('uk-region-custom-select'); 15413 trigger = customSelect?.querySelector('[data-select-trigger]'); 15414 valueDisplay = customSelect?.querySelector('[data-select-value]'); 15415 dropdown = customSelect?.querySelector('[data-select-dropdown]'); 15416 options = customSelect?.querySelectorAll('[data-value]'); 15417 15418 console.log('[Region Selector] Custom select elements:', { 15419 select: !!select, 15420 customSelect: !!customSelect, 15421 trigger: !!trigger, 15422 valueDisplay: !!valueDisplay, 15423 options: options?.length 15424 }); 15425 15426 if (!trigger || !customSelect) { 15427 console.error('[Region Selector] Custom select elements not found!'); 15428 return; 15429 } 15430 15431 // Toggle dropdown 15432 trigger.addEventListener('click', (e) => { 15433 e.stopPropagation(); 15434 console.log('[Region Selector] Trigger clicked'); 15435 customSelect.classList.toggle('is-open'); 15436 }); 15437 15438 // Close dropdown when clicking outside 15439 document.addEventListener('click', (e) => { 15440 if (customSelect && !customSelect.contains(e.target)) { 15441 customSelect.classList.remove('is-open'); 15442 } 15443 }); 15444 15445 // Handle option selection 15446 options?.forEach(option => { 15447 option.addEventListener('click', async (e) => { 15448 const region = option.getAttribute('data-value'); 15449 console.log('[Region Selector] Option clicked:', region); 15450 15451 if (region && select) { 15452 // Update hidden input 15453 select.value = region; 15454 15455 // Update display 15456 updateCustomSelectDisplay(region); 15457 15458 // Close dropdown 15459 customSelect.classList.remove('is-open'); 15460 15461 // Trigger existing logic 15462 setCookie(COOKIE_NAME, region, COOKIE_EXPIRY_DAYS); 15463 await setCartAttribute(region); 15464 15465 // Sync modal select 15466 if (modalSelect) modalSelect.value = region; 15467 15468 // Trigger advisory updates 15469 window.dispatchEvent(new CustomEvent('regionChanged', { detail: { region } })); 15470 15471 // Scotland: nudge cart so MUP Functions / levy logic run without a full page reload 15472 if (region === 'scotland') { 15473 console.log('[Region Selector] Changed to Scotland - triggering MUP cart transform...'); 15474 await triggerCartTransform(); 15475 } 15476 } 15477 }); 15478 }); 15479 } 15480 15481 // Auto-inject selector into specified element (mobile/desktop aware) 15482 const desktopSelector = ".mupheader"; 15483 const mobileSelector = ".mupheader"; 15484 const injectPosition = "append"; 15485 15486 // Function to determine if we're on mobile 15487 function isMobile() { 15488 return window.innerWidth <= 768; 15489 } 15490 15491 // Function to get the appropriate selector based on screen size 15492 function getTargetSelector() { 15493 if (isMobile() && mobileSelector && mobileSelector.trim() !== '') { 15494 return mobileSelector; 15495 } 15496 return desktopSelector; 15497 } 15498 15499 // Function to inject the selector 15500 function injectSelector() { 15501 const targetSelector = getTargetSelector(); 15502 15503 if (targetSelector && targetSelector.trim() !== '') { 15504 console.log('[Region Selector] Auto-inject selector:', targetSelector); 15505 console.log('[Region Selector] Inject position:', injectPosition); 15506 console.log('[Region Selector] Is mobile:', isMobile()); 15507
15508 const targetElement = document.querySelector(targetSelector); 15509 if (targetElement) { 15510 console.log('[Region Selector] Target element found, injecting...'); 15511 15512 // Remove from current position if already injected 15513 if (container.parentNode) { 15514 container.remove(); 15515 } 15516 15517 // Inject at specified position 15518 if (injectPosition === 'prepend') { 15519 targetElement.prepend(container); 15520 } else { 15521 targetElement.append(container); 15522 } 15523 15524 console.log('[Region Selector] Injected into:', targetSelector); 15525 } else { 15526 console.warn('[Region Selector] Target element not found:', targetSelector); 15527 } 15528 } 15529 } 15530 15531 // Initial injection 15532 injectSelector(); 15533 15534 // Re-inject on window resize to handle mobile/desktop switching 15535 let resizeTimeout; 15536 window.addEventListener('resize', () => { 15537 clearTimeout(resizeTimeout); 15538 resizeTimeout = setTimeout(() => { 15539 injectSelector(); 15540 }, 250); 15541 }); 15542 15543 // Show selector 15544 container.style.display = 'flex'; 15545 console.log('[Region Selector] Container displayed'); 15546 15547 // Setup custom select AFTER injection 15548 setupCustomSelect(); 15549 15550 // Load saved region 15551 const savedRegion = getCookie(COOKIE_NAME); 15552 console.log('[Region Selector] Saved region:', savedRegion); 15553 15554 if (savedRegion) { 15555 // Already have a saved region â restore UI and silently re-sync the cart 15556 // attribute in case the cart was reset or recreated since the last visit 15557 if (select) select.value = savedRegion; 15558 updateCustomSelectDisplay(savedRegion); 15559 console.log('[Region Selector] Region loaded from cookie:', savedRegion); 15560 setCartAttribute(savedRegion, true).catch(e => 15561 console.warn('[Region Selector] Silent cart re-sync failed:', e) 15562 ); 15563 } else if (shouldSuppressRegionPrompt()) { 15564 console.log('[Region Selector] Skipping region prompt on excluded/non-included URL'); 15565 } else { 15566 // No saved region 15567 // Check GeoIP enabled AFTER container is injected 15568 const geoipEnabled = getGeoipEnabled(); 15569 console.log('[Region Selector] GeoIP Enabled:', geoipEnabled); 15570 15571 if (geoipEnabled) { 15572 // MaxMind is enabled - auto-detect region 15573 console.log('[Region Selector] MaxMind enabled, attempting auto-detection...'); 15574 const autoDetect = await autoDetectRegion(); 15575 15576 if (autoDetect.region) { 15577 console.log('[Region Selector] Auto-detected region:', autoDetect.region); 15578 15579 // Set the region 15580 const region = autoDetect.region; 15581 if (select) select.value = region; 15582 updateCustomSelectDisplay(region); 15583 15584 // Save it 15585 setCookie(COOKIE_NAME, region, COOKIE_EXPIRY_DAYS); 15586 await setCartAttribute(region); 15587 15588 // Trigger advisory updates 15589 window.dispatchEvent(new CustomEvent('regionChanged', { detail: { region } })); 15590 15591 // If Scotland, trigger cart transform 15592 if (region === 'scotland') { 15593 console.log('[Region Selector] Auto-detected Scotland - triggering MUP cart transform...'); 15594 await triggerCartTransform(); 15595 } 15596 } 15597 } else { 15598 // MaxMind is disabled - show modal for manual selection 15599 console.log('[Region Selector] MaxMind disabled, showing modal for manual selection...'); 15600 setTimeout(() => { 15601 modal.style.display = 'flex'; 15602 document.body.style.overflow = 'hidden'; 15603 console.log('[Region Selector] Modal displayed'); 15604 }, 500); 15605 } 15606 } 15607 15608 // Note: Custom select option clicks are handled above 15609 // Hidden input doesn't need change listener since we handle it in option clicks 15610 15611 // Handle modal select change 15612 if (modalSelect) { 15613 modalSelect.addEventListener('change', (e) => { 15614 const selected = e.target.value; 15615 if (modalSubmit) { 15616 modalSubmit.disabled = !selected; 15617 } 15618 }); 15619 } 15620 15621 // Handle modal submit 15622 if (modalSubmit) { 15623 modalSubmit.addEventListener('click', async () => { 15624 const region = modalSelect?.value; 15625 if (region) {
15626 setCookie(COOKIE_NAME, region, COOKIE_EXPIRY_DAYS); 15627 await setCartAttribute(region); 15628 15629 // Update custom selector display 15630 if (select) select.value = region; 15631 updateCustomSelectDisplay(region); 15632 15633 // Close modal 15634 modal.style.display = 'none'; 15635 document.body.style.overflow = ''; 15636 15637 // Trigger advisory updates 15638 window.dispatchEvent(new CustomEvent('regionChanged', { detail: { region } })); 15639 15640 // Scotland: nudge cart so MUP Functions / levy logic run without a full page reload 15641 if (region === 'scotland') { 15642 console.log('[Region Selector] Changed to Scotland - triggering MUP cart transform...'); 15643 await triggerCartTransform(); 15644 } 15645 } 15646 }); 15647 } 15648 15649 // Handle modal close â only allow dismissal if a region is already saved. 15650 // On first visit (no cookie) the overlay click is blocked so customers 15651 // can't accidentally skip the required selection. 15652 // Handle modal close 15653 modalCloseButtons?.forEach(btn => { 15654 btn.addEventListener('click', () => { 15655 modal.style.display = 'none'; 15656 document.body.style.overflow = ''; 15657 }); 15658 }); 15659 15660 // Handle toast close button 15661 const toastCloseBtn = document.querySelector('[data-toast-close]'); 15662 if (toastCloseBtn) { 15663 toastCloseBtn.addEventListener('click', closeToast); 15664 } 15665 } 15666 15667 15668 async function setEfpOverrideAttribute() { 15669 const overrideAttribute = false; 15670 15671 if (overrideAttribute === true) { 15672 try { 15673 await fetch('/cart/update.js', { 15674 method: 'POST', 15675 headers: { 'Content-Type': 'application/json' }, 15676 body: JSON.stringify({ 15677 attributes: { 15678 mup_override: 'true', 15679 _mup_override_set: new Date().toISOString() 15680 } 15681 }) 15682 }); 15683 } catch (error) { 15684 console.error('[Region Selector] Failed to set override attribute:', error); 15685 } 15686 } 15687 } 15688 15689 setEfpOverrideAttribute(); 15690 15691 // Wait for DOM to be ready 15692 if (document.readyState === 'loading') { 15693 document.addEventListener('DOMContentLoaded', init); 15694 } else { 15695 init(); 15696 } 15697})(); 15698</script>
15698 15699 15700 15701 15702
15703<script src="//cdn.shopify.com/extensions/01a019cb-1058-7c54-9271-84a354e242ef/uwp-brewdog-v2-76/assets/mup-levy-handler.js" type="text/javascript"></script>
15703 15704</div><div id="shopify-block-AT0owZzZkT3YxaUxyM__17824471530847535147" class="shopify-block shopify-app-block"><div id='widget-config' style="opacity:0; font-size: 1px;">{"statementLink":"","footerHtml":" ","hideMobile":false,"hideTrigger":false,"disableBgProcess":false,"language":"en","position":"left","leadColor":"#146ff8","triggerColor":"#146ff8","triggerRadius":"50%","triggerPositionX":"right","triggerPositionY":"bottom","triggerIcon":"people","triggerSize":"medium","triggerOffsetX":20,"triggerOffsetY":20,"mobile":{"triggerSize":"small","triggerPositionX":"right","triggerPositionY":"bottom","triggerOffsetX":10,"triggerOffsetY":10,"triggerRadius":"50%"}}</div> 15705<div id='widget-status' style="opacity:0; font-size: 1px;"></div>
15706<script> 15707 ( 15708 function () { 15709 const s = document.createElement('script'); 15710 const h = document.querySelector('head') || document.body; 15711 const widgetConfigEle = document.getElementById('widget-config'); 15712 const widgetConfig = JSON.parse(widgetConfigEle.innerHTML); 15713 15714 if (widgetConfig.footerHtml === '') { 15715 widgetConfig.footerHtml = ' '; 15716 } 15717 15718 widgetConfigEle.style.display = 'none'; 15719 15720 const widgetStatusEle = document.getElementById('widget-status'); 15721 const widgetStatus = widgetStatusEle.innerHTML; 15722 widgetStatusEle.style.display = 'none'; 15723 s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; 15724 s.async = true; 15725 s.onload = function () { 15726 acsbJS.init(widgetConfig); 15727 }; 15728 if (widgetStatus === '' || widgetStatus === 'true') { 15729 h.appendChild(s); 15730 } 15731 })(); 15732</script>
15732 15733 15734</div>
15734<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
15734 15735</body> 15736 <style>.free-shipping-indicator{ display:none;}</style> 15737</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.