1 2<!doctype html> 3<html 4 class="no-js" 5 lang="da" 6 7> 8 <head> 9 10 11 12 13 <meta name="robots" content="index, follow, max-image-preview:none, max-snippet:-1"> 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"> 19 <meta name="theme-color" content="#EA396D"> 20 <link rel="canonical" href="https://bettys.io/">
20<script> 21 window.MC_EXTENSION_ID = "fccebglegfdjomejaneicbheaealihli"; 22 window.MC_STORE_URL = 'https://chromewebstore.google.com/detail/' + window.MC_EXTENSION_ID; 23 document.addEventListener('DOMContentLoaded', function () { 24 document.querySelectorAll('a[href*="chromewebstore.google.com/detail/"]') 25 .forEach(function (a) { a.href = window.MC_STORE_URL; }); 26 }); 27 </script>
27 28 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin><link rel="icon" type="image/png" sizes="32x32" href="//bettys.io/cdn/shop/files/bettys-favicon-512.png?crop=center&height=32&v=1790274880&width=32"> 29 <link rel="icon" type="image/png" sizes="192x192" href="//bettys.io/cdn/shop/files/bettys-favicon-512.png?crop=center&height=192&v=1790274880&width=192"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin> 30 <link rel="preconnect" href="https://fonts.googleapis.com"> 31 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 32 <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet"><title>Få automatisk penge tilbage på alle dine online køb | Bettys</title> 33 34 35 <meta name="description" content="Få cashback og rabatter hos over 500 webshops. Det er gratis at blive medlem, og pengene udbetales direkte til din bankkonto."> 36 37 38
39<script type="application/ld+json"> 40 { 41 "@context": "https://schema.org", 42 "@type": "Organization", 43 "name": "Bettys", 44 "alternateName": "Betty", 45 "url": "https:\/\/bettys.io", 46 "logo": "\/\/bettys.io\/cdn\/shop\/files\/bettys-favicon-512.png?v=4127070157781058431", 47 "description": "Bettys er en dansk AI-shoppingassistent, der finder dine varer og giver dig penge tilbage, hver gang du handler online hos over 500 webshops." 48 } 49 </script>
49 50
50<script type="application/ld+json"> 51 { 52 "@context": "https://schema.org", 53 "@type": "WebSite", 54 "name": "Bettys", 55 "alternateName": "Betty", 56 "url": "https:\/\/bettys.io", 57 "potentialAction": { 58 "@type": "SearchAction", 59 "target": "https://bettys.io/pages/soeg-varer?q={search_term_string}", 60 "query-input": "required name=search_term_string" 61 } 62 } 63 </script>
63 64 65<meta property="og:site_name" content="Bettys"> 66<meta property="og:url" content="https://bettys.io/"> 67<meta property="og:title" content="Få automatisk penge tilbage på alle dine online køb"> 68<meta property="og:type" content="website"> 69<meta property="og:description" content="Få cashback og rabatter hos over 500 webshops. Det er gratis at blive medlem, og pengene udbetales direkte til din bankkonto."><meta property="og:image" content="http://bettys.io/cdn/shop/files/bettys-social-sharing-1200x628_2.jpg?v=1790548798&width=1200"> 70 <meta property="og:image:secure_url" content="https://bettys.io/cdn/shop/files/bettys-social-sharing-1200x628_2.jpg?v=1790548798&width=1200"> 71 <meta property="og:image:width" content="1200"> 72 <meta property="og:image:height" content="628.0"><meta name="twitter:card" content="summary_large_image"> 73<meta name="twitter:title" content="Få automatisk penge tilbage på alle dine online køb"> 74<meta name="twitter:description" content="Få cashback og rabatter hos over 500 webshops. Det er gratis at blive medlem, og pengene udbetales direkte til din bankkonto."> 75 76<style data-shopify> 77 @font-face { 78 font-family: Archivo; 79 font-weight: 400; 80 font-style: normal; 81 font-display: swap; 82 src: url("//bettys.io/cdn/fonts/archivo/archivo_n4.dc8d917cc69af0a65ae04d01fd8eeab28a3573c9.woff2") format("woff2"), 83 url("//bettys.io/cdn/fonts/archivo/archivo_n4.bd6b9c34fdb81d7646836be8065ce3c80a2cc984.woff") format("woff"); 84} 85 86 @font-face { 87 font-family: Archivo; 88 font-weight: 400; 89 font-style: italic; 90 font-display: swap; 91 src: url("//bettys.io/cdn/fonts/archivo/archivo_i4.37d8c4e02dc4f8e8b559f47082eb24a5c48c2908.woff2") format("woff2"), 92 url("//bettys.io/cdn/fonts/archivo/archivo_i4.839d35d75c605237591e73815270f86ab696602c.woff") format("woff"); 93} 94 95 @font-face { 96 font-family: Archivo; 97 font-weight: 700; 98 font-style: normal; 99 font-display: swap; 100 src: url("//bettys.io/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2") format("woff2"), 101 url("//bettys.io/cdn/fonts/archivo/archivo_n7.7e9106d320e6594976a7dcb57957f3e712e83c96.woff") format("woff"); 102} 103 104 @font-face { 105 font-family: Archivo; 106 font-weight: 700; 107 font-style: italic; 108 font-display: swap; 109 src: url("//bettys.io/cdn/fonts/archivo/archivo_i7.3dc798c6f261b8341dd97dd5c78d97d457c63517.woff2") format("woff2"), 110 url("//bettys.io/cdn/fonts/archivo/archivo_i7.3b65e9d326e7379bd5f15bcb927c5d533d950ff6.woff") format("woff"); 111} 112 113 @font-face { 114 font-family: Archivo; 115 font-weight: 700; 116 font-style: normal; 117 font-display: swap; 118 src: url("//bettys.io/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2") format("woff2"), 119 url("//bettys.io/cdn/fonts/archivo/archivo_n7.7e9106d320e6594976a7dcb57957f3e712e83c96.woff") format("woff"); 120} 121 122 @font-face { 123 font-family: Archivo; 124 font-weight: 700; 125 font-style: italic; 126 font-display: swap; 127 src: url("//bettys.io/cdn/fonts/archivo/archivo_i7.3dc798c6f261b8341dd97dd5c78d97d457c63517.woff2") format("woff2"), 128 url("//bettys.io/cdn/fonts/archivo/archivo_i7.3b65e9d326e7379bd5f15bcb927c5d533d950ff6.woff") format("woff"); 129} 130 131 @font-face { 132 font-family: Archivo; 133 font-weight: 700; 134 font-style: normal; 135 font-display: swap; 136 src: url("//bettys.io/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2") format("woff2"), 137 url("//bettys.io/cdn/fonts/archivo/archivo_n7.7e9106d320e6594976a7dcb57957f3e712e83c96.woff") format("woff"); 138} 139 140 @font-face { 141 font-family: Archivo; 142 font-weight: 700; 143 font-style: italic; 144 font-display: swap; 145 src: url("//bettys.io/cdn/fonts/archivo/archivo_i7.3dc798c6f261b8341dd97dd5c78d97d457c63517.woff2") format("woff2"), 146 url("//bettys.io/cdn/fonts/archivo/archivo_i7.3b65e9d326e7379bd5f15bcb927c5d533d950ff6.woff") format("woff"); 147} 148 149 @font-face { 150 font-family: Archivo; 151 font-weight: 500; 152 font-style: normal; 153 font-display: swap; 154 src: url("//bettys.io/cdn/fonts/archivo/archivo_n5.272841b6d6b831864f7fecfa55541752bb399511.woff2") format("woff2"), 155 url("//bettys.io/cdn/fonts/archivo/archivo_n5.27fb58a71a175084eb68e15500549a69fe15738e.woff") format("woff"); 156} 157 158 159 160 :root, 161.color-scheme-1 { 162 --color-background: 255,255,255; 163 --color-secondary-background: 237,237,237; 164 --color-primary: 196,48,28; 165 --color-text-heading: 0,0,0; 166 --color-foreground: 0,0,0; 167 --color-subtext: 77,77,77; 168 --color-subtext-alpha: 1.0; 169 --color-border: 229,229,229; 170 --color-border-alpha: 1.0; 171 --color-button: 169,121,0; 172 --color-button-text: 255,255,255; 173 --color-secondary-button: 238,236,236; 174 --color-secondary-button-border: 238,236,236; 175 --color-secondary-button-text: 0,0,0; 176 --color-button-before: ; 177 --color-field: 255,255,255; 178 --color-field-alpha: 1.0; 179 --color-field-text: 0,0,0; 180 --color-link: 0,0,0; 181 --color-link-hover: 0,0,0; 182 --color-product-price-sale: 196,48,28; 183 --color-progress-bar: 4,155,110; 184 --color-foreground-lighten-60: #666666; 185 --color-foreground-lighten-40: #999999; 186 --color-foreground-lighten-19: #cfcfcf; 187--inputs-border-width: 1px; 188 --inputs-search-border-width: 2px;} 189 @media (min-width: 768px) { 190 body .desktop-color-scheme-1 { 191 --color-background: 255,255,255; 192 --color-secondary-background: 237,237,237; 193 --color-primary: 196,48,28; 194 --color-text-heading: 0,0,0; 195 --color-foreground: 0,0,0; 196 --color-subtext: 77,77,77; 197 --color-subtext-alpha: 1.0; 198 --color-border: 229,229,229; 199 --color-border-alpha: 1.0; 200 --color-button: 169,121,0; 201 --color-button-text: 255,255,255; 202 --color-secondary-button: 238,236,236; 203 --color-secondary-button-border: 238,236,236; 204 --color-secondary-button-text: 0,0,0; 205 --color-button-before: ; 206 --color-field: 255,255,255; 207 --color-field-alpha: 1.0; 208 --color-field-text: 0,0,0; 209 --color-link: 0,0,0; 210 --color-link-hover: 0,0,0; 211 --color-product-price-sale: 196,48,28; 212 --color-progress-bar: 4,155,110; 213 --color-foreground-lighten-60: #666666; 214 --color-foreground-lighten-40: #999999; 215 --color-foreground-lighten-19: #cfcfcf; 216 color: rgb(var(--color-foreground)); 217 background-color: rgb(var(--color-background)); 218 } 219 } 220 @media (max-width: 767px) { 221 body .mobile-color-scheme-1 { 222 --color-background: 255,255,255; 223 --color-secondary-background: 237,237,237; 224 --color-primary: 196,48,28; 225 --color-text-heading: 0,0,0; 226 --color-foreground: 0,0,0; 227 --color-subtext: 77,77,77; 228 --color-subtext-alpha: 1.0; 229 --color-border: 229,229,229; 230 --color-border-alpha: 1.0; 231 --color-button: 169,121,0; 232 --color-button-text: 255,255,255; 233 --color-secondary-button: 238,236,236; 234 --color-secondary-button-border: 238,236,236; 235 --color-secondary-button-text: 0,0,0; 236 --color-button-before: ; 237 --color-field: 255,255,255; 238 --color-field-alpha: 1.0; 239 --color-field-text: 0,0,0; 240 --color-link: 0,0,0; 241 --color-link-hover: 0,0,0; 242 --color-product-price-sale: 196,48,28; 243 --color-progress-bar: 4,155,110; 244 --color-foreground-lighten-60: #666666; 245 --color-foreground-lighten-40: #999999; 246 --color-foreground-lighten-19: #cfcfcf; 247 color: rgb(var(--color-foreground)); 248 background-color: rgb(var(--color-background)); 249 } 250 } 251 252 253.color-scheme-info { 254 --color-background: 235,229,222; 255 --color-secondary-background: 255,255,255; 256 --color-primary: 196,48,28; 257 --color-text-heading: 0,0,0; 258 --color-foreground: 0,0,0; 259 --color-subtext: 71,69,67; 260 --color-subtext-alpha: 1.0; 261 --color-border: 229,229,229; 262 --color-border-alpha: 1.0; 263 --color-button: 169,121,0; 264 --color-button-text: 255,255,255; 265 --color-secondary-button: 255,255,255; 266 --color-secondary-button-border: 255,255,255; 267 --color-secondary-button-text: 0,0,0; 268 --color-button-before: ; 269 --color-field: 255,255,255; 270 --color-field-alpha: 1.0; 271 --color-field-text: 0,0,0; 272 --color-link: 0,0,0; 273 --color-link-hover: 0,0,0; 274 --color-product-price-sale: 196,48,28; 275 --color-progress-bar: 13,135,86; 276 --color-foreground-lighten-60: #5e5c59; 277 --color-foreground-lighten-40: #8d8985; 278 --color-foreground-lighten-19: #beb9b4; 279--inputs-border-width: 0px; 280 --inputs-search-border-width: 0px;} 281 @media (min-width: 768px) { 282 body .desktop-color-scheme-info { 283 --color-background: 235,229,222; 284 --color-secondary-background: 255,255,255; 285 --color-primary: 196,48,28; 286 --color-text-heading: 0,0,0; 287 --color-foreground: 0,0,0; 288 --color-subtext: 71,69,67; 289 --color-subtext-alpha: 1.0; 290 --color-border: 229,229,229; 291 --color-border-alpha: 1.0; 292 --color-button: 169,121,0; 293 --color-button-text: 255,255,255; 294 --color-secondary-button: 255,255,255; 295 --color-secondary-button-border: 255,255,255; 296 --color-secondary-button-text: 0,0,0; 297 --color-button-before: ; 298 --color-field: 255,255,255; 299 --color-field-alpha: 1.0; 300 --color-field-text: 0,0,0; 301 --color-link: 0,0,0; 302 --color-link-hover: 0,0,0; 303 --color-product-price-sale: 196,48,28; 304 --color-progress-bar: 13,135,86; 305 --color-foreground-lighten-60: #5e5c59; 306 --color-foreground-lighten-40: #8d8985; 307 --color-foreground-lighten-19: #beb9b4; 308 color: rgb(var(--color-foreground)); 309 background-color: rgb(var(--color-background)); 310 } 311 } 312 @media (max-width: 767px) { 313 body .mobile-color-scheme-info { 314 --color-background: 235,229,222; 315 --color-secondary-background: 255,255,255; 316 --color-primary: 196,48,28; 317 --color-text-heading: 0,0,0; 318 --color-foreground: 0,0,0; 319 --color-subtext: 71,69,67; 320 --color-subtext-alpha: 1.0; 321 --color-border: 229,229,229; 322 --color-border-alpha: 1.0; 323 --color-button: 169,121,0; 324 --color-button-text: 255,255,255; 325 --color-secondary-button: 255,255,255; 326 --color-secondary-button-border: 255,255,255; 327 --color-secondary-button-text: 0,0,0; 328 --color-button-before: ; 329 --color-field: 255,255,255; 330 --color-field-alpha: 1.0; 331 --color-field-text: 0,0,0; 332 --color-link: 0,0,0; 333 --color-link-hover: 0,0,0; 334 --color-product-price-sale: 196,48,28; 335 --color-progress-bar: 13,135,86; 336 --color-foreground-lighten-60: #5e5c59; 337 --color-foreground-lighten-40: #8d8985; 338 --color-foreground-lighten-19: #beb9b4; 339 color: rgb(var(--color-foreground)); 340 background-color: rgb(var(--color-background)); 341 } 342 } 343 344 345.color-scheme-a3528f65-b143-4269-9de5-f0628df92589 { 346 --color-background: 46,38,87; 347 --color-secondary-background: 237,237,237; 348 --color-primary: 196,48,28; 349 --color-text-heading: 255,255,255; 350 --color-foreground: 255,255,255; 351 --color-subtext: 255,255,255; 352 --color-subtext-alpha: 1.0; 353 --color-border: 229,229,229; 354 --color-border-alpha: 1.0; 355 --color-button: 169,121,0; 356 --color-button-text: 255,255,255; 357 --color-secondary-button: 169,121,0; 358 --color-secondary-button-border: 169,121,0; 359 --color-secondary-button-text: 169,121,0; 360 --color-button-before: ; 361 --color-field: 255,255,255; 362 --color-field-alpha: 1.0; 363 --color-field-text: 233,190,85; 364 --color-link: 255,255,255; 365 --color-link-hover: 255,255,255; 366 --color-product-price-sale: 196,48,28; 367 --color-progress-bar: 4,155,110; 368 --color-foreground-lighten-60: #aba8bc; 369 --color-foreground-lighten-40: #827d9a; 370 --color-foreground-lighten-19: #564f77; 371--inputs-border-width: 0px; 372 --inputs-search-border-width: 0px;} 373 @media (min-width: 768px) { 374 body .desktop-color-scheme-a3528f65-b143-4269-9de5-f0628df92589 { 375 --color-background: 46,38,87; 376 --color-secondary-background: 237,237,237; 377 --color-primary: 196,48,28; 378 --color-text-heading: 255,255,255; 379 --color-foreground: 255,255,255; 380 --color-subtext: 255,255,255; 381 --color-subtext-alpha: 1.0; 382 --color-border: 229,229,229; 383 --color-border-alpha: 1.0; 384 --color-button: 169,121,0; 385 --color-button-text: 255,255,255; 386 --color-secondary-button: 169,121,0; 387 --color-secondary-button-border: 169,121,0; 388 --color-secondary-button-text: 169,121,0; 389 --color-button-before: ; 390 --color-field: 255,255,255; 391 --color-field-alpha: 1.0; 392 --color-field-text: 233,190,85; 393 --color-link: 255,255,255; 394 --color-link-hover: 255,255,255; 395 --color-product-price-sale: 196,48,28; 396 --color-progress-bar: 4,155,110; 397 --color-foreground-lighten-60: #aba8bc; 398 --color-foreground-lighten-40: #827d9a; 399 --color-foreground-lighten-19: #564f77; 400 color: rgb(var(--color-foreground)); 401 background-color: rgb(var(--color-background)); 402 } 403 } 404 @media (max-width: 767px) { 405 body .mobile-color-scheme-a3528f65-b143-4269-9de5-f0628df92589 { 406 --color-background: 46,38,87; 407 --color-secondary-background: 237,237,237; 408 --color-primary: 196,48,28; 409 --color-text-heading: 255,255,255; 410 --color-foreground: 255,255,255; 411 --color-subtext: 255,255,255; 412 --color-subtext-alpha: 1.0; 413 --color-border: 229,229,229; 414 --color-border-alpha: 1.0; 415 --color-button: 169,121,0; 416 --color-button-text: 255,255,255; 417 --color-secondary-button: 169,121,0; 418 --color-secondary-button-border: 169,121,0; 419 --color-secondary-button-text: 169,121,0; 420 --color-button-before: ; 421 --color-field: 255,255,255; 422 --color-field-alpha: 1.0; 423 --color-field-text: 233,190,85; 424 --color-link: 255,255,255; 425 --color-link-hover: 255,255,255; 426 --color-product-price-sale: 196,48,28; 427 --color-progress-bar: 4,155,110; 428 --color-foreground-lighten-60: #aba8bc; 429 --color-foreground-lighten-40: #827d9a; 430 --color-foreground-lighten-19: #564f77; 431 color: rgb(var(--color-foreground)); 432 background-color: rgb(var(--color-background)); 433 } 434 } 435 436 437.color-scheme-10762f2c-ac64-45f0-9472-7c2b4e9f09a0 { 438 --color-background: 255,255,255; 439 --color-secondary-background: 237,237,237; 440 --color-primary: 196,48,28; 441 --color-text-heading: 0,0,0; 442 --color-foreground: 0,0,0; 443 --color-subtext: 77,77,77; 444 --color-subtext-alpha: 1.0; 445 --color-border: 229,229,229; 446 --color-border-alpha: 1.0; 447 --color-button: 169,121,0; 448 --color-button-text: 255,255,255; 449 --color-secondary-button: 238,236,236; 450 --color-secondary-button-border: 238,236,236; 451 --color-secondary-button-text: 0,0,0; 452 --color-button-before: ; 453 --color-field: 255,255,255; 454 --color-field-alpha: 1.0; 455 --color-field-text: 0,0,0; 456 --color-link: 0,0,0; 457 --color-link-hover: 0,0,0; 458 --color-product-price-sale: 196,48,28; 459 --color-progress-bar: 4,155,110; 460 --color-foreground-lighten-60: #666666; 461 --color-foreground-lighten-40: #999999; 462 --color-foreground-lighten-19: #cfcfcf; 463--inputs-border-width: 1px; 464 --inputs-search-border-width: 2px;} 465 @media (min-width: 768px) { 466 body .desktop-color-scheme-10762f2c-ac64-45f0-9472-7c2b4e9f09a0 { 467 --color-background: 255,255,255; 468 --color-secondary-background: 237,237,237; 469 --color-primary: 196,48,28; 470 --color-text-heading: 0,0,0; 471 --color-foreground: 0,0,0; 472 --color-subtext: 77,77,77; 473 --color-subtext-alpha: 1.0; 474 --color-border: 229,229,229; 475 --color-border-alpha: 1.0; 476 --color-button: 169,121,0; 477 --color-button-text: 255,255,255; 478 --color-secondary-button: 238,236,236; 479 --color-secondary-button-border: 238,236,236; 480 --color-secondary-button-text: 0,0,0; 481 --color-button-before: ; 482 --color-field: 255,255,255; 483 --color-field-alpha: 1.0; 484 --color-field-text: 0,0,0; 485 --color-link: 0,0,0; 486 --color-link-hover: 0,0,0; 487 --color-product-price-sale: 196,48,28; 488 --color-progress-bar: 4,155,110; 489
489 --color-foreground-lighten-60: #666666; 490 --color-foreground-lighten-40: #999999; 491 --color-foreground-lighten-19: #cfcfcf; 492 color: rgb(var(--color-foreground)); 493 background-color: rgb(var(--color-background)); 494 } 495 } 496 @media (max-width: 767px) { 497 body .mobile-color-scheme-10762f2c-ac64-45f0-9472-7c2b4e9f09a0 { 498 --color-background: 255,255,255; 499 --color-secondary-background: 237,237,237; 500 --color-primary: 196,48,28; 501 --color-text-heading: 0,0,0; 502 --color-foreground: 0,0,0; 503 --color-subtext: 77,77,77; 504 --color-subtext-alpha: 1.0; 505 --color-border: 229,229,229; 506 --color-border-alpha: 1.0; 507 --color-button: 169,121,0; 508 --color-button-text: 255,255,255; 509 --color-secondary-button: 238,236,236; 510 --color-secondary-button-border: 238,236,236; 511 --color-secondary-button-text: 0,0,0; 512 --color-button-before: ; 513 --color-field: 255,255,255; 514 --color-field-alpha: 1.0; 515 --color-field-text: 0,0,0; 516 --color-link: 0,0,0; 517 --color-link-hover: 0,0,0; 518 --color-product-price-sale: 196,48,28; 519 --color-progress-bar: 4,155,110; 520 --color-foreground-lighten-60: #666666; 521 --color-foreground-lighten-40: #999999; 522 --color-foreground-lighten-19: #cfcfcf; 523 color: rgb(var(--color-foreground)); 524 background-color: rgb(var(--color-background)); 525 } 526 } 527 528 529.color-scheme-4719399a-8a66-454e-b61f-affdeb519d02 { 530 --color-background: 14,8,42; 531 --color-secondary-background: 237,237,237; 532 --color-primary: 196,48,28; 533 --color-text-heading: 255,255,255; 534 --color-foreground: 255,255,255; 535 --color-subtext: 239,215,222; 536 --color-subtext-alpha: 1.0; 537 --color-border: 255,255,255; 538 --color-border-alpha: 1.0; 539 --color-button: 234,57,109; 540 --color-button-text: 255,255,255; 541 --color-secondary-button: 238,236,236; 542 --color-secondary-button-border: 238,236,236; 543 --color-secondary-button-text: 0,0,0; 544 --color-button-before: ; 545 --color-field: 255,255,255; 546 --color-field-alpha: 1.0; 547 --color-field-text: 0,0,0; 548 --color-link: 255,255,255; 549 --color-link-hover: 255,255,255; 550 --color-product-price-sale: 196,48,28; 551 --color-progress-bar: 4,155,110; 552 --color-foreground-lighten-60: #9f9caa; 553 --color-foreground-lighten-40: #6e6b7f; 554 --color-foreground-lighten-19: #3c3752; 555--inputs-border-width: 0px; 556 --inputs-search-border-width: 0px;} 557 @media (min-width: 768px) { 558 body .desktop-color-scheme-4719399a-8a66-454e-b61f-affdeb519d02 { 559 --color-background: 14,8,42; 560 --color-secondary-background: 237,237,237; 561 --color-primary: 196,48,28; 562 --color-text-heading: 255,255,255; 563 --color-foreground: 255,255,255; 564 --color-subtext: 239,215,222; 565 --color-subtext-alpha: 1.0; 566 --color-border: 255,255,255; 567 --color-border-alpha: 1.0; 568 --color-button: 234,57,109; 569 --color-button-text: 255,255,255; 570 --color-secondary-button: 238,236,236; 571 --color-secondary-button-border: 238,236,236; 572 --color-secondary-button-text: 0,0,0; 573 --color-button-before: ; 574 --color-field: 255,255,255; 575 --color-field-alpha: 1.0; 576 --color-field-text: 0,0,0; 577 --color-link: 255,255,255; 578 --color-link-hover: 255,255,255; 579 --color-product-price-sale: 196,48,28; 580 --color-progress-bar: 4,155,110; 581 --color-foreground-lighten-60: #9f9caa; 582 --color-foreground-lighten-40: #6e6b7f; 583 --color-foreground-lighten-19: #3c3752; 584 color: rgb(var(--color-foreground)); 585 background-color: rgb(var(--color-background)); 586 } 587 } 588 @media (max-width: 767px) { 589 body .mobile-color-scheme-4719399a-8a66-454e-b61f-affdeb519d02 { 590 --color-background: 14,8,42; 591 --color-secondary-background: 237,237,237; 592 --color-primary: 196,48,28; 593 --color-text-heading: 255,255,255; 594 --color-foreground: 255,255,255; 595 --color-subtext: 239,215,222; 596 --color-subtext-alpha: 1.0; 597 --color-border: 255,255,255; 598 --color-border-alpha: 1.0; 599 --color-button: 234,57,109; 600 --color-button-text: 255,255,255; 601 --color-secondary-button: 238,236,236; 602 --color-secondary-button-border: 238,236,236; 603 --color-secondary-button-text: 0,0,0; 604 --color-button-before: ; 605 --color-field: 255,255,255; 606 --color-field-alpha: 1.0; 607 --color-field-text: 0,0,0; 608 --color-link: 255,255,255; 609 --color-link-hover: 255,255,255; 610 --color-product-price-sale: 196,48,28; 611 --color-progress-bar: 4,155,110;
612 --color-foreground-lighten-60: #9f9caa; 613 --color-foreground-lighten-40: #6e6b7f; 614 --color-foreground-lighten-19: #3c3752; 615 color: rgb(var(--color-foreground)); 616 background-color: rgb(var(--color-background)); 617 } 618 } 619 620 621 body, .color-scheme-1, .color-scheme-info, .color-scheme-a3528f65-b143-4269-9de5-f0628df92589, .color-scheme-10762f2c-ac64-45f0-9472-7c2b4e9f09a0, .color-scheme-4719399a-8a66-454e-b61f-affdeb519d02 { 622 color: rgb(var(--color-foreground)); 623 background-color: rgb(var(--color-background)); 624 } 625 626 :root { 627 /* Animation variable */ 628 --animation-long: .7s cubic-bezier(.3, 1, .3, 1); 629 --animation-nav: .5s cubic-bezier(.6, 0, .4, 1); 630 --animation-default: .5s cubic-bezier(.3, 1, .3, 1); 631 --animation-fast: .3s cubic-bezier(.7, 0, .3, 1); 632 --animation-button: .4s ease; 633 --transform-origin-start: left; 634 --transform-origin-end: right; 635 --duration-default: 200ms; 636 --duration-image: 1000ms; 637 638 --font-body-family: Archivo, sans-serif; 639 --font-body-style: normal; 640 --font-body-weight: 400; 641 --font-body-weight-bolder: 700; 642 --font-body-weight-bold: 600; 643 --font-body-size: 1.5rem; 644 --font-body-line-height: 1.6; 645 646 --font-heading-family: Archivo, sans-serif; 647 --font-heading-style: normal; 648 --font-heading-weight: 700; 649 --font-heading-letter-spacing: 0.0em; 650 --font-heading-transform: none; 651 --font-heading-scale: 1.0; 652 --font-heading-mobile-scale: 0.7; 653 654 --font-hd1-transform:none; 655 656 --font-subheading-family: Archivo, sans-serif; 657 --font-subheading-weight: 700; 658 --font-subheading-scale: 1.06; 659 --font-subheading-transform: none; 660 --font-subheading-letter-spacing: 0.02em; 661 662 --font-navigation-family: Archivo, sans-serif; 663 --font-navigation-weight: 700; 664 --navigation-transform: none; 665 666 --font-button-family: Archivo, sans-serif; 667 --font-button-weight: 700; 668 --buttons-letter-spacing: 0.0em; 669 --buttons-transform: none; 670 --buttons-height: 4.8rem; 671 --buttons-border-width: 1px; 672 673 --font-pcard-title-family: Archivo, sans-serif; 674 --font-pcard-title-style: normal; 675 --font-pcard-title-weight: 400; 676 --font-pcard-title-scale: 1.0; 677 --font-pcard-title-transform: none; 678 --font-pcard-title-size: 1.5rem; 679 --font-pcard-title-line-height: 1.6; 680 --font-pcard-price-family: Archivo, sans-serif; 681 --font-pcard-price-style: normal; 682 --font-pcard-price-weight: 700; 683 --font-pcard-badge-family: Archivo, sans-serif; 684 --font-pcard-badge-style: normal;
685 --font-pcard-badge-weight: 700; 686 687 --font-hd1-size: 7.4285744rem; 688 --font-hd2-size: 5.2rem; 689 --font-h1-size: calc(var(--font-heading-scale) * 4rem); 690 --font-h2-size: calc(var(--font-heading-scale) * 3.2rem); 691 --font-h3-size: calc(var(--font-heading-scale) * 2.8rem); 692 --font-h4-size: calc(var(--font-heading-scale) * 2.2rem); 693 --font-h5-size: calc(var(--font-heading-scale) * 1.8rem); 694 --font-h6-size: calc(var(--font-heading-scale) * 1.6rem); 695 --font-subheading-size: calc(var(--font-subheading-scale) * var(--font-body-size)); 696 697 --color-badge-sale: #cb321e; 698 --color-badge-sale-text: #FFFFFF; 699 --color-badge-soldout: #ADADAD; 700 --color-badge-soldout-text: #FFFFFF; 701 --color-badge-hot: #1c52d7; 702 --color-badge-hot-text: #FFFFFF; 703 --color-badge-new: #27923b; 704 --color-badge-new-text: #FFFFFF; 705 --color-badge-coming-soon: #7A34D6; 706 --color-badge-coming-soon-text: #FFFFFF; 707 --color-cart-bubble: #D63A2F; 708 --color-keyboard-focus: 11 97 205; 709 710 --buttons-radius: 10.0rem; 711 --inputs-radius: 10.0rem; 712 --textareas-radius: 1.0rem; 713 --blocks-radius: 1.0rem; 714 --blocks-radius-mobile: 0.8rem; 715 --small-blocks-radius: 0.5rem; 716 --medium-blocks-radius: 0.6rem; 717 --pcard-radius: 1.0rem; 718 --pcard-inner-radius: 0.6rem; 719 --badges-radius: 4.0rem; 720 721 --page-width: 1790px; 722 --page-width-margin: 0rem; 723 --header-padding-bottom: 3.2rem; 724 --header-padding-bottom-mobile: 2.4rem; 725 --header-padding-bottom-large: 6rem; 726 --header-padding-bottom-large-lg: 3.2rem; 727 } 728 729 *, 730 *::before, 731 *::after { 732 box-sizing: inherit; 733 } 734 735 html { 736 touch-action: manipulation; 737 box-sizing: border-box; 738 font-size: 62.5%; 739 height: 100%; 740 } 741 742 body { 743 min-height: 100%; 744 margin: 0; 745 font-family: var(--font-body-family); 746 font-style: var(--font-body-style); 747 font-weight: var(--font-body-weight); 748 font-size: var(--font-body-size); 749 line-height: var(--font-body-line-height); 750 -webkit-font-smoothing: antialiased; 751 -moz-osx-font-smoothing: grayscale; 752 touch-action: manipulation; 753 -webkit-text-size-adjust: 100%; 754 font-feature-settings: normal; 755 } 756 @media (min-width: 1865px) { 757 .swiper-controls--outside { 758 --swiper-navigation-offset-x: calc((var(--swiper-navigation-size) + 2.7rem) * -1); 759 } 760 } 761</style> 762 763 <link rel="preload" as="font" href="//bettys.io/cdn/fonts/archivo/archivo_n4.dc8d917cc69af0a65ae04d01fd8eeab28a3573c9.woff2" type="font/woff2" crossorigin> 764 765 766 <link rel="preload" as="font" href="//bettys.io/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2" type="font/woff2" crossorigin> 767 768<link href="//bettys.io/cdn/shop/t/22/assets/vendor.css?v=94183888130352382221790187175" rel="stylesheet" type="text/css" media="all" /><link href="//bettys.io/cdn/shop/t/22/assets/theme.css?v=39212389794463413881790187175" rel="stylesheet" type="text/css" media="all" /><link href="//bettys.io/cdn/shop/t/22/assets/compare.css?v=90784101997925267681790187175" rel="stylesheet" type="text/css" media="all" />
768<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
768<meta name="google-site-verification" content="5jnEYPB2BZfqK12pddoiDEIx2ZJ9R-GwXjE6QO3nJPU"> 769<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/104782168403/digital_wallets/dialog"> 770<meta id="in-context-paypal-metadata" data-shop-id="104782168403" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="DKK"> 771<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
771<script async="async" src="/checkouts/internal/preloads.js?locale=da-DK"></script>
vendor: 1 bytes, line 771
771
772<script id="shopify-features" type="application/json">{"accessToken":"1dba09688b7ec8c083e8a2ca378f5c9e","betas":["rich-media-storefront-analytics"],"domain":"bettys.io","predictiveSearch":true,"shopId":104782168403,"locale":"da"}</script>
vendor: 1 bytes, line 772
772
773<script>var Shopify = Shopify || {}; 774Shopify.shop = "prxfje-pv.myshopify.com"; 775Shopify.locale = "da"; 776Shopify.currency = {"active":"DKK","rate":"1.0"}; 777Shopify.country = "DK"; 778Shopify.theme = {"name":"Bettys.dk","id":207657795923,"schema_name":"Hyper","schema_version":"1.3.3","theme_store_id":3247,"role":"main"}; 779Shopify.theme.handle = "null"; 780Shopify.theme.style = {"id":null,"handle":null}; 781Shopify.cdnHost = "bettys.io/cdn"; 782Shopify.routes = Shopify.routes || {}; 783Shopify.routes.root = "/"; 784Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 785Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 786Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 787Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 787
787
788<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 788
788
789<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 789
789
790<script> 791 window.Shopify = window.Shopify || {}; 792 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 793 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 794 window.Shopify.SignInWithShop.eligible = false; 795</script>
vendor: 1 bytes, line 795
795
796<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 796
796
797<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.da.esm.js"></script>
vendor: 1 bytes, line 797
797
798<script type="module"> 799 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.da.esm.js"); 800 801 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 802 803</script>
vendor: 1 bytes, line 803
803
804<script id="__st">var __st={"a":104782168403,"offset":7200,"reqid":"4f82007c-f062-4987-b342-d1e283325981-1791521361","pageurl":"bettys.io\/","u":"2d1aabbe5a62","p":"home"};</script>
vendor: 1 bytes, line 804
804
805<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 805
805
806<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:'Beskyttet af hCaptcha',privacyText:'Beskyttelse af persondata',termsText:'Vilkår'},(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 806
806
807<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//bettys.io/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 807
807
808<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 = "//bettys.io/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>
808<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 808
808
809<script> 810 window.Shopify = window.Shopify || {}; 811 window.Shopify.MCP = window.Shopify.MCP || {}; 812 window.Shopify.MCP.enabled = true; 813 window.Shopify.MCP.shop = "prxfje-pv.myshopify.com"; 814 window.Shopify.MCP.mcpEndpoint = "https:\/\/bettys.io\/api\/mcp"; 815 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 816</script>
vendor: 1 bytes, line 816
816
817<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("\/\/bettys.io\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 818</script>
vendor: 1 bytes, line 818
818
819<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://bettys.io/cdn/shopifycloud/portable-wallets/latest/portable-wallets.da.js",t.type="module",document.head.appendChild(t)}}; 820</script>
vendor: 1 bytes, line 820
820
821<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 822 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); 823</script>
vendor: 1 bytes, line 823
823
824<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})}})); 825</script>
vendor: 1 bytes, line 825
825
826<script id='scb4127' type='text/javascript' async='' src='https://bettys.io/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
826<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://bettys.io/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 827<style id="shopify-accelerated-checkout-cart"> 828 #shopify-buyer-consent { 829 margin-top: 1em; 830 display: inline-block; 831 width: 100%; 832} 833 834#shopify-buyer-consent.hidden { 835 display: none; 836} 837 838#shopify-subscription-policy-button { 839 background: none; 840 border: none; 841 padding: 0; 842 text-decoration: underline; 843 font-size: inherit; 844 cursor: pointer; 845} 846 847#shopify-subscription-policy-button::before { 848 box-shadow: none; 849} 850 851 </style> 852
853<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
853 854
854<script src="//bettys.io/cdn/shop/t/22/assets/vendor.js?v=61812808707968339591790187175" defer="defer"></script>
854 855
855<script src="//bettys.io/cdn/shop/t/22/assets/theme.js?v=23082109554247587801790187175" defer="defer"></script>
855<script> 856 if (Shopify.designMode) { 857 document.documentElement.classList.add('shopify-design-mode'); 858 } 859 </script>
vendor: 1 bytes, line 859
859
860<script> 861 window.FoxTheme = window.FoxTheme || {}; 862 document.documentElement.classList.replace('no-js', 'js'); 863 window.shopUrl = 'https://bettys.io'; 864 window.FoxTheme.routes = { 865 cart_add_url: '/cart/add', 866 cart_change_url: '/cart/change', 867 cart_update_url: '/cart/update', 868 cart_url: '/cart', 869 shop_url: 'https://bettys.io', 870 predictive_search_url: '/search/suggest', 871 root_url: '/', 872 }; 873 874 FoxTheme.shippingCalculatorStrings = { 875 error: "Translation missing: da.general.cart.shipping_calculator.error", 876 notFound: "Translation missing: da.general.cart.shipping_calculator.not_found", 877 oneResult: "Translation missing: da.general.cart.shipping_calculator.one_result", 878 multipleResults: "Translation missing: da.general.cart.shipping_calculator.multiple_results", 879 }; 880 881 FoxTheme.settings = { 882 cartType: "drawer", 883 moneyFormat: "{{amount_with_comma_separator}} kr", 884 themeName: 'Hyper', 885 themeVersion: '1.3.3' 886 } 887 888 FoxTheme.compare = { 889 alertMessage: `Translation missing: da.products.compare.alert_message`, 890 maxProductsInCompare: 3 891 } 892 893 FoxTheme.variantStrings = { 894 addToCart: `Translation missing: da.products.product.add_to_cart`, 895 addToCartShort: `Translation missing: da.products.product.add_to_cart_short`, 896 soldOut: `Translation missing: da.products.product.sold_out`, 897 unavailable: `Translation missing: da.products.product.unavailable`, 898 unavailable_with_option: `Translation missing: da.products.product.value_unavailable`, 899 }; 900 901 FoxTheme.cartStrings = { 902 error: `Translation missing: da.sections.cart.cart_error`, 903 quantityError: `Translation missing: da.sections.cart.cart_quantity_error_html`, 904 duplicateDiscountError: `Translation missing: da.general.cart.coupon.duplicate_error_message`, 905 applyDiscountError: `Translation missing: da.general.cart.coupon.apply_error_message`, 906 }; 907 908 FoxTheme.quickOrderListStrings = { 909 itemsAdded: "Translation missing: da.sections.quick_order_list.items_added.other", 910 itemAdded: "Translation missing: da.sections.quick_order_list.items_added.one", 911 itemsRemoved: "Translation missing: da.sections.quick_order_list.items_removed.other", 912 itemRemoved: "Translation missing: da.sections.quick_order_list.items_removed.one", 913 viewCart: "Translation missing: da.sections.quick_order_list.view_cart", 914 each: "Translation missing: da.sections.quick_order_list.each", 915 minError: "Translation missing: da.sections.quick_order_list.min_error", 916 maxError: "Translation missing: da.sections.quick_order_list.max_error", 917 stepError: "Translation missing: da.sections.quick_order_list.step_error" 918 }; 919 920 FoxTheme.accessibilityStrings = { 921 imageAvailable: `Translation missing: da.products.product.media.image_available`, 922 shareSuccess: `Kopieret`, 923 pauseSlideshow: `Translation missing: da.sections.slideshow.pause_slideshow`, 924 playSlideshow: `Translation missing: da.sections.slideshow.play_slideshow`, 925 recipientFormExpanded: `Translation missing: da.recipient.form.expanded`, 926 recipientFormCollapsed: `Translation missing: da.recipient.form.collapsed`, 927 countrySelectorSearchCount: `Translation missing: da.localization.country_results_count`, 928 }; 929</script>
929 930 931 932 933 <link href="//bettys.io/cdn/shop/t/22/assets/mincashback-blog.css?v=3014779728627868771790187175" rel="stylesheet" type="text/css" media="all" /> 934<link rel="manifest" href="//bettys.io/cdn/shop/t/22/assets/bettys-app.json?v=89282917635751260431791051954"> 935<link rel="apple-touch-icon" href="https://cdn.shopify.com/s/files/1/1047/8216/8403/files/betty-app-180.png"> 936<meta name="mobile-web-app-capable" content="yes"> 937<meta name="apple-mobile-web-app-capable" content="yes"> 938<meta name="apple-mobile-web-app-title" content="Bettys"> 939<meta name="apple-mobile-web-app-status-bar-style" content="default">
940<script> 941 window.addEventListener('beforeinstallprompt', function (e) { e.preventDefault(); window.bettysInstall = e; document.dispatchEvent(new Event('bettys-kan-installeres')); }); 942 window.addEventListener('appinstalled', function () { window.bettysInstall = null; try { localStorage.setItem('bettys_app', '1'); } catch (e) {} }); 943</script>
943 944 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
945<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: 104782168403,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 945
945
946<script> 947 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 948</script>
vendor: 1 bytes, line 948
948
949<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}
949).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: 104782168403,storefrontBaseUrl: "https://bettys.io",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://bettys.io/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"5392793939","configuration":"{\"accountID\":\"Tx3Cz8\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"5110530387","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-JZGG66P0XB\\\",\\\"GT-MQDWNJ2H\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-JZGG66P0XB\\\",\\\"MC-2B0NRS57R4\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-JZGG66P0XB\\\",\\\"MC-2B0NRS57R4\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-JZGG66P0XB\\\",\\\"MC-2B0NRS57R4\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-JZGG66P0XB\\\"}],\\\"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":"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":"Bettys","paymentSettings":{"currencyCode":"DKK"},"myshopifyDomain":"prxfje-pv.myshopify.com","countryCode":"DK","storefrontUrl":"https:\/\/bettys.io"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"
94910544086483283","handle":"yuaiahaircare","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53503103074643","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10461196910931","handle":"globalurbanjewelry","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53146148897107","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10548251853139","handle":"aerislumen","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53522641453395","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10538025320787","handle":"amazinganimals","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53475825353043","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10509042581843","handle":"beerpongshoppen","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53346944352595","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10859587109203","handle":"apopro","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54977936326995","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10674578456915","handle":"cdon","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54147238003027","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10550444458323","handle":"brusefilteret","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53531504050515","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10459252523347","handle":"runmate","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53138042552659","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10634881204563","handle":"maetogmodig","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53956286841171","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10551586128211","handle":"aarideudstyr","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53536702497107","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10634944086355","handle":"prismila","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53956529652051","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10674498699603","handle":"vanillacopenhagen","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54146896560467","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10692286513491","handle":"ginatricot","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54184982413651","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10457987973459","handle":"haakaa","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53131706433875","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
949,{"id":"10469418533203","handle":"deluxecovers","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53177588580691","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://bettys.io/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"207657795923","themeStoreId":"3247","themePublished":"true","eventMetadataId":"c2a846d2-fa6e-4dc0-b7a7-237d2ef1631e","pageType":"home","shopId":"104782168403","storefrontBaseUrl":"https:\/\/bettys.io","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
949<script> 950 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 951 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 952 window.ShopifyAnalytics.meta.currency = 'DKK'; 953 var meta = {"page":{"pageType":"home","requestId":"4f82007c-f062-4987-b342-d1e283325981-1791521361"}}; 954 for (var attr in meta) { 955 window.ShopifyAnalytics.meta[attr] = meta[attr]; 956 } 957</script>
vendor: 1 bytes, line 957
957
958<script class="analytics"> 959 (function () { 960 var customDocumentWrite = function(content) { 961 var jquery = null; 962 963 if (window.jQuery) { 964 jquery = window.jQuery; 965 } else if (window.Checkout && window.Checkout.$) { 966 jquery = window.Checkout.$; 967 } 968 969 if (jquery) { 970 jquery('body').append(content); 971 } 972 }; 973 974 var hasLoggedConversion = function(token) { 975 if (token) { 976 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 977 } 978 return false; 979 } 980 981 var setCookieIfConversion = function(token) { 982 if (token) { 983 var twoMonthsFromNow = new Date(Date.now()); 984 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 985 986 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 987 } 988 } 989 990 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 991 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 992 if (trekkie.integrations) { 993 return; 994 } 995 trekkie.methods = [ 996 'identify', 997 'page', 998 'ready', 999 'track', 1000 'trackForm', 1001 'trackLink' 1002 ]; 1003 trekkie.factory = function(method) { 1004 return function() { 1005 var args = Array.prototype.slice.call(arguments); 1006 args.unshift(method); 1007 trekkie.push(args); 1008 if (method == 'track' || method == 'page') { 1009 var pageUrl; 1010 try { 1011 pageUrl = window.location.href; 1012 } catch (e) {} 1013 var pageReferrer; 1014 try { 1015 pageReferrer = document.referrer; 1016 } catch (e) {} 1017 try { 1018 if (window.__TREKKIE_SHIM_QUEUE == null) { 1019 window.__TREKKIE_SHIM_QUEUE = []; 1020 } 1021 window.__TREKKIE_SHIM_QUEUE.push({ 1022 from: 'trekkie-stub', 1023 method: method, 1024 args: args.slice(1), 1025 pageContext: { 1026 url: pageUrl, 1027 referrer: pageReferrer 1028 } 1029 }); 1030 } catch (e) { 1031 // no-op 1032 } 1033 } 1034 return trekkie; 1035 }; 1036 }; 1037 for (var i = 0; i < trekkie.methods.length; i++) { 1038 var key = trekkie.methods[i]; 1039 trekkie[key] = trekkie.factory(key); 1040 } 1041 trekkie.load = function(config) { 1042 trekkie.config = config || {}; 1043 trekkie.config.initialDocumentCookie = document.cookie; 1044 var first = document.getElementsByTagName('script')[0]; 1045var script = document.createElement('script'); 1046script.type = 'text/javascript'; 1047script.onerror = function(e) { 1048 var scriptFallback = document.createElement('script'); 1049 scriptFallback.type = 'text/javascript'; 1050 scriptFallback.onerror = function(error) { 1051 var Monorail = { 1052 produce: function produce(monorailDomain, schemaId, payload) { 1053 var currentMs = new Date().getTime(); 1054 var event = { 1055 schema_id: schemaId, 1056 payload: payload, 1057 metadata: { 1058 event_created_at_ms: currentMs, 1059 event_sent_at_ms: currentMs 1060 } 1061 }; 1062 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1063 }, 1064 sendRequest: function sendRequest(endpointUrl, payload) { 1065 // Try the sendBeacon API 1066 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1067 var blobData = new window.Blob([payload], { 1068 type: 'text/plain' 1069 }); 1070 1071 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1072 return true; 1073 } // sendBeacon was not successful 1074 1075 } // XHR beacon 1076 1077 var xhr = new XMLHttpRequest(); 1078 1079 try { 1080 xhr.open('POST', endpointUrl); 1081 xhr.setRequestHeader('Content-Type', 'text/plain'); 1082 xhr.send(payload); 1083 } catch (e) { 1084 console.log(e); 1085 } 1086 1087 return false; 1088 }, 1089 isIos12: function isIos12() { 1090 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1091 } 1092 }; 1093 Monorail.produce('monorail-edge.shopifysvc.com', 1094 'trekkie_storefront_load_errors/1.1', 1095 {shop_id: 104782168403, 1096 theme_id: 207657795923, 1097 app_name: "storefront", 1098 context_url: window.location.href, 1099 source_url: "//bettys.io/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 1100 1101 }; 1102 scriptFallback.async = true; 1103 scriptFallback.src = '//bettys.io/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1104 first.parentNode.insertBefore(scriptFallback, first); 1105}; 1106script.async = true; 1107script.src = '//bettys.io/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1108first.parentNode.insertBefore(script, first); 1109 1110 }; 1111 trekkie.load( 1112 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":104782168403,"isMerchantRequest":null,"themeId":207657795923,"themeCityHash":"8039873078282836762","contentLanguage":"da","currency":"DKK","eventMetadataId":"c2a846d2-fa6e-4dc0-b7a7-237d2ef1631e"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1113 ); 1114 1115 var loaded = false;
1116 trekkie.ready(function() { 1117 if (loaded) return; 1118 loaded = true; 1119 1120 window.ShopifyAnalytics.lib = window.trekkie; 1121 1122 var originalDocumentWrite = document.write; 1123 document.write = customDocumentWrite; 1124 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1125 document.write = originalDocumentWrite; 1126 1127 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1128 var token = match? match[1]: undefined; 1129 if (!hasLoggedConversion(token)) { 1130 setCookieIfConversion(token); 1131 1132 } 1133 }); 1134 1135 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"4f82007c-f062-4987-b342-d1e283325981-1791521361","shopifyEmitted":true}); 1136 1137 var eventsListenerScript = document.createElement('script'); 1138 eventsListenerScript.async = true; 1139 eventsListenerScript.src = "//bettys.io/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1140 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1141})();</script>
vendor: 1 bytes, line 1141
1141
1142<script 1143 defer 1144 src="https://bettys.io/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 1145 data-application="storefront-renderer" 1146 data-shop-id="104782168403" 1147 data-render-region="gcp-us-west1" 1148 data-page-type="index" 1149 data-theme-instance-id="207657795923" 1150 data-theme-name="Hyper" 1151 data-theme-version="1.3.3" 1152 data-monorail-region="shop_domain" 1153 data-resource-timing-sampling-rate="10" 1154 data-shs="true" 1155 data-shs-beacon="true" 1156 data-shs-export-with-fetch="true" 1157 data-shs-logs-sample-rate="1" 1158 data-shs-beacon-endpoint="https://bettys.io/api/collect" 1159></script>
1159 1160<meta name="shopify-y" content="f4ba555a-23b8-4a2b-b5c1-5ca0f4f57780" data-expiration="1823078961000"><meta name="shopify-s" content="815fa2ca-c831-411d-9a51-c761f0b49b80" data-expiration="1791523161000"> 1161</head> 1162 1163 <body 1164 class="index-template blocks-corner--slightly" 1165 data-initializing 1166 > 1167 1168 1169 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 1170 Translation missing: da.accessibility.skip_to_text 1171 </a> 1172 1173 <div class="site-wrapper min-height-screen"> 1174 <!-- BEGIN sections: header-group --> 1175<div id="shopify-section-sections--32274034393427__header" class="shopify-section shopify-section-group-header-group header-section"><link rel="stylesheet" href="//bettys.io/cdn/shop/t/22/assets/component-custom-card.css?v=133785116062957697991790187175" media="print" fetchpriority="low" onload="this.media='all'"> 1176<link rel="preconnect" href="https://fonts.googleapis.com"> 1177<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 1178<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet">
1179<script src="//bettys.io/cdn/shop/t/22/assets/header.js?v=181256676060953023661790187175" defer="defer"></script>
1179<script src="//bettys.io/cdn/shop/t/22/assets/search.js?v=50392997344091801611790187175" defer="defer"></script>
1179<style data-shopify> 1180 /* ============================================================ 1181 Betty header â samme lyse stil og palet som forsiden 1182 pink #EA396D · navy #0E082A · dæmpet #554975 1183 baggrunde #E4D9DE / #EAE2E5 / #EFE9EC · lys pink #EFD7DE 1184 ============================================================ */ 1185 #shopify-section-sections--32274034393427__header { 1186 --logo-width: 400px; 1187 --logo-width-mobile: 200px; 1188 1189 --bt-pink:#EA396D; --bt-pink-dk:#D42C5E; --bt-pink-soft:#EAD1DA; --bt-pink-tint:#EFD7DE; 1190 --bt-navy:#0E082A; --bt-navy-4:#241C47; 1191 --bt-muted:#554975; --bt-muted-2:#7D7298; 1192 --bt-bg:#E4D9DE; --bt-panel:#EAE2E5; --bt-card:#EFE9EC; 1193 --bt-line:rgba(14,8,42,0.08); --bt-line-2:rgba(14,8,42,0.14); 1194 --bt-shadow:0 1px 2px rgba(14,8,42,0.04), 0 12px 32px rgba(14,8,42,0.07); 1195 --bt-shadow-lg:0 2px 4px rgba(14,8,42,0.05), 0 30px 70px rgba(14,8,42,0.16); 1196 --bt-font:'Plus Jakarta Sans', var(--font-body-family, system-ui), sans-serif; 1197 --mc-h: 48px; --mc-r: 14px; 1198 } 1199 #shopify-section-sections--32274034393427__header .header__top { 1200 --section-padding-top: 25px; 1201 --section-padding-bottom: 10px; 1202 } 1203 1204 /* Lys flade med et svagt pink skær i højre side â som forsidens hero. 1205 Ingen overflow her: den ville klippe brugermenuen og søgeforslagene. */ 1206 #shopify-section-sections--32274034393427__header header.header { 1207 background: var(--bt-panel) !important; 1208 border-bottom: 1px solid var(--bt-line) !important; 1209 } 1210 #shopify-section-sections--32274034393427__header .header__top { 1211 position: relative; 1212 background: transparent !important; 1213 } 1214 #shopify-section-sections--32274034393427__header .mc-glow { position: absolute; inset: 0; overflow: hidden; pointer-events: none; } 1215 #shopify-section-sections--32274034393427__header .mc-glow::before, 1216 #shopify-section-sections--32274034393427__header .mc-glow::after { content: ''; position: absolute; border-radius: 50%; } 1217 #shopify-section-sections--32274034393427__header .mc-glow::before { 1218 width: 760px; height: 760px; right: -200px; top: -520px; 1219 background: radial-gradient(circle, rgba(234,57,109,0.16) 0%, transparent 64%); 1220 } 1221 #shopify-section-sections--32274034393427__header .mc-glow::after { 1222 width: 560px; height: 560px; left: -260px; bottom: -440px; 1223 background: radial-gradient(circle, rgba(39,103,249,0.06) 0%, transparent 64%); 1224 } 1225 #shopify-section-sections--32274034393427__header .header__top > * { position: relative; z-index: 2; } 1226 #shopify-section-sections--32274034393427__header .header__top > .mc-glow { z-index: 0; } 1227 1228 /* Fælles skrifttype for de dele, vi selv har tegnet */ 1229 #shopify-section-sections--32274034393427__header .mc-header-right, 1230 #shopify-section-sections--32274034393427__header .mc-search-container, 1231 .mc-ext-banner, 1232 .mc-user-dropdown, 1233 .mdrawer-account { font-family: var(--bt-font); } 1234 1235 /* ---------- Logo ---------- */ 1236 #shopify-section-sections--32274034393427__header .header__logo--image { max-width: 150px !important; } 1237 #shopify-section-sections--32274034393427__header .header__logo--image img { width: 100%; height: auto; } 1238 #shopify-section-sections--32274034393427__header .header__logo--text, 1239 #shopify-section-sections--32274034393427__header .bt-wordmark { 1240 font-family: var(--bt-font); font-weight: 800; letter-spacing: -0.045em; line-height: 1; 1241 font-size: 32px; color: var(--bt-navy); text-decoration: none; 1242 } 1243 @media (max-width: 1023px) { #shopify-section-sections--32274034393427__header .header__logo--image { max-width: 120px !important; } } 1244 @media (max-width: 767px) { 1245 #shopify-section-sections--32274034393427__header .header__logo--image, 1246 #shopify-section-sections--32274034393427__header .header__logo--image img { max-width: 118px !important; width: 118px !important; } 1247 #shopify-section-sections--32274034393427__header .bt-wordmark { font-size: 28px; } 1248 } 1249 1250 /* ---------- Rabatkoder-link ---------- */ 1251 .mc-shop-link { 1252 display: inline-flex; align-items: center; justify-content: center; gap: 8px; 1253 height: var(--mc-h); padding: 0 18px; border-radius: var(--mc-r); 1254 background: transparent; border: none; 1255 color: var(--bt-navy); font-size: 14.5px; font-weight: 700; 1256 text-decoration: none; white-space: nowrap; flex-shrink: 0; 1257 transition: background 0.2s, color 0.2s; 1258 } 1259 .mc-shop-link:hover { background: #fff; color: var(--bt-pink); } 1260 .mc-shop-link svg { flex-shrink: 0; color: var(--bt-pink); } 1261 1262 /* ---------- Udvidelses-banner ---------- */ 1263 .mc-ext-banner { 1264 display: none; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap; 1265 background: var(--bt-navy); padding: 10px 20px; 1266 font-size: 13.5px; font-weight: 500; color: rgba(255,255,255,0.75); text-align: center; 1267 position: relative; z-index: 100001; pointer-events: auto; 1268 } 1269 .mc-ext-banner a, .mc-ext-banner__close { position: relative; z-index: 100002; pointer-events: auto; } 1270 .mc-ext-banner__av { 1271 width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; 1272 background: linear-gradient(145deg,#F2587F 0%,#EA396D 55%,#C92A5B 100%); 1273 color: #fff; font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; 1274 } 1275 .mc-ext-banner a { 1276 display: inline-flex; align-items: center; height: 30px; padding: 0 14px; border-radius: 999px; 1277 background: var(--bt-pink); color: #fff; font-weight: 700; text-decoration: none; transition: background 0.2s; 1278 } 1279 .mc-ext-banner a:hover { background: var(--bt-pink-dk); } 1280 .mc-ext-banner__close { background: none; border: none; color: rgba(255,255,255,0.4); cursor: pointer; font-size: 18px; padding: 0; line-height: 1; margin-left: 4px; } 1281 .mc-ext-banner__close:hover { color: #fff; } 1282 .mc-ext-banner.visible { display: flex; } 1283 1284 /* ---------- "Spørg Betty"-søgefeltet ---------- 1285 Afgrænset til headeren, sÃ¥ det ikke rammer forsidens eget søgefelt. */ 1286 #shopify-section-sections--32274034393427__header .mc-search-container { position: relative; width: 100%; max-width: 540px; } 1287 #shopify-section-sections--32274034393427__header .mc-search-wrap { 1288 display: flex; align-items: center; gap: 11px; width: 100%; height: var(--mc-h); padding: 0 18px; 1289 background: #fff; border: 1.5px solid #fff; border-radius: 16px; box-shadow: var(--bt-shadow); 1290 transition: border-color 0.2s, box-shadow 0.2s; 1291 } 1292 #shopify-section-sections--32274034393427__header .mc-search-wrap:focus-within { 1293 border-color: var(--bt-pink); box-shadow: 0 0 0 4px rgba(234,57,109,0.14), var(--bt-shadow); 1294 } 1295 #shopify-section-sections--32274034393427__header .mc-search-wrap svg { flex-shrink: 0; color: var(--bt-pink); width: 18px; height: 18px; } 1296 #shopify-section-sections--32274034393427__header .mc-search-wrap input { 1297 background: transparent; border: none; outline: none; box-shadow: none; width: 100%; min-width: 0; 1298 color: var(--bt-navy); font-size: 15px; font-weight: 500; font-family: inherit; 1299 } 1300 #shopify-section-sections--32274034393427__header .mc-search-wrap input::placeholder { color: var(--bt-muted-2); font-weight: 500; } 1301 #shopify-section-sections--32274034393427__header .mc-search-wrap kbd { 1302 flex-shrink: 0; padding: 3px 7px; border-radius: 7px; background: var(--bt-card); 1303 font-family: inherit; font-size: 11px; font-weight: 700; color: var(--bt-muted); 1304 } 1305 1306 /* ---------- Forslag under søgefeltet ---------- */ 1307 #shopify-section-sections--32274034393427__header .mc-search-dropdown { 1308 display: none; position: absolute; top: calc(100% + 10px); left: 0; right: 0; 1309 background: #fff; border-radius: 20px; border: 1px solid var(--bt-line); box-shadow: var(--bt-shadow-lg); 1310 overflow: hidden auto; z-index: 30; max-height: 440px; 1311 } 1312 #shopify-section-sections--32274034393427__header .mc-search-dropdown.open { display: block; } 1313 #shopify-section-sections--32274034393427__header .mc-search-intro { 1314 display: flex; align-items: center; gap: 10px; padding: 14px 16px 6px; 1315 font-size: 13px; line-height: 1.4; color: var(--bt-navy); 1316 } 1317 #shopify-section-sections--32274034393427__header .mc-search-intro span:first-child { flex-shrink: 0; } 1318 #shopify-section-sections--32274034393427__header .mc-search-result { 1319 display: flex; align-items: center; gap: 14px; padding: 11px 16px; 1320 text-decoration: none; color: var(--bt-navy); transition: background 0.15s; 1321 border-bottom: 1px solid var(--bt-line); 1322 } 1323 #shopify-section-sections--32274034393427__header .mc-search-result:last-child { border-bottom: none; } 1324 #shopify-section-sections--32274034393427__header .mc-search-result:hover { background: var(--bt-card); } 1325 #shopify-section-sections--32274034393427__header .mc-search-result__img { width: 44px; height: 44px; border-radius: 12px; object-fit: contain; background: #fff; border: 1px solid var(--bt-line); flex-shrink: 0; padding: 5px; } 1326 #shopify-section-sections--32274034393427__header .mc-search-result__info { flex: 1; min-width: 0; } 1327 #shopify-section-sections--32274034393427__header .mc-search-result__title { font-size: 14.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 1328 #shopify-section-sections--32274034393427__header .mc-search-result__cashback { display: inline-block; margin-top: 4px; padding: 2px 8px; border-radius: 7px; background: var(--bt-pink-tint); font-size: 12px; color: var(--bt-pink); font-weight: 800; } 1329 #shopify-section-sections--32274034393427__header .mc-search-result__cashback[hidden] { display: none; } 1330 #shopify-section-sections--32274034393427__header .mc-search-result__sub { display: flex; align-items: center; gap: 8px; margin-top: 3px; font-size: 12.5px; color: var(--bt-muted); } 1331 #shopify-section-sections--32274034393427__header .mc-search-result__sub b { color: var(--bt-navy); font-weight: 800; } 1332 #shopify-section-sections--32274034393427__header .mc-search-result__shop { font-size: 10.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bt-pink); } 1333 #shopify-section-sections--32274034393427__header .mc-search-spinner { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px; font-size: 13px; font-weight: 600; color: var(--bt-muted); } 1334 #shopify-section-sections--32274034393427__header .mc-search-no-results { padding: 20px 16px; text-align: center; color: var(--bt-muted); font-size: 14px; } 1335 #shopify-section-sections--32274034393427__header .mc-search-label { 1336 display: flex; align-items: center; justify-content: space-between; gap: 12px; 1337 padding: 13px 16px 7px; font-size: 10.5px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; 1338 color: var(--bt-muted-2); 1339 } 1340 #shopify-section-sections--32274034393427__header .mc-search-label button { 1341 border: none; background: none; padding: 0; cursor: pointer; font-family: inherit; 1342 font-size: 10.5px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; 1343 color: var(--bt-pink); text-decoration: underline; text-underline-offset: 3px; 1344 } 1345 #shopify-section-sections--32274034393427__header .mc-search-footer { 1346 padding: 14px 16px; text-align: center; background: var(--bt-navy); 1347 font-size: 13.5px; color: #fff; font-weight: 700; cursor: pointer; transition: background 0.15s; 1348 } 1349 #shopify-section-sections--32274034393427__header .mc-search-footer:hover { background: var(--bt-pink); } 1350 1351 /* ---------- Højre side ---------- */ 1352 .mc-header-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } 1353 1354 .mc-header-pill { 1355 display: none; align-items: center; justify-content: center; 1356 height: var(--mc-h); border-radius: var(--mc-r); 1357 background: #fff; border: 1px solid var(--bt-line); box-shadow: var(--bt-shadow); 1358 color: var(--bt-navy); font-size: 14.5px; font-weight: 700; 1359 cursor: pointer; text-decoration: none; white-space: nowrap; flex-shrink: 0; 1360 transition: color 0.2s, transform 0.2s; 1361 } 1362 .mc-header-pill:hover { color: var(--bt-pink); transform: translateY(-1px); } 1363 .mc-header-pill.visible { display: flex; } 1364 /* "Alle butikker" â vises kun, nÃ¥r man er logget ind (klassen .visible) */ 1365 .mc-cashback-chip { padding: 0 16px; gap: 8px; } 1366 .mc-cashback-chip svg { color: var(--bt-pink); } 1367 .mc-bell-btn { width: var(--mc-h); padding: 0; position: relative; } 1368 .mc-bell-dot { 1369 display: none; position: absolute; top: 8px; right: 8px; width: 10px; height: 10px; 1370 background: var(--bt-pink); border-radius: 50%; border: 2px solid #fff; 1371 } 1372 .mc-bell-dot.show { display: block; } 1373 1374 /* ---------- Login-knap ---------- */ 1375 .firebase-auth-container { display: flex; align-items: center; position: relative; z-index: 20; } 1376 .firebase-auth-btn { 1377 display: inline-flex; align-items: center; justify-content: center; gap: 9px; 1378 height: var(--mc-h); padding: 0 18px 0 8px; border-radius: var(--mc-r); 1379 background: var(--bt-navy);
1379 color: #fff !important; 1380 font-family: inherit; font-size: 14.5px; font-weight: 700; 1381 border: none; cursor: pointer; white-space: nowrap; text-decoration: none; 1382 transition: background 0.2s, transform 0.2s; 1383 } 1384 .firebase-auth-btn:hover { background: var(--bt-navy-4); transform: translateY(-1px); color: #fff !important; } 1385 .firebase-auth-btn svg { transition: transform 0.2s; } 1386 .firebase-auth-btn.open svg { transform: rotate(180deg); } 1387 /* Rund "avatar" med initialer foran navnet, når man er logget ind */ 1388 .bt-auth-av { 1389 width: 32px; height: 32px; border-radius: 10px; flex-shrink: 0; 1390 background: var(--bt-pink); color: #fff; font-size: 13px; font-weight: 800; 1391 display: inline-flex; align-items: center; justify-content: center; 1392 } 1393 1394 /* Ghost-variant når ingen er logget ind */ 1395 .firebase-auth-btn.mc-style-ghost { 1396 padding: 0 18px; background: #fff; color: var(--bt-navy) !important; 1397 border: 1px solid var(--bt-line); box-shadow: var(--bt-shadow); 1398 } 1399 .firebase-auth-btn.mc-style-ghost:hover { color: var(--bt-pink) !important; background: #fff; } 1400 .firebase-auth-btn.mc-style-ghost .bt-auth-av { display: none; } 1401 1402 .mc-auth-label-mobile { display: none; } 1403 1404 /* Konto-knapperne er usynlige (men fylder stadig), indtil Firebase har 1405 svaret. Så blinker "Opret gratis konto" og "Log ind" ikke hos indloggede. */ 1406 html:not(.mc-auth-ready) .mc-header-signup-btn, 1407 html:not(.mc-auth-ready) .firebase-auth-container { visibility: hidden; } 1408 1409 /* ---------- Opret gratis konto ---------- */ 1410 .mc-header-signup-btn { 1411 display: inline-flex; align-items: center; justify-content: center; gap: 8px; 1412 height: var(--mc-h); padding: 0 22px; border-radius: var(--mc-r); 1413 background: var(--bt-pink); color: #fff; 1414 font-family: inherit; font-size: 14.5px; font-weight: 700; 1415 border: none; cursor: pointer; white-space: nowrap; 1416 box-shadow: 0 10px 24px rgba(234,57,109,0.3); 1417 transition: background 0.2s, transform 0.2s, box-shadow 0.2s; 1418 } 1419 .mc-header-signup-btn:hover { background: var(--bt-pink-dk); transform: translateY(-1px); box-shadow: 0 14px 30px rgba(234,57,109,0.4); } 1420 1421 /* ---------- Brugermenu ---------- */ 1422 .mc-user-dropdown { 1423 display: none; position: absolute; top: calc(100% + 12px); right: 0; width: 284px; 1424 background: #fff; border-radius: 22px; border: 1px solid var(--bt-line, rgba(14,8,42,0.08)); 1425 box-shadow: 0 2px 4px rgba(14,8,42,0.05), 0 30px 70px rgba(14,8,42,0.18); 1426 overflow: hidden; z-index: 9999; animation: mcDropIn .18s ease both; 1427 } 1428 @keyframes mcDropIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } } 1429 .mc-user-dropdown.open { display: block; } 1430 .mc-user-dropdown, .mc-user-dropdown *, .mc-ext-banner *, #shopify-section-sections--32274034393427__header .mc-header-right * { box-sizing: border-box; } 1431 1432 .mc-user-dropdown__header { 1433 position: relative; overflow: hidden; padding: 18px 20px 16px; background: #0E082A; 1434 } 1435 .mc-user-dropdown__header::after { 1436 content: ''; position: absolute; width: 220px; height: 220px; right: -90px; top: -120px; border-radius: 50%; 1437 background: radial-gradient(circle, rgba(234,57,109,0.5) 0%, transparent 66%); pointer-events: none; 1438 } 1439 .mc-user-dropdown__name { position: relative; font-size: 16px; font-weight: 800; letter-spacing: -0.02em; color: #fff; margin: 0 0 2px 0; } 1440 .mc-user-dropdown__email { position: relative; font-size: 12.5px; color: rgba(255,255,255,0.62); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 1441 1442 .mc-user-dropdown__shop { 1443 display: flex; align-items: center; justify-content: center; gap: 9px; 1444 margin: 14px 14px 6px; height: 46px; border-radius: 14px; 1445 background: #EA396D; color: #fff !important; font-size: 14.5px; font-weight: 700; text-decoration: none; 1446 box-shadow: 0 10px 22px rgba(234,57,109,0.28); 1447 transition: background 0.2s, transform 0.15s; 1448 } 1449 .mc-user-dropdown__shop:hover { background: #D42C5E; color: #fff !important; transform: translateY(-1px); } 1450 .mc-user-dropdown__shop svg { width: 17px; height: 17px; flex-shrink: 0; } 1451 1452 .mc-user-dropdown__group { padding: 6px 8px; } 1453 .mc-user-dropdown__group + .mc-user-dropdown__group { border-top: 1px solid rgba(14,8,42,0.08); } 1454 .mc-user-dropdown__label { 1455 margin: 8px 12px 4px; font-size: 10.5px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; 1456 color: #7D7298; 1457 } 1458 .mc-user-dropdown__item { 1459 display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border-radius: 12px; 1460 text-decoration: none; color: #0E082A; font-size: 14.5px; font-weight: 600; font-family: inherit; 1461 border: none; background: none; text-align: left; cursor: pointer; 1462 transition: background 0.15s, color 0.15s; 1463 } 1464 .mc-user-dropdown__item:hover { background: #EFE9EC; color: #EA396D; } 1465 .mc-user-dropdown__item svg { width: 18px; height: 18px; flex-shrink: 0; color: #7D7298; transition: color 0.15s; } 1466 .mc-user-dropdown__item:hover svg { color: #EA396D; } 1467 .mc-user-dropdown__val { margin-left: auto; padding: 3px 8px; border-radius: 8px; background: #EFD7DE; font-size: 12.5px; font-weight: 800; color: #EA396D; } 1468 .mc-user-dropdown__val:empty { display: none; }
1469 .mc-user-dropdown__item--red, .mc-user-dropdown__item--red svg { color: #C43A3A; } 1470 .mc-user-dropdown__item--red:hover { background: #FBEFEF; color: #C43A3A; } 1471 .mc-user-dropdown__item--red:hover svg { color: #C43A3A; } 1472 1473 /* ---------- Kontoadgang i burger-menuen (mobil) ---------- 1474 Vises nederst i menu-drawer.liquid. Logget-ind-udgaven genbruger 1475 brugermenuens klasser ovenfor. */ 1476 .mdrawer-account { margin-top: 4px; } 1477 .mdrawer-btn { width: 100%; justify-content: center; } 1478 .mdrawer-guest { display: flex; flex-direction: column; gap: 10px; } 1479 .mdrawer-user { border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 10px 26px rgba(14,8,42,0.1); } 1480 /* .mdrawer-guest sætter selv display:flex, som ellers ville vinde over 1481 browserens [hidden]-regel. Derfor gøres [hidden] eksplicit her. */ 1482 .mdrawer-guest[hidden], 1483 .mdrawer-user[hidden] { display: none !important; } 1484 1485 #MenuDrawer .drawer__inner { background: #EFE9EC !important; color: #0E082A; } 1486 #mdrawer-user .mc-user-dropdown__item:hover { background: #EFE9EC; color: #EA396D; } 1487 #mdrawer-user .mc-user-dropdown__item:hover svg { color: #EA396D; } 1488 #mdrawer-guest .firebase-auth-btn.mc-style-ghost { color: #0E082A !important; border-color: rgba(14,8,42,0.14); } 1489 #mdrawer-guest .firebase-auth-btn.mc-style-ghost:hover { color: #EA396D !important; } 1490 1491 /* ---------- Responsivt ---------- */ 1492 @media (max-width: 1023px) { 1493 #shopify-section-sections--32274034393427__header { --mc-h: 44px; } 1494 .mc-cashback-chip { display: none !important; } 1495 .firebase-auth-btn { font-size: 13.5px; } 1496 .mc-header-signup-btn { padding: 0 16px; font-size: 13.5px; } 1497 /* Tablet: Rabatkoder ligger i burger-menuen, sÃ¥ linjen ikke bliver for trang */ 1498 .mc-shop-link { display: none !important; } 1499 .mc-ext-banner { font-size: 12.5px; padding: 9px 16px; } 1500 #shopify-section-sections--32274034393427__header .mc-search-container { max-width: 100%; } 1501 #shopify-section-sections--32274034393427__header .mc-search-wrap kbd { display: none; } 1502 /* Burgeren som mørk firkant med hvide streger â pÃ¥ tablet og mobil */ 1503 #shopify-section-sections--32274034393427__header .menu-drawer-button { 1504 width: 44px; height: 44px; border-radius: 13px; background: #0E082A !important; 1505 } 1506 } 1507 @media (max-width: 767px) { 1508 .mc-bell-btn { display: none !important; } 1509 1510 /* Toppen pÃ¥ mobil viser kun logo + burger â i begge tilstande. 1511 Søgning og de to auth-knapper ligger i burger-menuen. */ 1512 .mc-header-signup-btn { display: none !important; } 1513 .firebase-auth-container { display: none !important; } 1514 #shopify-section-sections--32274034393427__header .header__icons--left { display: flex !important; } 1515 .header__search { display: none !important; } 1516 .mc-user-dropdown { min-width: 210px; } 1517 1518 /* Temaet lægger header__top ud som grid (eller med logoet 1519 absolut-centreret). PÃ¥ mobil tvinges rækken om til flex, sÃ¥ 1520 logoet stÃ¥r til venstre og burgeren til højre. */ 1521 #shopify-section-sections--32274034393427__header .header__top { 1522 display: flex !important; flex-wrap: nowrap !important; 1523 justify-content: flex-start !important; align-items: center !important; 1524 } 1525 #shopify-section-sections--32274034393427__header .header__logo, 1526 #shopify-section-sections--32274034393427__header .header__icons--left, 1527 #shopify-section-sections--32274034393427__header .header__icons--right { 1528 position: static !important; inset: auto !important; left: auto !important; right: auto !important; 1529 top: auto !important; transform: none !important; grid-area: auto !important; 1530 grid-column: auto !important; grid-row: auto !important; width: auto !important; 1531 } 1532 #shopify-section-sections--32274034393427__header .header__logo { 1533 order: 1 !important; flex: 0 0 auto !important; flex-grow: 0 !important; 1534 margin-right: auto !important; margin-left: 0 !important; justify-content: flex-start !important; 1535 } 1536 #shopify-section-sections--32274034393427__header .header__icons--right { order: 2 !important; flex: 0 0 auto !important; margin-left: 0 !important; } 1537 #shopify-section-sections--32274034393427__header .header__icons--left { order: 3 !important; flex: 0 0 auto !important; margin-left: 12px !important; } 1538 } 1539 .header-section { z-index: 999 !important; } 1540 1541 /* ---------- Forside: slankere header uden søgefelt ---------- */ 1542 .mc-header--home { --mc-h: 42px; } 1543 .mc-header--home .header__search { display: none !important; } 1544 #shopify-section-sections--32274034393427__header .mc-header--home .header__top { --section-padding-top: 12px; --section-padding-bottom: 12px; } 1545 1546 /* ---------- Lag-orden for filtre og burger-menu ----------
1547 Overlayet ("fixed-overlay") skal ligge bag skuffens indhold. */ 1548 #FacetDrawer.drawer { z-index: 10000 !important; } 1549 #FacetDrawer .fixed-overlay { z-index: 1 !important; } 1550 #FacetDrawer .drawer__inner { position: relative; z-index: 2 !important; } 1551 #MenuDrawer.drawer { z-index: 10000 !important; } 1552 #MenuDrawer .fixed-overlay { z-index: 1 !important; } 1553 #MenuDrawer .drawer__inner { position: relative; z-index: 2 !important; } 1554 .mc-dropdown__container { overflow: visible !important; } 1555 .mc-dropdown { overflow: visible !important; } 1556 1557 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line, 1558 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line::before, 1559 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line::after { 1560 background-color: #fff !important; 1561 } 1562 @media (min-width: 1024px) { 1563 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line, 1564 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line::before, 1565 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line::after { 1566 background-color: #0E082A !important; 1567 } 1568 } 1569 1570 /* ---------- Rettelser til tablet og mobil (3/10) ---------- */ 1571 @media (max-width: 1023px) { 1572 /* Stregerne midt i burgerknappen */ 1573 #shopify-section-sections--32274034393427__header .menu-drawer-button { position: relative !important; padding: 0 !important; } 1574 #shopify-section-sections--32274034393427__header .menu-drawer-button .hamburger-line { 1575 position: absolute !important; left: 50% !important; top: 50% !important; 1576 margin: 0 !important; transform: translate(-50%, -50%) !important; 1577 } 1578 } 1579 @media (max-width: 767px) { 1580 /* Chrome-banneret giver ikke mening på telefon */ 1581 .mc-ext-banner, .mc-ext-banner.visible { display: none !important; } 1582 1583 /* Logoet må ikke blive klippet */ 1584 #shopify-section-sections--32274034393427__header .header__logo, 1585 #shopify-section-sections--32274034393427__header .header__logo a, 1586 #shopify-section-sections--32274034393427__header .header__logo--image { 1587 overflow: visible !important; line-height: 1 !important; padding-top: 2px; 1588 } 1589 } 1590</style>
1591<script> 1592const EXTENSION_ID = "fccebglegfdjomejaneicbheaealihli"; 1593 1594function sendToExtension(user) { 1595 if (typeof chrome === 'undefined' || !chrome.runtime || !chrome.runtime.sendMessage) return; 1596 try { 1597 chrome.runtime.sendMessage(EXTENSION_ID, { 1598 action: "SET_LOGIN_STATUS", 1599 isLoggedIn: !!user, 1600 userId: user ? user.uid : null 1601 }, function() { if (chrome.runtime.lastError) return; }); 1602 } catch(e) {} 1603} 1604 1605// à bner samme modal som pÃ¥ forsiden, men pÃ¥ fanen "signup" 1606function mcHeaderOpenSignup() { 1607 var modal = document.getElementById('mc3-auth-modal'); 1608 if (modal) { 1609 sessionStorage.setItem('mc_pending_auth_redirect', '1'); 1610 modal.style.display = 'flex'; 1611 if (typeof window.switchAuthTab === 'function') window.switchAuthTab('signup'); 1612 } 1613} 1614 1615/* Saldoen regnes ud fra transaktionerne â samme grundlag som Min konto. 1616 Kun godkendte og udbetalte tælles med. */ 1617async function mcHentSaldo(uid) { 1618 try { 1619 const fs = await import("https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js"); 1620 const snap = await fs.getDocs(fs.query( 1621 fs.collection(window.firebaseDb, "transactions"), 1622 fs.where("userId", "==", uid) 1623 )); 1624 let sum = 0; 1625 snap.forEach(d => { 1626 const t = d.data(); 1627 const status = t.status || 'afventer'; 1628 if (status === 'godkendt' || status === 'udbetalt') sum += Number(t.beloeb) || 0; 1629 }); 1630 const txt = Math.floor(sum).toLocaleString('da-DK') + ' kr'; 1631 const chip = document.getElementById('mc-cashback-amount'); 1632 const menu = document.getElementById('mc-dropdown-saldo'); 1633 const drawer = document.getElementById('mdrawer-saldo'); 1634 if (chip) chip.innerText = txt; 1635 if (menu) menu.innerText = txt; 1636 if (drawer) drawer.innerText = txt; 1637 } catch (e) { 1638 console.error('Kunne ikke hente saldo:', e); 1639 } 1640} 1641 1642function updateHeaderUI(user, data) { 1643 // Nu ved vi, om brugeren er logget ind â vis konto-knapperne 1644 document.documentElement.classList.add('mc-auth-ready'); 1645 1646 const authBtn = document.getElementById('firebase-auth-anchor'); 1647 const authLabel = document.getElementById('firebase-auth-label'); 1648 const authLabelMobile = document.getElementById('firebase-auth-label-mobile'); 1649 const authArrow = document.getElementById('firebase-auth-arrow'); 1650 const authAv = document.getElementById('bt-auth-av'); 1651 const cashbackChip = document.getElementById('mc-cashback-chip'); 1652 const cashbackAmount = document.getElementById('mc-cashback-amount'); 1653 const bellBtn = document.getElementById('mc-bell-btn'); 1654 const extBanner = document.getElementById('mc-ext-banner'); 1655 const dropdownName = document.getElementById('mc-dropdown-name'); 1656 const dropdownEmail = document.getElementById('mc-dropdown-email'); 1657 const signupBtn = document.getElementById('mc-header-signup-btn'); 1658 1659 // Kontoadgangen i burger-menuen (mobil) â se menu-drawer.liquid 1660 const mdGuest = document.getElementById('mdrawer-guest'); 1661 const mdUser = document.getElementById('mdrawer-user'); 1662 const mdName = document.getElementById('mdrawer-name'); 1663 const mdEmail = document.getElementById('mdrawer-email'); 1664 1665 if (user && data) { 1666 // Logget ind 1667 const firstName = data.firstName || 'Profil'; 1668 const lastName = data.lastName || ''; 1669 const firstInitial = firstName.trim().charAt(0).toUpperCase(); 1670 const lastInitial = lastName.trim() ? lastName.trim().charAt(0).toUpperCase() : ''; 1671 if (authLabel) authLabel.innerText = firstName; 1672 if (authLabelMobile) authLabelMobile.innerText = firstInitial + lastInitial; 1673 if (authAv) authAv.innerText = firstInitial + lastInitial; 1674 if (authArrow) authArrow.style.display = 'block'; 1675 if (authBtn) { authBtn.classList.remove('open'); authBtn.classList.remove('mc-style-ghost'); } 1676 if (dropdownName) dropdownName.innerText = 'Hej, ' + ((data.firstName || '') + ' ' + (data.lastName || '')).trim(); 1677 if (dropdownEmail) dropdownEmail.innerText = user.email || ''; 1678 if (cashbackChip) cashbackChip.classList.add('visible'); 1679 const saldoTxt = Math.floor(data.totalCashback || 0).toLocaleString('da-DK') + ' kr'; 1680 if (cashbackAmount) cashbackAmount.innerText = saldoTxt; 1681 const dropdownSaldo = document.getElementById('mc-dropdown-saldo'); 1682 if (dropdownSaldo) dropdownSaldo.innerText = saldoTxt; 1683 if (bellBtn) bellBtn.classList.add('visible'); 1684 if (extBanner) extBanner.classList.remove('visible'); 1685 if (signupBtn) signupBtn.style.display = 'none'; 1686 document.documentElement.classList.add('mc-logged-in'); 1687 1688 // Logoet linker til /pages/medlem, nÃ¥r man er logget ind (kun logoet) 1689 const logoLink = document.getElementById('logo-link'); 1690 if (logoLink) logoLink.href = '/pages/medlem'; 1691 1692 // Burger-menuens konto-sektion: vis brugerudgaven (inline style 1693 // vinder over al anden CSS, sÃ¥ de to udgaver aldrig stÃ¥r oven i hinanden) 1694 if (mdName) mdName.innerText = (data.firstName || '') + ' ' + (data.lastName || ''); 1695 if (mdEmail) mdEmail.innerText = user.email || ''; 1696 if (mdGuest) { mdGuest.hidden = true; mdGuest.style.display = 'none'; } 1697 if (mdUser) { mdUser.hidden = false; mdUser.style.display = 'block'; } 1698 1699 } else { 1700 // Ikke logget ind
1701 if (authLabel) authLabel.innerText = 'Log ind'; 1702 if (authLabelMobile) authLabelMobile.innerText = 'Log ind'; 1703 if (authArrow) authArrow.style.display = 'none'; 1704 if (authBtn) authBtn.classList.add('mc-style-ghost'); 1705 if (cashbackChip) cashbackChip.classList.remove('visible'); 1706 if (bellBtn) bellBtn.classList.remove('visible'); 1707 if (signupBtn) signupBtn.style.display = 'inline-flex'; 1708 document.documentElement.classList.remove('mc-logged-in'); 1709 1710 if (mdGuest) { mdGuest.hidden = false; mdGuest.style.display = 'flex'; } 1711 if (mdUser) { mdUser.hidden = true; mdUser.style.display = 'none'; } 1712 1713 const isChrome = /Chrome/.test(navigator.userAgent) && !/Edg|OPR|SamsungBrowser/.test(navigator.userAgent); 1714 const isDesktop = window.innerWidth > 768; 1715 if (extBanner && !sessionStorage.getItem('mc_banner_closed') && isChrome && isDesktop) { 1716 try { 1717 chrome.runtime.sendMessage(EXTENSION_ID, { action: "GET_STATUS" }, function(response) { 1718 if (chrome.runtime.lastError || !response) { 1719 extBanner.classList.add('visible'); 1720 } 1721 }); 1722 } catch(e) { 1723 extBanner.classList.add('visible'); 1724 } 1725 } 1726 } 1727} 1728 1729window.mcLogOut = function() { 1730 if (window.firebaseAuth) { 1731 window.firebaseAuth.signOut().then(() => { 1732 window.location.href = '/'; 1733 }); 1734 } 1735}; 1736 1737document.addEventListener('DOMContentLoaded', () => { 1738 1739 // Brugermenuen â kun hvis header-markup findes (den udelades pÃ¥ forsiden) 1740 const authBtn = document.getElementById('firebase-auth-anchor'); 1741 const dropdown = document.getElementById('mc-user-dropdown'); 1742 1743 if (authBtn && dropdown) { 1744 authBtn.addEventListener('click', () => { 1745 const user = window.firebaseAuth ? window.firebaseAuth.currentUser : null; 1746 if (!user) { 1747 sessionStorage.setItem('mc_pending_auth_redirect', '1'); 1748 const modal = document.getElementById('mc3-auth-modal'); 1749 if (modal) { 1750 modal.style.display = 'flex'; 1751 if (typeof window.switchAuthTab === 'function') window.switchAuthTab('login'); 1752 } 1753 } else { 1754 const isOpen = dropdown.classList.toggle('open'); 1755 authBtn.classList.toggle('open', isOpen); 1756 } 1757 }); 1758 1759 document.addEventListener('click', (e) => { 1760 if (!e.target.closest('.firebase-auth-container')) { 1761 dropdown.classList.remove('open'); 1762 authBtn.classList.remove('open'); 1763 } 1764 }); 1765 } 1766 1767 /* Butikker brugeren har besøgt (gemt af produktsiden i mc_seen_shops) */ 1768 function mcSenesteButikker() { 1769 try { 1770 const liste = JSON.parse(localStorage.getItem('mc_seen_shops')) || []; 1771 return liste.filter(s => s && s.handle && s.title); 1772 } catch (e) { return []; } 1773 } 1774 1775 function mcPopulaere() { 1776 const el = document.getElementById('mc-popular-shops'); 1777 if (!el) return []; 1778 try { return JSON.parse(el.textContent) || []; } catch (e) { return []; } 1779 } 1780 1781 function mcForslagRaekke(url, image, title, rate, handle) { 1782 const MC_E = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; 1783 const esc = v => String(v == null ? '' : v).replace(/[&<>"']/g, c => MC_E[c]); 1784 const cb = rate 1785 ? '<div class="mc-search-result__cashback">' + esc(rate) + ' cashback</div>' 1786 : (handle ? '<div class="mc-search-result__cashback" data-cb-handle="' + esc(handle) + '" hidden></div>' : ''); 1787 return '<a href="' + esc(url) + '" class="mc-search-result">' + 1788 (image ? '<img src="' + esc(image) + '" class="mc-search-result__img" alt="">' : '<div class="mc-search-result__img"></div>') + 1789 '<div class="mc-search-result__info"><div class="mc-search-result__title">' + esc(title) + '</div>' + 1790 cb + '</div></a>'; 1791 } 1792 1793 /* Predictive search sender ikke metafelter med, sÃ¥ satsen hentes 1794 bagefter â først alle pÃ¥ én gang via templates/search.cashback.liquid 1795 (stjernen gør at "ele" ogsÃ¥ finder "Electrolux"), ellers én ad gangen. */ 1796 const mcSatsCache = {}; 1797 1798 function mcSaetSats(dropdown, handle, tekst) { 1799 if (!tekst) return; 1800 mcSatsCache[handle] = tekst; 1801 dropdown.querySelectorAll('[data-cb-handle="' + handle + '"]').forEach(f => { 1802 f.textContent = tekst + ' cashback'; 1803 f.hidden = false;
1804 }); 1805 } 1806 1807 async function mcHentSatser(dropdown, query) { 1808 const felter = [...dropdown.querySelectorAll('[data-cb-handle]')]; 1809 let mangler = [...new Set(felter.map(f => f.dataset.cbHandle).filter(Boolean))]; 1810 1811 mangler = mangler.filter(h => { 1812 if (mcSatsCache[h]) { mcSaetSats(dropdown, h, mcSatsCache[h]); return false; } 1813 return true; 1814 }); 1815 if (!mangler.length) return; 1816 1817 if (query) { 1818 try { 1819 const r = await fetch('/search?type=product&view=cashback&q=' + encodeURIComponent(query + '*')); 1820 if (r.ok) { 1821 const liste = JSON.parse((await r.text()).trim()); 1822 liste.forEach(p => { 1823 const sats = p.pct ? p.pct + '%' : (p.fast ? p.fast + ' kr' : ''); 1824 if (sats) mcSaetSats(dropdown, p.handle, sats); 1825 }); 1826 mangler = mangler.filter(h => !mcSatsCache[h]); 1827 } 1828 } catch (e) {} 1829 } 1830 if (!mangler.length) return; 1831 1832 await Promise.all(mangler.map(async handle => { 1833 try { 1834 const r = await fetch('/products/' + encodeURIComponent(handle) + '?view=cashback'); 1835 if (!r.ok) return; 1836 const cb = JSON.parse((await r.text()).trim()); 1837 if (cb && cb.cashback) mcSaetSats(dropdown, handle, cb.cashback); 1838 } catch (e) {} 1839 })); 1840 } 1841 1842 function mcBindSearch(inputId, dropdownId) { 1843 const searchInput = document.getElementById(inputId); 1844 const searchDropdown = document.getElementById(dropdownId); 1845 if (!searchInput || !searchDropdown) return; 1846 let searchTimer = null; 1847 1848 function closeSearch() { searchDropdown.classList.remove('open'); searchInput.setAttribute('aria-expanded', 'false'); } 1849 function openSearch() { searchDropdown.classList.add('open'); searchInput.setAttribute('aria-expanded', 'true'); } 1850 1851 /* ---------- Varer fra Firestore ---------- 1852 Kun fra tredje bogstav, højst 8 varer, og svaret huskes pr. ord, 1853 sÃ¥ samme søgning kun rammer databasen én gang pr. side. */ 1854 const MC_VARE_MAKS = 8; 1855 const mcVareCache = {}; 1856 1857 function mcNormOrd(s) { 1858 return String(s || '').toLowerCase() 1859 .normalize('NFD').replace(/[Ì-ͯ]/g, '') 1860 .replace(/[^\wæøå\s-]/g, ' ').replace(/\s+/g, ' ').trim(); 1861 } 1862 1863 async function mcSoegVarer(query) { 1864 if (!window.firebaseDb) return []; 1865 const ord = mcNormOrd(query).split(' ').filter(o => o.length > 2); 1866 if (!ord.length) return []; 1867 const noegle = ord.slice().sort((a, b) => b.length - a.length)[0]; 1868 if (mcVareCache[noegle]) return mcVareCache[noegle]; 1869 try { 1870 const fs = await import("https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js"); 1871 const snap = await fs.getDocs(fs.query( 1872 fs.collection(window.firebaseDb, 'shopProducts'), 1873 fs.where('tokens', 'array-contains', noegle), 1874 fs.limit(24) 1875 )); 1876 const ud = []; 1877 snap.forEach(d => { 1878 if (ud.length >= MC_VARE_MAKS) return; 1879 const x = d.data(); 1880 const t = x.tokens || []; 1881 for (const o of ord) { if (t.indexOf(o) === -1) return; } 1882 if (!x.image || !x.deeplink || !(Number(x.price) > 0)) return; 1883 ud.push({ title: x.title || '', image: x.image, pris: Number(x.price), shop: x.shopHandle || '' }); 1884 }); 1885 mcVareCache[noegle] = ud; 1886 return ud; 1887 } catch (e) { return []; } 1888 } 1889 1890 function mcButiksNavn(h) { 1891 const s = String(h || ''); 1892 return s ? s.charAt(0).toUpperCase() + s.slice(1) : ''; 1893 } 1894 1895 const BETTY_AV = '<span style="width:26px;height:26px;border-radius:50%;background:#EA396D;color:#fff;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;">B</span>'; 1896 1897 async function doSearch(query) { 1898 if (!query || query.length < 2) { closeSearch(); return; } 1899 const MC_E = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; 1900 const esc = v => String(v == null ? '' : v).replace(/[&<>"']/g, c => MC_E[c]); 1901 const soegUrl = '/pages/soeg-varer?q=' + encodeURIComponent(query); 1902 1903 searchDropdown.innerHTML = '<div class="mc-search-spinner">' + BETTY_AV + 'Betty lederâ¦</div>'; 1904 openSearch(); 1905 1906 let butikker = [], varer = [];
1907 try { 1908 const [bSvar, vSvar] = await Promise.all([ 1909 fetch('/search/suggest.json?q=' + encodeURIComponent(query) + 1910 '&resources[type]=product&resources[limit]=5&resources[options][fields]=title') 1911 .then(r => r.json()).catch(() => null), 1912 mcSoegVarer(query) 1913 ]); 1914 butikker = bSvar?.resources?.results?.products || []; 1915 varer = vSvar || []; 1916 } catch (e) {} 1917 1918 if (!butikker.length && !varer.length) { 1919 searchDropdown.innerHTML = 1920 '<div class="mc-search-no-results">Betty kunne ikke finde noget pÃ¥ "' + esc(query) + '"</div>'; 1921 return; 1922 } 1923 1924 let html = '<div class="mc-search-intro">' + BETTY_AV + '<span>Her er, hvad jeg fandt pÃ¥ <b>"' + esc(query) + '"</b></span></div>'; 1925 1926 if (butikker.length) { 1927 html += '<p class="mc-search-label">Butikker</p>'; 1928 html += butikker.map(p => { 1929 const img = p.featured_image?.url || p.image || ''; 1930 return '<a href="' + esc(p.url) + '" class="mc-search-result">' + 1931 (img ? '<img src="' + esc(img) + '&width=80" class="mc-search-result__img" alt="">' 1932 : '<div class="mc-search-result__img"></div>') + 1933 '<div class="mc-search-result__info">' + 1934 '<div class="mc-search-result__title">' + esc(p.title) + '</div>' + 1935 '<div class="mc-search-result__cashback" data-cb-handle="' + esc(p.handle) + '" hidden></div>' + 1936 '</div></a>'; 1937 }).join(''); 1938 } 1939 1940 if (varer.length) { 1941 html += '<p class="mc-search-label">Varer</p>'; 1942 html += varer.map(v => 1943 '<a href="' + soegUrl + '" class="mc-search-result">' + 1944 '<img src="' + esc(v.image) + '" class="mc-search-result__img" alt="" loading="lazy">' + 1945 '<div class="mc-search-result__info">' + 1946 '<div class="mc-search-result__shop">' + esc(mcButiksNavn(v.shop)) + '</div>' + 1947 '<div class="mc-search-result__title">' + esc(v.title) + '</div>' + 1948 '<div class="mc-search-result__sub"><b>' + v.pris.toLocaleString('da-DK') + ' kr</b></div>' + 1949 '</div></a>' 1950 ).join(''); 1951 } 1952 1953 html += '<div class="mc-search-footer" onclick="window.location.href=\'' + 1954 soegUrl + '\'">Se alle varer for "' + esc(query) + '" â</div>'; 1955 1956 searchDropdown.innerHTML = html; 1957 openSearch(); 1958 if (butikker.length) mcHentSatser(searchDropdown, query); 1959 } 1960 1961 /* Ord der foreslÃ¥s, nÃ¥r feltet er tomt. De skal findes i varernes 1962 tokens â prøv dem i søgefeltet, før du skifter dem ud. */ 1963 const MC_VARE_FORSLAG = ['sofa', 'computer', 'seng']; 1964 1965 function visStartforslag() { 1966 const seneste = mcSenesteButikker().slice(0, 3); 1967 const populaere = mcPopulaere(); 1968 let html = '<div class="mc-search-intro">' + BETTY_AV + '<span>Hej! Hvad skal du shoppe i dag?</span></div>'; 1969 1970 if (seneste.length) { 1971 html += '<p class="mc-search-label">Senest besøgt<button type="button" data-ryd>Ryd</button></p>'; 1972 html += seneste.map(s => mcForslagRaekke('/products/' + encodeURIComponent(s.handle), s.image, s.title, s.rate, s.handle)).join(''); 1973 } 1974 if (populaere.length && seneste.length < 3) { 1975 html += '<p class="mc-search-label">Populære butikker</p>'; 1976 html += populaere.slice(0, 3 - seneste.length).map(p => mcForslagRaekke(p.url, p.image, p.title, p.rate)).join(''); 1977 } 1978 1979 html += '<p class="mc-search-label">Prøv at spørge om</p>'; 1980 html += MC_VARE_FORSLAG.map(o => 1981 '<a href="/pages/soeg-varer?q=' + encodeURIComponent(o) + '" class="mc-search-result">' + 1982 '<div class="mc-search-result__img" style="display:flex;align-items:center;justify-content:center;' + 1983 'color:#EA396D;font-size:16px;background:#EFD7DE;border-color:transparent;">â¦</div>' + 1984 '<div class="mc-search-result__info">' + 1985 '<div class="mc-search-result__title">' + o + '</div>' + 1986 '<div class="mc-search-result__sub">Se varer med cashback</div>' + 1987 '</div></a>' 1988 ).join(''); 1989 1990 html += '<div class="mc-search-footer" onclick="window.location.href=\'/collections/all\'">Se alle butikker â</div>'; 1991 searchDropdown.innerHTML = html; 1992 openSearch(); 1993 mcHentSatser(searchDropdown, ''); 1994 } 1995 1996 searchInput.addEventListener('focus', () => { 1997 if (!searchInput.value.trim()) visStartforslag(); 1998 }); 1999 2000 searchDropdown.addEventListener('click', (e) => { 2001 if (!e.target.closest('[data-ryd]')) return; 2002 e.preventDefault();
2003 try { localStorage.removeItem('mc_seen_shops'); } catch (err) {} 2004 visStartforslag(); 2005 if (!searchDropdown.innerHTML.trim()) closeSearch(); 2006 }); 2007 2008 searchInput.addEventListener('input', (e) => { 2009 clearTimeout(searchTimer); 2010 const q = e.target.value.trim(); 2011 if (!q) { visStartforslag(); return; } 2012 if (q.length < 2) { closeSearch(); return; } 2013 searchTimer = setTimeout(() => doSearch(q), 350); 2014 }); 2015 searchInput.addEventListener('keydown', (e) => { 2016 if (e.key === 'Enter' && searchInput.value.trim()) { 2017 closeSearch(); 2018 /* Shopifys egen /search er ikke oversat â brug vores søgeside */ 2019 window.location.href = '/pages/soeg-varer?q=' + encodeURIComponent(searchInput.value.trim()); 2020 } 2021 if (e.key === 'Escape') { closeSearch(); searchInput.blur(); } 2022 }); 2023 2024 /* Tryk "/" hvor som helst pÃ¥ siden for at spørge Betty */ 2025 document.addEventListener('keydown', (e) => { 2026 if (e.key !== '/' || e.metaKey || e.ctrlKey || e.altKey) return; 2027 const t = e.target; 2028 if (t && (t.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName))) return; 2029 if (!searchInput.offsetParent) return; 2030 e.preventDefault(); 2031 searchInput.focus(); 2032 }); 2033 2034 document.addEventListener('click', (e) => { 2035 if (!e.target.closest('.mc-search-container')) closeSearch(); 2036 }); 2037 } 2038 2039 mcBindSearch('mc-search-input', 'mc-search-dropdown'); 2040 2041 if (window.location.hash.includes('#login-popup')) { 2042 const modal = document.getElementById('mc3-auth-modal'); 2043 if (modal) { modal.style.display = 'flex'; if (typeof window.switchAuthTab === 'function') window.switchAuthTab('login'); } 2044 history.replaceState(null, null, window.location.pathname + window.location.search); 2045 } 2046 2047 // Sikkerhedsnet: svarer Firebase ikke inden 4 sekunder, vises knapperne alligevel 2048 setTimeout(() => document.documentElement.classList.add('mc-auth-ready'), 4000); 2049 2050 // Firebase auth state 2051 const waitForFirebase = setInterval(() => { 2052 if (window.firebaseAuth) { 2053 clearInterval(waitForFirebase); 2054 window.firebaseAuth.onAuthStateChanged(async (user) => { 2055 sendToExtension(user); 2056 if (user) { 2057 try { 2058 const { doc, getDoc } = await import("https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js"); 2059 const snap = await getDoc(doc(window.firebaseDb, "users", user.uid)); 2060 const data = snap.exists() ? snap.data() : {}; 2061 updateHeaderUI(user, data); 2062 mcHentSaldo(user.uid); 2063 } catch(e) { 2064 updateHeaderUI(user, {}); 2065 mcHentSaldo(user.uid); 2066 } 2067 // return_to redirect (eller: første side efter login = alle butikker) 2068 const urlParams = new URLSearchParams(window.location.search); 2069 const returnUrl = urlParams.get('return_to'); 2070 if (returnUrl) { 2071 setTimeout(() => window.location.replace(decodeURIComponent(returnUrl)), 800); 2072 } else if (sessionStorage.getItem('mc_pending_auth_redirect')) { 2073 sessionStorage.removeItem('mc_pending_auth_redirect'); 2074 setTimeout(() => window.location.replace('/collections/all'), 800); 2075 } 2076 } else { 2077 updateHeaderUI(null, null); 2078 } 2079 }); 2080 } 2081 }, 200); 2082 2083}); 2084</script>
2084 2085 2086<style> #shopify-section-sections--32274034393427__header .card-media__heading {max-width: 20rem;} </style></div> 2087<!-- END sections: header-group --> 2088 2089 <main id="MainContent" class="main-content content-for-layout focus-none" role="main" tabindex="-1"> 2090 <section id="shopify-section-template--32274042257747__landing_hero" class="shopify-section">�<link rel="preconnect" href="https://fonts.googleapis.com"> 2091<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 2092<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet"> 2093 2094<style> 2095 .mc { 2096 --pink:#EA396D; --pink-dk:#D42C5E; --pink-soft:#EAD1DA; --pink-tint:#EFD7DE; 2097 --blue:#2767F9; 2098 --navy:#0E082A; --navy-2:#0C0721; --navy-3:#1A1338; --navy-4:#241C47; 2099 --muted:#554975; --muted-2:#7D7298; 2100 --bg:#E4D9DE; --panel:#EAE2E5; --card:#EFE9EC; --white:#FFFFFF; 2101 --line:rgba(14,8,42,0.08); --line-2:rgba(14,8,42,0.14); 2102 --on-dark:rgba(255,255,255,0.72); --on-dark-2:rgba(255,255,255,0.48); 2103 --r-lg:28px; --r-md:20px; --r-sm:14px; 2104 --shadow:0 1px 2px rgba(14,8,42,0.04), 0 12px 32px rgba(14,8,42,0.07); 2105 --shadow-lg:0 2px 4px rgba(14,8,42,0.05), 0 30px 70px rgba(14,8,42,0.14); 2106 --font:'Plus Jakarta Sans', var(--font-body-family, system-ui), sans-serif; 2107 font-family:var(--font); background:var(--panel); color:var(--navy); 2108 overflow-x:hidden; -webkit-font-smoothing:antialiased; 2109 } 2110 .mc *, .mc *::before, .mc *::after { box-sizing:border-box; margin:0; padding:0; } 2111 .mc img { max-width:100%; } 2112 .mc__wrap { max-width:1240px; margin:0 auto; padding:0 28px; position:relative; z-index:3; } 2113 .mc-wordmark { font-family:var(--font); font-weight:800; letter-spacing:-0.045em; line-height:1; font-size:34px; color:var(--navy); } 2114 .mc-invert { filter:brightness(0) invert(1); } 2115 2116 @keyframes mcFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } } 2117 @keyframes mcPopIn { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } } 2118 @keyframes mcDot { 0%,80%,100% { opacity:.25; transform:translateY(0); } 40% { opacity:1; transform:translateY(-3px); } } 2119 @keyframes mcPulse { 0% { box-shadow:0 0 0 0 rgba(234,57,109,.45); } 100% { box-shadow:0 0 0 10px rgba(234,57,109,0); } } 2120 2121 /* ============ KNAPPER ============ */ 2122 .mc-btn { 2123 display:inline-flex; align-items:center; justify-content:center; gap:10px; 2124 height:58px; padding:0 30px; border:none; border-radius:999px; cursor:pointer; 2125 background:var(--navy); color:#fff; text-decoration:none; 2126 font-family:inherit; font-size:16.5px; font-weight:700; white-space:nowrap; letter-spacing:-0.01em; 2127 transition:background .2s, transform .2s, box-shadow .2s; 2128 } 2129 .mc-btn:hover { background:var(--navy-4); color:#fff; transform:translateY(-2px); } 2130 .mc-btn__ico { width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,0.18); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; } 2131 .mc-btn__ico svg { width:14px; height:14px; } 2132 .mc-btn--pink { background:var(--pink); box-shadow:0 12px 30px rgba(234,57,109,0.35); } 2133 .mc-btn--pink:hover { background:var(--pink-dk); box-shadow:0 16px 36px rgba(234,57,109,0.45); } 2134 .mc-btn--white { background:#fff; color:var(--navy); } 2135 .mc-btn--white:hover { background:var(--card); color:var(--navy); } 2136 .mc-btn--white .mc-btn__ico { background:var(--pink-tint); color:var(--pink); } 2137 .mc-btn--sm { height:46px; padding:0 20px; font-size:14.5px; } 2138 .mc-ico { width:20px; height:20px; display:block; } 2139 2140 /* ============ BETTY-AVATAR ============ */ 2141 .mc-av { 2142 position:relative; flex-shrink:0; width:40px; height:40px; border-radius:50%; 2143 background:linear-gradient(145deg,#F2587F 0%,#EA396D 55%,#C92A5B 100%); 2144 color:#fff; display:inline-flex; align-items:center; justify-content:center; overflow:visible; 2145 font-weight:800; font-size:19px; letter-spacing:-0.04em; 2146 } 2147 .mc-av img { width:100%; height:100%; border-radius:50%; object-fit:cover; } 2148 .mc-av::after { 2149 content:''; position:absolute; right:-1px; bottom:-1px; width:11px; height:11px; border-radius:50%; 2150 background:#2BD37C; border:2px solid #fff; 2151 } 2152 .mc-av--lg { width:84px; height:84px; font-size:40px; } 2153 .mc-av--lg::after { width:18px; height:18px; border-width:3px; border-color:var(--navy); } 2154 /* Bettys ansigt â kun hvor man "chatter" med hende */ 2155 .mc-chat__head .mc-av, 2156 .mc-calc__quote .mc-av, 2157 .mc-wishcard__foot .mc-av, 2158 .mc-mdrawer__hi .mc-av { 2159 background:url("//bettys.io/cdn/shop/files/betty-avatar-512.jpg?v=6778113049269621155") center 30% / cover no-repeat, 2160 linear-gradient(145deg,#F2587F 0%,#EA396D 55%,#C92A5B 100%); 2161 color:transparent; font-size:0; 2162 } 2163 2164 /* ============ HERO ============ */ 2165 .mc .mc-hero { border:0 !important; box-shadow:none !important; outline:0 !important; } 2166 .mc-hero { position:relative; overflow:hidden; background:var(--panel); padding-bottom:130px; } 2167 .mc-hero__g1, .mc-hero__g2 { position:absolute; border-radius:50%; pointer-events:none; } 2168 .mc-hero__g1 { width:900px; height:900px; right:-260px; top:-280px; background:radial-gradient(circle,rgba(234,57,109,0.20) 0%,rgba(234,57,109,0.06) 40%,transparent 66%); } 2169 .mc-hero__g2 { width:700px; height:700px; left:-300px; bottom:-320px; background:radial-gradient(circle,rgba(39,103,249,0.08) 0%,transparent 64%); } 2170 2171 /* ----- Topmenu ----- */ 2172 .mc-nav { position:relative; z-index:6; } 2173 .mc-nav__bar { 2174 max-width:1240px; margin:18px auto 0; padding:12px 14px 12px 26px; 2175 display:flex; align-items:center; justify-content:space-between; gap:20px; 2176 background:rgba(255,255,255,0.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); 2177 border:1px solid rgba(255,255,255,0.9); border-radius:22px; box-shadow:var(--shadow); 2178 width:calc(100% - 56px); 2179 } 2180 .mc-nav__logo { display:flex; align-items:center; text-decoration:none; } 2181 .mc-nav__logo img { height:34px; width:auto; display:block; } 2182 .mc-nav__right { display:flex; align-items:center; gap:10px; } 2183 .mc-nav__links { display:flex; align-items:center; gap:4px; list-style:none; margin-right:8px; } 2184 .mc-nav__links > li { position:relative; } 2185 .mc-nav__link { 2186 display:inline-flex; align-items:center; gap:6px; padding:10px 14px; border-radius:12px; 2187 background:none; border:none; cursor:pointer; font-family:inherit; 2188 font-size:15.5px; font-weight:600; color:var(--navy); text-decoration:none; transition:background .2s, color .2s; 2189 } 2190 .mc-nav__link:hover { background:var(--card); color:var(--pink); } 2191 .mc-nav__link svg { width:14px; height:14px; transition:transform .2s; } 2192 .mc-nav__links > li:hover .mc-nav__link svg { transform:rotate(180deg); } 2193 .mc-nav__drop { 2194 position:absolute; top:100%; left:50%; transform:translate(-50%,8px); z-index:20; 2195 min-width:220px; padding:8px; list-style:none; background:#fff; border-radius:18px; 2196 border:1px solid var(--line); box-shadow:var(--shadow-lg); 2197 opacity:0; visibility:hidden; transition:opacity .2s, transform .2s, visibility .2s; 2198 } 2199 .mc-nav__links > li:hover .mc-nav__drop, 2200 .mc-nav__links > li:focus-within .mc-nav__drop { opacity:1; visibility:visible; transform:translate(-50%,0); } 2201 .mc-nav__drop a { display:block; padding:11px 14px; border-radius:10px; color:var(--navy); font-size:15px; font-weight:600; text-decoration:none; } 2202 .mc-nav__drop a:hover { background:var(--card); color:var(--pink); } 2203 .mc-nav__drop--mega { display:grid; grid-template-columns:repeat(3,minmax(170px,1fr)); gap:4px 18px; min-width:640px; padding:20px; } 2204 .mc-nav__col-t { padding:0 12px 8px; font-size:11px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:var(--pink); } 2205 .mc-nav__drop--mega a { padding:8px 12px; font-size:14.5px; font-weight:500; } 2206 .mc-nav__drop--mega a.mc-nav__mega-all { grid-column:1 / -1; margin-top:10px; padding:13px; text-align:center; background:var(--navy); color:#fff; font-weight:700; border-radius:12px; } 2207 .mc-nav__drop--mega a.mc-nav__mega-all:hover { background:var(--pink); color:#fff; } 2208 .mc-nav__login { 2209 display:inline-flex; align-items:center; gap:9px; height:46px; padding:0 20px 0 16px; 2210 background:var(--navy); border:none; border-radius:14px; cursor:pointer; font-family:inherit; 2211 font-size:15px; font-weight:700; color:#fff; white-space:nowrap; transition:background .2s, transform .2s; 2212 } 2213 .mc-nav__login svg { width:18px; height:18px; } 2214 .mc-nav__login:hover { background:var(--pink); transform:translateY(-1px); } 2215 2216 .mc-nav__burger { 2217 display:none; align-items:center; justify-content:center; width:46px; height:46px; border-radius:14px; 2218 background:var(--navy); border:none; cursor:pointer; flex-shrink:0; position:relative; z-index:2; 2219 } 2220 .mc-nav__burger span, .mc-nav__burger span::before, .mc-nav__burger span::after { 2221 content:""; display:block; position:absolute; left:50%; top:50%; width:18px; height:2px; background:#fff; border-radius:2px; 2222 transform:translate(-50%,-50%); transition:transform .25s ease, opacity .25s ease; 2223 }
2224 .mc-nav__burger span::before { transform:translate(-50%,-6px); } 2225 .mc-nav__burger span::after { transform:translate(-50%,4px); } 2226 .mc-nav__burger[aria-expanded="true"] span { background:transparent; } 2227 .mc-nav__burger[aria-expanded="true"] span::before { transform:translate(-50%,0) rotate(45deg); } 2228 .mc-nav__burger[aria-expanded="true"] span::after { transform:translate(-50%,0) rotate(-45deg); } 2229 2230 /* ----- Mobil-menu ----- */ 2231 .mc-mdrawer-overlay { position:fixed; inset:0; background:rgba(14,8,42,0.5); z-index:998; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; } 2232 .mc-mdrawer-overlay[data-open="true"] { opacity:1; visibility:visible; } 2233 .mc-mdrawer { 2234 position:fixed; top:0; right:0; height:100%; width:min(360px,88vw); background:#fff; color:var(--navy); 2235 z-index:999; padding:22px 22px 30px; transform:translateX(100%); transition:transform .35s cubic-bezier(0.7,0,0.2,1); 2236 overflow-y:auto; box-shadow:-20px 0 60px rgba(14,8,42,0.25); border-radius:24px 0 0 24px; 2237 } 2238 .mc-mdrawer[data-open="true"] { transform:translateX(0); } 2239 .mc-mdrawer__close { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; background:var(--card); border:none; color:var(--navy); cursor:pointer; margin-bottom:18px; } 2240 .mc-mdrawer__close svg { width:18px; height:18px; } 2241 .mc-mdrawer__hi { display:flex; align-items:center; gap:12px; padding:14px; margin-bottom:10px; border-radius:16px; background:var(--pink-tint); font-size:14px; line-height:1.4; color:var(--navy); } 2242 .mc-mdrawer__hi b { display:block; font-size:15px; } 2243 .mc-mdrawer__name { font-size:17px; font-weight:800; margin:0 0 2px; } 2244 .mc-mdrawer__email { font-size:13px; color:var(--muted); margin:0 0 16px; word-break:break-all; } 2245 .mc-mdrawer__link { 2246 display:flex; align-items:center; gap:13px; padding:14px 6px; width:100%; text-align:left; cursor:pointer; 2247 color:var(--navy); text-decoration:none; font-size:15.5px; font-weight:600; font-family:inherit; 2248 background:none; border:none; border-bottom:1px solid var(--line); 2249 } 2250 .mc-mdrawer__link svg { width:19px; height:19px; flex-shrink:0; color:var(--pink); } 2251 .mc-mdrawer__link--primary { color:var(--pink); font-weight:800; } 2252 .mc-mdrawer__link--red, .mc-mdrawer__link--red svg { color:#C43A3A; } 2253 .mc-mdrawer__group { border-bottom:1px solid var(--line); } 2254 .mc-mdrawer__group > summary { list-style:none; border-bottom:none; } 2255 .mc-mdrawer__group > summary::-webkit-details-marker { display:none; } 2256 .mc-mdrawer__chev { margin-left:auto; width:16px !important; height:16px !important; color:var(--muted) !important; transition:transform .25s; } 2257 .mc-mdrawer__group[open] .mc-mdrawer__chev { transform:rotate(180deg); } 2258 .mc-mdrawer__sub { padding:0 6px 16px 38px; } 2259 .mc-mdrawer__sub-t { margin:12px 0 4px; font-size:10.5px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:var(--pink); } 2260 .mc-mdrawer__sub a { display:block; padding:7px 0; font-size:14.5px; font-weight:500; color:var(--muted); text-decoration:none; } 2261 .mc-mdrawer__sub a:hover { color:var(--navy); } 2262 .mc-mdrawer__sub a.mc-mdrawer__sub-all { margin-top:10px; color:var(--pink); font-weight:700; } 2263 2264 /* ----- Hero-indhold ----- */ 2265 .mc-hero__grid { display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; padding-top:64px; } 2266 .mc-hero__eyebrow { 2267 display:inline-flex; align-items:center; gap:10px; padding:6px 16px 6px 6px; margin-bottom:24px; 2268 border-radius:999px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); 2269 font-size:14px; font-weight:700; color:var(--navy); 2270 } 2271 .mc-hero__eyebrow .mc-av { width:30px; height:30px; font-size:14px; } 2272 .mc-hero__eyebrow .mc-av::after { width:9px; height:9px; } 2273 .mc-hero__eyebrow em { font-style:normal; color:var(--pink); } 2274 .mc-hero__h1 { 2275 font-family:var(--font); font-size:clamp(2.6rem,5vw,4.6rem); font-weight:800; line-height:1.02; 2276 letter-spacing:-0.045em; color:var(--navy); margin-bottom:22px; text-wrap:balance; 2277 } 2278 .mc-hero__h1 em { font-style:normal;
2278 color:var(--pink); } 2279 .mc-hero__lead { font-size:18.5px; line-height:1.6; color:var(--muted); max-width:48ch; margin-bottom:30px; } 2280 .mc-hero__cta { display:flex; flex-direction:column; align-items:flex-start; width:100%; max-width:560px; } 2281 .mc-hero__btnrow { display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; margin-top:18px; } 2282 .mc-hero__note { font-size:14px; font-weight:600; color:var(--muted); } 2283 .mc-hero__note b { color:var(--navy); } 2284 .mc-trust { display:flex; flex-wrap:wrap; gap:26px; margin-top:38px; padding-top:28px; border-top:1px solid var(--line-2); list-style:none; } 2285 .mc-trust li { display:flex; flex-direction:column; gap:3px; } 2286 .mc-trust b { font-size:26px; font-weight:800; letter-spacing:-0.03em; color:var(--navy); line-height:1.1; } 2287 .mc-trust span { font-size:13px; font-weight:600; color:var(--muted); } 2288 2289 /* ----- "Spørg Betty"-søgefeltet ----- */ 2290 .mc-search-container { position:relative; width:100%; } 2291 .mc-search-wrap { 2292 display:flex; align-items:center; gap:12px; height:66px; padding:0 8px 0 22px; width:100%; 2293 background:#fff; border:1.5px solid #fff; border-radius:20px; box-shadow:var(--shadow-lg); 2294 transition:border-color .2s, box-shadow .2s; 2295 } 2296 .mc-search-wrap:focus-within { border-color:var(--pink); box-shadow:0 0 0 5px rgba(234,57,109,0.14), var(--shadow-lg); } 2297 .mc-search-wrap > svg { flex-shrink:0; width:20px; height:20px; color:var(--pink); } 2298 .mc-search-wrap input { background:transparent; border:none; outline:none; width:100%; min-width:0; color:var(--navy); font-size:16px; font-weight:500; font-family:inherit; text-overflow:ellipsis; } 2299 .mc-search-wrap input::placeholder { color:var(--muted-2); font-weight:500; } 2300 .mc-search-go { flex-shrink:0; height:50px; padding:0 20px; border:none; border-radius:14px; background:var(--navy); color:#fff; font-family:inherit; font-size:15px; font-weight:700; cursor:pointer; transition:background .2s; } 2301 .mc-search-go:hover { background:var(--pink); } 2302 2303 .mc-search-dropdown { display:none; position:fixed; background:#fff; border-radius:20px; border:1px solid var(--line); box-shadow:var(--shadow-lg); overflow:hidden auto; max-height:420px; z-index:9999; text-align:left; font-family:var(--font); } 2304 .mc-search-dropdown.open { display:block; } 2305 .mc-search-result { display:flex; align-items:center; gap:14px; padding:12px 16px; text-decoration:none; color:var(--navy); transition:background .15s; border-bottom:1px solid var(--line); } 2306 .mc-search-result:last-child { border-bottom:none; } 2307 .mc-search-result:hover { background:var(--card); } 2308 .mc-search-result__img { width:44px; height:44px; border-radius:12px; object-fit:contain; background:#fff; border:1px solid var(--line); flex-shrink:0; padding:5px; } 2309 .mc-search-result__info { flex:1; min-width:0; } 2310 .mc-search-result__title { font-size:14.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } 2311 .mc-search-result__cashback { font-size:12.5px; color:var(--pink); font-weight:700; margin-top:3px; } 2312 .mc-search-result__sub { display:flex; align-items:center; gap:8px; margin-top:3px; font-size:12.5px; color:var(--muted); } 2313 .mc-search-result__sub b { color:var(--navy); font-weight:700; } 2314 .mc-search-spinner { padding:14px 16px; font-size:13px; color:var(--muted); text-align:center; } 2315 .mc-search-no-results { padding:20px 16px; text-align:center; color:var(--muted); font-size:14px; } 2316 .mc-search-label { padding:13px 16px 8px; font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted-2); } 2317 .mc-search-footer { padding:14px 16px; text-align:center; background:var(--navy); font-size:13.5px; color:#fff; font-weight:700; cursor:pointer; transition:background .15s; } 2318 .mc-search-footer:hover { background:var(--pink); } 2319 2320 /* ----- Betty-chatten i hero'en ----- */ 2321 .mc-stage { position:relative; max-width:470px; width:100%; margin:0 auto; } 2322 .mc-stage::before { 2323 content:''; position:absolute; inset:8% -8% -6% 8%; border-radius:40px; z-index:0; 2324 background:linear-gradient(145deg,var(--pink) 0%,#F07A9B 100%); transform:rotate(4deg);
2324 opacity:.95; 2325 } 2326 .mc-chat { 2327 position:relative; z-index:2; background:#fff; border-radius:30px; box-shadow:var(--shadow-lg); 2328 overflow:hidden; animation:mcPopIn .6s ease both; 2329 } 2330 .mc-chat__head { display:flex; align-items:center; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line); } 2331 .mc-chat__who b { display:block; font-size:16px; font-weight:800; letter-spacing:-0.01em; } 2332 .mc-chat__who span { display:block; font-size:12.5px; font-weight:600; color:var(--muted); } 2333 .mc-chat__tag { margin-left:auto; padding:5px 10px; border-radius:8px; background:var(--pink-tint); color:var(--pink); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; } 2334 .mc-chat__body { display:flex; flex-direction:column; gap:12px; padding:20px; background:linear-gradient(180deg,#fff 0%,var(--card) 100%); } 2335 .mc-bub { max-width:84%; padding:12px 16px; font-size:14.5px; line-height:1.5; border-radius:18px; animation:mcPopIn .5s ease both; } 2336 .mc-bub--me { align-self:flex-end; background:var(--navy); color:#fff; border-bottom-right-radius:6px; animation-delay:.15s; } 2337 .mc-bub--betty { align-self:flex-start; background:#fff; color:var(--navy); border:1px solid var(--line); border-bottom-left-radius:6px; box-shadow:0 4px 12px rgba(14,8,42,0.04); } 2338 .mc-bub--betty em { font-style:normal; font-weight:800; color:var(--pink); } 2339 .mc-bub--betty b { font-weight:800; } 2340 .mc-bub:nth-child(2) { animation-delay:.45s; } 2341 .mc-bub:nth-child(4) { animation-delay:1s; } 2342 .mc-offer { align-self:flex-start; width:88%; padding:14px; border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); animation:mcPopIn .5s ease .75s both; } 2343 .mc-offer__top { display:flex; align-items:center; gap:12px; } 2344 .mc-offer__logo { width:48px; height:48px; flex-shrink:0; border-radius:14px; background:#fff; border:1px solid var(--line); padding:6px; display:flex; align-items:center; justify-content:center; } 2345 .mc-offer__logo img { max-width:100%; max-height:100%; object-fit:contain; } 2346 .mc-offer__name { font-size:15px; font-weight:800; } 2347 .mc-offer__line { font-size:12.5px; color:var(--muted); margin-top:2px; } 2348 .mc-offer__rate { margin-left:auto; padding:6px 10px; border-radius:10px; background:var(--pink-tint); color:var(--pink); font-size:14px; font-weight:800; white-space:nowrap; } 2349 .mc-offer__btn { display:flex; align-items:center; justify-content:center; gap:8px; height:44px; margin-top:12px; border-radius:12px; background:var(--pink); color:#fff; font-size:14px; font-weight:700; } 2350 .mc-offer__btn::before { content:''; width:8px; height:8px; border-radius:50%; background:#fff; animation:mcPulse 1.6s infinite; } 2351 .mc-chat__chips { display:flex; gap:8px; flex-wrap:wrap; animation:mcPopIn .5s ease 1.2s both; } 2352 .mc-chat__chips span { padding:8px 14px; border-radius:999px; background:#fff; border:1px solid var(--line-2); font-size:13px; font-weight:700; color:var(--navy); } 2353 .mc-chat__chips span:first-child { border-color:var(--pink); color:var(--pink); } 2354 .mc-chat__foot { display:flex; align-items:center; gap:10px; padding:14px 16px 16px; background:var(--card); } 2355 .mc-chat__input { flex:1; height:44px; padding:0 16px; border-radius:14px; background:#fff; border:1px solid var(--line); display:flex; align-items:center; gap:4px; } 2356 .mc-chat__input i { width:6px; height:6px; border-radius:50%; background:var(--muted-2); display:block; animation:mcDot 1.2s infinite; } 2357 .mc-chat__input i:nth-child(2) { animation-delay:.15s; } 2358 .mc-chat__input i:nth-child(3) { animation-delay:.3s; } 2359 .mc-chat__send { width:44px; height:44px; border-radius:14px; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; } 2360 .mc-chat__send svg { width:18px; height:18px; } 2361 2362 /* Browser-notifikationen der svæver ovenpÃ¥ */ 2363 .mc-notif { 2364 position:absolute; z-index:3; left:-48px; bottom:-34px; width:250px; 2365 display:flex; align-items:center; gap:11px; padding:12px 14px; border-radius:18px; 2366 background:var(--navy); color:#fff; box-shadow:0 20px 44px rgba(14,8,42,0.32); 2367 animation:mcFloat 6s ease-in-out infinite; 2368 } 2369 .mc-notif__logo { width:38px; height:38px; flex-shrink:0; border-radius:11px; background:#fff; padding:5px; display:flex; align-items:center; justify-content:center; } 2370 .mc-notif__logo img { max-width:100%; max-height:100%; object-fit:contain; } 2371 .mc-notif__url { font-size:10.5px; font-weight:700; color:var(--on-dark-2); } 2372 .mc-notif__name { font-size:13px; font-weight:800; line-height:1.3; } 2373 .mc-notif__line { font-size:11.5px; color:#FF8DAE; font-weight:700; } 2374 .mc-stat-pill { 2375 position:absolute; z-index:3; right:-22px; top:-26px; padding:10px 14px; border-radius:16px; 2376 background:#fff; box-shadow:var(--shadow-lg); font-size:12px; font-weight:700; color:var(--muted); 2377 animation:mcFloat 7s ease-in-out 1s infinite; 2378 } 2379 .mc-stat-pill b { display:block; font-size:18px; font-weight:800; color:var(--navy); letter-spacing:-0.02em; } 2380 2381 /* ============ FÃLLES TYPOGRAFI ============ */ 2382 .mc-eyebrow { 2383 display:inline-flex; align-items:center; gap:8px; margin-bottom:16px; 2384 font-size:13px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:var(--pink); 2385 } 2386 .mc-eyebrow::before { content:''; width:18px; height:2px; border-radius:2px; background:currentColor; } 2387 .mc-h2 { font-family:var(--font); font-size:clamp(2rem,3.6vw,3.1rem); font-weight:800; line-height:1.06; letter-spacing:-0.04em; color:var(--navy); text-wrap:balance; } 2388 .mc-h2 em { font-style:normal;
2388 color:var(--pink); } 2389 .mc-body { font-size:17.5px; line-height:1.62; color:var(--muted); margin-top:18px; max-width:48ch; } 2390 .mc-link { font-size:15px; font-weight:700; color:var(--pink); text-decoration:none; white-space:nowrap; display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:999px; background:#fff; border:1px solid var(--line); transition:background .2s, color .2s; } 2391 .mc-link:hover { background:var(--pink); color:#fff; } 2392 .mc-dark .mc-h2 { color:#fff; } 2393 .mc-dark .mc-body { color:var(--on-dark); } 2394 .mc-dark .mc-eyebrow { color:#FF8DAE; } 2395 2396 /* ============ BEREGNER ============ */ 2397 .mc-calc { background:var(--card); padding:110px 0; border-radius:48px 48px 0 0; margin-top:-48px; position:relative; z-index:4; } 2398 .mc-calc__grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; } 2399 .mc-calc__quote { display:flex; gap:14px; align-items:flex-start; margin-top:30px; padding:18px; border-radius:20px; background:#fff; border:1px solid var(--line); max-width:480px; } 2400 .mc-calc__quote p { font-size:15px; line-height:1.55; color:var(--navy); } 2401 .mc-calc__quote p b { color:var(--pink); } 2402 .mc-calc__cta { margin-top:26px; } 2403 .mc-calc__card { position:relative; color:#fff; border-radius:32px; padding:44px 38px; overflow:hidden; background:var(--navy); box-shadow:var(--shadow-lg); } 2404 .mc-calc__card::before { content:''; position:absolute; width:420px; height:420px; right:-160px; top:-190px; border-radius:50%; background:radial-gradient(circle,rgba(234,57,109,0.45) 0%,transparent 66%); pointer-events:none; } 2405 .mc-calc__card > * { position:relative; z-index:2; } 2406 .mc-calc__tag { display:inline-flex; align-items:center; gap:8px; margin-bottom:22px; padding:6px 12px 6px 6px; border-radius:999px; background:rgba(255,255,255,0.1); font-size:12px; font-weight:700; } 2407 .mc-calc__tag .mc-av { width:24px; height:24px; font-size:12px; } 2408 .mc-calc__tag .mc-av::after { display:none; } 2409 .mc-calc__top { padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,0.12); margin-bottom:30px; } 2410 .mc-calc__lbl { font-size:12px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:var(--on-dark-2); margin-bottom:10px; } 2411 .mc-calc__amt { font-family:var(--font); font-size:clamp(3rem,6.4vw,4.8rem); font-weight:800; letter-spacing:-0.05em; line-height:1; font-variant-numeric:tabular-nums; color:#fff; } 2412 .mc-calc__year { font-size:15px; font-weight:600; color:#FF8DAE; margin-top:10px; } 2413 .mc-ctrl { margin-bottom:26px; } 2414 .mc-ctrl__top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px; } 2415 .mc-ctrl__t { font-size:15px; color:var(--on-dark); } 2416 .mc-ctrl__v { font-size:16px; font-weight:800; color:#fff; font-variant-numeric:tabular-nums; } 2417 .mc-range { -webkit-appearance:none; appearance:none; width:100%; height:8px; border-radius:999px; background:rgba(255,255,255,0.16); outline:none; cursor:pointer; } 2418 .mc-range::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:26px; height:26px; border-radius:50%; background:var(--pink); border:4px solid #fff; box-shadow:0 4px 14px rgba(234,57,109,0.6); cursor:pointer; } 2419 .mc-range::-moz-range-thumb { width:22px; height:22px; border-radius:50%; background:var(--pink); border:4px solid #fff; cursor:pointer; } 2420 .mc-calc__split { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.12); } 2421 .mc-calc__split > div { padding:16px 10px; border-radius:18px; background:rgba(255,255,255,0.06); text-align:center; } 2422 .mc-calc__sn { font-family:var(--font); font-size:1.4rem; font-weight:800; letter-spacing:-0.02em; font-variant-numeric:tabular-nums; color:#fff; } 2423 .mc-calc__split > div:nth-child(1) .mc-calc__sn { color:#FF8DAE; } 2424 .mc-calc__sl { font-size:11.5px; line-height:1.4; color:var(--on-dark-2); margin-top:6px; } 2425 2426 /* ============ BUTIKKER ============ */ 2427 .mc-shops { background:var(--card); padding:0 0 100px; } 2428 .mc-shops__head { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:22px; } 2429 .mc-shops__title { font-family:var(--font); font-size:1.75rem; font-weight:800; letter-spacing:-0.03em; color:var(--navy); } 2430 .mc-shops__block { margin-bottom:50px; } 2431 .mc-shops__block:last-child { margin-bottom:0; } 2432 .mc-grid { display:grid; gap:14px; grid-template-columns:repeat(2,1fr); } 2433 @media (min-width:560px) { .mc-grid { grid-template-columns:repeat(3,1fr); } } 2434 @media (min-width:800px) { .mc-grid { grid-template-columns:repeat(4,1fr); } } 2435 @media (min-width:1050px) { .mc-grid { grid-template-columns:repeat(6,1fr); } } 2436 .mc-kort { position:relative; background:#fff; border-radius:22px; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); transition:transform .2s ease, box-shadow .2s ease; } 2437 .mc-kort:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(234,57,109,0.18); } 2438 .mc-kort-link { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding-bottom:30px; text-decoration:none; } 2439 .mc-kort-logo { max-width:74%; max-height:56%; object-fit:contain; transition:transform .3s ease; } 2440 .mc-kort:hover .mc-kort-logo { transform:scale(1.05); } 2441 .mc-kort-badge { position:absolute; left:10px; right:10px; bottom:10px; padding:8px 6px; z-index:1; background:var(--pink-tint); color:var(--pink); font-size:12.5px; font-weight:800; text-align:center; line-height:1; border-radius:12px; transition:background .2s, color .2s; } 2442 .mc-kort:hover .mc-kort-badge { background:var(--pink); color:#fff; } 2443 .mc-kort-agern { position:absolute; top:9px; right:9px; width:32px; height:32px;
2443 z-index:2; background:#fff; border:1px solid var(--line-2); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .18s; } 2444 .mc-kort-agern:hover { transform:scale(1.12); } 2445 .mc-kort-agern svg { width:16px; height:16px; fill:none; stroke:var(--navy); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; opacity:0.5; transition:opacity .25s, fill .25s, stroke .25s; } 2446 .mc-kort-agern[data-active="true"] svg { opacity:1; fill:var(--pink); stroke:var(--pink); } 2447 .mc-dots { display:none; } 2448 .visually-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; } 2449 2450 /* ============ SÃ DAN HJÃLPER BETTY ============ */ 2451 .mc-time { background:var(--navy); padding:110px 0; position:relative; overflow:hidden; } 2452 .mc-time::before { content:''; position:absolute; width:900px; height:900px; left:50%; top:-560px; transform:translateX(-50%); border-radius:50%; background:radial-gradient(circle,rgba(234,57,109,0.28) 0%,transparent 64%); pointer-events:none; } 2453 .mc-time__head { text-align:center; max-width:680px; margin:0 auto 60px; } 2454 .mc-time__head .mc-body { margin-left:auto; margin-right:auto; } 2455 .mc-steps { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; } 2456 .mc-steps::before { content:''; position:absolute; top:34px; left:12%; right:12%; height:2px; background:repeating-linear-gradient(90deg,rgba(255,141,174,.55) 0 8px,transparent 8px 16px); z-index:0; } 2457 .mc-card { position:relative; z-index:1; display:flex; flex-direction:column; background:var(--navy-3); border:1px solid rgba(255,255,255,0.08); border-radius:26px; padding:26px 24px 28px; transition:transform .2s, border-color .2s; } 2458 .mc-card:hover { transform:translateY(-4px); border-color:rgba(234,57,109,0.5); } 2459 .mc-card__n { width:44px; height:44px; border-radius:14px; background:var(--pink); color:#fff; font-size:16px; font-weight:800; display:flex; align-items:center; justify-content:center; margin-bottom:22px; box-shadow:0 0 0 6px var(--navy); } 2460 .mc-card__t { font-size:19px; font-weight:800; letter-spacing:-0.02em; margin-bottom:10px; color:#fff; line-height:1.25; } 2461 .mc-card__p { font-size:15px; line-height:1.6; color:var(--on-dark); } 2462 .mc-card__btn { margin-top:auto; padding-top:22px; } 2463 .mc-card__ok { margin-top:16px; color:#FF8DAE !important; font-weight:800; } 2464 .mc-time__cta { text-align:center; margin-top:56px; } 2465 2466 /* ============ 1 MIO. VARER ============ */ 2467 .mc-mio { background:var(--panel); padding:100px 0; } 2468 .mc-mio__box { position:relative; overflow:hidden; border-radius:40px; padding:76px 40px; text-align:center; background:linear-gradient(135deg,#EA396D 0%,#F0507F 50%,#D42C5E 100%); color:#fff; } 2469 .mc-mio__box::before { content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,0.22) 1.5px,transparent 1.5px); background-size:22px 22px; -webkit-mask-image:radial-gradient(ellipse at center,#000 0%,transparent 70%); mask-image:radial-gradient(ellipse at center,#000 0%,transparent 70%); pointer-events:none; } 2470 .mc-mio__in { position:relative; z-index:2; max-width:780px; margin:0 auto; } 2471 .mc-mio__tal { display:block; font-family:var(--font); font-size:clamp(3.2rem,9vw,6rem); font-weight:800; line-height:1; letter-spacing:-0.05em; color:#fff; } 2472 .mc-mio__h { font-family:var(--font); margin:12px 0 16px; font-size:clamp(1.5rem,3.2vw,2.2rem); font-weight:800; line-height:1.15; letter-spacing:-0.03em; color:#fff; text-wrap:balance; } 2473 .mc-mio__p { font-size:17px; line-height:1.65; color:rgba(255,255,255,0.88); max-width:52ch; margin:0 auto 30px; } 2474 .mc-mio__pkt { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:28px; list-style:none; } 2475 .mc-mio__pkt li { display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:999px; background:rgba(255,255,255,0.16); font-size:14px; font-weight:700; color:#fff; } 2476 .mc-mio__pkt li::before { content:'â'; font-size:12px; } 2477 2478 /* ============ RABATKODER ============ */ 2479 .mc-codes { background:var(--panel); padding:0 0 100px; } 2480 .mc-codes__box { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; padding:48px; border-radius:36px; background:#fff; box-shadow:var(--shadow); } 2481 .mc-codes__in .mc-body { margin-top:14px; } 2482 .mc-codes__chips { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:24px 0 0; } 2483 .mc-codes__chip { display:inline-flex; align-items:center; gap:10px; padding:8px 8px 8px 16px; border-radius:14px; background:var(--card); border:1.5px dashed var(--line-2); font-size:14px; font-weight:700; } 2484 .mc-codes__chip-shop { color:var(--navy); } 2485 .mc-codes__chip-val { padding:4px 10px; border-radius:9px; background:var(--pink); color:#fff; font-weight:800; font-size:12.5px; } 2486 2487 /* ============ FORDELE ============ */ 2488 .mc-feat { background:var(--panel); padding:0 0 110px; } 2489 .mc-feat__grid { display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center; }
2490 .mc-feat__cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; } 2491 .mc-fcard { background:#fff; border-radius:26px; padding:28px 26px; border:1px solid var(--line); box-shadow:var(--shadow); transition:transform .2s ease; } 2492 .mc-fcard:hover { transform:translateY(-4px); } 2493 .mc-fcard__ico { width:52px; height:52px; border-radius:16px; background:var(--pink-tint); color:var(--pink); display:flex; align-items:center; justify-content:center; margin-bottom:20px; } 2494 .mc-fcard__ico svg { width:24px; height:24px; } 2495 .mc-fcard:nth-child(2) .mc-fcard__ico { background:var(--navy); color:#fff; } 2496 .mc-fcard:nth-child(3) .mc-fcard__ico { background:rgba(39,103,249,0.1); color:var(--blue); } 2497 .mc-fcard:nth-child(4) .mc-fcard__ico { background:var(--pink); color:#fff; } 2498 .mc-fcard__t { font-size:18px; font-weight:800; letter-spacing:-0.02em; margin-bottom:8px; color:var(--navy); } 2499 .mc-fcard__p { font-size:15px; line-height:1.6; color:var(--muted); } 2500 2501 /* ============ ÃNSKELISTER ============ */ 2502 .mc-wish { position:relative; overflow:hidden; padding:110px 0; background:var(--pink-soft); } 2503 .mc-wish__g { position:absolute; width:700px; height:700px; border-radius:50%; right:-200px; top:-260px; background:radial-gradient(circle,rgba(255,255,255,0.7) 0%,transparent 64%); pointer-events:none; } 2504 .mc-wish__grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; } 2505 .mc-wish__in { position:relative; z-index:2; } 2506 .mc-wish__list { list-style:none; display:flex; flex-direction:column; gap:14px; margin:28px 0 34px; } 2507 .mc-wish__li { display:flex; gap:14px; align-items:flex-start; font-size:16px; line-height:1.55; color:var(--muted); } 2508 .mc-wish__li b { color:var(--navy); font-weight:800; } 2509 .mc-wish__tick { flex-shrink:0; width:30px; height:30px; border-radius:10px; background:#fff; color:var(--pink); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); } 2510 .mc-wish__tick svg { width:15px; height:15px; } 2511 .mc-wish__demo { position:relative; z-index:2; display:flex; justify-content:center; } 2512 .mc-wishcard { position:relative; width:100%; max-width:440px; background:#fff; color:var(--navy); border-radius:30px; padding:26px; box-shadow:var(--shadow-lg); } 2513 .mc-wishcard__top { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-bottom:18px; border-bottom:1px solid var(--line); margin-bottom:6px; } 2514 .mc-wishcard__ttl { font-size:18px; font-weight:800; letter-spacing:-0.02em; } 2515 .mc-wishcard__sub { font-size:13px; color:var(--muted); } 2516 .mc-wishcard__pill { flex-shrink:0; padding:7px 12px; border-radius:10px; background:var(--pink-tint); color:var(--pink); font-size:12.5px; font-weight:800; } 2517 .mc-wishrow { display:flex; align-items:center; gap:13px; padding:13px 0; border-bottom:1px solid var(--line); } 2518 .mc-wishrow__logo { width:48px; height:48px; border-radius:14px; border:1px solid var(--line); background:#fff; padding:6px; flex-shrink:0; display:flex; align-items:center; justify-content:center; } 2519 .mc-wishrow__logo img { max-width:100%; max-height:100%; object-fit:contain; } 2520 .mc-wishrow__txt { flex:1; min-width:0; } 2521 .mc-wishrow__name { font-size:15px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } 2522 .mc-wishrow__meta { font-size:12.5px; color:var(--muted); } 2523 .mc-wishrow__rate { flex-shrink:0; padding:5px 9px; border-radius:9px; background:var(--card); font-size:13px; font-weight:800; color:var(--pink); } 2524 .mc-wishcard__foot { display:flex; align-items:center; gap:10px; margin-top:18px; padding:12px 14px; border-radius:16px; background:var(--card); font-size:13px; line-height:1.45; color:var(--navy); } 2525 .mc-wishcard__foot .mc-av { width:30px; height:30px; font-size:14px; } 2526 .mc-wishcard__foot .mc-av::after { display:none; } 2527 2528 /* ============ AFSLUTNING ============ */ 2529 .mc-end { padding:120px 28px; text-align:center; position:relative; overflow:hidden; background:var(--navy); } 2530 .mc-end::before { content:''; position:absolute; width:1000px; height:1000px; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(234,57,109,0.34) 0%,transparent 60%); pointer-events:none; } 2531 .mc-end__in { position:relative; z-index:2; } 2532 .mc-end .mc-av--lg { margin-bottom:28px; box-shadow:0 0 0 10px rgba(234,57,109,0.16), 0 0 0 22px rgba(234,57,109,0.07); } 2533 .mc-end__h2 { font-family:var(--font); font-size:clamp(2.2rem,4.6vw,3.8rem); font-weight:800; letter-spacing:-0.045em; line-height:1.04; color:#fff;
2533 max-width:17ch; margin:0 auto 18px; text-wrap:balance; } 2534 .mc-end__h2 em { font-style:normal; color:#FF8DAE; } 2535 .mc-end__p { font-size:17.5px; line-height:1.6; color:var(--on-dark); max-width:46ch; margin:0 auto 34px; } 2536 .mc-end__login { margin-top:24px; font-size:15px; color:var(--on-dark); } 2537 .mc-end__login span { color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:3px; cursor:pointer; } 2538 2539 /* ============ FOOTER ============ */ 2540 #mc-landing-footer.mc-foot, footer#mc-landing-footer, .mc-foot#mc-landing-footer { 2541 display:block !important; visibility:visible !important; opacity:1 !important; height:auto !important; 2542 max-height:none !important; overflow:visible !important; position:relative !important; pointer-events:auto !important; 2543 } 2544 .mc-foot { background:var(--navy-2); color:#fff; padding:64px 0 34px; } 2545 .mc-foot__top { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:48px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.1); } 2546 .mc-foot__logo img { height:36px; width:auto; margin-bottom:16px; display:block; } 2547 .mc-foot__logo .mc-wordmark { display:block; color:#fff; font-size:30px; margin-bottom:16px; } 2548 .mc-foot__tag { font-size:14.5px; line-height:1.65; color:var(--on-dark-2); max-width:280px; } 2549 .mc-foot__ttl { font-size:12px; font-weight:800; letter-spacing:0.12em; text-transform:uppercase; color:#FF8DAE; margin-bottom:16px; } 2550 .mc-foot__contact { list-style:none; display:flex; flex-direction:column; gap:14px; } 2551 .mc-foot__contact li { display:flex; align-items:flex-start; gap:12px; font-size:14.5px; line-height:1.55; color:var(--on-dark); } 2552 .mc-foot__contact a { color:var(--on-dark); text-decoration:none; } 2553 .mc-foot__contact a:hover { color:#fff; } 2554 .mc-foot__ic { flex-shrink:0; width:32px; height:32px; border-radius:10px; background:rgba(255,255,255,0.07); display:flex; align-items:center; justify-content:center; color:#FF8DAE; } 2555 .mc-foot__ic svg { width:16px; height:16px; } 2556 .mc-foot__more { list-style:none; display:flex; flex-direction:column; gap:13px; } 2557 .mc-foot__more a { font-size:14.5px; color:var(--on-dark); text-decoration:none; } 2558 .mc-foot__more a:hover { color:#fff; } 2559 .mc-foot__bot { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:28px; } 2560 .mc-foot__c { font-size:13px; color:rgba(255,255,255,0.4); } 2561 .mc-foot__links { display:flex; gap:24px; } 2562 .mc-foot__links a { font-size:13px; color:rgba(255,255,255,0.4); text-decoration:none; } 2563 .mc-foot__links a:hover { color:#fff; } 2564 2565 /* ============ RESPONSIVT ============ */ 2566 @media (max-width:1100px) { 2567 .mc-nav__links { display:none; } 2568 .mc-nav__burger { display:inline-flex; } 2569 .mc-notif { left:-10px; } 2570 .mc-stat-pill { right:-6px; } 2571 } 2572 @media (max-width:1040px) { 2573 .mc-hero__grid, .mc-feat__grid, .mc-calc__grid, .mc-wish__grid { grid-template-columns:1fr; gap:48px; } 2574 .mc-steps { grid-template-columns:1fr 1fr; } 2575 .mc-steps::before { display:none; } 2576 .mc-codes__box { grid-template-columns:1fr; } 2577 } 2578 @media (max-width:768px) { 2579 .mc__wrap { padding:0 18px; } 2580 .mc-btn { height:54px; padding:0 24px; font-size:16px; } 2581 .mc-btn--sm { height:44px; padding:0 18px; font-size:14px; } 2582 2583 .mc-nav__bar { margin-top:12px; width:calc(100% - 24px); padding:10px 10px 10px 18px; border-radius:18px; } 2584 .mc-nav__logo img { height:28px; } 2585 .mc-wordmark { font-size:28px; } 2586 .mc-nav__login { display:none !important; } 2587 2588 .mc-hero { padding-bottom:90px; } 2589 .mc-hero__grid { padding-top:38px; gap:40px; } 2590 .mc-hero__h1 { font-size:clamp(2.3rem,10vw,3rem); margin-bottom:16px; } 2591 .mc-hero__lead { font-size:16.5px; margin-bottom:24px; } 2592 .mc-hero__btnrow { flex-direction:column; align-items:stretch; width:100%; } 2593 .mc-hero__btnrow .mc-btn { width:100%; } 2594 .mc-hero__note { text-align:center; } 2595 .mc-search-wrap { height:60px; padding-left:16px; } 2596 .mc-search-go { height:44px; padding:0 14px; } 2597 .mc-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; } 2598 .mc-hero__eyebrow { font-size:12.5px; padding-right:12px; } 2599 .mc-trust b { font-size:19px; } 2600 .mc-trust span { font-size:11.5px; line-height:1.3; } 2601 .mc-stage { max-width:420px; } 2602 .mc-stage::before { inset:6% -3% -4% 6%; }
2603 .mc-notif { left:-6px; bottom:-58px; width:230px; } 2604 .mc-stage { margin-bottom:40px; } 2605 .mc-stat-pill { right:-4px; top:-24px; } 2606 .mc-bub { font-size:14px; } 2607 2608 .mc-calc { padding:72px 0; border-radius:32px 32px 0 0; } 2609 .mc-calc__card { padding:30px 22px; border-radius:26px; } 2610 .mc-calc__amt { font-size:clamp(2.8rem,13vw,3.6rem); } 2611 .mc-calc__split { gap:8px; } 2612 .mc-calc__split > div { padding:14px 6px; border-radius:14px; } 2613 .mc-calc__sl { font-size:11px; } 2614 .mc-calc__cta .mc-btn { width:100%; } 2615 2616 .mc-shops { padding-bottom:64px; } 2617 .mc-shops__title { font-size:1.35rem; } 2618 .mc-shops__block { margin-bottom:36px; } 2619 .mc-link { padding:7px 12px; font-size:13.5px; } 2620 .mc-grid { 2621 display:grid; grid-auto-flow:column; grid-auto-columns:138px; grid-template-rows:repeat(2,1fr); 2622 gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; 2623 margin:0 -18px; padding:4px 18px 12px; scroll-padding-left:18px; 2624 } 2625 .mc-grid::-webkit-scrollbar { display:none; } 2626 .mc-grid .mc-kort { width:138px; scroll-snap-align:start; } 2627 .mc-dots { display:flex; justify-content:center; align-items:center; gap:7px; margin-top:12px; } 2628 .mc-dots span { width:7px; height:7px; border-radius:999px; background:var(--line-2); cursor:pointer; transition:width .25s, background .25s; } 2629 .mc-dots span.active { width:22px; background:var(--pink); } 2630 2631 .mc-time { padding:72px 0; } 2632 .mc-time__head { margin-bottom:36px; } 2633 .mc-steps { grid-template-columns:1fr; gap:12px; } 2634 .mc-card { padding:22px 20px; flex-direction:row; flex-wrap:wrap; gap:0 16px; } 2635 .mc-card__n { margin-bottom:0; width:40px; height:40px; box-shadow:none; } 2636 .mc-card > div, .mc-card__body { flex:1; min-width:0; } 2637 .mc-card__t { font-size:18px; } 2638 .mc-card__btn { width:100%; padding-top:16px; } 2639 .mc-card__btn .mc-btn { width:100%; } 2640 .mc-time__cta { margin-top:34px; } 2641 .mc-time__cta .mc-btn { width:100%; } 2642 2643 .mc-mio { padding:64px 0; } 2644 .mc-mio__box { padding:52px 22px; border-radius:30px; } 2645 .mc-mio__p { font-size:15.5px; } 2646 .mc-mio .mc-btn { width:100%; } 2647 .mc-mio__pkt li { font-size:13px; padding:8px 14px; } 2648 2649 .mc-codes { padding-bottom:64px; } 2650 .mc-codes__box { padding:30px 22px; border-radius:28px; gap:26px; } 2651 .mc-codes .mc-btn { width:100%; } 2652 2653 .mc-feat { padding-bottom:72px; }
2654 .mc-feat__cards { grid-template-columns:1fr; gap:12px; } 2655 .mc-fcard { padding:22px 20px; display:grid; grid-template-columns:48px 1fr; gap:4px 16px; } 2656 .mc-fcard__ico { grid-row:span 2; width:48px; height:48px; margin-bottom:0; } 2657 2658 .mc-wish { padding:72px 0; } 2659 .mc-wish__list { margin:22px 0 28px; } 2660 .mc-wish__li { font-size:15.5px; } 2661 .mc-wish__cta .mc-btn { width:100%; } 2662 .mc-wishcard { padding:20px; border-radius:24px; } 2663 2664 .mc-end { padding:80px 20px; } 2665 .mc-end .mc-btn { width:100%; } 2666 .mc-foot__top { grid-template-columns:1fr; gap:32px; } 2667 .mc-foot__bot { flex-direction:column; align-items:flex-start; gap:12px; } 2668 } 2669 @media (max-width:420px) { 2670 .mc-notif { width:210px; } 2671 .mc-trust b { font-size:17px; } 2672 } 2673 2674 /* ============ TELEFON OG TABLET: app i stedet for Chrome ============ */ 2675 .mc-only-touch { display:none; } 2676 .mc--mobil .mc-only-desk { display:none !important; } 2677 .mc--mobil .mc-only-touch { display:block; } 2678 .mc-mdrawer__cta { width:100%; margin:6px 0 8px; } 2679 .mc-mdrawer__app { display:flex; align-items:center; gap:12px; margin-top:18px; padding:14px; border-radius:16px; background:var(--navy); color:#fff; text-decoration:none; } 2680 .mc-mdrawer__app img { width:42px; height:42px; border-radius:11px; flex-shrink:0; } 2681 .mc-mdrawer__app b { display:block; font-size:15px; } 2682 .mc-mdrawer__app span { font-size:12.5px; color:var(--on-dark); } 2683 2684 @media (prefers-reduced-motion: reduce) { 2685 .mc *, .mc *::before, .mc *::after { animation:none !important; transition-duration:.01ms !important; } 2686 } 2687</style> 2688 2689<div class="mc" id="mc-root">
2690<script> 2691 /* Kun rigtige telefoner og tablets får "Få Bettys som app" i stedet for Chrome */ 2692 (function () { 2693 var ua = navigator.userAgent || ''; 2694 var mobil = /Android|iPhone|iPad|iPod/i.test(ua) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); 2695 if (mobil) document.getElementById('mc-root').classList.add('mc--mobil'); 2696 })(); 2697</script>
2697<script type="application/json" id="mc-receipt-data"> 2698 [{ 2699 "shop": "Yuaia Haircare", 2700 "image": "\/\/bettys.io\/cdn\/shop\/files\/MinCashback-https___yuaiahaircare.dk.png?v=1776368773\u0026width=200", 2701 "url": "\/products\/yuaiahaircare", 2702 "pct": "10", 2703 "fast": null, 2704 "total": "899" 2705 },{ 2706 "shop": "Apopro", 2707 "image": "\/\/bettys.io\/cdn\/shop\/files\/MinCashback-httpsapopro.dk_a1722e00-1736-48b8-abe5-9081d82489e6.png?v=1789716871\u0026width=200", 2708 "url": "\/products\/apopro", 2709 "pct": "Op til 4", 2710 "fast": null, 2711 "total": "899" 2712 }] 2713 </script>
2713 2714 2715 <!-- ============ HERO ============ --> 2716 <header class="mc-hero"> 2717 <span class="mc-hero__g1" aria-hidden="true"></span> 2718 <span class="mc-hero__g2" aria-hidden="true"></span> 2719 2720 <nav class="mc-nav"> 2721 <div class="mc-nav__bar"> 2722 <a href="/" class="mc-nav__logo" aria-label="Bettys â forside"><span class="mc-wordmark">Bettys</span></a> 2723 <div class="mc-nav__right"> 2724 <ul class="mc-nav__links"> 2725 <li><a href="/collections/all" class="mc-nav__link">Butikker</a></li> 2726 <li> 2727 <button type="button" class="mc-nav__link" aria-haspopup="true"> 2728 Inspiration 2729 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg> 2730 </button> 2731 <div class="mc-nav__drop mc-nav__drop--mega"> 2732 <div> 2733 <p class="mc-nav__col-t">Tøj</p> 2734 <a href="/pages/soeg-varer?q=tøj">Tøj</a> 2735 <a href="/pages/soeg-varer?q=bukser">Bukser</a> 2736 <a href="/pages/soeg-varer?q=jakke">Jakker</a> 2737 <a href="/pages/soeg-varer?q=kjole">Kjoler</a> 2738 <a href="/pages/soeg-varer?q=nederdel">Nederdele</a> 2739 <a href="/pages/soeg-varer?q=shorts">Shorts</a> 2740 <a href="/pages/soeg-varer?q=t-shirt">T-shirts</a> 2741 <a href="/pages/soeg-varer?q=skjorte">Skjorter</a> 2742 </div> 2743 <div> 2744 <p class="mc-nav__col-t">Sko & tilbehør</p> 2745 <a href="/pages/soeg-varer?q=sko">Sko</a> 2746 <a href="/pages/soeg-varer?q=smykker">Smykker</a> 2747 <a href="/pages/soeg-varer?q=ur">Ure</a> 2748 <a href="/pages/soeg-varer?q=solbriller">Solbriller</a> 2749 </div> 2750 <div> 2751 <p class="mc-nav__col-t">Skønhed & sundhed</p> 2752 <a href="/pages/soeg-varer?q=makeup">Makeup</a> 2753 <a href="/pages/soeg-varer?q=hudpleje">Hudpleje</a> 2754 <a href="/pages/soeg-varer?q=hÃ¥rpleje">HÃ¥rpleje</a> 2755 <a href="/pages/soeg-varer?q=parfume">Parfume</a> 2756 <a href="/pages/soeg-varer?q=vitaminer">Vitaminer</a> 2757 <a href="/pages/soeg-varer?q=skønhedsprodukter">Skønhedsprodukter</a> 2758 </div> 2759 <a href="/pages/soeg-varer" class="mc-nav__mega-all">Se alle varer med cashback â</a> 2760 </div> 2761 </li> 2762 <li><a href="/pages/rabatkoder" class="mc-nav__link">Rabatkoder</a></li> 2763 <li> 2764 <button type="button" class="mc-nav__link" aria-haspopup="true"> 2765 Om Betty 2766 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg> 2767 </button> 2768 <ul class="mc-nav__drop"> 2769 <li><a href="/pages/om-os">Om Betty</a></li> 2770 <li><a href="/pages/kontakt">Kontakt</a></li> 2771 </ul> 2772 </li> 2773 </ul> 2774 <button type="button" class="mc-nav__login" id="mc-nav-login-btn" onclick="mcAuthClick()"> 2775 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></svg> 2776 <span id="mc-auth-label">Log ind</span> 2777 </button> 2778 <button type="button" class="mc-nav__burger" id="mc-burger-btn" aria-label="à bn menu" aria-expanded="false"> 2779 <span></span> 2780 </button> 2781 </div> 2782 </div> 2783 </nav> 2784 2785 <!-- ============ MOBIL BURGER-MENU ============ --> 2786 <div class="mc-mdrawer-overlay" id="mc-mdrawer-overlay"></div> 2787 <div class="mc-mdrawer" id="mc-mdrawer" role="dialog" aria-modal="true" aria-label="Menu"> 2788 <button type="button" class="mc-mdrawer__close" id="mc-mdrawer-close" aria-label="Luk menu"> 2789 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> 2790 </button> 2791 2792 <!-- Gæst --> 2793 <div id="mc-mdrawer-guest"> 2794 <div class="mc-mdrawer__hi">
2795 <span class="mc-av"><span aria-hidden="true">B</span></span> 2796 <div><b>Hej, jeg er Betty</b>Log ind, sÃ¥ holder jeg styr pÃ¥ din cashback.</div> 2797 </div> 2798 <button type="button" class="mc-mdrawer__link mc-mdrawer__link--primary" id="mc-mdrawer-login"> 2799 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></svg> 2800 Log ind 2801 </button> 2802 <button type="button" class="mc-btn mc-btn--pink mc-mdrawer__cta" onclick="document.getElementById('mc-mdrawer-close').click(); mcOpenSignup();">Opret gratis profil</button> 2803 <a href="/collections/all" class="mc-mdrawer__link"> 2804 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><path d="M3 6h18"/><path d="M16 10a4 4 0 0 1-8 0"/></svg> 2805 Butikker 2806 </a> 2807 <details class="mc-mdrawer__group"> 2808 <summary class="mc-mdrawer__link"> 2809 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg> 2810 Inspiration 2811 <svg class="mc-mdrawer__chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg> 2812 </summary> 2813 <div class="mc-mdrawer__sub"> 2814 <p class="mc-mdrawer__sub-t">Tøj</p> 2815 <a href="/pages/soeg-varer?q=tøj">Tøj</a> 2816 <a href="/pages/soeg-varer?q=bukser">Bukser</a> 2817 <a href="/pages/soeg-varer?q=jakke">Jakker</a> 2818 <a href="/pages/soeg-varer?q=kjole">Kjoler</a> 2819 <a href="/pages/soeg-varer?q=nederdel">Nederdele</a> 2820 <a href="/pages/soeg-varer?q=shorts">Shorts</a> 2821 <a href="/pages/soeg-varer?q=t-shirt">T-shirts</a> 2822 <a href="/pages/soeg-varer?q=skjorte">Skjorter</a> 2823 <p class="mc-mdrawer__sub-t">Sko & tilbehør</p> 2824 <a href="/pages/soeg-varer?q=sko">Sko</a> 2825 <a href="/pages/soeg-varer?q=smykker">Smykker</a> 2826 <a href="/pages/soeg-varer?q=ur">Ure</a> 2827 <a href="/pages/soeg-varer?q=solbriller">Solbriller</a> 2828 <p class="mc-mdrawer__sub-t">Skønhed & sundhed</p> 2829 <a href="/pages/soeg-varer?q=makeup">Makeup</a> 2830 <a href="/pages/soeg-varer?q=hudpleje">Hudpleje</a> 2831 <a href="/pages/soeg-varer?q=hÃ¥rpleje">HÃ¥rpleje</a> 2832 <a href="/pages/soeg-varer?q=parfume">Parfume</a> 2833 <a href="/pages/soeg-varer?q=vitaminer">Vitaminer</a> 2834 <a href="/pages/soeg-varer?q=skønhedsprodukter">Skønhedsprodukter</a> 2835 <a href="/pages/soeg-varer" class="mc-mdrawer__sub-all">Se alle varer med cashback â</a> 2836 </div> 2837 </details> 2838 <a href="/pages/rabatkoder" class="mc-mdrawer__link"> 2839 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L2 12V2h10l8.6 8.6a2 2 0 0 1 0 2.8z"/><circle cx="7" cy="7" r="1.5"/></svg> 2840 Rabatkoder 2841 </a> 2842 <a href="/pages/om-os" class="mc-mdrawer__link"> 2843 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg> 2844 Om Betty 2845 </a> 2846 <a href="/pages/app" class="mc-mdrawer__app"> 2847 <img src="https://cdn.shopify.com/s/files/1/1047/8216/8403/files/betty-app-180.png" alt=""> 2848 <div><b>FÃ¥ Bettys som app</b><span>Læg Betty pÃ¥ din startskærm â gratis</span></div> 2849 </a> 2850 </div> 2851 2852 <!-- Logget ind --> 2853 <div id="mc-mdrawer-user" hidden> 2854 <p class="mc-mdrawer__name" id="mc-mdrawer-name">...</p> 2855 <p class="mc-mdrawer__email" id="mc-mdrawer-email">...</p> 2856 2857 <a href="/collections/all" class="mc-mdrawer__link"> 2858 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><path d="M3 6h18"/><path d="M16 10a4 4 0 0 1-8 0"/></svg> 2859 Alle butikker 2860 </a> 2861 <details class="mc-mdrawer__group"> 2862 <summary class="mc-mdrawer__link"> 2863 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg> 2864 Inspiration 2865 <svg class="mc-mdrawer__chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg> 2866 </summary> 2867 <div class="mc-mdrawer__sub"> 2868 <p class="mc-mdrawer__sub-t">Tøj</p> 2869 <a href="/pages/soeg-varer?q=tøj">Tøj</a> 2870 <a href="/pages/soeg-varer?q=bukser">Bukser</a> 2871 <a href="/pages/soeg-varer?q=jakke">Jakker</a> 2872 <a href="/pages/soeg-varer?q=kjole">Kjoler</a> 2873 <a href="/pages/soeg-varer?q=nederdel">Nederdele</a> 2874 <a href="/pages/soeg-varer?q=shorts">Shorts</a> 2875 <a href="/pages/soeg-varer?q=t-shirt">T-shirts</a> 2876 <a href="/pages/soeg-varer?q=skjorte">Skjorter</a> 2877 <p class="mc-mdrawer__sub-t">Sko & tilbehør</p> 2878 <a href="/pages/soeg-varer?q=sko">Sko</a> 2879 <a href="/pages/soeg-varer?q=smykker">Smykker</a> 2880 <a href="/pages/soeg-varer?q=ur">Ure</a> 2881 <a href="/pages/soeg-varer?q=solbriller">Solbriller</a> 2882 <p class="mc-mdrawer__sub-t">Skønhed & sundhed</p> 2883 <a href="/pages/soeg-varer?q=makeup">Makeup</a> 2884 <a href="/pages/soeg-varer?q=hudpleje">Hudpleje</a> 2885 <a href="/pages/soeg-varer?q=hÃ¥rpleje">HÃ¥rpleje</a> 2886 <a href="/pages/soeg-varer?q=parfume">Parfume</a> 2887 <a href="/pages/soeg-varer?q=vitaminer">Vitaminer</a> 2888 <a href="/pages/soeg-varer?q=skønhedsprodukter">Skønhedsprodukter</a>
2889 <a href="/pages/soeg-varer" class="mc-mdrawer__sub-all">Se alle varer med cashback â</a> 2890 </div> 2891 </details> 2892 <a href="/pages/konto" class="mc-mdrawer__link"> 2893 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="5" width="20" height="14" rx="2"/><path d="M2 10h20"/></svg> 2894 Min cashback 2895 </a> 2896 <a href="/pages/min-profil" class="mc-mdrawer__link"> 2897 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></svg> 2898 Min profil 2899 </a> 2900 <a href="/pages/favoritter" class="mc-mdrawer__link"> 2901 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 2902 Favoritbutikker 2903 </a> 2904 <a href="/pages/oenskelister" class="mc-mdrawer__link"> 2905 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="13" rx="2"/><path d="M12 8v13"/><path d="M2 12h20"/></svg> 2906 Ãnskelister 2907 </a> 2908 <a href="/pages/app" class="mc-mdrawer__link"> 2909 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="2" width="12" height="20" rx="3"/><path d="M11 18h2"/></svg> 2910 Bettys som app 2911 </a> 2912 <a href="/pages/kontakt" class="mc-mdrawer__link"> 2913 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg> 2914 Kontakt os 2915 </a> 2916 <button type="button" class="mc-mdrawer__link mc-mdrawer__link--red" id="mc-mdrawer-logout"> 2917 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="m16 17 5-5-5-5"/><path d="M21 12H9"/></svg> 2918 Log ud 2919 </button> 2920 </div> 2921 </div> 2922 2923 <div class="mc__wrap"> 2924 <div class="mc-hero__grid"> 2925 <div> 2926 <p class="mc-hero__eyebrow"><span class="mc-av"><span aria-hidden="true">B</span></span>Mød Betty â din AI-shoppingassistent</p> 2927 <h1 class="mc-hero__h1">Du shopper. <em>Betty sørger for, at du fÃ¥r penge tilbage.</em></h1> 2928 <p class="mc-hero__lead">Betty finder cashback og rabatkoder i over 500 webshops og siger til i det øjeblik, du lander i en butik, hvor der er penge at hente. Du handler som du plejer â hun klarer resten.</p> 2929 2930 <div class="mc-hero__cta"> 2931 <div class="mc-search-container"> 2932 <div class="mc-search-wrap"> 2933 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"/><path d="M19 17l.8 2.2L22 20l-2.2.8L19 23l-.8-2.2L16 20l2.2-.8z"/></svg> 2934 <input type="search" id="mc-hero-search-input" placeholder="Spørg Betty: fx sneakers, sofa eller en butikâ¦" autocomplete="off" aria-label="Spørg Betty om en butik eller vare" aria-expanded="false"> 2935 <button type="button" class="mc-search-go" onclick="var v=document.getElementById('mc-hero-search-input').value.trim(); window.location.href='/pages/soeg-varer'+(v?'?q='+encodeURIComponent(v):'');">Spørg</button> 2936 </div> 2937 <div class="mc-search-dropdown" id="mc-hero-search-dropdown"></div> 2938 </div> 2939 2940 <div class="mc-hero__btnrow"> 2941 <div class="mc-only-touch"> 2942 <a href="/pages/app" class="mc-btn mc-btn--pink">
2943 <span class="mc-btn__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="2" width="12" height="20" rx="3"/><path d="M11 18h2"/></svg></span>FÃ¥ Bettys som app 2944 </a> 2945 </div> 2946 <a href="https://chromewebstore.google.com/detail/fccebglegfdjomejaneicbheaealihli" target="_blank" rel="noopener" class="mc-btn mc-btn--pink mc-only-desk"> 2947 <span class="mc-btn__ico"> 2948 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v12"/><path d="m7 10 5 5 5-5"/><path d="M5 21h14"/></svg> 2949 </span>Hent Betty til Chrome 2950 </a> 2951 <p class="mc-hero__note"><b>100% gratis</b> · klar pÃ¥ under ét minut</p> 2952 </div> 2953 </div> 2954 2955 <ul class="mc-trust"> 2956 <li><b>+500</b><span>butikker med Cashback</span></li> 2957 <li><b>+1 mio</b><span>varer med Cashback</span></li> 2958 <li><b>Op til 30%</b><span>Cashback</span></li> 2959 </ul> 2960 </div> 2961 2962 <!-- Betty i aktion: chat + notifikation fra browseren --> 2963 <div class="mc-stage" aria-hidden="true"> 2964 <div class="mc-chat"> 2965 <div class="mc-chat__head"> 2966 <span class="mc-av"><span aria-hidden="true">B</span></span> 2967 <div class="mc-chat__who"><b>Betty</b><span>Online · klar til at hjælpe</span></div> 2968 <span class="mc-chat__tag">AI</span> 2969 </div> 2970 <div class="mc-chat__body"> 2971 <p class="mc-bub mc-bub--me" id="mc-chat-me">Jeg kigger pÃ¥ noget nyt. Kan jeg spare penge?</p> 2972 <p class="mc-bub mc-bub--betty" id="mc-chat-betty">Det kan du! Jeg har fundet cashback til dig.</p> 2973 <div class="mc-offer"> 2974 <div class="mc-offer__top"> 2975 <span class="mc-offer__logo"><img id="mc-ph-logo" src="data:image/gif;base64,R0lGODlhAQABAAAAACw=" alt=""></span> 2976 <div> 2977 <p class="mc-offer__name" id="mc-ph-name">â</p> 2978 <p class="mc-offer__line">Fragt, retur og rabatkoder tjekket</p> 2979 </div> 2980 <span class="mc-offer__rate" id="mc-ph-rate">â</span> 2981 </div> 2982 <p class="mc-offer__btn" id="mc-ph-cta">Aktiver cashback</p> 2983 </div> 2984 <p class="mc-bub mc-bub--betty">Skal jeg ogsÃ¥ tjekke rabatkoder â eller vil du sove pÃ¥ det først?</p> 2985 <div class="mc-chat__chips"><span>Vis rabatkoder</span><span>Sov pÃ¥ det</span><span>Gem pÃ¥ ønskeliste</span></div> 2986 </div> 2987 <div class="mc-chat__foot"> 2988 <div class="mc-chat__input"><i></i><i></i><i></i></div> 2989 <span class="mc-chat__send"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m13 6 6 6-6 6"/></svg></span> 2990 </div> 2991 </div> 2992 2993 <div class="mc-notif"> 2994 <span class="mc-notif__logo"><img id="mc-ext-logo" src="data:image/gif;base64,R0lGODlhAQABAAAAACw=" alt=""></span> 2995 <div> 2996 <p class="mc-notif__url" id="mc-lap-url">butikken.dk</p> 2997 <p class="mc-notif__name" id="mc-ext-name">â</p> 2998 <p class="mc-notif__line" id="mc-ext-line">Betty fandt cashback</p> 2999 </div> 3000 </div> 3001 <div class="mc-stat-pill"><b>+500</b>butikker tjekket</div> 3002 </div> 3003 </div> 3004 </div> 3005 </header> 3006 3007 <!-- ============ BEREGNER ============ --> 3008 <section class="mc-calc"> 3009 <div class="mc__wrap"> 3010 <div class="mc-calc__grid"> 3011 <div> 3012 <p class="mc-eyebrow">Regn pÃ¥ det</p> 3013 <h2 class="mc-h2">Tænk, hvis alle Ã¥rets køb <em>gav penge tilbage</em></h2> 3014 <p class="mc-body">Julegaverne. Fødselsdagene. Tøjet til weekenden. Maden, der bliver leveret om fredagen. Du køber det alligevel â spørgsmÃ¥let er bare, om butikken beholder hele beløbet, eller om en del af det lander hos dig igen.</p> 3015 <div class="mc-calc__quote">
3016 <span class="mc-av"><span aria-hidden="true">B</span></span> 3017 <p>"Træk i knapperne og se, hvad jeg kan finde til dig pÃ¥ et Ã¥r. <b>Det er penge, du ellers ville gÃ¥ glip af.</b>"</p> 3018 </div> 3019 <div class="mc-calc__cta"> 3020 <a href="/pages/soeg-varer" class="mc-btn"> 3021 <span class="mc-btn__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg></span>Find varen â og se din cashback 3022 </a> 3023 </div> 3024 </div> 3025 <div class="mc-calc__card"> 3026 <div class="mc-calc__top"> 3027 <span class="mc-calc__tag"><span class="mc-av"><span aria-hidden="true">B</span></span>Bettys beregning</span> 3028 <p class="mc-calc__lbl">Det fÃ¥r du i cashback</p> 3029 <p class="mc-calc__amt" id="mc-amount">3.200 kr</p> 3030 <p class="mc-calc__year">om Ã¥ret â uden at gøre noget ekstra</p> 3031 </div> 3032 <div class="mc-ctrl"> 3033 <div class="mc-ctrl__top"><span class="mc-ctrl__t">Dit Ã¥rlige onlineforbrug</span><span class="mc-ctrl__v" id="mc-spend-label">40.000 kr</span></div> 3034 <input type="range" class="mc-range" id="mc-spend" min="5000" max="150000" step="1000" value="40000" aria-label="Dit Ã¥rlige onlineforbrug"> 3035 </div> 3036 <div class="mc-ctrl"> 3037 <div class="mc-ctrl__top"><span class="mc-ctrl__t">Gennemsnitlig cashback i %</span><span class="mc-ctrl__v" id="mc-rate-label">8%</span></div> 3038 <input type="range" class="mc-range" id="mc-rate" min="1" max="20" step="1" value="8" aria-label="Gennemsnitlig cashback i procent"> 3039 </div> 3040 <div class="mc-calc__split"> 3041 <div><p class="mc-calc__sn" id="mc-bd-month">267 kr</p><p class="mc-calc__sl">pr. mÃ¥ned</p></div> 3042 <div><p class="mc-calc__sn" id="mc-bd-coffee">35</p><p class="mc-calc__sl">kaffedates med en veninde</p></div> 3043 <div><p class="mc-calc__sn" id="mc-bd-gift">12</p><p class="mc-calc__sl">gaver til 250 kr.</p></div> 3044 </div> 3045 </div> 3046 </div> 3047 </div> 3048 </section> 3049 3050 <!-- ============ BUTIKKER ============ --> 3051 <section class="mc-shops"> 3052 <div class="mc__wrap"><div class="mc-shops__block"> 3053 <div class="mc-shops__head"> 3054 <h2 class="mc-shops__title">+500 butikker med cashback</h2> 3055 <a href="/collections/baby-og-born" class="mc-link">Se alle â</a> 3056 </div> 3057 <div class="mc-grid" id="mc-grid-1"><div class="mc-kort" > 3058 <a href="/products/yuaiahaircare" class="mc-kort-link"> 3059 <img src="//bettys.io/cdn/shop/files/MinCashback-https___yuaiahaircare.dk.png?v=1776368773&width=400" class="mc-kort-logo" alt="Yuaia Haircare" loading="lazy"> 3060 <span class="mc-kort-badge">10% cashback</span> 3061 </a> 3062 <div class="mc-kort-agern" data-squirrel-id="yuaiahaircare" onclick="event.stopPropagation(); mcHandleFavorit('yuaiahaircare', event)"> 3063 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3064 <span class="visually-hidden">Favorit</span> 3065 </div> 3066 </div><div class="mc-kort" > 3067 <a href="/products/cdon" class="mc-kort-link"> 3068 <img src="//bettys.io/cdn/shop/files/MinCashback-httpscdon.dk.png?v=1782852650&width=400" class="mc-kort-logo" alt="CDON.COM" loading="lazy"> 3069 <span class="mc-kort-badge">Op til 2% cashback</span> 3070 </a> 3071 <div class="mc-kort-agern" data-squirrel-id="cdon" onclick="event.stopPropagation(); mcHandleFavorit('cdon', event)"> 3072 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg>
3073 <span class="visually-hidden">Favorit</span> 3074 </div> 3075 </div><div class="mc-kort" > 3076 <a href="/products/brusefilteret" class="mc-kort-link"> 3077 <img src="//bettys.io/cdn/shop/files/MinCashback-https___brusefilteret.dk.png?v=1776757354&width=400" class="mc-kort-logo" alt="Brusefilteret" loading="lazy"> 3078 <span class="mc-kort-badge">10% cashback</span> 3079 </a> 3080 <div class="mc-kort-agern" data-squirrel-id="brusefilteret" onclick="event.stopPropagation(); mcHandleFavorit('brusefilteret', event)"> 3081 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3082 <span class="visually-hidden">Favorit</span> 3083 </div> 3084 </div><div class="mc-kort" > 3085 <a href="/products/runmate" class="mc-kort-link"> 3086 <img src="//bettys.io/cdn/shop/files/BabyBoblen-Runmate_8a923e55-4348-49c9-ad86-e9f839ab6d6d.png?v=1772548696&width=400" class="mc-kort-logo" alt="Runmate" loading="lazy"> 3087 <span class="mc-kort-badge">10% cashback</span> 3088 </a> 3089 <div class="mc-kort-agern" data-squirrel-id="runmate" onclick="event.stopPropagation(); mcHandleFavorit('runmate', event)"> 3090 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3091 <span class="visually-hidden">Favorit</span> 3092 </div> 3093 </div><div class="mc-kort" > 3094 <a href="/products/maetogmodig" class="mc-kort-link"> 3095 <img src="//bettys.io/cdn/shop/files/MinCashback-https___xn--mtogmodig-g3a.dk.png?v=1780992145&width=400" class="mc-kort-logo" alt="Mæt & Modig" loading="lazy"> 3096 <span class="mc-kort-badge">7,5% cashback</span> 3097 </a> 3098 <div class="mc-kort-agern" data-squirrel-id="maetogmodig" onclick="event.stopPropagation(); mcHandleFavorit('maetogmodig', event)"> 3099 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3100 <span class="visually-hidden">Favorit</span> 3101 </div> 3102 </div><div class="mc-kort" > 3103 <a href="/products/aarideudstyr" class="mc-kort-link"> 3104 <img src="//bettys.io/cdn/shop/files/MinCashback-https___aarideudstyr.dk.png?v=1776807901&width=400" class="mc-kort-logo" alt="A&A Rideudstyr" loading="lazy"> 3105 <span class="mc-kort-badge">5% cashback</span> 3106 </a> 3107 <div class="mc-kort-agern" data-squirrel-id="aarideudstyr" onclick="event.stopPropagation(); mcHandleFavorit('aarideudstyr', event)"> 3108 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3109 <span class="visually-hidden">Favorit</span> 3110 </div> 3111 </div><div class="mc-kort" > 3112 <a href="/products/prismila" class="mc-kort-link"> 3113 <img src="//bettys.io/cdn/shop/files/MinCashback-https___prismila.dk.png?v=1780993448&width=400" class="mc-kort-logo" alt="Prismila Jewellery" loading="lazy"> 3114 <span class="mc-kort-badge">10% cashback</span> 3115 </a> 3116 <div class="mc-kort-agern" data-squirrel-id="prismila" onclick="event.stopPropagation(); mcHandleFavorit('prismila', event)"> 3117 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg>
3118 <span class="visually-hidden">Favorit</span> 3119 </div> 3120 </div><div class="mc-kort" > 3121 <a href="/products/vanillacopenhagen" class="mc-kort-link"> 3122 <img src="//bettys.io/cdn/shop/files/MinCashback-httpswww.vanillacopenhagen.dk.png?v=1782850033&width=400" class="mc-kort-logo" alt="Vanilla Copenhagen" loading="lazy"> 3123 <span class="mc-kort-badge">5% cashback</span> 3124 </a> 3125 <div class="mc-kort-agern" data-squirrel-id="vanillacopenhagen" onclick="event.stopPropagation(); mcHandleFavorit('vanillacopenhagen', event)"> 3126 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3127 <span class="visually-hidden">Favorit</span> 3128 </div> 3129 </div><div class="mc-kort" > 3130 <a href="/products/ginatricot" class="mc-kort-link"> 3131 <img src="//bettys.io/cdn/shop/files/MinCashback-https___www.ginatricot.com_dk.png?v=1783070470&width=400" class="mc-kort-logo" alt="Gina Tricot" loading="lazy"> 3132 <span class="mc-kort-badge">4% cashback</span> 3133 </a> 3134 <div class="mc-kort-agern" data-squirrel-id="ginatricot" onclick="event.stopPropagation(); mcHandleFavorit('ginatricot', event)"> 3135 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3136 <span class="visually-hidden">Favorit</span> 3137 </div> 3138 </div><div class="mc-kort" > 3139 <a href="/products/amazinganimals" class="mc-kort-link"> 3140 <img src="//bettys.io/cdn/shop/files/MinCashback-http___amazinganimals.dk.png?v=1776113189&width=400" class="mc-kort-logo" alt="Amazinganimals" loading="lazy"> 3141 <span class="mc-kort-badge">10% cashback</span> 3142 </a> 3143 <div class="mc-kort-agern" data-squirrel-id="amazinganimals" onclick="event.stopPropagation(); mcHandleFavorit('amazinganimals', event)"> 3144 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3145 <span class="visually-hidden">Favorit</span> 3146 </div> 3147 </div><div class="mc-kort" > 3148 <a href="/products/haakaa" class="mc-kort-link"> 3149 <img src="//bettys.io/cdn/shop/files/BabyBoblen-Haakaa_daabdf0e-9db0-4077-9ddc-e4f08d58baee.png?v=1772548931&width=400" class="mc-kort-logo" alt="Haakaa" loading="lazy"> 3150 <span class="mc-kort-badge">7,5% cashback</span> 3151 </a> 3152 <div class="mc-kort-agern" data-squirrel-id="haakaa" onclick="event.stopPropagation(); mcHandleFavorit('haakaa', event)"> 3153 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg> 3154 <span class="visually-hidden">Favorit</span> 3155 </div> 3156 </div><div class="mc-kort" > 3157 <a href="/products/deluxecovers" class="mc-kort-link"> 3158 <img src="//bettys.io/cdn/shop/files/BabyBoblen-DeluxeCovers.png?v=1772737473&width=400" class="mc-kort-logo" alt="DeluxeCovers" loading="lazy"> 3159 <span class="mc-kort-badge">12,5% cashback</span> 3160 </a> 3161 <div class="mc-kort-agern" data-squirrel-id="deluxecovers" onclick="event.stopPropagation(); mcHandleFavorit('deluxecovers', event)"> 3162 <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg>
3163 <span class="visually-hidden">Favorit</span> 3164 </div> 3165 </div></div> 3166 <div class="mc-dots" id="mc-dots-1"></div> 3167 </div></div> 3168 </section> 3169 3170 <!-- ============ Sà DAN HJÃLPER BETTY ============ --> 3171 <section class="mc-time mc-dark"> 3172 <div class="mc__wrap"> 3173 <div class="mc-time__head"> 3174 <p class="mc-eyebrow">SÃ¥dan virker det</p> 3175 <h2 class="mc-h2">Fire trin â og sÃ¥ holder Betty øje for dig</h2> 3176 <p class="mc-body">Du skal ikke huske noget. Betty sidder i din browser og siger til, nÃ¥r der er penge at hente.</p> 3177 </div> 3178 3179 <div class="mc-steps"> 3180 <div class="mc-card"> 3181 <p class="mc-card__n">1</p> 3182 <div class="mc-card__body"> 3183 <h3 class="mc-card__t" id="mc-signup-step-title">Opret din gratis profil</h3> 3184 <p class="mc-card__p" id="mc-signup-step-text">Under 30 sekunder. Intet kreditkort, intet abonnement, ingen binding.</p> 3185 <div class="mc-card__btn"> 3186 <button type="button" id="mc-signup-step" class="mc-btn mc-btn--sm mc-btn--white" onclick="mcOpenSignup()">Opret profil â</button> 3187 </div> 3188 </div> 3189 </div> 3190 3191 <div class="mc-card"> 3192 <p class="mc-card__n">2</p> 3193 <div class="mc-card__body mc-only-desk"> 3194 <h3 class="mc-card__t" id="mc-install-title">Hent Betty til Chrome</h3> 3195 <p class="mc-card__p" id="mc-install-text">Betty flytter ind i din browser og siger til, i det sekund du lander i en butik, hvor der er penge at hente.</p> 3196 <div class="mc-card__btn" id="mc-install-btn-wrap"> 3197 <a href="https://chromewebstore.google.com/detail/fccebglegfdjomejaneicbheaealihli" target="_blank" rel="noopener" class="mc-btn mc-btn--sm mc-btn--pink">Installer til Chrome â</a> 3198 </div> 3199 <p class="mc-card__p mc-card__ok" id="mc-install-ok" style="display:none;">Betty er installeret â</p> 3200 </div> 3201 <div class="mc-card__body mc-only-touch"> 3202 <h3 class="mc-card__t">Læg Bettys pÃ¥ din telefon</h3> 3203 <p class="mc-card__p">SÃ¥ er din saldo, butikkerne og chatten med Betty kun ét tryk væk â ogsÃ¥ nÃ¥r du shopper pÃ¥ mobilen.</p> 3204 <div class="mc-card__btn"> 3205 <a href="/pages/app" class="mc-btn mc-btn--sm mc-btn--pink">FÃ¥ Bettys som app â</a> 3206 </div> 3207 </div> 3208 </div> 3209 3210 <div class="mc-card"> 3211 <p class="mc-card__n">3</p> 3212 <div class="mc-card__body"> 3213 <h3 class="mc-card__t">Shop som du plejer</h3> 3214 <p class="mc-card__p">Tryk pÃ¥ "Aktiver", nÃ¥r Betty dukker op â eller find butikken her pÃ¥ siden. Købet registreres automatisk.</p> 3215 </div> 3216 </div> 3217 3218 <div class="mc-card"> 3219 <p class="mc-card__n">4</p> 3220 <div class="mc-card__body"> 3221 <h3 class="mc-card__t">Pengene lander pÃ¥ din konto</h3> 3222 <p class="mc-card__p">Du fÃ¥r besked, nÃ¥r beløbet er godkendt. Den 25. i hver mÃ¥ned udbetales alt fra 100 kr. automatisk til din bankkonto.</p> 3223 </div> 3224 </div> 3225 </div> 3226 3227 <div class="mc-time__cta"> 3228 <button type="button" id="mc-signup-time" class="mc-btn mc-btn--pink" onclick="mcOpenSignup()"> 3229 <span class="mc-btn__ico">â</span>Opret din gratis profil 3230 </button> 3231 </div> 3232 </div> 3233 </section> 3234 3235 <!-- ============ OVER 1 MIO. VARER ============ --> 3236 <section class="mc-mio"> 3237 <div class="mc__wrap"> 3238 <div class="mc-mio__box"> 3239 <div class="mc-mio__in"> 3240 <span class="mc-mio__tal">1.000.000+</span> 3241 <h2 class="mc-mio__h">varer med cashback â spørg Betty om præcis den vare, du mangler</h2> 3242 <p class="mc-mio__p">Betty har samlet varerne fra alle butikkerne ét sted. Søg pÃ¥ det, du skal bruge, og se prisen og hvor meget cashback du fÃ¥r, inden du klikker videre.</p> 3243 <a href="/pages/soeg-varer" class="mc-btn mc-btn--white">
3244 <span class="mc-btn__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg></span>Søg blandt alle varer 3245 </a> 3246 <ul class="mc-mio__pkt"> 3247 <li>Filtrér pÃ¥ pris, butik og cashback</li> 3248 <li>Gem varer pÃ¥ dine ønskelister</li> 3249 <li>100% gratis</li> 3250 </ul> 3251 </div> 3252 </div> 3253 </div> 3254 </section> 3255 3256 <!-- ============ RABATKODER ============ --><section class="mc-codes"> 3257 <div class="mc__wrap"> 3258 <div class="mc-codes__box"> 3259 <div class="mc-codes__in"> 3260 <p class="mc-eyebrow">47 aktive rabatkoder lige nu</p> 3261 <h2 class="mc-h2">Dobbelt op: cashback <em>og</em> rabatkode pÃ¥ samme køb</h2> 3262 <p class="mc-body">Flere butikker har en rabatkode kørende oven i cashbacken. Betty viser dig koden â brug den ved kassen, sÃ¥ sparer du to gange.</p><ul class="mc-codes__chips"><li class="mc-codes__chip"><span class="mc-codes__chip-shop">Global Urban Jewelry</span><span class="mc-codes__chip-val">3 for 2</span></li><li class="mc-codes__chip"><span class="mc-codes__chip-shop">Aerislumen</span><span class="mc-codes__chip-val">10% rabat</span></li><li class="mc-codes__chip"><span class="mc-codes__chip-shop">Amazinganimals</span><span class="mc-codes__chip-val">10% rabat</span></li><li class="mc-codes__chip"><span class="mc-codes__chip-shop">Beerpongshoppen</span><span class="mc-codes__chip-val">5% rabat</span></li></ul></div> 3263 <a href="/pages/rabatkoder" class="mc-btn mc-btn--pink"> 3264 <span class="mc-btn__ico">%</span>Se alle rabatkoder 3265 </a> 3266 </div> 3267 </div> 3268 </section><!-- ============ FORDELE ============ --> 3269 <section class="mc-feat"> 3270 <div class="mc__wrap"> 3271 <div class="mc-feat__grid"> 3272 <div> 3273 <p class="mc-eyebrow">Hvorfor Betty</p> 3274 <h2 class="mc-h2">Betty hjælper dig med at fÃ¥ penge tilbage â <em>hver gang du handler</em></h2> 3275 <p class="mc-body">Du betaler det samme som altid. Forskellen er, at den betaling, butikken giver for at sende dig videre, ryger direkte tilbage til dig. Ingen point, ingen hage.</p> 3276 </div> 3277 <div class="mc-feat__cards"> 3278 <div class="mc-fcard"> 3279 <p class="mc-fcard__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></svg></p> 3280 <h3 class="mc-fcard__t">Hun siger til i tide</h3> 3281 <p class="mc-fcard__p">Betty dukker op pÃ¥ butikkens side, før du lægger noget i kurven.</p> 3282 </div> 3283 <div class="mc-fcard"> 3284 <p class="mc-fcard__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="19" y1="5" x2="5" y2="19"/><circle cx="6.5" cy="6.5" r="2.5"/><circle cx="17.5" cy="17.5" r="2.5"/></svg></p> 3285 <h3 class="mc-fcard__t">Du ser satsen med det samme</h3> 3286 <p class="mc-fcard__p">Hvor meget netop denne butik giver i cashback â og om der er en rabatkode.</p> 3287 </div> 3288 <div class="mc-fcard"> 3289 <p class="mc-fcard__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></svg></p> 3290 <h3 class="mc-fcard__t">Ãt klik aktiverer det hele</h3> 3291 <p class="mc-fcard__p">SÃ¥ shopper du videre som altid. Købet registreres automatisk.</p> 3292 </div> 3293 <div class="mc-fcard"> 3294 <p class="mc-fcard__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="6" width="20" height="13" rx="2"/><path d="M2 11h20"/><path d="M6 15h4"/></svg></p> 3295 <h3 class="mc-fcard__t">Pengene kommer af sig selv</h3> 3296 <p class="mc-fcard__p">Den 25. i hver mÃ¥ned direkte pÃ¥ din bankkonto â fra 100 kr. optjent.</p> 3297 </div> 3298 </div> 3299 </div> 3300 </div> 3301 </section> 3302 3303 <!-- ============ ÃNSKELISTER ============ --> 3304 <section class="mc-wish"> 3305 <span class="mc-wish__g" aria-hidden="true"></span> 3306 <div class="mc__wrap"> 3307 <div class="mc-wish__grid"> 3308 <div class="mc-wish__in"> 3309 <p class="mc-eyebrow">Ãnskelister</p> 3310 <h2 class="mc-h2">Saml dine ønsker ét sted â og fÃ¥ penge tilbage, nÃ¥r de bliver købt</h2> 3311 <p class="mc-body">Gem det, du drømmer om, i din egen ønskeliste. Del den med familie og venner, sÃ¥ de ved præcis hvad de skal give. Og køber du selv fra listen, fÃ¥r du naturligvis cashback pÃ¥ købet.</p> 3312 <ul class="mc-wish__list"> 3313 <li class="mc-wish__li"><span class="mc-wish__tick"><svg viewBox="0 0 24 24" fill="currentColor">
3313<path d="M20.8 5.6a5.5 5.5 0 0 0-7.8 0L12 6.6l-1-1a5.5 5.5 0 0 0-7.8 7.8l1 1L12 22l7.8-7.6 1-1a5.5 5.5 0 0 0 0-7.8z"/></svg></span><span><b>Gem med ét klik</b> â tryk pÃ¥ hjertet ved en butik eller vare, eller bed Betty om det.</span></li> 3314 <li class="mc-wish__li"><span class="mc-wish__tick"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7"/><path d="M8 7h9v9"/></svg></span><span><b>Del listen</b> â med familie, veninder eller kollegaer op til fødselsdag og jul.</span></li> 3315 <li class="mc-wish__li"><span class="mc-wish__tick"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg></span><span><b>Køb fra listen med Betty</b> â sÃ¥ følger pengene tilbage med i købet.</span></li> 3316 </ul> 3317 <div class="mc-wish__cta"> 3318 <a href="/pages/oenskelister" class="mc-btn"> 3319 <span class="mc-btn__ico">â¥</span>Opret din ønskeliste 3320 </a> 3321 </div> 3322 </div> 3323 3324 <div class="mc-wish__demo"> 3325 <div class="mc-wishcard"> 3326 <div class="mc-wishcard__top"> 3327 <div> 3328 <p class="mc-wishcard__ttl">Min ønskeliste</p> 3329 <p class="mc-wishcard__sub">Delt med 4 personer</p> 3330 </div> 3331 <span class="mc-wishcard__pill">⥠12 ønsker</span> 3332 </div><div class="mc-wishrow"> 3333 <div class="mc-wishrow__logo"><img src="//bettys.io/cdn/shop/files/MinCashback-https___yuaiahaircare.dk.png?v=1776368773&width=120" alt="Yuaia Haircare" loading="lazy"></div> 3334 <div class="mc-wishrow__txt"> 3335 <p class="mc-wishrow__name">Yuaia Haircare</p> 3336 <p class="mc-wishrow__meta">Gemt til ønskelisten</p> 3337 </div> 3338 <span class="mc-wishrow__rate">10%�</span> 3339 </div><div class="mc-wishrow"> 3340 <div class="mc-wishrow__logo"><img src="//bettys.io/cdn/shop/files/MinCashback-httpscdon.dk.png?v=1782852650&width=120" alt="CDON.COM" loading="lazy"></div> 3341 <div class="mc-wishrow__txt"> 3342 <p class="mc-wishrow__name">CDON.COM</p> 3343 <p class="mc-wishrow__meta">Gemt til ønskelisten</p> 3344 </div> 3345 <span class="mc-wishrow__rate">Op til 2%�</span> 3346 </div><div class="mc-wishrow"> 3347 <div class="mc-wishrow__logo"><img src="//bettys.io/cdn/shop/files/MinCashback-https___brusefilteret.dk.png?v=1776757354&width=120" alt="Brusefilteret" loading="lazy"></div> 3348 <div class="mc-wishrow__txt"> 3349 <p class="mc-wishrow__name">Brusefilteret</p> 3350 <p class="mc-wishrow__meta">Gemt til ønskelisten</p> 3351 </div> 3352 <span class="mc-wishrow__rate">10%�</span> 3353 </div><p class="mc-wishcard__foot"><span class="mc-av"><span aria-hidden="true">B</span></span>Jeg giver besked, nÃ¥r der er ekstra cashback pÃ¥ noget fra din liste.</p> 3354 </div> 3355 </div> 3356 </div> 3357 </div> 3358 </section> 3359 3360 <!-- ============ AFSLUTNING ============ --> 3361 <section class="mc-end"> 3362 <div class="mc-end__in"> 3363 <span class="mc-av mc-av--lg"><span aria-hidden="true">B</span></span> 3364 <h2 class="mc-end__h2">Klar til at shoppe <em>med Betty</em> ved din side?</h2> 3365 <p class="mc-end__p">FÃ¥ penge tilbage pÃ¥ det, du alligevel køber. Det tager under et minut at komme i gang.</p> 3366 <div class="mc-only-touch"> 3367 <a href="/pages/app" class="mc-btn mc-btn--pink"> 3368 <span class="mc-btn__ico"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="2" width="12" height="20" rx="3"/><path d="M11 18h2"/></svg></span>FÃ¥ Bettys som app 3369 </a> 3370 </div> 3371 <a href="https://chromewebstore.google.com/detail/fccebglegfdjomejaneicbheaealihli" target="_blank" rel="noopener" class="mc-btn mc-btn--pink m
3371c-only-desk"> 3372 <span class="mc-btn__ico"> 3373 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v12"/><path d="m7 10 5 5 5-5"/><path d="M5 21h14"/></svg> 3374 </span>Hent Betty til Chrome 3375 </a> 3376 <p class="mc-end__login" id="mc-end-login-note">Allerede medlem? <span onclick="mcOpenLogin()">Log ind her</span></p> 3377 </div> 3378 </section> 3379 3380 <!-- ============ FOOTER ============ --> 3381 <footer class="mc-foot" id="mc-landing-footer" style="display:block !important; visibility:visible !important; opacity:1 !important; height:auto !important;"> 3382 <div class="mc__wrap"> 3383 <div class="mc-foot__top"> 3384 <div class="mc-foot__logo"> 3385 <span class="mc-wordmark">Bettys</span> 3386 <p class="mc-foot__tag">Betty er din AI-shoppingassistent. Hun finder cashback og rabatkoder, sÃ¥ du fÃ¥r penge tilbage, hver gang du handler online.</p> 3387 </div> 3388 <div class="mc-foot__col"> 3389 <p class="mc-foot__ttl">Kontakt os</p> 3390 <ul class="mc-foot__contact"> 3391 <li> 3392 <span class="mc-foot__ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/><circle cx="12" cy="10" r="3"/></svg></span> 3393 <span>Sandvigvej 2, 7400 Herning, DK, CVR nr. 37631450</span> 3394 </li> 3395 <li> 3396 <span class="mc-foot__ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 6h18v12H3z"/><path d="m3 6 9 7 9-7"/></svg></span> 3397 <a href="mailto:hello(at)bettys.io">hello(at)bettys.io</a> 3398 </li> 3399 <li> 3400 <span class="mc-foot__ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92Z"/></svg></span> 3401 <a href="tel:+4520978299">+45 20978299</a> 3402 </li> 3403 <li> 3404 <span class="mc-foot__ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 3"/></svg></span> 3405 <span>9:00 - 12:00 Man-Fre (lukket helligdage)</span> 3406 </li> 3407 </ul> 3408 </div> 3409 <div class="mc-foot__col"> 3410 <p class="mc-foot__ttl">Find ud af mere</p> 3411 <ul class="mc-foot__more"> 3412 <li><a href="/pages/om-os">Om Betty</a></li> 3413 <li><a href="/blogs/smart-shopping">Bettys blog</a></li> 3414 <li><a href="/pages/app">Bettys som app</a></li> 3415 <li><a href="/pages/privatlivspolitik">Privatlivspolitik</a></li> 3416 <li><a href="/pages/betingelser">Betingelser</a></li> 3417 </ul> 3418 </div> 3419 </div> 3420 <div class="mc-foot__bot"> 3421 <p class="mc-foot__c">© 2026 Bettys â Alle rettigheder forbeholdes</p> 3422 <div class="mc-foot__links"> 3423 <a href="/pages/privatlivspolitik">Privatliv</a> 3424 <a href="/pages/betingelser">Betingelser</a> 3425 <a href="/pages/kontakt">Kontakt</a> 3426 </div> 3427 </div> 3428 </div> 3429 </footer> 3430</div> 3431
3432<script> 3433 /* ---------- "Spørg Betty"-søgefeltet i hero'en ---------- */ 3434 (function () { 3435 function mcHeroSearchInit() { 3436 var input = document.getElementById('mc-hero-search-input'); 3437 var dropdown = document.getElementById('mc-hero-search-dropdown'); 3438 if (!input || !dropdown) return; 3439 3440 /* Flyttes op som direkte barn af .mc, sÃ¥ .mc-hero's overflow:hidden 3441 ikke klipper listen. Den arver stadig farve-variablerne. */ 3442 var mcRoot = input.closest('.mc'); 3443 if (mcRoot && dropdown.parentNode !== mcRoot) mcRoot.appendChild(dropdown); 3444 3445 var timer = null; 3446 var E = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; 3447 function esc(v) { return String(v == null ? '' : v).replace(/[&<>"']/g, function (c) { return E[c]; }); } 3448 3449 function reposition() { 3450 var r = input.closest('.mc-search-wrap').getBoundingClientRect(); 3451 dropdown.style.top = (r.bottom + 10) + 'px'; 3452 dropdown.style.left = r.left + 'px'; 3453 dropdown.style.width = r.width + 'px'; 3454 } 3455 function open() { reposition(); dropdown.classList.add('open'); input.setAttribute('aria-expanded', 'true'); } 3456 function close() { dropdown.classList.remove('open'); input.setAttribute('aria-expanded', 'false'); } 3457 3458 function seneste() { 3459 try { return (JSON.parse(localStorage.getItem('mc_seen_shops')) || []).filter(function (s) { return s && s.handle && s.title; }); } 3460 catch (e) { return []; } 3461 } 3462 function raekke(url, image, title, rate, handle) { 3463 var cb = rate ? '<div class="mc-search-result__cashback">' + esc(rate) + ' cashback</div>' 3464 : (handle ? '<div class="mc-search-result__cashback" data-cb-handle="' + esc(handle) + '" hidden></div>' : ''); 3465 return '<a href="' + esc(url) + '" class="mc-search-result">' + 3466 (image ? '<img src="' + esc(image) + '" class="mc-search-result__img" alt="">' : '<div class="mc-search-result__img"></div>') + 3467 '<div class="mc-search-result__info"><div class="mc-search-result__title">' + esc(title) + '</div>' + cb + '</div></a>'; 3468 } 3469 3470 var satsCache = {}; 3471 function saetSats(handle, tekst) { 3472 if (!tekst) return; 3473 satsCache[handle] = tekst; 3474 dropdown.querySelectorAll('[data-cb-handle="' + handle + '"]').forEach(function (f) { f.textContent = tekst + ' cashback'; f.hidden = false; }); 3475 } 3476 function hentSatser(query) { 3477 var mangler = [].slice.call(dropdown.querySelectorAll('[data-cb-handle]')) 3478 .map(function (f) { return f.dataset.cbHandle; }) 3479 .filter(function (v, i, a) { return v && a.indexOf(v) === i && !satsCache[v]; }); 3480 if (!mangler.length) return; 3481 var run = query 3482 ? fetch('/search?type=product&view=cashback&q=' + encodeURIComponent(query + '*')) 3483 .then(function (r) { return r.ok ? r.text() : null; }) 3484 .then(function (t) { if (!t) return; JSON.parse(t.trim()).forEach(function (p) { 3485 var s = p.pct ? p.pct + '%' : (p.fast ? p.fast + ' kr' : ''); if (s) saetSats(p.handle, s); 3486 }); }).catch(function () {}) 3487 : Promise.resolve(); 3488 run.then(function () { 3489 mangler.filter(function (h) { return !satsCache[h]; }).forEach(function (handle) { 3490 fetch('/products/' + encodeURIComponent(handle) + '?view=cashback') 3491 .then(function (r) { return r.ok ? r.text() : null; }) 3492 .then(function (t) { if (!t) return; var cb = JSON.parse(t.trim()); if (cb && cb.cashback) saetSats(handle, cb.cashback); }) 3493 .catch(function () {}); 3494 }); 3495 }); 3496 } 3497 3498 function doSearch(query) { 3499 var soegUrl = '/pages/soeg-varer?q=' + encodeURIComponent(query); 3500 dropdown.innerHTML = '<div class="mc-search-spinner">Betty lederâ¦</div>'; 3501 open(); 3502 fetch('/search/suggest.json?q=' + encodeURIComponent(query) + '&resources[type]=product&resources[limit]=6&resources[options][fields]=title') 3503 .then(function (r) { return r.json(); }) 3504 .then(function (data) { 3505 var butikker = (data && data.resources && data.resources.results && data.resources.results.products) || []; 3506 if (!butikker.length) { 3507 dropdown.innerHTML = '<div class="mc-search-no-results">Betty fandt ingen butikker for "' + esc(query) + '"</div>' + 3508 '<div class="mc-search-footer" onclick="window.location.href=\'' + soegUrl + '\'">Se varer for "' + esc(query) + '" â</div>'; 3509 open(); return; 3510 } 3511 var html = '<p class="mc-search-label">Betty fandt disse butikker</p>' + butikker.map(function (p) { 3512 var img = (p.featured_image && p.featured_image.url) || p.image || ''; 3513 return '<a href="' + esc(p.url) + '" class="mc-search-result">' + 3514 (img ? '<img src="' + esc(img) + '&width=80" class="mc-search-result__img" alt="">' : '<div class="mc-search-result__img"></div>') + 3515 '<div class="mc-search-result__info"><div class="mc-search-result__title">' + esc(p.title) + '</div>' + 3516 '<div class="mc-search-result__cashback" data-cb-handle="' + esc(p.handle) + '" hidden></div></div></a>'; 3517 }).join(''); 3518 html += '<div class="mc-search-footer" onclick="window.location.href=\'' + soegUrl + '\'">Se alle varer for "' + esc(query) + '" â</div>'; 3519 dropdown.innerHTML = html; open(); hentSatser(query); 3520 }).catch(function () { close(); }); 3521 } 3522 3523 var FORSLAG = ['sneakers', 'sofa', 'computer']; 3524 function startforslag() { 3525 var s = seneste().slice(0, 3); 3526 var html = ''; 3527 if (s.length) { 3528 html += '<p class="mc-search-label">Senest besøgt</p>'; 3529 html += s.map(function (x) { return raekke('/products/' + encodeURIComponent(x.handle), x.image, x.title, x.rate, x.handle); }).join(''); 3530 } 3531 html += '<p class="mc-search-label">Prøv at spørge Betty om</p>'; 3532 html += FORSLAG.map(function (o) { 3533 return '<a href="/pages/soeg-varer?q=' + encodeURIComponent(o) + '" class="mc-search-result">' + 3534 '<div class="mc-search-result__img" style="display:flex;align-items:center;justify-content:center;color:#EA396D;font-size:17px;">â¦</div>' + 3535 '<div class="mc-search-result__info"><div class="mc-search-result__title">' + o + '</div>' + 3536 '<div class="mc-search-result__sub">Se varer med cashback</div></div></a>'; 3537 }).join(''); 3538 html += '<div class="mc-search-footer" onclick="window.location.href=\'/collections/all\'">Se alle butikker â</div>'; 3539 dropdown.innerHTML = html; open(); hentSatser(''); 3540 } 3541 3542 input.addEventListener('focus', function () { if (!input.value.trim()) startforslag(); }); 3543 input.addEventListener('input', function (e) { 3544 clearTimeout(timer); 3545 var q = e.target.value.trim(); 3546 if (!q) { startforslag(); return; } 3547 if (q.length < 2) { close(); return; } 3548 timer = setTimeout(function () { doSearch(q); }, 350); 3549 }); 3550 input.addEventListener('keydown', function (e) { 3551 if (e.key === 'Enter' && input.value.trim()) { close(); window.location.href = '/pages/soeg-varer?q=' + encodeURIComponent(input.value.trim()); } 3552 if (e.key === 'Escape') { close(); input.blur(); } 3553 }); 3554 document.addEventListener('click', function (e) { if (!e.target.closest('.mc-search-container') && !e.target.closest('.mc-search-dropdown')) close(); }); 3555 window.addEventListener('resize', function () { if (dropdown.classList.contains('open')) reposition(); }); 3556 window.addEventListener('scroll', function (e) { 3557 if (!dropdown.classList.contains('open')) return; 3558 if (dropdown.contains(e.target)) return; 3559 close(); 3560 }, true); 3561 } 3562 document.addEventListener('DOMContentLoaded', mcHeroSearchInit); 3563 })();
3564</script>
3564 3565
3566<script> 3567 var mcSlow = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 3568 function mcKr(n) { return Math.round(n).toLocaleString('da-DK') + ' kr'; } 3569 function mcNum(v) { 3570 var x = parseFloat(String(v == null ? '' : v).replace(',', '.').replace(/[^0-9.]/g, '')); 3571 return isNaN(x) ? 0 : x; 3572 } 3573 function mcPct(v) { return String(v).replace('.', ','); } 3574 function mcJson(id) { 3575 try { var el = document.getElementById(id); return el ? JSON.parse(el.textContent) : []; } 3576 catch (e) { return []; } 3577 } 3578 function mcEsc(v) { var d = document.createElement('div'); d.textContent = v == null ? '' : v; return d.innerHTML; } 3579 3580 var mcAccountUrl = "\/pages\/konto"; 3581 var mcShopUrl = '/collections/all'; 3582 function mcGoAccount() { window.location.href = mcAccountUrl; } 3583 3584 /* ---------- Er udvidelsen installeret? ---------- */ 3585 (function () { 3586 var EXT_ID = "fccebglegfdjomejaneicbheaealihli"; 3587 3588 function visSomInstalleret() { 3589 var titel = document.getElementById('mc-install-title'); 3590 var tekst = document.getElementById('mc-install-text'); 3591 var knap = document.getElementById('mc-install-btn-wrap'); 3592 var ok = document.getElementById('mc-install-ok'); 3593 if (titel) titel.textContent = 'Betty er klar'; 3594 if (tekst) tekst.textContent = 'Hun sidder i din browser og siger til, i det sekund du lander i en butik, hvor der er penge at hente. Du skal ikke gøre mere.'; 3595 if (knap) knap.style.display = 'none'; 3596 if (ok) ok.style.display = ''; 3597 } 3598 3599 try { 3600 if (!window.chrome || !chrome.runtime || !chrome.runtime.sendMessage) return; 3601 var svaret = false; 3602 chrome.runtime.sendMessage(EXT_ID, { action: 'PING' }, function (svar) { 3603 void chrome.runtime.lastError; 3604 if (svaret) return; 3605 svaret = true; 3606 if (svar && svar.installed) visSomInstalleret(); 3607 }); 3608 setTimeout(function () { svaret = true; }, 1500); 3609 } catch (e) {} 3610 })(); 3611 3612 /* ---------- Betty-chatten og notifikationen i hero'en ---------- */ 3613 var mcShops = mcJson('mc-receipt-data'); 3614 3615 function mcSlug(name) { 3616 return String(name || '').toLowerCase().split(' ')[0] 3617 .replace(/[æå]/g, 'a').replace(/ø/g, 'o').replace(/[^a-z0-9-]/g, '') + '.dk'; 3618 } 3619 function mcRate(r) { 3620 var pct = mcNum(r.pct); 3621 if (pct > 0) return mcPct(r.pct) + '%'; 3622 var fast = mcNum(r.fast); 3623 return fast > 0 ? mcKr(fast) : ''; 3624 } 3625 3626 function mcDrawHero() { 3627 if (!mcShops.length) return; 3628 var set = function (id, v) { var el = document.getElementById(id); if (el) el.textContent = v; }; 3629 var img = function (id, r) { var el = document.getElementById(id); if (el && r.image) { el.src = r.image; el.alt = r.shop || ''; } }; 3630 3631 /* Chatten â butik 1 */ 3632 var r = mcShops[0]; 3633 var rate = mcRate(r); 3634 set('mc-chat-me', 'Jeg kigger pÃ¥ noget hos ' + r.shop + '. Kan jeg spare penge?'); 3635 var b = document.getElementById('mc-chat-betty'); 3636 if (b) b.innerHTML = rate 3637 ? 'Det kan du! Hos <b>' + mcEsc(r.shop) + '</b> fÃ¥r du <em>' + mcEsc(rate) + ' cashback</em> pÃ¥ dit køb.' 3638 : 'Det kan du! Jeg har fundet cashback hos <b>' + mcEsc(r.shop) + '</b>.'; 3639 img('mc-ph-logo', r); 3640 set('mc-ph-name', r.shop); 3641 set('mc-ph-rate', rate || 'Cashback'); 3642 set('mc-ph-cta', rate ? 'Aktiver ' + rate + ' cashback' : 'Aktiver cashback'); 3643 3644 /* Notifikationen â butik 2 */ 3645 var l = mcShops.length > 1 ? mcShops[1] : r; 3646 var lrate = mcRate(l); 3647 img('mc-ext-logo', l); 3648 set('mc-lap-url', mcSlug(l.shop)); 3649 set('mc-ext-name', l.shop); 3650 set('mc-ext-line', lrate ? 'Betty fandt ' + lrate + ' cashback' : 'Betty fandt cashback'); 3651 } 3652 document.addEventListener('DOMContentLoaded', mcDrawHero); 3653 3654 /* ---------- Beregner ---------- */ 3655 function mcTrack(id, min, max) { 3656 var el = document.getElementById(id); 3657 if (!el) return; 3658 var pct = (el.value - min) / (max - min) * 100; 3659 el.style.background = 'linear-gradient(to right,#EA396D 0%,#EA396D ' + pct + '%,rgba(255,255,255,0.16) ' + pct + '%,rgba(255,255,255,0.16) 100%)'; 3660 } 3661 function mcCalc() { 3662 var s = document.getElementById('mc-spend'), r = document.getElementById('mc-rate'); 3663 if (!s || !r) return; 3664 var spend = parseInt(s.value, 10), rate = parseInt(r.value, 10); 3665 var annual = Math.round(spend * rate / 100); 3666 document.getElementById('mc-spend-label').textContent = mcKr(spend); 3667 document.getElementById('mc-rate-label').textContent = rate + '%'; 3668 document.getElementById('mc-amount').textContent = mcKr(annual); 3669 document.getElementById('mc-bd-month').textContent = mcKr(annual / 12); 3670 document.getElementById('mc-bd-coffee').textContent = Math.round(annual / 90); 3671 document.getElementById('mc-bd-gift').textContent = Math.round(annual / 250); 3672 mcTrack('mc-spend', 5000, 150000); 3673 mcTrack('mc-rate', 1, 20); 3674 } 3675 document.addEventListener('DOMContentLoaded', function () { 3676 var s = document.getElementById('mc-spend'), r = document.getElementById('mc-rate'); 3677 if (!s || !r) return; 3678 s.addEventListener('input', mcCalc); 3679 r.addEventListener('input', mcCalc); 3680 mcCalc(); 3681 }); 3682 3683 /* ---------- Login, oprettelse og favoritter ---------- */ 3684 function mcOpenLogin() { 3685 var m = document.getElementById('mc3-auth-modal'); 3686 if (m) { m.style.display = 'flex'; if (typeof window.switchAuthTab === 'function') window.switchAuthTab('login'); } 3687 } 3688 function mcOpenSignup() { 3689 var m = document.getElementById('mc3-auth-modal'); 3690 if (m) { m.style.display = 'flex'; if (typeof window.switchAuthTab === 'function') window.switchAuthTab('signup'); } 3691 } 3692 function mcAuthClick() { 3693 if (window.firebaseAuth && window.firebaseAuth.currentUser) { 3694 window.location.href = mcAccountUrl; 3695 } else { mcOpenLogin(); } 3696 } 3697 function mcHandleFavorit(handle, evt) { 3698 if (window.firebaseAuth && window.firebaseAuth.currentUser && typeof window.toggleFavorit === 'function') { 3699 window.toggleFavorit(handle, evt); 3700 } else { mcOpenSignup(); } 3701 } 3702 3703 document.addEventListener('DOMContentLoaded', function () { 3704 var label = document.getElementById('mc-auth-label'); 3705 var loginBtn = document.getElementById('mc-nav-login-btn'); 3706 var navBurgerBtn = document.getElementById('mc-burger-btn'); 3707 var mdGuest = document.getElementById('mc-mdrawer-guest'); 3708 var mdUser = document.getElementById('mc-mdrawer-user'); 3709 var mdName = document.getElementById('mc-mdrawer-name'); 3710 var mdEmail = document.getElementById('mc-mdrawer-email'); 3711 3712 /* "Opret profil"-knapperne bliver til "GÃ¥ til min konto", nÃ¥r 3713 brugeren er logget ind. */ 3714 var signupStepBtn = document.getElementById('mc-signup-step'); 3715 var signupStepTitle = document.getElementById('mc-signup-step-title'); 3716 var signupStepText = document.getElementById('mc-signup-step-text'); 3717 var signupTime = document.getElementById('mc-signup-time'); 3718 var endLoginNote = document.getElementById('mc-end-login-note'); 3719 3720 var waited = 0; 3721 var check = setInterval(function () { 3722 waited += 200; 3723 if (window.firebaseAuth) { 3724 clearInterval(check); 3725 window.firebaseAuth.onAuthStateChanged(async function (user) { 3726 if (!user) { 3727 if (label) label.textContent = 'Log ind'; 3728 if (loginBtn) loginBtn.style.display = ''; 3729 if (navBurgerBtn) navBurgerBtn.style.display = ''; 3730 if (mdGuest) mdGuest.hidden = false; 3731 if (mdUser) mdUser.hidden = true; 3732 if (signupStepBtn) { signupStepBtn.textContent = 'Opret profil â'; signupStepBtn.onclick = mcOpenSignup; } 3733 if (signupStepTitle) signupStepTitle.textContent = 'Opret din gratis profil'; 3734 if (signupStepText) signupStepText.textContent = 'Under 30 sekunder. Intet kreditkort, intet abonnement, ingen binding.'; 3735 if (signupTime) { signupTime.innerHTML = '<span class="mc-btn__ico">â</span>Opret din gratis profil'; signupTime.onclick = mcOpenSignup; } 3736 if (endLoginNote) endLoginNote.style.display = ''; 3737 return; 3738 } 3739 if (label) label.textContent = 'Min konto'; 3740 if (loginBtn) loginBtn.style.display = 'none'; 3741 if (navBurgerBtn) navBurgerBtn.style.display = 'inline-flex'; 3742 if (mdGuest) mdGuest.hidden = true; 3743 if (mdUser) mdUser.hidden = false; 3744 if (mdName) mdName.textContent = user.displayName ? 'Hej, ' + user.displayName : 'Min konto'; 3745 if (mdEmail) mdEmail.textContent = user.email || ''; 3746 3747 if (signupStepBtn) { signupStepBtn.textContent = 'GÃ¥ til min konto â'; signupStepBtn.onclick = mcGoAccount; } 3748 if (signupStepTitle) signupStepTitle.textContent = 'Din profil er klar'; 3749 if (signupStepText) signupStepText.textContent = 'Du er allerede medlem â gÃ¥ til din konto og se, hvad Betty har fundet til dig.'; 3750 if (signupTime) { signupTime.innerHTML = '<span class="mc-btn__ico">â</span>GÃ¥ til min konto'; signupTime.onclick = mcGoAccount; } 3751 if (endLoginNote) endLoginNote.style.display = 'none'; 3752 3753 try {
3754 var mod = await import("https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js"); 3755 var snap = await mod.getDoc(mod.doc(window.firebaseDb, "users", user.uid)); 3756 var favs = snap.exists() ? (snap.data().favorites || []) : []; 3757 document.querySelectorAll('.mc-kort-agern').forEach(function (b) { 3758 if (favs.indexOf(b.dataset.squirrelId) !== -1) b.setAttribute('data-active', 'true'); 3759 }); 3760 } catch (e) {} 3761 }); 3762 } else if (waited > 5000) clearInterval(check); 3763 }, 200); 3764 3765 /* ---------- Mobil burger-menu ---------- */ 3766 var burgerBtn = document.getElementById('mc-burger-btn'); 3767 var mdrawer = document.getElementById('mc-mdrawer'); 3768 var mdOverlay = document.getElementById('mc-mdrawer-overlay'); 3769 var mdClose = document.getElementById('mc-mdrawer-close'); 3770 var mdLogin = document.getElementById('mc-mdrawer-login'); 3771 var mdLogout = document.getElementById('mc-mdrawer-logout'); 3772 3773 function openMDrawer() { 3774 if (mdrawer) mdrawer.setAttribute('data-open', 'true'); 3775 if (mdOverlay) mdOverlay.setAttribute('data-open', 'true'); 3776 if (burgerBtn) burgerBtn.setAttribute('aria-expanded', 'true'); 3777 document.body.style.overflow = 'hidden'; 3778 } 3779 function closeMDrawer() { 3780 if (mdrawer) mdrawer.removeAttribute('data-open'); 3781 if (mdOverlay) mdOverlay.removeAttribute('data-open'); 3782 if (burgerBtn) burgerBtn.setAttribute('aria-expanded', 'false'); 3783 document.body.style.overflow = ''; 3784 } 3785 if (burgerBtn) burgerBtn.addEventListener('click', openMDrawer); 3786 if (mdClose) mdClose.addEventListener('click', closeMDrawer); 3787 if (mdOverlay) mdOverlay.addEventListener('click', closeMDrawer); 3788 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') closeMDrawer(); }); 3789 if (mdLogin) mdLogin.addEventListener('click', function () { closeMDrawer(); mcOpenLogin(); }); 3790 if (mdLogout) { 3791 mdLogout.addEventListener('click', function () { 3792 closeMDrawer(); 3793 if (window.firebaseAuth) window.firebaseAuth.signOut().then(function () { window.location.href = '/'; }); 3794 }); 3795 } 3796 }); 3797 3798 /* ---------- Prikker under butiksrækkerne (mobil) ---------- */ 3799 function mcDots(gridId, dotsId) { 3800 var g = document.getElementById(gridId), d = document.getElementById(dotsId); 3801 if (!g || !d) return; 3802 var dots = []; 3803 function paint() { 3804 if (!dots.length) return; 3805 var i = Math.round(g.scrollLeft / g.clientWidth); 3806 i = Math.max(0, Math.min(dots.length - 1, i)); 3807 dots.forEach(function (s, k) { s.classList.toggle('active', k === i); }); 3808 } 3809 function build() { 3810 var pages = g.clientWidth > 0 ? Math.ceil(g.scrollWidth / g.clientWidth) : 1; 3811 if (pages === dots.length) { paint(); return; } 3812 d.innerHTML = ''; 3813 dots = []; 3814 if (pages < 2) return; 3815 for (var i = 0; i < pages; i++) { 3816 var s = document.createElement('span'); 3817 s.setAttribute('data-i', i); 3818 d.appendChild(s); 3819 dots.push(s); 3820 } 3821 paint(); 3822 } 3823 d.addEventListener('click', function (e) { 3824 var s = e.target.closest('span'); 3825 if (!s) return; 3826 g.scrollTo({ left: s.getAttribute('data-i') * g.clientWidth, behavior: mcSlow ? 'auto' : 'smooth' }); 3827 }); 3828 g.addEventListener('scroll', paint, { passive: true }); 3829 window.addEventListener('resize', build); 3830 build(); 3831 } 3832 document.addEventListener('DOMContentLoaded', function () { 3833 mcDots('mc-grid-1', 'mc-dots-1'); 3834 mcDots('mc-grid-2', 'mc-dots-2'); 3835 }); 3836 3837 /* Sikrer at footeren altid vises, selv hvis temaet prøver at skjule den. */ 3838 function mcForceShowFooter() { 3839 var f = document.getElementById('mc-landing-footer'); 3840 if (!f) return; 3841 var el = f; 3842 while (el && el !== document.body) { 3843 el.removeAttribute('hidden'); 3844 el.style.removeProperty('display'); 3845 el.style.removeProperty('visibility'); 3846 el.style.removeProperty('opacity'); 3847 el.style.removeProperty('height'); 3848 if (el.classList) el.classList.remove('hidden', 'is-hidden', 'hide'); 3849 el = el.parentElement; 3850 } 3851 f.style.display = 'block'; 3852 f.style.visibility = 'visible'; 3853 f.style.opacity = '1'; 3854 } 3855 document.addEventListener('DOMContentLoaded', mcForceShowFooter); 3856 window.addEventListener('load', mcForceShowFooter);
3857 setTimeout(mcForceShowFooter, 1200); 3858</script>
3858 3859 3860 3861</section> 3862 </main> 3863 3864 <!-- BEGIN sections: footer-group --> 3865<div id="shopify-section-sections--32274034295123__footer" class="shopify-section shopify-section-group-footer-group">
3866<script src="//bettys.io/cdn/shop/t/22/assets/footer.js?v=56475581656799193111790187175" defer="defer"></script>
3866<style> 3867 .section-sections--32274034295123__footer { 3868 --section-padding-top: 30px; 3869 --section-padding-bottom: 30px; 3870 } 3871</style> 3872<footer class="footer color-scheme-4719399a-8a66-454e-b61f-affdeb519d02 section-sections--32274034295123__footer"> 3873 <div class="section-divider page-width"> 3874 <div class="border-top no-empty"></div> 3875 </div> 3876 <div class="footer__wrapper section--padding"><div 3877 class="footer__top page-width page-width--full" 3878 style="--total-items: 3;" 3879 > 3880 <div class="footer__top-wrapper flex flex-wrap"><div 3881 class="footer-block footer-block--image_text f-column w-full" 3882 style="--col-width:0.49;" 3883 3884 ><div 3885 id="Details-image_text_r6nUrA-sections--32274034295123__footer" 3886 3887 class="accordion-details footer-accordion-details" 3888><div class="footer-image-box footer-image-box--image_top"> 3889 3890 <div 3891 class="footer-image-box__image" 3892 style="--image-width: 172px; --image-width-mobile: 250px;" 3893 ><motion-element class="block" data-motion="zoom-out-sm" data-motion-delay=""> 3894 <picture 3895 class="media-wrapper blocks-radius overflow-hidden" 3896 style="--aspect-ratio: 3.314917127071823;--aspect-ratio-mobile: 3.314917127071823;" 3897 ><source 3898 media="(max-width: 767px)" 3899 srcset="//bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=400 400w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=600 600w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=800 800w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=1000 1000w" 3900 width="1200" 3901 height="362" 3902 > 3903 <img src="//bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=1100" alt="Bettys logo" srcset="//bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=165 165w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=360 360w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=535 535w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=750 750w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=940 940w, //bettys.io/cdn/shop/files/bettys-logo-hvid-transparent-1200px.png?v=1790196951&width=1100 1100w" width="1100" height="332" loading="lazy" class="absolute inset-0 w-full h-full" sizes="172px" is="image-lazy"> 3904 </picture> 3905 </motion-element> 3906 </div> 3907 3908<div class="block"></div> 3909 </div> 3910</div> 3911 3912</div><div 3913 class="footer-block footer-block--contact_information f-column w-full" 3914 style="--col-width:0.25;" 3915 3916 > 3917 3918 <details 3919 id="Details-contact_information_dzGUyk-sections--32274034295123__footer" 3920 3921 is="footer-details" 3922 open 3923 data-open-default="false" 3924 3925 class="accordion-details footer-accordion-details" 3926 ><summary class="accordion-details__summary flex items-center justify-between gap-2"> 3927 <h3 class="footer-block__heading inline-richtext h6">Kontakt os</h3> 3928 <span class="flex items-center lg:hidden"><svg 3929 xmlns="http://www.w3.org/2000/svg" 3930 class="icon icon-plus-toggle icon--small icon--thick" 3931 viewBox="0 0 20 20" 3932 fill="none" 3933> 3934 <path class="horizontal" d="M3.125 10H16.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3935 <path class="vertical" d="M10 3.125V16.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 3936</svg> 3937</span> 3938 </summary>
3938<div class="accordion-details__content footer-block__contact-info footer-info text-subtext"> 3939 3940 <div class="footer-info__item footer-info__address"> 3941 <svg 3942 width="20" 3943 height="20" 3944 viewBox="0 0 20 20" 3945 fill="none" 3946 xmlns="http://www.w3.org/2000/svg" 3947 > 3948 <path d="M10 10.625C11.3807 10.625 12.5 9.50571 12.5 8.125C12.5 6.74429 11.3807 5.625 10 5.625C8.61929 5.625 7.5 6.74429 7.5 8.125C7.5 9.50571 8.61929 10.625 10 10.625Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3949 <path d="M16.25 8.125C16.25 13.75 10 18.125 10 18.125C10 18.125 3.75 13.75 3.75 8.125C3.75 6.4674 4.40848 4.87769 5.58058 3.70558C6.75269 2.53348 8.3424 1.875 10 1.875C11.6576 1.875 13.2473 2.53348 14.4194 3.70558C15.5915 4.87769 16.25 6.4674 16.25 8.125Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3950 </svg> 3951 <span>Bettys.io drives af NextGen Commerce ApS · Sandvigvej 2, 7400 Herning, DK · CVR nr. 37631450</span> 3952 </div> 3953 3954 3955 <div class="footer-info__item footer-info__email"> 3956 <svg 3957 width="20" 3958 height="20"
3959 viewBox="0 0 20 20" 3960 fill="none" 3961 xmlns="http://www.w3.org/2000/svg" 3962 > 3963 <path d="M2.5 4.375H17.5V15C17.5 15.1658 17.4342 15.3247 17.3169 15.4419C17.1997 15.5592 17.0408 15.625 16.875 15.625H3.125C2.95924 15.625 2.80027 15.5592 2.68306 15.4419C2.56585 15.3247 2.5 15.1658 2.5 15V4.375Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3964 <path d="M17.5 4.375L10 11.25L2.5 4.375" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3965 </svg> 3966 <a href="mailto:hello(at)bettys.io">hello(at)bettys.io</a> 3967 </div> 3968 3969 3970 <div class="footer-info__item footer-info__phone"> 3971 <svg 3972 width="20" 3973 height="20"
3974 viewBox="0 0 20 20" 3975 fill="none" 3976 xmlns="http://www.w3.org/2000/svg" 3977 > 3978 <path d="M15 16.875L15 3.125C15 2.43464 14.4404 1.875 13.75 1.875L6.25 1.875C5.55964 1.875 5 2.43464 5 3.125L5 16.875C5 17.5654 5.55964 18.125 6.25 18.125H13.75C14.4404 18.125 15 17.5654 15 16.875Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3979 <path d="M10 5.625C10.5178 5.625 10.9375 5.20527 10.9375 4.6875C10.9375 4.16973 10.5178 3.75 10 3.75C9.48223 3.75 9.0625 4.16973 9.0625 4.6875C9.0625 5.20527 9.48223 5.625 10 5.625Z" fill="currentColor"/> 3980 </svg> 3981 <a href="tel:+45 20978299">+45 20978299</a> 3982 </div> 3983 3984 3985 <div class="footer-info__item footer-info__working-hours"> 3986 <svg 3987 width="20" 3988 height="20"
3989 viewBox="0 0 20 20" 3990 fill="none" 3991 xmlns="http://www.w3.org/2000/svg" 3992 > 3993 <path d="M10 17.5C14.1421 17.5 17.5 14.1421 17.5 10C17.5 5.85786 14.1421 2.5 10 2.5C5.85786 2.5 2.5 5.85786 2.5 10C2.5 14.1421 5.85786 17.5 10 17.5Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3994 <path d="M10 5.625V10H14.375" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3995 </svg> 3996 <span>9:00 - 12:00 Man-Fre (lukket helligdage)</span> 3997 </div> 3998 3999 </div> 4000 </details> 4001 4002</div><div 4003 class="footer-block footer-block--menu f-column w-full" 4004 style="--col-width:0.25;" 4005 4006 > 4007<details 4008 id="Details-menu_wqJWD3-sections--32274034295123__footer" 4009 4010 is="footer-details" 4011 open 4012 data-open-default="false" 4013 4014 class="accordion-details footer-accordion-details" 4015 ><summary class="accordion-details__summary flex items-center justify-between gap-2"> 4016 <h3 class="footer-block__heading inline-richtext h6">Find ud af mere</h3> 4017 <span class="flex items-center lg:hidden"><svg 4018 xmlns="http://www.w3.org/2000/svg" 4019 class="icon icon-plus-toggle icon--small icon--thick" 4020 viewBox="0 0 20 20" 4021 fill="none" 4022> 4023 <path class="horizontal" d="M3.125 10H16.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4024 <path class="vertical" d="M10 3.125V16.875" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 4025</svg> 4026</span> 4027 </summary><ul class="accordion-details__content linklist linklist--vertical list-unstyled"><li class="reversed-link"> 4028 <a 4029 href="/pages/app" 4030 class="text-subtext block" 4031 > 4032 <span class="reversed-link__text"> 4033 FÃ¥ Bettys som app 4034 </span> 4035 </a> 4036 </li><li class="reversed-link"> 4037 <a 4038 href="/pages/rabatkoder" 4039 class="text-subtext block" 4040 > 4041 <span class="reversed-link__text"> 4042 Rabatkoder 4043 </span> 4044 </a> 4045 </li><li class="reversed-link"> 4046 <a 4047 href="/pages/om-os" 4048 class="text-subtext block" 4049 > 4050 <span class="reversed-link__text"> 4051 Om Betty 4052 </span> 4053 </a> 4054 </li><li class="reversed-link"> 4055 <a 4056 href="/pages/bliv-creator" 4057 class="text-subtext block" 4058 > 4059 <span class="reversed-link__text"> 4060 Bliv Creator 4061 </span> 4062 </a> 4063 </li><li class="reversed-link"> 4064 <a 4065 href="/blogs/smart-shopping" 4066 class="text-subtext block" 4067 >
4068 <span class="reversed-link__text"> 4069 Vores blog 4070 </span> 4071 </a> 4072 </li><li class="reversed-link"> 4073 <a 4074 href="/pages/privatlivspolitik" 4075 class="text-subtext block" 4076 > 4077 <span class="reversed-link__text"> 4078 Privatlivspolitik 4079 </span> 4080 </a> 4081 </li><li class="reversed-link"> 4082 <a 4083 href="/pages/betingelser" 4084 class="text-subtext block" 4085 > 4086 <span class="reversed-link__text"> 4087 Betingelser 4088 </span> 4089 </a> 4090 </li></ul> 4091 </details></div></div> 4092 </div> 4093 4094 <div class="footer__bottom page-width page-width--full"> 4095 4096 4097 <div class="footer__bottom-row flex justify-between items-start"> 4098 <div class="footer__copyright"> 4099 <p class="footer__copyright-content"> 4100 © 2026 4101 <a class="link-underline" href="/">Bettys</a>. 4102 Alle rettigheder forbeholdes. 4103 </p></div> 4104 <div class="footer__info flex items-center"> 4105 4106 <ul class="linklist linklist--horizontal list-unstyled"> 4107 4108 <li> 4109 <a href="/collections/all" class="reversed-link">Butikker</a> 4110 </li> 4111 4112 <li> 4113 <a href="/pages/favoritter" class="reversed-link">Favoritbutikker</a> 4114 </li> 4115 4116 <li> 4117 <a href="/pages/oenskelister" class="reversed-link">Ãnskelister</a> 4118 </li> 4119 4120 <li> 4121 <a href="/pages/app" class="reversed-link">FÃ¥ Bettys som app</a> 4122 </li> 4123 4124 </ul> 4125 4126 </div> 4127 </div> 4128 </div> 4129 </div> 4130</footer> 4131 4132 4133<style> 4134 .footer-section, 4135 #shopify-section-footer, 4136 footer, 4137 .site-footer { 4138 display: none !important; 4139 } 4140</style> 4141<style> @media (min-width: 1024px) {#shopify-section-sections--32274034295123__footer .footer-image-box {max-width: 31rem; }} #shopify-section-sections--32274034295123__footer .footer-image-box__details {max-width: 26.2rem;} </style></div><div id="shopify-section-sections--32274034295123__mobile_sticky_bar_aYhgJK" class="shopify-section shopify-section-group-footer-group"> 4142</div> 4143<!-- END sections: footer-group --> 4144 </div> 4145 4146 <!-- BEGIN sections: overlay-group --> 4147 4148<!-- END sections: overlay-group --> 4149 4150<style> 4151/* ========================================================================== 4152 BETTY â FÃLLES FARVER 4153 ========================================================================== */ 4154:root { 4155 --bt-pink:#EA396D; --bt-pink-dk:#D42C5E; --bt-pink-tint:#EFD7DE; --bt-pink-lt:#FF8DAE; 4156 --bt-navy:#0E082A; --bt-navy-4:#241C47; --bt-muted:#554975; --bt-muted-2:#7D7298; 4157 --bt-panel:#EAE2E5; --bt-card:#EFE9EC; --bt-line:rgba(14,8,42,.08); 4158 --bt-font:'Plus Jakarta Sans', var(--font-body-family, system-ui), sans-serif; 4159 /* Gamle navne, som andre filer stadig kan bruge */ 4160 --mc-green:#0E082A; --mc-ink:#0E082A; --mc-pink:#EA396D; --mc-pink-dark:#D42C5E; 4161} 4162 4163/* ========================================================================== 4164 BETTYS ANSIGT â KUN DER HVOR MAN "CHATTER" MED BETTY 4165 Upload betty-avatar-512.jpg under Indhold â Filer. 4166 Ansigtet vises i talebobler og beskeder fra Betty: 4167 login-boksen · exit-pop-up · butikssider ("Betty har tjekket â¦", 4168 "Jeg har X koder klar", kode-beskeden) · søgesidens svar · 4169 chatten + slutbeskeden pÃ¥ Om Betty · 404 · chatten og svar-beskeder 4170 pÃ¥ Kontakt · svar-beskeder pÃ¥ Creator · "Bettys tip" pÃ¥ Rabatkoder · 4171 spørge-boblen pÃ¥ forsiden. 4172 Alle andre steder (pills, chips, overskrifter, bokse) er det den 4173 pinke B-cirkel. Vil du have ansigtet et sted mere, sÃ¥ tilføj det her. 4174 ========================================================================== */ 4175.mc3-av, .mc-exit-av, 4176.mc-p__betty .mc-p__av, .mc-p__codes-lock-txt .mc-p__av, .mc-p__codes-note .mc-p__av, 4177.bt-s__av--lg, 4178.bto__chat-head .bto__av, .bto__slut .bto__av, 4179.mc404__av, 4180.btk__chat-head .btk__av, .btk__msg .btk__av, 4181.mc-aff-form__ok .mc-aff-bav, .mc-aff-form__err .mc-aff-bav, 4182.mc-rk__tip .mc-rk__av, 4183.mc-ask__bub .mc-bav { 4184 background: url("//bettys.io/cdn/shop/files/betty-avatar-512.jpg?v=6778113049269621155") center 30% / cover no-repeat, linear-gradient(145deg,#F2587F 0%,#EA396D 55%,#C92A5B 100%) !important; 4185 color: transparent !important; 4186 font-size: 0 !important; 4187} 4188 4189/* ========================================================================== 4190 1. PRODUKTKORT & BUTIKSKORT Pà LISTER 4191 ========================================================================== */ 4192.product-card, 4193.grid-view-item, 4194.card-wrapper, 4195.mc3-1x1-card { 4196 background: #ffffff !important; 4197 border-radius: 22px !important; 4198 border: 1px solid var(--bt-line) !important; 4199 overflow: hidden !important; 4200 position: relative !important; 4201 transition: transform .2s ease, box-shadow .2s ease !important; 4202} 4203 4204.product-card:hover, .grid-view-item:hover, .card-wrapper:hover { 4205 transform: translateY(-5px) !important; 4206 box-shadow: 0 20px 40px rgba(234,57,109,0.18) !important; 4207} 4208 4209.mc3-squirrel-badge { color: rgba(14,8,42,.25) !important; transition: transform .18s, color .2s !important; } 4210.mc3-squirrel-badge:hover { transform: scale(1.14); color: var(--bt-pink) !important; } 4211.mc3-squirrel-badge[data-active="true"] { color: var(--bt-pink) !important; } 4212 4213/* Kvadratisk billedfelt */ 4214.product-card .product-card__image-wrapper { 4215 aspect-ratio: 1 / 1 !important; 4216 width: 100% !important; 4217 display: flex !important; 4218 align-items: center !important; 4219 justify-content: center !important; 4220 padding: 20px !important; 4221 overflow: hidden !important; 4222 background: white !important; 4223} 4224.product-card .product-card__image-wrapper img { 4225 width: auto !important; 4226 height: auto !important; 4227 max-width: 80% !important; 4228 max-height: 80% !important; 4229 object-fit: contain !important; 4230} 4231.product-card .media-wrapper { 4232 width: 100% !important; 4233 height: 100% !important; 4234 display: flex !important; 4235 align-items: center !important; 4236 justify-content: center !important; 4237} 4238 4239/* Info-del under billedet */ 4240.product-card .product-card__info { 4241 padding: 10px 14px !important; 4242 background: white !important; 4243 border-top: 1px solid var(--bt-line) !important; 4244} 4245.product-card .product-card__title { 4246 font-family: var(--bt-font) !important; 4247 font-size: 13.5px !important; 4248 font-weight: 700 !important; 4249 text-align: center !important; 4250 color: var(--bt-navy) !important; 4251 margin: 0 !important; 4252} 4253 4254/* Skjul pris, vendor, type */ 4255.product-card .price, 4256.product-card .product-card__vendor, 4257.product-card .product-card__type { 4258 display: none !important; 4259} 4260 4261/* Cashback-mærke */ 4262.mc3-cashback-badge { 4263 position: absolute !important; 4264 top: 10px !important; 4265 left: 10px !important; 4266 background: var(--bt-pink) !important; 4267 color: white !important; 4268 padding: 5px 11px !important; 4269 border-radius: 999px !important; 4270 font-family: var(--bt-font) !important; 4271 font-size: 11.5px !important; 4272 font-weight: 800 !important; 4273 z-index: 50 !important; 4274 white-space: nowrap !important; 4275 line-height: 1.3 !important; 4276} 4277 4278/* ========================================================================== 4279 2. FAVORIT-KNAP Pà PRODUKTSIDEN 4280 ========================================================================== */ 4281.template-product .mc-product-fav-wrapper { 4282 display: inline-flex !important; 4283 align-items: center !important; 4284 gap: 10px !important; 4285 margin: 20px 0 !important; 4286 cursor: pointer !important; 4287 background: transparent !important; 4288 border: none !important; 4289 padding: 8px 0 !important; 4290 font-family: var(--bt-font); 4291 user-select: none; 4292 position: relative !important; 4293 z-index: 100 !important; 4294 pointer-events: auto !important; 4295} 4296.template-product .mc-product-fav-wrapper .mc3-squirrel-img { 4297 width: 24px !important; 4298 height: 24px !important; 4299 opacity: 0.25 !important; 4300 transition: opacity 0.3s ease !important; 4301 pointer-events: none !important; 4302} 4303.template-product .mc-product-fav-wrapper .fav-text-node { 4304 font-size: 15px !important; 4305 font-weight: 700 !important; 4306 color: var(--bt-muted) !important; 4307 transition: all 0.3s ease !important; 4308 pointer-events: none !important; 4309} 4310.template-product .mc-product-fav-wrapper[data-active="true"] .mc3-squirrel-img { opacity: 1 !important; } 4311.template-product .mc-product-fav-wrapper[data-active="true"] .fav-text-node { color: var(--bt-pink) !important; } 4312 4313/* ========================================================================== 4314 3. SKJUL TEMA-EGNE FAVORIT-IKONER Pà PRODUKTKORT 4315 ========================================================================== */ 4316.product-card [class*="fav"]:not(.mc3-squirrel-badge):not(.mc3-squirrel-img), 4317.product-card [id*="fav"], 4318.product-card [onclick*="Favorit"], 4319.grid-view-item [class*="fav"]:not(.mc3-squirrel-badge):not(.mc3-squirrel-img), 4320.card-wrapper [class*="fav"]:not(.mc3-squirrel-badge):not(.mc3-squirrel-img), 4321.collection-card__wrapper [class*="fav"]:not(.mc3-squirrel-badge):not(.mc3-squirrel-img) { 4322 display: none !important; 4323 opacity: 0 !important; 4324 visibility: hidden !important; 4325 pointer-events: none !important; 4326} 4327 4328/* Favorit-knappen pÃ¥ produktsiden er altid synlig */ 4329.product-single__meta [class*="fav"], 4330.product__info-container [class*="fav"], 4331.main-product-wrap [class*="fav"], 4332.product [class*="fav"], 4333#shopify-section-main-product [class*="fav"] { 4334 display: inline-flex !important; 4335 opacity: 1 !important; 4336 visibility: visible !important; 4337 pointer-events: auto !important; 4338} 4339 4340/* ========================================================================== 4341 4. KATEGORI-DROPDOWN 4342 ========================================================================== */ 4343.mc-dropdown { min-width: 280px !important; max-width: 320px !important; } 4344.mc-dropdown .dropdown__container { 4345 background: var(--bt-navy) !important; 4346 border: none !important; 4347 border-radius: 20px !important; 4348 padding: 10px !important; 4349 box-shadow: 0 24px 60px rgba(14,8,42,0.35) !important; 4350 overflow: hidden; 4351} 4352.mc-dropdown .dropdown__nav li { border-radius: 12px; transition: background 0.15s ease; }
4353.mc-dropdown .dropdown__nav li:hover { background: rgba(255,255,255,0.08); } 4354.mc-dropdown .dropdown__nav li a { 4355 color: white !important; 4356 padding: 10px 14px !important; 4357 font-family: var(--bt-font) !important; 4358 font-size: 14px !important; 4359 font-weight: 600 !important; 4360 display: flex !important; 4361 align-items: center !important; 4362 gap: 10px; 4363} 4364.mc-dropdown .dropdown__nav li a::before { 4365 content: ''; 4366 display: inline-block; 4367 width: 6px; 4368 height: 6px; 4369 border-radius: 50%; 4370 background: var(--bt-pink); 4371 flex-shrink: 0; 4372} 4373.mc-dropdown .dropdown__nav li:hover a { color: var(--bt-pink-lt) !important; } 4374</style> 4375
4376<script type="module"> 4377 import { initializeApp } from "https://www.gstatic.com/firebasejs/10.8.0/firebase-app.js"; 4378 import { getAuth, onAuthStateChanged, signInWithEmailAndPassword, createUserWithEmailAndPassword, sendPasswordResetEmail } from "https://www.gstatic.com/firebasejs/10.8.0/firebase-auth.js"; 4379 import { getFirestore, doc, getDoc, setDoc, arrayUnion, arrayRemove } from "https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js"; 4380 4381 const firebaseConfig = { 4382 apiKey: "AIzaSyCejg6bxhLKIZIlQVrrKoBAMsuy07vkoik", 4383 authDomain: "mincashback-data.firebaseapp.com", 4384 projectId: "mincashback-data", 4385 storageBucket: "mincashback-data.firebasestorage.app", 4386 messagingSenderId: "438825440860", 4387 appId: "1:438825440860:web:08ec409d5f305f3377f899" 4388 }; 4389 4390 const app = initializeApp(firebaseConfig); 4391 const auth = getAuth(app); 4392 const db = getFirestore(app); 4393 4394 window.firebaseAuth = auth; 4395 window.firebaseDb = db; 4396 4397 /* Gem evt. referral-UID fra URL (?ref=UID), sÃ¥ det overlever, 4398 selv hvis brugeren klikker rundt, før de opretter sig. */ 4399 (function captureReferral() { 4400 try { 4401 const ref = new URLSearchParams(window.location.search).get('ref'); 4402 if (ref) sessionStorage.setItem('mc_referred_by', ref); 4403 } catch (e) {} 4404 })(); 4405 4406 /* Efter login/oprettelse: bliv pÃ¥ den side, man var pÃ¥ (fx en delt 4407 ønskeliste eller en butik). Kun fra forsiden sendes man videre. */ 4408 function efterLogin() { 4409 if (window.location.pathname === '/' || window.location.pathname === '') { 4410 window.location.href = '/pages/medlem'; 4411 } else { 4412 window.location.reload(); 4413 } 4414 } 4415 4416 /* --- 1. FORÃLDEDE FUNKTIONER (ikke i brug længere) --- 4417 Peger pÃ¥ felter (#login-email, #signup-email â¦), der ikke findes i den 4418 nuværende login-boks. Fjern dem, nÃ¥r I har bekræftet, at intet andet 4419 sted i temaet kalder dem. */ 4420 window.kørLogin = async () => { 4421 const email = document.getElementById('login-email').value; 4422 const pass = document.getElementById('login-pass').value; 4423 try { 4424 await signInWithEmailAndPassword(auth, email, pass); 4425 window.location.href = "/pages/soeg-varer"; 4426 } catch (e) { alert("Fejl ved login: " + e.message); } 4427 }; 4428 window.kørOprettelse = async () => { 4429 const email = document.getElementById('signup-email').value; 4430 const pass = document.getElementById('signup-pass').value; 4431 const name = document.getElementById('signup-firstname').value; 4432 try { 4433 const res = await createUserWithEmailAndPassword(auth, email, pass); 4434 await setDoc(doc(db, "users", res.user.uid), { firstName: name, email: email, favorites: [], createdAt: new Date() }); 4435 window.location.href = "/pages/soeg-varer"; 4436 } catch (e) { alert("Fejl ved oprettelse: " + e.message); } 4437 }; 4438 4439 window.handleForgotPassword = async () => { 4440 const email = document.getElementById('auth-email').value.trim(); 4441 const errorEl = document.getElementById('auth-error'); 4442 if (!email) { 4443 errorEl.className = 'mc3-error-msg'; 4444 errorEl.style.display = 'block'; 4445 errorEl.innerText = 'Skriv din e-mail i feltet ovenfor først.'; 4446 return; 4447 } 4448 try { 4449 /* Mailen sendes via Klaviyo (Cloud Function "bettyNulstilAdgangskode"). 4450 Svarer funktionen ikke, bruges Firebases egen mail som reserve. */ 4451 let sendt = false; 4452 try { 4453 const r = await fetch('https://europe-west1-mincashback-data.cloudfunctions.net/bettyNulstilAdgangskode', { 4454 method: 'POST', 4455 headers: { 'Content-Type': 'application/json' }, 4456 body: JSON.stringify({ email: email }) 4457 }); 4458 sendt = r.ok; 4459 } catch (e) {} 4460 if (!sendt) await sendPasswordResetEmail(auth, email); 4461 errorEl.className = 'mc3-success-msg'; 4462 errorEl.style.display = 'block'; 4463 errorEl.innerText = 'Betty har sendt et link til at nulstille din adgangskode til ' + email + '.'; 4464 } catch (error) { 4465 errorEl.className = 'mc3-error-msg'; 4466 errorEl.style.display = 'block'; 4467 errorEl.innerText = translateFirebaseError(error.code); 4468 } 4469 }; 4470 4471 /* --- 2. FAVORITTER --- 4472 setDoc med merge i stedet for updateDoc: findes brugerens dokument 4473 ikke (fx ældre konti), fejlede updateDoc tavst, og hjertet gjorde intet. */ 4474 window.toggleFavorit = async (butiksNavn, event) => { 4475 if (event) { event.preventDefault(); event.stopPropagation(); } 4476 if (!auth.currentUser) { 4477 const modal = document.getElementById('mc3-auth-modal'); 4478 if (modal) { 4479 modal.style.display = 'flex'; 4480 if (typeof window.switchAuthTab === 'function') window.switchAuthTab('signup'); 4481 } 4482 return; 4483 } 4484 const userRef = doc(db, "users", auth.currentUser.uid); 4485 try { 4486 const userSnap = await getDoc(userRef); 4487 const favorites = userSnap.exists() ? (userSnap.data().favorites || []) : []; 4488 const isAdding = !favorites.includes(butiksNavn); 4489 await setDoc(userRef, { 4490 favorites: isAdding ? arrayUnion(butiksNavn) : arrayRemove(butiksNavn) 4491 }, { merge: true }); 4492 window.updateSquirrelUI(butiksNavn, isAdding); 4493 } catch (e) { console.error("Favorit fejl:", e); } 4494 }; 4495 4496 /* --- 3. OPDATER HJERTER/AGERN --- 4497 CSS.escape, sÃ¥ en handle med specialtegn ikke kan fÃ¥ søgningen til at fejle */ 4498 window.updateSquirrelUI = (butiksNavn, isActive) => { 4499 const sikker = (window.CSS && CSS.escape) ? CSS.escape(butiksNavn) : butiksNavn; 4500 document.querySelectorAll(`[data-squirrel-id="${sikker}"]`).forEach(card => { 4501 const badge = card.querySelector('.mc3-squirrel-badge'); 4502 if (badge) badge.setAttribute('data-active', isActive ? 'true' : 'false'); 4503 else card.setAttribute('data-active', isActive ? 'true' : 'false'); 4504 }); 4505 document.querySelectorAll('.mc-product-fav-wrapper').forEach(el => { 4506 const textNode = el.querySelector('.fav-text-node'); 4507 el.setAttribute('data-active', isActive ? 'true' : 'false'); 4508 if (textNode) textNode.innerText = isActive ? '⥠Gemt som favorit' : 'Gem som favorit'; 4509 }); 4510 document.querySelectorAll(`[onclick*="toggleFavorit('${sikker}')"]`).forEach(el => { 4511 el.setAttribute('data-active', isActive ? 'true' : 'false'); 4512 }); 4513 }; 4514 4515 /* --- 4. LOGIN-STATUS --- 4516 Klassen mc-logged-in pÃ¥ <html>
4516 bruges af andre sider (fx rabatkoderne) */ 4517 onAuthStateChanged(auth, async (user) => { 4518 document.documentElement.classList.toggle('mc-logged-in', !!user); 4519 if (!user) return; 4520 4521 document.querySelectorAll('a[href="/"], a[href="' + window.location.origin + '/"]') 4522 .forEach(link => link.href = "/pages/medlem"); 4523 4524 try { 4525 const userSnap = await getDoc(doc(db, "users", user.uid)); 4526 if (userSnap.exists()) { 4527 const favs = userSnap.data().favorites || []; 4528 const currentProductHandle = ""; 4529 if (currentProductHandle) { 4530 window.updateSquirrelUI(currentProductHandle, favs.includes(currentProductHandle)); 4531 } 4532 favs.forEach(butik => window.updateSquirrelUI(butik, true)); 4533 } 4534 } catch (e) { console.log('Favoritter ikke hentet:', e); } 4535 }); 4536 4537 /* --- 5. LOGIN-BOKSEN ---- */ 4538 document.addEventListener('DOMContentLoaded', () => { 4539 const authForm = document.getElementById('mc3-auth-form'); 4540 if (!authForm) return; 4541 4542 authForm.addEventListener('submit', async (e) => { 4543 e.preventDefault(); 4544 const mode = window.currentAuthMode || 'signup'; 4545 const email = document.getElementById('auth-email').value.trim(); 4546 const password = document.getElementById('auth-password').value; 4547 const firstName = document.getElementById('auth-firstname') ? document.getElementById('auth-firstname').value.trim() : ''; 4548 const newsletterOptIn = document.getElementById('auth-newsletter') ? document.getElementById('auth-newsletter').checked : false; 4549 const errorEl = document.getElementById('auth-error'); 4550 const btn = document.getElementById('auth-submit-btn'); 4551 errorEl.className = 'mc3-error-msg'; 4552 4553 const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 4554 if (!email || !emailPattern.test(email)) { 4555 errorEl.style.display = 'block'; 4556 errorEl.innerText = 'Skriv en gyldig e-mailadresse.'; 4557 return; 4558 } 4559 if (mode === 'signup' && !firstName) { 4560 errorEl.style.display = 'block'; 4561 errorEl.innerText = 'Skriv dit fornavn, sÃ¥ Betty ved, hvad hun skal kalde dig.'; 4562 return; 4563 } 4564 4565 btn.innerText = 'Et øjeblikâ¦'; 4566 btn.disabled = true; 4567 4568 try { 4569 if (mode === 'login') { 4570 await signInWithEmailAndPassword(auth, email, password); 4571 } else { 4572 const userCredential = await createUserWithEmailAndPassword(auth, email, password); 4573 4574 let referredBy = null; 4575 try { 4576 const storedRef = sessionStorage.getItem('mc_referred_by'); 4577 if (storedRef && storedRef !== userCredential.user.uid) referredBy = storedRef; 4578 } catch (e) {} 4579 4580 await setDoc(doc(db, "users", userCredential.user.uid), { 4581 firstName: firstName, 4582 email: email, 4583 phoneNumber: "", 4584 payoutMethod: "", 4585 totalCashback: 0, 4586 pendingCashback: 0, 4587 paidCashback: 0, 4588 favorites: [], 4589 newsletterOptIn: newsletterOptIn, 4590 newsletterOptInAt: newsletterOptIn ? new Date() : null, 4591 referredBy: referredBy, 4592 referredAt: referredBy ? new Date() : null, 4593 firstPurchaseBonusPaid: false, 4594 referralBonusPaidToReferrer: false, 4595 createdAt: new Date() 4596 }); 4597 } 4598 efterLogin(); 4599 } catch (error) { 4600 errorEl.style.display = 'block'; 4601 errorEl.innerText = translateFirebaseError(error.code); 4602 btn.innerText = mode === 'login' ? 'Log ind' : 'Opret gratis profil'; 4603 btn.disabled = false; 4604 } 4605 }); 4606 }); 4607 4608 function translateFirebaseError(code) { 4609 switch (code) { 4610 case 'auth/too-many-requests': return 'For mange forsøg. Prøv igen om lidt.'; 4611 case 'auth/user-not-found': return 'Der findes ingen profil med den e-mail.'; 4612 case 'auth/wrong-password': return 'Forkert adgangskode.'; 4613 case 'auth/email-already-in-use': return 'Den e-mail har allerede en profil â prøv at logge ind.'; 4614 case 'auth/weak-password': return 'Adgangskoden skal være mindst 6 tegn.'; 4615 case 'auth/invalid-email': return 'Ugyldig e-mailadresse.'; 4616 case 'auth/invalid-credential': return 'Forkert e-mail eller adgangskode.'; 4617 case 'auth/missing-password': return 'Skriv din adgangskode.'; 4618 case 'auth/network-request-failed': return 'Ingen forbindelse. Tjek dit internet og prøv igen.'; 4619 default: return 'Der skete en fejl. Prøv igen.'; 4620 } 4621 } 4622</script>
4622 4623 4624<!-- LOGIN / OPRET PROFIL --> 4625<div id="mc3-auth-modal" class="mc3-modal-overlay" style="display:none;" role="dialog" aria-modal="true" aria-labelledby="auth-main-title"> 4626 <div class="mc3-modal-card"> 4627 <button class="mc3-close-modal" onclick="closeAuthModal()" aria-label="Luk">Ã</button> 4628 4629 <div class="mc3-modal-head"> 4630 <span class="mc3-av" aria-hidden="true">B</span> 4631 <h2 id="auth-main-title" class="mc3-modal-title">Opret din profil</h2> 4632 <p id="auth-sub-title" class="mc3-modal-subtitle">SÃ¥ kan Betty registrere dine køb og sende pengene tilbage til dig.</p> 4633 </div> 4634 4635 <div class="mc3-modal-tabs" role="tablist"> 4636 <div id="tab-signup" class="mc3-tab active" role="tab" tabindex="0" onclick="switchAuthTab('signup')">Nyt medlem</div> 4637 <div id="tab-login" class="mc3-tab" role="tab" tabindex="0" onclick="switchAuthTab('login')">Log ind</div> 4638 </div> 4639 4640 <div class="mc3-modal-content"> 4641 <form id="mc3-auth-form" novalidate> 4642 <div id="signup-fields"> 4643 <div class="mc3-field-group"> 4644 <input type="text" id="auth-firstname" placeholder="Fornavn" class="mc3-input" autocomplete="given-name" aria-label="Fornavn"> 4645 </div> 4646 </div> 4647 <div class="mc3-field-group"> 4648 <input type="email" id="auth-email" placeholder="E-mail" class="mc3-input" autocomplete="email" aria-label="E-mail" required> 4649 </div> 4650 <div class="mc3-field-group"> 4651 <input type="password" id="auth-password" placeholder="Adgangskode (mindst 6 tegn)" class="mc3-input mc3-input--pw" autocomplete="current-password" aria-label="Adgangskode" required> 4652 <button type="button" class="mc3-pw-toggle" onclick="mcTogglePassword('auth-password', this)" aria-label="Vis adgangskode"> 4653 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.94 10.94 0 0 1 12 20c-7 0-11-8-11-8a18.5 18.5 0 0 1 5.06-5.94M9.9 4.24A10.94 10.94 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg> 4654 </button> 4655 </div> 4656 <div id="newsletter-field" class="mc3-newsletter-row"> 4657 <label class="mc3-newsletter-label"> 4658 <input type="checkbox" id="auth-newsletter" class="mc3-checkbox-hidden"> 4659 <span class="mc3-checkbox-box"></span> 4660 <span>Ja tak â Betty mÃ¥ sende mig nyheder, tilbud og ekstra cashback pÃ¥ mail</span> 4661 </label> 4662 </div> 4663 <div id="auth-error" class="mc3-error-msg" role="alert"></div> 4664 <button type="submit" id="auth-submit-btn" class="mc3-auth-submit">Opret gratis profil</button> 4665 <p id="auth-forgot-link" class="mc3-forgot-link" style="display:none;" onclick="handleForgotPassword()" role="button" tabindex="0">Glemt adgangskode?</p> 4666 </form> 4667 </div> 4668 4669 <p id="auth-switch-text" class="mc3-switch-footer">
4670 Allerede medlem? <span onclick="switchAuthTab('login')">Log ind her</span> 4671 </p> 4672 </div> 4673</div> 4674 4675<style> 4676 .mc3-modal-overlay { position: fixed; inset: 0; background: rgba(14,8,42,0.62); backdrop-filter: blur(8px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; font-family: var(--bt-font); } 4677 .mc3-modal-card { 4678 position: relative; overflow: hidden; width: 100%; max-width: 440px; box-sizing: border-box; 4679 padding: 36px 26px 24px; border-radius: 32px; background: var(--bt-navy); 4680 box-shadow: 0 30px 80px rgba(14,8,42,0.45); 4681 animation: mc3Pop 0.3s ease; 4682 } 4683 .mc3-modal-card::before { 4684 content: ''; position: absolute; top: -200px; right: -160px; width: 460px; height: 460px; 4685 border-radius: 50%; pointer-events: none; z-index: 0; 4686 background: radial-gradient(circle, rgba(234,57,109,0.5) 0%, transparent 65%); 4687 } 4688 .mc3-modal-card > * { position: relative; z-index: 1; } 4689 @keyframes mc3Pop { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: scale(1); } } 4690 .mc3-close-modal { position: absolute; z-index: 5; top: 16px; right: 16px; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.14); font-size: 20px; color: rgba(255,255,255,0.7); cursor: pointer; padding: 0; line-height: 1; transition: background .2s, color .2s; } 4691 .mc3-close-modal:hover { background: rgba(255,255,255,0.16); color: #fff; } 4692 .mc3-modal-head { padding: 0 4px 18px; text-align: center; } 4693 .mc3-av { 4694 position: relative; display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; margin-bottom: 14px; 4695 border-radius: 50%; background: linear-gradient(145deg,#F2587F 0%,#EA396D 55%,#C92A5B 100%); 4696 color: #fff; font-size: 25px; font-weight: 800; letter-spacing: -.04em; 4697 } 4698 .mc3-av::after { content: ''; position: absolute; right: -1px; bottom: -1px; width: 14px; height: 14px; border-radius: 50%; background: #2BD37C; border: 2.5px solid var(--bt-navy); } 4699 .mc3-modal-title { font-family: var(--bt-font); font-size: 26px; font-weight: 800; letter-spacing: -0.04em; color: #fff !important; margin: 0 0 6px 0; text-align: center; } 4700 .mc3-modal-subtitle { font-size: 14.5px; line-height: 1.5; color: rgba(255,255,255,0.7); margin: 0; text-align: center; } 4701 .mc3-modal-tabs { display: flex; gap: 4px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.1); border-radius: 999px; padding: 4px; margin-bottom: 14px; } 4702 .mc3-tab { flex: 1; text-align: center; padding: 10px; border-radius: 999px; font-weight: 800; cursor: pointer; transition: all 0.2s ease; font-size: 14px; color: rgba(255,255,255,0.65); } 4703 .mc3-tab.active { background: #fff; color: var(--bt-navy); } 4704 .mc3-tab:focus-visible { outline: 2px solid var(--bt-pink); outline-offset: 2px; } 4705 .mc3-modal-content { background: #fff; border-radius: 24px; padding: 22px 20px 20px; } 4706 .mc3-input { width: 100%; height: 52px; padding: 0 16px; border: 1.5px solid transparent; border-radius: 16px; font-family: var(--bt-font); font-size: 16px; font-weight: 600; box-sizing: border-box; background: var(--bt-card); color: var(--bt-navy); box-shadow: none; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; } 4707 .mc3-input::placeholder { color: var(--bt-muted-2); font-weight: 500; } 4708 .mc3-input:focus { border-color: var(--bt-pink); outline: none; background: #fff; box-shadow: 0 0 0 4px rgba(234,57,109,0.14); } 4709 .mc3-field-group { position: relative; margin-bottom: 12px; } 4710 .mc3-input--pw { padding-right: 48px; } 4711 .mc3-pw-toggle { position: absolute; top: 0; bottom: 0; right: 12px; margin: auto; height: 26px; width: 26px; background: none; border: none; padding: 0; cursor: pointer; color: var(--bt-muted-2); display: flex; align-items: center; justify-content: center; transition: color 0.15s; line-height: 0; } 4712 .mc3-pw-toggle:hover { color: var(--bt-pink); } 4713 .mc3-pw-toggle svg { width: 19px; height: 19px; } 4714 .mc3-auth-submit { width: 100%; height: 54px; background: var(--bt-pink); color: white; border: none; border-radius: 999px; font-family: var(--bt-font); font-weight: 800; font-size: 16px; cursor: pointer; transition: background .2s, transform .2s, box-shadow .2s; margin-top: 4px; box-shadow: 0 12px 28px rgba(234,57,109,0.35); } 4715 .mc3-auth-submit:hover { background: var(--bt-pink-dk); transform: translateY(-2px); } 4716 .mc3-auth-submit:disabled { opacity: .7; cursor: default; transform: none; } 4717 .mc3-error-msg, .mc3-success-msg { display: none; margin-bottom: 12px; padding: 10px 12px; border-radius: 12px; font-size: 13.5px; font-weight: 600; line-height: 1.45; text-align: center; } 4718 .mc3-error-msg { color: var(--bt-pink-dk); background: var(--bt-pink-tint); } 4719 .mc3-success-msg { color: #12804A; background: rgba(43,211,124,0.14); } 4720 .mc3-switch-footer { text-align: center; margin: 18px 0 0; font-size: 14px; color: rgba(255,255,255,0.65); } 4721 .mc3-switch-footer span { color: var(--bt-pink-lt); font-weight: 800; cursor: pointer; } 4722 .mc3-switch-footer span:hover { text-decoration: underline; } 4723 .mc3-forgot-link { text-align: center; font-size: 13.5px; color: var(--bt-pink); font-weight: 700; cursor: pointer; margin: 14px 0 0; } 4724 .mc3-forgot-link:hover { text-decoration: underline; } 4725 .mc3-newsletter-row { margin: 4px 0 14px; } 4726 .mc3-newsletter-label { position: relative; display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--bt-muted); cursor: pointer; line-height: 1.45; } 4727 .mc3-checkbox-hidden { position: absolute; opacity: 0;
4727 width: 20px; height: 20px; margin: 0; cursor: pointer; } 4728 .mc3-checkbox-box { position: relative; flex-shrink: 0; width: 20px; height: 20px; margin-top: 0; border: 1.5px solid rgba(14,8,42,0.2); border-radius: 6px; background: white; transition: background 0.15s, border-color .15s; } 4729 .mc3-checkbox-hidden:checked ~ .mc3-checkbox-box { background: var(--bt-pink); border-color: var(--bt-pink); } 4730 .mc3-checkbox-hidden:checked ~ .mc3-checkbox-box::after { content: ''; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid white; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); } 4731 .mc3-checkbox-hidden:focus-visible ~ .mc3-checkbox-box { outline: 2px solid var(--bt-pink); outline-offset: 2px; } 4732 @media (max-width: 480px) { 4733 .mc3-modal-overlay { padding: 0; align-items: flex-end; } 4734 .mc3-modal-card { max-width: 100%; border-radius: 28px 28px 0 0; max-height: 92vh; overflow-y: auto; padding: 28px 18px 20px; } 4735 .mc3-modal-title { font-size: 22px; } 4736 .mc3-modal-subtitle { font-size: 13.5px; } 4737 .mc3-av { width: 46px; height: 46px; font-size: 21px; margin-bottom: 10px; } 4738 .mc3-modal-content { padding: 18px 16px 16px; } 4739 } 4740</style> 4741
4742<script> 4743 window.switchAuthTab = function (mode) { 4744 const $ = id => document.getElementById(id); 4745 const forgotLink = $('auth-forgot-link'), signupFields = $('signup-fields'), submitBtn = $('auth-submit-btn'); 4746 const footerText = $('auth-switch-text'), tabLogin = $('tab-login'), tabSignup = $('tab-signup'); 4747 const errorMsg = $('auth-error'), mainTitle = $('auth-main-title'), subTitle = $('auth-sub-title'); 4748 const newsletterField = $('newsletter-field'), pw = $('auth-password'); 4749 4750 if (errorMsg) { errorMsg.style.display = 'none'; errorMsg.className = 'mc3-error-msg'; } 4751 4752 if (mode === 'signup') { 4753 window.currentAuthMode = 'signup'; 4754 if (forgotLink) forgotLink.style.display = 'none'; 4755 if (signupFields) signupFields.style.display = 'block'; 4756 if (newsletterField) newsletterField.style.display = 'block'; 4757 if (pw) pw.setAttribute('autocomplete', 'new-password'); 4758 if (mainTitle) mainTitle.innerText = 'Opret din profil'; 4759 if (subTitle) subTitle.innerText = 'Så kan Betty registrere dine køb og sende pengene tilbage til dig.'; 4760 if (submitBtn) submitBtn.innerText = 'Opret gratis profil'; 4761 if (footerText) footerText.innerHTML = 'Allerede medlem? <sp
4761an onclick="switchAuthTab(\'login\')">Log ind her</span>'; 4762 } else { 4763 window.currentAuthMode = 'login'; 4764 if (forgotLink) forgotLink.style.display = 'block'; 4765 if (signupFields) signupFields.style.display = 'none'; 4766 if (newsletterField) newsletterField.style.display = 'none'; 4767 if (pw) pw.setAttribute('autocomplete', 'current-password'); 4768 if (mainTitle) mainTitle.innerText = 'Velkommen tilbage'; 4769 if (subTitle) subTitle.innerText = 'Log ind, så Betty kan holde styr på din cashback.'; 4770 if (submitBtn) submitBtn.innerText = 'Log ind'; 4771 if (footerText) footerText.innerHTML = 'Har du ikke en profil? <span onclick="switchAuthTab(\'signup\')">Opret dig her</span>'; 4772 } 4773 if (tabSignup) { tabSignup.classList.toggle('active', mode === 'signup'); tabSignup.setAttribute('aria-selected', mode === 'signup'); } 4774 if (tabLogin) { tabLogin.classList.toggle('active', mode !== 'signup'); tabLogin.setAttribute('aria-selected', mode !== 'signup'); } 4775 }; 4776 4777 window.closeAuthModal = function () { 4778 const modal = document.getElementById('mc3-auth-modal'); 4779 if (modal) modal.style.display = 'none'; 4780 }; 4781 4782 /* Luk login-boksen med Escape eller ved klik uden for kortet */ 4783 document.addEventListener('keydown', function (e) { 4784 if (e.key === 'Escape') window.closeAuthModal(); 4785 if ((e.key === 'Enter' || e.key === ' ') && e.target && e.target.classList && e.target.classList.contains('mc3-tab')) { 4786 e.preventDefault(); e.target.click(); 4787 } 4788 }); 4789 document.addEventListener('click', function (e) { 4790 if (e.target && e.target.id === 'mc3-auth-modal') window.closeAuthModal(); 4791 }); 4792 4793 window.mcTogglePassword = function (inputId, btn) { 4794 const input = document.getElementById(inputId); 4795 if (!input) return; 4796 const isHidden = input.type === 'password'; 4797 input.type = isHidden ? 'text' : 'password'; 4798 btn.innerHTML = isHidden 4799 ? '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>' 4800 : '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.94 10.94 0 0 1 12 20c-7 0-11-8-11-8a18.5 18.5 0 0 1 5.06-5.94M9.9 4.24A10.94 10.94 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>'; 4801 btn.setAttribute('aria-label', isHidden ? 'Skjul adgangskode' : 'Vis adgangskode'); 4802 }; 4803 4804 window.switchAuthTab('signup'); 4805</script>
4805 4806
4807<script> 4808 /* Fjern temaets egne favoritikoner fra butikskortene */ 4809 document.addEventListener("DOMContentLoaded", function () { 4810 document.querySelectorAll('.product-card, .grid-view-item, .card-wrapper, .card, .mc3-1x1-card').forEach(function (card) { 4811 card.querySelectorAll( 4812 '[class*="fav"]:not(.mc3-squirrel-badge):not(.mc3-squirrel-img), [id*="fav"], [onclick*="Favorit"], [data-active]:not(.mc3-squirrel-badge)' 4813 ).forEach(function (element) { element.remove(); }); 4814 }); 4815 }); 4816</script>
4816 4817 4818<!-- EXIT INTENT POPUP â 50 KR VED FÃRSTE KÃB --> 4819<div id="mc-exit-popup" class="mc-exit-overlay" style="display:none;" role="dialog" aria-modal="true" aria-labelledby="mc-exit-heading"> 4820 <div class="mc-exit-card"> 4821 <button class="mc-exit-close" onclick="mcCloseExitPopup()" aria-label="Luk">Ã</button> 4822 <span class="mc-exit-av" aria-hidden="true">B</span> 4823 <p class="mc-exit-badge">Kun for nye medlemmer</p> 4824 <p class="mc-exit-amount">+50 kr</p> 4825 <p class="mc-exit-amount-lbl">oveni din cashback</p> 4826 <h2 class="mc-exit-heading" id="mc-exit-heading">Vent â Betty har 50 kr til dit første køb</h2> 4827 <p class="mc-exit-text">Opret en gratis profil, sÃ¥ lægger Betty 50 kr oveni din cashback, første gang du handler gennem hende.</p> 4828 <button class="mc-exit-cta" onclick="mcExitPopupSignup()">Opret gratis profil</button> 4829 <p class="mc-exit-small">Bonussen udbetales efter dit første gennemførte køb</p> 4830 </div> 4831</div> 4832 4833<style> 4834 .mc-exit-overlay { 4835 position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; 4836 padding:20px; box-sizing:border-box; background:rgba(14,8,42,0.72); backdrop-filter:blur(6px); 4837 animation:mcExitFadeIn .25s ease; 4838 } 4839 @keyframes mcExitFadeIn { from { opacity:0; } to { opacity:1; } } 4840 .mc-exit-card { 4841 position:relative; overflow:hidden; width:100%; max-width:440px; padding:40px 32px 30px; box-sizing:border-box; 4842 border-radius:32px; text-align:center; color:#fff; font-family:var(--bt-font); 4843 background:var(--bt-navy); box-shadow:0 30px 80px rgba(14,8,42,0.5); 4844 animation:mcExitPop .3s ease; 4845 } 4846 .mc-exit-card::before { 4847 content:''; position:absolute; width:520px; height:520px; left:50%; top:-300px; transform:translateX(-50%); 4848 border-radius:50%; pointer-events:none; background:radial-gradient(circle, rgba(234,57,109,0.55) 0%, transparent 65%); 4849 } 4850 @keyframes mcExitPop { from { opacity:0; transform:scale(0.94); } to { opacity:1; transform:scale(1); } } 4851 .mc-exit-card > * { position:relative; z-index:2; } 4852 .mc-exit-close { 4853 position:absolute; top:16px; right:16px; z-index:3; width:34px; height:34px; display:flex; align-items:center; justify-content:center; 4854 padding:0; border-radius:50%; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.14); 4855 font-size:20px; line-height:1; color:rgba(255,255,255,0.7); cursor:pointer; transition:background .2s, color .2s; 4856 } 4857 .mc-exit-close:hover { background:rgba(255,255,255,0.16); color:#fff; } 4858 .mc-exit-av { 4859 display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; margin-bottom:14px; 4860 border-radius:50%; background:linear-gradient(145deg,#F2587F 0%,#EA396D 55%,#C92A5B 100%); 4861 color:#fff; font-size:25px; font-weight:800; box-shadow:0 0 0 6px rgba(255,255,255,0.08); 4862 } 4863 .mc-exit-badge { 4864 display:block; width:fit-content; margin:0 auto 18px; padding:6px 14px; border-radius:999px; 4865 background:rgba(255,255,255,0.1); color:rgba(255,255,255,0.88); font-size:12.5px; font-weight:700; 4866 } 4867 .mc-exit-amount { 4868 margin:0 auto; width:fit-content; padding:12px 26px; border-radius:24px; background:var(--bt-pink); 4869 font-size:clamp(3rem,14vw,4rem); font-weight:800; line-height:1; letter-spacing:-0.05em; color:#fff; 4870 box-shadow:0 16px 36px rgba(234,57,109,0.45); 4871 } 4872 .mc-exit-amount-lbl { margin:12px 0 22px; font-size:13.5px; font-weight:700; color:rgba(255,255,255,0.6); } 4873 .mc-exit-heading { margin:0 0 10px; font-family:var(--bt-font); font-size:22px; font-weight:800; line-height:1.2; letter-spacing:-0.035em; color:#fff !important; } 4874 .mc-exit-text { margin:0 0 24px; font-size:15px; line-height:1.6; color:rgba(255,255,255,0.72); } 4875 .mc-exit-cta { 4876 width:100%; height:56px; padding:0 24px; border:none; border-radius:999px; cursor:pointer; 4877 background:#fff; color:var(--bt-navy); font-family:inherit; font-size:16px; font-weight:800; 4878 transition:background .2s, color .2s, transform .2s; 4879 } 4880 .mc-exit-cta:hover { background:var(--bt-pink); color:#fff; transform:translateY(-2px); } 4881 .mc-exit-small { margin:14px 0 0; font-size:12.5px; color:rgba(255,255,255,0.5); } 4882 .mc-exit-card :focus-visible { outline:2px solid var(--bt-pink-lt); outline-offset:3px; } 4883 @media (max-width:480px) { 4884 .mc-exit-card { padding:34px 20px 24px; border-radius:26px; } 4885 .mc-exit-heading { font-size:19px; } 4886 .mc-exit-text { font-size:14.5px; } 4887 } 4888 @media (prefers-reduced-motion: reduce) { 4889 .mc-exit-overlay, .mc-exit-card { animation:none !important; } 4890 .mc-exit-cta { transition-duration:.01ms; } 4891 } 4892</style> 4893
4894<script> 4895(function () { 4896 /* Sæt til true for at tænde popup'en */ 4897 var MC_EXIT_ENABLED = false; 4898 4899 var MC_EXIT_STORAGE_KEY = 'mc_exit_popup_shown'; 4900 var MC_EXIT_DELAY_MS = 8000; 4901 var pageLoadedAt = Date.now(); 4902 var hasTriggered = false; 4903 var loggedIn = null; /* null = ved det ikke endnu */ 4904 var lastFocus = null; 4905 4906 function alreadyShown() { 4907 try { return sessionStorage.getItem(MC_EXIT_STORAGE_KEY) === '1'; } catch (e) { return false; } 4908 } 4909 function markShown() { 4910 try { sessionStorage.setItem(MC_EXIT_STORAGE_KEY, '1'); } catch (e) {} 4911 } 4912 4913 /* Vent på Firebase, så et medlem ikke ser tilbuddet, før login er afgjort */ 4914 (function waitForAuth() { 4915 if (window.firebaseAuth) { 4916 window.firebaseAuth.onAuthStateChanged(function (user) { loggedIn = !!user; }); 4917 return; 4918 } 4919 if (Date.now() - pageLoadedAt < 10000) setTimeout(waitForAuth, 200); 4920 else loggedIn = false; 4921 })(); 4922 4923 function showExitPopup() { 4924 if (!MC_EXIT_ENABLED || hasTriggered || alreadyShown()) return; 4925 if (loggedIn !== false) return; 4926 if (Date.now() - pageLoadedAt < MC_EXIT_DELAY_MS) return; 4927 var popup = document.getElementById('mc-exit-popup'); 4928 if (!popup) return; 4929 hasTriggered = true; 4930 markShown(); 4931 lastFocus = document.activeElement; 4932 popup.style.display = 'flex'; 4933 document.body.style.overflow = 'hidden'; 4934 var close = popup.querySelector('.mc-exit-close'); 4935 if (close) close.focus(); 4936 } 4937 4938 window.mcCloseExitPopup = function () { 4939 var popup = document.getElementById('mc-exit-popup'); 4940 if (!popup || popup.style.display === 'none') return; 4941 popup.style.display = 'none'; 4942 document.body.style.overflow = ''; 4943 if (lastFocus && lastFocus.focus) lastFocus.focus(); 4944 }; 4945 4946 window.mcExitPopupSignup = function () { 4947 window.mcCloseExitPopup(); 4948 var modal = document.getElementById('mc3-auth-modal'); 4949 if (modal) { 4950 modal.style.display = 'flex'; 4951 if (typeof window.switchAuthTab === 'function') window.switchAuthTab('signup'); 4952 } 4953 }; 4954 4955 /* Musen forlader vinduet foroven */ 4956 document.addEventListener('mouseout', function (e) { 4957 if (e.relatedTarget === null && e.clientY <= 0) showExitPopup(); 4958 }); 4959 document.addEventListener('click', function (e) { 4960 var popup = document.getElementById('mc-exit-popup'); 4961 if (popup && e.target === popup) window.mcCloseExitPopup(); 4962 }); 4963 document.addEventListener('keydown', function (e) { 4964 if (e.key === 'Escape') window.mcCloseExitPopup(); 4965 }); 4966})(); 4967</script>
4967 4968
4969<script> 4970/* Fortæl Chrome-udvidelsen, om man er logget ind */ 4971(function () { 4972 var EXT_ID = window.MC_EXTENSION_ID; 4973 function meldTil(bruger) { 4974 try { 4975 if (!EXT_ID || !window.chrome || !chrome.runtime || !chrome.runtime.sendMessage) return; 4976 chrome.runtime.sendMessage(EXT_ID, { 4977 action: 'SET_LOGIN_STATUS', 4978 isLoggedIn: !!bruger, 4979 userId: bruger ? bruger.uid : null 4980 }, function () { void chrome.runtime.lastError; }); 4981 } catch (e) {} 4982 } 4983 var ventet = 0; 4984 var tjek = setInterval(function () { 4985 ventet += 200; 4986 if (window.firebaseAuth) { 4987 clearInterval(tjek); 4988 window.firebaseAuth.onAuthStateChanged(meldTil); 4989 } else if (ventet > 8000) { 4990 clearInterval(tjek); 4991 } 4992 }, 200); 4993})(); 4994</script>
4994 4995 4996 4997<style> 4998.mcp-modal{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(4,25,28,0.64);} 4999.mcp-modal.vis{display:flex;} 5000.mcp-modal__box{width:100%;max-width:440px;padding:34px 30px 26px;border-radius:26px;background:#fff;box-shadow:0 30px 70px rgba(4,25,28,0.5);text-align:center;font-family:var(--font-body-family,sans-serif);} 5001.mcp-modal__ico{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin:0 auto 18px;border-radius:50%;background:rgba(169,121,0,0.13);font-size:27px;} 5002.mcp-modal__h{font-family:var(--font-heading-family,sans-serif);margin:0 0 12px;font-size:22px;font-weight:900;letter-spacing:-0.02em;color:#0A3033;line-height:1.2;} 5003.mcp-modal__p{margin:0 0 24px;font-size:15.5px;line-height:1.6;color:#5F7673;} 5004.mcp-modal__p b{color:#0A3033;font-weight:800;} 5005.mcp-modal__go{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:10px 20px;border:none;border-radius:999px;cursor:pointer;background:#A97900;color:#fff;font-family:inherit;font-size:16.5px;font-weight:800;line-height:1.2;box-shadow:0 0 30px rgba(233,190,85,0.4);transition:background .2s;} 5006.mcp-modal__go:hover{background:#8C6400;} 5007.mcp-modal__ann{margin-top:12px;padding:10px;border:none;background:none;cursor:pointer;font-family:inherit;font-size:14.5px;font-weight:700;color:#5F7673;text-decoration:underline;text-underline-offset:3px;} 5008.mcp-modal__ann:hover{color:#0A3033;} 5009@media (max-width:480px){ 5010.mcp-modal__box{padding:28px 20px 20px;border-radius:22px;} 5011.mcp-modal__h{font-size:19.5px;} 5012.mcp-modal__p{font-size:15px;} 5013} 5014@media (prefers-reduced-motion:reduce){.mcp-modal__go{transition-duration:.01ms;}} 5015</style> 5016
5017<script> 5018(function () { 5019 var NOEGLE = 'mc_husk_vist'; 5020 var HVER_GANG = false; /* true = vis beskeden ved hvert klik */ 5021 var DAGE = 30; /* 0 = kun én gang nogensinde */ 5022 5023 var boks = null, videreFn = null; 5024 5025 function esc(v) { 5026 return String(v == null ? '' : v) 5027 .replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); 5028 } 5029 5030 function byg() { 5031 if (boks) return boks; 5032 boks = document.createElement('div'); 5033 boks.className = 'mcp-modal'; 5034 boks.setAttribute('role', 'dialog'); 5035 boks.setAttribute('aria-modal', 'true'); 5036 document.body.appendChild(boks); 5037 5038 boks.addEventListener('click', function (e) { 5039 if (e.target === boks) luk(); 5040 if (e.target.closest('[data-mcp-ann]')) luk(); 5041 if (e.target.closest('[data-mcp-go]')) { 5042 try { localStorage.setItem(NOEGLE, String(Date.now())); } catch (err) {} 5043 luk(); 5044 /* Kaldes fra brugerens eget klik, sÃ¥ fanen mÃ¥ Ã¥bnes */ 5045 if (videreFn) videreFn(); 5046 videreFn = null; 5047 } 5048 }); 5049 document.addEventListener('keydown', function (e) { 5050 if (e.key === 'Escape') luk(); 5051 }); 5052 return boks; 5053 } 5054 5055 function luk() { 5056 if (boks) boks.classList.remove('vis'); 5057 videreFn = null; 5058 } 5059 5060 window.mcHuskKlik = function (butik, videre) { 5061 if (typeof videre !== 'function') return; 5062 5063 /* Gemmes i localStorage, sÃ¥ den holder mellem besøg. Er DAGE sat 5064 til 0, vises beskeden kun én gang nogensinde. */ 5065 if (!HVER_GANG) { 5066 try { 5067 var sidst = parseInt(localStorage.getItem(NOEGLE), 10); 5068 if (sidst) { 5069 if (DAGE === 0) { videre(); return; } 5070 var gaaet = (Date.now() - sidst) / 86400000; 5071 if (gaaet < DAGE) { videre(); return; } 5072 } 5073 } catch (e) { /* privat browsing â sÃ¥ vises den bare hver gang */ } 5074 } 5075 5076 var navn = esc(butik || 'butikken'); 5077 byg().innerHTML = 5078 '<div class="mcp-modal__box">' + 5079 '<span class="mcp-modal__ico" aria-hidden="true">â±</span>' + 5080 '<h2 class="mcp-modal__h">Husk at handle med det samme</h2>' + 5081 '<p class="mcp-modal__p">Afgiv din ordre hos <b>' + navn + '</b> umiddelbart efter, ' + 5082 'du er klikket videre â sÃ¥ er du sikker pÃ¥, at dit køb og din cashback ' + 5083 'bliver registreret.</p>' + 5084 '<button type="button" class="mcp-modal__go" data-mcp-go>â Videre til ' + navn + '</button>' + 5085 '<button type="button" class="mcp-modal__ann" data-mcp-ann>Ikke lige nu</button>' + 5086 '</div>'; 5087 5088 videreFn = videre; 5089 boks.classList.add('vis'); 5090 5091 var go = boks.querySelector('[data-mcp-go]'); 5092 if (go) go.focus(); 5093 }; 5094})(); 5095</script>
5095 5096 5097<style> 5098 #bc-root{--pink:#EA396D;--pink-dk:#D42C5E;--pink-lt:#FF8DAE;--navy:#0E082A;--navy-4:#241C47;--muted:#554975;--card:#EFE9EC;--bg:#EAE2E5; 5099 font-family:'Plus Jakarta Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased} 5100 #bc-root *{box-sizing:border-box} 5101 .bc-fab{position:fixed;right:20px;bottom:20px;z-index:9990;display:flex;align-items:center;gap:11px;cursor:pointer; 5102 background:#0E082A;color:#fff;border:0;border-radius:999px;padding:6px 22px 6px 6px; 5103 box-shadow:0 14px 34px rgba(14,8,42,.35);font:800 15px/1 'Plus Jakarta Sans',sans-serif;transition:transform .2s,background .2s} 5104 .bc-fab:hover{transform:translateY(-2px);background:#241C47} 5105 .bc-fab:before{content:"";position:absolute;inset:0;border-radius:999px;border:2px solid #EA396D;opacity:0;animation:bcp 2.4s ease-out 3;pointer-events:none} 5106 @keyframes bcp{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.15)}} 5107 .bc-fab[hidden]{display:none} 5108 .bc-av{position:relative;display:block;flex-shrink:0;width:46px;height:46px} 5109 .bc-av img{width:46px !important;height:46px !important;max-width:none !important;border-radius:50% !important;object-fit:cover;display:block;border:0 !important} 5110 .bc-av:after{content:"";position:absolute;right:0;bottom:1px;width:13px;height:13px;border-radius:50%;background:#2BD37C;border:2.5px solid #fff} 5111 .bc-av--sm,.bc-av--sm img{width:42px !important;height:42px !important} 5112 .bc-av--sm:after{border-color:#0E082A} 5113 .bc-panel{position:fixed;right:20px;bottom:20px;z-index:9991;width:380px;height:min(600px,calc(100vh - 40px));display:flex;flex-direction:column; 5114 background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 30px 70px rgba(14,8,42,.28)} 5115 .bc-panel[hidden]{display:none} 5116 .bc-head{display:flex;align-items:center;gap:12px;padding:16px 16px 16px 18px;background:var(--navy);color:#fff} 5117 .bc-head b{display:block;font-size:16px;font-weight:800} 5118 .bc-head small{display:block;font-size:12.5px;color:#C9C2DE;margin-top:2px} 5119 .bc-x{margin-left:auto;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:#fff;font-size:20px;line-height:1;cursor:pointer} 5120 .bc-x:hover{background:rgba(255,255,255,.2)} 5121 .bc-log{flex:1;overflow-y:auto;padding:18px 16px 8px;background:var(--bg);display:flex;flex-direction:column;gap:10px} 5122 .bc-msg{max-width:86%;padding:11px 14px;border-radius:18px;font-size:14.5px;line-height:1.55;word-wrap:break-word} 5123 .bc-msg--b{align-self:flex-start;background:#fff;color:var(--navy);border-bottom-left-radius:6px} 5124 .bc-msg--u{align-self:flex-end;background:var(--pink-dk);color:#fff;border-bottom-right-radius:6px} 5125 .bc-msg a{color:var(--pink-dk);font-weight:700;text-decoration:underline;text-underline-offset:2px} 5126 .bc-msg--u a{color:#fff} 5127 .bc-dots{display:inline-flex;gap:4px} 5128 .bc-dots i{width:7px;height:7px;border-radius:50%;background:var(--muted);opacity:.4;animation:bcd 1s infinite} 5129 .bc-dots i:nth-child(2){animation-delay:.15s}.bc-dots i:nth-child(3){animation-delay:.3s} 5130 @keyframes bcd{50%{opacity:1;transform:translateY(-2px)}} 5131 .bc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 6px} 5132 .bc-chip{border:1.5px solid rgba(14,8,42,.14);background:#fff;color:var(--navy);border-radius:999px;padding:8px 13px;font:700 13px/1.2 'Plus Jakarta Sans',sans-serif;cursor:pointer;text-align:left} 5133 .bc-chip:hover{border-color:var(--pink);color:var(--pink-dk)} 5134 .bc-form{display:flex;gap:8px;align-items:flex-end;padding:12px;border-top:1px solid rgba(14,8,42,.08);background:#fff} 5135 .bc-in{flex:1;resize:none;max-height:110px;min-height:44px;border:1.5px solid transparent;background:var(--card);border-radius:16px;padding:11px 14px; 5136 font:600 14.5px/1.4 'Plus Jakarta Sans',sans-serif;color:var(--navy);outline:none} 5137 .bc-in:focus{background:#fff;border-color:var(--pink);box-shadow:0 0 0 3px rgba(234,57,109,.14)} 5138 .bc-send{width:44px;height:44px;flex-shrink:0;border-radius:50%;border:0;background:var(--pink-dk);color:#fff;font-size:18px;cursor:pointer} 5139 .bc-send:disabled{opacity:.45;cursor:default} 5140 .bc-varer{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:-2px 0 4px;max-width:100%} 5141 .bc-vare{display:flex;flex-direction:column;background:#fff;border-radius:16px;overflow:hidden;text-decoration:none !important;color:var(--navy) !important;border:1.5px solid transparent;transition:border-color .2s,transform .2s} 5142 .bc-vare:hover{border-color:var(--pink);transform:translateY(-1px)} 5143 .bc-vare__img{aspect-ratio:1/1;background:#fff;display:flex;align-items:center;justify-content:center;padding:8px} 5144 .bc-vare__img img{max-width:100%;max-height:100%;object-fit:contain;display:block} 5145 .bc-vare__b{padding:8px 10px 10px;display:flex;flex-direction:column;gap:3px;flex:1} 5146 .bc-vare__t{font-size:12.5px;font-weight:700;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden} 5147 .bc-vare__s{font-size:11.5px;color:var(--muted)} 5148 .bc-vare__p{font-size:15px;font-weight:800;margin-top:auto} 5149 .bc-vare__cb{font-size:11.5px;font-weight:800;color:var(--pink-dk);background:#FFE4EC;border-radius:8px;padding:4px 7px;line-height:1.3} 5150 .bc-vare__go{font-size:11.5px;font-weight:800;color:var(--navy);margin-top:2px} 5151 .bc-vare__login{font-size:11.5px;font-weight:700;color:var(--muted);margin-top:2px} 5152 .bc-vare{position:relative;cursor:pointer} 5153 .bc-vare__hjerte{position:absolute;top:6px;right:6px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(14,8,42,.15);color:var(--pink-dk);font-size:15px;line-height:1;cursor:pointer;z-index:2} 5154 .bc-vare__hjerte.gemt{background:var(--pink-dk);color:#fff} 5155 .bc-vare--uden .bc-vare__t{padding-right:30px} 5156 .bc-vare__netto{font-size:11.5px;font-weight:800;color:#1E9E5A} 5157 .bc-boble{position:fixed;right:20px;bottom:86px;z-index:9989;max-width:300px;background:#fff;color:var(--navy);border-radius:20px 20px 6px 20px;padding:14px 38px 14px 16px; 5158 box-shadow:0 18px 44px rgba(14,8,42,.22);font:600 14.5px/1.5 'Plus Jakarta Sans',sans-serif;cursor:pointer;animation:bcind .35s ease-out} 5159 .bc-boble[hidden]{display:none} 5160 .bc-boble b{display:block;font-weight:800;margin-bottom:2px} 5161 .bc-boble__x{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;border:0;background:var(--card);color:var(--muted);font-size:15px;line-height:1;cursor:pointer}
5162 .bc-boble__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px} 5163 .bc-boble__chips span{border:1.5px solid rgba(14,8,42,.14);border-radius:999px;padding:6px 11px;font-size:12.5px;font-weight:700} 5164 .bc-boble__chips span:hover{border-color:var(--pink);color:var(--pink-dk)} 5165 @keyframes bcind{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}} 5166 @media (max-width:560px){.bc-boble{right:14px;bottom:72px;max-width:calc(100vw - 28px)}} 5167 .bc-varer__note{grid-column:1/-1;font-size:11px;color:#9C93BA;margin:2px 2px 0} 5168 .bc-note{padding:0 14px 10px;background:#fff;font-size:11px;color:#9C93BA;text-align:center} 5169 @media (max-width:560px){ 5170 .bc-lbl{display:none}.bc-fab{padding:4px;right:14px;bottom:14px} 5171 .bc-panel{right:0;bottom:0;width:100%;height:100%;height:100dvh;border-radius:0} 5172 } 5173</style> 5174 5175<div id="bc-root"> 5176 <div class="bc-boble" id="bc-boble" hidden role="dialog" aria-label="Betty"></div> 5177 <button type="button" class="bc-fab" id="bc-fab" aria-label="Chat med Betty"> 5178 <span class="bc-av"><img src="https://cdn.shopify.com/s/files/1/1047/8216/8403/files/betty-avatar-rund-512.png" alt="" width="46" height="46"></span> 5179 <span class="bc-lbl">Chat med Betty</span> 5180 </button> 5181 <div class="bc-panel" id="bc-panel" role="dialog" aria-label="Chat med Betty" hidden> 5182 <div class="bc-head"> 5183 <span class="bc-av bc-av--sm"><img src="https://cdn.shopify.com/s/files/1/1047/8216/8403/files/betty-avatar-rund-512.png" alt="" width="42" height="42"></span> 5184 <div><b>Betty</b><small>Online · svarer med det samme</small></div> 5185 <button type="button" class="bc-x" id="bc-x" aria-label="Luk chatten">×</button> 5186 </div> 5187 <div class="bc-log" id="bc-log" aria-live="polite"></div> 5188 <form class="bc-form" id="bc-form"> 5189 <textarea class="bc-in" id="bc-in" rows="1" maxlength="1000" placeholder="Skriv til Bettyâ¦" aria-label="Din besked"></textarea> 5190 <button type="submit" class="bc-send" id="bc-send" aria-label="Send">➤</button> 5191 </form> 5192 <div class="bc-note">Betty er en AI og kan tage fejl. Del ikke kontonummer eller adgangskode.</div> 5193 </div> 5194</div> 5195
5196<script> 5197(function () { 5198 var URL_API = 'https://europe-west1-mincashback-data.cloudfunctions.net/bettyChat'; 5199 var NOEGLE = 'betty_chat_v1'; 5200 var HILSEN = 'Hej, jeg er Betty! Spørg mig om cashback, butikker, rabatkoder eller hvornår du får dine penge.'; 5201 var FORSLAG = ['Hjælp mig med at finde en gave', 'Hvor er mine penge?', 'Mit køb mangler', 'Har Apopro en rabatkode?']; 5202 5203 var fab = document.getElementById('bc-fab'), panel = document.getElementById('bc-panel'); 5204 var log = document.getElementById('bc-log'), form = document.getElementById('bc-form'); 5205 var inp = document.getElementById('bc-in'), send = document.getElementById('bc-send'); 5206 var travl = false, historik = []; 5207 5208 try { historik = JSON.parse(sessionStorage.getItem(NOEGLE) || '[]') || []; } catch (e) { historik = []; } 5209 function gem() { try { sessionStorage.setItem(NOEGLE, JSON.stringify(historik.slice(-20))); } catch (e) {} } 5210 5211 function esc(s) { return String(s).replace(/[&<>"']/g, function (c) { return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c]; }); } 5212 function sikkerUrl(u) { 5213 if (/^\/(?!\/)/.test(u)) return u; 5214 if (/^https:\/\/(www\.)?bettys\.io(\/|$)/.test(u)) return u; 5215 if (/^https:\/\/chromewebstore\.google\.com\//.test(u)) return u; 5216 if (u === 'mailto:hello' + String.fromCharCode(64) + 'bettys.io') return u; 5217 return null; 5218 } 5219 function formater(tekst) { 5220 var h = esc(tekst); 5221 h = h.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, function (m, t, u) { 5222 var ok = sikkerUrl(u.replace(/&/g, '&')); 5223 return ok ? '<a href="' + esc(ok) + '">' + t + '</a>' : t; 5224 }); 5225 h = h.replace(/\*\*([^*]+)\*\*/g, '<b>$1</b>'); 5226 h = h.replace(/hello@bettys\.io(?![^<]*<\/a>)/g, '<a href="mailto:[email protected]">[email protected]</a>'); 5227 h = h.replace(/^\s*[-*] /gm, '⢠'); 5228 return h.replace(/\n/g, '<br>'); 5229 } 5230 function boble(rolle, tekst) { 5231 var d = document.createElement('div'); 5232 d.className = 'bc-msg ' + (rolle === 'user' ? 'bc-msg--u' : 'bc-msg--b'); 5233 d.innerHTML = rolle === 'user' ? esc(tekst).replace(/\n/g, '<br>') : formater(tekst); 5234 log.appendChild(d); 5235 log.scrollTop = log.scrollHeight; 5236 return d; 5237 } 5238 function kr(n) { 5239 n = Number(n) || 0; 5240 return n.toLocaleString('da-DK', { minimumFractionDigits: n % 1 ? 2 : 0, maximumFractionDigits: 2 }) + ' kr'; 5241 } 5242 /* ---------- Klik videre med cashback (samme regler som søgesiden) ---------- */ 5243 function sporingsFelt(base) { 5244 var u = String(base).toLowerCase(); 5245 if (u.indexOf('partnerid=') > -1 && u.indexOf('bannerid=') > -1) return 'uid'; 5246 if (u.indexOf('awinmid=') > -1 && u.indexOf('awinaffid=') > -1) return 'clickref'; 5247 if (/[?&]si=/.test(u) && /[?&]li=/.test(u) && /[?&]wi=/.test(u)) return 'ws'; 5248 if (/[?&]c=\d/.test(u) && /[?&]m=\d/.test(u) && /[?&]a=\d/.test(u)) return 'r'; 5249 if (/[?&]p=\d/.test(u) && /[?&]a=\d/.test(u)) return 'epi'; 5250 if (/[?&]t=\d/.test(u) && /[?&]tt=/.test(u)) return 'epi'; 5251 if (u.indexOf('adtraction') > -1) return 'epi'; 5252 if (u.indexOf('tradetracker') > -1) return 'r'; 5253 if (u.indexOf('adservice') > -1) return 'ext_id'; 5254 if (u.indexOf('awin') > -1 || u.indexOf('zenaps') > -1) return 'clickref'; 5255 if (u.indexOf('partner-ads.com') > -1) return 'uid'; 5256 if (u.indexOf('tradedoubler') > -1) return 'epi'; 5257 if (u.indexOf('daisycon') > -1) return 'ws'; 5258 return 'uid'; 5259 } 5260 function medSporing(base, uid) { 5261 var navn = sporingsFelt(base); 5262 var vaerdi = encodeURIComponent(String(uid).replace(/['"#]/g, '').slice(0, 240)); 5263 var findes = new RegExp('([?&])' + navn + '=([^&]*)'); 5264 var fund = base.match(findes); 5265 if (fund) return base.replace(findes, '$1' + navn + '=' + (fund[2] ? fund[2] + '__' + vaerdi : vaerdi)); 5266 var pos = -1; 5267 ['&url=', '?url=', '&htmlurl=', '?htmlurl=', '&dl=', '?dl='].forEach(function (m) { 5268 var q = base.indexOf(m); 5269 if (q > -1 && (pos === -1 || q < pos)) pos = q; 5270 }); 5271 if (pos > -1) return base.slice(0, pos) + '&' + navn + '=' + vaerdi + base.slice(pos); 5272 return base + (base.indexOf('?') > -1 ? '&' : '?') + navn + '=' + vaerdi; 5273 } 5274 function bruger() { var a = window.firebaseAuth; return (a && a.currentUser) || null; } 5275 function aabnLogin() { 5276 var m = document.getElementById('mc3-auth-modal'); 5277 if (m) { m.style.display = 'flex'; if (typeof window.switchAuthTab === 'function') window.switchAuthTab('signup'); } 5278 else location.href = '/#login-popup'; 5279 } 5280 var alleVarer = []; 5281 function gaaTilVare(v) { 5282 var u = bruger(); 5283 if (!u) { aabnLogin(); return; } 5284 if (!v.deeplink) { location.href = v.link; return; } 5285 function aabn() { 5286 var url = medSporing(v.deeplink, u.uid); 5287 var vindue = window.open('', '_blank'); 5288 if (vindue) vindue.location.href = url; else window.location.href = url;
5289 import('https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js').then(function (mod) { 5290 return mod.addDoc(mod.collection(window.firebaseDb, 'clicks'), { 5291 userId: u.uid, type: 'chat', butikHandle: v.butikHandle || '', vareId: v.id || '', 5292 vareNavn: v.titel || '', varePris: v.pris || 0, url: url, dato: mod.serverTimestamp() 5293 }); 5294 }).catch(function (e) { console.log('Klik ikke gemt:', e); }); 5295 } 5296 if (window.mcHuskKlik) window.mcHuskKlik(v.butik, aabn); else aabn(); 5297 } 5298 async function gemOenske(v, knap) { 5299 var u = bruger(); 5300 if (!u) { aabnLogin(); return; } 5301 if (knap.classList.contains('gemt')) return; 5302 knap.classList.add('gemt'); knap.innerHTML = '♥'; 5303 try { 5304 var mod = await import('https://www.gstatic.com/firebasejs/10.8.0/firebase-firestore.js'); 5305 await mod.addDoc(mod.collection(window.firebaseDb, 'wishlists'), { 5306 storeName: v.butik || '', productTitle: v.titel || '', productUrl: v.deeplink || v.link || '', 5307 productImage: v.billede || '', domain: '', listName: 'Min ønskeliste', isPartner: true, 5308 cashbackRate: v.cashback || null, price: v.pris || null, userId: u.uid, timestamp: mod.serverTimestamp() 5309 }); 5310 knap.title = 'Gemt pÃ¥ Min ønskeliste'; 5311 } catch (e) { knap.classList.remove('gemt'); knap.innerHTML = '♡'; console.log('Ikke gemt:', e); } 5312 } 5313 log.addEventListener('keydown', function (e) { 5314 if ((e.key === 'Enter' || e.key === ' ') && e.target.classList && e.target.classList.contains('bc-vare')) { e.preventDefault(); e.target.click(); } 5315 }); 5316 log.addEventListener('click', function (e) { 5317 var h = e.target.closest && e.target.closest('.bc-vare__hjerte'); 5318 if (h) { e.preventDefault(); e.stopPropagation(); var vv = alleVarer[Number(h.dataset.gem)]; if (vv) gemOenske(vv, h); return; } 5319 var k = e.target.closest && e.target.closest('.bc-vare[data-v]'); 5320 if (!k) return; 5321 e.preventDefault(); 5322 var v = alleVarer[Number(k.dataset.v)]; 5323 if (v) gaaTilVare(v); 5324 }); 5325 5326 function visVarer(varer) { 5327 if (!varer || !varer.length) return; 5328 var g = document.createElement('div'); 5329 g.className = 'bc-varer'; 5330 g.innerHTML = varer.map(function (v) { 5331 var cb = ''; 5332 if (v.cashback && v.cashback.indexOf('kr') > -1) cb = esc(v.cashback) + ' cashback'; 5333 else if (v.cashback) cb = esc(v.cashback) + ' cashback' + (v.cashbackKr ? ' · du fÃ¥r ' + kr(v.cashbackKr) + ' tilbage' : ''); 5334 var i = alleVarer.push(v) - 1; 5335 var logget = !!bruger(); 5336 return '<div class="bc-vare' + (v.billede ? '' : ' bc-vare--uden') + '" data-v="' + i + '" role="link" tabindex="0">' + 5337 '<button type="button" class="bc-vare__hjerte" data-gem="' + i + '" aria-label="Gem pÃ¥ ønskeliste" title="Gem pÃ¥ ønskeliste">♡</button>' + 5338 (v.billede ? '<span class="bc-vare__img"><img src="' + esc(v.billede) + '" alt="" loading="lazy"></span>' : '') + 5339 '<span class="bc-vare__b"><span class="bc-vare__t">' + esc(v.titel) + '</span>' + 5340 '<span class="bc-vare__s">' + esc(v.butik) + '</span>' + 5341 '<span class="bc-vare__p">' + kr(v.pris) + '</span>' + 5342 (cb ? '<span class="bc-vare__cb">' + cb + '</span>' : '') + 5343 (v.visNetto && v.nettopris ? '<span class="bc-vare__netto">= ' + kr(v.nettopris) + ' efter cashback</span>' : '') + 5344 (logget ? '<span class="bc-vare__go">GÃ¥ til varen â</span>' : '<span class="bc-vare__login">Log ind for at fÃ¥ cashback</span>') + 5345 '</span></div>'; 5346 }).join('') + '<p class="bc-varer__note">Priser kan ændre sig â tjek prisen i butikken.</p>'; 5347 log.appendChild(g); 5348 log.scrollTop = log.scrollHeight; 5349 } 5350 function tegn() { 5351 log.innerHTML = ''; 5352 boble('assistant', HILSEN); 5353 historik.forEach(function (m) { boble(m.role, m.content); if (m.varer) visVarer(m.varer); }); 5354 if (!historik.length) visForslag(FORSLAG); 5355 } 5356 function visForslag(liste) { 5357 if (!liste || !liste.length) return; 5358 var c = document.createElement('div'); 5359 c.className = 'bc-chips'; 5360 liste.forEach(function (f) { 5361 var b = document.createElement('button'); 5362 b.type = 'button'; b.className = 'bc-chip'; b.textContent = f; 5363 b.addEventListener('click', function () { c.remove(); spoerg(f); }); 5364 c.appendChild(b); 5365 });
5366 log.appendChild(c); 5367 log.scrollTop = log.scrollHeight; 5368 } 5369 function aabn() { panel.hidden = false; fab.hidden = true; tegn(); setTimeout(function () { inp.focus(); }, 50); } 5370 function luk() { panel.hidden = true; fab.hidden = false; fab.focus(); } 5371 5372 async function spoerg(tekst) { 5373 tekst = (tekst || '').trim(); 5374 if (!tekst || travl) return; 5375 travl = true; send.disabled = true; 5376 var chips = log.querySelector('.bc-chips'); if (chips) chips.remove(); 5377 historik.push({ role: 'user', content: tekst }); gem(); 5378 boble('user', tekst); 5379 var vent = boble('assistant', ''); 5380 vent.innerHTML = '<span class="bc-dots"><i></i><i></i><i></i></span>'; 5381 var svarTekst; 5382 try { 5383 var auth = window.firebaseAuth, token = ''; 5384 try { if (auth && auth.currentUser) token = await auth.currentUser.getIdToken(); } catch (e) {} 5385 var r = await fetch(URL_API, { 5386 method: 'POST', 5387 headers: { 'Content-Type': 'application/json' }, 5388 body: JSON.stringify({ messages: historik.slice(-12).map(function (m) { return { role: m.role, content: m.content }; }), side: location.pathname, loggetInd: !!token, idToken: token }) 5389 }); 5390 var j = await r.json().catch(function () { return {}; }); 5391 if (r.ok && j.svar) svarTekst = j.svar; 5392 else if (r.status === 429) svarTekst = 'Du har skrevet rigtig meget den seneste time. Prøv igen lidt senere, eller skriv til [email protected].'; 5393 else svarTekst = 'Jeg kan ikke svare lige nu. Prøv igen om lidt, eller skriv til [email protected].'; 5394 } catch (e) { 5395 svarTekst = 'Jeg kan ikke svare lige nu. Prøv igen om lidt, eller skriv til [email protected].'; 5396 } 5397 vent.innerHTML = formater(svarTekst); 5398 var varer = (j && Array.isArray(j.varer)) ? j.varer.slice(0, 4) : []; 5399 visVarer(varer); 5400 visForslag((j && Array.isArray(j.forslag)) ? j.forslag.slice(0, 3) : []); 5401 if (!/^Jeg kan ikke svare lige nu|^Du har skrevet rigtig meget/.test(svarTekst)) { historik.push(varer.length ? { role: 'assistant', content: svarTekst, varer: varer } : { role: 'assistant', content: svarTekst }); gem(); } 5402 else { historik.pop(); gem(); } 5403 log.scrollTop = log.scrollHeight; 5404 travl = false; send.disabled = false; inp.focus(); 5405 } 5406 5407 fab.addEventListener('click', aabn); 5408 document.getElementById('bc-x').addEventListener('click', luk); 5409 document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && !panel.hidden) luk(); }); 5410 form.addEventListener('submit', function (e) { e.preventDefault(); var t = inp.value; inp.value = ''; inp.style.height = ''; spoerg(t); }); 5411 inp.addEventListener('keydown', function (e) { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); form.requestSubmit(); } }); 5412 inp.addEventListener('input', function () { inp.style.height = 'auto'; inp.style.height = Math.min(inp.scrollHeight, 110) + 'px'; }); 5413 document.addEventListener('click', function (e) { 5414 var el = e.target.closest && e.target.closest('[data-betty-chat], a[href="#chat-med-betty"]'); 5415 if (el) { e.preventDefault(); aabn(); } 5416 }); 5417 if (location.hash === '#chat-med-betty') aabn(); 5418 5419 /* ---------- Bettys lille taleboble ---------- 5420 Kommer efter 10 sek. (15 pÃ¥ mobil), højst én gang pr. besøg. 5421 Lukkes den med â, kommer den ikke igen i 7 dage. */ 5422 var BUTIK = ""; 5423 var taleboble = document.getElementById('bc-boble'); 5424 function bobleIndhold() { 5425 var p = location.pathname, logget = !!bruger(); 5426 if (BUTIK) return { t: 'Skal jeg tjekke ' + BUTIK + ' for dig?', s: 'Jeg kan finde rabatkoder, fragt og returret pÃ¥ et øjeblik.', 5427 chips: ['Vis rabatkoder', 'Fragt og retur'], q: ['Har ' + BUTIK + ' nogen rabatkoder?', 'Hvad koster fragt, og hvordan er returretten hos ' + BUTIK + '?'] }; 5428 if (/^\/pages\/(medlem|konto)/.test(p) && logget) return { t: 'Hej igen!', s: 'Vil du vide, hvor dine penge er, eller hvornÃ¥r de bliver udbetalt?', 5429 chips: ['Hvor er mine penge?', 'Mit køb mangler'], q: ['Hvor er mine penge, og hvornÃ¥r bliver de udbetalt?', 'Mit køb mangler'] }; 5430 if (/^\/pages\/soeg-varer/.test(p)) return { t: 'Kan jeg hjælpe dig med at finde det?', s: 'Fortæl mig, hvad det skal bruges til, sÃ¥ finder jeg gode bud med cashback.', 5431 chips: ['Find en gave', 'Hvor er den billigst?'], q: ['Hjælp mig med at finde en gave', 'Hvor kan jeg fÃ¥ det billigst med cashback?'] }; 5432 if (/^\/blogs\//.test(p)) return { t: 'Skal jeg finde noget til dig?', s: 'Jeg kan finde varer med cashback til det, du læser om.', 5433 chips: ['Ja tak', 'Find en gave'], q: ['Kan du finde varer med cashback, der passer til det her indlæg: ' + document.title + '?', 'Hjælp mig med at finde en gave'] }; 5434 return { t: logget ? 'Hej! Hvad skal vi finde i dag?' : 'Hej, jeg er Betty!', s: 'Jeg finder cashback, rabatkoder og gaveidéer pÃ¥ et øjeblik.', 5435 chips: ['Find en gave', 'Hvordan virker det?'], q: ['Hjælp mig med at finde en gave', 'Hvordan virker cashback hos Bettys?'] }; 5436 } 5437 function lukBoble(husk) { 5438 taleboble.hidden = true; 5439 if (husk) { try { localStorage.setItem('betty_boble_luk', String(Date.now())); } catch (e) {} } 5440 } 5441 function visBoble() { 5442 if (!panel.hidden || historik.length) return; 5443 var x = bobleIndhold(); 5444 taleboble.innerHTML = '<button type="button" class="bc-boble__x" aria-label="Luk">×</button><b>' + esc(x.t) + '</b>' + esc(x.s) + 5445 '<div class="bc-boble__chips">' + x.chips.map(function (c, i) { return '<span data-i="' + i + '">' + esc(c) + '</span>'; }).join('') + '</div>'; 5446 taleboble.hidden = false; 5447 try { sessionStorage.setItem('betty_boble_vist', '1'); } catch (e) {} 5448 taleboble.onclick = function (e) { 5449 if (e.target.closest('.bc-boble__x')) { lukBoble(true); return; } 5450 var c = e.target.closest('[data-i]'); 5451 lukBoble(false); aabn(); 5452 spoerg(c ? x.q[Number(c.dataset.i)] : x.q[0]); 5453 }; 5454 } 5455 (function () { 5456 var p = location.pathname; 5457 if (/^\/(cart|checkout|account|checkouts)/.test(p) || /\/pages\/(admin|handling|min-profil)/.test(p)) return; 5458 try { 5459 if (sessionStorage.getItem('betty_boble_vist')) return; 5460 var l = Number(localStorage.getItem('betty_boble_luk') || 0); 5461 if (l && Date.now() - l < 7 * 86400000) return; 5462 } catch (e) {} 5463 setTimeout(visBoble, window.innerWidth < 560 ? 15000 : 10000); 5464 })();
5465 fab.addEventListener('click', function () { lukBoble(false); }); 5466})(); 5467</script>
vendor: 1 bytes, line 5467
5467
5468<script> 5469/* Betty â skjul mailadresser for robotter (oktober 2026) 5470 I koden stÃ¥r adresser som hello(at)bettys.io . Robotter, der 5471 samler mailadresser, genkender dem ikke. Dette script laver dem 5472 om til rigtige, klikbare adresser for besøgende â ogsÃ¥ i chatten. */ 5473(function () { 5474 var MOENSTER = /([A-Za-z0-9._%+-]+)\(at\)([A-Za-z0-9.-]+\.[A-Za-z]{2,})/g; 5475 var SPRING_OVER = { SCRIPT: 1, STYLE: 1, TEXTAREA: 1, NOSCRIPT: 1 }; 5476 5477 function ret(rod) { 5478 if (!rod || !rod.querySelectorAll) return; 5479 rod.querySelectorAll('a[href*="(at)"]').forEach(function (a) { 5480 a.setAttribute('href', a.getAttribute('href').replace(MOENSTER, '$1@$2')); 5481 }); 5482 var w = document.createTreeWalker(rod, NodeFilter.SHOW_TEXT, null); 5483 var n, liste = []; 5484 while ((n = w.nextNode())) { 5485 if (n.nodeValue.indexOf('(at)') > -1 && !(n.parentNode && SPRING_OVER[n.parentNode.nodeName])) liste.push(n); 5486 } 5487 liste.forEach(function (t) { t.nodeValue = t.nodeValue.replace(MOENSTER, '$1@$2'); }); 5488 } 5489 5490 function start() { 5491 ret(document.body); 5492 var venter = false; 5493 new MutationObserver(function () { 5494 if (venter) return; 5495 venter = true; 5496 requestAnimationFrame(function () { venter = false; ret(document.body); }); 5497 }).observe(document.body, { childList: true, subtree: true, characterData: true }); 5498 } 5499 5500 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); 5501 else start(); 5502})(); 5503</script>
5503 5504 <style> .outlink-button {background: #a97900 !important; transition: all 0.25s ease;} .outlink-button:hover {background: #8f6b00 !important; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);} .outlink-button {animation: pulse 2.5s infinite;} @keyframes pulse {0% {box-shadow: 0 0 0 0 rgba(169, 121, 0, 0.5); } 70% {box-shadow: 0 0 0 12px rgba(169, 121, 0, 0); } 100% {box-shadow: 0 0 0 0 rgba(169, 121, 0, 0); }} .outlink-button:hover {background: linear-gradient(180deg, #d9a526, #b68405); transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);} .collection-toolbar {justify-content: flex-start !important;} option[value="price-ascending"],option[value="price-descending"] {display: none;} .cashback-badge {background: #0e4545; color: #fff; font-weight: 700; padding: 6px 12px; border-radius: 20px; font-size: 14px;} </style>
5505<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
5505 5506</body> 5507</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.