1<!doctype html> 2<html lang="it"> 3<head prefix="og: http://ogp.me/ns# cms: http://ogp.me/ns/cms#"> 4 <meta charset="utf-8"/> 5<meta name="title" content="Farmacia online italiana | Farma.it by Antica Farmacia Orlandi"/> 6<meta name="description" content="La prima farmacia online italiana: farma.it by Antica Farmacia Orlandi con spedizione gratuita per farmaci da banco, integratori, omeopatici, prodotti veterinari e cosmetici."/> 7<meta name="keywords" content="farmacia online"/> 8<meta name="robots" content="INDEX,FOLLOW"/> 9<meta name="viewport" content="width=device-width, initial-scale=1"/> 10<title>Farmacia online italiana | Farma.it by Antica Farmacia Orlandi</title> 11 <link rel="stylesheet" type="text/css" media="all" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/css/styles.css" /> 12<link rel="icon" type="image/x-icon" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Magento_Theme/favicon.ico" /> 13<link rel="shortcut icon" type="image/x-icon" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Magento_Theme/favicon.ico" /> 14<link rel="preload" as="font" crossorigin="anonymous" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/fonts/SourceSans3/SourceSans3-Light.woff2" /> 15<link rel="preload" as="font" crossorigin="anonymous" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/fonts/SourceSans3/SourceSans3-Medium.woff2" /> 16<link rel="preload" as="font" crossorigin="anonymous" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/fonts/SourceSans3/SourceSans3-Bold.woff2" /> 17<link rel="preload" as="font" crossorigin="anonymous" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/fonts/BalooBhaina2/BalooBhaina2-Bold.woff2" /> 18<link rel="icon" sizes="16x16" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Magento_Theme/favicon-16x16.png" /> 19<link rel="icon" sizes="32x32" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Magento_Theme/favicon-32x32.png" /> 20<link rel="apple-touch-icon-precomposed" href="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Magento_Theme/apple-touch-icon.png" /> 21<meta name="facebook-domain-verification" content="19ikyzhaaju7aes0tjiyen338y422x" /> 22<style> 23.checkout-payment-method .payment-method-title input[value="sella_fabrickpass"]+label>span { 24 width: 100% 25} 26 27.checkout-payment-method .payment-method-title input[value="sella_fabrickpass"]+label:after { 28 content: ''; 29 display: block; 30 height: 30px; 31 width: 100%; 32 background-size: contain!important; 33 background: url("https://www.farma.it/media/paybybank-logo.png") no-repeat right 34} 35 36.bg-cerave-week { 37 background: #0072ba; 38} 39 40.bg-cerave-week:hover { 41 background: #0069ac; 42 text-decoration: none; 43} 44 45[data-content-type="text"] ol { 46 list-style-type: decimal; 47 padding-left: 20px; 48} 49 50[data-content-type="text"] ul { 51 list-style-type: disc; 52 padding-left: 20px; 53} 54 55[data-content-type="text"] ol li, [data-content-type="text"] ol li { 56 margin-top: 4px; 57} 58 59.catalog-product-view .product-info-main #gallery img.derma-badge { 60 width: 120px!important; 61} 62 63#amfaq-ask-form-inline .button-container { 64display: none !important; 65} 66 67.children-category-container { 68overflow: hidden; 69} 70div.sella-payment-method-container div.img-sella-container { 71 display: none; 72} 73 74div.sella-payment-method-container > div { 75 display: flex;
76 align-items: center; 77} 78div.sella-card-form input { 79 width: 100%; 80 border-radius: 26px; 81 border-width: 1px; 82 --tw-border-opacity: 1; 83 border-color: rgb(214 214 214 / var(--tw-border-opacity)); 84 padding: .875rem; 85 line-height: 1; 86 color: rgb(8 1 26 / var(--tw-text-opacity)); 87 --tw-text-opacity: 1; 88 color: rgb(107 114 128 / var(--tw-text-opacity)); 89 font-size: 16px; 90} 91 92[data-bind="i18n: 'Sustainable delivery estimated in 48-72 hours'"] { 93 display: none; 94} 95 96/* stile doppi punti */ 97/* 98.col-method#label_method_inpost_inpost:after { 99 content: 'Punti Fedeltà x2!'; 100 background: #fec802e6; 101 padding: 0px 5px; 102 border-radius: 5px; 103 color: #f15b2c; 104 font-weight: bold; 105 font-size: 12px; 106 vertical-align: middle; 107 display: inline-block; 108 white-space: nowrap; 109 animation: smooth-bounce-h 2.5s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite; 110 padding: 4px 8px; 111} 112 113@keyframes smooth-bounce-h { 114 0% { transform: translateX(0); } 115 25% { transform: translateX(6px); } 116 50% { transform: translateX(0); } 117 75% { transform: translateX(-6px); } 118 100% { transform: translateX(0); } 119} 120 121.col-method#label_method_inpost_inpost { 122 display: flex; 123 gap: 8px; 124 align-items: center; 125} 126*/ 127</style> 128 129 130<meta name="google-site-verification" content="9QFzfN_ciMqKFU_cA05_S82R8WLpqnsp4E4Ihexm7EE" /> 131
132<script> 133// Aggiungi un event listener al documento 134document.addEventListener('click', function(event) { 135 // Ottieni l'elemento target cliccato 136 var targetElement = event.target; 137 138 // Verifica se l'elemento cliccato ha le classi specificate 139 var hasTargetClasses = targetElement.classList.contains('block') && 140 targetElement.classList.contains('px-6') && 141 targetElement.classList.contains('w-full') && 142 targetElement.classList.contains('py-3') && 143 targetElement.classList.contains('text-base') && 144 targetElement.classList.contains('hover:text-secondary') && 145 targetElement.classList.contains('hover:bg-tertiary-darker/10') && 146 targetElement.classList.contains('hover:fill-primary') && 147 targetElement.classList.contains('font-bold') && 148 targetElement.classList.contains('cursor-pointer') && 149 targetElement.classList.contains('level0') && 150 targetElement.classList.contains('nav-11') && 151 targetElement.classList.contains('page-item'); 152 153 // Verifica se l'elemento cliccato è un figlio di un elemento con le classi specificate 154 var parentElement = targetElement.closest('.block.px-6.w-full.py-3.text-base.hover\\:text-secondary.hover\\:bg-tertiary-darker\\/10.hover\\:fill-primary.font-bold.cursor-pointer.level0.nav-11.page-item'); 155 156 // Esegui l'azione solo se l'elemento cliccato ha le classi o è un figlio di un elemento con le classi 157 if (hasTargetClasses || parentElement) { 158 // Esegui il reindirizzamento o caricamento del link 159 window.location.href = "https://www.farma.it/dermocosmetica"; 160 } 161 162 // Ottieni l'elemento target cliccato 163 targetElement = event.target; 164 165 // Verifica se l'elemento cliccato ha le classi specificate 166 hasTargetClasses = targetElement.classList.contains('block') && 167 targetElement.classList.contains('px-6') && 168 targetElement.classList.contains('w-full') && 169 targetElement.classList.contains('py-3') && 170 targetElement.classList.contains('text-base') && 171 targetElement.classList.contains('hover:text-secondary') && 172 targetElement.classList.contains('hover:bg-tertiary-darker/10') && 173 targetElement.classList.contains('hover:fill-primary') && 174 targetElement.classList.contains('font-bold') && 175 targetElement.classList.contains('cursor-pointer') && 176 targetElement.classList.contains('level0') && 177 targetElement.classList.contains('nav-12') && 178 targetElement.classList.contains('page-item'); 179 180 // Verifica se l'elemento cliccato è un figlio di un elemento con le classi specificate 181 parentElement = targetElement.closest('.block.px-6.w-full.py-3.text-base.hover\\:text-secondary.hover\\:bg-tertiary-darker\\/10.hover\\:fill-primary.font-bold.cursor-pointer.level0.nav-12.page-item'); 182 183 // Esegui l'azione solo se l'elemento cliccato ha le classi o è un figlio di un elemento con le classi 184 if (hasTargetClasses || parentElement) { 185 // Esegui il reindirizzamento o caricamento del link 186 window.location.href = "https://www.farma.it/gastro-intestinale"; 187 } 188 189}); 190 191</script>
191 192
193<script defer> 194 window.addEventListener('load', () => { 195 Alpine.effect(() => { 196 // Funzione per capire se un elemento è naturalmente focusabile 197 const isNaturallyFocusable = (el) => { 198 const tag = el.tagName.toLowerCase(); 199 if (tag === "a") return el.hasAttribute("href"); 200 return ["button", "input", "select", "textarea"].includes(tag); 201 }; 202 203 // 1. Link con href="#" => role="button" + tabindex 204 document.querySelectorAll("[href='#']:not([role])").forEach(el => { 205 el.setAttribute("role", "button"); 206 if (!el.hasAttribute("tabindex") && !isNaturallyFocusable(el)) { 207 el.setAttribute("tabindex", "0"); 208 } 209 }); 210 211 // 2. Link target="_blank" => aria-label se manca 212 document.querySelectorAll("a[target='_blank']:not([aria-label])").forEach(el => { 213 const text = el.textContent.trim(); 214 if (text.length > 0) { 215 el.setAttribute("aria-label", `${text} - opens in new tab`); 216 } 217 }); 218 219 // 2.1 Link con href valorizzato e senza aria-label => estrai path finale 220 document.querySelectorAll("a[href]:not([aria-label])").forEach(el => { 221 const href = el.getAttribute("href"); 222 if (href && href !== "#" && !el.hasAttribute("aria-label")) { 223 try { 224 const cleanHref = href.split('?')[0].split('#')[0]; 225 const parts = cleanHref.split('/'); 226 const last = parts.filter(p => p).pop(); 227 if (last) { 228 const label = decodeURIComponent(last) 229 .replace(/[-_]/g, ' ') 230 .replace(/[^\w\sà èéìòùÃÃÃÃÃÃ]/gi, '') 231 .trim(); 232 if (label) { 233 el.setAttribute("aria-label", label); 234 } 235 } 236 } catch (e) {} 237 } 238 }); 239 240 // 3. Form di ricerca => role="search" 241 document.getElementById("search_mini_form")?.setAttribute("role", "search"); 242 243 // 4. Icone visive => role="presentation" se mancante 244 document.querySelectorAll("i[class*='-icon'], em[class*='-icon'], span[class*='-icon']").forEach(el => { 245 if (!el.hasAttribute("role")) { 246 el.setAttribute("role", "presentation"); 247 } 248 }); 249 250 // 5. SVG: rimuovi role="img", imposta alt e role="presentation" se serve 251 document.querySelectorAll("svg").forEach(el => { 252 if (el.getAttribute("role") === "img") { 253 el.removeAttribute("role"); 254 } 255 if (!el.hasAttribute("alt")) { 256 el.setAttribute("alt", "Icona"); 257 } 258 if (!el.hasAttribute("role")) { 259 el.setAttribute("role", "presentation"); 260 } 261 }); 262 263 // 6. Elementi cliccabili via classi => role="button" + tabindex="0" 264 const clickableSelector = [ 265 ".cursor-pointer", 266 ".group\\/button", 267 "[style*='cursor: pointer']", 268 '.swiper-button-prev', 269 '.swiper-button-next', 270 '.swiper-pagination-bullet', 271 '.product-item-link' 272 ].join(','); 273 274 document.querySelectorAll(clickableSelector).forEach(el => { 275 if (el.hasAttribute("role")) return; 276 277 const tag = el.tagName.toLowerCase(); 278 const isNativeButton = 279 tag === "button" || 280 (tag === "input" && ["button", "submit", "reset"].includes(el.type)); 281 282 if (!isNativeButton) { 283 el.setAttribute("role", "button"); 284 285 if (!el.hasAttribute("tabindex") && !isNaturallyFocusable(el)) { 286 el.setAttribute("tabindex", "0"); 287 } 288 289 if (!el.hasAttribute("aria-label")) { 290 el.setAttribute("aria-label", "Action"); 291 } 292 } 293 }); 294 295 // 7. Elementi con @click => role="button" + tabindex="0" 296 document.querySelectorAll("*").forEach(el => { 297 if ( 298 el.hasAttribute("@click") && 299 el.hasAttribute("@click.prevent") && 300 !el.hasAttribute("role") && 301 el.tagName.toLowerCase() !== "button" 302 ) { 303 el.setAttribute("role", "button"); 304 305 if (!el.hasAttribute("tabindex") && !isNaturallyFocusable(el)) { 306 el.setAttribute("tabindex", "0"); 307 } 308 309 if (!el.hasAttribute("aria-label")) { 310 el.setAttribute("aria-label", "Action"); 311 } 312 } 313 }); 314 315 // 8. Cookiebot title: attesa dinamica e pulizia 316 const observeCookiebotTitle = () => { 317 const targetId = "CybotCookiebotDialogBodyContentTitle"; 318 319 const handleTitle = (el) => { 320 if (el.getAttribute("role") === "heading") el.removeAttribute("role"); 321 if (el.hasAttribute("aria-level")) el.removeAttribute("aria-level"); 322 }; 323 324 const existing = document.getElementById(targetId); 325 if (existing) { 326 handleTitle(existing); 327 return; 328 } 329 330 const observer = new MutationObserver((mutations, obs) => { 331 const found = document.getElementById(targetId); 332 if (found) { 333 handleTitle(found); 334 obs.disconnect(); 335 } 336 }); 337 338 observer.observe(document.body, { 339 childList: true, 340 subtree: true, 341 }); 342 }; 343 344 observeCookiebotTitle(); 345 346 // 9. Correzione elementi pseudo-button generici (span/div/a) con comportamento da bottone 347 document.querySelectorAll("a, span, div").forEach(el => { 348 const isButtonLike = 349 el.hasAttribute("@click") || 350 el.hasAttribute("@click.prevent") || 351 el.hasAttribute("x-on:click") || 352 el.hasAttribute("onclick") || 353 el.hasAttribute("@keyup.enter") || 354 el.hasAttribute("x-on:keyup.enter") || 355 el.classList.contains("cursor-pointer") || 356 el.classList.contains("badge-container") || 357 el.classList.contains("rating-summary"); 358 359 if (isButtonLike) { 360 const isFocusable = isNaturallyFocusable(el) || el.hasAttribute("tabindex"); 361 362 // Assegna solo se mancano 363 if (!el.hasAttribute("role")) { 364 el.setAttribute("role", "button"); 365 } 366 if (!isFocusable) { 367 el.setAttribute("tabindex", "0"); 368 } 369 if (!el.hasAttribute("aria-label")) { 370 el.setAttribute("aria-label", "Action"); 371 } 372 } 373 }); 374 }); 375 });
376 377 378window.addEventListener('init-external-scripts', () => { 379 380if (!window.dataLayer) { 381 window.dataLayer = []; 382} 383 384 window.dataLayer.push({ 385 event: 'init_external_scripts' 386 }) 387}); 388 389 390document.addEventListener('click', function (event) { 391 const link = event.target.closest('a[href^="#"]'); 392 393 if (!link) { 394 return; 395 } 396 397 const targetId = link.getAttribute('href').substring(1); 398 399 if (!targetId) { 400 return; 401 } 402 403 const target = document.getElementById(targetId); 404 405 // Ci interessa solo se il target è un form 406 if (!(target instanceof HTMLFormElement)) { 407 return; 408 } 409 410 event.preventDefault(); 411 412 target.requestSubmit(); 413}); 414</script>
414 415 416 <!-- Added the new component below to track server events --> 417
417<script> 418 window.addToCartData = 419 {"url":"https:\/\/www.farma.it\/fbe\/pixel\/tracker\/","eventName":"facebook_businessextension_ssapi_add_to_cart","fbAgentVersion":"magento_opensource-0.0.0-1.6.4","fbPixelId":"512468414859242","source":"magento_opensource","pluginVersion":"1.6.4","track":"track","event":"AddToCart"} </script>
419 420
420<script> 421 (function () { 422 var product_id = null; 423 424 window.addEventListener('configurable-selection-changed', event => { 425 product_id = event.detail.productIndex; 426 }); 427 428 window.addEventListener("product-addtocart-success", event => { 429 var product_info_url = window.BASE_URL + 'fbe/Pixel/ProductInfoForAddToCart'; 430 431 if (!product_id) { 432 //If it's simple, get product_id from request 433 product_id = event.detail.product_id; 434 } 435 436 product_qty = 1; 437 if (event?.detail?.form_data?.qty !== undefined) { 438 product_qty = event.detail.form_data.qty; 439 } 440 441 const params = new URLSearchParams({ 442 form_key: hyva.getFormKey(), 443 product_id: product_id, 444 product_sku: null 445 }); 446 const contentType = 'application/json'; 447 448 fetch(product_info_url + '?' + params.toString(), { 449 method: 'GET', 450 headers: { 451 'Content-Type': contentType 452 } 453 }).then(response => { 454 if (!response.ok) { 455 throw new Error('Error while processing Facebook Pixel event.'); 456 } 457 return response.json(); 458 }).then(res => { 459 let addToCartConfigPixel = { 460 "url" : window.addToCartData.url, 461 "payload": { 462 "eventName" : window.addToCartData.eventName, 463 "productId" : res.productId 464 }, 465 "browserEventData": { 466 'fbAgentVersion': window.addToCartData.fbAgentVersion, 467 'fbPixelId': window.addToCartData.fbPixelId, 468 'source': window.addToCartData.source, 469 'pluginVersion': window.addToCartData.pluginVersion, 470 'track': window.addToCartData.track, 471 'event': window.addToCartData.event, 472 'payload': { 473 "content_name": res.name, 474 "content_ids": [res.id], 475 "value": res.value, 476 "currency": res.currency, 477 "content_type": res.content_type, 478 "contents": [{ 479 "id": res.id, 480 "quantity": product_qty ?? 1 481 }] 482 } 483 } 484 }; 485 486 metaPixelTracker(addToCartConfigPixel); 487 }).catch(error => { 488 console.error(error); 489 }); 490 }); 491 })(); 492 </script>
492 493 <!-- TODO::Implement product customization <3 --> 494<!-- Meta Business Extension for Magento 2 --> 495<!-- Meta Pixel Code -->
496<script>
vendor: 398 bytes, lines 496-504
496 497!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 498n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 499n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 500t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 501document,'script','//connect.facebook.net/en_US/fbevents.js'); 502 fbq( 503 'init', 504 '
504512468414859242
vendor: 59 bytes, lines 504-507
504', 505 {}, 506 {agent: 'magento_opensource-0.0.0-1.6.4' } 507);
508fbq('track', 'PageView', { 509 source: "magento_opensource", 510 pluginVersion: "1.6.4" 511}); 512</script>
512 513
514<script> 515 function metaPixelTracker(config) { 516 let eventId = crypto.randomUUID(); 517 var browserEventData = config.browserEventData; 518 let browserPayload = config.browserEventData.payload; 519 520 browserPayload.source = browserEventData.source; 521 browserPayload.pluginVersion = browserEventData.pluginVersion; 522 523 fbq('set', 'agent', browserEventData.fbAgentVersion, browserEventData.fbPixelId); 524 fbq(browserEventData.track, browserEventData.event, browserPayload, { 525 eventID: eventId 526 } 527 ); 528 529 var formData = new FormData(); 530 formData.append('form_key', hyva.getFormKey()); 531 formData.append('eventId', eventId); 532 533 Object.entries(config.payload).forEach(function (item) { 534 formData.append(item[0], item[1]); 535 }) 536 537 fetch(config.url, { 538 method: 'POST', 539 body: formData 540 }).catch(error => { 541 console.error(error); 542 }); 543 } 544 545 function metaParseJson(json) { 546 json = decodeURIComponent(json.replace(/\+/g, ' ')); 547 return JSON.parse(json); 548 } 549 550 function metaDelCookie(name) { 551 var date = new Date(0); 552 var cookie = name + '=' + '; path=/; expires=' + date.toUTCString(); 553 554 document.cookie = cookie; 555 } 556 557 function metaGetCookie(name) { 558 var cookie = ' ' + document.cookie; 559 var search = ' ' + name + '='; 560 var setStr = null; 561 var offset = 0; 562 var end = 0; 563 564 if (cookie.length > 0) { 565 offset = cookie.indexOf(search); 566 if (offset !== -1) { 567 offset += search.length; 568 end = cookie.indexOf(';', offset); 569 if (end === -1) { 570 end = cookie.length; 571 } 572 setStr = decodeURI(cookie.substring(offset, end)); 573 } 574 } 575 return setStr; 576 } 577</script>
577 578<!-- End Meta Pixel Code --> 579 580<!-- Google Tag Manager by MagePal -->
581<script type="text/javascript"> 582 window.dataLayer = window.dataLayer || []; 583 584 585 function initMagepalGtmDatalayer_4f71f1c5e6503faecb6d9e35a59f2399() { 586 'use strict'; 587 588 let lastPushedCart = {}; 589 let lastPushedCustomer = {}; 590 591 function objectKeyExist(object) 592 { 593 const items = Array.isArray(object) ? object : Object.values(object); 594 return items.reduce((acc, v) => (acc || v.customer || v.cart), false); 595 // return _.some(object, function (o) { 596 // return !_.isEmpty(_.pick(o, ['customer', 'cart'])); 597 // }) 598 } 599 600 const isObject = x => x === Object(x); 601 const has = (x, p) => isObject(x) && x.hasOwnProperty(p); 602 const isEqual = (x, y) => JSON.stringify(x) === JSON.stringify(y); 603 604 //Update datalayer 605 function updateDataLayer(_gtmDataLayer, _dataObject, _forceUpdate) 606 { 607 let customer = {isLoggedIn : false}, 608 cart = {hasItems: false}; 609 610 if (_gtmDataLayer !== undefined && (!objectKeyExist(_gtmDataLayer) || _forceUpdate)) { 611 if (isObject(_dataObject) && has(_dataObject, 'customer')) { 612 customer = _dataObject.customer; 613 } 614 615 if (isObject(_dataObject) && has(_dataObject, 'cart')) { 616 cart = _dataObject.cart; 617 } 618 619 if (!isEqual(lastPushedCart, cart) || !isEqual(lastPushedCustomer, customer)) { 620 window.dispatchEvent(new CustomEvent('mpCustomerSession', {detail: [customer, cart, _gtmDataLayer]})); 621 //$('body').trigger('mpCustomerSession', [customer, cart, _gtmDataLayer]); 622 _gtmDataLayer.push({'event': 'mpCustomerSession', 'customer': customer, 'cart': cart}); 623 624 lastPushedCustomer = customer; 625 lastPushedCart = cart; 626 } 627 } 628 } 629 630 function isTrackingAllowed(config) 631 { 632 let allowServices = false, 633 allowedCookies, 634 allowedWebsites; 635 636 if (!config.isGdprEnabled || (!config.isGdprEnabled && !config.addJsInHeader)) { 637 allowServices = true; 638 } else if (config.isCookieRestrictionModeEnabled && config.gdprOption === 1) { 639 allowedCookies = hyva.getCookie(config.cookieName); 640 641 if (allowedCookies !== null) { 642 allowedWebsites = JSON.parse(allowedCookies); 643 644 if (allowedWebsites[config.currentWebsite] === 1) { 645 allowServices = true; 646 } 647 } 648 } else if (config.gdprOption === 2) { 649 allowServices = hyva.getCookie(config.cookieName) !== null; 650 } else if (config.gdprOption === 3) { 651 allowServices = hyva.getCookie(config.cookieName) === null; 652 } 653 654 return allowServices; 655 } 656 657 //load gtm 658 function initTracking(dataLayerName, accountId, containerCode) 659 { 660 window.dispatchEvent(new CustomEvent('gtm:beforeInitialize')); 661 662 (function (w, d, s, l, i) { 663 w[l] = w[l] || []; 664 w[l].push({ 665 'gtm.start': 666 new Date().getTime(), event: 'gtm.js' 667 }); 668 var f = d.getElementsByTagName(s)[0], 669 j = d.createElement(s), dl = l != dataLayerName ? '&l=' + l : ''; 670 j.async = true; 671 j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl + containerCode; 672 f.parentNode.insertBefore(j, f); 673 })(window, document, 'script', dataLayerName, accountId); 674 window.dispatchEvent(new CustomEvent('gtm:afterInitialize')); 675 } 676 677 function pushData(dataLayerName, dataLayer) 678 { 679 //if (_.isArray(dataLayer)) { 680 if (Array.isArray(dataLayer)) { 681 //_.each(dataLayer, function (data) { 682 dataLayer.forEach(function (data) { 683 window[dataLayerName].push(data); 684 }); 685 } 686 } 687 688 const config = { 689 dataLayer: "dataLayer", 690 gdprOption: 0, 691 isGdprEnabled: 0, 692 isCookieRestrictionModeEnabled: 0, 693 }; 694 695 config.currentWebsite = 1; 696 config.cookieName = "user_allowed_save_cookie"; 697 config.accountId = "GTM-TQTH9KNM"; 698 config.data = [{"ecommerce":{"currencyCode":"EUR"},"pageType":"cms_index_index","list":"other"}]; 699 config.addJsInHeader = 0; 700 config.containerCode = ""; 701 702 window[config.dataLayer] = window[config.dataLayer] || []; 703 704 if (has(config, 'accountId') && isTrackingAllowed(config)) { 705 pushData(config.dataLayer, config.data); 706 initTracking(config.dataLayer, config.accountId, config.containerCode); 707 } 708 709 const gtmDataLayer = window[config.dataLayer]; 710 711 window.addEventListener("private-content-loaded", event => { 712 const dataObject = event.detail.data['magepal-gtm-jsdatalayer'] || {}; 713 updateDataLayer(gtmDataLayer, dataObject, true) 714 }); 715
716 // dataObject.subscribe(function (_dataObject) { 717 // updateDataLayer(gtmDataLayer, _dataObject, true); 718 // }, this); 719 720 // if (!_.contains(customerData.getExpiredKeys(), 'magepal-gtm-jsdatalayer')) { 721 // updateDataLayer(gtmDataLayer, dataObject(), false); 722 // } 723 724 } 725 window.addEventListener('DOMContentLoaded', initMagepalGtmDatalayer_4f71f1c5e6503faecb6d9e35a59f2399); 726 727</script>
727 728<!-- End Google Tag Manager by MagePal --> 729 730<link rel="canonical" href="https://www.farma.it/">
731<script> 732 var BASE_URL = 'https://www.farma.it/'; 733 var THEME_PATH = 'https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT'; 734 var COOKIE_CONFIG = { 735 "expires": null, 736 "path": "\u002F", 737 "domain": ".farma.it", 738 "secure": true, 739 "lifetime": "7200", 740 "cookie_restriction_enabled": false }; 741 var CURRENT_STORE_CODE = 'default'; 742 var CURRENT_WEBSITE_ID = '1'; 743 var CURRENT_MIN_ORDER_VALUE = '24.90'; 744 var CURRENT_MIN_ORDER_VALUE_FORMATTED = '24,90 â¬'; 745 var CURRENT_MIN_ORDER_INCLUDE_DISCOUNT = '0'; 746 var CURRENT_STORE_CURRENCY = 'EUR'; 747 748 window.hyva = window.hyva || {} 749 750 window.cookie_consent_groups = window.cookie_consent_groups || {} 751 window.cookie_consent_groups['necessary'] = true; 752 753 window.cookie_consent_config = window.cookie_consent_config || {}; 754 window.cookie_consent_config['necessary'] = [].concat( 755 window.cookie_consent_config['necessary'] || [], 756 [ 757 'user_allowed_save_cookie', 758 'form_key', 759 'mage-messages', 760 'private_content_version', 761 'mage-cache-sessid', 762 'last_visited_store', 763 'section_data_ids' 764 ] 765 ); 766 document.addEventListener("alpine:init", () => { 767 Alpine.store('externalScriptsInit', false); 768 window.addEventListener('init-external-scripts', () => Alpine.store('externalScriptsInit',true), { 769 once: true, 770 passive: true 771 }); 772 }); 773</script>
vendor: 1 bytes, line 773
773
774<script> 775 (function( hyva, undefined ) { 776 777 function lifetimeToExpires(options, defaults) { 778 779 const lifetime = options.lifetime || defaults.lifetime; 780 781 if (lifetime) { 782 const date = new Date; 783 date.setTime(date.getTime() + lifetime * 1000); 784 return date; 785 } 786 787 return null; 788 } 789 790 function generateRandomString() { 791 792 const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 793 length = 16; 794 795 let formKey = '', 796 charactersLength = allowedCharacters.length; 797 798 for (let i = 0; i < length; i++) { 799 formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] 800 } 801 802 return formKey; 803 } 804 805 const sessionCookieMarker = {noLifetime: true} 806 807 const cookieTempStorage = {}; 808 809 const internalCookie = { 810 get(name) { 811 const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 812 return v ? v[2] : null; 813 }, 814 set(name, value, days, skipSetDomain) { 815 let expires, 816 path, 817 domain, 818 secure, 819 samesite; 820 821 const defaultCookieConfig = { 822 expires: null, 823 path: '/', 824 domain: null, 825 secure: false, 826 lifetime: null, 827 samesite: 'lax' 828 }; 829 830 const cookieConfig = window.COOKIE_CONFIG || {}; 831 832 expires = days && days !== sessionCookieMarker 833 ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) 834 : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; 835 836 path = cookieConfig.path || defaultCookieConfig.path; 837 domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); 838 secure = cookieConfig.secure || defaultCookieConfig.secure; 839 samesite = cookieConfig.samesite || defaultCookieConfig.samesite; 840 841 document.cookie = name + "=" + encodeURIComponent(value) + 842 (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + 843 (path ? '; path=' + path : '') + 844 (domain ? '; domain=' + domain : '') + 845 (secure ? '; secure' : '') + 846 (samesite ? '; samesite=' + samesite : 'lax'); 847 }, 848 isWebsiteAllowedToSaveCookie() { 849 const allowedCookies = this.get('user_allowed_save_cookie'); 850 if (allowedCookies) { 851 const allowedWebsites = JSON.parse(unescape(allowedCookies)); 852 853 return allowedWebsites[CURRENT_WEBSITE_ID] === 1; 854 } 855 return false; 856 }, 857 getGroupByCookieName(name) { 858 const cookieConsentConfig = window.cookie_consent_config || {}; 859 let group = null; 860 for (let prop in cookieConsentConfig) { 861 if (!cookieConsentConfig.hasOwnProperty(prop)) continue; 862 if (cookieConsentConfig[prop].includes(name)) { 863 group = prop; 864 break; 865 } 866 } 867 return group; 868 }, 869 isCookieAllowed(name) { 870 const cookieGroup = this.getGroupByCookieName(name); 871 return cookieGroup 872 ? window.cookie_consent_groups[cookieGroup] 873 : this.isWebsiteAllowedToSaveCookie(); 874 }, 875 saveTempStorageCookies() { 876 for (const [name, data] of Object.entries(cookieTempStorage)) { 877 if (this.isCookieAllowed(name)) { 878 this.set(name, data['value'], data['days'], data['skipSetDomain']); 879 delete cookieTempStorage[name]; 880 } 881 } 882 } 883 }; 884 885 hyva.getCookie = (name) => { 886 const cookieConfig = window.COOKIE_CONFIG || {}; 887 888 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 889 return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; 890 } 891 892 return internalCookie.get(name); 893 } 894 895 hyva.setCookie = (name, value, days, skipSetDomain) => { 896 const cookieConfig = window.COOKIE_CONFIG || {}; 897 898 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 899 cookieTempStorage[name] = {value, days, skipSetDomain}; 900 return; 901 } 902 return internalCookie.set(name, value, days, skipSetDomain); 903 } 904 905 906 hyva.setSessionCookie = (name, value, skipSetDomain) => { 907 return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) 908 } 909 910 hyva.getBrowserStorage = () => { 911 const browserStorage = window.localStorage || window.sessionStorage; 912 if (!browserStorage) { 913 console.warn('Browser Storage is unavailable'); 914 return false;
915 } 916 try { 917 browserStorage.setItem('storage_test', '1'); 918 browserStorage.removeItem('storage_test'); 919 } catch (error) { 920 console.warn('Browser Storage is not accessible', error); 921 return false; 922 } 923 return browserStorage; 924 } 925 926 hyva.postForm = (postParams) => { 927 const form = document.createElement("form"); 928 929 let data = postParams.data; 930 931 if (! postParams.skipUenc && ! data.uenc) { 932 data.uenc = btoa(window.location.href); 933 } 934 form.method = "POST"; 935 form.action = postParams.action; 936 937 Object.keys(postParams.data).map(key => { 938 const field = document.createElement("input"); 939 field.type = 'hidden' 940 field.value = postParams.data[key]; 941 field.name = key; 942 form.appendChild(field); 943 }); 944 945 const form_key = document.createElement("input"); 946 form_key.type = 'hidden'; 947 form_key.value = hyva.getFormKey(); 948 form_key.name="form_key"; 949 form.appendChild(form_key); 950 951 document.body.appendChild(form); 952 953 form.submit(); 954 } 955 956 hyva.getFormKey = function () { 957 let formKey = hyva.getCookie('form_key'); 958 959 if (!formKey) { 960 formKey = generateRandomString(); 961 hyva.setCookie('form_key', formKey); 962 } 963 964 return formKey; 965 } 966 967 hyva.formatPrice = (value, showSign, options = {}) => { 968 const groupSeparator = options.groupSeparator; 969 const decimalSeparator = options.decimalSeparator 970 delete options.groupSeparator; 971 delete options.decimalSeparator; 972 const formatter = new Intl.NumberFormat( 973 'it\u002DIT', 974 Object.assign({ 975 style: 'currency', 976 currency: 'EUR', 977 signDisplay: showSign ? 'always' : 'auto' 978 }, options) 979 ); 980 return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? 981 formatter.formatToParts(value).map(({type, value}) => { 982 switch (type) { 983 case 'currency': 984 return '\u20AC' || value; 985 case 'minusSign': 986 return '- '; 987 case 'plusSign': 988 return '+ '; 989 case 'group': 990 return groupSeparator !== undefined ? groupSeparator : value; 991 case 'decimal': 992 return decimalSeparator !== undefined ? decimalSeparator : value; 993 default : 994 return value; 995 } 996 }).reduce((string, part) => string + part) : 997 formatter.format(value); 998 } 999 1000 const formatStr = function (str, nStart) { 1001 const args = Array.from(arguments).slice(2); 1002 1003 return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { 1004 const idx = parseInt(n) - nStart; 1005 1006 if (args[idx] === null || args[idx] === void 0) { 1007 return m; 1008 } 1009 return p.length % 2 1010 ? p.slice(0, -1).replace('%%', '%') + args[idx] 1011 : p.replace('%%', '%') + n; 1012 }) 1013 } 1014 1015 hyva.str = function (string) { 1016 const args = Array.from(arguments); 1017 args.splice(1, 0, 1); 1018 1019 return formatStr.apply(undefined, args); 1020 } 1021 1022 hyva.strf = function () { 1023 const args = Array.from(arguments); 1024 args.splice(1, 0, 0); 1025 1026 return formatStr.apply(undefined, args); 1027 } 1028 1029 /** 1030 * Take a html string as `content` parameter and 1031 * extract an element from the DOM to replace in 1032 * the current page under the same selector, 1033 * defined by `targetSelector` 1034 */ 1035 hyva.replaceDomElement = (targetSelector, content) => { 1036 // Parse the content and extract the DOM node using the `targetSelector` 1037 const parser = new DOMParser(); 1038 const doc = parser.parseFromString(content, 'text/html');
1039 const contentNode = doc.querySelector(targetSelector); 1040 1041 // Bail if content or target can't be found 1042 if (!contentNode || !document.querySelector(targetSelector)) { 1043 return; 1044 } 1045 1046 hyva.activateScripts(contentNode); 1047 1048 // Replace the old DOM node with the new content 1049 document.querySelector(targetSelector).replaceWith(contentNode); 1050 1051 // Reload customerSectionData and display cookie-messages if present 1052 window.dispatchEvent(new CustomEvent("reload-customer-section-data")); 1053 hyva.initMessages(); 1054 } 1055 1056 hyva.removeScripts = (contentNode) => { 1057 const scripts = contentNode.getElementsByTagName('script'); 1058 for (let i = 0; i < scripts.length; i++) { 1059 scripts[i].parentNode.removeChild(scripts[i]); 1060 } 1061 const templates = contentNode.getElementsByTagName('template'); 1062 for (let i = 0; i < templates.length; i++) { 1063 const container = document.createElement('div'); 1064 container.innerHTML = templates[i].innerHTML; 1065 hyva.removeScripts(container); 1066 templates[i].innerHTML = container.innerHTML; 1067 } 1068 } 1069 1070 hyva.activateScripts = (contentNode) => { 1071 // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM. 1072 const scripts = Array.from(contentNode.getElementsByTagName('script')); 1073 1074 // Iterate over all script tags to duplicate+inject each into the head 1075 for (const original of scripts) { 1076 const script = document.createElement('script'); 1077 original.type && (script.type = original.type); 1078 script.innerHTML = original.innerHTML; 1079 1080 // Remove the original (non-executing) script from the contentNode 1081 original.parentNode.removeChild(original) 1082 1083 // Add script to head 1084 document.head.appendChild(script); 1085 } 1086 1087 return contentNode; 1088 } 1089 1090 const replace = {['+']: '-', ['/']: '_', ['=']: ','}; 1091 hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); 1092 1093 let currentTrap; 1094 1095 const focusableElements = (rootElement) => { 1096 const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; 1097 return Array.from(rootElement.querySelectorAll(selector)) 1098 .filter(el => { 1099 return el.style.display !== 'none' 1100 && !el.disabled 1101 && el.tabIndex !== -1 1102 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) 1103 }) 1104 } 1105 1106 const focusTrap = (e) => { 1107 const isTabPressed = e.key === 'Tab' || e.keyCode === 9; 1108 if (!isTabPressed) return; 1109 1110 const focusable = focusableElements(currentTrap) 1111 const firstFocusableElement = focusable[0] 1112 const lastFocusableElement = focusable[focusable.length - 1] 1113 1114 e.shiftKey 1115 ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) 1116 : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) 1117 }; 1118 1119 hyva.releaseFocus = (rootElement) => { 1120 if (currentTrap && (!rootElement || rootElement === currentTrap)) { 1121 currentTrap.removeEventListener('keydown', focusTrap) 1122 currentTrap = null 1123 } 1124 } 1125 hyva.trapFocus = (rootElement) => { 1126 if (!rootElement) return; 1127 hyva.releaseFocus() 1128 currentTrap = rootElement 1129 rootElement.addEventListener('keydown', focusTrap) 1130 const firstElement = focusableElements(rootElement)[0] 1131 firstElement && firstElement.focus() 1132 } 1133 1134 hyva.safeParseNumber = (rawValue) => { 1135 const number = rawValue ? parseFloat(rawValue) : null; 1136 1137 return Array.isArray(number) || isNaN(number) ? rawValue : number; 1138 } 1139 1140 const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(''); 1141 hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => { 1142 1143 const camelCase = toCamelCase(name);
1144 const key = '__hyva_bool_' + name 1145 1146 return new Proxy(Object.assign( 1147 additionalMethods, 1148 { 1149 [key]: !!value, 1150 [name]() {return !!this[key]}, 1151 ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine 1152 ['not' + camelCase]() {return !this[key]}, 1153 ['toggle' + camelCase]() {this[key] = !this[key]}, 1154 [`set${camelCase}True`]() {this[key] = true}, 1155 [`set${camelCase}False`]() {this[key] = false}, 1156 } 1157 ), { 1158 set(target, prop, value) { 1159 return prop === name 1160 ? (target[key] = !!value) 1161 : Reflect.set(...arguments); 1162 } 1163 }) 1164 } 1165 1166 hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) 1167 window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true}); 1168 window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) 1169 1170 }( window.hyva = window.hyva || {} )); 1171 //# sourceURL=hyva.js 1172</script>
vendor: 1 bytes, line 1172
1172
1173<script type="speculationrules"> 1174{ 1175 "tag": "Hyva Theme", 1176 "prefetch": [{ 1177 "source": "document", 1178 "where": { 1179 "and": [ 1180 { "href_matches": "/*" }, 1181 { "not": { 1182 "href_matches": ["/customer/*","/search/*","/sales/*","/wishlist/*","/checkout/*","/paypal/*","/newsletter/*","/stores/store/redirect/*"] }}, 1183 { "not": { 1184 "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"] 1185 }} 1186 ] 1187 }, 1188 "eagerness": "moderate" 1189 }] 1190} 1191</script>
vendor: 1 bytes, line 1191
1191
1192<script class="feedaty_sdk" src="https://widget.feedaty.com/v3.0.0/js/2021/10214034/feedaty.min.js" async></script>
1192 1193 1194 <meta property="og:type" content="cms"/> 1195 1196 <meta property="og:title" content="Farmacia online italiana | Farma.it by Antica Farmacia Orlandi"/> 1197 1198 <meta property="og:description" content="La prima farmacia online italiana: farma.it by Antica Farmacia Orlandi con spedizione gratuita per farmaci da banco, integratori, omeopatici, prodotti veterinari e cosmetici."/> 1199 1200 <meta property="og:url" content="https://www.farma.it/"/> 1201 <meta property="og:site_name" content="Farma.it by Antica Farmacia Orlandi Shop"/>
1202<script> 1203 function deepMerge(target, ...sources) { 1204 if (!sources.length) { 1205 return target; 1206 } 1207 1208 const source = sources.shift(); 1209 1210 if (typeof target !== 'object' || typeof source !== 'object') { 1211 return target; 1212 } 1213 1214 for (let key in source) { 1215 if (source.hasOwnProperty(key)) { 1216 if (source[key] instanceof Array) { 1217 target[key] = target[key] || []; 1218 target[key] = target[key].concat(source[key]); 1219 } else if (typeof source[key] === 'object') { 1220 target[key] = deepMerge(target[key] || {}, source[key]); 1221 } else { 1222 target[key] = source[key]; 1223 } 1224 } 1225 } 1226 1227 return deepMerge(target, ...sources); 1228 } 1229 1230 function amastyRewardsProduct() { 1231 return { 1232 captionStartText: 'Puoi\u0020guadagnare', 1233 captionAfterText: '', 1234 captionRegistrationText: 'registrandoti\u0021', 1235 captionEndText: '', 1236 productId: this.$el.dataset.productId, 1237 formSelector: 'product_addtocart_form', 1238 form: null, 1239 refreshUrl: this.$el.dataset.refreshUrl, 1240 loader: false, 1241 isFetching: false, 1242 abortFetchController: false, 1243 highlight: { 1244 registration_link: '', 1245 caption_color: '', 1246 caption_text: '0', 1247 visible: false 1248 }, 1249 1250 init() { 1251 this.formObserver(); 1252 document.addEventListener(`update-qty-${this.productId}`, () => { 1253 this.updateData(); 1254 }); 1255 window.addEventListener('update-bundle-option-selection', () => { 1256 this.updateData(); 1257 }); 1258 this.$nextTick(() => this.updateData()); 1259 }, 1260 1261 hideBlock() { 1262 this.highlight.visible = false; 1263 this.loader = true; 1264 }, 1265 1266 dispatchStatus(type, message) { 1267 window.dispatchMessages([{ 1268 type: type, 1269 text: message 1270 }], 5000); 1271 }, 1272 1273 formObserver() { 1274 const product = document.querySelector(`input[name='product'][value='${this.productId}']`); 1275 1276 if (product) { 1277 const productForm = product.form; 1278 if (productForm) { 1279 productForm.addEventListener('change', () => { 1280 this.updateData(); 1281 }); 1282 } 1283 } 1284 }, 1285 1286 updateData() { 1287 if (this.isFetching) { 1288 return false; 1289 } 1290 if (!this.refreshUrl) { 1291 this.loader = false;
1292 return false; 1293 } 1294 this.hideBlock(); 1295 1296 if (this.abortFetchController) { 1297 this.abortFetchController.abort(); 1298 } 1299 1300 this.abortFetchController = new AbortController(); 1301 1302 const product = document.querySelector(`input[name='product'][value='${this.productId}']`); 1303 let formParams = ''; 1304 1305 if (!product) { 1306 formParams = 'form_key=' + hyva.getFormKey() + '&product=' + this.productId; 1307 } else { 1308 const form = product.form; 1309 const formData = new FormData(form); 1310 formParams = new URLSearchParams(formData).toString(); 1311 } 1312 const formJson = JSON.stringify({ 1313 page: 0, 1314 productId: this.productId, 1315 attributes: formParams 1316 }); 1317 1318 const requestOptions = { 1319 method: 'POST', 1320 body: formJson, 1321 headers: { 1322 'Content-Type': 'application/json', 1323 'x-requested-with': 'XMLHttpRequest', 1324 }, 1325 signal: this.abortFetchController.signal 1326 }; 1327 this.isFetching = true; 1328 fetch(this.refreshUrl, requestOptions).then(response => { 1329 if (!response.ok) { 1330 return Promise.reject(`${response.status} ${response.statusText}`); 1331 } 1332 return response.json(); 1333 }).then((data) => { 1334 this.highlight.visible = data.visible; 1335 this.highlight.caption_text = data.caption_text; 1336 this.highlight.caption_color = data.caption_color; 1337 1338 if (data?.registration_link) { 1339 this.highlight.registration_link = data.registration_link; 1340 } 1341 1342 if (data?.need_to_change_message && data?.need_to_change_message === 1) { 1343 this.captionAfterText = 'completando\u0020un\u0020acquisto\u0021\u0020Solo\u0020per'; 1344 this.captionRegistrationText = 'registrati.'; 1345 this.captionEndText = 'utenti'; 1346 } 1347 }).catch(error => { 1348 if (error.name !== 'AbortError' && typeof error === 'string' && error.match(/'401'/g) !== null) { 1349 this.dispatchStatus('error', error); 1350 } 1351 }).finally(() => { 1352 this.loader = false;
1353 this.isFetching = false; 1354 }); 1355 }, 1356 1357 highlightCaptionText() { 1358 return this.highlight.caption_text !== '0' && !this.loader; 1359 }, 1360 1361 highlightStyle() { 1362 return `color: ${this.highlight.caption_color}`; 1363 }, 1364 1365 isHighlightRegistrationLink() { 1366 return this.highlight.registration_link && this.highlight.registration_link !== ''; 1367 }, 1368 1369 isNotRegistrationLink() { 1370 return !this.highlight.registration_link; 1371 }, 1372 1373 highlightVisible() { 1374 return this.highlight.visible && !this.loader; 1375 } 1376 } 1377 } 1378 1379 window.addEventListener( 1380 'alpine:init', 1381 () => Alpine.data('amastyRewardsProduct', amastyRewardsProduct), 1382 { once: true } 1383 ); 1384</script>
vendor: 1 bytes, line 1384
1384
1385<script> 1386 (function () { 1387 let amSwiperProcessed = false; 1388 1389 window.addEventListener('load-amswiper', () => { 1390 if (amSwiperProcessed) { 1391 window?.Swiper && window.dispatchEvent(new CustomEvent('amswiper-loaded', {})); 1392 return; 1393 } 1394 1395 const script = document.createElement('script'); 1396 script.src = 'https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Amasty_LibSwiperJs/js/vendor/swiper/swiper.min.js'; 1397 script.async = true; 1398 document.body.appendChild(script); 1399 1400 amSwiperProcessed = true; 1401 1402 script.onload = () => { 1403 window.dispatchEvent(new CustomEvent('amswiper-loaded', {})); 1404 } 1405 1406 const stylesHref = 'https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Amasty_LibSwiperJs/vendor/swiper/swiper.min.css'; 1407 1408 if (document.querySelector(`link[href="${stylesHref}"]`)) { 1409 return; 1410 } 1411 1412 const styles = document.createElement('link'); 1413 styles.rel = 'stylesheet'; 1414 styles.type = 'text/css'; 1415 styles.href = stylesHref; 1416 1417 document.head.appendChild(styles); 1418 }); 1419 }()); 1420</script>
1420 1421</head> 1422<body id="html-body" class="cms-home cms-index-index page-layout-1column"> 1423 <noscript> 1424 <img height="1" width="1" style="display:none" 1425 src="https://www.facebook.com/tr?id=512468414859242&ev=PageView&noscript=1&a=magento_opensource-0.0.0-1.6.4"> 1426 </noscript> 1427 1428<!-- Google Tag Manager by MagePal -->
vendor: 62 bytes, lines 1428-1429
1428 1429<noscript><iframe src="//www.googletagmanager.com/ns.html?id=
1429GTM-TQTH9KNM
vendor: 83 bytes, lines 1429-1430
1429" 1430height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1431<!-- End Google Tag Manager by MagePal --> 1432 1433 1434 1435
1435<script type="module">const { KlarnaSDK } = await import("https\u003A\u002F\u002Fjs.klarna.com\u002Fweb\u002Dsdk\u002Fv2\u002Fklarna.mjs"); 1436const MyKlarna = await KlarnaSDK({ 1437 clientId: "klarna_live_client_Rnpiams_MTNpWWc3LzJ3UUppciNHKUgqJSlSTG9lS0gsN2Q1MmUxN2UtZmE4MC00OGIxLWFhNjgtNTc4NDMyN2M2MGQ0LDEsWlJNMmtVejlkd0Q1bVBoOHZnc3JKN1YyL3FOY2ZrYzRRSWRjNUNhY3ZZYz0", 1438 products: ["PAYMENT", "MESSAGING", "IDENTITY", "CUSTOMER"], 1439 locale: "it\u002DIT" 1440}); 1441const token = await MyKlarna.Interoperability.token(); 1442const klarnaReadyEvent = new CustomEvent("klarna-sdk-ready", { 1443 detail: { token, sdk: MyKlarna } 1444}); 1445window.dispatchEvent(klarnaReadyEvent);</script>
1445 1446<div 1447 class="ambanners ambanner-10" 1448 data-position="10" 1449 data-bannerid="" 1450 data-role="amasty-banner-container" 1451></div> 1452
1453<script nonce='dTJ3ZnEzN2phNjl4aGEwaDZuZ3Z5dGV5YjlzeGNvaXM=' > 1454 'use strict'; 1455 (function (blackbird) { 1456 1457 const addEventListenerOnElementToLoad = (elementToLoad, source) => new Promise((resolve, reject) => { 1458 elementToLoad.addEventListener('load', () => { 1459 elementToLoad.dataset.loaded = true; 1460 resolve(elementToLoad); 1461 }) 1462 1463 elementToLoad.addEventListener('error', () => { 1464 reject(new Error(`[External resource loader] : The resource "${source}", failed to load.`)); 1465 }); 1466 }); 1467 1468 blackbird.loadExternalScript = async (source) => { 1469 const scriptWithSameSrc = document.querySelector(`script[src="${source}"][data-loaded]`); 1470 1471 if (scriptWithSameSrc && scriptWithSameSrc.dataset.loaded === 'true') { 1472 return scriptWithSameSrc; 1473 } 1474 1475 const script = scriptWithSameSrc ?? document.createElement('script'); 1476 script.type = 'text/javascript'; 1477 script.async = true; 1478 script.src = source; 1479 script.dataset.loaded = false; 1480 1481 document.head.appendChild(script); 1482 await addEventListenerOnElementToLoad(script, source); 1483 return script; 1484 } 1485 1486 blackbird.loadExternalStyle = async (source) => { 1487 const linkWithSameHref = document.querySelector(`link[href="${source}"][data-loaded]`); 1488 1489 if (linkWithSameHref && linkWithSameHref.dataset.loaded === 'true') { 1490 return linkWithSameHref; 1491 } 1492 1493 const link = linkWithSameHref ?? document.createElement('link'); 1494 link.type = 'text/css' 1495 link.rel = 'stylesheet'; 1496 link.href = source; 1497 link.dataset.loaded = false; 1498 1499 document.head.prepend(link); 1500 await addEventListenerOnElementToLoad(link, source); 1501 return link; 1502 } 1503 1504 blackbird.loadExternalResource = (source) => { 1505 const scriptUrlRegex = /\.(js)$/i; 1506 const styleUrlRegex = /\.(css)$/i; 1507 1508 if (scriptUrlRegex.test(source)) { 1509 return blackbird.loadExternalScript(source); 1510 } 1511 1512 if (styleUrlRegex.test(source)) { 1513 return blackbird.loadExternalStyle(source); 1514 } 1515 } 1516 1517 }(window.blackbird = window.blackbird || {})); 1518</script>
1518 1519<!-- BEGIN Trovaprezzi Trusted Program CODE -->
1520<script type="text/javascript" src="https://tps.trovaprezzi.it/javascripts/tracking-vanilla.min.js"></script>
1520 1521 1522<!-- END Trovaprezzi Trusted Program CODE --> 1523<input name="form_key" type="hidden" value="Wl3baiXrIex1kcSB" /> 1524 <noscript> 1525 <section 1526 class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal" 1527 aria-labelledby="messageGlobalNoScriptMessage" 1528 > 1529 <div class="container text-center"> 1530 <p id="messageGlobalNoScriptMessage"> 1531 <strong>I JavaScript sembrano essere disabilitati nel tuo browser.</strong> 1532 <span> 1533 Per una migliore esperienza sul nostro sito, assicurati di attivare i javascript nel tuo browser. </span> 1534 </p> 1535 </div> 1536 </section> 1537 </noscript> 1538 1539 1540<div class="widget block block-static-block"> 1541 <style>#html-body [data-pb-style=HBYLWMQ]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#ff6801;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div class="preheader" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-intersect="false" data-element="main" data-pb-style="HBYLWMQ"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><p class="py-1 text-xxs lg:text-xs text-center w-full text-white font-medium px-2"> 1542Spedizione <strong id="prova-agent">Gratuita</strong><span class="hidden lg:inline"> su tutti i prodotti</span> | Ordine minimo 24,90 ⬠1543</p> 1544<a href="http://reskyt.com/app/anticafarmaciaorlandi" class="href-download-app reskyt" id="href-download-app" style="display:none"> 1545 <div id="install-app"> 1546 <span class="close-install-app" onclick="return reskytCloseBar();"><span>x</span></span> 1547 <div class="content-app">
1548 <img class="img-app" src="https://cdn.reskyt.com/7724/antica-farmacia-orlandi-icono-app-436884-250116101022.png" alt="Farma.it"> 1549 <div class="name-app">Farma.it</div> 1550 <div class="fab-app">Farma.it - by Antica Farmacia Orlandi</div> 1551 <div class="title-app">Disponibile su <span id="platform-app"></span></div> 1552 </div> 1553 </div> 1554</a> 1555 1556<style> 1557 .fixed-header .reskyt #install-app { 1558 display: none; 1559 } 1560 1561 .reskyt #install-app { 1562 width:100%; 1563 right: 0; 1564 position: fixed; 1565 top:0; 1566 z-index: 900; 1567 color:#000000; 1568 background-color:rgb(255, 102, 0);; 1569 font-family: Verdana, Arial, sans-serif; 1570 font-size:12px; 1571 min-height:90px; 1572 z-index: 99999; 1573 } 1574 .reskyt .close-install-app { 1575 padding:8px 5px; 1576 display:block; 1577 width:20px; 1578 height:40px; 1579 font-family: Helvetica, Arial, Verdana, sans-serif; 1580 font-weight: normal; 1581 font-size:14px; 1582 text-align:center; 1583 cursor:pointer !important; 1584 font-weight:bold; 1585 color:#666; 1586 position:absolute; 1587 margin-top:20px; 1588 } 1589 .reskyt .img-app { 1590 max-height: 60px; 1591 width:57px; 1592 border: 1px solid #e8ecf1; 1593 -webkit-border-radius: 8px; 1594 -moz-border-radius: 8px; 1595 border-radius: 8px; 1596 } 1597 .reskyt .img-app, .reskyt .content-app { 1598 float:left; 1599 } 1600 .reskyt .fab-app { 1601 color:#000000; 1602 font-size:11px; 1603 } 1604 .reskyt .name-app, .reskyt .title-app, .reskyt .fab-app { 1605 margin-left:70px; 1606 padding:1px 0; 1607 } 1608 .reskyt .title-app { color: #444444; } 1609 .reskyt .name-app { 1610 font-weight:bold; 1611 margin-top:2px; 1612 overflow:hidden; 1613 height: 16px; 1614 } 1615 .reskyt .content-app { 1616 margin-top:8px; 1617 margin-right: 34px; 1618 margin-left: 30px; 1619 position:absolute; 1620 } 1621 .reskyt .view-install-app { 1622 color:blue; 1623 line-height:25px; 1624 margin-top:23px; 1625 text-transform:uppercase; 1626 position:absolute; 1627 right:5px; 1628 } 1629 @media screen and (max-width: 350px){ .reskyt .title-app { overflow: auto; max-height: 28px;} } 1630</style> 1631
1632<script> 1633 1634 function reskytCloseBar () { 1635 dias_expire = 7; /*Dias que queremos que pasen hasta que se vuelva a mostrar la barra*/ 1636 reskytSetCookie("reskyt-install-app", 1, dias_expire); 1637 document.getElementById("href-download-app").style.display = "none"; 1638 return false; 1639 } 1640 function reskytSetCookie(cname, cvalue, exdays) { 1641 var d = new Date(); 1642 d.setTime(d.getTime() + (exdays*24*60*60*1000)); 1643 var expires = "expires="+ d.toUTCString(); 1644 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; /*Añadir ;SameSite=None;Secure en caso de que la cookie tenga que ser accesible entre iFrame*/ 1645 } 1646 function reskytGetCookie(cname) { 1647 var name = cname + "="; 1648 var decodedCookie = decodeURIComponent(document.cookie); 1649 var ca = decodedCookie.split(';'); 1650 for(var i = 0; i <ca.length; i++) { 1651 var c = ca[i]; 1652 while (c.charAt(0) == ' ') { 1653 c = c.substring(1); 1654 } 1655 if (c.indexOf(name) == 0) { 1656 return c.substring(name.length, c.length); 1657 } 1658 } 1659 return ""; 1660 } 1661 url = window.location.href; 1662 if ( url.indexOf("customapp=") != -1 ) { 1663 reskytSetCookie("is_app_install_bar", 1, 365); 1664 } 1665 window.addEventListener('load', function () { 1666 let isMobile = true; 1667 1668 const platformApp = document.getElementById("platform-app"); 1669 const downloadApp = document.getElementById("href-download-app"); 1670 1671 if (/Android/i.test(navigator.userAgent)) { 1672 if (platformApp) { 1673 platformApp.innerHTML = "Google Play"; 1674 } 1675 } else if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) { 1676 if (platformApp) { 1677 platformApp.innerHTML = "App Store"; 1678 } 1679 } else if (/IEMobile/i.test(navigator.userAgent)) { 1680 if (platformApp) { 1681 platformApp.innerHTML = "Windows Phone"; 1682 } 1683 } else { 1684 isMobile = false; 1685 } 1686 1687 if ( 1688 downloadApp && 1689 isMobile && 1690 !reskytGetCookie("is_app_install_bar") && 1691 !reskytGetCookie("reskyt-install-app") 1692 ) { 1693 downloadApp.style.display = "block"; 1694 } else if (downloadApp) { 1695 downloadApp.style.display = "none"; 1696 } 1697 }); 1698</script>
1698</div></div></div> 1699 1700
1701<script data-cfasync="false"> 1702 window.amastyCookieManager = window.amastyCookieManager || {}; 1703</script>
vendor: 1 bytes, line 1703
1703
1704<script type="text/plain" data-cookieconsent="marketing"> 1705 (function() { 1706 "use strict"; 1707 1708 window.CONNECTIF_CART_SUMMARY = null; 1709 1710 function addClientScript(result) { 1711 if ( 1712 !document.querySelector("#__cn_generic_script__" + result.clientId) && 1713 !document.querySelector("#__cn_client_script_" + result.clientId) 1714 ) { 1715 const url = 1716 result.cdnProtocol + 1717 "://" + 1718 result.cdnDomain + 1719 "/" + 1720 result.cdnPath + 1721 "/" + 1722 result.clientScriptPath + 1723 result.clientId; 1724 const element = document.createElement("script"); 1725 element.setAttribute("src", url); 1726 element.setAttribute("id", "__cn_generic_script__" + result.clientId); 1727 document.body.appendChild(element); 1728 } else { 1729 var cartModel = window.connectif.getCartModel(); 1730 window.connectif.managed.sendEvents([], {cart: cartModel}) 1731 } 1732 } 1733 1734 function addTags(innerHTML, elementToRemove = null) { 1735 if (!!innerHTML) { 1736 if (elementToRemove) { 1737 let elementToRemoveNode = document.querySelector(elementToRemove); 1738 if (elementToRemoveNode) { 1739 elementToRemoveNode.remove(); 1740 } 1741 } 1742 1743 let element = document.createElement("div"); 1744 element.style.display = "none"; 1745 element.innerHTML = innerHTML; 1746 document.body.appendChild(element); 1747 } 1748 } 1749 1750 function fetchConnectif() { 1751 const url = 'https://www.farma.it/connectif/tags/ajaxconnectiftags' + '?' + Date.now().toString(36) + Math.random().toString(36).substr(2); 1752 1753 fetch(url, { 1754 method: "GET", 1755 headers: { 1756 "Content-Type": "application/json", 1757 'Cache-Control': 'no-cache, no-store, must-revalidate', 1758 'Pragma': 'no-cache', 1759 'Expires': '0', 1760 'X-Requested-With': 'XMLHttpRequest' 1761 } 1762 }) 1763 .then(response => response.json()) 1764 .then(result => { 1765 addTags(result.renderedClientInfo, '.cn_client_info'); 1766 addTags(result.renderedCart, '.cn_cart'); 1767 addTags(result.renderedNewsletter, '.cn_newsletter_subscribe'); 1768 1769 if ( 1770 document.readyState === "complete" || 1771 document.readyState === "interactive" 1772 ) { 1773 addClientScript(result); 1774 } else { 1775 document.addEventListener( 1776 "DOMContentLoaded", 1777 addClientScript.bind(null, result) 1778 ); 1779 } 1780 }) 1781 .catch(error => console.error('Error:', error)); 1782 } 1783 1784 window.addEventListener('private-content-loaded', (e) => { 1785 //fetch Connecitf only at first visit or whenever cart is updated (add to cart, remove from cart, qty update) 1786 var cartSummary = 0; 1787 if (e.detail && e.detail.data && e.detail.data.cart && e.detail.data.cart.summary_count) { 1788 cartSummary = e.detail.data.cart.summary_count; 1789 } 1790 if (window.CONNECTIF_CART_SUMMARY === null || cartSummary !== window.CONNECTIF_CART_SUMMARY) { 1791 fetchConnectif(); 1792 window.CONNECTIF_CART_SUMMARY = cartSummary; 1793 } 1794 }); 1795 })(); 1796</script>
1796 1797<div class="page-wrapper"><header class="page-header"><a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white 1798 contentarea" 1799 href="#contentarea"> 1800 <span> 1801 Salta al contenuto </span> 1802</a>
1803<script> 1804 function initHeader () { 1805 return { 1806 cart: {}, 1807 fixedPosition: 50, 1808 fixedClass: 'fixed-header', 1809 getData(data) { 1810 if (data.cart) { this.cart = data.cart } 1811 }, 1812 getCartItemsCountLabel() { 1813 if(this.cart && this.cart.summary_count){ 1814 return (this.cart.summary_count > 99)? '99+' : `${this.cart.summary_count}` 1815 } 1816 return '0'; 1817 }, 1818 fixedHeader() { 1819 if (window.scrollY > this.fixedPosition) { 1820 document.body.classList.add(this.fixedClass); 1821 } else { 1822 document.body.classList.remove(this.fixedClass); 1823 } 1824 }, 1825 bodyScroll(removeScroll) { 1826 const body = document.querySelector('body'); 1827 if (!document.querySelector("#maincontent > .dfd-root")) { 1828 if (removeScroll) { 1829 body.classList.add('overflow-hidden'); 1830 } else { 1831 body.classList.remove('overflow-hidden'); 1832 } 1833 } 1834 } 1835 } 1836 } 1837</script>
1837 1838<div id="header" 1839 class="relative w-full" 1840 :class="searchOpened ? '' : 'z-30'" 1841 x-data="{...initHeader(), ...{searchOpened: false}}" 1842 @live-search-state-changed.window="searchOpened = $event.detail; bodyScroll(searchOpened)" 1843 @private-content-loaded.window="getData(event.detail.data)" 1844 @scroll.window="fixedHeader()" 1845> 1846 <div class="content w-full bg-white shadow-lg border-b border-primary-darker" :class="searchOpened ? 'z-40' : ''"> 1847 <div class="container flex flex-wrap items-center justify-between w-full pt-4 mx-auto mt-0"> 1848 <!-- Logo --> 1849 <div class="order-2 flex-1 lg:flex-none w-auto"> 1850 <a class="flex items-center justify-center lg:justify-start text-xl font-medium tracking-wide text-gray-800 1851 no-underline hover:no-underline font-title " 1852 href="https://www.farma.it/" 1853 title="" 1854 aria-label="store logo"> 1855 <img src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/logo.svg" 1856 style="height: 60px;" 1857 title="" 1858 alt="" 1859 width="253" height="70" /> 1860 </a> 1861</div> 1862 1863 <!-- Main Navigation --> 1864 1865 1866<div x-data="initMenuMobile_6ac924bac94ac()" 1867 x-defer="intersect" 1868 x-intersect.once="isActive = true; $watch('open', value => { fetchData() })" 1869 class="z-20 order-1 navigation lg:hidden" 1870> 1871 <template x-if="isActive"> 1872 <div class="flex items-baseline justify-between menu-icon mr-3"> 1873 <div class="flex justify-end w-full"> 1874 <a @click="$dispatch('toggle-mobile-menu6ac924bac94ac')" 1875 class="flex items-center justify-center cursor-pointer"> 1876 <span class="bg-[#6328E035] rounded-full text-secondary p-2"> 1877 <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewBox="0 0 24 17.44" width="14" height="14" role="img"> 1878 <path fill="currentColor" d="M1.54 10.26a1.541 1.541 0 0 1 0-3.08h20.92a1.541 1.541 0 0 1 .08 3.08h-21ZM1.54 3.08a1.541 1.541 0 0 1 0-3.08h20.92a1.541 1.541 0 0 1 .08 3.08h-21ZM1.54 17.44a1.541 1.541 0 0 1 0-3.08h20.92a1.541 1.541 0 0 1 .08 3.08h-21Z"/> 1879<title>menu</title></svg> 1880 </span> 1881 </a> 1882 </div> 1883 </div> 1884 </template> 1885 <!-- mobile --> 1886 <template x-if="isActive"> 1887 <div @load.window="setActiveMenu($root)" 1888 class="bg-container-lighter h-screen overflow-x-hidden overflow-y-auto fixed top-0 left-0 w-full" 1889 :class="{'' : open}" 1890 @toggle-mobile-menu6ac924bac94ac.window="open = !open" 1891 @keydown.window.escape="open=false" 1892 x-cloak 1893 x-show="open" 1894 x-transition:enter="transform transition ease-in-out duration-300" 1895 x-transition:enter-start="-translate-x-full" 1896 x-transition:enter-end="translate-x-0" 1897 x-transition:leave="transform transition ease-in-out duration-300" 1898 x-transition:leave-start="translate-x-0" 1899 x-transition:leave-end="-translate-x-full"> 1900 1901 <div class="flex items-baseline justify-between menu-icon shadow-md"> 1902 <span class="font-bold font-baloo-bhaina text-primary px-4 pt-4 pb-3 w-full text-center text-xl" :class="{ 1903 'hidden' : panelLevel > 0 1904 }">Menu</span> 1905 <a @click="$dispatch('toggle-mobile-menu6ac924bac94ac')" 1906 class="absolute z-10 top-0 right-0 cursor-pointer mt-0.5 p-5 pr-4" 1907 > 1908 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12" role="img"> 1909 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"/> 1910<title>x</title></svg> 1911 </a> 1912 </div> 1913 1914 <nav class="hidden w-full duration-150 text-base ease-in-out transform border-t transition-display border-container" 1915 :class="{ 'hidden' : !open }"> 1916 1917 1918 <div class="submenu-top mt-4"> 1919 1920<div class="level-0">
1921 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 1922 :class="{ 1923 '-translate-x-full' : panelLevel > '0', 1924 'translate-x-0' : panelLevel <= '0' 1925 }"> 1926 <a href="https://www.farma.it/farma-lovers" class="level-top new-badge flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 1927 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/point.svg" alt="Raccolta Punti Farma Lovers" /> 1928 </span> 1929 <span>Raccolta Punti Farma Lovers</span> 1930 </a> </span> 1931 1932 </div> 1933 1934<div class="level-0"> 1935 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 1936 :class="{ 1937 '-translate-x-full' : panelLevel > '0', 1938 'translate-x-0' : panelLevel <= '0' 1939 }"> 1940 <a href="https://www.farma.it/coupon-e-promo" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 1941 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/coupon-duotone.svg" alt="Fino al -10% sui prodotti cosmetici" /> 1942 </span> 1943 <span>Fino al -10% sui prodotti cosmetici</span> 1944 </a> </span> 1945 1946 </div> 1947 1948<div class="level-0"> 1949 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 1950 :class="{ 1951 '-translate-x-full' : panelLevel > '0', 1952 'translate-x-0' : panelLevel <= '0' 1953 }"> 1954 <a href="/richiamami" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 1955 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/phone-duotone.svg" alt="Richiamami" /> 1956 </span> 1957 <span>Richiamami</span> 1958 </a> </span> 1959 1960 </div> 1961 </div> 1962 1963 <!-- LEVEL 0 --> 1964 <div class="level-0 mt-4"> 1965 <div @click="togglePanelActiveId('root')" class="flex items-center transition-transform duration-150 ease-in-out transform" 1966 :class="{ 1967 '-translate-x-full' : panelLevel > 0, 1968 'translate-x-0' : panelLevel <= 0 1969 }"> 1970 <div class="w-full cursor-pointer level-0 px-3 "> 1971 <div class="px-4 pt-3 pb-2 flex justify-between items-center text-secondary bg-tertiary-darker/10 rounded-xl"> 1972 <span class="font-bold text-lg font-baloo-bhaina"> 1973 Categorie </span> 1974 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="relative bottom-0.5" width="20" height="20" role="img"> 1975 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 1976<title>chevron-right</title></svg> 1977 </div> 1978 </div> 1979 </div> 1980 <div class="absolute top-0 right-0 z-10 h-screen overflow-hidden w-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter level0" 1981 :class="{ 1982 'translate-x-full h-0' : !isPanelActive('root'), 1983 'translate-x-0 h-screen overflow-y-auto' : isPanelActive('root') 1984 }" 1985 > 1986 <template x-if="isLoading && $store.externalScriptsInit"> 1987 <div class="absolute bg-white/60 z-10 h-full w-full flex items-center justify-center"> 1988 <div class="flex items-center"> 1989 <!-- loading icon --> 1990 <svg class="animate-spin h-5 w-5 text-gray-600" xmlns="http://www.w3.org/2000/svg" fill="none"
1991 viewBox="0 0 24 24"> 1992 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 1993 <path class="opacity-75" fill="currentColor" 1994 d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"> 1995 </path> 1996 </svg> 1997 <!-- end loading icon --> 1998 </div> 1999 </div> 2000</template> 2001 <a class="block mb-4 relative shadow-md font-bold font-baloo-bhaina text-primary px-4 pt-4 pb-3 w-full text-center text-xl bg-white" 2002 @click="removePanelActiveId('root')" 2003 :class="{ 'sticky top-0 left-0 right-0 z-20': isPanelActive('root') && panelLevel <= 1 }" 2004 > 2005 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 20.57" class="absolute top-4.5 left-4" width="16" height="16" role="img"> 2006 <path d="M22.29 8.58H5.14l5.64-5.64c.65-.69.62-1.78-.07-2.43-.66-.62-1.68-.62-2.35 0L1.01 7.88C.37 8.52 0 9.39 0 10.29c0 .9.37 1.76 1.01 2.4l7.35 7.38c.68.66 1.77.64 2.43-.05.64-.67.64-1.73 0-2.39L5.15 12h17.14c.95-.02 1.7-.81 1.67-1.76-.02-.92-.76-1.65-1.67-1.67Z" style="fill:currentColor"/> 2007<title>arrow-back</title></svg> 2008 <span class="ml-4"> 2009 Categorie </span> 2010 </a> 2011 <template x-for="(item, index) in menuData" :key="item.id"> 2012 <!-- LEVEL 1 --> 2013 <div class="level-1"> 2014 <span class="flex items-center transition-transform duration-150 ease-in-out transform px-4 py-2 font-bold font-baloo-bhaina" 2015 :class="{ 2016 '-translate-x-full h-0 overflow-hidden' : panelLevel > 1, 2017 'translate-x-0' : panelLevel <= 1 2018 }" 2019 > 2020 <a x-bind:href="item.link" @click="(item.submenu && item.submenu.children) && togglePanelActiveId(item.id, $event)" class="flex items-center w-full cursor-pointer level-1"> 2021 <template x-if="item.icon"> 2022 <template x-if="item.icon_content"> 2023 <span x-html="item.icon_content" class='menu-icon mr-4 inline-block'></span> 2024 </template> 2025 <template x-if="!item.icon_content"> 2026 <span x-show="item.icon" class='menu-icon mr-4 inline-block'><img x-bind:src="item.icon" x-bind:alt="item.label" /></span> 2027 </template> 2028 </template> 2029 <span x-text="item.label"></span> 2030 </a> 2031 <template x-if="item.submenu && item.submenu.children"> 2032 <span class="block" 2033 @click="togglePanelActiveId(item.id)" 2034 > 2035 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" role="img"> 2036 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 2037<title>chevron-right</title></svg> 2038 </span> 2039 </template> 2040 </span> 2041 <template x-if="item.submenu && item.submenu.children"> 2042 <div class="level1 absolute flex flex-col top-0 right-0 z-10 overflow-hidden w-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 2043 :class="{ 2044 'translate-x-full h-0' : !isPanelActive(item.id), 2045 'translate-x-0 h-screen' : isPanelActive(item.id), 2046 'overflow-y-auto': isPanelActive(item.id) && panelLevel <= 2 2047 }" 2048 > 2049 <a class="block mb-4 relative shadow-md font-bold font-baloo-bhaina text-primary px-4 pt-4 pb-3 w-full text-center text-xl bg-white" 2050 @click="removePanelActiveId(item.id)" 2051 :class="{ 'sticky top-0 left-0 right-0 z-20': isPanelActive(item.id) && panelLevel <= 2 }" 2052 > 2053 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 20.57" class="absolute top-4.5 left-4" width="16" height="16" role="img"> 2054 <path d="M22.29 8.58H5.14l5.64-5.64c.65-.69.62-1.78-.07-2.43-.66-.62-1.68-.62-2.35 0L1.01 7.88C.37 8.52 0 9.39 0 10.29c0 .9.37 1.76 1.01 2.4l7.35 7.38c.68.66 1.77.64 2.43-.05.64-.67.64-1.73 0-2.39L5.15 12h17.14c.95-.02 1.7-.81 1.67-1.76-.02-.92-.76-1.65-1.67-1.67Z" style="fill:currentColor"/> 2055<title>arrow-back</title></svg>
2056 <span class="ml-4" x-text="item.label"></span> 2057 </a> 2058 <a x-bind:href="item.link" 2059 x-bind:title="item.label" 2060 class="order-1 flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter underline text-secondary gap-1" 2061 > 2062 <span>Vedi tutti</span> 2063 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="16" height="16" role="img"> 2064 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 2065<title>chevron-right</title></svg> 2066 </a> 2067 <template x-for="child in item.submenu.children"> 2068 <template x-for="(item, index) in child"> 2069 <template x-if="item.type && item.type == 'category-item'"> 2070 <!-- LEVEL 2 --> 2071 <div class="level-2" :class="{'order-0': item.type == 'custom_list', 'order-1': item.type != 'custom_list'}"> 2072 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2073 :class="{ 2074 'font-bold': item.type == 'custom_list', 2075 '-translate-x-full' : panelLevel > 2, 2076 'translate-x-0' : panelLevel <= 2 2077 }" 2078 > 2079 <a x-bind:href="item.link" @click="(item.children) && togglePanelActiveId(item.id, $event)" class="flex items-center w-full px-7 py-1 text-[15px] cursor-pointer level-2"> 2080 <span x-text="item.label"></span> 2081 </a> 2082 <template x-if="item.children"> 2083 <span class="block" 2084 @click="togglePanelActiveId(item.id)" 2085 > 2086 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" role="img"> 2087 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 2088<title>chevron-right</title></svg> 2089 </span> 2090 </template> 2091 </span> 2092 2093 <template x-if="item.children"> 2094 <div class="level2 absolute flex flex-col top-0 right-0 z-10 overflow-hidden w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 2095 :class="{ 2096 'translate-x-full h-0' : !isPanelActive(item.id), 2097 'translate-x-0 h-screen overflow-y-auto' : isPanelActive(item.id) 2098 }" 2099 > 2100 <a class="block mb-4 relative shadow-md font-bold font-baloo-bhaina text-primary px-4 pt-4 pb-3 w-full text-center text-xl bg-white" 2101 @click="removePanelActiveId(item.id)" 2102 :class="{ 'sticky top-0 left-0 right-0 z-20': isPanelActive(item.id) }" 2103 > 2104 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 20.57" width="16" height="16" role="img"> 2105 <path d="M22.29 8.58H5.14l5.64-5.64c.65-.69.62-1.78-.07-2.43-.66-.62-1.68-.62-2.35 0L1.01 7.88C.37 8.52 0 9.39 0 10.29c0 .9.37 1.76 1.01 2.4l7.35 7.38c.68.66 1.77.64 2.43-.05.64-.67.64-1.73 0-2.39L5.15 12h17.14c.95-.02 1.7-.81 1.67-1.76-.02-.92-.76-1.65-1.67-1.67Z" style="fill:currentColor"/> 2106<title>arrow-back</title></svg> 2107 <sp
2107an class="ml-4" x-text="item.label"></span> 2108 </a> 2109 <template x-for="(item, index) in item.children" :key="index"> 2110 <template x-if="item.type && item.type != 'block'"> 2111 2112 <div class="level-3"> 2113 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2114 :class="{ 2115 '-translate-x-full' : panelLevel > 3, 2116 'translate-x-0' : panelLevel <= 3 2117 }" 2118 > 2119 <a x-bind:href="item.link" class="flex items-center w-full px-7 py-4 cursor-pointer bg-container-lighter border-container level-3"> 2120 <span x-text="item.label"></span> 2121 </a> 2122 </span> 2123 </div> 2124 2125 </template> 2126 </template> 2127 </div> 2128 </template> 2129 </div> 2130 2131 </template> 2132 </template> 2133 </template> 2134 </div> 2135 </template> 2136 </div> 2137 </template> 2138 </div> 2139 </div> 2140 2141 <div class="transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : panelLevel > 0, 'translate-x-0' : panelLevel <= 0 }"> 2142 <div class="font-bold px-7 mt-5 mb-2"> 2143 Collegamenti utili </div> 2144 2145<div class="level-0"> 2146 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2147 :class="{ 2148 '-translate-x-full' : panelLevel > '0', 2149 'translate-x-0' : panelLevel <= '0' 2150 }"> 2151 <a href="https://www.farma.it/brands" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span>Marchi</span> 2152 </a> </span> 2153 2154 </div> 2155 2156<div class="level-0"> 2157 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2158 :class="{ 2159 '-translate-x-full' : panelLevel > '0', 2160 'translate-x-0' : panelLevel <= '0' 2161 }"> 2162 <a href="/blog.html" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span>I nostri consigli</span> 2163 </a> </span> 2164 2165 </div> 2166 2167<div class="level-0"> 2168 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2169 :class="{ 2170 '-translate-x-full' : panelLevel > '0', 2171 'translate-x-0' : panelLevel <= '0' 2172 }"> 2173 <a href="https://www.farma.it/coupon-e-promo" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0">
2173 <span>Coupon</span> 2174 </a> </span> 2175 2176 </div> 2177 2178<div class="level-0"> 2179 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2180 :class="{ 2181 '-translate-x-full' : panelLevel > '0', 2182 'translate-x-0' : panelLevel <= '0' 2183 }"> 2184 <a href="/prodotti-in-offerta" class="level-top text-red flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span>In offerta</span> 2185 </a> </span> 2186 2187 </div> 2188 2189<div class="level-0"> 2190 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2191 :class="{ 2192 '-translate-x-full' : panelLevel > '0', 2193 'translate-x-0' : panelLevel <= '0' 2194 }"> 2195 <a href="/faq" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span>Serve Aiuto?</span> 2196 </a> </span> 2197 2198 </div> 2199 2200<div class="level-0"> 2201 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2202 :class="{ 2203 '-translate-x-full' : panelLevel > '0', 2204 'translate-x-0' : panelLevel <= '0' 2205 }"> 2206 <a href="/sales/guest/form" class="level-top hidden lg:inline flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span>Informazioni sul tuo ordine</span> 2207 </a> </span> 2208 2209 </div> 2210 2211<div class="level-0"> 2212 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2213 :class="{ 2214 '-translate-x-full' : panelLevel > '0', 2215 'translate-x-0' : panelLevel <= '0' 2216 }"> 2217 <a href="/farma-it-podcast" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 2218 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/tv-warning.svg" alt="Podcast" /> 2219 </span> 2220 <span>Podcast</span> 2221 </a> </span> 2222 2223 </div> 2224 2225<div class="level-0"> 2226 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2227 :class="{ 2228 '-translate-x-full' : panelLevel > '0', 2229 'translate-x-0' : panelLevel <= '0' 2230 }"> 2231 <a href="/app" class="level-top text-secondary font-medium flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span>Scarica l'App!</span> 2232 </a> </span> 2233 2234 </div> 2235 2236 <!-- BLOCK customer-menu-mobile --> 2237<div class="w-full px-3 my-3" x-data="initCustomerMenuMobile()" @private-content-loaded.window="getData(event.detail.data)"> 2238 <template x-if="isLoggedIn()"> 2239 <a 2240 href="https://www.farma.it/customer/account/" 2241 id="customer-menu-mobile" 2242 class="px-4 pt-3 pb-2 flex justify-start gap-3 items-center bg-category-lighter rounded-xl" 2243 aria-label="Il mio Account" 2244 > 2245 <span class="relative block"> 2246 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true"> 2247 <path d="M4.07 21c-.07-.05-.13-.1-.19-.17C-1 16.35-1.32 8.76 3.16 3.87c4.48-4.88 12.07-5.2 16.95-.72 4.88 4.48 5.21 12.07.73 16.96-.23.25-.47.49-.73.73-.05.06-.12.12-.19.17-4.53 4-11.32 4-15.85 0ZM12 22.15c2.25 0 4.44-.75 6.22-2.13a7.354 7.354 0 0 0-6.14-3.4h-.16c-2.49.02-4.8 1.3-6.14 3.4 1.78 1.39 3.97 2.14 6.22 2.13Zm4.83-6.02c1.09.67 2.03 1.56 2.76 2.61 3.73-4.19 3.35-10.61-.84-14.33C14.56.68 8.14 1.06 4.42 5.25 1 9.1 1 14.9 4.42 18.74a9.2 9.2 0 0 1 4.16-3.31 5.546 5.546 0 0 1-.93-7.78 5.546 5.546 0 0 1 7.78-.93 5.546 5.546 0 0 1 0 8.71c.49.19.96.43 1.4.7Zm-8.52-5.06c0 2.01 1.61 3.65 3.62 3.69h.15A3.694 3.694 0 0 0 15.7 11a3.694 3.694 0 0 0-3.76-3.62 3.692 3.692 0 0 0-3.62 3.69Z" style="fill:currentColor"/> 2248</svg> 2249 </span>
2250 <span class="font-bold text-lg font-baloo-bhaina truncate"> 2251 <span>Ciao, </span> 2252 <span x-text="customer.firstname"></span> 2253 </span> 2254 <span class="relative bottom-0.5 whitespace-nowrap block ml-auto text-[15px] font-medium">Il mio Account</span> 2255 </a> 2256 </template> 2257 <template x-if="!isLoggedIn()"> 2258 <span> 2259 <a 2260 href="https://www.farma.it/customer/account/" 2261 id="customer-menu-mobile" 2262 class="px-4 py-3 flex justify-between gap-3 items-center bg-category-lighter rounded-xl" 2263 aria-label="Il mio Account" 2264 > 2265 <span class="relative block"> 2266 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true"> 2267 <path d="M4.07 21c-.07-.05-.13-.1-.19-.17C-1 16.35-1.32 8.76 3.16 3.87c4.48-4.88 12.07-5.2 16.95-.72 4.88 4.48 5.21 12.07.73 16.96-.23.25-.47.49-.73.73-.05.06-.12.12-.19.17-4.53 4-11.32 4-15.85 0ZM12 22.15c2.25 0 4.44-.75 6.22-2.13a7.354 7.354 0 0 0-6.14-3.4h-.16c-2.49.02-4.8 1.3-6.14 3.4 1.78 1.39 3.97 2.14 6.22 2.13Zm4.83-6.02c1.09.67 2.03 1.56 2.76 2.61 3.73-4.19 3.35-10.61-.84-14.33C14.56.68 8.14 1.06 4.42 5.25 1 9.1 1 14.9 4.42 18.74a9.2 9.2 0 0 1 4.16-3.31 5.546 5.546 0 0 1-.93-7.78 5.546 5.546 0 0 1 7.78-.93 5.546 5.546 0 0 1 0 8.71c.49.19.96.43 1.4.7Zm-8.52-5.06c0 2.01 1.61 3.65 3.62 3.69h.15A3.694 3.694 0 0 0 15.7 11a3.694 3.694 0 0 0-3.76-3.62 3.692 3.692 0 0 0-3.62 3.69Z" style="fill:currentColor"/> 2268</svg> 2269 </span> 2270 <span class="label font-medium text-[15px]"> 2271 <span>Accedi / Registrati</span> 2272 </span> 2273 </a> 2274 </span> 2275 </template> 2276</div> 2277<!-- /BLOCK customer-menu-mobile --> 2278 <div class="font-bold px-7 mt-5 mb-2"> 2279 Servizi clienti </div> 2280 <div class="submenu-bottom mb-4"> 2281 2282<div class="level-0"> 2283 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2284 :class="{ 2285 '-translate-x-full' : panelLevel > '0', 2286 'translate-x-0' : panelLevel <= '0' 2287 }"> 2288 <a href="faq" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 2289 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/information-circle.svg" alt="Serve aiuto?" /> 2290 </span> 2291 <span>Serve aiuto?</span> 2292 </a> </span> 2293 2294 </div> 2295 2296<div class="level-0"> 2297 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2298 :class="{ 2299 '-translate-x-full' : panelLevel > '0', 2300 'translate-x-0' : panelLevel <= '0' 2301 }"> 2302 <a href="https://www.farma.it/contattaci" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 2303 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/chat.svg" alt="Contattaci" /> 2304 </span> 2305 <span>Contattaci</span> 2306 </a> </span> 2307 2308 </div> 2309 2310<div class="level-0"> 2311 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2312 :class="{ 2313 '-translate-x-full' : panelLevel > '0', 2314 'translate-x-0' : panelLevel <= '0' 2315 }"> 2316 <a href="sales/guest/form" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 2317 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/tracking.svg" alt="Traccia il tuo pacco" /> 2318 </span>
2319 <span>Traccia il tuo pacco</span> 2320 </a> </span> 2321 2322 </div> 2323 2324<div class="level-0"> 2325 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2326 :class="{ 2327 '-translate-x-full' : panelLevel > '0', 2328 'translate-x-0' : panelLevel <= '0' 2329 }"> 2330 <a href="https://www.farma.it/pagamenti-e-condizioni" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 2331 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/credit-card.svg" alt="Pagamenti" /> 2332 </span> 2333 <span>Pagamenti</span> 2334 </a> </span> 2335 2336 </div> 2337 2338<div class="level-0"> 2339 <span class="flex items-center transition-transform duration-150 ease-in-out transform" 2340 :class="{ 2341 '-translate-x-full' : panelLevel > '0', 2342 'translate-x-0' : panelLevel <= '0' 2343 }"> 2344 <a href="https://www.farma.it/spedizioni" class="level-top flex items-center w-full px-7 py-1 text-[15px] cursor-pointer bg-container-lighter border-container level-0"> <span class='menu-icon mr-2'> 2345 <img class="w-4.5 h-4.5" src="https://www.farma.it/media/dnafactory/megamenu/truck.svg" alt="Spedizioni" /> 2346 </span> 2347 <span>Spedizioni</span> 2348 </a> </span> 2349 2350 </div> 2351 </div> 2352 </div> 2353 2354 2355 </nav> 2356 </div> 2357 </template> 2358</div> 2359
2360<script> 2361 'use strict'; 2362 2363 const initMenuMobile_6ac924bac94ac = () => { 2364 return { 2365 open: false, 2366 isActive: false, 2367 isLoaded: false, 2368 mobilePanelActiveId: [], 2369 panelLevel: 0, 2370 menuData: null, 2371 isLoading: false, 2372 currentUrl: window.location.href.split('?')[0], 2373 isPanelActive(id){ 2374 return this.mobilePanelActiveId.includes(id); 2375 }, 2376 setPanelActiveId(id, replace = false){ 2377 if(replace){ 2378 this.clearPanelActiveId(); 2379 } 2380 if(!this.isPanelActive(id)) 2381 this.mobilePanelActiveId.push(id); 2382 id && (this.panelLevel += 1); 2383 }, 2384 removePanelActiveId(id){ 2385 let i = this.mobilePanelActiveId.indexOf(id); 2386 if(i >= 0) 2387 this.mobilePanelActiveId.splice(i, 1); 2388 this.panelLevel -= 1; 2389 }, 2390 togglePanelActiveId(id, event){ 2391 if(event) 2392 event.preventDefault(); 2393 if(this.isPanelActive(id)) 2394 this.removePanelActiveId(id); 2395 else 2396 this.setPanelActiveId(id); 2397 }, 2398 clearPanelActiveId(){ 2399 this.mobilePanelActiveId =[]; 2400 }, 2401 hasSubmenu(item){ 2402 return item.submenu; 2403 },
2404 setActiveMenu(menuNode) { 2405 Array.from(menuNode.querySelectorAll('a')).filter(link => { 2406 return link.href === window.location.href.split('?')[0]; 2407 }).map(item => { 2408 this.addClassToParent(item); 2409 }); 2410 }, 2411 addClassToParent(item){ 2412 if(item) { 2413 item.classList.add('underline') 2414 parent = item.closest(`div.class-${this.panelLevel - 1}`) 2415 parent && (parent !== item) && this.addClassToParent(parent.querySelector('span > a')); 2416 } 2417 }, 2418 dispatchMessage(type, message, timeout) { 2419 typeof window.dispatchMessages && window.dispatchMessages( 2420 [{ 2421 type: type, 2422 text: message, 2423 }], 2424 timeout 2425 ); 2426 }, 2427 fetchData(){ 2428 this.$dispatch('screen-lock',this.open); 2429 this.isLoaded = true; 2430 if (!this.menuData && this.open) { 2431 this.isLoading = true; 2432 fetch( 2433 'https://www.farma.it/megamenu/get/json/id/1/limit/0/level/2/', 2434 { 2435 headers: {contentType: 'application/json'}, 2436 } 2437 ).then(response => { 2438 if (response.ok) { 2439 return response.json(); 2440 } else { 2441 this.dispatchMessage('error', response); 2442 console.warn("GET request failed", response); 2443 } 2444 }) 2445 .then(data => { 2446 this.menuData = data; 2447 this.isLoading = false; 2448 this.$nextTick(() => { 2449 this.setActiveMenu(this.$root); 2450 }); 2451 }); 2452 } 2453 } 2454 } 2455 } 2456</script>
2456 2457 2458 2459<nav class="hidden hierarchy"> 2460 <li><a href='https://www.farma.it/rimedi-e-salute.html'>Rimedi e Salute</a><ul><li><a href='https://www.farma.it/rimedi-e-salute/immunologici.html'>Immunologici</a></li><li><a href='https://www.farma.it/rimedi-e-salute/antiparassitari-insetticidi-e-repellenti.html'>Antiparassitari, Insetticidi e Repellenti</a></li><li><a href='https://www.farma.it/rimedi-e-salute/mal-di-testa-0.html'>Dolore, Febbre e Infiammazioni</a></li><li><a href='https://www.farma.it/rimedi-e-salute/antimicrobici.html'>Antimicrobici</a></li><li><a href='https://www.farma.it/rimedi-e-salute/preparati-ormonali.html'>Preparati Ormonali</a></li><li><a href='https://www.farma.it/rimedi-e-salute/antiacne.html'>Antiacne</a></li><li><a href='https://www.farma.it/rimedi-e-salute/decongestionanti-nasali.html'>Influenza e Raffreddore</a></li><li><a href='https://www.farma.it/rimedi-e-salute/decongestionanti-ed-antinfiammatori.html'>Occhi</a></li><li><a href='https://www.farma.it/rimedi-e-salute/emorroidi-e-ragadi.html'>Stomaco e Intestino</a></li><li><a href='https://www.farma.it/rimedi-e-salute/igiene-orale.html'>Igiene Orale</a></li><li><a href='https://www.farma.it/rimedi-e-salute/sali-minerali.html'>Sali minerali</a></li><li><a href='https://www.farma.it/rimedi-e-salute/cicatrizzanti.html'>Cicatrizzanti</a></li><li><a href='https://www.farma.it/rimedi-e-salute/sistema-cardiovascolare.html'>Sistema Cardiovascolare</a></li><li><a href='https://www.farma.it/rimedi-e-salute/stitichezza-e-lassativi.html'>Stitichezza e Lassativi</a></li><li><a href='https://www.farma.it/rimedi-e-salute/dermatologici.html'>Dermatologici</a></li><li><a href='https://www.farma.it/rimedi-e-salute/antisettici-cavo-orale.html'>Antisettici cavo orale</a></li><li><a href='https://www.farma.it/rimedi-e-salute/anti-diarrea.html'>Anti Diarrea</a></li><li><a href='https://www.farma.it/rimedi-e-salute/disinfettanti.html'>Disinfettanti</a></li><li><a href='https://www.farma.it/rimedi-e-salute/altri-disturbi.html'>Altri Disturbi</a></li><li><a href='https://www.farma.it/rimedi-e-salute/antimicotici.html'>Antimicotici</a></li><li><a href='https://www.farma.it/rimedi-e-salute/allergie.html'>Allergie</a></li><li><a href='https://www.farma.it/rimedi-e-salute/antiacidi-e-digestivi.html'>Antiacidi e Digestivi</a></li><li><a href='https://www.farma.it/rimedi-e-salute/disturbi-addominali.html'>Disturbi Addominali</a></li><li><a href='https://www.farma.it/rimedi-e-salute/controllo-del-peso.html'>Controllo del Peso</a></li><li><a href='https://www.farma.it/rimedi-e-salute/genito-urinario.html'>Genito-Urinario</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/veterinaria-e-animali.html'>Veterinaria e animali</a><ul><li><a href='https://www.farma.it/veterinaria-e-animali/antiparassitari.html'>Antiparassitari</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/toelettatura-e-igiene.html'>Toelettatura e Igiene</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/alimentazione.html'>Alimentazione cani, gatti ed altri animali domestici</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/medicazioni.html'>Medicazioni Veterinarie</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/accessori-0.html'>Accessori</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/integratori-e-parafarmaci.html'>Integratori e Parafarmaci Veterinari</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/alimentazione-0.html'>Alimentazione</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/medicazioni-0.html'>Medicazioni</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/integratori-e-parafarmaci-0.html'>Integratori e Parafarmaci</a></li><li><a href='https://www.farma.it/veterinaria-e-animali/abbigliamento.html'>Abbigliamento</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/omeopatia-0.html'>Omeopatia</a><ul><li><a href='https://www.farma.it/omeopatia-0/gocce.html'>Gocce</a></li><li><a href='https://www.farma.it/omeopatia-0/granuli.html'>Granuli</a></li><li><a href='https://www.farma.it/omeopatia-0/globuli.html'>Globuli</a></li><li><a href='https://www.farma.it/omeopatia-0/creme-e-unguenti.html'>Creme e Unguenti</a></li><li><a href='https://www.farma.it/omeopatia-0/sciroppi.html'>Sciroppi</a></li><li><a href='https://www.farma.it/omeopatia-0/fiale.html'>Fiale</a></li><li><a href='https://www.farma.it/omeopatia-0/colliri-0.html'>Colliri</a></li><li><a href='https://www.farma.it/omeopatia-0/spray.html'>Spray</a></li><li><a href='https://www.farma.it/omeopatia-0/altri-preparati.html'>Preparati omeopatici</a></li><li><a href='https://www.farma.it/omeopatia-0/confetti-e-capsule.html'>Confetti e Capsule</a></li><li><a href='https://www.farma.it/omeopatia-0/polveri.html'>Polveri</a></li><li><a href='https://www.farma.it/omeopatia-0/supposte.html'>Supposte</a></li><li><a href='https://www.farma.it/omeopatia-0/olii.html'>Olii</a></li><li><a href='https://www.farma.it/omeopatia-0/ovuli.html'>Ovuli</a></li><li><a href='https://www.farma.it/omeopatia-0/bioterapici.html'>Bioterapici</a></li><li><a href='https://www.farma.it/omeopatia-0/altro.html'>Altro</a></li><li><a href='https://www.farma.it/omeopatia-0/altri-preparati-1.html'>Altri preparati</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/erboristeria-e-fitoterapia.html'>Erboristeria e Fitoterapia</a><ul><li><a href='https://www.farma.it/erboristeria-e-fitoterapia/floriterapia.html'>Floriterapia</a></li><li><a href='https://www.farma.it/erboristeria-e-fitoterapia/cosmetici-naturali.html'>Cosmetici Naturali</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/alimentazione-e-integratori.html'>Alimentazione e Integratori</a><ul><li><a href='https://www.farma.it/alimentazione-e-integratori/integratori-alimentari.html'>Integratori Alimentari</a></li><li><a href='https://www.farma.it/alimentazione-e-integratori/alimentazione-speciale.html'>Alimentazione Speciale</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/igiene-e-benessere.html'>Igiene e Benessere</a><ul><li><a href='https://www.farma.it/igiene-e-benessere/igiene-intima.html'>Igiene intima</a></li><li><a href='https://www.farma.it/igiene-e-benessere/bocca-e-denti.html'>Bocca e Denti</a></li><li><a href='https://www.farma.it/igiene-e-benessere/capelli.html'>Capelli</a></li><li><a href='https://www.farma.it/igiene-e-benessere/naso.html'>Naso</a></li><li><a href='https://www.farma.it/igiene-e-benessere/corpo-0.html'>Corpo</a></li><li><a href='https://www.farma.it/igiene-e-benessere/anti-zanzare-e-insetti.html'>Anti zanzare e insetti</a></li><li><a href='https://www.farma.it/catalog/category/view/s/strumenti-sanitari/id/162/'>Strumenti Sanitari</a></li><li><a href='https://www.farma.it/igiene-e-benessere/prodotti-per-la-casa.html'>Prodotti per la casa</a></li><li><a href='https://www.farma.it/igiene-e-benessere/orecchie.html'>Orecchie</a></li><li><a href='https://www.farma.it/igiene-e-benessere/igiene-orale-0.html'>Igiene Orale</a></li><li><a href='https://www.farma.it/igiene-e-benessere/amplificatori-acustici.html'>Amplificatori acustici</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/bellezza-e-cosmetica.html'>Bellezza e Cosmetica</a><ul><li><a href='https://www.farma.it/bellezza-e-cosmetica/corpo.html'>Corpo</a></li><li><a href='https://www.farma.it/bellezza-e-cosmetica/viso.html'>Viso</a></li><li><a href='https://www.farma.it/bellezza-e-cosmetica/piedi.html'>Piedi</a></li><li><a href='https://www.farma.it/bellezza-e-cosmetica/mani.html'>Mani</a></li><li><a href='https://www.farma.it/bellezza-e-cosmetica/capelli-0.html'>Capelli</a></li><li><a href='https://www.farma.it/bellezza-e-cosmetica/solari.html'>Solari</a></li><li><a href='https://www.farma.it/bellezza-e-cosmetica/trucco-e-make-up.html'>Trucco e Make-Up</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/salute-e-cura-della-persona.html'>Salute e Cura della Persona</a><ul><li><a href='https://www.farma.it/salute-e-cura-della-persona/prodotti-per-gli-occhi.html'>Prodotti per gli occhi</a></li><li><a href='https://www.farma.it/salute-e-cura-della-persona/ortopedia-e-comfort.html'>Ortopedia e Comfort</a></li><li><a href='https://www.farma.it/salute-e-cura-della-persona/medicazioni-e-disinfettanti.html'>Medicazioni e Disinfettanti</a></li><li><a href='https://www.farma.it/salute-e-cura-della-persona/diagnostici.html'>Diagnostici</a></li><li><a href='https://www.farma.it/salute-e-cura-della-persona/profilattici.html'>Profilattici</a></li><li><a href='https://www.farma.it/salute-e-cura-della-persona/decongestionanti-nasali-0.html'>Decongestionanti Nasali</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/mamme-e-bambini.html'>Mamme e Bambini</a><ul><li><a href='https://www.farma.it/mamme-e-bambini/igiene-del-bambino.html'>Igiene del Bambino</a></li><li><a href='https://www.farma.it/mamme-e-bambini/alimentazione-ed-integrazione.html'>Alimentazione ed Integrazione</a></li><li><a href='https://www.farma.it/mamme-e-bambini/accessori.html'>Accessori</a></li><li><a href='https://www.farma.it/mamme-e-bambini/alimentazione-del-bambino.html'>Alimentazione del bambino</a></li><li><a href='https://www.farma.it/mamme-e-bambini/giochi.html'>Giochi</a></li></ul><ul></ul></li><li><a href='https://www.farma.it/apparecchi-elettromedicali.html'>Apparecchi Elettromedicali</a><ul><li><a href='https://www.farma.it/apparecchi-elettromedicali/aerosol-0.html'>Aerosol e accessori</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/termometri.html'>Termometri</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/sfigmomanometri.html'>Sfigmomanometri</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/terapia-termica.html'>Terapia termica</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/fisioterapia-e-massaggi.html'>Fisioterapia e Massaggi</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/altri.html'>Altri</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/bilance.html'>Bilance</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/dispositivi-medicali.html'>Dispositivi Medicali</a></li><li><a href='https://www.farma.it/apparecchi-elettromedicali/aerosol-1.html'>Aerosol</a></li></ul></li><li><a href='https://www.farma.it/dermocosmetica'>Dermocosmetica</a></li><li><a href='https://www.farma.it/gastro-intestinale'>Benessere intestinale</a></li></nav> 2461 2462<div x-data="initMenuDesktop_6ac924bad7544()" 2463 x-defer="intersect" 2464 x-intersect.once="isActive = true; $watch('open', value => { fetchData() })" 2465 class="order-5 navigation first hidden lg:flex w-full main lg:mt-3" 2466 :class="{ 'z-20': open }" 2467> 2468 <!-- desktop --> 2469 <div x-ref="nav-desktop" 2470 @load.window="setActiveMenu($root)" 2471 class="hidden lg:block lg:relative lg:min-h-0 lg:w-auto"> 2472 <nav class="w-full duration-150 ease-in-out transform flex justify-start w-auto min-h-0 transition-display my-2"> 2473 <div class="mr-6 level-top nav-side">
2474 <span class="level-top py-3 md:py-0 w-full font-bold level-0 cursor-pointer flex items-center gap-2" @click="$dispatch('toggle-main-menu')"> 2475 <span class="bg-[#6328E035] rounded-full text-secondary p-1.5"> 2476 <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewBox="0 0 24 17.44" width="12" height="12" role="img"> 2477 <path fill="currentColor" d="M1.54 10.26a1.541 1.541 0 0 1 0-3.08h20.92a1.541 1.541 0 0 1 .08 3.08h-21ZM1.54 3.08a1.541 1.541 0 0 1 0-3.08h20.92a1.541 1.541 0 0 1 .08 3.08h-21ZM1.54 17.44a1.541 1.541 0 0 1 0-3.08h20.92a1.541 1.541 0 0 1 .08 3.08h-21Z"/> 2478<title>menu</title></svg> 2479 </span> 2480 <span class="my-auto">Categorie</span> 2481 </span> 2482 </div> 2483 <div class="nav-menu flex"> 2484 2485<div class="relative mx-2 level-0 level0 nav-1 first page-item level-top"> 2486 <a href="https://www.farma.it/brands" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 "> <span class="leading-none">Marchi</span> 2487 </a> 2488 </div> 2489 2490<div class="relative mx-2 level-0 level0 nav-2 custom-item level-top"> 2491 <a href="/blog.html" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 "> <span class="leading-none">I nostri consigli</span> 2492 </a> 2493 </div> 2494 2495<div class="relative mx-2 level-0 level0 nav-3 page-item level-top"> 2496 <a href="https://www.farma.it/coupon-e-promo" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 "> <span class="leading-none">Coupon</span> 2497 </a> 2498 </div> 2499 2500<div class="relative mx-2 level-0 level0 nav-4 custom-item level-top"> 2501 <a href="/prodotti-in-offerta" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 text-red"> <span class="leading-none">In offerta</span> 2502 </a> 2503 </div> 2504 2505<div class="relative mx-2 level-0 level0 nav-5 custom-item level-top"> 2506 <a href="/faq" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 "> <span class="leading-none">Serve Aiuto?</span> 2507 </a> 2508 </div> 2509 2510<div class="relative mx-2 level-0 level0 nav-6 custom-item level-top"> 2511 <a href="/sales/guest/form" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 hidden lg:inline"> <span class="leading-none">Informazioni sul tuo ordine</span> 2512 </a> 2513 </div> 2514 2515<div class="relative mx-2 level-0 level0 nav-7 custom-item level-top"> 2516 <a href="/farma-it-podcast" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 "> 2517<span class="menu-icon flex gap-2 items-center relative"> 2518 <?xml version="1.0" encoding="UTF-8"?> 2519<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" stroke-width="1.5" viewBox="0 0 24 24" fill="none" color="#000000" class="fill-primary"><path d="M12 11V14" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M12 18.01L12.01 17.9989" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M2 20V9C2 7.89543 2.89543 7 4 7H20C21.1046 7 22 7.89543 22 9V20C22 21.1046 21.1046 22 20 22H4C2.89543 22 2 21.1046 2 20Z" stroke="#000000" stroke-width="1.5"/><path d="M8.5 2.5L12 6L15.5 2.5" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 2520 <span class="leading-none">Podcast</span> 2521 </a> 2522 </div> 2523 2524<div class="relative mx-2 level-0 level0 nav-8 last custom-item level-top"> 2525 <a href="/app" class="py-3 md:py-0 flex w-full text-base md:text-sm md:inline hover:underline level-0 text-secondary font-medium"> <span class="leading-none">Scarica l'App!</span> 2526 </a> 2527 </div> 2528 </div> 2529 </nav> 2530 </div> 2531 <template x-if="isActive"> 2532 <section x-cloak id="main-menu_6ac924bad7544" 2533 @toggle-main-menu.window="open = !open" 2534 @keydown.window.escape="open=false" 2535 > 2536 <div role="dialog" 2537 x-ref="dialog" 2538 aria-label="Menu" 2539 aria-labelledby="menu-drawer-title" 2540 aria-modal="true" 2541 class="fixed inset-y-0 left-0 z-30 flex"> 2542 <div class="relative z-20 w-screen" 2543 x-ref="dialogContainer" 2544 x-show="open" 2545 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 2546 x-transition:enter-start="-translate-x-full" 2547 x-transition:enter-end="translate-x-0" 2548 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 2549 x-transition:leave-start="translate-x-0" 2550 x-transition:leave-end="-translate-x-full" 2551 > 2552 <div class="flex flex-col h-full pb-6 bg-container-gray shadow-inner"> 2553 <template x-if="isLoading && $store.externalScriptsInit"> 2554 <div class="absolute bg-white/60 z-10 h-full w-full flex items-center justify-center"> 2555 <div class="flex items-center"> 2556 <!-- loading icon --> 2557 <svg class="animate-spin h-5 w-5 text-gray-600" xmlns="http://www.w3.org/2000/svg" fill="none"
2558 viewBox="0 0 24 24"> 2559 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 2560 <path class="opacity-75" fill="currentColor" 2561 d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"> 2562 </path> 2563 </svg> 2564 <!-- end loading icon --> 2565 </div> 2566 </div> 2567</template> 2568 <div x-ref="dialogContent" class="h-full overflow-y-auto scrollbar scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-3 w-full"> 2569 <template x-cloak x-for="(item, index) in menuData" :key="index"> 2570 <div class="level-1" :class="item.classes" @click="onMouseEnter(item, null, true)"> 2571 <div class="block px-6 w-full py-3 text-base hover:text-secondary hover:bg-tertiary-darker/10 hover:fill-primary font-bold cursor-pointer" 2572 :class="[ item.classes? item.classes.join(' '): '', isPanelActive(item.id)? 'fill-primary bg-tertiary-darker/10' : '']" 2573 :style="{ color: item.color }" 2574 > 2575 <div class="ml-auto w-full max-w-[246px] flex items-center"> 2576 <template x-if="item.icon"> 2577 <template x-if="item.icon_content"> 2578 <span x-html="item.icon_content" class='menu-icon mr-2.5 inline-block'></span> 2579 </template> 2580 <template x-if="!item.icon_content"> 2581 <span x-show="item.icon" class='menu-icon mr-2.5 inline-block'><img x-bind:src="item.icon" x-bind:alt="item.label" /></span> 2582 </template> 2583 </template> 2584 <span x-text="item.label"></span> 2585 <template x-if="hasSubmenu(item)"> 2586 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12.24 24" class="ml-auto" width="12" height="12" role="img"> 2587 <path d="M1.08 23.87C.43 23.61.01 22.99 0 22.29c0-.46.18-.89.51-1.21l7.62-7.52c.86-.85.87-2.23.03-3.09l-.03-.03L.52 2.93C-.15 2.27-.16 1.2.5.53L.52.51C1.2-.17 2.29-.17 2.97.5l7.6 7.51c2.2 2.17 2.23 5.7.06 7.91l-.06.06-7.61 7.52a1.766 1.766 0 0 1-1.89.37Z" style="fill:currentColor"/> 2588<title>arrow-right</title></svg> 2589 </template> 2590 </div> 2591 </div> 2592 <template x-if="hasSubmenu(item)"> 2593 <template x-teleport="#main-menu-second-level_6ac924bad7544" x-data="{ submenu: item.submenu, item: item}"> 2594 <div class="absolute top-0 left-0 h-[calc(100vh-100px)] z-10 px-6 py-2 pb-16 bg-white shadow-lg level1" 2595 x-init="$watch('open',(value, oldValue) => { !value && clearPanelActiveId() })" 2596 :class="[ open? 'grid' : 'hidden', (submenu.l || submenu.r)? 'w-11/12 xl:w-4/5 2xl:w-8/12 grid-cols-5' : ((submenu.children && submenu.children.length > 1)? 'grid-cols-2 max-w-full' : 'min-w-[320px]') ]" 2597 x-show="isPanelActive(item.id)" 2598 x-transition:enter="transform transition ease-in-out duration-300" 2599 x-transition:enter-start="-translate-x-full" 2600 x-transition:enter-end="translate-x-0" 2601 x-transition:leave="transform transition ease-in-out duration-300" 2602 x-transition:leave-start="translate-x-0" 2603 x-transition:leave-end="-translate-x-full" 2604 > 2605 <template x-if="submenu.t"> 2606 <div class="top_block column"> 2607 <div class="column-content" x-html="submenu.t"></div> 2608 </div> 2609 </template> 2610 <template x-if="submenu.l"> 2611 <div class="left_block column"> 2612 <div class="column-content" x-html="submenu.l"></div> 2613 </div> 2614 </template> 2615 2616 <template x-if="submenu.children" x-data="{ children: submenu.children }"> 2617 <div class="column main-column pb-16 pt-0.5 h-full overflow-y-auto scrollbar scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-3" 2618 :class="{ 'col
2618-span-3 flex gap-2': ((!submenu.r && submenu.l) || (!submenu.l && submenu.r)) || (submenu.children && submenu.children.length > 1) }" 2619 > 2620 <template x-for="(column,y) in children" :key="y"> 2621 <div :class="{ 'w-[210px] xl:w-[240px]' : y != children.length - 1, 'w-[210px] xl:w-[317px]': y == children.length - 1 }"> 2622 <template x-if="item.label && y == 0"> 2623 <div class="flex justify-between gap-3"> 2624 <span class="font-bold text-primary mb-3 block" x-text="item.label"></span> 2625 <a x-bind:href="item.link" class="hover:underline text-sm text-secondary flex items-center gap-1 -top-1.5 relative"> 2626 <span class="leading-none">Vedi tutti</span> 2627 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="16" height="16" role="img"> 2628 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 2629<title>chevron-right</title></svg> 2630 </a> 2631 </div> 2632 </template> 2633 <template x-if="column.label && y != 0"> 2634 <span class="font-bold text-primary mb-3 block" x-text="column.label"></span> 2635 </template> 2636 <template x-if="column.html"> 2637 <div x-html="column.html"></div> 2638 </template> 2639 <template x-if="!column.html"> 2640 <template x-for="(child, i) in column" :key="i"> 2641 <div class="relative block w-full"> 2642 <template x-if="child.type == 'header'"> 2643 <div class="font-bold text-primary mb-3 block" x-text="child.label"></div> 2644 </template> 2645 <template x-if="child.type != 'header'"> 2646 <template x-if="child.type != 'custom_list'"> 2647 <div class="relative block w-full py-0.5 my-0.5" :class="child.classes"> 2648 <template x-if="child.html"> 2649 <div x-html="child.html"></div> 2650 </template> 2651 <template x-if="!child.html && child.type != 'custom_list'"> 2652 <a x-bind:href="child.link" class="hover:underline text-sm"> 2653 <span x-text="child.label"></span> 2654 </a> 2655 </template> 2656 </div> 2657 </template> 2658 <template x-if="child.type == 'custom_list'"> 2659 <div class="brand-list"> 2660 <sp
2660an class="font-bold text-primary mb-4 block" x-text="child.label"></span> 2661 <template x-for="(brand, i) in child.children" :key="i"> 2662 <div class="relative block w-full py-0.5 mt-0.5 brand-item"> 2663 <a x-bind:href="brand.link" class="hover:underline"> 2664 <span x-text="brand.label"></span> 2665 </a> 2666 </div> 2667 </template> 2668 </div> 2669 </template> 2670 </template> 2671 </div> 2672 </template> 2673 </template> 2674 </div> 2675 </template> 2676 </div> 2677 </template> 2678 2679 <template x-if="submenu.r"> 2680 <div class="right_block column -my-2 -mr-5 overflow-auto h-[calc(100vh-100px)] scrollbar scrollbar-thin scrollbar-track-transparent scrollbar-thumb-gray-3" 2681 x-show="isPanelActive(item.id)" 2682 :class="(submenu.children && submenu.children.length < 1)? 'col-span-3' : 'col-span-2'" 2683 x-transition:enter="ease-in-out duration-700" 2684 x-transition:enter-start="opacity-0" 2685 x-transition:enter-end="opacity-100" 2686 x-transition:leave="ease-in-out duration-100" 2687 x-transition:leave-start="opacity-100" 2688 x-transition:leave-end="opacity-0" 2689 > 2690 <div class="column-content" x-html="submenu.r"></div> 2691 </div> 2692 2693 2694 </template> 2695 <template x-if="submenu.b"> 2696 <div class="bottom_block column"> 2697 <div class="column-content" x-html="submenu.b"></div> 2698 </div> 2699 </template> 2700 </div> 2701 </template> 2702 </template> 2703 </div> 2704 </template> 2705 </div> 2706 </div> 2707 </div> 2708 <div id="main-menu-second-level_6ac924bad7544" class="relative z-10 w-screen h-[calc(100vh-100px)]" 2709 x-show="open"> 2710 <div class="backdrop" 2711 x-ref="backdrop" 2712 x-show="open" 2713 x-transition:enter="ease-in-out duration-500" 2714 x-transition:enter-start="opacity-0" 2715 x-transition:enter-end="opacity-100" 2716 x-transition:leave="ease-in-out duration-500" 2717 x-transition:leave-start="opacity-100" 2718 x-transition:leave-end="opacity-0" 2719 @click="open=false" 2720 aria-label="Close panel"></div> 2721 </div> 2722 </div> 2723 </section> 2724 </template> 2725</div> 2726
2727<script> 2728 'use strict'; 2729 2730 const initMenuDesktop_6ac924bad7544 = () => { 2731 return { 2732 isActive: false, 2733 open: false, 2734 hoverPanelActiveId: [], 2735 menuData: null, 2736 isLoading: false, 2737 currentUrl: window.location.href.split('?')[0], 2738 panelLevel: 0, 2739 isPanelActive(id){ 2740 return this.hoverPanelActiveId.includes(id); 2741 }, 2742 setPanelActiveId(id, replace = false){ 2743 if(replace){ 2744 this.clearPanelActiveId(); 2745 } 2746 if(!this.isPanelActive(id)) 2747 this.hoverPanelActiveId.push(id); 2748 }, 2749 removePanelActiveId(id){ 2750 let i = this.hoverPanelActiveId.indexOf(id); 2751 if(i >= 0) 2752 this.hoverPanelActiveId.splice(i, 1); 2753 }, 2754 clearPanelActiveId(){ 2755 this.hoverPanelActiveId =[]; 2756 }, 2757 onMouseEnter(item, id = null, clear = false){ 2758 if(this.hasSubmenu(item)){ 2759 this.setPanelActiveId(id? id : item.id, clear); 2760 }else{ 2761 this.clearPanelActiveId(); 2762 } 2763 }, 2764 hasSubmenu(item){ 2765 return item.submenu; 2766 },
2767 setActiveMenu(menuNode) { 2768 return; // ignoriamo questa funzionalità per questo progetto 2769 Array.from(menuNode.querySelectorAll('a')).filter(link => { 2770 return (link.href) && link.href === this.currentUrl; 2771 }).map(item => { 2772 item.classList.add('underline'); 2773 item.closest('div.level1') && 2774 item.closest('div.level1').querySelector('a').classList.add('underline'); 2775 }); 2776 }, 2777 dispatchMessage(type, message, timeout) { 2778 typeof window.dispatchMessages && window.dispatchMessages( 2779 [{ 2780 type: type, 2781 text: message, 2782 }], 2783 timeout 2784 ); 2785 }, 2786 setMenuStyles () { 2787 let header = document.querySelector('#header .content'); 2788 let headerContent = header.querySelector('.container'); 2789 let headerContentStyle = window.getComputedStyle(headerContent); 2790 2791 const topDialog = (header.offsetHeight + header.getBoundingClientRect().top) + 'px'; 2792 this.$refs.dialog.style.top = topDialog; 2793 this.$refs.backdrop.style.top = topDialog; 2794 this.$refs.dialogContainer.style.width = 2795 (parseInt(headerContentStyle.marginLeft) + parseInt(headerContentStyle.paddingLeft) + 282) + 'px'; 2796 }, 2797 fetchData(){ 2798 // Calculate offset top 2799 this.setMenuStyles(); 2800 // Fetch data 2801 this.$dispatch('screen-lock',this.open); 2802 if(!this.menuData && this.open){ 2803 this.isLoading = true; 2804 fetch( 2805 'https://www.farma.it/megamenu/get/json/id/1/limit/0/level/1/?1791567035', 2806 { 2807 headers: {contentType: 'application/json'}, 2808 } 2809 ).then(response => { 2810 if (response.ok) { 2811 return response.json(); 2812 } else { 2813 this.dispatchMessage('error', response.statusText); 2814 console.warn("GET request failed", response); 2815 } 2816 }) 2817 .then(data => { 2818 this.menuData = data; 2819 this.isLoading = false; 2820 this.$nextTick(() => { 2821 this.setActiveMenu(document.getElementById('main-menu-second-level_6ac924bad7544')); 2822 }); 2823 }); 2824 } 2825 } 2826 } 2827 } 2828</script>
2828 2829 2830 <!-- Search --> 2831 <div class="order-4 lg:order-3 w-full lg:w-auto lg:flex-1" 2832 :class="searchOpened ? 'z-40': ''" 2833 id="search-content" 2834 > 2835 <div class="mx-auto my-3 lg:my-0 search-container"> 2836 <div class="supercontainer"> 2837 <div id="algoliaAutocomplete" class="block block-search algolia-search-block algolia-search-input container py-2 mx-auto text-black hidden" ></div> 2838 <div id="panelContainer" class="relative" x-data="initAutocompleteInsight"></div> 2839 <div id="menu-open-search" class="control relative lg:mx-10" > 2840 <label for="search" class="block relative cursor-text"> 2841 <div class="input-search form-input pl-[38px] py-2 h-[36px] flex items-center" aria-hidden="true"> 2842 <span>Cerca allâinterno della farmacia</span> 2843 </div> 2844 <div class="absolute top-0 left-0 py-2.5 lg:py-3 px-4 h-[42px] lg:h-[46px] pointer-events-none"> 2845 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14" role="img"> 2846 <path d="M22.79 24c-.32 0-.63-.12-.86-.35l-6.05-6.04v-1.14l-.68-.7-.22.19a9.1 9.1 0 0 1-7.46 2.06 9.128 9.128 0 0 1-7.45-7.8 8.98 8.98 0 0 1 2.2-7.15A9.095 9.095 0 0 1 9.08 0c.38 0 .77.02 1.15.07 4.96.62 8.48 5.15 7.86 10.12a9.046 9.046 0 0 1-2.12 4.78l-.19.22.7.68h1.14l6.03 6.06a1.213 1.213 0 0 1-.86 2.07ZM9.08 2.27c-3.76 0-6.8 3.04-6.8 6.8s3.04 6.8 6.8 6.8 6.8-3.04 6.8-6.8c0-3.75-3.05-6.79-6.8-6.8Z" style="fill:currentColor"/> 2847<title>search</title></svg> 2848 </div> 2849 </label> 2850 </div> 2851 2852 <!-- Close button (left arrow on mobile, X on desktop) --> 2853 <button id="close-instant-search" 2854 type="button" 2855 class="instant-search-close" 2856 aria-label="Close search" 2857 title="Close search"> 2858 <span class="icon-x"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" role="img"> 2859 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"/> 2860<title>x</title></svg> 2861</span> 2862 <span class="icon-arrow"> 2863 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 20.57" width="12" height="12"> 2864 <path d="M22.29 8.58H5.14l5.64-5.64c.65-.69.62-1.78-.07-2.43-.66-.62-1.68-.62-2.35 0L1.01 7.88C.37 8.52 0 9.39 0 10.29c0 .9.37 1.76 1.01 2.4l7.35 7.38c.68.66 1.77.64 2.43-.05.64-.67.64-1.73 0-2.39L5.15 12h17.14c.95-.02 1.7-.81 1.67-1.76-.02-.92-.76-1.65-1.67-1.67Z" style="fill:currentColor"/> 2865 </svg> 2866 </span> 2867 </button> 2868 2869 <!-- Reset button (clears input) shown on mobile --> 2870 <button id="reset-instant-search" 2871 class="reset-instant-search" 2872 aria-label="Clear search" 2873 title="Clear search"> 2874 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12" role="img"> 2875 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"/> 2876<title>x</title></svg> 2877 </button> 2878 2879 <div id="menu-search-icon" class="control relative"> 2880 <input id="search" 2881 x-ref="searchInput" 2882 type="search" 2883 enterkeyhint="search" 2884 inputmode="search" 2885 autocomplete="off" 2886 name="q" 2887 placeholder="Cerca all’interno della farmacia" 2888 maxlength="128" 2889 class="input-search form-input pl-[45px] lg:pl-[38px] py-2 h-[53px]" 2890 /> 2891 <div class="hidden lg:block absolute top-[9px] left-0 py-2.5 px-4 h-[42px] lg:h-[46px]"> 2892 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14" role="img">
2893 <path d="M22.79 24c-.32 0-.63-.12-.86-.35l-6.05-6.04v-1.14l-.68-.7-.22.19a9.1 9.1 0 0 1-7.46 2.06 9.128 9.128 0 0 1-7.45-7.8 8.98 8.98 0 0 1 2.2-7.15A9.095 9.095 0 0 1 9.08 0c.38 0 .77.02 1.15.07 4.96.62 8.48 5.15 7.86 10.12a9.046 9.046 0 0 1-2.12 4.78l-.19.22.7.68h1.14l6.03 6.06a1.213 1.213 0 0 1-.86 2.07ZM9.08 2.27c-3.76 0-6.8 3.04-6.8 6.8s3.04 6.8 6.8 6.8 6.8-3.04 6.8-6.8c0-3.75-3.05-6.79-6.8-6.8Z" style="fill:currentColor"/> 2894<title>search</title></svg> 2895 </div> 2896 </div> 2897 <div id="view-all-products" class="lg:hidden border-t"> 2898 <button class="btn btn-primary view-all-button-algolia" onclick="try{document.querySelector('#autocomplete-products-footer a')?.click();}catch(e){};var p=document.getElementById('view-all-products');if(p){p.classList.add('hidden');}"> 2899 Vedi tutti i <span id="aa-count-mobile" class="mx-1"></span> prodotti 2900 </button> 2901 </div> 2902 </div> 2903 </div> 2904 2905
2905<script> 2906 'use strict'; 2907 2908 function initAutocompleteInsight() { 2909 return { 2910 bindClickEvent(element, eventName, objectID, indexName, position, queryId) { 2911 try { 2912 element.querySelector('.algoliasearch-autocomplete-hit')?.addEventListener("click", function () { 2913 buildInsightsEventData(eventName, objectID, indexName, position, queryId); 2914 }); 2915 } catch (e) {} 2916 } 2917 } 2918 } 2919 2920 document.addEventListener('DOMContentLoaded', function() { 2921 const searchEl = document.getElementById('search'); 2922 if (!searchEl) return; 2923 2924 // delegate Enter/mobile submit logic to autocomplete.js bindings 2925 searchEl.addEventListener('click', function () { 2926 setTimeout(function () { 2927 // After aa-Input is available, keep it in sync with #search value 2928 function syncAaInput() { 2929 const currentAaInput = document.querySelector('.aa-Input'); 2930 if (!currentAaInput || !('value' in currentAaInput)) return; 2931 const newVal = searchEl.value ?? ''; 2932 if (currentAaInput.value !== newVal) { 2933 currentAaInput.value = newVal; 2934 // Notify Algolia/autocomplete about the programmatic change 2935 currentAaInput.dispatchEvent(new Event('input', { bubbles: true })); 2936 currentAaInput.dispatchEvent(new Event('change', { bubbles: true })); 2937 } 2938 } 2939 2940 // Initial sync once available 2941 syncAaInput(); 2942 // Keep syncing as the user types or changes the field 2943 searchEl.addEventListener('input', syncAaInput); 2944 searchEl.addEventListener('change', syncAaInput); 2945 }, 100); 2946 }); 2947 }); 2948 </script>
2948 2949
2949<script> 2950 // Immediately apply open classes and show backdrop on click of #menu-open-search 2951 document.addEventListener('DOMContentLoaded', function() { 2952 var openTrigger = document.getElementById('menu-open-search'); 2953 if (openTrigger) { 2954 openTrigger.addEventListener('click', function () { 2955 try { 2956 var panelContainer = document.getElementById('panelContainer'); 2957 var searchWrapper = document.getElementById('menu-search-icon'); 2958 var searchContainer = document.querySelector('.search-container'); 2959 var aaPanel = document.querySelector('.aa-Panel'); 2960 var bodyEl = document.body; 2961 2962 if (panelContainer) panelContainer.classList.add('is-open'); 2963 if (searchWrapper) searchWrapper.classList.add('is-open'); 2964 if (searchContainer) searchContainer.classList.add('is-open'); 2965 if (aaPanel) aaPanel.classList.add('is-open'); 2966 if (bodyEl) bodyEl.classList.add('max-h-screen', 'lock-screen', 'overflow-hidden', 'instant-lock'); 2967 2968 // Pz8 per evitare flickering della ricerca 2969 (function triggerSearchClicksOnce(el) { 2970 if (!el) return; 2971 2972 if (window.__algoliaSearchClicksTriggered) return; 2973 window.__algoliaSearchClicksTriggered = true; 2974 for (let i = 0; i < 100; i++) { 2975 setTimeout(function () { 2976 let panel = document.querySelector('.aa-PanelLayout'); 2977 if (panel) { 2978 i = 100; 2979 return; 2980 } 2981 if (window.__algoliaSearchClicksTriggered) { 2982 el.click(); 2983 } 2984 2985 }, i * 5); 2986 } 2987 })(document.getElementById('search')); 2988 } catch (e) { 2989 // swallow errors 2990 } 2991 }); 2992 } 2993 2994 }); 2995 </script>
2995 2996
2996<script> 2997 // Toggle 'is-empty' on .search-container only on 'change' when input remains empty and there are results 2998 document.addEventListener('DOMContentLoaded', function() { 2999 var searchContainer = document.querySelector('.search-container'); 3000 if (!searchContainer) return; 3001 3002 function handleChange(e) { 3003 try { 3004 var val = (e && e.target && typeof e.target.value === 'string') ? e.target.value.trim() : ''; 3005 if (val === '' && searchContainer.classList.contains('has-results')) { 3006 searchContainer.classList.add('is-empty'); 3007 } else { 3008 searchContainer.classList.remove('is-empty'); 3009 } 3010 } catch (err) { 3011 // no-op 3012 } 3013 } 3014 3015 // Native search input 3016 var nativeInput = document.getElementById('search'); 3017 if (nativeInput) { 3018 nativeInput.addEventListener('change', handleChange, { passive: true }); 3019 } 3020 3021 // Algolia injected input may appear later; observe and bind once when present 3022 var aaBound = false; 3023 var tryBindAa = function() { 3024 if (aaBound) return; 3025 var aaInput = document.querySelector('.aa-Input'); 3026 if (aaInput) { 3027 aaInput.addEventListener('change', handleChange, { passive: true }); 3028 aaBound = true; 3029 } 3030 }; 3031 // Try now and a little later in case of async initialization 3032 tryBindAa(); 3033 var aaInterval = setInterval(function(){ 3034 if (aaBound) { clearInterval(aaInterval); return; } 3035 tryBindAa(); 3036 }, 200); 3037 setTimeout(function(){ clearInterval(aaInterval); }, 6000); 3038 }); 3039 </script>
3039 3040 </div> 3041 3042 <!-- Buttons --> 3043 <div class="flex items-center gap-4 lg:gap-8 order-3 ml-3 lg:ml-0 lg:order-4"> 3044 <!-- Static Block --> 3045 <div class="hidden lg:block"> 3046 <div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><a class="flex items-center gap-2 hover:underline" href="/richiamami"> 3047 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" width="20" height="20" role="img"> 3048 <path d="M12.98 1c0-.55.45-1 1-1C19.51 0 23.99 4.49 24 10.02c0 .55-.45 1-1 1s-1-.45-1-1c0-4.43-3.59-8.01-8.02-8.02-.55 0-1-.45-1-1Zm1 5.01a4.01 4.01 0 0 1 4.01 4.01c0 .55.45 1 1 1s1-.45 1-1c0-3.32-2.69-6.01-6.01-6.01-.55 0-1 .45-1 1s.45 1 1 1Zm9.11 10.76a3.108 3.108 0 0 1 0 4.39l-.91 1.05C13.98 30.06-5.99 10.1 1.75 1.87l1.15-1a3.081 3.081 0 0 1 4.33.04c.03.03 1.89 2.44 1.89 2.44a3.118 3.118 0 0 1 0 4.29L7.96 9.1a12.83 12.83 0 0 0 6.94 6.96l1.47-1.17a3.099 3.099 0 0 1 4.29 0s2.41 1.86 2.44 1.89Zm-1.38 1.46s-2.4-1.84-2.43-1.88c-.43-.43-1.12-.43-1.55 0-.03.03-2.05 1.64-2.05 1.64-.28.22-.65.28-.98.15a15.02 15.02 0 0 1-8.83-8.82 1 1 0 0 1 .14-1S7.62 6.3 7.65 6.27c.43-.43.43-1.12 0-1.55-.03-.03-1.88-2.43-1.88-2.43-.43-.39-1.1-.38-1.52.04l-1.15 1c-5.65 6.8 11.65 23.14 17.6 17.51l.91-1.05c.44-.41.48-1.1.08-1.56Z" style="fill:currentColor"></path> 3049<title>heroicons/outline/phone</title></svg> 3050 3051 <div class="text-xs font-medium">Richiamami</div> 3052 </a></div> </div> 3053 3054 <!-- Customer Icon & Dropdown --> 3055 <!-- BLOCK header.customer --> 3056<div x-data="initHeaderCustomerMenu()" @private-content-loaded.window="getData(event.detail.data)"> 3057 3058 <template x-if="isLoggedIn()"> 3059 <a 3060 href="https://www.farma.it/customer/account/" 3061 id="customer-menu" 3062 class="flex items-center gap-2 hover:underline" 3063 aria-label="Il mio Account" 3064 > 3065 <span class="relative block"> 3066 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"> 3067 <path d="M4.07 21c-.07-.05-.13-.1-.19-.17C-1 16.35-1.32 8.76 3.16 3.87c4.48-4.88 12.07-5.2 16.95-.72 4.88 4.48 5.21 12.07.73 16.96-.23.25-.47.49-.73.73-.05.06-.12.12-.19.17-4.53 4-11.32 4-15.85 0ZM12 22.15c2.25 0 4.44-.75 6.22-2.13a7.354 7.354 0 0 0-6.14-3.4h-.16c-2.49.02-4.8 1.3-6.14 3.4 1.78 1.39 3.97 2.14 6.22 2.13Zm4.83-6.02c1.09.67 2.03 1.56 2.76 2.61 3.73-4.19 3.35-10.61-.84-14.33C14.56.68 8.14 1.06 4.42 5.25 1 9.1 1 14.9 4.42 18.74a9.2 9.2 0 0 1 4.16-3.31 5.546 5.546 0 0 1-.93-7.78 5.546 5.546 0 0 1 7.78-.93 5.546 5.546 0 0 1 0 8.71c.49.19.96.43 1.4.7Zm-8.52-5.06c0 2.01 1.61 3.65 3.62 3.69h.15A3.694 3.694 0 0 0 15.7 11a3.694 3.694 0 0 0-3.76-3.62 3.692 3.692 0 0 0-3.62 3.69Z" style="fill:currentColor"/> 3068</svg> 3069 <span x-text="customer.firstname.charAt(0)" 3070 class="lg:hidden absolute h-3 w-3 bg-white leading-none top-[-3px] left-3 text-xxs font-bold text-center text-sale rounded-full" 3071 >0</span> 3072 </span> 3073 <span class="label hidden lg:block text-xs truncate text-center w-full leading-none font-medium"> 3074 <span>Ciao, </span> 3075 <span x-text="customer.firstname"></span> 3076 </span> 3077 </a> 3078 </template> 3079 3080 <template x-if="!isLoggedIn()"> 3081 <span> 3082 <a 3083 href="https://www.farma.it/customer/account/" 3084 id="customer-menu" 3085 class="flex items-center gap-2 hover:underline" 3086 aria-label="Il mio Account" 3087 > 3088 <span class="relative block"> 3089 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"> 3090 <path d="M4.07 21c-.07-.05-.13-.1-.19-.17C-1 16.35-1.32 8.76 3.16 3.87c4.48-4.88 12.07-5.2 16.95-.72 4.88 4.48 5.21 12.07.73 16.96-.23.25-.47.49-.73.73-.05.06-.12.12-.19.17-4.53 4-11.32 4-15.85 0ZM12 22.15c2.25 0 4.44-.75 6.22-2.13a7.354 7.354 0 0 0-6.14-3.4h-.16c-2.49.02-4.8 1.3-6.14 3.4 1.78 1.39 3.97 2.14 6.22 2.13Zm4.83-6.02c1.09.67 2.03 1.56 2.76 2.61 3.73-4.19 3.35-10.61-.84-14.33C14.56.68 8.14 1.06 4.42 5.25 1 9.1 1 14.9 4.42 18.74a9.2 9.2 0 0 1 4.16-3.31 5.546 5.546 0 0 1-.93-7.78 5.546 5.546 0 0 1 7.78-.93 5.546 5.546 0 0 1 0 8.71c.49.19.96.43 1.4.7Zm-8.52-5.06c0 2.01 1.61 3.65 3.62 3.69h.15A3.694 3.694 0 0 0 15.7 11a3.694 3.694 0 0 0-3.76-3.62 3.692 3.692 0 0 0-3.62 3.69Z" style="fill:currentColor"/> 3091</svg> 3092 </span>
3093 <span class="label hidden lg:block text-xs truncate text-center w-full leading-none font-medium"> 3094 <span>Accedi / Registrati</span> 3095 </span> 3096 </a> 3097 </span> 3098 </template> 3099</div>
3100<script> 3101 function initHeaderCustomerMenu() { 3102 return { 3103 open: false, 3104 customer: {}, 3105 getData(data) { 3106 if (data.customer) { this.customer = data.customer } 3107 }, 3108 isLoggedIn(){ 3109 return !!(this.customer.firstname); 3110 } 3111 } 3112 } 3113</script>
3113 3114<!-- /BLOCK header.customer --> 3115 <!-- Wishlist Icon --> 3116 3117<a 3118 href="https://www.farma.it/wishlist/" 3119 class="relative hidden md:inline-flex btn bg-transparent border-transparent p-1" 3120 x-data="initWishlistHeader" 3121 @private-content-loaded.window="receiveWishlistData" 3122 aria-label="La mia lista desideri" 3123 :aria-label="linkAriaLabel" 3124> 3125 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" aria-hidden="true"><path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/></svg> 3126 <template x-if="itemCount"> 3127 <span 3128 x-text="itemCount" 3129 class="absolute -top-1.5 -right-1.5 px-2 py-1 rounded-full bg-primary text-on-primary text-xs 3130 font-semibold leading-none text-center uppercase tabular-nums" 3131 aria-hidden="true" 3132 ></span> 3133 </template> 3134</a> 3135
3136<script> 3137 function initWishlistHeader() { 3138 return { 3139 wishlistProducts: null, 3140 itemCount: 0, 3141 linkAriaLabel() { 3142 const countLabel = this.itemCount > 1 3143 ? hyva.str('\u00251\u0020elementi', this.itemCount) 3144 : hyva.str('\u00251\u0020elemento', this.itemCount); 3145 return `Wishlist\u0020Products (${countLabel})`; 3146 }, 3147 receiveWishlistData() { 3148 const data = this.$event.detail.data; 3149 this.itemCount = data.wishlist ? parseInt(data.wishlist.counter) : 0; 3150 } 3151 } 3152 } 3153 3154 window.addEventListener('alpine:init', () => { 3155 Alpine.data('initWishlistHeader', initWishlistHeader); 3156 }, { once: true }) 3157</script>
3157 3158 3159 <!-- Cart Icon --> 3160 <a id="menu-cart-icon" 3161 @click.prevent.stop="$dispatch('toggle-cart',{});" class="flex items-center gap-2 hover:underline" 3162 href="https://www.farma.it/checkout/cart/index/" 3163 > 3164 <span class="relative block"> 3165 <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewBox="0 0 22.79 24" width="20" height="20" role="img"> 3166 <path fill="currentColor" d="M6.98 24c-1.05 0-1.9-.86-1.89-1.91 0-1.05.86-1.9 1.91-1.89 1.05 0 1.89.85 1.89 1.9 0 1.05-.86 1.9-1.91 1.9ZM17.11 24c-1.05 0-1.9-.86-1.89-1.91 0-1.05.86-1.9 1.91-1.89 1.05 0 1.89.85 1.89 1.9 0 1.05-.86 1.9-1.91 1.9ZM19.14 18.95H8.56c-2.5 0-4.62-1.87-4.91-4.35L2.24 2.78c-.07-.57-.55-1-1.12-1H.89A.893.893 0 0 1-.05.94C-.08.45.3.03.79 0h.33c1.48 0 2.72 1.1 2.9 2.57l.05.46h6.95c.49-.02.9.37.92.86.02.49-.37.9-.86.92H4.27l.98 8.32h12.51c1.53 0 2.84-1.09 3.11-2.59l.13-.72a.9.9 0 0 1 .88-.73c.05 0 .11 0 .16.01.48.09.81.55.72 1.03l-.13.72a4.953 4.953 0 0 1-4.87 4.06H5.51l.06.16c.45 1.26 1.64 2.1 2.98 2.1h10.58c.49-.02.9.37.92.86.02.49-.37.9-.86.92h-.06Z"/> 3167<title>shopping-cart</title></svg> 3168 <span x-text="getCartItemsCountLabel" 3169 class="absolute top-[-6px] right-[1px] text-xxs font-bold text-center text-sale rounded-full" 3170 >0</span> 3171 </span> 3172 <span class="header-subtotal label hidden lg:inline text-sm leading-none font-bold">0,00 â¬</span> 3173 </a> 3174 </div> 3175 </div> 3176 </div> 3177 3178 <!-- Cart Drawer --> 3179
3179<script> 3180 function initCartDrawer() { 3181 return { 3182 open: false, 3183 isLoading: false, 3184 cart: {}, 3185 maxItemsToDisplay: 10, 3186 itemsCount: 0, 3187 totalCartAmount: 0, 3188 headerSubtotal: null, 3189 headerSubtotalSelector: '.header-subtotal', 3190 groupedData: {}, 3191 3192 itemsCountLabel(){ 3193 return (this.itemsCount > 99)? '99+' : `${this.itemsCount}`; 3194 }, 3195 isVisible(){ 3196 return (this.open && this.itemsCount > 0) 3197 }, 3198 getData(data) { 3199 if (data.cart) { 3200 this.cart = data.cart; 3201 this.itemsCount = data.cart.items && data.cart.items.length || 0; 3202 this.totalCartAmount = this.cart.summary_count; 3203 this.setCartItems(); 3204 this.initGroupedData() 3205 } 3206 this.isLoading = false; 3207 }, 3208 cartItems: [], 3209 getItemCountTitle() { 3210 return hyva.strf('(%0 di %1)', this.maxItemsToDisplay, this.itemsCount) 3211 }, 3212 getHeaderSubtotal() { 3213 if (!this.headerSubtotal) { 3214 this.headerSubtotal = document.querySelector(this.headerSubtotalSelector); 3215 } 3216 3217 return this.headerSubtotal; 3218 }, 3219 setCartItems() { 3220 this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; 3221 3222 if (this.maxItemsToDisplay > 0) { 3223 this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); 3224 } 3225 3226 try { 3227 var subtotal = (this.cart?.subtotal_incl_tax_discounted) ? this.cart.subtotal_incl_tax_discounted : this.cart.subtotal; 3228 if (subtotal) { 3229 this.getHeaderSubtotal().innerHTML = subtotal; 3230 } 3231 } catch (e) {} 3232 }, 3233 initGroupedData() { 3234 let self = this; 3235 try { 3236 Object.values(this.cart['fake_grouped_parents']).forEac
3236h(function (parent) { 3237 let price = 0.0000, 3238 productIds = parent.product_ids.split(','), 3239 groupedId = parent['grouped_id']; 3240 self.groupedData[groupedId] = { 3241 'price': price, 3242 'items': [] 3243 }; 3244 productIds.forEach(function (productId) { 3245 let product = self.cart.items.find((item) => item.product_id == productId); 3246 if (product) { 3247 self.groupedData[groupedId]['items'].push({ 3248 'name': product['product_name'], 3249 'qty': product['qty'] 3250 }); 3251 price += product['product_price_value'] * product['qty']; 3252 } 3253 }) 3254 self.groupedData[groupedId]['price'] = hyva.formatPrice(price, false); 3255 }) 3256 } catch (e) {} 3257 console.log(this.groupedData); 3258 }, 3259 deleteItemFromCart(itemId) { 3260 this.isLoading = true; 3261 3262 const formKey = hyva.getFormKey(); 3263 const postUrl = BASE_URL + 'checkout/sidebar/removeItem/'; 3264 3265 fetch(postUrl, { 3266 "headers": { 3267 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 3268 }, 3269 "body": "form_key=" + formKey + "&item_id=" + itemId, 3270 "method": "POST", 3271 "mode": "cors", 3272 "credentials": "include" 3273 }).then(response => { 3274 if (response.redirected) { 3275 window.location.href = response.url; 3276 } else if (response.ok) { 3277 return response.json(); 3278 } else { 3279 window.dispatchMessages && window.dispatchMessages([{ 3280 type: 'warning', 3281 text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.' 3282 }]); 3283 this.isLoading = false; 3284 } 3285 }).then(result => { 3286 window.dispatchMessages && window.dispatchMessages([{ 3287 type: result.success ? 'success' : 'error', 3288 text: result.success 3289 ? 'Hai\u0020rimosso\u0020il\u0020prodotto.' 3290 : result.error_message 3291 }], result.success ? 5000 : 0) 3292 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 3293 }); 3294 }, 3295 deleteGroupedFromCart(groupedId) { 3296 let deleteButton = document.querySelector('#cart-drawer [data-grouped-id="' + groupedId + '"] .delete'); 3297 if (deleteButton) { 3298 deleteButton.click(); 3299 } 3300 }, 3301 getGroupedPrice(groupedId) { 3302 return this.groupedData[groupedId]['price']; 3303 } 3304 } 3305 } 3306</script>
3306 3307<section id="cart-drawer" 3308 x-data="initCartDrawer()" 3309 x-init="$watch('isVisible', value => $dispatch('screen-lock', value))" 3310 @private-content-loaded.window="getData($event.detail.data)" 3311 @toggle-cart.window="if(itemsCount > 0){open=true}" 3312 @keydown.window.escape="open=false" 3313 @cart-loading-start.window="isLoading=true" 3314 @cart-loading-stop.window="isLoading=false" 3315> 3316 <template x-if="cart && cart.summary_count"> 3317 <div role="dialog" 3318 aria-labelledby="cart-drawer-title" 3319 aria-modal="true" 3320 @click.outside="open=false" 3321 class="fixed inset-y-0 right-0 z-30 flex max-w-full"> 3322 <div class="backdrop" 3323 x-show="open" 3324 x-transition:enter="ease-in-out duration-500" 3325 x-transition:enter-start="opacity-0" 3326 x-transition:enter-end="opacity-100" 3327 x-transition:leave="ease-in-out duration-500" 3328 x-transition:leave-start="opacity-100" 3329 x-transition:leave-end="opacity-0" 3330 @click="open=false" 3331 aria-label="Close panel"></div> 3332 <div class="relative w-screen max-w-[470px] shadow-2xl" 3333 x-show="open" 3334 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 3335 x-transition:enter-start="translate-x-full" 3336 x-transition:enter-end="translate-x-0" 3337 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 3338 x-transition:leave-start="translate-x-0" 3339 x-transition:leave-end="translate-x-full" 3340 > 3341 <div 3342 x-show="open" 3343 x-transition:enter="ease-in-out duration-500" 3344 x-transition:enter-start="opacity-0" 3345 x-transition:enter-end="opacity-100" 3346 x-transition:leave="ease-in-out duration-500" 3347 x-transition:leave-start="opacity-100" 3348 x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex p-2 mt-2"> 3349 <button @click="open=false" aria-label="Close panel" 3350 class="p-2 text-primary transition duration-150 ease-in-out hover:text-secondary"> 3351 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" role="img"> 3352 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"/> 3353<title>x</title></svg> 3354 </button> 3355 </div> 3356 <div class="flex flex-col h-screen h-[100dvh] py-6 space-y-6 bg-white shadow-xl"> 3357 3358 <header class="px-4 sm:px-6"> 3359 <h2 id="cart-drawer-title" class="text-xl font-bold leading-6 text-primary"> 3360 Carrello <span class="items-total font-normal" 3361 x-text="'(' + totalCartAmount + ')'"> 3362 </span> 3363 </h2> 3364 </header> 3365 3366 3367 <div class="relative grid gap-6 px-4 py-6 overflow-y-auto bg-white border-t sm:gap-8 sm:px-6 border-container"> 3368 <template x-for="parent in cart.fake_grouped_parents"> 3369 <div class="flex items-start p-3 -m-3 space-x-4"> 3370 <a :href="parent.url" class="w-1/4"> 3371 <img 3372 :src="parent.image" 3373 width="78" 3374 height="78" 3375 loading="lazy" 3376 /> 3377 </a> 3378 <div class="w-3/4"> 3379 <div> 3380 <p class="text-sm">
3381 <span x-html="parent.name"></span> 3382 </p> 3383 </div> 3384 <div class="mt-2"> 3385 <template x-for="child_item in groupedData[parent.grouped_id].items"> 3386 <div class="font-body-sm font-sm text-gray-1"> 3387 <span x-html="child_item.qty + 'x ' + child_item.name"></span> 3388 </div> 3389 </template> 3390 </div> 3391 <p class="flex mt-2"> 3392 <span> 3393 <span class="price-including-tax"> 3394 <span class="minicart-price"> 3395 <span class="price" x-html="getGroupedPrice(parent.grouped_id)"></span> 3396 </span> 3397 </span> 3398 </span> 3399 </p> 3400 <div class="pt-2 mt-2"> 3401 <button class="inline-flex p-2 btn shadow-none bg-container-darker text-primary hover:shadow-lg hover:bg-secondary/10" 3402 @click="deleteGroupedFromCart(parent.grouped_id)" 3403 > 3404 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.96 24" class="p-0.5" width="20" height="20" role="img"> 3405 <path d="M13.9 24H8.06a4.85 4.85 0 0 1-4.84-4.4L1.87 5.64H.78a.781.781 0 0 1 0-1.56h4.38l.04-.19A4.86 4.86 0 0 1 9.96 0H12c2.31 0 4.3 1.63 4.76 3.89l.04.19h4.38c.42 0 .76.33.78.74v.04c0 .43-.35.78-.78.78h-1.12l-1.32 13.95a4.842 4.842 0 0 1-4.84 4.4ZM3.45 5.64l1.32 13.81a3.284 3.284 0 0 0 3.28 2.98h5.84c1.7 0 3.13-1.29 3.28-2.98l1.31-13.81H3.45Zm6.51-4.08c-1.4 0-2.65.88-3.11 2.2l-.11.32h8.48l-.11-.32A3.299 3.299 0 0 0 12 1.56H9.97Z" style="fill:currentColor"/> 3406<title>trash</title></svg> 3407 </button> 3408 </div> 3409 </div> 3410 </div> 3411 </template> 3412 <template x-for="item in cartItems"> 3413 <div class="flex items-start p-3 -m-3 space-x-4" :class="{'hidden': item.grouped_id }" x-bind:data-grouped-id="item.grouped_id"> 3414 <a :href="item.product_url" class="w-1/4"> 3415 <img 3416 :src="item.product_image.src" 3417 :width="item.product_image.width" 3418 :height="item.product_image.height" 3419 loading="lazy" 3420 /> 3421 </a> 3422 <div class="w-3/4 space-y-2"> 3423 <div> 3424 <p class="text-sm"> 3425 <span x-html="item.product_name"></span> 3426 </p> 3427 <p class="text-xs sr-only"><span x-html="item.product_sku"></span></p> 3428 </div> 3429 <template x-for="(option, i) in item.options"> 3430 <span class="text-xxs text-primary-lighter inline-block before:inline-block before:mx-1 before:content-['-']" 3431 x-html="option.value" 3432 :class="{ 'before:content-none before:hidden': i == 0 }" 3433 ></span> 3434 </template> 3435 <div class="font-body-sm font-sm inline text-gray-1"> 3436 Quantità : <sp
3436an x-html="item.qty"></span> 3437 </div> 3438 <p class="flex"> 3439 <span x-html="item.product_price"></span> 3440 <span x-show="item.regular_price_value > item.product_price_value" x-html="hyva.formatPrice(item.regular_price_value)" class="line-through ml-1.5"></span> 3441 </p> 3442 <div class="pt-2"> 3443 <a :href="item.configure_url" 3444 x-show="item.product_type !== 'grouped'" 3445 class="inline-flex p-2 mr-2 btn shadow-none bg-container-darker text-primary hover:shadow-lg hover:bg-secondary/10"> 3446 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="p-0.5" width="20" height="20" role="img"> 3447 <path d="M2.88 24H.76a.76.76 0 0 1-.76-.76v-2.11c0-1.29.51-2.53 1.43-3.44L18.11 1.01a3.455 3.455 0 0 1 4.88-.02 3.455 3.455 0 0 1 .02 4.88l-.02.02L6.3 22.58C5.39 23.49 4.16 24 2.88 24ZM15.35 5.91 2.5 18.77c-.63.63-.98 1.48-.98 2.37v1.35h1.35c.89 0 1.74-.35 2.36-.98L18.09 8.66l-2.74-2.74Zm5.2-4.4c-.51 0-1 .2-1.37.57l-2.76 2.76 2.74 2.73 2.76-2.76c.76-.75.76-1.98 0-2.74-.36-.36-.86-.57-1.37-.57Z" style="fill:currentColor"/> 3448<title>Modifica</title></svg> 3449 </a> 3450 <button class="delete inline-flex p-2 btn shadow-none bg-container-darker text-primary hover:shadow-lg hover:bg-secondary/10" 3451 @click="deleteItemFromCart(item.item_id)" 3452 > 3453 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.96 24" class="p-0.5" width="20" height="20" role="img"> 3454 <path d="M13.9 24H8.06a4.85 4.85 0 0 1-4.84-4.4L1.87 5.64H.78a.781.781 0 0 1 0-1.56h4.38l.04-.19A4.86 4.86 0 0 1 9.96 0H12c2.31 0 4.3 1.63 4.76 3.89l.04.19h4.38c.42 0 .76.33.78.74v.04c0 .43-.35.78-.78.78h-1.12l-1.32 13.95a4.842 4.842 0 0 1-4.84 4.4ZM3.45 5.64l1.32 13.81a3.284 3.284 0 0 0 3.28 2.98h5.84c1.7 0 3.13-1.29 3.28-2.98l1.31-13.81H3.45Zm6.51-4.08c-1.4 0-2.65.88-3.11 2.2l-.11.32h8.48l-.11-.32A3.299 3.299 0 0 0 12 1.56H9.97Z" style="fill:currentColor"/> 3455<title>Elimina</title></svg> 3456 </button> 3457 </div> 3458 3459 </div> 3460 </div> 3461 </template> 3462 </div> 3463 3464 3465 <div class="relative grid gap-6 px-4 pt-6 bg-white sm:gap-8 sm:px-6 !mt-auto"> 3466 <div class="w-full p-3 -m-3 space-x-4 text-right"> 3467 <p>Subtotale: <span class="font-bold text-xl" x-html="cart.subtotal_incl_tax_discounted"></span></p> 3468 </div> 3469 <div class="w-full p-3 -m-3 space-y-3"> 3470 <a href="https://www.farma.it/checkout/cart/" 3471 class="block btn btn-primary"> 3472 Vai al Carrello </a> 3473 </div> 3474 </div> 3475 3476 </div> 3477 </div> 3478 3479<div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" 3480 style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgb(255 255 255/0.60);" 3481 x-show="isLoading" 3482 x-transition:enter="ease-out duration-200" 3483 x-transition:enter-start="opacity-0" 3484 x-transition:enter-end="opacity-100" 3485 x-transition:leave="ease-in duration-200" 3486 x-transition:leave-start="opacity-100" 3487 x-transition:leave-end="opacity-0"> 3488 <svg xmlns="http://www.w3.org/2000/svg" width="57" height="57" viewBox="0 0 38 38" stroke="#ffb590" class="text-primary" role="img"> 3489 <g fill="none" fill-rule="evenodd"> 3490 <g transform="translate(1 1)" stroke-width="2"> 3491 <circle stroke="#ff6801" cx="18" cy="18" r="18"/> 3492 <path d="M36 18c0-9.94-8.06-18-18-18"> 3493 <animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s" repeatCount="indef
3493inite"/> 3494 </path> 3495 </g> 3496 </g> 3497<title>loader</title></svg> 3498</div> 3499 </div> 3500 </template> 3501</section> 3502 3503 <!-- Authentication Pop-Up --> 3504 <!-- BLOCK authentication-popup -->
3504<script> 3505 function initAuthentication() { 3506 return { 3507 open: false, 3508 forceAuthentication: false, 3509 checkoutUrl: 'https://www.farma.it/checkout/index/', 3510 errors: 0, 3511 hasCaptchaToken: 0, 3512 displayErrorMessage: false, 3513 errorMessages: [], 3514 setErrorMessages: function setErrorMessages(messages) { 3515 this.errorMessages = [messages]; 3516 this.displayErrorMessage = this.errorMessages.length; 3517 }, 3518 submitForm: function () { 3519 // Do not rename $form, the variable is expected to be declared in the recaptcha output 3520 const $form = document.querySelector('#login-form'); 3521 3522 if (this.errors === 0) { 3523 this.dispatchLoginRequest($form); 3524 } 3525 }, 3526 onPrivateContentLoaded: function (data) { 3527 const isLoggedIn = data.customer && data.customer.firstname; 3528 if (data.cart && !isLoggedIn) { 3529 this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; 3530 } 3531 }, 3532 redirectIfAuthenticated: function (event) { 3533 if (event.detail && event.detail.url) { 3534 this.checkoutUrl = event.detail.url; 3535 } 3536 if (!this.forceAuthentication) { 3537 window.location.href = this.checkoutUrl; 3538 } 3539 }, 3540 dispatchLoginRequest: function(form) { 3541 this.isLoading = true; 3542 const username = this.$refs['customer-email'].value; 3543 const password = this.$refs['customer-password'].value; 3544 const formKey = hyva.getFormKey(); 3545 const bodyFields = { 3546 'username': username, 3547 'password': password, 3548 'formKey': formKey 3549 }; 3550 const fieldName = 'g\u002Drecaptcha\u002Dresponse'; 3551 const recaptchaField = fieldName && form[fieldName]; 3552 if (recaptchaField) { 3553 bodyFields[fieldName] = recaptchaField.value; 3554 } 3555 fetch('https://www.farma.it/customer/ajax/login/', { 3556 method: 'POST', 3557 headers: { 3558 'Content-Type': 'application/json', 3559 'X-Requested-With': 'XMLHttpRequest' 3560 }, 3561 body: JSON.stringify(bodyFields) 3562 } 3563 ).then(response => { 3564 return response.json() 3565 } 3566 ).then(data=> { 3567 this.isLoading = false; 3568 if (data.errors) { 3569 dispatchMessages([{ 3570 type: 'error', 3571 text: data.message 3572 }], 5000); 3573 this.errors = 1; 3574 this.hasCaptchaToken = 0; 3575 } else { 3576 window.location.href = this.checkoutUrl; 3577 } 3578 }); 3579 } 3580 } 3581 } 3582</script>
3582 3583<section id="authentication-popup" 3584 x-data="initAuthentication()" 3585 @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)" 3586 @toggle-authentication.window="open = forceAuthentication; redirectIfAuthenticated(event)" 3587 @keydown.window.escape="open = false" 3588 class="hidden" 3589 :class="{ 'hidden': !open }" 3590> 3591 <div role="dialog" 3592 aria-labelledby="authentication-popup-title" 3593 aria-modal="true" 3594 @click.outside="open=false" 3595 class="fixed inset-y-0 right-0 z-50 flex max-w-full"> 3596 <div class="backdrop" 3597 x-show="open" 3598 x-transition:enter="ease-in-out duration-500" 3599 x-transition:enter-start="opacity-0" 3600 x-transition:enter-end="opacity-100" 3601 x-transition:leave="ease-in-out duration-500" 3602 x-transition:leave-start="opacity-100" 3603 x-transition:leave-end="opacity-0" 3604 @click="open=false" 3605 aria-label="Close panel"></div> 3606 <div class="relative w-screen max-w-[485px] shadow-2xl" 3607 x-show="open" 3608 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 3609 x-transition:enter-start="translate-x-full" 3610 x-transition:enter-end="translate-x-0" 3611 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 3612 x-transition:leave-start="translate-x-0" 3613 x-transition:leave-end="translate-x-full" 3614 > 3615 <div 3616 x-show="open" 3617 x-transition:enter="ease-in-out duration-500" 3618 x-transition:enter-start="opacity-0" 3619 x-transition:enter-end="opacity-100" 3620 x-transition:leave="ease-in-out duration-500" 3621 x-transition:leave-start="opacity-100" 3622 x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex p-2 mt-3 sm:mt-7 sm:mr-6"> 3623 <button @click="open=false" aria-label="Close panel" 3624 class="p-2 text-primary transition duration-150 ease-in-out hover:text-secondary"> 3625 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" role="img"> 3626 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"/> 3627<title>x</title></svg> 3628 </button> 3629 </div> 3630 <div class="flex flex-col h-screen h-[100dvh] pt-6 pb-6 sm:pt-10 space-y-6 sm:space-y-10 bg-white shadow-xl overflow-y-auto"> 3631 <header class="px-4"> 3632 <div id="authentication-popup-title" class="text-3xl font-bold leading-6 text-primary-darker"> 3633 Accedi o registrati </div> 3634 </header> 3635 <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm"> 3636 <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900"> 3637 <strong class="font-medium">Esegui il checkout utilizzando il tuo account</strong> 3638 </p> 3639 3640 <form class="form form-login" 3641 method="post" 3642 @submit.prevent="submitForm();" 3643 id="login-form" 3644 > 3645 <div class="fieldset login"> 3646 <div class="field email required"> 3647 <label class="label" for="form-login-username" form="login-form" > 3648 <span>Indirizzo email</span> 3649 </label> 3650 <div class="control"> 3651 <input name="username" 3652 id="form-login-username" 3653 x-ref="customer-email" 3654 @change="errors = 0" 3655 type="email" 3656 required 3657 class="form-input input-text" 3658 > 3659 </div> 3660 </div> 3661 <div class="field password required"> 3662 <label for="form-login-password" class="label" form="login-form">
3663 <span>Password</span> 3664 </label> 3665 <div class="control"> 3666 <input name="password" 3667 id="form-login-password" 3668 type="password" 3669 class="form-input input-text" 3670 required 3671 x-ref="customer-password" 3672 @change="errors = 0" 3673 > 3674 </div> 3675 </div> 3676 3677 <input name="context" type="hidden" value="checkout" /> 3678 <div class="actions-toolbar flex justify-between pt-6 pb-2 items-center"> 3679 <button type="submit" class="inline-flex btn btn-primary disabled:opacity-75" 3680 > 3681 Accedi </button> 3682 <a href="https://www.farma.it/customer/account/forgotpassword/" 3683 > 3684 Hai dimenticato la password? </a> 3685 </div> 3686 3687 </div> 3688 </form> 3689 </div> 3690 <div class="mx-4"> 3691 </div> 3692 <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm"> 3693 <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900"> 3694 <strong class="font-medium">Esegui il checkout come nuovo cliente</strong> 3695 </p> 3696 3697 <div class="block-content"> 3698 <p class="mb-1"> 3699 La creazione di un account ha molti vantaggi: </p> 3700 <ul class="list-disc pl-5"> 3701 <li> Vedere lo stato dell'ordine e della spedizione</li> 3702 <li> Cronologia ordini</li> 3703 <li> Checkout più veloce</li> 3704 </ul> 3705 <div class="actions-toolbar flex justify-between mt-6 mb-2 items-center"> 3706 <a href="https://www.farma.it/customer/account/create/" 3707 class="inline-flex btn btn-primary"> 3708 Crea il tuo Account </a> 3709 </div> 3710 </div> 3711 </div> 3712 </div> 3713 </div> 3714 </div> 3715</section> 3716<!-- /BLOCK authentication-popup --></div> 3717 3718</header><div class="widget block block-static-block"> 3719 </div> 3720<div class="top-container flex flex-col"><div class="widget block block-static-block"> 3721 </div> 3722</div><main id="maincontent" class="page-main mt-0"><div id="algolia-autocomplete-container"></div><div id="contentarea" tabindex="-1"></div> 3723<div class="page messages">
3723<script> 3724 function initMessages() { 3725 "use strict"; 3726 return { 3727 messages: window.mageMessages || [], 3728 3729 hideAfter: 4000, 3730 icons: { 3731 error: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="text-white" role="img"> <path d="M0 12a12 12 0 1 1 12 12A12.015 12.015 0 0 1 0 12Z" fill="#ea302d"/> <path d="m12.033 13.582-.036.036-.035-.036-3.629 3.563-1.6-1.58L10.355 12 6.733 8.437l1.6-1.58 3.632 3.562.035-.033.036.033 3.626-3.562 1.606 1.58L13.646 12l3.622 3.565-1.606 1.58Z" fill="#fdeae9"/><title>message-type-error</title></svg>', 3732 success: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="text-white" role="img"> <path d="M0 12a12 12 0 1 1 12 12A12.015 12.015 0 0 1 0 12Z" fill="#10b981"/> <path d="M9.841 16.98a1.2 1.2 0 0 1-.849-.352l-4.089-4.092 1.7-1.7 3.24 3.24 7.561-7.561 1.7 1.7-8.41 8.41a1.2 1.2 0 0 1-.853.355Z" fill="#e6f8f2"/><title>message-type-success</title></svg>', 3733 info: '<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewBox="0 0 24 24" class="text-white" width="20" height="20" role="img"> <path d="M12 24C5.37 24 0 18.63 0 12S5.37 0 12 0s12 5.37 12 12-5.37 12-12 12Z" style="fill:#08011a"/> <path fill="#fff" d="M12 10c1.1 0 2 .9 2 2v5.33c0 1.1-.9 2-2 2s-2-.9-2-2V12c0-1.1.9-2 2-2ZM11.99 4.42H12c1.24 0 2.25 1.01 2.25 2.25S13.24 8.92 12 8.92h-.01c-1.24 0-2.25-1.01-2.25-2.25s1.01-2.25 2.25-2.25Z"/><title>message-type-info</title></svg>', 3734 warning: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="text-white" role="img"> <path d="M3.31 22.862a3.3 3.3 0 0 1-2.866-4.948L9.135 2.793a3.307 3.307 0 0 1 5.731 0l8.689 15.121a3.3 3.3 0 0 1-2.865 4.947Z" fill="#f9b602"/> <path d="M13.145 14.219h-2.287V7.61h2.287ZM10.856 18.546v-2.287h2.302v2.288Z" fill="#2e2f2f"/><title>message-type-warning</title></svg>', 3735 notice: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="text-white" role="img"> <path d="M10.437 23.584a3.184 3.184 0 0 1-1.151-1.146l1.6-.93a1.214 1.214 0 0 0 .472.471 1.282 1.282 0 0 0 1.289 0 1.205 1.205 0 0 0 .471-.471l1.6.93a3.2 3.2 0 0 1-1.146 1.146A3.156 3.156 0 0 1 12 24a3.125 3.125 0 0 1-1.563-.416Zm-8.405-4.01a.929.929 0 0 1-.9-.65.9.9 0 0 1 .357-1.024 6.091 6.091 0 0 0 1.455-2.037 17.711 17.711 0 0 0 1.485-7.845 8.242 8.242 0 0 1 2.2-5.648A7.428 7.428 0 0 1 12 0a7.426 7.426 0 0 1 5.375 2.369 8.241 8.241 0 0 1 2.2 5.648 17.725 17.725 0 0 0 1.485 7.846 6.116 6.116 0 0 0 1.452 2.037.9.9 0 0 1 .352 1.02.928.928 0 0 1-.9.65Z" fill="#2e2f2f"/><title>message-type-notice</title></svg>', 3736 }, 3737 3738 isEmpty() { 3739 return this.messages.reduce( 3740 function (isEmpty, message) { 3741 return isEmpty && message === undefined 3742 }, true 3743 ) 3744 }, 3745 removeMessage(messageIndex) { 3746 this.messages[messageIndex] = undefined; 3747 }, 3748 addMessages(messages, hideAfter) { 3749 messages.map((message) => { 3750 message.icon = this.icons[message.type]; 3751 this.messages = this.messages.concat(message); 3752 if (hideAfter) { 3753 this.setHideTimeOut(this.messages.length - 1, hideAfter); 3754 } 3755 }); 3756 }, 3757 setHideTimeOut(messageIndex, hideAfter) { 3758 setTimeout((messageIndex) => { 3759 this.removeMessage(messageIndex); 3760 }, hideAfter, messageIndex); 3761 }, 3762 animateMessage(elem) { 3763 if (elem) { 3764 if (window.matchMedia('(min-width: 1024px)').matches) { 3765 elem.classList.add('transition-all', 'duration-300'); 3766 elem.style.position = 'absolute'; 3767 const headerEl = document.querySelector('.header-elements'); 3768 elem.style.left = (headerEl ? headerEl.getBoundingClientRect().left : 0) + 'px'; 3769 elem.style.opacity = 1; 3770 3771 setTimeout(() => { 3772 elem.style.left = '0'; 3773 elem.style.opacity = 0; 3774 }, this.hideAfter - 300); 3775 } else { 3776 elem.style.left = '-400px'; 3777 elem.classList.add('transition-all', 'duration-300'); 3778 elem.style.opacity = 0; 3779 3780 setTimeout(() => { 3781 elem.style.left = '0'; 3782 elem.style.opacity = 1; 3783 }, 10); 3784 3785 setTimeout(() => { 3786 elem.style.left = '-400px'; 3787 elem.style.opacity = 0; 3788 }, this.hideAfter - 300); 3789 } 3790 } 3791 }, 3792 eventListeners: { 3793 ['@messages-loaded.window']() { 3794 this.addMessages(event.detail.messages, this.hideAfter) 3795 }, 3796 ['@private-content-loaded.window'](event) { 3797 const data = event.detail.data; 3798 if ( 3799 data.messages && 3800 data.messages.messages && 3801 data.messages.messages.length 3802 ) { 3803 this.addMessages(data.messages.messages, this.hideAfter); 3804 } 3805 }, 3806 ['@clear-messages.window']() { 3807 this.messages = []; 3808 } 3809 } 3810 } 3811 } 3812</script>
3812 3813<section id="messages" 3814 x-data="initMessages()" 3815 x-bind="eventListeners" 3816 class="absolute" 3817> 3818 <template x-if="!isEmpty()"> 3819 <div class="w-full"> 3820 <div role="alert" class="messages mx-auto py-3 pl-0 pr-[.938rem] lg:px-layoutGutter lg:px-0"> 3821 <template x-for="(message, index) in messages" :key="index"> 3822 <div> 3823 <template x-if="message"> 3824 <div class="message w-fit lg:min-w-[25rem] rounded-md relative" :class="message.type" 3825 :ui-id="'message-' + message.type" 3826 style="left: 0; max-width: 400px" 3827 x-init="animateMessage($el)" 3828 > 3829 <span x-html="message.icon" class="mr-3"></span> 3830 <span x-html="message.text" class="pr-2"></span> 3831 <a href="#" class="close cursor-pointer ml-auto my-auto" title="close" 3832 @click.prevent="removeMessage(index)"> 3833 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="text-primary" width="12" height="12" role="img"> 3834 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"/> 3835<title>x</title></svg> 3836 </a> 3837 </div> 3838 </template> 3839 </div> 3840 </template> 3841 </div> 3842 </div> 3843 </template> 3844</section> 3845</div><div class="columns"><div class="column main">
3845<script> 3846 document.addEventListener("alpine:init", () => { 3847 Alpine.store('ajaxPrices', { 3848 nodesToUpdate: [], 3849 prices: [], 3850 options: { 3851 additional_data: {} 3852 }, 3853 3854 hasPrice(productId){ 3855 return this.getPriceFloat(productId) != null; 3856 }, 3857 3858 getPriceHtml(productId) { 3859 if (!(productId in this.prices)) { 3860 return null; 3861 } 3862 return this.prices[productId]['html']; 3863 }, 3864 3865 getPriceFloat(productId) { 3866 if (!(productId in this.prices)) { 3867 return null; 3868 } 3869 return this.prices[productId]['float']; 3870 }, 3871 3872 addNode(productId) { 3873 if (!productId) { 3874 return 3875 } 3876 3877 this.nodesToUpdate.push({ 3878 "productId": productId, 3879 }); 3880 3881 Alpine.debounce(this.updateNodes.bind(this), 150)(); 3882 }, 3883 3884 updateNodes() { 3885 var nodes = this.nodesToUpdate; 3886 this.nodesToUpdate = []; 3887 3888 this.processNodes(nodes); 3889 }, 3890 3891 processNodes(nodes) { 3892 var self = this, 3893 idsToLoad = [], 3894 containerToReload = []; 3895 3896 nodes.forEach(function (node) { 3897 var productId = node.productId; 3898 3899 if (productId in self.prices) { 3900 //self.apply(node); 3901 return; //continue 3902 } 3903 3904 idsToLoad.push(productId); 3905 3906 containerToReload.push(node); 3907 }); 3908 3909 if (idsToLoad.length) { 3910 self.get(idsToLoad, function () { 3911 self.processNodes(containerToReload); 3912 }); 3913 } 3914 }, 3915 3916 store: function (prices) { 3917 this.prices = Object.assign(this.prices, prices); 3918 }, 3919 3920 get(ids, callback) { 3921 3922 var self = this, 3923 params = '/ids/' + ids.join(); 3924 3925 let additionalParams = this.options.additional_data; 3926 params += "?" + new URLSearchParams(additionalParams).toString(); 3927 3928 fetch(BASE_URL + 'ajaxprices/price/render' + params) 3929 .then((response) => response.json()) 3930 .then((data) => { 3931 if (data.error) { 3932 console.error("ajax_price_error: " + data.errorMessage) 3933 return; 3934 } 3935 3936 var prices = data.data; 3937 self.store(prices); 3938 callback(); 3939 }); 3940 } 3941 }); 3942 }); 3943</script>
3943 3944
3945<script> 3946 document.addEventListener("alpine:init", () => { 3947 Alpine.store('badges', { 3948 nodesToUpdate: [], 3949 badges: [], 3950 productBadges: [], 3951 options: { 3952 additional_data: {} 3953 }, 3954 3955 getBadgesHtml(productId, position) { 3956 if (!(productId in this.productBadges) || !(position in this.productBadges[productId])) { 3957 return []; 3958 } 3959 let index = this.productBadges[productId][position], 3960 self = this, 3961 badges = []; 3962 3963 index.forEach(function (element) { 3964 badges.push(self.badges[element]); 3965 }); 3966 return badges; 3967 }, 3968 3969 addNode(productId, position) { 3970 this.nodesToUpdate.push({ 3971 "productId": productId, 3972 "position": position 3973 }); 3974 3975 Alpine.debounce(this.updateNodes.bind(this), 150)(); 3976 }, 3977 3978 updateNodes() { 3979 var nodes = this.nodesToUpdate; 3980 this.nodesToUpdate = []; 3981 3982 this.processNodes(nodes); 3983 }, 3984 3985 processNodes(nodes) { 3986 var self = this, 3987 idsToLoad = [], 3988 containerToReload = []; 3989 3990 nodes.forEach(function (node) { 3991 var productId = node.productId; 3992 3993 if (self.productBadges[productId]) { 3994 //self.apply(node); 3995 return; //continue 3996 } 3997 3998 idsToLoad.push(productId); 3999 containerToReload.push(node); 4000 }); 4001 4002 if (idsToLoad.length) { 4003 self.get(idsToLoad, function () { 4004 self.processNodes(containerToReload); 4005 }); 4006 } 4007 }, 4008 4009 store: function (badges, productBadges) { 4010 this.badges = Object.assign(this.badges, badges); 4011 this.productBadges = Object.assign(this.productBadges, productBadges); 4012 }, 4013 4014 get(ids, callback) { 4015 var self = this, 4016 params = '/ids/' + ids.join(); 4017 4018 let additionalParams = this.options.additional_data; 4019 params += "?" + new URLSearchParams(additionalParams).toString(); 4020 4021 fetch(BASE_URL + 'badge/api/get' + params) 4022 .then((response) => response.json()) 4023 .then((data) => { 4024 if (data.error) { 4025 console.error("badges_error: " + data.errorMessage) 4026 return; 4027 } 4028 4029 var badges = data.data.badges, 4030 productBadges = data.data.productBadges; 4031 4032 self.store(badges, productBadges); 4033 callback(); 4034 }); 4035 } 4036 }); 4037 }); 4038</script>
4038 4039 4040
4041<script> 4042 document.addEventListener("alpine:init", () => { 4043 Alpine.store('omnibusPrices', { 4044 nodesToUpdate: [], 4045 prices: [], 4046 options: { 4047 additional_data: {} 4048 }, 4049 4050 hasPrice(productId){ 4051 return this.getPriceHtml(productId) != null; 4052 }, 4053 4054 getPriceHtml(productId) { 4055 if (!(productId in this.prices)) { 4056 return null; 4057 } 4058 return this.prices[productId]; 4059 }, 4060 4061 addNode(productId, position) { 4062 this.nodesToUpdate.push({ 4063 "productId": productId, 4064 }); 4065 4066 Alpine.debounce(this.updateNodes.bind(this), 150)(); 4067 }, 4068 4069 updateNodes() { 4070 var nodes = this.nodesToUpdate; 4071 this.nodesToUpdate = []; 4072 4073 this.processNodes(nodes); 4074 }, 4075 4076 processNodes(nodes) { 4077 var self = this, 4078 idsToLoad = [], 4079 containerToReload = []; 4080 4081 nodes.forEach(function (node) { 4082 var productId = node.productId; 4083 4084 if (productId in self.prices) { 4085 //self.apply(node); 4086 return; //continue 4087 } 4088 4089 idsToLoad.push(productId); 4090 containerToReload.push(node); 4091 }); 4092 4093 if (idsToLoad.length) { 4094 self.get(idsToLoad, function () { 4095 self.processNodes(containerToReload); 4096 }); 4097 } 4098 }, 4099 4100 store: function (prices) { 4101 this.prices = Object.assign(this.prices, prices); 4102 }, 4103 4104 get(ids, callback) { 4105 var self = this, 4106 params = '/ids/' + ids.join(); 4107 4108 let additionalParams = this.options.additional_data; 4109 params += "?" + new URLSearchParams(additionalParams).toString(); 4110 4111 fetch(BASE_URL + 'omnibus/ajax/render' + params) 4112 .then((response) => response.json()) 4113 .then((data) => { 4114 if (data.error) { 4115 console.error("omnibus_prices_error: " + data.errorMessage) 4116 return; 4117 } 4118 4119 var prices = data.data; 4120 self.store(prices); 4121 callback(); 4122 }); 4123 } 4124 }); 4125 }); 4126</script>
vendor: 1 bytes, line 4126
4126
4127<script nonce="dTJ3ZnEzN2phNjl4aGEwaDZuZ3Z5dGV5YjlzeGNvaXM="> 4128 var feedId = getUrlParam('ff'), 4129 product = getUrlParam('fp'), 4130 currentDate = new Date(), 4131 session = getCookie('feed_session'); 4132 4133 if (!session) { 4134 session = '' + Math.floor(currentDate.getTime() / 1000) + Math.floor(Math.random() * 10000001); 4135 } 4136 4137 if (session && feedId > 0 && product > 0) { 4138 setCookie('feed_session', session, {expires: 365, path: '/'}); 4139 setCookie('feed_id', feedId, 365); 4140 4141 var xhr = new XMLHttpRequest(), 4142 baseUrl = 'https://www.farma.it/', 4143 url = BASE_URL + '?rnd=' + Math.floor(Math.random() * 10000001) + "&feed=" + feedId + "&session=" + session + "&product=" + product; 4144 4145 xhr.open('GET', url, true); 4146 xhr.setRequestHeader('Content-Type', 'application/json'); 4147 xhr.send(); 4148 } 4149 4150 function getUrlParam(name) { 4151 let results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); 4152 4153 if (results === null) { 4154 return ''; 4155 } else { 4156 return results[1] || 0; 4157 } 4158 } 4159 4160 function getCookie(cookieName) { 4161 var name = cookieName + "=", 4162 decodedCookie = decodeURIComponent(document.cookie), 4163 cookieArray = decodedCookie.split(';'); 4164 4165 for (var i = 0; i < cookieArray.length; i++) { 4166 var cookie = cookieArray[i].trim(); 4167 if (cookie.indexOf(name) === 0) { 4168 return cookie.substring(name.length, cookie.length); 4169 } 4170 } 4171 4172 return null; 4173 } 4174 4175 function setCookie(cookieName, cookieValue, expirationDays) { 4176 var d = new Date(); 4177 d.setTime(d.getTime() + (expirationDays * 24 * 60 * 60 * 1000)); 4178 var expires = "expires=" + d.toUTCString(); 4179 document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/"; 4180 } 4181</script>
4181 4182 4183<div 4184 class="ambanners ambanner-11" 4185 data-position="11" 4186 data-bannerid="" 4187 data-role="amasty-banner-container" 4188></div> 4189<style>#html-body [data-pb-style=HO200D3]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:contain;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=TFQ57QM]{border-style:none}#html-body [data-pb-style=HSKOPXQ],#html-body [data-pb-style=PPFRQH7],#html-body [data-pb-style=QIP2GVP],#html-body [data-pb-style=TFQ57QM],#html-body [data-pb-style=UP4EUFB],#html-body [data-pb-style=V508BJR],#html-body [data-pb-style=WCE0M6Y],#html-body [data-pb-style=Y4V577X]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=CBE1L3F],#html-body [data-pb-style=ENREI1A],#html-body [data-pb-style=FN0ULC1],#html-body [data-pb-style=HFVFLV9],#html-body [data-pb-style=J7KRBMF],#html-body [data-pb-style=M7BB7NG],#html-body [data-pb-style=P2EO5UP],#html-body [data-pb-style=RN3QQNV],#html-body [data-pb-style=SMW2DAI],#html-body [data-pb-style=Y65EOXR]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=B8BK8B8],#html-body [data-pb-style=BAOHJTJ],#html-body [data-pb-style=FOG7URQ],#html-body [data-pb-style=JCEW7KD],#html-body [data-pb-style=JGKEPCM],#html-body [data-pb-style=KPEVMDL],#html-body [data-pb-style=NOD5QKL],#html-body [data-pb-style=PBH41Y8],#html-body [data-pb-style=RR9TUAK],#html-body [data-pb-style=T3PECDG],#html-body [data-pb-style=U83AWFG]{display:flex;width:100%}#html-body [data-pb-style=K0GV39G],#html-body [data-pb-style=UCCO9LR],#html-body [data-pb-style=UYHAXG0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=DRF6XGU],#html-body [data-pb-style=OC10Y9I],#html-body [data-pb-style=OQRITY4],#html-body [data-pb-style=QCXIJI9],#html-body [data-pb-style=QWJRHGW],#html-body [data-pb-style=SCST5J9],#html-body [data-pb-style=TI92LDG]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:25%;align-self:stretch}#html-body [data-pb-style=OQRITY4],#html-body [data-pb-style=QWJRHGW],#html-body [data-pb-style=TI92LDG]{width:100%}#html-body [data-pb-style=OQRITY4]{width:33.3333%}#html-body [data-pb-style=DMNHB7H],#html-body [data-pb-style=EDOCKKK],#html-body [data-pb-style=GXPQ2RT],#html-body [data-pb-style=L2UG3SO],#html-body [data-pb-style=XABGGIV]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:66.6667%;align-self:flex-end}#html-body [data-pb-style=EDOCKKK],#html-body [data-pb-style=GXPQ2RT],#html-body [data-pb-style=L2UG3SO],#html-body [data-pb-style=XABGGIV]{width:100%;align-self:stretch}#html-body [data-pb-style=COXNTO0]{min-height:18vw}#html-body [data-pb-style=R71DLF5]{border-style:none}#html-body [data-pb-style=EIA7E3M],#html-body [data-pb-style=YF3KU4U]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=SHUOUCR]{display:none;border-style:none}#html-body [data-pb-style=BDYK45E],#html-body [data-pb-style=M28UMRH]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=AV66S8N]{border-style:none}#html-body [data-pb-style=E0RH47S],#html-body [data-pb-style=XSMBTRT]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=A6J1PY4]{display:none;border-style:none}#html-body [data-pb-style=K1YPEY4],#html-body [data-pb-style=VKQB3K6]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=TH2W4WI]{border-style:none}#html-body [data-pb-style=W0J9YOL],#html-body [data-pb-style=YVQKUE1]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=DY3M2E6]{display:none;border-style:none}#html-body [data-pb-style=KO9CGE2],#html-body [data-pb-style=MT66V4D]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=MBI05LV]{border-style:none}#html-body [data-pb-style=BHFW59E],#html-body [data-pb-style=S0OY76P]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=RDFYII7]{display:none;border-style:none}#html-body [data-pb-style=N8N7R41],#html-body [data-pb-style=NYM354P]{border-radius:5px;max-width:100%;height:auto}#html-body [data-pb-style=CNEWVCV]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=BTQIWLG]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=NIP2GKP]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=QK2M0FD]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=BAT5WLA]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=GN12JJ8]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=LJBOX0P]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=WK91MJO]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=FI4WTG7]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=WLLP9AM]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=AHUC0HM]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=GJRHIUT]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=OKFPPMO]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=JWB9TJI]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=TFNVA0I]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=XM425Y8]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=PWTJNFE]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=SRYRFEF]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=XDVSM8U]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=L97GB79]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=QP5U7UG]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=STIW9R9]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=D2B636X]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=JC307P1]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=KSNJPUF]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=PDA5AU3]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=QO0EW0G]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=T46YQ3Y]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=QSOVCJA]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=E9PBUGG]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=VMQB9FV]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=ER2SJ72]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=SE8OOLN]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=PWYK0QL]{min-height:18vw;background-color:transparent}#html-body [data-pb-style=YX5UW4P]{background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:18vw}#html-body [data-pb-style=CFKF33P]{min-height:18vw;background-color:transparent}@media only screen and (max-width: 767px) { #html-body [data-pb-style=COXNTO0]{min-height:42vw}#html-body [data-pb-style=A6J1PY4],#html-body [data-pb-style=AV66S8N],#html-body [data-pb-style=DY3M2E6],#html-body [data-pb-style=MBI05LV],#html-body [data-pb-style=R71DLF5],#html-body [data-pb-style=RDFYII7],#html-body [data-pb-style=SHUOUCR],#html-body [data-pb-style=TH2W4WI]{border-style:none}#html-body [data-pb-style=CNEWVCV]{min-height:42vw}#html-body [data-pb-style=BTQIWLG]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=NIP2GKP]{min-height:42vw}#html-body [data-pb-style=QK2M0FD]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=BAT5WLA]{min-height:42vw}#html-body [data-pb-style=GN12JJ8]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=LJBOX0P]{min-height:42vw}#html-body [data-pb-style=WK91MJO]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=FI4WTG7]{min-height:42vw}#html-body [data-pb-style=WLLP9AM]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=AHUC0HM]{min-height:42vw}#html-body [data-pb-style=GJRHIUT]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=OKFPPMO]{min-height:42vw}#html-body [data-pb-style=JWB9TJI]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=TFNVA0I]{min-height:42vw}#html-body [data-pb-style=XM425Y8]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=PWTJNFE]{min-height:42vw}#html-body [data-pb-style=SRYRFEF]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=XDVSM8U]{min-height:42vw}#html-body [data-pb-style=L97GB79]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=QP5U7UG]{min-height:42vw}#html-body [data-pb-style=STIW9R9]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=D2B636X]{min-height:42vw}#html-body [data-pb-style=JC307P1]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=KSNJPUF]{min-height:42vw}#html-body [data-pb-style=PDA5AU3]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=QO0EW0G]{min-height:42vw}#html-body [data-pb-style=T46YQ3Y]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=QSOVCJA]{min-height:42vw}#html-body [data-pb-style=E9PBUGG]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=VMQB9FV]{min-height:42vw}#html-body [data-pb-style=ER2SJ72]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=SE8OOLN]{min-height:42vw}#html-body [data-pb-style=PWYK0QL]{min-height:42vw;background-color:transparent}#html-body [data-pb-style=YX5UW4P]{min-height:42vw}#html-body [data-pb-style=CFKF33P]{min-height:42vw;background-color:transparent} }</style><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-intersect="false" data-element="main" data-pb-style="HO200D3"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="J7KRBMF"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="PBH41Y8"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="UYHAXG0"><div class="pagebuilder-slider group" data-content-type="slider" data-appearance="default" data-autoplay="true" data-autoplay-speed="4000" data-fade="false" data-infinite-loop="true" data-show-arrows="true" data-show-dots="true" data-intersect="false" data-element="main" data-pb-style="COXNTO0">
4189<div data-content-type="slide" data-slide-name="farmapuntoit" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/farmapuntoit" target="" data-link-type="default" title="farmapuntoit" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb37c" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/FarmaIT_09_25_SDesk2-5b02c3d8.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/FarmaIT_09_25_SMobile-08aa4f4f.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="CNEWVCV"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="farmapuntoit" title="farmapuntoit" data-element="overlay" data-pb-style="BTQIWLG"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb37c {background-image: url(https://www.farma.it/media/wysiwyg/FarmaIT_09_25_SDesk2-5b02c3d8.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb37c {background-image: url(https://www.farma.it/media/wysiwyg/FarmaIT_09_25_SMobile-08aa4f4f.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb37c {background-image: url(https://www.farma.it/media/wysiwyg/FarmaIT_09_25_SMobile-08aa4f4f.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Smaltimento solari" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-farmait" target="" data-link-type="default" title="farmait 01102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb3bb" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Solari_SD_10_26-501226b0.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Solari_SM_10_26-cbfaa99a.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="NIP2GKP"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="farmait 01102026 Sliderhomepage" title="farmait 01102026 Sliderhomepage" data-element="overlay" data-pb-style="QK2M0FD"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb3bb {background-image: url(https://www.farma.it/media/wysiwyg/Solari_SD_10_26-501226b0.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb3bb {background-image: url(https://www.farma.it/media/wysiwyg/Solari_SM_10_26-cbfaa99a.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb3bb {background-image: url(https://www.farma.it/media/wysiwyg/Solari_SM_10_26-cbfaa99a.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Sustenium - ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-menarini2" target="" data-link-type="default" title="Menarini 09102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb3ce" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Sustenium_SD_10_26.jpg-c22dd416.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Sustenium_SM_10_26.jpg-928a2239.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="BAT5WLA"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Menarini 09102026 Sliderhomepage" title="Menarini 09102026 Sliderhomepage" data-element="overlay" data-pb-style="GN12JJ8"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb3ce {background-image: url(https://www.farma.it/media/wysiwyg/Sustenium_SD_10_26.jpg-c22dd416.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb3ce {background-image: url(https://www.farma.it/media/wysiwyg/Sustenium_SM_10_26.jpg-928a2239.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb3ce {background-image: url(https://www.farma.it/media/wysiwyg/Sustenium_SM_10_26.jpg-928a2239.webp);}}</style></a></div>
4189<div data-content-type="slide" data-slide-name="Attività Ottobre - Elanco" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/prodotti-elanco" target="" data-link-type="default" title="Elanco 08102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb3dd" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Elanco_SD_10_26-8ead1f43.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Elanco_SM_10_26-15459069.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="LJBOX0P"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Elanco 08102026 Sliderhomepage" title="Elanco 08102026 Sliderhomepage" data-element="overlay" data-pb-style="WK91MJO"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb3dd {background-image: url(https://www.farma.it/media/wysiwyg/Elanco_SD_10_26-8ead1f43.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb3dd {background-image: url(https://www.farma.it/media/wysiwyg/Elanco_SM_10_26-15459069.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb3dd {background-image: url(https://www.farma.it/media/wysiwyg/Elanco_SM_10_26-15459069.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Linea Body - ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-goovi2" target="" data-link-type="default" title="Goovi 08102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb3ea" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Goovi_SD_10_26-de948b4a.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Goovi_SM_10_26-457c0460.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="FI4WTG7"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Goovi 08102026 Sliderhomepage" title="Goovi 08102026 Sliderhomepage" data-element="overlay" data-pb-style="WLLP9AM"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb3ea {background-image: url(https://www.farma.it/media/wysiwyg/Goovi_SD_10_26-de948b4a.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb3ea {background-image: url(https://www.farma.it/media/wysiwyg/Goovi_SM_10_26-457c0460.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb3ea {background-image: url(https://www.farma.it/media/wysiwyg/Goovi_SM_10_26-457c0460.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Prinicipium gastro - ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-biosline" target="" data-link-type="default" title="Biosline 08102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb3f8" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Biosline_SD_10_26-596ada9d.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Biosline_SM_10_26-c28255b7.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="AHUC0HM"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Biosline 08102026 Sliderhomepage" title="Biosline 08102026 Sliderhomepage" data-element="overlay" data-pb-style="GJRHIUT"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb3f8 {background-image: url(https://www.farma.it/media/wysiwyg/Biosline_SD_10_26-596ada9d.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb3f8 {background-image: url(https://www.farma.it/media/wysiwyg/Biosline_SM_10_26-c28255b7.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb3f8 {background-image: url(https://www.farma.it/media/wysiwyg/Biosline_SM_10_26-c28255b7.webp);}}</style></a></div>
4189<div data-content-type="slide" data-slide-name="Curaflux 30 bs - ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-marcoviti" target="" data-link-type="default" title="MarcoViti 08102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb405" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Curaflux_SD_10_26-8b085df2.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Curaflux_SM_10_26-10e0d2d8.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="OKFPPMO"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="MarcoViti 08102026 Sliderhomepage" title="MarcoViti 08102026 Sliderhomepage" data-element="overlay" data-pb-style="JWB9TJI"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb405 {background-image: url(https://www.farma.it/media/wysiwyg/Curaflux_SD_10_26-8b085df2.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb405 {background-image: url(https://www.farma.it/media/wysiwyg/Curaflux_SM_10_26-10e0d2d8.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb405 {background-image: url(https://www.farma.it/media/wysiwyg/Curaflux_SM_10_26-10e0d2d8.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Vichy Mineral - ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-vichy2" target="" data-link-type="default" title="Vichy 07102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb412" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/M89_SD_10_26-95f836a6.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/M89_SM_10_26-0e10b98c.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="TFNVA0I"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Vichy 07102026 Sliderhomepage" title="Vichy 07102026 Sliderhomepage" data-element="overlay" data-pb-style="XM425Y8"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb412 {background-image: url(https://www.farma.it/media/wysiwyg/M89_SD_10_26-95f836a6.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb412 {background-image: url(https://www.farma.it/media/wysiwyg/M89_SM_10_26-0e10b98c.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb412 {background-image: url(https://www.farma.it/media/wysiwyg/M89_SM_10_26-0e10b98c.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Benessere mentale - ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-erbavita2" target="" data-link-type="default" title="Erbavita 07102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb41f" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/EV_Mente_SD_10_26-0007f65d.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/EV_Mente_SM_10_26-9bef7977.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="PWTJNFE"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Erbavita 07102026 Sliderhomepage" title="Erbavita 07102026 Sliderhomepage" data-element="overlay" data-pb-style="SRYRFEF"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb41f {background-image: url(https://www.farma.it/media/wysiwyg/EV_Mente_SD_10_26-0007f65d.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb41f {background-image: url(https://www.farma.it/media/wysiwyg/EV_Mente_SM_10_26-9bef7977.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb41f {background-image: url(https://www.farma.it/media/wysiwyg/EV_Mente_SM_10_26-9bef7977.webp);}}</style></a></div>
4189<div data-content-type="slide" data-slide-name="PROMO RIGENFORTE INTEGRATORE" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-esi" target="" data-link-type="default" title="Esi 05102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb42d" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/ESI_SD_10_26-66e2e300.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/ESI_SM_10_26-fd0a6c2a.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="XDVSM8U"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Esi 05102026 Sliderhomepage" title="Esi 05102026 Sliderhomepage" data-element="overlay" data-pb-style="L97GB79"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb42d {background-image: url(https://www.farma.it/media/wysiwyg/ESI_SD_10_26-66e2e300.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb42d {background-image: url(https://www.farma.it/media/wysiwyg/ESI_SM_10_26-fd0a6c2a.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb42d {background-image: url(https://www.farma.it/media/wysiwyg/ESI_SM_10_26-fd0a6c2a.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Maalox RefluRAPID ADVANCE" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/951507692-opella-healthcare-italy-srl-maalox-reflurapid-adv-20bust.html" target="" data-link-type="default" title="Sanofi 05102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb43a" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Maalox_SD_10_26-86ea17ed.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Maalox_SM_10_26-1d0298c7.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="QP5U7UG"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Sanofi 05102026 Sliderhomepage" title="Sanofi 05102026 Sliderhomepage" data-element="overlay" data-pb-style="STIW9R9"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb43a {background-image: url(https://www.farma.it/media/wysiwyg/Maalox_SD_10_26-86ea17ed.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb43a {background-image: url(https://www.farma.it/media/wysiwyg/Maalox_SM_10_26-1d0298c7.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb43a {background-image: url(https://www.farma.it/media/wysiwyg/Maalox_SM_10_26-1d0298c7.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Neutrogena - Promo nazionale" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-kenvue3" target="" data-link-type="default" title="Kenvue 05102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb447" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Neutrogena_SD_10_26-66ba16ad.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Neutrogena_SM_10_26-fd529987.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="D2B636X"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Kenvue 05102026 Sliderhomepage" title="Kenvue 05102026 Sliderhomepage" data-element="overlay" data-pb-style="JC307P1"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb447 {background-image: url(https://www.farma.it/media/wysiwyg/Neutrogena_SD_10_26-66ba16ad.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb447 {background-image: url(https://www.farma.it/media/wysiwyg/Neutrogena_SM_10_26-fd529987.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb447 {background-image: url(https://www.farma.it/media/wysiwyg/Neutrogena_SM_10_26-fd529987.webp);}}</style></a></div>
4189<div data-content-type="slide" data-slide-name="Imopro v-C 15 Active - Ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/990014920-imo-spa-imopro-vc15-active-30cps-580mg.html" target="" data-link-type="default" title="IMO 05102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb454" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/VC15_Active_SD_10_26-be821424.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/VC15_Active_SM_10_26-256a9b0e.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="KSNJPUF"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="IMO 05102026 Sliderhomepage" title="IMO 05102026 Sliderhomepage" data-element="overlay" data-pb-style="PDA5AU3"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb454 {background-image: url(https://www.farma.it/media/wysiwyg/VC15_Active_SD_10_26-be821424.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb454 {background-image: url(https://www.farma.it/media/wysiwyg/VC15_Active_SM_10_26-256a9b0e.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb454 {background-image: url(https://www.farma.it/media/wysiwyg/VC15_Active_SM_10_26-256a9b0e.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Prodotti per l'Inverno" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-oti3" target="" data-link-type="default" title="Oti 05102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb461" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/OTI_SD_09_26_1-be3d16ed.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/OTI_SM_09_26-4ca6ff6b.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="QO0EW0G"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Oti 05102026 Sliderhomepage" title="Oti 05102026 Sliderhomepage" data-element="overlay" data-pb-style="T46YQ3Y"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb461 {background-image: url(https://www.farma.it/media/wysiwyg/OTI_SD_09_26_1-be3d16ed.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb461 {background-image: url(https://www.farma.it/media/wysiwyg/OTI_SM_09_26-4ca6ff6b.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb461 {background-image: url(https://www.farma.it/media/wysiwyg/OTI_SM_09_26-4ca6ff6b.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="ACNESTIL" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/990891436-ist-ganassini-spa-rilastil-acnestil-az-15-siero.html" target="" data-link-type="default" title="Rilastil 02102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb46e" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Acnestil_SD_09_26-a5438987.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Acnestil_SM_09_26-3eab06ad.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="QSOVCJA"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Rilastil 02102026 Sliderhomepage" title="Rilastil 02102026 Sliderhomepage" data-element="overlay" data-pb-style="E9PBUGG"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb46e {background-image: url(https://www.farma.it/media/wysiwyg/Acnestil_SD_09_26-a5438987.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb46e {background-image: url(https://www.farma.it/media/wysiwyg/Acnestil_SM_09_26-3eab06ad.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb46e {background-image: url(https://www.farma.it/media/wysiwyg/Acnestil_SM_09_26-3eab06ad.webp);}}</style></a></div>
4189<div data-content-type="slide" data-slide-name="Oscillo difese ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-boiron2" target="" data-link-type="default" title="Boiron 02102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb47b" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/OscilloD_SD_10_26-a8f0a770.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/OscilloD_SM_10_26-3318285a.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="VMQB9FV"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Boiron 02102026 Sliderhomepage" title="Boiron 02102026 Sliderhomepage" data-element="overlay" data-pb-style="ER2SJ72"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb47b {background-image: url(https://www.farma.it/media/wysiwyg/OscilloD_SD_10_26-a8f0a770.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb47b {background-image: url(https://www.farma.it/media/wysiwyg/OscilloD_SM_10_26-3318285a.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb47b {background-image: url(https://www.farma.it/media/wysiwyg/OscilloD_SM_10_26-3318285a.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="Combo gatto ottobre" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-frontpro" target="" data-link-type="default" title="Boehringer 02102026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb488" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Combo_Gatti_SD_10_26-003675bc.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Combo_Gatti_SM_10_26-9bdefa96.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="SE8OOLN"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Boehringer 02102026 Sliderhomepage" title="Boehringer 02102026 Sliderhomepage" data-element="overlay" data-pb-style="PWYK0QL"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb488 {background-image: url(https://www.farma.it/media/wysiwyg/Combo_Gatti_SD_10_26-003675bc.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb488 {background-image: url(https://www.farma.it/media/wysiwyg/Combo_Gatti_SM_10_26-9bdefa96.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb488 {background-image: url(https://www.farma.it/media/wysiwyg/Combo_Gatti_SM_10_26-9bdefa96.webp);}}</style></a></div><div data-content-type="slide" data-slide-name="ROUTINE EFFACLAR (Duo+M, Patches, Cleanser)" data-appearance="poster" data-show-button="never" data-show-overlay="never" data-intersect="false" data-element="main"><a href="/promo-larocheposay3" target="" data-link-type="default" title="Loreal 28092026 Sliderhomepage" data-element="link"><div class="pagebuilder-slide-wrapper background-image-6ac9293bbb496" data-background-images='{\"desktop_image\":\"https://www.farma.it/media/wysiwyg/Effaclar_SD_09_26-c7cedfea.webp\",\"mobile_image\":\"https://www.farma.it/media/wysiwyg/Effaclar_SM_09_26-5c2650c0.webp\"}' data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="wrapper" data-pb-style="YX5UW4P"><div class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="" aria-label="Loreal 28092026 Sliderhomepage" title="Loreal 28092026 Sliderhomepage" data-element="overlay" data-pb-style="CFKF33P"><div class="pagebuilder-poster-content"><div data-element="content"></div></div></div></div><style type="text/css">.background-image-6ac9293bbb496 {background-image: url(https://www.farma.it/media/wysiwyg/Effaclar_SD_09_26-c7cedfea.webp);}@media only screen and (max-width: 767px) and (min-width: 640px) {.background-image-6ac9293bbb496 {background-image: url(https://www.farma.it/media/wysiwyg/Effaclar_SM_09_26-5c2650c0.webp);}}@media only screen and (max-width: 640px) {.background-image-6ac9293bbb496 {background-image: url(https://www.farma.it/media/wysiwyg/Effaclar_SM_09_26-5c2650c0.webp);}}</style></a></div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-intersect="false" data-element="main" data-pb-style="TFQ57QM"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-intersect="false" data-element="main" data-pb-style="HFVFLV9"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="NOD5QKL"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="K0GV39G"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="carousel-header"> 4190 <div class="mb-2 flex justify-between items-baseline md:items-end"> 4191 <h2 class="h2 font-baloo-bhaina font-bold">
4192 <span>I più venduti</span> 4193 </h2> 4194 </div> 4195</div></div><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="true" data-show-dots="true" data-carousel-mode="default" data-intersect="false" data-center-padding="90px" data-element="main"><div class="product-items widget-product-carousel carousel-ngutter pb-4" x-data="{ active: false }" x-intersect.once="active = true"> 4196 <div class="swiper swiper-container group"> 4197 <div class="swiper-wrapper"> 4198 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4199 4200<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/276454/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4201 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="276454"> 4202 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4203 <input type="hidden" name="product" value="276454"> 4204 <a href="https://www.farma.it/951449331-equilibra-sha-rosmarino-265m.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Equilibra shampoo rosmarino da 265ml"></a> 4205 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(276454, 'card_top_left')"> 4206 <template x-for="badge in $store.badges.getBadgesHtml(276454, 'card_top_left')"> 4207 <span x-html="badge"></span> 4208 </template> 4209 </span> 4210 <a href="https://www.farma.it/951449331-equilibra-sha-rosmarino-265m.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4211 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/951449331-60429b47.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/951449331.jpeg" width="142" height="142" alt="Equilibra shampoo rosmarino da 265ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-276454.window="updateImage" loading="lazy"></picture> 4212 </a> 4213 <div class="product-info flex flex-col grow justify-start"> 4214 <div class="items-center justify-center "> 4215 <a class="product-item-link" href="https://www.farma.it/951449331-equilibra-sha-rosmarino-265m.html" :id="`slide-desc-276454-${$id('slider-id')}`"> 4216 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4217 Equilibra shampoo rosmarino da 265ml </h2> 4218 </a> 4219 </div> 4220 4221 <div class="mt-1 mb-1 "> 4222 <div class="flex gap-2"> 4223 <div x-data="initRating2764546ac9245800dbc()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 4224 ? 'Equilibra\u0020shampoo\u0020rosmarino\u0020da\u0020265ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 4225 : 'Equilibra\u0020shampoo\u0020rosmarino\u0020da\u0020265ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 4226 " role="group"> 4227 <span class="hidden">5</span> 4228 <span class="hidden">3</span> 4229 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4230 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4231 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4232 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4233 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4234 </svg> 4235 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4236 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4237 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4238 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4239 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4240 </svg> 4241 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4242 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4243 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4244 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4245 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4246 </svg> 4247 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4248 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4249 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4250 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4251 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4252 </svg> 4253 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4254 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4255 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4256 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4257 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4258 </svg> 4259 </div> 4260 <div class="text-xs"> 4261 (3) 4262 </div> 4263 </div> 4264 4265
4265<script> 4266 'use strict'; 4267 4268 function initRating2764546ac9245800dbc() { 4269 return { 4270 get reviewsSection() { 4271 return document.getElementById('customer-review-list') 4272 || document.getElementById('customer-reviews') 4273 || document.getElementById('review-form'); 4274 }, 4275 scrollToRatings() { 4276 let scrollTimeout = null 4277 4278 if (!this.reviewsSection) { 4279 return 4280 } 4281 4282 addEventListener('scroll', () => { 4283 clearTimeout(scrollTimeout); 4284 4285 scrollTimeout = setTimeout(() => { 4286 if (this.reviewsSection) { 4287 this.reviewsSection.focus() 4288 } 4289 }, 50); 4290 }, { once: true }); 4291 4292 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 4293 } 4294 } 4295 } 4296 </script>
4296 4297 </div> 4298 4299 4300 4301 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 4302 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4303 <template x-if="active = true"> 4304 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(276454)"> 4305 <template x-if="!$store.ajaxPrices.hasPrice(276454)"> 4306 <div class="skeleton w-16 lg:w-full h-6"> 4307 Caricamento... </div> 4308 </template> 4309 <template x-if="$store.ajaxPrices.hasPrice(276454)"> 4310 <span x-html="$store.ajaxPrices.getPriceHtml(276454)"></span> 4311 </template> 4312 </div> 4313 </template> 4314 </span> 4315 4316 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4317 <?xml version="1.0" encoding="UTF-8"?> 4318<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4319 </button> 4320 </div> 4321 </div> 4322 </form> 4323 4324 </div> 4325 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4326 4327<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/259945/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4328 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="259945"> 4329 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4330 <input type="hidden" name="product" value="259945"> 4331 <a href="https://www.farma.it/988927315-ist-ganassini-spa-bioclin-pro-shampoo-ultradelic.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Bioclin Pro shampoo ultradelicato 400 ml"></a> 4332 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(259945, 'card_top_left')"> 4333 <template x-for="badge in $store.badges.getBadgesHtml(259945, 'card_top_left')"> 4334 <span x-html="badge"></span> 4335 </template> 4336 </span> 4337 <a href="https://www.farma.it/988927315-ist-ganassini-spa-bioclin-pro-shampoo-ultradelic.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4338 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/8/988927315-48fad155.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/8/988927315.jpg" width="142" height="142" alt="Bioclin Pro shampoo ultradelicato 400 ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-259945.window="updateImage" loading="lazy"></picture> 4339 </a> 4340 <div class="product-info flex flex-col grow justify-start"> 4341 <div class="items-center justify-center "> 4342 <a class="product-item-link" href="https://www.farma.it/988927315-ist-ganassini-spa-bioclin-pro-shampoo-ultradelic.html" :id="`slide-desc-259945-${$id('slider-id')}`"> 4343 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4344 Bioclin Pro shampoo ultradelicato 400 ml </h2> 4345 </a> 4346 </div> 4347 4348 <div class="mt-1 mb-1 "> 4349 </div> 4350 4351 4352 4353 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none">
4354 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4355 <template x-if="active = true"> 4356 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(259945)"> 4357 <template x-if="!$store.ajaxPrices.hasPrice(259945)"> 4358 <div class="skeleton w-16 lg:w-full h-6"> 4359 Caricamento... </div> 4360 </template> 4361 <template x-if="$store.ajaxPrices.hasPrice(259945)"> 4362 <span x-html="$store.ajaxPrices.getPriceHtml(259945)"></span> 4363 </template> 4364 </div> 4365 </template> 4366 </span> 4367 4368 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4369 <?xml version="1.0" encoding="UTF-8"?> 4370<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4371 </button> 4372 </div> 4373 </div> 4374 </form> 4375 4376 </div> 4377 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4378 4379<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/182335/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4380 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="182335"> 4381 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4382 <input type="hidden" name="product" value="182335"> 4383 <a href="https://www.farma.it/antistress-45cpr.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Antistress Erba Vita 45 Compresse"></a> 4384 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(182335, 'card_top_left')"> 4385 <template x-for="badge in $store.badges.getBadgesHtml(182335, 'card_top_left')"> 4386 <span x-html="badge"></span> 4387 </template> 4388 </span> 4389 <a href="https://www.farma.it/antistress-45cpr.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4390 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/c/a/catalog_foto070223_984925089-e7996e62.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/c/a/catalog_foto070223_984925089.png" width="142" height="142" alt="Antistress Erba Vita 45 Compresse" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-182335.window="updateImage" loading="lazy"></picture> 4391 </a> 4392 <div class="product-info flex flex-col grow justify-start"> 4393 <div class="items-center justify-center "> 4394 <a class="product-item-link" href="https://www.farma.it/antistress-45cpr.html" :id="`slide-desc-182335-${$id('slider-id')}`"> 4395 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4396 Antistress Erba Vita 45 Compresse </h2> 4397 </a> 4398 </div> 4399 4400 <div class="mt-1 mb-1 "> 4401 <div class="flex gap-2"> 4402 <div x-data="initRating1823356ac926355f06c()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 4403 ? 'Antistress\u0020Erba\u0020Vita\u002045\u0020Compresse\u0020rating.\u00204.8\u0020
4403out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 4404 : 'Antistress\u0020Erba\u0020Vita\u002045\u0020Compresse\u0020rating.\u00204.8\u0020out\u0020of\u00205\u0020stars' 4405 " role="group"> 4406 <span class="hidden">4.8</span> 4407 <span class="hidden">5</span> 4408 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4409 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4410 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4411 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4412 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4413 </svg> 4414 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4415 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4416 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4417 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4418 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4419 </svg> 4420 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4421 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4422 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4423 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4424 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4425 </svg> 4426 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4427 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4428 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4429 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4430 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4431 </svg> 4432 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 4433 <defs> 4434 <lineargradient id="partialFill182335"> 4435 <stop offset="0%" stop-color="#f6e05e"></stop> 4436 <stop offset="80%" stop-color="#f6e05e"></stop> 4437 <stop offset="80%" stop-color="#cbd5e0"></stop> 4438 <stop offset="100%" stop-color="#cbd5e0"></stop> 4439 </lineargradient> 4440 </defs> 4441 <g fill="url(#partialFill182335)"> 4442 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 4443 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4444 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 4445 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4446 </g> 4447 </svg> 4448 </div> 4449 <div class="text-xs"> 4450 (5) 4451 </div> 4452 </div> 4453 4454
4454<script> 4455 'use strict'; 4456 4457 function initRating1823356ac926355f06c() { 4458 return { 4459 get reviewsSection() { 4460 return document.getElementById('customer-review-list') 4461 || document.getElementById('customer-reviews') 4462 || document.getElementById('review-form'); 4463 }, 4464 scrollToRatings() { 4465 let scrollTimeout = null 4466 4467 if (!this.reviewsSection) { 4468 return 4469 } 4470 4471 addEventListener('scroll', () => { 4472 clearTimeout(scrollTimeout); 4473 4474 scrollTimeout = setTimeout(() => { 4475 if (this.reviewsSection) { 4476 this.reviewsSection.focus() 4477 } 4478 }, 50); 4479 }, { once: true }); 4480 4481 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 4482 } 4483 } 4484 } 4485 </script>
4485 4486 </div> 4487 4488 4489 4490 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 4491 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4492 <template x-if="active = true"> 4493 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(182335)"> 4494 <template x-if="!$store.ajaxPrices.hasPrice(182335)"> 4495 <div class="skeleton w-16 lg:w-full h-6"> 4496 Caricamento... </div> 4497 </template> 4498 <template x-if="$store.ajaxPrices.hasPrice(182335)"> 4499 <span x-html="$store.ajaxPrices.getPriceHtml(182335)"></span> 4500 </template> 4501 </div> 4502 </template> 4503 </span> 4504 4505 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4506 <?xml version="1.0" encoding="UTF-8"?> 4507<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4508 </button> 4509 </div> 4510 </div> 4511 </form> 4512 4513 </div> 4514 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4515 4516<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/11763/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4517 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="11763"> 4518 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4519 <input type="hidden" name="product" value="11763"> 4520 <a href="https://www.farma.it/viburcol-12supp-heel.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="GUNA Viburcol Heel 12 Supposte Medicina Omeopatica Bambini Dentizione"></a> 4521 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(11763, 'card_top_left')"> 4522 <template x-for="badge in $store.badges.getBadgesHtml(11763, 'card_top_left')"> 4523 <span x-html="badge"></span> 4524 </template> 4525 </span> 4526 <a href="https://www.farma.it/viburcol-12supp-heel.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4527 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/d/a/data_pharmadb_909468047-63557009.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/d/a/data_pharmadb_909468047.jpg" width="142" height="142" alt="GUNA Viburcol Heel 12 Supposte Medicina Omeopatica Bambini Dentizione" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-11763.window="updateImage" loading="lazy"></picture> 4528 </a> 4529 <div class="product-info flex flex-col grow justify-start"> 4530 <div class="items-center justify-center "> 4531 <a class="product-item-link" href="https://www.farma.it/viburcol-12supp-heel.html" :id="`slide-desc-11763-${$id('slider-id')}`"> 4532 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4533 GUNA Viburcol Heel 12 Supposte Medicina Omeopatica Bambini Dentizione </h2> 4534 </a> 4535 </div> 4536 4537 <div class="mt-1 mb-1 "> 4538 <div class="flex gap-2"> 4539 <div x-data="initRating117636ac91f08128bf()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 4540 ? 'GUNA\u0020Viburcol\u0020Heel\u002012\u0020Supposte\u0020Medicina\u0020Omeopatica\u0020Bambini\u0020Dentizione\u0020rating.\u00204.6\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 4541 : 'GUNA\u0020Viburcol\u0020Heel\u002012\u0020Supposte\u0020Medicina\u0020Omeopatica\u0020Bambini\u0020Dentizione\u0020rating.\u00204.6\u0020out\u0020of\u00205\u0020stars' 4542 " role="group">
4543 <span class="hidden">4.6</span> 4544 <span class="hidden">5</span> 4545 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4546 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4547 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4548 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4549 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4550 </svg> 4551 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4552 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4553 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4554 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4555 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4556 </svg> 4557 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4558 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4559 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4560 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4561 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4562 </svg> 4563 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4564 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4565 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4566 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4567 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4568 </svg> 4569 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 4570 <defs> 4571 <lineargradient id="partialFill11763"> 4572 <stop offset="0%" stop-color="#f6e05e"></stop> 4573 <stop offset="60%" stop-color="#f6e05e"></stop> 4574 <stop offset="60%" stop-color="#cbd5e0"></stop> 4575 <stop offset="100%" stop-color="#cbd5e0"></stop> 4576 </lineargradient> 4577 </defs> 4578 <g fill="url(#partialFill11763)"> 4579 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 4580 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4581 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 4582 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4583 </g> 4584 </svg> 4585 </div> 4586 <div class="text-xs"> 4587 (5) 4588 </div> 4589 </div> 4590 4591
4591<script> 4592 'use strict'; 4593 4594 function initRating117636ac91f08128bf() { 4595 return { 4596 get reviewsSection() { 4597 return document.getElementById('customer-review-list') 4598 || document.getElementById('customer-reviews') 4599 || document.getElementById('review-form'); 4600 }, 4601 scrollToRatings() { 4602 let scrollTimeout = null 4603 4604 if (!this.reviewsSection) { 4605 return 4606 } 4607 4608 addEventListener('scroll', () => { 4609 clearTimeout(scrollTimeout); 4610 4611 scrollTimeout = setTimeout(() => { 4612 if (this.reviewsSection) { 4613 this.reviewsSection.focus() 4614 } 4615 }, 50); 4616 }, { once: true }); 4617 4618 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 4619 } 4620 } 4621 } 4622 </script>
4622 4623 </div> 4624 4625 4626 4627 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 4628 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4629 <template x-if="active = true"> 4630 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(11763)"> 4631 <template x-if="!$store.ajaxPrices.hasPrice(11763)"> 4632 <div class="skeleton w-16 lg:w-full h-6"> 4633 Caricamento... </div> 4634 </template> 4635 <template x-if="$store.ajaxPrices.hasPrice(11763)"> 4636 <span x-html="$store.ajaxPrices.getPriceHtml(11763)"></span> 4637 </template> 4638 </div> 4639 </template> 4640 </span> 4641 4642 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4643 <?xml version="1.0" encoding="UTF-8"?> 4644<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4645 </button> 4646 </div> 4647 </div> 4648 </form> 4649 4650 </div> 4651 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4652 4653<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/271176/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4654 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="271176"> 4655 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4656 <input type="hidden" name="product" value="271176"> 4657 <a href="https://www.farma.it/987406725-boiron-srl-nutrimagnesium-300-20bust.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="NutriMagnesium 300+ Integratore per Stanchezza 20 Bustine Gusto Agrumi"></a> 4658 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(271176, 'card_top_left')"> 4659 <template x-for="badge in $store.badges.getBadgesHtml(271176, 'card_top_left')"> 4660 <span x-html="badge"></span> 4661 </template> 4662 </span> 4663 <a href="https://www.farma.it/987406725-boiron-srl-nutrimagnesium-300-20bust.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4664 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/i/m/image_28428-b619537a.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/i/m/image_28428.jpg" width="142" height="142" alt="/i/m/image_28428.jpg" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-271176.window="updateImage" loading="lazy"></picture> 4665 </a> 4666 <div class="product-info flex flex-col grow justify-start"> 4667 <div class="items-center justify-center "> 4668 <a class="product-item-link" href="https://www.farma.it/987406725-boiron-srl-nutrimagnesium-300-20bust.html" :id="`slide-desc-271176-${$id('slider-id')}`"> 4669 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4670 NutriMagnesium 300+ Integratore per Stanchezza 20 Bustine Gusto Agrumi </h2> 4671 </a> 4672 </div> 4673 4674 <div class="mt-1 mb-1 "> 4675 </div> 4676 4677 4678 4679 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none">
4680 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4681 <template x-if="active = true"> 4682 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(271176)"> 4683 <template x-if="!$store.ajaxPrices.hasPrice(271176)"> 4684 <div class="skeleton w-16 lg:w-full h-6"> 4685 Caricamento... </div> 4686 </template> 4687 <template x-if="$store.ajaxPrices.hasPrice(271176)"> 4688 <span x-html="$store.ajaxPrices.getPriceHtml(271176)"></span> 4689 </template> 4690 </div> 4691 </template> 4692 </span> 4693 4694 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4695 <?xml version="1.0" encoding="UTF-8"?> 4696<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4697 </button> 4698 </div> 4699 </div> 4700 </form> 4701 4702 </div> 4703 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4704 4705<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/119127/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4706 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="119127"> 4707 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4708 <input type="hidden" name="product" value="119127"> 4709 <a href="https://www.farma.it/yovis-10fl-10ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Yovis Flaconcini Fermenti Lattici Vivi 25 Miliardi Integratore Flora Intestinale 10 Flaconcini"></a> 4710 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(119127, 'card_top_left')"> 4711 <template x-for="badge in $store.badges.getBadgesHtml(119127, 'card_top_left')"> 4712 <span x-html="badge"></span> 4713 </template> 4714 </span> 4715 <a href="https://www.farma.it/yovis-10fl-10ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4716 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/7/976335291_1-c98cb1c6.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/7/976335291_1.jpg" width="142" height="142" alt="Yovis Flaconcini Fermenti Lattici Vivi 25 Miliardi Integratore Flora Intestinale 10 Flaconcini" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-119127.window="updateImage" loading="lazy"></picture> 4717 </a> 4718 <div class="product-info flex flex-col grow justify-start"> 4719 <div class="items-center justify-center "> 4720 <a class="product-item-link" href="https://www.farma.it/yovis-10fl-10ml.html" :id="`slide-desc-119127-${$id('slider-id')}`"> 4721 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4722 Yovis Flaconcini Fermenti Lattici Vivi 25 Miliardi Integratore Flora Intestinale 10 Flaconcini </h2> 4723 </a> 4724 </div> 4725 4726 <div class="mt-1 mb-1 "> 4727 <div class="flex gap-2"> 4728 <div x-data="initRating1191276ac925bbe31fa()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 4729 ? 'Yovis\u0020Flaconcini\u0020Fermenti\u0020Lattici\u0020Vivi\u002025\u0020Miliardi\u0020Integratore\u0020Flora\u0020Intestinale\u002010\u0020Flaconcini\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 4730 : 'Yovis\u0020Flaconcini\u0020Fermenti\u0020Lattici\u0020Vivi\u002025\u0020Miliardi\u0020Integratore\u0020Flora\u0020Intestinale\u002010\u0020Flaconcini\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars' 4731 " role="group">
4732 <span class="hidden">4.75</span> 4733 <span class="hidden">16</span> 4734 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4735 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4736 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4737 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4738 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4739 </svg> 4740 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4741 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4742 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4743 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4744 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4745 </svg> 4746 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4747 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4748 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4749 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4750 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4751 </svg> 4752 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4753 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4754 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4755 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4756 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4757 </svg> 4758 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 4759 <defs> 4760 <lineargradient id="partialFill119127"> 4761 <stop offset="0%" stop-color="#f6e05e"></stop> 4762 <stop offset="75%" stop-color="#f6e05e"></stop> 4763 <stop offset="75%" stop-color="#cbd5e0"></stop> 4764 <stop offset="100%" stop-color="#cbd5e0"></stop> 4765 </lineargradient> 4766 </defs> 4767 <g fill="url(#partialFill119127)"> 4768 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 4769 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4770 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 4771 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4772 </g> 4773 </svg> 4774 </div> 4775 <div class="text-xs"> 4776 (16) 4777 </div> 4778 </div> 4779 4780
4780<script> 4781 'use strict'; 4782 4783 function initRating1191276ac925bbe31fa() { 4784 return { 4785 get reviewsSection() { 4786 return document.getElementById('customer-review-list') 4787 || document.getElementById('customer-reviews') 4788 || document.getElementById('review-form'); 4789 }, 4790 scrollToRatings() { 4791 let scrollTimeout = null 4792 4793 if (!this.reviewsSection) { 4794 return 4795 } 4796 4797 addEventListener('scroll', () => { 4798 clearTimeout(scrollTimeout); 4799 4800 scrollTimeout = setTimeout(() => { 4801 if (this.reviewsSection) { 4802 this.reviewsSection.focus() 4803 } 4804 }, 50); 4805 }, { once: true }); 4806 4807 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 4808 } 4809 } 4810 } 4811 </script>
4811 4812 </div> 4813 4814 4815 4816 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 4817 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4818 <template x-if="active = true"> 4819 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(119127)"> 4820 <template x-if="!$store.ajaxPrices.hasPrice(119127)"> 4821 <div class="skeleton w-16 lg:w-full h-6"> 4822 Caricamento... </div> 4823 </template> 4824 <template x-if="$store.ajaxPrices.hasPrice(119127)"> 4825 <span x-html="$store.ajaxPrices.getPriceHtml(119127)"></span> 4826 </template> 4827 </div> 4828 </template> 4829 </span> 4830 4831 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4832 <?xml version="1.0" encoding="UTF-8"?> 4833<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4834 </button> 4835 </div> 4836 </div> 4837 </form> 4838 4839 </div> 4840 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4841 4842<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/299989/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4843 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="299989"> 4844 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4845 <input type="hidden" name="product" value="299989"> 4846 <a href="https://www.farma.it/990891436-ist-ganassini-spa-rilastil-acnestil-az-15-siero.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Rilastil Acnestil AZ 15% siero viso anti-imperfezioni 30 ml"></a> 4847 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(299989, 'card_top_left')"> 4848 <template x-for="badge in $store.badges.getBadgesHtml(299989, 'card_top_left')"> 4849 <span x-html="badge"></span> 4850 </template> 4851 </span> 4852 <a href="https://www.farma.it/990891436-ist-ganassini-spa-rilastil-acnestil-az-15-siero.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4853 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/9/990891436_1-4ec5a866.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/9/990891436_1.jpg" width="142" height="142" alt="Rilastil Acnestil AZ 15% siero viso anti-imperfezioni 30 ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-299989.window="updateImage" loading="lazy"></picture> 4854 </a> 4855 <div class="product-info flex flex-col grow justify-start"> 4856 <div class="items-center justify-center "> 4857 <a class="product-item-link" href="https://www.farma.it/990891436-ist-ganassini-spa-rilastil-acnestil-az-15-siero.html" :id="`slide-desc-299989-${$id('slider-id')}`"> 4858 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4859 Rilastil Acnestil AZ 15% siero viso anti-imperfezioni 30 ml </h2> 4860 </a> 4861 </div> 4862 4863 <div class="mt-1 mb-1 "> 4864 </div> 4865 4866 4867 4868 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none">
4869 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 4870 <template x-if="active = true"> 4871 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(299989)"> 4872 <template x-if="!$store.ajaxPrices.hasPrice(299989)"> 4873 <div class="skeleton w-16 lg:w-full h-6"> 4874 Caricamento... </div> 4875 </template> 4876 <template x-if="$store.ajaxPrices.hasPrice(299989)"> 4877 <span x-html="$store.ajaxPrices.getPriceHtml(299989)"></span> 4878 </template> 4879 </div> 4880 </template> 4881 </span> 4882 4883 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 4884 <?xml version="1.0" encoding="UTF-8"?> 4885<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 4886 </button> 4887 </div> 4888 </div> 4889 </form> 4890 4891 </div> 4892 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 4893 4894<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/9649/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 4895 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="9649"> 4896 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 4897 <input type="hidden" name="product" value="9649"> 4898 <a href="https://www.farma.it/citomix-gr.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Guna Citomix GR Granuli Omeopatici "></a> 4899 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(9649, 'card_top_left')"> 4900 <template x-for="badge in $store.badges.getBadgesHtml(9649, 'card_top_left')"> 4901 <span x-html="badge"></span> 4902 </template> 4903 </span> 4904 <a href="https://www.farma.it/citomix-gr.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 4905 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/d/a/data_citomix_granuli_multidose-d3e555b5.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/d/a/data_citomix_granuli_multidose.jpeg" width="142" height="142" alt="Guna Citomix GR Granuli Omeopatici " class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-9649.window="updateImage" loading="lazy"></picture> 4906 </a> 4907 <div class="product-info flex flex-col grow justify-start"> 4908 <div class="items-center justify-center "> 4909 <a class="product-item-link" href="https://www.farma.it/citomix-gr.html" :id="`slide-desc-9649-${$id('slider-id')}`"> 4910 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 4911 Guna Citomix GR Granuli Omeopatici </h2> 4912 </a> 4913 </div> 4914 4915 <div class="mt-1 mb-1 "> 4916 <div class="flex gap-2"> 4917 <div x-data="initRating96496ac92529e0ca3()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 4918 ? 'Guna\u0020Citomix\u0020GR\u0020Granuli\u0020Omeopatici\u0020\u0020rating.\u00204.85\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 4919 : 'Guna\u0020Citomix\u0020GR\u0020Granuli\u0020Omeopatici\u0020\u0020rating.\u00204.85\u0020out\u0020of\u00205\u0020stars' 4920 " role="group">
4921 <span class="hidden">4.85</span> 4922 <span class="hidden">47</span> 4923 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4924 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4925 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4926 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4927 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4928 </svg> 4929 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4930 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4931 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4932 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4933 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4934 </svg> 4935 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4936 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4937 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4938 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4939 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4940 </svg> 4941 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 4942 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 4943 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4944 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 4945 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4946 </svg> 4947 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 4948 <defs> 4949 <lineargradient id="partialFill9649"> 4950 <stop offset="0%" stop-color="#f6e05e"></stop> 4951 <stop offset="85%" stop-color="#f6e05e"></stop> 4952 <stop offset="85%" stop-color="#cbd5e0"></stop> 4953 <stop offset="100%" stop-color="#cbd5e0"></stop> 4954 </lineargradient> 4955 </defs> 4956 <g fill="url(#partialFill9649)"> 4957 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 4958 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 4959 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 4960 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 4961 </g> 4962 </svg> 4963 </div> 4964 <div class="text-xs"> 4965 (47) 4966 </div> 4967 </div> 4968 4969
4969<script> 4970 'use strict'; 4971 4972 function initRating96496ac92529e0ca3() { 4973 return { 4974 get reviewsSection() { 4975 return document.getElementById('customer-review-list') 4976 || document.getElementById('customer-reviews') 4977 || document.getElementById('review-form'); 4978 }, 4979 scrollToRatings() { 4980 let scrollTimeout = null 4981 4982 if (!this.reviewsSection) { 4983 return 4984 } 4985 4986 addEventListener('scroll', () => { 4987 clearTimeout(scrollTimeout); 4988 4989 scrollTimeout = setTimeout(() => { 4990 if (this.reviewsSection) { 4991 this.reviewsSection.focus() 4992 } 4993 }, 50); 4994 }, { once: true }); 4995 4996 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 4997 } 4998 } 4999 } 5000 </script>
5000 5001 </div> 5002 5003 5004 5005 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5006 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5007 <template x-if="active = true"> 5008 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(9649)"> 5009 <template x-if="!$store.ajaxPrices.hasPrice(9649)"> 5010 <div class="skeleton w-16 lg:w-full h-6"> 5011 Caricamento... </div> 5012 </template> 5013 <template x-if="$store.ajaxPrices.hasPrice(9649)"> 5014 <span x-html="$store.ajaxPrices.getPriceHtml(9649)"></span> 5015 </template> 5016 </div> 5017 </template> 5018 </span> 5019 5020 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5021 <?xml version="1.0" encoding="UTF-8"?> 5022<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5023 </button> 5024 </div> 5025 </div> 5026 </form> 5027 5028 </div> 5029 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5030 5031<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/9407/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5032 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="9407"> 5033 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5034 <input type="hidden" name="product" value="9407"> 5035 <a href="https://www.farma.it/frontline-combo-spoton-gatti-3-pipette-da-05-ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Frontline Combo Antiparassitario Spot On per Gatti e Furetti 3 Pipette 0.5ml"></a> 5036 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(9407, 'card_top_left')"> 5037 <template x-for="badge in $store.badges.getBadgesHtml(9407, 'card_top_left')"> 5038 <span x-html="badge"></span> 5039 </template> 5040 </span> 5041 <a href="https://www.farma.it/frontline-combo-spoton-gatti-3-pipette-da-05-ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5042 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/1/0/103647032_1-e948233d.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/1/0/103647032_1.jpg" width="142" height="142" alt="Frontline Combo Antiparassitario Spot On per Gatti e Furetti 3 Pipette 0.5ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-9407.window="updateImage" loading="lazy"></picture> 5043 </a> 5044 <div class="product-info flex flex-col grow justify-start"> 5045 <div class="items-center justify-center "> 5046 <a class="product-item-link" href="https://www.farma.it/frontline-combo-spoton-gatti-3-pipette-da-05-ml.html" :id="`slide-desc-9407-${$id('slider-id')}`"> 5047 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5048 Frontline Combo Antiparassitario Spot On per Gatti e Furetti 3 Pipette 0.5ml </h2> 5049 </a> 5050 </div> 5051 5052 <div class="mt-1 mb-1 "> 5053 <div class="flex gap-2"> 5054 <div x-data="initRating94076ac92635636d8()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 5055 ? 'Frontline\u0020Combo\u0020Antiparassitario\u0020Spot\u0020On\u0020per\u0020Gatti\u0020e\u0020Furetti\u00203\u0020Pipette\u00200.5ml\u0020rating.\u00204.85\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5056 : 'Frontline\u0020Combo\u0020Antiparassitario\u0020Spot\u0020On\u0020per\u0020Gatti\u0020e\u0020Furetti\u00203\u0020Pipette\u00200.5ml\u0020rating.\u00204.85\u0020out\u0020of\u00205\u0020stars' 5057 " role="group">
5058 <span class="hidden">4.85</span> 5059 <span class="hidden">36</span> 5060 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5061 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5062 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5063 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5064 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5065 </svg> 5066 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5067 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5068 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5069 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5070 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5071 </svg> 5072 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5073 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5074 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5075 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5076 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5077 </svg> 5078 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5079 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5080 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5081 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5082 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5083 </svg> 5084 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 5085 <defs> 5086 <lineargradient id="partialFill9407"> 5087 <stop offset="0%" stop-color="#f6e05e"></stop> 5088 <stop offset="85%" stop-color="#f6e05e"></stop> 5089 <stop offset="85%" stop-color="#cbd5e0"></stop> 5090 <stop offset="100%" stop-color="#cbd5e0"></stop> 5091 </lineargradient> 5092 </defs> 5093 <g fill="url(#partialFill9407)"> 5094 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 5095 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5096 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 5097 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5098 </g> 5099 </svg> 5100 </div> 5101 <div class="text-xs"> 5102 (36) 5103 </div> 5104 </div> 5105 5106
5106<script> 5107 'use strict'; 5108 5109 function initRating94076ac92635636d8() { 5110 return { 5111 get reviewsSection() { 5112 return document.getElementById('customer-review-list') 5113 || document.getElementById('customer-reviews') 5114 || document.getElementById('review-form'); 5115 }, 5116 scrollToRatings() { 5117 let scrollTimeout = null 5118 5119 if (!this.reviewsSection) { 5120 return 5121 } 5122 5123 addEventListener('scroll', () => { 5124 clearTimeout(scrollTimeout); 5125 5126 scrollTimeout = setTimeout(() => { 5127 if (this.reviewsSection) { 5128 this.reviewsSection.focus() 5129 } 5130 }, 50); 5131 }, { once: true }); 5132 5133 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 5134 } 5135 } 5136 } 5137 </script>
5137 5138 </div> 5139 5140 5141 5142 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5143 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5144 <template x-if="active = true"> 5145 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(9407)"> 5146 <template x-if="!$store.ajaxPrices.hasPrice(9407)"> 5147 <div class="skeleton w-16 lg:w-full h-6"> 5148 Caricamento... </div> 5149 </template> 5150 <template x-if="$store.ajaxPrices.hasPrice(9407)"> 5151 <span x-html="$store.ajaxPrices.getPriceHtml(9407)"></span> 5152 </template> 5153 </div> 5154 </template> 5155 </span> 5156 5157 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5158 <?xml version="1.0" encoding="UTF-8"?> 5159<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5160 </button> 5161 </div> 5162 </div> 5163 </form> 5164 5165 </div> 5166 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5167 5168<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/13113/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5169 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="13113"> 5170 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5171 <input type="hidden" name="product" value="13113"> 5172 <a href="https://www.farma.it/carnidyn-plus-20bust.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label=" Carnidyn Plus integratore contro stanchezza 20 bustine"></a> 5173 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(13113, 'card_top_left')"> 5174 <template x-for="badge in $store.badges.getBadgesHtml(13113, 'card_top_left')"> 5175 <span x-html="badge"></span> 5176 </template> 5177 </span> 5178 <a href="https://www.farma.it/carnidyn-plus-20bust.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5179 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/3/930525771_1-9642ea2f.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/3/930525771_1.jpg" width="142" height="142" alt=" Carnidyn Plus integratore contro stanchezza 20 bustine" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-13113.window="updateImage" loading="lazy"></picture> 5180 </a> 5181 <div class="product-info flex flex-col grow justify-start"> 5182 <div class="items-center justify-center "> 5183 <a class="product-item-link" href="https://www.farma.it/carnidyn-plus-20bust.html" :id="`slide-desc-13113-${$id('slider-id')}`"> 5184 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5185 Carnidyn Plus integratore contro stanchezza 20 bustine </h2> 5186 </a> 5187 </div> 5188 5189 <div class="mt-1 mb-1 "> 5190 <div class="flex gap-2"> 5191 <div x-data="initRating131136ac9263565156()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 5192 ? '\u0020Carnidyn\u0020Plus\u0020integratore\u0020contro\u0020stanchezza\u002020\u0020bustine\u0020rating.\u00204.9\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5193 : '\u0020Carnidyn\u0020Plus\u0020integratore\u0020contro\u0020stanchezza\u002020\u0020bustine\u0020rating.\u00204.9\u0020out\u0020of\u00205\u0020stars' 5194 " role="group">
5195 <span class="hidden">4.9</span> 5196 <span class="hidden">18</span> 5197 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5198 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5199 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5200 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5201 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5202 </svg> 5203 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5204 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5205 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5206 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5207 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5208 </svg> 5209 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5210 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5211 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5212 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5213 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5214 </svg> 5215 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5216 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5217 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5218 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5219 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5220 </svg> 5221 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 5222 <defs> 5223 <lineargradient id="partialFill13113"> 5224 <stop offset="0%" stop-color="#f6e05e"></stop> 5225 <stop offset="90%" stop-color="#f6e05e"></stop> 5226 <stop offset="90%" stop-color="#cbd5e0"></stop> 5227 <stop offset="100%" stop-color="#cbd5e0"></stop> 5228 </lineargradient> 5229 </defs> 5230 <g fill="url(#partialFill13113)"> 5231 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 5232 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5233 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 5234 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5235 </g> 5236 </svg> 5237 </div> 5238 <div class="text-xs"> 5239 (18) 5240 </div> 5241 </div> 5242 5243
5243<script> 5244 'use strict'; 5245 5246 function initRating131136ac9263565156() { 5247 return { 5248 get reviewsSection() { 5249 return document.getElementById('customer-review-list') 5250 || document.getElementById('customer-reviews') 5251 || document.getElementById('review-form'); 5252 }, 5253 scrollToRatings() { 5254 let scrollTimeout = null 5255 5256 if (!this.reviewsSection) { 5257 return 5258 } 5259 5260 addEventListener('scroll', () => { 5261 clearTimeout(scrollTimeout); 5262 5263 scrollTimeout = setTimeout(() => { 5264 if (this.reviewsSection) { 5265 this.reviewsSection.focus() 5266 } 5267 }, 50); 5268 }, { once: true }); 5269 5270 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 5271 } 5272 } 5273 } 5274 </script>
5274 5275 </div> 5276 5277 5278 5279 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5280 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5281 <template x-if="active = true"> 5282 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(13113)"> 5283 <template x-if="!$store.ajaxPrices.hasPrice(13113)"> 5284 <div class="skeleton w-16 lg:w-full h-6"> 5285 Caricamento... </div> 5286 </template> 5287 <template x-if="$store.ajaxPrices.hasPrice(13113)"> 5288 <span x-html="$store.ajaxPrices.getPriceHtml(13113)"></span> 5289 </template> 5290 </div> 5291 </template> 5292 </span> 5293 5294 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5295 <?xml version="1.0" encoding="UTF-8"?> 5296<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5297 </button> 5298 </div> 5299 </div> 5300 </form> 5301 5302 </div> 5303 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5304 5305<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/258664/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5306 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="258664"> 5307 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5308 <input type="hidden" name="product" value="258664"> 5309 <a href="https://www.farma.it/006979088-opella-healthcare-italy-srl-buscopan-10mg-40-cpr.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Buscopan crampi addominali 40 compresse rivestite"></a> 5310 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(258664, 'card_top_left')"> 5311 <template x-for="badge in $store.badges.getBadgesHtml(258664, 'card_top_left')"> 5312 <span x-html="badge"></span> 5313 </template> 5314 </span> 5315 <a href="https://www.farma.it/006979088-opella-healthcare-italy-srl-buscopan-10mg-40-cpr.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5316 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/0/006979088_1-66ac5a47.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/0/006979088_1.jpg" width="142" height="142" alt="Bu
5316scopan crampi addominali 40 compresse rivestite" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-258664.window="updateImage" loading="lazy"></picture> 5317 </a> 5318 <div class="product-info flex flex-col grow justify-start"> 5319 <div class="items-center justify-center "> 5320 <a class="product-item-link" href="https://www.farma.it/006979088-opella-healthcare-italy-srl-buscopan-10mg-40-cpr.html" :id="`slide-desc-258664-${$id('slider-id')}`"> 5321 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5322 Buscopan crampi addominali 40 compresse rivestite </h2> 5323 </a> 5324 </div> 5325 5326 <div class="mt-1 mb-1 "> 5327 <div class="flex gap-2"> 5328 <div x-data="initRating2586646ac92635669a3()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 5329 ? 'Buscopan\u0020crampi\u0020addominali\u002040\u0020compresse\u0020rivestite\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5330 : 'Buscopan\u0020crampi\u0020addominali\u002040\u0020compresse\u0020rivestite\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars' 5331 " role="group"> 5332 <span class="hidden">4.75</span> 5333 <span class="hidden">4</span> 5334 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5335 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5336 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5337 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5338 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5339 </svg> 5340 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5341 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5342 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5343 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5344 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5345 </svg> 5346 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5347 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5348 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5349 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5350 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5351 </svg> 5352 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5353 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5354 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5355 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5356 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5357 </svg> 5358 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 5359 <defs> 5360 <lineargradient id="partialFill258664"> 5361 <stop offset="0%" stop-color="#f6e05e"></stop> 5362 <stop offset="75%" stop-color="#f6e05e"></stop> 5363 <stop offset="75%" stop-color="#cbd5e0"></stop> 5364 <stop offset="100%" stop-color="#cbd5e0"></stop> 5365 </lineargradient> 5366 </defs> 5367 <g fill="url(#partialFill258664)"> 5368 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 5369 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5370 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 5371 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5372 </g> 5373 </svg> 5374 </div> 5375 <div class="text-xs"> 5376 (4) 5377 </div> 5378 </div> 5379 5380
5380<script> 5381 'use strict'; 5382 5383 function initRating2586646ac92635669a3() { 5384 return { 5385 get reviewsSection() { 5386 return document.getElementById('customer-review-list') 5387 || document.getElementById('customer-reviews') 5388 || document.getElementById('review-form'); 5389 }, 5390 scrollToRatings() { 5391 let scrollTimeout = null 5392 5393 if (!this.reviewsSection) { 5394 return 5395 } 5396 5397 addEventListener('scroll', () => { 5398 clearTimeout(scrollTimeout); 5399 5400 scrollTimeout = setTimeout(() => { 5401 if (this.reviewsSection) { 5402 this.reviewsSection.focus() 5403 } 5404 }, 50); 5405 }, { once: true }); 5406 5407 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 5408 } 5409 } 5410 } 5411 </script>
5411 5412 </div> 5413 5414 5415 5416 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5417 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5418 <template x-if="active = true"> 5419 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(258664)"> 5420 <template x-if="!$store.ajaxPrices.hasPrice(258664)"> 5421 <div class="skeleton w-16 lg:w-full h-6"> 5422 Caricamento... </div> 5423 </template> 5424 <template x-if="$store.ajaxPrices.hasPrice(258664)"> 5425 <span x-html="$store.ajaxPrices.getPriceHtml(258664)"></span> 5426 </template> 5427 </div> 5428 </template> 5429 </span> 5430 5431 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5432 <?xml version="1.0" encoding="UTF-8"?> 5433<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5434 </button> 5435 </div> 5436 </div> 5437 </form> 5438 5439 </div> 5440 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5441 5442<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/276146/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5443 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="276146"> 5444 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5445 <input type="hidden" name="product" value="276146"> 5446 <a href="https://www.farma.it/950951689-i-c-i-m-bionike-internation-defence-my-age-collagene-10fl.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Defence My Age Collagen Drink 10 flaconcini Bionike"></a> 5447 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(276146, 'card_top_left')"> 5448 <template x-for="badge in $store.badges.getBadgesHtml(276146, 'card_top_left')"> 5449 <span x-html="badge"></span> 5450 </template> 5451 </span> 5452 <a href="https://www.farma.it/950951689-i-c-i-m-bionike-internation-defence-my-age-collagene-10fl.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5453 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/950951689-8ec9a6c5.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/950951689.jpeg" width="142" height="142" alt="Defence My Age Collagen Drink 10 flaconcini Bionike" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-276146.window="updateImage" loading="lazy"></picture> 5454 </a> 5455 <div class="product-info flex flex-col grow justify-start"> 5456 <div class="items-center justify-center "> 5457 <a class="product-item-link" href="https://www.farma.it/950951689-i-c-i-m-bionike-internation-defence-my-age-collagene-10fl.html" :id="`slide-desc-276146-${$id('slider-id')}`"> 5458 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5459 Defence My Age Collagen Drink 10 flaconcini Bionike </h2> 5460 </a> 5461 </div> 5462 5463 <div class="mt-1 mb-1 "> 5464 </div> 5465 5466 5467 5468 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none">
5469 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5470 <template x-if="active = true"> 5471 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(276146)"> 5472 <template x-if="!$store.ajaxPrices.hasPrice(276146)"> 5473 <div class="skeleton w-16 lg:w-full h-6"> 5474 Caricamento... </div> 5475 </template> 5476 <template x-if="$store.ajaxPrices.hasPrice(276146)"> 5477 <span x-html="$store.ajaxPrices.getPriceHtml(276146)"></span> 5478 </template> 5479 </div> 5480 </template> 5481 </span> 5482 5483 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5484 <?xml version="1.0" encoding="UTF-8"?> 5485<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5486 </button> 5487 </div> 5488 </div> 5489 </form> 5490 5491 </div> 5492 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5493 5494<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/15410/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5495 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="15410"> 5496 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5497 <input type="hidden" name="product" value="15410"> 5498 <a href="https://www.farma.it/benactiv-golaspray-15ml-025.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Benactiv Gola spray orale a base di flurbiprofene 15ml"></a> 5499 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(15410, 'card_top_left')"> 5500 <template x-for="badge in $store.badges.getBadgesHtml(15410, 'card_top_left')"> 5501 <span x-html="badge"></span> 5502 </template> 5503 </span> 5504 <a href="https://www.farma.it/benactiv-golaspray-15ml-025.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5505 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/3/033262041-dafe1bd4.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/3/033262041.jpg" width="142" height="142" alt="Benactiv Gola spray orale a base di flurbiprofene 15ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-15410.window="updateImage" loading="lazy"></picture> 5506 </a> 5507 <div class="product-info flex flex-col grow justify-start"> 5508 <div class="items-center justify-center "> 5509 <a class="product-item-link" href="https://www.farma.it/benactiv-golaspray-15ml-025.html" :id="`slide-desc-15410-${$id('slider-id')}`"> 5510 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5511 Benactiv Gola spray orale a base di flurbiprofene 15ml </h2> 5512 </a> 5513 </div> 5514 5515 <div class="mt-1 mb-1 "> 5516 <div class="flex gap-2"> 5517 <div x-data="initRating154106ac925bbe608f()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection
5518 ? 'Benactiv\u0020Gola\u0020spray\u0020orale\u0020a\u0020base\u0020di\u0020flurbiprofene\u002015ml\u0020rating.\u00204.8\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5519 : 'Benactiv\u0020Gola\u0020spray\u0020orale\u0020a\u0020base\u0020di\u0020flurbiprofene\u002015ml\u0020rating.\u00204.8\u0020out\u0020of\u00205\u0020stars' 5520 " role="group"> 5521 <span class="hidden">4.8</span> 5522 <span class="hidden">5</span> 5523 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5524 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5525 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5526 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5527 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5528 </svg> 5529 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5530 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5531 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5532 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5533 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5534 </svg> 5535 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5536 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5537 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5538 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5539 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5540 </svg> 5541 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5542 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5543 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5544 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5545 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5546 </svg> 5547 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 5548 <defs> 5549 <lineargradient id="partialFill15410"> 5550 <stop offset="0%" stop-color="#f6e05e"></stop> 5551 <stop offset="80%" stop-color="#f6e05e"></stop> 5552 <stop offset="80%" stop-color="#cbd5e0"></stop> 5553 <stop offset="100%" stop-color="#cbd5e0"></stop> 5554 </lineargradient> 5555 </defs> 5556 <g fill="url(#partialFill15410)"> 5557 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 5558 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5559 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 5560 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5561 </g> 5562 </svg> 5563 </div> 5564 <div class="text-xs"> 5565 (5) 5566 </div> 5567 </div> 5568 5569
5569<script> 5570 'use strict'; 5571 5572 function initRating154106ac925bbe608f() { 5573 return { 5574 get reviewsSection() { 5575 return document.getElementById('customer-review-list') 5576 || document.getElementById('customer-reviews') 5577 || document.getElementById('review-form'); 5578 }, 5579 scrollToRatings() { 5580 let scrollTimeout = null 5581 5582 if (!this.reviewsSection) { 5583 return 5584 } 5585 5586 addEventListener('scroll', () => { 5587 clearTimeout(scrollTimeout); 5588 5589 scrollTimeout = setTimeout(() => { 5590 if (this.reviewsSection) { 5591 this.reviewsSection.focus() 5592 } 5593 }, 50); 5594 }, { once: true }); 5595 5596 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 5597 } 5598 } 5599 } 5600 </script>
5600 5601 </div> 5602 5603 5604 5605 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5606 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5607 <template x-if="active = true"> 5608 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(15410)"> 5609 <template x-if="!$store.ajaxPrices.hasPrice(15410)"> 5610 <div class="skeleton w-16 lg:w-full h-6"> 5611 Caricamento... </div> 5612 </template> 5613 <template x-if="$store.ajaxPrices.hasPrice(15410)"> 5614 <span x-html="$store.ajaxPrices.getPriceHtml(15410)"></span> 5615 </template> 5616 </div> 5617 </template> 5618 </span> 5619 5620 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5621 <?xml version="1.0" encoding="UTF-8"?> 5622<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5623 </button> 5624 </div> 5625 </div> 5626 </form> 5627 5628 </div> 5629 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5630 5631<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/285431/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5632 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="285431"> 5633 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5634 <input type="hidden" name="product" value="285431"> 5635 <a href="https://www.farma.it/951507781-haleon-italy-srl-polase-plus-carnitina-24bust.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Polase plus magnesio potassio carnitina 24 bustine"></a> 5636 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(285431, 'card_top_left')"> 5637 <template x-for="badge in $store.badges.getBadgesHtml(285431, 'card_top_left')"> 5638 <span x-html="badge"></span> 5639 </template> 5640 </span> 5641 <a href="https://www.farma.it/951507781-haleon-italy-srl-polase-plus-carnitina-24bust.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5642 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/951507781-1-2ddbd3bb.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/951507781-1.jpg" width="142" height="142" alt="/i/m/image_1777077025_0bc4f8aa..jpg" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-285431.window="updateImage" loading="lazy"></picture> 5643 </a> 5644 <div class="product-info flex flex-col grow justify-start"> 5645 <div class="items-center justify-center "> 5646 <a class="product-item-link" href="https://www.farma.it/951507781-haleon-italy-srl-polase-plus-carnitina-24bust.html" :id="`slide-desc-285431-${$id('slider-id')}`"> 5647 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5648 Polase plus magnesio potassio carnitina 24 bustine </h2> 5649 </a> 5650 </div> 5651 5652 <div class="mt-1 mb-1 "> 5653 </div> 5654 5655 5656 5657 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none">
5658 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5659 <template x-if="active = true"> 5660 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(285431)"> 5661 <template x-if="!$store.ajaxPrices.hasPrice(285431)"> 5662 <div class="skeleton w-16 lg:w-full h-6"> 5663 Caricamento... </div> 5664 </template> 5665 <template x-if="$store.ajaxPrices.hasPrice(285431)"> 5666 <span x-html="$store.ajaxPrices.getPriceHtml(285431)"></span> 5667 </template> 5668 </div> 5669 </template> 5670 </span> 5671 5672 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5673 <?xml version="1.0" encoding="UTF-8"?> 5674<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5675 </button> 5676 </div> 5677 </div> 5678 </form> 5679 5680 </div> 5681 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5682 5683<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/235978/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5684 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="235978"> 5685 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5686 <input type="hidden" name="product" value="235978"> 5687 <a href="https://www.farma.it/uva-ursina-ei-60ml-int.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Uva Ursina Estratto Idroalcolico 60ml Boiron"></a> 5688 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(235978, 'card_top_left')"> 5689 <template x-for="badge in $store.badges.getBadgesHtml(235978, 'card_top_left')"> 5690 <span x-html="badge"></span> 5691 </template> 5692 </span> 5693 <a href="https://www.farma.it/uva-ursina-ei-60ml-int.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5694 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/7/977705918-2-6078cf2f.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/7/977705918-2.jpeg" width="142" height="142" alt="Uva Ursina Estratto Idroalcolico 60ml Boiron" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-235978.window="updateImage" loading="lazy"></picture> 5695 </a> 5696 <div class="product-info flex flex-col grow justify-start"> 5697 <div class="items-center justify-center "> 5698 <a class="product-item-link" href="https://www.farma.it/uva-ursina-ei-60ml-int.html" :id="`slide-desc-235978-${$id('slider-id')}`"> 5699 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5700 Uva Ursina Estratto Idroalcolico 60ml Boiron </h2> 5701 </a> 5702 </div> 5703 5704 <div class="mt-1 mb-1 "> 5705 <div class="flex gap-2"> 5706 <div x-data="initRating2359786ac926356a49b()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 5707 ? 'Uva\u0020Ursina\u0020Estratto\u0020Idroalcolico\u002060ml\u0020Boiron\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5708 : 'Uva\u0020Ursina\u0020Estratto\u0020Idroalcolico\u002060ml\u0020Boiron\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars' 5709 " role="group">
5710 <span class="hidden">4.75</span> 5711 <span class="hidden">4</span> 5712 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5713 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5714 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5715 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5716 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5717 </svg> 5718 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5719 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5720 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5721 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5722 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5723 </svg> 5724 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5725 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5726 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5727 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5728 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5729 </svg> 5730 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5731 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5732 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5733 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5734 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5735 </svg> 5736 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 5737 <defs> 5738 <lineargradient id="partialFill235978"> 5739 <stop offset="0%" stop-color="#f6e05e"></stop> 5740 <stop offset="75%" stop-color="#f6e05e"></stop> 5741 <stop offset="75%" stop-color="#cbd5e0"></stop> 5742 <stop offset="100%" stop-color="#cbd5e0"></stop> 5743 </lineargradient> 5744 </defs> 5745 <g fill="url(#partialFill235978)"> 5746 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 5747 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5748 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 5749 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5750 </g> 5751 </svg> 5752 </div> 5753 <div class="text-xs"> 5754 (4) 5755 </div> 5756 </div> 5757 5758
5758<script> 5759 'use strict'; 5760 5761 function initRating2359786ac926356a49b() { 5762 return { 5763 get reviewsSection() { 5764 return document.getElementById('customer-review-list') 5765 || document.getElementById('customer-reviews') 5766 || document.getElementById('review-form'); 5767 }, 5768 scrollToRatings() { 5769 let scrollTimeout = null 5770 5771 if (!this.reviewsSection) { 5772 return 5773 } 5774 5775 addEventListener('scroll', () => { 5776 clearTimeout(scrollTimeout); 5777 5778 scrollTimeout = setTimeout(() => { 5779 if (this.reviewsSection) { 5780 this.reviewsSection.focus() 5781 } 5782 }, 50); 5783 }, { once: true }); 5784 5785 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 5786 } 5787 } 5788 } 5789 </script>
5789 5790 </div> 5791 5792 5793 5794 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5795 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5796 <template x-if="active = true"> 5797 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(235978)"> 5798 <template x-if="!$store.ajaxPrices.hasPrice(235978)"> 5799 <div class="skeleton w-16 lg:w-full h-6"> 5800 Caricamento... </div> 5801 </template> 5802 <template x-if="$store.ajaxPrices.hasPrice(235978)"> 5803 <span x-html="$store.ajaxPrices.getPriceHtml(235978)"></span> 5804 </template> 5805 </div> 5806 </template> 5807 </span> 5808 5809 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5810 <?xml version="1.0" encoding="UTF-8"?> 5811<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5812 </button> 5813 </div> 5814 </div> 5815 </form> 5816 5817 </div> 5818 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5819 5820<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/224546/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5821 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="224546"> 5822 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5823 <input type="hidden" name="product" value="224546"> 5824 <a href="https://www.farma.it/bdnf-c4ch-gtt-30ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="BDNF C4CH Gocce 30ml"></a> 5825 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(224546, 'card_top_left')"> 5826 <template x-for="badge in $store.badges.getBadgesHtml(224546, 'card_top_left')"> 5827 <span x-html="badge"></span> 5828 </template> 5829 </span> 5830 <a href="https://www.farma.it/bdnf-c4ch-gtt-30ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5831 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/4/048545014-c8e9c4f2.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/4/048545014.jpg" width="142" height="142" alt="BDNF C4CH Gocce 30ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-224546.window="updateImage" loading="lazy"></picture> 5832 </a> 5833 <div class="product-info flex flex-col grow justify-start"> 5834 <div class="items-center justify-center "> 5835 <a class="product-item-link" href="https://www.farma.it/bdnf-c4ch-gtt-30ml.html" :id="`slide-desc-224546-${$id('slider-id')}`"> 5836 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5837 BDNF C4CH Gocce 30ml </h2> 5838 </a> 5839 </div> 5840 5841 <div class="mt-1 mb-1 "> 5842 <div class="flex gap-2"> 5843 <div x-data="initRating2245466ac92529e5ea4()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 5844 ? 'BDNF\u0020C4CH\u0020Gocce\u002030ml\u0020rating.\u00204.8\u0020
5844out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5845 : 'BDNF\u0020C4CH\u0020Gocce\u002030ml\u0020rating.\u00204.8\u0020out\u0020of\u00205\u0020stars' 5846 " role="group"> 5847 <span class="hidden">4.8</span> 5848 <span class="hidden">5</span> 5849 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5850 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5851 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5852 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5853 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5854 </svg> 5855 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5856 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5857 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5858 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5859 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5860 </svg> 5861 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5862 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5863 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5864 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5865 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5866 </svg> 5867 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5868 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5869 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5870 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5871 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5872 </svg> 5873 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 5874 <defs> 5875 <lineargradient id="partialFill224546"> 5876 <stop offset="0%" stop-color="#f6e05e"></stop> 5877 <stop offset="80%" stop-color="#f6e05e"></stop> 5878 <stop offset="80%" stop-color="#cbd5e0"></stop> 5879 <stop offset="100%" stop-color="#cbd5e0"></stop> 5880 </lineargradient> 5881 </defs> 5882 <g fill="url(#partialFill224546)"> 5883 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 5884 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5885 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 5886 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5887 </g> 5888 </svg> 5889 </div> 5890 <div class="text-xs"> 5891 (5) 5892 </div> 5893 </div> 5894 5895
5895<script> 5896 'use strict'; 5897 5898 function initRating2245466ac92529e5ea4() { 5899 return { 5900 get reviewsSection() { 5901 return document.getElementById('customer-review-list') 5902 || document.getElementById('customer-reviews') 5903 || document.getElementById('review-form'); 5904 }, 5905 scrollToRatings() { 5906 let scrollTimeout = null 5907 5908 if (!this.reviewsSection) { 5909 return 5910 } 5911 5912 addEventListener('scroll', () => { 5913 clearTimeout(scrollTimeout); 5914 5915 scrollTimeout = setTimeout(() => { 5916 if (this.reviewsSection) { 5917 this.reviewsSection.focus() 5918 } 5919 }, 50); 5920 }, { once: true }); 5921 5922 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 5923 } 5924 } 5925 } 5926 </script>
5926 5927 </div> 5928 5929 5930 5931 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 5932 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 5933 <template x-if="active = true"> 5934 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(224546)"> 5935 <template x-if="!$store.ajaxPrices.hasPrice(224546)"> 5936 <div class="skeleton w-16 lg:w-full h-6"> 5937 Caricamento... </div> 5938 </template> 5939 <template x-if="$store.ajaxPrices.hasPrice(224546)"> 5940 <span x-html="$store.ajaxPrices.getPriceHtml(224546)"></span> 5941 </template> 5942 </div> 5943 </template> 5944 </span> 5945 5946 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 5947 <?xml version="1.0" encoding="UTF-8"?> 5948<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 5949 </button> 5950 </div> 5951 </div> 5952 </form> 5953 5954 </div> 5955 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 5956 5957<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/14947/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 5958 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="14947"> 5959 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 5960 <input type="hidden" name="product" value="14947"> 5961 <a href="https://www.farma.it/dulcolax40cpr-riv-5mg.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Dulcolax lassativo stitichezza 40 compresse"></a> 5962 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(14947, 'card_top_left')"> 5963 <template x-for="badge in $store.badges.getBadgesHtml(14947, 'card_top_left')"> 5964 <span x-html="badge"></span> 5965 </template> 5966 </span> 5967 <a href="https://www.farma.it/dulcolax40cpr-riv-5mg.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 5968 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/8/9/8997064_1_1-1a440a39.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/8/9/8997064_1_1.jpg" width="142" height="142" alt="Dulcolax lassativo stitichezza 40 compresse" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-14947.window="updateImage" loading="lazy"></picture> 5969 </a> 5970 <div class="product-info flex flex-col grow justify-start"> 5971 <div class="items-center justify-center "> 5972 <a class="product-item-link" href="https://www.farma.it/dulcolax40cpr-riv-5mg.html" :id="`slide-desc-14947-${$id('slider-id')}`"> 5973 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 5974 Dulcolax lassativo stitichezza 40 compresse </h2> 5975 </a> 5976 </div> 5977 5978 <div class="mt-1 mb-1 "> 5979 <div class="flex gap-2"> 5980 <div x-data="initRating149476ac926356c323()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 5981 ? 'Dulcolax\u0020lassativo\u0020stitichezza\u002040\u0020compresse\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 5982 : 'Dulcolax\u0020lassativo\u0020stitichezza\u002040\u0020compresse\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 5983 " role="group">
5984 <span class="hidden">5</span> 5985 <span class="hidden">7</span> 5986 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5987 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5988 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5989 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5990 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5991 </svg> 5992 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5993 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 5994 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 5995 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 5996 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 5997 </svg> 5998 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 5999 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6000 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6001 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6002 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6003 </svg> 6004 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6005 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6006 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6007 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6008 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6009 </svg> 6010 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6011 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6012 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6013 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6014 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6015 </svg> 6016 </div> 6017 <div class="text-xs"> 6018 (7) 6019 </div> 6020 </div> 6021 6022
6022<script> 6023 'use strict'; 6024 6025 function initRating149476ac926356c323() { 6026 return { 6027 get reviewsSection() { 6028 return document.getElementById('customer-review-list') 6029 || document.getElementById('customer-reviews') 6030 || document.getElementById('review-form'); 6031 }, 6032 scrollToRatings() { 6033 let scrollTimeout = null 6034 6035 if (!this.reviewsSection) { 6036 return 6037 } 6038 6039 addEventListener('scroll', () => { 6040 clearTimeout(scrollTimeout); 6041 6042 scrollTimeout = setTimeout(() => { 6043 if (this.reviewsSection) { 6044 this.reviewsSection.focus() 6045 } 6046 }, 50); 6047 }, { once: true }); 6048 6049 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6050 } 6051 } 6052 } 6053 </script>
6053 6054 </div> 6055 6056 6057 6058 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 6059 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6060 <template x-if="active = true"> 6061 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(14947)"> 6062 <template x-if="!$store.ajaxPrices.hasPrice(14947)"> 6063 <div class="skeleton w-16 lg:w-full h-6"> 6064 Caricamento... </div> 6065 </template> 6066 <template x-if="$store.ajaxPrices.hasPrice(14947)"> 6067 <span x-html="$store.ajaxPrices.getPriceHtml(14947)"></span> 6068 </template> 6069 </div> 6070 </template> 6071 </span> 6072 6073 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6074 <?xml version="1.0" encoding="UTF-8"?> 6075<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6076 </button> 6077 </div> 6078 </div> 6079 </form> 6080 6081 </div> 6082 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6083 6084<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/243048/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6085 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="243048"> 6086 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6087 <input type="hidden" name="product" value="243048"> 6088 <a href="https://www.farma.it/enterolactis-plus-15cps.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label=" Enterolactis Plus con fermenti lattici attivi 15 capsule"></a> 6089 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(243048, 'card_top_left')"> 6090 <template x-for="badge in $store.badges.getBadgesHtml(243048, 'card_top_left')"> 6091 <span x-html="badge"></span> 6092 </template> 6093 </span> 6094 <a href="https://www.farma.it/enterolactis-plus-15cps.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6095 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/8/986130351-1-d6278a0a.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/8/986130351-1.jpg" width="142" height="142" alt=" Enterolactis Plus con fermenti lattici attivi 15 capsule" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-243048.window="updateImage" loading="lazy"></picture> 6096 </a> 6097 <div class="product-info flex flex-col grow justify-start"> 6098 <div class="items-center justify-center "> 6099 <a class="product-item-link" href="https://www.farma.it/enterolactis-plus-15cps.html" :id="`slide-desc-243048-${$id('slider-id')}`"> 6100 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6101 Enterolactis Plus con fermenti lattici attivi 15 capsule </h2> 6102 </a> 6103 </div> 6104 6105 <div class="mt-1 mb-1 "> 6106 <div class="flex gap-2"> 6107 <div x-data="initRating2430486ac926356dbc3()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 6108 ? '\u0020Enterolactis\u0020Plus\u0020con\u0020fermenti\u0020lattici\u0020attivi\u002015\u0020capsule\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 6109 : '\u0020Enterolactis\u0020Plus\u0020con\u0020fermenti\u0020lattici\u0020attivi\u002015\u0020capsule\u0020rating.\u00204.75\u0020out\u0020of\u00205\u0020stars' 6110 " role="group">
6111 <span class="hidden">4.75</span> 6112 <span class="hidden">4</span> 6113 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6114 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6115 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6116 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6117 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6118 </svg> 6119 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6120 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6121 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6122 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6123 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6124 </svg> 6125 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6126 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6127 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6128 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6129 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6130 </svg> 6131 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6132 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6133 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6134 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6135 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6136 </svg> 6137 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 6138 <defs> 6139 <lineargradient id="partialFill243048"> 6140 <stop offset="0%" stop-color="#f6e05e"></stop> 6141 <stop offset="75%" stop-color="#f6e05e"></stop> 6142 <stop offset="75%" stop-color="#cbd5e0"></stop> 6143 <stop offset="100%" stop-color="#cbd5e0"></stop> 6144 </lineargradient> 6145 </defs> 6146 <g fill="url(#partialFill243048)"> 6147 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 6148 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6149 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 6150 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6151 </g> 6152 </svg> 6153 </div> 6154 <div class="text-xs"> 6155 (4) 6156 </div> 6157 </div> 6158 6159
6159<script> 6160 'use strict'; 6161 6162 function initRating2430486ac926356dbc3() { 6163 return { 6164 get reviewsSection() { 6165 return document.getElementById('customer-review-list') 6166 || document.getElementById('customer-reviews') 6167 || document.getElementById('review-form'); 6168 }, 6169 scrollToRatings() { 6170 let scrollTimeout = null 6171 6172 if (!this.reviewsSection) { 6173 return 6174 } 6175 6176 addEventListener('scroll', () => { 6177 clearTimeout(scrollTimeout); 6178 6179 scrollTimeout = setTimeout(() => { 6180 if (this.reviewsSection) { 6181 this.reviewsSection.focus() 6182 } 6183 }, 50); 6184 }, { once: true }); 6185 6186 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6187 } 6188 } 6189 } 6190 </script>
6190 6191 </div> 6192 6193 6194 6195 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 6196 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6197 <template x-if="active = true"> 6198 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(243048)"> 6199 <template x-if="!$store.ajaxPrices.hasPrice(243048)"> 6200 <div class="skeleton w-16 lg:w-full h-6"> 6201 Caricamento... </div> 6202 </template> 6203 <template x-if="$store.ajaxPrices.hasPrice(243048)"> 6204 <span x-html="$store.ajaxPrices.getPriceHtml(243048)"></span> 6205 </template> 6206 </div> 6207 </template> 6208 </span> 6209 6210 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6211 <?xml version="1.0" encoding="UTF-8"?> 6212<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6213 </button> 6214 </div> 6215 </div> 6216 </form> 6217 6218 </div> 6219 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6220 6221<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/15556/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6222 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="15556"> 6223 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6224 <input type="hidden" name="product" value="15556"> 6225 <a href="https://www.farma.it/buscofenact12cps-400mg.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Buscofenact dolori forti da ciclo 12 capsule molli"></a> 6226 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(15556, 'card_top_left')"> 6227 <template x-for="badge in $store.badges.getBadgesHtml(15556, 'card_top_left')"> 6228 <span x-html="badge"></span> 6229 </template> 6230 </span> 6231 <a href="https://www.farma.it/buscofenact12cps-400mg.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6232 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/4/041631021_01-6616a489.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/0/4/041631021_01.jpg" width="142" height="142" alt="Bu
6232scofenact dolori forti da ciclo 12 capsule molli" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-15556.window="updateImage" loading="lazy"></picture> 6233 </a> 6234 <div class="product-info flex flex-col grow justify-start"> 6235 <div class="items-center justify-center "> 6236 <a class="product-item-link" href="https://www.farma.it/buscofenact12cps-400mg.html" :id="`slide-desc-15556-${$id('slider-id')}`"> 6237 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6238 Buscofenact dolori forti da ciclo 12 capsule molli </h2> 6239 </a> 6240 </div> 6241 6242 <div class="mt-1 mb-1 "> 6243 <div class="flex gap-2"> 6244 <div x-data="initRating155566ac9251b9f258()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 6245 ? 'Buscofenact\u0020dolori\u0020forti\u0020da\u0020ciclo\u002012\u0020capsule\u0020molli\u0020rating.\u00204.85\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 6246 : 'Buscofenact\u0020dolori\u0020forti\u0020da\u0020ciclo\u002012\u0020capsule\u0020molli\u0020rating.\u00204.85\u0020out\u0020of\u00205\u0020stars' 6247 " role="group"> 6248 <span class="hidden">4.85</span> 6249 <span class="hidden">12</span> 6250 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6251 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6252 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6253 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6254 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6255 </svg> 6256 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6257 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6258 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6259 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6260 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6261 </svg> 6262 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6263 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6264 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6265 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6266 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6267 </svg> 6268 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6269 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6270 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6271 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6272 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6273 </svg> 6274 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 6275 <defs> 6276 <lineargradient id="partialFill15556"> 6277 <stop offset="0%" stop-color="#f6e05e"></stop> 6278 <stop offset="85%" stop-color="#f6e05e"></stop> 6279 <stop offset="85%" stop-color="#cbd5e0"></stop> 6280 <stop offset="100%" stop-color="#cbd5e0"></stop> 6281 </lineargradient> 6282 </defs> 6283 <g fill="url(#partialFill15556)"> 6284 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 6285 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6286 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 6287 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6288 </g> 6289 </svg> 6290 </div> 6291 <div class="text-xs"> 6292 (12) 6293 </div> 6294 </div> 6295 6296
6296<script> 6297 'use strict'; 6298 6299 function initRating155566ac9251b9f258() { 6300 return { 6301 get reviewsSection() { 6302 return document.getElementById('customer-review-list') 6303 || document.getElementById('customer-reviews') 6304 || document.getElementById('review-form'); 6305 }, 6306 scrollToRatings() { 6307 let scrollTimeout = null 6308 6309 if (!this.reviewsSection) { 6310 return 6311 } 6312 6313 addEventListener('scroll', () => { 6314 clearTimeout(scrollTimeout); 6315 6316 scrollTimeout = setTimeout(() => { 6317 if (this.reviewsSection) { 6318 this.reviewsSection.focus() 6319 } 6320 }, 50); 6321 }, { once: true }); 6322 6323 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6324 } 6325 } 6326 } 6327 </script>
6327 6328 </div> 6329 6330 6331 6332 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 6333 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6334 <template x-if="active = true"> 6335 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(15556)"> 6336 <template x-if="!$store.ajaxPrices.hasPrice(15556)"> 6337 <div class="skeleton w-16 lg:w-full h-6"> 6338 Caricamento... </div> 6339 </template> 6340 <template x-if="$store.ajaxPrices.hasPrice(15556)"> 6341 <span x-html="$store.ajaxPrices.getPriceHtml(15556)"></span> 6342 </template> 6343 </div> 6344 </template> 6345 </span> 6346 6347 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6348 <?xml version="1.0" encoding="UTF-8"?> 6349<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6350 </button> 6351 </div> 6352 </div> 6353 </form> 6354 6355 </div> 6356 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6357 6358<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/219341/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6359 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="219341"> 6360 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6361 <input type="hidden" name="product" value="219341"> 6362 <a href="https://www.farma.it/vitamina-d4000ui-168-cpr-mast.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Metagenics Vitamina D3 4000UI Integratore Masticabile Vegetariano- 168 Compresse"></a> 6363 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(219341, 'card_top_left')"> 6364 <template x-for="badge in $store.badges.getBadgesHtml(219341, 'card_top_left')"> 6365 <span x-html="badge"></span> 6366 </template> 6367 </span> 6368 <a href="https://www.farma.it/vitamina-d4000ui-168-cpr-mast.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6369 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/7/977544814-9b36ac4c.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/7/977544814.jpeg" width="142" height="142" alt="Metagenics Vitamina D3 4000UI Integratore Masticabile Vegetariano- 168 Compresse" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-219341.window="updateImage" loading="lazy"></picture> 6370 </a> 6371 <div class="product-info flex flex-col grow justify-start"> 6372 <div class="items-center justify-center "> 6373 <a class="product-item-link" href="https://www.farma.it/vitamina-d4000ui-168-cpr-mast.html" :id="`slide-desc-219341-${$id('slider-id')}`"> 6374 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6375 Metagenics Vitamina D3 4000UI Integratore Masticabile Vegetariano- 168 Compresse </h2> 6376 </a> 6377 </div> 6378 6379 <div class="mt-1 mb-1 "> 6380 <div class="flex gap-2"> 6381 <div x-data="initRating2193416ac925bbe8c0d()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 6382 ? 'Metagenics\u0020Vitamina\u0020D3\u00204000UI\u0020Integratore\u0020Masticabile\u0020Vegetariano\u002D\u0020168\u0020Compresse\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 6383 : 'Metagenics\u0020Vitamina\u0020D3\u00204000UI\u0020Integratore\u0020Masticabile\u0020Vegetariano\u002D\u0020168\u0020Compresse\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 6384 " role="group">
6385 <span class="hidden">5</span> 6386 <span class="hidden">17</span> 6387 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6388 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6389 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6390 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6391 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6392 </svg> 6393 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6394 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6395 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6396 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6397 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6398 </svg> 6399 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6400 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6401 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6402 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6403 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6404 </svg> 6405 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6406 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6407 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6408 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6409 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6410 </svg> 6411 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6412 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6413 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6414 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6415 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6416 </svg> 6417 </div> 6418 <div class="text-xs"> 6419 (17) 6420 </div> 6421 </div> 6422 6423
6423<script> 6424 'use strict'; 6425 6426 function initRating2193416ac925bbe8c0d() { 6427 return { 6428 get reviewsSection() { 6429 return document.getElementById('customer-review-list') 6430 || document.getElementById('customer-reviews') 6431 || document.getElementById('review-form'); 6432 }, 6433 scrollToRatings() { 6434 let scrollTimeout = null 6435 6436 if (!this.reviewsSection) { 6437 return 6438 } 6439 6440 addEventListener('scroll', () => { 6441 clearTimeout(scrollTimeout); 6442 6443 scrollTimeout = setTimeout(() => { 6444 if (this.reviewsSection) { 6445 this.reviewsSection.focus() 6446 } 6447 }, 50); 6448 }, { once: true }); 6449 6450 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6451 } 6452 } 6453 } 6454 </script>
6454 6455 </div> 6456 6457 6458 6459 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 6460 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6461 <template x-if="active = true"> 6462 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(219341)"> 6463 <template x-if="!$store.ajaxPrices.hasPrice(219341)"> 6464 <div class="skeleton w-16 lg:w-full h-6"> 6465 Caricamento... </div> 6466 </template> 6467 <template x-if="$store.ajaxPrices.hasPrice(219341)"> 6468 <span x-html="$store.ajaxPrices.getPriceHtml(219341)"></span> 6469 </template> 6470 </div> 6471 </template> 6472 </span> 6473 6474 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6475 <?xml version="1.0" encoding="UTF-8"?> 6476<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6477 </button> 6478 </div> 6479 </div> 6480 </form> 6481 6482 </div> 6483 </div> 6484 6485<div style="top: calc(50% - 24px);" class="swiper-button-prev left-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 6486 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 6487 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 6488<title>chevron-left</title></svg> 6489</div> 6490<div style="top: calc(50% - 24px);" class="swiper-button-next right-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden hover:!stroke-primary opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 6491 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 6492 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 6493<title>chevron-right</title></svg> 6494</div> 6495<div class="relative md:opacity-0 md:pointer-events-none swiper-pagination dark-bullets mt-6 flex-wrap gap-y-1"></div> 6496 </div> 6497 </div></div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="main" data-pb-style="HSKOPXQ"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="M7BB7NG"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="B8BK8B8"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="UCCO9LR"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="mb-2 flex justify-between items-center"> 6498 <h2 class="h2 font-baloo-bhaina font-bold">
6499 <span>Novità e Promozioni</span> 6500 </h2> 6501 <a class="text-base text-secondary hover:underline items-center hidden md:flex" href="https://www.farma.it/coupon-e-promo/"> 6502 <span class="pr-2">Scopri tutti i coupon</span> 6503 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current text-secondary" width="16" height="16" role="img"> 6504 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 6505<title>heroicons/outline/chevron-right</title></svg> 6506 6507 </a> 6508</div></div></div></div></div><div class="pagebuilder-column-group banner-grid" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="P2EO5UP"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="U83AWFG"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="DRF6XGU"><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="R71DLF5"><a href="https://web.satispay.com/promocode/FARMAIT25?locale=it-it" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/Satispay_FARMAIT25_HP_Banner_1-adc97381.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/Satispay_FARMAIT25_HP_Banner_1.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="YF3KU4U" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/Satispay_FARMAIT25_HP_Banner_1-adc97381.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/Satispay_FARMAIT25_HP_Banner_1.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="EIA7E3M" loading="lazy"></picture></a></figure><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="SHUOUCR"><a href="/eucerin-week" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN1_06_26-cc36b0cf.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN1_06_26.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="BDYK45E" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN1_06_26-cc36b0cf.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN1_06_26.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="M28UMRH" loading="lazy"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="OC10Y9I"><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="AV66S8N"><a href="https://wa.me/447418640409" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/Whatsapp_HP_Banner_2-b1208593.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/Whatsapp_HP_Banner_2.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="XSMBTRT" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/Whatsapp_HP_Banner_2-b1208593.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/Whatsapp_HP_Banner_2.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="E0RH47S" loading="lazy"></picture></a></figure><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="A6J1PY4"><a href="/eucerin-week" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN2_06_26_2_-1deba563.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN2_06_26_2_.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="VKQB3K6" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN2_06_26_2_-1deba563.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN2_06_26_2_.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="K1YPEY4" loading="lazy"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="QCXIJI9"><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="TH2W4WI"><a href="/resi-e-rimborsi2" target="" data-link-type="default" title="BannerHomepage 17032026" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/reso_HB-1f9e327e.webp"><img width="2728" height="1536" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/reso_HB.jpg" alt="BannerHomepage 17032026" title="BannerHomepage 17032026" loading="lazy" data-element="desktop_image" data-pb-style="YVQKUE1" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/reso_HB-1f9e327e.webp"><img width="2728" height="1536" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/reso_HB.jpg" alt="BannerHomepage 17032026" title="BannerHomepage 17032026" loading="lazy" data-element="mobile_image" data-pb-style="W0J9YOL" loading="lazy"></picture></a></figure><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="DY3M2E6"><a href="/eucerin-week" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN3_06_26-a7242838.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN3_06_26.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="MT66V4D" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN3_06_26-a7242838.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN3_06_26.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="KO9CGE2" loading="lazy"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="SCST5J9"><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="MBI05LV"><a href="https://www.farma.it/app" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/FarmaIT_App_ADV3_11_25_HPBanner4-0443d373.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/FarmaIT_App_ADV3_11_25_HPBanner4.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="S0OY76P" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/FarmaIT_App_ADV3_11_25_HPBanner4-0443d373.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/FarmaIT_App_ADV3_11_25_HPBanner4.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="BHFW59E" loading="lazy"></picture></a></figure><figure data-content-type="image" data-appearance="full-width" data-intersect="false" data-element="main" data-pb-style="RDFYII7"><a href="/eucerin-week" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN4_06_26_2_-2c5054f7.webp"><img width="824" height="464" class="pagebuilder-mobile-hidden" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN4_06_26_2_.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="NYM354P" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN4_06_26_2_-2c5054f7.webp"><img width="824" height="464" class="pagebuilder-mobile-only" src="https://www.farma.it/media/wysiwyg/BWeek_Eucerin_CPN4_06_26_2_.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="N8N7R41" loading="lazy"></picture></a></figure></div></div><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JGKEPCM"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="TI92LDG"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a class="text-base text-secondary hover:underline items-center justify-center mt-5 flex md:hidden" href="https://www.farma.it/coupon-e-promo/"> 6509 <span class="pr-2 text-center">Scopri tutti i coupon</span> 6510 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current text-secondary" width="16" height="16" role="img"> 6511 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 6512<title>heroicons/outline/chevron-right</title></svg> 6513 6514</a></div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="main" data-pb-style="QIP2GVP"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="RN3QQNV"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="KPEVMDL"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="QWJRHGW"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="mb-6 md:mb-8 flex justify-center"> 6515 <h2 class="h2 font-baloo-bhaina font-bold text-center">
6516 <span>Le categorie del momento</span> 6517 </h2> 6518</div></div><div data-content-type="text" data-appearance="default" data-element="main"><p> 6519</p><div class="carousel-ngutter" style="--carousel-gutter: 4px"> 6520 <div class="swiper" id="card-carousel-6ac9293b92153"> 6521 <div class="swiper-wrapper md:grid md:grid-cols-6 md:gap-y-12"> 6522 <a href="https://www.farma.it/bellezza-e-cosmetica.html" class="relative w-1/2 sm:w-1/3 md:w-full swiper-slide group flex-col flex flex-nowrap"> 6523 <div class="block"> 6524 <picture class="max-w-[65px] mx-auto"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/cosmesi_2-0b563245.webp"><img src="/media/wysiwyg/cosmesi_2.png" alt="Bellezza & Cosmetica" class="max-w-[65px] mx-auto" width="65" height="65" loading="lazy"></picture> 6525 </div> 6526 <div class="block text-center pt-6"> 6527 <span class="text-base font-medium group-hover:text-secondary"> 6528 Bellezza & Cosmetica </span> 6529 </div> 6530 </a> 6531 <a href="https://www.farma.it/mamme-e-bambini.html" class="relative w-1/2 sm:w-1/3 md:w-full swiper-slide group flex-col flex flex-nowrap"> 6532 <div class="block"> 6533 <picture class="max-w-[65px] mx-auto"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/mamma_2-7e381768.webp"><img src="/media/.renditions/wysiwyg/mamma_2.png" alt="Mamma & Bambini" class="max-w-[65px] mx-auto" width="65" height="65" loading="lazy"></picture> 6534 </div> 6535 <div class="block text-center pt-6"> 6536 <span class="text-base font-medium group-hover:text-secondary"> 6537 Mamma & Bambini </span> 6538 </div> 6539 </a> 6540 <a href="https://www.farma.it/alimentazione-e-integratori.html" class="relative w-1/2 sm:w-1/3 md:w-full swiper-slide group flex-col flex flex-nowrap"> 6541 <div class="block"> 6542 <picture class="max-w-[65px] mx-auto"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/integratori_2-43f4bd2a.webp"><img src="/media/.renditions/wysiwyg/integratori_2.png" alt="Alimentazione & Integratori" class="max-w-[65px] mx-auto" width="65" height="65" loading="lazy"></picture> 6543 </div> 6544 <div class="block text-center pt-6"> 6545 <span class="text-base font-medium group-hover:text-secondary"> 6546 Alimentazione & Integratori </span> 6547 </div> 6548 </a> 6549 <a href="https://www.farma.it/veterinaria-e-animali.html" class="relative w-1/2 sm:w-1/3 md:w-full swiper-slide group flex-col flex flex-nowrap"> 6550 <div class="block"> 6551 <picture class="max-w-[65px] mx-auto"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/animali_2-f4fcf973.webp"><img src="/media/.renditions/wysiwyg/animali_2.png" alt="Veterinaria & Animali" class="max-w-[65px] mx-auto" width="65" height="65" loading="lazy"></picture> 6552 </div> 6553 <div class="block text-center pt-6"> 6554 <span class="text-base font-medium group-hover:text-secondary"> 6555 Veterinaria & Animali </span> 6556 </div> 6557 </a> 6558 <a href="https://www.farma.it/igiene-e-benessere.html" class="relative w-1/2 sm:w-1/3 md:w-full swiper-slide group flex-col flex flex-nowrap"> 6559 <div class="block"> 6560 <picture class="max-w-[65px] mx-auto"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/igiene_2-b522562d.webp"><img src="/media/.renditions/wysiwyg/igiene_2.png" alt="Igiene & Benessere" class="max-w-[65px] mx-auto" width="65" height="65" loading="lazy"></picture> 6561 </div> 6562 <div class="block text-center pt-6">
6563 <span class="text-base font-medium group-hover:text-secondary"> 6564 Igiene & Benessere </span> 6565 </div> 6566 </a> 6567 <a href="https://www.farma.it/rimedi-e-salute.html" class="relative w-1/2 sm:w-1/3 md:w-full swiper-slide group flex-col flex flex-nowrap"> 6568 <div class="block"> 6569 <picture class="max-w-[65px] mx-auto"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/farmaci_1_1-a5dffa76.webp"><img src="/media/wysiwyg/farmaci_1_1.png" alt="Rimedi e Salute" class="max-w-[65px] mx-auto" width="65" height="65" loading="lazy"></picture> 6570 </div> 6571 <div class="block text-center pt-6"> 6572 <span class="text-base font-medium group-hover:text-secondary"> 6573 Rimedi e Salute </span> 6574 </div> 6575 </a> 6576 </div> 6577 <div class="swiper-pagination md:hidden dark-bullets my-5"></div> 6578 </div> 6579</div>
6580<script> 6581 window.addEventListener("DOMContentLoaded", (event) => { 6582 if (window.matchMedia('(max-width: 767px)').matches) { 6583 initCarousel("#card-carousel-6ac9293b92153", {}); 6584 } 6585 }); 6586</script>
6586 6587 6588</div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="main" data-pb-style="UP4EUFB"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group fading-slide-container" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="ENREI1A"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="FOG7URQ"><div class="pagebuilder-column fading-slide md:mr-4" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="OQRITY4"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><a href="/promo-farmait"><picture class="rounded-xl md:mr-6 z-10"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/Solari_HpB_10_26-8e7f37a8.webp"><img src="/media/wysiwyg/Solari_HpB_10_26.png" alt="Back To School 2026" width="404" height="326.86" class="rounded-xl md:mr-6 z-10" loading="lazy" /></picture></a></div></div><div class="pagebuilder-column z-0" data-content-type="column" data-appearance="align-bottom" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="DMNHB7H"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="carousel-header"> 6589 <div class="mt-4 md:mt-0 mb-2 flex justify-between items-center gap-4"> 6590 <h2 class="h2 font-baloo-bhaina font-bold"> 6591 <span>Prodotti del Mese</span> 6592 </h2> 6593 </div> 6594</div></div><div class="carousel-two-columns-right" data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="false" data-show-arrows="true" data-show-dots="true" data-carousel-mode="default" data-intersect="false" data-center-padding="90px" data-element="main"><div class="product-items widget-product-carousel carousel-ngutter pb-4" x-data="{ active: false }" x-intersect.once="active = true"> 6595 <div class="swiper swiper-container group"> 6596 <div class="swiper-wrapper"> 6597 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6598 6599<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/269961/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6600 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="269961"> 6601 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6602 <input type="hidden" name="product" value="269961"> 6603 <a href="https://www.farma.it/989706318-vichy-l-oreal-italia-spa-liftactiv-collagen-spec16.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Vichy Liftactiv Collagen Specialist 16 Siero da 30 ml"></a> 6604 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(269961, 'card_top_left')"> 6605 <template x-for="badge in $store.badges.getBadgesHtml(269961, 'card_top_left')"> 6606 <span x-html="badge"></span> 6607 </template> 6608 </span> 6609 <a href="https://www.farma.it/989706318-vichy-l-oreal-italia-spa-liftactiv-collagen-spec16.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6610 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/3/3/3337875912600_01-8b299d3b.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/3/3/3337875912600_01.jpg" width="142" height="142" alt="Vichy Liftactiv Collagen Specialist 16 Siero da 30 ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-269961.window="updateImage" loading="lazy"></picture> 6611 </a> 6612 <div class="product-info flex flex-col grow justify-start"> 6613 <div class="items-center justify-center "> 6614 <a class="product-item-link" href="https://www.farma.it/989706318-vichy-l-oreal-italia-spa-liftactiv-collagen-spec16.html" :id="`slide-desc-269961-${$id('slider-id')}`"> 6615 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6616 Vichy Liftactiv Collagen Specialist 16 Siero da 30 ml </h2> 6617 </a> 6618 </div> 6619 6620 <div class="mt-1 mb-1 "> 6621 </div> 6622 6623 6624 6625 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none">
6626 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6627 <template x-if="active = true"> 6628 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(269961)"> 6629 <template x-if="!$store.ajaxPrices.hasPrice(269961)"> 6630 <div class="skeleton w-16 lg:w-full h-6"> 6631 Caricamento... </div> 6632 </template> 6633 <template x-if="$store.ajaxPrices.hasPrice(269961)"> 6634 <span x-html="$store.ajaxPrices.getPriceHtml(269961)"></span> 6635 </template> 6636 </div> 6637 </template> 6638 </span> 6639 6640 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6641 <?xml version="1.0" encoding="UTF-8"?> 6642<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6643 </button> 6644 </div> 6645 </div> 6646 </form> 6647 6648 </div> 6649 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6650 6651<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/275691/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6652 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="275691"> 6653 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6654 <input type="hidden" name="product" value="275691"> 6655 <a href="https://www.farma.it/la-roche-posay-hyalu-b5-siero-concetrato-antirughe-viso-30ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="La Roche-Posay Hyalu B5 Siero Concentrato Viso 30 ml"></a> 6656 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(275691, 'card_top_left')"> 6657 <template x-for="badge in $store.badges.getBadgesHtml(275691, 'card_top_left')"> 6658 <span x-html="badge"></span> 6659 </template> 6660 </span> 6661 <a href="https://www.farma.it/la-roche-posay-hyalu-b5-siero-concetrato-antirughe-viso-30ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6662 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/951043468-d489eff0.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/9/5/951043468.jpeg" width="142" height="142" alt="La Roche-Posay Hyalu B5 Siero Concentrato Viso 30 ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-275691.window="updateImage" loading="lazy"></picture> 6663 </a> 6664 <div class="product-info flex flex-col grow justify-start"> 6665 <div class="items-center justify-center "> 6666 <a class="product-item-link" href="https://www.farma.it/la-roche-posay-hyalu-b5-siero-concetrato-antirughe-viso-30ml.html" :id="`slide-desc-275691-${$id('slider-id')}`"> 6667 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6668 La Roche-Posay Hyalu B5 Siero Concentrato Viso 30 ml </h2> 6669 </a> 6670 </div> 6671 6672 <div class="mt-1 mb-1 "> 6673 <div class="flex gap-2"> 6674 <div x-data="initRating2756916ac9256e122ae()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection
6675 ? 'La\u0020Roche\u002DPosay\u0020Hyalu\u0020B5\u0020Siero\u0020Concentrato\u0020Viso\u002030\u0020ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 6676 : 'La\u0020Roche\u002DPosay\u0020Hyalu\u0020B5\u0020Siero\u0020Concentrato\u0020Viso\u002030\u0020ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 6677 " role="group"> 6678 <span class="hidden">5</span> 6679 <span class="hidden">2</span> 6680 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6681 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6682 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6683 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6684 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6685 </svg> 6686 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6687 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6688 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6689 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6690 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6691 </svg> 6692 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6693 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6694 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6695 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6696 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6697 </svg> 6698 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6699 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6700 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6701 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6702 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6703 </svg> 6704 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6705 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6706 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6707 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6708 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6709 </svg> 6710 </div> 6711 <div class="text-xs"> 6712 (2) 6713 </div> 6714 </div> 6715 6716
6716<script> 6717 'use strict'; 6718 6719 function initRating2756916ac9256e122ae() { 6720 return { 6721 get reviewsSection() { 6722 return document.getElementById('customer-review-list') 6723 || document.getElementById('customer-reviews') 6724 || document.getElementById('review-form'); 6725 }, 6726 scrollToRatings() { 6727 let scrollTimeout = null 6728 6729 if (!this.reviewsSection) { 6730 return 6731 } 6732 6733 addEventListener('scroll', () => { 6734 clearTimeout(scrollTimeout); 6735 6736 scrollTimeout = setTimeout(() => { 6737 if (this.reviewsSection) { 6738 this.reviewsSection.focus() 6739 } 6740 }, 50); 6741 }, { once: true }); 6742 6743 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6744 } 6745 } 6746 } 6747 </script>
6747 6748 </div> 6749 6750 6751 6752 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 6753 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6754 <template x-if="active = true"> 6755 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(275691)"> 6756 <template x-if="!$store.ajaxPrices.hasPrice(275691)"> 6757 <div class="skeleton w-16 lg:w-full h-6"> 6758 Caricamento... </div> 6759 </template> 6760 <template x-if="$store.ajaxPrices.hasPrice(275691)"> 6761 <span x-html="$store.ajaxPrices.getPriceHtml(275691)"></span> 6762 </template> 6763 </div> 6764 </template> 6765 </span> 6766 6767 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6768 <?xml version="1.0" encoding="UTF-8"?> 6769<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6770 </button> 6771 </div> 6772 </div> 6773 </form> 6774 6775 </div> 6776 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6777 6778<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/40985/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6779 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="40985"> 6780 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6781 <input type="hidden" name="product" value="40985"> 6782 <a href="https://www.farma.it/dercos-shenergiz400ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Vichy Dercos Technique Shampoo Energizzante Anticaduta con Aminexil 400 ml"></a> 6783 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(40985, 'card_top_left')"> 6784 <template x-for="badge in $store.badges.getBadgesHtml(40985, 'card_top_left')"> 6785 <span x-html="badge"></span> 6786 </template> 6787 </span> 6788 <a href="https://www.farma.it/dercos-shenergiz400ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6789 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/8/1/8163e59b5d2c0ededacb0e2a8d0e26136a105c1d_1-4eda12e7.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/8/1/8163e59b5d2c0ededacb0e2a8d0e26136a105c1d_1.jpg" width="142" height="142" alt="Vichy Dercos Technique Shampoo Energizzante Anticaduta con Aminexil 400 ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-40985.window="updateImage" loading="lazy"></picture> 6790 </a> 6791 <div class="product-info flex flex-col grow justify-start"> 6792 <div class="items-center justify-center "> 6793 <a class="product-item-link" href="https://www.farma.it/dercos-shenergiz400ml.html" :id="`slide-desc-40985-${$id('slider-id')}`"> 6794 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6795 Vichy Dercos Technique Shampoo Energizzante Anticaduta con Aminexil 400 ml </h2> 6796 </a> 6797 </div> 6798 6799 <div class="mt-1 mb-1 "> 6800 <div class="flex gap-2"> 6801 <div x-data="initRating409856ac9256e1a862()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 6802 ? 'Vichy\u0020Dercos\u0020Technique\u0020Shampoo\u0020Energizzante\u0020Anticaduta\u0020con\u0020Aminexil\u0020400\u0020ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 6803 : 'Vichy\u0020Dercos\u0020Technique\u0020Shampoo\u0020Energizzante\u0020Anticaduta\u0020con\u0020Aminexil\u0020400\u0020ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 6804 " role="group">
6805 <span class="hidden">5</span> 6806 <span class="hidden">3</span> 6807 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6808 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6809 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6810 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6811 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6812 </svg> 6813 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6814 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6815 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6816 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6817 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6818 </svg> 6819 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6820 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6821 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6822 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6823 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6824 </svg> 6825 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6826 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6827 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6828 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6829 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6830 </svg> 6831 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6832 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6833 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6834 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6835 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6836 </svg> 6837 </div> 6838 <div class="text-xs"> 6839 (3) 6840 </div> 6841 </div> 6842 6843
6843<script> 6844 'use strict'; 6845 6846 function initRating409856ac9256e1a862() { 6847 return { 6848 get reviewsSection() { 6849 return document.getElementById('customer-review-list') 6850 || document.getElementById('customer-reviews') 6851 || document.getElementById('review-form'); 6852 }, 6853 scrollToRatings() { 6854 let scrollTimeout = null 6855 6856 if (!this.reviewsSection) { 6857 return 6858 } 6859 6860 addEventListener('scroll', () => { 6861 clearTimeout(scrollTimeout); 6862 6863 scrollTimeout = setTimeout(() => { 6864 if (this.reviewsSection) { 6865 this.reviewsSection.focus() 6866 } 6867 }, 50); 6868 }, { once: true }); 6869 6870 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6871 } 6872 } 6873 } 6874 </script>
6874 6875 </div> 6876 6877 6878 6879 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 6880 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 6881 <template x-if="active = true"> 6882 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(40985)"> 6883 <template x-if="!$store.ajaxPrices.hasPrice(40985)"> 6884 <div class="skeleton w-16 lg:w-full h-6"> 6885 Caricamento... </div> 6886 </template> 6887 <template x-if="$store.ajaxPrices.hasPrice(40985)"> 6888 <span x-html="$store.ajaxPrices.getPriceHtml(40985)"></span> 6889 </template> 6890 </div> 6891 </template> 6892 </span> 6893 6894 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 6895 <?xml version="1.0" encoding="UTF-8"?> 6896<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 6897 </button> 6898 </div> 6899 </div> 6900 </form> 6901 6902 </div> 6903 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 6904 6905<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/117992/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 6906 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="117992"> 6907 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 6908 <input type="hidden" name="product" value="117992"> 6909 <a href="https://www.farma.it/eucerin-sun-pigm-ctrl-50-50ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Eucerin Sun Pigment Control SPF50+ fluido viso da 50 ml"></a> 6910 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(117992, 'card_top_left')"> 6911 <template x-for="badge in $store.badges.getBadgesHtml(117992, 'card_top_left')"> 6912 <span x-html="badge"></span> 6913 </template> 6914 </span> 6915 <a href="https://www.farma.it/eucerin-sun-pigm-ctrl-50-50ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 6916 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/e/u/eucerin-21956299.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/e/u/eucerin.jpg" width="142" height="142" alt="Eucerin Sun Pigment Control SPF50+ fluido viso da 50 ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-117992.window="updateImage" loading="lazy"></picture> 6917 </a> 6918 <div class="product-info flex flex-col grow justify-start"> 6919 <div class="items-center justify-center "> 6920 <a class="product-item-link" href="https://www.farma.it/eucerin-sun-pigm-ctrl-50-50ml.html" :id="`slide-desc-117992-${$id('slider-id')}`"> 6921 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 6922 Eucerin Sun Pigment Control SPF50+ fluido viso da 50 ml </h2> 6923 </a> 6924 </div> 6925 6926 <div class="mt-1 mb-1 "> 6927 <div class="flex gap-2"> 6928 <div x-data="initRating1179926ac917fe5da03()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 6929 ? 'Eucerin\u0020Sun\u0020Pigment\u0020Control\u0020SPF50\u002B\u0020fluido\u0020viso\u0020da\u002050\u0020ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 6930 : 'Eucerin\u0020Sun\u0020Pigment\u0020Control\u0020SPF50\u002B\u0020fluido\u0020viso\u0020da\u002050\u0020ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 6931 " role="group">
6932 <span class="hidden">5</span> 6933 <span class="hidden">2</span> 6934 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6935 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6936 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6937 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6938 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6939 </svg> 6940 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6941 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6942 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6943 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6944 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6945 </svg> 6946 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6947 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6948 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6949 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6950 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6951 </svg> 6952 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6953 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6954 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6955 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6956 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6957 </svg> 6958 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 6959 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 6960 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 6961 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 6962 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 6963 </svg> 6964 </div> 6965 <div class="text-xs"> 6966 (2) 6967 </div> 6968 </div> 6969 6970
6970<script> 6971 'use strict'; 6972 6973 function initRating1179926ac917fe5da03() { 6974 return { 6975 get reviewsSection() { 6976 return document.getElementById('customer-review-list') 6977 || document.getElementById('customer-reviews') 6978 || document.getElementById('review-form'); 6979 }, 6980 scrollToRatings() { 6981 let scrollTimeout = null 6982 6983 if (!this.reviewsSection) { 6984 return 6985 } 6986 6987 addEventListener('scroll', () => { 6988 clearTimeout(scrollTimeout); 6989 6990 scrollTimeout = setTimeout(() => { 6991 if (this.reviewsSection) { 6992 this.reviewsSection.focus() 6993 } 6994 }, 50); 6995 }, { once: true }); 6996 6997 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 6998 } 6999 } 7000 } 7001 </script>
7001 7002 </div> 7003 7004 7005 7006 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 7007 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 7008 <template x-if="active = true"> 7009 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(117992)"> 7010 <template x-if="!$store.ajaxPrices.hasPrice(117992)"> 7011 <div class="skeleton w-16 lg:w-full h-6"> 7012 Caricamento... </div> 7013 </template> 7014 <template x-if="$store.ajaxPrices.hasPrice(117992)"> 7015 <span x-html="$store.ajaxPrices.getPriceHtml(117992)"></span> 7016 </template> 7017 </div> 7018 </template> 7019 </span> 7020 7021 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 7022 <?xml version="1.0" encoding="UTF-8"?> 7023<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 7024 </button> 7025 </div> 7026 </div> 7027 </form> 7028 7029 </div> 7030 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 7031 7032<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/229482/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 7033 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="229482"> 7034 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 7035 <input type="hidden" name="product" value="229482"> 7036 <a href="https://www.farma.it/rilastil-xerolact-olio-1000ml.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Rilastil Xerolact Olio detergente 1000ml"></a> 7037 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(229482, 'card_top_left')"> 7038 <template x-for="badge in $store.badges.getBadgesHtml(229482, 'card_top_left')"> 7039 <span x-html="badge"></span> 7040 </template> 7041 </span> 7042 <a href="https://www.farma.it/rilastil-xerolact-olio-1000ml.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 7043 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/b/d/bd236fc3-xz_1545370_1-f53f25fd.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/b/d/bd236fc3-xz_1545370_1.jpg" width="142" height="142" alt="Rilastil Xerolact Olio detergente 1000ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-229482.window="updateImage" loading="lazy"></picture> 7044 </a> 7045 <div class="product-info flex flex-col grow justify-start"> 7046 <div class="items-center justify-center "> 7047 <a class="product-item-link" href="https://www.farma.it/rilastil-xerolact-olio-1000ml.html" :id="`slide-desc-229482-${$id('slider-id')}`"> 7048 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 7049 Rilastil Xerolact Olio detergente 1000ml </h2> 7050 </a> 7051 </div> 7052 7053 <div class="mt-1 mb-1 "> 7054 <div class="flex gap-2"> 7055 <div x-data="initRating2294826ac9256e1d794()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 7056 ? 'Rilastil\u0020Xerolact\u0020Olio\u0020detergente\u00201000ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 7057 : 'Rilastil\u0020Xerolact\u0020Olio\u0020detergente\u00201000ml\u0020rating.\u00205\u0020out\u0020of\u00205\u0020stars' 7058 " role="group">
7059 <span class="hidden">5</span> 7060 <span class="hidden">19</span> 7061 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7062 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7063 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7064 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7065 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7066 </svg> 7067 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7068 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7069 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7070 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7071 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7072 </svg> 7073 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7074 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7075 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7076 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7077 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7078 </svg> 7079 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7080 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7081 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7082 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7083 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7084 </svg> 7085 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7086 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7087 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7088 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7089 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7090 </svg> 7091 </div> 7092 <div class="text-xs"> 7093 (19) 7094 </div> 7095 </div> 7096 7097
7097<script> 7098 'use strict'; 7099 7100 function initRating2294826ac9256e1d794() { 7101 return { 7102 get reviewsSection() { 7103 return document.getElementById('customer-review-list') 7104 || document.getElementById('customer-reviews') 7105 || document.getElementById('review-form'); 7106 }, 7107 scrollToRatings() { 7108 let scrollTimeout = null 7109 7110 if (!this.reviewsSection) { 7111 return 7112 } 7113 7114 addEventListener('scroll', () => { 7115 clearTimeout(scrollTimeout); 7116 7117 scrollTimeout = setTimeout(() => { 7118 if (this.reviewsSection) { 7119 this.reviewsSection.focus() 7120 } 7121 }, 50); 7122 }, { once: true }); 7123 7124 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 7125 } 7126 } 7127 } 7128 </script>
7128 7129 </div> 7130 7131 7132 7133 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 7134 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 7135 <template x-if="active = true"> 7136 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(229482)"> 7137 <template x-if="!$store.ajaxPrices.hasPrice(229482)"> 7138 <div class="skeleton w-16 lg:w-full h-6"> 7139 Caricamento... </div> 7140 </template> 7141 <template x-if="$store.ajaxPrices.hasPrice(229482)"> 7142 <span x-html="$store.ajaxPrices.getPriceHtml(229482)"></span> 7143 </template> 7144 </div> 7145 </template> 7146 </span> 7147 7148 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 7149 <?xml version="1.0" encoding="UTF-8"?> 7150<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 7151 </button> 7152 </div> 7153 </div> 7154 </form> 7155 7156 </div> 7157 <div class="w-1/2 md:w-1/3 lg:w-1/4 2xl:w-1/6 swiper-slide min-h-full"> 7158 7159<form method="post" action="https://www.farma.it/checkout/cart/add/uenc/%25uenc%25/product/63418/" class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full h-full 7160 border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3 " data-feedaty-product-id="63418"> 7161 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 7162 <input type="hidden" name="product" value="63418"> 7163 <a href="https://www.farma.it/defence-hair-shudel400ml-0.html" class="product-item-link absolute top-0 left-0 h-full w-full" aria-label="Bionike Defence Hair Shampoo Dermolenitivo Cute Sensibile Pro-Vitamina B5 400ml"></a> 7164 <span class="badge-container flex flex-wrap gap-2 absolute top-2 left-2 z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode(63418, 'card_top_left')"> 7165 <template x-for="badge in $store.badges.getBadgesHtml(63418, 'card_top_left')"> 7166 <span x-html="badge"></span> 7167 </template> 7168 </span> 7169 <a href="https://www.farma.it/defence-hair-shudel400ml-0.html" class="product photo product-item-photo block mx-auto mb-4 " tabindex="-1"> 7170 <picture class="product-image-photo"><source type="image/webp" srcset="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/d/a/data_pharmadb_973293006-80e32b70.webp"><img src="https://www.farma.it/media/catalog/product/cache/f3921bc2d6fbe5976d60e86f03705674/d/a/data_pharmadb_973293006.jpg" width="142" height="142" alt="Bionike Defence Hair Shampoo Dermolenitivo Cute Sensibile Pro-Vitamina B5 400ml" class="product-image-photo" loading="lazy" x-data="initProductItemImage" @update-gallery-63418.window="updateImage" loading="lazy"></picture> 7171 </a> 7172 <div class="product-info flex flex-col grow justify-start"> 7173 <div class="items-center justify-center "> 7174 <a class="product-item-link" href="https://www.farma.it/defence-hair-shudel400ml-0.html" :id="`slide-desc-63418-${$id('slider-id')}`"> 7175 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 7176 Bionike Defence Hair Shampoo Dermolenitivo Cute Sensibile Pro-Vitamina B5 400ml </h2> 7177 </a> 7178 </div> 7179 7180 <div class="mt-1 mb-1 "> 7181 <div class="flex gap-2"> 7182 <div x-data="initRating634186ac917fe603c3()" @keyup.enter="scrollToRatings()" @click="scrollToRatings()" class="rating-summary flex" :class="{'cursor-pointer' : reviewsSection}" tabindex="0" :aria-label="reviewsSection 7183 ? 'Bionike\u0020Defence\u0020Hair\u0020Shampoo\u0020Dermolenitivo\u0020Cute\u0020Sensibile\u0020Pro\u002DVitamina\u0020B5\u0020400ml\u0020rating.\u00204.65\u0020out\u0020of\u00205\u0020stars.\u0020Click\u0020to\u0020go\u0020to\u0020reviews.' 7184 : 'Bionike\u0020Defence\u0020Hair\u0020Shampoo\u0020Dermolenitivo\u0020Cute\u0020Sensibile\u0020Pro\u002DVitamina\u0020B5\u0020400ml\u0020rating.\u00204.65\u0020out\u0020of\u00205\u0020stars' 7185 " role="group">
7186 <span class="hidden">4.65</span> 7187 <span class="hidden">3</span> 7188 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7189 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7190 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7191 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7192 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7193 </svg> 7194 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7195 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7196 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7197 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7198 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7199 </svg> 7200 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7201 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7202 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7203 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7204 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7205 </svg> 7206 <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #f6e05e" fill="currentColor" aria-hidden="true"> 7207 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 7208 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7209 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 7210 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7211 </svg> 7212 <svg xmlns="http://www.w3.org/2000/svg" viewbox="3 0 20 20" fill="currentColor" class="w-4 h-4" aria-hidden="true"> 7213 <defs> 7214 <lineargradient id="partialFill63418"> 7215 <stop offset="0%" stop-color="#f6e05e"></stop> 7216 <stop offset="65%" stop-color="#f6e05e"></stop> 7217 <stop offset="65%" stop-color="#cbd5e0"></stop> 7218 <stop offset="100%" stop-color="#cbd5e0"></stop> 7219 </lineargradient> 7220 </defs> 7221 <g fill="url(#partialFill63418)"> 7222 <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 7223 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 7224 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 7225 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> 7226 </g> 7227 </svg> 7228 </div> 7229 <div class="text-xs"> 7230 (3) 7231 </div> 7232 </div> 7233 7234
7234<script> 7235 'use strict'; 7236 7237 function initRating634186ac917fe603c3() { 7238 return { 7239 get reviewsSection() { 7240 return document.getElementById('customer-review-list') 7241 || document.getElementById('customer-reviews') 7242 || document.getElementById('review-form'); 7243 }, 7244 scrollToRatings() { 7245 let scrollTimeout = null 7246 7247 if (!this.reviewsSection) { 7248 return 7249 } 7250 7251 addEventListener('scroll', () => { 7252 clearTimeout(scrollTimeout); 7253 7254 scrollTimeout = setTimeout(() => { 7255 if (this.reviewsSection) { 7256 this.reviewsSection.focus() 7257 } 7258 }, 50); 7259 }, { once: true }); 7260 7261 this.reviewsSection.scrollIntoView({behavior: 'smooth'}) 7262 } 7263 } 7264 } 7265 </script>
7265 7266 </div> 7267 7268 7269 7270 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 7271 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 7272 <template x-if="active = true"> 7273 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode(63418)"> 7274 <template x-if="!$store.ajaxPrices.hasPrice(63418)"> 7275 <div class="skeleton w-16 lg:w-full h-6"> 7276 Caricamento... </div> 7277 </template> 7278 <template x-if="$store.ajaxPrices.hasPrice(63418)"> 7279 <span x-html="$store.ajaxPrices.getPriceHtml(63418)"></span> 7280 </template> 7281 </div> 7282 </template> 7283 </span> 7284 7285 <button class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Posizione aggiungi al carrello"> 7286 <?xml version="1.0" encoding="UTF-8"?> 7287<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewbox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 7288 </button> 7289 </div> 7290 </div> 7291 </form> 7292 7293 </div> 7294 </div> 7295 7296<div style="top: calc(50% - 24px);" class="swiper-button-prev left-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 7297 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 7298 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 7299<title>chevron-left</title></svg> 7300</div> 7301<div style="top: calc(50% - 24px);" class="swiper-button-next right-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden hover:!stroke-primary opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 7302 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 7303 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7304<title>chevron-right</title></svg> 7305</div> 7306<div class="relative md:opacity-0 md:pointer-events-none swiper-pagination dark-bullets mt-6 flex-wrap gap-y-1"></div> 7307 </div> 7308 </div></div></div></div></div></div></div><div class="mb-8 lg:mb-28" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-intersect="false" data-element="main" data-pb-style="PPFRQH7"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-intersect="false" data-element="main" data-pb-style="CBE1L3F"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="T3PECDG"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-intersect="false" data-element="main" data-pb-style="EDOCKKK"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="mb-2 flex justify-center items-baseline md:items-end"> 7309 <h2 class="h2 font-baloo-bhaina font-bold">
7310 <span>Cosa dicono di noi</span> 7311 </h2> 7312</div> 7313<div class="feedaty_widget" data-ver="2021" data-id="66867aa259989" data-type="carousel" data-variant="carosello-1" data-lang="all" data-gui="all"></div></div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="main" data-pb-style="Y4V577X"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="Y65EOXR"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="BAOHJTJ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="L2UG3SO"><div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="mb-2 flex justify-between items-baseline md:items-end"> 7314 <h2 class="h2 font-baloo-bhaina font-bold"> 7315 <span>Scopri tutti i nostri consigli</span> 7316 </h2> 7317 <a class="text-base text-secondary hover:underline items-center flex" href="https://www.farma.it/blog/"> 7318 <span class="pr-2">Vai al blog</span> 7319 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current text-secondary" width="16" height="16" role="img"> 7320 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7321<title>heroicons/outline/chevron-right</title></svg> 7322 7323 </a> 7324</div></div><div data-content-type="text" data-appearance="default" data-element="main"><p> 7325</p><div class="product-items widget-product-carousel blog__posts__type-5 overflow-hidden" x-data="initBlogPostWidget()" x-defer="intersect" x-intersect.once="active = true"> 7326 <template x-if="active"> 7327 <div class="swiper swiper-container" id="card-carousel-6ac9293b946e7" x-init="initPostCarousel()"> 7328 <div class="swiper-wrapper md:grid md:grid-cols-2 md:grid-rows-2 xl:grid-cols-4 xl:grid-rows-1 md:gap-4" style="--carousel-gutter: 8px"> 7329 <div class="swiper-slide min-h-full w-full md:w-auto md:!px-0"> 7330 7331<div class="flex justify-between flex-col border border-primary-darker hover:border-tertiary rounded-md md:rounded-lg p-2 h-full" data-post-id="421"> 7332 <a href="https://www.farma.it/blog/guida-all-uso-dei-dispositivi-medici-per-l-aerosol-nei-mesi-invernali.html" class="cursor-pointer"> 7333 <div class="overflow-hidden mb-2"> 7334 <picture class="rounded-md block object-cover w-full"><source type="image/webp" srcset="https://www.farma.it/media/blog/Blog_Aerosol-ad34d7b0.webp"><img class="rounded-md block object-cover w-full" loading="lazy" width="303" height="168" src="https://www.farma.it/media/blog/Blog_Aerosol.jpg" alt="Guida all'uso dei dispositivi medici per l’aerosol nei mesi invernali" loading="lazy"></picture> 7335 </div> 7336 <p class="text-xxs md:text-xs text-primary-darker mx-2 md:mx-0">10 nov 2025</p> 7337 <h3 itemprop="headline" rel="bookmark" class="my-0.5 lg:my-1.5 h3 mx-2 md:mx-0 font-baloo-bhaina font-bold line-clamp"> 7338 Guida all'uso dei dispositivi medici per l’aerosol nei mesi invernali </h3> 7339 </a> 7340 <a href="https://www.farma.it/blog/guida-all-uso-dei-dispositivi-medici-per-l-aerosol-nei-mesi-invernali.html" class="cursor-pointer flex flex-col mb-2 mx-2 md:mx-0 items-center"> 7341 <p class="line-clamp text-primary-darker text-sm md:text-md mx-0 mb-4"> 7342 Scopri come scegliere e usare correttamente i dispositivi per aerosol nei mesi invernali. Consigli pratici, manutenzione e rimedi per le vie respiratorie. </p> 7343 <p class="text-secondary items-center text-md mr-auto ml-0 flex">Leggi di più
7343 <span class="mt-0.5 pl-1"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-secondary" width="15" height="15" role="img"> 7344 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7345<title>chevron-right</title></svg> 7346</span></p> 7347 </a> 7348</div> 7349 </div> 7350 <div class="swiper-slide min-h-full w-full md:w-auto md:!px-0"> 7351 7352<div class="flex justify-between flex-col border border-primary-darker hover:border-tertiary rounded-md md:rounded-lg p-2 h-full" data-post-id="406"> 7353 <a href="https://www.farma.it/blog/prevenzione-delle-infezioni-urinarie-nei-mesi-freddi-consigli-e-prodotti-efficaci.html" class="cursor-pointer"> 7354 <div class="overflow-hidden mb-2"> 7355 <picture class="rounded-md block object-cover w-full"><source type="image/webp" srcset="https://www.farma.it/media/blog/infezioni_urinarie-2f933b95.webp"><img class="rounded-md block object-cover w-full" loading="lazy" width="303" height="168" src="https://www.farma.it/media/blog/infezioni_urinarie.png" alt="Prevenzione delle infezioni urinarie nei mesi freddi: consigli e prodotti efficaci" loading="lazy"></picture> 7356 </div> 7357 <p class="text-xxs md:text-xs text-primary-darker mx-2 md:mx-0">7 nov 2025</p> 7358 <h3 itemprop="headline" rel="bookmark" class="my-0.5 lg:my-1.5 h3 mx-2 md:mx-0 font-baloo-bhaina font-bold line-clamp"> 7359 Prevenzione delle infezioni urinarie nei mesi freddi: consigli e prodotti efficaci </h3> 7360 </a> 7361 <a href="https://www.farma.it/blog/prevenzione-delle-infezioni-urinarie-nei-mesi-freddi-consigli-e-prodotti-efficaci.html" class="cursor-pointer flex flex-col mb-2 mx-2 md:mx-0 items-center"> 7362 <p class="line-clamp text-primary-darker text-sm md:text-md mx-0 mb-4"> 7363 Prevenire le infezioni urinarie nei mesi freddi è possibile: scopri abitudini, igiene, alimentazione e integratori naturali per proteggere le vie urinarie. </p> 7364 <p class="text-secondary items-center text-md mr-auto ml-0 flex">Leggi di più <span class="mt-0.5 pl-1"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-secondary" width="15" height="15" role="img"> 7365 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7366<title>chevron-right</title></svg> 7367</span></p> 7368 </a> 7369</div> 7370 </div> 7371 <div class="swiper-slide min-h-full w-full md:w-auto md:!px-0"> 7372 7373<div class="flex justify-between flex-col border border-primary-darker hover:border-tertiary rounded-md md:rounded-lg p-2 h-full" data-post-id="400"> 7374 <a href="https://www.farma.it/blog/bronchite-stagionale-prevenzione-trattamenti-e-supporti-da-banco.html" class="cursor-pointer"> 7375 <div class="overflow-hidden mb-2"> 7376 <picture class="rounded-md block object-cover w-full"><source type="image/webp" srcset="https://www.farma.it/media/blog/BRONCHITE-3fd16ff0.webp"><img class="rounded-md block object-cover w-full" loading="lazy" width="303" height="168" src="https://www.farma.it/media/blog/BRONCHITE.png" alt="Bronchite stagionale: prevenzione, trattamenti e supporti da banco" loading="lazy"></picture> 7377 </div> 7378 <p class="text-xxs md:text-xs text-primary-darker mx-2 md:mx-0">3 nov 2025</p> 7379 <h3 itemprop="headline" rel="bookmark" class="my-0.5 lg:my-1.5 h3 mx-2 md:mx-0 font-baloo-bhaina font-bold line-clamp"> 7380 Bronchite stagionale: prevenzione, trattamenti e supporti da banco </h3> 7381 </a> 7382 <a href="https://www.farma.it/blog/bronchite-stagionale-prevenzione-trattamenti-e-supporti-da-banco.html" class="cursor-pointer flex flex-col mb-2 mx-2 md:mx-0 items-center"> 7383 <p class="line-clamp text-primary-darker text-sm md:text-md mx-0 mb-4"> 7384 Scopri cos’è la bronchite stagionale, i sintomi principali e i rimedi efficaci: prevenzione, trattamenti da banco e consigli naturali per proteggere le vie respiratorie. </p> 7385 <p class="text-secondary items-center text-md mr-auto ml-0 flex">Leggi di più
7385 <span class="mt-0.5 pl-1"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-secondary" width="15" height="15" role="img"> 7386 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7387<title>chevron-right</title></svg> 7388</span></p> 7389 </a> 7390</div> 7391 </div> 7392 <div class="swiper-slide min-h-full w-full md:w-auto md:!px-0"> 7393 7394<div class="flex justify-between flex-col border border-primary-darker hover:border-tertiary rounded-md md:rounded-lg p-2 h-full" data-post-id="405"> 7395 <a href="https://www.farma.it/blog/tisane-e-infusi-per-affrontare-i-primi-freddi-guida-e-consigli.html" class="cursor-pointer"> 7396 <div class="overflow-hidden mb-2"> 7397 <picture class="rounded-md block object-cover w-full"><source type="image/webp" srcset="https://www.farma.it/media/blog/infusi_e_tisane-f4befdbb.webp"><img class="rounded-md block object-cover w-full" loading="lazy" width="303" height="168" src="https://www.farma.it/media/blog/infusi_e_tisane.png" alt="erbe per tisane in barattoli di vetro" loading="lazy"></picture> 7398 </div> 7399 <p class="text-xxs md:text-xs text-primary-darker mx-2 md:mx-0">31 ott 2025</p> 7400 <h3 itemprop="headline" rel="bookmark" class="my-0.5 lg:my-1.5 h3 mx-2 md:mx-0 font-baloo-bhaina font-bold line-clamp"> 7401 Tisane e infusi per affrontare i primi freddi: guida e consigli </h3> 7402 </a> 7403 <a href="https://www.farma.it/blog/tisane-e-infusi-per-affrontare-i-primi-freddi-guida-e-consigli.html" class="cursor-pointer flex flex-col mb-2 mx-2 md:mx-0 items-center"> 7404 <p class="line-clamp text-primary-darker text-sm md:text-md mx-0 mb-4"> 7405 Scopri le tisane migliori per affrontare i primi freddi: rimedi naturali per rafforzare difese, favorire digestione, respirazione e relax quotidiano. </p> 7406 <p class="text-secondary items-center text-md mr-auto ml-0 flex">Leggi di più <span class="mt-0.5 pl-1"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-secondary" width="15" height="15" role="img"> 7407 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7408<title>chevron-right</title></svg> 7409</span></p> 7410 </a> 7411</div> 7412 </div> 7413 </div> 7414 <div class="block md:hidden swiper-dot absolute aspect-video top-0 pb-6 items-end pointer-events-none w-full flex-col justify-end flex"> 7415 7416<div style="top: calc(50% - 24px);" class="swiper-button-prev left-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 7417 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 7418 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 7419<title>chevron-left</title></svg> 7420</div> 7421<div style="top: calc(50% - 24px);" class="swiper-button-next right-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden hover:!stroke-primary opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 7422 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 7423 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7424<title>chevron-right</title></svg> 7425</div> 7426<div class="relative md:opacity-0 md:pointer-events-none swiper-pagination dark-bullets mt-6 flex-wrap gap-y-1"></div> 7427 </div> 7428 </div> 7429 </template> 7430</div> 7431
7432<script> 7433 function initBlogPostWidget() { 7434 return { 7435 active: false, 7436 initPostCarousel() { 7437 if (window.matchMedia('(max-width: 767px)').matches) { 7438 initCarousel("#card-carousel-6ac9293b946e7"); 7439 } 7440 } 7441 } 7442 } 7443</script>
7443 7444</div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="main" data-pb-style="V508BJR"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="FN0ULC1"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JCEW7KD"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="XABGGIV"><div data-content-type="text" data-appearance="default" data-intersect="false" data-element="main"><p> 7445 7446</p><div class="mb-2 flex justify-between items-baseline md:items-end"> 7447 <h2 class="h2 font-baloo-bhaina font-bold"> 7448 <span>Brand del momento</span> 7449 </h2> 7450 <a class="text-base text-secondary hover:underline items-center flex" href="/brands"> 7451 <span class="pr-2">Scopri tutti i brand</span> 7452 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current text-secondary" width="16" height="16" role="img"> 7453 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7454<title>chevron-right</title></svg> 7455 </a> 7456</div> 7457<div class="carousel-ngutter"> 7458 <div class="swiper group" id="card-carousel-6ac9293b96bd7"> 7459 <div class="swiper-wrapper"> 7460 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7461 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/oral-b"> 7462 <span class="ambrands-swiper-brand min-h-0 "> 7463 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/oral-b-0a3a6aa1.webp"><img src="/media/.renditions/wysiwyg/oral-b.jpg" alt="Oral-B" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7464 </span> 7465 </a> 7466 </div> 7467 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7468 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/supradyn"> 7469 <span class="ambrands-swiper-brand min-h-0 "> 7470 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/supradyn-445753e4.webp"><img src="/media/.renditions/wysiwyg/supradyn.jpg" alt="Supradyn" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7471 </span> 7472 </a> 7473 </div> 7474 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7475 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/anticafarmaciaorlandi_cosmetic"> 7476 <span class="ambrands-swiper-brand min-h-0 "> 7477 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/FloraOrlandi130x100-130x100-e5b95194.webp"><img src="/media/.renditions/wysiwyg/FloraOrlandi130x100-130x100.png" alt="Flora Orlandi" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7478 </span> 7479 </a> 7480 </div> 7481 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7482 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/durex">
7483 <span class="ambrands-swiper-brand min-h-0 "> 7484 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/.renditions/wysiwyg/durex-25834f43.webp"><img src="/media/.renditions/wysiwyg/durex.jpg" alt="Durex" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7485 </span> 7486 </a> 7487 </div> 7488 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7489 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/cerave_l_oreal_italia_spa"> 7490 <span class="ambrands-swiper-brand min-h-0 "> 7491 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/cerave-f0c190be.webp"><img src="/media/wysiwyg/cerave.jpg" alt="Cerave" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7492 </span> 7493 </a> 7494 </div> 7495 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7496 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/vichy_l_oreal_italia_spa"> 7497 <span class="ambrands-swiper-brand min-h-0 "> 7498 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/vichy-cbe56f80.webp"><img src="/media/wysiwyg/vichy.jpg" alt="Vichy" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7499 </span> 7500 </a> 7501 </div> 7502 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7503 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/la_roche_posay_phas_l_oreal"> 7504 <span class="ambrands-swiper-brand min-h-0 "> 7505 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/la-roche-posay-be46742a.webp"><img src="/media/wysiwyg/la-roche-posay.jpg" alt="La Roche Posay" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7506 </span> 7507 </a> 7508 </div> 7509 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7510 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/skinceuticals_l_oreal_italia"> 7511 <span class="ambrands-swiper-brand min-h-0 "> 7512 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/skinceuticals-dc00adc0.webp"><img src="/media/wysiwyg/skinceuticals.jpg" alt="SkinCeuticals" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7513 </span> 7514 </a> 7515 </div> 7516 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7517 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/biochetasi"> 7518 <span class="ambrands-swiper-brand min-h-0 "> 7519 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/loghi-nuovo-sito_new-_1_-5e587ac0.webp"><img src="/media/wysiwyg/loghi-nuovo-sito_new-_1_.jpg" alt="Biochetasi" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7520 </span> 7521 </a> 7522 </div> 7523 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7524 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/yovis">
7525 <span class="ambrands-swiper-brand min-h-0 "> 7526 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/la-roche-posay-06c34cf0-19a74dab.webp"><img src="/media/wysiwyg/la-roche-posay-06c34cf0.png" alt="Yovis" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7527 </span> 7528 </a> 7529 </div> 7530 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7531 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/carnidyn"> 7532 <span class="ambrands-swiper-brand min-h-0 "> 7533 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/vichy-45450f33-47f9d910.webp"><img src="/media/wysiwyg/vichy-45450f33.png" alt="Carnidyn" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7534 </span> 7535 </a> 7536 </div> 7537 <div class="swiper-slide block w-1/2 md:w-1/6 h-20 lg:h-24 overflow-hidden px-1"> 7538 <a class="place-content-center grid p-0 rounded-md border border-primary-darker hover:border-tertiary min-h-0 h-full" href="/frontline-storebrand"> 7539 <span class="ambrands-swiper-brand min-h-0 "> 7540 <picture class="ambrands-image rounded-md h-full"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/Frontline_Logo_Homepage-20cc8319.webp"><img src="/media/wysiwyg/Frontline_Logo_Homepage.png" alt="Frontline" class="ambrands-image rounded-md h-full" loading="lazy"></picture> 7541 </span> 7542 </a> 7543 </div> 7544 </div> 7545 7546 <div style="top: 50%;" class="swiper-button-prev left-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 7547 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 7548 <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path> 7549<title>chevron-left</title></svg> 7550 </div> 7551 <div style="top: 50%;" class="swiper-button-next right-9 w-12 h-12 rounded-full group/button bg-white/90 hover:bg-white hidden hover:!stroke-primary opacity-0 md:group-hover:opacity-100 md:flex shadow-lg shadow-black/30 transition-all"> 7552 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="m-auto group-hover/button:!stroke-primary" width="20" height="20" role="img"> 7553 <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path> 7554<title>chevron-right</title></svg> 7555 </div> 7556 <div class="relative lg:hidden lg:pointer-events-none swiper-pagination dark-bullets mt-6 flex-wrap gap-y-1 swiper-pagination-clickable"></div> 7557 </div> 7558</div>
7559<script> 7560 window.addEventListener("DOMContentLoaded", (event) => { 7561 initCarousel("#card-carousel-6ac9293b96bd7", {}); 7562 }); 7563</script>
7563 7564 7565</div></div></div></div></div></div><div class="mb-12 md:mb-16" data-content-type="row" data-appearance="full-width" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="main" data-pb-style="WCE0M6Y"><div class="row-full-width-inner" data-element="inner"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="SMW2DAI"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="RR9TUAK"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="GXPQ2RT"><h1 class="font-baloo-bhaina font-bold mb-3" data-content-type="heading" data-appearance="default" data-element="main">Farmacia Online - farma.it</h1><div data-content-type="text" data-appearance="default" data-element="main"><p>Benvenuti sul sito di<strong> farma.it by Antica Farmacia Orlandi</strong>, la Farmacia Online più grande d’Italia.</p> 7566<p> </p> 7567<p id="DI0I3TR">La <strong>Farmacia Orlandi</strong> fu fondata nel lontano 1868. Il <strong>Dott. Manlio Orlandi</strong> e la <strong>Dott.ssa Flora della Campa</strong> diedero origine a una delle prime farmacie Omeopatiche e Fitoterapiche della Campania, dedicandosi allo studio e alla creazione di preparazioni <strong>Galenico – Magistrali</strong>.</p> 7568<p> </p> 7569<p>La nostra farmacia on line ti <strong>propone più di 90.000 prodotti delle migliori marche al miglior prezzo online</strong>, garantendoti la <strong>consegna in 48/72h</strong> <strong>lavorative</strong>, con pagamenti sicuri e offrendoti un <strong>Customer Care dedicato</strong> sempre a tua disposizione.</p> 7570<p> </p> 7571<p>Che aspetti? Acquista nella nostra Farmacia Online e scegli i prodotti migliori tra farmaci da banco, integratori, prodotti cosmetici delle migliori marche o per la cura e la salute del tuo bambino.</p></div></div></div></div></div></div>
7571<script> 7572 function hasWebP() { 7573 var elem = document.createElement('canvas'); 7574 7575 if (!!(elem.getContext && elem.getContext('2d'))) { 7576 return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0; 7577 } 7578 return false; 7579 } 7580 7581 if (hasWebP()) { 7582 document.body.classList.add("webp"); 7583 } else { 7584 document.body.classList.add("no-webp"); 7585 } 7586</script>
7586 7587 7588</div></div></main><footer class="page-footer mt-auto"> 7589 <div style="background-image: url('https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/bg_newsletter.webp'); 7590 font-size: justify-content: flex-start; 7591 display: flex; 7592 flex-direction: column; 7593 background-position: left top; 7594 background-size: cover; 7595 background-repeat: no-repeat; 7596 background-attachment: scroll;" 7597 > 7598 <div class="container"> 7599 <div class="py-8 md:py-10 scroll-mt-36" id="newsletter_footer"> 7600 <form class="form subscribe rounded-full" action="https://www.farma.it/newsletter/subscriber/new/" method="post" x-data="initNewsletterForm()" @submit.prevent="submitForm()" id="newsletter-validate-detail"> 7601 <div class="flex flex-wrap justify-start gap-2"> 7602 <label for="newsletter-subscribe" class="sr-only" role="img" aria-label="Indirizzo email"> 7603 Indirizzo email </label> 7604 7605 <input name="form_key" type="hidden" x-bind:value="window.hyva.getFormKey()"> 7606 <div class="control"> 7607 <input type="hidden" 7608 value="" 7609 name="g-recaptcha-response" 7610 > 7611</div> 7612 7613 <div class="w-full md:grid grid-cols-12 items-center xl:items-end"> 7614 <div class="col-span-5 text-white mb-6"> 7615 <h4 class="h2 font-bold font-baloo-bhaina text-white mb-2 md:mb-4">Non perderti nulla!<br/>Iscriviti alla nostra Newsletter</h4> 7616 <p>Ti basta un ultimo click per completare lâiscrizione e iniziare a ricevere subito tutti i <strong>nostri aggiornamenti</strong> e le <strong>nostre promozioni.</strong></p> 7617 </div> 7618 <div></div> 7619 <div class="col-span-6 order-3 md:mb-6"> 7620 <div class="control input-group flex gap-x-2.5 md:gap-x-4 relative"> 7621 <input class="input-text form-control py-2 form-input pl-12" name="email" type="email" required id="newsletter-subscribe" 7622 x-bind:placeholder="window.matchMedia('(max-width: 700px)').matches ? 7623 'Inserisci e-mail *' : 7624 'Inserisci indirizzo e-mail *'"> 7625 <div class="absolute top-0 left-3 py-3.5 pl-1"> 7626 <?xml version="1.0" encoding="UTF-8"?> 7627<svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewBox="0 0 24 21.95" class="w-5 h-5" width="24" height="24" role="img"> 7628 <path fill="#5E24C2" d="m19.19,21.95H4.81c-2.65,0-4.8-2.16-4.81-4.81V4.81C0,2.16,2.16,0,4.81,0h14.38c2.65,0,4.8,2.16,4.81,4.81v12.32c0,2.65-2.16,4.8-4.81,4.81ZM1.4,5.57v11.57c0,1.88,1.53,3.4,3.41,3.41h14.38c1.88,0,3.4-1.53,3.4-3.41V5.57l-7.19,7.19c-1.88,1.88-4.93,1.88-6.81,0L1.4,5.57ZM4.81,1.4c-1.39,0-2.64.85-3.15,2.14l-.08.2,8.02,8.02c1.33,1.33,3.48,1.33,4.82,0L22.43,3.75l-.08-.2c-.51-1.3-1.76-2.15-3.16-2.14H4.81Z"/> 7629<title>footer/icon_email</title></svg> 7630 </div> 7631 <div class="input-group-append"> 7632 <button class="btn btn-secondary h-full"> 7633 Iscriviti </button> 7634 </div> 7635 </div> 7636 <div class="flex gap-2 mt-3 pl-5 max-w-lg"> 7637 7638 <div x-data="{ 7639 checked: false, 7640 consentId: 5 }" 7641 id="checkbox-0" 7642 class="flex w-full last:mb-3"> 7643 <div 7644 class="flex flex-wrap field choice "> 7645 <input type="hidden" name="amgdpr_agreement[newsletter_privacy_policy]" 7646 value="0"/> 7647 <div class="flex flex-row"> 7648 <input type="checkbox" 7649 name="amgdpr_agreement[newsletter_privacy_policy]" 7650 title="Newsletter - Privacy Policy" 7651 value="1" 7652 id="amprivacy-checkbox-6ac9293bbf9df" 7653 class="amgdpr-consent-checkbox mt-0.5" 7654 x-model="checked" 7655 @amgdpr-consent-accepted.window="event.detail === consentId && (checked = true)" 7656 required 7657 /> 7658 <label for="amprivacy-checkbox-6ac9293bbf9df" 7659 class="label">
7660 <span class="amgdpr-consent-span"> 7661 Letta lâ<a href="/privacy-policy" target="_blank" class="underline">informativa privacy</a>, presto il mio consenso per ricevere newsletter e/o DEM </span> 7662 </label> 7663 </div> 7664 <div class="h-0 w-full"></div> 7665 </div> 7666 7667 <input type="hidden" 7668 name="am-gdpr-checkboxes-from" 7669 value="subscription"/> 7670 </div> 7671<policy-placeholder></policy-placeholder> 7672 </div> 7673 </div> 7674 </div> 7675 </div> 7676 <div> 7677 <template x-if="displayErrorMessage"> 7678 <p class="flex items-center mage-error"> 7679 <span class="inline-block w-8 h-8 mr-3"> 7680 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> 7681 <path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 7682<title>exclamation-circle</title></svg> 7683 </span> 7684 <template x-for="errorMessage in errorMessages"> 7685 <span x-html="errorMessage"></span> 7686 </template> 7687 </p> 7688 </template> 7689 </div> 7690 </form> 7691 <div class="w-full text-white"> 7692 <p class="legal-notice my-2 text-xxs"> 7693 Questo form è protetto da reCAPTCHA - vi si applicano la <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Privacy Policy</a> e i <a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Termini di Servizio</a> di Google.</p> 7694 </div> 7695
7695<script type="text/javascript"> 7696 function initNewsletterForm() { 7697 return { 7698 errors: 0, 7699 hasCaptchaToken: 0, 7700 displayErrorMessage: false, 7701 errorMessages: [], 7702 setErrorMessages(messages) { 7703 this.errorMessages = [messages] 7704 this.displayErrorMessage = this.errorMessages.length 7705 }, 7706 submitForm() { 7707 // Do not rename $form, the variable is expected to be declared in the recaptcha output 7708 const $form = document.querySelector('#newsletter-validate-detail'); 7709 if (!this.hasCaptchaToken) { 7710 this.errors = 1; 7711 7712 const lockSubmitButton = () => { 7713 $form.querySelector('[type="submit"]')?.setAttribute('disabled', true); 7714 }; 7715 7716 const failCaptcha = (errorMessage, exception = null) => { 7717 this.errors = 1; 7718 lockSubmitButton(); 7719 7720 if (this.setErrorMessages) { 7721 this.setErrorMessages([errorMessage]); 7722 this.displayErrorMessage = true; 7723 } else { 7724 window.dispatchMessages && window.dispatchMessages([{ type: "error", text: errorMessage }], 5000); 7725 } 7726 7727 if (exception) { 7728 console.error( 7729 exception || 7730 'An unknown error occurred during ReCaptcha validation. Are the tokens and the domain correctly set up in the Google console?' 7731 ); 7732 } 7733 }; 7734 7735 const executeGreCaptcha = () => { 7736 grecaptcha.ready(() => { 7737 grecaptcha.execute( 7738 '6LdDii8sAAAAAF1j_v4WIzmCV2phMFuJKWeFtEhJ', 7739 {action: 'submit'} 7740 ).then((token) => { 7741 const tokenElement = $form['g\u002Drecaptcha\u002Dresponse']; 7742 7743 if (tokenElement && token && token.length > 0) { 7744 $form['g\u002Drecaptcha\u002Dresponse'].value = token; 7745 this.errors = 0; 7746 this.hasCaptchaToken = 1; 7747 (this.submitForm || $form.submit).call(this); 7748 } else { 7749 failCaptcha( 7750 tokenElement 7751 ? 'ReCaptcha\u0020validation\u0020failed.\u0020Please\u0020refresh\u0020the\u0020page\u0020and\u0020try\u0020again.' 7752 : 'ReCaptcha\u0020token\u0020element\u0020is\u0020missing.\u0020Please\u0020refresh\u0020the\u0020page\u0020and\u0020try\u0020again.' 7753 ); 7754 } 7755 }).catch((exception) => { 7756 failCaptcha( 7757 'ReCaptcha\u0020validation\u0020failed\u0020due\u0020to\u0020a\u0020technical\u0020error.\u0020Please\u0020refresh\u0020the\u0020page\u0020and\u0020try\u0020again.', 7758 exception 7759 ); 7760 }); 7761 }); 7762 }; 7763 7764 if (window.grecaptcha) { 7765 executeGreCaptcha(); 7766 } else { 7767 const recaptchaUrl = "https://www.google.com/recaptcha/api.js?render=6LdDii8sAAAAAF1j_v4WIzmCV2phMFuJKWeFtEhJ"; 7768 const script = document.createElement('script'); 7769 script.setAttribute('type', 'text/javascript'); 7770 script.setAttribute('src', recaptchaUrl); 7771 document.head.appendChild(script); 7772 7773 script.addEventListener("load", executeGreCaptcha, false); 7774 } 7775 } 7776 7777 if (this.errors === 0) { 7778 $form.submit(); 7779 } 7780 } 7781 } 7782 } 7783 </script>
7783 7784</div> 7785 </div> 7786 </div> 7787 <div x-data="{ show: false }" x-intersect.once.margin.200px="show = true" x-init="$watch('show', (value) => { if (value) { $nextTick(() => { $dispatch('footer:added') }); } } )" class="dna-footer-item " id="dna-footer-item_footer"> 7788 <template x-if="show"> 7789 <div class="dna-footer-item-content"> 7790 <div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="bg-container-gray"> 7791 <div class="lg:grid grid-cols-10 justify-between w-full py-5 md:pt-10 md:pb-8 xl:gap-8 container bg-container-gray pt-2"> 7792 <div class="md:grid grid-cols-3 col-span-7 md:mr-8 gap-2"> 7793 <div class="overflow-hidden md:mb-8 lg:mb-0 mb-3" x-data="{open: false}"> 7794 <h5 class="font-bold md:pb-4 pt-3 md:pt-0 md:pb-3 flex justify-between font-baloo-bhaina" @click="open = !open">farma.it 7795 <span class="text-xl md:hidden items-center flex" x-show="!open"> 7796 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_down.svg" alt="down"/> 7797 </span> 7798 <span class="text-xl md:hidden items-center flex" x-show="open"> 7799 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_up.svg" alt="up"/> 7800 </span> 7801 </h5> 7802 7803 <ul class="md:block transition-all md:h-auto md:mb-0 md:!h-auto" :class="open ? '' : 'h-0'" 7804 x-bind:style="open ? 'height:' + $el.childElementCount * 27 /* 25px element child width */ + 'px' : ''"> 7805 <li class="py-0.5"><a href="/chi-siamo" class="text-xs md:text-base hover:text-secondary">La nostra Azienda</a></li> 7806 <li class="py-0.5"><a href="/coupon-e-promo" class="text-xs md:text-base hover:text-secondary">Coupon</a></li> 7807 <li class="py-0.5"><a href="/farma-lovers" class="text-xs md:text-base hover:text-secondary">Programma Fedeltà Farma Lovers</a></li> 7808 <li class="py-0.5"><a href="/lavora-con-noi" class="text-xs md:text-base hover:text-secondary">Lavora con noi</a></li> 7809 <li class="py-0.5"><a href="/blog" class="text-xs md:text-base hover:text-secondary">I nostri consigli</a></li> 7810 <li class="py-0.5"><a href="/parita-di-genere" class="text-xs md:text-base hover:text-secondary">Politiche per la parità di genere</a></li> 7811 </ul> 7812 </div> 7813 7814 <div class="overflow-hidden mb-3" x-data="{open: false}"> 7815 <h5 class="font-bold md:pb-4 pt-3 md:pt-0 md:pb-3 flex justify-between font-baloo-bhaina" @click="open = !open">Servizi clienti 7816 <span class="text-xl md:hidden items-center flex" x-show="!open"> 7817 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_down.svg" alt="down"/> 7818 </span> 7819 <span class="text-xl md:hidden items-center flex" x-show="open"> 7820 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_up.svg" alt="up"/> 7821 </span> 7822 </h5> 7823 7824 <ul class="md:block transition-all md:h-auto md:mb-0 md:!h-auto" :class="open ? '' : 'h-0'" 7825 x-bind:style="open ? 'height:' + $el.childElementCount * 27 + 'px' : ''"> 7826 <li class="py-0.5"><a href="/contattaci" class="text-xs md:text-base hover:text-secondary">Contattaci</a></li> 7827 <li class="py-0.5"><a href="/richiamami" class="text-xs md:text-base hover:text-secondary">Richiamami</a></li> 7828 <!-- <li class="py-0.5"><a href="/sales/guest/form" class="text-xs md:text-base hover:text-secondary">Stato dell'ordine</a></li> --> 7829 <li class="py-0.5"><a href="/faq" class="text-xs md:text-base hover:text-secondary">FAQ</a></li> 7830 <li class="py-0.5"><a href="/rma/guest/login" class="text-xs md:text-base hover:text-secondary">Resi</a></li> 7831 </ul> 7832 </div> 7833 7834 <div class="overflow-hidden mb-3" x-data="{open: false}"> 7835 <h5 class="font-bold md:pb-4 pt-3 md:pt-0 md:pb-3 flex justify-between font-baloo-bhaina" @click="open = !open">Condizioni di vendita
7836 <span class="text-xl md:hidden items-center flex" x-show="!open"> 7837 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_down.svg" alt="down"/> 7838 </span> 7839 <span class="text-xl md:hidden items-center flex" x-show="open"> 7840 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_up.svg" alt="up"/> 7841 </span> 7842 </h5> 7843 7844 <ul class="md:block transition-all md:h-auto md:mb-0 md:!h-auto text-xs md:text-base " :class="open ? '' : 'h-0'" 7845 x-bind:style="open ? 'height:' + $el.childElementCount * 27 + 'px' : ''"> 7846 <li class="py-0.5"><a href="/pagamenti-e-condizioni" class="hover:text-secondary">Pagamenti & Condizioni</a></li> 7847 <li class="py-0.5"><a href="/spedizioni" class="hover:text-secondary">Spedizioni</a></li> 7848 <li class="py-0.5"><a href="/privacy-policy" class="hover:text-secondary">Privacy Policy</a></li> 7849 <li class="py-0.5"><a href="/cookie-policy" class="hover:text-secondary">Cookie Policy</a></li> 7850 <li class="py-0.5"><a href="/comunicazioni" class="hover:text-secondary">Comunicazioni</a></li> 7851 <li class="py-0.5"><span class="hover:text-secondary cursor-pointer" onclick="Cookiebot.show();preventDefault()">Gestisci Cookie</span> 7852 <li class="py-0.5"><a href="/garanzia-legale" class="hover:text-secondary">Garanzia legale UE â almeno 2 anni</a></li> 7853 </li> 7854 </ul> 7855 </div> 7856 7857 <div class="overflow-hidden" x-data="{open: false}"> 7858 <h5 class="font-bold md:pb-4 pt-3 md:pt-0 md:pb-3 flex justify-between font-baloo-bhaina pb-3" @click="open = !open">Servizi Offerti 7859 <span class="text-xl md:hidden items-center flex" x-show="!open"> 7860 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_down.svg" alt="down"/> 7861 </span> 7862 <span class="text-xl md:hidden items-center flex" x-show="open"> 7863 <img class='w-3 h-3' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_arrow_up.svg" alt="up"/> 7864 </span> 7865 </h5> 7866 7867 <ul class="md:block transition-all md:h-auto md:mb-0 md:!h-auto" :class="open ? 'mb-3' : 'h-0'" 7868 x-bind:style="open ? 'height:' + $el.childElementCount * 32 + 'px' : ''"> 7869 <li class="mb-3"><p class="text-xs md:text-base flex gap-2 items-center"> 7870 <img class='w-5 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_discount.svg" alt="discount"/>Tantissimi Sconti</p></li> 7871 <li class="mb-3"><p class="text-xs md:text-base flex gap-2 items-center"> 7872 <img class='w-5 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_lock.svg" alt="lock"/>Transazione Sicura</p></li> 7873 <li class="mb-3"><p class="text-xs md:text-base flex gap-2 items-center"> 7874 <img class='w-5 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_return.svg" alt="return"/>Reso Facile e Veloce</p></li> 7875 <li><p class="text-xs md:text-base flex gap-2 items-center"> 7876 <img class='w-5 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/icon_shield.svg" alt="shield"/>Garanzia</p></li> 7877 </ul> 7878 </div> 7879 7880 <div class="overflow-hidden md:w-40"> 7881 <h5 class="font-bold md:pb-4 pb-3 pt-3 md:pt-0 md:pb-3 font-baloo-bhaina"> 7882 Pagamenti Veloci & Sicuri 7883 </h5> 7884 7885 <div class="mb-4 flex gap-1.5 md:gap-2 flex-wrap"> 7886 <img title="Visa" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/visa.svg" alt="visa"/> 7887 <img title="PayPal" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/paypal.svg" alt="PayPal"/> 7888 <img title="Mastercard" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/mastercard.svg" alt="Mastercard"/> 7889 <img title="Maestro" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/maestro.svg" alt="Maestro"/> 7890 <img title="Discover" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/discover.svg" alt="Discover"/> 7891 <img title="Amex" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/amex.svg" alt="Amex"/> 7892 <img title="Satispay" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/klarna.svg" alt="Klarna"/> 7893 <img title="Satispay" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/satispay.svg" alt="Satispay"/> 7894 <img title="Contrassegno" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/contrassegno.svg" alt="Contrassegno"/> 7895 <img title="Bonifico" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/payment/bonifico.svg" alt="Bonifico"/> 7896 <img title="Google Pay" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/media/wysiwyg/Google_Pay_Logo_Orlandi.svg" alt="Google Pay"/>
7897 <img title="Apple Pay" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/media/wysiwyg/Apple_Pay_logo_Orlandi.svg" alt="Apple Pay"/> 7898 </div> 7899 </div> 7900 7901 <div class="overflow-hidden md:w-40"> 7902 <h5 class="font-bold md:pb-4 pb-3 pt-3 md:pt-0 font-baloo-bhaina">Consegna Gratuita in 24/72h</h5> 7903 7904 <div class="mb-4 flex gap-1.5 md:gap-2 flex-wrap"> 7905 <img title="GLS" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/carrier/gls.svg" alt="GLS"/> 7906 <img title="UPS" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/carrier/ups.svg" alt="UPS"/> 7907<!-- <img title="Liccardi" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/media/wysiwyg/liccardi_orlandi.svg" alt="Liccardi"/> --> 7908<img title="InPost" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/media/wysiwyg/inpost_orlandi.svg" alt="InPost"/> 7909<!-- <img title="Amazon Shipping" class='w-auto h-7 md:h8' loading="lazy" src="https://www.farma.it/media/wysiwyg/amazon-shipping_orlandi.svg" alt="Amazon Shipping"/> --> 7910 </div> 7911 </div> 7912 </div> 7913 7914 <div class="col-span-3"> 7915 <div> 7916 <div> 7917 <h5 class="font-bold md:pb-4 pb-3 pt-3 md:pt-0 md:pb-3 font-baloo-bhaina">Sito sicuro</h5> 7918 </div> 7919 7920 <div class="gap-4 mb-4 md:mb-9 md:flex"> 7921<div style="display:flex;flex-direction:column;gap:8px;margin-bottom:8px"> 7922<div class="feedaty_widget" data-ver="2021" data-id="66ab4361b28b3" data-type="merchant" data-variant="200x150-4" data-lang="all" data-gui="all"></div> 7923<a target="_blank" rel="noopener" href="https://www.farma.it/garanzia-legale"> 7924 <picture class="rounded-lg md:mb-4 !block"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/footer/badge/GARAN_Label_colour-968cd542.webp"><img loading="lazy" class="rounded-lg md:mb-4 !block" src="https://www.farma.it/media/wysiwyg/footer/badge/GARAN_Label_colour.jpg" alt="Garanzia Legale" style="width:140px;height:auto" loading="lazy"></picture> 7925 </a> 7926</div> 7927 <div> 7928 <a target="_blank" href="https://www.trovaprezzi.it/negozi/farmait"> 7929 <picture class="rounded-lg mb-2 md:mb-4 !block !visible"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/footer/badge/trovaprezzi-418bf217.webp"><img loading="lazy" class="rounded-lg mb-2 md:mb-4 !block !visible" src="https://www.farma.it/media/wysiwyg/footer/badge/trovaprezzi.jpg" alt="Trovaprezzi" loading="lazy"></picture> 7930 </a> 7931 <a target="_blank" href="https://www.prezzifarmaco.it/scheda-negozio/farmait-by-antica-farmacia-orlandi-501"> 7932 <picture class="rounded-lg md:mb-4 !block !visible"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/footer/badge/prezzifarmaco-5edf662d.webp"><img loading="lazy" class="rounded-lg md:mb-4 !block !visible" src="https://www.farma.it/media/wysiwyg/footer/badge/prezzifarmaco.jpg" alt="Prezzi Farmaco" loading="lazy"></picture> 7933 </a> 7934<a href="https://www.farma.it/farmacia-antifumo"> 7935 <picture><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/footer/bollino_rettangolare_OK_1-ce63bed2.webp"><img src="https://www.farma.it/media/wysiwyg/footer/bollino_rettangolare_OK_1.png" alt="SITAB" loading="lazy" /></picture> 7936</a> 7937 </div> 7938 </div> 7939 </div> 7940 7941 <div class="mb-8"> 7942 <p class="text-xs mb-2 md:mb-4">Cliccando il badge, puoi verificare che Farma.it è un'entità regolarmente autorizzata dal Ministero della Salute a effettuare la vendita online di medicinali.</p> 7943 7944 <div class="flex gap-2 mb-6 md:mb-8"> 7945 <a target="_blank" href="https://www.salute.gov.it/LogoCommercioElettronico/CercaSitoEComm?useMode=getDettaglio&VOLID=C016715"> 7946 <picture class="rounded-lg !block !visible"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/footer/badge/farmacia-d29fbe1b.webp"><img loading="lazy" class="rounded-lg !block !visible" src="https://www.farma.it/media/wysiwyg/footer/badge/farmacia.jpg" alt="farmacia" loading="lazy"></picture> 7947 </a> 7948 <a target="_blank" href="https://www.salute.gov.it/LogoCommercioElettronicoVET/CercaSitoEComm?useMode=getDettaglio&VOLID=C016715&area=veterinari&id=5907&lingua=italiano&menu=vendite"> 7949 <picture class="rounded-lg !block !visible"><source type="image/webp" srcset="https://www.farma.it/media/wysiwyg/footer/badge/VET-fdaf9e0c.webp"><img loading="lazy" class="rounded-lg !block !visible" src="https://www.farma.it/media/wysiwyg/footer/badge/VET.jpg" alt="VET" loading="lazy"></picture> 7950 </a> 7951 </div> 7952<div class="mb-2 md:mb-4 flex gap-2"> 7953<a href="https://apps.apple.com/it/app/farma-it/id6740766576" target="_blank"> 7954<svg id="livetype" xmlns="http://www.w3.org/2000/svg" width="135" viewB
7954ox="0 0 119.66407 40"> 7955 <title>Download_on_the_App_Store_Badge_IT_RGB_blk_100317</title> 7956 <g> 7957 <g> 7958 <g> 7959 <path d="M110.13477,0H9.53468c-.3667,0-.729,0-1.09473.002-.30615.002-.60986.00781-.91895.0127A13.21476,13.21476,0,0,0,5.5171.19141a6.66509,6.66509,0,0,0-1.90088.627A6.43779,6.43779,0,0,0,1.99757,1.99707,6.25844,6.25844,0,0,0,.81935,3.61816a6.60119,6.60119,0,0,0-.625,1.90332,12.993,12.993,0,0,0-.1792,2.002C.00587,7.83008.00489,8.1377,0,8.44434V31.5586c.00489.3105.00587.6113.01515.9219a12.99232,12.99232,0,0,0,.1792,2.0019,6.58756,6.58756,0,0,0,.625,1.9043A6.20778,6.20778,0,0,0,1.99757,38.001a6.27445,6.27445,0,0,0,1.61865,1.1787,6.70082,6.70082,0,0,0,1.90088.6308,13.45514,13.45514,0,0,0,2.0039.1768c.30909.0068.6128.0107.91895.0107C8.80567,40,9.168,40,9.53468,40H110.13477c.3594,0,.7246,0,1.084-.002.3047,0,.6172-.0039.9219-.0107a13.279,13.279,0,0,0,2-.1768,6.80432,6.80432,0,0,0,1.9082-.6308,6.27742,6.27742,0,0,0,1.6172-1.1787,6.39482,6.39482,0,0,0,1.1816-1.6143,6.60413,6.60413,0,0,0,.6191-1.9043,13.50643,13.50643,0,0,0,.1856-2.0019c.0039-.3106.0039-.6114.0039-.9219.0078-.3633.0078-.7246.0078-1.0938V9.53613c0-.36621,0-.72949-.0078-1.09179,0-.30664,0-.61426-.0039-.9209a13.5071,13.5071,0,0,0-.1856-2.002,6.6177,6.6177,0,0,0-.6191-1.90332,6.46619,6.46619,0,0,0-2.7988-2.7998,6.76754,6.76754,0,0,0-1.9082-.627,13.04394,13.04394,0,0,0-2-.17676c-.3047-.00488-.6172-.01074-.9219-.01269-.3594-.002-.7246-.002-1.084-.002Z" style="fill: #a6a6a6"></path> 7960 <path d="M8.44483,39.125c-.30468,0-.602-.0039-.90429-.0107a12.68714,12.68714,0,0,1-1.86914-.1631,5.88381,5.88381,0,0,1-1.65674-.5479,5.40573,5.40573,0,0,1-1.397-1.0166,5.32082,5.32082,0,0,1-1.02051-1.3965,5.72186,5.72186,0,0,1-.543-1.6572,12.41351,12.41351,0,0,1-.1665-1.875c-.00634-.2109-.01464-.9131-.01464-.9131V8.44434S.88185,7.75293.8877,7.5498a12.37039,12.37039,0,0,1,.16553-1.87207,5.7555,5.7555,0,0,1,.54346-1.6621A5.37349,5.37349,0,0,1,2.61183,2.61768,5.56543,5.56543,0,0,1,4.01417,1.59521a5.82309,5.82309,0,0,1,1.65332-.54394A12.58589,12.58589,0,0,1,7.543.88721L8.44532.875H111.21387l.9131.0127a12.38493,12.38493,0,0,1,1.8584.16259,5.93833,5.93833,0,0,1,1.6709.54785,5.59374,5.59374,0,0,1,2.415,2.41993,5.76267,5.76267,0,0,1,.5352,1.64892,12.995,12.995,0,0,1,.1738,1.88721c.0029.2832.0029.5874.0029.89014.0079.375.0079.73193.0079,1.09179V30.4648c0,.3633,0,.7178-.0079,1.0752,0,.3252,0,.6231-.0039.9297a12.73126,12.73126,0,0,1-.1709,1.8535,5.739,5.739,0,0,1-.54,1.67,5.48029,5.48029,0,0,1-1.0156,1.3857,5.4129,5.4129,0,0,1-1.3994,1.0225,5.86168,5.86168,0,0,1-1.668.5498,12.54218,12.54218,0,0,1-1.8692.1631c-.2929.0068-.5996.0107-.8974.0107l-1.084.002Z"></path> 7961 </g> 7962 <g id="_Group_" data-name="<Group>"> 7963 <g id="_Group_2" data-name="<Group>"> 7964 <g id="_Group_3" data-name="<Group>"> 7965 <path id="_Path_" data-name="<Path>" d="M24.76888,20.30068a4.94881,4.94881,0,0,1,2.35656-4.15206,5.06566,5.06566,0,0,0-3.99116-2.15768c-1.67924-.17626-3.30719,1.00483-4.1629,1.00483-.87227,0-2.18977-.98733-3.6085-.95814a5.31529,5.31529,0,0,0-4.47292,2.72787c-1.934,3.34842-.49141,8.26947,1.3612,10.97608.9269,1.32535,2.01018,2.8058,3.42763,2.7533,1.38706-.05753,1.9051-.88448,3.5794-.88448,1.65876,0,2.14479.88448,3.591.8511,1.48838-.02416,2.42613-1.33124,3.32051-2.66914a10.962,10.962,0,0,0,1.51842-3.09251A4.78205,4.78205,0,0,1,24.76888,20.30068Z" style="fill: #fff"></path> 7966 <path id="_Path_2" data-name="<Path>" d="M22.03725,12.21089a4.87248,4.87248,0,0,0,1.11452-3.49062,4.95746,4.95746,0,0,0-3.20758,1.65961,4.63634,4.63634,0,0,0-1.14371,3.36139A4.09905,4.09905,0,0,0,22.03725,12.21089Z" style="fill: #fff"></path> 7967 </g> 7968 </g> 7969 <g> 7970 <path d="M42.30227,27.13965h-4.7334l-1.13672,3.35645H34.42727l4.4834-12.418h2.083l4.4834,12.418H43.438ZM38.0591,25.59082h3.752l-1.84961-5.44727h-.05176Z" style="fill: #fff"></path> 7971 <path d="M55.15969,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H48.4302v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C53.645,21.34766,55.15969,23.16406,55.15969,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C52.30227,29.01563,53.24953,27.81934,53.24953,25.96973Z" style="fill: #fff"></path> 7972 <path d="M65.12453,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H58.395v1.50586h.03418A3.21162,3.21162,0,0,1,61.312,21.34766C63.60988,21.34766,65.12453,23.16406,65.12453,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C62.26711,29.01563,63.21438,27.81934,63.21438,25.96973Z" style="fill: #fff"></path> 7973 <path d="M71.71047,27.03613c.1377,1.23145,1.334,2.04,2.96875,2.04,1.56641,0,2.69336-.80859,2.69336-1.9
79731895,0-.96387-.67969-1.541-2.28906-1.93652l-1.60937-.3877c-2.28027-.55078-3.33887-1.61719-3.33887-3.34766,0-2.14258,1.86719-3.61426,4.51855-3.61426,2.624,0,4.42285,1.47168,4.4834,3.61426h-1.876c-.1123-1.23926-1.13672-1.9873-2.63379-1.9873s-2.52148.75684-2.52148,1.8584c0,.87793.6543,1.39453,2.25488,1.79l1.36816.33594c2.54785.60254,3.60645,1.626,3.60645,3.44238,0,2.32324-1.85059,3.77832-4.79395,3.77832-2.75391,0-4.61328-1.4209-4.7334-3.667Z" style="fill: #fff"></path> 7974 <path d="M83.34621,19.2998v2.14258h1.72168v1.47168H83.34621v4.99121c0,.77539.34473,1.13672,1.10156,1.13672a5.80752,5.80752,0,0,0,.61133-.043v1.46289a5.10351,5.10351,0,0,1-1.03223.08594c-1.833,0-2.54785-.68848-2.54785-2.44434V22.91406H80.16262V21.44238H81.479V19.2998Z" style="fill: #fff"></path> 7975 <path d="M86.065,25.96973c0-2.84863,1.67773-4.63867,4.29395-4.63867,2.625,0,4.29492,1.79,4.29492,4.63867,0,2.85645-1.66113,4.63867-4.29492,4.63867C87.72609,30.6084,86.065,28.82617,86.065,25.96973Zm6.69531,0c0-1.9541-.89551-3.10742-2.40137-3.10742s-2.40039,1.16211-2.40039,3.10742c0,1.96191.89453,3.10645,2.40039,3.10645S92.76027,27.93164,92.76027,25.96973Z" style="fill: #fff"></path> 7976 <path d="M96.18606,21.44238h1.77246v1.541h.043a2.1594,2.1594,0,0,1,2.17773-1.63574,2.86616,2.86616,0,0,1,.63672.06934v1.73828a2.59794,2.59794,0,0,0-.835-.1123,1.87264,1.87264,0,0,0-1.93652,2.083v5.37012h-1.8584Z" style="fill: #fff"></path> 7977 <path d="M109.3843,27.83691c-.25,1.64355-1.85059,2.77148-3.89844,2.77148-2.63379,0-4.26855-1.76465-4.26855-4.5957,0-2.83984,1.64355-4.68164,4.19043-4.68164,2.50488,0,4.08008,1.7207,4.08008,4.46582v.63672h-6.39453v.1123a2.358,2.358,0,0,0,2.43555,2.56445,2.04834,2.04834,0,0,0,2.09082-1.27344Zm-6.28223-2.70215h4.52637a2.1773,2.1773,0,0,0-2.2207-2.29785A2.292,2.292,0,0,0,103.10207,25.13477Z" style="fill: #fff"></path> 7978 </g> 7979 </g> 7980 </g> 7981 <g id="_Group_4" data-name="<Group>"> 7982 <g> 7983 <path d="M36.30861,13.09326c.07813.56641.63184.92627,1.43066.92627.74414,0,1.29-.38428,1.29-.91357,0-.45508-.34766-.728-1.1377-.91406l-.76855-.186c-1.0791-.25244-1.57129-.77344-1.57129-1.6499,0-1.063.86816-1.77,2.1709-1.77a1.94737,1.94737,0,0,1,2.15039,1.71191h-.90234A1.13875,1.13875,0,0,0,37.71,9.40479c-.73242,0-1.21973.35156-1.21973.88916,0,.42578.31445.66992,1.0918.85156l.65723.16162c1.22363.28516,1.72852.78125,1.72852,1.67871,0,1.14111-.88477,1.85645-2.29883,1.85645-1.32324,0-2.21289-.68213-2.2793-1.749Z" style="fill: #fff"></path> 7984 <path d="M44.15432,11.6665a1.00546,1.00546,0,0,0-1.06348-.76465c-.74414,0-1.19922.57031-1.19922,1.52979,0,.97607.459,1.55908,1.19922,1.55908a.97873.97873,0,0,0,1.06348-.74023h.86426a1.762,1.762,0,0,1-1.92285,1.53418,2.06791,2.06791,0,0,1-2.11328-2.353,2.05305,2.05305,0,0,1,2.1084-2.32373,1.77731,1.77731,0,0,1,1.92773,1.55859Z" style="fill: #fff"></path> 7985 <path d="M45.90041,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76563.562,1.76563,1.51318v3.07666h-.85547v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,45.90041,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,48.79494,13.03955Z" style="fill: #fff"></path> 7986 <path d="M51.07131,10.19482h.85547v.69043h.06641a1.22092,1.22092,0,0,1,1.21582-.76514,1.86836,1.86836,0,0,1,.39648.03711v.877a2.43442,2.43442,0,0,0-.49609-.05371A1.05507,1.05507,0,0,0,51.96,12.03906v2.65869h-.88867Z" style="fill: #fff"></path> 7987 <path d="M54.53811,8.86328a.57572.57572,0,1,1,.5752.5415A.54735.54735,0,0,1,54.53811,8.86328Zm.13184,1.33154h.88574v4.50293h-.88574Z" style="fill: #fff"></path> 7988 <path d="M59.93752,11.6665a1.00546,1.00546,0,0,0-1.06348-.76465c-.74414,0-1.19922.57031-1.19922,1.52979,0,.97607.459,1.55908,1.19922,1.55908a.97873.97873,0,0,0,1.06348-.74023h.86426a1.762,1.762,0,0,1-1.92285,1.53418,2.06791,2.06791,0,0,1-2.11328-2.353,2.05305,2.05305,0,0,1,2.1084-2.32373,1.77731,1.77731,0,0,1,1.92773,1.55859Z" style="fill: #fff"></path> 7989 <path d="M61.68361,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76611.562,1.76611,1.51318v3.07666h-.856v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,61.68361,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,64.57815,13.03955Z" style="fill: #fff"></path> 7990 <path d="M70.94289,10.10791c1.0127,0,1.6748.47119,1.76172,1.26514h-.85254c-.082-.33057-.40527-.5415-.90918-.5415-.49609,0-.873.23535-.873.58691,0,.269.22754.43848.71582.55029l.748.17334c.85645.19873,1.25781.56689,1.25781,1.22852,0,.84766-.79,1.41406-1.86523,1.41406-1.07129,0-1.76953-.48389-1.84863-1.28174h.88965a.91365.91365,0,0,0,.97949.562c.55371,0,.94727-.248.94727-.60791,0-.26855-.21094-.44238-.66211-.5498l-.78516-.18213c-.85645-.20264-1.25293-.58691-1.25293-1.25684C69.19387,10.66992,69.92531,10.10791,70.94289,10.10791Z" style="fill: #fff"></path> 7991 <path d="M77.78469,14.69775h-.85645v-.71533h-.07031a1.35022,1.35022,0,0,1-1.36035.80225,1.4622,1.4622,0,0,1-1.55078-1.6665V10.19482h.88965v2.69189c0,.72754.293,1.0752.94629,1.0752a1.02228,1.02228,0,0,0,1.1123-1.1333V10.19482h.88965Z" style="fill: #fff"></path> 7992 </g> 7993 </g> 7994 </g> 7995</svg> 7996 7997 7998</a> 7999<a href="https://play.google.com/store/apps/details?id=com.developer.farmait" target="_blank">
8000<svg version="1.1" id="svg1372" width="150" viewBox="0 0 861.33331 255.2092" sodipodi:docname="google-play-badge-it.eps" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> 8001 <defs id="defs1376"> 8002 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1390"> 8003 <path d="M 0,2207.03 H 6460 V 292.961 H 0 Z" id="path1388"></path> 8004 </clipPath> 8005 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1412"> 8006 <path d="M 0,2207.04 H 6460 V 292.961 H 0 Z" id="path1410"></path> 8007 </clipPath> 8008 </defs> 8009 <sodipodi:namedview id="namedview1374" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" showgrid="false"></sodipodi:namedview> 8010 <g id="g1380" inkscape:groupmode="layer" inkscape:label="Page 1" transform="matrix(1.3333333,0,0,-1.3333333,-5.5867668e-7,294.27066)"> 8011 <g id="g1382" transform="scale(0.1)"> 8012 <g id="g1384"> 8013 <g id="g1386" clip-path="url(#clipPath1390)"> 8014 <path d="M 6220.74,292.969 H 239.262 C 107.668,292.969 0,400.629 0,532.23 v 1435.55 c 0,131.6 107.668,239.26 239.262,239.26 H 6220.74 c 131.59,0 239.26,-107.66 239.26,-239.26 V 532.23 c 0,-131.601 -107.67,-239.261 -239.26,-239.261" style="fill:#100f0d;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1392"></path> 8015 <path d="M 6220.74,2207.03 H 239.262 C 107.668,2207.03 0,2099.36 0,1967.77 V 532.219 C 0,400.621 107.668,292.961 239.262,292.961 H 6220.74 c 131.59,0 239.26,107.66 239.26,239.258 V 1967.77 c 0,131.59 -107.67,239.26 -239.26,239.26 m 0,-38.28 c 110.83,0 200.98,-90.15 200.98,-200.98 V 532.219 c 0,-110.828 -90.15,-200.981 -200.98,-200.981 H 239.262 c -110.828,0 -200.9807,90.153 -200.9807,200.981 V 1967.77 c 0,110.83 90.1527,200.98 200.9807,200.98 H 6220.74" style="fill:#a2a2a1;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1394"></path> 8016 <path d="m 5117.09,771.48 h 89.29 v 598.19 h -89.29 z m 804.24,382.72 -102.35,-259.36 h -3.06 L 5709.68,1154.2 H 5613.5 L 5772.8,791.719 5681.98,590.07 h 93.12 l 245.53,564.13 z M 5414.96,839.43 c -29.28,0 -70.05,14.64 -70.05,50.808 0,46.184 50.77,63.844 94.65,63.844 39.24,0 57.71,-8.473 81.59,-20 -6.94,-55.422 -54.65,-94.652 -106.19,-94.652 m 10.77,327.83 c -64.65,0 -131.64,-28.47 -159.35,-91.54 l 79.29,-33.12 c 16.95,33.12 48.48,43.89 81.59,43.89 46.18,0 93.12,-27.71 93.89,-76.95 v -6.17 c -16.18,9.23 -50.82,23.06 -93.12,23.06 -85.42,0 -172.41,-46.942 -172.41,-134.649 0,-80.062 70.05,-131.601 148.53,-131.601 60.05,0 93.12,26.898 113.94,58.48 h 3.06 v -46.18 h 86.18 v 229.36 c 0,106.18 -79.24,165.42 -181.6,165.42 m -551.83,-85.89 h -127 v 205.09 h 127 c 66.76,0 104.65,-55.32 104.65,-102.55 0,-46.37 -37.89,-102.54 -104.65,-102.54 m -2.29,288.3 H 4657.66 V 771.48 h 89.24 v 226.622 h 124.71 c 98.95,0 196.24,71.688 196.24,185.808 0,114.13 -97.29,185.76 -196.24,185.76 M 3704.93,839.328 c -61.68,0 -113.31,51.633 -113.31,122.551 0,71.681 51.63,124.131 113.31,124.131 60.91,0 108.67,-52.45 108.67,-124.131 0,-70.918 -47.76,-122.551 -108.67,-122.551 m 102.5,281.372 h -3.06 c -20.05,23.88 -58.57,45.51 -107.14,45.51 -101.79,0 -195.05,-89.44 -195.05,-204.331 0,-114.078 93.26,-202.75 195.05,-202.75 48.57,0 87.09,21.582 107.14,46.269 h 3.06 v -29.277 c 0,-77.902 -41.59,-119.492 -108.67,-119.492 -54.75,0 -88.67,39.293 -102.55,72.453 l -77.85,-32.402 c 22.34,-53.969 81.73,-120.25 180.4,-120.25 104.84,0 193.51,61.679 193.51,211.992 v 365.438 h -84.84 z M 3953.9,771.48 h 89.44 v 598.24 h -89.44 z m 221.27,197.34 c -2.3,78.67 60.92,118.72 106.38,118.72 35.5,0 65.55,-17.71 75.55,-43.16 z m 277.54,67.85 c -16.99,45.51 -68.62,129.54 -174.23,129.54 -104.84,0 -191.93,-82.5 -191.93,-203.569 0,-114.071 86.32,-203.512 201.93,-203.512 93.31,0 147.24,57.043 169.64,90.199 l -69.39,46.274 c -23.16,-33.922 -54.74,-56.274 -100.25,-56.274 -45.45,0 -77.85,20.82 -98.67,61.633 l 272.14,112.599 z m -2168.07,67.04 v -86.32 h 206.58 c -6.18,-48.57
8016-22.35,-84.031 -46.99,-108.671 -30.1,-30.098 -77.14,-63.219 -159.59,-63.219 -127.24,0 -226.67,102.5 -226.67,229.74 0,127.19 99.43,229.69 226.67,229.69 68.62,0 118.72,-26.94 155.71,-61.63 l 60.91,60.86 c -51.67,49.34 -120.25,87.14 -216.62,87.14 -174.23,0 -320.7,-141.88 -320.7,-316.06 0,-174.279 146.47,-316.111 320.7,-316.111 94.03,0 164.95,30.871 220.45,88.672 57.04,57.039 74.8,137.187 74.8,201.979 0,20.05 -1.54,38.52 -4.65,53.93 z m 530.1,-264.382 c -61.63,0 -114.84,50.871 -114.84,123.313 0,73.269 53.21,123.369 114.84,123.369 61.68,0 114.89,-50.1 114.89,-123.369 0,-72.442 -53.21,-123.313 -114.89,-123.313 m 0,326.882 c -112.55,0 -204.28,-85.61 -204.28,-203.569 0,-117.141 91.73,-203.512 204.28,-203.512 112.55,0 204.33,86.371 204.33,203.512 0,117.959 -91.78,203.569 -204.33,203.569 m 445.69,-326.882 c -61.68,0 -114.89,50.871 -114.89,123.313 0,73.269 53.21,123.369 114.89,123.369 61.69,0 114.85,-50.1 114.85,-123.369 0,-72.442 -53.16,-123.313 -114.85,-123.313 m 0,326.882 c -112.54,0 -204.28,-85.61 -204.28,-203.569 0,-117.141 91.74,-203.512 204.28,-203.512 112.55,0 204.28,86.371 204.28,203.512 0,117.959 -91.73,203.569 -204.28,203.569" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1396"></path> 8017 <path d="M 991.355,1277.56 481.879,736.828 c 0.047,-0.09 0.047,-0.238 0.098,-0.328 15.644,-58.719 69.238,-101.93 132.882,-101.93 25.457,0 49.336,6.891 69.817,18.95 l 1.625,0.96 573.459,330.891 -268.405,292.189" style="fill:#eb3131;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1398"></path> 8018 <path d="m 1506.77,1369.63 -0.48,0.34 -247.59,143.51 -278.927,-248.21 279.927,-279.84 246.25,142.07 c 43.16,23.36 72.5,68.86 72.5,121.31 0,52.16 -28.91,97.42 -71.68,120.82" style="fill:#f6b60b;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1400"></path> 8019 <path d="m 481.867,1763.11 c -3.062,-11.29 -4.687,-23.16 -4.687,-35.41 V 772.191 c 0,-12.25 1.625,-24.113 4.738,-35.363 l 526.942,526.902 -526.993,499.38" style="fill:#5778c5;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1402"></path> 8020 <path d="m 995.117,1249.95 263.663,263.62 -572.784,332.09 c -20.816,12.49 -45.125,19.67 -71.109,19.67 -63.641,0 -117.332,-43.31 -132.981,-102.07 0,-0.05 -0.047,-0.1 -0.047,-0.15 l 513.258,-513.16" style="fill:#3bad49;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1404"></path> 8021 </g> 8022 </g> 8023 <g id="g1406"> 8024 <g id="g1408" clip-path="url(#clipPath1412)"> 8025 <path d="m 2093.53,1621.88 c 33.87,0 60.16,9.36 78.89,28.09 18.73,18.74 28.1,44.61 28.1,77.64 0,33.03 -9.37,58.92 -28.1,77.65 -18.73,18.73 -45.02,28.1 -78.89,28.1 h -48.29 v -211.48 z m -94.08,254.78 h 95.33 c 30.81,0 57.66,-6.25 80.55,-18.74 22.9,-12.49 40.52,-30.04 52.88,-52.66 12.35,-22.63 18.52,-48.5 18.52,-77.65 0,-29.14 -6.17,-55.02 -18.52,-77.64 -12.36,-22.62 -29.98,-40.17 -52.88,-52.66 -22.89,-12.49 -49.74,-18.73 -80.55,-18.73 h -95.33 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1414"></path> 8026 <path d="m 2306.26,1876.66 h 45.79 v -298.08 h -45.79 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1416"></path> 8027 <path d="m 2447.81,1593.56 c -19.71,14.43 -33.45,34.69 -41.22,60.78 l 43.3,17.49 c 4.44,-16.65 12.35,-30.26 23.73,-40.8 11.37,-10.55 25.11,-15.82 41.22,-15.82 14.98,0 27.68,3.88 38.08,11.66 10.41,7.77 15.62,18.45 15.62,32.05 0,12.49 -4.58,22.83 -13.74,31.02 -9.16,8.19 -24.98,16.17 -47.46,23.94 l -18.73,6.66 c -20.27,7.21 -37.12,17.28 -50.59,30.18 -13.46,12.91 -20.19,30.04 -20.19,51.42 0,14.7 3.96,28.31 11.87,40.79 7.91,12.49 19,22.34 33.3,29.56 14.3,7.22 30.46,10.83 48.51,10.83 25.81,0 46.48,-6.32 62.03,-18.94 15.53,-12.64 26.08,-26.86 31.64,-42.68 l -41.22,-17.49 c -2.78,10 -8.61,18.6 -17.48,25.82 -8.89,7.21 -20.4,10.82 -34.56,10.82 -13.6,0 -25.12,-3.61 -34.55,-10.82 -9.44,-7.22 -14.15,-16.38 -14.15,-27.48 0,-10.27 4.22,-18.8 12.69,-25.6 8.46,-6.81 21.57,-13.25 39.34,-19.36 l 19.15,-6.66 c 25.53,-8.89 45.23,-20.4 59.12,-34.55 13.88,-14.16 20.81,-33.04 20.81,-56.62 0,-19.43 -4.92,-35.74 -14.78,-48.92 -9.85,-13.19 -22.48,-22.96
8027-37.88,-29.35 -15.41,-6.38 -31.16,-9.57 -47.25,-9.57 -24.71,0 -46.91,7.21 -66.61,21.64" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1418"></path> 8028 <path d="m 2777.94,1737.61 c 15.27,0 27.54,4.78 36.85,14.36 9.29,9.58 13.94,20.74 13.94,33.51 0,12.77 -4.65,23.94 -13.94,33.52 -9.31,9.57 -21.58,14.36 -36.85,14.36 h -57.87 v -95.75 z m -103.66,139.05 h 102.41 c 17.77,0 34.06,-3.89 48.92,-11.66 14.84,-7.78 26.64,-18.6 35.39,-32.47 8.74,-13.89 13.11,-29.57 13.11,-47.05 0,-17.48 -4.37,-33.16 -13.11,-47.04 -8.75,-13.88 -20.55,-24.71 -35.39,-32.47 -14.86,-7.77 -31.15,-11.66 -48.92,-11.66 h -56.62 v -115.73 h -45.79 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1420"></path> 8029 <path d="m 3122.01,1629.57 c 16.52,9.58 29.56,22.9 39.14,39.97 9.58,17.07 14.36,36.43 14.36,58.07 0,21.66 -4.78,41.01 -14.36,58.08 -9.58,17.07 -22.62,30.39 -39.14,39.97 -16.51,9.57 -34.76,14.36 -54.74,14.36 -19.98,0 -38.23,-4.79 -54.75,-14.36 -16.51,-9.58 -29.55,-22.9 -39.13,-39.97 -9.57,-17.07 -14.36,-36.42 -14.36,-58.08 0,-21.64 4.79,-41 14.36,-58.07 9.58,-17.07 22.62,-30.39 39.13,-39.97 16.52,-9.57 34.77,-14.36 54.75,-14.36 19.98,0 38.23,4.79 54.74,14.36 z m -133.42,-36.84 c -23.6,13.88 -42.12,32.68 -55.58,56.41 -13.47,23.74 -20.19,49.89 -20.19,78.47 0,28.59 6.72,54.75 20.19,78.48 13.46,23.73 31.98,42.53 55.58,56.41 23.58,13.88 49.81,20.82 78.68,20.82 28.87,0 55.02,-6.94 78.47,-20.82 23.45,-13.88 41.91,-32.68 55.38,-56.41 13.45,-23.73 20.18,-49.89 20.18,-78.48 0,-28.58 -6.73,-54.73 -20.18,-78.47 -13.47,-23.73 -31.93,-42.53 -55.38,-56.41 -23.45,-13.88 -49.6,-20.81 -78.47,-20.81 -28.87,0 -55.1,6.93 -78.68,20.81" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1422"></path> 8030 <path d="m 3280.41,1876.66 h 54.12 l 134.89,-218.99 h 2.5 l -2.5,57.46 v 161.53 h 45.38 v -298.08 h -47.46 l -141.55,230.22 h -2.5 l 2.5,-57.46 v -172.76 h -45.38 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1424"></path> 8031 <path d="m 3590.15,1876.66 h 45.79 v -298.08 h -45.79 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1426"></path> 8032 <path d="m 3827.45,1621.04 c 14.43,0 26.02,4.37 34.76,13.11 8.74,8.75 13.11,19.22 13.11,31.43 0,12.22 -4.51,22.76 -13.52,31.64 -9.02,8.89 -21.03,13.33 -36.02,13.33 h -69.11 v -89.51 z m -7.08,130.3 c 13.88,0 24.98,4.23 33.3,12.71 8.33,8.46 12.49,18.24 12.49,29.34 0,11.1 -4.1,20.75 -12.27,28.94 -8.19,8.18 -18.81,12.28 -31.86,12.28 h -65.36 v -83.27 z m -109.49,125.32 h 111.57 c 15.82,0 30.53,-3.48 44.13,-10.41 13.6,-6.94 24.36,-16.45 32.27,-28.52 7.91,-12.07 11.87,-25.47 11.87,-40.18 0,-14.71 -3.69,-27.54 -11.04,-38.5 -7.35,-10.97 -17.14,-19.36 -29.36,-25.19 v -2.08 c 15.55,-5.28 27.91,-14.02 37.07,-26.23 9.15,-12.21 13.73,-26.64 13.73,-43.3 0,-16.37 -4.23,-30.87 -12.7,-43.5 -8.47,-12.63 -19.84,-22.48 -34.14,-29.56 -14.3,-7.07 -29.9,-10.61 -46.83,-10.61 h -116.57 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1428"></path> 8033 <path d="m 3981.48,1876.66 h 45.79 v -298.08 h -45.79 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1430"></path> 8034 <path d="m 4102.63,1876.66 h 45.79 v -254.78 h 128.22 v -43.3 h -174.01 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1432"></path> 8035 <path d="m 4324.93,1876.66 h 180.69 v -43.3 h -134.89 v -84.09 h 121.56 v -43.3 h -121.56 v -84.09 h 134.89 v -43.3 h -180.69 v 298.08" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1434"></path> 8036 <path d="m 4680.03,1593.56 c -19.71,14.43 -33.45,34.69 -41.21,60.78 l 43.29,17.49 c 4.45,-16.65 12.36,-30.26 23.73,-40.8 11.38,-10.55 25.12,-15.82 41.22,-15.82 14.98,0 27.69,3.88 38.09,11.66 10.41,7.77 15.61,18.45 15.61,32.05 0,12.49 -4.58,22.83 -13.74,31.02 -9.16,8.19 -24.98,16.17 -47.46,23.94 l -18.73,6.66 c -20.26,7.21 -37.12,17.28 -50.58,30.18 -13.46,12.91 -20.19,30.04 -20.19,51.42 0,14.7 3.96,28.31 11.87,40.79 7.91,12.49 19,22.34 33.3,29.56 14.29,7.22 30.46,10.83 48.5,10.83 25.81,0 46.49,-6.32 62.03,-18.94 15.54,-12.64 26.09,-26.86 31.64,-42.68 l -41.22,-17.49 c -2.77,10 -8.6,18.6 -17.48,25.82 -8.88,7.21 -20.4,10.82 -34.56,10.82 -13.59,0 -25.11,-3.61 -34.55,-10.82 -9.43,-7.22 -14.15,-16.38 -14.15,-27.48 0,-10.27 4.23,-18.8 12.7,-25.6 8.45,-6.81 21.57,-13.25 39.33,-19.36 l 19.15,-6.66 c 25.54,-8.89 45.24,-20.4 59.12,-34.55 13.88,-14.16 20.82,-33.04 20.82,-56.62 0,-19.43 -4.93,-35.74 -14.78,-48.92 -9.85,-13.19 -22.48,-22.96
8036-37.88,-29.35 -15.41,-6.38 -31.16,-9.57 -47.26,-9.57 -24.7,0 -46.9,7.21 -66.61,21.64" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1436"></path> 8037 <path d="m 4952.93,1586.9 c -17.07,9.99 -30.25,24.15 -39.55,42.47 -9.31,18.31 -13.94,39.55 -13.94,63.69 v 183.6 h 45.37 v -186.1 c 0,-22.48 5.83,-40.65 17.49,-54.53 11.65,-13.89 28.16,-20.82 49.54,-20.82 21.65,0 38.3,6.93 49.95,20.82 11.66,13.88 17.49,32.05 17.49,54.53 v 186.1 h 45.38 v -183.6 c 0,-23.87 -4.58,-44.96 -13.74,-63.28 -9.16,-18.31 -22.21,-32.54 -39.13,-42.67 -16.93,-10.13 -36.92,-15.19 -59.95,-15.19 -22.21,0 -41.85,4.99 -58.91,14.98" style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path1438"></path> 8038 </g> 8039 </g> 8040 </g> 8041 </g> 8042</svg> 8043 8044</a></div> 8045 </div> 8046 </div> 8047 </div> 8048</div> 8049
8050<script> 8051if(typeof FeedatyWidget !== 'undefined') { 8052FeedatyWidget.init(); 8053} 8054</script>
8054</div> </div> 8055 </template> 8056 </div> 8057 <div class="footer content">
8057<script> 8058 'use strict'; 8059 8060 function amBrandsPopup() { 8061 let cached = false; 8062 8063 const displayError = (error) => { 8064 console.error(error); 8065 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 8066 [{ 8067 type: "error", 8068 text: "Qualcosa\u0020\u00E8\u0020andato\u0020storto.\u0020Riprova\u0020di\u0020nuovo." 8069 }], 10000 8070 ); 8071 }; 8072 8073 let letters = [ 8074 "A","B","C","D", 8075 "E","F","G","H","I","J","K","L","M", 8076 "N","O","P","Q","R","S","T","U","V","W","X","Y","Z","#" 8077 ]; 8078 8079 return { 8080 hoverPanelActiveId: null, 8081 selectedLetter: null, 8082 items: [], 8083 letters: [], 8084 showCount: null, 8085 showFilter: null, 8086 showImages: true, 8087 showSearch: null, 8088 loading: false, 8089 label: 'Brands', 8090 isPopupEnabled: false, 8091 isTopMenuItemEnabled: false, 8092 cache: false, 8093 isMobile: false, 8094 8095 initErrorMessages(errors) { 8096 const messages = []; 8097 for (let error in Object.keys(errors)) { 8098 messages.push({type: 'error', text: errors[error].message}); 8099 } 8100 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(messages, 10000); 8101 }, 8102 8103 chooseLetter(letter) { 8104 this.selectedLetter = this.selectedLetter === letter ? null : letter; 8105 }, 8106 8107 getQuery() { 8108 return "query BrandsPopupQuery { ambrandlist(\n showCount: true\n displayZero: true\n ) {\n all_letters,\n items {\n alt\n brandId\n cnt\n image\n img\n label\n letter\n url\n }\n }\n storeConfig {\n amshopby_brand_general_brands_brands_popup,\n amshopby_brand_general_menu_item_label,\n amshopby_brand_general_brands_page,\n amshopby_brand_general_topmenu_enabled,\n amshopby_brand_general_brands_popup_config {\n show_images,\n display_zero,\n filter_display_all,\n image_width,\n image_height,\n show_filter,\n show_count\n }\n } }" }, 8109 8110 /** 8111 * Retrieve media url for given path 8112 * 8113 * @param path 8114 * @returns {string} 8115 */ 8116 getMediaUrl(path) { 8117 const baseUrl = BASE_URL.replace('index.php/', ''); 8118 if (path.includes('://')) { 8119 return path; 8120 } 8121 8122 let productImageUrl = `${baseUrl}${path}`; 8123 const regexDuplicateDomain = new RegExp(`^(https?:\/\/[^/]+).*\\1`); 8124 productImageUrl = productImageUrl.replace(regexDuplicateDomain, '$1'); 8125 8126 return productImageUrl.includes('/product/placeholder/') 8127 ? productImageUrl.replace(/\/media(?=\/static)/, '') 8128 : productImageUrl; 8129 }, 8130 8131 checkIsMobileResolution() { 8132 this.isMobile = window.matchMedia('(max-width: 1023px)').matches; 8133 }, 8134 8135 getBrandUrl(url){ 8136 return BASE_URL + url; 8137 }, 8138 8139 init() { 8140 this.checkIsMobileResolution(); 8141 8142 this.$watch('hoverPanelActiveId', (value) => { 8143 if (value === 'am-brand') { 8144 this.sendRequest(); 8145 } 8146 }); 8147 }, 8148 8149 /** 8150 * Get brands by letter 8151 * 8152 * @param result 8153 * @returns {{imageWidth: *, isTopMenuItemEnabled: *, showCount: *, displayAll: *, showFilter: *, showImages: *, isPopupEnabled: *, label: *, imageHeight: *, filterDisplayAll: *, brandsPage: *}} 8154 */ 8155 settingsMapper(result) { 8156 const config = result.data.storeConfig?.amshopby_brand_general_brands_popup_config; 8157 return { 8158 showImages: config.show_images, 8159 showCount: config.show_count, 8160 showFilter: config.show_filter, 8161 imageWidth: config.image_width, 8162 imageHeight: config.image_height, 8163 filterDisplayAll: config.filter_display_all, 8164 displayAll: config.display_zero, 8165 isPopupEnabled: result.data.storeConfig?.amshopby_brand_general_brands_brands_popup, 8166 label: result.data.storeConfig?.amshopby_brand_general_menu_item_label, 8167 isTopMenuItemEnabled: result.data.storeConfig?.amshopby_brand_general_topmenu_enabled, 8168 brandsPage: result.data.storeConfig?.amshopby_brand_general_brands_page, 8169 } 8170 }, 8171 8172 /** 8173 * Send request to graphql 8174 * 8175 * @returns {Promise<any>} 8176 */ 8177 async sendRequest() { 8178 if (this.isMobile) { 8179 return false;
8180 } 8181 8182 this.loading = true; 8183 8184 try { 8185 if (cached) { 8186 this.loading = false; 8187 return false; 8188 } 8189 8190 const response = await fetch('https://www.farma.it/graphql', { 8191 method: 'POST', 8192 headers: { 8193 'Content-Type': 'application/json', 8194 'Store': 'default' 8195 }, 8196 credentials: 'include', 8197 body: JSON.stringify({query: this.getQuery(), variables: {}}) 8198 }); 8199 8200 const result = await response.json(); 8201 8202 if (result?.errors) { 8203 this.initErrorMessages(result.errors); 8204 return; 8205 } 8206 8207 const data = result.data?.ambrandlist; 8208 const mapper = this.settingsMapper(result); 8209 8210 // Update component settings 8211 Object.keys(mapper).forEach(config => { 8212 this[config] = mapper[config]; 8213 }); 8214 8215 if (!this.filterDisplayAll) { 8216 letters = data.all_letters.split(','); 8217 } 8218 8219 const items = data.items.map(brand => { 8220 brand.image = brand.img 8221 ? this.getMediaUrl(brand.img) : (brand.image ? this.getMediaUrl(brand.image) : null); 8222 return brand; 8223 }); 8224 8225 this.letters = letters.map(letter => ({ 8226 letter, 8227 brands: this.getLetterItems(items, letter), 8228 })); 8229 8230 this.items = this.letters.filter(row => row.brands?.length > 0); 8231 8232 cached = true; 8233 } catch (error) { 8234 displayError(error); 8235 } finally { 8236 this.loading = false; 8237 } 8238 }, 8239 8240 /** 8241 * Get brands by letter 8242 * 8243 * @param items 8244 * @param letter 8245 * @returns {*} 8246 */ 8247 getLetterItems(items, letter) { 8248 return items.filter(row => row.letter === letter); 8249 }, 8250 8251 convertHtml(text) { 8252 let textField = document.createElement("textarea"); 8253 textField.innerHTML = text; 8254 return textField.value; 8255 } 8256 } 8257 } 8258 8259 function amBrandsPopupData() { 8260 return Object.assign( 8261 amBrandsPopup(), 8262 { 8263 brandPopupClass() { 8264 return { 8265 'hover:border-primary data-[active]:border-primary': !this.isPopupEnabled 8266 } 8267 }, 8268 labelPopupClass() { 8269 return {'w-14 opacity-0': this.label === ''} 8270 }, 8271 popupcontentClass() { 8272 return { 8273 'hidden' : this.hoverPanelActiveId !== 'am-brand', 8274 'left-0' : `${this.$el.dataset.first}`, 8275 'right-0' : `${this.$el.dataset.last}` 8276 } 8277 }, 8278 panelActiveMouseenterEvent() { 8279 return this.hoverPanelActiveId = 'am-brand' 8280 }, 8281 panelActiveMouseleaveEvent() { 8282 return this.hoverPanelActiveId = null 8283 }, 8284 isPopupShow() { 8285 return this.hoverPanelActiveId === 'am-brand' 8286 }, 8287 labelText(){ 8288 return this.label 8289 }, 8290 isEnabledPopup(){ 8291 return this.isPopupEnabled 8292 }, 8293 showExtMessage(){ 8294 return false 8295 }, 8296 notLoading() { 8297 return !this.loading 8298 }, 8299 brandLabel() { 8300 return this.brand.label 8301 }, 8302 letterClass() { 8303 return { 8304 'border-blue-400 text-blue-400 bg-blue-100': this.selectedLetter === this.letter.letter, 8305 'bg-gray-200 text-gray-700 cursor-default pointer-events-none': !this.letter.brands || this.letter.brands.length === 0 8306 } 8307 }, 8308 letterClickEvent(event) { 8309 return this.chooseLetter(this.letter.letter) 8310 }, 8311 letterBrands() { 8312 return this.letter.brands 8313 }, 8314 brandUrl() { 8315 return this.getBrandUrl(this.brand.url) 8316 }, 8317 brandImage() { 8318 return this.brand.image 8319 },
8320 notBrandImage() { 8321 return !this.brand.image 8322 }, 8323 letterLetter() { 8324 return this.letter.letter 8325 }, 8326 brandBrandId() { 8327 return this.brand.brandId 8328 }, 8329 isLetterShow() { 8330 return !this.selectedLetter || this.selectedLetter === this.letter.letter 8331 }, 8332 brandImageMediaUrl() { 8333 return this.getMediaUrl(this.brand.image) 8334 }, 8335 brandImageStyle() { 8336 return `max-width: ${this.imageWidth ? this.imageWidth + 'px' : '100px' };max-height: ${this.imageHeight ? this.imageHeight + 'px' : 'inherit'}` 8337 }, 8338 brandsLabelStyle() { 8339 return `min-width: ${this.imageWidth}px` 8340 }, 8341 brandLabelFilter() { 8342 return this.brand.label.charAt(0) 8343 }, 8344 brandCnt() { 8345 return '(' + this.brand.cnt + ')' 8346 } 8347 } 8348 ) 8349 } 8350 window.addEventListener('alpine:init', () => Alpine.data('amBrandsPopupData', amBrandsPopupData), {once: true}); 8351</script>
8351 8352</div><div class="after-footer footer content"> 8353 <div x-data="{ show: false }" x-intersect.once.margin.200px="show = true" x-init="$watch('show', (value) => { if (value) { $nextTick(() => { $dispatch('footer:added') }); } } )" class="dna-footer-item " id="dna-footer-item_after_footer"> 8354 <template x-if="show"> 8355 <div class="dna-footer-item-content"> 8356 <div data-content-type="html" data-appearance="default" data-intersect="false" data-element="main" data-decoded="true"><div class="bg-quaternary pb-6 pt-5"> 8357 <div class="md:flex justify-between text-white container lg:grid grid-cols-8"> 8358 <div class="flex items-center order-2 col-span-2 mb-4 md:mb-0 w-60 socials"> 8359 <h5 class="font-bold font-baloo-bhaina text-white">Seguici su</h5> 8360 <a target="_blank" href="https://www.instagram.com/farma.it/" class="ml-4"> 8361 <img title="instagram" class='w-5 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/social/instagram.svg" alt="instagram" /> 8362 </a> 8363 <a target="_blank" href="https://www.facebook.com/farmapuntoit" class="ml-4"> 8364 <img title="Facebook" class='w-5 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/icon/social/facebook.svg" alt="Facebook" /> 8365 </a> 8366 </div> 8367 <div class="col-span-6"> 8368 <p class="text-xxs mt-2 mb-2 md:flex font-normal leading-5 md:text-xs">Farma.it S.a.s. P. IVA 07417261216 REA: NA-884088 <br class="sm:hidden"> 8369 <span class="flex gap-1.5"><span class="hidden md:block"> -</span>CREDITS 8370 <a href="https://www.dnafactory.it/" target="_blank" title="DNA Factory"> 8371 <img title="DNAFactory" class='w-28 h-5' loading="lazy" src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/images/footer/dnafactory_logo_negativo.svg" alt="DNAFactory" /> 8372 </a> 8373 </span> 8374 </p> 8375 8376 <p class="text-xxs md:text-xs">Sede legale Via delle Repubbliche Marinare 128, 80147 Napoli </br> 8377Vendita online di medicinali senza obbligo di prescrizione effettuata tramite esercizio autorizzato dal Ministero della Salute â Codice identificativo n. 016715</p> 8378 </div> 8379 </div> 8380</div></div> </div> 8381 </template> 8382 </div> 8383 </div></footer>
8384<script> 8385 function amBannerInjectorResolver () { 8386 const injectors = Object.values({"products.among.injector":{"position":14,"name":"amBannerAmongCategoryInjector"},"products.belowcart.injector":{"position":15,"name":"amBannerBelowCartInjector"}}); 8387 8388 return { 8389 amBannerAmongCategoryInjector: function (sectionId, injectorParams) { 8390 const container = document.querySelector('[data-role="amasty-banner-container"][data-position="' + sectionId + '"]'); 8391 8392 Object.keys(injectorParams.banners).map((id) => { 8393 const params = injectorParams.banners[id]; 8394 const element = container.querySelector('[data-banner-id="' + id + '"]'); 8395 insertBannerAmongCategoryByConfig({ 8396 containerSelector: injectorParams.containerSelector, 8397 itemSelector: injectorParams.itemSelector, 8398 afterProductRow: params.afterProductRow, 8399 afterProductNum: params.afterProductNum, 8400 span: params.width 8401 }, element); 8402 }); 8403 8404 function insertBannerAmongCategoryByConfig (injectorConfig, element) { 8405 const options = { 8406 injectorConfig: {}, 8407 container: null, 8408 after: null, 8409 wrapper: null, 8410 initialized: false, 8411 gridSizes: ['sm', 'xl'], 8412 bannerWidthClass: 'col-span', 8413 ...injectorConfig 8414 } 8415 8416 insertBanner(element); 8417 8418 function insertBanner(element) { 8419 const initialized = setOptions(); 8420 8421 if (!initialized) { 8422 return; 8423 } 8424 8425 element.classList.add('ambanners-injected-banner'); 8426 const wrapper = options.wrapper.cloneNode(true); 8427 8428 wrapper.classList.remove('card', 'card-interactive'); 8429 addStylesForDifferentSizes(wrapper); 8430 8431 insertWrapper(wrapper); 8432 wrapper.append(element); 8433 } 8434 8435 function setOptions () { 8436 const initialized = document.querySelector(options.containerSelector) !== null; 8437 8438 if (!initialized) { 8439 console.warn( 8440 'Failed to initialize banner: Can\'t find an element with selector "' + options.containerSelector + '"' 8441 ); 8442 8443 return; 8444 } 8445 8446 options.container = document.querySelector(options.containerSelector); 8447 8448 setLineToInject(); 8449 8450 if (!options.after) { 8451 return; 8452 } 8453 8454 setWrapper(); 8455 8456 return true; 8457 } 8458 8459 function setLineToInject() { 8460 if (options.afterProductNum === -1) { 8461 setFirstLineToInject(); 8462 } else { 8463 setLineByPositionToInject(); 8464 } 8465 } 8466 8467 function setWrapper() { 8468 if (options.after) { 8469 options.wrapper = options.after.cloneNode(); 8470 } 8471 } 8472 8473 function setFirstLineToInject() { 8474 options.after = document.querySelector(options.itemSelector); 8475 } 8476 8477 function setLineByPositionToInject() { 8478 // calc banner insert offset 8479 const offset = calculateOffsetBasedOnPreviousBanners(); 8480 8481 options.after = document.querySelectorAll(options.itemSelector)[options.afterProductNum - offset]; 8482 } 8483 8484 function calculateOffsetBasedOnPreviousBanners () { 8485 return [...document.querySelectorAll(`${options.itemSelector}`)] 8486 ?.reduce((accumulator, amInjectedBannerWrapper) => { 8487 const widthAttributeValue = Number(amInjectedBannerWrapper?.getAttribute('am-banner-span')) 8488 8489 if (widthAttributeValue > 1) { 8490 accumulator += (widthAttributeValue - 1); 8491 } 8492 8493 return accumulator; 8494 }, 0); 8495 } 8496 8497 function insertWrapper(insert) { 8498 if (options.after) { 8499 insertWrapperAfterFoundProduct(insert); 8500 } else if (options.container) { 8501 insertWrapperInProductListContainer(insert); 8502 } 8503 } 8504 8505 function insertWrapperAfterFoundProduct(insert) { 8506 if (options.afterProductNum === -1) { 8507 options.after.parentNode.insertBefore(insert, options.after); 8508 } else { 8509 options.after.parentNode.insertBefore(insert, options.after.nextSibling); 8510 } 8511 } 8512 8513 function insertWrapperInProductListContainer(insert) { 8514 if (parseInt(options.afterProductRow) > 1) {
8515 options.container.innerHTML += insert.innerHTML; 8516 } else { 8517 options.container.innerHTML = insert.innerHTML + options.container.innerHTML; 8518 } 8519 } 8520 8521 function addStylesForDifferentSizes (wrapper) { 8522 options.gridSizes?.forEach((size, index) => { 8523 const widthValue = options.span > index + 1 ? index + 2 : options.span; 8524 wrapper?.classList.add(`${size}:${options.bannerWidthClass}-${widthValue}`); 8525 wrapper?.setAttribute('am-banner-span', widthValue); 8526 }); 8527 } 8528 } 8529 }, 8530 8531 amBannerBelowCartInjector: function (sectionId) { 8532 const belowProductAddToCartBanner = document.querySelector('.ambanners.ambanner-' + sectionId); 8533 belowProductAddToCartBanner.style.display = 'block'; 8534 document.querySelectorAll('.product-item')?.forEach(product => { 8535 product?.append(belowProductAddToCartBanner.cloneNode(true)); 8536 }); 8537 belowProductAddToCartBanner.style.display = 'none'; 8538 }, 8539 8540 resolve: function (position, injectorParams) { 8541 const injector = injectors.find((injector) => { 8542 return injector.position === Number(position); 8543 }); 8544 8545 return this[injector?.name]?.(position, injectorParams); 8546 } 8547 } 8548 } 8549</script>
8549 8550 <span class="data-fbq-success" data-fbq-success="true"></span> 8551 8552<div x-data="{...hyva.modal(), ...initAmGdprPolicyPopup()}" x-init="initGdprPopup()" 8553 x-spread="eventListeners" x-bind="eventListeners"> 8554 <div x-cloak x-spread="overlay('amgdpr-policy-popup')" x-bind="overlay('amgdpr-policy-popup')" 8555 class="fixed inset-0 flex items-center justify-center text-left bg-black bg-opacity-50 z-40"> 8556 <div x-ref="amgdpr-policy-popup" role="dialog" aria-labelledby="amgdpr-policy-content" 8557 class="flex flex-col bg-white shadow-xl rounded-lg p-10 max-h-[95vh] max-w-6xl relative"> 8558 <button @click="$dispatch('amgdpr-close-policy')" aria-label="Chiudi" 8559 class="absolute right-4 top-4 text-gray-300 transition 8560 hover:text-black focus:drop-shadow-md hover:drop-shadow-md"> 8561 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-6 w-6" width="24" height="24" role="img"> 8562 <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> 8563<title>x</title></svg> 8564 </button> 8565 <div class="flex w-full"> 8566 <p class="w-full text-3xl mb-5" x-text="title"></p> 8567 </div> 8568 <div x-show="notificationText && policyData.versionChanged" class="flex w-full"> 8569 <p class="mb-4 p-4 bg-yellow-100 w-full" x-text="notificationText"></p> 8570 </div> 8571 <div id="amgdpr-policy-content" class="max-h-[500px] overflow-auto first:mx-0 child:mx-0" 8572 x-html="policyText"></div> 8573 <div class="mt-8 flex w-full justify-center"> 8574 <button x-focus-first @click="$dispatch('amgdpr-accept-policy')" type="button" 8575 class="btn btn-primary font-bold" 8576 aria-label="Ho letto e Acconsento"> 8577 Ho letto e Acconsento </button> 8578 </div> 8579 </div> 8580 8581 </div> 8582</div> 8583
8584<script> 8585 'use strict'; 8586 8587 function initAmGdprPolicyPopup() { 8588 return { 8589 /** 8590 * @typedef PolicyData 8591 * @property {string} policyVersion 8592 * @property {boolean} show 8593 * @property {string} title 8594 * @property{boolean} versionChanged 8595 * @property {boolean} hideClose 8596 * @property {boolean} action 8597 */ 8598 8599 eventListeners: { 8600 ['@amgdpr-accept-policy']() { 8601 if (this.consentId) { 8602 window.dispatchEvent(new CustomEvent('amgdpr-consent-accepted', {detail: this.consentId})); 8603 this.consentId = undefined; 8604 this.hide('amgdpr-policy-popup'); 8605 } else { 8606 this.acceptPolicy(); 8607 } 8608 }, 8609 ['@amgdpr-show-policy.window'](event) { 8610 this.consentId = event.detail; 8611 this.fetchPolicyContent().then(() => { 8612 this.$nextTick(() => { 8613 this.show('amgdpr-policy-popup'); 8614 }); 8615 }); 8616 }, 8617 ['@amgdpr-close-policy']() { 8618 this.hide('amgdpr-policy-popup'); 8619 } 8620 }, 8621 textUrl: `${BASE_URL}gdpr/policy/policytext`, 8622 acceptUrl: `${BASE_URL}gdpr/policy/accept`, 8623 popupDataUrl: `${BASE_URL}gdpr/policy/popupData`, 8624 notificationText: 'We would like to inform you that our Privacy Policy has been amended.Please, read and accept the new terms.', 8625 showOnPageLoad: '', 8626 /** 8627 * @type PolicyData 8628 */ 8629 policyData: { 8630 policyVersion: '', 8631 show: false, 8632 title: '', 8633 versionChanged: false, 8634 hideClose: false, 8635 action: true 8636 }, 8637 title: '', 8638 policyText: '', 8639 consentId: undefined, 8640 initGdprPopup: function () { 8641 this.fetchPolicyData().then(() => { 8642 if ((this.showOnPageLoad && this.policyData.show) || this.policyData.versionChanged) { 8643 this.fetchPolicyContent().then(() => { 8644 this.$nextTick(() => { 8645 this.show('amgdpr-policy-popup'); 8646 }); 8647 }); 8648 } 8649 }); 8650 }, 8651 8652 /** 8653 * @returns {Promise} 8654 */ 8655 fetchPolicyData: function () { 8656 return fetch(this.popupDataUrl) 8657 .then(response => response.json()) 8658 .then((data) => { 8659 this.policyData = {...data} 8660 }) 8661 .catch(error => this.dispatchErrorMessage(error)); 8662 }, 8663 8664 /** 8665 * @returns {Promise} 8666 */ 8667 fetchPolicyContent: function () { 8668 this.title = ''; 8669 this.policyText = ''; 8670 8671 const params = !!this.consentId 8672 ? '?' + new URLSearchParams({consent_id: this.consentId}) 8673 : '' 8674 8675 return fetch(this.textUrl + params) 8676 .then(response => response.json()) 8677 .then(policyContent => { 8678 this.title = policyContent.title; 8679 this.policyText = policyContent.content; 8680 }).catch(error => this.dispatchErrorMessage(error)); 8681 }, 8682 8683 /** 8684 * @returns {void} 8685 */ 8686 acceptPolicy: function () { 8687 window.dispatchEvent(new Event('amgdpr-loading-start')); 8688 8689 const body = new URLSearchParams({form_key: hyva.getFormKey(), ...this.policyData}); 8690 const contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; 8691 8692 fetch(this.acceptUrl, {method: 'POST', body, headers: {'Content-Type': contentType}}) 8693 .then(response => response.json()) 8694 .then(data => { 8695 if (data.error) { 8696 this.dispatchErrorMessage(data.message) 8697 } else { 8698 this.notificationText = ''; 8699 this.hide('amgdpr-policy-popup'); 8700 } 8701 }) 8702 .catch(error => this.dispatchErrorMessage(error)) 8703 .finally(() => window.dispatchEvent(new Event('amgdpr-loading-stop'))); 8704 }, 8705 8706 /** 8707 * @param {string} message 8708 * @returns {void} 8709 */ 8710 dispatchErrorMessage: function (message) { 8711 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 8712 { 8713 type: "error", 8714 text: message 8715 } 8716 ]); 8717 } 8718 } 8719 } 8720</script>
8720 8721 8722 8723 8724
8725<script> 8726 function initFakeBrothers() { 8727 return { 8728 selected: 0, 8729 productId: 0, 8730 data: [], 8731 skeletonCount: 0, 8732 fetched: false, 8733 ajaxUrl: 'https://www.farma.it/fakeconfigurable/product/getBrothers/', 8734 showAttribute: false, 8735 attributeLabel: 'Color', 8736 optionDisplay: null, 8737 responsive: false, 8738 responsiveData: { 8739 children: [], 8740 childrenLenght: 0, 8741 itemSize: 0, 8742 itemOffset: 0, 8743 childrenSize: 0, 8744 boxSize: 0, 8745 hiddenCount: 0 8746 }, 8747 init() { 8748 // Skeleton init 8749 if (this.skeletonCount) { 8750 this.data = Array.from({length: this.skeletonCount}, () => ({})); 8751 } 8752 // Responsive init 8753 this.$nextTick(() => { 8754 if (this.responsive && this.data.length) { 8755 this.initResponsive(); 8756 } 8757 }); 8758 // Brothers init 8759 if (this.productId) { 8760 fetch(this.ajaxUrl + '?productId=' + this.productId) 8761 .then(response => { 8762 if (! response.ok) console.warn('GET request failed'); 8763 return response.json() 8764 }) 8765 .then(result => { 8766 if (this.showAttribute) { 8767 result.data.forEach(function (item, index) { 8768 if (item.attribute == false) { 8769 result.data[index].attribute = ''; 8770 } 8771 }); 8772 } 8773 this.data = result.data; 8774 this.fetched = true; 8775 // Attribute init 8776 this.$nextTick(() => { 8777 if (this.showAttribute) { 8778 // Siccome "x-ref" non funziona dentro gli elementi "template" devo usare "querySelector" 8779 this.optionDisplay = document.querySelector('[x-ref="optionDisplay"]'); 8780 this.optionDisplay.innerText = this.data[0].attribute; 8781 } 8782 }) 8783 }) 8784 .catch(result => { 8785 console.error(result.error); 8786 }) 8787 } 8788 }, 8789 initResponsive() { 8790 this.responsiveData.children = this.$el.querySelectorAll('.brother'); 8791 this.responsiveData.itemSize = this.responsiveData.children[0].offsetWidth + this.responsiveData.itemOffset; 8792 this.responsiveData.childrenLenght = this.responsiveData.children.length; 8793 this.responsiveData.childrenSize = this.responsiveData.childrenLenght * this.responsiveData.itemSize; 8794 this.calculateHiddenCount(); 8795 }, 8796 calculateHiddenCount() { 8797 if (this.responsive) { 8798 this.responsiveData.boxSize = this.$el.offsetWidth; 8799 8800 if (this.responsiveData.childrenSize > this.responsiveData.boxSize) { 8801 this.responsiveData.hiddenCount = 8802 Math.ceil((this.responsiveData.childrenSize - this.responsiveData.boxSize) / this.responsiveData.itemSize) + 1; 8803 } else { 8804 this.responsiveData.hiddenCount = 0; 8805 } 8806 } 8807 }, 8808 eventListeners: { 8809 ['@resize.window.debounce.50ms']() { 8810 this.calculateHiddenCount(); 8811 } 8812 } 8813 } 8814 8815 } 8816</script>
8816 8817<!-- Start Google Analytics 4 for Google Tag Manager by MagePal --> 8818
8818<script type="text/javascript"> 8819 (function() { 8820 window.addEventListener("private-content-loaded", event => { 8821 const dataObject = event.detail.data['magepal-eegtm-jsdatalayer'] || {}; 8822 pushAddRemoveItemDataLayer(dataObject) 8823 }); 8824 8825 const isObject = x => x === Object(x); 8826 const has = (x, p) => isObject(x) && x.hasOwnProperty(p); 8827 var itemListName = null; 8828 var itemListId = null; 8829 8830 function isEmpty(obj){ 8831 return JSON.stringify(obj) === '{}'; 8832 } 8833 8834 function addDynamicElements(storedData, item) { 8835 8836 if (has(storedData, 'index')) { 8837 item.index = storedData.index; 8838 } 8839 8840 if (has(storedData, 'item_list_id')) { 8841 item.item_list_id = itemListId = storedData.item_list_id; 8842 } 8843 8844 if (has(storedData, 'item_list_name')) { 8845 item.item_list_name = itemListName = storedData.item_list_name; 8846 } 8847 } 8848 /** 8849 * Add click position/index to data 8850 * @param ecommerceData 8851 * @return {*} 8852 */ 8853 function processData(ecommerceData) { 8854 var storedData = JSON.parse(window.localStorage.getItem("product-click-ga4")); 8855 8856 ecommerceData.forEach((data) => { 8857 if (has(data, 'parent_sku') 8858 && isObject(storedData) 8859 && has(storedData, 'item_id') 8860 && data.parent_sku === storedData.item_id 8861 ) { 8862 addDynamicElements(storedData, data); 8863 } else if (has(data, 'parent_sku')) { 8864 var product = getProductBySku(data.parent_sku); 8865 8866 if (product) { 8867 addDynamicElements(product, data); 8868 } 8869 } 8870 }); 8871 8872 return ecommerceData; 8873 } 8874 8875 function getProductBySku(sku) { 8876 var dlItems = window.dataLayer.find((item) => item?.ecommerce?.items) 8877 8878 if (dlItems !== 'undefined') { 8879 var dlItem = dlItems?.ecommerce?.items.find((item) => item.item_id === sku) 8880 if (dlItem !== undefined) { 8881 return dlItem; 8882 } 8883 } 8884 8885 return false; 8886 } 8887 8888 function pushAddRemoveItemDataLayer(data) { 8889 if (isObject(data) && has(data, 'cart_items')) { 8890 var ts = window.localStorage.getItem("magepal-eegtm-jsdatalayer-ts"); 8891 8892 if (ts !== 'undefined' && parseInt(ts) === parseInt(data.data_id)) { 8893 return false; 8894 } else { 8895 window.localStorage.setItem("magepal-eegtm-jsdatalayer-ts", parseInt(data.data_id)); 8896 } 8897 8898 var cartGenericLayer = {}; 8899 var dataLayer = window.dataLayer; 8900 var self = this; 8901 8902 data.cart_items.forEach((cartItem) => { 8903 if (has(cartItem, 'event')) { 8904 if (has(cartItem,'ecommerce')) { 8905 cartItem.ecommerce.currency = 'EUR'; 8906 } 8907 8908 if (cartItem.event === 'add_to_cart') { 8909 var itemsAdded = processData(cartItem.ecommerce.items); 8910 8911 //$("body").trigger("mpGa4ItemAddToCart", [itemsAdded, dataLayer]); 8912 cartGenericLayer.add = { 8913 'products': itemsAdded 8914 }; 8915 } 8916 8917 if (cartItem.event === 'remove_from_cart') { 8918 var itemsRemoved = processData(cartItem.ecommerce.items); 8919 8920 //$("body").trigger("mpGa4ItemRemoveFromCart", [itemsRemoved, dataLayer]); 8921 cartGenericLayer.remove = { 8922 'products': itemsRemoved 8923 }; 8924 } 8925 } 8926 8927 if (!isEmpty(cartGenericLayer)) { 8928 cartItem.cart = cartGenericLayer; 8929 } 8930 cartItem._clear = true; 8931 dataLayer.push(cartItem); 8932 }); 8933 } 8934 } 8935 })(); 8936 </script>
8936 8937 <!-- End Google Analytics 4 for Google Tag Manager by MagePal --> 8938
8939<script> 8940 document.addEventListener("alpine:initialized", () => { 8941 Alpine.store('dnafactoryGA4Promotions', { 8942 promotions: [{"creative_name":"Cemon 21092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Cemon 21092026 BannerCategory","promotion_name":"Cemon 21092026 BannerCategory","css_selector":"[title=\"Cemon 21092026 BannerCategory\"]"},{"creative_name":"Bioderma 21092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Bioderma 21092026 Sliderhomepage","promotion_name":"Bioderma 21092026 Sliderhomepage","css_selector":"[title=\"Bioderma 21092026 Sliderhomepage\"]"},{"creative_name":"Perrigo 21092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Perrigo 21092026 Sliderhomepage","promotion_name":"Perrigo 21092026 Sliderhomepage","css_selector":"[title=\"Perrigo 21092026 Sliderhomepage\"]"},{"creative_name":"Wala 21092026 BannerCarrello","creative_slot":"BannerCarrello","promotion_id":"Wala 21092026 BannerCarrello","promotion_name":"Wala 21092026 BannerCarrello","css_selector":"[title=\"Wala 21092026 BannerCarrello\"]"},{"creative_name":"Erbavita 22092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Erbavita 22092026 BannerCategory","promotion_name":"Erbavita 22092026 BannerCategory","css_selector":"[title=\"Erbavita 22092026 BannerCategory\"]"},{"creative_name":"Galderma 22092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Galderma 22092026 BannerCategory","promotion_name":"Galderma 22092026 BannerCategory","css_selector":"[title=\"Galderma 22092026 BannerCategory\"]"},{"creative_name":"Alfasigma 22092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Alfasigma 22092026 Sliderhomepage","promotion_name":"Alfasigma 22092026 Sliderhomepage","css_selector":"[title=\"Alfasigma 22092026 Sliderhomepage\"]"},{"creative_name":"Wala 23092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Wala 23092026 Sliderhomepage","promotion_name":"Wala 23092026 Sliderhomepage","css_selector":"[title=\"Wala 23092026 Sliderhomepage\"]"},{"creative_name":"Wala 23092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Wala 23092026 BannerCategory","promotion_name":"Wala 23092026 BannerCategory","css_selector":"[title=\"Wala 23092026 BannerCategory\"]"},{"creative_name":"Ganassini 23092026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Ganassini 23092026 BannerProductPage","promotion_name":"Ganassini 23092026 BannerProductPage","css_selector":"[title=\"Ganassini 23092026 BannerProductPage\"]"},{"creative_name":"Uriage 23092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Uriage 23092026 Sliderhomepage","promotion_name":"Uriage 23092026 Sliderhomepage","css_selector":"[title=\"Uriage 23092026 Sliderhomepage\"]"},{"creative_name":"Ibsa 23092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Ibsa 23092026 BannerCategory","promotion_name":"Ibsa 23092026 BannerCategory","css_selector":"[title=\"Ibsa 23092026 BannerCategory\"]"},{"creative_name":"Swisse 24092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Swisse 24092026 Sliderhomepage","promotion_name":"Swisse 24092026 Sliderhomepage","css_selector":"[title=\"Swisse 24092026 Sliderhomepage\"]"},{"creative_name":"Swisse 24092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Swisse 24092026 BannerCategory","promotion_name":"Swisse 24092026 BannerCategory","css_selector":"[title=\"Swisse 24092026 BannerCategory\"]"},{"creative_name":"Manetti 24092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Manetti 24092026 Sliderhomepage","promotion_name":"Manetti 24092026 Sliderhomepage","css_selector":"[title=\"Manetti 24092026 Sliderhomepage\"]"},{"creative_name":"Schwabe 24092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Schwabe 24092026 BannerCategory","promotion_name":"Schwabe 24092026 BannerCategory","css_selector":"[title=\"Schwabe 24092026 BannerCategory\"]"},{"creative_name":"Pharmalife 24092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Pharmalife 24092026 BannerCategory","promotion_name":"Pharmalife 24092026 BannerCategory","css_selector":"[title=\"Pharmalife 24092026 BannerCategory\"]"},{"creative_name":"Zeta 25092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Zeta 25092026 BannerCategory","promotion_name":"Zeta 25092026 BannerCategory","css_selector":"[title=\"Zeta 25092026 BannerCategory\"]"},{"creative_name":"Montefarmaco 25092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Montefarmaco 25092026 Sliderhomepage","promotion_name":"Montefarmaco 25092026 Sliderhomepage","css_selector":"[title=\"Montefarmaco 25092026 Sliderhomepage\"]"},{"creative_name":"Aboca 25092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Aboca 25092026 Sliderhomepage","promotion_name":"Aboca 25092026 Sliderhomepage","css_selector":"[title=\"Aboca 25092026 Sliderhomepage\"]"},{"creative_name":"Named 28092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Named 28092026 BannerCategory","promotion_name":"Named 28092026 BannerCategory","css_selector":"[title=\"Named 28092026 BannerCategory\"]"},{"creative_name":"Loreal 28092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Loreal 28092026 Sliderhomepage","promotion_name":"Loreal 28092026 Sliderhomepage","css_selector":"[title=\"Loreal 28092026 Sliderhomepage\"]"},{"creative_name":"Menarini 29092026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Menarini 29092026 BannerProductPage","promotion_name":"Menarini 29092026 BannerProductPage","css_selector":"[title=\"Menarini 29092026 BannerProductPage\"]"},{"creative_name":"Uniderm 29092026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Uniderm 29092026 BannerCategory","promotion_name":"Uniderm 29092026 BannerCategory","css_selector":"[title=\"Uniderm 29092026 BannerCategory\"]"},{"creative_name":"Prodeco 30092026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Prodeco 30092026 BannerProductPage","promotion_name":"Prodeco 30092026 BannerProductPage","css_selector":"[title=\"Prodeco 30092026 BannerProductPage\"]"},{"creative_name":"Alfasigma 30092026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Alfasigma 30092026 Sliderhomepage","promotion_name":"Alfasigma 30092026 Sliderhomepage","css_selector":"[title=\"Alfasigma 30092026 Sliderhomepage\"]"},{"creative_name":"Farmait 30092026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Farmait 30092026 BannerProductPage","promotion_name":"Farmait 30092026 BannerProductPage","css_selector":"[title=\"Farmait 30092026 BannerProductPage\"]"},{"creative_name":"farmait 01102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"farmait 01102026 Sliderhomepage","promotion_name":"farmait 01102026 Sliderhomepage","css_selector":"[title=\"farmait 01102026 Sliderhomepage\"]"},{"creative_name":"Farmait 01102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Farmait 01102026 BannerProductPage","promotion_name":"Farmait 01102026 BannerProductPage","css_selector":"[title=\"Farmait 01102026 BannerProductPage\"]"},{"creative_name":"Boiron 01102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Boiron 01102026 BannerProductPage","promotion_name":"Boiron 01102026 BannerProductPage","css_selector":"[title=\"Boiron 01102026 BannerProductPage\"]"},{"creative_name":"Boehringer 02102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Boehringer 02102026 BannerCategory","promotion_name":"Boehringer 02102026 BannerCategory","css_selector":"[title=\"Boehringer 02102026 BannerCategory\"]"},{"creative_name":"Boehringer 02102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Boehringer 02102026 Sliderhomepage","promotion_name":"Boehringer 02102026 Sliderhomepage","css_selector":"[title=\"Boehringer 02102026 Sliderhomepage\"]"},{"creative_name":"Haleon 02102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Haleon 02102026 BannerProductPage","promotion_name":"Haleon 02102026 BannerProductPage","css_selector":"[title=\"Haleon 02102026 BannerProductPage\"]"},{"creative_name":"Apivita 02102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Apivita 02102026 BannerCategory","promotion_name":"Apivita 02102026 BannerCategory","css_selector":"[title=\"Apivita 02102026 BannerCategory\"]"},{"creative_name":"Danone 02102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Danone 02102026 BannerCategory","promotion_name":"Danone 02102026 BannerCategory","css_selector":"[title=\"Danone 02102026 BannerCategory\"]"},{"creative_name":"Guna 02102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Guna 02102026 BannerCategory","promotion_name":"Guna 02102026 BannerCategory","css_selector":"[title=\"Guna 02102026 BannerCategory\"]"},{"creative_name":"Rilastil 02102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Rilastil 02102026 Sliderhomepage","promotion_name":"Rilastil 02102026 Sliderhomepage","css_selector":"[title=\"Rilastil 02102026 Sliderhomepage\"]"},{"creative_name":"Boiron 02102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Boiron 02102026 Sliderhomepage","promotion_name":"Boiron 02102026 Sliderhomepage","css_selector":"[title=\"Boiron 02102026 Sliderhomepage\"]"},{"creative_name":"Prodeco 05102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Prodeco 05102026 BannerCategory","promotion_name":"Prodeco 05102026 BannerCategory","css_selector":"[title=\"Prodeco 05102026 BannerCategory\"]"},{"creative_name":"Oti 05102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Ot
8942i 05102026 Sliderhomepage","promotion_name":"Oti 05102026 Sliderhomepage","css_selector":"[title=\"Oti 05102026 Sliderhomepage\"]"},{"creative_name":"Eucerin 05102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Eucerin 05102026 BannerCategory","promotion_name":"Eucerin 05102026 BannerCategory","css_selector":"[title=\"Eucerin 05102026 BannerCategory\"]"},{"creative_name":"Rilastil 05102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Rilastil 05102026 BannerProductPage","promotion_name":"Rilastil 05102026 BannerProductPage","css_selector":"[title=\"Rilastil 05102026 BannerProductPage\"]"},{"creative_name":"Rilastil 05102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Rilastil 05102026 BannerCategory","promotion_name":"Rilastil 05102026 BannerCategory","css_selector":"[title=\"Rilastil 05102026 BannerCategory\"]"},{"creative_name":"IMO 05102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"IMO 05102026 Sliderhomepage","promotion_name":"IMO 05102026 Sliderhomepage","css_selector":"[title=\"IMO 05102026 Sliderhomepage\"]"},{"creative_name":"IMO 05102026 BannerCarrello","creative_slot":"BannerCarrello","promotion_id":"IMO 05102026 BannerCarrello","promotion_name":"IMO 05102026 BannerCarrello","css_selector":"[title=\"IMO 05102026 BannerCarrello\"]"},{"creative_name":"Kenvue 05102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Kenvue 05102026 Sliderhomepage","promotion_name":"Kenvue 05102026 Sliderhomepage","css_selector":"[title=\"Kenvue 05102026 Sliderhomepage\"]"},{"creative_name":"Kenvue 05102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Kenvue 05102026 BannerProductPage","promotion_name":"Kenvue 05102026 BannerProductPage","css_selector":"[title=\"Kenvue 05102026 BannerProductPage\"]"},{"creative_name":"Sanofi 05102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Sanofi 05102026 Sliderhomepage","promotion_name":"Sanofi 05102026 Sliderhomepage","css_selector":"[title=\"Sanofi 05102026 Sliderhomepage\"]"},{"creative_name":"Esi 05102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Esi 05102026 Sliderhomepage","promotion_name":"Esi 05102026 Sliderhomepage","css_selector":"[title=\"Esi 05102026 Sliderhomepage\"]"},{"creative_name":"Esi 05102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Esi 05102026 BannerProductPage","promotion_name":"Esi 05102026 BannerProductPage","css_selector":"[title=\"Esi 05102026 BannerProductPage\"]"},{"creative_name":"Salugea 06102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Salugea 06102026 BannerCategory","promotion_name":"Salugea 06102026 BannerCategory","css_selector":"[title=\"Salugea 06102026 BannerCategory\"]"},{"creative_name":"Prodeco 07102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Prodeco 07102026 BannerProductPage","promotion_name":"Prodeco 07102026 BannerProductPage","css_selector":"[title=\"Prodeco 07102026 BannerProductPage\"]"},{"creative_name":"Erbavita 07102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Erbavita 07102026 Sliderhomepage","promotion_name":"Erbavita 07102026 Sliderhomepage","css_selector":"[title=\"Erbavita 07102026 Sliderhomepage\"]"},{"creative_name":"Farmaderbe 07102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Farmaderbe 07102026 BannerCategory","promotion_name":"Farmaderbe 07102026 BannerCategory","css_selector":"[title=\"Farmaderbe 07102026 BannerCategory\"]"},{"creative_name":"Angelini 07102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Angelini 07102026 BannerProductPage","promotion_name":"Angelini 07102026 BannerProductPage","css_selector":"[title=\"Angelini 07102026 BannerProductPage\"]"},{"creative_name":"MarcoViti 08102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"MarcoViti 08102026 Sliderhomepage","promotion_name":"MarcoViti 08102026 Sliderhomepage","css_selector":"[title=\"MarcoViti 08102026 Sliderhomepage\"]"},{"creative_name":"Elanco 08102026 BannerProductPage","creative_slot":"BannerProductPage","promotion_id":"Elanco 08102026 BannerProductPage","promotion_name":"Elanco 08102026 BannerProductPage","css_selector":"[title=\"Elanco 08102026 BannerProductPage\"]"},{"creative_name":"Elanco 08102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Elanco 08102026 Sliderhomepage","promotion_name":"Elanco 08102026 Sliderhomepage","css_selector":"[title=\"Elanco 08102026 Sliderhomepage\"]"},{"creative_name":"Procter 08102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Procter 08102026 BannerCategory","promotion_name":"Procter 08102026 BannerCategory","css_selector":"[title=\"Procter 08102026 BannerCategory\"]"},{"creative_name":"Goovi 08102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Goovi 08102026 Sliderhomepage","promotion_name":"Goovi 08102026 Sliderhomepage","css_selector":"[title=\"Goovi 08102026 Sliderhomepage\"]"},{"creative_name":"Biosline 08102026 Sliderhomepage","creative_slot":"Sliderhomepage","promotion_id":"Biosline 08102026 Sliderhomepage","promotion_name":"Biosline 08102026 Sliderhomepage","css_selector":"[title=\"Biosline 08102026 Sliderhomepage\"]"},{"creative_name":"Galderma 08102026 BannerCategory","creative_slot":"BannerCategory","promotion_id":"Galderma 08102026 BannerCategory","promotion_name":"Galderma 08102026 BannerCategory","css_selector":"[title=\"Galderma 08102026 BannerCategory\"]"}], 8943 sentViewPromotions: [], 8944 sentClickPromotions: [], 8945 8946 init() { 8947 let self = this; 8948 self.promotions.forEach(function (promotion) { 8949 var promotionElement = document.querySelector(promotion['css_selector']); 8950 if (promotionElement) { 8951 let aElement = promotionElement; 8952 if (promotionElement.tagName !== 'A') { 8953 aElement = promotionElement.closest('[data-content-type] a[href]'); 8954 } 8955 8956 if (aElement) { 8957 if (!self.sentViewPromotions.includes(promotion['promotion_id'])) { 8958 self.sendView(promotion, aElement); 8959 } 8960 8961 aElement.addEventListener('click', function(e) { 8962 if (!self.sentClickPromotions.includes(promotion['promotion_id'])) { 8963 self.sendClick(promotion, aElement); 8964 } 8965 }); 8966 } 8967 } 8968 }); 8969 8970 var additionalObserver = new MutationObserver(function(mutations) { 8971 mutations.forEach(function(mutation) {
8972 mutation.addedNodes.forEach(function(addedNode) { 8973 if (addedNode.matches && addedNode.matches('.swiper-wrapper')) { 8974 self.promotions.forEach(function (promotion) { 8975 var promotionElement = document.querySelector(promotion['css_selector']); 8976 if (promotionElement) { 8977 let aElement = promotionElement; 8978 if (promotionElement.tagName !== 'A') { 8979 aElement = promotionElement.closest('[data-content-type] a[href]'); 8980 } 8981 8982 if (!self.sentViewPromotions.includes(promotion['promotion_id'])) { 8983 self.sendView(promotion, aElement); 8984 } 8985 8986 aElement.addEventListener('click', function(e) { 8987 if (!self.sentClickPromotions.includes(promotion['promotion_id'])) { 8988 self.sendClick(promotion, aElement); 8989 } 8990 }); 8991 } 8992 }); 8993 } 8994 }); 8995 }); 8996 }); 8997 8998 document.querySelectorAll('[data-content-type="slider"], [data-role="amasty-banner-container"]').forEach(function (element) { 8999 additionalObserver.observe(element, {childList: true, subtree: true}); 9000 }); 9001 }, 9002 9003 sendView(promotionData, promotionElement = null) { 9004 this.sentViewPromotions.push(promotionData['promotion_id']); 9005 promotionData = this.normalizeData(promotionData, promotionElement); 9006 window.dataLayer.push({ 9007 event: 'view_promotion', 9008 ecommerce: { 9009 creative_name: promotionData['creative_name'], 9010 creative_slot: promotionData['creative_slot'], 9011 promotion_id: promotionData['promotion_id'], 9012 promotion_name: promotionData['promotion_name'], 9013 } 9014 }) 9015 }, 9016 9017 sendClick(promotionData, promotionElement = null) { 9018 this.sentClickPromotions.push(promotionData['promotion_id']); 9019 promotionData = this.normalizeData(promotionData, promotionElement); 9020 window.dataLayer.push({ 9021 event: 'select_promotion', 9022 ecommerce: { 9023 creative_name: promotionData['creative_name'], 9024 creative_slot: promotionData['creative_slot'], 9025 promotion_id: promotionData['promotion_id'], 9026 promotion_name: promotionData['promotion_name'], 9027 } 9028 }) 9029 }, 9030 9031 normalizeData(promotionData, promotionElement = null) { 9032 if (!promotionElement) { 9033 return promotionData; 9034 } 9035 9036 var imgElement = promotionElement.querySelector('img'); 9037 if (!imgElement) { 9038 return promotionData; 9039 } 9040 9041 promotionData['creative_name'] = promotionData['creative_name'] ? promotionData['creative_name'] : imgElement.src.replace(BASE_URL, ''); 9042 promotionData['creative_slot'] = promotionData['creative_slot'] ? promotionData['creative_slot'] : imgElement.alt; 9043 promotionData['promotion_name'] = promotionData['promotion_name'] ? promotionData['promotion_name'] : imgElement.title; 9044 return promotionData; 9045 } 9046 }); 9047 }); 9048</script>
9048 9049
9050<script> 9051 document.addEventListener("alpine:initialized", () => { 9052 Alpine.store('dnafactoryGA4Items', { 9053 itemsPushed: [], 9054 itemsSelected: [], 9055 itemsToPush: [], 9056 9057 sendItemListDebounced(...itemData) { 9058 let self = this; 9059 var itemDataToPush = itemData.filter(function (el) { 9060 var itemList = el.item_list_id ?? 'default_list'; 9061 if (!(self.itemsPushed.hasOwnProperty(itemList) && self.itemsPushed[itemList].includes(el.item_id))) { 9062 if (!self.itemsPushed.hasOwnProperty(itemList)) { 9063 self.itemsPushed[itemList] = []; 9064 } 9065 self.itemsPushed[itemList].push(el.item_id); 9066 return true; 9067 } 9068 9069 return false; 9070 }); 9071 9072 this.itemsToPush.push(...itemDataToPush); 9073 Alpine.debounce(this.updateItemList.bind(this), 200)(); 9074 }, 9075 9076 sendItemList(itemsData, currency = "EUR", itemlistName = "Default List", itemlistId = "default_list") { 9077 window.dataLayer.push({ 9078 event: 'view_item_list', 9079 ecommerce: { 9080 items: this.normalizeData(itemsData) 9081 }, 9082 currency: currency, 9083 item_list_name: itemlistName, 9084 item_list_id: itemlistId, 9085 _clear: true 9086 }) 9087 }, 9088 9089 sendSelectItem(itemData, currency = "EUR", itemlistName = "Default List", itemlistId = "default_list") { 9090 if (this.itemsSelected.includes(itemData.item_id)) { 9091 return; 9092 } 9093 this.itemsSelected.push(itemData.item_id); 9094 9095 window.dataLayer.push({ 9096 event: 'select_item', 9097 ecommerce: { 9098 items: this.normalizeData([itemData]) 9099 }, 9100 currency: currency, 9101 item_list_name: itemlistName, 9102 item_list_id: itemlistId, 9103 _clear: true 9104 }) 9105 }, 9106 9107 updateItemList() { 9108 var items = this.itemsToPush; 9109 this.itemsToPush = []; 9110 9111 if (items.length > 0) { 9112 var firstItem = items[0]; 9113 var [currency, itemListName, itemListId] = [firstItem.currency, firstItem.item_list_name, firstItem.item_list_id]; 9114 this.sendItemList(items, currency, itemListName, itemListId); 9115 } 9116 }, 9117 9118 normalizeData(itemData) { 9119 itemData.forEach(function (el) { 9120 var vatDivider = 1; 9121 if (el.hasOwnProperty('vat_divider')) { 9122 vatDivider = (parseFloat(el['vat_divider']) + 100)/100; 9123 if (vatDivider <= 0) { 9124 vatDivider = 1; 9125 } 9126 } 9127 9128 if (el.hasOwnProperty('price')) { 9129 el['price'] = parseFloat((el['price']/vatDivider).toFixed(2)); 9130 } 9131 9132 if (el.hasOwnProperty('discount')) { 9133 el['discount'] = parseFloat((el['discount']/vatDivider).toFixed(2)); 9134 } 9135 9136 if (el.hasOwnProperty('item_category')) { 9137 var categories = el['item_category'].split(/[>\/]+/); 9138 if (categories.length > 0) { 9139 var indexCategory = 1; 9140 categories.forEach(function (category) { 9141 var categoryKey = (indexCategory > 1) ? 'item_category' + indexCategory : 'item_category'; 9142 el[categoryKey] = category.trim(); 9143 indexCategory++; 9144 }); 9145 } 9146 } 9147 }); 9148 9149 return itemData; 9150 } 9151 }); 9152 }); 9153</script>
9153 9154
9155<script> 9156 window.DNAFACTORY_GA4_SHOW_PRICE_TAX = 0; 9157 if (!window.dataLayer) { 9158 window.dataLayer = []; 9159 } 9160</script>
9160 9161
9162<script> 9163 let SnapSlider = class { 9164 constructor(el, { 9165 labelSepparator = 'di', 9166 autoPager, 9167 groupPager, 9168 loop 9169 } = {}) { 9170 this.el = el; 9171 this.track = this.el.querySelector("[data-track]"); 9172 if (!this.track) { 9173 console.warn( 9174 "No Slider track defined, reverting back to CSS slider.\nPlease create a wrapper for your slides with the attribute data-track", 9175 this.el 9176 ); 9177 return; 9178 } 9179 this.initialLoad = true; 9180 this.slides = []; 9181 this.inViewObserver; 9182 this.mutationObserver; 9183 this.resizeObserver; 9184 this.pager = this.el.querySelector("[data-pager]"); 9185 this.navBtns = Array.from( 9186 this.el.querySelectorAll("[data-next], [data-prev]") 9187 ); 9188 this.slideLabelSepparator = this.el.dataset.slideLabelSepparator || labelSepparator; 9189 this.useAutoPager = autoPager || this.el.hasAttribute("data-auto-pager") || false; 9190 this.useGroupPager = groupPager || this.el.hasAttribute("data-group-pager") || false; 9191 this.useLoop = loop || this.el.hasAttribute("data-loop") || false; 9192 this.sliderLabel = this.el.hasAttribute("aria-label") && this.el.getAttribute("aria-label").toLowerCase().trim().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, ""); 9193 this.sliderId = this.el.id || this.sliderLabel || "slider"; 9194 this.markerIdName = "data-target-id"; 9195 this.pagerClasses = this.el.dataset.pagerClass || "snap-pager"; 9196 this.markerClasses = this.el.dataset.markerClass || "snap-marker"; 9197 this.init(); 9198 } 9199 init() { 9200 this.setupSlides(); 9201 this.setupNav(); 9202 if (this.useAutoPager) { 9203 this.createPager(); 9204 } else { 9205 this.setupPager(); 9206 } 9207 this.setupObservers(); 9208 this.setupMutationObserver(); 9209 this.setupResizeObserver(); 9210 this.el.addEventListener("click", this.eventHandler.bind(this)); 9211 this.el.addEventListener("keydown", this.eventHandler.bind(this)); 9212 if ("onscrollend" in window) { 9213 this.track.addEventListener("scrollend", () => { 9214 this.isNavigating = false; 9215 }); 9216 } else { 9217 this.track.addEventListener("scroll", () => { 9218 clearTimeout(this.scrollEndTimer); 9219 this.scrollEndTimer = setTimeout(() => { 9220 this.isNavigating = false; 9221 }, 100); 9222 }); 9223 } 9224 } 9225 destroy() { 9226 this.inViewObserver?.disconnect(); 9227 this.mutationObserver?.disconnect(); 9228 this.resizeObserver?.disconnect(); 9229 this.el.removeEventListener("click", this.eventHandler.bind(this)); 9230 this.el.removeEventListener("keydown", this.eventHandler.bind(this)); 9231 } 9232 roundUpIfGreaterThan(number, min = 8) { 9233 const decimalPart = number - Math.floor(number); 9234 return decimalPart >= min ? Math.ceil(number) : Math.floor(number); 9235 } 9236 getInViewItems() { 9237 const inViewSlides = Array.from(this.track.querySelectorAll("[data-in-view]")).filter((el) => this.slides.includes(el)); 9238 const firstInViewSlide = inViewSlides[0] || null; 9239 const lastInViewSlide = inViewSlides[inViewSlides.length - 1] || null; 9240 const isAtStart = firstInViewSlide === this.slides[0]; 9241 const isAtEnd = lastInViewSlide === this.slides[this.slides.length - 1]; 9242 return { 9243 inViewSlides, 9244 totalInViewSlides: inViewSlides.length, 9245 firstInViewSlide, 9246 lastInViewSlide, 9247 isAtStart, 9248 isAtEnd, 9249 hasNoOverflow: isAtStart && isAtEnd 9250 }; 9251 } 9252 groupPagerMarkers() { 9253 if (this.slides.length === 0 || !this.pager || !this.useGroupPager) return; 9254 const totalVisibleSlides = this.roundUpIfGreaterThan( 9255 this.track.offsetWidth / this.slides[0].offsetWidth 9256 ); 9257 const markers = Array.from(this.pager.querySelectorAll("a, button"));
9258 markers.forEach((marker, index) => { 9259 marker.style.display = index % totalVisibleSlides === 0 ? null : "none"; 9260 }); 9261 } 9262 handleInView(entries) { 9263 entries.forEach((entry) => { 9264 const marker = this.pager && (this.pager.querySelector(`[href="#${entry.target.id}"]`) || this.pager.querySelector( 9265 `[${this.markerIdName}="${entry.target.id}"]` 9266 )); 9267 entry.target.toggleAttribute("data-in-view", entry.isIntersecting); 9268 entry.target.toggleAttribute("inert", !entry.isIntersecting); 9269 marker?.setAttribute("aria-current", entry.isIntersecting); 9270 marker?.setAttribute("tabindex", entry.isIntersecting ? "0" : "-1"); 9271 }); 9272 const { isAtStart, isAtEnd, hasNoOverflow } = this.getInViewItems(); 9273 this.navBtns.forEach((btn) => { 9274 if (btn.hasAttribute("data-next")) { 9275 btn.style.visibility = hasNoOverflow ? "hidden" : null; 9276 isAtEnd && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 9277 } 9278 if (btn.hasAttribute("data-prev")) { 9279 btn.style.visibility = hasNoOverflow ? "hidden" : null; 9280 isAtStart && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 9281 } 9282 }); 9283 if (this.pager) { 9284 this.pager.style.visibility = hasNoOverflow ? "hidden" : null; 9285 this.pager.toggleAttribute("inert", hasNoOverflow); 9286 } 9287 if (!this.initialLoad) { 9288 this.el.dispatchEvent( 9289 new CustomEvent("slideChange", { 9290 detail: this.getInViewItems() 9291 }) 9292 ); 9293 } else { 9294 this.initialLoad = false; 9295 } 9296 if (document.activeElement.parentElement.hasAttribute("data-pager")) { 9297 const activeItems = this.pager.querySelectorAll('[tabindex="0"]'); 9298 if (activeItems.length) { 9299 activeItems[0].focus({ preventScroll: true }); 9300 } 9301 } 9302 } 9303 getSlides() { 9304 if (!this.track) return []; 9305 return Array.from(this.track.children).filter( 9306 (child) => child.tagName.toLowerCase() !== "template" && child.tagName.toLowerCase() !== "style" && child.tagName.toLowerCase() !== "script" && child.style.display !== "none" 9307 ); 9308 } 9309 refreshSlides() { 9310 this.initialLoad = true; 9311 this.slides = this.getSlides(); 9312 this.setupSlides(); 9313 if (this.useAutoPager) { 9314 this.createPager(); 9315 } else { 9316 this.setupPager(); 9317 } 9318 this.groupPagerMarkers(); 9319 this.setupObservers(); 9320 } 9321 setupSlides() { 9322 this.slides = this.getSlides(); 9323 this.slides.forEach((slide, index) => { 9324 const totalSlides = this.slides.length; 9325 const currentSlide = index + 1; 9326 const existingLabel = slide.getAttribute("aria-label") || ""; 9327 const isImage = slide.tagName.toLowerCase() === "img" || slide.tagName.toLowerCase() === "picture"; 9328 const slideLabelTag = isImage ? "alt" : "aria-label"; 9329 const hasAutoLabel = existingLabel.startsWith( 9330 `${currentSlide} ${this.slideLabelSepparator} ` 9331 ); 9332 if (!slide.hasAttribute("id")) { 9333 slide.setAttribute( 9334 "id", 9335 `${this.sliderId}-item-${currentSlide}` 9336 ); 9337 } 9338 if (!slide.hasAttribute(slideLabelTag) || slide.getAttribute(slideLabelTag) === "" || hasAutoLabel) { 9339 slide.setAttribute( 9340 slideLabelTag, 9341 `${currentSlide} ${this.slideLabelSepparator} ${totalSlides}` 9342 ); 9343 } 9344 if (slide.tagName.toLowerCase() === "div" && !slide.hasAttribute("role")) { 9345 slide.setAttribute("role", "group"); 9346 } 9347 if (this.pager && !isImage) { 9348 slide.setAttribute("role", "tabpanel"); 9349 } 9350 if (slide.getAttribute("role") === "group") { 9351 slide.setAttribute("aria-roledescription", "item"); 9352 } 9353 }); 9354 if (!this.el.hasAttribute("role") && this.el.tagName !== "SECTION") { 9355 this.el.setAttribute("role", "region"); 9356 } 9357 if (!this.el.hasAttribute("aria-roledescription")) { 9358 this.el.setAttribute("aria-roledescription", "carousel"); 9359 } 9360 if (!this.track.hasAttribute("tabindex")) { 9361 this.track.setAttribute("tabindex", 0); 9362 } 9363 this.track.setAttribute("aria-live", "polite"); 9364 } 9365 setupNav() { 9366 this.navBtns.forEach((btn) => { 9367 btn.setAttribute("disabled", ""); 9368 btn.removeAttribute("hidden"); 9369 btn.classList.remove("invisible"); 9370 btn.style.visibility = null; 9371 }); 9372 } 9373 createPager() { 9374 const newPager = document.createElement("nav"); 9375 newPager.setAttribute("data-pager", ""); 9376 newPager.setAttribute("role", "tablist"); 9377 newPager.classList.add(...this.pagerClasses.split(" "));
9378 this.slides.forEach((slide, index) => { 9379 const marker = document.createElement("button"); 9380 const slideId = slide.id || `${this.sliderId}-item-${index + 1}`; 9381 marker.setAttribute(this.markerIdName, slideId); 9382 marker.classList.add(...this.markerClasses.split(" ")); 9383 this.setupPagerMarker(marker, index); 9384 newPager.appendChild(marker); 9385 if (slide.tagName.toLowerCase() !== "img" && slide.tagName.toLowerCase() !== "picture") { 9386 slide.removeAttribute("aria-roledescription"); 9387 slide.setAttribute("role", "tabpanel"); 9388 } 9389 }); 9390 if (this.pager) { 9391 this.pager.setAttribute("role", "tablist"); 9392 this.pager.replaceChildren(...newPager.children); 9393 } else { 9394 this.track.after(newPager); 9395 this.pager = this.el.querySelector("[data-pager]"); 9396 } 9397 } 9398 setupPager() { 9399 if (!this.pager) return; 9400 this.pager.setAttribute("role", "tablist"); 9401 const items = Array.from(this.pager.querySelectorAll("a, button")); 9402 items.forEach((marker, index) => this.setupPagerMarker(marker, index)); 9403 } 9404 setupPagerMarker(marker, index) { 9405 const markerId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 9406 const slideId = markerId || `${this.sliderId}-item-${index + 1}`; 9407 if (!markerId) { 9408 marker.setAttribute(this.markerIdName, slideId); 9409 } 9410 marker.setAttribute("role", "tab"); 9411 marker.setAttribute("aria-controls", slideId); 9412 marker.setAttribute("aria-posinset", index + 1); 9413 marker.setAttribute("aria-setsize", this.slides.length); 9414 marker.setAttribute("tabindex", "-1"); 9415 if (!marker.hasAttribute("aria-label")) { 9416 marker.setAttribute("aria-label", `Slide ${index + 1}`); 9417 } 9418 } 9419 setupObservers() { 9420 if (this.inViewObserver) { 9421 this.inViewObserver.disconnect(); 9422 } 9423 this.inViewObserver = new IntersectionObserver( 9424 this.handleInView.bind(this), { 9425 root: this.track, 9426 threshold: 0.8 9427 } 9428 ); 9429 this.slides.forEach((slide) => this.inViewObserver.observe(slide)); 9430 } 9431 setupMutationObserver() { 9432 this.mutationObserver = new MutationObserver((mutations) => { 9433 if (mutations.some((m) => m.type === "childList" || m.target.parentElement === this.track)) { 9434 this.refreshSlides(); 9435 } 9436 }); 9437 this.mutationObserver.observe(this.track, { 9438 childList: true, 9439 subtree: true, 9440 attributeFilter: ["style"] 9441 }); 9442 } 9443 setupResizeObserver() { 9444 this.resizeObserver = new ResizeObserver( 9445 this.groupPagerMarkers.bind(this) 9446 ); 9447 this.resizeObserver.observe(this.el); 9448 } 9449 goToSlideDir(dir = "next") { 9450 if (this.isNavigating) return; 9451 const { firstInViewSlide, lastInViewSlide } = this.getInViewItems(); 9452 const isPrev = dir === "prev"; 9453 const referenceSlide = isPrev ? firstInViewSlide : lastInViewSlide; 9454 const currentIndex = this.slides.indexOf(referenceSlide); 9455 let targetIndex = isPrev ? currentIndex - 1 : currentIndex + 1; 9456 if (targetIndex < 0 || targetIndex >= this.slides.length) { 9457 if (!this.useLoop) return; 9458 targetIndex = isPrev ? this.slides.length - 1 : 0; 9459 } 9460 const targetSlide = this.slides[targetIndex]; 9461 if (!targetSlide) return; 9462 this.isNavigating = true; 9463 targetSlide.scrollIntoView({ 9464 block: "nearest", 9465 inline: isPrev ? "end" : "start" 9466 }); 9467 } 9468 pagerToSlide(event) { 9469 if (!event.target.closest("[data-pager]")) return; 9470 const marker = event.target.closest("a, button"); 9471 if (!marker) return; 9472 event.preventDefault(); 9473 const slideId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 9474 const targetSlide = this.track.querySelector(`#${slideId}`);
9475 targetSlide?.scrollIntoView({ block: "nearest", inline: "start" }); 9476 } 9477 eventHandler(event) { 9478 const target = event.target.closest( 9479 "[data-next], [data-prev], [data-pager]" 9480 ); 9481 if (!target) return; 9482 if (event.type === "click") { 9483 if (target.hasAttribute("data-next")) { 9484 this.goToSlideDir("next"); 9485 } else if (target.hasAttribute("data-prev")) { 9486 this.goToSlideDir("prev"); 9487 } else if (target.closest("[data-pager]")) { 9488 this.pagerToSlide(event); 9489 } 9490 } 9491 if (event.type === "keydown" && target.closest("[data-pager]")) { 9492 if (event.key === "ArrowRight" || event.key === "ArrowDown") { 9493 event.preventDefault(); 9494 this.goToSlideDir("next"); 9495 } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") { 9496 event.preventDefault(); 9497 this.goToSlideDir("prev"); 9498 } 9499 } 9500 } 9501 }; 9502 9503 (() => { 9504 function alpineSnapSlider(Alpine) { 9505 Alpine.directive("snap-slider", (el, { 9506 modifiers 9507 }, { 9508 cleanup 9509 }) => { 9510 const slider = new SnapSlider(el, { 9511 autoPager: modifiers.includes("auto-pager"), 9512 groupPager: modifiers.includes("group-pager"), 9513 loop: modifiers.includes("loop") 9514 }); 9515 cleanup(() => { 9516 slider.destroy(); 9517 }); 9518 }); 9519 } 9520 9521 document.addEventListener("alpine:init", () => { 9522 window.Alpine.plugin(alpineSnapSlider); 9523 }); 9524 })(); 9525 //# sourceURL=alpine-snap-slider.js 9526</script>
vendor: 1 bytes, line 9526
9526
9527<script> 9528 (() => { 9529 // src/dialog.js 9530 function dialog_default(Alpine) { 9531 Alpine.directive("htmldialog", fylgjaAlpineDialog); 9532 function fylgjaAlpineDialog(el, { expression, modifiers }, { evaluateLater, cleanup }) { 9533 const evaluate = expression.length ? evaluateLater(expression) : () => {}; 9534 const lockPageScroll = modifiers.includes("noscroll"); 9535 const isModeless = modifiers.includes("modeless"); 9536 const closeBy = el.getAttribute("closeby") || modifierValue(modifiers, "closeby", "closerequest"); 9537 el.style.display = null; 9538 el.style.length === 0 && el.removeAttribute("style"); 9539 if (el._x_isShown) { 9540 open(); 9541 } 9542 const closeBySupported = (() => { 9543 return "closedBy" in HTMLDialogElement.prototype; 9544 })(); 9545 function scrollLock(use = true) { 9546 document.body.style.overflow = use ? "hidden" : ""; 9547 } 9548 function dialogSubmit(event) { 9549 if (event.target.getAttribute("method") === "dialog" || event.submitter?.getAttribute("formmethod") === "dialog") { 9550 event.preventDefault(); 9551 evaluate(); 9552 } 9553 } 9554 function escapeDialog(event) { 9555 if (event.key !== "Escape") return; 9556 event.preventDefault(); 9557 if (closeBy === "none") return; 9558 evaluate(); 9559 } 9560 function handleCloseByEvent(event) { 9561 if (event.target !== el) return; 9562 const rect = el.getBoundingClientRect(); 9563 const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width; 9564 if (!isInDialog) { 9565 if (closeBy === "any") { 9566 if (closeBySupported) { 9567 event.preventDefault(); 9568 } 9569 evaluate(); 9570 } 9571 } 9572 } 9573 function handleCloseEvent() { 9574 evaluate(); 9575 } 9576 function open() { 9577 if (el.hasAttribute("open")) return; 9578 isModeless ? el.show() : el.showModal(); 9579 scrollLock(lockPageScroll); 9580 } 9581 function close() { 9582 if (!el.hasAttribute("open")) return; 9583 el.close(); 9584 scrollLock(false); 9585 } 9586 el._x_doShow = () => open(); 9587 el._x_doHide = () => close(); 9588 el.addEventListener("keydown", escapeDialog); 9589 el.addEventListener("submit", dialogSubmit); 9590 el.addEventListener("click", handleCloseByEvent); 9591 el.addEventListener("cancel", handleCloseEvent); 9592 cleanup(() => { 9593 el.removeEventListener("keydown", escapeDialog); 9594 el.removeEventListener("submit", dialogSubmit); 9595 el.removeEventListener("click", handleCloseByEvent); 9596 el.removeEventListener("cancel", handleCloseEvent); 9597 scrollLock(false); 9598 }); 9599 } 9600 } 9601 function modifierValue(modifiers, key, fallback) { 9602 if (modifiers.indexOf(key) === -1) return fallback; 9603 const rawValue = modifiers[modifiers.indexOf(key) + 1]; 9604 if (!rawValue) return fallback; 9605 if (key === "closeby") { 9606 const allowedValues = ["auto", "none", "closerequest", "any"]; 9607 const options = allowedValues.join(", "); 9608 if (!allowedValues.includes(rawValue)) { 9609 console.warn( 9610 `"${rawValue}" is not one of the allowed values for closeby: ${options}` 9611 ); 9612 return fallback; 9613 } 9614 } 9615 return rawValue; 9616 } 9617 9618 // src/cdn.js 9619 document.addEventListener("alpine:init", () => { 9620 window.Alpine.plugin(dialog_default); 9621 }); 9622 })(); 9623 //# sourceURL=alpine-htmldialog.js 9624</script>
vendor: 1 bytes, line 9624
9624
9625<script> 9626 (() => { 9627 function src_default(Alpine) { 9628 Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { 9629 let evaluate = evaluateLater(expression); 9630 let options = { 9631 rootMargin: getRootMargin(modifiers), 9632 threshold: getThreshold(modifiers) 9633 }; 9634 let observer = new IntersectionObserver((entries) => { 9635 entries.forEach((entry) => { 9636 if (entry.isIntersecting === (value === "leave")) 9637 return; 9638 evaluate(); 9639 modifiers.includes("once") && observer.disconnect(); 9640 }); 9641 }, options); 9642 observer.observe(el); 9643 cleanup(() => { 9644 observer.disconnect(); 9645 }); 9646 })); 9647 } 9648 function getThreshold(modifiers) { 9649 if (modifiers.includes("full")) 9650 return 0.99; 9651 if (modifiers.includes("half")) 9652 return 0.5; 9653 if (!modifiers.includes("threshold")) 9654 return 0; 9655 let threshold = modifiers[modifiers.indexOf("threshold") + 1]; 9656 if (threshold === "100") 9657 return 1; 9658 if (threshold === "0") 9659 return 0; 9660 return Number(`.${threshold}`); 9661 } 9662 function getLengthValue(rawValue) { 9663 let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); 9664 return match ? match[1] + (match[2] || "px") : void 0; 9665 } 9666 function getRootMargin(modifiers) { 9667 const key = "margin"; 9668 const fallback = "0px 0px 0px 0px"; 9669 const index = modifiers.indexOf(key); 9670 if (index === -1) 9671 return fallback; 9672 let values = []; 9673 for (let i = 1; i < 5; i++) { 9674 values.push(getLengthValue(modifiers[index + i] || "")); 9675 } 9676 values = values.filter((v) => v !== void 0); 9677 return values.length ? values.join(" ").trim() : fallback; 9678 } 9679 9680 document.addEventListener("alpine:init", () => { 9681 window.Alpine.plugin(src_default); 9682 }); 9683 })(); 9684 //# sourceURL=alpine-intersect.js 9685</script>
9685 9686
9687<script> 9688 for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect",".product-info [x-data]":"intersect","#filters-content [x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#notice-cookie-block":"intersect","#product_addtocart_form [x-data]:not(.dont-defer)":"intersect"})) { 9689 document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`)); 9690 } 9691 //# sourceURL=alpine-defer-rules.js 9692</script>
vendor: 1 bytes, line 9692
9692
9693<script> 9694 (() => { 9695 const hasAlpine = new Promise(resolve => { 9696 window.addEventListener('alpine:initialized', resolve, {once: true, passive: true}); 9697 }); 9698 9699 const hasInteract = new Promise(resolve => { 9700 (events => { 9701 const onInteract = () => { 9702 resolve(); 9703 events.forEach(type => window.removeEventListener(type, onInteract)); 9704 } 9705 events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true})) 9706 })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) 9707 }); 9708 9709 const onIntersect = (el) => { 9710 return new Promise(resolve => { 9711 const observer = new IntersectionObserver(entries => { 9712 for (const entry of entries) { 9713 if (entry.isIntersecting) { 9714 observer.disconnect() 9715 resolve(); 9716 } 9717 } 9718 }, {}); 9719 observer.observe(el); 9720 }); 9721 } 9722 9723 function runComponent(el) { 9724 hasAlpine.then(() => { 9725 el.removeAttribute('x-ignore'); 9726 queueMicrotask(() => Alpine.initTree(el)); 9727 }); 9728 } 9729 9730 function initDeferredComponents() { 9731 document.querySelectorAll('[x-data][x-defer]').forEach(el => { 9732 el.setAttribute('x-ignore', ''); 9733 const deferUntil = (el.getAttribute('x-defer') || '').trim(); 9734 switch (deferUntil) { 9735 case 'interact': 9736 hasInteract.then(() => runComponent(el)); 9737 break; 9738 case 'intersect': 9739 onIntersect(el).then(() => runComponent(el)) 9740 break; 9741 case 'idle': 9742 window.requestIdleCallback 9743 ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000}) 9744 : setTimeout(() => runComponent(el), 4000); 9745 break; 9746 case 'eager': 9747 runComponent(el); 9748 break; 9749 default: 9750 if (deferUntil.startsWith('event:') && deferUntil.length > 6) { 9751 window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true}); 9752 } 9753 } 9754 }); 9755 } 9756 9757 window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true}); 9758 })(); 9759 //# sourceURL=alpine-defer.js 9760</script>
9760 9761
9762<script> 9763// x-teleport implementation 9764(_ => { 9765 document.addEventListener('DOMContentLoaded', event => { 9766 // x-teleport available only for template 9767 if (!Alpine.version.startsWith('2')) { 9768 return; 9769 } 9770 9771 const teleportDirective = (el, expression) => { 9772 let target = document.querySelector(expression) 9773 let clone = el.content.cloneNode(true).firstElementChild; 9774 9775 target.appendChild(clone); 9776 setTimeout(() => { 9777 target.querySelectorAll('[x-data]') 9778 .forEach(el => Alpine.initializeComponent(el)); 9779 }, 0) 9780 }; 9781 9782 document.querySelectorAll('template').forEach(el => { 9783 if (!el.hasAttribute('x-teleport')) { 9784 return; 9785 } 9786 9787 teleportDirective(el, el.getAttribute('x-teleport')); 9788 }); 9789 9790 document.querySelectorAll('[x-data]').forEach(el => { 9791 if (el.hasAttribute('x-init')) { 9792 return; 9793 } 9794 9795 setTimeout(() => { 9796 Alpine.initializeComponent(el); 9797 }, 0); 9798 }); 9799 }); 9800})() 9801</script>
9801 9802
9803<script type="module" 9804 src="https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Hyva_Theme/js/alpine3.min.js" 9805 defer 9806 crossorigin 9807></script>
vendor: 1 bytes, line 9807
9807
9808<script> 9809 function dispatchMessages(messages, hideAfter) { 9810 const messagesEvent = new CustomEvent("messages-loaded", { 9811 detail: { 9812 messages: messages, 9813 hideAfter: hideAfter 9814 } 9815 }); 9816 window.dispatchEvent(messagesEvent); 9817 } 9818 9819 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 9820 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 9821 } 9822 9823 (function( hyva, undefined ) { 9824 9825 hyva.initFormKey = () => { 9826 if (typeof hyva.getFormKey !== 'function') return; 9827 9828 const formKey = hyva.getFormKey(); 9829 if (!formKey) return; 9830 9831 document.querySelectorAll('input[name="form_key"]').forEach((input) => { 9832 input.value = formKey; 9833 }); 9834 } 9835 9836 hyva.initMessages = () => { 9837 try { 9838 const messages = hyva.getCookie('mage-messages'); 9839 window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; 9840 9841 dispatchMessages(window.mageMessages); 9842 9843 // empty `mage-messages` cookie 9844 const skipSetDomain = true; 9845 hyva.setCookie('mage-messages','', -1, skipSetDomain); 9846 9847 } catch (error) { 9848 console.warn('Error parsing Cookie Messages:', error); 9849 } 9850 } 9851 9852 window.addEventListener('DOMContentLoaded', hyva.initFormKey); 9853 9854 window.addEventListener('pageshow', (event) => { 9855 if (event.persisted) { 9856 hyva.initFormKey(); 9857 } 9858 }); 9859 9860 hyva.alpineInitialized(hyva.initMessages) 9861 }( window.hyva = window.hyva || {} )); 9862 //# sourceURL=hyva-cookies.js 9863</script>
vendor: 1 bytes, line 9863
9863
9864<script> 9865 (() => { 9866 const private_content_key = 'mage-cache-storage'; 9867 const private_content_expire_key = 'mage-cache-timeout'; 9868 const private_content_version_key = 'private_content_version'; 9869 const section_data_ids_key = 'section_data_ids'; 9870 const mage_cache_session_id_key = 'mage-cache-sessid'; 9871 const last_visited_store_key = 'last_visited_store'; 9872 9873 const ttl = 7200; 9874 9875 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 9876 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 9877 } 9878 9879 function loadSectionData () { 9880 const browserStorage = hyva.getBrowserStorage(); 9881 if (!browserStorage) { 9882 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 9883 [{ 9884 type: "warning", 9885 text: "Please enable LocalStorage in your browser." 9886 }] 9887 ); 9888 return; 9889 } 9890 try { 9891 let isInvalid = false; 9892 9893 if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { 9894 isInvalid = true; 9895 } 9896 hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); 9897 9898 if (!hyva.getCookie(mage_cache_session_id_key)) { 9899 isInvalid = true; 9900 browserStorage.removeItem(private_content_key); 9901 const skipSetDomain = true; 9902 const days = false; 9903 hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) 9904 } 9905 9906 const cookieVersion = hyva.getCookie(private_content_version_key); 9907 const storageVersion = browserStorage.getItem(private_content_version_key); 9908 9909 if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { 9910 isInvalid = true; 9911 } 9912 9913 const privateContentExpires = browserStorage.getItem(private_content_expire_key); 9914 if (privateContentExpires && new Date(privateContentExpires) < new Date()) { 9915 browserStorage.removeItem(private_content_key); 9916 } 9917 9918 if (isInvalid && cookieVersion) { 9919 fetchPrivateContent([]); 9920 } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { 9921 const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); 9922 if ( 9923 privateContent && 9924 privateContentExpires && 9925 privateContent.cart && 9926 privateContent.customer 9927 ) { 9928 dispatchPrivateContent(privateContent); 9929 } else { 9930 fetchPrivateContent([]); 9931 } 9932 } else { 9933 if (document.getElementById('default-section-data')) { 9934 const privateContent = JSON.parse(document.getElementById('default-section-data').textContent.trim()); 9935 dispatchPrivateContent(privateContent); 9936 } else { 9937 dispatchPrivateContent({}); 9938 } 9939 } 9940 9941 } catch (error) { 9942 console.warn('Error retrieving Private Content:', error); 9943 } 9944 } 9945 9946 hyva.alpineInitialized(loadSectionData) 9947 window.addEventListener('reload-customer-section-data', loadSectionData); 9948 9949 window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data); 9950 9951 function dispatchPrivateContent(data) { 9952 9953 const privateContentEvent = new CustomEvent("private-content-loaded", { 9954 detail: { 9955 data: window.processSectionDataBeforeDispatch(data) 9956 } 9957 }); 9958 window.dispatchEvent(privateContentEvent); 9959 } 9960 9961 function fetchPrivateContent(sections) { 9962 fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { 9963 method: 'GET', 9964 headers: { 9965 'Content-Type': 'application/json', 9966 'X-Requested-With': 'XMLHttpRequest' 9967 } 9968 }) 9969 .then(response => response.ok && response.json()) 9970 .then( 9971 data => { 9972 if (data) { 9973 try { 9974 const browserStorage = hyva.getBrowserStorage(); 9975 9976 // merge new data preserving non-invalidated sections 9977 const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; 9978 9979 if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { 9980 delete oldSectionData['checkout-data']; 9981 } 9982 const newSectionData = Object.assign(oldSectionData, data); 9983 9984 dispatchPrivateContent(newSectionData); 9985 9986 // don't persist messages, they've been dispatched already 9987 if (newSectionData.messages && newSectionData.messages.messages ) { 9988 newSectionData.messages.messages = []; 9989 } 9990 9991 browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); 9992 9993 const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); 9994 browserStorage.setItem(private_content_expire_key, expiresAt); 9995 9996 const newCookieVersion = hyva.getCookie(private_content_version_key); 9997 browserStorage.setItem(private_content_version_key, newCookieVersion); 9998 9999 // We don't need the section_data_ids in Hyvä, but we store them for compatibility 10000 // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout 10001 hyva.setCookie( 10002 section_data_ids_key, 10003 JSON.stringify( 10004 Object.keys(data).reduce((sectionDataIds, sectionKey) => { 10005 sectionDataIds[sectionKey] = data[sectionKey]['data_id']; 10006 return sectionDataIds; 10007 }, {}) 10008 ), 10009 false, 10010 true 10011 ); 10012 } catch (error) { 10013 console.warn("Couldn't store privateContent", error); 10014 } 10015 } 10016 } 10017 ) 10018 .catch(error => { 10019 console.warn("Couldn't fetch privateContent", error); 10020 }); 10021 } 10022 })(); 10023 //# sourceURL=hyva-private-content.js 10024</script>
vendor: 1 bytes, line 10024
10024
10025<script> 10026 (() => { 10027 document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); 10028 })() 10029</script>
vendor: 1 bytes, line 10029
10029
10030<script> 10031 (events => { 10032 const addListeners = () => { 10033 var init = false; 10034 const dispatchUserInteractionEvent = Alpine.throttle(() => { 10035 if(!init){ 10036 init=true; 10037 return false; 10038 } 10039 events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) 10040 window.dispatchEvent(new Event('init-external-scripts')) 10041 }, 30); 10042 document.removeEventListener('alpine:initialized', addListeners) 10043 events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, { passive: true})) 10044 } 10045 document.addEventListener('alpine:initialized', addListeners, { once: true }); 10046 })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) 10047</script>
vendor: 1 bytes, line 10047
10047
10048<script> 10049 function initWishlist() { 10050 return { 10051 addToWishlist(productId) { 10052 const formKey = hyva.getFormKey(); 10053 const postUrl = BASE_URL + 'wishlist/index/add/'; 10054 10055 const params = new URLSearchParams({ 10056 form_key: formKey, 10057 product: productId, 10058 uenc: hyva.getUenc() 10059 }); 10060 10061 const form = document.getElementById(`product_addtocart_form_${productId}`); 10062 if (form) { 10063 new FormData(form).forEach((value, key) => params.set(key, value)); 10064 } 10065 10066 fetch(postUrl, { 10067 "headers": { 10068 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 10069 }, 10070 "body": params.toString(), 10071 "method": "POST", 10072 "mode": "cors", 10073 "credentials": "include" 10074 }).then(function (response) { 10075 if (response.redirected) { 10076 window.location.href = response.url; 10077 } else if (response.ok) { 10078 return response.json(); 10079 } else { 10080 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 10081 [{ 10082 type: "warning", 10083 text: "Could\u0020not\u0020add\u0020item\u0020to\u0020wishlist." 10084 }], 5000 10085 ); 10086 } 10087 }).then(function (response) { 10088 if (!response) { return } 10089 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 10090 [{ 10091 type: (response.success) ? "success" : "error", 10092 text: (response.success) 10093 ? "Prodotto\u0020\u00E8\u0020stato\u0020aggiunto\u0020nella\u0020tua\u0020lista\u0020desideri." 10094 : response.error_message 10095 }], 5000 10096 ); 10097 const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); 10098 window.dispatchEvent(reloadCustomerDataEvent); 10099 }).catch(function (error) { 10100 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 10101 [{ 10102 type: "error", 10103 text: error 10104 }], 5000 10105 ); 10106 }); 10107 } 10108 } 10109 } 10110</script>
vendor: 1 bytes, line 10110
10110
10111<script> 10112 function initProductItemImage() { 10113 return { 10114 updateImage() { 10115 const image = this.$event.detail.medium; 10116 if (!image) return; 10117 this.$el.src = image; 10118 } 10119 } 10120 } 10121 window.addEventListener('alpine:init', () => { 10122 Alpine.data('initProductItemImage', initProductItemImage); 10123 }, { once: true }); 10124</script>
vendor: 1 bytes, line 10124
10124
10125<script> 10126 'use strict'; 10127 10128 (() => { 10129 const initCarousels = (elements) => { 10130 if (!Swiper) { 10131 return; 10132 } 10133 10134 const initProductCarousel = (carousel, additionalOptions) => { 10135 carousel.classList.add("swiper"); 10136 if (!carousel.querySelectorAll(".swiper-wrapper").length) { 10137 carousel.innerHTML = `<div class="swiper-wrapper">${carousel.innerHTML}</div>`; 10138 } 10139 carousel.querySelectorAll(".swiper-wrapper > *").forEach(function (el) { 10140 el.classList.add("swiper-slide"); 10141 }); 10142 10143 let swiperElement = carousel.querySelector('.swiper'); 10144 if (!swiperElement) { 10145 swiperElement = carousel; 10146 } 10147 10148 if ((carousel.dataset.showArrows === 'true' || carousel.dataset.showDots === 'true') && !carousel.querySelectorAll(".swiper-pagination").length) { 10149 swiperElement.insertAdjacentHTML( 10150 'beforeend', 10151 '\u000A\u003Cdiv\u0020class\u003D\u0022swiper\u002Dbutton\u002Dprev\u0020w\u002D12\u0020h\u002D12\u0020rounded\u002Dfull\u0020group\u002Fbutton\u0020bg\u002Dwhite\u0020hidden\u0020opacity\u002D0\u0020md\u003Agroup\u002Dhover\u003Aopacity\u002D100\u0020md\u003A\u0021flex\u0020shadow\u002Dlg\u0020shadow\u002Dblack\u002F30\u0020transition\u002Dall\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020class\u003D\u0022m\u002Dauto\u0020group\u002Dhover\u002Fbutton\u003A\u0021stroke\u002Dprimary\u0022\u0020width\u003D\u002220\u0022\u0020height\u003D\u002220\u0022\u0020role\u
10151003D\u0022img\u0022\u003E\u000A\u0020\u0020\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020d\u003D\u0022M15\u002019l\u002D7\u002D7\u00207\u002D7\u0022\u002F\u003E\u000A\u003Ctitle\u003Echevron\u002Dleft\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u003C\u002Fdiv\u003E\u000A\u003Cdiv\u0020class\u003D\u0022swiper\u002Dbutton\u002Dnext\u0020w\u002D12\u0020h\u002D12\u0020rounded\u002Dfull\u0020group\u002Fbutton\u0020bg\u002Dwhite\u0020hidden\u0020hover\u003A\u0021stroke\u002Dprimary\u0020opacity\u002D0\u0020md\u003Agroup\u002Dhover\u003Aopacity\u002D100\u0020md\u003A\u0021flex\u0020shadow\u002Dlg\u0020shadow\u002Dblack\u002F30\u0020transition\u002Dall\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020class\u003D\u0022m\u002Dauto\u0020group\u002Dhover\u002Fbutton\u003A\u0021stroke\u002Dprimary\u0022\u0020width\u003D\u002220\u0022\u0020height\u003D\u002220\u0022\u0020role\u
10151003D\u0022img\u0022\u003E\u000A\u0020\u0020\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020d\u003D\u0022M9\u00205l7\u00207\u002D7\u00207\u0022\u002F\u003E\u000A\u003Ctitle\u003Echevron\u002Dright\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u003C\u002Fdiv\u003E\u000A\u003Cdiv\u0020class\u003D\u0022swiper\u002Dpagination\u0020absolute\u0020right\u002D1\u002F2\u0020translate\u002Dx\u002D1\u002F2\u0020bottom\u002D5\u0020md\u003Abottom\u002D7\u0022\u003E\u003C\u002Fdiv\u003E\u000A' 10152 ); 10153 } 10154 10155 let autoplayOptions = {autoplay: false}; 10156 if (carousel.dataset.autoplay === 'true') { 10157 autoplayOptions = { 10158 autoplay: { 10159 delay: carousel.dataset.autoplaySpeed 10160 }, 10161 plugins: [ SwiperPluginPagination, SwiperPluginAutoPlay, SwiperPluginNavigation ] 10162 }; 10163 } 10164 10165 let dotsOptions = {pagination: false}; 10166 if (carousel.dataset.showDots === 'true') { 10167 dotsOptions = { 10168 pagination: { 10169 el: '.swiper-pagination', 10170 type: 'bullets', 10171 clickable: true 10172 } 10173 }; 10174 } 10175 10176 let arrowsOptions = {navigation: false}; 10177 if (carousel.dataset.showArrows === 'true') { 10178 arrowsOptions = { 10179 navigation: { 10180 nextEl: '.swiper-button-next', 10181 prevEl: '.swiper-button-prev', 10182 }, 10183 }; 10184 } 10185 10186 let options = Object.assign({ 10187 slidesPerView: 'auto', 10188 loop: carousel.dataset.infiniteLoop?.toLowerCase?.() === 'true' 10189 }, additionalOptions, dotsOptions, arrowsOptions, autoplayOptions); 10190
10191 initCarousel(swiperElement, options); 10192 }; 10193 10194 elements.forEach(element => { 10195 if (element.dataset.contentType === 'slider') { 10196 initProductCarousel(element, {slidesPerView: 1}); 10197 } else { 10198 initProductCarousel(element); 10199 } 10200 }); 10201 }; 10202 10203 window.addEventListener('init-external-scripts', () => { 10204 const carouselElements = document.querySelectorAll( 10205 `[data-content-type="products"][data-appearance="carousel"], 10206 [data-content-type="slider"], .clerk-product-async, .swiper.products-widget, .swiper, .async-carousel, .clerk` 10207 ); 10208 10209 window.carouselInitialized = false; 10210 10211 // Autoplay Plugin 10212 const scriptAutoplay = document.createElement('script'); 10213 scriptAutoplay.type = 'text/javascript'; 10214 scriptAutoplay.src = 'https\u003A\u002F\u002Fwww.farma.it\u002Fstatic\u002Fversion1789421831\u002Ffrontend\u002FDNAFactory\u002Forlandi_hyva\u002Fit_IT\u002FMagento_PageBuilder\u002Fjs\u002FautoPlay.min.js'; 10215 document.head.appendChild(scriptAutoplay); 10216 10217 // Pagination Plugin 10218 const scriptPagination = document.createElement('script'); 10219 scriptPagination.type = 'text/javascript'; 10220 scriptPagination.src = 'https\u003A\u002F\u002Fwww.farma.it\u002Fstatic\u002Fversion1789421831\u002Ffrontend\u002FDNAFactory\u002Forlandi_hyva\u002Fit_IT\u002FMagento_PageBuilder\u002Fjs\u002Fpagination.min.js'; 10221 document.head.appendChild(scriptPagination); 10222 10223 // Navigation Plugin 10224 const scriptNavigation = document.createElement('script'); 10225 scriptNavigation.type = 'text/javascript'; 10226 scriptNavigation.src = 'https\u003A\u002F\u002Fwww.farma.it\u002Fstatic\u002Fversion1789421831\u002Ffrontend\u002FDNAFactory\u002Forlandi_hyva\u002Fit_IT\u002FMagento_PageBuilder\u002Fjs\u002Fnavigation.min.js'; 10227 document.head.appendChild(scriptNavigation); 10228 10229 // Swiper 10230 const script = document.createElement('script'); 10231 script.type = 'text/javascript'; 10232 10233 script.addEventListener('load', () => { 10234 if (window.carouselInitialized) { 10235 return; 10236 } 10237 10238 const carouselElementsToInitialize = document.querySelectorAll( 10239 `[data-content-type="products"][data-appearance="carousel"], 10240 [data-content-type="slider"], .swiper.products-widget` 10241 ); 10242 initCarousels(carouselElementsToInitialize); 10243 10244 window.carouselInitialized = true; 10245 const carouselInitializedEvent = new Event("carousel-initialized"); 10246 document.dispatchEvent(carouselInitializedEvent); 10247 }); 10248 10249 script.src = 'https\u003A\u002F\u002Fwww.farma.it\u002Fstatic\u002Fversion1789421831\u002Ffrontend\u002FDNAFactory\u002Forlandi_hyva\u002Fit_IT\u002FMagento_PageBuilder\u002Fjs\u002Ftinyswiper\u002Dfull.min.js'; 10250 document.head.appendChild(script); 10251 }, { once: true, passive: true }); 10252 })(); 10253 10254 function initCarousel(element = "", options = {}) { 10255 var defaultOptions = { 10256 slidesPerView: 'auto', 10257 navigation: { 10258 nextEl: '.swiper-button-next', 10259 prevEl: '.swiper-button-prev', 10260 }, 10261 pagination: { 10262 el: '.swiper-pagination', 10263 type: 'bullets', 10264 clickable: true 10265 }, 10266 fadingSlideSelector: '' 10267 }; 10268 options = Object.assign(defaultOptions, options); 10269 10270 if (typeof element === 'string' || element instanceof String) { 10271 element = document.querySelector(element); 10272 } 10273 10274 if (!element) { 10275 return false; 10276 } 10277 10278 let paginationElement = element.querySelector(defaultOptions.pagination.el) 10279 if (paginationElement && defaultOptions.pagination) { 10280 defaultOptions.pagination.el = paginationElement; 10281 } else { 10282 defaultOptions.pagination = false 10283 } 10284 10285 let nextElement = element.querySelector(defaultOptions.navigation.nextEl) 10286 if (nextElement && defaultOptions.navigation) { 10287 defaultOptions.navigation.nextEl = nextElement; 10288 } else { 10289 defaultOptions.navigation = false;
10290 } 10291 10292 let prevElement = element.querySelector(defaultOptions.navigation.prevEl) 10293 if (prevElement && defaultOptions.navigation) { 10294 defaultOptions.navigation.prevEl = prevElement; 10295 } else { 10296 defaultOptions.navigation = false; 10297 } 10298 10299 if (options.slidesPerView == 'auto') { 10300 let wrapperWidth = element.clientWidth, 10301 slideWidth = element.querySelector('.swiper-slide').clientWidth; 10302 10303 options.slidesPerView = Math.round(wrapperWidth / slideWidth); 10304 } 10305 10306 if (!options.navigation) { 10307 element.querySelectorAll('.swiper-button-prev, .swiper-button-next') 10308 .forEach((element) => element.remove()); 10309 } 10310 10311 if (options.slidesPerView > element.querySelectorAll('.swiper-slide').length) { 10312 element.querySelectorAll('.swiper-button-prev, .swiper-button-next, .swiper-pagination') 10313 .forEach((element) => element.remove()); 10314 return; 10315 } 10316 10317 if (typeof Swiper != "undefined") { 10318 let carousel = new Swiper(element, options); 10319 attachCustomBehaviours(carousel, element, options); 10320 return; 10321 } 10322 10323 document.addEventListener("carousel-initialized", function () { 10324 let carousel = new Swiper(element, options); 10325 carousel.slideTo(0); // Fix per disabilitare navigazione quando non c'è overflow degli elementi 10326 attachCustomBehaviours(carousel, element, options); 10327 }); 10328 10329 } 10330 10331 function attachCustomBehaviours(carousel, element, options) { 10332 // Fading selected slide behaviour 10333 let fadingSlide; 10334 try { 10335 if (options.fadingSlideSelector) { 10336 fadingSlide = document.querySelector(options.fadingSlideSelector) 10337 } else { 10338 fadingSlide = element.closest('.fading-slide-container').querySelector('.fading-slide'); 10339 } 10340 } catch (e) { 10341 fadingSlide = null; 10342 } 10343 10344 if (fadingSlide) { 10345 fadingSlide.classList.add('transition-all'); 10346 10347 carousel.on('before-slide', function(currentIndex, state, newIndex) { 10348 if (newIndex > 0) { 10349 fadingSlide.classList.add('md:opacity-0'); 10350 } else if (newIndex == 0) { 10351 fadingSlide.classList.remove('md:opacity-0'); 10352 } 10353 }); 10354 } 10355 } 10356</script>
vendor: 1 bytes, line 10356
10356
10357<script> 10358 'use strict'; 10359 10360 (() => { 10361 const applyShowOnHover = (element) => { 10362 const showOverlayOnHover = (element) => { 10363 const overlay = element.querySelector('.pagebuilder-overlay'); 10364 const color = overlay.dataset.overlayColor; 10365 10366 element.addEventListener('mouseover', () => { 10367 overlay.style.backgroundColor = color; 10368 }); 10369 element.addEventListener('mouseout', () => { 10370 overlay.style.backgroundColor = 'transparent'; 10371 }); 10372 }; 10373 10374 const showButtonOnHover = (element) => { 10375 const button = element.querySelector('.pagebuilder-banner-button'); 10376 10377 element.addEventListener('mouseover', () => { 10378 button.style.opacity = '1'; 10379 button.style.visibility = 'visible'; 10380 }); 10381 element.addEventListener('mouseout', () => { 10382 button.style.opacity = '0'; 10383 button.style.visibility = 'hidden'; 10384 }); 10385 }; 10386 10387 if (element.dataset.showOverlay === 'hover') { 10388 showOverlayOnHover(element); 10389 } 10390 if (element.dataset.showButton === 'hover') { 10391 showButtonOnHover(element); 10392 } 10393 }; 10394 10395 window.addEventListener('DOMContentLoaded', () => { 10396 document.querySelectorAll('[data-content-type="banner"],[data-content-type="slider"]').forEach(element => { 10397 applyShowOnHover(element); 10398 }); 10399 }); 10400 })(); 10401</script>
vendor: 1 bytes, line 10401
10401
10402<script> 10403 // Overridden for exception handling 10404 function initPriceBox() { 10405 return { 10406 updatePrice(priceData) { 10407 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 10408 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 10409 // Ensure regularPriceLabel exists before accessing classList 10410 if (regularPriceLabel) { 10411 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 10412 regularPriceLabel.classList.add('hidden'); 10413 } else { 10414 regularPriceLabel.classList.remove('hidden'); 10415 } 10416 } 10417 10418 // Ensure regularPriceElement exists before setting innerText 10419 if (regularPriceElement) { 10420 regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount); 10421 } 10422 10423 // Ensure basePriceElement exists before setting innerText 10424 if (basePriceElement) { 10425 basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount); 10426 } 10427 } 10428 } 10429 } 10430</script>
10430 10431
10431<script> 10432 function amastyRewardsCatalog() { 10433 return { 10434 productId: this.$el.dataset.productId, 10435 formSelector: 'product_addtocart_form', 10436 refreshUrl: this.$el.dataset.refreshUrl, 10437 loader: false, 10438 isFetching: false, 10439 abortFetchController: false, 10440 highlight: { 10441 caption_color: '', 10442 caption_text: '', 10443 visible: false 10444 }, 10445 10446 init() { 10447 this.formObserver(); 10448 document.addEventListener(`update-qty-${this.productId}`, () => { 10449 this.updateData(); 10450 }); 10451 this.$nextTick(() => this.updateData()); 10452 }, 10453 10454 hideBlock() { 10455 this.highlight.visible = false; 10456 this.loader = true; 10457 }, 10458 10459 dispatchStatus(type, message) { 10460 window.dispatchMessages([{ 10461 type: type, 10462 text: message 10463 }], 5000); 10464 }, 10465 10466 formObserver() { 10467 const product = document.querySelector(`input[name="product"][value="${this.productId}"]`); 10468 10469 if (product) { 10470 const productForm = product.form; 10471 if (productForm) { 10472 productForm.addEventListener('change', () => { 10473 this.updateData(); 10474 }); 10475 } 10476 } 10477 }, 10478 10479 updateData() { 10480 if (!this.refreshUrl || this.isFetching) return false; 10481 this.hideBlock(); 10482 10483 if (this.abortFetchController) { 10484 this.abortFetchController.abort(); 10485 } 10486 this.abortFetchController = new AbortController(); 10487 10488 const product = document.querySelector(`input[name='product'][value='${this.productId}']`); 10489 if (!product) return false; 10490 10491 const form = product.form; 10492 const formData = new FormData(form); 10493 const formParams = new URLSearchParams(formData).toString(); 10494 const formJson = JSON.stringify({ 10495 productId: this.productId, 10496 attributes: formParams 10497 }); 10498 10499 const requestOptions = { 10500 method: 'POST', 10501 body: formJson, 10502 headers: { 10503 'Content-Type': 'application/json', 10504 'x-requested-with': 'XMLHttpRequest', 10505 }, 10506 signal: this.abortFetchController.signal 10507 }; 10508 10509 this.isFetching = true; 10510 fetch(this.refreshUrl, requestOptions).then(response => { 10511 if (!response.ok) { 10512 return Promise.reject(`${response.status} ${response.statusText}`); 10513 } 10514 return response.json(); 10515 }).then(data => { 10516 this.highlight.visible = data.visible; 10517 this.highlight.caption_text = data.caption_text; 10518 this.highlight.caption_color = data.caption_color; 10519 }).catch(error => { 10520 if (error.name !== 'AbortError' 10521 && typeof error === 'string' 10522 && error.match(/'401'/g) !== null 10523 ) { 10524 this.dispatchStatus('error', error); 10525 } 10526 }).finally(() => { 10527 this.loader = false;
10528 this.abortFetchController = false; 10529 this.isFetching = false; 10530 }); 10531 }, 10532 10533 highlightVisible() { 10534 return this.highlight.visible && !this.loader; 10535 }, 10536 10537 highlightStyle() { 10538 return `color: ${this.highlight.caption_color}`; 10539 }, 10540 } 10541 } 10542 10543 window.addEventListener( 10544 'alpine:init', 10545 () => Alpine.data('amastyRewardsCatalog', amastyRewardsCatalog), 10546 { once: true } 10547 ); 10548 </script>
10548 10549
10549<script> 10550 'use strict'; 10551 10552 const grecaptchaV2LoadCallbacks = []; 10553 10554 function executeRecaptchaLoadCallbacks () { 10555 while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { 10556 const callback = grecaptchaV2LoadCallbacks.pop(); 10557 typeof callback === 'string' ? window[callback]() : callback(); 10558 } 10559 } 10560 10561 (function() { 10562 const loadRecaptchaScript = (event) => { 10563 10564 if (window.grecaptcha || !event.target.form) { 10565 return; 10566 } 10567 10568 const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; 10569 const siteKey = '6LdDii8sAAAAAF1j_v4WIzmCV2phMFuJKWeFtEhJ'; 10570 const script = document.createElement('script'); 10571 script.type = 'text/javascript'; 10572 script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; 10573 script.async = true; 10574 document.head.appendChild(script); 10575 10576 script.addEventListener('load', () => { 10577 Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); 10578 }); 10579 } 10580 10581 window.forceLoadRecaptchaScript = (form) => { 10582 loadRecaptchaScript({target: {form: form || 'dummy'}}); 10583 executeRecaptchaLoadCallbacks(); 10584 }; 10585 10586 document.body.addEventListener('input', loadRecaptchaScript, { once: true }); 10587 document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); 10588 10589 }()); 10590 10591</script>
vendor: 1 bytes, line 10591
10591
10592<script> 10593 function selectManager() { 10594 return { 10595 value: '', 10596 10597 input: { 10598 ['x-model']: "value", 10599 [':class']: "{ 'invalid-placeholder': !value || value == \"\" }", 10600 ['x-init']() { 10601 this.value = this.$el.options[this.$el.selectedIndex || 0].value 10602 } 10603 } 10604 } 10605 } 10606 10607 function qtyManager() { 10608 return { 10609 inputElement: null, 10610 value: 0, 10611 step: 1, 10612 min: null, 10613 max: null, 10614 10615 input: { 10616 ["x-model"]: "value", 10617 ['x-init']() { 10618 this.inputElement = this.$el; 10619 this.value = parseInt(this.$el.value); 10620 }, 10621 ['x-on:input'] ($event) { 10622 let inputValue = parseInt($event.target.value.replace(/\D/g, '')); 10623 if (!this.checkMin(inputValue)) { 10624 this.value = this.min; 10625 } else if (!this.checkMax(inputValue)) { 10626 this.value = this.max; 10627 } else { 10628 this.value = inputValue; 10629 } 10630 } 10631 }, 10632 plus: { 10633 ['@click']() { 10634 if (this.checkMax(this.value, this.step)) { 10635 this.value += this.step; 10636 } 10637 this.inputElement.dispatchEvent(new Event('changed')); 10638 } 10639 }, 10640 minus: { 10641 ['@click']() { 10642 if (this.checkMin(this.value, this.step)) { 10643 this.value -= this.step; 10644 } 10645 this.inputElement.dispatchEvent(new Event('changed')); 10646 } 10647 }, 10648 checkMin(value, step = null) { 10649 if (this.min) { 10650 if (step) { 10651 return value - step >= this.min; 10652 } 10653 return value >= this.min; 10654 } 10655 return true; 10656 }, 10657 checkMax(value, step = null) { 10658 if (this.max) { 10659 if (step) { 10660 return value + step <= this.max; 10661 } 10662 return value <= this.max; 10663 } 10664 return true; 10665 } 10666 } 10667 } 10668 10669 /** Questo potrebbe convenire aggiungerlo solamente dove usiamo quell'input **/ 10670 function dateInputManager() { 10671 return { 10672 value: '', 10673 10674 input: { 10675 ["x-model"]: "value", 10676 ['x-init']() { 10677 this.value = this.$el.value 10678 }, 10679 10680 ['x-on:input'](e) { 10681 let date = e.target.value.replace(/\D/g, ''); 10682 let formattedDate = ''; 10683 10684 if (date.length >= 2) { 10685 let value = date.substring(0, 2); 10686 if (value > 31) { 10687 value = 31; 10688 } 10689 formattedDate = value + '/'; 10690 } else { 10691 this.value = date; 10692 return; 10693 } 10694 10695 if (date.length >= 4) { 10696 let value = date.substring(2, 4); 10697 if (value > 12) { 10698 value = 12; 10699 } 10700 formattedDate += value + '/'; 10701 } else { 10702 this.value = formattedDate + date.substring(2, date.length); 10703 return; 10704 } 10705 10706 if (date.length > 4) { 10707 formattedDate += date.substring(4, 8); 10708 } else { 10709 this.value = formattedDate + date.substring(4, date.length); 10710 return; 10711 } 10712 10713 this.value = formattedDate; 10714 } 10715 } 10716 } 10717 } 10718</script>
vendor: 1 bytes, line 10718
10718
10719<script> 10720 (function (w,d){ 10721 function setScrollbarWidthCssVar() { 10722 let newSize = (w.innerWidth - d.body.clientWidth) + "px", 10723 oldSize = d.documentElement.style.getPropertyValue('--scrollbar-width'); 10724 if (newSize !== oldSize){ 10725 d.documentElement.style.setProperty('--scrollbar-width', newSize); 10726 } 10727 } 10728 d.addEventListener('alpine:init', () => { 10729 new ResizeObserver(Alpine.debounce(setScrollbarWidthCssVar, 300)).observe(d.documentElement); 10730 }, { once: true }); 10731 setScrollbarWidthCssVar(); 10732 }) (window, document); 10733 /** Effettua il lock della viewport quando necessario (es. all'apertura del menu o del minicart) */ 10734 window.addEventListener('screen-lock', (event) => { 10735 document.body.classList.toggle('max-h-screen', event.detail); 10736 document.body.classList.toggle('lock-screen', event.detail); 10737 document.body.classList.toggle('overflow-hidden', event.detail); 10738 }); 10739 10740 function initCustomerMenuMobile() { 10741 return { 10742 open: false, 10743 customer: {}, 10744 getData(data) { 10745 if (data.customer) { this.customer = data.customer } 10746 }, 10747 isLoggedIn(){ 10748 return !!(this.customer.firstname); 10749 } 10750 } 10751 } 10752</script>
10752 10753 10754 10755<!-- Start Google Analytics 4 for Google Tag Manager by MagePal -->
10756<script type="text/javascript"> 10757 (function () { 10758 let globalDatalayer = window.dataLayer = window.dataLayer || []; 10759 10760 function init() { 10761 const data = [{"event":"view_item_list","page_type":"widget","ecommerce":{"items":[{"item_name":"Equilibra shampoo rosmarino da 265ml","item_id":"951449331","price":5.23,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":1,"currency":"EUR","quantity":1,"p_id":"276454","item_category":"Igiene e Benessere","item_category2":"Igiene","is_free":false,"item_brand":false,"discount":0.91},{"item_name":"Bioclin Pro shampoo ultradelicato 400 ml","item_id":"988927315","price":11.74,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":2,"currency":"EUR","quantity":1,"p_id":"259945","item_category":"Igiene e Benessere","item_category2":"Capelli","item_category3":"Shampoo","item_category4":"Igiene","is_free":false,"item_brand":"IST.GANASSINI","discount":4.57},{"item_name":"Antistress Erba Vita 45 Compresse","item_id":"984925089","price":11.1,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":3,"currency":"EUR","quantity":1,"p_id":"182335","item_category":"Alimentazione e Integratori","item_category2":"Alimentazione Speciale","item_category3":"Altri Alimenti","item_category4":"Integratori","is_free":false,"item_brand":"ERBA VITA","discount":9.35},{"item_name":"GUNA Viburcol Heel 12 Supposte Medicina Omeopatica Bambini Dentizione","item_id":"909468047","price":10.48,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":4,"currency":"EUR","quantity":1,"p_id":"11763","item_category":"Omeopatia","item_category2":"Supposte","is_free":false,"item_brand":"GUNA","discount":2.7},{"item_name":"NutriMagnesium 300+ Integratore per Stanchezza 20 Bustine Gusto Agrumi","item_id":"987406725","price":9.3,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":5,"currency":"EUR","quantity":1,"p_id":"271176","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Vitamine e Sali Minerali","item_category4":"Integratori","is_free":false,"item_brand":"BOIRON","discount":4.25},{"item_name":"Yovis Flaconcini Fermenti Lattici Vivi 25 Miliardi Integratore Flora Intestinale 10 Flaconcini","item_id":"976335291","price":10.99,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":6,"currency":"EUR","quantity":1,"p_id":"119127","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Benessere Intestinale","item_category4":"Integratori","is_free":false,"item_brand":"ALFASIGMA","discount":6.56},{"item_name":"Rilastil Acnestil AZ 15% siero viso anti-imperfezioni 30 ml","item_id":"990891436","price":29.66,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":7,"currency":"EUR","quantity":1,"p_id":"299989","item_category":"Bellezza e Cosmetica","item_category2":"Viso","item_category3":"Dermatite Seborroica","is_free":false,"item_brand":"IST.GANASSINI","discount":null},{"item_name":"Guna Citomix GR Granuli Omeopatici ","item_id":"800424727","price":11.46,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":8,"currency":"EUR","quantity":1,"p_id":"9649","item_category":"Omeopatia","item_category2":"Granuli","is_free":false,"item_brand":"GUNA","discount":3.09},{"item_name":"Frontline Combo Antiparassitario Spot On per Gatti e Furetti 3 Pipette 0.5ml","item_id":"103647032","price":21.2,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":9,"currency":"EUR","quantity":1,"p_id":"9407","item_category":"Veterinaria e animali","item_category2":"Antiparassitari","item_category3":"Veterinaria","item_category4":"antiparassitari","is_free":false,"item_brand":"BOEHRINGER ING.ANIM.H.IT.","discount":12.25},{"item_name":" Carnidyn Plus integratore contro stanchezza 20 bustine","item_id":"930525771","price":17.49,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":10,"currency":"EUR","quantity":1,"p_id":"13113","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Memoria","item_category4":"Integratori","is_free":false,"item_brand":"ALFASIGMA","discount":5.24},{"item_name":"Buscopan crampi addominali 40 compresse rivestite","item_id":"006979088","price":14.16,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":11,"currency":"EUR","quantity":1,"p_id":"258664","
10761item_category":"Rimedi e Salute","item_category2":"Disturbi Addominali","item_category3":"Farmaci da Banco","item_category4":"Disturbi Gastrointestinali","is_free":false,"item_brand":"OPELLA HEALTHCARE ITALY","discount":2.11},{"item_name":"Defence My Age Collagen Drink 10 flaconcini Bionike","item_id":"950951689","price":26.38,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":12,"currency":"EUR","quantity":1,"p_id":"276146","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Pelle","item_category4":"Integratori","is_free":false,"item_brand":"BIONIKE","discount":23.53},{"item_name":"Benactiv Gola spray orale a base di flurbiprofene 15ml","item_id":"033262041","price":6.77,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":13,"currency":"EUR","quantity":1,"p_id":"15410","item_category":"Rimedi e Salute","item_category2":"Antisettici cavo orale","item_category3":"Igiene Orale","item_category4":"Farmaci da Banco","is_free":false,"item_brand":"RECKITT BENCKISER","discount":4.59},{"item_name":"Polase plus magnesio potassio carnitina 24 bustine","item_id":"951507781","price":20.24,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":14,"currency":"EUR","quantity":1,"p_id":"285431","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Vitamine e Sali Minerali","item_category4":"Integratori","is_free":false,"item_brand":"HALEON ITALY","discount":null},{"item_name":"Uva Ursina Estratto Idroalcolico 60ml Boiron","item_id":"977705918","price":10.84,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":15,"currency":"EUR","quantity":1,"p_id":"235978","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Prostata e Vie Urinarie","item_category4":"Integratori","is_free":false,"item_brand":"BOIRON","discount":2.68},{"item_name":"BDNF C4CH Gocce 30ml","item_id":"048545014","price":11.97,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":16,"currency":"EUR","quantity":1,"p_id":"224546","item_category":"Omeopatia","item_category2":"Gocce","item_category3":"Gocce orali","is_free":false,"item_brand":"GUNA","discount":3.3},{"item_name":"Dulcolax lassativo stitichezza 40 compresse","item_id":"008997064","price":9.8,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":17,"currency":"EUR","quantity":1,"p_id":"14947","item_category":"Rimedi e Salute","item_category2":"Stitichezza e Lassativi","item_category3":"Farmaci da Banco","item_category4":"Disturbi Gastrointestinali","is_free":false,"item_brand":"OPELLA HEALTHCARE ITALY","discount":2.84},{"item_name":" Enterolactis Plus con fermenti lattici attivi 15 capsule","item_id":"986130351","price":12.93,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":18,"currency":"EUR","quantity":1,"p_id":"243048","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Benessere Intestinale","item_category4":"Integratori","is_free":false,"item_brand":"ALFASIGMA","discount":5.62},{"item_name":"Buscofenact dolori forti da ciclo 12 capsule molli","item_id":"041631021","price":7.21,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":19,"currency":"EUR","quantity":1,"p_id":"15556","item_category":"Rimedi e Salute","item_category2":"Dolore, Febbre e Infiammazioni","item_category3":"Farmaci da Banco","item_category4":"Dolore e Infiammazione","is_free":false,"item_brand":"OPELLA HEALTHCARE ITALY","discount":1.79},{"item_name":"Metagenics Vitamina D3 4000UI Integratore Masticabile Vegetariano- 168 Compresse","item_id":"977544814","price":32.74,"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","index":20,"currency":"EUR","quantity":1,"p_id":"219341","item_category":"Alimentazione e Integratori","item_category2":"Integratori Alimentari","item_category3":"Vitamine e Sali Minerali","item_category4":"Integratori","is_free":false,"item_brand":"METAGENICS","discount":8.17}],"currency":"EUR","item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1"},"_clear":true},{"event":"view_item_list","page_type":"widget","ecommerce":{"items":[{"item_name":"Vichy Liftactiv Collagen Specialist 16 Siero da 30 ml","item_id":"989706318","price":40.76,"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","index":1,"currency":"EUR","quantity":1,"p_id":"269961","is_free":false,"item_brand":"VIC
10761HY","discount":7.18},{"item_name":"La Roche-Posay Hyalu B5 Siero Concentrato Viso 30 ml","item_id":"951043468","price":34.48,"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","index":2,"currency":"EUR","quantity":1,"p_id":"275691","item_category":"Bellezza e Cosmetica","item_category2":"Viso","item_category3":"Antirughe e Anti Age","item_category4":"Dermocosmesi","is_free":false,"item_brand":"LA ROCHE POSAY","discount":5.6},{"item_name":"Vichy Dercos Technique Shampoo Energizzante Anticaduta con Aminexil 400 ml","item_id":"920097538","price":13.47,"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","index":3,"currency":"EUR","quantity":1,"p_id":"40985","item_category":"Igiene e Benessere","item_category2":"Capelli","item_category3":"Shampoo Anticaduta","item_category4":"Igiene","is_free":false,"item_brand":"VICHY","discount":3.33},{"item_name":"Eucerin Sun Pigment Control SPF50+ fluido viso da 50 ml","item_id":"975508779","price":11.82,"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","index":4,"currency":"EUR","quantity":1,"p_id":"117992","item_category":"Bellezza e Cosmetica","item_category2":"Solari","item_category3":"Viso e Labbra","item_category4":"Dermocosmesi","is_free":false,"item_brand":"BEIERSDORF","discount":13.18},{"item_name":"Rilastil Xerolact Olio detergente 1000ml","item_id":"986791958","price":12.76,"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","index":5,"currency":"EUR","quantity":1,"p_id":"229482","item_category":"Igiene e Benessere","item_category2":"Corpo","item_category3":"Detergenti","item_category4":"Igiene","is_free":false,"item_brand":"IST.GANASSINI","discount":2.73},{"item_name":"Bionike Defence Hair Shampoo Dermolenitivo Cute Sensibile Pro-Vitamina B5 400ml","item_id":"973293006","price":6.9,"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","index":6,"currency":"EUR","quantity":1,"p_id":"63418","item_category":"Igiene e Benessere","item_category2":"Capelli","item_category3":"Shampoo per Capelli grassi","item_category4":"Igiene","is_free":false,"item_brand":"BIONIKE","discount":5.8}],"currency":"EUR","item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2"},"_clear":true}]; 10762 if (data) { 10763 let storedData = null 10764 10765 data.forEach((item) => { 10766 // Set category data on product detail page 10767 if (item?.event === 'view_item') { 10768 if (storedData === null) { 10769 storedData = JSON.parse(window.localStorage.getItem("product-click-ga4")); 10770 } 10771 10772 item?.ecommerce?.items?.forEach((product) => { 10773 if (storedData?.index) { 10774 product.index = storedData.index 10775 } 10776 10777 if (storedData?.item_list_name) { 10778 product.item_list_name = storedData.item_list_name; 10779 product.item_list_id = storedData.item_list_id; 10780 } 10781 }) 10782 } 10783 10784 globalDatalayer.push(item); 10785 }) 10786 } 10787 } 10788 10789 init(); 10790 10791 // Track product clicks 10792 const productsList = [{"item_list_name":"Homepage Items 1","item_list_id":"homepage_items_1","class_name":".product-item a[class*=\"product-item-\"]","container_class":".product-item"},{"item_list_name":"Homepage Items 2","item_list_id":"homepage_items_2","class_name":".product-item a[class*=\"product-item-\"]","container_class":".product-item"}] 10793 productsList.forEach((list) => { 10794 document.querySelectorAll(list?.class_name).forEach((productLink) => { 10795 productLink.addEventListener("click", () => { 10796 productClick(productLink, list) 10797 }) 10798 }) 10799 }) 10800 10801 function productClick(element, list) { 10802 const container = element.closest(list?.container_class) 10803 10804 // Find product url 10805 let productUrl = null 10806 if (container && container.querySelector('a.product-item-link')) { 10807 productUrl = container.querySelector('a.product-item-link').href 10808 } else if (container && container.querySelector('a.product-item-photo')) { 10809 productUrl = container.querySelector('a.product-item-photo').href 10810 } else { 10811 productUrl = element.href 10812 } 10813 10814 const autoRedirectTimer = setTimeout(function () { 10815 document.location = productUrl 10816 }, 3000); 10817 10818 const priceBox = container.querySelector("[data-product-id]") 10819 if (priceBox) { 10820 const productId = priceBox.dataset.productId 10821
10822 const productCollections = globalDatalayer.find((layer) => layer?.ecommerce?.items).ecommerce?.items 10823 const product = productCollections.find((product) => product.p_id == productId) 10824 10825 const productClickData = { 10826 pid: productId, 10827 item_id: product.item_id, 10828 item_list_name: list.item_list_name, 10829 item_list_id: list.item_list_id, 10830 index: product.index 10831 } 10832 window.localStorage.setItem("product-click-ga4", JSON.stringify(productClickData)) 10833 10834 globalDatalayer.push({ 10835 'event': 'select_item', 10836 'ecommerce': { 10837 'items': [product] 10838 }, 10839 'eventCallback': function () { 10840 clearTimeout(autoRedirectTimer); 10841 document.location = productUrl 10842 }, 10843 '_clear': true 10844 }); 10845 10846 return false 10847 } 10848 10849 return true 10850 } 10851 })(); 10852</script>
10852 10853<!-- End Google Analytics 4 for Google Tag Manager by MagePal --> 10854 10855<!-- Wrapping template -->
10856<script type="text/template" id="instant_wrapper_template"> 10857 {{#findAutocomplete}} 10858 <div id="algolia-autocomplete-container"></div> 10859 {{/findAutocomplete}} 10860 10861 <div id="algolia_instant_selector" 10862 class=" with-facets" 10863 > 10864 <div class="columns"> 10865 <aside class="sidebar sidebar-main relative" id="algolia-left-container"> 10866 <button class="filters lg:hidden btn btn-tertiary bg-tertiary-darker text-white rounded-lg flex pl-3 pr-4 py-1.5 items-center" onclick="toggleAaFilters()"> 10867 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" alt="Icona" role="presentation"> 10868 <path stroke-linecap="round" stroke-linejoin="round" d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"></path> 10869 <title>adjustments</title> 10870 </svg> 10871 <span class="ml-1.5 font-baloo-bhaina"> 10872 Filtri </span> 10873 </button> 10874 <div class="mb-4 hidden lg:block" id="facets"> 10875 <div class="aa-mobile-header flex px-layoutGutter py-3 border-b mb-2 justify-between items-center lg:hidden shadow-md"> 10876 <span class="text-primary text-lg font-bold mx-auto pl-6"> 10877 Filtri </span> 10878 <span id="aa-mobile-toggler" class="cursor-pointer" onclick="toggleAaFilters()"> 10879 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" role="img"> 10880 <path d="M21.82 24c-.58 0-1.13-.23-1.54-.64l-8.27-8.27-8.29 8.27a2.179 2.179 0 0 1-3.08-3.08L8.92 12 .64 3.73a2.19 2.19 0 0 1 0-3.09 2.172 2.172 0 0 1 3.08 0L12 8.92 20.27.64a2.19 2.19 0 0 1 3.09 0c.85.85.85 2.23 0 3.09L15.08 12l8.27 8.27c.85.85.85 2.24 0 3.09-.41.41-.96.64-1.54.64Z" style="fill:currentColor"></path> 10881 <title>x</title> 10882 </svg> 10883 </span> 10884 </div> 10885 <div class="pt-[50px] px-layoutGutter lg:px-0 lg:pt-0" id="instant-search-facets-container"> 10886 <div class="hidden lg:block text-primary text-md text-xl lg:text-2xl font-semibold h-10 mt-2.5"> 10887 Filtri </div> 10888 <div class="w-full flex flex-col bg-white shadow hidden lg:mt-4 py-3" id="instant-search-active-filters"> 10889 <span class="title text-base font-bold font-baloo-bhaina hidden" id="instant-search-active-filters-label"> 10890 Filtri attivi </span> 10891 <div class="order-2" id="clear-refinements"></div> 10892 <div id="current-refinements"></div> 10893 </div> 10894 </div> 10895 </div> 10896 </aside> 10897 <div class="column main" id="algolia-right-container"> 10898 <div class="hidden"> 10899 <div class="pb-3.5"> 10900 <div class="px-2.5"> 10901 {{#second_bar}} 10902 <div id="instant-search-bar"></div> 10903 {{/second_bar}} 10904 </div> 10905 </div> 10906 </div> 10907 <div class="relative"> 10908 <div itemscope itemtype="http://schema.org/ItemList" class="w-full"> 10909 <div id="algolia-toolbar" class="toolbar toolbar-products items-center flex justify-between"> 10910 <div class="left flex items-center"> 10911 <div id="algolia-stats"></div> 10912 </div> 10913 <div class="right flex items-center"> 10914 <span class="mr-2 inline-block">
10914Ordina per</span> 10915 <div id="algolia-sorts"></div> 10916 </div> 10917 </div> 10918 <div id="algolia-banner"></div> 10919 <div id="instant-empty-results-container"></div> 10920 <div class="py-6" id="instant-search-results-container"></div> 10921 </div> 10922 </div> 10923 <div> 10924 <div id="algolia-stats-range" class="mb-2"></div> 10925 <div id="instant-search-pagination-container"></div> 10926 </div> 10927 </div> 10928 </div> 10929 </div> 10930</script>
10930 10931
10932<script> 10933 function toggleAaFilters() { 10934 try { 10935 var facets = document.getElementById('facets'); 10936 if (!facets) return; 10937 10938 // Toggle visibility of facets (mobile overlay) 10939 facets.classList.toggle('hidden'); 10940 10941 var isOpen = !facets.classList.contains('hidden'); 10942 var body = document.body; 10943 var lockClasses = ['max-h-screen', 'lock-screen', 'overflow-hidden', 'instant-lock']; 10944 lockClasses.forEach(function (cls) { 10945 if (isOpen) { 10946 body.classList.add(cls); 10947 } else { 10948 body.classList.remove(cls); 10949 } 10950 }); 10951 10952 // Apply or remove mobile collapsible bindings only when toggler is used 10953 try { 10954 if (window.AISFacetsCollapsible) { 10955 if (isOpen) { 10956 window.AISFacetsCollapsible.enable(); 10957 } 10958 } 10959 } catch (e2) { /* noop */ } 10960 } catch (e) { 10961 // Fail-safe: do nothing on error 10962 console.error('toggleAaFilters error', e); 10963 } 10964 } 10965</script>
10965 10966
10967<script> 10968 // Mobile-only: make Algolia facets panels (.ais-Panel) collapsible after they are rendered 10969 (function() { 10970 'use strict'; 10971 var MOBILE_MQL = window.matchMedia('(max-width: 1023px)'); // Tailwind lg breakpoint 10972 10973 function applyCollapsible(root) { 10974 if (!root) return; 10975 var panels = root.querySelectorAll('.ais-Panel'); 10976 panels.forEach(function(panel) { 10977 if (!panel || panel.dataset.collapsibleApplied === '1') return; 10978 var header = panel.querySelector('.ais-Panel-header'); 10979 var body = panel.querySelector('.ais-Panel-body'); 10980 if (!header || !body) return; 10981 10982 // Mark as processed 10983 panel.dataset.collapsibleApplied = '1'; 10984 10985 // Ensure default open state 10986 panel.classList.remove('is-collapsed'); 10987 header.setAttribute('aria-expanded', 'true'); 10988 10989 // Make header interactive 10990 header.setAttribute('role', 'button'); 10991 header.setAttribute('tabindex', '0'); 10992 10993 // Inject chevron-down if not present 10994 if (!header.querySelector('.ais-Panel-chevron')) { 10995 var chev = document.createElement('span'); 10996 chev.className = 'ais-Panel-chevron chevron'; 10997 chev.setAttribute('aria-hidden', 'true'); 10998 chev.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" role="img" aria-hidden="true"><path d="M6.23 8.34a1 1 0 0 1 1.41 0L12 12.7l4.36-4.36a1 1 0 1 1 1.41 1.41l-5.07 5.07a1 1 0 0 1-1.41 0L6.23 9.75a1 1 0 0 1 0-1.41Z" fill="currentColor"/></svg>'; 10999 header.appendChild(chev); 11000 } 11001 11002 var toggle = function() { 11003 var collapsed = panel.classList.toggle('is-collapsed'); 11004 header.setAttribute('aria-expanded', String(!collapsed)); 11005 }; 11006 11007 header.addEventListener('click', toggle); 11008 header.addEventListener('keydown', function(e) { 11009 if (e.key === 'Enter' || e.key === ' ') { 11010 e.preventDefault(); 11011 toggle(); 11012 } 11013 }); 11014 }); 11015 } 11016 11017 function enableMobileCollapsible() { 11018 if (!MOBILE_MQL.matches) return; 11019 var container = document.getElementById('instant-search-facets-container'); 11020 if (!container) return; 11021 applyCollapsible(container); 11022 11023 // Observe for dynamic facet (re)renders 11024 if (!container._aisCollapsibleObserver) { 11025 var obs = new MutationObserver(function() { 11026 applyCollapsible(container); 11027 }); 11028 obs.observe(container, { childList: true, subtree: true }); 11029 container._aisCollapsibleObserver = obs; 11030 } 11031 } 11032 11033 function disableMobileCollapsible() { 11034 var container = document.getElementById('instant-search-facets-container'); 11035 if (!container) return; 11036 // Ensure all panels are open on desktop 11037 container.querySelectorAll('.ais-Panel').forEach(function(panel) { 11038 panel.classList.remove('is-collapsed'); 11039 var header = panel.querySelector('.ais-Panel-header'); 11040 if (header) { 11041 header.setAttribute('aria-expanded', 'true'); 11042 } 11043 }); 11044 if (container._aisCollapsibleObserver) { 11045 try { container._aisCollapsibleObserver.disconnect(); } catch (e) {} 11046 container._aisCollapsibleObserver = null; 11047 } 11048 } 11049 11050 // Expose API to be triggered explicitly by the mobile toggler 11051 window.AISFacetsCollapsible = { 11052 enable: enableMobileCollapsible, 11053 disable: disableMobileCollapsible, 11054 _mql: MOBILE_MQL 11055 }; 11056 })(); 11057</script>
11057 11058 11059<style> 11060 .ais-ClearRefinements-button span { 11061 display: none; 11062 } 11063 11064 .ais-ClearRefinements-button::after { 11065 content: 'Cancella tutto'; 11066 } 11067</style>
11068<script type="text/template" id="instant-hit-template"> 11069 <div class="item product product-item card card-interactive flex flex-col w-full h-full border hover:border-tertiary rounded-lg p-2 lg:px-4 lg:py-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem" 11070 x-data="initInsight()" 11071 x-init="bindClickEvent($el, 'Product Clicked', '{{objectID}}', '{{__indexName}}', '{{__position}}', '{{__queryID}}')" 11072 > 11073 <meta itemprop="position" content="{{__position}}"/> 11074 <div class="relative flex flex-col flex-grow" itemprop="item" itemscope itemtype="http://schema.org/Product"> 11075 <meta itemprop="url" 11076 {{^__queryID}} content="{{url}}" {{/__queryID}} 11077 {{#__queryID}} content="{{urlForInsights}}" {{/__queryID}} 11078 /> 11079 11080 <span class="badge-container flex flex-wrap gap-2 absolute z-10" x-defer="intersect" x-intersect.once="$store.badges.addNode({{objectID}}, 'card_top_left')"> 11081 <template x-for="badge in $store.badges.getBadgesHtml({{objectID}}, 'card_top_left')"> 11082 <span x-html="badge"></span> 11083 </template> 11084 </span> 11085 11086 <a class="product photo product-item-photo block mx-auto mb-4 result flex items-center justify-center max-w-[142px] max-h-[142px]" 11087 tabindex="-1" 11088 {{^__queryID}} href="{{url}}" {{/__queryID}} 11089 {{#__queryID}} href="{{urlForInsights}}" {{/__queryID}} 11090 > 11091 {{#image_url}}<img itemprop="image" src="{{{image_url}}}" alt="{{{name}}}" class="max-w-full max-h-full object-contain"/>{{/image_url}} 11092 {{^image_url}}<span class="no-image block max-w-[142px] max-h-[142px] bg-gray-3"></span>{{/image_url}} 11093 </a> 11094 11095 <div class="product-info flex flex-col grow justify-start"> 11096 <div class="items-center justify-center"> 11097 <a class="product-item-link result" 11098 {{^__queryID}} href="{{url}}" {{/__queryID}} 11099 {{#__queryID}} href="{{urlForInsights}}" {{/__queryID}}> 11100 <h2 class="text-primary text-xs line-clamp-3 font-normal"> 11101 {{{ _highlightResult.name.value }}} 11102 </h2> 11103 </a> 11104 </div> 11105 <div class="mt-1 mb-1"> 11106 {{#rating_count}} 11107 <div class="rating-summary" title="{{rating_summary}}%" role="group" aria-label="{{rating_summary}}%"> 11108 <div class="inline-flex align-middle" style="line-height: 0;"> 11109 <div class="relative"> 11110 <div class="flex"> 11111 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #cbd5e0" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11112 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #cbd5e0" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11113 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #cbd5e0" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
11113</svg> 11114 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #cbd5e0" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11115 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #cbd5e0" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11116 </div> 11117 <div class="absolute top-0 left-0 overflow-hidden" style="width: {{rating_summary}}%"> 11118 <div class="flex w-fit"> 11119 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #f6e05e" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11120 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #f6e05e" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11121 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #f6e05e" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11122 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #f6e05e" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11123 <svg xmlns="http://www.w3.org/2000/svg" class="w-4 h-4" viewBox="3 0 20 20" fill="currentColor" style="color: #f6e05e" aria-hidden="true"><path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/></svg> 11124 </div> 11125 </div> 11126 </div>
11127 <span class="ml-1 text-xs relative top-[-1px]">({{rating_count}})</span> 11128 </div> 11129 </div> 11130 {{/rating_count}} 11131 </div> 11132 11133 <div class="flex flex-nowrap justify-between items-center mt-auto items-end leading-none"> 11134 <span class="ajax-price-container block flex-grow font-baloo-bhaina hide-price-labels"> 11135 <template x-if="active = true"> 11136 <div x-defer="intersect" x-intersect.once="$store.ajaxPrices.addNode({{objectID}})"> 11137 <template x-if="!$store.ajaxPrices.hasPrice({{objectID}})"> 11138 <div class="skeleton w-16 lg:w-full h-6"> 11139 Caricamento... </div> 11140 </template> 11141 <template x-if="$store.ajaxPrices.hasPrice({{objectID}})"> 11142 <span x-html="$store.ajaxPrices.getPriceHtml({{objectID}})"></span> 11143 </template> 11144 </div> 11145 </template> 11146 </span> 11147 11148 {{#isAddToCartEnabled}} 11149 {{#in_stock}} 11150 <form class="flex-grow-0 product_addtocart_form" data-role="tocart-form" action="{{ addToCart.action }}" method="post"> 11151 <input type="hidden" name="product" value="{{objectID}}"> 11152 <input type="hidden" name="uenc" value="{{ addToCart.uenc }}"> 11153 <input name="form_key" type="hidden" value="{{ addToCart.formKey }}"> 11154 <button type="submit" title="Aggiungi al Carrello" 11155 class="w-auto btn btn-primary mt-auto z-10 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" 11156 > 11157 <svg xmlns="http://www.w3.org/2000/svg" id="Livello_1" viewBox="0 0 23.99 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true" alt="Icona" role="presentation"><path fill="#fff" d="m4.93,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m14.79,21.86c0-1.18.96-2.14,2.14-2.14,1.18,0,2.14.96,2.14,2.14,0,1.18-.96,2.14-2.14,2.14,0,0,0,0,0,0-1.18,0-2.13-.96-2.14-2.14Z"></path><path fill="#fff" d="m18.73,7.07v-1.81h-1.8c-.64,0-1.15-.51-1.15-1.15s.51-1.15,1.15-1.15h1.8v-1.8C18.73.52,19.25,0,19.89,0s1.15.52,1.15,1.15v1.8h1.8c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15h-1.8v1.81c0,.64-.52,1.15-1.15,1.15s-1.15-.52-1.15-1.15Z"></path><path fill="#fff" d="m8.6,19.07c-2.58,0-4.76-1.93-5.06-4.5L2.18,3.03c-.05-.41-.4-.72-.82-.72h-.22c-.64,0-1.15-.52-1.15-1.15C0,.52.51,0,1.15,0h.22c1.58,0,2.92,1.19,3.1,2.76l.03.2h8.49c.64,0,1.15.51,1.15,1.15s-.51,1.15-1.15,1.15H4.77l.88,7.56h11.92c1.35,0,2.51-.97,2.75-2.3.1-.54.57-.94,1.13-.95.07,0,.14,0,.21.02.3.05.57.23.74.48.18.25.25.56.19.86-.43,2.43-2.55,4.2-5.01,4.19H6.05c.45,1,1.45,1.64,2.55,1.65h10.3c.64,0,1.15.52,1.15,1.15s-.52,1.15-1.15,1.15h-10.3Z"></path></svg> 11158 </button> 11159 </form> 11160 {{/in_stock}} 11161 {{^in_stock}} 11162 <a class="w-auto mt-auto z-10 btn btn-primary bg-quaternary hover:bg-slate-900 active:bg-slate-900 justify-center text-sm rounded-md px-3 lg:px-4 py-2 ml-2" aria-label="Notify me" 11163 {{^__queryID}} href="{{url}}" {{/__queryID}} 11164 {{#__queryID}} href="{{urlForInsights}}" {{/__queryID}} 11165 > 11166 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true" alt="Icona" role="presentation"> 11167 <path d="M19.5 24c-.38 0-.69-.31-.68-.69 0-.22.11-.43.28-.55a9.215 9.215 0 0 0 3.55-5.77c.07-.31.35-.53.67-.53.05 0 .1 0 .15.02.37.08.6.44.52.81a10.61 10.61 0 0 1-4.08 6.58c-.12.09-.26.13-.41.13Zm-6.88 0c-1.04 0-2.05-.32-2.89-.92l-.2-.14-.2.15c-2 1.5-4.85 1.1-6.35-.9a4.547 4.547 0 0 1-.06-5.37l.17-.24-1.57-1.56a5.049 5.049 0 0 1 0-7.16c.28-.28.59-.53.93-.74L8.4 3.45A8.797 8.797 0 0 1 18.64 4l.24.19 1.92-1.92c.26-.27.7-.28.97-.01.27.26.28.7.01.97l-.01.01-1.92 1.92.19.24a8.864 8.864 0 0 1 .81 9.86l-3.88 6.33a5.058 5.
11167058 0 0 1-3.73 2.39c-.2.02-.4.04-.6.04Zm.52-20.57c-1.42 0-2.82.41-4.02 1.18L3.17 8.28a3.7 3.7 0 0 0-.68 5.76l7.51 7.5c.7.69 1.64 1.08 2.62 1.08.15 0 .29 0 .43-.03 1.13-.13 2.13-.77 2.73-1.74l3.87-6.3a7.478 7.478 0 0 0-1.24-8.93l-.59-.58v.05a7.325 7.325 0 0 0-4.7-1.67Zm-9.09 14.1-.22.4c-.69 1.24-.47 2.78.54 3.77 1.01.96 2.51 1.17 3.75.52l.41-.22-4.48-4.48ZM.68 5.22a.69.69 0 0 1-.55-1.09C1.76 1.95 4.16.48 6.83.02S6.92 0 6.97 0c.38 0 .69.3.69.68 0 .33-.23.61-.55.68a9.18 9.18 0 0 0-5.89 3.58c-.13.17-.33.28-.55.28Z" style="fill:currentColor"></path> 11168 </svg> 11169 </a> 11170 {{/in_stock}} 11171 11172 {{/isAddToCartEnabled}} 11173 </div> 11174 </div> 11175 </div> 11176 </div> 11177</script>
vendor: 1 bytes, line 11177
11177
11178<script> 11179 'use strict'; 11180 11181 function initInsight() { 11182 return { 11183 bindClickEvent(element, eventName, objectID, indexName, position, queryID) { 11184 element.querySelector(algoliaConfig.ccAnalytics.ISSelector).addEventListener("click", function () { 11185 buildInsightsEventData(eventName, objectID, indexName, position, queryID); 11186 }); 11187 } 11188 } 11189 } 11190</script>
vendor: 1 bytes, line 11190
11190
11191<script type="text/template" id="instant-stats-total-template"> 11192 <div class="font-body-sm text-gray-1 hidden lg:block"> 11193 <span itemprop="numberOfItems">{{nbHits}}</span> 11194 <span>prodotti</span> 11195 </div> 11196</script>
11196 11197
11198<script type="text/template" id="instant-stats-range-template"> 11199 <div class="toolbar-amount font-body-sm text-gray-1 pb-4 text-center"> 11200 <span itemprop="numberOfItems">{{first}}-{{last}}</span> 11201 <span>di</span> 11202 <span itemprop="numberOfItems">{{nbHits}}</span> 11203 </div> 11204</script>
vendor: 1 bytes, line 11204
11204
11205<script type="text/template" id="refinements-lists-item-template"> 11206 <label class="{{cssClasses.label}} {{#isRefined}}checked{{/isRefined}} flex items-center mb-1"> 11207 <input class="{{cssClasses.checkbox}}" {{#isRefined}}checked{{/isRefined}} type="checkbox" value="{{value}}" /> 11208 <span class="pl-2">{{value}}</span> 11209 <span class="{{cssClasses.count}} flex-grow text-right">{{count}}</span> 11210 </label> 11211</script>
vendor: 1 bytes, line 11211
11211
11212<script type="text/template" id="current-refinements-template"> 11213 <div class="cross-wrapper"> 11214 <span class="clear-cross clear-refinement"></span> 11215 </div> 11216 <div class="current-refinement-wrapper"> 11217 {{#label}} 11218 <span class="current-refinement-label">{{label}}{{^operator}}:{{/operator}}</span> 11219 {{/label}} 11220 {{#operator}} 11221 {{{displayOperator}}} 11222 {{/operator}} 11223 {{#exclude}}-{{/exclude}} 11224 <span class="current-refinement-name">{{name}}</span> 11225 </div> 11226</script>
vendor: 1 bytes, line 11226
11226
11227<script> 11228 (function () { 11229 const modals = []; 11230 let lastHide = 0; 11231 11232 function resolveElement($refs, value) { 11233 if (!value) return null; 11234 if (value instanceof Element) return value; 11235 if (typeof value === 'string') { 11236 try { 11237 return ($refs && $refs[value]) || document.querySelector(value) || null; 11238 } catch (e) {} 11239 } 11240 return null; 11241 } 11242 11243 function determineTrigger($refs, dialog, trigger) { 11244 if (!trigger && dialog?.target instanceof HTMLElement) { 11245 return dialog.target; 11246 } 11247 11248 if (typeof dialog === 'string' && trigger?.target instanceof HTMLElement) { 11249 return trigger.target; 11250 } 11251 11252 return resolveElement($refs, trigger); 11253 } 11254 11255 function setFocusFirstElement(dialogElement) { 11256 if (!dialogElement) return; 11257 11258 window.setTimeout(() => { 11259 const candidates = dialogElement.querySelectorAll('[x-focus-first]'); 11260 for (const candidate of candidates) { 11261 if (candidate.closest('dialog') === dialogElement) { 11262 candidate.focus(); 11263 return; 11264 } 11265 } 11266 }, 50); 11267 } 11268 11269 window.hyva.modal = function(options = {}) { 11270 if (this.$el && this.$el.dataset && this.$el.dataset.options) { 11271 try { 11272 options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}')); 11273 } catch (e) { 11274 throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON'); 11275 } 11276 } 11277 11278 const config = Object.assign({ 11279 dialog: 'dialog', duration: 300, transitionEnter: 'transition ease-out duration-300', 11280 transitionEnterStart: 'opacity-0', 11281 transitionEnterEnd: 'opacity-100', 11282 transitionLeave: 'transition ease-in duration-300', 11283 transitionLeaveStart: 'opacity-100', 11284 transitionLeaveEnd: 'opacity-0', 11285 }, options); 11286 11287 return { 11288 opened: {}, 11289 show(dialog, trigger) { 11290 const name = typeof dialog === 'string' ? dialog : config.dialog; 11291 if (!name || this.opened[name]) return; 11292 11293 this.opened[name] = true; 11294 const focusTarget = determineTrigger(this.$refs, dialog, trigger); 11295 const dialogEl = this.$refs && this.$refs[name]; 11296 const frame = { name, instance: this, focusTarget, time: Date.now() }; 11297 modals.push(frame); 11298 setFocusFirstElement(dialogEl); 11299 return new Promise(resolve => { frame.resolve = resolve; }); 11300 }, 11301 cancel() { 11302 this.hide(false); 11303 }, 11304 ok() { 11305 this.hide(true); 11306 }, 11307 hide(value) { 11308 if (Date.now() - lastHide < config.duration) return; 11309 lastHide = Date.now(); 11310 11311 const modal = modals.pop(); 11312 if (!modal) return; 11313 11314 modal.instance.opened[modal.name] = false; 11315 11316 const focusTarget = modal.focusTarget; 11317 focusTarget && window.setTimeout(() => focusTarget.focus(), config.duration + 50); 11318 modal.resolve && modal.resolve(value); 11319 }, 11320 /** 11321 * @deprecated Use dialogConfig() instead, which is used by the default modal-container.phtml template. 11322 * This method is kept for backwards compatibility with custom container templates. 11323 */ 11324 overlay(dialog) { 11325 dialog = this.$el.dataset.dialogRefName || dialog; 11326 const name = typeof dialog === 'string' ? dialog : config.dialog; 11327 if (this.$el.tagName !== 'DIALOG' && ! window.hyva.modal.legacyModalCompatibility) { 11328 console.warn( 11329 '[hyva] Deprecated modal markup detected (x-bind="overlay" on a non-dialog element' + 11330 (name ? ` for "${name}"` : '') + ').\n' + 11331 'Escape and click-outside closing are not available for such dialogs anymore.\n' + 11332 'Install hyva-themes/magento2-legacy-modal-compatibility or migrate to the native <dialog> markup.' 11333 ); 11334 } 11335 return Object.assign({}, this.dialogConfig(name), { 11336 ['@hyva-modal-show.window'](event) { 11337 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide) 11338 } 11339 }); 11340 }, 11341 dialogConfig(name) { 11342 name = name || this.$el.dataset.dialogRefName || config.dialog; 11343 return { 11344 ['x-show']: () => name ? this.opened[name] : false, 11345 ['x-transition:enter']: config.transitionEnter, 11346 ['x-transition:enter-start']: config.transitionEnterStart, 11347 ['x-transition:enter-end']: config.transitionEnterEnd, 11348 ['x-transition:leave']: config.transitionLeave, 11349 ['x-transition:leave-start']: config.transitionLeaveStart, 11350 ['x-transition:leave-end']: config.transitionLeaveEnd, 11351 ['@hyva-modal-show.window'](event) { 11352 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide); 11353 }, 11354 }; 11355 },
11356 showDialogOnInit() { 11357 const name = this.$el.dataset.dialogRefName; 11358 if (name) { 11359 this.show(name); 11360 } 11361 } 11362 }; 11363 } 11364 11365 window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length - 1] 11366 11367 window.hyva.modal.pop = function () { 11368 if (modals.length > 0) { 11369 modals[modals.length - 1].instance.hide(); 11370 } 11371 } 11372 11373 /** 11374 * @deprecated Native <dialog> handles focus trapping automatically. 11375 * Calling this function has no effect. Kept for backwards compatibility. 11376 */ 11377 window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {} 11378 11379 /** 11380 * @deprecated Native <dialog> with x-htmldialog handles ESC key and click-outside events. 11381 * These functions have no effect. Kept for backwards compatibility. 11382 */ 11383 window.hyva.modal.eventListeners = { 11384 keydown: event => {}, 11385 click: event => {} 11386 }; 11387 })(); 11388 11389 window.addEventListener('alpine:init', () => { 11390 Alpine.data('hyvaModal', window.hyva.modal); 11391 }, {once: true}); 11392</script>
11392 11393 11394<section x-data="initAmGdprLoader" 11395 @amgdpr-loading-start.window="showLoader" 11396 @amgdpr-loading-stop.window="hideLoader" 11397> 11398 11399<div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" 11400 style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgb(255 255 255/0.60);" 11401 x-show="isLoading" 11402 x-transition:enter="ease-out duration-200" 11403 x-transition:enter-start="opacity-0" 11404 x-transition:enter-end="opacity-100" 11405 x-transition:leave="ease-in duration-200" 11406 x-transition:leave-start="opacity-100" 11407 x-transition:leave-end="opacity-0"> 11408 <svg xmlns="http://www.w3.org/2000/svg" width="57" height="57" viewBox="0 0 38 38" stroke="#ffb590" class="text-primary" role="img"> 11409 <g fill="none" fill-rule="evenodd"> 11410 <g transform="translate(1 1)" stroke-width="2"> 11411 <circle stroke="#ff6801" cx="18" cy="18" r="18"/> 11412 <path d="M36 18c0-9.94-8.06-18-18-18"> 11413 <animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s" repeatCount="indefinite"/> 11414 </path> 11415 </g> 11416 </g> 11417<title>loader</title></svg> 11418</div> 11419</section> 11420
11421<script data-cfasync="false"> 11422 'use strict'; 11423 11424 function initAmGdprLoader() { 11425 return { 11426 isLoading: false, 11427 11428 /** 11429 * @returns {void} 11430 */ 11431 showLoader: function () { 11432 this.isLoading = true; 11433 }, 11434 11435 /** 11436 * @returns {void} 11437 */ 11438 hideLoader: function () { 11439 this.isLoading = false; 11440 } 11441 } 11442 } 11443 11444 window.addEventListener( 11445 'alpine:init', 11446 () => Alpine.data('initAmGdprLoader', initAmGdprLoader), 11447 { once: true } 11448 ); 11449</script>
11449 11450 11451
11452<script data-cfasync="false"> 11453 'use strict'; 11454 11455 /** 11456 * @typedef {Object} CookieGroupData 11457 * @prop {Boolean} checked 11458 * @prop {[{description: string, lifetime: number|null, name: string, provider: string, type: string}]} cookies 11459 * @prop {String} description 11460 * @prop {string|null} groupId 11461 * @prop {Boolean} isEssential 11462 * @prop {String} name 11463 */ 11464 11465 function initAmastyCookieGroupsStorage() { 11466 return { 11467 /** 11468 * @type {[CookieGroupData]} 11469 */ 11470 groupData: [], 11471 cookiePolicy: undefined, 11472 lastUpdate: undefined, 11473 11474 /** 11475 * @returns {string|number[]} 11476 */ 11477 getEssentialGroupIds: function () { 11478 return this.groupData.reduce(function (essentialGroupIds, group) { 11479 if (group.isEssential) { 11480 essentialGroupIds.push(group.groupId) 11481 } 11482 11483 return essentialGroupIds; 11484 }, []); 11485 }, 11486 11487 /** 11488 * @returns {string|number[]} 11489 */ 11490 getCheckedGroupIds: function () { 11491 return this.groupData.reduce(function (checkedGroupIds, group) { 11492 if (group.checked) { 11493 checkedGroupIds.push(group.groupId); 11494 } 11495 11496 return checkedGroupIds; 11497 }, []); 11498 }, 11499 11500 /** 11501 * @param {string} cookieName 11502 * @returns {boolean} 11503 */ 11504 isCookieEssential: function (cookieName) { 11505 const allEssentialCookies = this.getEssentialCookies(); 11506 11507 return !!allEssentialCookies.find(cookie => cookie.name === cookieName); 11508 }, 11509 11510 /** 11511 * @returns {array} 11512 */ 11513 getEssentialCookies: function () { 11514 return this.groupData 11515 .filter(group => group.isEssential) 11516 .map(group => group.cookies) 11517 .flat(); 11518 }, 11519 11520 /** 11521 * @returns {boolean} 11522 */ 11523 hasGroupData: function () { 11524 return !!this.groupData.length; 11525 }, 11526 11527 /** 11528 * @param {string} cookieName 11529 * @param {string} pattern 11530 * @returns {boolean} 11531 */ 11532 isEssentialByPattern: function (cookieName, pattern) { 11533 const essentialCookiePatterns = this.getEssentialCookiesPattern(pattern); 11534 11535 return essentialCookiePatterns.some((pattern) => !!cookieName.match(this.getCookiePattern(pattern))); 11536 }, 11537 11538 /** 11539 * @param {string} pattern 11540 * @return {Array} 11541 */ 11542 getEssentialCookiesPattern: function (pattern) { 11543 return this.getCookiesByPattern(pattern, this.getEssentialCookies()); 11544 }, 11545 11546 /** 11547 * @param {string} pattern 11548 * @param {Array|undefined} cookies 11549 * @return {Array} 11550 */ 11551 getCookiesByPattern: function (pattern, cookies) { 11552 if (typeof cookie === 'undefined') { 11553 cookies = this.getAllCookies(); 11554 } 11555 11556 return cookies
11557 .map((cookie) => typeof cookie === 'object' ? cookie.name : cookie.split('=')[0].trim()) 11558 .filter((cookie) => cookie.match(pattern) !== null); 11559 }, 11560 11561 /** 11562 * @returns {array} 11563 */ 11564 getDisallowedCookies: function () { 11565 const disallowedCookie = decodeURIComponent(hyva.getCookie('amcookie_disallowed') ?? ''); 11566 if (!disallowedCookie) { 11567 return []; 11568 } 11569 11570 return disallowedCookie.split(','); 11571 }, 11572 11573 /** 11574 * @returns {string} 11575 */ 11576 getCookiePattern: function (pattern) { 11577 return `^${pattern.replaceAll('*', '.*')}$`; 11578 }, 11579 11580 /** 11581 * @returns {array} 11582 */ 11583 getAllCookies: function () { 11584 return document.cookie.split(';'); 11585 }, 11586 11587 /** 11588 * @param {boolean} setAcceptance 11589 * @returns {Promise} 11590 */ 11591 updateGroupData: function (setAcceptance = false) { 11592 const cookieFetchUrl = `${BASE_URL}amcookie/cookie/cookies`; 11593 return fetch(cookieFetchUrl, { 11594 method: "POST", 11595 headers: { 11596 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 11597 'X-Requested-With': 'XMLHttpRequest' 11598 }, 11599 body: new URLSearchParams({ 11600 allowed: hyva.getCookie('amcookie_allowed'), 11601 restriction: hyva.getCookie('amcookie_policy_restriction') 11602 }) 11603 }).then(response => { 11604 if (response.ok) { 11605 return response.json(); 11606 } 11607 11608 return Promise.reject(`${response.status} ${response.statusText}`); 11609 }).then(data => { 11610 this.cookiePolicy = data.cookiePolicy ?? 'allowed'; 11611 this.lastUpdate = data.lastUpdate ?? 0; 11612 this.groupData = [...data.groupData]; 11613 11614 hyva.setCookie('amcookie_policy_restriction', this.cookiePolicy, 10); 11615 if (setAcceptance) { 11616 amastyCookieManager.setLastCookieAcceptance(this.lastUpdate); 11617 } 11618 11619 return data; 11620 }).catch(error => { 11621 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 11622 { 11623 type: "error", 11624 text: error 11625 } 11626 ]); 11627 }).finally(() => window.dispatchEvent(new CustomEvent('amasty-cookie-group-updated'))); 11628 } 11629 } 11630 } 11631 11632 window.addEventListener( 11633 'alpine:init', 11634 () => Alpine.store('AmastyCookieGroups', initAmastyCookieGroupsStorage()), 11635 { once: true } 11636 ); 11637</script>
11637 11638
11639<script data-cfasync="false"> 11640 (function (amastyCookieManager) { 11641 'use strict'; 11642 11643 amastyCookieManager.pattern = '{(?<cookiePattern>.*)}'; 11644 11645 amastyCookieManager.getAmastyCookieGroupStorage = function () { 11646 return Alpine.store('AmastyCookieGroups') ?? {}; 11647 }; 11648 11649 amastyCookieManager.deleteDisallowedCookie = function () { 11650 const amastyCookieGroupStorage = this.getAmastyCookieGroupStorage(); 11651 const disallowedCookies = amastyCookieGroupStorage?.getDisallowedCookies() ?? []; 11652 11653 disallowedCookies.forEach((name) => { 11654 const pattern = name.match(this.pattern); 11655 if (!!pattern && !!amastyCookieGroupStorage) { 11656 const cookiePattern = amastyCookieGroupStorage.getCookiePattern(pattern.groups.cookiePattern) ?? ''; 11657 11658 amastyCookieGroupStorage.getCookiesByPattern(cookiePattern).forEach((cookieName) => { 11659 this.deleteNotEssentialCookie(cookieName); 11660 }); 11661 } else { 11662 this.deleteNotEssentialCookie(name); 11663 } 11664 }); 11665 }; 11666 11667 amastyCookieManager.isCookieAllowed = function (cookieName) { 11668 const allowedGroups = hyva.getCookie('amcookie_allowed'); 11669 const disallowedCookie = this.getAmastyCookieGroupStorage()?.getDisallowedCookies() ?? []; 11670 const isCookiePolicyAllowed = hyva.getCookie('amcookie_policy_restriction') === 'allowed'; 11671 const isCookieEssential = this.getAmastyCookieGroupStorage()?.isCookieEssential(cookieName); 11672 const isCookieEssentialByPattern = this.getAmastyCookieGroupStorage()?.isEssentialByPattern(cookieName, this.pattern); 11673 11674 if (!isCookiePolicyAllowed || isCookieEssential || isCookieEssentialByPattern) { 11675 return true; 11676 } 11677 11678 return !((!allowedGroups && !disallowedCookie) || this.isCookieDisallowed(cookieName)); 11679 }; 11680 11681 amastyCookieManager.isCookieDisallowed = function (cookieName) { 11682 const amastyCookieGroupStorage = this.getAmastyCookieGroupStorage(); 11683 const disallowedCookies = amastyCookieGroupStorage?.getDisallowedCookies() ?? []; 11684 11685 return disallowedCookies.some((cookie) => { 11686 const pattern = cookie.match(this.pattern); 11687 11688 return !!pattern && !!cookieName.match(amastyCookieGroupStorage?.getCookiePattern(pattern.groups.cookiePattern)); 11689 }) || disallowedCookies.indexOf(cookieName) !== -1; 11690 }; 11691 11692 amastyCookieManager.processManageableCookies = function () { 11693 let cookieScripts = document.querySelectorAll('script[data-amcookie-groupid][type="text/plain"]'); 11694 11695 cookieScripts.forEach((elem) => { 11696 if (this.isChecked(elem.dataset['amcookie-groupid'])) { 11697 let elClone = elem.cloneNode(true).setAttribute('type', 'text/javascript'); 11698 11699 elem.remove(); 11700 document.body.appendChild(elClone); 11701 } 11702 }); 11703 }; 11704 11705 amastyCookieManager.deleteNotEssentialCookie = function (cookieName) { 11706 if (!this.getAmastyCookieGroupStorage()?.isCookieEssential(cookieName)) { 11707 hyva.setCookie(cookieName, '', -1, true); 11708 } 11709 }; 11710 11711 amastyCookieManager.setLastCookieAcceptance = function (lastUpdate) { 11712 localStorage.setItem('am-last-cookie-acceptance', lastUpdate); 11713 }; 11714 11715 window.addEventListener('amasty-cookie-group-updated', () => { 11716 amastyCookieManager.deleteDisallowedCookie(); 11717 }); 11718 11719 window.addEventListener('private-content-loaded', () => { 11720 amastyCookieManager.getAmastyCookieGroupStorage()?.hasGroupData() && amastyCookieManager.deleteDisallowedCookie(); 11721 }); 11722 }(window.amastyCookieManager = window.amastyCookieManager || {})); 11723</script>
11723 11724
11725<script data-cfasync="false"> 11726 (function () { 11727 'use strict'; 11728 11729 window.addEventListener('cookiebar-action-accept', (event) => { 11730 const groups = event.detail?.include_checked_groups ? Alpine.store('AmastyCookieGroups').getCheckedGroupIds() : []; 11731 const url = `${BASE_URL}amcookie/cookie/savegroups`; 11732 const contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; 11733 const body = new URLSearchParams({ 11734 form_key: hyva.getFormKey() 11735 }); 11736 groups.length && groups.map(groupId => body.append('groups[]', groupId)); 11737 11738 fetch(url, {method: 'POST', body, headers: {'Content-Type': contentType}}) 11739 .then(response => { 11740 if (response.ok) { 11741 return response.json(); 11742 } 11743 11744 return Promise.reject(`${response.status} ${response.statusText}`); 11745 }) 11746 .then(data => { 11747 !!data.success && Alpine.store('AmastyCookieGroups').updateGroupData(true); 11748 }) 11749 .catch(error => { 11750 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 11751 { 11752 type: "error", 11753 text: error 11754 } 11755 ]); 11756 }) 11757 .finally(() => { 11758 amastyCookieManager.processManageableCookies(); 11759 window.dispatchEvent(new CustomEvent('cookiebar-action-accept-finish')); 11760 window.dispatchEvent(new CustomEvent('amasty-cookie-group-updated')); 11761 // Wait cookiebar close animation 11762 setTimeout(() => { 11763 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 11764 }, 100); 11765 }); 11766 }); 11767 })(); 11768</script>
11768 11769
11770<script data-cfasync="false"> 11771 (function () { 11772 'use strict'; 11773 11774 window.addEventListener('cookiebar-action-allow', () => { 11775 const url = `${BASE_URL}amcookie/cookie/allow`; 11776 const contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; 11777 const body = new URLSearchParams({ 11778 form_key: hyva.getFormKey() 11779 }); 11780 fetch(url, {method: 'POST', body, headers: {'Content-Type': contentType}}) 11781 .then(response => { 11782 if (response.ok) { 11783 return response; 11784 } 11785 11786 return Promise.reject(`${response.status} ${response.statusText}`); 11787 }) 11788 .then(() => { 11789 Alpine.store('AmastyCookieGroups').updateGroupData(true); 11790 }) 11791 .catch(error => { 11792 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([ 11793 { 11794 type: "error", 11795 text: error 11796 } 11797 ]); 11798 }) 11799 .finally(() => { 11800 amastyCookieManager.processManageableCookies(); 11801 window.dispatchEvent(new CustomEvent('cookiebar-action-allow-finish')); 11802 // Wait cookiebar close animation 11803 setTimeout(() => { 11804 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 11805 }, 100); 11806 }); 11807 }); 11808 })(); 11809</script>
11809 11810 11811<style> 11812 :root { 11813 /* Bar Color Settings */ 11814 --ambar-background: #fff; 11815 --ambar-links-color: #326ed1; 11816 --ambar-policy-text: #374151; 11817 --ambar-toggle-active-color: #2563eb; 11818 --ambar-toggle-inactive-color: #fff; 11819 11820 /* Buttons Color Settings */ 11821 --ambar-button-accept-color: #337ab7; 11822 --ambar-button-accept-hover-color: #337ab7; 11823 --ambar-button-accept-text: #fff; 11824 --ambar-button-accept-hover-text: #fff; 11825 11826 --ambar-button-allow-color: #337ab7; 11827 --ambar-button-allow-hover-color: #337ab7; 11828 --ambar-button-allow-text: #fff; 11829 --ambar-button-allow-hover-text: #fff; 11830 11831 --ambar-button-decline-color: #337ab7; 11832 --ambar-button-decline-hover-color: #337ab7; 11833 --ambar-button-decline-text: #fff; 11834 --ambar-button-decline-hover-text: #fff; 11835 11836 --ambar-button-settings-color: #337ab7; 11837 --ambar-button-settings-hover-color: #337ab7; 11838 --ambar-button-settings-text: #fff; 11839 --ambar-button-settings-hover-text: #fff; 11840 11841 /* Buttons Order Settings */ 11842 --ambar-button-accept-order: 0; 11843 --ambar-button-allow-order: 0; 11844 --ambar-button-settings-order: 0; 11845 --ambar-button-decline-order: 0; 11846 11847 /* Cookie Information Bar Color Settings */ 11848 --ambar-information-background: #fff; 11849 --ambar-information-title: #374151; 11850 --ambar-information-description: #374151; 11851 --ambar-information-table-header: #374151; 11852 --ambar-information-table-content: #374151; 11853 11854 /* Cookie Information Bar Done Button Settings */ 11855 --ambar-information-button-color: #1d4ed8; 11856 --ambar-information-button-hover-color: #1d4ed8; 11857 --ambar-information-button-text: #fff; 11858 --ambar-information-button-hover-text: #fff; 11859 11860 /* Settings Bar Done Button Settings */ 11861 --ambar-setting-button-color: #1d4ed8; 11862 --ambar-setting-button-hover-color: #1d4ed8; 11863 --ambar-setting-button-text: #fff; 11864 --ambar-setting-button-hover-text: #fff; 11865 } 11866</style> 11867
11868<script data-cfasync="false"> 11869 'use strict'; 11870 11871 function initAmCookieActionDispatcherBtn() { 11872 return { 11873 actiondispatchHandler: function (event) { 11874 const { dispatchAction, dispatchPayload } = event.currentTarget.dataset; 11875 this.$dispatch(dispatchAction, this.parsePayload(dispatchPayload)); 11876 }, 11877 parsePayload: function (payload) { 11878 try { 11879 return JSON.parse(payload); 11880 } catch (e) { 11881 return null; 11882 } 11883 } 11884 }; 11885 } 11886 11887 window.addEventListener( 11888 'alpine:init', 11889 () => Alpine.data('initAmCookieActionDispatcherBtn', initAmCookieActionDispatcherBtn), 11890 { once: true } 11891 ); 11892</script>
11892 11893
11894<script data-cfasync="false"> 11895 'use strict'; 11896 11897 function initAmCookieGroups() { 11898 return { 11899 /** 11900 * @withContext x-for: $store.AmastyCookieGroups.groupData 11901 * @returns {string} 11902 */ 11903 getInputGroupId: function () { 11904 return `amcookie-${this.$el.dataset.groupPrefix}group-${this.group.groupId}` 11905 }, 11906 11907 /** 11908 * @withContext x-for: $store.AmastyCookieGroups.groupData 11909 * @returns {{"!bg-gray-400": boolean}} 11910 */ 11911 getInputStyles: function () { 11912 return { 11913 '!bg-gray-400': this.group.isEssential 11914 } 11915 }, 11916 11917 /** 11918 * @withContext x-for: $store.AmastyCookieGroups.groupData 11919 * @returns {void} 11920 */ 11921 toggleGroup: function () { 11922 this.group.checked = !this.group.checked; 11923 }, 11924 11925 /** 11926 * @withContext x-for: $store.AmastyCookieGroups.groupData 11927 * @returns {void} 11928 */ 11929 moreInfoClickHandler: function () { 11930 this.$dispatch(this.$el.dataset.dispatchAction, this.group); 11931 }, 11932 11933 moreInformationAboutCookieGroup: function () { 11934 return hyva.str('About\u0020\u0022\u00251\u0022\u0020Cookie\u0020Group', this.group.name); 11935 } 11936 } 11937 } 11938 11939 window.addEventListener( 11940 'alpine:init', 11941 () => Alpine.data('initAmCookieGroups', initAmCookieGroups), 11942 {once: true} 11943 ); 11944</script>
11944 11945<style> 11946 .is-loading > :not(.loader) { 11947 visibility: hidden; 11948 } 11949</style> 11950
11951<script> 11952 function connectifGetURLParameters(form) { 11953 let url = form.querySelector('.connectif-url').getAttribute('href'); 11954 const parsedUrl = new URL(url); 11955 11956 const params = new URLSearchParams(parsedUrl.search); 11957 11958 const paramsObject = {}; 11959 params.forEach((value, key) => { 11960 paramsObject[key] = decodeURIComponent(value); 11961 }); 11962 11963 return paramsObject; 11964 } 11965 11966 var addToCartAjaxEvent = function (e) { 11967 let form = this; 11968 let delay = parseInt('1000', 10); 11969 11970 e.preventDefault(); 11971 11972 const data = new URLSearchParams(new FormData(form)), 11973 button = form.querySelector('button') ? 11974 form.querySelector('button') : 11975 document.getElementById('product-addtocart-button'), 11976 loader = document.createElement('div'), 11977 initialText = button.innerHTML; 11978 11979 loader.className = 'absolute inset-0 flex justify-center items-center loader'; 11980 loader.innerHTML = ` 11981 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" xml:space="preserve" width="32" height="32"> 11982 <path fill="#333" d="M73 50c0-12.7-10.3-23-23-23S27 37.3 27 50m3.9 0c0-10.5 8.5-19.1 19.1-19.1S69.1 39.5 69.1 50"> 11983 <animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/> 11984 </path> 11985 </svg> 11986 `; 11987 11988 button.prepend(loader); 11989 button.classList.add('relative', 'is-loading', 'text-[0]'); 11990 button.disabled = true; 11991 11992 var product_id = data.get('product'); 11993 11994 fetch(e.currentTarget.action, { 11995 method: 'POST', 11996 body: data, 11997 headers: { 11998 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 11999 'X-Requested-With': 'XMLHttpRequest' 12000 } 12001 }) 12002 .then(res => { 12003 if (!res.ok) { 12004 return form.submit(); 12005 } 12006 12007 if (res.redirected) { 12008 return []; 12009 } 12010 12011 return res.json(); 12012 }) 12013 .then(data => { 12014 if (form.classList.contains('connectif-product')) { 12015 let jsonDecodedVAR = JSON.parse(connectifGetURLParameters(form)['cnWebLinkClicked']); 12016 jsonDecodedVAR.type = "web-link-clicked"; 12017 12018 window.connectif.managed.sendEvents([jsonDecodedVAR], []).finally(() => submitCallback()); 12019 } else { 12020 submitCallback(); 12021 } 12022 12023 function submitCallback() { 12024 if (data.backUrl && data.backUrl !== window.location.href) { 12025 form.submit(); 12026 } else { 12027 button.classList.add('bg-success-darker', 'hover:bg-success-darker'); 12028 loader.remove(); 12029 12030 let defaultChild = button.querySelector('.check'); 12031 if (!defaultChild) { 12032 button.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 17.45" class="w-6 h-6" width="24" height="24" role="img"> 12033 <path d="M7.75 17.46c-.68 0-1.34-.27-1.82-.76L.44 11.17a1.54 1.54 0 0 1 0-2.16c.58-.59 1.54-.6 2.13-.01l.01.01 5.17 5.2L21.42.44c.58-.59 1.54-.6 2.13-.01l.01.01c.59.6.59 1.56 0 2.16L9.57 16.7c-.48.49-1.13.76-1.82.76Z" style="fill:currentColor"/> 12034 <title>check</title></svg> 12035 `; 12036 } else { 12037 defaultChild.classList.add('hidden'); 12038 let addingChild = button.querySelector('.added'); 12039 if (addingChild) { 12040 addingChild.classList.remove('hidden'); 12041 } 12042 } 12043 12044 button.classList.remove('is-loading', 'text-[0]'); 12045 } 12046 12047 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 12048 } 12049 }) 12050 .catch(err => { 12051 window.dispatchEvent(new CustomEvent('product-addtocart-error')); 12052 12053 setMessage({ 12054 text:'There was a problem adding your item to the cart.', 12055 type: 'error' 12056 }); 12057 }) 12058 .finally(() => { 12059 try { 12060 var messages = hyva.getCookie('mage-messages'); 12061 messages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; 12062 document.cookie = 'mage-messages=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 12063 12064 } catch (error) { 12065 console.warn('Error parsing Cookie Messages:', error); 12066 return; 12067 } 12068 12069 setTimeout(() => { 12070 button.disabled = false;
12071 button.classList.remove('bg-success-darker', 'hover:bg-success-darker'); 12072 button.classList.remove('text-[0]'); 12073 12074 let defaultChild = button.querySelector('.default'); 12075 if (!defaultChild) { 12076 button.innerHTML = button.getAttribute("aria-label"); 12077 } else { 12078 defaultChild.classList.remove('hidden'); 12079 let addingChild = button.querySelector('.added'); 12080 if (addingChild) { 12081 addingChild.classList.add('hidden'); 12082 } 12083 } 12084 12085 button.innerHTML = initialText; 12086 12087 window.dispatchEvent(new CustomEvent('product-addtocart-success', { 12088 detail: { 12089 product_id: product_id, 12090 form_data: Object.fromEntries(new FormData(form)) 12091 } 12092 })); 12093 12094 messages.forEach(message => { 12095 setMessage(message); 12096 }); 12097 }, delay); 12098 }); 12099 }; 12100 12101 window.setAjaxCart = (selectors = '.product_addtocart_form:not(.no-ajax), #product_addtocart_form:not(.no-ajax)') => { 12102 const addToCartForms = document.querySelectorAll(selectors); 12103 12104 addToCartForms.forEach(form => { 12105 form.removeEventListener('submit', addToCartAjaxEvent); 12106 form.addEventListener('submit', addToCartAjaxEvent); 12107 }); 12108 } 12109 12110 /** 12111 * Set Message 12112 */ 12113 function setMessage(message) { 12114 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 12115 [message], 5000 12116 ); 12117 } 12118 12119 /** Init on pageload */ 12120 window.setAjaxCart(); 12121</script>
12121 12122
12122<script> 12123 function initAlgoliaInsights(partial) { 12124 window.algoliaAnalytics = AlgoliaAnalytics.default; 12125 window.hasAddedParameters = false; 12126 window.useCookie = algoliaConfig.cookieConfiguration.cookieRestrictionModeEnabled ? !!hyva.getCookie(algoliaConfig.cookieConfiguration.consentCookieName) : true; 12127 12128 if (!canTrack()) { 12129 return; 12130 } 12131 12132 initializeAnalytics(partial); 12133 addSearchParameters(); 12134 bindEvents(); 12135 12136 // Although events can accept both auth and anon tokens, queries can only accept a single token 12137 function determineUserToken() { 12138 return window.algoliaAnalytics.getAuthenticatedUserToken() ?? algoliaAnalytics.getUserToken(); 12139 } 12140 12141 function initializeAnalytics(partial = false) { 12142 if (partial) { 12143 algoliaAnalytics.init({ 12144 appId: algoliaConfig.applicationId, 12145 apiKey: algoliaConfig.apiKey, 12146 partial: true, 12147 useCookie: true, 12148 cookieDuration: Number(algoliaConfig.cookieConfiguration.cookieDuration) 12149 }); 12150 } else { 12151 algoliaAnalytics.init({ 12152 appId: algoliaConfig.applicationId, 12153 apiKey: algoliaConfig.apiKey, 12154 useCookie: true, 12155 cookieDuration: Number(algoliaConfig.cookieConfiguration.cookieDuration) 12156 }); 12157 } 12158 let userAgent = 'insights-js-in-magento (' + algoliaConfig.extensionVersion + ')'; 12159 window.algoliaAnalytics.addAlgoliaAgent(userAgent); 12160 12161 let unsetAuthenticationToken = hyva.getCookie('unset_authentication_token'); 12162 if (hyva.getCookie('aa-search') && hyva.getCookie('aa-search') !== '') { 12163 window.algoliaAnalytics.setUserToken(hyva.getCookie('aa-search')); 12164 } else if (hyva.getCookie('_ALGOLIA') && hyva.getCookie('_ALGOLIA') !== '') { 12165 window.algoliaAnalytics.setUserToken(hyva.getCookie('_ALGOLIA')); 12166 } else if (unsetAuthenticationToken && unsetAuthenticationToken !== '') { 12167 window.algoliaAnalytics.setUserToken('undefined'); 12168 hyva.setCookie('unset_authentication_token', '', -1); 12169 } 12170 } 12171 12172 function applyInsightsToSearchParams(params = {}) { 12173 if (algoliaConfig.ccAnalytics.enabled) { 12174 params.clickAnalytics = true; 12175 } 12176 12177 if (algoliaConfig.personalization.enabled) { 12178 params.enablePersonalization = true; 12179 params.userToken = determineUserToken(); 12180 } 12181 12182 return params; 12183 } 12184 12185 function addSearchParameters() { 12186 if (window.hasAddedParameters) { 12187 return; 12188 } 12189 algolia.registerHook('beforeWidgetInitialization', function (allWidgetConfiguration) { 12190 allWidgetConfiguration.configure = applyInsightsToSearchParams( 12191 allWidgetConfiguration.configure 12192 ); 12193 return allWidgetConfiguration; 12194 }); 12195 12196 algolia.registerHook('afterAutocompleteProductSourceOptions', (options) => { 12197 return applyInsightsToSearchParams(options); 12198 }); 12199 12200 window.hasAddedParameters = true; 12201 } 12202 12203 12204 function bindEvents() { 12205 bindClickedEvents(); 12206 bindViewedEvents(); 12207 12208 algolia.triggerHooks('afterInsightsBindEvents', this); 12209 } 12210 12211 function bindClickedEvents() { 12212 // Filter Clicked 12213 if (algoliaConfig.personalization.filterClicked.enabled) { 12214 const facets = algoliaConfig.facets; 12215 let containers = []; 12216 for (let i = 0; i < facets.length; i++) { 12217 let elem = createISWidgetContainer(facets[i].attribute); 12218 containers.push('.' + elem.className); 12219 } 12220 12221 algolia.registerHook('afterInstantsearchStart', function (search) { 12222 const selectors = document.querySelectorAll(containers.join(', '));
12223 selectors.forEach(function (e) { 12224 e.addEventListener('click', function (event) { 12225 const attribute = this.dataset.attr; 12226 const elem = event.target; 12227 if (elem.type === "checkbox" && elem.checked) { 12228 var filter = attribute + ':' + elem.value; 12229 trackFilterClick([filter]); 12230 } 12231 }); 12232 }); 12233 12234 return search; 12235 }); 12236 } 12237 } 12238 12239 function bindViewedEvents() { 12240 // viewed event is exclusive to personalization 12241 if (!algoliaConfig.personalization.enabled) { 12242 return; 12243 } 12244 12245 const viewConfig = algoliaConfig.personalization.viewedEvents.viewProduct; 12246 if (viewConfig.enabled) { 12247 if (document.body.classList.contains('catalog-product-view')) { 12248 const objectId = document.querySelector('#product_addtocart_form')?.querySelector('input[name="product"]').value; 12249 if (objectId) { 12250 const viewData = buildEventData(viewConfig.eventName, objectId, algoliaConfig.indexName + '_products'); 12251 trackView(viewData); 12252 } 12253 } 12254 12255 } 12256 } 12257 12258 function buildEventData(eventName, objectId, indexName, position = null, queryId = null) { 12259 const eventData = { 12260 eventName: eventName, 12261 objectIDs: [objectId + ''], 12262 index: indexName 12263 }; 12264 12265 if (position) { 12266 eventData.positions = [parseInt(position)]; 12267 } 12268 12269 if (queryId) { 12270 eventData.queryID = queryId; 12271 } 12272 12273 return eventData; 12274 } 12275 12276 function trackClick(eventData) { 12277 if (eventData.queryID) { 12278 window.algoliaAnalytics.clickedObjectIDsAfterSearch(eventData); 12279 } else { 12280 window.algoliaAnalytics.clickedObjectIDs(eventData); 12281 } 12282 } 12283 12284 function trackFilterClick(filters) { 12285 const eventData = { 12286 index: algoliaConfig.indexName + '_products', 12287 eventName: algoliaConfig.personalization.filterClicked.eventName, 12288 filters: filters 12289 }; 12290 12291 window.algoliaAnalytics.clickedFilters(eventData); 12292 } 12293 12294 function trackView(eventData) { 12295 window.algoliaAnalytics.viewedObjectIDs(eventData); 12296 } 12297 } 12298 12299 function canTrack() { 12300 return ((algoliaConfig.ccAnalytics.enabled 12301 || algoliaConfig.personalization.enabled) && window.useCookie); 12302 } 12303 12304 function buildInsightsEventData(eventName, objectId, indexName, position = null, queryId = null) { 12305 if (!canTrack()) { 12306 return; 12307 } 12308 12309 const eventData = { 12310 eventName: eventName, 12311 objectIDs: [objectId + ''], 12312 index: indexName 12313 }; 12314 if (position) { 12315 eventData.positions = [parseInt(position)]; 12316 } 12317 if (queryId) { 12318 eventData.queryID = queryId; 12319 } 12320 trackClick(eventData); 12321 } 12322 12323 function trackClick(eventData) { 12324 if (eventData.queryID) { 12325 window.algoliaAnalytics.clickedObjectIDsAfterSearch(eventData); 12326 } else { 12327 window.algoliaAnalytics.clickedObjectIDs(eventData); 12328 } 12329 } 12330</script>
12330 12331
12331<script> 12332 window.algoliaConfig = {"instant":{"enabled":true,"selector":".columns","isAddToCartEnabled":true,"addToCartParams":{"action":"https:\/\/www.farma.it\/checkout\/cart\/add\/","formKey":"Wl3baiXrIex1kcSB","redirectUrlParam":"uenc"},"infiniteScrollEnabled":false,"urlTrackedParameters":["query","attribute:*","index","page"],"isSearchBoxEnabled":true,"isVisualMerchEnabled":false,"categorySeparator":" \/\/\/ ","categoryPageIdAttribute":"categoryPageId","isCategoryNavigationEnabled":false,"hidePagination":false},"autocomplete":{"enabled":true,"selector":".algolia-search-input","sections":[{"name":"manufacturer","label":"Marchi","hitsPerPage":""}],"nbOfProductsSuggestions":5,"nbOfCategoriesSuggestions":4,"nbOfQueriesSuggestions":10,"isDebugEnabled":false,"isNavigatorEnabled":true,"debounceMilliseconds":300,"minimumCharacters":3},"landingPage":{"query":"","configuration":"[]"},"recommend":{"enabledFBT":false,"enabledRelated":false,"enabledFBTInCart":false,"enabledRelatedInCart":false,"enabledLookingSimilar":0,"limitFBTProducts":12,"limitRelatedProducts":12,"limitTrendingItems":12,"limitLookingSimilar":12,"enabledTrendItems":0,"trendItemFacetName":null,"trendItemFacetValue":null,"isTrendItemsEnabledInPDP":0,"isTrendItemsEnabledInCartPage":0,"isAddToCartEnabledInFBT":false,"isAddToCartEnabledInRelatedProduct":false,"isAddToCartEnabledInTrendsItem":false,"isAddToCartEnabledInLookingSimilar":false,"FBTTitle":"Frequently bought together","relatedProductsTitle":"Potrebbe interessarti anche","trendingItemsTitle":"Trending items","addToCartParams":{"action":"https:\/\/www.farma.it\/checkout\/cart\/add\/","formKey":"Wl3baiXrIex1kcSB","redirectUrlParam":"uenc"},"isLookingSimilarEnabledInPDP":0,"isLookingSimilarEnabledInCartPage":0,"lookingSimilarTitle":"Prodotti simili"},"extensionVersion":"3.15.3","applicationId":"ZMUZFC3VV1","indexName":"magento2_default","apiKey":"YmMzYTRkYmM5YTc3YmNjMzZiYmYyZmM4YTI5ZWM4NDE5YzBmODFlZDZhY2ZmYWZhZjI1YzNiYmQ3NDcwNzRiY3RhZ0ZpbHRlcnM9JnZhbGlkVW50aWw9MTc5MTY1NDU4OQ==","attributeFilter":[],"facets":[{"attribute":"manufacturer","type":"disjunctive","label":"Marchi","searchable":"1","create_rule":"2"},{"attribute":"price","type":"slider","label":"Prezzo","searchable":"1","create_rule":"2"},{"attribute":"categories","type":"disjunctive","label":"Categorie","searchable":"1","create_rule":"2"}],"areCategoriesInFacets":true,"hitsPerPage":20,"sortingIndices":[{"attribute":"price","sort":"asc","sortLabel":"Prezzo crescente","virtualReplica":"0","name":"magento2_default_products_price_default_asc","ranking":["asc(price.EUR.default)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Prezzo crescente"},{"attribute":"price","sort":"desc","sortLabel":"Prezzo decrescente","virtualReplica":"0","name":"magento2_default_products_price_default_desc","ranking":["desc(price.EUR.default)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Prezzo decrescente"},{"attribute":"created_at","sort":"desc","sortLabel":"Novit\u00e0","virtualReplica":"0","name":"magento2_default_products_created_at_desc","ranking":["desc(created_at)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Novit\u00e0"}],"isSearchPage":false,"isCategoryPage":false,"isLandingPage":false,"removeBranding":false,"productId":null,"priceKey":".EUR.default","priceGroup":null,"origFormatedVar":"price.EUR.default_original_formated","tierFormatedVar":"price.EUR.default_tier_formated","currencyCode":"EUR","currencySymbol":"\u20ac","priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":".","groupLength":3,"integerRequired":false},"maxValuesPerFacet":10,"autofocus":true,"resultPageUrl":"https:\/\/www.farma.it\/catalogsearch\/result\/","request":{"query":"","refinementKey":"","refinementValue":"","categoryId":"","landingPageId":"","path":"","level":"","parentCategory":"","childCategories":[],"url":"https:\/\/www.farma.it\/"},"showCatsNotIncludedInNavigation":false,"showSuggestionsOnNoResultsPage":true,"baseUrl":"https:\/\/www.farma.it","popularQueries":["bionike","magnesio","Euphidra","Svr","NUXE","fermenti lattici","Solari","filorga","dentifricio","neavita"],"useAdaptiveImage":false,"urls":{"logo":"https:\/\/www.farma.it\/static\/version1789421831\/frontend\/DNAFactory\/orlandi_hyva\/it_IT\/Algolia_AlgoliaSearch\/js\/images\/algolia-logo-blue.svg"},"cookieConfiguration":{"customerTokenCookie":"_ALGOLIA_MAGENTO_AUTH","consentCookieName":"user_allowed_save_cookie","cookieAllowButtonSelector":"#btn-cookie-allow","cookieRestrictionModeEnabled":false,"cookieDuration":"15552000000"},"ccAnalytics":{"enabled":true,"ISSelector":".ais-Hits-item a.result, .ais-InfiniteHits-item a.result","conversionAnalyticsMode":"all","addToCartSelector":".action.primary.tocart","orderedProductIds":[]},"isPersonalizationEnabled":true,"personalization":{"enabled":true,"viewedEvents":{"viewProduct":{"eventName":"Viewed Product","enabled":true,"method":"viewedObjectIDs"}},"clickedEvents":{"productClicked":{"eventName":"Product Clicked","enabled":true,"selector":".ais-Hits-item a.result, .ais-InfiniteHits-item a.result","method":"clickedObjectIDs"},"productRecommended":{"eventName":"Recommended Product Clicked","enabled":true,"selector":".products-upsell .product-item","method":"clickedObjectIDs"}},"filterClicked":{"eventName":"Filter Clicked","enabled":true,"method":"clickedFilters"}},"analytics":{"enabled":false,"delay":"3000","triggerOnUiInteraction":"1","pushInitialSearch":"0"},"now":1791504000,"queue":{"isEnabled":true,"nbOfJobsToRun":30,"retryLimit":3,"nbOfElementsPerIndexingJob":300},"isPreventBackendRenderingEnabled":false,"translations":{"to":"a","or":"o","go":"Go","popularQueries":"Puoi provare le seguenti ricerche popolari","seeAll":"Vedi tutti i prodotti","allDepartments":"All departments","seeIn":"See products in","orIn":"or in","noProducts":"Non abbiamo trovato nessun prodotto per questa ricerca","noResults":"Nessun risultato","refine":"Refine","selectedFilters":"Selected Filters","clearAll":"Clear all","previousPage":"Pagina precedente","nextPage":"Pagina successiva","searchFor":"Search for products","relevance":"Rilevanza","categories":"Categorie","products":"Prodotti","suggestions":"Suggestions","searchBy":"Search by","searchForFacetValuesPlaceholder":"Cerca","showMore":"Show more products","searchTitle":"Search results for","placeholder":"Search for products, categories, ...","addToCart":"Aggiungi al Carrello"}}; 12333 12334 let autocompleteInitialized = false;
12335 let commonInitialized = false; 12336 let insightsInitialized = false; 12337 12338 async function initAutocomplete() { 12339 if (autocompleteInitialized) { 12340 return 12341 } 12342 12343 autocompleteInitialized = true; 12344 Promise.all([ 12345 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/common.js"), 12346 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/base64.js"), 12347 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/algolia-instantsearch.min.js"), 12348 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/search-insights.min.js"), 12349 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/algolia-search.min.js"), 12350 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/algolia-autocomplete.min.js"), 12351 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/query-suggestions-plugin.min.js"), 12352 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/autocomplete.js"), 12353 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/template/autocomplete/additional-section.js"), 12354 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/template/autocomplete/categories.js"), 12355 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/template/autocomplete/pages.js"), 12356 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/template/autocomplete/products.js"), 12357 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/template/autocomplete/suggestions.js"), 12358 ] 12359 ).then(data => { 12360 initCommon(); 12361 initAlgoliaInsights(); 12362 initAlgoliaAutocomplete(); 12363 }); 12364 } 12365 12366 function initInstantSearch() { 12367 Promise.all([ 12368 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/common.js"), 12369 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/base64.js"), 12370 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/algolia-instantsearch.min.js"), 12371 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/search-insights.min.js"), 12372 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/hogan.min.js"), 12373 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/mustache.min.js"), 12374 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/template-engine.js"), 12375 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/instantsearch.js"), 12376 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/algolia-search.min.js"), 12377 ] 12378 ).then(data => { 12379 initCommon(); 12380 initAlgoliaInsights(); 12381 initAlgoliaInstantSearch(); 12382 }); 12383 } 12384 12385 function initRecommended(objectIds) { 12386 Promise.all([ 12387 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/common.js"),
12388 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/internals/base64.js"), 12389 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/algolia-instantsearch.min.js"), 12390 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/search-insights.min.js"), 12391 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/recommend.min.js"), 12392 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Algolia_AlgoliaSearch/js/lib/recommend-js.min.js"), 12393 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/recommend.js"), 12394 blackbird.loadExternalResource("https://www.farma.it/static/version1789421831/frontend/DNAFactory/orlandi_hyva/it_IT/Blackbird_HyvaAlgoliaSearch/js/template/recommend/products.js"), 12395 ] 12396 ).then(data => { 12397 initCommon(); 12398 initBase64(); 12399 initAlgoliaInsights(); 12400 initAlgoliaRecommended('cms_index_index', objectIds); 12401 }); 12402 } 12403 12404 function initCommon() { 12405 if (commonInitialized) { 12406 return 12407 } 12408 12409 commonInitialized = true 12410 initAlgoliaCommon(); 12411 initBase64(); 12412 window.dispatchEvent(new CustomEvent('algolia-loaded')); 12413 } 12414 12415 if (algoliaConfig.instant.enabled && (algoliaConfig.isCategoryPage || algoliaConfig.isSearchPage)) { 12416 initInstantSearch(); 12417 } 12418 12419 12420 12421 12422 let objectIds = [""]; 12423 12424 if (algoliaConfig.autocomplete.enabled) { 12425 document.getElementById('menu-search-icon').addEventListener('click', async () => { 12426 await initAutocomplete(); 12427 },{once: true}); 12428 } 12429 12430 window.addEventListener('init-algolia-trends', function () { 12431 initCommon(); 12432 initAlgoliaInsights(); 12433 window.dispatchEvent(new CustomEvent('init-algolia-trends-done')); 12434 }); 12435 12436 window.addEventListener('init-algolia-LS', function () { 12437 initCommon(); 12438 initAlgoliaInsights(); 12439 window.dispatchEvent(new CustomEvent('init-algolia-LS-done')); 12440 }); 12441 12442 window.addEventListener('user-allowed-save-cookie', function () { 12443 initAlgoliaInsights(true); 12444 }); 12445 </script>
12445 12446 12447<style> 12448 .algolia-ac-product-row .badge-container .badge { 12449 max-height: fit-content; 12450 margin: auto 0; 12451 } 12452 12453 @media (max-width: 768px) { 12454 .catalogsearch-result-index { 12455 #algolia-left-container { 12456 width: calc(100vw - 15px); 12457 left: -15px; 12458 padding-left: 15px; 12459 } 12460 12461 #algolia-left-container .filters { 12462 width: calc(50% - 15px); 12463 margin-top: 30px; 12464 } 12465 12466 #algolia-toolbar { 12467 top: -76px; 12468 width: calc(50% - 15px); 12469 } 12470 12471 #algolia-toolbar .flex.right { 12472 flex-direction: column; 12473 align-items: flex-end; 12474 width: 100%; 12475 font-weight: bold; 12476 } 12477 12478 #algolia-toolbar .flex.left { 12479 position: absolute; 12480 width: calc(93vw - var(--scrollbar-width)); 12481 top: -5px; 12482 left: calc((0% - 100vw + var(--scrollbar-width)) / 2); 12483 right: auto; 12484 } 12485 12486 #algolia-toolbar #algolia-sorts { 12487 width: 100%; 12488 } 12489 12490 #algolia-toolbar .ais-SortBy-select { 12491 background-color: white; 12492 font-weight: bold; 12493 padding-top: 0.375rem; 12494 padding-bottom: 0.375rem; 12495 padding-left: 0.75rem; 12496 padding-right: 1rem; 12497 width: 100%; 12498 border: 2px solid #6328e0; 12499 } 12500 12501 .ais-Stats-text > div { 12502 font-size: 16px; 12503 display: block; 12504 } 12505 } 12506 } 12507 12508 input[type="search"]::-webkit-search-decoration, 12509 input[type="search"]::-webkit-search-cancel-button, 12510 input[type="search"]::-webkit-search-results-button, 12511 input[type="search"]::-webkit-search-results-decoration { 12512 -webkit-appearance:none!important; 12513 } 12514 12515 .ais-Hits-banner-image { 12516 margin: auto!important; 12517 margin-bottom: 20px!important; 12518 } 12519</style>
12520<script> 12521 function initWishlist() { 12522 return { 12523 addToWishlist(productId) { 12524 const formKey = hyva.getFormKey(); 12525 const postUrl = BASE_URL + 'wishlist/index/add/'; 12526 12527 const params = new URLSearchParams({ 12528 form_key: formKey, 12529 product: productId, 12530 uenc: hyva.getUenc() 12531 }); 12532 12533 const form = document.getElementById(`product_addtocart_form_${productId}`); 12534 if (form) { 12535 new FormData(form).forEach((value, key) => params.set(key, value)); 12536 } 12537 12538 fetch(postUrl, { 12539 "headers": { 12540 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 12541 }, 12542 "body": params.toString(), 12543 "method": "POST", 12544 "mode": "cors", 12545 "credentials": "include" 12546 }).then(function (response) { 12547 if (response.redirected) { 12548 window.location.href = response.url; 12549 } else if (response.ok) { 12550 return response.json(); 12551 } else { 12552 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 12553 [{ 12554 type: "warning", 12555 text: "Could\u0020not\u0020add\u0020item\u0020to\u0020wishlist." 12556 }], 5000 12557 ); 12558 } 12559 }).then(function (response) { 12560 if (!response) { return } 12561 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 12562 [{ 12563 type: (response.success) ? "success" : "error", 12564 text: (response.success) 12565 ? "Prodotto\u0020\u00E8\u0020stato\u0020aggiunto\u0020nella\u0020tua\u0020lista\u0020desideri." 12566 : response.error_message 12567 }], 5000 12568 ); 12569 const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); 12570 window.dispatchEvent(reloadCustomerDataEvent); 12571 }).catch(function (error) { 12572 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 12573 [{ 12574 type: "error", 12575 text: error 12576 }], 5000 12577 ); 12578 }); 12579 } 12580 } 12581 } 12582</script>
vendor: 1 bytes, line 12582
12582
12583<script> 12584 window.addEventListener('algolia-loaded', () => { 12585 algolia.registerHook('afterAutocompleteStart', () => { 12586 document.querySelector('#algoliaAutocomplete input')?.focus(); 12587 }); 12588 },{ once: true}) 12589</script>
12589 12590
12590<script> 12591 window.addEventListener('algolia-loaded', () => { 12592 algolia.registerHook('beforeWidgetInitialization', (allWidgetConfiguration) => { 12593 const {currentRefinements} = allWidgetConfiguration; 12594 const originalTransformItems = currentRefinements.transformItems.bind(currentRefinements); 12595 currentRefinements.transformItems = (items) => { 12596 if (items.length !== 0) { 12597 document.getElementById('instant-search-active-filters').classList.remove('hidden'); 12598 document.getElementById('instant-search-active-filters-label').classList.remove('hidden'); 12599 } else { 12600 document.getElementById('instant-search-active-filters').classList.add('hidden'); 12601 document.getElementById('instant-search-active-filters-label').classList.add('hidden'); 12602 } 12603 return originalTransformItems(items); 12604 } 12605 return allWidgetConfiguration; 12606 }); 12607 },{ once: true}) 12608 </script>
12608 12609<div x-cloak x-data="{...initAmBanners()}" x-init="initBanners()"> 12610 12611<div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" 12612 style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgb(255 255 255/0.60);" 12613 x-show="isLoading" 12614 x-transition:enter="ease-out duration-200" 12615 x-transition:enter-start="opacity-0" 12616 x-transition:enter-end="opacity-100" 12617 x-transition:leave="ease-in duration-200" 12618 x-transition:leave-start="opacity-100" 12619 x-transition:leave-end="opacity-0"> 12620 <svg xmlns="http://www.w3.org/2000/svg" width="57" height="57" viewBox="0 0 38 38" stroke="#ffb590" class="text-primary" role="img"> 12621 <g fill="none" fill-rule="evenodd"> 12622 <g transform="translate(1 1)" stroke-width="2"> 12623 <circle stroke="#ff6801" cx="18" cy="18" r="18"/> 12624 <path d="M36 18c0-9.94-8.06-18-18-18"> 12625 <animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s" repeatCount="indefinite"/> 12626 </path> 12627 </g> 12628 </g> 12629<title>loader</title></svg> 12630</div> 12631</div>
12632<script> 12633 'use strict'; 12634 12635 function initAmBanners() { 12636 return { 12637 options: { 12638 sections: [], 12639 content: [], 12640 banners: [], 12641 injectorSectionId: null, 12642 injectorParams: {} 12643 }, 12644 isLoading: true, 12645 injectorResolver: {}, 12646 12647 initBanners: function () { 12648 this.options = {"sections":{"50":[37,103,127,50,128,117,90,67,54,6,41,40,21,13,7],"7":[62,61],"0":[58],"4":[10,9,8]},"content":{"37":"\n<div data-banner-id=\"37\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"https:\/\/wa.me\/447418640409\" aria-label=\"Promozione\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Whatsapp_BPP.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","103":"\n<div data-banner-id=\"103\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/resi-e-rimborsi2\" aria-label=\"Promozione\" title=\"Farmait 30092026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/reso_BPP.jpg\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","127":"\n<div data-banner-id=\"127\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-farmait\" aria-label=\"Promozione\" title=\"Farmait 01102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Solari_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","50":"\n<div data-banner-id=\"50\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-rilastil\" aria-label=\"Promozione\" title=\"Rilastil 05102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Rilastil_MUp_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","128":"\n<div data-banner-id=\"128\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-thermacare\" aria-label=\"Promozione\" title=\"Angelini 07102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/ThermaCare_BPP_04_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","117":"\n<div data-banner-id=\"117\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-menarini\" aria-label=\"Promozione\" title=\"Menarini 29092026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Menarini_BTW_BPP_09_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","90":"\n<div data-banner-id=\"90\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-prodeco4\" aria-label=\"Promozione\" title=\"Prodeco 07102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/InMood_BPP_09_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","67":"\n<div data-banner-id=\"67\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-haleon2\" aria-label=\"Promozione\" title=\"Haleon 02102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/BeTotal_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","62":"\n<div data-banner-id=\"62\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"https:\/\/www.salute.gov.it\/LogoCommercioElettronicoVET\/CercaSitoEComm?useMode=getDettaglio&VOLID=C016715&area=veterinari&id=5907&lingua=italiano&menu=vendite\" style=\"\r\n background-color: #efeff0;\r\n display: inline-block;\r\n border-radius: 1.2rem;\r\n padding: 8px;\r\n margin-top: 10px;\r\n\" target=\"_blank\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/VET-c21198a7.jpg\" class=\"rounded-lg\" alt=\"Garanzia Veterinari\" width=\"110\" \/>\r\n<\/a><\/div> <\/div>\n","61":"\n<div data-banner-id=\"61\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"https:\/\/www.salute.gov.it\/LogoCommercioElettronico\/CercaSitoEComm?useMode=getDettaglio&VOLID=C016715\" style=\"\r\n background-color: #efeff0;\r\n display: inline-block;\r\n border-radius: 1.2rem;\r\n padding: 8px;\r\n margin-top: 10px;\r\n\" target=\"_blank\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/farmacia-ab57f402.jpg\" class=\"rounded-lg\" alt=\"Garanzia Farmaci\" width=\"110\"\/>\r\n<\/a><\/div> <\/div>\n","58":"\n<div data-banner-id=\"58\">\n <style>#html-body [data-pb-style=YEJYU1X]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=G07EOKR]{margin-top:20px;border-style:none}#html-body [data-pb-style=FBDF4WI],#html-body [data-pb-style=XTES42W]{border-radius:5px;max-width:100%;height:auto}@media only screen and (max-width: 767px) { #html-body [data-pb-style=G07EOKR]{border-style:none} }<\/style><div data-content-type=\"row\" data-appearance=\"contained\" data-element=\"main\"><div data-enable-parallax=\"0\" data-parallax-speed=\"0.5\" data-background-images=\"{}\" data-background-type=\"image\" data-video-loop=\"true\" data-video-play-only-visible=\"true\" data-video-lazy-load=\"true\" data-video-fallback-src=\"\" data-element=\"inner\" data-pb-style=\"YEJYU1X\"><figure data-content-type=\"image\" data-appearance=\"full-width\" data-intersect=\"false\" data-element=\"main\" data-pb-style=\"G07EOKR\"><a href=\"#product-add-promo-284906\" target=\"\" data-link-type=\"default\" title=\"IMO 05102026 BannerCarrello\" data-element=\"link\"><img width=\"761\" height=\"80\" class=\"pagebuilder-mobile-hidden\" src=\"https:\/\/www.farma.it\/media\/wysiwyg\/VC15_Active_CartBD_10_26_1.png\" alt=\"IMO 05102026 BannerCarrello\" title=\"IMO 05102026 BannerCarrello\" loading=\"lazy\" data-element=\"desktop_image\" data-pb-style=\"XTES42W\"><img width=\"288\" height=\"164\" class=\"pagebuilder-mobile-only\" src=\"https:\/\/www.farma.it\/media\/wysiwyg\/VC15_Active_CartBM_10_26.png\" alt=\"IMO 05102026 BannerCarrello\" title=\"IMO 05102026 BannerCarrello\" loading=\"lazy\" data-element=\"mobile_image\" data-pb-style=\"FBDF4WI\"><\/a><\/figure><div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><form id=\"product-add-promo-284906\" method=\"post\" action=\"\/checkout\/cart\/add\/\">\r\n <input name=\"form_key\" type=\"hidden\" x-bind:value=\"hyva.getFormKey()\">\r\n <input name=\"uenc\" type=\"hidden\" x-bind:value=\"hyva.getUenc()\">\r\n <input name=\"product\" type=\"hidden\" value=\"284906\">\r\n<\/form>\r\n\r\n
12648<script>\r\n window.addEventListener('init-external-scripts',function () {\r\n document.querySelector('a[href*=\"#product-add-promo-284906\"]').addEventListener(\"click\", function(e) {\r\n e.preventDefault();\r\n document.getElementById(\"product-add-promo-284906\").submit();\r\n });\r\n });\r\n<\/script>\r\n<\/div><\/div><\/div> <\/div>\n","54":"\n<div data-banner-id=\"54\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-prodeco2\" aria-label=\"Promozione\" title=\"Prodeco 30092026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Relief_BPP_09_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","6":"\n<div data-banner-id=\"6\">\n <\/div>\n","41":"\n<div data-banner-id=\"41\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-boiron\" aria-label=\"Promozione\" title=\"Boiron 01102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Euphralia_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","40":"\n<div data-banner-id=\"40\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-kenvue3\" aria-label=\"Promozione\" title=\"Kenvue 05102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Neutrogena_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","21":"\n<div data-banner-id=\"21\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/promo-esi\" aria-label=\"Promozione\" title=\"Esi 05102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/ESI_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","13":"\n<div data-banner-id=\"13\">\n <div data-content-type=\"html\" data-appearance=\"default\" data-intersect=\"false\" data-element=\"main\" data-decoded=\"true\"><a href=\"\/prodotti-elanco\" aria-label=\"Promozione\" title=\"Elanco 08102026 BannerProductPage\">\r\n<img src=\"https:\/\/www.farma.it\/media\/wysiwyg\/banner_product_page\/Elanco_BPP_10_26.png\" alt=\"\" width=\"333\" height=\"189\" class=\"rounded-md mb-5\" \/>\r\n<\/a><\/div> <\/div>\n","10":"\n<div data-banner-id=\"10\">\n <\/div>\n","9":"\n<div data-banner-id=\"9\">\n <\/div>\n","8":"\n<div data-banner-id=\"8\">\n <\/div>\n","7":"\n<div data-banner-id=\"7\">\n <\/div>\n"},"injectorParams":{"containerSelector":".products-grid > .relative > .grid:not(.amasty-banner-items)","itemSelector":".products-grid > .relative > .grid:not(.amasty-banner-items) .product-item","banners":[]},"banners":[],"injectorSectionId":14}; 12649 this.injectorResolver = amBannerInjectorResolver?.(); 12650 12651 this.insertBanners(); 12652 this.isLoading = false; 12653 }, 12654 12655 insertBanners: function () { 12656 document.querySelectorAll('[data-role="amasty-banner-container"]').forEach((container) => { 12657 const sectionId = container.getAttribute('data-position'); 12658 12659 if (sectionId) { 12660 this.loadBannerBySection(sectionId, container); 12661 } else { 12662 this.loadBannerByBannerId(container); 12663 } 12664 }); 12665 }, 12666 12667 getBanners: function (bannerId) { 12668 if (this.options.banners.indexOf(bannerId) === -1) { 12669 return []; 12670 } 12671 const insertedBanner = this.banners.find((element) => { 12672 return element === bannerId; 12673 }); 12674 12675 return content[insertedBanner]; 12676 }, 12677 12678 getSectionBanners: function (section) { 12679 if (!(section in this.options.sections)) { 12680 return []; 12681 } 12682 12683 return this.options.sections[section].map((id) => { 12684 return this.options.content[id]; 12685 }); 12686 }, 12687 12688 loadBannerBySection: function (sectionId, container) {
12689 container.innerHTML = this.getSectionBanners(sectionId).join(''); 12690 this.injectorResolver?.resolve(sectionId, this.options.injectorParams); 12691 this.updateSection(`[data-role="amasty-banner-container"][data-position="${sectionId}"]`, container); 12692 }, 12693 12694 loadBannerByBannerId: function (container) { 12695 const bannerId = container.getAttribute('data-bannerid'); 12696 container.innerHTML = (this.getBanners(bannerId)); 12697 this.updateSection(`[data-role="amasty-banner-container"][data-bannerid="${bannerId}"]`, container); 12698 }, 12699 12700 updateSection: function(containerSelector, container) { 12701 hyva.replaceDomElement( 12702 containerSelector, 12703 container.innerHTML 12704 ); 12705 } 12706 } 12707 } 12708</script>
vendor: 1 bytes, line 12708
12708
12709<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","url":"https:\/\/www.farma.it\/","name":"Antica Farmacia Orlandi","potentialAction":{"@type":"SearchAction","target":"https:\/\/www.farma.it\/catalogsearch\/result\/?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
12709<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","url":"https:\/\/www.farma.it\/","name":"Farma.it","logo":"https:\/\/farma.it\/static\/frontend\/DNAFactory\/orlandi_hyva\/en_US\/images\/logo.svg","description":"Logo di farma.it","contactPoint":[{"@type":"ContactPoint","telephone":"+39 081 189 12 075","contactType":"sales"},{"@type":"ContactPoint","telephone":"+39 081 189 12 075","contactType":"customer service"}],"address":{"addressCountry":"IT","postalCode":"80147","addressRegion":"IT","addressLocality":"Napoli","streetAddress":"Via delle Repubbliche Marinare 128 Napoli NA"},"sameAs":["https:\/\/www.facebook.com\/farmapuntoit","https:\/\/www.instagram.com\/farma.it\/"]}</script>
12709<script type="text/json" id="default-section-data"> 12710 {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"AT":{"name":"Austria","regions":{"102":{"code":"BL","name":"Burgenland"},"99":{"code":"KN","name":"K\u00e4rnten"},"96":{"code":"NO","name":"Nieder\u00f6sterreich"},"97":{"code":"OO","name":"Ober\u00f6sterreich"},"98":{"code":"SB","name":"Salzburg"},"100":{"code":"ST","name":"Steiermark"},"101":{"code":"TI","name":"Tirol"},"103":{"code":"VB","name":"Vorarlberg"},"95":{"code":"WI","name":"Wien"}}},"BE":{"name":"Belgio","regions":{"620":{"code":"VAN","name":"Antwerpen"},"621":{"code":"WBR","name":"Brabant wallon"},"622":{"code":"BRU","name":"Brussels-Capital Region"},"623":{"code":"WHT","name":"Hainaut"},"625":{"code":"WLG","name":"Li\u00e8ge"},"624":{"code":"VLI","name":"Limburg"},"626":{"code":"WLX","name":"Luxembourg"},"627":{"code":"WNA","name":"Namur"},"628":{"code":"VOV","name":"Oost-Vlaanderen"},"629":{"code":"VBR","name":"Vlaams-Brabant"},"630":{"code":"VWV","name":"West-Vlaanderen"}}},"BG":{"name":"Bulgaria","regions":{"640":{"code":"BG-01","name":"Blagoevgrad"},"641":{"code":"BG-02","name":"Burgas"},"647":{"code":"BG-08","name":"Dobrich"},"646":{"code":"BG-07","name":"Gabrovo"},"665":{"code":"BG-26","name":"Haskovo"},"648":{"code":"BG-09","name":"Kardzhali"},"649":{"code":"BG-10","name":"Kyustendil"},"650":{"code":"BG-11","name":"Lovech"},"651":{"code":"BG-12","name":"Montana"},"652":{"code":"BG-13","name":"Pazardzhik"},"653":{"code":"BG-14","name":"Pernik"},"654":{"code":"BG-15","name":"Pleven"},"655":{"code":"BG-16","name":"Plovdiv"},"656":{"code":"BG-17","name":"Razgrad"},"657":{"code":"BG-18","name":"Ruse"},"666":{"code":"BG-27","name":"Shumen"},"658":{"code":"BG-19","name":"Silistra"},"659":{"code":"BG-20","name":"Sliven"},"660":{"code":"BG-21","name":"Smolyan"},"661":{"code":"BG-22","name":"Sofia City"},"662":{"code":"BG-23","name":"Sofia Province"},"663":{"code":"BG-24","name":"Stara Zagora"},"664":{"code":"BG-25","name":"Targovishte"},"642":{"code":"BG-03","name":"Varna"},"643":{"code":"BG-04","name":"Veliko Tarnovo"},"644":{"code":"BG-05","name":"Vidin"},"645":{"code":"BG-06","name":"Vratsa"},"667":{"code":"BG-28","name":"Yambol"}}},"CH":{"name":"Svizzera","regions":{"104":{"code":"AG","name":"Aargau"},"106":{"code":"AR","name":"Appenzell Ausserrhoden"},"105":{"code":"AI","name":"Appenzell Innerrhoden"},"108":{"code":"BL","name":"Basel-Landschaft"},"109":{"code":"BS","name":"Basel-Stadt"},"107":{"code":"BE","name":"Bern"},"110":{"code":"FR","name":"Friburg"},"111":{"code":"GE","name":"Geneva"},"112":{"code":"GL","name":"Glarus"},"113":{"code":"GR","name":"Graub\u00fcnden"},"114":{"code":"JU","name":"Jura"},"115":{"code":"LU","name":"Lucerne"},"116":{"code":"NE","name":"Neuch\u00e2tel"},"117":{"code":"NW","name":"Nidwalden"},"118":{"code":"OW","name":"Obwalden"},"120":{"code":"SH","name":"Schaffhausen"},"122":{"code":"SZ","name":"Schwyz"},"121":{"code":"SO","name":"Solothurn"},"119":{"code":"SG","name":"St. Gallen"},"123":{"code":"TG","name":"Thurgau"},"124":{"code":"TI","name":"Ticino"},"125":{"code":"UR","name":"Uri"},"126":{"code":"VD","name":"Vaud"},"127":{"code":"VS","name":"Wallis"},"128":{"code":"ZG","name":"Zug"},"129":{"code":"ZH","name":"Z\u00fcrich"}}},"CZ":{"name":"Repubblica Ceca","regions":{"752":{"code":"CZ-31","name":"Jiho\u010desk\u00fd kraj"},"760":{"code":"CZ-64","name":"Jihomoravsk\u00fd kraj"},"754":{"code":"CZ-41","name":"Karlovarsk\u00fd kraj"},"759":{"code":"CZ-63","name":"Kraj Vyso\u010dina"},"757":{"code":"CZ-52","name":"Kr\u00e1lov\u00e9hradeck\u00fd kraj"},"756":{"code":"CZ-51","name":"Libereck\u00fd kraj"},"763":{"code":"CZ-80","name":"Moravskoslezsk\u00fd kraj"},"761":{"code":"CZ-71","name":"Olomouck\u00fd kraj"},"758":{"code":"CZ-53","name":"Pardubick\u00fd kraj"},"753":{"code":"CZ-32","name":"Plze\u0148sk\u00fd kraj"},"750":{"code":"CZ-10","name":"Praha, Hlavn\u00ed m\u011bsto"},"751":{"code":"CZ-20","name":"St\u0159edo\u010desk\u00fd kraj"},"755":{"code":"CZ-42","name":"\u00dasteck\u00fd kraj"},"762":{"code":"CZ-72","name":"Zl\u00ednsk\u00fd kraj"}}},"DE":{"name":"Germania","regions":{"80":{"code":"BAW","name":"Baden-W\u00fcrttemberg"},"81":{"code":"BAY","name":"Bayern"},"82":{"code":"BER","name":"Berlin"},"83":{"code":"BRG","name":"Brandenburg"},"84":{"code":"BRE","name":"Bremen"},"85":{"code":"HAM","name":"Hamburg"},"86":{"code":"HES","name":"Hessen"},"87":{"code":"MEC","name":"Mecklenburg-Vorpommern"},"79":{"code":"NDS","name":"Niedersachsen"},"88":{"code":"NRW","name":"Nordrhein-Westfalen"},"89":{"code":"RHE","name":"Rheinland-Pfalz"},"90":{"code":"SAR","name":"Saarland"},"91":{"code":"SAS","name":"Sachsen"},"92":{"code":"SAC","name":"Sachsen-Anhalt"},"93":{"code":"SCN","name":"Schleswig-Holstein"},"94":{"code":"THE","name":"Th\u00fcringen"}}},"DK":{"name":"Danimarca","regions":{"764":{"code":"DK-84","name":"Hovedstaden"},"765":{"code":"DK-82","name":"Midtjylland"},"766":{"code":"DK-81","name":"Nordjylland"},"767":{"code":"DK-85","name":"Sj\u00e6lland"},"768":{"code":"DK-83","name":"Syddanmark"}}},"EE":{"name":"Estonia","regions":{"340":{"code":"EE-37","name":"Harjumaa"},"341":{"code":"EE-39","name":"Hiiumaa"},"342":{"code":"EE-44","name":"Ida-Virumaa"}
12710,"344":{"code":"EE-51","name":"J\u00e4rvamaa"},"343":{"code":"EE-49","name":"J\u00f5gevamaa"},"346":{"code":"EE-59","name":"L\u00e4\u00e4ne-Virumaa"},"345":{"code":"EE-57","name":"L\u00e4\u00e4nemaa"},"348":{"code":"EE-67","name":"P\u00e4rnumaa"},"347":{"code":"EE-65","name":"P\u00f5lvamaa"},"349":{"code":"EE-70","name":"Raplamaa"},"350":{"code":"EE-74","name":"Saaremaa"},"351":{"code":"EE-78","name":"Tartumaa"},"352":{"code":"EE-82","name":"Valgamaa"},"353":{"code":"EE-84","name":"Viljandimaa"},"354":{"code":"EE-86","name":"V\u00f5rumaa"}}},"ES":{"name":"Spagna","regions":{"130":{"code":"A Coru\u0441a","name":"A Coru\u00f1a"},"131":{"code":"Alava","name":"Alava"},"132":{"code":"Albacete","name":"Albacete"},"133":{"code":"Alicante","name":"Alicante"},"134":{"code":"Almeria","name":"Almeria"},"135":{"code":"Asturias","name":"Asturias"},"136":{"code":"Avila","name":"Avila"},"137":{"code":"Badajoz","name":"Badajoz"},"138":{"code":"Baleares","name":"Baleares"},"139":{"code":"Barcelona","name":"Barcelona"},"140":{"code":"Burgos","name":"Burgos"},"141":{"code":"Caceres","name":"Caceres"},"142":{"code":"Cadiz","name":"Cadiz"},"143":{"code":"Cantabria","name":"Cantabria"},"144":{"code":"Castellon","name":"Castellon"},"145":{"code":"Ceuta","name":"Ceuta"},"146":{"code":"Ciudad Real","name":"Ciudad Real"},"147":{"code":"Cordoba","name":"Cordoba"},"148":{"code":"Cuenca","name":"Cuenca"},"149":{"code":"Girona","name":"Girona"},"150":{"code":"Granada","name":"Granada"},"151":{"code":"Guadalajara","name":"Guadalajara"},"152":{"code":"Guipuzcoa","name":"Guipuzcoa"},"153":{"code":"Huelva","name":"Huelva"},"154":{"code":"Huesca","name":"Huesca"},"155":{"code":"Jaen","name":"Jaen"},"156":{"code":"La Rioja","name":"La Rioja"},"157":{"code":"Las Palmas","name":"Las Palmas"},"158":{"code":"Leon","name":"Leon"},"159":{"code":"Lleida","name":"Lleida"},"160":{"code":"Lugo","name":"Lugo"},"161":{"code":"Madrid","name":"Madrid"},"162":{"code":"Malaga","name":"Malaga"},"163":{"code":"Melilla","name":"Melilla"},"164":{"code":"Murcia","name":"Murcia"},"165":{"code":"Navarra","name":"Navarra"},"166":{"code":"Ourense","name":"Ourense"},"167":{"code":"Palencia","name":"Palencia"},"168":{"code":"Pontevedra","name":"Pontevedra"},"169":{"code":"Salamanca","name":"Salamanca"},"170":{"code":"Santa Cruz de Tenerife","name":"Santa Cruz de Tenerife"},"171":{"code":"Segovia","name":"Segovia"},"172":{"code":"Sevilla","name":"Sevilla"},"173":{"code":"Soria","name":"Soria"},"174":{"code":"Tarragona","name":"Tarragona"},"175":{"code":"Teruel","name":"Teruel"},"176":{"code":"Toledo","name":"Toledo"},"177":{"code":"Valencia","name":"Valencia"},"178":{"code":"Valladolid","name":"Valladolid"},"179":{"code":"Vizcaya","name":"Vizcaya"},"180":{"code":"Zamora","name":"Zamora"},"181":{"code":"Zaragoza","name":"Zaragoza"}}},"FI":{"name":"Finlandia","regions":{"339":{"code":"Ahvenanmaa","name":"Ahvenanmaa"},"333":{"code":"Etel\u00e4-Karjala","name":"Etel\u00e4-Karjala"},"326":{"code":"Etel\u00e4-Pohjanmaa","name":"Etel\u00e4-Pohjanmaa"},"325":{"code":"Etel\u00e4-Savo","name":"Etel\u00e4-Savo"},"337":{"code":"It\u00e4-Uusimaa","name":"It\u00e4-Uusimaa"},"322":{"code":"Kainuu","name":"Kainuu"},"335":{"code":"Kanta-H\u00e4me","name":"Kanta-H\u00e4me"},"330":{"code":"Keski-Pohjanmaa","name":"Keski-Pohjanmaa"},"331":{"code":"Keski-Suomi","name":"Keski-Suomi"},"338":{"code":"Kymenlaakso","name":"Kymenlaakso"},"320":{"code":"Lappi","name":"Lappi"},"334":{"code":"P\u00e4ij\u00e4t-H\u00e4me","name":"P\u00e4ij\u00e4t-H\u00e4me"},"328":{"code":"Pirkanmaa","name":"Pirkanmaa"},"327":{"code":"Pohjanmaa","name":"Pohjanmaa"},"323":{"code":"Pohjois-Karjala","name":"Pohjois-Karjala"},"321":{"code":"Pohjois-Pohjanmaa","name":"Pohjois-Pohjanmaa"},"324":{"code":"Pohjois-Savo","name":"Pohjois-Savo"},"329":{"code":"Satakunta","name":"Satakunta"},"336":{"code":"Uusimaa","name":"Uusimaa"},"332":{"code":"Varsinais-Suomi","name":"Varsinais-Suomi"}}},"FR":{"name":"Francia","regions":{"182":{"code":"1","name":"Ain"},"183":{"code":"2","name":"Aisne"},"184":{"code":"3","name":"Allier"}
12710,"185":{"code":"4","name":"Alpes-de-Haute-Provence"},"187":{"code":"6","name":"Alpes-Maritimes"},"188":{"code":"7","name":"Ard\u00e8che"},"189":{"code":"8","name":"Ardennes"},"190":{"code":"9","name":"Ari\u00e8ge"},"191":{"code":"10","name":"Aube"},"192":{"code":"11","name":"Aude"},"193":{"code":"12","name":"Aveyron"},"249":{"code":"67","name":"Bas-Rhin"},"194":{"code":"13","name":"Bouches-du-Rh\u00f4ne"},"195":{"code":"14","name":"Calvados"},"196":{"code":"15","name":"Cantal"},"197":{"code":"16","name":"Charente"},"198":{"code":"17","name":"Charente-Maritime"},"199":{"code":"18","name":"Cher"},"200":{"code":"19","name":"Corr\u00e8ze"},"201":{"code":"2A","name":"Corse-du-Sud"},"203":{"code":"21","name":"C\u00f4te-d'Or"},"204":{"code":"22","name":"C\u00f4tes-d'Armor"},"205":{"code":"23","name":"Creuse"},"261":{"code":"79","name":"Deux-S\u00e8vres"},"206":{"code":"24","name":"Dordogne"},"207":{"code":"25","name":"Doubs"},"208":{"code":"26","name":"Dr\u00f4me"},"273":{"code":"91","name":"Essonne"},"209":{"code":"27","name":"Eure"},"210":{"code":"28","name":"Eure-et-Loir"},"211":{"code":"29","name":"Finist\u00e8re"},"212":{"code":"30","name":"Gard"},"214":{"code":"32","name":"Gers"},"215":{"code":"33","name":"Gironde"},"250":{"code":"68","name":"Haut-Rhin"},"202":{"code":"2B","name":"Haute-Corse"},"213":{"code":"31","name":"Haute-Garonne"},"225":{"code":"43","name":"Haute-Loire"},"234":{"code":"52","name":"Haute-Marne"},"252":{"code":"70","name":"Haute-Sa\u00f4ne"},"256":{"code":"74","name":"Haute-Savoie"},"269":{"code":"87","name":"Haute-Vienne"},"186":{"code":"5","name":"Hautes-Alpes"},"247":{"code":"65","name":"Hautes-Pyr\u00e9n\u00e9es"},"274":{"code":"92","name":"Hauts-de-Seine"},"216":{"code":"34","name":"H\u00e9rault"},"217":{"code":"35","name":"Ille-et-Vilaine"},"218":{"code":"36","name":"Indre"},"219":{"code":"37","name":"Indre-et-Loire"},"220":{"code":"38","name":"Is\u00e8re"},"221":{"code":"39","name":"Jura"},"222":{"code":"40","name":"Landes"},"223":{"code":"41","name":"Loir-et-Cher"},"224":{"code":"42","name":"Loire"},"226":{"code":"44","name":"Loire-Atlantique"},"227":{"code":"45","name":"Loiret"},"228":{"code":"46","name":"Lot"},"229":{"code":"47","name":"Lot-et-Garonne"},"230":{"code":"48","name":"Loz\u00e8re"},"231":{"code":"49","name":"Maine-et-Loire"},"232":{"code":"50","name":"Manche"},"233":{"code":"51","name":"Marne"},"235":{"code":"53","name":"Mayenne"},"236":{"code":"54","name":"Meurthe-et-Moselle"},"237":{"code":"55","name":"Meuse"},"238":{"code":"56","name":"Morbihan"},"239":{"code":"57","name":"Moselle"},"240":{"code":"58","name":"Ni\u00e8vre"},"241":{"code":"59","name":"Nord"},"242":{"code":"60","name":"Oise"},"243":{"code":"61","name":"Orne"},"257":{"code":"75","name":"Paris"},"244":{"code":"62","name":"Pas-de-Calais"},"245":{"code":"63","name":"Puy-de-D\u00f4me"},"246":{"code":"64","name":"Pyr\u00e9n\u00e9es-Atlantiques"},"248":{"code":"66","name":"Pyr\u00e9n\u00e9es-Orientales"},"251":{"code":"69","name":"Rh\u00f4ne"},"253":{"code":"71","name":"Sa\u00f4ne-et-Loire"},"254":{"code":"72","name":"Sarthe"},"255":{"code":"73","name":"Savoie"},"259":{"code":"77","name":"Seine-et-Marne"},"258":{"code":"76","name":"Seine-Maritime"},"275":{"code":"93","name":"Seine-Saint-Denis"},"262":{"code":"80","name":"Somme"},"263":{"code":"81","name":"Tarn"},"264":{"code":"82","name":"Tarn-et-Garonne"},"272":{"code":"90","name":"Territoire-de-Belfort"},"277":{"code":"95","name":"Val-d'Oise"},"276":{"code":"94","name":"Val-de-Marne"},"265":{"code":"83","name":"Var"},"266":{"code":"84","name":"Vaucluse"},"267":{"code":"85","name":"Vend\u00e9e"},"268":{"code":"86","name":"Vienne"},"270":{"code":"88","name":"Vosges"},"271":{"code":"89","name":"Yonne"},"260":{"code":"78","name":"Yvelines"}}},"GR":{"name":"Grecia","regions":{"806":{"code":"GR-69","name":"\u00c1gion \u00d3ros"},"793":{"code":"GR-A","name":"Anatolik\u00ed Makedon\u00eda kai Thr\u00e1ki"},"794":{"code":"GR-I","name":"Attik\u00ed"},"795":{"code":"GR-G","name":"Dytik\u00ed Ell\u00e1da"},"796":{"code":"GR-C","name":"Dytik\u00ed Makedon\u00eda"},"797":{"code":"GR-F","name":"Ion\u00eda N\u00edsia"},"798":{"code":"GR-D","name":"\u00cdpeiros"},"799":{"code":"GR-B","name":"Kentrik\u00ed Makedon\u00eda"},"800":{"code":"GR-M","name":"Kr\u00edti"},"801":{"code":"GR-L","name":"N\u00f3tio Aiga\u00edo"},"802":{"code":"GR-J","name":"Pelop\u00f3nnisos"},"803":{"code":"GR-H","name":"Stere\u00e1 Ell\u00e1da"}
12710,"804":{"code":"GR-E","name":"Thessal\u00eda"},"805":{"code":"GR-K","name":"V\u00f3reio Aiga\u00edo"}}},"HR":{"name":"Croazia","regions":{"554":{"code":"HR-07","name":"Bjelovarsko-bilogorska \u017eupanija"},"559":{"code":"HR-12","name":"Brodsko-posavska \u017eupanija"},"566":{"code":"HR-19","name":"Dubrova\u010dko-neretvanska \u017eupanija"},"568":{"code":"HR-21","name":"Grad Zagreb"},"565":{"code":"HR-18","name":"Istarska \u017eupanija"},"551":{"code":"HR-04","name":"Karlova\u010dka \u017eupanija"},"553":{"code":"HR-06","name":"Koprivni\u010dko-kri\u017eeva\u010dka \u017eupanija"},"549":{"code":"HR-02","name":"Krapinsko-zagorska \u017eupanija"},"556":{"code":"HR-09","name":"Li\u010dko-senjska \u017eupanija"},"567":{"code":"HR-20","name":"Me\u0111imurska \u017eupanija"},"561":{"code":"HR-14","name":"Osje\u010dko-baranjska \u017eupanija"},"558":{"code":"HR-11","name":"Po\u017ee\u0161ko-slavonska \u017eupanija"},"555":{"code":"HR-08","name":"Primorsko-goranska \u017eupanija"},"562":{"code":"HR-15","name":"\u0160ibensko-kninska \u017eupanija"},"550":{"code":"HR-03","name":"Sisa\u010dko-moslava\u010dka \u017eupanija"},"564":{"code":"HR-17","name":"Splitsko-dalmatinska \u017eupanija"},"552":{"code":"HR-05","name":"Vara\u017edinska \u017eupanija"},"557":{"code":"HR-10","name":"Viroviti\u010dko-podravska \u017eupanija"},"563":{"code":"HR-16","name":"Vukovarsko-srijemska \u017eupanija"},"560":{"code":"HR-13","name":"Zadarska \u017eupanija"},"548":{"code":"HR-01","name":"Zagreba\u010dka \u017eupanija"}}},"HU":{"name":"Ungheria"},"IE":{"name":"Irlanda"},"IT":{"name":"Italia","regions":{"825":{"code":"AG","name":"Agrigento"},"826":{"code":"AL","name":"Alessandria"},"827":{"code":"AN","name":"Ancona"},"828":{"code":"AO","name":"Aosta"},"830":{"code":"AR","name":"Arezzo"},"831":{"code":"AP","name":"Ascoli-Piceno"},"832":{"code":"AT","name":"Asti"},"833":{"code":"AV","name":"Avellino"},"834":{"code":"BA","name":"Bari"},"835":{"code":"BT","name":"Barletta-Andria-Trani"},"836":{"code":"BL","name":"Belluno"},"837":{"code":"BN","name":"Benevento"},"838":{"code":"BG","name":"Bergamo"},"839":{"code":"BI","name":"Biella"},"840":{"code":"BO","name":"Bologna"},"841":{"code":"BZ","name":"Bolzano"},"842":{"code":"BS","name":"Brescia"},"843":{"code":"BR","name":"Brindisi"},"844":{"code":"CA","name":"Cagliari"},"845":{"code":"CL","name":"Caltanissetta"},"846":{"code":"CB","name":"Campobasso"},"847":{"code":"CI","name":"Carbonia Iglesias"},"848":{"code":"CE","name":"Caserta"},"849":{"code":"CT","name":"Catania"},"850":{"code":"CZ","name":"Catanzaro"},"851":{"code":"CH","name":"Chieti"},"852":{"code":"CO","name":"Como"},"853":{"code":"CS","name":"Cosenza"},"854":{"code":"CR","name":"Cremona"},"855":{"code":"KR","name":"Crotone"},"856":{"code":"CN","name":"Cuneo"},"857":{"code":"EN","name":"Enna"},"858":{"code":"FM","name":"Fermo"},"859":{"code":"FE","name":"Ferrara"},"860":{"code":"FI","name":"Firenze"},"861":{"code":"FG","name":"Foggia"},"862":{"code":"FC","name":"Forli-Cesena"},"863":{"code":"FR","name":"Frosinone"},"864":{"code":"GE","name":"Genova"},"865":{"code":"GO","name":"Gorizia"},"866":{"code":"GR","name":"Grosseto"},"867":{"code":"IM","name":"Imperia"},"868":{"code":"IS","name":"Isernia"},"829":{"code":"AQ","name":"L'Aquila"},"869":{"code":"SP","name":"La-Spezia"},"870":{"code":"LT","name":"Latina"},"871":{"code":"LE","name":"Lecce"},"872":{"code":"LC","name":"Lecco"},"873":{"code":"LI","name":"Livorno"},"874":{"code":"LO","name":"Lodi"},"875":{"code":"LU","name":"Lucca"},"876":{"code":"MC","name":"Macerata"},"877":{"code":"MN","name":"Mantova"},"878":{"code":"MS","name":"Massa-Carrara"},"879":{"code":"MT","name":"Matera"},"880":{"code":"VS","name":"Medio Campidano"},"881":{"code":"ME","name":"Messina"},"882":{"code":"MI","name":"Milano"},"883":{"code":"MO","name":"Modena"},"884":{"code":"MB","name":"Monza-Brianza"},"885":{"code":"NA","name":"Napoli"},"886":{"code":"NO","name":"Novara"},"887":{"code":"NU","name":"Nuoro"},"888":{"code":"OG","name":"Ogliastra"},"889":{"code":"OT","name":"Olbia Tempio"},"890":{"code":"OR","name":"Oristano"},"891":{"code":"PD","name":"Padova"},"892":{"code":"PA","name":"Palermo"},"893":{"code":"PR","name":"Parma"},"894":{"code":"PV","name":"Pavia"},"895":{"code":"PG","name":"Perugia"},"896":{"code":"PU","name":"Pesaro-Urbino"},"897":{"code":"PE","name":"Pescara"},"898":{"code":"PC","name":"Piacenza"},"899":{"code":"PI","name":"Pisa"},"900":{"code":"PT","name":"Pistoia"},"901":{"code":"PN","name":"Pordenone"},"902":{"code":"PZ","name":"Potenza"},"903":{"code":"PO","name":"Prato"},"904":{"code":"RG","name":"Ragusa"},"905":{"code":"RA","name":"Ravenna"},"906":{"code":"RC","name":"Reggio-Calabria"},"907":{"code":"RE","name":"Reggio-Emilia"},"908":{"code":"RI","name":"Rieti"},"909":{"code":"RN","name":"Rimini"},"910":{"code":"RM","name":"Roma"},"911":{"code":"RO","name":"Rovigo"},"912":{"code":"SA","name":"Salerno"},"913":{"code":"SS","name":"Sassari"},"914":{"code":"SV","name":"Savona"},"915":{"code":"SI","name":"Siena"},"916":{"code":"SR","name":"Siracusa"},"917":{"code":"SO","name":"Sondrio"},"918":{"code":"TA","name":"Taranto"},"919":{"code":"TE","name":"Teramo"},"920":{"code":"TR","name":"Terni"},"921":{"code":"TO","name":"Torino"},"922":{"code":"TP","name":"Trapani"},"923":{"code":"TN","name":"Trento"},"924":{"code":"TV","name":"Treviso"},"925":{"code":"TS","name":"Trieste"},"926":{"code":"UD","name":"Udine"},"927":{"code":"VA","name":"Varese"},"928":{"code":"VE","name":"Venezia"},"929":{"code":"VB","name":"Verbania"},"930":{"code":"VC","name":"Vercelli"},"931":{"code":"VR","name":"Verona"}
12710,"932":{"code":"VV","name":"Vibo-Valentia"},"933":{"code":"VI","name":"Vicenza"},"934":{"code":"VT","name":"Viterbo"}}},"LT":{"name":"Lituania","regions":{"475":{"code":"LT-AL","name":"Alytaus Apskritis"},"476":{"code":"LT-KU","name":"Kauno Apskritis"},"477":{"code":"LT-KL","name":"Klaip\u0117dos Apskritis"},"478":{"code":"LT-MR","name":"Marijampol\u0117s Apskritis"},"479":{"code":"LT-PN","name":"Panev\u0117\u017eio Apskritis"},"480":{"code":"LT-SA","name":"\u0160iauli\u0173 Apskritis"},"481":{"code":"LT-TA","name":"Taurag\u0117s Apskritis"},"482":{"code":"LT-TE","name":"Tel\u0161i\u0173 Apskritis"},"483":{"code":"LT-UT","name":"Utenos Apskritis"},"484":{"code":"LT-VL","name":"Vilniaus Apskritis"}}},"LU":{"name":"Lussemburgo"},"LV":{"name":"Lettonia","regions":{"471":{"code":"\u0100da\u017eu novads","name":"\u0100da\u017eu novads"},"366":{"code":"Aglonas novads","name":"Aglonas novads"},"367":{"code":"LV-AI","name":"Aizkraukles novads"},"368":{"code":"Aizputes novads","name":"Aizputes novads"},"369":{"code":"Akn\u012bstes novads","name":"Akn\u012bstes novads"},"370":{"code":"Alojas novads","name":"Alojas novads"},"371":{"code":"Alsungas novads","name":"Alsungas novads"},"372":{"code":"LV-AL","name":"Al\u016bksnes novads"},"373":{"code":"Amatas novads","name":"Amatas novads"},"374":{"code":"Apes novads","name":"Apes novads"},"375":{"code":"Auces novads","name":"Auces novads"},"376":{"code":"Bab\u012btes novads","name":"Bab\u012btes novads"},"377":{"code":"Baldones novads","name":"Baldones novads"},"378":{"code":"Baltinavas novads","name":"Baltinavas novads"},"379":{"code":"LV-BL","name":"Balvu novads"},"380":{"code":"LV-BU","name":"Bauskas novads"},"381":{"code":"Bever\u012bnas novads","name":"Bever\u012bnas novads"},"382":{"code":"Broc\u0113nu novads","name":"Broc\u0113nu novads"},"383":{"code":"Burtnieku novads","name":"Burtnieku novads"},"384":{"code":"Carnikavas novads","name":"Carnikavas novads"},"387":{"code":"LV-CE","name":"C\u0113su novads"},"385":{"code":"Cesvaines novads","name":"Cesvaines novads"},"386":{"code":"Ciblas novads","name":"Ciblas novads"},"388":{"code":"Dagdas novads","name":"Dagdas novads"},"355":{"code":"LV-DGV","name":"Daugavpils"},"389":{"code":"LV-DA","name":"Daugavpils novads"},"390":{"code":"LV-DO","name":"Dobeles novads"},"391":{"code":"Dundagas novads","name":"Dundagas novads"},"392":{"code":"Durbes novads","name":"Durbes novads"},"393":{"code":"Engures novads","name":"Engures novads"},"472":{"code":"\u0112rg\u013cu novads","name":"\u0112rg\u013cu novads"},"394":{"code":"Garkalnes novads","name":"Garkalnes novads"},"395":{"code":"Grobi\u0146as novads","name":"Grobi\u0146as novads"},"396":{"code":"LV-GU","name":"Gulbenes novads"},"397":{"code":"Iecavas novads","name":"Iecavas novads"},"398":{"code":"Ik\u0161\u0137iles novads","name":"Ik\u0161\u0137iles novads"},"399":{"code":"Il\u016bkstes novads","name":"Il\u016bkstes novads"},"400":{"code":"In\u010dukalna novads","name":"In\u010dukalna novads"},"401":{"code":"Jaunjelgavas novads","name":"Jaunjelgavas novads"},"402":{"code":"Jaunpiebalgas novads","name":"Jaunpiebalgas novads"},"403":{"code":"Jaunpils novads","name":"Jaunpils novads"},"357":{"code":"J\u0113kabpils","name":"J\u0113kabpils"},"405":{"code":"LV-JK","name":"J\u0113kabpils novads"},"356":{"code":"LV-JEL","name":"Jelgava"},"404":{"code":"LV-JL","name":"Jelgavas novads"},"358":{"code":"LV-JUR","name":"J\u016brmala"},"406":{"code":"Kandavas novads","name":"Kandavas novads"},"412":{"code":"K\u0101rsavas novads","name":"K\u0101rsavas novads"},"473":{"code":"\u0136eguma novads","name":"\u0136eguma novads"},"474":{"code":"\u0136ekavas novads","name":"\u0136ekavas novads"},"407":{"code":"Kokneses novads","name":"Kokneses novads"},"410":{"code":"LV-KR","name":"Kr\u0101slavas novads"},"408":{"code":"Krimuldas novads","name":"Krimuldas novads"},"409":{"code":"Krustpils novads","name":"Krustpils novads"},"411":{"code":"LV-KU","name":"Kuld\u012bgas novads"},"413":{"code":"Lielv\u0101rdes novads","name":"Lielv\u0101rdes novads"},"359":{"code":"LV-LPX","name":"Liep\u0101ja"},"360":{"code":"LV-LE","name":"Liep\u0101jas novads"},"417":{"code":"L\u012bgatnes novads","name":"L\u012bgatnes novads"},"414":{"code":"LV-LM","name":"Limba\u017eu novads"},"418":{"code":"L\u012bv\u0101nu novads","name":"L\u012bv\u0101nu novads"},"415":{"code":"Lub\u0101nas novads","name":"Lub\u0101nas novads"},"416":{"code":"LV-LU","name":"Ludzas novads"},"419":{"code":"LV-MA","name":"Madonas novads"},"421":{"code":"M\u0101lpils novads","name":"M\u0101lpils novads"},"422":{"code":"M\u0101rupes novads","name":"M\u0101rupes novads"},"420":{"code":"Mazsalacas novads","name":"Mazsalacas novads"},"423":{"code":"Nauk\u0161\u0113nu novads","name":"Nauk\u0161\u0113nu novads"},"424":{"code":"Neretas novads","name":"Neretas novads"},"425":{"code":"N\u012bcas novads","name":"N\u012bcas novads"},"426":{"code":"LV-OG","name":"Ogres novads"},"427":{"code":"Olaines novads","name":"Olaines novads"},"428":{"code":"Ozolnieku novads","name":"Ozolnieku novads"},"432":{"code":"P\u0101rgaujas novads","name":"P\u0101rgaujas novads"},"433":{"code":"P\u0101vilostas novads","name":"P\u0101vilostas novads"},"434":{"code":"P\u013cavi\u0146u novads","name":"P\u013cavi\u0146u novads"},"429":{"code":"LV-PR","name":"Prei\u013cu novads"},"430":{"code":"Priekules novads","name":"Priekules novads"},"431":{"code":"Prieku\u013cu novads","name":"Prieku\u013cu novads"},"435":{"code":"Raunas novads","name":"Raunas novads"},"361":{"code":"LV-REZ","name":"R\u0113zekne"},"442":{"code":"LV-RE","name":"R\u0113zeknes novads"},"436":{"code":"Riebi\u0146u novads","name":"Riebi\u0146u novads"},"362":{"code":"LV-RIX","name":"R\u012bga"},"363":{"code":"LV-RI","name":"R\u012bgas novads"},"437":{"code":"Rojas novads","name":"Rojas novads"},"438":{"code":"Ropa\u017eu novads","name":"Ropa\u017eu novads"},"439":{"code":"Rucavas novads","name":"Rucavas novads"},"440":{"code":"Rug\u0101ju novads","name":"Rug\u0101ju novads"},"443":{"code":"R\u016bjienas novads","name":"R\u016bjienas novads"},"441":{"code":"Rund\u0101les novads","name":"Rund\u0101les novads"},"444":{"code":"Salacgr\u012bvas novads","name":"Salacgr\u012bvas novads"},"445":{"code":"Salas novads","name":"Salas novads"},"446":{"code":"Salaspils novads","name":"Salaspils novads"},"447":{"code":"LV-SA","name":"Saldus novads"},"448":{"code":"Saulkrastu novads","name":"Saulkrastu novads"},"455":{"code":"S\u0113jas novads","name":"S\u0113jas novads"},"449":{"code":"Siguldas novads","name":"Siguldas novads"}
12710,"451":{"code":"Skr\u012bveru novads","name":"Skr\u012bveru novads"},"450":{"code":"Skrundas novads","name":"Skrundas novads"},"452":{"code":"Smiltenes novads","name":"Smiltenes novads"},"453":{"code":"Stopi\u0146u novads","name":"Stopi\u0146u novads"},"454":{"code":"Stren\u010du novads","name":"Stren\u010du novads"},"456":{"code":"LV-TA","name":"Talsu novads"},"458":{"code":"T\u0113rvetes novads","name":"T\u0113rvetes novads"},"457":{"code":"LV-TU","name":"Tukuma novads"},"459":{"code":"Vai\u0146odes novads","name":"Vai\u0146odes novads"},"460":{"code":"LV-VK","name":"Valkas novads"},"364":{"code":"Valmiera","name":"Valmiera"},"461":{"code":"LV-VM","name":"Valmieras novads"},"462":{"code":"Varak\u013c\u0101nu novads","name":"Varak\u013c\u0101nu novads"},"469":{"code":"V\u0101rkavas novads","name":"V\u0101rkavas novads"},"463":{"code":"Vecpiebalgas novads","name":"Vecpiebalgas novads"},"464":{"code":"Vecumnieku novads","name":"Vecumnieku novads"},"365":{"code":"LV-VEN","name":"Ventspils"},"465":{"code":"LV-VE","name":"Ventspils novads"},"466":{"code":"Vies\u012btes novads","name":"Vies\u012btes novads"},"467":{"code":"Vi\u013cakas novads","name":"Vi\u013cakas novads"},"468":{"code":"Vi\u013c\u0101nu novads","name":"Vi\u013c\u0101nu novads"},"470":{"code":"Zilupes novads","name":"Zilupes novads"}}},"MC":{"name":"Monaco"},"NL":{"name":"Paesi Bassi"},"PL":{"name":"Polonia","regions":{"1011":{"code":"PL-02","name":"dolno\u015bl\u0105skie"},"1012":{"code":"PL-04","name":"kujawsko-pomorskie"},"1013":{"code":"PL-06","name":"lubelskie"},"1014":{"code":"PL-08","name":"lubuskie"},"1017":{"code":"PL-14","name":"mazowieckie"},"1016":{"code":"PL-12","name":"ma\u0142opolskie"},"1018":{"code":"PL-16","name":"opolskie"},"1019":{"code":"PL-18","name":"podkarpackie"},"1020":{"code":"PL-20","name":"podlaskie"},"1021":{"code":"PL-22","name":"pomorskie"},"1022":{"code":"PL-24","name":"\u015bl\u0105skie"},"1023":{"code":"PL-26","name":"\u015bwi\u0119tokrzyskie"},"1024":{"code":"PL-28","name":"warmi\u0144sko-mazurskie"},"1025":{"code":"PL-30","name":"wielkopolskie"},"1026":{"code":"PL-32","name":"zachodniopomorskie"},"1015":{"code":"PL-10","name":"\u0142\u00f3dzkie"}}},"PT":{"name":"Portogallo","regions":{"1027":{"code":"PT-01","name":"Aveiro"},"1028":{"code":"PT-02","name":"Beja"},"1029":{"code":"PT-03","name":"Braga"},"1030":{"code":"PT-04","name":"Bragan\u00e7a"},"1031":{"code":"PT-05","name":"Castelo Branco"},"1032":{"code":"PT-06","name":"Coimbra"},"1033":{"code":"PT-07","name":"\u00c9vora"},"1034":{"code":"PT-08","name":"Faro"},"1035":{"code":"PT-09","name":"Guarda"},"1036":{"code":"PT-10","name":"Leiria"},"1037":{"code":"PT-11","name":"Lisboa"},"1038":{"code":"PT-12","name":"Portalegre"},"1039":{"code":"PT-13","name":"Porto"},"1046":{"code":"PT-30","name":"Regi\u00e3o Aut\u00f3noma da Madeira"},"1045":{"code":"PT-20","name":"Regi\u00e3o Aut\u00f3noma dos A\u00e7ores"},"1040":{"code":"PT-14","name":"Santar\u00e9m"},"1041":{"code":"PT-15","name":"Set\u00fabal"},"1042":{"code":"PT-16","name":"Viana do Castelo"},"1043":{"code":"PT-17","name":"Vila Real"},"1044":{"code":"PT-18","name":"Viseu"}}},"RO":{"name":"Romania","regions":{"278":{"code":"AB","name":"Alba"},"279":{"code":"AR","name":"Arad"},"280":{"code":"AG","name":"Arge\u015f"},"281":{"code":"BC","name":"Bac\u0103u"},"282":{"code":"BH","name":"Bihor"},"283":{"code":"BN","name":"Bistri\u0163a-N\u0103s\u0103ud"},"284":{"code":"BT","name":"Boto\u015fani"},"286":{"code":"BR","name":"Br\u0103ila"},"285":{"code":"BV","name":"Bra\u015fov"},"287":{"code":"B","name":"Bucure\u015fti"},"288":{"code":"BZ","name":"Buz\u0103u"},"290":{"code":"CL","name":"C\u0103l\u0103ra\u015fi"},"289":{"code":"CS","name":"Cara\u015f-Severin"},"291":{"code":"CJ","name":"Cluj"},"292":{"code":"CT","name":"Constan\u0163a"},"293":{"code":"CV","name":"Covasna"},"294":{"code":"DB","name":"D\u00e2mbovi\u0163a"},"295":{"code":"DJ","name":"Dolj"},"296":{"code":"GL","name":"Gala\u0163i"},"297":{"code":"GR","name":"Giurgiu"},"298":{"code":"GJ","name":"Gorj"},"299":{"code":"HR","name":"Harghita"},"300":{"code":"HD","name":"Hunedoara"},"301":{"code":"IL","name":"Ialomi\u0163a"},"302":{"code":"IS","name":"Ia\u015fi"},"303":{"code":"IF","name":"Ilfov"},"304":{"code":"MM","name":"Maramure\u015f"},"305":{"code":"MH","name":"Mehedin\u0163i"},"306":{"code":"MS","name":"Mure\u015f"},"307":{"code":"NT","name":"Neam\u0163"},"308":{"code":"OT","name":"Olt"},"309":{"code":"PH","name":"Prahova"},"311":{"code":"SJ","name":"S\u0103laj"},"310":{"code":"SM","name":"Satu-Mare"},"312":{"code":"SB","name":"Sibiu"},"313":{"code":"SV","name":"Suceava"},"314":{"code":"TR","name":"Teleorman"},"315":{"code":"TM","name":"Timi\u015f"},"316":{"code":"TL","name":"Tulcea"},"318":{"code":"VL","name":"V\u00e2lcea"},"317":{"code":"VS","name":"Vaslui"},"319":{"code":"VN","name":"Vrancea"}}},"SE":{"name":"Svezia","regions":{"1057":{"code":"SE-K","name":"Blekinge l\u00e4n"}
12710,"1058":{"code":"SE-W","name":"Dalarnas l\u00e4n"},"1060":{"code":"SE-X","name":"G\u00e4vleborgs l\u00e4n"},"1059":{"code":"SE-I","name":"Gotlands l\u00e4n"},"1061":{"code":"SE-N","name":"Hallands l\u00e4n"},"1062":{"code":"SE-Z","name":"J\u00e4mtlands l\u00e4n"},"1063":{"code":"SE-F","name":"J\u00f6nk\u00f6pings l\u00e4n"},"1064":{"code":"SE-H","name":"Kalmar l\u00e4n"},"1065":{"code":"SE-G","name":"Kronobergs l\u00e4n"},"1066":{"code":"SE-BD","name":"Norrbottens l\u00e4n"},"1076":{"code":"SE-T","name":"\u00d6rebro l\u00e4n"},"1077":{"code":"SE-E","name":"\u00d6sterg\u00f6tlands l\u00e4n"},"1067":{"code":"SE-M","name":"Sk\u00e5ne l\u00e4n"},"1069":{"code":"SE-D","name":"S\u00f6dermanlands l\u00e4n"},"1068":{"code":"SE-AB","name":"Stockholms l\u00e4n"},"1070":{"code":"SE-C","name":"Uppsala l\u00e4n"},"1071":{"code":"SE-S","name":"V\u00e4rmlands l\u00e4n"},"1072":{"code":"SE-AC","name":"V\u00e4sterbottens l\u00e4n"},"1073":{"code":"SE-Y","name":"V\u00e4sternorrlands l\u00e4n"},"1074":{"code":"SE-U","name":"V\u00e4stmanlands l\u00e4n"},"1075":{"code":"SE-O","name":"V\u00e4stra G\u00f6talands l\u00e4n"}}},"SI":{"name":"Slovenia"},"SK":{"name":"Slovacchia"},"XI":{"name":"Irlanda del Nord"},"data_id":1791568189},"captcha":[],"instant-purchase":[],"loggedAsCustomer":[],"persistent":[],"review":[],"payments":[],"wishlist":{"items":[]},"faq":[],"ammessages":[],"rewards":[],"capi-event-ids":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[],"paypal-buyer-country":[],"magepal-gtm-jsdatalayer":[],"magepal-eegtm-jsdatalayer":[]}</script>
12710 12711 12712</div></body> 12713</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.