1<!DOCTYPE html><html lang="en"><head ><title>Bodø Bakeri - Bestill kaker, lunsj og bakervarer i Salten</title> 2 <meta name="keywords" content=""> 3 <meta name="description" content="Vi er Saltens lokale bakeri og med høy baker- og konditorfaglig kompetanse satser vi på å levere de beste og ferskeste baker- og konditorvarer av høyeste kvalitet." /> 4 <meta name="robots" content="index, follow" /> 5 <meta charset="utf-8" /> 6 <meta name="cie-health" content="ok" /> 7 <base href="/" /> 8 <link rel="icon" href="https://d2y9vkode0okis.cloudfront.net/bakery-favicons_images/thumb/X1oviRo68gzb.png"> 9 <link rel="canonical" href="https://www.bodobakeri.no/" /> 10 11 <meta property="og:title" content="Bodø Bakeri - Bestill kaker, lunsj og bakervarer i Salten"/> 12 <meta property="og:type" content="website"/> 13 <meta property="og:url" content="https://www.bodobakeri.no/"/> 14 <meta property="og:image" content="https://bcdn.cakeiteasy.com/1677578276282?width=1080&height=600&optimizer=image&format=webp"/> 15 <meta property="og:site_name" content="Bodø bakeri"/> 16 <meta property="og:description" content="Vi er Saltens lokale bakeri og med høy baker- og konditorfaglig kompetanse satser vi på å levere de beste og ferskeste baker- og konditorvarer av høyeste kvalitet."/> 17 18 <meta property="twitter:title" content="Bodø Bakeri - Bestill kaker, lunsj og bakervarer i Salten"> 19 <meta property="twitter:description" content="Vi er Saltens lokale bakeri og med høy baker- og konditorfaglig kompetanse satser vi på å levere de beste og ferskeste baker- og konditorvarer av høyeste kvalitet."> 20 <meta property="twitter:image" content="https://bcdn.cakeiteasy.com/1677578276282?width=1080&height=600&optimizer=image&format=webp"> 21 <meta property="twitter:card" content="summary_large_image"> 22 <style>[v-cloak], [x-cloak] { display: none !important;}</style> 23 <meta name="theme-color" content="#ffffff"> 24
24<script type="text/javascript" charset="UTF-8" src="//cdn.cookie-script.com/s/b0abaa04a8db337a24caa612e1821e89.js"></script>
24<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"></meta><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css"></link><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.0/css/all.min.css" integrity="sha512-10/jx2EXwxxWqCLX/hHth/vu2KY3jCF70dCQB8TSgNjbCVAC/8vai53GfMDrO2Emgwccf2pJqxct9ehpzG+MTw==" crossorigin="anonymous" referrerpolicy="no-referrer"></link><link rel="stylesheet" href="/assets/img/bootstrap-theme.css?v1"></link>
24<script src="/assets/js/mars.js" type="module"></script>
24<link href="/assets/css/theme.css?v1" rel="stylesheet"></link><link rel="preconnect" href="https://fonts.googleapis.com"></link><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="true"></link><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap"></link><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;700;900&display=swap"></link><link rel="stylesheet" href="https://d1ts8t91rloag6.cloudfront.net/fonts/icons/icons.css"></link>
24<script src="https://cdn.marscloud.dev/assets/img/smoothscroll.js"></script>
24<script defer="true" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
24<!-- Google Tag Manager --> 25
25<script>
vendor: 335 bytes, lines 25-29
25(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 26 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 27 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 28 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 29 })(window,document,'script','dataLayer','
29GTM-TDQJ8KB
vendor: 3 bytes, line 29
29');
29</script>
29 30 <!-- End Google Tag Manager -->
vendor: 66 bytes, lines 30-31
30 31 <script async src="https://www.googletagmanager.com/gtag/js?id=
31G-MPSGJSVYG9
vendor: 14 bytes, lines 31-32
31"></script> 32
32<script> 33 window.webMesurementId = 'G-MPSGJSVYG9'; 34 window.dataLayer = window.dataLayer || []; 35 function gtag(){dataLayer.push(arguments);} 36 gtag('js', new Date()); 37 38 gtag('consent', 'default', { 39 'analytics_storage': 'denied', 40 'ad_storage': 'denied', 41 'ad_user_data': 'denied', 42 'ad_personalization': 'denied', 43 'functionality_storage': 'denied', 44 'personalization_storage': 'denied' 45 }); 46 47 gtag('config', 'G-MPSGJSVYG9'); 48 window.addEventListener('CookieScriptAccept', function (event) { 49 console.log('CookieScriptAccept', event && event.detail); 50 const acceptedCategories = event.detail.categories; 51 52 if (typeof gtag === 'function') { 53 gtag('consent', 'update', { 54 'analytics_storage': acceptedCategories.includes('performance') ? 'granted' : 'denied', 55 'ad_storage': acceptedCategories.includes('targeting') ? 'granted' : 'denied', 56 'ad_user_data': acceptedCategories.includes('targeting') ? 'granted' : 'denied', 57 'ad_personalization': acceptedCategories.includes('targeting') ? 'granted' : 'denied', 58 'functionality_storage': acceptedCategories.includes('functionality') ? 'granted' : 'denied', 59 'personalization_storage': acceptedCategories.includes('functionality') ? 'granted' : 'denied' 60 }); 61 } 62 }); 63 64 window.addEventListener('CookieScriptReject', function () { 65 console.log('CookieScriptReject'); 66 if (typeof gtag === 'function') { 67 gtag('consent', 'update', { 68 'analytics_storage': 'denied', 69 'ad_storage': 'denied', 70 'ad_user_data': 'denied', 71 'ad_personalization': 'denied', 72 'functionality_storage': 'denied', 73 'personalization_storage': 'denied' 74 }); 75 } 76 }); 77 if (typeof window.onerror == "object") { 78 window.onerror = function (err, url, line) { 79 if (window.gtag) { 80 gtag('event', 'exception', { 81 description: line + " " + err, 82 fatal: false 83 }); 84 } 85 }; 86 } 87 </script>
87<style>Mars.settings.AnalyticsSettings has no key for provided </style><style>.w-85{ 88 width: 85% !important; 89}</style></head><body class="" data-body-content="true"><style> 90.content { 91 transition: margin 0.25s ease; 92} 93 94.text-prewrap { 95 white-space: pre-wrap; 96} 97 98.header-overlap .go-away-from-header-overlap{ 99 margin-top: 6rem; 100} 101 102.header-overlap .go-away-from-header-overlap-extra { 103 margin-top: 10rem; 104} 105 106@media(max-width: 767.9px){ 107 .header-overlap .go-away-from-header-overlap { 108 margin-top: 3rem; 109 } 110 111 .header-overlap .go-away-from-header-overlap-extra { 112 margin-top: 5rem; 113 } 114}</style>
114<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22PromoPopupBlock%22%2C%22Id%22%3A%22objebf4aebf9cab41209b1f1f82a57af3b7%22%2C%22children%22%3Anull%2C%22showTimeout%22%3A6%2C%22enabled%22%3Afalse%2C%22link%22%3A%22https%3A%2F%2Fexample.com%2Fnewsletter-signup%22%7D")); 115const MODAL_STORAGE_KEY = "CIE_WELCOME_POPUP_SHOWN_" + data.link; // LocalStorage key 116 117document.addEventListener("DOMContentLoaded", function () { 118 const modal = document.querySelector(".welcome-popup-modal"); 119 const closeButton = modal.querySelector(".close-btn"); 120 const closeLinks = modal.querySelectorAll("[data-dismiss='modal']"); 121 const ctaLink = modal.querySelector("#POPUP_CTA"); 122 123 function openModal(ignoreCache) { 124 if (!ignoreCache && localStorage.getItem(MODAL_STORAGE_KEY)) { 125 return 126 } 127 128 modal.classList.add("show"); 129 modal.classList.remove("fade"); 130 } 131 132 function closeModal() { 133 localStorage.setItem(MODAL_STORAGE_KEY, "true"); 134 modal.classList.remove("show"); 135 setTimeout(() => { 136 modal.classList.add("fade"); // Reapply fade effect for next open 137 }, 300); // Matches CSS transition time 138 } 139 140 // Close modal when clicking on the close button 141 closeButton.addEventListener("click", closeModal); 142 143 // Close modal when clicking on close links 144 if (closeLinks && closeLinks.length) { 145 closeLinks.forEach(closeLink => closeLink.addEventListener("click", function (e) { 146 e.preventDefault(); 147 closeModal(); 148 })); 149 } 150 151 ctaLink.addEventListener("click", function (e) { 152 closeModal(); 153 return true; 154 }); 155 156 // Close modal when clicking outside modal content 157 modal.addEventListener("click", function (e) { 158 if (e.target === modal) { 159 closeModal(); 160 } 161 }); 162 163 // Expose openModal function to be called externally 164 if (data.showTimeout && data.enabled) { 165 setTimeout(() => openModal(), data.showTimeout * 1000); 166 } 167 168 window.showPromoPopup = function () { 169 return openModal(true); 170 } 171 172}); 173 174window.clearWelcomeModalCache = function () { 175 localStorage.removeItem(MODAL_STORAGE_KEY); 176}</script>
176<div class="undefined"><style>/* Accordion type no border */ 177 178.form-accordion_type_no-border .border { 179 border: none !important; 180} 181 182.form-accordion_type_no-border.form-accordion__padding_type_zero .accordion-head { 183 pointer-events: none; 184} 185 186.form-accordion_type_gray-bg.form-accordion__padding_type_middle .accordion-head { 187 pointer-events: auto; 188} 189 190.form-accordion_type_no-border .accordion-head { 191 background: transparent !important; 192} 193 194.form-accordion_type_no-border .accordion-body { 195 background: transparent !important; 196 padding: 0 !important; 197} 198 199.form-accordion_type_no-border .accordion-head { 200 font-style: normal; 201 font-weight: 700; 202 font-size: 24px; 203 line-height: 29px; 204 color: #282C30; 205 padding: 0 0 25px 0 !important; 206} 207 208.form-accordion_type_no-border .fa-chevron-up, 209.form-accordion_type_no-border .fa-chevron-down { 210 display: none; 211} 212 213.form-constructor_type_bakery-style .array-entities-container { 214 position: relative; 215} 216 217.form-accordion_width-bg { 218 background: #F1F5F9; 219 margin-left: -15px; 220 margin-right: -15px; 221 padding: 25px 15px 15px; 222} 223 224 225.combined-block { 226 margin-top: -15px; 227 border-radius: 0 0 8px 8px; 228 border-top: 1px solid #ccc; 229} 230 231/*Padding type*/ 232 233.form-accordion_type_white-bg.form-accordion__padding_type_zero .accordion-head { 234 padding: 0 !important; 235} 236 237.form-accordion_type_white-bg.form-accordion__padding_type_small .accordion-head { 238 padding: 5px 25px 5px 5px !important; 239} 240 241.form-accordion_type_white-bg.form-accordion__padding_type_middle .accordion-head { 242 padding: 15px 30px 15px 15px !important; 243} 244 245.form-accordion_type_gray-bg.form-accordion__padding_type_middle .accordion-head { 246 padding: 15px 30px 15px 15px !important; 247} 248 249.form-accordion_type_white-bg.form-accordion__padding_type_large .accordion-head { 250 padding: 20px 30px 20px 20px !important; 251} 252 253/**/ 254 255.form-accordion__font-wrap .form-constructor-column { 256 border-bottom: 1px solid #D6DBE5; 257 margin-bottom: 15px; 258} 259 260.form-accordion__font-wrap .row { 261 margin-right: -20px; 262 margin-left: -20px; 263} 264 265.form-accordion__font-wrap .form-constructor-column:last-child { 266 border-bottom: none; 267 margin-bottom: 0; 268} 269 270/* Xmodal header */ 271 272#xmodal_header_1.tool-bar-modal.show { 273 box-shadow: 0 1px 0 0 #E1E1E1; 274 padding: 10px 15px; 275} 276 277#xmodal_header_1.tool-bar-modal .xmodal-header-text { 278 display: flex; 279 align-items: center; 280 font-style: normal; 281 letter-spacing: normal; 282 font-weight: 700; 283 font-size: 16px; 284 line-height: 19px; 285 color: #333333; 286} 287 288#xmodal_close_1 .btn-primary { 289 width: 138px; 290 height: 40px; 291 background: #5066DA !important; 292 border-radius: 4px; 293 font-style: normal; 294 font-weight: 400; 295 font-size: 14px; 296 line-height: 17px; 297 display: flex; 298 align-items: center; 299 justify-content: center; 300 letter-spacing: normal; 301} 302 303#xmodal_close_1 .btn-primary:hover, 304#xmodal_close_1 .btn-primary:focus { 305 background: #485CC7 !important; 306} 307 308/* Modal body */ 309 310.form-constructor_type_bakery-style { 311 padding: 26px 15px 0; 312 letter-spacing: normal; 313 background: #ffffff; 314} 315 316.form-constructor_type_bakery-style .array-entity-card { 317 margin-bottom: 0px !important; 318} 319 320/* String */ 321/* Textarea */ 322 323.form-constructor_type_bakery-style .form-input-label { 324 font-style: normal; 325 font-weight: 700; 326 font-size: 14px; 327 line-height: 1; 328 margin-bottom: 10px; 329 color: #282C30; 330} 331 332.form-constructor_type_bakery-style .form-control, 333.form-constructor_type_bakery-style .form-control::placeholder, 334.form-constructor_type_bakery-style .form-control::-webkit-input-placeholder, 335.form-constructor_type_bakery-style .form-control::-moz-placeholder, 336.form-constructor_type_bakery-style .form-control:-ms-input-placeholder, 337.form-constructor_type_bakery-style .form-control:-moz-placeholder { 338 font-family: 'Roboto'; 339 font-style: normal; 340 font-weight: 400; 341 font-size: 15px; 342 line-height: 18px; 343 color: #707981; 344} 345 346.form-constructor_type_bakery-style .form-control { 347 font-family: 'Roboto'; 348 font-style: normal; 349 font-weight: 400; 350 font-size: 15px; 351 line-height: 18px; 352 color: #282C30; 353} 354 355/* .form-constructor_type_bakery-style .quill-editor-component { 356 border-radius: 8px; 357} */ 358 359.form-constructor_type_bakery-style .form-control:hover, 360.form-constructor_type_bakery-style .quill-editor-component:hover { 361 border-color: #ACB2C1 !important; 362 outline: 0; 363 box-shadow: none; 364} 365 366.form-constructor_type_bakery-style .form-control:focus, 367.form-constructor_type_bakery-style .quill-editor-component:focus { 368 border-color: #5066DA !important; 369 outline: 0; 370 box-shadow: none; 371} 372 373/**/ 374 375.form-constructor_type_bakery-style .form-constructor-column__controls-block { 376 position: absolute; 377 top: 14px; 378 z-index: 1; 379 max-width: 87%; 380 padding-right: 0px; 381} 382 383.form-constructor_type_bakery-style .form-constructor-column__controls-block .text-danger { 384 color: #DF4444; 385} 386 387.form-constructor_type_bakery-style .form-constructor-column__controls-block .text-primary { 388 color: #282C30 !important; 389} 390 391.form-constructor_type_bakery-style .form-constructor-column__controls-block .fa-tras
391h-alt, 392.form-constructor_type_bakery-style .form-constructor-column__controls-block .fa-arrow-down, 393.form-constructor_type_bakery-style .form-constructor-column__controls-block .fa-arrow-up { 394 font-size: 16px !important; 395} 396 397.form-constructor_type_bakery-style .form-constructor-column__controls-block .move-up-btn { 398 margin-right: 8px !important; 399} 400 401.form-constructor_type_bakery-style .form-constructor-column__controls-block .move-down-btn { 402 margin-right: 15px !important; 403} 404 405/* Accordion type white-bg */ 406 407.form-constructor_type_bakery-style .form-accordion_type_white-bg .fa-chevron-up, 408.form-constructor_type_bakery-style .form-accordion_type_white-bg .fa-chevron-down { 409 display: block; 410} 411 412.form-constructor_type_bakery-style .form-accordion_type_white-bg .accordion-head { 413 pointer-events: initial; 414} 415 416.form-constructor_type_bakery-style .form-accordion_type_white-bg .form-input-label { 417 font-style: normal; 418 font-weight: 700; 419 font-size: 16px; 420 line-height: 1; 421 margin-bottom: 16px; 422} 423 424.form-accordion_type_white-bg .border { 425 border: 1px solid #D6DBE5 !important; 426} 427 428.form-accordion_type_white-bg .rounded { 429 border-radius: 8px!important; 430} 431 432.form-accordion_type_white-bg .rounded-bottom-0 { 433 border-radius: 8px 8px 0px 0px!important; 434} 435 436.form-accordion_type_white-bg .accordion-head { 437 background: #FFFFFF !important; 438 border: 1px solid #D6DBE5 !important; 439 border-radius: 8px; 440} 441 442.form-accordion_type_white-bg .accordion-head .accordion-head__title { 443 display: flex; 444 align-items: center; 445 justify-content: center; 446 font-weight: 700; 447 font-size: 18px; 448 line-height: 22px; 449 color: #282C30; 450} 451 452.form-accordion_type_white-bg .accordion-head .accordion-head__subtitle { 453 font-style: normal; 454 font-weight: 400; 455 font-size: 12px; 456 line-height: 130%; 457 color: #707981; 458 margin-top: 5px; 459} 460 461.form-accordion_type_white-bg .accordion-body { 462 background: #FFFFFF !important; 463 border-radius: 0px 0px 8px 8px !important; 464 padding: 20px 20px 0px 20px !important; 465 border-top-color: transparent !important; 466} 467 468.form-accordion_type_white-bg .fa-chevron-down, 469.form-accordion_type_white-bg .fa-chevron-up { 470 color: #707981!important; 471 font-size: 13px; 472 font-weight: 700; 473} 474 475.form-accordion_full-width-button { 476 font-style: normal; 477 font-weight: 700; 478 font-size: 16px; 479 line-height: 19px; 480 text-align: center; 481 color: #282C30; 482 border: none; 483 background: none; 484 display: flex; 485 align-items: center; 486 max-width: 170px; 487} 488 489.form-accordion_full-width-button span { 490 font-size: 24px; 491 margin-right: 5px; 492 width: 38px; 493 height: 38px; 494 display: flex; 495 align-items: center; 496 justify-content: center; 497 transition: all 0.5 ease; 498} 499 500.form-accordion_full-width-button:hover span { 501 border-radius: 4px; 502 color: #5066DA; 503 background: #EEF3F6; 504 font-size: 26px; 505} 506 507.form-accordion_full-width-button:focus span { 508 font-size: 24px; 509} 510 511.form-accordion_full-width-button:focus { 512 color: #5066DA; 513} 514 515.form-accordion_type_white-bg { 516 margin-bottom: 10px; 517} 518 519/* Accordion type collapse */ 520 521.form-accordion_type_collapse .accordion-body { 522 border: none !important; 523 padding: 0 !important; 524} 525 526/* Accordion type gray-bg */ 527 528.form-accordion_type_gray-bg { 529 margin-bottom: 20px; 530} 531 532.form-accordion_type_gray-bg .border { 533 border: 1px solid #D6DBE5 !important; 534} 535 536.form-accordion_type_gray-bg .rounded { 537 border-radius: 8px!important; 538} 539 540.form-accordion_type_gray-bg .rounded-bottom-0 { 541 border-radius: 8px 8px 0px 0px!important; 542} 543 544.form-accordion_type_gray-bg .accordion-head { 545 background: #FFFFFF !important; 546 border: 1px solid #D6DBE5 !important; 547 border-radius: 8px; 548 font-style: normal; 549 font-weight: 700; 550 font-size: 16px; 551 line-height: 19px; 552 color: #282C30 !important; 553 padding: 15px !important; 554} 555 556/*.form-constructor_type_bakery-style .accordion-head:hover { 557 background: #F1F5F9 !important; 558}*/ 559 560.form-constructor_type_bakery-style .accordion-head:hover .fa-chevron-down, 561.form-constructor_type_bakery-style .accordion-head:hover .fa-chevron-up { 562 color: #282C30 !important; 563} 564 565.form-constructor_type_bakery-style .form-accordion_type_gray-bg .form-input-label { 566 font-style: normal; 567 font-size: 14px; 568 line-height: 1; 569 color: #282C30; 570 font-weight: 700; 571 margin-bottom: 9px; 572} 573 574.form-accordion_type_gray-bg .accordion-head span { 575 display: flex; 576 align-items: center; 577 justify-content: center; 578} 579 580.form-accordion_type_gray-bg .accordion-body { 581 background: #FFF !important; 582 border-radius: 0px 0px 8px 8px !important; 583 border: 1px solid #D6DBE5 !important; 584 border-top-color: transparent !important; 585 padding: 15px 15px 0px !important; 586} 587 588.form-accordion_type_gray-bg input { 589 border-radius: 6px !important; 590 border: 1px solid #D6DBE6 !important; 591 height: 38px; 592} 593 594.form-accordion_type_gray-bg .fa-chevron-down, 595.form-accordion_type_gray-bg .fa-chevron-up { 596 color: #707981!important; 597 font-size: 13px; 598 font-weight: 700; 599} 600 601.form-constructor_type_bakery-style .remove-btn-container .bg-danger { 602 background-color: #DF4444 !important; 603} 604 605.form-constructor_type_bakery-style .remove-btn-container .rounded { 606 border-radius: 4px !important; 607} 608 609/* Description */ 610 611.form-constructor_type_bakery-style .form-field-description, 612.form-constructor_type_bakery-style .form-textform-field-description { 613 font-style: normal; 614 font-weight: 400; 615 font-size: 12px; 616 line-height: 17px; 617 color: #707981 !important; 618 margin: 0; 619 padding: 15px 0px 15px 0px; 620 display: block; 621 position: relative; 622} 623
624/* Image */ 625 626.form-constructor_type_bakery-style .img-placeholder { 627 border: 1px dashed #CEDAE0 !important; 628 background: transparent !important; 629 text-align: center; 630} 631 632.img-container { 633 border: 1px dashed #CEDAE0 !important; 634} 635 636.form-constructor_type_bakery-style .form-image-input-group .v-popover { 637 left: calc(50% - 110px / 2) !important; 638 bottom: 24px !important; 639 margin: 0 !important; 640} 641 642.form-constructor_type_bakery-style .form-image-input-group .btn .fa-edit { 643 display: none; 644} 645 646.accordion-multi { 647 display: flex; 648 align-items: center; 649} 650 651.accordion-multi__img { 652 width: 72px; 653 height: 52px; 654 object-fit: cover; 655 border-radius: 2px; 656 background-color: #B6C3CC; 657 margin-right: 10px; 658} 659 660.accordion-multi__title-wrap { 661 display: flex; 662 flex-direction: column; 663} 664 665.accordion-multi__subtitle { 666 font-style: normal; 667 font-weight: 700; 668 font-size: 12px; 669 line-height: 14px; 670 color: #707981; 671} 672 673.accordion-multi__title { 674 font-style: normal; 675 font-weight: 700; 676 font-size: 16px; 677 line-height: 22px; 678 color: #282C30; 679 max-width: 130px; 680 text-overflow: ellipsis; 681 white-space: nowrap; 682 overflow: hidden; 683} 684 685/* Error description */ 686 687.form-constructor_type_bakery-style .form-invalid-feedback { 688 background: #FFF3E8; 689 border-radius: 4px; 690 position: relative; 691 font-weight: 700; 692 font-size: 14px; 693 line-height: 17px; 694 color: #282C30; 695 padding: 15px 18px 15px 40px; 696} 697 698.form-constructor_type_bakery-style .form-invalid-feedback:before { 699 content: ''; 700 display: block; 701 width: 3px; 702 height: 100%; 703 background: #E87A14; 704 position: absolute; 705 top: 0; 706 left: 0; 707} 708 709.form-constructor_type_bakery-style .form-invalid-feedback:after { 710 content: ''; 711 display: block; 712 width: 18px; 713 height: 18px; 714 background: url('https://bcdn.cakeiteasy.com/cie-description-icon.png?optimizer=image&width=1200'); 715 background-repeat: no-repeat; 716 background-position: left center; 717 background-size: contain; 718 position: absolute; 719 top: calc(50% - 9px); 720 left: 10px; 721} 722 723/* String with options */ 724 725.form-constructor_type_bakery-style .vs__dropdown-toggle { 726 border-radius: 6px; 727 border: 1px solid #D6DBE5; 728 padding: 4px 0 5px; 729 color: #282C30; 730} 731 732.form-constructor_type_bakery-style .vs__actions svg, 733.form-constructor_type_bakery-style .vs__actions .vs__open-indicator { 734 width: 12px; 735} 736 737/* Range */ 738 739.form-constructor_type_bakery-style .range-container__wrap { 740 grid-template-rows: 1fr 1fr; 741 grid-template-columns: 1fr 35px; 742 row-gap: 0px; 743 column-gap: 15px; 744 margin: 15px 0; 745 padding: 0 15px 0 0; 746} 747 748.form-constructor_type_bakery-style .range-container__title { 749 font-style: normal; 750 font-weight: 700; 751 font-size: 16px; 752 line-height: 1; 753 margin-bottom: 8px; 754} 755 756.form-constructor_type_bakery-style .range-container__wrap .range-container__input { 757 grid-column-start: 1; 758 grid-column-end: 2; 759} 760 761.range-container__result { 762 min-width: 35px; 763} 764 765/* Checkbox */ 766 767.form-constructor_type_bakery-style .checkbox-input-label__subtitle { 768 font-style: normal; 769 font-weight: 400; 770 font-size: 12px; 771 line-height: 130%; 772 color: #707981 !important; 773 margin-top: 5px; 774 max-width: 290px; 775 display: block; 776 cursor: pointer; 777} 778 779.form-constructor_type_bakery-style .checkbox-input-label__title { 780 font-style: normal; 781 font-weight: 600; 782 font-size: 18px; 783 line-height: 22px; 784 color: #282C30; 785 cursor: pointer; 786} 787 788.form-constructor_type_bakery-style .custom-checkbox { 789 background: #FFFFFF; 790 border: 1px solid #D6DBE5; 791 border-radius: 8px; 792 padding: 15px 30px 15px 15px; 793 display: flex; 794 flex-direction: row-reverse; 795 justify-content: space-between; 796 align-items: center; 797} 798 799.form-constructor_type_bakery-style .custom-checkbox .checkbox-input-label { 800 margin-bottom: 0; 801} 802 803.form-constructor_type_bakery-style .custom-control-label { 804 display: flex; 805 flex-direction: column; 806} 807 808.form-constructor_type_bakery-style .form-check-input { 809 background: #D6DBE5; 810 border-radius: 10.5px; 811 transform: matrix(-1, 0, 0, 1, 0, 0); 812 width: 40px; 813 min-width: 40px; 814 height: 22px; 815 position: relative; 816 cursor: pointer; 817 transition: easy 0.3s ease; 818} 819 820.form-constructor_type_bakery-style .custom-checkbox:hover .custom-control-input, 821.form-constructor_type_bakery-style .custom-control-input:hover { 822 background: #707981; 823} 824 825.form-constructor_type_bakery-style .form-check-input:before { 826 content: ''; 827 background: #FFFFFF; 828 transform: matrix(-1, 0, 0, 1, 0, 0); 829 border-radius: 50%; 830 width: 18px; 831 height: 18px; 832 position: absolute; 833 left: calc(40px - 22px); 834 top: 1px; 835 transition: left 0.2s ease; 836} 837 838.form-constructor_type_bakery-style .form-check-input:checked[type="checkbox"] { 839 background-image: none; 840 background: #5066DA; 841 border: 1px solid #5066DA; 842} 843 844.form-constructor_type_bakery-style .form-check-input:checked[type="checkbox"]::before { 845 left: 1px 846} 847 848/* color picker */ 849 850.color-picker__container_type_border { 851 background: #FFFFFF; 852 border: 1px solid #D6DBE5; 853 border-radius: 0 0 8px 8px; 854 padding: 20px; 855 margin-top: -15px; 856 margin-bottom: 10px; 857} 858 859.form-constructor_type_bakery-style .vs--searchable .vs__dropdown-toggle { 860 cursor: pointer; 861} 862 863.form-constructor_type_bakery-style .vs__search { 864 cursor: pointer !important; 865} 866 867.admin-font-settings-component .font-editor__header { 868 background: #fff; 869 padding: 15px 15px 0; 870 width: 400px; 871} 872 873.admin-font-settings-component .font-editor__content { 874 background: #fff; 875 padding: 0 15px 15px; 876 width: 400px; 877} 878 879.admin-font-settings-component .font-editor__header .dropdown-input-label { 880 font-weight: bold; 881 font-size: 17px; 882} 883 884.admin-font-settings-component .font-editor__content .font-editor__row_type_up-title .range-container__title { 885 margin-bottom: 5px; 886}</style><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;700;900&family=undefined:wght@300;400;500;700;900&family=Vollkorn:wght@300;400;500;700;900"></link><style> 887@font-face { 888 font-family: Recoleta; 889 src: url(https://d1ts8t91rloag6.cloudfront.net/fonts/recoleta/Recoleta-Medium.eot?v=1); 890 src: url(https://d1ts8t91rloag6.cloudfront.net/fonts/recoleta/Recoleta-Medium.eot?#iefix) format("embedded-opentype"), 891 url(https://d1ts8t91rloag6.cloudfront.net/fonts/recoleta/Recoleta-Medium.woff?v=1) format("woff"), 892 url(https://d1ts8t91rloag6.cloudfront.net/fonts/recoleta/Recoleta-Medium.ttf?v=1) format("truetype"), 893 url(https://d1ts8t91rloag6.cloudfront.net/fonts/recoleta/Recoleta-Medium.svg#Glyphter) format("svg"); 894 font-weight: 400; 895 font-style: normal 896} 897 898:root{ 899 --spacer: 1rem; 900 --font-family: Lato, sans-serif; 901 --secondary-font-family: Lato, sans-serif; 902 --tertiary-font-family: Vollkorn, serif; 903 --img-border-radius: border-radius: 0; 904 --font-title: 2.8125rem; 905 --font-subtitle: 2rem; 906 --font-default: 1rem; 907 --base-font-tablet-size: 16px; 908 --base-font-mobile-size: 16px; 909 --font-small: 0.75rem; 910 --font-extrasmall: 0.6875rem; 911 --font-weight: 400; 912 --font-letterspacing: 0.45px; 913 --footer-letter-spacing: 0; 914 --font-color: #212529; 915 --font-lineheight: 1.5;
916 --heading-font-weight: 700; 917 --heading-line-height: 1.2; 918 --heading-margin-bottom: .5rem; 919 --heading-h1-font-size: 3.4375rem; 920 --heading-h2-font-size: 2.185rem; 921 --heading-h3-font-size: 1.875rem; 922 --heading-h4-font-size: 1.3125rem; 923 --heading-h5-font-size: 1.25rem; 924 --heading-h6-font-size: 1rem; 925 --button-border-radius: 14px; 926 --button-padding-horizontal: .4; 927 --button-padding-vertical: .2375rem; 928 --button-line-height: 1.75; 929 --text-line-height: 1.75; 930 --color-secondary: #00416b; 931 --color-text-secondary: white; 932 --color-primary: #ffa301; 933 --color-text-primary: white; 934 --color-secondary-hover: #1B6697; 935 --color-primary-hover: #E4B768; 936 --page-bg-color: #ffffff; 937 --page-color: #333333; 938 --common-blocks-padding: 0px; 939 --primary-font-family: Lato, sans-serif; 940 --outlet-arrow-color: #00416b; 941} 942 943/* main */ 944 945html { 946 font-size: 16px; 947} 948 949@media (max-width: 768px) { 950 html { 951 font-size: var(--base-font-tablet-size); 952 } 953} 954 955@media (max-width: 425px) { 956 html { 957 font-size: var(--base-font-mobile-size); 958 } 959} 960 961body { 962 color: var(--page-color); 963 background-color: var(--page-bg-color); 964 font-weight: var(--font-weight); 965 line-height: 1.75rem; 966 font-family: 'Lato', sans-serif; 967 height: auto!important; 968 -moz-osx-font-smoothing: grayscale; 969 -webkit-font-smoothing: antialiased; 970 -webkit-text-size-adjust: 100%; 971 -ms-text-size-adjust: 100%; 972 -moz-text-size-adjust: 100%; 973 box-sizing: border-box; 974} 975 976picture { 977 width: 100%; 978 height: 100%; 979} 980 981ul { 982 list-style: none; 983 padding: 0; 984} 985 986iframe { 987 border: none; 988 width: 100%; 989} 990 991a { 992 color: inherit; 993 text-decoration: none !important; 994} 995 996a:hover { 997 color: inherit; 998 text-decoration: none; 999} 1000 1001/* button */ 1002 1003.btn { 1004 align-items: center; 1005 justify-content: space-around; 1006 cursor: pointer; 1007 font-size: 1.125rem; 1008} 1009 1010.btn:disabled { 1011 pointer-events: none; 1012 opacity: .65; 1013 box-shadow: none; 1014 background-color: black; 1015} 1016 1017.btn-primary { 1018 border: 1px solid transparent; 1019 background-color: var(--color-primary); 1020 color: var(--color-text-primary); 1021} 1022 1023.btn-primary:hover, 1024.btn-primary:active { 1025 border: 1px solid transparent !important; 1026 background-color: var(--color-primary-hover) !important; 1027 transition: all ease .3s; 1028} 1029 1030.btn-primary:focus { 1031 background-color: var(--color-primary-hover) !important; 1032} 1033 1034.btn .btn-secondary { 1035 border: 1px solid transparent; 1036 background-color: var(--color-secondary); 1037 color: var(--color-text-secondary); 1038} 1039 1040.btn.btn-secondary:hover, 1041.btn.btn-secondary:active { 1042 border: 1px solid transparent !important; 1043 background-color: var(--color-secondary-hover) !important; 1044 transition: all ease .3s; 1045} 1046 1047.btn.btn-secondary:focus { 1048 background-color: var(--color-secondary-hover) !important; 1049} 1050 1051.btn-outline-secondary:hover { 1052 color: white!important; 1053 background-color: var(--color-secondary)!important; 1054 transition: .3s; 1055 border-radius: 5px; 1056} 1057 1058.btn-outline-primary { 1059 color: var(--color-primary)!important; 1060 border: 2px solid var(--color-primary)!important; 1061 border-radius: 5px; 1062} 1063 1064.btn-outline-primary:hover { 1065 color: white!important; 1066 background-color: var(--color-primary)!important; 1067 transition: .3s; 1068} 1069 1070 1071[class^='btn-outline-'] { 1072 display: block; 1073} 1074 1075[class^='btn-outline-']:hover, 1076[class^='btn-outline-']:active, 1077[class^='btn-outline-'].active, 1078[class^='btn-outline-'].dropdown-toggle.show, 1079[class*=' btn-outline-']:hover, 1080[class*=' btn-outline-']:active, 1081[class*=' btn-outline-'].active, 1082[class*=' btn-outline-'].dropdown-toggle.show { 1083 color: #fff; 1084} 1085 1086.arrow-color { 1087 color: var(--outlet-arrow-color); 1088} 1089 1090/* dropdown */ 1091 1092.dropdown:hover > .dropdown-menu { 1093 display: block!important; 1094 -webkit-animation: dropdown-show 0.25s cubic-bezier(0.68, -0.55, 0.265, 1.55); 1095 animation: dropdown-show 0.25s cubic-bezier(0.68, -0.55, 0.265, 1.55); 1096 top: 100% !important; 1097} 1098 1099.dropdown-menu__custom-style { 1100 border-radius: 0; 1101 border: 1px solid rgba(0,0,0,.15); 1102 box-shadow: none; 1103 color: #212529; 1104 min-width: 10rem; 1105 padding: 0; 1106 margin: 0.125rem 0 0 !important; 1107 inset: inherit !important; 1108 right: 2px !important; 1109 top: 0 !important; 1110} 1111 1112.dropdown-item__custom-style { 1113 font-size: .875rem!important; 1114 font-weight: 400; 1115 line-height: 1.5; 1116 padding: 0.5rem 1rem!important; 1117} 1118 1119.dropdown-item__custom-style:hover, 1120.dropdown-item__custom-style:focus, 1121.dropdown-item__custom-style:active { 1122 background-color: #ebebeb; 1123} 1124 1125@media (max-width: 768px) { 1126 .dropdown-menu__custom-style { 1127 position: static !important; 1128 width: 100%; 1129 border: none; 1130 transform: none !important; 1131 } 1132 .dropdown-item__custom-style { 1133 font-size: 1.5rem!important; 1134 text-align: center; 1135 } 1136} 1137 1138.dropdown-toggle::after { 1139 display: none; 1140} 1141 1142/* font */ 1143 1144.font-primary { 1145 font-family: var(--primary-font-family); 1146} 1147 1148.font-secondary { 1149 font-family: var(--secondary-font-family); 1150} 1151 1152.font-tertiary { 1153 font-family: var(--tertiary-font-family); 1154} 1155 1156.footer__special-letter-spacing { 1157 letter-spacing: var(--footer-letter-spacing); 1158} 1159 1160h1, .h1 { 1161 text-rendering: optimizeLegibility; 1162} 1163 1164h2, .h2 { 1165 text-rendering: optimizeLegibility; 1166} 1167 1168.h1 { 1169 font-size: 3rem; 1170 line-height: 3.5rem; 1171} 1172 1173@media (min-width: 768px) { 1174 .h1 { 1175 font-size: 4.6875rem; 1176 line-height: 5.625rem; 1177 } 1178} 1179 1180.h2 { 1181 font-size: 2.4rem; 1182 line-height: 2.8rem; 1183} 1184 1185@media (min-width: 768px) { 1186 .h2 { 1187 font-size: 3.75rem; 1188 line-height: 4.5rem; 1189 } 1190} 1191 1192.h3 { 1193 font-size: 1.68rem; 1194 line-height: 1.96rem; 1195} 1196 1197@media (min-width: 768px) { 1198 .h3 { 1199 font-size: 2.625rem; 1200 line-height: 3.15rem; 1201 } 1202} 1203 1204.h4 { 1205 font-size: 1.44rem; 1206 line-height: 1.68rem; 1207} 1208 1209@media (min-width: 768px) { 1210 .h4 { 1211 font-size: 2.25rem; 1212 line-height: 2.7rem; 1213 } 1214} 1215 1216.h5 { 1217 font-size: 1.2rem; 1218 line-height: 1.4rem; 1219} 1220 1221@media (min-width: 768px) { 1222 .h5 { 1223 font-size: 1.875rem; 1224 line-height: 2.25rem; 1225 } 1226} 1227 1228.title-lg { 1229 font-size: 2rem!important; 1230} 1231 1232.title-md{ 1233 font-size: 1.5rem!important; 1234} 1235 1236.title-sm{ 1237 font-size: 1.25rem!important; 1238} 1239 1240.font-sm { 1241 font-size: 0.875rem; 1242} 1243 1244.font-md { 1245 font-size: 1rem; 1246} 1247 1248.font-lg { 1249 font-size: 1.125rem; 1250} 1251 1252.fs-6{ 1253 font-size: 0.875rem!important; 1254} 1255 1256.fs-5{ 1257 font-size: 1.125rem!important; 1258} 1259 1260.fs-3{ 1261 font-size: 1.56251rem!important; 1262} 1263 1264.fs-4{ 1265 font-size: 1.5rem!important; 1266} 1267 1268.lh-1{ 1269 line-height: 1.1 !important; 1270} 1271 1272.text-light { 1273 font-weight: 300; 1274} 1275 1276.text-normal { 1277 font-weight: 400; 1278} 1279 1280.text-medium{ 1281 font-weight: 500; 1282} 1283 1284.text-semibold{ 1285 font-weight: 600; 1286} 1287 1288.text-bold { 1289 font-weight: 700; 1290} 1291 1292.text-black{ 1293 font-weight: 900; 1294} 1295 1296.text-left { 1297 text-align: left; 1298} 1299 1300.text-center { 1301 text-align: center; 1302} 1303 1304.text-right { 1305 text-align: right; 1306} 1307 1308 1309/* special */ 1310 1311.common-padding-bottom-blocks {
1312 padding-bottom: var(--common-blocks-padding); 1313} 1314 1315.arrow-color { 1316 color: var(--outlet-arrow-color); 1317} 1318 1319.common-padding-blocks { 1320 padding-top: var(--common-blocks-padding); 1321 padding-bottom: var(--common-blocks-padding); 1322} 1323 1324.common-padding-bottom-blocks { 1325 padding-bottom: var(--common-blocks-padding); 1326} 1327 1328.form__description-link { 1329 color: blue; 1330} 1331 1332.form__description-link:hover { 1333 color: blue; 1334 text-decoration: underline !important; 1335} 1336 1337.text-muted { 1338 color: black !important; 1339} 1340 1341.text-shadow { 1342 text-shadow:0 2px 6px rgba(0, 0, 0, 0.77)!important 1343}; 1344 1345.opacity-4{ 1346 opacity: 0.8; 1347} 1348 1349.opacity-3{ 1350 opacity: 0.6; 1351} 1352 1353.cursor-pointer{ 1354 cursor: pointer; 1355} 1356 1357.invoice{ 1358 background-color: #e0f1f6; 1359} 1360 1361.hr{ 1362 color:#ebebeb 1363} 1364 1365.nav.nav-tabs .active{ 1366 border-bottom: 3px solid #f3a840!important; 1367 color: #f3a840!important; 1368} 1369 1370.fd-content{ 1371 max-width: 800px; 1372} 1373.w-85{ 1374 width: 85%!important; 1375} 1376 1377@media(max-width: 576px){ 1378 .px-xs-0{ 1379 padding-left: 0!important; 1380 padding-right: 0!important; 1381 } 1382 1383 .py-xs-0{ 1384 padding-top: 0!important; 1385 padding-bottom: 0!important; 1386 } 1387 1388} 1389 1390.input-group-text { 1391 border-radius: 0; 1392 max-width: 52px; 1393} 1394 1395.input-group-prepend-custom:after { 1396 background: transparent !important; 1397} 1398 1399.fa-lock:before { 1400 content: "�023"; 1401} 1402 1403/* img */ 1404 1405.img-item{ 1406 top: 0; 1407 left: 0; 1408 width: 100%; 1409 height: 100%; 1410 border-radius: 4px; 1411 object-fit: contain; 1412} 1413.img-wrap{ 1414 height: 0; 1415 overflow: hidden; 1416 padding-top: 65%; 1417} 1418 1419.img-link{ 1420 width: 100%; 1421 height: 100%; 1422 z-index: 5; 1423} 1424 1425/* color picker */ 1426.clr-picker { 1427 display: none; 1428} 1429 1430.clr-picker.clr-open { 1431 display: flex; 1432} 1433 1434/*Form capitalize styles*/ 1435.accordion-head__title, 1436.form-input-label, 1437.text-input-label, 1438.checkbox-input-label__title, 1439.accordion-head__title .accordion-multi__subtitle, 1440.accordion-head__title .accordion-multi__title, 1441.form-accordion-field-description, 1442.range-container__title, 1443.checkbox-input-label__subtitle, 1444.form-field-description, 1445.demo-blocks-list__label { 1446 text-transform:lowercase!important; 1447 display: inline-block!important; 1448} 1449 1450.accordion-head__title:first-letter, 1451.form-input-label:first-letter, 1452.text-input-label:first-letter, 1453.checkbox-input-label__title:first-letter, 1454.accordion-multi__subtitle:first-letter, 1455.accordion-multi__title:first-letter, 1456.form-accordion-field-description:first-letter, 1457.range-container__title:first-letter, 1458.checkbox-input-label__subtitle:first-letter, 1459.form-field-description:first-letter, 1460.demo-blocks-list__label:first-letter { 1461 text-transform:uppercase!important; 1462} 1463 1464/**/ 1465 1466/**/ 1467 1468/**/ 1469</style>
1469<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22CommonStyles%22%2C%22Id%22%3A%22obj89b2ed113cf8407c8218a7245a28def9%22%2C%22baseTabletSize%22%3A%2216px%22%2C%22baseMobileSize%22%3A%2216px%22%2C%22primaryFontFamily%22%3A%22Lato%2C%20sans-serif%22%2C%22secondaryFontFamily%22%3A%22Lato%2C%20sans-serif%22%2C%22specialLetterSpacing%22%3A%220%22%2C%22tertiaryFontFamily%22%3A%22Vollkorn%2C%20serif%22%2C%22borderRadius%22%3A%22border-radius%3A%200%22%2C%22primaryColor%22%3A%22%23ffa301%22%2C%22hoverForPrimary%22%3A%22%23E4B768%22%2C%22primaryTextColor%22%3A%22white%22%2C%22secondaryColor%22%3A%22%2300416b%22%2C%22hoverForSecondary%22%3A%22%231B6697%22%2C%22secondaryTextColor%22%3A%22white%22%2C%22pageBackground%22%3A%22%23ffffff%22%2C%22pageColor%22%3A%22%23333333%22%2C%22children%22%3Anull%7D")); 1470</script>
1470<div id="ElegantHeader"><div id="ElegantHeaderMainMenu" class="container-fluid font-secondary text-normal px-0"><div class="header-wrapper"><div id="TopHeader" class="container-fluid"><div class="row justify-content-between top-menu-wrapper px-lg-4 pt-lg-4 pb-lg-3"><div class="col-md-4 d-lg-block mt-lg-2 top-menu"><div class="d-flex"><div onclick="scrollToElement('CommonFooter')" class="top-menu-contact mr-4 cursor-pointer rotating"><i class="fas fa-phone-alt mr-2"></i><span >Kontakt oss</span></div><div onclick="scrollToElement('CheckDelivery')" class="top-menu-contact cursor-pointer jumping"><i class="fas fa-map-marker-alt mr-2"></i><span >Våre butikker</span></div></div></div><div class="col col-sm-7 col-md-4 mt-lg-n3 logo-container"><div class="text-lg-center"><picture ><source media="(max-width: 992px)" srcset="https://bcdn.cakeiteasy.com/1677834019634?width=1400&height=600&optimizer=image&format=webp&auto=compress"></source><img class="header-logo" src="https://bcdn.cakeiteasy.com/1677834019634?width=1400&height=600&optimizer=image&format=webp&auto=compress" alt="logo"></img></picture></div></div><div class="col-md-4 icons-width"><div class="d-flex justify-content-end align-items-center wrap-height"><div class="mt-n2 elegant__serch-bar"><div id="obj184a7936aadc4fbdbe0744930144b40a_VUE" class="search-bar"> 1471 <div class="search-bar__group d-flex flex-row align-items-center" 1472 :class="{'search-bar__group_active':products.length > 0}"> 1473 <svg class="search-bar__icons" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 1474 <path 1475 d="M8.11556 0.609375C3.9833 0.609375 0.617188 3.97548 0.617188 8.10776C0.617188 12.24 3.9833 15.6127 8.11556 15.6127C9.88058 15.6127 11.5038 14.9941 12.7868 13.9671L15.9102 17.0889C16.0678 17.24 16.2783 17.3233 16.4966 17.3211C16.715 17.3189 16.9237 17.2312 17.0782 17.0769C17.2327 16.9227 17.3207 16.714 17.3232 16.4957C17.3257 16.2774 17.2427 16.0667 17.0918 15.9089L13.9684 12.7856C14.9963 11.5006 15.6156 9.87481 15.6156 8.10776C15.6156 3.97548 12.2478 0.609375 8.11556 0.609375ZM8.11556 2.27607C11.3471 2.27607 13.9473 4.87623 13.9473 8.10776C13.9473 11.3393 11.3471 13.946 8.11556 13.946C4.88403 13.946 2.28385 11.3393 2.28385 8.10776C2.28385 4.87623 4.88403 2.27607 8.11556 2.27607Z" /> 1476 </svg> 1477 <input 1478 class="search-bar__input" 1479 :value="query" 1480 @input="query = $event.target.value" 1481 type="text" 1482 placeholder="Søk produkter" 1483 @keyup.enter="onEnter" 1484 @keyup.40="onDown" 1485 @keyup.38="onUp" 1486 @focus="isFocused = true" 1487 @blur="isFocused = false" 1488 > 1489 <svg class="spinner" v-if="loading" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 1490 <circle class="path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> 1491 </svg> 1492 </div> 1493 <ul class="search-bar__result" :class="{'search-bar__result_short': !isFocused}" 1494 v-if="products.length > 0" v-cloak> 1495 <li class="search-bar__item d-flex align-items-center" :class="{active: currentPosition === index}" v-for="(product, index) in products" :key="product.id"> 1496 <a class="search-bar__link" @click="isFocused = false" :href="product.href">{{product.name}}</a> 1497 </li> 1498 </ul> 1499</div>
1499<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22ProductSearchBar%22%2C%22textColor%22%3A%22%23858585%22%2C%22backgroundColor%22%3A%22%23ffffff%22%2C%22startWidth%22%3A%22120px%22%2C%22endWidth%22%3A%22250px%22%2C%22colorPallete%22%3A%7B%22light%22%3A%22rgba(315%2C%20315%2C%20315%2C%200.3)%22%2C%22extraLight%22%3A%22rgba(315%2C%20315%2C%20315%2C%200.15)%22%2C%22dark%22%3A%22%23fafafa%22%2C%22extraDark%22%3A%22rgba(205%2C%20205%2C%20205%2C%200.8)%22%7D%2C%22hideSearch%22%3Afalse%2C%22Id%22%3A%22obj184a7936aadc4fbdbe0744930144b40a%22%2C%22children%22%3Anull%7D"));const vueAppTest = new MarsVue( 1500 'obj184a7936aadc4fbdbe0744930144b40a_VUE', 1501 { 1502 ...data, 1503 methods: [ 1504 { 1505 name: 'getData', 1506 block: 'ProductSearchBar' 1507 }, 1508 ] 1509 }, 1510 { 1511 data: { 1512 ...data, 1513 loading: false, 1514 query: '', 1515 products: [], 1516 isFocused: false, 1517 currentPosition: 0 1518 }, 1519 watch: { 1520 query: function () { 1521 this.query === '' ? 1522 this.products = [] : 1523 this.debounceGetProducts(); 1524 } 1525 }, 1526 created: function () { 1527 this.debounceGetProducts = debounce(this.getProducts, 150); 1528 }, 1529 mounted() { 1530 document.addEventListener('click', this.hadlePageClick); 1531 }, 1532 beforeDestroy() { 1533 document.removeEventListener('click', this.hadlePageClick); 1534 }, 1535 methods: { 1536 hadlePageClick(evt) { 1537 if (evt.target.classList.contains('search-bar__input') || evt.target.classList.contains('search-bar__link')) { 1538 } else { 1539 this.products = []; 1540 } 1541 }, 1542 onEnter() { 1543 location.href = this.products[this.currentPosition].href; 1544 this.products = 0; 1545 this.query = ''; 1546 }, 1547 onUp() { 1548 this.currentPosition = Math.max(0, --this.currentPosition); 1549 }, 1550 onDown() { 1551 this.currentPosition = Math.min(this.products.length, ++this.currentPosition); 1552 }, 1553 async getProducts() { 1554 if (!this.query || this.query.trim() === '') { 1555 this.products = []; 1556 return; 1557 } 1558 1559 this.loading = true; 1560 let res = []; 1561 this.currentPosition = 0; 1562 1563 try { 1564 res = await this.api.getData(this.query); 1565 } 1566 catch (err) { 1567 } 1568 1569 this.loading = false; 1570 this.products = res.slice(0, 5); 1571 } 1572 } 1573 } 1574); 1575</script>
1575<style>[v-cloak] { 1576 display: none 1577} 1578 1579.search-bar { 1580 position: relative; 1581} 1582 1583.search-bar__group { 1584 border: 1px solid #ffffff; 1585 background: #ffffff; 1586 box-shadow: none; 1587 border-radius: 5px; 1588 padding-left: 8px; 1589 padding-right: 4px; 1590 height: 40px; 1591 transition: border .5s ease; 1592 box-sizing: border-box; 1593} 1594 1595#ElegantHeader .search-bar__group, 1596#SubPageTopMenu .search-bar__group { 1597 border: 1px solid transparent; 1598 background: #ffffff; 1599} 1600 1601.search-bar__group_active { 1602 border: 1px solid #ffffff; 1603 transition: border .5s ease; 1604} 1605 1606#ElegantHeader .search-bar__group_active, 1607#SubPageTopMenu .search-bar__group_active { 1608 border: 1px solid rgb(189, 189, 189); 1609} 1610 1611.search-bar__group:hover { 1612 border: 1px solid #ffffff; 1613 transition: border .5s ease; 1614} 1615 1616#ElegantHeader .search-bar__group:hover, 1617#SubPageTopMenu .search-bar__group:hover { 1618 border: 1px solid undefined; 1619} 1620 1621.search-bar__icons { 1622 width: 20px; 1623 height: 20px; 1624 min-width: 20px; 1625 margin: 0 6px 0 0; 1626 -o-object-fit: contain; 1627 object-fit: contain; 1628 cursor: pointer; 1629} 1630 1631.search-bar__icons path { 1632 fill: #858585; 1633} 1634 1635#SearchBarMobile .search-bar__icons path { 1636 fill: undefined; 1637} 1638 1639.search-bar__input { 1640 display: block; 1641 font-size: 0.875rem; 1642 border: none; 1643 padding: 0 6px; 1644 width: 120px; 1645 height: calc(100% - 2px); 1646 outline: none; 1647 transition: width .8s; 1648 background: transparent; 1649 color: #858585; 1650 font-weight: inherit; 1651} 1652 1653#SearchBarMobile .search-bar__input { 1654 color: undefined; 1655} 1656 1657.search-bar__input:focus, 1658.search-bar__input:active { 1659 outline: 1px solid #ffffff; 1660 width: 250px; 1661} 1662 1663#ElegantHeader .search-bar__input:focus, 1664#ElegantHeader .search-bar__input:active { 1665 outline: 1px solid #ffffff; 1666} 1667 1668#SubPageTopMenu .search-bar__input:focus, 1669#SubPageTopMenu .search-bar__input:active { 1670 outline: 1px solid #ffffff; 1671} 1672 1673.search-bar__input::-webkit-input-placeholder { 1674 font-size: 0.875rem; 1675 font-weight: normal; 1676 color: #858585; 1677 text-overflow: ellipsis; 1678} 1679 1680.search-bar__input::-moz-placeholder { 1681 font-size: 0.875rem; 1682 font-weight: normal; 1683 color: #858585; 1684 text-overflow: ellipsis; 1685} 1686 1687.search-bar__input:-ms-input-placeholder { 1688 font-size: 0.875rem; 1689 font-weight: normal; 1690 color: #858585; 1691 text-overflow: ellipsis; 1692} 1693 1694.search-bar__input::placeholder { 1695 font-size: 0.875rem; 1696 font-weight: normal; 1697 color: #858585; 1698 text-overflow: ellipsis; 1699} 1700 1701#SearchBarMobile .search-bar__input::placeholder { 1702 color: undefined; 1703} 1704 1705.search-bar__result { 1706 position: absolute; 1707 top: 40px; 1708 width: 100%; 1709 z-index: 5; 1710 font-size: 0.875rem; 1711 padding: 0; 1712 margin: -4px 0 0 0; 1713 list-style: none; 1714 background-color: #ffffff; 1715 border: 1px solid #c2c2c2; 1716 color: #333; 1717 border-top: none; 1718 border-radius: 0 0 5px 5px; 1719 box-sizing: border-box; 1720 transition: width .4s; 1721} 1722 1723.search-bar__item { 1724 margin-bottom: 0; 1725 background-color: rgba(315, 315, 315, 0.15); 1726} 1727 1728.search-bar__item .search-bar__link { 1729 padding: 0 8px; 1730 line-height: 35px; 1731} 1732 1733.search-bar__item:hover { 1734 background-color: rgba(315, 315, 315, 0.3); 1735} 1736 1737#ElegantHeader .search-bar__item:hover, 1738#ElegantHeader .search-bar__item.active { 1739 background-color: #ebebeb; 1740} 1741 1742#SubPageTopMenu .search-bar__item:hover, 1743#SubPageTopMenu .search-bar__item.active { 1744 background-color: #ebebeb; 1745} 1746 1747.search-bar__link { 1748 display: block; 1749 height: auto; 1750 width: 100%; 1751 text-overflow: ellipsis; 1752 white-space: nowrap; 1753 overflow: hidden; 1754} 1755 1756.search-bar .spinner { 1757 width: 26px; 1758 position: absolute; 1759 right: 15px; 1760 top: 50%; 1761 margin-top: -13px; 1762 z-index: 150; 1763 animation: rotator 1.4s linear infinite; 1764} 1765 1766.search-bar .spinner .path { 1767 stroke-dasharray: 187; 1768 stroke-dashoffset: 0; 1769 stroke: #ccc; 1770 transform-origin: center; 1771 animation: dash 1.4s ease-in-out infinite; 1772} 1773 1774 1775 1776@media (max-width: 991px){ 1777 .search-bar__input { 1778 width: 100%; 1779 } 1780 .search-bar__group { 1781 border: 1px solid #ffffff; 1782 transition: border .5s ease; 1783 } 1784} 1785 1786@keyframes rotator { 1787 0% { 1788 transform: rotate(0deg); 1789 } 1790 100% { 1791 transform: rotate(270deg); 1792 } 1793 } 1794 @keyframes dash { 1795 0% { 1796 stroke-dashoffset: 187; 1797 } 1798 50% { 1799 stroke-dashoffset: 45; 1800 transform: rotate(135deg); 1801 } 1802 100% { 1803 stroke-dashoffset: 187; 1804 transform: rotate(450deg); 1805 } 1806 }</style></div><div class="elegant__serch-bar_mobile"><button class="search-icon" type="button"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
1806<path fill="#000000" d="M8.11556 0.609375C3.9833 0.609375 0.617188 3.97548 0.617188 8.10776C0.617188 12.24 3.9833 15.6127 8.11556 15.6127C9.88058 15.6127 11.5038 14.9941 12.7868 13.9671L15.9102 17.0889C16.0678 17.24 16.2783 17.3233 16.4966 17.3211C16.715 17.3189 16.9237 17.2312 17.0782 17.0769C17.2327 16.9227 17.3207 16.714 17.3232 16.4957C17.3257 16.2774 17.2427 16.0667 17.0918 15.9089L13.9684 12.7856C14.9963 11.5006 15.6156 9.87481 15.6156 8.10776C15.6156 3.97548 12.2478 0.609375 8.11556 0.609375ZM8.11556 2.27607C11.3471 2.27607 13.9473 4.87623 13.9473 8.10776C13.9473 11.3393 11.3471 13.946 8.11556 13.946C4.88403 13.946 2.28385 11.3393 2.28385 8.10776C2.28385 4.87623 4.88403 2.27607 8.11556 2.27607Z"></path></svg></button>
1806<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22SearchIcon%22%2C%22color%22%3A%22%23000000%22%2C%22hideSearch%22%3Afalse%2C%22Id%22%3A%22obj8bad8709fcec4bfca30112fee7a12a22%22%2C%22children%22%3Anull%7D"));const searchButton = document.querySelector('.search-icon'); 1807const searchBarMobille = document.querySelector('#SearchBarMobile'); 1808 1809if (searchButton) { 1810 searchButton.addEventListener('click', () => { 1811 searchBarMobille.classList.toggle('d-none'); 1812 }) 1813}</script>
1813<style>.search-icon { 1814 border: none; 1815 background: transparent; 1816 cursor: pointer; 1817 padding: 0; 1818 width: 24px; 1819 height: 24px; 1820} 1821 1822.search-icon__btn { 1823 width: 24px; 1824 height: 24px; 1825 margin-top: -5px; 1826}</style></div><div ><a id="Basket" href="/shop" class="d-flex ml-4 basket-container align-items-center flex-column position-relative cursor-pointer" data-basket="true"><div ><svg width="20" height="23" viewBox="0 0 20 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14 5C14 2.79086 12.2091 1 10 1C7.79086 1 6 2.79086 6 5" stroke="#000000" stroke-width="1.5"></path><path d="M6 5V11" stroke="#000000" stroke-width="1.5"></path><path d="M14 5V11" stroke="#000000" stroke-width="1.5"></path><path d="M2.57287 7.96999C2.58805 7.84444 2.6946 7.75 2.82106 7.75H17.1172C17.2433 7.75 17.3496 7.84388 17.3653 7.96899L19.1153 21.969C19.1339 22.1182 19.0176 22.25 18.8672 22.25H1.1282C0.978231 22.25 0.862007 22.1189 0.88001 21.97L2.57287 7.96999Z" stroke="#000000" stroke-width="1.5"></path></svg></div><span class="mt-n1 fs-cart basket-badge-text">Handlekurv</span><div class="position-absolute basket-badge-wrapper"><div class="basket-badge text-center d-flex justify-content-center align-items-center">0</div></div></a>
1826<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22Basket%22%2C%22hideBasket%22%3Afalse%2C%22urls%22%3A%7B%22startNewOrderUrl%22%3A%22%2Fshop%22%2C%22deliveryUrl%22%3A%22%2Fshop%2Flevering%22%2C%22deliveryMobileUrl%22%3A%22%2Fshop%2Flevering%2Fm%22%2C%22productUrl%22%3A%22%2Fshop%2Fbestill%22%7D%2C%22bakeryId%22%3A84%2C%22isCaption%22%3Atrue%2C%22color%22%3A%22%23000000%22%2C%22counterColor%22%3A%22%23000000%22%2C%22labelColor%22%3A%22%23ffa301%22%2C%22Id%22%3A%22obj1f9132b2b4e14e0fb5cf448a01d9e5b8%22%2C%22children%22%3Anull%7D"));const { urls, bakeryId } = data; 1827const isMobile = window.matchMedia("(max-width: 992px)").matches; 1828const cartKey = 'Bakery:' + bakeryId; // should be fetched from settings 1829 1830fetch('/shop/api/store/sessions/').then((res) => res.json()).then((sessionId) => { 1831 const cartSesssionKey = sessionId; 1832 fetch("/shop/api/store/cart/", { 1833 headers: { 1834 "x-cart-key-header": cartKey, 1835 "x-session-key-header": cartSesssionKey, 1836 "x-source-header": "WEB_SHOP" 1837 } 1838 }).then((res) => res.json()).then((cart) => { 1839 if (cart.bakery_orders[0]) { 1840 $('.basket-badge').text(cart.bakery_orders[0].order_lines.reduce((acc, line) => acc + line.quantity, 0)); 1841 $('[data-basket]').attr('href', isMobile ? urls.deliveryMobileUrl : urls.deliveryUrl); 1842 $('[data-basket]').toggleClass('jump-in'); 1843 $('[data-basket] .basket-badge').toggleClass('jump-in'); 1844 } 1845 }); 1846}); 1847 1848window.openOutletsMap = () => { 1849 Modal.open('/outlets-map', { noPadding: true, hideModalHeader: true, width: '70%' }); 1850}</script>
1850<style>.jump-in { 1851 animation: jump 2s; 1852} 1853 1854.basket-container { 1855 width: 26px; 1856} 1857 1858.basket-badge-text { 1859 color: #000000; 1860} 1861 1862.basket-badge { 1863 font-size: 10px; 1864 letter-spacing: normal; 1865 width: 17px; 1866 height: 17px; 1867 border-radius: 50%; 1868 line-height: normal; 1869 color: #000000; 1870 background-color: #ffa301; 1871} 1872 1873.basket-badge-wrapper { 1874 top: 8px; 1875 right: -5px; 1876} 1877 1878.basket-container:hover { 1879 text-decoration: none!important; 1880} 1881 1882.fs-cart{ 1883 font-size:11px; 1884} 1885</style></div></div></div></div><style> 1886@keyframes rotate { 1887 0% { 1888 transform: rotate(0) 1889 } 1890 30% { 1891 transform: rotate(-15deg) 1892 } 1893 40% { 1894 transform: rotate(15deg) 1895 } 1896 60% { 1897 transform: rotate(-10deg) 1898 } 1899 70% { 1900 transform: rotate(10deg) 1901 } 1902 100% { 1903 transform: rotate(0) 1904 } 1905} 1906 1907.header-logo{ 1908 max-width:345px; 1909 margin-top: 30px; 1910} 1911 1912.top-menu-wrapper { 1913 align-items: normal; 1914} 1915 1916@media screen and (max-width: 992px) { 1917 .top-menu-wrapper { 1918 align-items: center; 1919 } 1920} 1921 1922.top-menu { 1923 display: none; 1924} 1925 1926.top-menu-contact { 1927 font-size: 0.9375rem; 1928 letter-spacing: 0.028125rem; 1929 color: #000000; 1930} 1931 1932#ElegantHeaderMainMenu .basket-badge-text { 1933 letter-spacing: 0.028125rem; 1934} 1935 1936#ElegantHeaderMainMenu .search-bar__input, 1937#ElegantHeaderMainMenu .search-bar__input::placeholder { 1938 letter-spacing: 0.028125rem; 1939} 1940 1941@media screen and (max-width: 992px){ 1942 .icons-width { 1943 max-width: 100px; 1944 } 1945} 1946 1947@media (max-width: 992px){ 1948 .header-logo{ 1949 display: block; 1950 object-fit: contain; 1951 max-width: 100%; 1952 width: auto; 1953 height: 100%; 1954 max-height: 70px; 1955 margin-top: 0px; 1956 } 1957} 1958 1959@media (max-width: 992px){ 1960 .logo-container{ 1961 display: flex; 1962 justify-content: start; 1963 margin: auto auto auto 0; 1964 } 1965} 1966 1967 1968@media (max-width: 768px){ 1969 .logo-container{ 1970 max-width: 50%; 1971 max-height: 100%; 1972 } 1973} 1974 1975@media (max-width: 576px){ 1976 .navbar{ 1977 align-items: start; 1978 padding-top: 0.5rem!important; 1979 } 1980 1981 .logo-container{ 1982 max-width: 60%; 1983 } 1984} 1985 1986.rotating:hover i { 1987 will-change: rotate; 1988 animation: rotate 1s infinite; 1989} 1990 1991.jumping:hover i { 1992 will-change: translateY; 1993 animation: jump 1s infinite; 1994} 1995 1996@media screen and (max-width: 992px){ 1997 .elegant__serch-bar { 1998 display: none; 1999 } 2000} 2001 2002.elegant__serch-bar_mobile { 2003 display: none; 2004} 2005 2006 2007@media screen and (max-width: 992px){ 2008 .elegant__serch-bar_mobile { 2009 display: block; 2010 margin-top: -.5rem !important; 2011 } 2012}</style>
2012<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22MainPageTopMenu%22%2C%22settings%22%3A%7B%22headerType%22%3A%22ElegantHeader%22%2C%22bakeryHeaderColors%22%3A%7B%22headerBgColor%22%3A%22%23ffffff%22%2C%22headerTextColor%22%3A%22%23000000%22%7D%2C%22fontSettings%22%3A%7B%22menuFontSettings%22%3A%7B%22fontSize%22%3A%2215%22%7D%2C%22buttonFontSettings%22%3A%7B%22fontFamily%22%3A%22font-secondary%22%2C%22fontSize%22%3A%2216%22%2C%22fontWeight%22%3A%22text-normal%22%2C%22letterSpacing%22%3A%220%22%2C%22textPosition%22%3A%22text-left%22%7D%7D%2C%22logo%22%3A%7B%22logoSize%22%3A%22BIG%22%2C%22desktopLogo%22%3A%22https%3A%2F%2Fmars-images.imgix.net%2F1677834019634%3Ffm%3Davif%26fit%3Dclip%26w%3D1200%26%3Dundefined%22%7D%2C%22menu%22%3A%5B%7B%22title%22%3A%22OM%20OSS%22%2C%22link%22%3A%22%2Fom-oss%22%2C%22scroll%22%3A%22TitleWithImage%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%5D%7D%2C%7B%22title%22%3A%22V%C3%85RE%20SPISESTEDER%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%7B%22title%22%3A%22V%C3%A5re%20bakeriutsalg%22%2C%22link%22%3A%22%2Futsalg%22%7D%2C%7B%22title%22%3A%22Tur%20Kaf%C3%A9%22%2C%22link%22%3A%22%2Ftur-kafe%22%7D%2C%7B%22title%22%3A%22Skift%22%2C%22link%22%3A%22%2Fskift%22%7D%5D%7D%2C%7B%22title%22%3A%22LEDIGE%20STILLINGER%22%2C%22link%22%3A%22%2Fledige-stillinger%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%5D%7D%2C%7B%22title%22%3A%22PROFFKUNDER%22%2C%22link%22%3A%22https%3A%2F%2Fbestilling.bodobakeri.no%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%5D%7D%2C%7B%22title%22%3A%22KONTAKT%20OSS%22%2C%22scroll%22%3A%22CommonFooter%22%2C%22useScroll%22%3Atrue%2C%22showAsButton%22%3Anull%2C%22submenu%22%3A%5B%5D%7D%5D%2C%22products%22%3A%5B%5D%2C%22headerStoreAndContactBtn%22%3A%7B%22contactUsLabel%22%3A%22Kontakt%20oss%22%2C%22ourStoresLabel%22%3A%22V%C3%A5re%20butikker%22%7D%2C%22headerShopBtn%22%3A%7B%22hideHeaderShopBtn%22%3Afalse%2C%22title%22%3A%22NETTBUTIKK%22%2C%22link%22%3A%22%2Fshop%22%2C%22customColor%22%3A%22%23bf9a56%22%2C%22customTextColor%22%3A%22%23ffffff%22%2C%22useCustomColor%22%3Atrue%2C%22useCustomTextColor%22%3Afalse%7D%2C%22banner%22%3A%7B%22enabled%22%3Afalse%2C%22text%22%3A%22Alle%20v%C3%A5re%20butikker%20har%20normale%20%C3%A5pningstider%2C%20men%20vi%20har%20ingen%20bordservering%20p.g.a.%20Covid%2019.%20Bare%20takeaway.%22%2C%22textLink%22%3A%22See%20%C3%A5pningstider%22%2C%22link%22%3A%22%2F%22%7D%2C%22hideBasket%22%3Afalse%2C%22hideSearch%22%3Afalse%7D%2C%22bakery%22%3A%7B%22name%22%3A%22Bod%C3%B8%20bakeri%22%2C%22primaryColor%22%3A%22%2335bcd0%22%2C%22cakeiteasyId%22%3A84%2C%22shopKey%22%3Anull%2C%22siteUrl%22%3A%22https%3A%2F%2Fbod-bakeri.cakeiteasy.com%22%2C%22urls%22%3A%7B%22startNewOrderUrl%22%3A%22%2Fshop%22%2C%22deliveryUrl%22%3A%22%2Fshop%2Flevering%22%2C%22deliveryMobileUrl%22%3A%22%2Fshop%2Flevering%2Fm%22%2C%22productUrl%22%3A%22%2Fshop%2Fbestill%22%7D%2C%22productsContent%22%3A%7B%22currency%22%3A%22kr%22%7D%2C%22theme%22%3A%22rade-bakeri%22%7D%2C%22Id%22%3A%22obj88f10b51fe5b4764bb31ed3d41daacc3%22%2C%22fontSize%22%3A%220.9375%22%2C%22letterSpacing%22%3A%220.028125%22%2C%22headerTextColor%22%3A%22%23000000%22%2C%22children%22%3Anull%2C%22desktopLogo%22%3A%7B%22logoSize%22%3A%22BIG%22%2C%22desktopLogo%22%3A%22https%3A%2F%2Fmars-images.imgix.net%2F1677834019634%3Ffm%3Davif%26fit%3Dclip%26w%3D1200%26%3Dundefined%22%7D%7D")); 2013</script>
2013</div><div class="d-flex justify-content-center align-items-center wrap-height pb-4"><div id="objb7e045bbcfda4acca622079286b2e3c6" class="d-flex justify-content-center"><nav class="navbar navbar-expand-lg navbar-light py-1 pt-0 px-0 align-items-center"><button onclick="$('#MobileMenu').removeClass('menu-hidden')" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="fs-5 navbar-toggler-hamburger"><span class="line"></span></span></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item cursor-pointer"><a class="nav-link animated-underline" href="/om-oss">OM OSS</a></li><li class="nav-item underline dropdown" onclick=""><a class="nav-link dropdown-toggle cursor-pointer" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Và RE SPISESTEDER <span class="ml-2 fas fa-angle-down"></span></a><div class="dropdown-menu p-0 overflow-hidden cursor-pointer" aria-labelledby="navbarDropdown"><a class="dropdown-item cursor-pointer" href="/utsalg">Våre bakeriutsalg</a><div class="dropdown-divider m-0 p-0"></div><a class="dropdown-item cursor-pointer" href="/tur-kafe">Tur Kafé</a><div class="dropdown-divider m-0 p-0"></div><a class="dropdown-item cursor-pointer" href="/skift">Skift</a></div></li><li class="nav-item cursor-pointer"><a class="nav-link animated-underline" href="/ledige-stillinger">LEDIGE STILLINGER</a></li><li class="nav-item cursor-pointer"><a class="nav-link animated-underline" href="https://bestilling.bodobakeri.no">PROFFKUNDER</a></li><li class="nav-item cursor-pointer " onclick="scrollToElement('CommonFooter')"><a class="nav-link animated-underline">KONTAKT OSS</a></li><li class="nav-item d-flex align-items-center px-3 elegant-header__shop font-secondary text-normal"><a class="btn btn-sm btn-outline-primary text-normal" href="/shop">NETTBUTIKK</a></li></ul></div></nav><style>#objb7e045bbcfda4acca622079286b2e3c6 .dropdown-item:hover{ 2014 background:#f2e1b8!important; 2015} 2016 2017.nav-item .btn { 2018 font-size: var(--font-default); 2019} 2020 2021.navbar-toggler-hamburger { 2022 display: inline-block; 2023 width: 24px; 2024 height: 18px; 2025 position: relative; 2026} 2027 2028.navbar-toggler-hamburger::before, 2029.navbar-toggler-hamburger::after, 2030.navbar-toggler-hamburger .line { 2031 content: ''; 2032 display: block; 2033 background-color: #000000; 2034 height: 2px; 2035 width: 100%; 2036 position: absolute; 2037 left: 0; 2038} 2039 2040.navbar-toggler-hamburger::before { 2041 top: 0; 2042} 2043 2044.navbar-toggler-hamburger .line { 2045 top: 50%; 2046 transform: translateY(-50%); 2047} 2048 2049.navbar-toggler-hamburger::after { 2050 bottom: 0; 2051} 2052 2053 2054.animated-underline { 2055 position: relative; 2056 padding: 0.2em 0; 2057} 2058 2059.animated-underline::after { 2060 content: ''; 2061 position: absolute; 2062 bottom: 15px; 2063 left: 10%; 2064 right: 10%; 2065 height: 2px; 2066 background-color: var(--color-primary); 2067 opacity: 0; 2068 transition: opacity 300ms, transform 300ms; 2069} 2070 2071.animated-underline:hover::after, 2072.animated-underline:focus::after { 2073 opacity: 1; 2074 transform: translate3d(0, 0.2em, 0); 2075} 2076 2077.elegant-header__shop, 2078.nav-item .btn { 2079 font-size: 1rem; 2080 letter-spacing: 0rem; 2081} 2082 2083.nav-link { 2084 color: #000000 !important; 2085} 2086 2087.elegant-header__shop .btn-outline-primary-contrast{ 2088 border: 2px solid #000000!important; 2089 color:#000000!important; 2090} 2091 2092.elegant-header__shop .btn-outline-primary-contrast:hover{ 2093 background-color: #ffffff!important; 2094 color:undefined!important; 2095}</style></div></div></div><div id="SearchBarMobile" class="d-none container-fluid mb-3"><div id="obj27eb1ef24a174feaaf42b933d40fca36_VUE" class="search-bar"> 2096 <div class="search-bar__group d-flex flex-row align-items-center" 2097 :class="{'search-bar__group_active':products.length > 0}"> 2098 <svg class="search-bar__icons" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> 2099 <path 2100 d="M8.11556 0.609375C3.9833 0.609375 0.617188 3.97548 0.617188 8.10776C0.617188 12.24 3.9833 15.6127 8.11556 15.6127C9.88058 15.6127 11.5038 14.9941 12.7868 13.9671L15.9102 17.0889C16.0678 17.24 16.2783 17.3233 16.4966 17.3211C16.715 17.3189 16.9237 17.2312 17.0782 17.0769C17.2327 16.9227 17.3207 16.714 17.3232 16.4957C17.3257 16.2774 17.2427 16.0667 17.0918 15.9089L13.9684 12.7856C14.9963 11.5006 15.6156 9.87481 15.6156 8.10776C15.6156 3.97548 12.2478 0.609375 8.11556 0.609375ZM8.11556 2.27607C11.3471 2.27607 13.9473 4.87623 13.9473 8.10776C13.9473 11.3393 11.3471 13.946 8.11556 13.946C4.88403 13.946 2.28385 11.3393 2.28385 8.10776C2.28385 4.87623 4.88403 2.27607 8.11556 2.27607Z" /> 2101 </svg> 2102 <input 2103 class="search-bar__input" 2104 :value="query"
2105 @input="query = $event.target.value" 2106 type="text" 2107 placeholder="Søk produkter" 2108 @keyup.enter="onEnter" 2109 @keyup.40="onDown" 2110 @keyup.38="onUp" 2111 @focus="isFocused = true" 2112 @blur="isFocused = false" 2113 > 2114 <svg class="spinner" v-if="loading" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 2115 <circle class="path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> 2116 </svg> 2117 </div> 2118 <ul class="search-bar__result" :class="{'search-bar__result_short': !isFocused}" 2119 v-if="products.length > 0" v-cloak> 2120 <li class="search-bar__item d-flex align-items-center" :class="{active: currentPosition === index}" v-for="(product, index) in products" :key="product.id"> 2121 <a class="search-bar__link" @click="isFocused = false" :href="product.href">{{product.name}}</a> 2122 </li> 2123 </ul> 2124</div>
2124<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22ProductSearchBar%22%2C%22textColor%22%3A%22%23858585%22%2C%22customColor%22%3A%22%23c2c2c2%22%2C%22backgroundColor%22%3A%22%23ffffff%22%2C%22startWidth%22%3A%22120px%22%2C%22endWidth%22%3A%22250px%22%2C%22colorPallete%22%3A%7B%22light%22%3A%22rgba(315%2C%20315%2C%20315%2C%200.3)%22%2C%22extraLight%22%3A%22rgba(315%2C%20315%2C%20315%2C%200.15)%22%2C%22dark%22%3A%22%23fafafa%22%2C%22extraDark%22%3A%22rgba(205%2C%20205%2C%20205%2C%200.8)%22%7D%2C%22hideSearch%22%3Afalse%2C%22Id%22%3A%22obj27eb1ef24a174feaaf42b933d40fca36%22%2C%22children%22%3Anull%7D"));const vueAppTest = new MarsVue( 2125 'obj27eb1ef24a174feaaf42b933d40fca36_VUE', 2126 { 2127 ...data, 2128 methods: [ 2129 { 2130 name: 'getData', 2131 block: 'ProductSearchBar' 2132 }, 2133 ] 2134 }, 2135 { 2136 data: { 2137 ...data, 2138 loading: false, 2139 query: '', 2140 products: [], 2141 isFocused: false, 2142 currentPosition: 0 2143 }, 2144 watch: { 2145 query: function () { 2146 this.query === '' ? 2147 this.products = [] : 2148 this.debounceGetProducts(); 2149 } 2150 }, 2151 created: function () { 2152 this.debounceGetProducts = debounce(this.getProducts, 150); 2153 }, 2154 mounted() { 2155 document.addEventListener('click', this.hadlePageClick); 2156 }, 2157 beforeDestroy() { 2158 document.removeEventListener('click', this.hadlePageClick); 2159 }, 2160 methods: { 2161 hadlePageClick(evt) { 2162 if (evt.target.classList.contains('search-bar__input') || evt.target.classList.contains('search-bar__link')) { 2163 } else { 2164 this.products = []; 2165 } 2166 }, 2167 onEnter() { 2168 location.href = this.products[this.currentPosition].href; 2169 this.products = 0; 2170 this.query = ''; 2171 }, 2172 onUp() { 2173 this.currentPosition = Math.max(0, --this.currentPosition); 2174 }, 2175 onDown() { 2176 this.currentPosition = Math.min(this.products.length, ++this.currentPosition); 2177 }, 2178 async getProducts() { 2179 if (!this.query || this.query.trim() === '') { 2180 this.products = []; 2181 return; 2182 } 2183 2184 this.loading = true; 2185 let res = []; 2186 this.currentPosition = 0; 2187 2188 try { 2189 res = await this.api.getData(this.query); 2190 } 2191 catch (err) { 2192 } 2193 2194 this.loading = false; 2195 this.products = res.slice(0, 5); 2196 } 2197 } 2198 } 2199); 2200</script>
2200<style>[v-cloak] { 2201 display: none 2202} 2203 2204.search-bar { 2205 position: relative; 2206} 2207 2208.search-bar__group { 2209 border: 1px solid #ffffff; 2210 background: #ffffff; 2211 box-shadow: none; 2212 border-radius: 5px; 2213 padding-left: 8px; 2214 padding-right: 4px; 2215 height: 40px; 2216 transition: border .5s ease; 2217 box-sizing: border-box; 2218} 2219 2220#ElegantHeader .search-bar__group, 2221#SubPageTopMenu .search-bar__group { 2222 border: 1px solid transparent; 2223 background: #ffffff; 2224} 2225 2226.search-bar__group_active { 2227 border: 1px solid #ffffff; 2228 transition: border .5s ease; 2229} 2230 2231#ElegantHeader .search-bar__group_active, 2232#SubPageTopMenu .search-bar__group_active { 2233 border: 1px solid rgb(189, 189, 189); 2234} 2235 2236.search-bar__group:hover { 2237 border: 1px solid #ffffff; 2238 transition: border .5s ease; 2239} 2240 2241#ElegantHeader .search-bar__group:hover, 2242#SubPageTopMenu .search-bar__group:hover { 2243 border: 1px solid #c2c2c2; 2244} 2245 2246.search-bar__icons { 2247 width: 20px; 2248 height: 20px; 2249 min-width: 20px; 2250 margin: 0 6px 0 0; 2251 -o-object-fit: contain; 2252 object-fit: contain; 2253 cursor: pointer; 2254} 2255 2256.search-bar__icons path { 2257 fill: #858585; 2258} 2259 2260#SearchBarMobile .search-bar__icons path { 2261 fill: undefined; 2262} 2263 2264.search-bar__input { 2265 display: block; 2266 font-size: 0.875rem; 2267 border: none; 2268 padding: 0 6px; 2269 width: 120px; 2270 height: calc(100% - 2px); 2271 outline: none; 2272 transition: width .8s; 2273 background: transparent; 2274 color: #858585; 2275 font-weight: inherit; 2276} 2277 2278#SearchBarMobile .search-bar__input { 2279 color: undefined; 2280} 2281 2282.search-bar__input:focus, 2283.search-bar__input:active { 2284 outline: 1px solid #ffffff; 2285 width: 250px; 2286} 2287 2288#ElegantHeader .search-bar__input:focus, 2289#ElegantHeader .search-bar__input:active { 2290 outline: 1px solid #ffffff; 2291} 2292 2293#SubPageTopMenu .search-bar__input:focus, 2294#SubPageTopMenu .search-bar__input:active { 2295 outline: 1px solid #ffffff; 2296} 2297 2298.search-bar__input::-webkit-input-placeholder { 2299 font-size: 0.875rem; 2300 font-weight: normal; 2301 color: #858585; 2302 text-overflow: ellipsis; 2303} 2304 2305.search-bar__input::-moz-placeholder { 2306 font-size: 0.875rem; 2307 font-weight: normal; 2308 color: #858585; 2309 text-overflow: ellipsis; 2310} 2311 2312.search-bar__input:-ms-input-placeholder { 2313 font-size: 0.875rem; 2314 font-weight: normal; 2315 color: #858585; 2316 text-overflow: ellipsis; 2317} 2318 2319.search-bar__input::placeholder { 2320 font-size: 0.875rem; 2321 font-weight: normal; 2322 color: #858585; 2323 text-overflow: ellipsis; 2324} 2325 2326#SearchBarMobile .search-bar__input::placeholder { 2327 color: undefined; 2328} 2329 2330.search-bar__result { 2331 position: absolute; 2332 top: 40px; 2333 width: 100%; 2334 z-index: 5; 2335 font-size: 0.875rem; 2336 padding: 0; 2337 margin: -4px 0 0 0; 2338 list-style: none; 2339 background-color: #ffffff; 2340 border: 1px solid #c2c2c2; 2341 color: #333; 2342 border-top: none; 2343 border-radius: 0 0 5px 5px; 2344 box-sizing: border-box; 2345 transition: width .4s; 2346} 2347 2348.search-bar__item { 2349 margin-bottom: 0; 2350 background-color: rgba(315, 315, 315, 0.15); 2351} 2352 2353.search-bar__item .search-bar__link { 2354 padding: 0 8px; 2355 line-height: 35px; 2356} 2357 2358.search-bar__item:hover { 2359 background-color: rgba(315, 315, 315, 0.3); 2360} 2361 2362#ElegantHeader .search-bar__item:hover, 2363#ElegantHeader .search-bar__item.active { 2364 background-color: #ebebeb; 2365} 2366 2367#SubPageTopMenu .search-bar__item:hover, 2368#SubPageTopMenu .search-bar__item.active { 2369 background-color: #ebebeb; 2370} 2371 2372.search-bar__link { 2373 display: block; 2374 height: auto; 2375 width: 100%; 2376 text-overflow: ellipsis; 2377 white-space: nowrap; 2378 overflow: hidden; 2379} 2380 2381.search-bar .spinner { 2382 width: 26px; 2383 position: absolute; 2384 right: 15px; 2385 top: 50%; 2386 margin-top: -13px; 2387 z-index: 150; 2388 animation: rotator 1.4s linear infinite; 2389} 2390 2391.search-bar .spinner .path { 2392 stroke-dasharray: 187; 2393 stroke-dashoffset: 0; 2394 stroke: #ccc; 2395 transform-origin: center; 2396 animation: dash 1.4s ease-in-out infinite; 2397} 2398 2399 2400 2401@media (max-width: 991px){ 2402 .search-bar__input { 2403 width: 100%; 2404 } 2405 .search-bar__group { 2406 border: 1px solid #ffffff; 2407 transition: border .5s ease; 2408 } 2409} 2410 2411@keyframes rotator { 2412 0% { 2413 transform: rotate(0deg); 2414 } 2415 100% { 2416 transform: rotate(270deg); 2417 } 2418 } 2419 @keyframes dash { 2420 0% { 2421 stroke-dashoffset: 187; 2422 } 2423 50% { 2424 stroke-dashoffset: 45; 2425 transform: rotate(135deg); 2426 } 2427 100% { 2428 stroke-dashoffset: 187; 2429 transform: rotate(450deg); 2430 } 2431 }</style></div><style>@media screen and (max-width: 992px) { 2432 .header-wrapper { 2433 display: flex; 2434 align-items: center; 2435 height: 100px; 2436 } 2437} 2438 2439@media screen and (min-width: 992px) { 2440 .wrap-height { 2441 height: 55px; 2442 } 2443} 2444 2445.nav-link { 2446 font-size: 0.9375rem; 2447 letter-spacing: 0.028125rem; 2448}</style></div><div class="elegant-mobile-menu position-fixed bg-white menu-hidden position-absolute font-secondary top-0 start-0" style=" overflow-y:
2448scroll;" id="MobileMenu"><div class="position-relative"><div class="cursor-pointer font-subtitle d-flex justify-content-end exit"><div class="px-4 mx-3 py-4 mobile-menu__btn_type_close"><img src="https://bcdn.cakeiteasy.com/close.png?optimizer=image&width=20&height=20" alt="exit"></img></div></div><li class="fs-2 py-4 text-center bg-secondary text-white" style="color: #ffffff !important"><a href="/shop"><i class="fas fa-shopping-cart mr-2"></i><span >NETTBUTIKK</span></a></li><ul class="list-unstyled text-uppercase"><li class="px-5 py-4 menu-item text-center m-0"><a href="/om-oss" class="fs-2">OM OSS</a></li><li class="px-5 py-4 menu-item m-0"><a href="undefined" class="fs-2 text-center">Và RE SPISESTEDER</a><ul class="list-unstyled mt-4"><li class="mb-4 fs-3 pb-2"><a class="d-block" onclick="event.stopPropagation()" href="/utsalg">Våre bakeriutsalg</a></li><li class="mb-4 fs-3 pb-2"><a class="d-block" onclick="event.stopPropagation()" href="/tur-kafe">Tur Kafé</a></li><li class=" fs-3 pb-2"><a class="d-block" onclick="event.stopPropagation()" href="/skift">Skift</a></li></ul></li><li class="px-5 py-4 menu-item text-center m-0"><a href="/ledige-stillinger" class="fs-2">LEDIGE STILLINGER</a></li><li class="px-5 py-4 menu-item text-center m-0"><a href="https://bestilling.bodobakeri.no" class="fs-2">PROFFKUNDER</a></li><li class="px-5 py-4 menu-item text-center m-0 mobile-menu__link_action-scroll" onclick="scrollToElement('CommonFooter')"><div class="fs-2 text-center">KONTAKT OSS</div></li><li onclick="scrollToElement('CheckDelivery')" class="mobile-menu__link_action-scroll px-5 py-4 menu-item text-center m-0"><div class="fs-2 text-center">Våre butikker</div></li><li onclick="scrollToElement('CommonFooter')" class="mobile-menu__link_action-scroll px-5 py-4 menu-item text-center m-0"><div class="fs-2 text-center">Kontakt oss</div></li></ul></div><style>.elegant-mobile-menu { 2449 z-index: 10; 2450 height: 100vh; 2451 width: 100vw; 2452} 2453 2454.menu-item{ 2455 border-style: solid; 2456 border-color: #ebebeb; 2457 border-width: 1px 0 0 0; 2458 padding: 1.3rem 1rem; 2459 text-align: center; 2460 cursor: pointer; 2461 text-transform: uppercase; 2462} 2463 2464.menu-item:first-child { 2465 border-top: none; 2466} 2467 2468 2469.navigation-mobile__link_type_shop { 2470 display: flex; 2471} 2472 2473 2474.navigation-mobile__link { 2475 display: block; 2476 color: #333; 2477 text-transform: uppercase; 2478 font-size: 1.5rem; 2479 width: 100%; 2480 text-align: center; 2481} 2482 2483.navigation-mobile__link:hover { 2484 text-decoration: none; 2485 color: #333; 2486} 2487 2488.menu-hidden { 2489 height: 0px !important; 2490 display: none; 2491} 2492</style>
2492<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22MobileMenu%22%2C%22menu%22%3A%5B%7B%22title%22%3A%22OM%20OSS%22%2C%22link%22%3A%22%2Fom-oss%22%2C%22scroll%22%3A%22TitleWithImage%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%5D%7D%2C%7B%22title%22%3A%22V%C3%85RE%20SPISESTEDER%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%7B%22title%22%3A%22V%C3%A5re%20bakeriutsalg%22%2C%22link%22%3A%22%2Futsalg%22%7D%2C%7B%22title%22%3A%22Tur%20Kaf%C3%A9%22%2C%22link%22%3A%22%2Ftur-kafe%22%7D%2C%7B%22title%22%3A%22Skift%22%2C%22link%22%3A%22%2Fskift%22%7D%5D%7D%2C%7B%22title%22%3A%22LEDIGE%20STILLINGER%22%2C%22link%22%3A%22%2Fledige-stillinger%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%5D%7D%2C%7B%22title%22%3A%22PROFFKUNDER%22%2C%22link%22%3A%22https%3A%2F%2Fbestilling.bodobakeri.no%22%2C%22useScroll%22%3Afalse%2C%22showAsButton%22%3Afalse%2C%22submenu%22%3A%5B%5D%7D%2C%7B%22title%22%3A%22KONTAKT%20OSS%22%2C%22scroll%22%3A%22CommonFooter%22%2C%22useScroll%22%3Atrue%2C%22showAsButton%22%3Anull%2C%22submenu%22%3A%5B%5D%7D%5D%2C%22contactUsLabel%22%3A%22Kontakt%20oss%22%2C%22ourStoresLabel%22%3A%22V%C3%A5re%20butikker%22%2C%22Id%22%3A%22obj49d2242b800a49948b42c4bf4ad97323%22%2C%22children%22%3Anull%7D"));const closeMenuBtn = document.querySelector('.mobile-menu__btn_type_close'); 2493const menuElement = document.querySelector('#MobileMenu'); 2494const menuLinks = menuElement.querySelectorAll('.mobile-menu__link_action-scroll'); 2495 2496const handleCloseMenuBtnClick = () => { 2497/*menuElement.classList.add('d-none');*/ 2498 menuElement.classList.add('menu-hidden'); 2499}; 2500 2501closeMenuBtn.addEventListener('click', handleCloseMenuBtnClick); 2502 2503menuLinks.forEach((link) => { 2504 link.addEventListener('click', handleCloseMenuBtnClick); 2505});</script>
2505</div><style>@keyframes jump { 2506 0% { 2507 transform: translateY(0) 2508 } 2509 20% { 2510 transform: translateY(0px) 2511 } 2512 40% { 2513 transform: translateY(-8px) 2514 } 2515 60% { 2516 transform: translateY(0px) 2517 } 2518 80% { 2519 transform: translateY(-2px) 2520 } 2521 100% { 2522 transform: translateY(0) 2523 } 2524} 2525 2526#ElegantHeader { 2527 background: #ffffff; 2528}</style>
2528<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22ElegantHeader%22%2C%22Id%22%3A%22obj7b3b5eebb9964940b4c35eb65767fb22%22%2C%22headerBgColor%22%3A%22%23ffffff%22%2C%22children%22%3Anull%7D"));new MarsBlock(`ElegantHeader`, data, {}); 2529</script>
2529</div><div class="content"><div id="MasterPage" class="" data-master-content><div id="Spacer_obj1676884783013" data-test-id="Spacer" class="Spacer_obj1676884783013 autoSpacer"><style>.Spacer_obj1676884783013.spacer { 2530 --padding: undefined; 2531 --mobile-padding: undefined; 2532 padding: var(--padding) 0 0; 2533} 2534 2535@media (max-width: 992px) { 2536 .Spacer_obj1676884783013.spacer { 2537 padding: calc(var(--padding) * 0.9) 0 0; 2538 } 2539} 2540 2541@media (max-width: 768px) { 2542 .Spacer_obj1676884783013.spacer { 2543 padding: var(--mobile-padding) 0 0; 2544 } 2545} 2546 2547@media (max-width: 425px) { 2548 .Spacer_obj1676884783013.spacer { 2549 padding: var(--mobile-padding) 0 0; 2550 } 2551} 2552 2553 2554.Spacer_obj1676884783013.autoSpacer { 2555 --auto-padding: 15px; 2556 padding: var(--auto-padding) 0 0; 2557} 2558 2559@media (max-width: 992px) { 2560 .Spacer_obj1676884783013.autoSpacer { 2561 padding: calc(var(--auto-padding) * 0.9) 0 0; 2562 } 2563} 2564 2565@media (max-width: 768px) { 2566 .Spacer_obj1676884783013.autoSpacer { 2567 padding: calc(var(--auto-padding) * 0.7) 0 0; 2568 } 2569} 2570 2571@media (max-width: 425px) { 2572 .Spacer_obj1676884783013.autoSpacer { 2573 padding: calc(var(--auto-padding) * 0.5) 0 0; 2574 } 2575}</style></div><style>.hero-btn-custom-HeroBannerV2_obj1650879662646 { 2576 color: #ffffff; 2577 background-color: undefined; 2578 font-size: 1.125rem; 2579 padding: .42rem 4.65rem; 2580} 2581 2582.hero-btn-custom-HeroBannerV2_obj1650879662646:hover { 2583 background-color: #000000; 2584 color: #ffffff !important; 2585} 2586 2587.cta-banner { 2588 position: relative; 2589 height: 500px; 2590 overflow: hidden; 2591} 2592 2593.cta-banner::after, 2594.swiper-slide::after { 2595 content: ''; 2596 background: var(--after-background); 2597 opacity: var(--after-opacity, 0); 2598 position: absolute; 2599 display: var(--after-display, block); 2600 left:0; 2601 top:0; 2602 width: 100%; 2603 height: 100%; 2604} 2605 2606@media screen and (max-width: 768px) { 2607 .cta-banner { 2608 min-height: 400px; 2609 } 2610} 2611 2612@media only screen and (max-width: 768px) { 2613 .cta-banner__img, 2614 .cta-banner.banner-size-big { 2615 min-height: 500px; 2616 } 2617} 2618 2619@media only screen and (max-width: 425px) { 2620 #HeroBannerV2_obj1650879662646 .cta-banner__img, 2621 #HeroBannerV2_obj1650879662646 .cta-banner.banner-size-big { 2622 min-height: 400px; 2623 } 2624} 2625 2626@media (min-width: 1040px) { 2627 #HeroBannerV2_obj1650879662646 .cta-banner__img, 2628 #HeroBannerV2_obj1650879662646 .cta-banner { 2629 min-height: 500px; 2630 } 2631 2632 #HeroBannerV2_obj1650879662646 .cta-banner.banner-size-big { 2633 min-height: 500px; 2634 } 2635} 2636 2637.cta-banner__bg-img { 2638 height: 100%; 2639 width: 100%; 2640} 2641 2642.cta-banner__img { 2643 display: block; 2644 height: 100%; 2645 object-fit: cover; 2646 object-position: center; 2647 width: 100%; 2648} 2649 2650.cta-banner__content { 2651 position: absolute; 2652 top: 0; 2653 z-index: 3; 2654 height: 100%; 2655} 2656 2657@media (min-width: 768px) { 2658 .cta-banner__content { 2659 max-width: 1200px; 2660 } 2661} 2662 2663@media (max-width: 767px) { 2664 .cta-banner__content { 2665 padding: 0 15px; 2666 } 2667} 2668 2669.cta-banner__title { 2670 color: #fff; 2671 text-align: center; 2672 z-index: 3; 2673 margin-bottom: 8px; 2674 letter-spacing: normal; 2675 white-space: pre-line; 2676} 2677 2678#HeroBannerV2_obj1650879662646 .cta-banner__title { 2679 font-size: 3.75rem; 2680 letter-spacing: 0rem; 2681 line-height: 1.2; 2682} 2683 2684@media (max-width: 768px) { 2685 #HeroBannerV2_obj1650879662646 .cta-banner__title { 2686 font-size: 3.75rem; 2687 line-height: 1.166; 2688 } 2689} 2690 2691@media (max-width: 470px) { 2692 #HeroBannerV2_obj1650879662646 .cta-banner__title { 2693 font-size: 9vmin; 2694 /* font-size: clamp(16px, 3vw, 40px); */ 2695 } 2696} 2697 2698.cta-banner__subtitle { 2699 color: #fff; 2700 text-align: center; 2701 margin-bottom: 16px; 2702 z-index: 3; 2703 letter-spacing: normal; 2704 white-space: pre-line; 2705} 2706 2707#HeroBannerV2_obj1650879662646 .cta-banner__subtitle { 2708 font-size: 2.625rem; 2709 letter-spacing: 0rem; 2710 line-height: 1.2; 2711} 2712 2713@media (max-width: 768px){ 2714 #HeroBannerV2_obj1650879662646 .cta-banner__subtitle { 2715 font-size: 2.625rem; 2716 line-height: 1.166; 2717 } 2718} 2719 2720.cta-banner__btn { 2721 padding: 0.55rem 39px !important; 2722 margin-top: 24px; 2723 z-index: 2; 2724 cursor: pointer; 2725 text-shadow: none; 2726 letter-spacing: normal; 2727} 2728 2729#HeroBannerV2_obj1650879662646 .cta-banner__btn { 2730 font-size: undefinedrem !important; 2731 letter-spacing: undefinedrem !important; 2732} 2733 2734@media (max-width: 767px){ 2735.cta-banner__btn { 2736 margin-top: 16px; 2737 margin-bottom: 0px; 2738 } 2739} 2740 2741@media only screen and (max-width: 991px) { 2742 .cta-banner__btn { 2743 margin-top: 1.5rem; 2744 } 2745} 2746 2747@media (max-width: 767px){ 2748 .cta-banner__btn { 2749 margin-top: 16px; 2750 } 2751} 2752 2753/* Slider styles */ 2754 2755.slider_first .swiper-container { 2756 width: 100%; 2757 color: white; 2758 margin-left: auto; 2759 margin-right: auto; 2760} 2761 2762.slider_first {
2763 position: relative; 2764 margin: 0; 2765background-color: transparent; 2766 overflow: hidden; 2767 isolation: isolate; 2768} 2769 2770.slider_first .swiper-slide { 2771 background-repeat: no-repeat !important; 2772 background-size: cover !important; 2773} 2774 2775.carousel-img { 2776 width: 100%; 2777 height: 30vh; 2778 border-radius: 20px; 2779 background-size: cover!important; 2780 background-position: center!important; 2781 background-repeat: no-repeat !important; 2782} 2783 2784.head-carousel__title { 2785 color: #ffffff; 2786 line-height: var(--heading-line-height); 2787 text-align: center; 2788 letter-spacing: normal; 2789 white-space: pre-line; 2790 font-synthesis: none; 2791} 2792 2793#HeroBannerV2_obj1650879662646 .head-carousel__title { 2794 font-size: 3.75rem; 2795 letter-spacing: 0rem; 2796 line-height: 1.2; 2797} 2798 2799@media (max-width: 768px){ 2800 #HeroBannerV2_obj1650879662646 .head-carousel__title { 2801 font-size: 3.75rem; 2802 line-height: 1.166; 2803 } 2804} 2805 2806@media (max-width: 470px){ 2807 #HeroBannerV2_obj1650879662646 .head-carousel__title { 2808 font-size: 9vmin; 2809 } 2810} 2811 2812.head-carousel__subtitle { 2813 line-height: 1.2; 2814 text-align: center; 2815 letter-spacing: normal; 2816 margin-bottom: 1rem; 2817 white-space: pre-line; 2818 font-synthesis: none; 2819} 2820 2821#HeroBannerV2_obj1650879662646 .head-carousel__subtitle { 2822 font-size: 2.625rem; 2823 letter-spacing: 0rem; 2824} 2825 2826@media (max-width: 768px){ 2827 #HeroBannerV2_obj1650879662646 .head-carousel__subtitle { 2828 font-size: 2.625rem; 2829 margin-bottom: .5rem; 2830 line-height: 1.166; 2831 } 2832} 2833 2834.head-carousel__text-wrapper { 2835 position: relative; 2836} 2837 2838@media screen and (max-width: 640px) { 2839 .head-carousel__text-wrapper{ 2840 justify-content: center !important; 2841 align-items: flex-end !important; 2842 } 2843} 2844 2845.slider-progress-bar-container { 2846 padding-bottom: 15px; 2847 position: absolute; 2848 bottom: 15px; 2849 width: auto; 2850} 2851 2852.swiper-buttons-container { 2853 position: absolute; 2854 bottom: 15px; 2855 right: 0px; 2856 width: 109px; 2857 z-index: 1; 2858} 2859 2860.swiper-pagination { 2861 right: 0; 2862 position: static !important; 2863 2864} 2865 2866.swiper-pagination .swiper-pagination-bullet:last-child { 2867 margin-right: 0px; 2868} 2869 2870.swiper-pagination .swiper-pagination-bullet { 2871 opacity: 0.7; 2872} 2873 2874.pagination-wrapper__btn-wrapper { 2875 width: 100%; 2876} 2877 2878@media screen and (min-width: 769px) { 2879 #HeroBannerV2_obj1650879662646 { 2880 padding: 0 !important; 2881 } 2882 .pagination-wrapper { 2883 position: absolute; 2884 z-index: 2; 2885 width: 100%; 2886 } 2887 /* .swiper-container.head-carousel { 2888 height: 515px; 2889 } */ 2890 .swiper-slide { 2891 display: grid; 2892 } 2893} 2894 2895@media (min-height: 1201px) { 2896 .swiper-container.head-carousel { 2897 width: 100%; 2898 /* height: 700px!important; */ 2899 } 2900 .carousel-img { 2901 height: 700px; 2902 border-radius: 10px!important; 2903 } 2904} 2905 2906 2907@media screen and (max-width: 768px) { 2908 .slider_first { 2909 background-color: #fff; 2910 } 2911 2912 .slider_first .swiper-container { 2913 width: 100%; 2914 overflow: initial; 2915 margin-top: 0; 2916 } 2917 2918 .slider_first .swiper-buttons-container { 2919 display: none; 2920 } 2921 2922 .swiper-slide { 2923 background-size: contain!important; 2924 background-position: top!important; 2925 height: initial!important; 2926 display: flex; 2927 flex-direction: column; 2928 } 2929 2930 .slider-progress-bar-container { 2931 padding-bottom: 0px; 2932 margin-left: -30px; 2933 } 2934 2935 .swiper-container { 2936 margin-top: 90px; 2937 } 2938 2939 .swiper-pagination { 2940 bottom: -42px; 2941 right: 50%; 2942 transform: translateX(50%)!important; 2943 } 2944} 2945 2946/**/ 2947 2948.swiper-pagination-bullet { 2949 display: inline-block; 2950 height: 5px!important; 2951 width: 5px!important; 2952 margin-right: 8px; 2953 margin-left: 0; 2954 background-color: rgba(255, 255, 255)!important; 2955 border-radius: 50%; 2956 opacity: .9 ; 2957} 2958 2959.swiper-pagination-bullet-active { 2960 opacity: 1 !important; 2961 height: 8px!important; 2962 width: 8px!important; 2963 border:none; 2964 background-color: white !important; 2965} 2966 2967.btn.slider-btn { 2968 border-radius: 15px; 2969 cursor: pointer; 2970 padding: 15px!important; 2971 display: flex; 2972 justify-content: center; 2973 align-items: center; 2974} 2975 2976.slider-btn i { 2977 font-size: 1.8rem; 2978 margin-right: 2px; 2979} 2980 2981.slider-interface-line { 2982 background-color: #fff; 2983 opacity: .1; 2984 height: 1px; 2985} 2986 2987.slider__content { 2988 z-index: 1; 2989} 2990 2991.btn.btn-primary.slider-btn:hover { 2992 background-color: var(--color-primary600)!important; 2993} 2994 2995.home_trailer_btn.slider-btn.btn:hover { 2996 background-color: rgba(255,255,255,0.6)!important; 2997} 2998 2999.slider__btn-prev { 3000 padding: 0 2rem 0 4.65rem; 3001} 3002 3003.slider__btn-next { 3004 padding: 0 4.65rem 0 2rem; 3005} 3006 3007.slider__btn:focus, 3008.btn__theme:focus { 3009 color: #fff; 3010 background-color: var(--color-secondary600); 3011 border: var(--color-secondary) 2px solid; 3012 box-shadow: 0 0 0 0.2rem var(--color-secondary200); 3013} 3014 3015@media (max-width: 1199px) { 3016 .slider__btn { 3017 padding: 0.4rem 1.4rem; 3018 } 3019 .head-carousel__title { 3020 max-width: 750px; 3021 } 3022 .head-carousel__subtitle { 3023 max-width: 650px; 3024 } 3025} 3026 3027@media (max-width: 991px) { 3028 .head-carousel__title { 3029 font-size: 2.125rem; 3030 } 3031 .head-carousel__subtitle { 3032 font-size: 1.313rem; 3033 } 3034} 3035 3036@media (max-width: 768px) { 3037 .head-carousel__text-wrapper { 3038 height: 100%; 3039 } 3040 .pagination-wrapper { 3041 display: none; 3042 } 3043 .swiper-container.head-carousel { 3044 min-height: 320px; 3045 } 3046 .slider__content { 3047 min-height: 320px; 3048 height: auto; 3049 padding-top: 30px; 3050 padding-bottom: 30px; 3051 } 3052 .head-carousel__title { 3053 font-size: 2rem; 3054 max-width: 500px; 3055 padding: 0 15px; 3056 } 3057 .head-carousel__subtitle { 3058 max-width: 500px; 3059 padding: 0 15px; 3060 margin-bottom: 25px !important; 3061 } 3062} 3063 3064@media (max-width: 455px) { 3065 .head-carousel__title { 3066 text-transform: initial; 3067 } 3068 .head-carousel__subtitle { 3069 font-size: 1.125rem; 3070 } 3071} 3072 3073</style><section id="HeroBannerV2_obj1650879662646" class="slider_first overlay common-padding-bottom-blocks"><div class="behind-header"></div><link rel="stylesheet" href="https://unpkg.com/[email protected]/swiper-bundle.min.css"> 3074 3075<div id="HeroBannerV2_obj1650879662646" class="swiper-container head-carousel d-flex align-items-center justify-content-center" 3076 style="height: 500px; max-height: 100svh; min-height: 300px"> 3077 <!-- Slides Wrapper --> 3078 <div class="swiper-wrapper max-vh-100"> 3079 3080 <div class="swiper-slide" 3081 style="height: 500px; max-height: 100svh; min-height: 300px; background: url('https://foodspace.imgix.net/foodspace/bakeries/84/assets/1790934694420.smart-image-1790934695798-1790934694420-orwaiq.png?width=1920&height=600&auto=compress&format=webp&dpr=2&fit=clip') center/cover no-repeat; --after-opacity: 0.1; --after-display: block; --after-background: #000000; text-shadow: 0 2px 6px rgb(0 0 0 / 77%);;"> 3082 3083 <!-- Text Content Wrapper --> 3084 <div class="head-carousel__text-wrapper"> 3085 <div class="container" style="position:relative; height: 100%;"> 3086 <div class="row align-items-center justify-content-center" style="height: 100%;"> 3087 <div class="slider__content d-flex flex-column align-items-center justify-content-center"> 3088 3089 <!-- Title --> 3090 <h1 class="head-carousel__title mb-2 3091 font-primary 3092 text-bold">Flere nye kakenyheter i vår nettbutikk</h1> 3093 3094 <!-- Subtitle --> 3095 <p class="head-carousel__subtitle 3096 font-primary 3097 text-bold">Ta en titt og la deg friste</p> 3098 3099 <div class="mt-4"> 3100 <div id="obj6e3dac1b1e8042caa640f67b010f8d9c" class="container common-padding-bottom-blocks buttons__container buttons__container_row " style="gap: 16px"><div id="objae62793687424e67999d1cb8f1d317d6" data-test-id="Button" class="d-flex justify-content-center align-items-center default-btn "><a href="https://www.bodobakeri.no/shop/kategori/kaker-699" class="btn block__btn btn-primary font-secondary text-bold ">Bestill her</a><style>#objae62793687424e67999d1cb8f1d317d6 .block__btn { 3101 text-shadow: none !important; 3102 -webkit-text-shadow: none !important; 3103 -moz-text-shadow: none !important; 3104 font-size: 1.125rem; 3105 letter-spacing: 0.028125rem; 3106 white-space: normal; 3107 word-break: break-word; 3108} 3109 3110#objae62793687424e67999d1cb8f1d317d6 .btn-custom { 3111 color: #ffffff; 3112 background-color: #ffa301; 3113} 3114 3115#objae62793687424e67999d1cb8f1d317d6 .btn-custom:hover { 3116 background-color: #000000; 3117 /* background-color: #000000; */ 3118 color: #ffffff !important; 3119} 3120 3121.default-btn .btn { 3122 padding: 0.55rem 2rem; 3123}</style></div><style>.buttons__container_row, 3124.buttons__container_same-width_row { 3125 display: flex; 3126 justify-content: center; 3127} 3128
3129.buttons__container_col, 3130.buttons__container_same-width_col { 3131 display: flex; 3132 flex-direction: column; 3133 align-items: center; 3134 justify-content: center; 3135} 3136 3137.buttons__container_same-width_col { 3138 width: max-content; 3139 min-width: max-content; 3140} 3141 3142.buttons__container_same-width_row .default-btn, 3143.buttons__container_same-width_col .default-btn, 3144.buttons__container_same-width_row .block__btn, 3145.buttons__container_same-width_col .block__btn { 3146 width: 100%; 3147} 3148 3149.buttons__container_same-width_row .default-btn { 3150 width: max-content; 3151 min-width: max-content; 3152}</style>
3152<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22RenderButtonsFromArg%22%2C%22buttons%22%3A%5B%7B%22btnText%22%3A%22Bestill%20her%22%2C%22link%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fkaker-699%22%2C%22color%22%3A%22btn-primary%22%2C%22customColor%22%3Anull%7D%5D%2C%22options%22%3A%7B%22gapSize%22%3A16%2C%22direction%22%3A%22row%22%2C%22useSameWidth%22%3Afalse%2C%22fontSettingsDesktop%22%3A%7B%7D%2C%22fontSettingsMobile%22%3A%7B%7D%7D%2C%22Id%22%3A%22obj6e3dac1b1e8042caa640f67b010f8d9c%22%2C%22children%22%3Anull%7D"));(() => { 3153 function syncButtonWidths(containerId) { 3154 if (data?.options?.useSameWidth && data?.options?.direction === 'row') { 3155 console.log('Buttons synced') 3156 const container = document.getElementById(containerId); 3157 if (!container) return; 3158 3159 const buttons = container.querySelectorAll('a'); 3160 if (!buttons.length) return; 3161 3162 let maxWidth = Math.ceil(Math.max(...Array.from(buttons).map(btn => btn.offsetWidth))); 3163 3164 buttons.forEach(btn => { 3165 btn.style.width = maxWidth + 2 + 'px'; // 2px extra to be sure the text fit the button 3166 }); 3167 } 3168 } 3169 3170 syncButtonWidths(data.Id); 3171})();</script>
3171</div> 3172 </div> 3173 </div> 3174 </div> 3175 </div> 3176 </div> 3177 3178 </div> 3179 3180 <div class="swiper-slide" 3181 style="height: 500px; max-height: 100svh; min-height: 300px; background: url('https://foodspace.imgix.net/foodspace/bakeries/84/assets/1790934796708.smart-image-1790934797664-1790934796708-zffp7o.png?width=1920&height=600&auto=compress&format=webp&dpr=2&fit=clip') center/cover no-repeat; --after-opacity: 0.1; --after-display: block; --after-background: #000000; text-shadow: 0 2px 6px rgb(0 0 0 / 77%);;"> 3182 3183 <!-- Text Content Wrapper --> 3184 <div class="head-carousel__text-wrapper"> 3185 <div class="container" style="position:relative; height: 100%;"> 3186 <div class="row align-items-center justify-content-center" style="height: 100%;"> 3187 <div class="slider__content d-flex flex-column align-items-center justify-content-center"> 3188 3189 <!-- Title --> 3190 <h1 class="head-carousel__title mb-2 3191 font-primary 3192 text-bold">Catering til små og store eventer</h1> 3193 3194 <!-- Subtitle --> 3195 <p class="head-carousel__subtitle d-none 3196 font-primary 3197 text-bold">undefined</p> 3198 3199 <div class="mt-4"> 3200 <div id="obj7e46e9746a9f4964b12e9e7109050c02" class="container common-padding-bottom-blocks buttons__container buttons__container_row " style="gap: 35px"><div id="objf65ebf7d8b004d5a9643c4910208bb46" data-test-id="Button" class="d-flex justify-content-center align-items-center default-btn "><a href="https://www.bodobakeri.no/shop/kategori/selskapsmat-catering-5120" class="btn block__btn btn-primary font-secondary text-bold ">Sjekk ut</a><style>#objf65ebf7d8b004d5a9643c4910208bb46 .block__btn { 3201 text-shadow: none !important; 3202 -webkit-text-shadow: none !important; 3203 -moz-text-shadow: none !important; 3204 font-size: 1.125rem; 3205 letter-spacing: 0.028125rem; 3206 white-space: normal; 3207 word-break: break-word; 3208} 3209 3210#objf65ebf7d8b004d5a9643c4910208bb46 .btn-custom { 3211 color: #ffffff; 3212 background-color: #ffa301; 3213} 3214 3215#objf65ebf7d8b004d5a9643c4910208bb46 .btn-custom:hover { 3216 background-color: #000000; 3217 /* background-color: #000000; */ 3218 color: #ffffff !important; 3219} 3220 3221.default-btn .btn { 3222 padding: 0.55rem 2rem; 3223}</style></div><style>.buttons__container_row, 3224.buttons__container_same-width_row { 3225 display: flex; 3226 justify-content: center; 3227} 3228 3229.buttons__container_col, 3230.buttons__container_same-width_col { 3231 display: flex; 3232 flex-direction: column; 3233 align-items: center; 3234 justify-content: center; 3235} 3236 3237.buttons__container_same-width_col { 3238 width: max-content; 3239 min-width: max-content; 3240} 3241 3242.buttons__container_same-width_row .default-btn, 3243.buttons__container_same-width_col .default-btn, 3244.buttons__container_same-width_row .block__btn, 3245.buttons__container_same-width_col .block__btn { 3246 width: 100%; 3247} 3248 3249.buttons__container_same-width_row .default-btn { 3250 width: max-content; 3251 min-width: max-content; 3252}</style>
3252<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22RenderButtonsFromArg%22%2C%22buttons%22%3A%5B%7B%22btnText%22%3A%22Sjekk%20ut%22%2C%22link%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fselskapsmat-catering-5120%22%2C%22color%22%3A%22btn-primary%22%2C%22customColor%22%3Anull%7D%5D%2C%22options%22%3A%7B%22gapSize%22%3A%2235%22%2C%22direction%22%3A%22row%22%2C%22useSameWidth%22%3Afalse%2C%22fontSettingsDesktop%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22fontSettingsMobile%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%7D%2C%22Id%22%3A%22obj7e46e9746a9f4964b12e9e7109050c02%22%2C%22children%22%3Anull%7D"));(() => { 3253 function syncButtonWidths(containerId) { 3254 if (data?.options?.useSameWidth && data?.options?.direction === 'row') { 3255 console.log('Buttons synced') 3256 const container = document.getElementById(containerId); 3257 if (!container) return; 3258 3259 const buttons = container.querySelectorAll('a'); 3260 if (!buttons.length) return; 3261 3262 let maxWidth = Math.ceil(Math.max(...Array.from(buttons).map(btn => btn.offsetWidth))); 3263 3264 buttons.forEach(btn => { 3265 btn.style.width = maxWidth + 2 + 'px'; // 2px extra to be sure the text fit the button 3266 }); 3267 } 3268 } 3269 3270 syncButtonWidths(data.Id); 3271})();</script>
3271</div> 3272 </div> 3273 </div> 3274 </div> 3275 </div> 3276 </div> 3277 3278 </div> 3279 3280 </div> 3281 3282 <!-- Pagination and Navigation Controls --> 3283 <div class="pagination-wrapper" style="margin-top:0px"> 3284 <div class="row"> 3285 <div class="w-100 m-0 mx-3 slider-interface-line d-none" size="1"></div> 3286 <div 3287 class="d-flex col-md-12 col-11 justify-content-between flex-row-reverse "> 3288 3289 <!-- Navigation Buttons --> 3290 <div class="pagination-wrapper__btn-wrapper text-white d-flex justify-content-between"> 3291 <div class="btn slider__btn-prev swiper-button-prev-unique"> 3292 <i class="fas fa-chevron-left mr-1"></i> 3293 </div> 3294 <div class="btn slider__btn-next swiper-button-next-unique"> 3295 <i class="fas fa-chevron-right ml-1"></i> 3296 </div> 3297 </div> 3298 3299 </div> 3300 </div> 3301 </div> 3302 3303 <!-- Progress Bar and Pagination --> 3304 <div class="d-flex align-items-center slider-progress-bar-container"> 3305 <div class="swiper-pagination mr-lg-3 d-flex align-items-center"></div> 3306 </div> 3307 3308</div>
3308<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22HeroBannerV2%22%2C%22Id%22%3A%22HeroBannerV2_obj1650879662646%22%2C%22slides%22%3A%5B%7B%22image%22%3A%7B%22title%22%3A%22Flere%20nye%20kakenyheter%20i%20v%C3%A5r%20nettbutikk%22%2C%22subtitle%22%3A%22Ta%20en%20titt%20og%20la%20deg%20friste%22%2C%22buttons%22%3A%7B%22buttonsSettings%22%3A%7B%22buttons%22%3A%5B%7B%22btnText%22%3A%22Bestill%20her%22%2C%22link%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fkaker-699%22%2C%22color%22%3A%22btn-primary%22%2C%22customColor%22%3Anull%7D%5D%2C%22options%22%3A%7B%22gapSize%22%3A16%2C%22direction%22%3A%22row%22%2C%22useSameWidth%22%3Afalse%2C%22fontSettingsDesktop%22%3A%7B%7D%2C%22fontSettingsMobile%22%3A%7B%7D%7D%7D%7D%2C%22desktopImage%22%3A%22https%3A%2F%2Fcf.cie.app%2Fassets%2Fimg%2Ffoodspace%2Fbakeries%2F84%2Fassets%2F1790934694420.smart-image-1790934695798-1790934694420-orwaiq.png%22%2C%22usePlannedSlide%22%3Afalse%2C%22plannedTimeData%22%3A%7B%22startTime%22%3A%222026-07-15T07%3A12%3A51.607Z%22%2C%22endTime%22%3A%222026-07-31T07%3A12%3A56.912Z%22%7D%2C%22ishidden%22%3Afalse%7D%2C%22isRegular%22%3Atrue%7D%2C%7B%22image%22%3A%7B%22title%22%3A%22Catering%20til%20sm%C3%A5%20og%20store%20eventer%22%2C%22buttons%22%3A%7B%22buttonsSettings%22%3A%7B%22buttons%22%3A%5B%7B%22btnText%22%3A%22Sjekk%20ut%22%2C%22link%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fselskapsmat-catering-5120%22%2C%22color%22%3A%22btn-primary%22%2C%22customColor%22%3Anull%7D%5D%2C%22options%22%3A%7B%22gapSize%22%3A%2235%22%2C%22direction%22%3A%22row%22%2C%22useSameWidth%22%3Afalse%2C%22fontSettingsDesktop%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22fontSettingsMobile%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%7D%7D%7D%2C%22desktopImage%22%3A%22https%3A%2F%2Fcf.cie.app%2Fassets%2Fimg%2Ffoodspace%2Fbakeries%2F84%2Fassets%2F1790934796708.smart-image-1790934797664-1790934796708-zffp7o.png%22%2C%22usePlannedSlide%22%3Afalse%2C%22plannedTimeData%22%3A%7B%7D%2C%22ishidden%22%3Afalse%7D%2C%22isRegular%22%3Atrue%7D%5D%2C%22ui%22%3A%7B%22fontSettings%22%3A%7B%22titleSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3A%2260%22%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22subtitleSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3A%2242%22%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22buttonSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%7D%2C%22fontSettingsMobile%22%3A%7B%7D%2C%22useSameAsDesktop%22%3Atrue%2C%22imageSettings%22%3A%7B%22useImgFullHeight%22%3Afalse%2C%22imageHeightPx%22%3A%22500%22%7D%2C%22uiSettings%22%3A%7B%22titleShadow%22%3A%220%202px%206px%20rgb(0%200%200%20%2F%2077%25)%3B%22%2C%22opacityColor%22%3A%22%23000000%22%2C%22mainBannerOpacity%22%3A%2210%22%7D%2C%22sliderSettings%22%3A%7B%22delay%22%3A%225%22%2C%22speed%22%3A%22500%22%7D%7D%2C%22currentSlides%22%3A%5B%7B%22image%22%3A%7B%22title%22%3A%22Flere%20nye%20kakenyheter%20i%20v%C3%A5r%20nettbutikk%22%2C%22subtitle%22%3A%22Ta%20en%20titt%20og%20la%20deg%20friste%22%2C%22buttons%22%3A%7B%22buttonsSettings%22%3A%7B%22buttons%22%3A%5B%7B%22btnText%22%3A%22Bestill%20her%22%2C%22link%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fkaker-699%22%2C%22color%22%3A%22btn-primary%22%2C%22customColor%22%3Anull%7D%5D%2C%22options%22%3A%7B%22gapSize%22%3A16%2C%22direction%22%3A%22row%22%2C%22useSameWidth%22%3Afalse%2C%22fontSettingsDesktop%22%3A%7B%7D%2C%22fontSettingsMobile%22%3A%7B%7D%7D%7D%7D%2C%22desktopImage%22%3A%22https%3A%2F%2Fcf.cie.app%2Fassets%2Fimg%2Ffoodspace%2Fbakeries%2F84%2Fassets%2F1790934694420.smart-image-1790934695798-1790934694420-orwaiq.png%22%2C%22usePlannedSlide%22%3Afalse%2C%22plannedTimeData%22%3A%7B%22startTime%22%3A%222026-07-15T07%3A12%3A51.607Z%22%2C%22endTime%22%3A%222026-07-31T07%3A12%3A56.912Z%22%7D%2C%22ishidden%22%3Afalse%7D%2C%22isRegular%22%3Atrue%7D%2C%7B%22image%22%3A%7B%22title%22%3A%22Catering%20til%20sm%C3%A5%20og%20store%20eventer%22%2C%22buttons%22%3A%7B%22buttonsSettings%22%3A%7B%22buttons%22%3A%5B%7B%22btnText%22%3A%22Sjekk%20ut%22%2C%22link%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fselskapsmat-catering-5120%22%2C%22color%22%3A%22btn-primary%22%2C%22customColor%22%3Anull%7D%5D%2C%22options%22%3A%7B%22gapSize%22%3A%2235%22%2C%22direction%22%3A%22row%22%2C%22useSameWidth%22%3Afalse%2C%22fontSettingsDesktop%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22fontSettingsMobile%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%7D%7D%7D%2C%22desktopImage%22%3A%22https%3A%2F%2Fcf.cie.app%2Fassets%2Fimg%2Ffoodspace%2Fbakeries%2F84%2Fassets%2F1790934796708.smart-image-1790934797664-1790934796708-zffp7o.png%22%2C%22usePlannedSlide%22%3Afalse%2C%22plannedTimeData%22%3A%7B%7D%2C%22ishidden%22%3Afalse%7D%2C%22isRegular%22%3Atrue%7D%5D%2C%22block-id%22%3A%22HeroBannerV2_obj1650879662646%22%2C%22extraMarginOnContent%22%3A%220px%22%2C%22customTextColor%22%3A%22%23ffffff%22%2C%22customBgHoverColor%22%3A%22%23000000%22%2C%22titleFontSize%22%3A%223.75%22%2C%22mobileTitleFontSize%22%3A%223.75%22%2C%22titleLetterSpacing%22%3A%220%22%2C%22subtitleFontSize%22%3A%222.625%22%2C%22mobileSubtitleFontSize%22%3A%222.625%22%2C%22subtitleLetterSpacing%22%3A%220%22%2C%22useImgFullHeight%22%3Afalse%2C%22imgBlockHeight%22%3A%22500px%22%2C%22gradient%22%3A%22linear-gradient(45deg%2C%20rgba(51%2C%2051%2C%2051%2C%200.2)%2C%20rgba(51%2C%2051%2C%2051%2C%200.2))%22%2C%22isMobile%22%3Afalse%2C%22titleSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3A%2260%22%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22subtitleSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3A%2242%22%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22btnsRender%22%3A%5B%22%3Cdiv%20id%3D%5C%22obj6e3dac1b1e8042caa640f67b010f8d9c%5C%22%20class%3D%5C%22container%20common-padding-bottom-blocks%20buttons__container%20buttons__container_row%20%5C%22%20style%3D%5C%22gap%3A%2016px%5C%22%3E%3Cdiv%20id%3D%5C%22objae62793687424e67999d1cb8f1d317d6%5C%22%20data-test-id%3D%5C%22Button%5C%22%20class%3D%5C%22d-flex%20justify-content-center%20align-items-center%20default-btn%20%5C%22%3E%3Ca%20href%3D%5C%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fkaker-699%5C%22%20class%3D%5C%22btn%20block__btn%20btn-primary%20font-secondary%20text-bold%20%5C%22%3EBestill%20her%3C%2Fa%3E%3Cstyle%3E%23objae62793687424e67999d1cb8f1d317d6%20.block__btn%20%7B%5Cn%20%20text-shadow%3A%20none%20!important%3B%5Cn%20%20-webkit-text-shadow%3A%20none%20!important%3B%5Cn%20%20-moz-text-shadow%3A%20none%20!important%3B%5Cn%20%20font-size%3A%201.125rem%3B%5Cn%20%20letter-spacing%3A%200.028125rem%3B%5Cn%20%20white-space%3A%20normal%3B%5Cn%20%20word-break%3A%20break-word%3B%5Cn%7D%5Cn%5Cn%23objae62793687424e67999d1cb8f1d317d6%20.btn-custom%20%7B%5Cn%20%20color%3A%20%23ffffff%3B%5Cn%20%20background-color%3A%20%23ffa301%3B%5Cn%7D%5Cn%5Cn%23objae62793687424e67999d1cb8f1d317d6%20.btn-custom%3Ahover%20%7B%5Cn%20%20background-color%3A%20%23000000%3B%5Cn%20%20%2F*%20background-color%3A%20%23000000%3B%20*%2F%5Cn%20%20color%3A%20%23ffffff%20!important%3B%5Cn%7D%5Cn%5Cn.default-btn%20.btn%20%7B%5Cn%20%20padding%3A%200.55rem%202rem%3B%5Cn%7D%3C%2Fstyle%3E%3C%2Fdiv%3E%3Cstyle%3E.buttons__container_row%2C%20%5Cn.buttons__container_same-width_row%20%7B%5Cn%20%20display%3A%20flex%3B%5Cn%20%20justify-content%3A%20center%3B%5Cn%7D%5Cn%5Cn.buttons__container_
3308col%2C%5Cn.buttons__container_same-width_col%20%7B%5Cn%20%20display%3A%20flex%3B%5Cn%20%20flex-direction%3A%20column%3B%5Cn%5Ctalign-items%3A%20center%3B%5Cn%5Ctjustify-content%3A%20center%3B%5Cn%7D%5Cn%5Cn.buttons__container_same-width_col%20%7B%5Cn%5Ctwidth%3A%20max-content%3B%5Cn%5Ctmin-width%3A%20max-content%3B%5Cn%7D%5Cn%5Cn.buttons__container_same-width_row%20.default-btn%2C%5Cn.buttons__container_same-width_col%20.default-btn%2C%5Cn.buttons__container_same-width_row%20.block__btn%2C%5Cn.buttons__container_same-width_col%20.block__btn%20%7B%5Cn%5Ctwidth%3A%20100%25%3B%5Cn%7D%5Cn%5Cn.buttons__container_same-width_row%20.default-btn%20%7B%5Cn%5Ctwidth%3A%20max-content%3B%5Cn%5Ctmin-width%3A%20max-content%3B%5Cn%7D%3C%2Fstyle%3E%3Cscript%20v-pre%20type%3D%5C%22module%5C%22%3Econst%20data%20%3D%20JSON.parse(decodeURIComponent(%5C%22%257B%2522_blockName%2522%253A%2522RenderButtonsFromArg%2522%252C%2522buttons%2522%253A%255B%257B%2522btnText%2522%253A%2522Bestill%2520her%2522%252C%2522link%2522%253A%2522https%253A%252F%252Fwww.bodobakeri.no%252Fshop%252Fkategori%252Fkaker-699%2522%252C%2522color%2522%253A%2522btn-primary%2522%252C%2522customColor%2522%253Anull%257D%255D%252C%2522options%2522%253A%257B%2522gapSize%2522%253A16%252C%2522direction%2522%253A%2522row%2522%252C%2522useSameWidth%2522%253Afalse%252C%2522fontSettingsDesktop%2522%253A%257B%257D%252C%2522fontSettingsMobile%2522%253A%257B%257D%257D%252C%2522Id%2522%253A%2522obj6e3dac1b1e8042caa640f67b010f8d9c%2522%252C%2522children%2522%253Anull%257D%5C%22))%3B(()%20%3D%3E%20%7B%5Cn%20%20function%20syncButtonWidths(containerId)%20%7B%5Cn%20%20%20%20if%20(data%3F.options%3F.useSameWidth%20%26%26%20data%3F.options%3F.direction%20%3D%3D%3D%20'row')%20%7B%5Cn%20%20%20%20%20%20console.log('Buttons%20synced')%5Cn%20%20%20%20%20%20const%20container%20%3D%20document.getElementById(containerId)%3B%5Cn%20%20%20%20%20%20if%20(!container)%20return%3B%5Cn%5Cn%20%20%20%20%20%20const%20buttons%20%3D%20container.querySelectorAll('a')%3B%5Cn%20%20%20%20%20%20if%20(!buttons.length)%20return%3B%5Cn%5Cn%20%20%20%20%20%20let%20maxWidth%20%3D%20Math.ceil(Math.max(...Array.from(buttons).map(btn%20%3D%3E%20btn.offsetWidth)))%3B%5Cn%5Cn%20%20%20%20%20%20buttons.forEach(btn%20%3D%3E%20%7B%5Cn%20%20%20%20%20%20%20%20btn.style.width%20%3D%20maxWidth%20%2B%202%20%2B%20'px'%3B%20%2F%2F%202px%20extra%20to%20be%20sure%20the%20text%20fit%20the%20button%5Cn%20%20%20%20%20%20%7D)%3B%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20syncButtonWidths(data.Id)%3B%5Cn%7D)()%3B%3C%2Fscript%3E%3C%2Fdiv%3E%22%2C%22%3Cdiv%20id%3D%5C%22obj7e46e9746a9f4964b12e9e7109050c02%5C%22%20class%3D%5C%22container%20common-padding-bottom-blocks%20buttons__container%20buttons__container_row%20%5C%22%20style%3D%5C%22gap%3A%2035px%5C%22%3E%3Cdiv%20id%3D%5C%22objf65ebf7d8b004d5a9643c4910208bb46%5C%22%20data-test-id%3D%5C%22Button%5C%22%20class%3D%5C%22d-flex%20justify-content-center%20align-items-center%20default-btn%20%5C%22%3E%3Ca%20href%3D%5C%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2Fkategori%2Fselskapsmat-catering-5120%5C%22%20class%3D%5C%22btn%20block__btn%20btn-primary%20font-secondary%20text-bold%20%5C%22%3ESjekk%20ut%3C%2Fa%3E%3Cstyle%3E%23objf65ebf7d8b004d5a9643c4910208bb46%20.block__btn%20%7B%5Cn%20%20text-shadow%3A%20none%20!important%3B%5Cn%20%20-webkit-text-shadow%3A%20none%20!important%3B%5Cn%20%20-moz-text-shadow%3A%20none%20!important%3B%5Cn%20%20font-size%3A%201.125rem%3B%5Cn%20%20letter-spacing%3A%200.028125rem%3B%5Cn%20%20white-space%3A%20normal%3B%5Cn%20%20word-break%3A%20break-word%3B%5Cn%7D%5Cn%5Cn%23objf65ebf7d8b004d5a9643c4910208bb46%20.btn-custom%20%7B%5Cn%20%20color%3A%20%23ffffff%3B%5Cn%20%20background-color%3A%20%23ffa301%3B%5Cn%7D%5Cn%5Cn%23objf65ebf7d8b004d5a9643c4910208bb46%20.btn-custom%3Ahover%20%7B%5Cn%20%20background-color%3A%20%23000000%3B%5Cn%20%20%2F*%20background-color%3A%20%23000000%3B%20*%2F%5Cn%20%20color%3A%20%23ffffff%20!important%3B%5Cn%7D%5Cn%5Cn.default-btn%20.btn%20%7B%5Cn%20%20padding%3A%200.55rem%202rem%3B%5Cn%7D%3C%2Fstyle%3E%3C%2Fdiv%3E%3Cstyle%3E.buttons__container_row%2C%20%5Cn.buttons__container_same-width_row%20%7B%5Cn%20%20display%3A%20flex%3B%5Cn%20%20justify-content%3A%20center%3B%5Cn%7D%5Cn%5Cn.buttons__container_
3308col%2C%5Cn.buttons__container_same-width_col%20%7B%5Cn%20%20display%3A%20flex%3B%5Cn%20%20flex-direction%3A%20column%3B%5Cn%5Ctalign-items%3A%20center%3B%5Cn%5Ctjustify-content%3A%20center%3B%5Cn%7D%5Cn%5Cn.buttons__container_same-width_col%20%7B%5Cn%5Ctwidth%3A%20max-content%3B%5Cn%5Ctmin-width%3A%20max-content%3B%5Cn%7D%5Cn%5Cn.buttons__container_same-width_row%20.default-btn%2C%5Cn.buttons__container_same-width_col%20.default-btn%2C%5Cn.buttons__container_same-width_row%20.block__btn%2C%5Cn.buttons__container_same-width_col%20.block__btn%20%7B%5Cn%5Ctwidth%3A%20100%25%3B%5Cn%7D%5Cn%5Cn.buttons__container_same-width_row%20.default-btn%20%7B%5Cn%5Ctwidth%3A%20max-content%3B%5Cn%5Ctmin-width%3A%20max-content%3B%5Cn%7D%3C%2Fstyle%3E%3Cscript%20v-pre%20type%3D%5C%22module%5C%22%3Econst%20data%20%3D%20JSON.parse(decodeURIComponent(%5C%22%257B%2522_blockName%2522%253A%2522RenderButtonsFromArg%2522%252C%2522buttons%2522%253A%255B%257B%2522btnText%2522%253A%2522Sjekk%2520ut%2522%252C%2522link%2522%253A%2522https%253A%252F%252Fwww.bodobakeri.no%252Fshop%252Fkategori%252Fselskapsmat-catering-5120%2522%252C%2522color%2522%253A%2522btn-primary%2522%252C%2522customColor%2522%253Anull%257D%255D%252C%2522options%2522%253A%257B%2522gapSize%2522%253A%252235%2522%252C%2522direction%2522%253A%2522row%2522%252C%2522useSameWidth%2522%253Afalse%252C%2522fontSettingsDesktop%2522%253A%257B%2522fontFamily%2522%253Anull%252C%2522fontSize%2522%253Anull%252C%2522fontWeight%2522%253Anull%252C%2522letterSpacing%2522%253Anull%257D%252C%2522fontSettingsMobile%2522%253A%257B%2522fontFamily%2522%253Anull%252C%2522fontSize%2522%253Anull%252C%2522fontWeight%2522%253Anull%252C%2522letterSpacing%2522%253Anull%257D%257D%252C%2522Id%2522%253A%2522obj7e46e9746a9f4964b12e9e7109050c02%2522%252C%2522children%2522%253Anull%257D%5C%22))%3B(()%20%3D%3E%20%7B%5Cn%20%20function%20syncButtonWidths(containerId)%20%7B%5Cn%20%20%20%20if%20(data%3F.options%3F.useSameWidth%20%26%26%20data%3F.options%3F.direction%20%3D%3D%3D%20'row')%20%7B%5Cn%20%20%20%20%20%20console.log('Buttons%20synced')%5Cn%20%20%20%20%20%20const%20container%20%3D%20document.getElementById(containerId)%3B%5Cn%20%20%20%20%20%20if%20(!container)%20return%3B%5Cn%5Cn%20%20%20%20%20%20const%20buttons%20%3D%20container.querySelectorAll('a')%3B%5Cn%20%20%20%20%20%20if%20(!buttons.length)%20return%3B%5Cn%5Cn%20%20%20%20%20%20let%20maxWidth%20%3D%20Math.ceil(Math.max(...Array.from(buttons).map(btn%20%3D%3E%20btn.offsetWidth)))%3B%5Cn%5Cn%20%20%20%20%20%20buttons.forEach(btn%20%3D%3E%20%7B%5Cn%20%20%20%20%20%20%20%20btn.style.width%20%3D%20maxWidth%20%2B%202%20%2B%20'px'%3B%20%2F%2F%202px%20extra%20to%20be%20sure%20the%20text%20fit%20the%20button%5Cn%20%20%20%20%20%20%7D)%3B%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20syncButtonWidths(data.Id)%3B%5Cn%7D)()%3B%3C%2Fscript%3E%3C%2Fdiv%3E%22%5D%2C%22opacity%22%3A0.1%2C%22opacityColor%22%3A%22%23000000%22%2C%22titleShadow%22%3A%220%202px%206px%20rgb(0%200%200%20%2F%2077%25)%3B%22%2C%22children%22%3Anull%2C%22blockData%22%3A%7B%22delay%22%3A%225%22%2C%22speed%22%3A%22500%22%7D%7D"));import 'https://cdn.marscloud.dev/assets/img/swiper-bundle.min.js'; 3309 3310const speed = data.blockData.speed ? Number(data.blockData.speed) : 500;
3311const delay = data.blockData.delay ? (Number(data.blockData.delay) * 1000) : 5000; 3312 3313let swiperInstance; 3314 3315if (!swiperInstance) { 3316 swiperInstance = new Swiper('.swiper-container.head-carousel', { 3317 loop: true, 3318 loopPreventsSlide: true, 3319 speed: speed, 3320 effect: 'slide', 3321 spaceBetween: 0, 3322 breakpoints: { 3323 768: { 3324 slidesPerView: 'auto' 3325 } 3326 }, 3327 loopAdditionalSlides: 4, 3328 pagination: { 3329 el: '.swiper-pagination', 3330 clickable: true, 3331 }, 3332 autoplay: { 3333 3334 delay: delay, 3335 pauseOnMouseEnter: true, 3336 disableOnInteraction: false, 3337 }, 3338 navigation: { 3339 nextEl: '.slider_first .swiper-button-next-unique', 3340 prevEl: '.slider_first .swiper-button-prev-unique', 3341 }, 3342 on: { 3343 init: function () { 3344 this.el.style.opacity = 1; 3345 }, 3346 } 3347 }); 3348} 3349 3350// Event handlers for mouseover and mouseout 3351$('.head-carousel').on('mouseover', function () { 3352 if (swiperInstance && swiperInstance.autoplay && swiperInstance.autoplay.running) { 3353 swiperInstance.autoplay.stop(); 3354 } 3355}); 3356 3357$('.head-carousel').on('mouseout', function () { 3358 if (swiperInstance && swiperInstance.autoplay) { 3359 swiperInstance.autoplay.start(); 3360 } 3361}); 3362 3363// because for some reason mars converts all <img> tags from html tab into <i> tag 3364if (data.useImgFullHeight) { 3365 const swiperContainer = document.getElementById('HeroBannerV2_obj1650879662646'); 3366 const slides = swiperContainer.querySelectorAll('.swiper-slide'); 3367 let maxHeight = 0; 3368 let loadedImages = 0; 3369
3370 slides.forEach(slide => { 3371 const imgSrc = getComputedStyle(slide).backgroundImage.slice(5, -2); 3372 const img = new Image(); 3373 img.src = imgSrc; 3374 img.alt = ''; 3375 3376 img.onload = function () { 3377 if (img.naturalHeight > maxHeight) { 3378 maxHeight = img.naturalHeight; 3379 } 3380 3381 loadedImages++; 3382 if (loadedImages === slides.length) { 3383 slides.forEach(slide => { 3384 slide.style.height = `${maxHeight}px`; 3385 }); 3386 } 3387 }; 3388 }); 3389} 3390</script>
3390</section><div id="Spacer_obj1652954256140" data-test-id="MobileSpacer" class="Spacer_obj1652954256140 spacer"><style>.Spacer_obj1652954256140.spacer { 3391 --padding: 100px; 3392 --mobile-padding: 60px; 3393 padding: var(--padding) 0 0; 3394} 3395 3396@media (max-width: 992px) { 3397 .Spacer_obj1652954256140.spacer { 3398 padding: calc(var(--padding) * 0.9) 0 0; 3399 } 3400} 3401 3402@media (max-width: 768px) { 3403 .Spacer_obj1652954256140.spacer { 3404 padding: var(--mobile-padding) 0 0; 3405 } 3406} 3407 3408@media (max-width: 425px) { 3409 .Spacer_obj1652954256140.spacer { 3410 padding: var(--mobile-padding) 0 0; 3411 } 3412} 3413 3414 3415.Spacer_obj1652954256140.autoSpacer { 3416 --auto-padding: undefined; 3417 padding: var(--auto-padding) 0 0; 3418} 3419 3420@media (max-width: 992px) { 3421 .Spacer_obj1652954256140.autoSpacer { 3422 padding: calc(var(--auto-padding) * 0.9) 0 0; 3423 } 3424} 3425 3426@media (max-width: 768px) { 3427 .Spacer_obj1652954256140.autoSpacer { 3428 padding: calc(var(--auto-padding) * 0.7) 0 0; 3429 } 3430} 3431 3432@media (max-width: 425px) { 3433 .Spacer_obj1652954256140.autoSpacer { 3434 padding: calc(var(--auto-padding) * 0.5) 0 0; 3435 } 3436}</style></div><section id="Offer_obj1677152147474" data-test-id="Offer" class="common-padding-bottom-blocks container offer"><div class="offer__title font-primary text-normal text-left mb-5"></div><div class="row justify-content-center "><a class="col-6 overflow-hidden d-flex flex-column mb-4 col-lg-3" href="javascript:void(0);"><div class="overflow-hidden offer__top-image"><div class="offer-wrap bg-size-cover bg-repeat-0 bg-position-center" style="background:url(https://bcdn.cakeiteasy.com/foodspace/bakeries/84/assets/1784099002802.blob-1784099002801-stnxa4.png?width=800&height=320&optimizer=image&format=webp) center/cover no-repeat; height: 255px; transition:.6s;"></div><div class="offer__bottom-text font-primary text-normal text-left d-flex justify-content-center flex-grow-1 bg-light p-3 flex-grow-1 d-flex text-info-dark ">Vårt populære URkorn brød har nå fått en ny storebror; URkorn ekstra grovt. Begge disse brødene får du kjøpt i dagligvarebutikker og de holder seg lenge. </div></div></a><a class="col-6 overflow-hidden d-flex flex-column mb-4 col-lg-3" href="https://www.bodobakeri.no/shop/bestill/sjokoladekake-gluten-og-laktosefri-53169"><div class="overflow-hidden offer__top-image"><div class="offer-wrap bg-size-cover bg-repeat-0 bg-position-center" style="background:url(https://bcdn.cakeiteasy.com/foodspace/bakeries/84/assets/1784098842995.blob-1784098842995-9tdiig.png?width=800&height=320&optimizer=image&format=webp) center/cover no-repeat; height: 255px; transition:.6s;"></div><div class="offer__bottom-text font-primary text-normal text-left d-flex justify-content-center flex-grow-1 bg-light p-3 flex-grow-1 d-flex text-info-dark ">NYHET: Våre konditorer har laget en ny sjokoladekake som er både gluten- og laktosefri. Glutenfri sjokoladebunn som er fylt og toppet med laktosefri smørkrem. </div></div></a><a class="col-6 overflow-hidden d-flex flex-column mb-4 col-lg-3" href="https://www.bodobakeri.no/tur-kafe"><div class="overflow-hidden offer__top-image"><div class="offer-wrap bg-size-cover bg-repeat-0 bg-position-center" style="background:url(https://bcdn.cakeiteasy.com/foodspace/1773306236967.blob-1773306236967-mm1uer.png?width=800&height=320&optimizer=image&format=webp) center/cover no-repeat; height: 255px; transition:.6s;"></div><div class="offer__bottom-text font-primary text-normal text-left d-flex justify-content-center flex-grow-1 bg-light p-3 flex-grow-1 d-flex text-info-dark ">Velkommen til Bodø sentrums nyeste kafe. Her finner du kaker, kaffe, påsmurt lunsjmat og en stor varmmatsmeny for en hver smak. à pent mandag til lørdag 10-18</div></div></a><a class="col-6 overflow-hidden d-flex flex-column mb-4 col-lg-3" href="javascript:void(0);"><div class="overflow-hidden offer__top-image"><div class="offer-wrap bg-size-cover bg-repeat-0 bg-position-center" style="background:url(https://bcdn.cakeiteasy.com/foodspace/bakeries/84/assets/1784099144941.blob-1784099144941-hk4zjt.png?width=800&height=320&optimizer=image&format=webp) center/cover no-repeat; height: 255px; transition:.6s;"></div><div class="offer__bottom-text font-primary text-normal text-left d-flex justify-content-center flex-grow-1 bg-light p-3 flex-grow-1 d-flex text-info-dark ">På SKIFT i Glasshuset er det godt og lunt inne i all slags vær og med vår nye uteservering har vi det godt selv på finværsdager. Kafe med varmretter. Prøv vår digge napolitanske pizza, varme ostesmørbrød, lasagne, karbonadesmørbrød eller kanskje en digg cæsarsalat? </
3436div></div></a></div><style>.offer-wrap:hover{ 3437 transform: scale(1.1); 3438 transition: 1s; 3439} 3440 3441.offer__top-image { 3442 border-top-left-radius: var(--img-border-radius); 3443 border-top-right-radius: var(--img-border-radius); 3444 display: flex; 3445 flex-direction: column; 3446} 3447 3448.offer__bottom-text { 3449 border-bottom-left-radius: var(--img-border-radius); 3450 border-bottom-right-radius: var(--img-border-radius); 3451} 3452 3453.offer a:hover { 3454 text-decoration: none; 3455} 3456 3457#Offer_obj1677152147474 .offer__title { 3458 font-size: 2rem; 3459 letter-spacing: 0rem; 3460} 3461 3462#Offer_obj1677152147474 .offer__bottom-text { 3463 font-size: 1rem; 3464 letter-spacing: 0rem; 3465} 3466 3467</style></section><div id="Spacer_obj1677152718660" data-test-id="Spacer" class="Spacer_obj1677152718660 autoSpacer"><style>.Spacer_obj1677152718660.spacer { 3468 --padding: undefined; 3469 --mobile-padding: undefined; 3470 padding: var(--padding) 0 0; 3471} 3472 3473@media (max-width: 992px) { 3474 .Spacer_obj1677152718660.spacer { 3475 padding: calc(var(--padding) * 0.9) 0 0; 3476 } 3477} 3478 3479@media (max-width: 768px) { 3480 .Spacer_obj1677152718660.spacer { 3481 padding: var(--mobile-padding) 0 0; 3482 } 3483} 3484 3485@media (max-width: 425px) { 3486 .Spacer_obj1677152718660.spacer { 3487 padding: var(--mobile-padding) 0 0; 3488 } 3489} 3490 3491 3492.Spacer_obj1677152718660.autoSpacer { 3493 --auto-padding: 100px; 3494 padding: var(--auto-padding) 0 0; 3495} 3496 3497@media (max-width: 992px) { 3498 .Spacer_obj1677152718660.autoSpacer { 3499 padding: calc(var(--auto-padding) * 0.9) 0 0; 3500 } 3501} 3502 3503@media (max-width: 768px) { 3504 .Spacer_obj1677152718660.autoSpacer { 3505 padding: calc(var(--auto-padding) * 0.7) 0 0; 3506 } 3507} 3508 3509@media (max-width: 425px) { 3510 .Spacer_obj1677152718660.autoSpacer { 3511 padding: calc(var(--auto-padding) * 0.5) 0 0; 3512 } 3513}</style></div><div id="Divider_obj1766397108772" class=" 3514 w-100 3515 false 3516 divider-block__container 3517 "><div class="divider-block"></div><style>.divider-block__container { 3518 padding: 10px 15px; 3519 margin: 0 auto; 3520} 3521 3522.divider-block { 3523 width: 100%; 3524 height: 2px; 3525 background: #000; 3526} 3527 3528.divider-block_compact { 3529 max-width: 800px; 3530} 3531 3532.divider-block_max-compact { 3533 max-width: 685px; 3534} 3535 3536.w-85 > .divider-block { 3537 width: 85% !important; 3538 margin: 0 auto; 3539} 3540 3541@media screen and (max-width: 576px) { 3542 .divider-block__container { 3543 width: 100%; 3544 max-width: none; 3545 } 3546} 3547</style></div><section id="TitleWithImage_obj1652954366258" data-test-id="TitleWithImage" class="container image-text-block common-padding-bottom-blocks"><h2 class="image-text-block__title font-primary text-bold">Velkommen til din lokale baker</h2><div class="image-text-block__container"><div class="image-text-block__left-column font-secondary text-normal"><p ><p>Bodø Bakeri er hele Saltens lokale bakeri. Vi åpnet dørene i Bodø i mai 2009. Vår hovedproduksjon skjer i vårt moderne produksjonsanlegg på Alstad.</p><p>Vi er ett fullservice bakeri med brød, bakevarer, kaker, konditorvarer, påsmurt lunsj, catering og møtemat samt kaffebarer i våre utsalg. Våre bakeriutsalg finner du rundt om i Bodø, samt på Fauske.</p><p>Foruten om våre egne utsalg leverer vi daglig ferske varer til dagligvarehandelen, hoteller, kafeer, små- og store bedrifter samt komunale- og fylkeskommunale kunder i hele Salten.</p><p>Våre ansatte er her for å hjelpe deg. Med høy faglig kompetanse og ett brennende hjerte for faget ønsker vi å være din faste og lojale lokale baker og ikke minst så ønsker vi å være ditt førstevalg når du trenger brød, kaker og mat. Alle våre produkter lages helt fra bunnen av. Vi bruker ingen mikser eller halvfabrikater i våre produkter. Dermed har vi full kontroll over hva som befinner seg i våre produkter. Vi har i tillegg ett stort utvalg av allergivennlig mat som f.eks glutenfrie produkter, laktosefrie produkter og andre allergier / intoleranser.</p><p>Vårt mål har alltid vært og vil alltid være; fokus på høy kvalitet, kortreist mat, håndtverk og service.</p></p><img class="image-text-block__img image-text-block__img_type_bottom-left-pic" src="https://bcdn.cakeiteasy.com/1679512756017?width=1828&height=600&optimizer=image&format=webp&auto=compress" alt="Bakery image"></img></div><div class="image-text-block__right-column"><img class="image-text-block__img image-text-block__img_type_top-right-pic" src="https://bcdn.cakeiteasy.com/1677670739088?width=1200&height=600&optimizer
3547=image&format=webp&auto=compress" alt="Bakery image"></img><img class="image-text-block__img image-text-block__img_type_bottom-right-pic" src="https://foodspace.imgix.net/1679512732483?width=1044&height=600&auto=compress&format=webp&dpr=2" alt="Bakery image"></img></div></div></section><style> 3548.image-text-block p { 3549 margin-bottom: 1rem !important; 3550} 3551 3552.image-text-block__container { 3553 display: flex; 3554 flex-wrap: nowrap; 3555} 3556 3557.image-text-block__left-column { 3558 width: 457px; 3559 margin-right: 15px; 3560} 3561 3562.image-text-block__left-column a { 3563 color: #0000EE !important; 3564} 3565 3566.image-text-block__left-column ul { 3567 list-style: disc; 3568 margin: 0 auto; 3569 width: fit-content; 3570} 3571 3572.image-text-block__left-column ol { 3573 width: fit-content; 3574 margin: 0 auto; 3575} 3576 3577.image-text-block__left-column a:hover { 3578 text-decoration: underline!important; 3579} 3580 3581.image-text-block__left-column p:first-child { 3582 margin-bottom: 0; 3583} 3584 3585.image-text-block__left-column p:last-child { 3586 margin-bottom: 0; 3587} 3588 3589#TitleWithImage_obj1652954366258 .image-text-block__left-column * { 3590 font-size: 1rem !important; 3591 letter-spacing: 0.028125rem; 3592} 3593 3594@media (max-width: 1200px) { 3595 .image-text-block__left-column { 3596 width: 350px; 3597 } 3598} 3599 3600@media (max-width: 991px) { 3601 .image-text-block__left-column { 3602 width: 290px; 3603 } 3604} 3605 3606@media (max-width: 767px) { 3607 .image-text-block__left-column { 3608 width: 100%; 3609 margin-right: 0; 3610 } 3611} 3612 3613@media (max-width: 767px) { 3614 .image-text-block { 3615 padding-left: 15px; 3616 padding-right: 15px; 3617 } 3618} 3619 3620@media (max-width: 575px) { 3621 .image-text-block { 3622 padding-left: 0; 3623 padding-right: 0; 3624 letter-spacing: 0.0032rem; 3625 } 3626} 3627 3628@media (max-width: 991px) { 3629 .image-text-block p { 3630 line-height: 1.5; 3631 } 3632} 3633 3634@media (max-width: 575px) { 3635 .image-text-block p { 3636 padding-left: 15px; 3637 padding-right: 15px; 3638 } 3639} 3640 3641.image-text-block__title { 3642 margin-bottom: 2rem; 3643} 3644 3645#TitleWithImage_obj1652954366258 .image-text-block__title { 3646 font-size: 2.1875rem !important; 3647 letter-spacing: 0rem; 3648} 3649 3650@media (max-width: 991px) { 3651 #TitleWithImage_obj1652954366258 .image-text-block__title { 3652 margin-bottom: 1rem; 3653 } 3654} 3655 3656@media (max-width: 768px) { 3657 .image-text-block__title { 3658 padding-left: 0; 3659 } 3660} 3661 3662@media (max-width: 575px) { 3663 .image-text-block__title { 3664 padding-left: 15px; 3665 padding-right: 15px; 3666 } 3667} 3668 3669.image-text-block__img { 3670 height: auto; 3671 display: block; 3672 object-fit: contain; 3673 border-radius: var(--img-border-radius); 3674} 3675 3676.image-text-block__right-column { 3677 padding-left: 15px; 3678 width: calc(100% - 457px); 3679 display: flex; 3680 flex-direction: column; 3681 } 3682 3683@media (max-width: 1199px) { 3684 .image-text-block__right-column { 3685 width: calc(100% - 350px); 3686 } 3687} 3688 3689@media (max-width: 991px) { 3690 .image-text-block__right-column { 3691 width: calc(100% - 290px); 3692 } 3693} 3694 3695@media (max-width: 767px) { 3696 .image-text-block__right-column { 3697 display: none !important; 3698 } 3699} 3700 3701.image-text-block__img_type_bottom-left-pic { 3702 margin-top: 80px; 3703} 3704 3705@media (max-width: 1200px) { 3706 .image-text-block__img_type_bottom-left-pic { 3707 margin-top: 30px; 3708 } 3709} 3710 3711@media (max-width: 767px) { 3712 .image-text-block__img_type_bottom-left-pic { 3713 margin-top: 46px; 3714 } 3715} 3716 3717.image-text-block__img_type_top-right-pic { 3718 width: 472px; 3719 height: 580px; 3720 object-fit: cover; 3721 object-position: center; 3722 align-self: flex-end; 3723} 3724 3725@media (max-width: 1199px) { 3726 .image-text-block__img_type_top-right-pic { 3727 width: 430px; 3728 height: 528px; 3729 } 3730} 3731 3732@media (max-width: 991px) { 3733 .image-text-block__img_type_top-right-pic { 3734 width: 340px; 3735 height: 417px; 3736 } 3737} 3738 3739.image-text-block__img_type_bottom-right-pic { 3740 margin-top: 30px; 3741} 3742 3743.image-text-block__img_type_bottom-left-pic, 3744.image-text-block__img_type_bottom-right-pic { 3745 width: 457px; 3746 height: 293px; 3747 display: block; 3748 object-fit: cover; 3749 object-position: center; 3750} 3751 3752@media (max-width: 1200px) { 3753 .image-text-block__img_type_bottom-left-pic, 3754 .image-text-block__img_type_bottom-right-pic { 3755 width: 350px; 3756 height: 225px; 3757 } 3758} 3759 3760@media (max-width: 991px) { 3761 .image-text-block__img_type_bottom-left-pic, 3762 .image-text-block__img_type_bottom-right-pic { 3763 width: 290px; 3764 height: 186px; 3765 } 3766} 3767 3768@media (max-width: 766px) { 3769 .image-text-block__img_type_bottom-left-pic, 3770 .image-text-block__img_type_bottom-right-pic { 3771 width: 100%; 3772 height: 240px; 3773 } 3774} 3775</style>
3775<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22TitleWithImage%22%2C%22Id%22%3A%22TitleWithImage_obj1652954366258%22%2C%22content%22%3A%7B%22title%22%3A%22Velkommen%20til%20din%20lokale%20baker%22%2C%22description%22%3A%22%3Cp%3EBod%C3%B8%20Bakeri%20er%20hele%20Saltens%20lokale%20bakeri.%20Vi%20%C3%A5pnet%20d%C3%B8rene%20i%20Bod%C3%B8%20i%20mai%202009.%20V%C3%A5r%20hovedproduksjon%20skjer%20i%20v%C3%A5rt%20moderne%20produksjonsanlegg%20p%C3%A5%20Alstad.%3C%2Fp%3E%3Cp%3EVi%20er%20ett%20fullservice%20bakeri%20med%20br%C3%B8d%2C%20bakevarer%2C%20kaker%2C%20konditorvarer%2C%20p%C3%A5smurt%20lunsj%2C%20catering%20og%20m%C3%B8temat%20samt%20kaffebarer%20i%20v%C3%A5re%20utsalg.%20V%C3%A5re%20bakeriutsalg%20finner%20du%20rundt%20om%20i%20Bod%C3%B8%2C%20samt%20p%C3%A5%20Fauske.%3C%2Fp%3E%3Cp%3EForuten%20om%20v%C3%A5re%20egne%20utsalg%20leverer%20vi%20daglig%20ferske%20varer%20til%20dagligvarehandelen%2C%20hoteller%2C%20kafeer%2C%20sm%C3%A5-%20og%20store%20bedrifter%20samt%20komunale-%20og%20fylkeskommunale%20kunder%20i%20hele%20Salten.%3C%2Fp%3E%3Cp%3EV%C3%A5re%20ansatte%20er%20her%20for%20%C3%A5%20hjelpe%20deg.%20Med%20h%C3%B8y%20faglig%20kompetanse%20og%20ett%20brennende%20hjerte%20for%20faget%20%C3%B8nsker%20vi%20%C3%A5%20v%C3%A6re%20din%20faste%20og%20lojale%20lokale%20baker%20og%20ikke%20minst%20s%C3%A5%20%C3%B8nsker%20vi%20%C3%A5%20v%C3%A6re%20ditt%20f%C3%B8rstevalg%20n%C3%A5r%20du%20trenger%20br%C3%B8d%2C%20kaker%20og%20mat.%20Alle%20v%C3%A5re%20produkter%20lages%20helt%20fra%20bunnen%20av.%20Vi%20bruker%20ingen%20mikser%20eller%20halvfabrikater%20i%20v%C3%A5re%20produkter.%20Dermed%20har%20vi%20full%20kontroll%20over%20hva%20som%20befinner%20seg%20i%20v%C3%A5re%20produkter.%20Vi%20har%20i%20tillegg%20ett%20stort%20utvalg%20av%20allergivennlig%20mat%20som%20f.eks%20glutenfrie%20produkter%2C%20laktosefrie%20produkter%20og%20andre%20allergier%20%2F%20intoleranser.%3C%2Fp%3E%3Cp%3EV%C3%A5rt%20m%C3%A5l%20har%20alltid%20v%C3%A6rt%20og%20vil%20alltid%20v%C3%A6re%3B%20fokus%20p%C3%A5%20h%C3%B8y%20kvalitet%2C%20kortreist%20mat%2C%20h%C3%A5ndtverk%20og%20service.%3C%2Fp%3E%22%2C%22images%22%3A%7B%22topRightImage%22%3A%22https%3A%2F%2Fmars-images.imgix.net%2F1677670739088%3Fauto%3Dformat%26fit%3Dclip%26w%3D1200%26%3Dundefined%22%2C%22bottomRightImage%22%3A%22https%3A%2F%2Fmars-images.imgix.net%2F1679512732483%3Fauto%3Dformat%26fit%3Dclip%26w%3D1200%26%3Dundefined%22%2C%22bottomLeftImage%22%3A%22https%3A%2F%2Fmars-images.imgix.net%2F1679512756017%3Fauto%3Dformat%26fit%3Dclip%26w%3D1200%26%3Dundefined%22%7D%7D%2C%22ui%22%3A%7B%22font%22%3A%7B%22fontDesktop%22%3A%7B%22titleFontSettings%22%3A%7B%22fontFamily%22%3A%22font-primary%22%2C%22fontSize%22%3A%2235%22%2C%22fontWeight%22%3A%22text-bold%22%2C%22letterSpacing%22%3A%220%22%2C%22textPosition%22%3A%22text-left%22%7D%2C%22contentFontSettings%22%3A%7B%22fontFamily%22%3A%22font-secondary%22%2C%22fontSize%22%3A%2216%22%2C%22fontWeight%22%3A%22text-normal%22%2C%22letterSpacing%22%3A%220.45%22%2C%22textPosition%22%3A%22text-left%22%7D%7D%2C%22fontMobile%22%3A%7B%7D%2C%22fontAsDesktop%22%3Atrue%7D%7D%2C%22block-id%22%3A%22TitleWithImage_obj1652954366258%22%2C%22titleFontSize%22%3A%222.1875%22%2C%22titleLetterSpacing%22%3A%220%22%2C%22contentFontSize%22%3A%221%22%2C%22contentLetterSpacing%22%3A%220.028125%22%2C%22children%22%3Anull%7D")); 3776</script>
3776<div id="Spacer_obj1650544554170" data-test-id="MobileSpacer" class="Spacer_obj1650544554170 spacer"><style>.Spacer_obj1650544554170.spacer { 3777 --padding: 98px; 3778 --mobile-padding: 91px; 3779 padding: var(--padding) 0 0; 3780} 3781 3782@media (max-width: 992px) { 3783 .Spacer_obj1650544554170.spacer { 3784 padding: calc(var(--padding) * 0.9) 0 0; 3785 } 3786} 3787 3788@media (max-width: 768px) { 3789 .Spacer_obj1650544554170.spacer { 3790 padding: var(--mobile-padding) 0 0; 3791 } 3792} 3793 3794@media (max-width: 425px) { 3795 .Spacer_obj1650544554170.spacer { 3796 padding: var(--mobile-padding) 0 0; 3797 } 3798} 3799 3800 3801.Spacer_obj1650544554170.autoSpacer { 3802 --auto-padding: undefined; 3803 padding: var(--auto-padding) 0 0; 3804} 3805 3806@media (max-width: 992px) { 3807 .Spacer_obj1650544554170.autoSpacer { 3808 padding: calc(var(--auto-padding) * 0.9) 0 0; 3809 } 3810} 3811 3812@media (max-width: 768px) { 3813 .Spacer_obj1650544554170.autoSpacer { 3814 padding: calc(var(--auto-padding) * 0.7) 0 0; 3815 } 3816} 3817 3818@media (max-width: 425px) { 3819 .Spacer_obj1650544554170.autoSpacer { 3820 padding: calc(var(--auto-padding) * 0.5) 0 0; 3821 } 3822}</style></div><section id="InstagramFeed_obj1676367541896" data-test-id="InstagramFeed" class="intagram-container_height intagram-container container d-flex flex-column align-items-center overflow-hidden common-padding-bottom-blocks"><div style="width:85%" class="intagram__title-container mb-5"><hr class="intagram__title-line"></hr><h2 class="intagram__title-text font-primary text-normal">Følg oss på Instagram</h2><hr class="intagram__title-line"></hr></div><div class="w-85">
3822<script src="https://apps.elfsight.com/p/platform.js" defer></script>
3822 <div class="elfsight-app-5654fbe4-094f-4571-8e46-2ae1033b83b6"></div></div><div class="pt-3 d-flex justify-content-center"><div id="obj800603f7fb72443a8a7b541c6a321e53"><style>.social-icon { 3823 width:39px; 3824 height:39px; 3825} 3826 3827.social-icon svg { 3828 padding: 4.5px; 3829} 3830 3831.social-icon:hover { 3832 text-decoration: none; 3833} 3834 3835.rounded-circle { 3836 margin-right: 9px; 3837} 3838 3839.rounded-circle:last-child { 3840 margin-right: 0px; 3841} 3842 3843.rounded-circle .fa-facebook-f { 3844 font-size: 21px; 3845 letter-spacing: 0.028rem; 3846} 3847 3848.rounded-circle .fa-instagram { 3849 font-size: 26px; 3850 height: 25px; 3851 letter-spacing: 0.028rem; 3852}</style><div class="d-flex rounded-circle__container"><a class="rounded-circle cursor-pointer border border-2 fs-3 d-flex justify-content-center align-items-center social-icon" style="undefined" target="_blank" href="https://www.facebook.com/Bodobakeri/"><i class="fab fa-facebook-f"></i></a><a class="rounded-circle cursor-pointer border border-2 fs-3 d-flex justify-content-center align-items-center social-icon" style="undefined" target="_blank" href="https://www.instagram.com/bodobakeri/"><i class="fab fa-instagram"></i></a></div></div></div><style>.intagram__title-container { 3853 display: grid; 3854 grid-template-columns: 1fr max-content 1fr; 3855 justify-content: center; 3856} 3857 3858.intagram__title-text { 3859 margin: auto 1vw .5rem; 3860} 3861 3862.intagram__title-line { 3863 margin: auto 0; 3864 height: 2px!important; 3865 color: #000; 3866 opacity: 1; 3867} 3868 3869#InstagramFeed_obj1676367541896 .intagram__title-text { 3870 font-size: 1.5625rem; 3871 letter-spacing: 0rem; 3872} 3873 3874@media (max-width: 425px) { 3875 .intagram__title-text { 3876 max-width: 90vmin; 3877 text-align: center; 3878 } 3879} 3880 3881/* remove code above and intagram-container_height class from jsx after tollbar updates 3882do the same in check delivery block */ 3883.intagram-container_height.intagram-container { 3884 min-height: 1070px; 3885} 3886 3887@media screen and (max-width: 1200px) { 3888 .intagram-container_height.intagram-container { 3889 min-height: 910px; 3890 } 3891} 3892 3893@media screen and (max-width: 1000px) { 3894 .intagram-container_height.intagram-container { 3895 min-height: 420px; 3896 } 3897} 3898</style></section><div id="Spacer_obj1676367533465" data-test-id="MobileSpacer" class="Spacer_obj1676367533465 spacer"><style>.Spacer_obj1676367533465.spacer { 3899 --padding: 80px; 3900 --mobile-padding: 40px; 3901 padding: var(--padding) 0 0; 3902} 3903 3904@media (max-width: 992px) { 3905 .Spacer_obj1676367533465.spacer { 3906 padding: calc(var(--padding) * 0.9) 0 0; 3907 } 3908} 3909 3910@media (max-width: 768px) { 3911 .Spacer_obj1676367533465.spacer { 3912 padding: var(--mobile-padding) 0 0; 3913 } 3914} 3915 3916@media (max-width: 425px) { 3917 .Spacer_obj1676367533465.spacer { 3918 padding: var(--mobile-padding) 0 0; 3919 } 3920} 3921 3922 3923.Spacer_obj1676367533465.autoSpacer { 3924 --auto-padding: undefined; 3925 padding: var(--auto-padding) 0 0; 3926} 3927 3928@media (max-width: 992px) { 3929 .Spacer_obj1676367533465.autoSpacer { 3930 padding: calc(var(--auto-padding) * 0.9) 0 0; 3931 } 3932} 3933 3934@media (max-width: 768px) { 3935 .Spacer_obj1676367533465.autoSpacer { 3936 padding: calc(var(--auto-padding) * 0.7) 0 0; 3937 } 3938} 3939 3940@media (max-width: 425px) { 3941 .Spacer_obj1676367533465.autoSpacer { 3942 padding: calc(var(--auto-padding) * 0.5) 0 0; 3943 } 3944}</style></div><section id="CheckDelivery_obj1650544835447" data-test-id="CheckDelivery" class="map__no-bg"><div class="map container common-padding-bottom-blocks"><div class="map__tabs d-flex"><button id="objc5f96c07329141d693816c2b89498cc1" custom-data="Choose outlet" class="tab-button font-secondary text-bold">Her finner du oss</button><style>#objc5f96c07329141d693816c2b89498cc1.tab-button { 3945 font-size: 1.125rem; 3946 letter-spacing: 0.03125rem; 3947} 3948 3949.tab-button { 3950 padding: 9px 0; 3951 line-height: 1.5; 3952 cursor: pointer; 3953 background: transparent; 3954 border: none; 3955 margin-right: 30px; 3956 color: inherit; 3957} 3958 3959@media (max-width: 767px) { 3960 .tab-button { 3961 margin-right: 20px; 3962 } 3963} 3964 3965@media (max-width: 575px) { 3966 #objc5f96c07329141d693816c2b89498cc1.tab-button { 3967 font-size: 1rem; 3968 margin-right: 15px; 3969 } 3970} 3971</style>
3971<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22TabButton%22%2C%22color%22%3A%22%23ffa301%22%2C%22title%22%3A%22Her%20finner%20du%20oss%22%2C%22custom%22%3A%22Choose%20outlet%22%2C%22fontSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22Id%22%3A%22objc5f96c07329141d693816c2b89498cc1%22%2C%22fontSize%22%3A%221.125%22%2C%22letterSpacing%22%3A%220.03125%22%2C%22children%22%3Anull%7D"));const tabs = document.querySelectorAll('.tab-button'); 3972const contents = document.querySelectorAll('.tab-content'); 3973tabs[0].classList.add('tab-button_active'); 3974contents[0].style.display = "block"; 3975 3976const handleTabClick = (e) => { 3977 tabs.forEach((i => { 3978 if (i.classList.contains('tab-button_active')) { 3979 i.classList.remove('tab-button_active') 3980 } 3981 })); 3982 contents.forEach(i => { 3983 i.style.display = "none"; 3984 }); 3985 e.currentTarget.classList.add('tab-button_active'); 3986 const featureName = e.currentTarget.getAttribute('custom-data'); 3987 document.getElementById(featureName).style.display = "block"; 3988}; 3989 3990tabs.forEach(t => { 3991 t.addEventListener('click', handleTabClick); 3992});</script>
3992<button id="obj27d702f027034f1fb1f42371269b47ef" custom-data="Choose delivery" class="tab-button font-secondary text-bold">Levering på dør</button><style>#obj27d702f027034f1fb1f42371269b47ef.tab-button { 3993 font-size: 1.125rem; 3994 letter-spacing: 0.03125rem; 3995} 3996 3997.tab-button { 3998 padding: 9px 0; 3999 line-height: 1.5; 4000 cursor: pointer; 4001 background: transparent; 4002 border: none; 4003 margin-right: 30px; 4004 color: inherit; 4005} 4006 4007@media (max-width: 767px) { 4008 .tab-button { 4009 margin-right: 20px; 4010 } 4011} 4012 4013@media (max-width: 575px) { 4014 #obj27d702f027034f1fb1f42371269b47ef.tab-button { 4015 font-size: 1rem; 4016 margin-right: 15px; 4017 } 4018} 4019</style>
4019<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22TabButton%22%2C%22color%22%3A%22%23ffa301%22%2C%22title%22%3A%22Levering%20p%C3%A5%20d%C3%B8r%22%2C%22custom%22%3A%22Choose%20delivery%22%2C%22fontSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22Id%22%3A%22obj27d702f027034f1fb1f42371269b47ef%22%2C%22fontSize%22%3A%221.125%22%2C%22letterSpacing%22%3A%220.03125%22%2C%22children%22%3Anull%7D"));const tabs = document.querySelectorAll('.tab-button'); 4020const contents = document.querySelectorAll('.tab-content'); 4021tabs[0].classList.add('tab-button_active'); 4022contents[0].style.display = "block"; 4023 4024const handleTabClick = (e) => { 4025 tabs.forEach((i => { 4026 if (i.classList.contains('tab-button_active')) { 4027 i.classList.remove('tab-button_active') 4028 } 4029 })); 4030 contents.forEach(i => { 4031 i.style.display = "none"; 4032 }); 4033 e.currentTarget.classList.add('tab-button_active'); 4034 const featureName = e.currentTarget.getAttribute('custom-data'); 4035 document.getElementById(featureName).style.display = "block"; 4036}; 4037 4038tabs.forEach(t => { 4039 t.addEventListener('click', handleTabClick); 4040});</script>
4040</div><div class="tab-content check-delivery__map" id="Choose outlet"><iframe id="iframe" class="desktop-map" data-src="/shop/standalone/outlets-map?font=%257B%2522category%2522%253A%2522sans-serif%2522%257D"></iframe></div><div class="tab-content check-delivery-to-door Lato" id="Choose delivery"><div id="undefined"> 4041<div id="obj5af87e10588e4a789ee2ac4c85142932_VUE"> 4042 <div class="delivery-check"> 4043 <p 4044 class="delivery-check__label"> 4045 Skriv postnummer 4046 </p> 4047 <div class="d-flex align-items-end delivery-check__wrap"> 4048 <form class="delivery-check__form d-flex flex-column"> 4049 <input 4050 class="delivery-check__control delivery-check__input" 4051 placeholder="Eks. 0550" 4052 :value="formattedPostNumber" 4053 v-model="formattedPostNumber" 4054 @keydown="formatPostNumber" 4055 @input="getPostNumberInfo" 4056 :maxlength="maskDigits" 4057 /> 4058 <svg class="spinner" v-if="isLoading" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 4059 <circle class="path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> 4060 </svg> 4061 </form> 4062 <div class="delivery-check__control delivery-check__result d-flex align-items-center"> 4063 {{ String(formattedPostNumber).length > 0 ? placeName : '' }} 4064 </div> 4065 </div> 4066 <p v-if="isNotFound && String(formattedPostNumber).length === maskDigits" 4067 class="delivery-check__impossible mt-3">Ingen levering tilgjengelig i {{ formattedPostNumber }}</p> 4068 <div v-if="hasDeliveryPrices" class="delivery-check__price-block"> 4069 <h3 class="delivery-check__title">Leveringspriser</h3> 4070 <ul class="delivery-check__list"> 4071 <li 4072 v-for="item in deliveryPrices" 4073 :key="item.type" 4074 v-if="item.isActive" 4075 class="delivery-check__item d-flex align-items-start"> 4076 <span class="delivery-check__day">{{ item.type }}</span> 4077 <div> 4078 <div class="delivery-check__common d-flex"> 4079 <div 4080 v-if="!item.isActive" 4081 class="delivery-check__time"> 4082 Stengt 4083 </div> 4084 <div 4085 v-if="item.isActive" 4086 class="delivery-check__time"> 4087 {{ getTime(item.timeRange.start, item.timeRange.end) }} 4088 </div> 4089 <div 4090 v-if="item.isActive" 4091 class="delivery-check__cost"> 4092 {{ item.price }} kr 4093 </div> 4094 </div> 4095 <div 4096 class="delivery-check__custom d-flex" 4097 v-for="item in item.customPrices" 4098 :key="Math.random()"> 4099 <div 4100 class="delivery-check__time"> 4101 {{ getTime(item.start, item.end) }} 4102 </div> 4103 <div 4104 class="delivery-check__cost"> 4105 {{ item.price }} kr 4106 </div> 4107 </div> 4108 </div> 4109 </li> 4110 </ul> 4111 </div> 4112 </div> 4113</div> 4114</div><style> 4115.delivery-check { 4116 border: 1px solid #c2c2c2; 4117 padding: 20px; 4118 background-color: #fff; 4119} 4120 4121@media (min-width: 992px) { 4122 .delivery-check { 4123 padding: 40px 30px 20px; 4124 } 4125} 4126 4127.delivery-check__form { 4128 position: relative; 4129 width: 40%; 4130} 4131 4132.delivery-check__wrap { 4133 gap: 30px; 4134 max-width: 427.6px; 4135 margin-bottom: 20px; 4136} 4137 4138.delivery-check__label { 4139 font-size: 1.125rem; 4140 font-weight: 700; 4141 line-height: 1.5; 4142 margin-top: 0; 4143 margin-bottom: 0.4rem; 4144} 4145 4146.delivery-check__control { 4147 height: calc(2.25rem + 4px); 4148 line-height: calc(2.25rem + 4px); 4149 padding: 0.375rem 0.75rem; 4150 font-size: 1rem; 4151 border-radius: 0.25rem; 4152 border: 1px solid #ced4da; 4153 color: #333; 4154} 4155 4156.delivery-check__input { 4157 max-width: 160px; 4158 width: 100%; 4159 transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out; 4160 background: transparent; 4161 outline: none; 4162} 4163 4164.delivery-check__input::-webkit-outer-spin-button, 4165.delivery-check__input::-webkit-inner-spin-button { 4166 -webkit-appearance: none; 4167 margin: 0; 4168} 4169 4170input[type='number'] { 4171 -moz-appearance: textfield; 4172} 4173 4174.delivery-check__input:active, 4175.delivery-check__input:focus, 4176.delivery-check__input:focus-visible { 4177 border-color: var(--theme-color); 4178 box-shadow: 0 0 0 1px var(--theme-color); 4179} 4180 4181.delivery-check__input:focus::-webkit-input-placeholder, 4182.delivery-check__input:hover::-webkit-input-placeholder { 4183 color: transparent 4184} 4185 4186.delivery-check__input:focus::-moz-placeholder, 4187.delivery-check__input:hover::-moz-placeholder { 4188 color: transparent 4189} 4190 4191.delivery-check__input:focus:-moz-placeholder, 4192.delivery-check__input:hover:-moz-placeholder { 4193 color: transparent 4194} 4195 4196.delivery-check__input:focus:-ms-input-placeholder, 4197.delivery-check__input:hover:-ms-input-placeholder { 4198 color: transparent 4199} 4200 4201.delivery-check__result { 4202 background-color: #e9ecef; 4203 max-width: 237px; 4204 width: 58.333333%; 4205} 4206 4207.delivery-check__item { 4208 border-bottom: 1px solid #EBEBEB; 4209 padding: 0.4rem 0 0.4rem; 4210 max-width: 428px; 4211 line-height: 1.5; 4212 margin-bottom: 0; 4213} 4214 4215.delivery-check__item:last-child { 4216 border-bottom: none; 4217} 4218 4219.delivery-check__title { 4220 font-size: 1.125rem; 4221 font-weight: 700; 4222 line-height: 1.2; 4223 margin-bottom: 8px; 4224 margin-top: 20px; 4225} 4226 4227.delivery-check__day { 4228 font-size: .8125rem; 4229 font-weight: 700; 4230 width: 75px; 4231 letter-spacing: normal; 4232} 4233 4234@media (max-width: 992px) { 4235 .delivery-check__day { 4236 width: 60px; 4237 } 4238} 4239 4240.delivery-check__time { 4241 margin: 0 19px 0 24px; 4242 font-size: .8125rem; 4243 letter-spacing: normal; 4244 min-width: 85px; 4245} 4246 4247.delivery-check__cost { 4248 font-size: .8125rem; 4249 font-weight: 700; 4250 letter-spacing: normal; 4251} 4252 4253.delivery-check__impossible { 4254 font-weight: 700; 4255} 4256 4257.delivery-check__form .spinner { 4258 width: 26px; 4259 position: absolute; 4260 right: 7%; 4261 top: 19%; 4262 animation: rotator 1.4s linear infinite; 4263} 4264 4265.delivery-check__form .spinner .path { 4266 stroke-dasharray: 187; 4267 stroke-dashoffset: 0; 4268 stroke: var(--theme-color); 4269 transform-origin: center; 4270 animation: dash 1.4s ease-in-out infinite; 4271} 4272 4273@keyframes rotator { 4274 0% { 4275 transform: rotate(0deg); 4276 } 4277 100% { 4278 transform: rotate(270deg); 4279 } 4280} 4281 4282@keyframes dash { 4283 0% { 4284 stroke-dashoffset: 187; 4285 } 4286 50% { 4287 stroke-dashoffset: 45; 4288 transform: rotate(135deg); 4289 } 4290 100% { 4291 stroke-dashoffset: 187; 4292 transform: rotate(450deg); 4293 } 4294}�</style>
4294<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22CheckDeliveryToDoor%22%2C%22Id%22%3A%22obj5af87e10588e4a789ee2ac4c85142932%22%2C%22color%22%3A%22%23ffa301%22%2C%22children%22%3Anull%2C%22locale%22%3A%22NO%22%2C%22bakeryCode%22%3A%22NO%22%2C%22bakeryId%22%3A84%7D")); 4295const vueApp = new MarsVue( 4296 'obj5af87e10588e4a789ee2ac4c85142932_VUE', 4297 { 4298 ...data, 4299 methods: [ 4300 { 4301 name: 'getPlace', 4302 block: 'CheckDeliveryToDoor' 4303 }, 4304 { 4305 name: 'getDeliveryPrices', 4306 block: 'CheckDeliveryToDoor' 4307 } 4308 ] 4309 }, 4310 { 4311 data: { 4312 ...data, 4313 locale: data.bakeryCode, 4314 query: '', 4315 formattedPostNumber: null, 4316 placeName: '', 4317 notFoundLabel: 'Ikke funnet', 4318 deliveryPrices: [], 4319 isNotFound: false, 4320 hasDeliveryPrices: false, 4321 isLoading: false, 4322 bakeryId: data.bakeryId 4323 }, 4324 computed: { 4325 maskDigits: function () { 4326 if (this.locale === 'SE') { 4327 return '999 99'.length; 4328 } else { 4329 return '9999'.length; 4330 } 4331 } 4332 }, 4333 methods: { 4334 getPostNumberInfo() { 4335 if (String(this.formattedPostNumber).length === this.maskDigits) { 4336 this.hasDeliveryPrices = false; 4337 this.isNotFound = false; 4338 this.deliveryPrices = []; 4339 this.placeName = ''; 4340 this.isLoading = true; 4341 Promise.allSettled([ 4342 this.getPlace(), 4343 this.getDeliveryPrices() 4344 ]) 4345 .then(([placeResult, pricesResult]) => { 4346 const placeValue = placeResult.status === 'fulfilled' ? placeResult.value : null; 4347 const pricesValue = pricesResult.status === 'fulfilled' ? pricesResult.value : []; 4348 const hasPlace = !!placeValue; 4349 const hasPrices = Array.isArray(pricesValue) && pricesValue.length > 0; 4350 4351 if (!hasPlace || !hasPrices) { 4352 this.placeName = hasPlace ? placeValue : this.notFoundLabel; 4353 this.isNotFound = true; 4354 this.hasDeliveryPrices = false; 4355 this.deliveryPrices = []; 4356 return; 4357 } 4358 4359 this.placeName = placeValue; 4360 this.deliveryPrices = pricesValue; 4361 this.hasDeliveryPrices = true; 4362 this.isNotFound = false; 4363 }) 4364 .finally(() => { 4365 this.isLoading = false; 4366 }); 4367 } 4368 }, 4369 convertMinToHours(time) { 4370 return { 4371 hours: ((time - (time % 60)) / 60).toString().padStart(2, '0'), 4372 mins: (time % 60).toString().padStart(2, '0') 4373 } 4374 }, 4375 getTime(startMin, endMin) { 4376 const startHour = this.convertMinToHours(startMin); 4377 const endHour = this.convertMinToHours(endMin); 4378 return `${startHour.hours}:${startHour.mins} - ${endHour.hours}:${endHour.mins}`; 4379 }, 4380 getPlace() { 4381 return this.api.getPlace(this.formattedPostNumber, this.locale) 4382 .then((data) => { 4383 if (!data) { 4384 return null; 4385 } 4386 const placeName = data.placeName !== '' ? data.placeName : data.cityName; 4387 return placeName || null; 4388 }); 4389 }, 4390 getDeliveryPrices() { 4391 return this.api.getDeliveryPrices(this.formattedPostNumber, this.locale); 4392 }, 4393 formatPostNumber(e) { 4394 const key = e.key 4395 if (!/^\d+/g.test(key)) { 4396 e.preventDefault() 4397 } 4398 this.formattedPostNumber = this.wearMask(e, e.target.value); 4399 }, 4400 wearMask(e, numstr) { 4401 if (e.keyCode !== 8) { 4402 if (numstr.length === 3 && this.locale === 'SE') { 4403 const digits = numstr.substring(0, 3); 4404 return `${digits} ` 4405 } else { 4406 return numstr 4407 } 4408 } else { 4409 if (numstr.length === 5 && this.locale === 'SE') { 4410 const digits = numstr.substring(0, numstr.length - 2); 4411 return `${digits}` 4412 } else { 4413 const digits = numstr.substring(0, numstr.length - 1); 4414 return `${digits}` 4415 } 4416 } 4417 } 4418 } 4419 } 4420);�</script>
4420</div></div><style> 4421.map .tab-content { 4422 display: none; 4423} 4424 4425.tab-content { 4426 background: transparent; 4427 --theme-color: #ffa301; 4428} 4429 4430@media (min-width: 992px) { 4431 .map__bg { 4432 padding-top: 60px; 4433 padding-bottom: 60px; 4434 background-image: ; 4435 background-position: center; 4436 background-size: cover; 4437 } 4438 4439 .map__bg .tab-button { 4440 background-color: #ffa301; 4441 color: #fff !important; 4442 padding: 12px 20px; 4443 border-radius: 5px 5px 0 0; 4444 border-bottom: 0; 4445 margin-right: 0px; 4446 } 4447 4448 .map__bg .tab-button_active { 4449 border-bottom: 0; 4450 background-color: #fff; 4451 color: #ffa301 !important; 4452 } 4453} 4454 4455@media (max-width: 992px) { 4456 .map__bg .tab-button_active { 4457 color: #ffa301; 4458 border-bottom: 5px solid #ffa301; 4459 } 4460} 4461 4462 4463@media screen and (min-width: 987px) { 4464 .check-delivery__map { 4465 min-height: 500px; 4466 } 4467} 4468 4469.desktop-map { 4470 height: 500px; 4471 display: block!important; 4472} 4473 4474@media screen and (max-width: 986px) { 4475 .desktop-map { 4476 min-height: 100px; 4477 height: auto; 4478 } 4479} 4480.map__no-bg .tab-button_active { 4481 color: #ffa301; 4482 border-bottom: 5px solid #ffa301; 4483} 4484/* .desktop-map { 4485 display: none; 4486} 4487 4488@media screen and (min-width: 991px) { 4489 .desktop-map { 4490 height: 500px; 4491 display: block!important; 4492 } 4493} */</style></section>
4493<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22CheckDelivery%22%2C%22Id%22%3A%22CheckDelivery_obj1650544835447%22%2C%22content%22%3A%7B%7D%2C%22ui%22%3A%7B%22font%22%3A%7B%22fontSettings%22%3A%7B%22fontFamily%22%3Anull%2C%22fontSize%22%3Anull%2C%22fontWeight%22%3Anull%2C%22letterSpacing%22%3Anull%7D%2C%22contentFontType%22%3A%22Lato%22%7D%2C%22blockBackground%22%3A%7B%22background%22%3A%22%22%7D%7D%2C%22block-id%22%3A%22CheckDelivery_obj1650544835447%22%2C%22bgUrl%22%3A%22%22%2C%22color%22%3A%22%23ffa301%22%2C%22activeTextColorWithBg%22%3A%22%23ffa301%22%2C%22disableTextColorWithBg%22%3A%22%23fff%22%2C%22bgColor%22%3A%22%23ffa301%22%2C%22children%22%3Anull%7D"));window.onmessage = (event) => { 4494 if (event.origin === window.location.origin) { 4495 resizeContainerEvent(event.data); 4496 } 4497}; 4498 4499function resizeContainerEvent(eventData) { 4500 const { height } = eventData; 4501 4502 if (!height) return; 4503 4504 const iframe = document.querySelector(`#${data.Id} iframe`); 4505 if (!iframe) return; 4506 4507 iframe.style.height = `${height}px`; 4508} 4509 4510// Each map iframe creates a paid Stadia map, so it gets its address (data-src â src) only once 4511// it is within 1000px of the screen. A closed tab is display:none and never intersects until it 4512// is opened. No IntersectionObserver (very old browsers) â load at once, never leave it empty. 4513function loadMapsWhenNear() { 4514 const frames = document.querySelectorAll(`#${data.Id} iframe[data-src]`); 4515 const load = (frame) => { 4516 if (!frame.getAttribute('src')) frame.setAttribute('src', frame.getAttribute('data-src')); 4517 }; 4518 4519 if (!('IntersectionObserver' in window)) { 4520 frames.forEach(load); 4521 return; 4522 } 4523 4524 const observer = new IntersectionObserver((entries) => { 4525 entries.forEach((entry) => { 4526 if (!entry.isIntersecting) return; 4527 load(entry.target); 4528 observer.unobserve(entry.target); 4529 }); 4530 }, { rootMargin: '1000px 0px' }); 4531 4532 frames.forEach((frame) => observer.observe(frame)); 4533} 4534 4535loadMapsWhenNear(); 4536</script>
4536<div id="Spacer_obj1677672389883" data-test-id="Spacer" class="Spacer_obj1677672389883 autoSpacer"><style>.Spacer_obj1677672389883.spacer { 4537 --padding: undefined; 4538 --mobile-padding: undefined; 4539 padding: var(--padding) 0 0; 4540} 4541 4542@media (max-width: 992px) { 4543 .Spacer_obj1677672389883.spacer { 4544 padding: calc(var(--padding) * 0.9) 0 0; 4545 } 4546} 4547 4548@media (max-width: 768px) { 4549 .Spacer_obj1677672389883.spacer { 4550 padding: var(--mobile-padding) 0 0; 4551 } 4552} 4553 4554@media (max-width: 425px) { 4555 .Spacer_obj1677672389883.spacer { 4556 padding: var(--mobile-padding) 0 0; 4557 } 4558} 4559 4560 4561.Spacer_obj1677672389883.autoSpacer { 4562 --auto-padding: 80px; 4563 padding: var(--auto-padding) 0 0; 4564} 4565 4566@media (max-width: 992px) { 4567 .Spacer_obj1677672389883.autoSpacer { 4568 padding: calc(var(--auto-padding) * 0.9) 0 0; 4569 } 4570} 4571 4572@media (max-width: 768px) { 4573 .Spacer_obj1677672389883.autoSpacer { 4574 padding: calc(var(--auto-padding) * 0.7) 0 0; 4575 } 4576} 4577 4578@media (max-width: 425px) { 4579 .Spacer_obj1677672389883.autoSpacer { 4580 padding: calc(var(--auto-padding) * 0.5) 0 0; 4581 } 4582}</style></div><section id="Gallery_obj1677152792294" data-test-id="Gallery" class="common-padding-bottom-blocks"><div class="container d-flex justify-content-between align-items-center small-gallery"><a class="d-block small-gallery__wrapper" onClick="Modal.open('/bakery/fullsize-image/image?url=https://bcdn.cakeiteasy.com/1677673256696?width=1080&height=1080&optimizer=image&format=webp&auto=compress&fit=crop', {hideModalHeader: true, domId: 'custom', width: '540px', roundCorners: true })"><img class="small-gallery__img" src="https://bcdn.cakeiteasy.com/1677673256696?width=700&height=700&optimizer=image&format=webp&auto=compress&fit=crop" alt="Bakery image"></img></a><a class="d-block small-gallery__wrapper" onClick="Modal.open('/bakery/fullsize-image/image?url=https://bcdn.cakeiteasy.com/1677673326436?width=1080&height=1080&optimizer=image&format=webp&auto=compress&fit=crop', {hideModalHeader: true, domId: 'custom', width: '540px', roundCorners: true })"><img class="small-gallery__img" src="https://bcdn.cakeiteasy.com/1677673326436?width=700&height=700&optimizer=image&format=webp&auto=compress&fit=crop" alt="Bakery image"></img></a><a class="d-block small-gallery__wrapper" onClick="Modal.open('/bakery/fullsize-image/image?url=https://bcdn.cakeiteasy.com/1677672378539?width=1080&height=1080&optimizer=image&format=webp&auto=compress&fit=crop', {hideModalHeader: true, domId: 'custom', width: '540px', roundCorners: true })"><img class="small-gallery__img" src="https://bcdn.cakeiteasy.com/1677672378539?width=700&height=700&optimizer=image&format=webp&auto=compress&fit=crop" alt="Bakery image"></img></a></div></section><style> 4583.gap { 4584 gap: 9px; 4585} 4586 4587.xmodal_header_1 .fullsize__image .xmodal_header_1 { 4588 border: none!important; 4589} 4590 4591.xmodal-header:not(.show) .xmodal-header-text { 4592 display: none!important; 4593} 4594 4595/* .xmodal-container { 4596 border-radius:0!important; 4597} */ 4598 4599/* .small-gallery { 4600 padding-top: 48px; 4601 padding-bottom: 48px; 4602} */ 4603 4604@media (max-width: 992px) { 4605 .small-gallery { 4606 padding: 0px 15px; 4607 } 4608} 4609 4610@media (max-width: 575px) { 4611 .small-gallery { 4612 padding: 0px 0px; 4613 } 4614} 4615 4616@media (max-width: 375px) { 4617 .small-gallery { 4618 padding-right: 0; 4619 padding-left: 0; 4620 } 4621} 4622 4623.small-gallery__wrapper { 4624 cursor: pointer; 4625} 4626 4627.small-gallery__img { 4628 width: 350px; 4629 height: 350px; 4630 display: block; 4631 object-fit: cover; 4632 object-position: top center; 4633 border-radius: var(--img-border-radius); 4634} 4635 4636@media (max-width: 1200px){ 4637 .small-gallery__img { 4638 width: 290px; 4639 height: 290px; 4640 } 4641} 4642 4643@media (max-width: 992px){ 4644 .small-gallery__img { 4645 width: 223px; 4646 height: 223px; 4647 } 4648} 4649 4650@media (max-width: 768px){ 4651 .small-gallery__img { 4652 width: 100%; 4653 height: 100%; 4654 } 4655} 4656 4657@media (max-width: 768px) { 4658 .small-gallery__wrapper { 4659 width: calc(100% - 18px); 4660 } 4661} 4662</style>
4662<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22Gallery%22%2C%22Id%22%3A%22Gallery_obj1677152792294%22%2C%22content%22%3A%7B%22firstImage%22%3A%7B%22image%22%3A%22https%3A%2F%2Fmarscode.s3.eu-north-1.amazonaws.com%2Fassets%2Fimg%2F1677673256696%22%7D%2C%22secondImage%22%3A%7B%22image%22%3A%22https%3A%2F%2Fmarscode.s3.eu-north-1.amazonaws.com%2Fassets%2Fimg%2F1677673326436%22%7D%2C%22thirdImage%22%3A%7B%22image%22%3A%22https%3A%2F%2Fmars-images.imgix.net%2F1677672378539%3Fauto%3Dcompress%26fit%3Dclip%26w%3D1200%22%7D%7D%2C%22block-id%22%3A%22Gallery_obj1677152792294%22%2C%22children%22%3Anull%7D")); 4663</script>
4663<div id="Spacer_obj1652954678242" data-test-id="MobileSpacer" class="Spacer_obj1652954678242 spacer"><style>.Spacer_obj1652954678242.spacer { 4664 --padding: 100px; 4665 --mobile-padding: 88px; 4666 padding: var(--padding) 0 0; 4667} 4668 4669@media (max-width: 992px) { 4670 .Spacer_obj1652954678242.spacer { 4671 padding: calc(var(--padding) * 0.9) 0 0; 4672 } 4673} 4674 4675@media (max-width: 768px) { 4676 .Spacer_obj1652954678242.spacer { 4677 padding: var(--mobile-padding) 0 0; 4678 } 4679} 4680 4681@media (max-width: 425px) { 4682 .Spacer_obj1652954678242.spacer { 4683 padding: var(--mobile-padding) 0 0; 4684 } 4685} 4686 4687 4688.Spacer_obj1652954678242.autoSpacer { 4689 --auto-padding: undefined; 4690 padding: var(--auto-padding) 0 0; 4691} 4692 4693@media (max-width: 992px) { 4694 .Spacer_obj1652954678242.autoSpacer { 4695 padding: calc(var(--auto-padding) * 0.9) 0 0; 4696 } 4697} 4698 4699@media (max-width: 768px) { 4700 .Spacer_obj1652954678242.autoSpacer { 4701 padding: calc(var(--auto-padding) * 0.7) 0 0; 4702 } 4703} 4704 4705@media (max-width: 425px) { 4706 .Spacer_obj1652954678242.autoSpacer { 4707 padding: calc(var(--auto-padding) * 0.5) 0 0; 4708 } 4709}</style></div></div></div><section id="FooterContainer"><footer id="CommonFooter" data-test-id="SimplifiedFooter" style="background-color: #3c3b3b"><div class="container simple-footer"><a href="https://www.bodobakeri.no" class="simple-footer__row simple-footer__row_type_logo"><img class="simple-footer__logo" src="https://bcdn.cakeiteasy.com/1677585941573?auto=compress&fit=clip&w=1200" alt="Bakery logo"></img></a><div class="simple-footer__row simple-footer__row_type_description"><h2 class="simple-footer__title Lato text-bold">Kontakt oss eller kom innom for en bolle!</h2></div><div class="simple-footer__row simple-footer__row_type_contacts pb-3"><span class="simple-footer__contact-address Lato text-normal"><p>Notveien 1</p></span><span class="simple-footer__contact-address Lato text-normal"><p>8013 Bodø </p></span></div><div class="simple-footer__row simple-footer__row_type_contacts"><a class="simple-footer__contact-link Lato text-normal" href="tel:75 58 02 00">75 58 02 00</a><a class="simple-footer__contact-link Lato text-normal" href="mailto:[email protected]">[email protected]</a><p class="Lato text-normal"></p></div><div class="simple-footer__row simple-footer__row_type_content"><div id="obj945eb7a29c954ae7a32041ce367faa92"><style>.social-icon { 4710 width:39px; 4711 height:39px; 4712} 4713 4714.social-icon svg { 4715 padding: 4.5px; 4716} 4717 4718.social-icon:hover { 4719 text-decoration: none; 4720} 4721 4722.rounded-circle { 4723 margin-right: 9px; 4724} 4725 4726.rounded-circle:last-child { 4727 margin-right: 0px; 4728} 4729 4730.rounded-circle .fa-facebook-f { 4731 font-size: 21px; 4732 letter-spacing: 0.028rem; 4733} 4734 4735.rounded-circle .fa-instagram { 4736 font-size: 26px; 4737 height: 25px; 4738 letter-spacing: 0.028rem; 4739}</style><div class="d-flex rounded-circle__container"><a class="rounded-circle cursor-pointer border border-2 fs-3 d-flex justify-content-center align-items-center social-icon" style="border-color:#ffffff!important; color:#ffffff; border-width:1px!important" target="_blank" href="https://www.facebook.com/Bodobakeri/"><i class="fab fa-facebook-f"></i></a><a class="rounded-circle cursor-pointer border border-2 fs-3 d-flex justify-content-center align-items-center social-icon" style="border-color:#ffffff!important; color:#ffffff; border-width:1px!important" target="_blank" href="https://www.instagram.com/bodobakeri/"><i class="fab fa-instagram"></i></a></div></div></div></div><div class="simple-footer__row simple-footer__row_type_copy "><div class="container simple-footer__container"><div class="simple-footer__column col-6"><img class="simple-footer__payment-img" src="https://bcdn.cakeiteasy.com/nono.png?width=500&height=600&optimizer=image&format=webp" alt="payment methods"></img><button class="simple-footer__link" onclick="Modal.open('/bakery/terms-and-conditions', { noPadding: true, width: '613px', title: 'Brukerbetingelser'})">Brukerbetingelser</button></div><div class="simple-footer__copyright"><div class="footer-login d-flex "><a class="btn__login font-secondary" href="https://admin.foodspace.io/auth/login?method=quick-site-login&bakeryId=84" disabled="false"><i class="icon-doc-with-pencil"></i></a><style>.btn__login { 4740 padding: 0; 4741 margin: 3px 0 0; 4742 font-size: .875rem; 4743 line-height: 1.88; 4744 color: var(--footer-text-color); 4745 background: transparent; 4746 border: none; 4747 cursor: pointer; 4748 width: max-content; 4749}</style></div><p class="simple-footer__text"><p>© Bodø Bakeri AS - Org. nr. 993 297 941</p></p></div></div></div></footer><style>.simple-footer { 4750 display: flex; 4751 flex-direction: column; 4752 align-items: center; 4753 letter-spacing: normal; 4754} 4755 4756.simple-footer__logo { 4757 display: block; 4758 width: 100%; 4759 height: 100%; 4760 max-height: 75px; 4761 object-fit: contain; 4762} 4763 4764.simple-footer__row_type_logo { 4765 padding: 60px 0 40px; 4766} 4767 4768.simple-footer__row_type_content { 4769 padding-bottom: 40px; 4770 display: flex; 4771 align-items: center; 4772} 4773 4774.simple-footer__row_type_description { 4775 padding-bottom: 40px; 4776} 4777 4778.simple-footer__title { 4779 font-size: 1.5rem; 4780 letter-spacing: 0rem; 4781 text-align: center; 4782 margin-bottom: 10px; 4783 color: #ffffff; 4784} 4785 4786.simple-footer__subtitle { 4787 font-size: 1rem; 4788 letter-spacing: 0rem; 4789 line-height: 1.5; 4790 text-align: center; 4791 margin-bottom: 0; 4792 color: #ffffff; 4793} 4794 4795.simple-footer__row_type_contacts { 4796 display: flex; 4797 align-items: center; 4798 justify-content: center; 4799 flex-wrap: wrap; 4800 gap: 15px; 4801 padding-bottom: 40px; 4802 max-width: 515px; 4803 color: #ffffff; 4804} 4805 4806.simple-footer__row_type_contacts p { 4807 font-size: 1rem; 4808 letter-spacing: 0rem; 4809 line-height: 1.21; 4810 margin-bottom: 0; 4811} 4812 4813.simple-footer__row_type_contacts p a { 4814 pointer-events: auto; 4815} 4816 4817.simple-footer__row_type_contacts p a:hover { 4818 text-decoration: underline !important; 4819} 4820
4821.simple-footer__contact-link { 4822 font-size: 1rem; 4823 letter-spacing: 0rem; 4824 line-height: 1.21; 4825 margin-bottom: 0; 4826} 4827 4828.simple-footer__contact-address{ 4829 font-size: 1rem; 4830 letter-spacing: 0rem; 4831} 4832 4833.simple-footer__contact-link:hover { 4834 text-decoration: underline !important; 4835} 4836 4837.simple-footer__link { 4838 font-size: 1rem; 4839 color: #ffffff; 4840} 4841 4842.simple-footer__link:hover, 4843.simple-footer__link:focus { 4844 text-decoration: underline !important; 4845 color: #ffffff; 4846} 4847 4848.simple-footer__row_type_copy { 4849 padding: 30px 0; 4850 width: 100%; 4851 border-top: 1px solid rgba(225, 225, 225, 0.4); 4852 letter-spacing: normal; 4853} 4854 4855.simple-footer__row_type_copy .simple-footer__column { 4856 justify-content: left; 4857} 4858 4859.simple-footer__container { 4860 display: flex; 4861 align-items: center; 4862 justify-content: space-between; 4863} 4864 4865.simple-footer__column { 4866 display: flex; 4867 align-items: center; 4868 justify-content: center; 4869 gap: 40px; 4870} 4871 4872.simple-footer__row_type_copy .simple-footer__column { 4873 justify-content: left; 4874} 4875 4876.simple-footer__link { 4877 font-style: normal; 4878 font-size: 1rem; 4879 line-height: 1.18; 4880 background: none; 4881 border: none; 4882 height: auto; 4883 padding: 0; 4884 margin: 0; 4885 color: #ffffff; 4886} 4887 4888.simple-footer__row_type_copy .simple-footer__link { 4889 font-size: .875rem; 4890} 4891 4892.simple-footer__row_type_copy .simple-footer__link:hover { 4893 text-decoration: none!important; 4894} 4895 4896.footer-login.disabled { 4897 display: none!important; 4898} 4899 4900/* Copyright */ 4901 4902.simple-footer__payment-img { 4903 display: block; 4904 width: 100%; 4905 height: 100%; 4906 max-height: 34px; 4907 max-width: 184px; 4908} 4909 4910.simple-footer__copyright { 4911 display: flex; 4912 align-items: center; 4913 gap: 15px; 4914 font-weight: 400; 4915 font-size: .875rem; 4916 line-height: 1.18; 4917 color: #ffffff; 4918} 4919 4920.simple-footer__copyright p { 4921 margin-bottom: 0; 4922 font-size: .875rem; 4923} 4924 4925.simple-footer__copyright p a { 4926 pointer-events: auto; 4927} 4928 4929.simple-footer__copyright p a:hover{ 4930 text-decoration: underline !important; 4931} 4932 4933.simple-footer__row_type_copy .simple-footer__copyright { 4934 font-size: .875rem; 4935} 4936 4937/* Social Network */ 4938 4939.simple-footer__row_type_content .rounded-circle .fa-instagram { 4940 font-size: 1.563rem; 4941 height: auto; 4942} 4943 4944.simple-footer__row_type_content .rounded-circle .fa-facebook-f { 4945 font-size: 1.188rem; 4946} 4947 4948.simple-footer__row_type_content .social-icon svg { 4949 padding: 9px; 4950} 4951 4952.simple-footer__text:hover {
4953 color: #ffffff; 4954} 4955 4956@media (max-width: 1024px) { 4957 .simple-footer__logo { 4958 max-height: 60px; 4959 } 4960 /* .simple-footer__title { 4961 font-size: 1.25rem; 4962} */ 4963 .simple-footer__container { 4964 flex-direction: column; 4965 gap: 20px; 4966 } 4967 .simple-footer__column { 4968 gap: 20px; 4969 flex-direction: column; 4970 } 4971 .simple-footer__payment-img { 4972 max-width: 155px; 4973 } 4974 .simple-footer__copyright { 4975 text-align: center; 4976 } 4977 .simple-footer__copyright p { 4978 font-size: 0.825rem; 4979 line-height: 1.5; 4980 } 4981 .simple-footer__row_type_logo { 4982 padding: 30px 0 20px; 4983 } 4984}</style></section><style>@media (min-width: 767px) { 4985 body.noscroll { 4986 position: fixed; 4987 width: 100%; 4988 height: 100%; 4989 overflow-y: 4990 hidden; 4991 } 4992} 4993 4994.xmodal-open .content { 4995 margin-left: 400px; 4996} 4997 4998.xmodal-overlay { 4999 position: fixed; 5000 left: 0; 5001 top: 0; 5002 width: 100%; 5003 height: 100%; 5004 background: rgba(0,0,0,0); 5005 z-index: 9999; 5006 box-sizing: border-box; 5007 overflow-y: scroll; 5008 overflow-x: hidden; 5009 transition: background .25s ease-out; 5010 scroll-behavior: smooth; 5011} 5012 5013.xmodal-overlay.no-padding { 5014 padding: 0px; 5015} 5016 5017.xmodal-overlay::-webkit-scrollbar {
5018 width: 0px; 5019 background: transparent; 5020} 5021 5022.xmodal-overlay.open { 5023 background: rgba(0,0,0,.45); 5024} 5025 5026.xmodal-container { 5027 position: fixed; 5028 top: 200%; 5029 bottom: 0; 5030 left: 0; 5031 width: 100%; 5032 height: 100%; 5033 min-width: 100%; 5034 max-width: 100%; 5035 max-height: 100%; 5036 margin: auto; 5037 box-shadow: 0 8px 16px 0 rgba(0,0,0,.2); 5038 background-color: #fff; 5039 z-index: 100; 5040 scroll-behavior: smooth; 5041 transition: top .25s ease; 5042 overflow-y: auto; 5043} 5044 5045.xmodal-overlay .btn { 5046 overflow: hidden; 5047 text-overflow: ellipsis; 5048} 5049 5050.btn-capitalize { 5051 text-transform: capitalize!important; 5052} 5053 5054.xmodal-container.auto-height { 5055 transform: scaleY(0); 5056 transform-origin: bottom; 5057 transition: transform 0.25s ease; 5058} 5059 5060.xmodal-container.sidebar, .xmodal-container.sidebar.left { 5061 position: fixed; 5062 top: 0!important; 5063 bottom: 0!important; 5064 max-height: 100%; 5065 min-height: 100%; 5066 height: 100%; 5067 margin-top: 0!important; 5068 margin-bottom: 0!important; 5069 min-width: unset; 5070 width: 85%; 5071} 5072 5073.xmodal-container.sidebar.left { 5074 left: 0!important; 5075 margin-left: -85%; 5076 transition: margin-left .25s ease; 5077 border-radius: 0!important; 5078} 5079 5080.xmodal-container.sidebar.right { 5081 right: 0!important; 5082 border-top-right-radius: 0; 5083 border-bottom-right-radius: 0; 5084 margin-right: -85%; 5085 transition: margin-right .25s ease; 5086} 5087 5088.open > .xmodal-container { 5089 top: 0; 5090 transform: scaleY(1); 5091} 5092 5093.open > .xmodal-container.auto-height { 5094 height: auto; 5095 top: auto; 5096 margin-top: 0; 5097 margin-bottom: 0; 5098} 5099 5100.xmodal-container.min-height { 5101 min-height: 200px; 5102} 5103 5104.min-height .xmodal-body { 5105 display: flex; 5106 flex-direction: column; 5107 align-items: center; 5108 justify-content: center; 5109} 5110 5111.min-height .xmodal-content { 5112 width: 100%; 5113} 5114 5115.open > .xmodal-container.sidebar { 5116 transform: scaleX(1); 5117} 5118 5119.open > .xmodal-container.sidebar.left { 5120 margin-left: 0!important; 5121 border-radius: 0!important; 5122} 5123 5124.open > .xmodal-container.sidebar.right { 5125 margin-right: 0!important; 5126} 5127 5128.xmodal-container.round-corners { 5129 border-radius: 12px 12px 0 0; 5130 margin-top: 12px; 5131} 5132 5133.open > .xmodal-container.round-corners.auto-height { 5134 max-height: calc(100% - 24px); 5135 margin-top: 0; 5136 margin-bottom: 0; 5137} 5138 5139.xmodal-container.round-corners:before { 5140 position: absolute; 5141 top: -8px; 5142 left: 0; 5143 right: 0; 5144 margin: auto; 5145 width: 44px; 5146 height: 4px; 5147 background: var(--color-gray200); 5148 content: " "; 5149 border-radius: 9px; 5150} 5151 5152.xmodal-header { 5153 position: relative; 5154 display: block; 5155 height: 0; 5156 box-sizing: border-box; 5157 z-index: 10; 5158 padding: 0; 5159 border-top-left-radius: 4px; 5160 border-top-right-radius: 4px; 5161} 5162 5163.round-corners .xmodal-header { 5164 border-radius: 16px 16px 0 0; 5165} 5166 5167.xmodal-header.show { 5168 padding: 12px 16px; 5169 /* height: 48px; */ 5170 height: auto; 5171 background-color: #fff; 5172 box-shadow: 0 1px 0 0 var(--color-gray200); 5173} 5174 5175.xmodal-header-text { 5176 display: none; 5177 text-transform: lowercase; 5178} 5179 5180.xmodal-header.show .xmodal-header-text { 5181 display: inline-block!important; 5182 margin: auto 0; 5183 vertical-align: middle; 5184 font-weight: 700; 5185 overflow: hidden; 5186 text-overflow: ellipsis; 5187 white-space: nowrap; 5188 max-width: calc(100% - 24px); 5189} 5190 5191.xmodal-header.show .xmodal-header-text:first-letter { 5192 text-transform: uppercase!important; 5193} 5194 5195.xmodal-close-button { 5196 position: absolute; 5197 top: 12px; 5198 right: 12px; 5199 padding: 0; 5200 vertical-align: middle; 5201 display: inline-block; 5202 width: 24px; 5203 height: 24px; 5204 z-index: 9999; 5205 cursor: pointer; 5206 font-size: 20px; 5207 text-align: center; 5208 line-height: 24px; 5209 opacity: .6; 5210 background: url("data:image/svg+xml,%3Csvg width='18' height='18' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.53634,9.00012l6.52972,-6.52992c0.42494,-0.42474 0.42494,-1.1115 0,-1.53624c-0.42474,-0.42474 -1.1115,-0.42474 -1.53624,0l-6.52992,6.52992l-6.52972,-6.52992c-0.42494,-0.42474 -1.1115,-0.42474 -1.53624,0c-0.42494,0.42474 -0.42494,1.1115 0,1.53624l6.52972,6.52992l-6.52972,6.52992c-0.42494,0.42474 -0.42494,1.1115 0,1.53624c0.21168,0.21187 0.49,0.31831 0.76812,0.31831c0.27812,0 0.55625,-0.10644 0.76812,-0.31831l6.52972,-6.52992l6.52992,6.52992c0.21187,0.21187 0.49,0.31831 0.76812,0.31831c0.27812,0 0.55625,-0.10644 0.76812,-0.31831c0.42494,-0.42474 0.42494,-1.1115 0,-1.53624l-6.52972,-6.52992zm0,0'/%3E%3C/svg%3E") no-repeat center; 5211} 5212 5213.xmodal-custom-close-button { 5214 padding: 0; 5215 vertical-align: middle; 5216 display: inline-block; 5217 cursor: pointer; 5218 text-align: center; 5219 opacity: .6; 5220} 5221 5222.xmodal-close-button:hover, .xmodal-custom-close-button:hover { 5223 opacity: 1; 5224} 5225 5226.xmodal-close-button.hide { 5227 display: none; 5228} 5229 5230.xmodal-body { 5231 max-height: 100%; 5232 margin-top: 0; 5233 height: 100%; 5234 box-sizing: border-box; 5235 overflow-y: auto; 5236 scroll-behavior: smooth; 5237} 5238 5239.xmodal-header.show + .xmodal-body { 5240 margin-top: 0; 5241 height: calc(100% - 58px); 5242} 5243 5244.xmodal-footer + .xmodal-body { 5245 margin-top: 0; 5246 height: calc(100% - 64px); 5247} 5248 5249.xmodal-header.show + .xmodal-footer + .xmodal-body { 5250 margin-top: 0; 5251 /* height: calc(100% - 48px - 64px); */ 5252 margin-bottom: 64px; 5253 height: calc(100% - 48px); 5254} 5255 5256.xmodal-content { 5257 padding: 16px; 5258} 5259 5260.xmodal-footer { 5261 position: absolute; 5262 left: 0; 5263 right: 0; 5264 display: flex; 5265 z-index: 10; 5266 align-items: center; 5267 justify-content: flex-end; 5268 padding: .8rem; 5269 border-top: 1px solid var(--color-gray200); 5270 background-color: #fff; 5271} 5272 5273.xmodal-footer.xmodal-footer_top { 5274 top: 0; 5275} 5276 5277.xmodal-footer.xmodal-footer_bottom { 5278 bottom: 0; 5279} 5280 5281/* .xmodal-footer.xmodal-footer_top ~ .xmodal-body { 5282 margin-top: 48px; 5283} */ 5284 5285.xmodal-container.round-corners .xmodal-footer { 5286 bottom: 12px; 5287} 5288 5289.xmodal-footer > button { 5290 margin-left: .5rem; 5291} 5292 5293.no-padding .xmodal-content { 5294 padding: 0; 5295} 5296 5297.no-padding-h .xmodal-content { 5298 padding-left: 0; 5299 padding-right: 0; 5300} 5301 5302.no-padding-v .xmodal-content { 5303 padding-top: 0; 5304 padding-bottom: 0; 5305} 5306 5307.xmodal-spinner { 5308 min-height: 250px; 5309} 5310 5311.xmodal-content > .card-body { 5312 padding: 0!important; 5313} 5314 5315@media screen and (max-width: 768px){ 5316 .xmodal-container.sidebar, .xmodal-container.sidebar.left { 5317 width: 100%; 5318 } 5319} 5320 5321.xmodal-container { 5322 border-radius: 0px!important; 5323} 5324 5325.xmodal-container.round-corners { 5326 border-radius: var(--img-border-radius)!important; 5327} 5328 5329@media (min-width: 769px) { 5330 5331 .xmodal-overlay { 5332 padding: 32px 0; 5333 display: flex; 5334 flex-direction: column; 5335 } 5336 5337 .xmodal-container { 5338 position: relative; 5339 top: unset !important; 5340 border-radius: 4px; 5341 width: 960px; 5342 min-width: unset; 5343 height: auto; 5344 bottom: unset; 5345 opacity: 0; 5346 transition: opacity .25s ease; 5347 margin-top: auto; 5348 overflow: hidden; 5349 } 5350 5351 .xmodal-container.top { 5352 margin-top: 0; 5353 } 5354 5355 .xmodal-container.sidebar { 5356 width: 25%; 5357 } 5358 5359 .xmodal-container.sidebar.left { 5360 margin-left: -85%; 5361 } 5362 5363 .xmodal-container.sidebar.right { 5364 margin-right: -85%; 5365 } 5366 5367 .open > .xmodal-container { 5368 opacity: 1; 5369 } 5370 5371 .xmodal-container.auto-height { 5372 margin: auto !important; 5373 transform: unset; 5374 transform-origin: unset; 5375 } 5376 5377 .xmodal-header.show { 5378 padding: 12px 24px; 5379 } 5380 5381 .xmodal-content { 5382 padding: 24px; 5383 } 5384 5385 .xmodal-container.round-corners .xmodal-footer { 5386 bottom: 0; 5387 } 5388} 5389 5390.min-h-100{ 5391 min-height: 100%; 5392}</style><template id="xmodal-template"> 5393 <div id="xmodal" class="xmodal-overlay" style="display: none;"> 5394 <div id="xmodal_container" class="xmodal-container"> 5395 <div id="xmodal_header" class="xmodal-header show d-flex justify-content-between"> 5396 <span id="xmodal_header_title" class="xmodal-header-text"></span> 5397 <div id="xmodal_close" class="xmodal-close-button"></div> 5398 </div> 5399 <div id="xmodal_body" class="xmodal-body">
5400 <div id="xmodal_content" class="xmodal-content"> 5401 <div class="xmodal-spinner d-flex justify-content-center align-items-center w-100"> 5402 <div class="spinner-border text-primary mx-auto"></div> 5403 </div> 5404 </div> 5405 </div> 5406 </div> 5407 </div> 5408</template>
5408<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22Modal%22%2C%22Id%22%3A%22obj11dfc69887ae48e2b3795a9f4fcd1e7a%22%2C%22children%22%3Anull%2C%22isMobile%22%3Afalse%7D"));class XModal { 5409 constructor(id) { 5410 this.id = id; 5411 this._listeners = new Map(); 5412 5413 const template = document.getElementById('xmodal-template').content.cloneNode(true); 5414 template.getElementById('xmodal').setAttribute('id', 'xmodal_' + id); 5415 5416 5417 template.getElementById('xmodal_container').setAttribute('id', 'xmodal_container_' + id); 5418 5419 template.getElementById('xmodal_header').setAttribute('id', 'xmodal_header_' + id); 5420 template.getElementById('xmodal_body').setAttribute('id', 'xmodal_body_' + id); 5421 template.getElementById('xmodal_header_title').setAttribute('id', 'xmodal_header_title_' + id); 5422 template.getElementById('xmodal_close').setAttribute('id', 'xmodal_close_' + id); 5423 template.getElementById('xmodal_content').setAttribute('id', 'xmodal_content_' + id); 5424 5425 document.body.appendChild(template); 5426 5427 this.root = document.getElementById('xmodal_' + id); 5428 5429 // 9999 is the v1 public stacking order (the promo popup at 15000 sits 5430 // above it, as it always has). The admin shell needs its modals above its 5431 // own rail/drawers, so V3AdminMaster raises the base via 5432 // window.__xmodalZIndexBase â a v1 page never sets it. 5433 this.root.style.zIndex = (window.__xmodalZIndexBase || 9999) + this.id; 5434 5435 this.container = document.getElementById('xmodal_container_' + id); 5436 this.header = document.getElementById('xmodal_header_' + id); 5437 this.body = document.getElementById('xmodal_body_' + id); 5438 this.headerTitle = document.getElementById('xmodal_header_title_' + id); 5439 this.closeBtn = document.getElementById('xmodal_close_' + id); 5440 this.spinner = `<div class="xmodal-spinner d-flex justify-content-center align-items-center"><div class="spinner-border text-success"></div></div>`; 5441 this.content = document.getElementById('xmodal_content_' + id); 5442 this.closeByEscape = true; 5443 5444 this.root.addEventListener('click', (e) => this._closeHandler(e)); 5445 this.closeBtn.addEventListener('click', (e) => this._closeHandler(e)); 5446 } 5447 5448 async open(urlOrDom, options, onLoadCallback, postRequestData) { 5449 if (!urlOrDom) { 5450 return; 5451 } 5452 5453 if (options) { 5454 if (options.domId) this.root.setAttribute('data-dom-id', options.domId); 5455 5456 if (options.center) this.content.classList.add('d-flex', 5457 'align-items-center', 'min-h-100', 'text-center', 'w-100'); 5458 5459 if (options.customClass) this.header.classList.add(`${options.customClass}`); 5460 5461 this.noCloseOnOverlay = options.noCloseOnOverlay || false; 5462 this.closeByEscape = options.closeByEscape === undefined ? true : options.closeByEscape; 5463 if (options.hideModalHeader) { 5464 this.header.classList.remove('show'); 5465 } 5466 5467 if (options.dark) { 5468 this.container.style.backgroundColor = options.dark === true ? 'black' : options.dark; 5469 } 5470 5471 if (options.customCloseBtnText) { 5472 this.closeBtn.innerHTML = options.customCloseBtnText; 5473 this.closeBtn.classList.remove('xmodal-close-button'); 5474 // this.closeBtn.classList.add('xmodal-custom-close-button'); 5475 } 5476 5477 if (options.hideCloseButton) { 5478 this.closeBtn.classList.add('hide'); 5479 } 5480 5481 if (options.roundCorners) { 5482 this.container.classList.add('round-corners'); 5483 } 5484 5485 if (options.autoHeight) { 5486 this.container.classList.add('auto-height'); 5487 } 5488 5489 if (options.noOverlay) { 5490 this.root.classList.remove('xmodal-overlay'); 5491 } 5492 5493 if (options.minHeight) { 5494 this.container.classList.add('min-height'); 5495 } 5496 5497 if (options.noPadding) { 5498 this.container.classList.add('no-padding'); 5499 } 5500 5501 if (options.noPaddingHorizontal) { 5502 this.container.classList.add('no-padding-h'); 5503 } 5504 5505 if (options.noPaddingVertical) { 5506 this.container.classList.add('no-padding-v'); 5507 } 5508 5509 if (options.width) { 5510 this.container.style.width = options.width; 5511 } 5512 5513 if (options.height) { 5514 this.container.style.height = options.height; 5515 } 5516 5517 if (options.fullScreen) { 5518 this.container.style.width = '100%'; 5519 this.container.style.height = '100vh'; 5520 this.container.style.borderBottomRightRadius = '0'; 5521 this.container.style.borderBottomLeftRadius = '0'; 5522 this.root.classList.add('no-padding'); 5523 } 5524 5525 if (options.position && options.position === 'top') { 5526 this.container.classList.add('top'); 5527 } 5528 5529 if (options.sidebar) { 5530 this.container.classList.add('sidebar'); 5531 if (options.sidebarPosition === 'left') { 5532 this.container.classList.add('left'); 5533 if (options.width) { 5534 this.container.style.marginLeft = '-' + options.width; 5535 // $('.content').css('margin-left', options.width); 5536 } 5537 } else if (options.sidebarPosition === 'right') { 5538 this.container.classList.add('right'); 5539 if (options.width) { 5540 this.container.style.marginRight = '-' + options.width; 5541 // $('.content').css('margin-right', options.width); 5542 } 5543 } 5544 } 5545 } 5546 5547 this.root.style.display = ''; 5548 if (options && options.noOpenAnimation) {
5549 this.root.style.transition = 'none'; 5550 this.container.style.transition = 'none'; 5551 this.root.classList.add('open'); 5552 } else { 5553 setTimeout(() => { this.root.classList.add('open'); }, 10); 5554 } 5555 5556 if (typeof urlOrDom === 'string') { 5557 try { 5558 // `prefetchedData` lets a caller skip the network round-trip entirely: 5559 // the page HTML was POSTed ahead of time (in the background) and handed 5560 // in here, so the modal paints its content instantly. Same payload shape 5561 // as a live postRequest `.data` (string HTML, or { html, PageTitle }). 5562 const data = (options && options.prefetchedData != null) 5563 ? options.prefetchedData 5564 : (await window.postRequest(urlOrDom, { isModal: true, modalId: this.id, ...(postRequestData || {}) })).data; 5565 $(this.content).html(typeof (data) === 'string' ? data : data.html); 5566 this.headerTitle.textContent = options && options.title ? options.title : (data.PageTitle || data.pageTitle); 5567 // setTimeout(() => { SITE.updateImages(); }, 700); 5568 if (onLoadCallback && typeof onLoadCallback === 'function') { 5569 onLoadCallback(this); 5570 } 5571 } 5572 catch (ex) { 5573 alert("Something went wrong, please try again: ".concat(ex.message)) 5574 } 5575 } else if (typeof urlOrDom === 'object' && urlOrDom.cloneNode) { 5576 $(this.content).html(urlOrDom); 5577 } 5578 5579 if (options && options.buttons && options.buttons.length) { 5580 const footer = document.createElement('div'); 5581 footer.id = "xmodal_footer_" + this.id; 5582 footer.classList.add('xmodal-footer'); 5583 options.buttons.forEach(i => { 5584 const btn = document.createElement('button'); 5585 if (i.id) { btn.id = i.id; }; 5586 btn.className = i.className || 'btn'; 5587 btn.type = i.type || 'button'; 5588 btn.innerText = i.label; 5589 btn.onclick = i.callback; 5590 footer.appendChild(btn); 5591 }); 5592 5593 if (options.buttonsPosition === 'top') { 5594 this.header.before(footer); 5595 footer.classList.add('xmodal-footer_top'); 5596 } else { 5597 this.body.after(footer); 5598 footer.classList.add('xmodal-footer_bottom'); 5599 } 5600 } 5601 } 5602 5603 close(instantly, data) { 5604 this.root.classList.remove('open'); 5605 instantly ? this._destroy(data) : setTimeout(() => this._destroy(data), 250); 5606 5607 Modal._instances = Modal._instances.filter(m => m.id !== this.id) 5608 Modal._reset() 5609 } 5610 5611 set onClose(callback) { 5612 this._on('close', callback); 5613 } 5614 5615 set onClosed(callback) { 5616 this._on('closed', callback); 5617 } 5618 5619 _on(label, callback) { 5620 this._listeners.has(label) || this._listeners.set(label, []); 5621 this._listeners.get(label).push(callback); 5622 } 5623 5624 _trigger(label, ...args) { 5625 if (this._listeners.has(label)) { 5626 this._listeners.get(label).forEach((listener) => { 5627 listener(...args); 5628 }); 5629 } 5630 } 5631 5632 _closeHandler(e) { 5633 if (e.target !== this.root && e.target !== this.closeBtn) { 5634 return; 5635 } 5636 5637 e.stopPropagation(); 5638 if (this.noCloseOnOverlay && e.target === this.root) { 5639 return; 5640 } 5641 5642 this._trigger('close'); 5643 this.close(); 5644 } 5645 5646 _destroy(data) { 5647 this.root.remove(); 5648 this._trigger('closed', data); 5649 5650 window.dispatchEvent(new CustomEvent('modalclose')) 5651 } 5652} 5653 5654if (!window['Modal']) { 5655 const mars = new MarsBlock('xmodal', data, { 5656 _instances: [], 5657 _init: function () { 5658 // Track Escape key press 5659 const self = this; 5660 document.onkeydown = function (e) { 5661 e = e || window.event; 5662 let isEscape = false;
5663 if ("key" in e) { 5664 isEscape = (e.key === "Escape" || e.key === "Esc"); 5665 } else { 5666 isEscape = (e.keyCode === 27); 5667 } 5668 5669 const instances = self._instances; 5670 if (isEscape && instances.length && instances[instances.length - 1].closeByEscape) { 5671 self.close(); 5672 } 5673 }; 5674 }, 5675 _reset: function () { 5676 if (this._instances.length) { 5677 return; 5678 } 5679 5680 document.body.classList.remove('noscroll'); 5681 // $('.content').css('margin-right', 0); 5682 // $('.content').css('margin-left', 0); 5683 document.body.style.top = ''; 5684 5685 if (this.scrollTop !== undefined) { 5686 window.scrollTo({ top: this.scrollTop, behavior: 'instant' }); 5687 } 5688 5689 this.scrollTop = undefined; 5690 }, 5691 _getScroll: function () { 5692 if (window.pageYOffset != undefined) { 5693 return [pageXOffset, pageYOffset]; 5694 } else { 5695 let sx, sy, d = document, r = d.documentElement, b = d.body; 5696 sx = r.scrollLeft || b.scrollLeft || 0; 5697 sy = r.scrollTop || b.scrollTop || 0; 5698 return [sx, sy]; 5699 } 5700 }, 5701 getModal: function (id) { 5702 if (id) { 5703 return this._instances.find(i => i.id === id); 5704 } 5705 5706 return null; 5707 }, 5708 open: async function (urlOrDom, options, onLoadCallback, postRequestData) { 5709 if (!urlOrDom) { 5710 return; 5711 } 5712 5713 if (options && options.width && data.isMobile) options.width = '100%'; 5714 5715 if (options && options.closePrevious && this._instances.length) { 5716 this.scrollTop = (this._getScroll())[1]; 5717 this._instances.pop().close(true); 5718 } 5719 5720 if (this._instances.length === 0) { 5721 this.scrollTop = (this._getScroll())[1]; 5722 if (!options.noOverlay) { 5723 document.body.classList.add('noscroll'); 5724 } 5725 document.body.style.top = -this.scrollTop + 'px'; 5726 } 5727 5728 const id = this._instances.length + 1; 5729 const modal = new XModal(id); 5730 this._instances.push(modal); 5731 modal.onClose = () => this.close(id); 5732 modal.onClosed = () => this._reset(); 5733 await modal.open(urlOrDom, options, onLoadCallback, postRequestData); 5734 return modal; 5735 }, 5736 openAndWait: function () { 5737 return new Promise(async (resolve, reject) => { 5738 try { 5739 const modal = await this.open(...arguments); 5740 5741 modal.onClosed = (val) => { 5742 resolve(val); 5743 } 5744 } catch (e) { 5745 return reject(e); 5746 } 5747 }); 5748 }, 5749 close: function (instantly, id, data) { 5750 if (id) { 5751 const index = this._instances.findIndex(i => i.id === id); 5752 5753 const modalByIndex = this._instances[index] 5754 if (!modalByIndex) return 5755 5756 modalByIndex.close(instantly, data); 5757 return; 5758 } 5759 5760 // const lastModal = this._instances.pop(); 5761 const lastModal = this._instances[this._instances.length - 1]; 5762 if (lastModal) { 5763 lastModal.close(instantly, data); 5764 } 5765 }, 5766 }); 5767 5768 mars._init(); 5769 window['Modal'] = window['Modal'] || mars; 5770} 5771</script>
5771<script type="application/ld+json">{"@type":"Organization","name":"Bodø bakeri","url":"https://www.bodobakeri.no/","logo":"https://mars-images.imgix.net/1677834019634?fm=avif&fit=clip&w=1200&=undefined","@context":"http://schema.org"}</script>
5771<div hidden="true">
5771<script >function getCurrentHeaderHeight(desktopHeaderSelector, mobileHeaderSelector, isSticky) { 5772 const mobileHeaderElement = document.querySelector(mobileHeaderSelector); 5773 const desktopHeaderElement = document.querySelector(desktopHeaderSelector); 5774 5775 let extraScroll; 5776 5777 if (desktopHeaderElement && desktopHeaderElement.offsetHeight > 0 && isSticky ) { 5778 extraScroll = desktopHeaderElement.offsetHeight; 5779 }; 5780 5781 if (mobileHeaderElement && mobileHeaderElement.offsetHeight > 0) { 5782 extraScroll = mobileHeaderElement.offsetHeight; 5783 }; 5784 5785 return extraScroll; 5786} 5787 5788function getBlockElementWithExtraStyle(blockElement, block, behavior) { 5789 const extraScrollForSticky = getCurrentHeaderHeight('#MinimalisticStickyDownHeader', '.mobile-menu.sticky', true); 5790 const extraScrollForWithCategories = getCurrentHeaderHeight('#PageHeaderWithCategories', '#MobileHeaderWithCategories', true); 5791 const extraScrollForWithRoundLogo = getCurrentHeaderHeight('#HeaderWidthRoundLogo', '#MobileHeaderWithRoundLogo', false); 5792 5793 if (extraScrollForSticky) { 5794 blockElement.style["scroll-margin-top"] = `${extraScrollForSticky - 1.5}px` 5795 } 5796 if (extraScrollForWithCategories) { 5797 blockElement.style["scroll-margin-top"] = `${extraScrollForWithCategories - 1.5}px` 5798 } 5799 if (extraScrollForWithRoundLogo) { 5800 blockElement.style["scroll-margin-top"] = `${extraScrollForWithRoundLogo - 1.5}px` 5801 } 5802 5803 blockElement.scrollIntoView({ block, behavior }); 5804} 5805 5806 5807async function scrollToElement(selector, block = "start", behavior = "smooth") { 5808 const blockElement = document.getElementById(selector) ? document.getElementById(selector) : document.querySelector(`section[data-test-id="${selector}"]`); 5809 if (!blockElement) { 5810 /*await goTo(`https://${location.hostname}`); 5811 const mainPageBlockElement = document.getElementById(selector) ? document.getElementById(selector) : document.querySelector(`section[data-test-id="${selector}"]`); 5812 getBlockElementWithExtraStyle(mainPageBlockElement, block, behavior);*/ 5813 sessionStorage.setItem("scrollToElement", selector); 5814 window.location.href = `https://${location.hostname}`; 5815 } else { 5816 getBlockElementWithExtraStyle(blockElement, block, behavior); 5817 } 5818} 5819</script>
5819</div>
5820<script src="https://browser.sentry-cdn.com/6.8.0/bundle.tracing.min.js" 5821 integrity="sha384-PEpz3oi70IBfja8491RPjqj38s8lBU9qHRh+tBurFb6XNetbdvlRXlshYnKzMB0U" crossorigin="anonymous"> 5822</script>
vendor: 1 bytes, line 5822
5822
5823<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22SentryErrorFrontendLogger%22%2C%22Id%22%3A%22objf3b69c54f74d4ea28220b1effd6883ff%22%2C%22dsn%22%3A%22https%3A%2F%2Fd08c5fd59e0045eeda7dad267be20dc8%40o4509688901074944.ingest.de.sentry.io%2F4509689904234576%22%2C%22children%22%3Anull%2C%22env%22%3A%22prod%22%2C%22sentrySettings%22%3A%7B%22backendDsn%22%3A%22https%3A%2F%2Fbe86cbace6e4423729ad39f62a72a9bd%40o4509688901074944.ingest.de.sentry.io%2F4509689896763472%22%2C%22frontendDsn%22%3A%22https%3A%2F%2Fd08c5fd59e0045eeda7dad267be20dc8%40o4509688901074944.ingest.de.sentry.io%2F4509689904234576%22%7D%7D"));if (!data.dsn) { 5824 console.warn('There is no "frontendDsn" in "SentrySettings" or you are at development stage. Sentry logging can\'t be enabled'); 5825} else { 5826 setTimeout(() => { 5827 Sentry.init({ 5828 dsn: data.dsn, 5829 integrations: [new Sentry.Integrations.BrowserTracing()], 5830 environment: data.env, 5831 // We recommend adjusting this value in production, or using tracesSampler 5832 // for finer control 5833 tracesSampleRate: 0.1, 5834 sampleRate: 0.1 5835 }); 5836 }, 300); 5837}</script>
5837<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22MasterPage%22%2C%22class%22%3A%22d-flex%22%2C%22queryStringParameters%22%3A%7B%7D%2C%22path%22%3A%22%2F%22%2C%22headers%22%3A%7B%22host%22%3A%22www.bodobakeri.no%22%2C%22bakery-slug%22%3A%22bod-bakeri%22%2C%22x-real-ip%22%3A%22181.215.65.87%22%2C%22connection%22%3A%22close%22%2C%22accept%22%3A%22text%2Fhtml%2Capplication%2Fxhtml%2Bxml%2Capplication%2Fxml%3Bq%3D0.9%2Cimage%2Favif%2Cimage%2Fwebp%2Cimage%2Fapng%2C*%2F*%3Bq%3D0.8%2Capplication%2Fsigned-exchange%3Bv%3Db3%3Bq%3D0.7%22%2C%22sec-fetch-dest%22%3A%22document%22%2C%22sec-fetch-mode%22%3A%22navigate%22%2C%22sec-fetch-site%22%3A%22none%22%2C%22sec-fetch-user%22%3A%22%3F1%22%2C%22upgrade-insecure-requests%22%3A%221%22%2C%22user-agent%22%3A%22Mozilla%2F5.0%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko%3B%20compatible%3B%20PageSourceSearchBot%2F1.0%3B%20%2Bhttps%3A%2F%2Fpagesourcesearch.com%2Fbot)%20Chrome%2F128.0.0.0%20Safari%2F537.36%22%2C%22accept-language%22%3A%22en-US%2Cen%3Bq%3D0.9%22%2C%22sec-ch-ua%22%3A%22%5C%22Chromium%5C%22%3Bv%3D%5C%22128%5C%22%2C%20%5C%22Not%3BA%3DBrand%5C%22%3Bv%3D%5C%2224%5C%22%2C%20%5C%22Google%20Chrome%5C%22%3Bv%3D%5C%22128%5C%22%22%2C%22sec-ch-ua-mobile%22%3A%22%3F0%22%2C%22sec-ch-ua-platform%22%3A%22%5C%22Windows%5C%22%22%2C%22accept-encoding%22%3A%22gzip%2C%20deflate%2C%20br%22%7D%2C%22httpMethod%22%3A%22GET%22%2C%22requestContext%22%3A%7B%22stage%22%3A%22dev%22%7D%2C%22files%22%3A%7B%7D%2C%22context%22%3A%7B%22mobileApp%22%3Anull%2C%22css%22%3A%7B%7D%7D%2C%22ip%22%3A%22172.31.19.6%22%2C%22ips%22%3A%5B%5D%2C%22device%22%3A%22desktop%22%2C%22host%22%3A%22www.bodobakeri.no%22%2C%22cookies%22%3A%7B%7D%2C%22isMobile%22%3Afalse%2C%22isTablet%22%3Afalse%2C%22isDesktop%22%3Atrue%2C%22bakery%22%3A%7B%22webShop%22%3A%7B%22id%22%3A39%2C%22key%22%3A%22ptxaqnbhurkm%22%2C%22widget%22%3A%7B%22id%22%3A48%2C%22createdDate%22%3A%222019-02-07T13%3A51%3A21.143544Z%22%2C%22modifiedDate%22%3A%222021-03-18T16%3A31%3A28.257788Z%22%2C%22key%22%3A%22kUvPC3bmgZOFmAlE%22%2C%22activationButtonText%22%3A%22Nettbutikk%22%2C%22activationButtonColor%22%3A%22%23ffa514%22%2C%22locale%22%3A%22no%22%2C%22googleAnalyticKey%22%3A%22%22%2C%22googleTagManagerKey%22%3A%22%22%2C%22bakery%22%3A84%7D%2C%22shopUrl%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2F%22%2C%22isSubdomain%22%3Afalse%2C%22titleDirectOrders%22%3A%22Bestill%20takeaway%20fra%20butikk%22%2C%22subTextDirectOrders%22%3A%22Tidligste%20hentetid%20er%20%7Btime%7D%22%2C%22titleWebShop%22%3A%22Forh%C3%A5ndsbestill%20kaker%20og%20bakervarer%22%2C%22navigationBarTitle%22%3A%22%22%2C%22subTextWebShop%22%3A%22Bestill%20innen%20kl.%20%7Btime%7D%20dagen%20f%C3%B8r%22%2C%22notificationBarBannerText%22%3A%22%22%2C%22notificationBarButtonText%22%3A%22%22%2C%22notificationBarColor%22%3Anull%2C%22notificationBarButtonColor%22%3Anull%2C%22googleAnalyticKey%22%3A%22%22%2C%22googleTagManagerKey%22%3A%22%22%2C%22useDefaultCookieBar%22%3Afalse%2C%22showReminderSection%22%3Atrue%2C%22siteStatus%22%3A%22LAUNCHED%22%2C%22hostingMode%22%3A%22MARS%22%2C%22theme%22%3A%7B%22colors%22%3A%7B%22primary%22%3A%22%234bb39a%22%2C%22secondary%22%3A%22%23F2A83B%22%2C%22background%22%3A%22%23ffffff%22%7D%2C%22logo%22%3A%7B%22size%22%3A%22MEDIUM%22%2C%22url%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakery-logos_images%2Fthumb%2FIVtXaZ7C6Eo9.png%22%7D%2C%22favicon%22%3A%7B%22url%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakery-favicons_images%2Fthumb%2FX1oviRo68gzb.png%22%7D%2C%22footer%22%3A%7B%22copyright%22%3A%22%3Cp%3ELevert%20av%20%3Ca%20target%3D%5C%22_blank%5C%22%20rel%3D%5C%22noopener%20noreferrer%5C%22%20href%3D%5C%22https%3A%2F%2Fwww.foodspace.no%2F%5C%22%3EFoodspace%3C%2Fa%3E%26nbsp%3B%20%7C%20%26nbsp%3B%C2%A9%20Bod%C3%B8%20Bakeri%20AS%20-%20Org.%20nr.%20993%20297%20941%3C%2Fp%3E%22%2C%22bgColor%22%3A%22%233B3D3B%22%2C%22textColor%22%3A%22%23ffffff%22%7D%2C%22header%22%3A%7B%22bgColor%22%3A%22%23ffffff%22%2C%22textColor%22%3A%22%23000000%22%7D%2C%22mapMarker%22%3A%7B%22iconUrl%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakery-map-marker-icons_images%2Fthumb%2FDeFrv0l
5837-oNmC.png%22%2C%22iconWhiteUrl%22%3Anull%2C%22bgColor%22%3A%22%23ffffff%22%2C%22selectedBgColor%22%3A%22%23ffffff%22%7D%2C%22mapMarkerIcon%22%3A%7B%22url%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakery-map-marker-icons_images%2Fthumb%2FDeFrv0l-oNmC.png%22%7D%2C%22mapMarkerIconWhite%22%3Anull%2C%22expressOrderingColor%22%3A%22%234bb39a%22%2C%22discountColor%22%3A%22%23ff4499%22%2C%22enabledCustomLoaderIcon%22%3Afalse%2C%22customLoaderIconUrl%22%3Anull%2C%22enabledEmailLogo%22%3Atrue%2C%22emailLogo%22%3A%7B%22size%22%3Anull%2C%22url%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakeries_images%2Fthumb%2Fcompressed%2F_oEb76lA7CQp.png%22%7D%2C%22textOnOutletLink%22%3A%22%22%2C%22homebaktLinkTitle%22%3A%22%22%2C%22homebaktLinkDescription%22%3A%22%22%2C%22headerLinksSettings%22%3A%5B%7B%22show%22%3Atrue%2C%22text%22%3A%22Til%20forsiden%22%2C%22type%22%3A%22HOME_PAGE%22%7D%2C%7B%22show%22%3Atrue%2C%22text%22%3A%22Sjekk%20leveringspris%22%2C%22type%22%3A%22DELIVERY%22%7D%2C%7B%22show%22%3Atrue%2C%22text%22%3A%22Her%20kan%20du%20hente%22%2C%22type%22%3A%22OUTLET%22%7D%2C%7B%22show%22%3Atrue%2C%22text%22%3A%22Logg%20inn%22%2C%22type%22%3A%22LOGIN%22%7D%2C%7B%22url%22%3A%22%22%2C%22show%22%3Afalse%2C%22text%22%3A%22%22%2C%22type%22%3A%22CUSTOM%22%7D%5D%7D%2C%22marsThemeName%22%3Anull%2C%22cookieScriptBannerId%22%3A%22b0abaa04a8db337a24caa612e1821e89%22%7D%2C%22id%22%3A84%2C%22name%22%3A%22Bod%C3%B8%20bakeri%22%2C%22sellerType%22%3A%22BAKERY%22%2C%22description%22%3A%22Bod%C3%B8%20Bakeri%20er%20hele%20Saltens%20lokale%20baker.%20V%C3%A5re%20kaker%20produseres%20helt%20fra%20bunnen%20av%20uten%20juks%20og%20halvfabrikat.%20Det%20kjennes%20p%C3%A5%20smaken.%20Ekte%20og%20gode%20r%C3%A5varer%20gir%20ekte%20og%20velsmakende%20kaker.%20%20V%C3%A5re%20konditorer%20legger%20sin%20lit%20i%20%C3%A5%20produsere%20de%20beste%20kakene%20for%20v%C3%A5re%20kunder.%22%2C%22email%22%3A%22ordre%40bodobakeri.no%22%2C%22phone%22%3A%22%2B4775580200%22%2C%22picture%22%3A2425%2C%22country%22%3A%7B%22code%22%3A%22NO%22%2C%22name%22%3A%22Norway%22%2C%22currency%22%3A%22NOK%22%2C%22currencySymbol%22%3A%22kr%22%2C%22phoneCode%22%3A%2247%22%2C%22language%22%3A%22no%22%7D%2C%22area%22%3A%7B%22invoiceFee%22%3A49%2C%22invoiceFeeEnabled%22%3Atrue%7D%2C%22payInStoreWebShopEnabled%22%3Afalse%2C%22payInStoreWebShopOnlyMethod%22%3Afalse%2C%22payInStoreMarketplaceEnabled%22%3Afalse%2C%22payInStoreMarketplaceOnlyMethod%22%3Afalse%2C%22webSiteUrl%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%22%2C%22schedule%22%3A%7B%22thursday%22%3A%7B%22orderBefore%22%3A720%2C%22dayOff%22%3Afalse%2C%22daysBeforeOrder%22%3A1%2C%22isRelative%22%3Atrue%2C%22hasPickupOrDelivery%22%3Atrue%7D%2C%22friday%22%3A%7B%22orderBefore%22%3A720%2C%22dayOff%22%3Afalse%2C%22daysBeforeOrder%22%3A1%2C%22isRelative%22%3Atrue%2C%22hasPickupOrDelivery%22%3Atrue%7D%2C%22saturday%22%3A%7B%22orderBefore%22%3A900%2C%22dayOff%22%3Atrue%2C%22daysBeforeOrder%22%3A2%2C%22isRelative%22%3Atrue%2C%22hasPickupOrDelivery%22%3Atrue%7D%2C%22sunday%22%3A%7B%22orderBefore%22%3A900%2C%22dayOff%22%3Atrue%2C%22daysBeforeOrder%22%3A2%2C%22isRelative%22%3Atrue%2C%22hasPickupOrDelivery%22%3Atrue%7D%2C%22monday%22%3A%7B%22orderBefore%22%3A720%2C%22dayOff%22%3Afalse%2C%22daysBeforeOrder%22%3A1%2C%22isRelative%22%3Afalse%2C%22hasPickupOrDelivery%22%3Atrue%7D%2C%22tuesday%22%3A%7B%22orderBefore%22%3A720%2C%22dayOff%22%3Afalse%2C%22daysBeforeOrder%22%3A1%2C%22isRelative%22%3Atrue%2C%22hasPickupOrDelivery%22%3Atrue%7D%2C%22wednesday%22%3A%7B%22orderBefore%22%3A720%2C%22dayOff%22%3Afalse%2C%22daysBeforeOrder%22%3A1%2C%22isRelative%22%3Atrue%2C%22hasPickupOrDelivery%22%3Atrue%7D%7D%2C%22customSchedule%22%3A%22%22%2C%22maxDeliveryPrice%22%3A299%2C%22cities%22%3A%5B%22Bod%C3%B8%22%2C%22Fauske%22%2C%22Rognan%22%5D%2C%22position%22%3A%22TOP%22%2C%22pickupLocations%22%3A%5B%22Bod%C3%B8%22%2C%22Fauske%22%2C%22Rognan%22%5D%2C%22deliveryToLocations%22%3A%5B%22Bod%C3%B8%22%2C%22Fauske%22%5D%2C%22invoiceFeeEnabled%22%3Atrue%2C%22invoiceFee%22%3A49%2C%22invoiceEnabledOnWebShop%22%3Atrue%2C%22invoiceReferenceCanBeEmpty%22%3Atrue%2C%22twoInvoiceEnabledOnWebShop%22%3Atrue%2C%22helpBakeriesPromo%22%3A%22%3Cul%3E%3Cli%3ETilbyr%20br%C3%B8d%2C%20bakst%20og%20kaker%3C%2Fli%3E%3Cli%3EKan%20bestille%20i%20nettbutikk%3C%2Fli%3E%3Cli%3ELevering%20p%C3%A5%20d%C3%B8r%3C%2Fli%3E%3C%2Ful%3E%22%2C%22image%22%3A%7B%22id%22%3A2425%2C%22small%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakeries_images%2Fthumb%2Fcompressed%2F_oEb76lA7CQp.png%22%2C%22original%22%3A%22https%3A%2F%2Fd2y9vkode0okis.cloudfront.net%2Fbakeries_images%2Fcompressed%2F84-20.png%22%2C%22isVertical%22%3Afalse%2C%22shape%22%3A%22horizontal%22%7D%2C%22expressOrderingEnabled%22%3Afalse%2C%22minCartPriceAllowsDelivery%22%3A0%2C%22freeDeliveryEnabled%22%3Afalse%2C%22minCartPriceAllowsFreeDelivery%22%3A0%2C%22freeDeliveryAllowsOnlyForCompanies%22%3Afalse%2C%22categoryAvailableOnlyInternalOutletsNote%22%3A%22%22%2C%22productAvailableOnlyInternalOutletsNote%22%3A%22%22%2C%22slug%22%3A%22bod-bakeri%22%2C%22details%22%3A%7B%22filingSectionTitle%22%3A%22Velg%20smak%2Ffyll%22%2C%22filingSectionHelpText%22%3A%22%22%2C%22sizeSectionTitle%22%3A%22Velg%20st%C3%B8rrelse%22%2C%22sizeSectionHelpText%22%3A%22Hvor%20mange
5837%20biter%20trenger%20man%3F%20Et%20forslag%20er%20%C3%A5%20beregne%201%2C5%20biter%20per%20person.%20Da%20f%C3%A5r%20alle%20et%20stykke%20og%20noen%20kan%20ta%20et%20ekstra.%20Og%20rester%20er%20jo%20uansett%20godt%20%C3%A5%20ha%20i%20kj%C3%B8leskapet%20%3A)%22%7D%2C%22portfolio%22%3Anull%2C%22relatedShops%22%3A%5B%5D%2C%22allowLoginByCustomerId%22%3Afalse%2C%22activateHomebakt%22%3Atrue%2C%22showHomebaktLink%22%3Afalse%2C%22deviatingOrderDeadlines%22%3A%5B%5D%2C%22deliveryDeposit%22%3A129%2C%22invoiceFeeOnPrivateShop%22%3A49%2C%22invoiceEnabledOnPrivateShop%22%3Atrue%2C%22cieInvoiceEnabledOnPrivateShop%22%3Afalse%2C%22thirdPartyDeliveryEnabled%22%3Afalse%2C%22thirdPartyDeliveryAllowedOnMarketplace%22%3Afalse%2C%22thirdPartyDeliveryAllowedOnWebshop%22%3Afalse%2C%22shopUrl%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%2Fshop%2F%22%2C%22siteUrl%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%22%2C%22host%22%3A%22www.bodobakeri.no%22%2C%22ownLandingPage%22%3Afalse%7D%2C%22locale%22%3A%22NO%22%2C%22bakeryId%22%3A84%2C%22bakerySlug%22%3A%22bod-bakeri%22%2C%22bakeryCountryCode%22%3A%22NO%22%2C%22bakeryAnalyticSettings%22%3A%7B%22googleAnalyticKey%22%3A%22%22%2C%22googleTagManagerKey%22%3A%22%22%7D%2C%22bakeryWebSiteHost%22%3A%22www.bodobakeri.no%22%2C%22allowPageIndexing%22%3Atrue%2C%22STRINGS%22%3A%7B%22go%20to%20sleep%20key%22%3A%22NO%20KEY!!!%22%2C%22close%22%3A%22close%22%2C%22HOME%22%3A%22home%22%2C%22cancel%22%3A%22cancel%22%2C%22submit%22%3A%22Bekreft%22%2C%22image%20url%22%3A%22Image%20url...%22%2C%22clear%22%3A%22clear%22%2C%22title%22%3A%22Title%22%2C%22liked%20posts%22%3A%22Liked%20posts%20%22%2C%22Dimension%2C%20cm%22%3A%22Dimension%20(CM)%22%2C%22orders%22%3A%22Orders%22%2C%22you%20didn't%20do%20any%20sale%20yet%22%3A%22You%20have%20not%20made%20any%20sales%20yet%22%2C%22reporting%22%3A%22Analytics%20dashboard%20%22%2C%22is%20in%20mutual%20connection%22%3A%22is%20a%20mutual%20connection%22%2C%22edit%20Hero%20Banner%22%3A%22Hero%20image%20%2B%20text%22%2C%22edit%20TopBanner%22%3A%22Viktig%20informasjon%22%2C%22edit%20header%22%3A%22Header%22%2C%22edit%20Offers%20section%22%3A%22Menu%20with%204%20choices%22%2C%22edit%20About%20us%20section%22%3A%22About%20us%22%2C%22edit%20Instagram%20Feed%20section%22%3A%22Instagram%20feed%22%2C%22edit%20Shops%20Section%20Desktop%22%3A%22Shop%20map%20for%20desktop%22%2C%22edit%20Shops%20Section%20Mobile%22%3A%22Shop%20list%20for%20mobile%22%2C%22edit%20order%20section%22%3A%22Promote%20offer%22%2C%22edit%20SocialNetwork%22%3A%22Social%20networks%22%2C%22edit%20product%20categories%22%3A%22Product%20categories%22%2C%22edit%20Footer%22%3A%22Footer%22%2C%22i%20agree%22%3A%22Jeg%20godtar%22%2C%22restore%20your%20password%22%3A%22Tilbakestill%20ditt%20passord%22%2C%22if%20you%20have%20not%20made%20a%20request%20to%20change%20your%20password%2C%20please%20ignore%20this%20message%22%3A%22Om%20du%20ikke%20har%20bedt%20om%20%C3%A5%20endre%20ditt%20passord%2C%20vennligst%20se%20bort%20i%20fra%20denne%20eposten.%20Ditt%20eksisterende%20passord%20fungerer%20fortsatt.%22%2C%22Close%20modal%22%3A%22Lukk%22%2C%22thanks%20for%20you%20registration%2C%20we%20will%20check%20your%20account%20and%20come%20back%20to%20you%22%3A%22Takk%20for%20din%20registrering.%20Administratoren%20vil%20sjekke%20kontoen%20din%20og%20gi%20deg%20tilgang%20om%20du%20kvalifisert.%22%2C%22Your%20are%20welcome%22%3A%22Vi%20har%20mottatt%20din%20registering!%22%2C%22your%20registration%20was%20successful%20and%20now%20we%20can%20use%20the%20site.%20if%20you%20have%20any%20questions%2C%20write%20or%20call%20us.%22%3A%22Vi%20har%20mottatt%20din%20registering%20og%20nettsidens%20administrator%20vil%20se%20p%C3%A5%20din%20konto%20og%20gi%20deg%20tilgang%20til%20nettsiden%20om%20du%20er%20kvalifisert.%22%2C%22user%20registration%22%3A%22Brukerregistrering%22%2C%22description%22%3A%22Description%22%2C%22banner%22%3A%22Fullwidth%20banner%22%2C%22text%22%3A%22Tekst%22%2C%22link%22%3A%22Link%22%2C%22hey%20there%22%3A%22hey%20there%20value%22%2C%22Hello%20%7B0%7D%20%7B1%7D%22%3A%22Hi%20dear%20%7B0%7D%20%7B1%7D.%20How%20are%20you%20darling%20yo1%3F%22%2C%22phone%22%3A%22phone%22%2C%22paste%2
58370image%20url%22%3A%22Add%20url%20to%20image%22%2C%22Search%20products%22%3A%22S%C3%B8k%20produkter%22%2C%22welcome%20back!%22%3A%22Logg%20inn%22%2C%22log%20in%20to%20manage%20your%20account%22%3A%22Vennligst%20oppgi%20dine%20innloggingsdetaljer%22%2C%22login%22%3A%22Logg%20inn%22%2C%22forgot%20password%3F%22%3A%22Glemt%20passord%3F%22%2C%22register%20yourself%22%3A%22Registrer%20deg%22%2C%22don't%20have%20a%20user%3F%22%3A%22Har%20du%20ikke%20en%20bruker%3F%22%2C%22email%22%3A%22E-postadresse%22%2C%22password%22%3A%22Passord%22%2C%22%D1%81reate%20account%22%3A%22Registrer%20deg%22%2C%22already%20have%20an%20account%3F%22%3A%22Har%20du%20konto%3F%22%2C%22first%20name%22%3A%22Fornavn%22%2C%22last%20name%22%3A%22Etternavn%22%2C%22create%20a%20user%20to%20enjoy%20all%20the%20benefits%20of%20our%20customer%20club.%22%3A%22Register%20deg%20for%20%C3%A5%20be%20om%20adgang%20til%20admin.%20Administrator%20m%C3%A5%20godkjenne%20deg%20etter%20registering.%22%2C%22good%20day%2C%20dear%20customer%22%3A%22Hei%2C%22%2C%22you%20have%20made%20a%20request%20to%20change%20your%20password.%20to%20reset%20your%20password%2C%20click%20on%22%3A%22Vi%20mottok%20en%20foresp%C3%B8rsel%20om%20at%20du%20%C3%B8nsket%20%C3%A5%20tilbakestille%20ditt%20passord.%20Vennligst%20%22%2C%22the%20reset%20link%22%3A%22klikk%20her%20for%20%C3%A5%20lage%20et%20nytt%20passord.%22%2C%22password%20is%20successfully%20reset.%20log%20in%20using%20your%20new%20password%22%3A%22Det%20nye%20passordet%20er%20klart.%20N%C3%A5%20kan%20du%20g%C3%A5%20til%20nettsiden%20og%20logge%20inn.%22%2C%22enter%20your%20new%20password%22%3A%22Lag%20et%20nytt%20passord%22%2C%22restore%20password%22%3A%22Gjenopprett%20passord%22%2C%22please%20type%20in%20your%20email%2C%20and%20we%20will%20send%20you%20an%20instruction%20on%20how%20to%20reset%20your%20password!%22%3A%22Skriv%20inn%20din%20e-postadresse%2C%20s%C3%A5%20sender%20vi%20deg%20en%20e-post%20med%20instruksjoner%20om%20hvordan%20du%20gjenoppretter%20passordet%20ditt.%22%2C%22send%22%3A%22Send%22%2C%22oh!%20you%20do%20remember%20your%20password%3F%20then%22%3A%22Husker%20du%20passordet%20ditt%3F%22%2C%22there%20is%20no%20user%20with%20this%20email%22%3A%22Det%20er%20dessverre%20ingen%20bruker%20med%20denne%20e-postadressen.%20Trenger%20du%20hjelp%3F%20Ta%20kontakt%20med%20Cake%20it%20easy%20p%C3%A5%2022%2033%2026%2000.%22%2C%22error!!!%22%3A%22Ops!%22%2C%22make%20sure%20email%20%7B0%7D%20is%20valid%20and%20you%20are%20registered%20with%20this%20email%20address%22%3A%22Det%20fins%20ingen%20bruker%20med%20denne%20e-postadressen.%20Sjekk%20at%20%7B0%7D%20er%20riktig.%20Trenger%20du%20hjelp%3F%20Ta%20kontakt%20med%20Cake%20it%20easy%20p%C3%A5%2022%2033%2026%2000.%22%2C%22success!!!%22%3A%22Bekreftet%22%2C%22email%20message%20with%20password%20restoring%20instructions%20is%20successfully%20sent.%20check%20your%20inbox%22%3A%22Vi%20har%20sendt%20en%20e-post%20til%20deg%20med%20instruksjoner%20for%20%C3%A5%20tilbakestille%20passordet%20ditt.%20Sjekk%20innboksen%20din.%22%2C%22check%20all%20the%20fields%20and%20provide%20a%20valid%20data%22%3A%22E-postadresse%20eller%20passord%20er%20feil.%20Vennligst%20sjekk%20om%20det%20er%20riktig%20og%20pr%C3%B8v%20igjen.%22%2C%22save%22%3A%22Confirm%22%2C%22special%20banners%22%3A%22Set%20time-activated%20banners%22%2C%22your%20are%20welcome%22%3A%22Lag%20deg%20en%20konto%22%2C%22edit%20Slider%22%3A%22Hero%20slider%22%2C%22edit%20Dual%20Image%20Block%22%3A%22Two%20images%20%2B%20text%22%2C%22edit%20Dual%20Image%20Block%20Down%22%3A%22Two%20images%20%2B%20text%22%2C%22edit%20CTA%20Text%20Block%22%3A%22Signup%20for%20invoice%22%2C%22edit%20Page%20Theme%22%3A%22Theme%22%2C%22Bestill%22%3A%22Bestill%22%2C%22saved!%22%3A%22Updated%22%2C%22terms%22%3A%22Registrera%20dig%20f%C3%B6r%20att%20kunna%20hantera%20di%22%2C%22Brukerbetingelser%22%3A%22Brukerbetingelser%22%2C%22NettButikk%22%3A%22Nettbutikk%22%2C%22Log%20in%22%3A%22Logg%20inn%22%2C%22Log%20out%22%3A%22Log%20out%22%2C%22rosenborginfo%22%3A%22Info%22%2C%22rosenborgaboutus%22%3A%22About%20us%22%2C%22rosenborgoffer%22%3A%22Our%20offers%22%2C%22rosenborgfullwidthimage%22%3A%22Full%20width%20image%22%2C%22rosenborgproductcategories%22%3A%22Product%20categories%22%2C%22rosenborginstagramfeed%22%3A%22Instagram%20feed%22%2C%22rosenborgtextblock%22%3A%22Free%20Text%22%2C%22rosenborgherobanner%22%3A%22Hero%20section%22%2C%22rosenborgsimplebutton%22%3A%22Single%20button%22%2C%22rosenborgdualimage%22%3A%22Dual%20image%2
58370cards%22%2C%22rosenborgslider%22%3A%22Slider%22%2C%22rosenborgapplyforinvoicecontainer%22%3A%22Apply%20for%20Invoice%22%2C%22rosenborgbakeryoutlets%22%3A%22Outlets%22%2C%22Cart%22%3A%22Handlekurv%22%2C%22commonspacer%22%3A%22Spacer%22%2C%22dualimage%22%3A%22Dual%20banner%22%2C%22fullwidthimage%22%3A%22Full%20width%20image%22%2C%22gallery%22%3A%22Three%20images%20horizontally%22%2C%22productcategories%22%3A%22Produktkategorier%20i%20galleri%22%2C%22textblock%22%3A%22Text%22%2C%22titlewithimage%22%3A%22About%20us%20with%203%20images%22%2C%22ourproducts%22%3A%22Nettbutikk%22%2C%22instagramfeed%22%3A%22Instagram%20feed%22%2C%22herobanner%22%3A%22Hero%20banner%22%2C%22button%22%3A%22Button%22%2C%22spacer%22%3A%22Spacer%22%2C%22image%22%3A%22%22%2C%22info%22%3A%22Call-to-action%20with%20image%22%2C%22offer%22%3A%22Cards%20with%20images%20and%20text%22%2C%22aboutus%22%3A%22Om%20oss%20med%20bakgrunn%20og%20bilde%22%2C%22Choose%20outlet%22%3A%22Her%20finner%20du%20oss%22%2C%22Choose%20delivery%22%3A%22Levering%20p%C3%A5%20d%C3%B8r%22%2C%22top%20banner%22%3A%22Notification%20bar%22%2C%22from%22%3A%22fra%22%2C%22Categories%22%3A%22V%C3%A5re%20produkter%22%2C%22submenu%22%3A%22Secondary%20menu%20bar%22%2C%22save%20%26%20close%22%3A%22Save%20%26%20close%22%2C%22Vi%20bruker%20cookies%20for%20%C3%A5%20gi%20deg%20den%20beste%20opplevelsen%20av%20v%C3%A5re%20sider.%20Aksepter%20ved%20%C3%A5%20forsette%20%C3%A5%20bruke%20nettstedet%20eller%20klikke%20%5C%22OK%5C%22.%22%3A%22Vi%20bruker%20cookies%20for%20%C3%A5%20gi%20deg%20den%20beste%20opplevelsen%20av%20v%C3%A5re%20sider.%20Aksepter%20ved%20%C3%A5%20forsette%20%C3%A5%20bruke%20nettstedet%20eller%20klikke%20%5C%22OK%5C%22.%22%2C%22Les%20mer%22%3A%22Les%20mer%22%2C%22Personvern%22%3A%22Personvern%22%2C%22per%20piece%22%3A%22per%20stykk%22%2C%22Allow%20all%22%3A%22Tillat%20alle%22%2C%22Customize%22%3A%22Tilpass%22%2C%22Show%20details%22%3A%22Vis%20detaljer%22%2C%22cookies%5Cn%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ct%5Ctdetails%22%3A%22Cookies%20detaljer%22%2C%22Accept%22%3A%22Tillat%20valgte%22%2C%22Description%22%3A%22Beskrivelse%22%2C%22weglot%20api%20key%22%3A%22Weglot%20API%20Key%22%7D%2C%22domain%22%3A%22https%3A%2F%2Fwww.bodobakeri.no%22%2C%22Page%22%3A%7B%22Name%22%3A%22BakeryLandingPage%22%2C%22Type%22%3A%22page%22%2C%22Folder%22%3A%22cakeiteasy%2Fpages%22%2C%22Apps%22%3A%5B%5D%2C%22_id%22%3A%22622f2ceb9af4ac0fce90a51a%22%2C%22DataArgs%22%3A%5B%5D%2C%22Page%22%3A%7B%22settings%22%3A%7B%22cache%22%3A%7B%22ttl%22%3A0%7D%2C%22group%22%3A%22%22%2C%22icon%22%3A%22%22%2C%22master%22%3A%22%22%2C%22meta%22%3A%7B%22description%22%3A%22%22%2C%22image%22%3A%22%22%2C%22keywords%22%3A%22%22%2C%22noIndex%22%3A%22%22%2C%22title%22%3A%22%22%2C%22viewport%22%3A%22%22%7D%2C%22permissions%22%3A%7B%22private%22%3A%22%22%2C%22roles%22%3A%22%22%7D%2C%22title%22%3A%22%22%2C%22url%22%3A%22%2F%22%7D%7D%2C%22BlockFunction%22%3A%22async%20function%20server()%20%7B%5Cn%20%20return%20%7B%7D%3B%5Cn%7D%22%2C%22DemoJsx%22%3A%22export%20default%20%3CBakeryLandingPage%20%2F%3E%22%2C%22DemoJsxTranspiled%22%3A%22export%20default%20executeAppBlock(BakeryLandingPage%2C%20null)%3B%22%2C%22Jsx%22%3A%22const%20%7B%20This%2C%20serverData%20%7D%20%3D%20Mars.initJsx()%3B%5Cn%5Cnasync%20function%20BakeryLandingPage()%20%7B%5Cn%20%20const%20simplePage%20%3D%20await%20Mars.data.simple_pages.findOne(%7B%5Cn%20%20%20%20slug%3A%20'%2F'%2C%5Cn%20%20%20%20folder%3A%20Req.bakerySlug%2C%5Cn%20%20%7D)%3B%5Cn%5Cn%20%20if%20(simplePage)%20%7B%5Cn%20%20%20%20return%20%3CSimplePageRenderV2%20%7B...Req%7D%20Page%3D%7BthisBlock%7D%20simplePage%3D%7BsimplePage%7D%20%2F%3E%5Cn%20%20%7D%5Cn%5Cn%20%20return%20'Not%20found'%5Cn%5Cn%20%20%2F%2F%20return%20(%5Cn%20%20%2F%2F%20%20%20%3CSimplePageRenderV2%20%7B...Req%7D%20Page%3D%7BthisBlock%7D%20simplePage%3D%7BsimplePage%7D%20%2F%3E%5Cn%20%20%2F%2F%20)%3B%5Cn%7D%5Cn%5Cnexport%20default%20(%5Cn%20%20%3CCacheJsx%5Cn%20%20%20%20key%3D%7B'bakery-page-'%20%2B%20Req.bakerySlug%20%2B%20'%20%7C%20BakeryLandingPage%20%7C'%7D%5Cn%20%20%20%20keys%3D%7BObject.assign(%7B%7D%2C%20data%2C%20%7B%20bakerySlug%3A%20Req.bakerySlug%20%7D)%7D%5Cn%20%20%20%20data%3D%7BBakeryLandingPage%7D%5Cn%20%20%20%20ttl%3D%7BMars.settings.CieApiSettings.cacheConfig.pages.cacheInSeconds%7D%5Cn%20%20%2F%3E%5Cn)%5Cn%22%2C%22JsxTranspiled%22%3A%22const%20%7B%20This%2C%20serverData%20%7D%20%3D%20Mars.initJsx()%3B%5Cn%5Cnasync%20function%20BakeryLandingPage()%20%7B%5Cn%20%20const%20simplePage%20%3D%20await%20Mars.data.simple_pages.findOne(%7B%5Cn%20%20%20%20slug%3A%20'%2F'%2C%5Cn%20%20%20%20folder%3A%20Req.bakerySlug%5Cn%20%20%7D)%3B%5Cn%5Cn%20%20if%20(simplePage)%20%7B%5Cn%20%20%20%20return%20executeAppBlock(SimplePageRenderV2%2C%20Object.assign(%7B%7D%2C%20Req%2C%20%7B%20Page%3A%20thisBlock%2C%20simplePage%3A%20simplePage%20%7D))%3B%5Cn%20%20%7D%5Cn%5Cn%20%20return%20'Not%20found'%3B%5Cn%5Cn%20%20%2F%2F%20return%20(%5Cn%20%20%2F%2F%20%20%20%3CSimplePageRenderV2%20%7B...Req%7D%20Page%3D%7BthisBlock%7D%20simplePage%3D%7BsimplePage%7D%20%2F%3E%5Cn%20%20%2F%2F%20)%3B%5Cn%7D%5Cn%5Cnexport%20default%20executeAppBlock(CacheJsx%2C%20%7B%5Cn%20%20key%3A%20'bakery-page-'%20%2B%20Req.bakerySlug%20%2B%20'%20%7C%20BakeryLandingPage%20%7C'%2C%5Cn%20%20keys%3A%20Object.assign(%7B%7D%2C%20data%2C%20%7B%20bakerySlug%3A%20Req.bakerySlug%20%7D)%2C%5Cn%20%20data%3A%20BakeryLandingPage%2C%5Cn%20%20ttl%3A%20Mars.settings.CieApiSettings.cacheConfig.pages.cacheInSeconds%5Cn%7D)%3B%22%7D%2C%22meta%22%3A%7B%22title%22%3A%22Bod%C3%B8%20Bakeri%20-%20Bestill%20kaker%2C%20lunsj%20og%20bakervarer%20i%20Salten%22%2C%22description%22%3A%22Vi%20er%20Saltens%20lokale%20bakeri%20og%20med%20h%C3%B8y%20baker-%20og%20konditorfaglig%20kompetanse%20satser%20vi%20p%C3%A5%20%C3%A5%20levere%20de%20beste%20og%20ferskeste%20baker-%20og%20konditorvarer%20av%20h%C3%B8yeste%20kvalitet.%22%2C%22image%22%3A%22https%3A%2F%2Fbcdn.cakeiteasy.com%2F1677578276282%3Fwidth%3D500%26height%3D500%26optimizer%3Dimage%26format%3Dwebp%22%2C%22noIndex%22%3Afalse%7D%2C%22icon%22%3Anull%2C%22title%22%3A%22Bod%C3%B8%20Bakeri%20-%20Bestill%20kaker%2C%20lunsj%20og%20bakervarer%20i%20Salten%22%2C%22master%22%3A%22MasterPage%22%2C%22Folder%22%3A%22bod-bakeri%22%2C%22simplePageObjectId%22%3A%2263fdcb3473455536952f1d78%22%2C%22children%22%3Anull%2C%22Id%22%3A%22objf3dcac47de134a028d9d5668fb15dd33%22%7D")); 5838new MarsBlock('ClonePage', { 5839 ...data, methods: [ 5840 { name: 'clone', block: 'PageViewerPage' }, 5841 { name: 'getPageSlug', block: 'MasterPage' } 5842 ] 5843}, 5844 { 5845 async clone(pageId) { 5846 pageId = await this.api.clone(pageId); 5847 const page = await this.api.getPageSlug(pageId); 5848 // check slug rename option on - it doesnt work 5849 location.href = `${page.slug}`; 5850 } 5851 }) 5852 5853const selector = sessionStorage.getItem("scrollToElement"); 5854const blockElement = document.getElementById(selector) ? document.getElementById(selector) : document.querySelector(`section[data-test-id="${selector}"]`); 5855 5856if (blockElement) { 5857 const block = 'start';
5858 const behavior = 'smooth'; 5859 //blockElement.scrollIntoView({ block, behavior }); 5860 scrollToElement(selector, block, behavior) 5861 sessionStorage.setItem("scrollToElement", null); 5862}</script>
5862</div><div ></div><div id="pageLoadSpinner" hidden="true" style=""><div class="loader" style="overflow-x: hidden;margin-bottom: -3px;"> 5863 <div class="bar"></div> 5864</div> 5865<style> 5866 #pageLoadSpinner .bar {position: fixed} 5867</style><style>@keyframes loader-animation { 5868 0% { left: -100%; } 5869 49% { left: 100%; } 5870 50% { left: 100%; } 5871 100% { left: -100%; } 5872} 5873 5874#pageLoadSpinner .loader .bar { 5875 top: 0; 5876 left: 0; 5877 height: 3px; 5878 width: 100%; 5879 z-index: 999999; 5880 background-color: red; 5881 animation-name: loader-animation; 5882 animation-duration: 3s; 5883 animation-iteration-count: infinite; 5884 animation-timing-function: ease-in-out; 5885}</style>
5885<script v-pre type="module">const data = JSON.parse(decodeURIComponent("%7B%22_blockName%22%3A%22PageLoader%22%2C%22Id%22%3A%22pageLoadSpinner%22%2C%22position%22%3A%22relative%22%2C%22children%22%3Anull%7D"));window[data.Id].hidden = true;</script>
5885</div></body></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.