<!doctype html>
<html class="no-js" lang="en">
<head>
<meta name="google-site-verification" content="gEAzpQeQ4uL1T3zyGa1fORSjOofXGvw8Z6F_iL_XWcA" />
<meta name="google-site-verification" content="NFkwV-OQfCZs86INlyMI3yvKf_ndcwt0ZI7aJou8wGA" />
<meta name="google-site-verification" content="g-evbDMQ_b7lP8FJBBYtzWwwNwzjK7ucCS6PaCGzFQo" />
<meta name="google-site-verification" content="HbGVz93OvsS2plbOa-YviZBmYLw8R2KaAomyDnbhiaQ" />
<meta name="google-site-verification" content="Yanq5MvbsiI13yTtnSiyXVDLrCB6x_3V0punK9q2oEs" />
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- teknik-seo-rendikt -->
<meta name="theme-color" content="0b0318">
<link rel="canonical" href="https://illuzia.net/">
<link rel="preconnect" href="https://fonts.shopifycdn.com/" crossorigin>
<title>Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online</title>
<meta name="description" content="Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.">
<link rel="amphtml" href="https://illuzia.pages.dev" />
<link rel="preload" as="script" href="../../../../cdn.ampproject.org/v1.js">
<meta name="robots" content="index, follow" />
<meta content="true" name="HandheldFriendly">
<meta content="width" name="MobileOptimized">
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="language" content="ID">
<meta name="copyright" content="KOITOTO">
<meta name="author" content="KOITOTO">
<meta name="distribution" content="global">
<meta name="publisher" content="KOITOTO">
<meta name="geo.placename" content="DKI Jakarta">
<meta name="geo.country" content="ID">
<meta name="geo.region" content="ID" />
<meta name="tgn.nation" content="Indonesia">
<link rel="icon" href="https://imgstore.io/images/2024/06/30/faviconkoi_new.png">
<meta property="og:locale" content="id_ID" />
<meta property="og:site_name" content="KOITOTO">
<meta property="og:url" content="https://illuzia.net/">
<meta property="og:title" content="Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online">
<meta property="og:type" content="product">
<meta property="og:description" content="Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.">
<meta property="og:image" content="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg">
<meta property="og:image:secure_url" content="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg">
<meta property="og:image:width" content="600">
<meta property="og:image:height" content="600">
<meta property="og:price:amount" content="10.000,00">
<meta property="og:price:currency" content="IDR">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online">
<meta name="twitter:description" content="Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.">
<script>
/** Shopify CDN: Minification failed
Line 7:0 Transforming const to the configured target environment ("es5") is not supported yet
Line 9:0 Transforming const to the configured target environment ("es5") is not supported yet
**/
const ON_CHANGE_DEBOUNCE_TIMER = 300;
const PUB_SUB_EVENTS = {
cartUpdate: 'cart-update',
quantityUpdate: 'quantity-update',
variantChange: 'variant-change',
cartError: 'cart-error',
};</script>
<script>
/** Shopify CDN: Minification failed
Line 7:0 Transforming let to the configured target environment ("es5") is not supported yet
Line 14:28 Transforming array spread to the configured target environment ("es5") is not supported yet
**/
let subscribers = {};
function subscribe(eventName, callback) {
if (subscribers[eventName] === undefined) {
subscribers[eventName] = [];
}
subscribers[eventName] = [...subscribers[eventName], callback];
return function unsubscribe() {
subscribers[eventName] = subscribers[eventName].filter((cb) => {
return cb !== callback;
});
};
}
function publish(eventName, data) {
if (subscribers[eventName]) {
subscribers[eventName].forEach((callback) => {
callback(data);
});
}
}
</script>
<script>
/** Shopify CDN: Minification failed
Line 40:0 Transforming const to the configured target environment ("es5") is not supported yet
Line 42:45 Transforming default arguments to the configured target environment ("es5") is not supported yet
Line 96:2 Transforming const to the configured target environment ("es5") is not supported yet
Line 110:2 Transforming let to the configured target environment ("es5") is not supported yet
Line 111:2 Transforming let to the configured target environment ("es5") is not supported yet
Line 150:40 Transforming default arguments to the configured target environment ("es5") is not supported yet
Line 161:2 Transforming const to the configured target environment ("es5") is not supported yet
Line 164:2 Transforming const to the configured target environment ("es5") is not supported yet
Line 170:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 171:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
... and 187 more hidden warnings
**/
function getFocusableElements(container) {
return Array.from(
container.querySelectorAll(
"summary, a[href], button:enabled, [tabindex]:not([tabindex^='-']), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe"
)
);
}
document.querySelectorAll('[id^="Details-"] summary').forEach((summary) => {
summary.setAttribute('role', 'button');
summary.setAttribute('aria-expanded', summary.parentNode.hasAttribute('open'));
if (summary.nextElementSibling.getAttribute('id')) {
summary.setAttribute('aria-controls', summary.nextElementSibling.id);
}
summary.addEventListener('click', (event) => {
event.currentTarget.setAttribute('aria-expanded', !event.currentTarget.closest('details').hasAttribute('open'));
});
if (summary.closest('header-drawer, menu-drawer')) return;
summary.parentElement.addEventListener('keyup', onKeyUpEscape);
});
const trapFocusHandlers = {};
function trapFocus(container, elementToFocus = container) {
var elements = getFocusableElements(container);
var first = elements[0];
var last = elements[elements.length - 1];
removeTrapFocus();
trapFocusHandlers.focusin = (event) => {
if (event.target !== container && event.target !== last && event.target !== first) return;
document.addEventListener('keydown', trapFocusHandlers.keydown);
};
trapFocusHandlers.focusout = function () {
document.removeEventListener('keydown', trapFocusHandlers.keydown);
};
trapFocusHandlers.keydown = function (event) {
if (event.code.toUpperCase() !== 'TAB') return; // If not TAB key
// On the last focusable element and tab forward, focus the first element.
if (event.target === last && !event.shiftKey) {
event.preventDefault();
first.focus();
}
// On the first focusable element and tab backward, focus the last element.
if ((event.target === container || event.target === first) && event.shiftKey) {
event.preventDefault();
last.focus();
}
};
document.addEventListener('focusout', trapFocusHandlers.focusout);
document.addEventListener('focusin', trapFocusHandlers.focusin);
elementToFocus.focus();
if (
elementToFocus.tagName === 'INPUT' &&
['search', 'text', 'email', 'url'].includes(elementToFocus.type) &&
elementToFocus.value
) {
elementToFocus.setSelectionRange(0, elementToFocus.value.length);
}
}
// Here run the querySelector to figure out if the browser supports :focus-visible or not and run code based on it.
try {
document.querySelector(':focus-visible');
} catch (e) {
focusVisiblePolyfill();
}
function focusVisiblePolyfill() {
const navKeys = [
'ARROWUP',
'ARROWDOWN',
'ARROWLEFT',
'ARROWRIGHT',
'TAB',
'ENTER',
'SPACE',
'ESCAPE',
'HOME',
'END',
'PAGEUP',
'PAGEDOWN',
];
let currentFocusedElement = null;
let mouseClick = null;
window.addEventListener('keydown', (event) => {
if (navKeys.includes(event.code.toUpperCase())) {
mouseClick = false;
}
});
window.addEventListener('mousedown', (event) => {
mouseClick = true;
});
window.addEventListener(
'focus',
() => {
if (currentFocusedElement) currentFocusedElement.classList.remove('focused');
if (mouseClick) return;
currentFocusedElement = document.activeElement;
currentFocusedElement.classList.add('focused');
},
true
);
}
function pauseAllMedia() {
document.querySelectorAll('.js-youtube').forEach((video) => {
video.contentWindow.postMessage('{"event":"command","func":"' + 'pauseVideo' + '","args":""}', '*');
});
document.querySelectorAll('.js-vimeo').forEach((video) => {
video.contentWindow.postMessage('{"method":"pause"}', '*');
});
document.querySelectorAll('video').forEach((video) => video.pause());
document.querySelectorAll('product-model').forEach((model) => {
if (model.modelViewerUI) model.modelViewerUI.pause();
});
}
function removeTrapFocus(elementToFocus = null) {
document.removeEventListener('focusin', trapFocusHandlers.focusin);
document.removeEventListener('focusout', trapFocusHandlers.focusout);
document.removeEventListener('keydown', trapFocusHandlers.keydown);
if (elementToFocus) elementToFocus.focus();
}
function onKeyUpEscape(event) {
if (event.code.toUpperCase() !== 'ESCAPE') return;
const openDetailsElement = event.target.closest('details[open]');
if (!openDetailsElement) return;
const summaryElement = openDetailsElement.querySelector('summary');
openDetailsElement.removeAttribute('open');
summaryElement.setAttribute('aria-expanded', false);
summaryElement.focus();
}
class QuantityInput extends HTMLElement {
constructor() {
super();
this.input = this.querySelector('input');
this.changeEvent = new Event('change', { bubbles: true });
this.input.addEventListener('change', this.onInputChange.bind(this));
this.querySelectorAll('button').forEach((button) =>
button.addEventListener('click', this.onButtonClick.bind(this))
);
}
quantityUpdateUnsubscriber = undefined;
connectedCallback() {
this.validateQtyRules();
this.quantityUpdateUnsubscriber = subscribe(PUB_SUB_EVENTS.quantityUpdate, this.validateQtyRules.bind(this));
}
disconnectedCallback() {
if (this.quantityUpdateUnsubscriber) {
this.quantityUpdateUnsubscriber();
}
}
onInputChange(event) {
this.validateQtyRules();
}
onButtonClick(event) {
event.preventDefault();
const previousValue = this.input.value;
event.target.name === 'plus' ? this.input.stepUp() : this.input.stepDown();
if (previousValue !== this.input.value) this.input.dispatchEvent(this.changeEvent);
}
validateQtyRules() {
const value = parseInt(this.input.value);
if (this.input.min) {
const min = parseInt(this.input.min);
const buttonMinus = this.querySelector(".quantity__button[name='minus']");
buttonMinus.classList.toggle('disabled', value <= min);
}
if (this.input.max) {
const max = parseInt(this.input.max);
const buttonPlus = this.querySelector(".quantity__button[name='plus']");
buttonPlus.classList.toggle('disabled', value >= max);
}
}
}
customElements.define('quantity-input', QuantityInput);
function debounce(fn, wait) {
let t;
return (...args) => {
clearTimeout(t);
t = setTimeout(() => fn.apply(this, args), wait);
};
}
function throttle(fn, delay) {
let lastCall = 0;
return function (...args) {
const now = new Date().getTime();
if (now - lastCall < delay) {
return;
}
lastCall = now;
return fn(...args);
};
}
function fetchConfig(type = 'json') {
return {
method: 'POST',
headers: { 'Content-Type': 'application/json', Accept: `application/${type}` },
};
}
/*
* Shopify Common JS
*
*/
if (typeof window.Shopify == 'undefined') {
window.Shopify = {};
}
Shopify.bind = function (fn, scope) {
return function () {
return fn.apply(scope, arguments);
};
};
Shopify.setSelectorByValue = function (selector, value) {
for (var i = 0, count = selector.options.length; i < count; i++) {
var option = selector.options[i];
if (value == option.value || value == option.innerHTML) {
selector.selectedIndex = i;
return i;
}
}
};
Shopify.addListener = function (target, eventName, callback) {
target.addEventListener
? target.addEventListener(eventName, callback, false)
: target.attachEvent('on' + eventName, callback);
};
Shopify.postLink = function (path, options) {
options = options || {};
var method = options['method'] || 'post';
var params = options['parameters'] || {};
var form = document.createElement('form');
form.setAttribute('method', method);
form.setAttribute('action', path);
for (var key in params) {
var hiddenField = document.createElement('input');
hiddenField.setAttribute('type', 'hidden');
hiddenField.setAttribute('name', key);
hiddenField.setAttribute('value', params[key]);
form.appendChild(hiddenField);
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
};
Shopify.CountryProvinceSelector = function (country_domid, province_domid, options) {
this.countryEl = document.getElementById(country_domid);
this.provinceEl = document.getElementById(province_domid);
this.provinceContainer = document.getElementById(options['hideElement'] || province_domid);
Shopify.addListener(this.countryEl, 'change', Shopify.bind(this.countryHandler, this));
this.initCountry();
this.initProvince();
};
Shopify.CountryProvinceSelector.prototype = {
initCountry: function () {
var value = this.countryEl.getAttribute('data-default');
Shopify.setSelectorByValue(this.countryEl, value);
this.countryHandler();
},
initProvince: function () {
var value = this.provinceEl.getAttribute('data-default');
if (value && this.provinceEl.options.length > 0) {
Shopify.setSelectorByValue(this.provinceEl, value);
}
},
countryHandler: function (e) {
var opt = this.countryEl.options[this.countryEl.selectedIndex];
var raw = opt.getAttribute('data-provinces');
var provinces = JSON.parse(raw);
this.clearOptions(this.provinceEl);
if (provinces && provinces.length == 0) {
this.provinceContainer.style.display = 'none';
} else {
for (var i = 0; i < provinces.length; i++) {
var opt = document.createElement('option');
opt.value = provinces[i][0];
opt.innerHTML = provinces[i][1];
this.provinceEl.appendChild(opt);
}
this.provinceContainer.style.display = '';
}
},
clearOptions: function (selector) {
while (selector.firstChild) {
selector.removeChild(selector.firstChild);
}
},
setOptions: function (selector, values) {
for (var i = 0, count = values.length; i < values.length; i++) {
var opt = document.createElement('option');
opt.value = values[i];
opt.innerHTML = values[i];
selector.appendChild(opt);
}
},
};
class MenuDrawer extends HTMLElement {
constructor() {
super();
this.mainDetailsToggle = this.querySelector('details');
this.addEventListener('keyup', this.onKeyUp.bind(this));
this.addEventListener('focusout', this.onFocusOut.bind(this));
this.bindEvents();
}
bindEvents() {
this.querySelectorAll('summary').forEach((summary) =>
summary.addEventListener('click', this.onSummaryClick.bind(this))
);
this.querySelectorAll('button:not(.localization-selector)').forEach((button) =>
button.addEventListener('click', this.onCloseButtonClick.bind(this))
);
}
onKeyUp(event) {
if (event.code.toUpperCase() !== 'ESCAPE') return;
const openDetailsElement = event.target.closest('details[open]');
if (!openDetailsElement) return;
openDetailsElement === this.mainDetailsToggle
? this.closeMenuDrawer(event, this.mainDetailsToggle.querySelector('summary'))
: this.closeSubmenu(openDetailsElement);
}
onSummaryClick(event) {
const summaryElement = event.currentTarget;
const detailsElement = summaryElement.parentNode;
const parentMenuElement = detailsElement.closest('.has-submenu');
const isOpen = detailsElement.hasAttribute('open');
const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');
function addTrapFocus() {
trapFocus(summaryElement.nextElementSibling, detailsElement.querySelector('button'));
summaryElement.nextElementSibling.removeEventListener('transitionend', addTrapFocus);
}
if (detailsElement === this.mainDetailsToggle) {
if (isOpen) event.preventDefault();
isOpen ? this.closeMenuDrawer(event, summaryElement) : this.openMenuDrawer(summaryElement);
if (window.matchMedia('(max-width: 990px)')) {
document.documentElement.style.setProperty('--viewport-height', `${window.innerHeight}px`);
}
} else {
setTimeout(() => {
detailsElement.classList.add('menu-opening');
summaryElement.setAttribute('aria-expanded', true);
parentMenuElement && parentMenuElement.classList.add('submenu-open');
!reducedMotion || reducedMotion.matches
? addTrapFocus()
: summaryElement.nextElementSibling.addEventListener('transitionend', addTrapFocus);
}, 100);
}
}
openMenuDrawer(summaryElement) {
setTimeout(() => {
this.mainDetailsToggle.classList.add('menu-opening');
});
summaryElement.setAttribute('aria-expanded', true);
trapFocus(this.mainDetailsToggle, summaryElement);
document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`);
}
closeMenuDrawer(event, elementToFocus = false) {
if (event === undefined) return;
this.mainDetailsToggle.classList.remove('menu-opening');
this.mainDetailsToggle.querySelectorAll('details').forEach((details) => {
details.removeAttribute('open');
details.classList.remove('menu-opening');
});
this.mainDetailsToggle.querySelectorAll('.submenu-open').forEach((submenu) => {
submenu.classList.remove('submenu-open');
});
document.body.classList.remove(`overflow-hidden-${this.dataset.breakpoint}`);
removeTrapFocus(elementToFocus);
this.closeAnimation(this.mainDetailsToggle);
if (event instanceof KeyboardEvent) elementToFocus?.setAttribute('aria-expanded', false);
}
onFocusOut() {
setTimeout(() => {
if (this.mainDetailsToggle.hasAttribute('open') && !this.mainDetailsToggle.contains(document.activeElement))
this.closeMenuDrawer();
});
}
onCloseButtonClick(event) {
const detailsElement = event.currentTarget.closest('details');
this.closeSubmenu(detailsElement);
}
closeSubmenu(detailsElement) {
const parentMenuElement = detailsElement.closest('.submenu-open');
parentMenuElement && parentMenuElement.classList.remove('submenu-open');
detailsElement.classList.remove('menu-opening');
detailsElement.querySelector('summary').setAttribute('aria-expanded', false);
removeTrapFocus(detailsElement.querySelector('summary'));
this.closeAnimation(detailsElement);
}
closeAnimation(detailsElement) {
let animationStart;
const handleAnimation = (time) => {
if (animationStart === undefined) {
animationStart = time;
}
const elapsedTime = time - animationStart;
if (elapsedTime < 400) {
window.requestAnimationFrame(handleAnimation);
} else {
detailsElement.removeAttribute('open');
if (detailsElement.closest('details[open]')) {
trapFocus(detailsElement.closest('details[open]'), detailsElement.querySelector('summary'));
}
}
};
window.requestAnimationFrame(handleAnimation);
}
}
customElements.define('menu-drawer', MenuDrawer);
class HeaderDrawer extends MenuDrawer {
constructor() {
super();
}
openMenuDrawer(summaryElement) {
this.header = this.header || document.querySelector('.section-header');
this.borderOffset =
this.borderOffset || this.closest('.header-wrapper').classList.contains('header-wrapper--border-bottom') ? 1 : 0;
document.documentElement.style.setProperty(
'--header-bottom-position',
`${parseInt(this.header.getBoundingClientRect().bottom - this.borderOffset)}px`
);
this.header.classList.add('menu-open');
setTimeout(() => {
this.mainDetailsToggle.classList.add('menu-opening');
});
summaryElement.setAttribute('aria-expanded', true);
window.addEventListener('resize', this.onResize);
trapFocus(this.mainDetailsToggle, summaryElement);
document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`);
}
closeMenuDrawer(event, elementToFocus) {
if (!elementToFocus) return;
super.closeMenuDrawer(event, elementToFocus);
this.header.classList.remove('menu-open');
window.removeEventListener('resize', this.onResize);
}
onResize = () => {
this.header &&
document.documentElement.style.setProperty(
'--header-bottom-position',
`${parseInt(this.header.getBoundingClientRect().bottom - this.borderOffset)}px`
);
document.documentElement.style.setProperty('--viewport-height', `${window.innerHeight}px`);
};
}
customElements.define('header-drawer', HeaderDrawer);
class ModalDialog extends HTMLElement {
constructor() {
super();
this.querySelector('[id^="ModalClose-"]').addEventListener('click', this.hide.bind(this, false));
this.addEventListener('keyup', (event) => {
if (event.code.toUpperCase() === 'ESCAPE') this.hide();
});
if (this.classList.contains('media-modal')) {
this.addEventListener('pointerup', (event) => {
if (event.pointerType === 'mouse' && !event.target.closest('deferred-media, product-model')) this.hide();
});
} else {
this.addEventListener('click', (event) => {
if (event.target === this) this.hide();
});
}
}
connectedCallback() {
if (this.moved) return;
this.moved = true;
document.body.appendChild(this);
}
show(opener) {
this.openedBy = opener;
const popup = this.querySelector('.template-popup');
document.body.classList.add('overflow-hidden');
this.setAttribute('open', '');
if (popup) popup.loadContent();
trapFocus(this, this.querySelector('[role="dialog"]'));
window.pauseAllMedia();
}
hide() {
document.body.classList.remove('overflow-hidden');
document.body.dispatchEvent(new CustomEvent('modalClosed'));
this.removeAttribute('open');
removeTrapFocus(this.openedBy);
window.pauseAllMedia();
}
}
customElements.define('modal-dialog', ModalDialog);
class ModalOpener extends HTMLElement {
constructor() {
super();
const button = this.querySelector('button');
if (!button) return;
button.addEventListener('click', () => {
const modal = document.querySelector(this.getAttribute('data-modal'));
if (modal) modal.show(button);
});
}
}
customElements.define('modal-opener', ModalOpener);
class DeferredMedia extends HTMLElement {
constructor() {
super();
const poster = this.querySelector('[id^="Deferred-Poster-"]');
if (!poster) return;
poster.addEventListener('click', this.loadContent.bind(this));
}
loadContent(focus = true) {
window.pauseAllMedia();
if (!this.getAttribute('loaded')) {
const content = document.createElement('div');
content.appendChild(this.querySelector('template').content.firstElementChild.cloneNode(true));
this.setAttribute('loaded', true);
const deferredElement = this.appendChild(content.querySelector('video, model-viewer, iframe'));
if (focus) deferredElement.focus();
if (deferredElement.nodeName == 'VIDEO' && deferredElement.getAttribute('autoplay')) {
// force autoplay for safari
deferredElement.play();
}
}
}
}
customElements.define('deferred-media', DeferredMedia);
class SliderComponent extends HTMLElement {
constructor() {
super();
this.slider = this.querySelector('[id^="Slider-"]');
this.sliderItems = this.querySelectorAll('[id^="Slide-"]');
this.enableSliderLooping = false;
this.currentPageElement = this.querySelector('.slider-counter--current');
this.pageTotalElement = this.querySelector('.slider-counter--total');
this.prevButton = this.querySelector('button[name="previous"]');
this.nextButton = this.querySelector('button[name="next"]');
if (!this.slider || !this.nextButton) return;
this.initPages();
const resizeObserver = new ResizeObserver((entries) => this.initPages());
resizeObserver.observe(this.slider);
this.slider.addEventListener('scroll', this.update.bind(this));
this.prevButton.addEventListener('click', this.onButtonClick.bind(this));
this.nextButton.addEventListener('click', this.onButtonClick.bind(this));
}
initPages() {
this.sliderItemsToShow = Array.from(this.sliderItems).filter((element) => element.clientWidth > 0);
if (this.sliderItemsToShow.length < 2) return;
this.sliderItemOffset = this.sliderItemsToShow[1].offsetLeft - this.sliderItemsToShow[0].offsetLeft;
this.slidesPerPage = Math.floor(
(this.slider.clientWidth - this.sliderItemsToShow[0].offsetLeft) / this.sliderItemOffset
);
this.totalPages = this.sliderItemsToShow.length - this.slidesPerPage + 1;
this.update();
}
resetPages() {
this.sliderItems = this.querySelectorAll('[id^="Slide-"]');
this.initPages();
}
update() {
// Temporarily prevents unneeded updates resulting from variant changes
// This should be refactored as part of https://github.com/Shopify/dawn/issues/2057
if (!this.slider || !this.nextButton) return;
const previousPage = this.currentPage;
this.currentPage = Math.round(this.slider.scrollLeft / this.sliderItemOffset) + 1;
if (this.currentPageElement && this.pageTotalElement) {
this.currentPageElement.textContent = this.currentPage;
this.pageTotalElement.textContent = this.totalPages;
}
if (this.currentPage != previousPage) {
this.dispatchEvent(
new CustomEvent('slideChanged', {
detail: {
currentPage: this.currentPage,
currentElement: this.sliderItemsToShow[this.currentPage - 1],
},
})
);
}
if (this.enableSliderLooping) return;
if (this.isSlideVisible(this.sliderItemsToShow[0]) && this.slider.scrollLeft === 0) {
this.prevButton.setAttribute('disabled', 'disabled');
} else {
this.prevButton.removeAttribute('disabled');
}
if (this.isSlideVisible(this.sliderItemsToShow[this.sliderItemsToShow.length - 1])) {
this.nextButton.setAttribute('disabled', 'disabled');
} else {
this.nextButton.removeAttribute('disabled');
}
}
isSlideVisible(element, offset = 0) {
const lastVisibleSlide = this.slider.clientWidth + this.slider.scrollLeft - offset;
return element.offsetLeft + element.clientWidth <= lastVisibleSlide && element.offsetLeft >= this.slider.scrollLeft;
}
onButtonClick(event) {
event.preventDefault();
const step = event.currentTarget.dataset.step || 1;
this.slideScrollPosition =
event.currentTarget.name === 'next'
? this.slider.scrollLeft + step * this.sliderItemOffset
: this.slider.scrollLeft - step * this.sliderItemOffset;
this.setSlidePosition(this.slideScrollPosition);
}
setSlidePosition(position) {
this.slider.scrollTo({
left: position,
});
}
}
customElements.define('slider-component', SliderComponent);
class SlideshowComponent extends SliderComponent {
constructor() {
super();
this.sliderControlWrapper = this.querySelector('.slider-buttons');
this.enableSliderLooping = true;
if (!this.sliderControlWrapper) return;
this.sliderFirstItemNode = this.slider.querySelector('.slideshow__slide');
if (this.sliderItemsToShow.length > 0) this.currentPage = 1;
this.announcementBarSlider = this.querySelector('.announcement-bar-slider');
// Value below should match --duration-announcement-bar CSS value
this.announcerBarAnimationDelay = this.announcementBarSlider ? 250 : 0;
this.sliderControlLinksArray = Array.from(this.sliderControlWrapper.querySelectorAll('.slider-counter__link'));
this.sliderControlLinksArray.forEach((link) => link.addEventListener('click', this.linkToSlide.bind(this)));
this.slider.addEventListener('scroll', this.setSlideVisibility.bind(this));
this.setSlideVisibility();
if (this.announcementBarSlider) {
this.announcementBarArrowButtonWasClicked = false;
this.reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');
this.reducedMotion.addEventListener('change', () => {
if (this.slider.getAttribute('data-autoplay') === 'true') this.setAutoPlay();
});
[this.prevButton, this.nextButton].forEach((button) => {
button.addEventListener(
'click',
() => {
this.announcementBarArrowButtonWasClicked = true;
},
{ once: true }
);
});
}
if (this.slider.getAttribute('data-autoplay') === 'true') this.setAutoPlay();
}
setAutoPlay() {
this.autoplaySpeed = this.slider.dataset.speed * 1000;
this.addEventListener('mouseover', this.focusInHandling.bind(this));
this.addEventListener('mouseleave', this.focusOutHandling.bind(this));
this.addEventListener('focusin', this.focusInHandling.bind(this));
this.addEventListener('focusout', this.focusOutHandling.bind(this));
if (this.querySelector('.slideshow__autoplay')) {
this.sliderAutoplayButton = this.querySelector('.slideshow__autoplay');
this.sliderAutoplayButton.addEventListener('click', this.autoPlayToggle.bind(this));
this.autoplayButtonIsSetToPlay = true;
this.play();
} else {
this.reducedMotion.matches || this.announcementBarArrowButtonWasClicked
? this.pause()
: this.play();
}
}
onButtonClick(event) {
super.onButtonClick(event);
this.wasClicked = true;
const isFirstSlide = this.currentPage === 1;
const isLastSlide = this.currentPage === this.sliderItemsToShow.length;
if (!isFirstSlide && !isLastSlide) {
this.applyAnimationToAnnouncementBar(event.currentTarget.name);
return;
}
if (isFirstSlide && event.currentTarget.name === 'previous') {
this.slideScrollPosition =
this.slider.scrollLeft + this.sliderFirstItemNode.clientWidth * this.sliderItemsToShow.length;
} else if (isLastSlide && event.currentTarget.name === 'next') {
this.slideScrollPosition = 0;
}
this.setSlidePosition(this.slideScrollPosition);
this.applyAnimationToAnnouncementBar(event.currentTarget.name);
}
setSlidePosition(position) {
if (this.setPositionTimeout) clearTimeout(this.setPositionTimeout);
this.setPositionTimeout = setTimeout(() => {
this.slider.scrollTo({
left: position,
});
}, this.announcerBarAnimationDelay);
}
update() {
super.update();
this.sliderControlButtons = this.querySelectorAll('.slider-counter__link');
this.prevButton.removeAttribute('disabled');
if (!this.sliderControlButtons.length) return;
this.sliderControlButtons.forEach((link) => {
link.classList.remove('slider-counter__link--active');
link.removeAttribute('aria-current');
});
this.sliderControlButtons[this.currentPage - 1].classList.add('slider-counter__link--active');
this.sliderControlButtons[this.currentPage - 1].setAttribute('aria-current', true);
}
autoPlayToggle() {
this.togglePlayButtonState(this.autoplayButtonIsSetToPlay);
this.autoplayButtonIsSetToPlay ? this.pause() : this.play();
this.autoplayButtonIsSetToPlay = !this.autoplayButtonIsSetToPlay;
}
focusOutHandling(event) {
if (this.sliderAutoplayButton) {
const focusedOnAutoplayButton =
event.target === this.sliderAutoplayButton || this.sliderAutoplayButton.contains(event.target);
if (!this.autoplayButtonIsSetToPlay || focusedOnAutoplayButton) return;
this.play();
} else if (
!this.reducedMotion.matches &&
!this.announcementBarArrowButtonWasClicked
) {
this.play();
}
}
focusInHandling(event) {
if (this.sliderAutoplayButton) {
const focusedOnAutoplayButton =
event.target === this.sliderAutoplayButton || this.sliderAutoplayButton.contains(event.target);
if (focusedOnAutoplayButton && this.autoplayButtonIsSetToPlay) {
this.play();
} else if (this.autoplayButtonIsSetToPlay) {
this.pause();
}
} else if (this.announcementBarSlider.contains(event.target)) {
this.pause();
}
}
play() {
this.slider.setAttribute('aria-live', 'off');
clearInterval(this.autoplay);
this.autoplay = setInterval(this.autoRotateSlides.bind(this), this.autoplaySpeed);
}
pause() {
this.slider.setAttribute('aria-live', 'polite');
clearInterval(this.autoplay);
}
togglePlayButtonState(pauseAutoplay) {
if (pauseAutoplay) {
this.sliderAutoplayButton.classList.add('slideshow__autoplay--paused');
this.sliderAutoplayButton.setAttribute('aria-label', window.accessibilityStrings.playSlideshow);
} else {
this.sliderAutoplayButton.classList.remove('slideshow__autoplay--paused');
this.sliderAutoplayButton.setAttribute('aria-label', window.accessibilityStrings.pauseSlideshow);
}
}
autoRotateSlides() {
const slideScrollPosition =
this.currentPage === this.sliderItems.length
? 0
: this.slider.scrollLeft + this.sliderItemOffset;
this.setSlidePosition(slideScrollPosition);
this.applyAnimationToAnnouncementBar();
}
setSlideVisibility(event) {
this.sliderItemsToShow.forEach((item, index) => {
const linkElements = item.querySelectorAll('a');
if (index === this.currentPage - 1) {
if (linkElements.length)
linkElements.forEach((button) => {
button.removeAttribute('tabindex');
});
item.setAttribute('aria-hidden', 'false');
item.removeAttribute('tabindex');
} else {
if (linkElements.length)
linkElements.forEach((button) => {
button.setAttribute('tabindex', '-1');
});
item.setAttribute('aria-hidden', 'true');
item.setAttribute('tabindex', '-1');
}
});
this.wasClicked = false;
}
applyAnimationToAnnouncementBar(button = 'next') {
if (!this.announcementBarSlider) return;
const itemsCount = this.sliderItems.length;
const increment = button === 'next' ? 1 : -1;
const currentIndex = this.currentPage - 1;
let nextIndex = (currentIndex + increment) % itemsCount;
nextIndex = nextIndex === -1 ? itemsCount - 1 : nextIndex;
const nextSlide = this.sliderItems[nextIndex];
const currentSlide = this.sliderItems[currentIndex];
const animationClassIn = 'announcement-bar-slider--fade-in';
const animationClassOut = 'announcement-bar-slider--fade-out';
const isFirstSlide = currentIndex === 0;
const isLastSlide = currentIndex === itemsCount - 1;
const shouldMoveNext = (button === 'next' && !isLastSlide) || (button === 'previous' && isFirstSlide);
const direction = shouldMoveNext ? 'next' : 'previous';
currentSlide.classList.add(`${animationClassOut}-${direction}`);
nextSlide.classList.add(`${animationClassIn}-${direction}`);
setTimeout(() => {
currentSlide.classList.remove(`${animationClassOut}-${direction}`);
nextSlide.classList.remove(`${animationClassIn}-${direction}`);
}, this.announcerBarAnimationDelay * 2);
}
linkToSlide(event) {
event.preventDefault();
const slideScrollPosition =
this.slider.scrollLeft +
this.sliderFirstItemNode.clientWidth *
(this.sliderControlLinksArray.indexOf(event.currentTarget) + 1 - this.currentPage);
this.slider.scrollTo({
left: slideScrollPosition,
});
}
}
customElements.define('slideshow-component', SlideshowComponent);
class VariantSelects extends HTMLElement {
constructor() {
super();
this.addEventListener('change', this.onVariantChange);
}
onVariantChange() {
this.updateOptions();
this.updateMasterId();
this.toggleAddButton(true, '', false);
this.updatePickupAvailability();
this.removeErrorMessage();
this.updateVariantStatuses();
if (!this.currentVariant) {
this.toggleAddButton(true, '', true);
this.setUnavailable();
} else {
this.updateMedia();
this.updateURL();
this.updateVariantInput();
this.renderProductInfo();
this.updateShareUrl();
}
}
updateOptions() {
this.options = Array.from(this.querySelectorAll('select'), (select) => select.value);
}
updateMasterId() {
this.currentVariant = this.getVariantData().find((variant) => {
return !variant.options
.map((option, index) => {
return this.options[index] === option;
})
.includes(false);
});
}
updateMedia() {
if (!this.currentVariant) return;
if (!this.currentVariant.featured_media) return;
const mediaGalleries = document.querySelectorAll(`[id^="MediaGallery-${this.dataset.section}"]`);
mediaGalleries.forEach((mediaGallery) =>
mediaGallery.setActiveMedia(`${this.dataset.section}-${this.currentVariant.featured_media.id}`, true)
);
const modalContent = document.querySelector(`#ProductModal-${this.dataset.section} .product-media-modal__content`);
if (!modalContent) return;
const newMediaModal = modalContent.querySelector(`[data-media-id="${this.currentVariant.featured_media.id}"]`);
modalContent.prepend(newMediaModal);
}
updateURL() {
if (!this.currentVariant || this.dataset.updateUrl === 'false') return;
window.history.replaceState({}, '', `${this.dataset.url}?variant=${this.currentVariant.id}`);
}
updateShareUrl() {
const shareButton = document.getElementById(`Share-${this.dataset.section}`);
if (!shareButton || !shareButton.updateUrl) return;
shareButton.updateUrl(`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`);
}
updateVariantInput() {
const productForms = document.querySelectorAll(
`#product-form-${this.dataset.section}, #product-form-installment-${this.dataset.section}`
);
productForms.forEach((productForm) => {
const input = productForm.querySelector('input[name="id"]');
input.value = this.currentVariant.id;
input.dispatchEvent(new Event('change', { bubbles: true }));
});
}
updateVariantStatuses() {
const selectedOptionOneVariants = this.variantData.filter(
(variant) => this.querySelector(':checked').value === variant.option1
);
const inputWrappers = [...this.querySelectorAll('.product-form__input')];
inputWrappers.forEach((option, index) => {
if (index === 0) return;
const optionInputs = [...option.querySelectorAll('input[type="radio"], option')];
const previousOptionSelected = inputWrappers[index - 1].querySelector(':checked').value;
const availableOptionInputsValue = selectedOptionOneVariants
.filter((variant) => variant.available && variant[`option${index}`] === previousOptionSelected)
.map((variantOption) => variantOption[`option${index + 1}`]);
this.setInputAvailability(optionInputs, availableOptionInputsValue);
});
}
setInputAvailability(listOfOptions, listOfAvailableOptions) {
listOfOptions.forEach((input) => {
if (listOfAvailableOptions.includes(input.getAttribute('value'))) {
input.innerText = input.getAttribute('value');
} else {
input.innerText = window.variantStrings.unavailable_with_option.replace('[value]', input.getAttribute('value'));
}
});
}
updatePickupAvailability() {
const pickUpAvailability = document.querySelector('pickup-availability');
if (!pickUpAvailability) return;
if (this.currentVariant && this.currentVariant.available) {
pickUpAvailability.fetchAvailability(this.currentVariant.id);
} else {
pickUpAvailability.removeAttribute('available');
pickUpAvailability.innerHTML = '';
}
}
removeErrorMessage() {
const section = this.closest('section');
if (!section) return;
const productForm = section.querySelector('product-form');
if (productForm) productForm.handleErrorMessage();
}
renderProductInfo() {
const requestedVariantId = this.currentVariant.id;
const sectionId = this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section;
fetch(
`${this.dataset.url}?variant=${requestedVariantId}§ion_id=${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section
}`
)
.then((response) => response.text())
.then((responseText) => {
// prevent unnecessary ui changes from abandoned selections
if (this.currentVariant.id !== requestedVariantId) return;
const html = new DOMParser().parseFromString(responseText, 'text/html');
const destination = document.getElementById(`price-${this.dataset.section}`);
const source = html.getElementById(
`price-${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section}`
);
const skuSource = html.getElementById(
`Sku-${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section}`
);
const skuDestination = document.getElementById(`Sku-${this.dataset.section}`);
const inventorySource = html.getElementById(
`Inventory-${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section}`
);
const inventoryDestination = document.getElementById(`Inventory-${this.dataset.section}`);
const volumePricingSource = html.getElementById(
`Volume-${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section}`
);
const pricePerItemDestination = document.getElementById(`Price-Per-Item-${this.dataset.section}`);
const pricePerItemSource = html.getElementById(`Price-Per-Item-${this.dataset.originalSection ? this.dataset.originalSection : this.dataset.section}`);
const volumePricingDestination = document.getElementById(`Volume-${this.dataset.section}`);
const qtyRules = document.getElementById(`Quantity-Rules-${this.dataset.section}`);
const volumeNote = document.getElementById(`Volume-Note-${this.dataset.section}`);
if (volumeNote) volumeNote.classList.remove('hidden');
if (volumePricingDestination) volumePricingDestination.classList.remove('hidden');
if (qtyRules) qtyRules.classList.remove('hidden');
if (source && destination) destination.innerHTML = source.innerHTML;
if (inventorySource && inventoryDestination) inventoryDestination.innerHTML = inventorySource.innerHTML;
if (skuSource && skuDestination) {
skuDestination.innerHTML = skuSource.innerHTML;
skuDestination.classList.toggle('hidden', skuSource.classList.contains('hidden'));
}
if (volumePricingSource && volumePricingDestination) {
volumePricingDestination.innerHTML = volumePricingSource.innerHTML;
}
if (pricePerItemSource && pricePerItemDestination) {
pricePerItemDestination.innerHTML = pricePerItemSource.innerHTML;
pricePerItemDestination.classList.toggle('hidden', pricePerItemSource.classList.contains('hidden'));
}
const price = document.getElementById(`price-${this.dataset.section}`);
if (price) price.classList.remove('hidden');
if (inventoryDestination)
inventoryDestination.classList.toggle('hidden', inventorySource.innerText === '');
const addButtonUpdated = html.getElementById(`ProductSubmitButton-${sectionId}`);
this.toggleAddButton(
addButtonUpdated ? addButtonUpdated.hasAttribute('disabled') : true,
window.variantStrings.soldOut
);
publish(PUB_SUB_EVENTS.variantChange, {
data: {
sectionId,
html,
variant: this.currentVariant,
},
});
});
}
toggleAddButton(disable = true, text, modifyClass = true) {
const productForm = document.getElementById(`product-form-${this.dataset.section}`);
if (!productForm) return;
const addButton = productForm.querySelector('[name="add"]');
const addButtonText = productForm.querySelector('[name="add"] > span');
if (!addButton) return;
if (disable) {
addButton.setAttribute('disabled', 'disabled');
if (text) addButtonText.textContent = text;
} else {
addButton.removeAttribute('disabled');
addButtonText.textContent = window.variantStrings.addToCart;
}
if (!modifyClass) return;
}
setUnavailable() {
const button = document.getElementById(`product-form-${this.dataset.section}`);
const addButton = button.querySelector('[name="add"]');
const addButtonText = button.querySelector('[name="add"] > span');
const price = document.getElementById(`price-${this.dataset.section}`);
const inventory = document.getElementById(`Inventory-${this.dataset.section}`);
const sku = document.getElementById(`Sku-${this.dataset.section}`);
const pricePerItem = document.getElementById(`Price-Per-Item-${this.dataset.section}`);
const volumeNote = document.getElementById(`Volume-Note-${this.dataset.section}`);
const volumeTable = document.getElementById(`Volume-${this.dataset.section}`);
const qtyRules = document.getElementById(`Quantity-Rules-${this.dataset.section}`);
if (!addButton) return;
addButtonText.textContent = window.variantStrings.unavailable;
if (price) price.classList.add('hidden');
if (inventory) inventory.classList.add('hidden');
if (sku) sku.classList.add('hidden');
if (pricePerItem) pricePerItem.classList.add('hidden');
if (volumeNote) volumeNote.classList.add('hidden');
if (volumeTable) volumeTable.classList.add('hidden');
if (qtyRules) qtyRules.classList.add('hidden');
}
getVariantData() {
this.variantData = this.variantData || JSON.parse(this.querySelector('[type="application/json"]').textContent);
return this.variantData;
}
}
customElements.define('variant-selects', VariantSelects);
class VariantRadios extends VariantSelects {
constructor() {
super();
}
setInputAvailability(listOfOptions, listOfAvailableOptions) {
listOfOptions.forEach((input) => {
if (listOfAvailableOptions.includes(input.getAttribute('value'))) {
input.classList.remove('disabled');
} else {
input.classList.add('disabled');
}
});
}
updateOptions() {
const fieldsets = Array.from(this.querySelectorAll('fieldset'));
this.options = fieldsets.map((fieldset) => {
return Array.from(fieldset.querySelectorAll('input')).find((radio) => radio.checked).value;
});
}
}
customElements.define('variant-radios', VariantRadios);
class ProductRecommendations extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
const handleIntersection = (entries, observer) => {
if (!entries[0].isIntersecting) return;
observer.unobserve(this);
fetch(this.dataset.url)
.then((response) => response.text())
.then((text) => {
const html = document.createElement('div');
html.innerHTML = text;
const recommendations = html.querySelector('product-recommendations');
if (recommendations && recommendations.innerHTML.trim().length) {
this.innerHTML = recommendations.innerHTML;
}
if (!this.querySelector('slideshow-component') && this.classList.contains('complementary-products')) {
this.remove();
}
if (html.querySelector('.grid__item')) {
this.classList.add('product-recommendations--loaded');
}
})
.catch((e) => {
console.error(e);
});
};
new IntersectionObserver(handleIntersection.bind(this), { rootMargin: '0px 0px 400px 0px' }).observe(this);
}
}
customElements.define('product-recommendations', ProductRecommendations);
</script>
<script>
/** Shopify CDN: Minification failed
Line 16:0 Transforming const to the configured target environment ("es5") is not supported yet
Line 17:0 Transforming const to the configured target environment ("es5") is not supported yet
Line 18:0 Transforming const to the configured target environment ("es5") is not supported yet
Line 19:0 Transforming const to the configured target environment ("es5") is not supported yet
Line 25:6 Transforming const to the configured target environment ("es5") is not supported yet
Line 39:49 Transforming default arguments to the configured target environment ("es5") is not supported yet
Line 39:79 Transforming default arguments to the configured target environment ("es5") is not supported yet
Line 40:2 Transforming const to the configured target environment ("es5") is not supported yet
Line 50:2 Transforming const to the configured target environment ("es5") is not supported yet
Line 60:2 Transforming const to the configured target environment ("es5") is not supported yet
... and 9 more hidden warnings
**/
const SCROLL_ANIMATION_TRIGGER_CLASSNAME = 'scroll-trigger';
const SCROLL_ANIMATION_OFFSCREEN_CLASSNAME = 'scroll-trigger--offscreen';
const SCROLL_ZOOM_IN_TRIGGER_CLASSNAME = 'animate--zoom-in';
const SCROLL_ANIMATION_CANCEL_CLASSNAME = 'scroll-trigger--cancel';
// Scroll in animation logic
function onIntersection(elements, observer) {
elements.forEach((element, index) => {
if (element.isIntersecting) {
const elementTarget = element.target;
if (elementTarget.classList.contains(SCROLL_ANIMATION_OFFSCREEN_CLASSNAME)) {
elementTarget.classList.remove(SCROLL_ANIMATION_OFFSCREEN_CLASSNAME);
if (elementTarget.hasAttribute('data-cascade'))
elementTarget.setAttribute('style', `--animation-order: ${index};`);
}
observer.unobserve(elementTarget);
} else {
element.target.classList.add(SCROLL_ANIMATION_OFFSCREEN_CLASSNAME);
element.target.classList.remove(SCROLL_ANIMATION_CANCEL_CLASSNAME);
}
});
}
function initializeScrollAnimationTrigger(rootEl = document, isDesignModeEvent = false) {
const animationTriggerElements = Array.from(rootEl.getElementsByClassName(SCROLL_ANIMATION_TRIGGER_CLASSNAME));
if (animationTriggerElements.length === 0) return;
if (isDesignModeEvent) {
animationTriggerElements.forEach((element) => {
element.classList.add('scroll-trigger--design-mode');
});
return;
}
const observer = new IntersectionObserver(onIntersection, {
rootMargin: '0px 0px -50px 0px',
});
animationTriggerElements.forEach((element) => observer.observe(element));
}
// Zoom in animation logic
function initializeScrollZoomAnimationTrigger() {
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
const animationTriggerElements = Array.from(document.getElementsByClassName(SCROLL_ZOOM_IN_TRIGGER_CLASSNAME));
if (animationTriggerElements.length === 0) return;
const scaleAmount = 0.2 / 100;
animationTriggerElements.forEach((element) => {
let elementIsVisible = false;
const observer = new IntersectionObserver((elements) => {
elements.forEach((entry) => {
elementIsVisible = entry.isIntersecting;
});
});
observer.observe(element);
element.style.setProperty('--zoom-in-ratio', 1 + scaleAmount * percentageSeen(element));
window.addEventListener(
'scroll',
throttle(() => {
if (!elementIsVisible) return;
element.style.setProperty('--zoom-in-ratio', 1 + scaleAmount * percentageSeen(element));
}),
{ passive: true }
);
});
}
function percentageSeen(element) {
const viewportHeight = window.innerHeight;
const scrollY = window.scrollY;
const elementPositionY = element.getBoundingClientRect().top + scrollY;
const elementHeight = element.offsetHeight;
if (elementPositionY > scrollY + viewportHeight) {
// If we haven't reached the image yet
return 0;
} else if (elementPositionY + elementHeight < scrollY) {
// If we've completely scrolled past the image
return 100;
}
// When the image is in the viewport
const distance = scrollY + viewportHeight - elementPositionY;
let percentage = distance / ((viewportHeight + elementHeight) / 100);
return Math.round(percentage);
}
window.addEventListener('DOMContentLoaded', () => {
initializeScrollAnimationTrigger();
initializeScrollZoomAnimationTrigger();
});
if (Shopify.designMode) {
document.addEventListener('shopify:section:load', (event) => initializeScrollAnimationTrigger(event.target, true));
document.addEventListener('shopify:section:reorder', () => initializeScrollAnimationTrigger(document, true));
}
</script>
<script>
window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');
</script>
<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/67119169539/digital_wallets/dialog">
<link rel="alternate" type="application/json+oembed" href=".html">
<script async="async" src="https://illuzia.net/"></script>
<script id="shopify-features" type="application/json">
{
"accessToken": "bd35w3423f0855sf383c4483c3cc50a6",
"betas": ["rich-media-storefront-analytics"],
"domain": "https://illuzia.net/",
"predictiveSearch": true,
"shopId": 37356114305,
"smart_payment_buttons_url": "https:\/\/illuzia.net\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/spb.en.js",
"dynamic_checkout_cart_url": "https:\/\/illuzia.net\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/dynamic-checkout-cart.en.js",
"locale": "en",
"optimusEnabled": true,
"optimusHidden": false,
"betterDynamicCheckoutRecommendationVariant": "control",
"shopPromisePDPV3Enabled": false
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "KOITOTO",
"operatingSystem": "ANDROID",
"applicationCategory": "GameApplication",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5",
"ratingCount": "2907771"
},
"offers": {
"@type": "Offer",
"price": "10000.00",
"priceCurrency": "IDR"
}
}
</script>
<script>
var Shopify = Shopify || {};
Shopify.shop = "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online";
Shopify.locale = "en";
Shopify.currency = {
active: "IDR",
rate: "1.0"
};
Shopify.country = "ID";
Shopify.theme = {
name: "Refresh",
id: 138081403093,
theme_store_id: 1567,
role: "main"
};
Shopify.theme.handle = "null";
Shopify.theme.style = {
id: null,
handle: null
};
Shopify.cdnHost = "https://illuzia.net//cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "https://illuzia.net/";
</script>
<script type="module">
! function (o) {
(o.Shopify = o.Shopify || {}).modules = !0
}(window);
</script>
<script>
! function (o) {
function n() {
var o = [];
function n() {
o.push(Array.prototype.slice.apply(arguments))
}
return n.q = o, n
}
var t = o.Shopify = o.Shopify || {};
t.loadFeatures = n(), t.autoloadFeatures = n()
}(window);
</script>
<script id="__st">
var __st = {
a: 67119169539,
offset: 0,
reqid: "816b44e4-400f-420d-8784-4bd8093b92b1",
pageurl: "https://illuzia.net/",
u: "64d86d143528",
p: "product",
rtyp: "product",
rid: 8226828321669
};
</script>
<script>
window.ShopifyPaypalV4VisibilityTracking = true;
</script>
<script>
! function (o) {
o.addEventListener("DOMContentLoaded", function () {
window.Shopify = window.Shopify || {}, window.Shopify.recaptchaV3 = window.Shopify.recaptchaV3 || {
siteKey: "6LcCR2cUAAAAANS1Gpq_mDIJ2pQuJphsSQaUEuc9"
};
var t = ['form[action*="/contact"] input[name="form_type"][value="contact"]', 'form[action*="/comments"] input[name="form_type"][value="new_comment"]', 'form[action*="/account"] input[name="form_type"][value="customer_login"]', 'form[action*="/account"] input[name="form_type"][value="recover_customer_password"]', 'form[action*="/account"] input[name="form_type"][value="create_customer"]', 'form[action*="/contact"] input[name="form_type"][value="customer"]'].join(",");
function n(e) {
e = e.target;
null == e || null != (e = function e(t, n) {
if (null == t.parentElement) return null;
if ("FORM" != t.parentElement.tagName) return e(t.parentElement, n);
for (var o = t.parentElement.action, r = 0; r < n.length; r++)
if (-1 !== o.indexOf(n[r])) return t.parentElement;
return null
}(e, ["/contact", "/comments", "/account"])) && null != e.querySelector(t) && ((e = o.createElement("script")).setAttribute("src", "../../../../cdn.shopify.com/shopifycloud/storefront-recaptcha-v3/v0.6/index.js"), o.body.appendChild(e), o.removeEventListener("focus", n, !0), o.removeEventListener("change", n, !0), o.removeEventListener("click", n, !0))
}
o.addEventListener("click", n, !0), o.addEventListener("change", n, !0), o.addEventListener("focus", n, !0)
})
}(document);
</script>
<script>
!function () { var e = function (e) { var t = { exports: {} }; return e.call(t.exports, t, t.exports), t.exports }, t = function () { function e(e, t) { var r = [], o = !0, n = !1, a = void 0; try { for (var i, s = e[Symbol.iterator](); !(o = (i = s.next()).done) && (r.push(i.value), !t || r.length !== t); o = !0); } catch (e) { n = !0, a = e } finally { try { !o && s.return && s.return() } finally { if (n) throw a } } return r } return function (t, r) { if (Array.isArray(t)) return t; if (Symbol.iterator in Object(t)) return e(t, r); throw new TypeError("Invalid attempt to destructure non-iterable instance") } }(), r = function (e) { return e && e.__esModule ? e : { default: e } }, o = function (e) { if (Array.isArray(e)) { for (var t = 0, r = Array(e.length); t < e.length; t++)r[t] = e[t]; return r } return Array.from(e) }, n = e((function (e, t) { "use strict"; function r(e) { "loading" !== document.readyState ? e() : document.addEventListener ? document.addEventListener("DOMContentLoaded", e) : document.attachEvent("onreadystatechange", (function () { "loading" !== document.readyState && e() })) } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = r })), a = e((function (e, t) { "use strict"; function r(e) { return new Error('The feature { name: "' + e.name + '", version: "' + e.version + '"} does not exist') } function o(e) { return new Error("Could not create registry entry " + e) } function n() { return new Error("Cannot register a feature with the same selector twice") } function a(e) { return new Error("Features should be an Array. Received: " + JSON.stringify(e)) } function i(e) { return new Error('Features should be defined as `{ name: "name", version: "version" }`. Received: ' + JSON.stringify(e)) } function s(e, t) { return new Error(e + " has already been loaded at version " + t) } Object.defineProperty(t, "__esModule", { value: !0 }), t.featureNotFound = r, t.couldNotCreateEntry = o, t.couldNotAddToQuerySelectors = n, t.invalidFeaturesArray = a, t.invalidFeature = i, t.alreadyLoaded = s })), i = e((function (e, t) { "use strict"; function r() { if (a) return a; var e = document.getElementById("shopify-features"); if (e) try { a = JSON.parse(e.textContent) } catch (e) { } else a = {}; return a } function o() { var e = r(); if (e) try { return e.betas.reduce((function (e, t) { return e[t] = !0, e }), {}) } catch (e) { } return {} } function n() { return r().locale || "en" } Object.defineProperty(t, "__esModule", { value: !0 }), t.getBetas = o, t.getLocale = n; var a = void 0 })), s = e((function (e, t) { "use strict"; function r() { } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = r })), u = e((function (e, t) { "use strict"; function r() { function e(e, t) { r[e] = r[e] || []; for (var o = r[e], n = 0; n < o.length; n++) { var i = o[n], s = i.name, u = i.version; if (t.name === s) { if (t.version !== u) throw (0, a.couldNotAddToQuerySelectors)(e); return } } o.push(t) } function t() { return Object.keys(r).reduce((function (e, t) { if (!document.querySelector(t)) return e; var o = r[t]; return delete r[t], e.concat(o) }), []) } var r = {}; return { add: e, getFeatures: t } } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = r })), l = e((function (e, t) { "use strict"; function r(e) { var t = e.name, r = e.baseName, o = e.version, n = e.betaFlag, s = e.fileName, l = e.fileNames, d = e.legacy, c = e.localized, f = e.localesSupported, h = e.autoLoadSelector, v = e.props, y = void 0 === v ? {} : v, m = t + "@" + (o || "latest"); if (u[m]) throw (0, a.couldNotCreateEntry)(m); h && (Array.isArray(h) ? h : [h]).forEach((function (e) { p.lookup.add(e, { name: t, version: o }) })); u[m] = { props: y, betaFlag: n, scriptId: m, name: t, baseName: r, version: o, locale: (0, i.getLocale)(), localized: c, localesSupported: f, legacy: d, fileName: s, fileNames: l } } function o() { l = {} } function n(e) { window.Shopify.modules ? (e.legacy = !1, e.props = { type: "module" }, r(e)) : e.hasLegacy && (e.legacy = !0, e.props = { nomodule: "" }, r(e)) } function s(e) { var t = e.name + "@" + (e.version || "latest"), r = u[t]; if (!r) throw (0, a.featureNotFound)(e); var o = r.name, n = r.baseName, i = r.version, s = r.localized && r.locale, d = r.legacy, c = r.localesSupported; if (l[o] && l[o] !== i) throw (0, a.alreadyLoaded)(t, l[o]); l[o] = i; var f = []; return (r.fileNames || [r.fileName]).forEach((function (e) { f.push((0, h.urlForFeature)({ name: o, baseName: n, version: i, legacy: d, locale: s, localesSupported: c, fileName: e })) })), 1 === f.length ? r.src = f[0] : f.length > 1 && (r.srcs = f), r } Object.defineProperty(t, "__esModule", { value: !0 }), t.reset = o, t.register = n, t.getEntry = s; var u = {}, l = {} })), d = e((function (e, t) { "use strict"; function r() { n = null } function o(e) { return n ? n[e] : (n = (0, i.getBetas)(), o(e)) } Object.defineProperty(t, "__esModule", { value: !0 }), t.resetBetas = r, t.default = o; var n = null })), c = e((function (e, t) { "use strict"; function r(e) { return a.indexOf(e) > -1 } function o(e) { return i.indexOf(e) > -1 } function n(e, t, n) { function s() { a.push(c), d(), n(null, c) } function u() { i.push(c), d(), n(new Error("load error: " + e)) } function l() { c.addEventListener("load", s), c.addEventListener("error", u) } function d() { c.removeEventListener("load", s), c.removeEventListener("error", u) } var c = document.querySelector('script[src="' + e + '"]'); c && r(c) ? s() : c && o(c) ? u() : c ? l() : (c = document.createElement("script"), Object.keys(t).forEach((function (e) { c.setAttribute(e, t[e]) })), null === c.getAttribute("defer") && c.setAttribute("defer", ""), c.src = e, c.crossorigin = "anonymous", l(), document.head.appendChild(c)) } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = n; var a = [], i = [] })), f = e((function (e, o) { "use strict"; function n(e, t, r) { return e.reduce((function (e, o) { var n = o.onLoad || v.default; try { var i = (0, l.getEntry)(o), s = i.betaFlag, u = !s || (0, h.default)(s); if (r && !u) throw (0, a.featureNotFound)(o); u && e.push([i, o]) } catch (e) { n(e), t.push(e) } return e }), []) } function i(e, r, o) { var n = e.reduce((function (e, r) { var o = t(r, 1)[0]; return e + (o.srcs ? o.srcs.length : 1) }), 0); 0 !== n ? e.forEach((function (e) { var a = t(e, 2), i = a[0], s = a[1].onLoad || v.default, u = i.srcs || [i.src], l = u.length, d = []; u.forEach((function (e) { (0, y.default)(e, i.props, (function (e) { e && (r.push(e), d.push(e)), 0 === --l && (0 === d.length ? s(null) : 1 === d.length ? s(d[0]) : s(d)), 0 === --n && o(r) })) })) })) : o(r) } function u(e, t, r) { var o = []; i(n(e, o, t), o, (function (e) { var t = 0 === e.length ? null : e; r(t) })) } function f(e, t) { u(e, !0, t) } function p(e, t) { u(e, !1, t) } Object.defineProperty(o, "__esModule", { value: !0 }), o.loadMultiple = u, o.loadMultipleErrorIfNotInBeta = f, o.loadMultipleSilentIfNotInBeta = p; var h = r(d), v = r(s), y = r(c) })), p = e((function (e, t) { "use strict"; function o(e) { var t = e || n.default; (0, f.loadMultipleSilentIfNotInBeta)(a.getFeatures(), t) } Object.defineProperty(t, "__esModule", { value: !0 }), t.lookup = void 0, t.default = o; var n = r(s), a = (0, r(u).default)(); t.lookup = a })), h = e((function (e, t) { "use strict"; function r(e) { var t = e.name, r = e.version, o = e.legacy, n = e.baseName, a = void 0 === n ? null : n, i = e.locale, s = void 0 === i ? null : i, u = e.localesSupported, l = void 0 === u ? [] : u, d = e.fileName, c = a || t, f = (void 0 === d ? null : d) || c; if (f.endsWith(".js") && (f = f.slice(0, -3)), o && (f += "-legacy"), s && (f = f + "." + (s = 0 === l.length || l.includes(s) ? s : "en")), ("shop-js" === t || t.startsWith("shop-js/")) && window.Shopify.spinShopJsUrl) return "https://" + window.Shopify.spinShopJsUrl + "/" + f + ".js"; var p = [window.Shopify && window.Shopify.cdnHost || "cdn.shopify.com", "shopifycloud", c]; return void 0 !== r && p.push("v" + r), p.push(f + ".js"), "https://" + p.join("/") } Object.defineProperty(t, "__esModule", { value: !0 }), t.urlForFeature = r })), v = e((function (e, t) { "use strict"; function r(e) { if (!e || "string" != typeof e.name || "string" != typeof e.version) throw (0, a.invalidFeature)(e) } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = r })), y = e((function (e, t) { "use strict"; function o(e, t) { var r = t || i.default; if (Array.isArray(e)) return e.forEach(n.default), void (0, f.loadMultipleErrorIfNotInBeta)(e, r); throw (0, a.invalidFeaturesArray)(e) } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = o; var n = r(v), i = r(s) })), m = e((function (e, t) { "use strict"; function r(e) { var t = null; return { get isObserving() { return Boolean(t) }, enable: function () { this.isObserving || (t = new MutationObserver((function (t) { for (var r = !1, o = 0; o < t.length; o++)if (t[o].addedNodes.length) { r = !0; break } r && e() }))).observe(document.body, { childList: !0, subtree: !0 }) }, disable: function () { this.isObserving && (t.disconnect(), t = null) } } } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = r })), g = e((function (e, t) { "use strict"; function r(e, t) { var r = window.Shopify[e] && window.Shopify[e].q; r && Array.isArray(r) && r.forEach((function (e) { t.apply(void 0, o(e)) })), window.Shopify[e] = t } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = r })); e((function (e, t) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.resetRegistry = t.resetBetas = t.register = void 0; var o = r(n), a = r(y), i = r(p), s = r(m), u = r(g); t.register = l.register, t.resetBetas = d.resetBetas, t.resetRegistry = l.reset, window.Shopify = window.Shopify || {}, window.Shopify.featureAssets = window.Shopify.featureAssets || {}, window.Shopify.featureAssets["shop-js"] = window.Shopify.featureAssets["shop-js"] || {}, (0, l.register)({ name: "model-viewer", version: "0.6", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="0.6"]' }), (0, l.register)({ name: "model-viewer", version: "0.7", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="0.7"]' }), (0, l.register)({ name: "model-viewer", version: "0.8", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="0.8"]' }), (0, l.register)({ name: "model-viewer", version: "1.2", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="1.2"]' }), (0, l.register)({ name: "model-viewer", version: "1.7", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="1.7"]' }), (0, l.register)({ name: "model-viewer", version: "1.9", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="1.9"]' }), (0, l.register)({ name: "model-viewer", version: "1.10", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="1.10"]' }), (0, l.register)({ name: "model-viewer", version: "1.11", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="1.11"]' }), (0, l.register)({ name: "model-viewer", version: "1.12", hasLegacy: !0, autoLoadSelector: 'model-viewer[data-shopify-feature="1.12"]' }), (0, l.register)({ name: "shop-js/shopify-payment-terms", baseName: "shop-js", hasLegacy: !1, localized: !1, fileNames: Shopify.featureAssets["shop-js"]["payment-terms"] || ["client"], autoLoadSelector: ["shopify-payment-terms"] }), (0, l.register)({ name: "shop-js/shop-login-button", baseName: "shop-js", hasLegacy: !1, localized: !1, fileNames: Shopify.featureAssets["shop-js"]["login-button"] || ["client"], autoLoadSelector: ["shop-login-button"] }), (0, l.register)({ name: "model-viewer-ui", version: "1.0", hasLegacy: !0, localized: !0, localesSupported: ["bg-BG", "cs", "da", "de", "el", "es", "fi", "fr", "hi", "hr-HR", "hu", "id", "it", "ja", "ko", "lt-LT", "ms", "nb", "nl", "pl", "pt-BR", "pt-PT", "ro-RO", "ru", "sk-SK", "sl-SI", "sv", "th", "tr", "vi", "zh-CN", "zh-TW"] }), (0, l.register)({ name: "shopify-xr", version: "1.0", baseName: "shopify-xr-js", fileName: "shopify-xr", localized: !0, localesSupported: ["bg-BG", "cs", "da", "de", "el", "es", "fi", "fr", "hi", "hr-HR", "hu", "id", "it", "ja", "ko", "lt-LT", "ms", "nb", "nl", "pl", "pt-BR", "pt-PT", "ro-RO", "ru", "sk-SK", "sl-SI", "sv", "th", "tr", "vi", "zh-CN", "zh-TW"] }), (0, l.register)({ name: "video-ui", baseName: "shopify-plyr", version: "1.0", hasLegacy: !0, localized: !0, localesSupported: ["cs", "da", "de", "es", "fi", "fr", "hi", "it", "ja", "ko", "ms", "nb", "nl", "pl", "pt-BR", "pt-PT", "sv", "th", "tr", "zh-CN", "zh-TW"] }), (0, l.register)({ name: "video-ui", baseName: "shopify-plyr", version: "1.1", hasLegacy: !0, localized: !0, localesSupported: ["cs", "da", "de", "es", "fi", "fr", "hi", "it", "ja", "ko", "ms", "nb", "nl", "pl", "pt-BR", "pt-PT", "sv", "th", "tr", "zh-CN", "zh-TW"] }), (0, l.register)({ name: "video-ui", baseName: "plyr", version: "2.0", hasLegacy: !0, localized: !0, localesSupported: ["bg-BG", "cs", "da", "de", "el", "es", "fi", "fr", "hi", "hr-HR", "hu", "id", "it", "ja", "ko", "lt-LT", "ms", "nb", "nl", "pl", "pt-BR", "pt-PT", "ro-RO", "ru", "sk-SK", "sl-SI", "sv", "th", "tr", "vi", "zh-CN", "zh-TW"], fileName: "shopify-plyr" }), (0, l.register)({ name: "media-analytics", version: "0.1", hasLegacy: !0, fileName: "analytics", betaFlag: "rich-media-storefront-analytics", autoLoadSelector: ["video", "model-viewer", 'a[rel="ar"]', 'a[href*="package=com.google.ar.core;action=android.intent.action.VIEW;"]', "[data-shopify-xr]", 'iframe[src^="https://www.youtube.com/embed/"]', 'iframe[src^="https://player.vimeo.com/video/"]'] }), (0, l.register)({ name: "consent-tracking-api", version: "0.1", hasLegacy: !0 }), (0, o.default)((function () { function e() { (0, i.default)((function (e) { if (e) throw e[0] })) } (0, u.default)("loadFeatures", a.default), (0, u.default)("autoloadFeatures", i.default), e(), (0, s.default)(e).enable() })) })) }("undefined" != typeof global ? global : "undefined" != typeof window && window);
</script>
<script>
!function () {
var t = function (t) { var n = { exports: {} }; return t.call(n.exports, n, n.exports), n.exports }, n = function (t) { return t && t.__esModule ? t : { default: t } }, e = t((function (t) { var n = {}.toString; t.exports = function (t) { return n.call(t).slice(8, -1) } })), r = t((function (t) { var n = t.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); "number" == typeof __g && (__g = n) })), o = t((function (t) { var n = "__core-js_shared__", e = r[n] || (r[n] = {}); t.exports = function (t) { return e[t] || (e[t] = {}) } })), i = t((function (t) { var n = 0, e = Math.random(); t.exports = function (t) { return "Symbol(".concat(void 0 === t ? "" : t, ")_", (++n + e).toString(36)) } })), u = t((function (t) { var n = o("wks"), e = r.Symbol, u = "function" == typeof e; (t.exports = function (t) { return n[t] || (n[t] = u && e[t] || (u ? e : i)("Symbol." + t)) }).store = n })), c = t((function (t) { var n = u("toStringTag"), r = "Arguments" == e(function () { return arguments }()), o = function (t, n) { try { return t[n] } catch (t) { } }; t.exports = function (t) { var i, u, c; return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof (u = o(i = Object(t), n)) ? u : r ? e(i) : "Object" == (c = e(i)) && "function" == typeof i.callee ? "Arguments" : c } })), s = t((function (t) { t.exports = function (t) { return "object" == typeof t ? null !== t : "function" == typeof t } })), a = t((function (t) { t.exports = function (t) { if (!s(t)) throw TypeError(t + " is not an object!"); return t } })), f = t((function (t) { t.exports = function (t) { try { return !!t() } catch (t) { return !0 } } })), l = t((function (t) { t.exports = !f((function () { return 7 != Object.defineProperty({}, "a", { get: function () { return 7 } }).a })) })), p = t((function (t) { var n = r.document, e = s(n) && s(n.createElement); t.exports = function (t) { return e ? n.createElement(t) : {} } })), h = t((function (t) { t.exports = !l && !f((function () { return 7 != Object.defineProperty(p("div"), "a", { get: function () { return 7 } }).a })) })), d = t((function (t) { t.exports = function (t, n) { if (!s(t)) return t; var e, r; if (n && "function" == typeof (e = t.toString) && !s(r = e.call(t))) return r; if ("function" == typeof (e = t.valueOf) && !s(r = e.call(t))) return r; if (!n && "function" == typeof (e = t.toString) && !s(r = e.call(t))) return r; throw TypeError("Can't convert object to primitive value") } })), y = t((function (t, n) { var e = Object.defineProperty; n.f = l ? Object.defineProperty : function (t, n, r) { if (a(t), n = d(n, !0), a(r), h) try { return e(t, n, r) } catch (t) { } if ("get" in r || "set" in r) throw TypeError("Accessors not supported!"); return "value" in r && (t[n] = r.value), t } })), v = t((function (t) { t.exports = function (t, n) { return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: n } } })), m = t((function (t) { t.exports = l ? function (t, n, e) { return y.f(t, n, v(1, e)) } : function (t, n, e) { return t[n] = e, t } })), b = t((function (t) { var n = {}.hasOwnProperty; t.exports = function (t, e) { return n.call(t, e) } })), _ = t((function (t) { var n = t.exports = { version: "2.5.1" }; "number" == typeof __e && (__e = n) })), w = t((function (t) { var n = i("src"), e = "toString", o = Function[e], u = ("" + o).split(e); _.inspectSource = function (t) { return o.call(t) }, (t.exports = function (t, e, o, i) { var c = "function" == typeof o; c && (b(o, "name") || m(o, "name", e)), t[e] !== o && (c && (b(o, n) || m(o, n, t[e] ? "" + t[e] : u.join(String(e)))), t === r ? t[e] = o : i ? t[e] ? t[e] = o : m(t, e, o) : (delete t[e], m(t, e, o))) })(Function.prototype, e, (function () { return "function" == typeof this && this[n] || o.call(this) })) })), x = (t((function () { "use strict"; var t = {}; t[u("toStringTag")] = "z", t + "" != "[object z]" && w(Object.prototype, "toString", (function () { return "[object " + c(this) + "]" }), !0) })), t((function (t) { var n = Math.ceil, e = Math.floor; t.exports = function (t) { return isNaN(t = +t) ? 0 : (t > 0 ? e : n)(t) } }))), g = t((function (t) { t.exports = function (t) { if (null == t) throw TypeError("Can't call method on " + t); return t } })), A = t((function (t) { t.exports = function (t) { return function (n, e) { var r, o, i = String(g(n)), u = x(e), c = i.length; return u < 0 || u >= c ? t ? "" : void 0 : (r = i.charCodeAt(u)) < 55296 || r > 56319 || u + 1 === c || (o = i.charCodeAt(u + 1)) < 56320 || o > 57343 ? t ? i.charAt(u) : r : t ? i.slice(u, u + 2) : o - 56320 + (r - 55296 << 10) + 65536 } } })), S = t((function (t) { t.exports = !1 })), P = t((function (t) { t.exports = function (t) { if ("function" != typeof t) throw TypeError(t + " is not a function!"); return t } })), E = t((function (t) { t.exports = function (t, n, e) { if (P(t), void 0 === n) return t; switch (e) { case 1: return function (e) { return t.call(n, e) }; case 2: return function (e, r) { return t.call(n, e, r) }; case 3: return function (e, r, o) { return t.call(n, e, r, o) } }return function () { return t.apply(n, arguments) } } })), O = t((function (t) { var n = "prototype", e = function (t, o, i) { var u, c, s, a, f = t & e.F, l = t & e.G, p = t & e.S, h = t & e.P, d = t & e.B, y = l ? r : p ? r[o] || (r[o] = {}) : (r[o] || {})[n], v = l ? _ : _[o] || (_[o] = {}), b = v[n] || (v[n] = {}); for (u in l && (i = o), i) s = ((c = !f && y && void 0 !== y[u]) ? y : i)[u], a = d && c ? E(s, r) : h && "function" == typeof s ? E(Function.call, s) : s, y && w(y, u, s, t & e.U), v[u] != s && m(v, u, a), h && b[u] != s && (b[u] = s) }; r.core = _, e.F = 1, e.G = 2, e.S = 4, e.P = 8, e.B = 16, e.W = 32, e.U = 64, e.R = 128, t.exports = e })), T = t((function (t) { t.exports = {} })), j = t((function (t) { t.exports = Object("z").propertyIsEnumerable(0) ? Object : function (t) { return "String" == e(t) ? t.split("") : Object(t) } })), F = t((function (t) { t.exports = function (t) { return j(g(t)) } })), k = t((function (t) { var n = Math.min; t.exports = function (t) { return t > 0 ? n(x(t), 9007199254740991) : 0 } })), B = t((function (t) { var n = Math.max, e = Math.min; t.exports = function (t, r) { return (t = x(t)) < 0 ? n(t + r, 0) : e(t, r) } })), L = t((function (t) { t.exports = function (t) { return function (n, e, r) { var o, i = F(n), u = k(i.length), c = B(r, u); if (t && e != e) { for (; u > c;)if ((o = i[c++]) != o) return !0 } else for (; u > c; c++)if ((t || c in i) && i[c] === e) return t || c || 0; return !t && -1 } } })), M = t((function (t) { var n = o("keys"); t.exports = function (t) { return n[t] || (n[t] = i(t)) } })), C = t((function (t) { var n = L(!1), e = M("IE_PROTO"); t.exports = function (t, r) { var o, i = F(t), u = 0, c = []; for (o in i) o != e && b(i, o) && c.push(o); for (; r.length > u;)b(i, o = r[u++]) && (~n(c, o) || c.push(o)); return c } })), I = t((function (t) { t.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",") })), R = t((function (t) { t.exports = Object.keys || function (t) { return C(t, I) } })), D = t((function (t) { t.exports = l ? Object.defineProperties : function (t, n) { a(t); for (var e, r = R(n), o = r.length, i = 0; o > i;)y.f(t, e = r[i++], n[e]); return t } })), U = t((function (t) { var n = r.document; t.exports = n && n.documentElement })), N = t((function (t) { var n = M("IE_PROTO"), e = function () { }, r = "prototype", o = function () { var t, n = p("iframe"), e = I.length, i = "<", u = ">"; for (n.style.display = "none", U.appendChild(n), n.src = "javascript:", (t = n.contentWindow.document).open(), t.write(i + "script" + u + "document.F=Object" + i + "/script" + u), t.close(), o = t.F; e--;)delete o[r][I[e]]; return o() }; t.exports = Object.create || function (t, i) { var u; return null !== t ? (e[r] = a(t), u = new e, e[r] = null, u[n] = t) : u = o(), void 0 === i ? u : D(u, i) } })), G = t((function (t) { var n = y.f, e = u("toStringTag"); t.exports = function (t, r, o) { t && !b(t = o ? t : t.prototype, e) && n(t, e, { configurable: !0, value: r }) } })), H = t((function (t) { "use strict"; var n = {}; m(n, u("iterator"), (function () { return this })), t.exports = function (t, e, r) { t.prototype = N(n, { next: v(1, r) }), G(t, e + " Iterator") } })), q = t((function (t) { t.exports = function (t) { return Object(g(t)) } })), z = t((function (t) { var n = M("IE_PROTO"), e = Object.prototype; t.exports = Object.getPrototypeOf || function (t) { return t = q(t), b(t, n) ? t[n] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? e : null } })), V = t((function (t) { "use strict"; var n = u("iterator"), e = !([].keys && "next" in [].keys()), r = "@@iterator", o = "keys", i = "values", c = function () { return this }; t.exports = function (t, u, s, a, f, l, p) { H(s, u, a); var h, d, y, v = function (t) { if (!e && t in A) return A[t]; switch (t) { case o: case i: return function () { return new s(this, t) } }return function () { return new s(this, t) } }, _ = u + " Iterator", x = f == i, g = !1, A = t.prototype, P = A[n] || A[r] || f && A[f], E = P || v(f), j = f ? x ? v("entries") : E : void 0, F = "Array" == u && A.entries || P; if (F && (y = z(F.call(new t))) !== Object.prototype && y.next && (G(y, _, !0), S || b(y, n) || m(y, n, c)), x && P && P.name !== i && (g = !0, E = function () { return P.call(this) }), S && !p || !e && !g && A[n] || m(A, n, E), T[u] = E, T[_] = c, f) if (h = { values: x ? E : v(i), keys: l ? E : v(o), entries: j }, p) for (d in h) d in A || w(A, d, h[d]); else O(O.P + O.F * (e || g), u, h); return h } })), W = (t((function () { "use strict"; var t = A(!0); V(String, "String", (function (t) { this._t = String(t), this._i = 0 }), (function () { var n, e = this._t, r = this._i; return r >= e.length ? { value: void 0, done: !0 } : (n = t(e, r), this._i += n.length, { value: n, done: !1 }) })) })), t((function (t) { var n = u("unscopables"), e = Array.prototype; null == e[n] && m(e, n, {}), t.exports = function (t) { e[n][t] = !0 } }))), K = t((function (t) { t.exports = function (t, n) { return { value: n, done: !!t } } })), J = t((function (t) { "use strict"; t.exports = V(Array, "Array", (function (t, n) { this._t = F(t), this._i = 0, this._k = n }), (function () { var t = this._t, n = this._k, e = this._i++; return !t || e >= t.length ? (this._t = void 0, K(1)) : K(0, "keys" == n ? e : "values" == n ? t[e] : [e, t[e]]) }), "values"), T.Arguments = T.Array, W("keys"), W("values"), W("entries") })), X = (t((function () { for (var t = u("iterator"), n = u("toStringTag"), e = T.Array, o = { CSSRuleList: !0, CSSStyleDeclaration: !1, CSSValueList: !1, ClientRectList: !1, DOMRectList: !1, DOMStringList: !1, DOMTokenList: !0, DataTransferItemList: !1, FileList: !1, HTMLAllCollection: !1, HTMLCollection: !1, HTMLFormElement: !1, HTMLSelectElement: !1, MediaList: !0, MimeTypeArray: !1, NamedNodeMap: !1, NodeList: !0, PaintRequestList: !1, Plugin: !1, PluginArray: !1, SVGLengthList: !1, SVGNumberList: !1, SVGPathSegList: !1, SVGPointList: !1, SVGStringList: !1, SVGTransformList: !1, SourceBufferList: !1, StyleSheetList: !0, TextTrackCueList: !1, TextTrackList: !1, TouchList: !1 }, i = R(o), c = 0; c < i.length; c++) { var s, a = i[c], f = o[a], l = r[a], p = l && l.prototype; if (p && (p[t] || m(p, t, e), p[n] || m(p, n, a), T[a] = e, f)) for (s in J) p[s] || w(p, s, J[s], !0) } })), t((function (t) { t.exports = function (t, n, e, r) { if (!(t instanceof n) || void 0 !== r && r in t) throw TypeError(e + ": incorrect invocation!"); return t } }))), Y = t((function (t) { t.exports = function (t, n, e, r) { try { return r ? n(a(e)[0], e[1]) : n(e) } catch (n) { var o = t.return; throw void 0 !== o && a(o.call(t)), n } } })), $ = t((function (t) { var n = u("iterator"), e = Array.prototype; t.exports = function (t) { return void 0 !== t && (T.Array === t || e[n] === t) } })), Q = t((function (t) { var n = u("iterator"); t.exports = _.getIteratorMethod = function (t) { if (null != t) return t[n] || t["@@iterator"] || T[c(t)] } })), Z = t((function (t, n) { var e = {}, r = {}; (n = t.exports = function (t, n, o, i, u) { var c, s, f, l, p = u ? function () { return t } : Q(t), h = E(o, i, n ? 2 : 1), d = 0; if ("function" != typeof p) throw TypeError(t + " is not iterable!"); if ($(p)) { for (c = k(t.length); c > d; d++)if ((l = n ? h(a(s = t[d])[0], s[1]) : h(t[d])) === e || l === r) return l } else for (f = p.call(t); !(s = f.next()).done;)if ((l = Y(f, h, s.value, n)) === e || l === r) return l }).BREAK = e, n.RETURN = r })), tt = t((function (t) { var n = u("species"); t.exports = function (t, e) { var r, o = a(t).constructor; return void 0 === o || null == (r = a(o)[n]) ? e : P(r) } })), nt = t((function (t) { t.exports = function (t, n, e) { var r = void 0 === e; switch (n.length) { case 0: return r ? t() : t.call(e); case 1: return r ? t(n[0]) : t.call(e, n[0]); case 2: return r ? t(n[0], n[1]) : t.call(e, n[0], n[1]); case 3: return r ? t(n[0], n[1], n[2]) : t.call(e, n[0], n[1], n[2]); case 4: return r ? t(n[0], n[1], n[2], n[3]) : t.call(e, n[0], n[1], n[2], n[3]) }return t.apply(e, n) } })), et = t((function (t) { var n, o, i, u = r.process, c = r.setImmediate, s = r.clearImmediate, a = r.MessageChannel, f = r.Dispatch, l = 0, h = {}, d = "onreadystatechange", y = function () { var t = +this; if (h.hasOwnProperty(t)) { var n = h[t]; delete h[t], n() } }, v = function (t) { y.call(t.data) }; c && s || (c = function (t) { for (var e = [], r = 1; arguments.length > r;)e.push(arguments[r++]); return h[++l] = function () { nt("function" == typeof t ? t : Function(t), e) }, n(l), l }, s = function (t) { delete h[t] }, "process" == e(u) ? n = function (t) { u.nextTick(E(y, t, 1)) } : f && f.now ? n = function (t) { f.now(E(y, t, 1)) } : a ? (i = (o = new a).port2, o.port1.onmessage = v, n = E(i.postMessage, i, 1)) : r.addEventListener && "function" == typeof postMessage && !r.importScripts ? (n = function (t) { r.postMessage(t + "", "*") }, r.addEventListener("message", v, !1)) : n = d in p("script") ? function (t) { U.appendChild(p("script"))[d] = function () { U.removeChild(this), y.call(t) } } : function (t) { setTimeout(E(y, t, 1), 0) }), t.exports = { set: c, clear: s } })), rt = t((function (t) { var n = et.set, o = r.MutationObserver || r.WebKitMutationObserver, i = r.process, u = r.Promise, c = "process" == e(i); t.exports = function () { var t, e, s, a = function () { var n, r; for (c && (n = i.domain) && n.exit(); t;) { r = t.fn, t = t.next; try { r() } catch (n) { throw t ? s() : e = void 0, n } } e = void 0, n && n.enter() }; if (c) s = function () { i.nextTick(a) }; else if (o) { var f = !0, l = document.createTextNode(""); new o(a).observe(l, { characterData: !0 }), s = function () { l.data = f = !f } } else if (u && u.resolve) { var p = u.resolve(); s = function () { p.then(a) } } else s = function () { n.call(r, a) }; return function (n) { var r = { fn: n, next: void 0 }; e && (e.next = r), t || (t = r, s()), e = r } } })), ot = t((function (t) { "use strict"; function n(t) { var n, e; this.promise = new t((function (t, r) { if (void 0 !== n || void 0 !== e) throw TypeError("Bad Promise constructor"); n = t, e = r })), this.resolve = P(n), this.reject = P(e) } t.exports.f = function (t) { return new n(t) } })), it = t((function (t) { t.exports = function (t) { try { return { e: !1, v: t() } } catch (t) { return { e: !0, v: t } } } })), ut = t((function (t) { t.exports = function (t, n) { if (a(t), s(n) && n.constructor === t) return n; var e = ot.f(t); return (0, e.resolve)(n), e.promise } })), ct = t((function (t) { t.exports = function (t, n, e) { for (var r in n) w(t, r, n[r], e); return t } })), st = t((function (t) { "use strict"; var n = u("species"); t.exports = function (t) { var e = r[t]; l && e && !e[n] && y.f(e, n, { configurable: !0, get: function () { return this } }) } })), at = t((function (t) { var n = u("iterator"), e = !1; try { var r = [7][n](); r.return = function () { e = !0 }, Array.from(r, (function () { throw 2 })) } catch (t) { } t.exports = function (t, r) { if (!r && !e) return !1; var o = !1; try { var i = [7], u = i[n](); u.next = function () { return { done: o = !0 } }, i[n] = function () { return u }, t(i) } catch (t) { } return o } })), ft = (t((function () { "use strict"; var t, n, e, o, i = et.set, a = rt(), f = "Promise", l = r.TypeError, p = r.process, h = r[f], d = "process" == c(p), y = function () { }, v = n = ot.f, m = !!function () { try { var t = h.resolve(1), n = (t.constructor = {})[u("species")] = function (t) { t(y, y) }; return (d || "function" == typeof PromiseRejectionEvent) && t.then(y) instanceof n } catch (t) { } }(), b = function (t) { var n; return !(!s(t) || "function" != typeof (n = t.then)) && n }, w = function (t, n) { if (!t._n) { t._n = !0; var e = t._c; a((function () { for (var r = t._v, o = 1 == t._s, i = 0, u = function (n) { var e, i, u = o ? n.ok : n.fail, c = n.resolve, s = n.reject, a = n.domain; try { u ? (o || (2 == t._h && A(t), t._h = 1), !0 === u ? e = r : (a && a.enter(), e = u(r), a && a.exit()), e === n.promise ? s(l("Promise-chain cycle")) : (i = b(e)) ? i.call(e, c, s) : c(e)) : s(r) } catch (t) { s(t) } }; e.length > i;)u(e[i++]); t._c = [], t._n = !1, n && !t._h && x(t) })) } }, x = function (t) { i.call(r, (function () { var n, e, o, i = t._v, u = g(t); if (u && (n = it((function () { d ? p.emit("unhandledRejection", i, t) : (e = r.onunhandledrejection) ? e({ promise: t, reason: i }) : (o = r.console) && o.error && o.error("Unhandled promise rejection", i) })), t._h = d || g(t) ? 2 : 1), t._a = void 0, u && n.e) throw n.v })) }, g = function (t) { if (1 == t._h) return !1; for (var n, e = t._a || t._c, r = 0; e.length > r;)if ((n = e[r++]).fail || !g(n.promise)) return !1; return !0 }, A = function (t) { i.call(r, (function () { var n; d ? p.emit("rejectionHandled", t) : (n = r.onrejectionhandled) && n({ promise: t, reason: t._v }) })) }, T = function (t) { var n = this; n._d || (n._d = !0, (n = n._w || n)._v = t, n._s = 2, n._a || (n._a = n._c.slice()), w(n, !0)) }, j = function (t) { var n, e = this; if (!e._d) { e._d = !0, e = e._w || e; try { if (e === t) throw l("Promise can't be resolved itself"); (n = b(t)) ? a((function () { var r = { _w: e, _d: !1 }; try { n.call(t, E(j, r, 1), E(T, r, 1)) } catch (t) { T.call(r, t) } })) : (e._v = t, e._s = 1, w(e, !1)) } catch (t) { T.call({ _w: e, _d: !1 }, t) } } }; m || (h = function (n) { X(this, h, f, "_h"), P(n), t.call(this); try { n(E(j, this, 1), E(T, this, 1)) } catch (t) { T.call(this, t) } }, (t = function () { this._c = [], this._a = void 0, this._s = 0, this._d = !1, this._v = void 0, this._h = 0, this._n = !1 }).prototype = ct(h.prototype, { then: function (t, n) { var e = v(tt(this, h)); return e.ok = "function" != typeof t || t, e.fail = "function" == typeof n && n, e.domain = d ? p.domain : void 0, this._c.push(e), this._a && this._a.push(e), this._s && w(this, !1), e.promise }, catch: function (t) { return this.then(void 0, t) } }), e = function () { var n = new t; this.promise = n, this.resolve = E(j, n, 1), this.reject = E(T, n, 1) }, ot.f = v = function (t) { return t === h || t === o ? new e(t) : n(t) }), O(O.G + O.W + O.F * !m, { Promise: h }), G(h, f), st(f), o = _[f], O(O.S + O.F * !m, f, { reject: function (t) { var n = v(this); return (0, n.reject)(t), n.promise } }), O(O.S + O.F * (S || !m), f, { resolve: function (t) { return ut(S && this === o ? h : this, t) } }), O(O.S + O.F * !(m && at((function (t) { h.all(t).catch(y) }))), f, { all: function (t) { var n = this, e = v(n), r = e.resolve, o = e.reject, i = it((function () { var e = [], i = 0, u = 1; Z(t, !1, (function (t) { var c = i++, s = !1; e.push(void 0), u++, n.resolve(t).then((function (t) { s || (s = !0, e[c] = t, --u || r(e)) }), o) })), --u || r(e) })); return i.e && o(i.v), e.promise }, race: function (t) { var n = this, e = v(n), r = e.reject, o = it((function () { Z(t, !1, (function (t) { n.resolve(t).then(e.resolve, r) })) })); return o.e && r(o.v), e.promise } }) })), t((function (t) { t.exports = _.Promise })), t((function (t) { t.exports = Array.isArray || function (t) { return "Array" == e(t) } }))), lt = (t((function () { O(O.S, "Array", { isArray: ft }) })), t((function (t) { "use strict"; t.exports = function (t, n, e) { n in t ? y.f(t, n, v(0, e)) : t[n] = e } }))), pt = (t((function () { "use strict"; O(O.S + O.F * !at((function (t) { Array.from(t) })), "Array", { from: function (t) { var n, e, r, o, i = q(t), u = "function" == typeof this ? this : Array, c = arguments.length, s = c > 1 ? arguments[1] : void 0, a = void 0 !== s, f = 0, l = Q(i); if (a && (s = E(s, c > 2 ? arguments[2] : void 0, 2)), null == l || u == Array && $(l)) for (e = new u(n = k(i.length)); n > f; f++)lt(e, f, a ? s(i[f], f) : i[f]); else for (o = l.call(i), e = new u; !(r = o.next()).done; f++)lt(e, f, a ? Y(o, s, [r.value, f], !0) : r.value); return e.length = f, e } }) })), t((function () { "use strict"; O(O.S + O.F * f((function () { function t() { } return !(Array.of.call(t) instanceof t) })), "Array", { of: function () { for (var t = 0, n = arguments.length, e = new ("function" == typeof this ? this : Array)(n); n > t;)lt(e, t, arguments[t++]); return e.length = n, e } }) })), t((function (t) { "use strict"; t.exports = function (t, n) { return !!t && f((function () { n ? t.call(null, (function () { }), 1) : t.call(null) })) } }))), ht = (t((function () { "use strict"; var t = [].join; O(O.P + O.F * (j != Object || !pt(t)), "Array", { join: function (n) { return t.call(F(this), void 0 === n ? "," : n) } }) })), t((function () { "use strict"; var t = [].slice; O(O.P + O.F * f((function () { U && t.call(U) })), "Array", { slice: function (n, r) { var o = k(this.length), i = e(this); if (r = void 0 === r ? o : r, "Array" == i) return t.call(this, n, r); for (var u = B(n, o), c = B(r, o), s = k(c - u), a = Array(s), f = 0; f < s; f++)a[f] = "String" == i ? this.charAt(u + f) : this[u + f]; return a } }) })), t((function () { "use strict"; var t = [].sort, n = [1, 2, 3]; O(O.P + O.F * (f((function () { n.sort(void 0) })) || !f((function () { n.sort(null) })) || !pt(t)), "Array", { sort: function (n) { return void 0 === n ? t.call(q(this)) : t.call(q(this), P(n)) } }) })), t((function (t) { var n = u("species"); t.exports = function (t) { var e; return ft(t) && ("function" != typeof (e = t.constructor) || e !== Array && !ft(e.prototype) || (e = void 0), s(e) && null === (e = e[n]) && (e = void 0)), void 0 === e ? Array : e } }))), dt = t((function (t) { t.exports = function (t, n) { return new (ht(t))(n) } })), yt = t((function (t) { t.exports = function (t, n) { var e = 1 == t, r = 2 == t, o = 3 == t, i = 4 == t, u = 6 == t, c = 5 == t || u, s = n || dt; return function (n, a, f) { for (var l, p, h = q(n), d = j(h), y = E(a, f, 3), v = k(d.length), m = 0, b = e ? s(n, v) : r ? s(n, 0) : void 0; v > m; m++)if ((c || m in d) && (p = y(l = d[m], m, h), t)) if (e) b[m] = p; else if (p) switch (t) { case 3: return !0; case 5: return l; case 6: return m; case 2: b.push(l) } else if (i) return !1; return u ? -1 : o || i ? i : b } } })), vt = (t((function () { "use strict"; var t = yt(0), n = pt([].forEach, !0); O(O.P + O.F * !n, "Array", { forEach: function (n) { return t(this, n, arguments[1]) } }) })), t((function () { "use strict"; var t = yt(1); O(O.P + O.F * !pt([].map, !0), "Array", { map: function (n) { return t(this, n, arguments[1]) } }) })), t((function () { "use strict"; var t = yt(2); O(O.P + O.F * !pt([].filter, !0), "Array", { filter: function (n) { return t(this, n, arguments[1]) } }) })), t((function () { "use strict"; var t = yt(3); O(O.P + O.F * !pt([].some, !0), "Array", { some: function (n) { return t(this, n, arguments[1]) } }) })), t((function () { "use strict"; var t = yt(4); O(O.P + O.F * !pt([].every, !0), "Array", { every: function (n) { return t(this, n, arguments[1]) } }) })), t((function (t) { t.exports = function (t, n, e, r, o) { P(n); var i = q(t), u = j(i), c = k(i.length), s = o ? c - 1 : 0, a = o ? -1 : 1; if (e < 2) for (; ;) { if (s in u) { r = u[s], s += a; break } if (s += a, o ? s < 0 : c <= s) throw TypeError("Reduce of empty array with no initial value") } for (; o ? s >= 0 : c > s; s += a)s in u && (r = n(r, u[s], s, i)); return r } }))), mt = (t((function () { "use strict"; O(O.P + O.F * !pt([].reduce, !0), "Array", { reduce: function (t) { return vt(this, t, arguments.length, arguments[1], !1) } }) })), t((function () { "use strict"; O(O.P + O.F * !pt([].reduceRight, !0), "Array", { reduceRight: function (t) { return vt(this, t, arguments.length, arguments[1], !0) } }) })), t((function () { "use strict"; var t = L(!1), n = [].indexOf, e = !!n && 1 / [1].indexOf(1, -0) < 0; O(O.P + O.F * (e || !pt(n)), "Array", { indexOf: function (r) { return e ? n.apply(this, arguments) || 0 : t(this, r, arguments[1]) } }) })), t((function () { "use strict"; var t = [].lastIndexOf, n = !!t && 1 / [1].lastIndexOf(1, -0) < 0; O(O.P + O.F * (n || !pt(t)), "Array", { lastIndexOf: function (e) { if (n) return t.apply(this, arguments) || 0; var r = F(this), o = k(r.length), i = o - 1; for (arguments.length > 1 && (i = Math.min(i, x(arguments[1]))), i < 0 && (i = o + i); i >= 0; i--)if (i in r && r[i] === e) return i || 0; return -1 } }) })), t((function (t) { "use strict"; t.exports = [].copyWithin || function (t, n) { var e = q(this), r = k(e.length), o = B(t, r), i = B(n, r), u = arguments.length > 2 ? arguments[2] : void 0, c = Math.min((void 0 === u ? r : B(u, r)) - i, r - o), s = 1; for (i < o && o < i + c && (s = -1, i += c - 1, o += c - 1); c-- > 0;)i in e ? e[o] = e[i] : delete e[o], o += s, i += s; return e } }))), bt = (t((function () { O(O.P, "Array", { copyWithin: mt }), W("copyWithin") })), t((function (t) { "use strict"; t.exports = function (t) { for (var n = q(this), e = k(n.length), r = arguments.length, o = B(r > 1 ? arguments[1] : void 0, e), i = r > 2 ? arguments[2] : void 0, u = void 0 === i ? e : B(i, e); u > o;)n[o++] = t; return n } }))), _t = (t((function () { O(O.P, "Array", { fill: bt }), W("fill") })), t((function () { "use strict"; var t = yt(5), n = "find", e = !0; n in [] && Array(1)[n]((function () { e = !1 })), O(O.P + O.F * e, "Array", { find: function (n) { return t(this, n, arguments.length > 1 ? arguments[1] : void 0) } }), W(n) })), t((function () { "use strict"; var t = yt(6), n = "findIndex", e = !0; n in [] && Array(1)[n]((function () { e = !1 })), O(O.P + O.F * e, "Array", { findIndex: function (n) { return t(this, n, arguments.length > 1 ? arguments[1] : void 0) } }), W(n) })), t((function () { st("Array") })), t((function (t) { t.exports = _.Array })), t((function (t) { var n = i("meta"), e = y.f, r = 0, o = Object.isExtensible || function () { return !0 }, u = !f((function () { return o(Object.preventExtensions({})) })), c = function (t) { e(t, n, { value: { i: "O" + ++r, w: {} } }) }, a = function (t, e) { if (!s(t)) return "symbol" == typeof t ? t : ("string" == typeof t ? "S" : "P") + t; if (!b(t, n)) { if (!o(t)) return "F"; if (!e) return "E"; c(t) } return t[n].i }, l = function (t, e) { if (!b(t, n)) { if (!o(t)) return !0; if (!e) return !1; c(t) } return t[n].w }, p = function (t) { return u && h.NEED && o(t) && !b(t, n) && c(t), t }, h = t.exports = { KEY: n, NEED: !1, fastKey: a, getWeak: l, onFreeze: p } }))), wt = t((function (t) { t.exports = function (t, n) { if (!s(t) || t._t !== n) throw TypeError("Incompatible receiver, " + n + " required!"); return t } })), xt = t((function (t) { "use strict"; var n = y.f, e = _t.fastKey, r = l ? "_s" : "size", o = function (t, n) { var r, o = e(n); if ("F" !== o) return t._i[o]; for (r = t._f; r; r = r.n)if (r.k == n) return r }; t.exports = { getConstructor: function (t, e, i, u) { var c = t((function (t, n) { X(t, c, e, "_i"), t._t = e, t._i = N(null), t._f = void 0, t._l = void 0, t[r] = 0, null != n && Z(n, i, t[u], t) })); return ct(c.prototype, { clear: function () { for (var t = wt(this, e), n = t._i, o = t._f; o; o = o.n)o.r = !0, o.p && (o.p = o.p.n = void 0), delete n[o.i]; t._f = t._l = void 0, t[r] = 0 }, delete: function (t) { var n = wt(this, e), i = o(n, t); if (i) { var u = i.n, c = i.p; delete n._i[i.i], i.r = !0, c && (c.n = u), u && (u.p = c), n._f == i && (n._f = u), n._l == i && (n._l = c), n[r]-- } return !!i }, forEach: function (t) { wt(this, e); for (var n, r = E(t, arguments.length > 1 ? arguments[1] : void 0, 3); n = n ? n.n : this._f;)for (r(n.v, n.k, this); n && n.r;)n = n.p }, has: function (t) { return !!o(wt(this, e), t) } }), l && n(c.prototype, "size", { get: function () { return wt(this, e)[r] } }), c }, def: function (t, n, i) { var u, c, s = o(t, n); return s ? s.v = i : (t._l = s = { i: c = e(n, !0), k: n, v: i, p: u = t._l, n: void 0, r: !1 }, t._f || (t._f = s), u && (u.n = s), t[r]++, "F" !== c && (t._i[c] = s)), t }, getEntry: o, setStrong: function (t, n, e) { V(t, n, (function (t, e) { this._t = wt(t, n), this._k = e, this._l = void 0 }), (function () { for (var t = this, n = t._k, e = t._l; e && e.r;)e = e.p; return t._t && (t._l = e = e ? e.n : t._t._f) ? K(0, "keys" == n ? e.k : "values" == n ? e.v : [e.k, e.v]) : (t._t = void 0, K(1)) }), e ? "entries" : "values", !e, !0), st(n) } } })), gt = t((function (t, n) { n.f = {}.propertyIsEnumerable })), At = t((function (t, n) { var e = Object.getOwnPropertyDescriptor; n.f = l ? e : function (t, n) { if (t = F(t), n = d(n, !0), h) try { return e(t, n) } catch (t) { } if (b(t, n)) return v(!gt.f.call(t, n), t[n]) } })), St = t((function (t) { var n = function (t, n) { if (a(t), !s(n) && null !== n) throw TypeError(n + ": can't set as prototype!") }; t.exports = { set: Object.setPrototypeOf || ("__proto__" in {} ? function (t, e, r) { try { (r = E(Function.call, At.f(Object.prototype, "__proto__").set, 2))(t, []), e = !(t instanceof Array) } catch (t) { e = !0 } return function (t, o) { return n(t, o), e ? t.__proto__ = o : r(t, o), t } }({}, !1) : void 0), check: n } })), Pt = t((function (t) { var n = St.set; t.exports = function (t, e, r) { var o, i = e.constructor; return i !== r && "function" == typeof i && (o = i.prototype) !== r.prototype && s(o) && n && n(t, o), t } })), Et = t((function (t) { "use strict"; t.exports = function (t, n, e, o, i, u) { var c = r[t], a = c, l = i ? "set" : "add", p = a && a.prototype, h = {}, d = function (t) { var n = p[t]; w(p, t, "delete" == t || "has" == t ? function (t) { return !(u && !s(t)) && n.call(this, 0 === t ? 0 : t) } : "get" == t ? function (t) { return u && !s(t) ? void 0 : n.call(this, 0 === t ? 0 : t) } : "add" == t ? function (t) { return n.call(this, 0 === t ? 0 : t), this } : function (t, e) { return n.call(this, 0 === t ? 0 : t, e), this }) }; if ("function" == typeof a && (u || p.forEach && !f((function () { (new a).entries().next() })))) { var y = new a, v = y[l](u ? {} : -0, 1) != y, m = f((function () { y.has(1) })), b = at((function (t) { new a(t) })), _ = !u && f((function () { for (var t = new a, n = 5; n--;)t[l](n, n); return !t.has(-0) })); b || ((a = n((function (n, e) { X(n, a, t); var r = Pt(new c, n, a); return null != e && Z(e, i, r[l], r), r }))).prototype = p, p.constructor = a), (m || _) && (d("delete"), d("has"), i && d("get")), (_ || v) && d(l), u && p.clear && delete p.clear } else a = o.getConstructor(n, t, i, l), ct(a.prototype, e), _t.NEED = !0; return G(a, t), h[t] = a, O(O.G + O.W + O.F * (a != c), h), u || o.setStrong(a, t, i), a } })); t((function (t) { "use strict"; var n = "Set"; t.exports = Et(n, (function (t) { return function () { return t(this, arguments.length > 0 ? arguments[0] : void 0) } }), { add: function (t) { return xt.def(wt(this, n), t = 0 === t ? 0 : t, t) } }, xt) })), t((function (t) { t.exports = _.Set })); !function (t) {
"use strict"; function n(t) { if ("string" != typeof t && (t = String(t)), /[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t)) throw new TypeError("Invalid character in header field name"); return t.toLowerCase() } function e(t) { return "string" != typeof t && (t = String(t)), t } function r(t) { var n = { next: function () { var n = t.shift(); return { done: void 0 === n, value: n } } }; return m.iterable && (n[Symbol.iterator] = function () { return n }), n } function o(t) { this.map = {}, t instanceof o ? t.forEach((function (t, n) { this.append(n, t) }), this) : Array.isArray(t) ? t.forEach((function (t) { this.append(t[0], t[1]) }), this) : t && Object.getOwnPropertyNames(t).forEach((function (n) { this.append(n, t[n]) }), this) } function i(t) { if (t.bodyUsed) return Promise.reject(new TypeError("Already read")); t.bodyUsed = !0 } function u(t) { return new Promise((function (n, e) { t.onload = function () { n(t.result) }, t.onerror = function () { e(t.error) } })) } function c(t) { var n = new FileReader, e = u(n); return n.readAsArrayBuffer(t), e } function s(t) { var n = new FileReader, e = u(n); return n.readAsText(t), e } function a(t) { for (var n = new Uint8Array(t), e = new Array(n.length), r = 0; r < n.length; r++)e[r] = String.fromCharCode(n[r]); return e.join("") } function f(t) { if (t.slice) return t.slice(0); var n = new Uint8Array(t.byteLength); return n.set(new Uint8Array(t)), n.buffer } function l() { return this.bodyUsed = !1, this._initBody = function (t) { if (this._bodyInit = t, t) if ("string" == typeof t) this._bodyText = t; else if (m.blob && Blob.prototype.isPrototypeOf(t)) this._bodyBlob = t; else if (m.formData && FormData.prototype.isPrototypeOf(t)) this._bodyFormData = t; else if (m.searchParams && URLSearchParams.prototype.isPrototypeOf(t)) this._bodyText = t.toString(); else if (m.arrayBuffer && m.blob && _(t)) this._bodyArrayBuffer = f(t.buffer), this._bodyInit = new Blob([this._bodyArrayBuffer]); else { if (!m.arrayBuffer || !ArrayBuffer.prototype.isPrototypeOf(t) && !w(t)) throw new Error("unsupported BodyInit type"); this._bodyArrayBuffer = f(t) } else this._bodyText = ""; this.headers.get("content-type") || ("string" == typeof t ? this.headers.set("content-type", "text/plain;charset=UTF-8") : this._bodyBlob && this._bodyBlob.type ? this.headers.set("content-type", this._bodyBlob.type) : m.searchParams && URLSearchParams.prototype.isPrototypeOf(t) && this.headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8")) }, m.blob && (this.blob = function () { var t = i(this); if (t) return t; if (this._bodyBlob) return Promise.resolve(this._bodyBlob); if (this._bodyArrayBuffer) return Promise.resolve(new Blob([this._bodyArrayBuffer])); if (this._bodyFormData) throw new Error("could not read FormData body as blob"); return Promise.resolve(new Blob([this._bodyText])) }, this.arrayBuffer = function () { return this._bodyArrayBuffer ? i(this) || Promise.resolve(this._bodyArrayBuffer) : this.blob().then(c) }), this.text = function () { var t = i(this); if (t) return t; if (this._bodyBlob) return s(this._bodyBlob); if (this._bodyArrayBuffer) return Promise.resolve(a(this._bodyArrayBuffer)); if (this._bodyFormData) throw new Error("could not read FormData body as text"); return Promise.resolve(this._bodyText) }, m.formData && (this.formData = function () { return this.text().then(d) }), this.json = function () { return this.text().then(JSON.parse) }, this } function p(t) { var n = t.toUpperCase(); return x.indexOf(n) > -1 ? n : t } function h(t, n) { var e = (n = n || {}).body; if (t instanceof h) { if (t.bodyUsed) throw new TypeError("Already read"); this.url = t.url, this.credentials = t.credentials, n.headers || (this.headers = new o(t.headers)), this.method = t.method, this.mode = t.mode, e || null == t._bodyInit || (e = t._bodyInit, t.bodyUsed = !0) } else this.url = String(t); if (this.credentials = n.credentials || this.credentials || "omit", !n.headers && this.headers || (this.headers = new o(n.headers)), this.method = p(n.method || this.method || "GET"), this.mode = n.mode || this.mode || null, this.referrer = null, ("GET" === this.method || "HEAD" === this.method) && e) throw new TypeError("Body not allowed for GET or HEAD requests"); this._initBody(e) } function d(t) { var n = new FormData; return t.trim().split("&").forEach((function (t) { if (t) { var e = t.split("="), r = e.shift().replace(/\+/g, " "), o = e.join("=").replace(/\+/g, " "); n.append(decodeURIComponent(r), decodeURIComponent(o)) } })), n } function y(t) { var n = new o; return t.replace(/\r?\n[\t ]+/g, " ").split(/\r?\n/).forEach((function (t) { var e = t.split(":"), r = e.shift().trim(); if (r) { var o = e.join(":").trim(); n.append(r, o) } })), n } function v(t, n) { n || (n = {}), this.type = "default", this.status = void 0 === n.status ? 200 : n.status, this.ok = this.status >= 200 && this.status < 300, this.statusText = "statusText" in n ? n.statusText : "OK", this.headers = new o(n.headers), this.url = n.url || "", this._initBody(t) } if (!t.fetch) {
var m = { searchParams: "URLSearchParams" in t, iterable: "Symbol" in t && "iterator" in Symbol, blob: "FileReader" in t && "Blob" in t && function () { try { return new Blob, !0 } catch (t) { return !1 } }(), formData: "FormData" in t, arrayBuffer: "ArrayBuffer" in t }; if (m.arrayBuffer) var b = ["[object Int8Array]", "[object Uint8Array]", "[object Uint8ClampedArray]", "[object Int16Array]", "[object Uint16Array]", "[object Int32Array]", "[object Uint32Array]", "[object Float32Array]", "[object Float64Array]"], _ = function (t) { return t && DataView.prototype.isPrototypeOf(t) }, w = ArrayBuffer.isView || function (t) { return t && b.indexOf(Object.prototype.toString.call(t)) > -1 }; o.prototype.append = function (t, r) { t = n(t), r = e(r); var o = this.map[t]; this.map[t] = o ? o + "," + r : r }, o.prototype.delete = function (t) { delete this.map[n(t)] }, o.prototype.get = function (t) { return t = n(t), this.has(t) ? this.map[t] : null }, o.prototype.has = function (t) { return this.map.hasOwnProperty(n(t)) }, o.prototype.set = function (t, r) { this.map[n(t)] = e(r) }, o.prototype.forEach = function (t, n) { for (var e in this.map) this.map.hasOwnProperty(e) && t.call(n, this.map[e], e, this) }, o.prototype.keys = function () { var t = []; return this.forEach((function (n, e) { t.push(e) })), r(t) }, o.prototype.values = function () { var t = []; return this.forEach((function (n) { t.push(n) })), r(t) }, o.prototype.entries = function () { var t = []; return this.forEach((function (n, e) { t.push([e, n]) })), r(t) }, m.iterable && (o.prototype[Symbol.iterator] = o.prototype.entries); var x = ["DELETE", "GET", "HEAD", "OPTIONS", "POST", "PUT"]; h.prototype.clone = function () { return new h(this, { body: this._bodyInit }) }, l.call(h.prototype), l.call(v.prototype), v.prototype.clone = function () { return new v(this._bodyInit, { status: this.status, statusText: this.statusText, headers: new o(this.headers), url: this.url }) }, v.error = function () { var t = new v(null, { status: 0, statusText: "" }); return t.type = "error", t }; var g = [301, 302, 303, 307, 308]; v.redirect = function (t, n) { if (-1 === g.indexOf(n)) throw new RangeError("Invalid status code"); return new v(null, { status: n, headers: { location: t } }) }, t.Headers = o, t.Request = h, t.Response = v, t.fetch = function (t, n) {
return new Promise((function (e, r) {
var o = new h(t, n), i = new XMLHttpRequest; i.onload = function () { var t = { status: i.status, statusText: i.statusText, headers: y(i.getAllResponseHeaders() || "") }; t.url = "responseURL" in i ? i.responseURL : t.headers.get("X-Request-URL"); var n = "response" in i ? i.response : i.responseText; e(new v(n, t)) }, i.onerror = function () { r(new TypeError("Network request failed")) }, i.ontimeout = function () { r(new TypeError("Network request failed")) }, i.open(o.method, o.url, !0),
"include" === o.credentials ? i.withCredentials = !0 : "omit" === o.credentials && (i.withCredentials = !1), "responseType" in i && m.blob && (i.responseType = "blob"), o.headers.forEach((function (t, n) { i.setRequestHeader(n, t) })), i.send(void 0 === o._bodyInit ? null : o._bodyInit)
}))
}, t.fetch.polyfill = !0
}
}("undefined" != typeof self ? self : this); var Ot = t((function (t, n) { "use strict"; Object.defineProperty(n, "__esModule", { value: !0 }); var e = { track: function () { var t; "undefined" != typeof ShopifyAnalytics && ShopifyAnalytics.lib && (t = ShopifyAnalytics.lib).track.apply(t, arguments) } }; n.default = e })), Tt = t((function (t, n) { "use strict"; function e(t) { o(), r(t, "smart-payment-buttons") } function r(t, n) { var e = "shopify-features__" + n, r = e + "--disabled", o = e + "--enabled", i = t.className.split(/\s+/); t.className = i.filter((function (t) { return Boolean(t) })).filter((function (t) { return t !== r })).filter((function (t) { return t !== o })).concat([o]).join(" ") } function o() { var t = "shopify-dynamic-checkout"; if (null === document.getElementById(t)) { var n = document.createElement("style"); n.id = t, n.innerHTML = i, document.head.appendChild(n) } } Object.defineProperty(n, "__esModule", { value: !0 }), n.default = e, n.toggleFeatureCssClasses = r, n.appendDynamicCheckoutProductCss = o; var i = "\n.shopify-payment-button__button--hidden {\n visibility: hidden;\n}\n\n.shopify-payment-button__button {\n border-radius: 4px;\n border: none;\n box-shadow: 0 0 0 0 transparent;\n color: white;\n cursor: pointer;\n display: block;\n font-size: 1em;\n font-weight: 500;\n line-height: 1;\n text-align: center;\n width: 100%;\n transition: background 0.2s ease-in-out;\n}\n\n.shopify-payment-button__button[disabled] {\n opacity: 0.6;\n cursor: default;\n}\n\n.shopify-payment-button__button--unbranded {\n background-color: #1990c6;\n padding: 1em 2em;\n}\n\n.shopify-payment-button__button--unbranded:hover:not([disabled]) {\n background-color: #136f99;\n}\n\n.shopify-payment-button__more-options {\n background: transparent;\n border: 0 none;\n cursor: pointer;\n display: block;\n font-size: 1em;\n margin-top: 1em;\n text-align: center;\n width: 100%;\n}\n\n.shopify-payment-button__more-options:hover:not([disabled]) {\n text-decoration: underline;\n}\n\n.shopify-payment-button__more-options[disabled] {\n opacity: 0.6;\n cursor: default;\n}\n\n.shopify-payment-button__button--branded {\n display: flex;\n flex-direction: column;\n min-height: 44px;\n position: relative;\n z-index: 1;\n}\n\n.shopify-payment-button__button--branded .shopify-cleanslate {\n flex: 1 !important;\n display: flex !important;\n flex-direction: column !important;\n}\n" })), jt = t((function (t, e) { "use strict"; function r(t, n) { return o().then((function (e) { e ? i(t, n) : c(t, n) })) } function o() { function t() { return document.querySelector("[data-shopify=payment-button]") } return new Promise((function (n) { t() ? n(!0) : window.Shopify.designMode ? new MutationObserver((function (e, r) { t() && (n(!0), r.disconnect()) })).observe(document.body, { childList: !0, subtree: !0 }) : n(!1) })) } function i(t, n) { (0, l.default)(t); var e = u(t, n); return s("[SPB] Script appended"), e } function u(t, n) { var e = t.parentNode, r = e.createElement("script"); return r.src = n.smart_payment_buttons_url, r.dataset.sourceAttribute = "shopify.dynamic_checkout.product.init", e.head.appendChild(r), r } function c(t, n) { void 0 === window.Shopify.PaymentButton && (window.Shopify.PaymentButton = { init: function () { var e = i(t, n); e.onload = function () { a() }, e.onerror = function () { console.error("Error loading Dynamic Checkout bundle") }, window.Shopify.PaymentButton.init = function () { } } }) } function s(t) { p && performance.mark(t) } function a() { var t = "polyfilled_dynamic_checkout", n = window.Shopify && window.Shopify.theme && window.Shopify.theme.name, e = window.location.href; f.default.track(t, { theme: n, url: e }) } Object.defineProperty(e, "__esModule", { value: !0 }), e.default = r; var f = n(Ot), l = n(Tt), p = "undefined" != typeof performance && "function" == typeof performance.mark })), Ft = t((function (t, n) { "use strict"; function e(t, n) { return r().then((function () { o(t, n) })) } function r() { function t() { return document.getElementById("dynamic-checkout-cart") } return new Promise((function (n) { t() ? (window.Shopify.CartType = "cart_page", n()) : new MutationObserver((function (e, r) { t() && (window.Shopify.CartType = "cart_ajax", n(), r.disconnect()) })).observe(document.body, { childList: !0, subtree: !0 }) })) } function o(t, n) { var e = t.parentNode, r = e.createElement("script"); return r.src = n.dynamic_checkout_cart_url, r.dataset.sourceAttribute = "shopify.dynamic_checkout.cart.init", e.head.appendChild(r), r } Object.defineProperty(n, "__esModule", { value: !0 }), n.default = e })), kt = t((function (t, e) { "use strict"; function r(t) { var n = o(t); n && ((0, i.default)(t, n), (0, u.default)(t, n)) } function o(t) { try { return JSON.parse(t.querySelector(c).textContent) } catch (t) { return null } } Object.defineProperty(e, "__esModule", { value: !0 }), e.default = r; var i = n(jt), u = n(Ft), c = "#shopify-features" })); t((function () { "use strict"; (0, n(kt).default)(document.documentElement) }))
}("undefined" != typeof global ? global : "undefined" != typeof window && window);
</script>
<style id="shopify-dynamic-checkout">
.shopify-payment-button__button--hidden {
visibility: hidden
}
.shopify-payment-button__button {
border-radius: 4px;
border: none;
box-shadow: 0 0 0 0 transparent;
color: #fff;
cursor: pointer;
display: block;
font-size: 1em;
font-weight: 500;
line-height: 1;
text-align: center;
width: 100%;
transition: background .2s ease-in-out
}
.shopify-payment-button__button[disabled] {
opacity: .6;
cursor: default
}
.shopify-payment-button__button--unbranded {
background-color: #1990c6;
padding: 1em 2em
}
.shopify-payment-button__button--unbranded:hover:not([disabled]) {
background-color: #136f99
}
.shopify-payment-button__more-options {
background: 0 0;
border: 0 none;
cursor: pointer;
display: block;
font-size: 1em;
margin-top: 1em;
text-align: center;
width: 100%
}
.shopify-payment-button__more-options:hover:not([disabled]) {
text-decoration: underline
}
.shopify-payment-button__more-options[disabled] {
opacity: .6;
cursor: not-allowed
}
.shopify-payment-button__button--branded {
display: flex;
flex-direction: column;
min-height: 44px;
position: relative;
z-index: 1
}
.shopify-payment-button__button--branded .shopify-cleanslate {
flex: 1 !important;
display: flex !important;
flex-direction: column !important
}
.shopify-payment-button__button.button.loading {
position: relative;
color: transparent
}
.shopify-payment-button__button.button.loading>.loading-overlay__spinner {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
position: absolute;
height: 100%;
display: flex;
align-items: center
}
.shopify-payment-button__button.button.loading>.loading-overlay__spinner .spinner {
width: -moz-fit-content;
width: fit-content
}
.button.loading>.loading-overlay__spinner .path {
stroke: #fff
}
.shopify-payment-button__button .loading-overlay__spinner {
width: 1.8rem;
display: inline-block
}
.shopify-payment-button__button .spinner {
animation: shopify-rotator 1.4s linear infinite
}
@keyframes shopify-rotator {
0% {
transform: rotate(0)
}
100% {
transform: rotate(270deg)
}
}
.shopify-payment-button__button .path {
stroke-dasharray: 280;
stroke-dashoffset: 0;
transform-origin: center;
stroke: #121212;
animation: shopify-dash 1.4s ease-in-out infinite
}
@media screen and (forced-colors:active) {
.shopify-payment-button__button .path {
stroke: CanvasText
}
}
@keyframes shopify-dash {
0% {
stroke-dashoffset: 280
}
50% {
stroke-dashoffset: 75;
transform: rotate(135deg)
}
100% {
stroke-dashoffset: 280;
transform: rotate(450deg)
}
}
</style>
<script>
window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');
</script>
<style data-shopify>
@font-face {
font-family: Questrial;
font-weight: 400;
font-style: normal;
font-display: swap;
src: url(http://https://illuzia.net//cdn/fonts/questrial/questrial_n4.0ba6d2b6094954bab23732c75d3ecb4c47a5869c.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=2ddb1e040059f191fdb3e184199ec4bc383d5aa55a6213bf798372c9da87d664) format("woff2"), url(http://https://illuzia.net//cdn/fonts/questrial/questrial_n4.5abce10d8846bb9326c9741eaffed9667c847692.woff?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=136e78abf621321b832ba0b2c80d5c764228ec9edb2550b890fb94f7dfbf4881) format("woff")
}
@font-face {
font-family: Archivo;
font-weight: 700;
font-style: normal;
font-display: swap;
src: url(http://https://illuzia.net//cdn/fonts/archivo/archivo_n7.6f363ab30b12ea00d5e6243ed0e977a11393a3ad.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=6cc30ef697b84bb8f7f3bf9979eb1a3b3e1410751b95cc93dce027cd0262d372) format("woff2"), url(http://https://illuzia.net//cdn/fonts/archivo/archivo_n7.846b40a5735bbd149ad44b083a19c3e5d88d8fab.woff?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=d0abb13a26bf76d6aa3da07b374c9d85e0b976d6591761ed7c4cdc2cd429b450) format("woff")
}
.color-background-1,
:root {
--color-background: 245, 245, 245;
--gradient-background: #ffffff;
--color-foreground: 14, 27, 77;
--color-background-contrast: 161, 166, 196;
--color-shadow: 14, 27, 77;
--color-button: 130, 0, 0;
--color-button-text: 245, 245, 245;
--color-secondary-button: 245, 245, 245;
--color-secondary-button-text: 14, 27, 77;
--color-link: 14, 27, 77;
--color-badge-foreground: 14, 27, 77;
--color-badge-background: 245, 245, 245;
--color-badge-border: 14, 27, 77;
--payment-terms-background-color: rgb(239 240 245)
}
.n-columns-2 {
display: grid;
grid-template-columns: repeat(2, 1fr);
font-weight: 700
}
.n-columns-2 a {
text-align: center;
text-decoration: none;
}
.login,
.register {
color: #fff;
padding: 13px 10px
}
.login,
.login-button {
border: 1px solid #d3d3d3;
background: linear-gradient(to bottom, #bb0000 0, #6d0000 100%)
}
.register,
.register-button {
background: linear-gradient(to bottom, #bb0000 0, #6d0000 100%);
border: 1px solid #d3d3d3
}
.color-background-2 {
--color-background: 255, 255, 255;
--gradient-background: #FFFFFF;
--color-foreground: 14, 27, 77;
--color-background-contrast: 191, 191, 191;
--color-shadow: 14, 27, 77;
--color-button: 14, 27, 77;
--color-button-text: 255, 255, 255;
--color-secondary-button: 255, 255, 255;
--color-secondary-button-text: 14, 27, 77;
--color-link: 14, 27, 77;
--color-badge-foreground: 14, 27, 77;
--color-badge-background: 255, 255, 255;
--color-badge-border: 14, 27, 77;
--payment-terms-background-color: rgb(255 255 255)
}
.color-inverse {
--color-background: 130, 0, 0;
--gradient-background: #520101;
--color-foreground: 255, 255, 255;
--color-background-contrast: 18, 35, 99;
--color-shadow: 14, 27, 77;
--color-button: 255, 255, 255;
--color-button-text: 14, 27, 77;
--color-secondary-button: 14, 27, 77;
--color-secondary-button-text: 255, 255, 255;
--color-link: 255, 255, 255;
--color-badge-foreground: 255, 255, 255;
--color-badge-background: 14, 27, 77;
--color-badge-border: 255, 255, 255;
--payment-terms-background-color: rgb(79, 0, 0)
}
.color-accent-1 {
--color-background: 128, 0, 0;
--gradient-background: #930000;
--color-foreground: 255, 255, 255;
--color-background-contrast: 27, 57, 136;
--color-shadow: 14, 27, 77;
--color-button: 255, 255, 255;
--color-button-text: 128, 0, 0;
--color-secondary-button: 128, 0, 0;
--color-secondary-button-text: 255, 255, 255;
--color-link: 255, 255, 255;
--color-badge-foreground: 255, 255, 255;
--color-badge-background: 130, 0, 0;
--color-badge-border: 255, 255, 255;
--payment-terms-background-color: rgb(0, 18, 65)
}
.color-accent-2 {
--color-background: 227, 36, 2;
--gradient-background: #E32402;
--color-foreground: 255, 255, 255;
--color-background-contrast: 101, 16, 1;
--color-shadow: 14, 27, 77;
--color-button: 255, 255, 255;
--color-button-text: 227, 36, 2;
--color-secondary-button: 227, 36, 2;
--color-secondary-button-text: 255, 255, 255;
--color-link: 255, 255, 255;
--color-badge-foreground: 255, 255, 255;
--color-badge-background: 227, 36, 2;
--color-badge-border: 255, 255, 255;
--payment-terms-background-color: rgb(227 36 2)
}
.color-accent-1,
.color-accent-2,
.color-background-1,
.color-background-2,
.color-inverse,
body {
color: rgba(var(--color-foreground), .75);
background-color: rgb(var(--color-background))
}
:root {
--font-body-family: Questrial, sans-serif;
--font-body-style: normal;
--font-body-weight: 400;
--font-body-weight-bold: 700;
--font-heading-family: Archivo, serif;
--font-heading-style: normal;
--font-heading-weight: 700;
--font-body-scale: 1.05;
--font-heading-scale: 1.0476190476190477;
--media-padding: px;
--media-border-opacity: 0.1;
--media-border-width: 0px;
--media-radius: 20px;
--media-shadow-opacity: 0.0;
--media-shadow-horizontal-offset: 0px;
--media-shadow-vertical-offset: 4px;
--media-shadow-blur-radius: 5px;
--media-shadow-visible: 0;
--page-width: 120rem;
--page-width-margin: 0rem;
--product-card-image-padding: 1.6rem;
--product-card-corner-radius: 1.8rem;
--product-card-text-alignment: left;
--product-card-border-width: 0.1rem;
--product-card-border-opacity: 1.0;
--product-card-shadow-opacity: 0.0;
--product-card-shadow-visible: 0;
--product-card-shadow-horizontal-offset: 0.0rem;
--product-card-shadow-vertical-offset: 0.4rem;
--product-card-shadow-blur-radius: 0.5rem;
--collection-card-image-padding: 1.6rem;
--collection-card-corner-radius: 1.8rem;
--collection-card-text-alignment: left;
--collection-card-border-width: 0.1rem;
--collection-card-border-opacity: 1.0;
--collection-card-shadow-opacity: 0.0;
--collection-card-shadow-visible: 0;
--collection-card-shadow-horizontal-offset: 0.0rem;
--collection-card-shadow-vertical-offset: 0.4rem;
--collection-card-shadow-blur-radius: 0.5rem;
--blog-card-image-padding: 1.6rem;
--blog-card-corner-radius: 1.8rem;
--blog-card-text-alignment: left;
--blog-card-border-width: 0.1rem;
--blog-card-border-opacity: 1.0;
--blog-card-shadow-opacity: 0.0;
--blog-card-shadow-visible: 0;
--blog-card-shadow-horizontal-offset: 0.0rem;
--blog-card-shadow-vertical-offset: 0.4rem;
--blog-card-shadow-blur-radius: 0.5rem;
--badge-corner-radius: 0.0rem;
--popup-border-width: 1px;
--popup-border-opacity: 0.1;
--popup-corner-radius: 18px;
--popup-shadow-opacity: 0.0;
--popup-shadow-horizontal-offset: 0px;
--popup-shadow-vertical-offset: 4px;
--popup-shadow-blur-radius: 5px;
--drawer-border-width: 0px;
--drawer-border-opacity: 0.1;
--drawer-shadow-opacity: 0.0;
--drawer-shadow-horizontal-offset: 0px;
--drawer-shadow-vertical-offset: 4px;
--drawer-shadow-blur-radius: 5px;
--spacing-sections-desktop: 0px;
--spacing-sections-mobile: 0px;
--grid-desktop-vertical-spacing: 28px;
--grid-desktop-horizontal-spacing: 28px;
--grid-mobile-vertical-spacing: 14px;
--grid-mobile-horizontal-spacing: 14px;
--text-boxes-border-opacity: 0.1;
--text-boxes-border-width: 0px;
--text-boxes-radius: 20px;
--text-boxes-shadow-opacity: 0.0;
--text-boxes-shadow-visible: 0;
--text-boxes-shadow-horizontal-offset: 0px;
--text-boxes-shadow-vertical-offset: 4px;
--text-boxes-shadow-blur-radius: 5px;
--buttons-radius: 40px;
--buttons-radius-outset: 41px;
--buttons-border-width: 1px;
--buttons-border-opacity: 1.0;
--buttons-shadow-opacity: 0.0;
--buttons-shadow-visible: 0;
--buttons-shadow-horizontal-offset: 0px;
--buttons-shadow-vertical-offset: 4px;
--buttons-shadow-blur-radius: 5px;
--buttons-border-offset: 0.3px;
--inputs-radius: 26px;
--inputs-border-width: 1px;
--inputs-border-opacity: 0.55;
--inputs-shadow-opacity: 0.0;
--inputs-shadow-horizontal-offset: 0px;
--inputs-margin-offset: 0px;
--inputs-shadow-vertical-offset: 4px;
--inputs-shadow-blur-radius: 5px;
--inputs-radius-outset: 27px;
--variant-pills-radius: 40px;
--variant-pills-border-width: 1px;
--variant-pills-border-opacity: 0.55;
--variant-pills-shadow-opacity: 0.0;
--variant-pills-shadow-horizontal-offset: 0px;
--variant-pills-shadow-vertical-offset: 4px;
--variant-pills-shadow-blur-radius: 5px
}
*,
::after,
::before {
box-sizing: inherit
}
html {
box-sizing: border-box;
font-size: calc(var(--font-body-scale) * 62.5%);
height: 100%
}
body {
display: grid;
grid-template-rows: auto auto 1fr auto;
grid-template-columns: 100%;
min-height: 100%;
margin: 0;
font-size: 1.5rem;
letter-spacing: .06rem;
line-height: calc(1 + .8 / var(--font-body-scale));
font-family: var(--font-body-family);
font-style: var(--font-body-style);
font-weight: var(--font-body-weight)
}
@media screen and (min-width:750px) {
body {
font-size: 1.6rem
}
}
</style>
<style>
:root {
--alpha-button-background: 1;
--alpha-button-border: 1;
--alpha-link: .85;
--alpha-badge-border: .1
}
.product-card-wrapper .card,
.contains-card--product {
--border-radius: var(--product-card-corner-radius);
--border-width: var(--product-card-border-width);
--border-opacity: var(--product-card-border-opacity);
--shadow-horizontal-offset: var(--product-card-shadow-horizontal-offset);
--shadow-vertical-offset: var(--product-card-shadow-vertical-offset);
--shadow-blur-radius: var(--product-card-shadow-blur-radius);
--shadow-opacity: var(--product-card-shadow-opacity);
--shadow-visible: var(--product-card-shadow-visible);
--image-padding: var(--product-card-image-padding);
--text-alignment: var(--product-card-text-alignment)
}
.collection-card-wrapper .card,
.contains-card--collection {
--border-radius: var(--collection-card-corner-radius);
--border-width: var(--collection-card-border-width);
--border-opacity: var(--collection-card-border-opacity);
--shadow-horizontal-offset: var(--collection-card-shadow-horizontal-offset);
--shadow-vertical-offset: var(--collection-card-shadow-vertical-offset);
--shadow-blur-radius: var(--collection-card-shadow-blur-radius);
--shadow-opacity: var(--collection-card-shadow-opacity);
--shadow-visible: var(--collection-card-shadow-visible);
--image-padding: var(--collection-card-image-padding);
--text-alignment: var(--collection-card-text-alignment)
}
.article-card-wrapper .card,
.contains-card--article {
--border-radius: var(--blog-card-corner-radius);
--border-width: var(--blog-card-border-width);
--border-opacity: var(--blog-card-border-opacity);
--shadow-horizontal-offset: var(--blog-card-shadow-horizontal-offset);
--shadow-vertical-offset: var(--blog-card-shadow-vertical-offset);
--shadow-blur-radius: var(--blog-card-shadow-blur-radius);
--shadow-opacity: var(--blog-card-shadow-opacity);
--shadow-visible: var(--blog-card-shadow-visible);
--image-padding: var(--blog-card-image-padding);
--text-alignment: var(--blog-card-text-alignment)
}
.contains-content-container,
.content-container {
--border-radius: var(--text-boxes-radius);
--border-width: var(--text-boxes-border-width);
--border-opacity: var(--text-boxes-border-opacity);
--shadow-horizontal-offset: var(--text-boxes-shadow-horizontal-offset);
--shadow-vertical-offset: var(--text-boxes-shadow-vertical-offset);
--shadow-blur-radius: var(--text-boxes-shadow-blur-radius);
--shadow-opacity: var(--text-boxes-shadow-opacity);
--shadow-visible: var(--text-boxes-shadow-visible)
}
.contains-media,
.global-media-settings {
--border-radius: var(--media-radius);
--border-width: var(--media-border-width);
--border-opacity: var(--media-border-opacity);
--shadow-horizontal-offset: var(--media-shadow-horizontal-offset);
--shadow-vertical-offset: var(--media-shadow-vertical-offset);
--shadow-blur-radius: var(--media-shadow-blur-radius);
--shadow-opacity: var(--media-shadow-opacity);
--shadow-visible: var(--media-shadow-visible)
}
.no-js:not(html) {
display: none !important
}
html.no-js .no-js:not(html) {
display: block !important
}
.no-js-inline {
display: none !important
}
html.no-js .no-js-inline {
display: inline-block !important
}
html.no-js .no-js-hidden {
display: none !important
}
.page-width {
max-width: var(--page-width);
margin: 0 auto;
padding: 0 1.5rem
}
body:has(.section-header .drawer-menu) .announcement-bar-section .page-width {
max-width: 100%
}
.page-width.drawer-menu {
max-width: 100%
}
.page-width-desktop {
padding: 0;
margin: 0 auto
}
.utility-bar__grid.page-width {
padding-left: 3rem;
padding-right: 3rem
}
@media screen and (min-width: 750px) {
.page-width {
padding: 0 5rem
}
.header.page-width,
.utility-bar__grid.page-width {
padding-left: 3.2rem;
padding-right: 3.2rem
}
.page-width--narrow {
padding: 0 9rem
}
.page-width-desktop {
padding: 0
}
.page-width-tablet {
padding: 0 5rem
}
}
@media screen and (min-width: 990px) {
.header:not(.drawer-menu).page-width {
padding-left: 5rem;
padding-right: 5rem
}
.page-width--narrow {
max-width: 72.6rem;
padding: 0
}
.page-width-desktop {
max-width: var(--page-width);
padding: 0 5rem
}
}
.isolate {
position: relative;
z-index: 0
}
.section+.section {
margin-top: var(--spacing-sections-mobile)
}
@media screen and (min-width: 750px) {
.section+.section {
margin-top: var(--spacing-sections-desktop)
}
}
.element-margin-top {
margin-top: 5rem
}
@media screen and (min-width: 750px) {
.element-margin {
margin-top: calc(5rem + var(--page-width-margin))
}
}
.background-secondary {
background-color: rgba(var(--color-foreground), .04)
}
.grid-auto-flow {
display: grid;
grid-auto-flow: column
}
.page-margin,
.shopify-challenge__container {
margin: 7rem auto
}
.rte-width {
max-width: 82rem;
margin: 0 auto 2rem
}
.list-unstyled {
margin: 0;
padding: 0;
list-style: none
}
.hidden {
display: none !important
}
.visually-hidden {
position: absolute !important;
overflow: hidden;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
border: 0;
clip: rect(0 0 0 0);
word-wrap: normal !important
}
.visually-hidden--inline {
margin: 0;
height: 1em
}
.overflow-hidden {
overflow: hidden
}
.skip-to-content-link:focus {
z-index: 9999;
position: inherit;
overflow: auto;
width: auto;
height: auto;
clip: auto
}
.full-width-link {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 2
}
::selection {
background-color: rgba(var(--color-foreground), .2)
}
.text-body {
font-size: 1.5rem;
letter-spacing: .06rem;
line-height: calc(1 + .8 / var(--font-body-scale));
font-family: var(--font-body-family);
font-style: var(--font-body-style);
font-weight: var(--font-body-weight)
}
h1,
h2,
h3,
h4,
h5,
.h0,
.h1,
.h2,
.h3,
.h4,
.h5 {
font-family: var(--font-heading-family);
font-style: var(--font-heading-style);
font-weight: var(--font-heading-weight);
letter-spacing: calc(var(--font-heading-scale) * .06rem);
color: rgb(var(--color-foreground));
line-height: calc(1 + .3/max(1, var(--font-heading-scale)));
word-break: break-word
}
.hxl {
font-size: calc(var(--font-heading-scale) * 5rem)
}
@media only screen and (min-width: 750px) {
.hxl {
font-size: calc(var(--font-heading-scale) * 6.2rem)
}
}
.h0 {
font-size: calc(var(--font-heading-scale) * 4rem)
}
@media only screen and (min-width: 750px) {
.h0 {
font-size: calc(var(--font-heading-scale) * 5.2rem)
}
}
h1,
.h1 {
font-size: calc(var(--font-heading-scale) * 3rem)
}
@media only screen and (min-width: 750px) {
h1,
.h1 {
font-size: calc(var(--font-heading-scale) * 4rem)
}
}
h2,
.h2 {
font-size: calc(var(--font-heading-scale) * 2rem)
}
@media only screen and (min-width: 750px) {
h2,
.h2 {
font-size: calc(var(--font-heading-scale) * 2.4rem)
}
}
h3,
.h3 {
font-size: calc(var(--font-heading-scale) * 1.7rem)
}
@media only screen and (min-width: 750px) {
h3,
.h3 {
font-size: calc(var(--font-heading-scale) * 1.8rem)
}
}
h4,
.h4 {
font-family: var(--font-heading-family);
font-style: var(--font-heading-style);
font-size: calc(var(--font-heading-scale) * 1.5rem)
}
h5,
.h5 {
font-size: calc(var(--font-heading-scale) * 1.2rem)
}
@media only screen and (min-width: 750px) {
h5,
.h5 {
font-size: calc(var(--font-heading-scale) * 1.3rem)
}
}
h6,
.h6 {
color: rgba(var(--color-foreground), .75);
margin-block-start: 1.67em;
margin-block-end: 1.67em
}
blockquote {
font-style: italic;
color: rgba(var(--color-foreground), .75);
border-left: .2rem solid rgba(var(--color-foreground), .2);
padding-left: 1rem
}
@media screen and (min-width: 750px) {
blockquote {
padding-left: 1.5rem
}
}
.caption {
font-size: 1rem;
letter-spacing: .07rem;
line-height: calc(1 + .7 / var(--font-body-scale))
}
@media screen and (min-width: 750px) {
.caption {
font-size: 1.2rem
}
}
.caption-with-letter-spacing {
font-size: 1rem;
letter-spacing: .13rem;
line-height: calc(1 + .2 / var(--font-body-scale));
text-transform: uppercase
}
.caption-with-letter-spacing--medium {
font-size: 1.2rem;
letter-spacing: .16rem
}
.caption-with-letter-spacing--large {
font-size: 1.4rem;
letter-spacing: .18rem
}
.caption-large,
.customer .field input,
.customer select,
.field__input,
.form__label,
.select__select {
font-size: 1.3rem;
line-height: calc(1 + .5 / var(--font-body-scale));
letter-spacing: .04rem
}
.color-foreground {
color: rgb(var(--color-foreground))
}
table:not([class]) {
table-layout: fixed;
border-collapse: collapse;
font-size: 1.4rem;
border-style: hidden;
box-shadow: 0 0 0 .1rem rgba(var(--color-foreground), .2)
}
table:not([class]) td,
table:not([class]) th {
padding: 1em;
border: .1rem solid rgba(var(--color-foreground), .2)
}
@media screen and (max-width: 749px) {
.small-hide {
display: none !important
}
}
@media screen and (min-width: 750px) and (max-width: 989px) {
.medium-hide {
display: none !important
}
}
@media screen and (min-width: 990px) {
.large-up-hide {
display: none !important
}
}
.left {
text-align: left
}
.center {
text-align: center
}
.right {
text-align: right
}
.uppercase {
text-transform: uppercase
}
.light {
opacity: .7
}
a:empty,
ul:empty,
dl:empty,
div:empty,
section:empty,
article:empty,
p:empty,
h1:empty,
h2:empty,
h3:empty,
h4:empty,
h5:empty,
h6:empty {
display: none
}
.link,
.customer a {
cursor: pointer;
display: inline-block;
border: none;
box-shadow: none;
text-decoration: underline;
text-underline-offset: .3rem;
color: rgb(var(--color-link));
background-color: transparent;
font-size: 1.4rem;
font-family: inherit
}
.link--text {
color: rgb(var(--color-foreground))
}
.link--text:hover {
color: rgba(var(--color-foreground), .75)
}
.link-with-icon {
display: inline-flex;
font-size: 1.4rem;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
margin-bottom: 4.5rem;
white-space: nowrap
}
.link-with-icon .icon {
width: 1.5rem;
margin-left: 1rem
}
a:not([href]) {
cursor: not-allowed
}
.circle-divider:after {
content: "\2022";
margin: 0 1.3rem 0 1.5rem
}
.circle-divider:last-of-type:after {
display: none
}
hr {
border: none;
height: .1rem;
background-color: rgba(var(--color-foreground), .2);
display: block;
margin: 5rem 0
}
@media screen and (min-width: 750px) {
hr {
margin: 7rem 0
}
}
.full-unstyled-link {
text-decoration: none;
color: currentColor;
display: block
}
.placeholder {
background-color: rgba(var(--color-foreground), .04);
color: rgba(var(--color-foreground), .55);
fill: rgba(var(--color-foreground), .55)
}
details>* {
box-sizing: border-box
}
.break {
word-break: break-word
}
.visibility-hidden {
visibility: hidden
}
@media (prefers-reduced-motion) {
.motion-reduce {
transition: none !important;
animation: none !important
}
}
:root {
--duration-short: .1s;
--duration-default: .2s;
--duration-announcement-bar: .25s;
--duration-medium: .3s;
--duration-long: .5s;
--duration-extra-long: .6s;
--duration-extended: 3s;
--ease-out-slow: cubic-bezier(0, 0, .3, 1);
--animation-slide-in: slideIn var(--duration-extra-long) var(--ease-out-slow) forwards;
--animation-fade-in: fadeIn var(--duration-extra-long) var(--ease-out-slow)
}
.underlined-link,
.customer a,
.inline-richtext a {
text-underline-offset: .3rem;
text-decoration-thickness: .1rem;
transition: text-decoration-thickness ease .1s
}
.underlined-link,
.customer a {
color: rgba(var(--color-link), var(--alpha-link))
}
.inline-richtext a,
.rte.inline-richtext a {
color: currentColor
}
.underlined-link:hover,
.customer a:hover,
.inline-richtext a:hover {
color: rgb(var(--color-link));
text-decoration-thickness: .2rem
}
.icon-arrow {
width: 1.5rem
}
h3 .icon-arrow,
.h3 .icon-arrow {
width: calc(var(--font-heading-scale) * 1.5rem)
}
.animate-arrow .icon-arrow path {
transform: translate(-.25rem);
transition: transform var(--duration-short) ease
}
.animate-arrow:hover .icon-arrow path {
transform: translate(-.05rem)
}
summary {
cursor: pointer;
list-style: none;
position: relative
}
summary .icon-caret {
position: absolute;
height: .6rem;
right: 1.5rem;
top: calc(50% - .2rem)
}
summary::-webkit-details-marker {
display: none
}
.disclosure-has-popup {
position: relative
}
.disclosure-has-popup[open]>summary:before {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
display: block;
cursor: default;
content: " ";
background: transparent
}
.disclosure-has-popup>summary:before {
display: none
}
.disclosure-has-popup[open]>summary+* {
z-index: 100
}
@media screen and (min-width: 750px) {
.disclosure-has-popup[open]>summary+* {
z-index: 4
}
.facets .disclosure-has-popup[open]>summary+* {
z-index: 2
}
}
*:focus {
outline: 0;
box-shadow: none
}
*:focus-visible {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: .3rem;
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3)
}
.focused,
.no-js *:focus {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: .3rem;
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3)
}
.no-js *:focus:not(:focus-visible) {
outline: 0;
box-shadow: none
}
.focus-inset:focus-visible {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: -.2rem;
box-shadow: 0 0 .2rem 0 rgba(var(--color-foreground), .3)
}
.focused.focus-inset,
.no-js .focus-inset:focus {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: -.2rem;
box-shadow: 0 0 .2rem 0 rgba(var(--color-foreground), .3)
}
.no-js .focus-inset:focus:not(:focus-visible) {
outline: 0;
box-shadow: none
}
.focus-none {
box-shadow: none !important;
outline: 0 !important
}
.focus-offset:focus-visible {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: 1rem;
box-shadow: 0 0 0 1rem rgb(var(--color-background)), 0 0 .2rem 1.2rem rgba(var(--color-foreground), .3)
}
.focus-offset.focused,
.no-js .focus-offset:focus {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: 1rem;
box-shadow: 0 0 0 1rem rgb(var(--color-background)), 0 0 .2rem 1.2rem rgba(var(--color-foreground), .3)
}
.no-js .focus-offset:focus:not(:focus-visible) {
outline: 0;
box-shadow: none
}
.title,
.title-wrapper-with-link {
margin: 3rem 0 2rem
}
.title-wrapper-with-link .title {
margin: 0
}
.title .link {
font-size: inherit
}
.title-wrapper {
margin-bottom: 3rem
}
.title-wrapper-with-link {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 1rem;
margin-bottom: 3rem;
flex-wrap: wrap
}
.title--primary {
margin: 4rem 0
}
.title-wrapper--self-padded-tablet-down,
.title-wrapper--self-padded-mobile {
padding-left: 1.5rem;
padding-right: 1.5rem
}
@media screen and (min-width: 750px) {
.title-wrapper--self-padded-mobile {
padding-left: 0;
padding-right: 0
}
}
@media screen and (min-width: 990px) {
.title,
.title-wrapper-with-link {
margin: 5rem 0 3rem
}
.title--primary {
margin: 2rem 0
}
.title-wrapper-with-link {
align-items: center
}
.title-wrapper-with-link .title {
margin-bottom: 0
}
.title-wrapper--self-padded-tablet-down {
padding-left: 0;
padding-right: 0
}
}
.title-wrapper-with-link .link-with-icon {
margin: 0;
flex-shrink: 0;
display: flex;
align-items: center
}
.title-wrapper-with-link .link-with-icon svg {
width: 1.5rem
}
.title-wrapper-with-link a {
margin-top: 0;
flex-shrink: 0
}
.title-wrapper--no-top-margin {
margin-top: 0
}
.title-wrapper--no-top-margin>.title {
margin-top: 0
}
.subtitle {
font-size: 1.8rem;
line-height: calc(1 + .8 / var(--font-body-scale));
letter-spacing: .06rem;
color: rgba(var(--color-foreground), .7)
}
.subtitle--small {
font-size: 1.4rem;
letter-spacing: .1rem
}
.subtitle--medium {
font-size: 1.6rem;
letter-spacing: .08rem
}
.grid {
display: flex;
flex-wrap: wrap;
margin-bottom: 2rem;
padding: 0;
list-style: none;
column-gap: var(--grid-mobile-horizontal-spacing);
row-gap: var(--grid-mobile-vertical-spacing)
}
@media screen and (min-width: 750px) {
.grid {
column-gap: var(--grid-desktop-horizontal-spacing);
row-gap: var(--grid-desktop-vertical-spacing)
}
}
.grid:last-child {
margin-bottom: 0
}
.grid__item {
width: calc(25% - var(--grid-mobile-horizontal-spacing) * 3 / 4);
max-width: calc(50% - var(--grid-mobile-horizontal-spacing) / 2);
flex-grow: 1;
flex-shrink: 0
}
@media screen and (min-width: 750px) {
.grid__item {
width: calc(25% - var(--grid-desktop-horizontal-spacing) * 3 / 4);
max-width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
}
.grid--gapless.grid {
column-gap: 0;
row-gap: 0
}
@media screen and (max-width: 749px) {
.grid__item.slider__slide--full-width {
width: 100%;
max-width: none
}
}
.grid--1-col .grid__item {
max-width: 100%;
width: 100%
}
.grid--3-col .grid__item {
width: calc(33.33% - var(--grid-mobile-horizontal-spacing) * 2 / 3)
}
@media screen and (min-width: 750px) {
.grid--3-col .grid__item {
width: calc(33.33% - var(--grid-desktop-horizontal-spacing) * 2 / 3)
}
}
.grid--2-col .grid__item {
width: calc(50% - var(--grid-mobile-horizontal-spacing) / 2)
}
@media screen and (min-width: 750px) {
.grid--2-col .grid__item {
width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
.grid--4-col-tablet .grid__item {
width: calc(25% - var(--grid-desktop-horizontal-spacing) * 3 / 4)
}
.grid--3-col-tablet .grid__item {
width: calc(33.33% - var(--grid-desktop-horizontal-spacing) * 2 / 3)
}
.grid--2-col-tablet .grid__item {
width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
}
@media screen and (max-width: 989px) {
.grid--1-col-tablet-down .grid__item {
width: 100%;
max-width: 100%
}
.slider--tablet.grid--peek {
margin: 0;
width: 100%
}
.slider--tablet.grid--peek .grid__item {
box-sizing: content-box;
margin: 0
}
.slider.slider--tablet .scroll-trigger.animate--slide-in,
.slider.slider--mobile .scroll-trigger.animate--slide-in {
animation: none;
opacity: 1;
transform: inherit
}
.scroll-trigger:not(.scroll-trigger--offscreen) .slider--tablet {
animation: var(--animation-slide-in)
}
}
@media screen and (min-width: 990px) {
.grid--6-col-desktop .grid__item {
width: calc(16.66% - var(--grid-desktop-horizontal-spacing) * 5 / 6);
max-width: calc(16.66% - var(--grid-desktop-horizontal-spacing) * 5 / 6)
}
.grid--5-col-desktop .grid__item {
width: calc(20% - var(--grid-desktop-horizontal-spacing) * 4 / 5);
max-width: calc(20% - var(--grid-desktop-horizontal-spacing) * 4 / 5)
}
.grid--4-col-desktop .grid__item {
width: calc(25% - var(--grid-desktop-horizontal-spacing) * 3 / 4);
max-width: calc(25% - var(--grid-desktop-horizontal-spacing) * 3 / 4)
}
.grid--3-col-desktop .grid__item {
width: calc(33.33% - var(--grid-desktop-horizontal-spacing) * 2 / 3);
max-width: calc(33.33% - var(--grid-desktop-horizontal-spacing) * 2 / 3)
}
.grid--2-col-desktop .grid__item {
width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2);
max-width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
.slider.slider--desktop .scroll-trigger.animate--slide-in {
animation: none;
opacity: 1;
transform: inherit
}
.scroll-trigger:not(.scroll-trigger--offscreen) .slider--desktop {
animation: var(--animation-slide-in)
}
}
@media screen and (min-width: 990px) {
.grid--1-col-desktop {
flex: 0 0 100%;
max-width: 100%
}
.grid--1-col-desktop .grid__item {
width: 100%;
max-width: 100%
}
}
@media screen and (max-width: 749px) {
.grid--peek.slider--mobile {
margin: 0;
width: 100%
}
.grid--peek.slider--mobile .grid__item {
box-sizing: content-box;
margin: 0
}
.grid--peek .grid__item {
min-width: 35%
}
.grid--peek.slider .grid__item:first-of-type {
margin-left: 1.5rem
}
.grid--peek.slider:after {
margin-left: calc(-1 * var(--grid-mobile-horizontal-spacing))
}
.grid--2-col-tablet-down .grid__item {
width: calc(50% - var(--grid-mobile-horizontal-spacing) / 2)
}
.slider--tablet.grid--peek.grid--2-col-tablet-down .grid__item,
.grid--peek .grid__item {
width: calc(50% - var(--grid-mobile-horizontal-spacing) - 3rem)
}
.slider--tablet.grid--peek.grid--1-col-tablet-down .grid__item,
.slider--mobile.grid--peek.grid--1-col-tablet-down .grid__item {
width: calc(100% - var(--grid-mobile-horizontal-spacing) - 3rem)
}
}
@media screen and (min-width: 750px) and (max-width: 989px) {
.slider--tablet.grid--peek .grid__item {
width: calc(25% - var(--grid-desktop-horizontal-spacing) - 3rem)
}
.slider--tablet.grid--peek.grid--3-col-tablet .grid__item {
width: calc(33.33% - var(--grid-desktop-horizontal-spacing) - 3rem)
}
.slider--tablet.grid--peek.grid--2-col-tablet .grid__item,
.slider--tablet.grid--peek.grid--2-col-tablet-down .grid__item {
width: calc(50% - var(--grid-desktop-horizontal-spacing) - 3rem)
}
.slider--tablet.grid--peek .grid__item:first-of-type {
margin-left: 1.5rem
}
.grid--2-col-tablet-down .grid__item {
width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
.grid--1-col-tablet-down.grid--peek .grid__item {
width: calc(100% - var(--grid-desktop-horizontal-spacing) - 3rem)
}
}
.media {
display: block;
background-color: rgba(var(--color-foreground), .1);
position: relative;
overflow: hidden
}
.media--transparent {
background-color: transparent
}
.media>*:not(.zoom):not(.deferred-media__poster-button),
.media model-viewer {
display: block;
max-width: 100%;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%
}
.media>img {
object-fit: cover;
object-position: center center;
transition: opacity .4s cubic-bezier(.25, .46, .45, .94)
}
.media--square {
padding-bottom: 100%
}
.media--portrait {
padding-bottom: 125%
}
.media--landscape {
padding-bottom: 66.6%
}
.media--cropped {
padding-bottom: 56%
}
.media--16-9 {
padding-bottom: 56.25%
}
.media--circle {
padding-bottom: 100%;
border-radius: 50%
}
.media.media--hover-effect>img+img {
opacity: 0
}
@media screen and (min-width: 990px) {
.media--cropped {
padding-bottom: 63%
}
}
deferred-media {
display: block
}
.button--secondary,
.button--tertiary {
--color-button: var(--color-secondary-button);
--color-button-text: var(--color-secondary-button-text)
}
.button--tertiary {
--alpha-button-background: 0;
--alpha-button-border: .2
}
.button,
.shopify-challenge__button,
.customer button,
button.shopify-payment-button__button--unbranded,
.shopify-payment-button [role=button],
.cart__dynamic-checkout-buttons [role=button],
.cart__dynamic-checkout-buttons iframe {
--shadow-horizontal-offset: var(--buttons-shadow-horizontal-offset);
--shadow-vertical-offset: var(--buttons-shadow-vertical-offset);
--shadow-blur-radius: var(--buttons-shadow-blur-radius);
--shadow-opacity: var(--buttons-shadow-opacity);
--shadow-visible: var(--buttons-shadow-visible);
--border-offset: var(--buttons-border-offset);
--border-opacity: calc(1 - var(--buttons-border-opacity));
border-radius: var(--buttons-radius-outset);
position: relative
}
.button,
.shopify-challenge__button,
.customer button,
button.shopify-payment-button__button--unbranded {
min-width: calc(12rem + var(--buttons-border-width) * 2);
min-height: calc(4.5rem + var(--buttons-border-width) * 2)
}
.shopify-payment-button__button--branded {
z-index: auto
}
.cart__dynamic-checkout-buttons iframe {
box-shadow: var(--shadow-horizontal-offset) var(--shadow-vertical-offset) var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity))
}
.button,
.shopify-challenge__button,
.customer button {
display: inline-flex;
justify-content: center;
align-items: center;
border: 0;
padding: 0 3rem;
cursor: pointer;
font: inherit;
font-size: 1.5rem;
text-decoration: none;
color: rgb(var(--color-button-text));
transition: box-shadow var(--duration-short) ease;
-webkit-appearance: none;
appearance: none;
background-color: rgba(var(--color-button), var(--alpha-button-background))
}
.button:before,
.shopify-challenge__button:before,
.customer button:before,
.shopify-payment-button__button--unbranded:before,
.shopify-payment-button [role=button]:before,
.cart__dynamic-checkout-buttons [role=button]:before {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
border-radius: var(--buttons-radius-outset);
box-shadow: var(--shadow-horizontal-offset) var(--shadow-vertical-offset) var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity))
}
.button:after,
.shopify-challenge__button:after,
.customer button:after,
.shopify-payment-button__button--unbranded:after {
content: "";
position: absolute;
top: var(--buttons-border-width);
right: var(--buttons-border-width);
bottom: var(--buttons-border-width);
left: var(--buttons-border-width);
z-index: 1;
border-radius: var(--buttons-radius);
box-shadow: 0 0 0 calc(var(--buttons-border-width) + var(--border-offset)) rgba(var(--color-button-text), var(--border-opacity)), 0 0 0 var(--buttons-border-width) rgba(var(--color-button), var(--alpha-button-background));
transition: box-shadow var(--duration-short) ease
}
.button:not([disabled]):hover:after,
.shopify-challenge__button:hover:after,
.customer button:hover:after,
.shopify-payment-button__button--unbranded:hover:after {
--border-offset: 1.3px;
box-shadow: 0 0 0 calc(var(--buttons-border-width) + var(--border-offset)) rgba(var(--color-button-text), var(--border-opacity)), 0 0 0 calc(var(--buttons-border-width) + 1px) rgba(var(--color-button), var(--alpha-button-background))
}
.button--secondary:after {
--border-opacity: var(--buttons-border-opacity)
}
.button:focus-visible,
.button:focus,
.button.focused,
.shopify-payment-button__button--unbranded:focus-visible,
.shopify-payment-button [role=button]:focus-visible,
.shopify-payment-button__button--unbranded:focus,
.shopify-payment-button [role=button]:focus {
outline: 0;
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .5), 0 0 .5rem .4rem rgba(var(--color-foreground), .3)
}
.button:focus:not(:focus-visible):not(.focused),
.shopify-payment-button__button--unbranded:focus:not(:focus-visible):not(.focused),
.shopify-payment-button [role=button]:focus:not(:focus-visible):not(.focused) {
box-shadow: inherit
}
.button::selection,
.shopify-challenge__button::selection,
.customer button::selection {
background-color: rgba(var(--color-button-text), .3)
}
.button,
.button-label,
.shopify-challenge__button,
.customer button {
font-size: 1.5rem;
letter-spacing: .1rem;
line-height: calc(1 + .2 / var(--font-body-scale))
}
.button--tertiary {
font-size: 1.2rem;
padding: 1rem 1.5rem;
min-width: calc(9rem + var(--buttons-border-width) * 2);
min-height: calc(3.5rem + var(--buttons-border-width) * 2)
}
.button--small {
padding: 1.2rem 2.6rem
}
.button:disabled,
.button[aria-disabled=true],
.button.disabled,
.customer button:disabled,
.customer button[aria-disabled=true],
.customer button.disabled,
.quantity__button.disabled {
cursor: not-allowed;
opacity: .5
}
.button--full-width {
display: flex;
width: 100%
}
.button.loading {
color: transparent;
position: relative
}
@media screen and (forced-colors: active) {
.button.loading {
color: rgb(var(--color-foreground))
}
}
.button.loading>.loading__spinner {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
position: absolute;
height: 100%;
display: flex;
align-items: center
}
.button.loading>.loading__spinner .spinner {
width: fit-content
}
.button.loading>.loading__spinner .path {
stroke: rgb(var(--color-button-text))
}
.share-button {
display: block;
position: relative
}
.share-button details {
width: fit-content
}
.share-button__button {
font-size: 1.4rem;
display: flex;
align-items: center;
color: rgb(var(--color-link));
margin-left: 0;
padding-left: 0;
min-height: 4.4rem
}
details[open]>.share-button__fallback {
animation: animateMenuOpen var(--duration-default) ease
}
.share-button__button:hover {
text-decoration: underline;
text-underline-offset: .3rem
}
.share-button__button,
.share-button__fallback button {
cursor: pointer;
background-color: transparent;
border: none
}
.share-button__button .icon-share {
height: 1.2rem;
margin-right: 1rem;
min-width: 1.3rem
}
.share-button__fallback {
display: flex;
align-items: center;
position: absolute;
top: 3rem;
left: .1rem;
z-index: 3;
width: 100%;
min-width: max-content;
border-radius: var(--inputs-radius);
border: 0
}
.share-button__fallback:after {
pointer-events: none;
content: "";
position: absolute;
top: var(--inputs-border-width);
right: var(--inputs-border-width);
bottom: var(--inputs-border-width);
left: var(--inputs-border-width);
border: .1rem solid transparent;
border-radius: var(--inputs-radius);
box-shadow: 0 0 0 var(--inputs-border-width) rgba(var(--color-foreground), var(--inputs-border-opacity));
transition: box-shadow var(--duration-short) ease;
z-index: 1
}
.share-button__fallback:before {
background: rgb(var(--color-background));
pointer-events: none;
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border-radius: var(--inputs-radius-outset);
box-shadow: var(--inputs-shadow-horizontal-offset) var(--inputs-shadow-vertical-offset) var(--inputs-shadow-blur-radius) rgba(var(--color-shadow), var(--inputs-shadow-opacity));
z-index: -1
}
.share-button__fallback button {
width: 4.4rem;
height: 4.4rem;
padding: 0;
flex-shrink: 0;
display: flex;
justify-content: center;
align-items: center;
position: relative;
right: var(--inputs-border-width)
}
.share-button__fallback button:hover {
color: rgba(var(--color-foreground), .75)
}
.share-button__fallback button:hover svg {
transform: scale(1.07)
}
.share-button__close:not(.hidden)+.share-button__copy {
display: none
}
.share-button__close,
.share-button__copy {
background-color: transparent;
color: rgb(var(--color-foreground))
}
.share-button__copy:focus-visible,
.share-button__close:focus-visible {
background-color: rgb(var(--color-background));
z-index: 2
}
.share-button__copy:focus,
.share-button__close:focus {
background-color: rgb(var(--color-background));
z-index: 2
}
.field:not(:focus-visible):not(.focused)+.share-button__copy:not(:focus-visible):not(.focused),
.field:not(:focus-visible):not(.focused)+.share-button__close:not(:focus-visible):not(.focused) {
background-color: inherit
}
.share-button__fallback .field:after,
.share-button__fallback .field:before {
content: none
}
.share-button__fallback .field {
border-radius: 0;
min-width: auto;
min-height: auto;
transition: none
}
.share-button__fallback .field__input:focus,
.share-button__fallback .field__input:-webkit-autofill {
outline: .2rem solid rgba(var(--color-foreground), .5);
outline-offset: .1rem;
box-shadow: 0 0 0 .1rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3)
}
.share-button__fallback .field__input {
box-shadow: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
filter: none;
min-width: auto;
min-height: auto
}
.share-button__fallback .field__input:hover {
box-shadow: none
}
.share-button__fallback .icon {
width: 1.5rem;
height: 1.5rem
}
.share-button__message:not(:empty) {
display: flex;
align-items: center;
width: 100%;
height: 100%;
margin-top: 0;
padding: .8rem 0 .8rem 1.5rem;
margin: var(--inputs-border-width)
}
.share-button__message:not(:empty):not(.hidden)~* {
display: none
}
.field__input,
.select__select,
.customer .field input,
.customer select {
-webkit-appearance: none;
appearance: none;
background-color: rgb(var(--color-background));
color: rgb(var(--color-foreground));
font-size: 1.6rem;
width: 100%;
box-sizing: border-box;
transition: box-shadow var(--duration-short) ease;
border-radius: var(--inputs-radius);
height: 4.5rem;
min-height: calc(var(--inputs-border-width) * 2);
min-width: calc(7rem + (var(--inputs-border-width) * 2));
position: relative;
border: 0
}
.field:before,
.select:before,
.customer .field:before,
.customer select:before,
.localization-form__select:before {
pointer-events: none;
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border-radius: var(--inputs-radius-outset);
box-shadow: var(--inputs-shadow-horizontal-offset) var(--inputs-shadow-vertical-offset) var(--inputs-shadow-blur-radius) rgba(var(--color-shadow), var(--inputs-shadow-opacity));
z-index: -1
}
.field:after,
.select:after,
.customer .field:after,
.customer select:after,
.localization-form__select:after {
pointer-events: none;
content: "";
position: absolute;
top: var(--inputs-border-width);
right: var(--inputs-border-width);
bottom: var(--inputs-border-width);
left: var(--inputs-border-width);
border: .1rem solid transparent;
border-radius: var(--inputs-radius);
box-shadow: 0 0 0 var(--inputs-border-width) rgba(var(--color-foreground), var(--inputs-border-opacity));
transition: box-shadow var(--duration-short) ease;
z-index: 1
}
.select__select {
font-family: var(--font-body-family);
font-style: var(--font-body-style);
font-weight: var(--font-body-weight);
font-size: 1.2rem;
color: rgba(var(--color-foreground), .75)
}
.field:hover.field:after,
.select:hover.select:after,
.select__select:hover.select__select:after,
.customer .field:hover.field:after,
.customer select:hover.select:after,
.localization-form__select:hover.localization-form__select:after {
box-shadow: 0 0 0 calc(.1rem + var(--inputs-border-width)) rgba(var(--color-foreground), var(--inputs-border-opacity));
outline: 0;
border-radius: var(--inputs-radius)
}
.field__input:focus-visible,
.select__select:focus-visible,
.customer .field input:focus-visible,
.customer select:focus-visible,
.localization-form__select:focus-visible.localization-form__select:after {
box-shadow: 0 0 0 calc(.1rem + var(--inputs-border-width)) rgba(var(--color-foreground));
outline: 0;
border-radius: var(--inputs-radius)
}
.field__input:focus,
.select__select:focus,
.customer .field input:focus,
.customer select:focus,
.localization-form__select:focus.localization-form__select:after {
box-shadow: 0 0 0 calc(.1rem + var(--inputs-border-width)) rgba(var(--color-foreground));
outline: 0;
border-radius: var(--inputs-radius)
}
.localization-form__select:focus {
outline: 0;
box-shadow: none
}
.text-area,
.select {
display: flex;
position: relative;
width: 100%
}
.select .icon-caret,
.customer select+svg {
height: .6rem;
pointer-events: none;
position: absolute;
top: calc(50% - .2rem);
right: calc(var(--inputs-border-width) + 1.5rem)
}
.select__select,
.customer select {
cursor: pointer;
line-height: calc(1 + .6 / var(--font-body-scale));
padding: 0 calc(var(--inputs-border-width) + 3rem) 0 2rem;
margin: var(--inputs-border-width);
min-height: calc(var(--inputs-border-width) * 2)
}
.field {
position: relative;
width: 100%;
display: flex;
transition: box-shadow var(--duration-short) ease
}
.customer .field {
display: flex
}
.field--with-error {
flex-wrap: wrap
}
.field__input,
.customer .field input {
flex-grow: 1;
text-align: left;
padding: 1.5rem;
margin: var(--inputs-border-width);
transition: box-shadow var(--duration-short) ease
}
.field__label,
.customer .field label {
font-size: 1.6rem;
left: calc(var(--inputs-border-width) + 2rem);
top: calc(1rem + var(--inputs-border-width));
margin-bottom: 0;
pointer-events: none;
position: absolute;
transition: top var(--duration-short) ease, font-size var(--duration-short) ease;
color: rgba(var(--color-foreground), .75);
letter-spacing: .1rem;
line-height: 1.5
}
.field__input:focus~.field__label,
.field__input:not(:placeholder-shown)~.field__label,
.field__input:-webkit-autofill~.field__label,
.customer .field input:focus~label,
.customer .field input:not(:placeholder-shown)~label,
.customer .field input:-webkit-autofill~label {
font-size: 1rem;
top: calc(var(--inputs-border-width) + .5rem);
left: calc(var(--inputs-border-width) + 2rem);
letter-spacing: .04rem
}
.field__input:focus,
.field__input:not(:placeholder-shown),
.field__input:-webkit-autofill,
.customer .field input:focus,
.customer .field input:not(:placeholder-shown),
.customer .field input:-webkit-autofill {
padding: 2.2rem 1.5rem .8rem 2rem;
margin: var(--inputs-border-width)
}
.field__input::-webkit-search-cancel-button,
.customer .field input::-webkit-search-cancel-button {
display: none
}
.field__input::placeholder,
.customer .field input::placeholder {
opacity: 0
}
.field__button {
align-items: center;
background-color: transparent;
border: 0;
color: currentColor;
cursor: pointer;
display: flex;
height: 4.4rem;
justify-content: center;
overflow: hidden;
padding: 0;
position: absolute;
right: 0;
top: 0;
width: 4.4rem
}
.field__button>svg {
height: 2.5rem;
width: 2.5rem
}
.field__input:-webkit-autofill~.field__button,
.field__input:-webkit-autofill~.field__label,
.customer .field input:-webkit-autofill~label {
color: #000
}
.text-area {
font-family: var(--font-body-family);
font-style: var(--font-body-style);
font-weight: var(--font-body-weight);
min-height: 10rem;
resize: none
}
input[type=checkbox] {
display: inline-block;
width: auto;
margin-right: .5rem
}
.form__label {
display: block;
margin-bottom: .6rem
}
.form__message {
align-items: center;
display: flex;
font-size: 1.4rem;
line-height: 1;
margin-top: 1rem
}
.form__message--large {
font-size: 1.6rem
}
.customer .field .form__message {
font-size: 1.4rem;
text-align: left
}
.form__message .icon,
.customer .form__message svg {
flex-shrink: 0;
height: 1.3rem;
margin-right: .5rem;
width: 1.3rem
}
.form__message--large .icon,
.customer .form__message svg {
height: 1.5rem;
width: 1.5rem;
margin-right: 1rem
}
.customer .field .form__message svg {
align-self: start
}
.form-status {
margin: 0;
font-size: 1.6rem
}
.form-status-list {
padding: 0;
margin: 2rem 0 4rem
}
.form-status-list li {
list-style-position: inside
}
.form-status-list .link:first-letter {
text-transform: capitalize
}
.quantity {
color: rgba(var(--color-foreground));
position: relative;
width: calc(14rem / var(--font-body-scale) + var(--inputs-border-width) * 2);
display: flex;
border-radius: var(--inputs-radius);
min-height: calc((var(--inputs-border-width) * 2) + 4.5rem)
}
.quantity:after {
pointer-events: none;
content: "";
position: absolute;
top: var(--inputs-border-width);
right: var(--inputs-border-width);
bottom: var(--inputs-border-width);
left: var(--inputs-border-width);
border: .1rem solid transparent;
border-radius: var(--inputs-radius);
box-shadow: 0 0 0 var(--inputs-border-width) rgba(var(--color-foreground), var(--inputs-border-opacity));
transition: box-shadow var(--duration-short) ease;
z-index: 1
}
.quantity:before {
background: rgb(var(--color-background));
pointer-events: none;
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border-radius: var(--inputs-radius-outset);
box-shadow: var(--inputs-shadow-horizontal-offset) var(--inputs-shadow-vertical-offset) var(--inputs-shadow-blur-radius) rgba(var(--color-shadow), var(--inputs-shadow-opacity));
z-index: -1
}
.quantity__input {
color: currentColor;
font-size: 1.6rem;
font-weight: 500;
opacity: .85;
text-align: center;
background-color: transparent;
border: 0;
padding: 0 .5rem;
width: 100%;
flex-grow: 1;
-webkit-appearance: none;
appearance: none
}
.quantity__button {
width: calc(4.5rem / var(--font-body-scale));
flex-shrink: 0;
font-size: 1.8rem;
border: 0;
background-color: transparent;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: rgb(var(--color-foreground));
padding: 0
}
.quantity__button:first-child {
margin-left: calc(var(--inputs-border-width))
}
.quantity__button:last-child {
margin-right: calc(var(--inputs-border-width))
}
.quantity__button svg {
width: 1rem;
pointer-events: none
}
.quantity__button:focus-visible,
.quantity__input:focus-visible {
background-color: rgb(var(--color-background));
z-index: 2
}
.quantity__button:focus,
.quantity__input:focus {
background-color: rgb(var(--color-background));
z-index: 2
}
.quantity__button:not(:focus-visible):not(.focused),
.quantity__input:not(:focus-visible):not(.focused) {
box-shadow: inherit;
background-color: inherit
}
.quantity__input:-webkit-autofill,
.quantity__input:-webkit-autofill:hover,
.quantity__input:-webkit-autofill:active {
box-shadow: 0 0 0 10rem rgb(var(--color-background)) inset !important;
-webkit-box-shadow: 0 0 0 10rem rgb(var(--color-background)) inset !important
}
.quantity__input::-webkit-outer-spin-button,
.quantity__input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0
}
.quantity__input[type=number] {
-moz-appearance: textfield
}
.quantity__rules {
margin-top: .5rem;
position: relative;
font-size: 1.2rem
}
.quantity__rules .caption {
display: inline-block;
margin-top: 0;
margin-bottom: 0
}
.quantity__rules .divider+.divider:before {
content: "\2022";
margin: 0 .5rem
}
.quantity__rules-cart {
position: relative
}
product-info .loading__spinner:not(.hidden)~*,
.quantity__rules-cart .loading__spinner:not(.hidden)~* {
visibility: hidden
}
.modal__toggle {
list-style-type: none
}
.no-js details[open] .modal__toggle {
position: absolute;
z-index: 5
}
.modal__toggle-close {
display: none
}
.no-js details[open] svg.modal__toggle-close {
display: flex;
z-index: 1;
height: 1.7rem;
width: 1.7rem
}
.modal__toggle-open {
display: flex
}
.no-js details[open] .modal__toggle-open {
display: none
}
.no-js .modal__close-button.link {
display: none
}
.modal__close-button.link {
display: flex;
justify-content: center;
align-items: center;
padding: 0rem;
height: 4.4rem;
width: 4.4rem;
background-color: transparent
}
.modal__close-button .icon {
width: 1.7rem;
height: 1.7rem
}
.modal__content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgb(var(--color-background));
z-index: 4;
display: flex;
justify-content: center;
align-items: center
}
.media-modal {
cursor: zoom-out
}
.media-modal .deferred-media {
cursor: initial
}
.cart-count-bubble:empty {
display: none
}
.cart-count-bubble {
position: absolute;
background-color: rgb(var(--color-button));
color: rgb(var(--color-button-text));
height: 1.7rem;
width: 1.7rem;
border-radius: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: .9rem;
bottom: .8rem;
left: 2.2rem;
line-height: calc(1 + .1 / var(--font-body-scale))
}
.utility-bar {
height: 100%
}
.utility-bar--bottom-border {
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
@media screen and (min-width: 990px) {
.utility-bar--bottom-border-social-only {
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
}
.utility-bar__grid {
display: grid;
grid-template-columns: 1fr;
grid-template-areas: "announcements"
}
.utility-bar__grid .list-social {
justify-content: flex-start;
align-content: center;
margin-left: -1.2rem;
grid-area: social-icons
}
@media screen and (max-width: 989px) {
.utility-bar .utility-bar__grid .list-social {
display: none
}
}
.utility-bar .list-social__item .icon {
scale: .9
}
@media screen and (min-width: 990px) {
.utility-bar__grid--3-col {
grid-template-columns: 3fr 4fr 3fr;
grid-template-areas: "social-icons announcements language-currency"
}
.utility-bar__grid--2-col {
grid-template-columns: 1fr 1fr;
grid-template-areas: "social-icons language-currency"
}
.announcement-bar.announcement-bar--one-announcement,
.announcement-bar--one-announcement .announcement-bar__link {
width: fit-content;
margin: auto
}
}
.announcement-bar,
.announcement-bar__announcement {
color: rgb(var(--color-foreground));
width: 100%;
height: 100%;
display: flex;
justify-content: center;
flex-wrap: wrap;
align-content: center;
grid-area: announcements
}
.announcement-bar .slider--everywhere {
margin-bottom: 0;
scroll-behavior: auto
}
.utility-bar__grid .announcement-bar-slider,
.announcement-bar-slider,
.announcement-bar-slider .slider {
width: 100%
}
.announcement-bar .slider-button--next {
margin-right: -1.5rem;
min-width: 44px
}
.announcement-bar .slider-button--prev {
margin-left: -1.5rem;
min-width: 44px
}
.announcement-bar .slider-button--next:focus-visible,
.announcement-bar .slider-button--prev:focus-visible,
.utility-bar .list-social__link:focus-visible {
outline-offset: -.3rem;
box-shadow: 0 0 0 -.2rem rgb(var(--color-foreground))
}
.localization-wrapper {
grid-area: language-currency;
align-self: center;
display: flex;
justify-content: flex-end
}
.localization-wrapper .localization-selector+.disclosure__list-wrapper {
animation: animateMenuOpen var(--duration-default) ease
}
.utility-bar .localization-wrapper .disclosure .localization-form__select,
.utility-bar .localization-wrapper .disclosure__link {
font-size: calc(var(--font-heading-scale) * 1.3rem)
}
@media screen and (min-width: 990px) {
body:has(.section-header .header:not(.drawer-menu)) .utility-bar .page-width {
padding-left: 5rem;
padding-right: 5rem
}
.announcement-bar-slider {
width: 60%
}
.announcement-bar .slider-button {
height: 3.8rem
}
}
.announcement-bar__link {
display: flex;
width: 100%;
text-decoration: none;
height: 100%;
justify-content: center;
align-items: center
}
.announcement-bar__link:hover {
text-decoration: underline
}
.announcement-bar__link .icon-arrow {
display: inline-block;
pointer-events: none;
margin-left: .8rem;
vertical-align: middle;
margin-bottom: .2rem
}
.announcement-bar__message {
text-align: center;
padding: 1rem 0;
margin: 0;
letter-spacing: .1rem;
min-height: 3.8rem
}
.announcement-bar-slider--fade-in-next .announcement-bar__message,
.announcement-bar-slider--fade-in-previous .announcement-bar__message,
.announcement-bar-slider--fade-out-next .announcement-bar__message,
.announcement-bar-slider--fade-out-previous .announcement-bar__message {
animation-duration: var(--duration-announcement-bar);
animation-timing-function: ease-in-out;
animation-fill-mode: forwards
}
.announcement-bar-slider--fade-in-next .announcement-bar__message {
--announcement-translate-from: -1.5rem;
opacity: 0;
animation-name: translateAnnouncementSlideIn;
animation-delay: var(--duration-announcement-bar)
}
.announcement-bar-slider--fade-in-previous .announcement-bar__message {
--announcement-translate-from: 1.5rem;
opacity: 0;
animation-name: translateAnnouncementSlideIn;
animation-delay: var(--duration-announcement-bar)
}
.announcement-bar-slider--fade-out-next .announcement-bar__message {
--announcement-translate-to: 1.5rem;
animation-name: translateAnnouncementSlideOut
}
.announcement-bar-slider--fade-out-previous .announcement-bar__message {
--announcement-translate-to: -1.5rem;
animation-name: translateAnnouncementSlideOut
}
@keyframes translateAnnouncementSlideIn {
0% {
opacity: 0;
transform: translate(var(--announcement-translate-from))
}
to {
opacity: 1;
transform: translate(0)
}
}
@keyframes translateAnnouncementSlideOut {
0% {
opacity: 1;
transform: translate(0)
}
to {
opacity: 0;
transform: translate(var(--announcement-translate-to))
}
}
.section-header.shopify-section-group-header-group {
z-index: 3
}
.shopify-section-header-sticky {
position: sticky;
top: 0
}
.shopify-section-header-hidden {
top: calc(-1 * var(--header-height))
}
.shopify-section-header-hidden.menu-open {
top: 0
}
.section-header.animate {
transition: top .15s ease-out
}
.shopify-section-group-header-group {
z-index: 4
}
.section-header~.shopify-section-group-header-group {
z-index: initial
}
.header-wrapper {
display: block;
position: relative;
background-color: rgb(var(--color-background))
}
.header-wrapper--border-bottom {
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
.header {
display: grid;
grid-template-areas: "left-icons heading icons";
grid-template-columns: 1fr 2fr 1fr;
align-items: center
}
@media screen and (max-width: 749px) {
.header--has-app {
grid-template-columns: auto 1fr auto
}
}
@media screen and (min-width: 990px) {
.header {
grid-template-columns: 1fr auto 1fr
}
.header--top-left,
.header--middle-left:not(.header--has-menu) {
grid-template-areas: "heading icons" "navigation navigation";
grid-template-columns: 1fr auto
}
.header--top-left.drawer-menu,
.header--middle-left.drawer-menu {
grid-template-areas: "navigation heading icons";
grid-template-columns: auto 1fr auto;
column-gap: 1rem
}
.header--middle-left {
grid-template-areas: "heading navigation icons";
grid-template-columns: auto auto 1fr;
column-gap: 2rem
}
.header--middle-center:not(.drawer-menu) {
grid-template-areas: "navigation heading icons";
grid-template-columns: 1fr auto 1fr;
column-gap: 2rem
}
.header--middle-center a.header__heading-link {
text-align: center
}
.header--top-center {
grid-template-areas: "left-icons heading icons" "navigation navigation navigation"
}
.header--top-center.drawer-menu {
grid-template-areas: "left-icons heading icons";
grid-template-columns: 1fr auto 1fr
}
.header:not(.header--middle-left, .header--middle-center) .header__inline-menu {
margin-top: 1.05rem
}
}
.header *[tabindex="-1"]:focus {
outline: none
}
.header__heading {
margin: 0;
line-height: 0
}
.header>.header__heading-link {
line-height: 0
}
.header__heading,
.header__heading-link {
grid-area: heading;
justify-self: center
}
.header__heading-link {
display: inline-block;
padding: .75rem;
text-decoration: none;
word-break: break-word
}
.header__heading-link:hover .h2 {
color: rgb(var(--color-foreground))
}
.header__heading-link .h2 {
line-height: 1;
color: rgba(var(--color-foreground), .75)
}
.header__heading-logo {
height: auto;
max-width: 100%
}
.header__heading-logo-wrapper {
width: 100%;
display: inline-block;
transition: width .3s cubic-bezier(.52, 0, .61, .99)
}
@media screen and (max-width: 989px) {
.header__heading,
.header__heading-link {
text-align: center
}
.header--mobile-left .header__heading,
.header--mobile-left .header__heading-link {
text-align: left;
justify-self: start
}
.header--mobile-left {
grid-template-columns: auto 2fr 1fr
}
}
@media screen and (min-width: 990px) {
.header--middle-left .header__heading-link,
.header--top-left .header__heading-link {
margin-left: -.75rem
}
.header__heading,
.header__heading-link {
justify-self: start
}
.header--middle-center .header__heading-link,
.header--middle-center .header__heading,
.header--top-center .header__heading-link,
.header--top-center .header__heading {
justify-self: center;
text-align: center
}
}
.header__icons {
display: flex;
grid-area: icons;
justify-self: end;
padding-right: .8rem
}
.header__icons .shopify-app-block {
max-width: 4.4rem;
max-height: 4.4rem;
overflow: hidden
}
.header__icon:not(.header__icon--summary),
.header__icon span {
display: flex;
align-items: center;
justify-content: center
}
.header__icon {
color: rgb(var(--color-foreground))
}
.header__icon span {
height: 100%
}
.header__icon:after {
content: none
}
.header__icon:hover .icon,
.modal__close-button:hover .icon {
transform: scale(1.07)
}
.header__icon .icon {
height: 2rem;
width: 2rem;
fill: none;
vertical-align: middle
}
.header__icon,
.header__icon--cart .icon {
height: 4.4rem;
width: 4.4rem;
padding: 0
}
.header__icon--cart {
position: relative;
margin-right: -1.2rem
}
.header__icon--menu[aria-expanded=true]:before {
content: "";
top: 100%;
left: 0;
height: calc(var(--viewport-height, 100vh) - (var(--header-bottom-position, 100%)));
width: 100%;
display: block;
position: absolute;
background: rgba(var(--color-foreground), .5)
}
menu-drawer+.header__search {
display: none
}
.header>.header__search {
grid-area: left-icons;
justify-self: start
}
.header--top-center.drawer-menu>.header__search {
margin-left: 3.2rem
}
.header--top-center header-drawer {
grid-area: left-icons
}
.header:not(.header--has-menu) *>.header__search {
display: none
}
.header__search {
display: inline-flex;
line-height: 0
}
.header--top-center>.header__search {
display: none
}
.header--top-center *>.header__search {
display: inline-flex
}
@media screen and (min-width: 990px) {
.header:not(.header--top-center) *>.header__search,
.header--top-center>.header__search {
display: inline-flex
}
.header:not(.header--top-center)>.header__search,
.header--top-center *>.header__search {
display: none
}
}
.no-js .predictive-search {
display: none
}
details[open]>.search-modal {
opacity: 1;
animation: animateMenuOpen var(--duration-default) ease
}
details[open] .modal-overlay {
display: block
}
details[open] .modal-overlay:after {
position: absolute;
content: "";
background-color: rgb(var(--color-foreground), .5);
top: 100%;
left: 0;
right: 0;
height: 100vh
}
.no-js details[open]>.header__icon--search {
top: 1rem;
right: .5rem
}
.search-modal {
opacity: 0;
border-bottom: .1rem solid rgba(var(--color-foreground), .08);
min-height: calc(100% + var(--inputs-margin-offset) + (2 * var(--inputs-border-width)));
height: 100%
}
.search-modal__content {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding: 0 5rem 0 1rem;
line-height: calc(1 + .8 / var(--font-body-scale));
position: relative
}
.search-modal__content-bottom {
bottom: calc((var(--inputs-margin-offset) / 2))
}
.search-modal__content-top {
top: calc((var(--inputs-margin-offset) / 2))
}
.search-modal__form {
width: 100%
}
.search-modal__close-button {
position: absolute;
right: .3rem
}
@media screen and (min-width: 750px) {
.search-modal__close-button {
right: 1rem
}
.search-modal__content {
padding: 0 6rem
}
}
@media screen and (min-width: 990px) {
.search-modal__form {
max-width: 74.2rem
}
.search-modal__close-button {
position: initial;
margin-left: .5rem
}
}
.header__icon--menu .icon {
display: block;
position: absolute;
opacity: 1;
transform: scale(1);
transition: transform .15s ease, opacity .15s ease
}
details:not([open])>.header__icon--menu .icon-close,
details[open]>.header__icon--menu .icon-hamburger {
visibility: hidden;
opacity: 0;
transform: scale(.8)
}
.js details[open]:not(.menu-opening)>.header__icon--menu .icon-close {
visibility: hidden
}
.js details[open]:not(.menu-opening)>.header__icon--menu .icon-hamburger {
visibility: visible;
opacity: 1;
transform: scale(1.07)
}
.js details>.header__submenu {
opacity: 0;
transform: translateY(-1.5rem)
}
details[open]>.header__submenu {
animation: animateMenuOpen var(--duration-default) ease;
animation-fill-mode: forwards;
z-index: 1
}
@media (prefers-reduced-motion) {
details[open]>.header__submenu {
opacity: 1;
transform: translateY(0)
}
}
.header__inline-menu {
margin-left: -1.2rem;
grid-area: navigation;
display: none
}
.header--top-center .header__inline-menu,
.header--top-center .header__heading-link {
margin-left: 0
}
@media screen and (min-width: 990px) {
.header__inline-menu {
display: block
}
.header--top-center .header__inline-menu {
justify-self: center
}
.header--top-center .header__inline-menu>.list-menu--inline {
justify-content: center
}
.header--middle-left .header__inline-menu {
margin-left: 0
}
}
.header__menu {
padding: 0 1rem
}
.header__menu-item {
padding: 1.2rem;
text-decoration: none;
color: rgba(var(--color-foreground), .75)
}
.header__menu-item:hover {
color: rgb(var(--color-foreground))
}
.header__menu-item span {
transition: text-decoration var(--duration-short) ease
}
.header__menu-item:hover span {
text-decoration: underline;
text-underline-offset: .3rem
}
details[open]>.header__menu-item {
text-decoration: underline
}
details[open]:hover>.header__menu-item {
text-decoration-thickness: .2rem
}
details[open]>.header__menu-item .icon-caret {
transform: rotate(180deg)
}
.header__active-menu-item {
transition: text-decoration-thickness var(--duration-short) ease;
color: rgb(var(--color-foreground));
text-decoration: underline;
text-underline-offset: .3rem
}
.header__menu-item:hover .header__active-menu-item {
text-decoration-thickness: .2rem
}
.header__submenu {
transition: opacity var(--duration-default) ease, transform var(--duration-default) ease
}
.global-settings-popup,
.header__submenu.global-settings-popup {
border-radius: var(--popup-corner-radius);
border-color: rgba(var(--color-foreground), var(--popup-border-opacity));
border-style: solid;
border-width: var(--popup-border-width);
box-shadow: var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity));
z-index: -1
}
.header__submenu.list-menu {
padding: 1rem 0
}
.header__submenu .header__submenu {
background-color: rgba(var(--color-foreground), .03);
padding: 1rem 0;
margin: 1rem 0
}
.header__submenu .header__menu-item:after {
right: 2rem
}
.header__submenu .header__menu-item {
justify-content: space-between;
padding: .8rem 2rem
}
.header__submenu .header__menu-item:hover {
text-decoration-line: underline
}
.header__menu-item .icon-caret {
right: .8rem
}
.header__submenu .icon-caret {
flex-shrink: 0;
margin-left: 1rem;
position: static
}
header-menu>details,
details-disclosure>details {
position: relative
}
@keyframes animateMenuOpen {
0% {
opacity: 0;
transform: translateY(-1.5rem)
}
to {
opacity: 1;
transform: translateY(0)
}
}
.overflow-hidden-mobile,
.overflow-hidden-tablet,
.overflow-hidden-desktop {
overflow: hidden
}
@media screen and (min-width: 750px) {
.overflow-hidden-mobile {
overflow: auto
}
}
@media screen and (min-width: 990px) {
.overflow-hidden-tablet {
overflow: auto
}
}
.badge {
border: 1px solid transparent;
border-radius: var(--badge-corner-radius);
display: inline-block;
font-size: 1.2rem;
letter-spacing: .1rem;
line-height: 1;
padding: .5rem 1.3rem .6rem;
text-align: center;
background-color: rgb(var(--color-badge-background));
border-color: rgba(var(--color-badge-border), var(--alpha-badge-border));
color: rgb(var(--color-badge-foreground));
word-break: break-word
}
.gradient {
background: rgb(var(--color-background));
background: var(--gradient-background);
background-attachment: fixed
}
@media screen and (forced-colors: active) {
.icon {
color: CanvasText;
fill: CanvasText !important
}
.icon-close-small path {
stroke: CanvasText
}
}
.ratio {
display: flex;
position: relative;
align-items: stretch
}
.ratio:before {
content: "";
width: 0;
height: 0;
padding-bottom: var(--ratio-percent)
}
.content-container {
border-radius: var(--text-boxes-radius);
border: var(--text-boxes-border-width) solid rgba(var(--color-foreground), var(--text-boxes-border-opacity));
position: relative
}
.content-container:after {
content: "";
position: absolute;
top: calc(var(--text-boxes-border-width) * -1);
right: calc(var(--text-boxes-border-width) * -1);
bottom: calc(var(--text-boxes-border-width) * -1);
left: calc(var(--text-boxes-border-width) * -1);
border-radius: var(--text-boxes-radius);
box-shadow: var(--text-boxes-shadow-horizontal-offset) var(--text-boxes-shadow-vertical-offset) var(--text-boxes-shadow-blur-radius) rgba(var(--color-shadow), var(--text-boxes-shadow-opacity));
z-index: -1
}
.content-container--full-width:after {
left: 0;
right: 0;
border-radius: 0
}
@media screen and (max-width: 749px) {
.content-container--full-width-mobile {
border-left: none;
border-right: none;
border-radius: 0
}
.content-container--full-width-mobile:after {
display: none
}
}
.global-media-settings {
position: relative;
border: var(--media-border-width) solid rgba(var(--color-foreground), var(--media-border-opacity));
border-radius: var(--media-radius);
overflow: visible !important;
background-color: rgb(var(--color-background))
}
.global-media-settings:after {
content: "";
position: absolute;
top: calc(var(--media-border-width) * -1);
right: calc(var(--media-border-width) * -1);
bottom: calc(var(--media-border-width) * -1);
left: calc(var(--media-border-width) * -1);
border-radius: var(--media-radius);
box-shadow: var(--media-shadow-horizontal-offset) var(--media-shadow-vertical-offset) var(--media-shadow-blur-radius) rgba(var(--color-shadow), var(--media-shadow-opacity));
z-index: -1;
pointer-events: none
}
.global-media-settings--no-shadow {
overflow: hidden !important
}
.global-media-settings--no-shadow:after {
content: none
}
.global-media-settings img,
.global-media-settings iframe,
.global-media-settings model-viewer,
.global-media-settings video,
.global-media-settings .placeholder-svg {
border-radius: calc(var(--media-radius) - var(--media-border-width))
}
.content-container--full-width,
.global-media-settings--full-width,
.global-media-settings--full-width img,
.global-media-settings--full-width video,
.global-media-settings--full-width iframe,
.global-media-settings--full-width .placeholder-svg {
border-radius: 0;
border-left: none;
border-right: none
}
@supports not (inset: 10px) {
.grid {
margin-left: calc(-1 * var(--grid-mobile-horizontal-spacing))
}
.grid__item {
padding-left: var(--grid-mobile-horizontal-spacing);
padding-bottom: var(--grid-mobile-vertical-spacing)
}
@media screen and (min-width: 750px) {
.grid {
margin-left: calc(-1 * var(--grid-desktop-horizontal-spacing))
}
.grid__item {
padding-left: var(--grid-desktop-horizontal-spacing);
padding-bottom: var(--grid-desktop-vertical-spacing)
}
}
.grid--gapless .grid__item {
padding-left: 0;
padding-bottom: 0
}
@media screen and (min-width: 749px) {
.grid--peek .grid__item {
padding-left: var(--grid-mobile-horizontal-spacing)
}
}
.product-grid .grid__item {
padding-bottom: var(--grid-mobile-vertical-spacing)
}
@media screen and (min-width: 750px) {
.product-grid .grid__item {
padding-bottom: var(--grid-desktop-vertical-spacing)
}
}
}
.font-body-bold {
font-weight: var(--font-body-weight-bold)
}
@media (forced-colors: active) {
.button,
.shopify-challenge__button,
.customer button {
border: transparent solid 1px
}
.button:focus-visible,
.button:focus,
.button.focused,
.shopify-payment-button__button--unbranded:focus-visible,
.shopify-payment-button [role=button]:focus-visible,
.shopify-payment-button__button--unbranded:focus,
.shopify-payment-button [role=button]:focus {
outline: solid transparent 1px
}
.field__input:focus,
.select__select:focus,
.customer .field input:focus,
.customer select:focus,
.localization-form__select:focus.localization-form__select:after {
outline: transparent solid 1px
}
.localization-form__select:focus {
outline: transparent solid 1px
}
}
.rte:after {
clear: both;
content: "";
display: block
}
.rte>*:first-child {
margin-top: 0
}
.rte>*:last-child {
margin-bottom: 0
}
.rte table {
table-layout: fixed
}
@media screen and (min-width: 750px) {
.rte table td {
padding-left: 1.2rem;
padding-right: 1.2rem
}
}
.rte img {
height: auto;
max-width: 100%;
border: var(--media-border-width) solid rgba(var(--color-foreground), var(--media-border-opacity));
border-radius: var(--media-radius);
box-shadow: var(--media-shadow-horizontal-offset) var(--media-shadow-vertical-offset) var(--media-shadow-blur-radius) rgba(var(--color-shadow), var(--media-shadow-opacity));
margin-bottom: var(--media-shadow-vertical-offset)
}
.rte ul,
.rte ol {
list-style-position: inside;
padding-left: 2rem
}
.rte li {
list-style: inherit
}
.rte li:last-child {
margin-bottom: 0
}
.rte a {
color: rgba(var(--color-link), var(--alpha-link));
text-underline-offset: .3rem;
text-decoration-thickness: .1rem;
transition: text-decoration-thickness var(--duration-short) ease
}
.rte a:hover {
color: rgb(var(--color-link));
text-decoration-thickness: .2rem
}
.rte blockquote {
display: inline-flex
}
.rte blockquote>* {
margin: -.5rem 0
}
.shape--mask {
display: block;
height: 0;
width: 0
}
.shape--arch {
clip-path: url(#Shape-Arch)
}
.shape--blob {
clip-path: polygon(var(--shape--blob-1))
}
.shape--chevronleft {
clip-path: polygon(100% 0%, 85% 50%, 100% 100%, 15% 100%, 0% 50%, 15% 0%)
}
.shape--chevronright {
clip-path: polygon(85% 0%, 100% 50%, 85% 100%, 0% 100%, 15% 50%, 0% 0%)
}
.shape--circle {
clip-path: circle(closest-side)
}
.shape--diamond {
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)
}
.shape--parallelogram {
clip-path: polygon(15% 0, 100% 0%, 85% 100%, 0% 100%)
}
.shape--round {
clip-path: ellipse(45% 45% at 50% 50%)
}
.animate--fixed {
clip-path: inset(0)
}
.animate--fixed>img:not(.zoom):not(.deferred-media__poster-button),
.animate--fixed>svg:not(.zoom):not(.deferred-media__poster-button) {
position: fixed;
height: 100vh
}
.animate--zoom-in {
--zoom-in-ratio: 1
}
.animate--zoom-in>img,
.animate--zoom-in>svg {
transition: scale var(--duration-short) linear;
scale: var(--zoom-in-ratio)
}
@media (prefers-reduced-motion: no-preference) {
.animate--ambient>img,
.animate--ambient>svg {
animation: animateAmbient 30s linear infinite
}
@keyframes animateAmbient {
0% {
transform: rotate(0) translate(1em) rotate(0) scale(1.2)
}
to {
transform: rotate(360deg) translate(1em) rotate(-360deg) scale(1.2)
}
}
.scroll-trigger.animate--fade-in,
.scroll-trigger.animate--slide-in {
opacity: .01
}
.scroll-trigger.animate--slide-in {
transform: translateY(2rem)
}
.scroll-trigger:not(.scroll-trigger--offscreen).animate--fade-in {
opacity: 1;
animation: var(--animation-fade-in)
}
.scroll-trigger:not(.scroll-trigger--offscreen).animate--slide-in {
animation: var(--animation-slide-in);
animation-delay: calc(var(--animation-order) * 75ms)
}
.scroll-trigger.scroll-trigger--design-mode.animate--fade-in,
.scroll-trigger.scroll-trigger--design-mode.animate--slide-in,
.scroll-trigger.scroll-trigger--design-mode .slider,
.scroll-trigger:not(.scroll-trigger--offscreen).scroll-trigger--cancel {
opacity: 1;
animation: none;
transition: none
}
.scroll-trigger.scroll-trigger--design-mode.animate--slide-in {
transform: translateY(0)
}
@keyframes slideIn {
0% {
transform: translateY(2rem);
opacity: .01
}
to {
transform: translateY(0);
opacity: 1
}
}
@keyframes fadeIn {
0% {
opacity: .01
}
to {
opacity: 1
}
}
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
.animate--hover-3d-lift .card-wrapper .card--card,
.animate--hover-3d-lift .card-wrapper .card--standard .card__inner,
.animate--hover-3d-lift .button:not(.button--tertiary),
.animate--hover-3d-lift .shopify-challenge__button,
.animate--hover-3d-lift .customer button,
.animate--hover-3d-lift .shopify-payment-button__button,
.animate--hover-3d-lift .deferred-media .deferred-media__poster-button {
transition: transform var(--duration-long) ease, box-shadow var(--duration-long) ease;
transform-origin: center
}
.animate--hover-3d-lift .card-wrapper:hover .card--card,
.animate--hover-3d-lift .card-wrapper:hover .card--standard .card__inner,
.animate--hover-3d-lift .button:not(.button--tertiary):not([disabled]):hover,
.animate--hover-3d-lift .shopify-challenge__button:not([disabled]):hover,
.animate--hover-3d-lift .customer button:not([disabled]):hover,
.animate--hover-3d-lift .shopify-payment-button__button:hover,
.animate--hover-3d-lift .deferred-media:hover .deferred-media__poster-button {
transition: transform var(--duration-extended) ease, box-shadow var(--duration-long) ease;
transform: rotate(1deg);
box-shadow: -1rem -1rem 1rem -1rem #0000000d, 1rem 1rem 1rem -1rem #0000000d, 0 0 .5rem #fff0, 0 2rem 3.5rem -2rem #00000080
}
.animate--hover-3d-lift .deferred-media:hover .deferred-media__poster-button {
transform: translate(-50%, -50%) scale(1.05)
}
.animate--hover-3d-lift .collage__item .card-wrapper:hover .card--card,
.animate--hover-3d-lift .collage__item .card-wrapper:hover .card--standard .card__inner {
transform: rotate(.5deg)
}
.animate--hover-3d-lift .product-grid .grid__item:hover,
.animate--hover-3d-lift .collection-list .grid__item:hover,
.animate--hover-3d-lift .collage__item:hover,
.animate--hover-3d-lift .blog-articles .article:hover,
.animate--hover-3d-lift .complementary-slide li:hover {
z-index: 2
}
.animate--hover-3d-lift .product-grid {
isolation: isolate
}
.animate--hover-3d-lift .card-wrapper .card--shape.card--standard:not(.card--text) .card__inner {
box-shadow: none;
transition: transform var(--duration-long) ease, filter var(--duration-long) ease
}
.animate--hover-3d-lift .card-wrapper:hover .card--shape.card--standard:not(.card--text) .card__inner {
transition: transform calc(2 * var(--duration-extended)) ease, filter var(--duration-long) ease;
filter: drop-shadow(0rem 2rem 2rem rgba(0, 0, 0, .15)) drop-shadow(0rem 1rem 1rem rgba(0, 0, 0, .15))
}
.animate--hover-3d-lift .card-wrapper:hover .card--card:after,
.animate--hover-3d-lift .card-wrapper:hover .card--standard .card__inner:after,
.animate--hover-3d-lift .card-wrapper:hover .card--shape.card--standard:not(.card--text) .card__inner .card__media:before {
background-image: var(--easter-egg);
background-size: 250px 250px;
mix-blend-mode: color-dodge;
pointer-events: none;
z-index: 2
}
.animate--hover-3d-lift .card-wrapper:hover .card--shape.card--standard:not(.card--text) .card__inner .card__media:before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0
}
.animate--hover-3d-lift .card-wrapper .card--card:before,
.animate--hover-3d-lift .card-wrapper .card--standard .card__media:after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0;
pointer-events: none;
transition: background-position calc(2 * var(--duration-extended)) ease, opacity var(--duration-default) ease;
mix-blend-mode: overlay;
background-size: 400% 100%;
background-position: 90% 0;
background-repeat: no-repeat;
background-image: linear-gradient(135deg, rgba(255, 255, 255, 0) 45%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0) 55%)
}
.animate--hover-3d-lift .card-wrapper:hover .card--card:before,
.animate--hover-3d-lift .card-wrapper:hover .card--standard .card__media:after {
opacity: .2;
transition: background-position 6s ease, opacity var(--duration-long) ease;
background-position: left;
z-index: 2
}
:root {
--easter-egg: none;
--sparkle: url(sparkle.gif)
}
.animate--hover-vertical-lift .button:not(.button--tertiary),
.animate--hover-vertical-lift .shopify-challenge__button,
.animate--hover-vertical-lift .customer button,
.animate--hover-vertical-lift .shopify-payment-button__button {
transition: transform var(--duration-default) var(--ease-out-slow)
}
.animate--hover-vertical-lift .card-wrapper .card--card,
.animate--hover-vertical-lift .card-wrapper .card--standard .card__inner {
transition: transform var(--duration-medium) var(--ease-out-slow)
}
.animate--hover-vertical-lift .card-wrapper:hover .card--card,
.animate--hover-vertical-lift .card-wrapper:hover .card--standard .card__inner {
transform: translateY(-.75rem)
}
.animate--hover-vertical-lift .card-wrapper:active .card--card,
.animate--hover-vertical-lift .card-wrapper:active .card--standard .card__inner {
transform: translateY(-.5rem)
}
.animate--hover-vertical-lift .button:not(.button--tertiary):not([disabled]):hover,
.animate--hover-vertical-lift .shopify-challenge__button:not([disabled]):hover,
.animate--hover-vertical-lift .customer button:not([disabled]):hover,
.animate--hover-vertical-lift .shopify-payment-button__button:hover {
transform: translateY(-.25rem)
}
.animate--hover-vertical-lift .button:not(.button--tertiary):not([disabled]):active,
.animate--hover-vertical-lift .shopify-challenge__button:not([disabled]):active,
.animate--hover-vertical-lift .customer button:not([disabled]):active,
.animate--hover-vertical-lift .shopify-payment-button__button:active {
transform: translateY(0)
}
.animate--hover-vertical-lift .button:not([disabled]):hover:after,
.animate--hover-vertical-lift .customer button:not([disabled]):hover:after,
.animate--hover-vertical-lift .shopify-payment-button__button:not([disabled]):hover:after {
--border-offset: .3px;
box-shadow: 0 0 0 calc(var(--buttons-border-width) + var(--border-offset)) rgba(var(--color-button-text), var(--border-opacity)), 0 0 0 var(--buttons-border-width) rgba(var(--color-button), var(--alpha-button-background))
}
.animate--hover-vertical-lift .button:not([disabled]).button--secondary:hover:after {
--border-offset: 0px
}
}
</style>
<link rel="preload" as="font"
href="https://illuzia.net/cdn/fonts/questrial/questrial_n4.0ba6d2b6094954bab23732c75d3ecb4c47a5869c.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=2ddb1e040059f191fdb3e184199ec4bc383d5aa55a6213bf798372c9da87d664"
type="font/woff2" crossorigin>
<link rel="preload" as="font"
href="https://illuzia.net/cdn/fonts/archivo/archivo_n7.6f363ab30b12ea00d5e6243ed0e977a11393a3ad.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=6cc30ef697b84bb8f7f3bf9979eb1a3b3e1410751b95cc93dce027cd0262d372"
type="font/woff2" crossorigin>
<style>
.predictive-search {
display: none;
position: absolute;
top: calc(100% + .1rem);
left: -.1rem;
border-width: var(--popup-border-width);
border-style: solid;
border-color: rgba(var(--color-foreground), var(--popup-border-opacity));
background-color: rgb(var(--color-background));
z-index: 3;
border-bottom-right-radius: var(--popup-corner-radius);
border-bottom-left-radius: var(--popup-corner-radius);
box-shadow: var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity));
overflow-y: auto;
-webkit-overflow-scrolling: touch
}
.predictive-search--search-template {
z-index: 2;
width: calc(100% + .2rem)
}
.predictive-search__results-groups-wrapper {
display: flex;
border-bottom: .1rem solid rgba(var(--color-foreground), .08);
padding-bottom: 1rem
}
@media screen and (max-width: 749px) {
.predictive-search--header {
right: 0;
left: 0;
top: 100%
}
.predictive-search__results-groups-wrapper {
flex-direction: column
}
.predictive-search__results-groups-wrapper:not(.predictive-search__results-groups-wrapper--no-suggestions) {
gap: 2rem
}
}
@media screen and (min-width: 750px) {
.predictive-search {
border-top: none;
width: calc(100% + .2rem)
}
.header predictive-search {
position: relative
}
}
predictive-search[open] .predictive-search,
predictive-search[loading] .predictive-search {
display: block
}
.predictive-search__result-group {
display: flex;
flex-direction: column;
flex: 1 1 auto;
gap: 2rem
}
.predictive-search__result-group:first-child .predictive-search__pages-wrapper {
display: none
}
@media screen and (min-width: 750px) {
.predictive-search__results-groups-wrapper--no-products .predictive-search__result-group:nth-child(2),
.predictive-search__result-group:last-child .predictive-search__pages-wrapper {
display: none
}
.predictive-search__result-group:first-child .predictive-search__pages-wrapper {
display: initial
}
.predictive-search__result-group:first-child {
flex: 0 0 26.4rem
}
.predictive-search__results-groups-wrapper--no-products .predictive-search__result-group:first-child,
.predictive-search__result-group:only-child {
flex-grow: 1
}
}
.predictive-search__heading {
border-bottom: .1rem solid rgba(var(--color-foreground), .08);
margin: 0 2rem;
padding: 1.5rem 0 .75rem;
color: rgba(var(--color-foreground), .7)
}
predictive-search .spinner {
width: 1.5rem;
height: 1.5rem;
line-height: 0
}
predictive-search:not([loading]) .predictive-search__loading-state,
predictive-search:not([loading]) .predictive-search-status__loading {
display: none
}
predictive-search[loading] .predictive-search__loading-state {
display: flex;
justify-content: center;
padding: 1rem
}
predictive-search[loading] .predictive-search__search-for-button {
display: none
}
predictive-search[loading] .predictive-search__results-groups-wrapper~.predictive-search__loading-state {
display: none
}
predictive-search[loading] .predictive-search__results-groups-wrapper~.predictive-search__search-for-button {
display: initial
}
.predictive-search__list-item[aria-selected=true]>*,
.predictive-search__list-item:hover>*,
.predictive-search__item[aria-selected=true],
.predictive-search__item:hover {
color: rgb(var(--color-foreground));
background-color: rgba(var(--color-foreground), .04)
}
.predictive-search__list-item[aria-selected=true] .predictive-search__item-heading,
.predictive-search__list-item:hover .predictive-search__item-heading {
text-decoration: underline;
text-underline-offset: .3rem
}
.predictive-search__item {
display: flex;
padding: 1rem 2rem;
text-align: left;
text-decoration: none;
width: 100%
}
.predictive-search__item--link-with-thumbnail {
display: grid;
grid-template-columns: 5rem 1fr;
grid-column-gap: 2rem;
grid-template-areas: "product-image product-content"
}
.predictive-search__item-content {
grid-area: product-content;
display: flex;
flex-direction: column
}
.predictive-search__item-content--centered {
justify-content: center
}
.predictive-search__item-vendor {
font-size: .9rem
}
.predictive-search__item-heading {
margin: 0
}
.predictive-search__item-query-result *:not(mark) {
font-weight: bolder
}
.predictive-search__item-query-result mark {
color: rgba(var(--color-foreground), .75)
}
.predictive-search__item-query-result mark {
background-color: transparent
}
.predictive-search__item .price {
color: rgba(var(--color-foreground), .7);
font-size: 1.2rem
}
.predictive-search__item-vendor+.predictive-search__item-heading,
.predictive-search .price {
margin-top: .5rem
}
.predictive-search__item--term {
justify-content: space-between;
align-items: center;
padding: 1.3rem 2rem;
word-break: break-all;
line-height: calc(1 + .4 / var(--font-body-scale))
}
@media screen and (min-width: 750px) {
.predictive-search__item--term {
padding-top: 1rem;
padding-bottom: 1rem
}
}
.predictive-search__item--term .icon-arrow {
width: calc(var(--font-heading-scale) * 1.4rem);
height: calc(var(--font-heading-scale) * 1.4rem);
flex-shrink: 0;
margin-left: calc(var(--font-heading-scale) * 2rem);
color: rgb(var(--color-link))
}
.predictive-search__image {
grid-area: product-image;
object-fit: contain;
font-family: "object-fit: contain"
}
</style>
<script>
document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
if (Shopify.designMode) {
document.documentElement.classList.add('shopify-design-mode');
}
</script>
<link href="https://monorail-edge.shopifysvc.com/" rel="dns-prefetch">
<script>
(function () {
if ("sendBeacon" in navigator && "performance" in window) {
var session_token = document.cookie.match(/_shopify_s=([^;]*)/);
function handle_abandonment_event(e) {
var entries = performance.getEntries().filter(function (entry) {
return /monorail-edge.shopifysvc.com/.test(entry.name);
});
if (!window.abandonment_tracked && entries.length === 0) {
window.abandonment_tracked = true;
var currentMs = Date.now();
var navigation_start = performance.timing.navigationStart;
var payload = {
shop_id: 67119169539,
url: window.location.href,
navigation_start,
duration: currentMs - navigation_start,
session_token: session_token && session_token.length === 2 ? session_token[1] : "",
page_type: "product"
};
window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({
schema_id: "online_store_buyer_site_abandonment/1.1",
payload: payload,
metadata: {
event_created_at_ms: currentMs,
event_sent_at_ms: currentMs
}
}));
}
}
window.addEventListener('pagehide', handle_abandonment_event);
}
}());
</script>
<script id="web-pixels-manager-setup">
(function e(e, n, a, t, o, r, i) {
var s = null !== e,
l = ("function" == typeof BigInt && BigInt.toString().indexOf("[native code]") ? "modern" : "legacy").substring(0, 1),
c = t.substring(0, 1);
if (s) {
window.Shopify = window.Shopify || {};
var d = window.Shopify;
d.analytics = d.analytics || {};
var u = d.analytics;
u.replayQueue = [], u.publish = function (e, n, a) {
u.replayQueue.push([e, n, a])
};
try {
self.performance.mark("wpm:start")
} catch (e) { }
}
var p, f, y, h, v, m, w, g, b, _ = [a, "/wpm", "https://illuzia.net/", c, r, l, ".js"].join("");
f = (p = {
src: _,
async: !0,
onload: function () {
if (e) {
var a = window.webPixelsManager.init(e);
null == n || n(a);
var t = window.Shopify.analytics;
t.replayQueue.forEach((function (e) {
var n = e[0],
t = e[1],
o = e[2];
a.publishCustomEvent(n, t, o)
})), t.replayQueue = [], t.publish = a.publishCustomEvent, t.visitor = a.visitor
}
},
onerror: function () {
var n = (null == e ? void 0 : e.storefrontBaseUrl) ? e.storefrontBaseUrl.replace(/\/$/, "") : self.location.origin,
a = "".concat(n, "/.well-known/shopify/monorail/unstable/produce_batch"),
t = JSON.stringify({
metadata: {
event_sent_at_ms: (new Date).getTime()
},
events: [{
schema_id: "web_pixels_manager_load/2.0",
payload: {
version: o || "latest",
page_url: self.location.href,
status: "failed",
error_msg: "".concat(_, " has failed to load")
},
metadata: {
event_created_at_ms: (new Date).getTime()
}
}]
});
try {
if (self.navigator.sendBeacon.bind(self.navigator)(a, t)) return !0
} catch (e) { }
var r = new XMLHttpRequest;
try {
return r.open("POST.html", a, !0), r.setRequestHeader("Content-Type", "text/plain"), r.send(t), !0
} catch (e) {
console && console.warn && console.warn("[Web Pixels Manager] Got an unhandled error while logging a load error.")
}
return !1
}
}).src, y = p.async, h = void 0 === y || y, v = p.onload, m = p.onerror, w = document.createElement("script"), g = document.head, b = document.body, w.async = h, w.src = f, v && w.addEventListener("load", v), m && w.addEventListener("error", m), g ? g.appendChild(w) : b ? b.appendChild(w) : console.error("Did not find a head or body element to append the script")
})({
shopId: 67119169539,
storefrontBaseUrl: "https://illuzia.net/",
cdnBaseUrl: "https://illuzia.net/cdn",
surface: "storefront-renderer",
enabledBetaFlags: ["web_pixels_async_pixel_refactor", "web_pixels_manager_performance_improvement"],
webPixelsConfigList: [{
"id": "shopify-app-pixel",
"configuration": "{}",
"eventPayloadVersion": "v1",
"runtimeContext": "STRICT",
"scriptVersion": "0570",
"apiClientId": "shopify-pixel",
"type": "APP"
}, {
"id": "shopify-custom-pixel",
"eventPayloadVersion": "v1",
"runtimeContext": "LAX",
"scriptVersion": "0570",
"apiClientId": "shopify-pixel",
"type": "CUSTOM"
}],
initData: {
"cart": null,
"checkout": null,
"customer": null,
"productVariants": [{
"id": "43114192093653",
"image": {
"src": "https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"
},
"price": {
"amount": 10.000,
"currencyCode": "IDR"
},
"product": {
"id": "8226828321669",
"title": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"untranslatedTitle": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"url": "https://illuzia.net/",
"vendor": "KOITOTO",
"type": ""
},
"sku": "",
"title": "Default Title",
"untranslatedTitle": "Default Title"
}]
},
}, function pageEvents(webPixelsManagerAPI) {
webPixelsManagerAPI.publish("page_viewed");
webPixelsManagerAPI.publish("product_viewed", {
"productVariant": {
"id": "43114192093653",
"image": {
"src": "https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"
},
"price": {
"amount": 10.000,
"currencyCode": "IDR"
},
"product": {
"id": "8226828321669",
"title": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"untranslatedTitle": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"url": "https://illuzia.net/",
"vendor": "KOITOTO",
"type": ""
},
"sku": "",
"title": "Default Title",
"untranslatedTitle": "Default Title"
}
});
}, "https://illuzia.net/cdn", "browser", "0.0.407", "f25882c1w423ab3d2p8df04b18m261f6c04", ["web_pixels_async_pixel_refactor", "web_pixels_manager_performance_improvement"]);
</script>
<script>
window.ShopifyAnalytics = window.ShopifyAnalytics || {};
window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
window.ShopifyAnalytics.meta.currency = 'IDR';
var meta = {
"product": {
"id": 8226828321669,
"gid": "gid:\/\/shopify\/Product\/8226828321669",
"vendor": "KOITOTO",
"type": "",
"variants": [{
"id": 43114192093653,
"price": 10.000,
"name": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"public_title": null,
"sku": ""
}]
},
"page": {
"pageType": "product",
"resourceType": "product",
"resourceId": 8226828321669
}
};
for (var attr in meta) {
window.ShopifyAnalytics.meta[attr] = meta[attr];
}
</script>
<script>
window.ShopifyAnalytics.merchantGoogleAnalytics = function () { };
</script>
<script class="analytics">
! function () {
var o = function (e) {
var t = null;
window.jQuery ? t = window.jQuery : window.Checkout && window.Checkout.$ && (t = window.Checkout.$), t && t("body").append(e)
},
r = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
if (!r.integrations) {
r.methods = ["identify", "page", "ready", "track", "trackForm", "trackLink"], r.factory = function (t) {
return function () {
var e = Array.prototype.slice.call(arguments);
return e.unshift(t), r.push(e), r
}
};
for (var e = 0; e < r.methods.length; e++) {
var t = r.methods[e];
r[t] = r.factory(t)
}
r.load = function (e) {
r.config = e || {}, r.config.initialDocumentCookie = document.cookie;
var n = document.getElementsByTagName("script")[0],
t = document.createElement("script");
t.type = "text/javascript", t.onerror = function (e) {
var t = document.createElement("script");
t.type = "text/javascript", t.onerror = function (e) {
var i = {
produce: function (e, t, n) {
var o = (new Date).getTime(),
r = {
schema_id: t,
payload: n,
metadata: {
event_created_at_ms: o,
event_sent_at_ms: o
}
};
return i.sendRequest("https://" + e + "/v1/produce", JSON.stringify(r))
},
sendRequest: function (e, t) {
if (window && window.navigator && "function" == typeof window.navigator.sendBeacon && "function" == typeof window.Blob && !i.isIos12()) {
var n = new window.Blob([t], {
type: "text/plain"
});
if (window.navigator.sendBeacon(e, n)) return !0
}
var o = new XMLHttpRequest;
try {
o.open("POST.html", e), o.setRequestHeader("Content-Type", "text/plain"), o.send(t)
} catch (e) {
console.log(e)
}
return !1
},
isIos12: function () {
return -1 !== window.navigator.userAgent.lastIndexOf("iPhone; CPU iPhone OS 12_") || -1 !== window.navigator.userAgent.lastIndexOf("iPad; CPU OS 12_")
}
};
i.produce("monorail-edge.shopifysvc.com", "trekkie_storefront_load_errors/1.1", {
shop_id: 67119169539,
theme_id: 138081403093,
app_name: "storefront",
context_url: window.location.href,
source_url: "//illuzia.net/cdn/s/trekkie.storefront.cdbb3ab87b2344fc90b72e01ec11aedeab3a9cf7.min.js"
})
}, t.async = !0, t.src = "cdn/s/trekkie.storefront.cdbb3ab87b2344fc90b72e01ec11aedeab3a9cf7.min.js", n.parentNode.insertBefore(t, n)
}, t.async = !0, t.src = "cdn/s/trekkie.storefront.cdbb3ab87b2344fc90b72e01ec11aedeab3a9cf7.min.js", n.parentNode.insertBefore(t, n)
}, r.load({
Trekkie: {
appName: "storefront",
development: !1,
defaultAttributes: {
shopId: 67119169539,
isMerchantRequest: null,
themeId: 138081403093,
themeCityHash: "17813912158783281087",
contentLanguage: "en",
currency: "IDR"
},
isServerSideCookieWritingEnabled: !0,
monorailRegion: "shop_domain"
},
"Session Attribution": {},
S2S: {
facebookCapiEnabled: !1,
source: "trekkie-storefront-renderer"
}
});
var i = !1;
r.ready(function () {
if (!i) {
i = !0, window.ShopifyAnalytics.lib = window.trekkie;
var e = document.write;
document.write = o;
try {
window.ShopifyAnalytics.merchantGoogleAnalytics.call(this)
} catch (e) { }
document.write = e, window.ShopifyAnalytics.lib.page(null, {
pageType: "product",
resourceType: "product",
resourceId: 8226828321669
});
var t = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/),
n = t ? t[1] : void 0;
(function (e) {
return !!e && -1 !== document.cookie.indexOf("loggedConversion=" + e)
})(n) || (function (e) {
if (e) {
var t = new Date(Date.now());
t.setMonth(t.getMonth() + 2), document.cookie = "loggedConversion=" + e + "; expires=" + t
}
}(n), window.ShopifyAnalytics.lib.track("Viewed Product", {
currency: "IDR",
variantId: 43114192093653,
productId: 8226828321669,
productGid: "gid://shopify/Product/8226828321669",
name: "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
price: "10000.0",
sku: "",
brand: "KOITOTO",
variant: null,
category: "",
nonInteraction: !0
}), window.ShopifyAnalytics.lib.track("monorail://trekkie_storefront_viewed_product/1.1", {
currency: "IDR",
variantId: 43114192093653,
productId: 8226828321669,
productGid: "gid://shopify/Product/8226828321669",
name: "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
price: "10000.0",
sku: "",
brand: "KOITOTO",
variant: null,
category: "",
nonInteraction: !0,
referer: "https://illuzia.net/"
}))
}
});
var n = document.createElement("script");
n.async = !0, n.src = "cdn/shopifycloud/shopify/assets/shop_events_listener-a7c63dba65ccddc484f77541dc8ca437e60e1e9e297fe1c3faebf6523a0ede9b.js", document.getElementsByTagName("head")[0].appendChild(n)
}
}()
</script>
<script class="boomerang">
! function () {
if (!window.BOOMR || !window.BOOMR.version && !window.BOOMR.snippetExecuted) {
window.BOOMR = window.BOOMR || {}, window.BOOMR.snippetStart = (new Date).getTime(), window.BOOMR.snippetExecuted = !0, window.BOOMR.snippetVersion = 12, window.BOOMR.application = "storefront-renderer", window.BOOMR.themeName = "Refresh", window.BOOMR.themeVersion = "12.0.0", window.BOOMR.shopId = 67119169539, window.BOOMR.themeId = 138081403093, window.BOOMR.renderRegion = "gcp-us-central1", window.BOOMR.url = "cdn/shopifycloud/boomerang/shopify-boomerang-1.0.0.min.js";
var r = (document.currentScript || document.getElementsByTagName("script")[0]).parentNode,
c = !1,
e = document.createElement("link");
e.relList && "function" == typeof e.relList.supports && e.relList.supports("preload") && "as" in e ? (window.BOOMR.snippetMethod = "p", e.href = window.BOOMR.url, e.rel = "preload", e.as = "script", e.addEventListener("load", function () {
if (!c) {
var e = document.createElement("script");
e.id = "boomr-scr-as", e.src = window.BOOMR.url, e.async = !0, r.appendChild(e), c = !0
}
}), e.addEventListener("error", function () {
n(!0)
}), setTimeout(function () {
c || n(!0)
}, 3e3), BOOMR_lstart = (new Date).getTime(), r.appendChild(e)) : n(!1), window.addEventListener ? window.addEventListener("load", t, !1) : window.attachEvent && window.attachEvent("onload", t), document.addEventListener ? document.addEventListener("onBoomerangLoaded", function (e) {
e.detail.BOOMR.init({
ResourceTiming: {
enabled: !0,
trackedResourceTypes: ["script", "img", "css"]
}
}), e.detail.BOOMR.t_end = (new Date).getTime()
}) : document.attachEvent && document.attachEvent("onpropertychange", function (e) {
e || (e = event), "onBoomerangLoaded" === e.propertyName && (e.detail.BOOMR.init({
ResourceTiming: {
enabled: !0,
trackedResourceTypes: ["script", "img", "css"]
}
}), e.detail.BOOMR.t_end = (new Date).getTime())
})
}
function n(e) {
var n, t, o, i;
c = !0;
var d = document,
a = window;
if (window.BOOMR.snippetMethod = e ? "if" : "i", t = function (e, n) {
var t = d.createElement("script");
t.id = n || "boomr-if-as", t.src = window.BOOMR.url, BOOMR_lstart = (new Date).getTime(), (e = e || d.body).appendChild(t)
}, !window.addEventListener && window.attachEvent && navigator.userAgent.match(/MSIE [67]./)) return window.BOOMR.snippetMethod = "s", void t(r, "boomr-async");
(o = document.createElement("IFRAME")).src = "about:blank", o.title = "", o.role = "presentation", o.loading = "eager", (i = (o.frameElement || o).style).width = 0, i.height = 0, i.border = 0, i.display = "none", r.appendChild(o);
try {
a = o.contentWindow, d = a.document.open()
} catch (e) {
n = document.domain, o.src = "javascript:var d=document.open();d.domain='" + n + "';void(0);", a = o.contentWindow, d = a.document.open()
}
n ? (d._boomrl = function () {
this.domain = n, t()
}, d.write(" < body onload = 'document._boomrl();' > ")) : (a._boomrl = function () {
t()
}, a.addEventListener ? a.addEventListener("load", a._boomrl, !1) : a.attachEvent && a.attachEvent("onload", a._boomrl)), d.close()
}
function t(e) {
window.BOOMR_onload = e && e.timeStamp || (new Date).getTime()
}
}()
</script>
<script type="application/ld+json" class="yoast-schema-graph">
{
"@context":"https://schema.org",
"@graph":[{"@type":"WebSite",
"@id":"https://illuzia.net/",
"url":"https://illuzia.net/",
"name":"KOITOTO",
"potentialAction":[{"@type":"SearchAction",
"target":{"@type":"EntryPoint",
"urlTemplate":"#?s={search_term_string}"},
"query-input":"required name=search_term_string"}],
"inLanguage":"id-ID"},{"@type":"CollectionPage",
"@id":"##webpage",
"url":"https://illuzia.net/",
"name":"KOITOTO",
"isPartOf":{"@id":"#website"},
"description":"Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.",
"breadcrumb":{"@id":"#breadcrumb"},
"inLanguage":"id-ID",
"potentialAction":[{"@type":"ReadAction",
"target":["https://illuzia.net/"]}]},
{"@type":"BreadcrumbList",
"@id":"#breadcrumb",
"itemListElement":[{"@type":"ListItem",
"position":1,
"name":"Home"}]}]}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Game",
"name": "KOITOTO",
"author": { "@type": "Person",
"name": "KOITOTO" },
"headline": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"description": "Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.",
"image": "https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg",
"url": "https://illuzia.net/",
"publisher": { "@type": "Organization", "name": "KOITOTO" },
"aggregateRating": { "@type": "AggregateRating",
"ratingValue": "100",
"bestRating": "100",
"worstRating": "0",
"ratingCount": "10987881" },
"inLanguage": "id-ID"}
</script>
<script type='application/ld+json'>
{
"@context": "http://schema.org",
"@type": "Article",
"@id": "#article",
"mainEntityOfPage": "https://illuzia.net/",
"headline": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"name": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"url": "https://illuzia.net/",
"description": "Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.",
"image": "https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg",
"datePublished": "2024-07-08T10:42:40+00:00",
"dateModified": "2024-07-08T10:42:40+00:00",
"author": {
"@type": "Person",
"name": "KOITOTO",
"url": "https://illuzia.net/"
},
"publisher": {
"@type": "Organization",
"name": "https://illuzia.net/",
"description": "Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.",
"logo": {
"@type": "ImageObject",
"url": "https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg",
"width": 600,
"height": 60
}
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "KOITOTO",
"alternateName": "KOITOTO",
"url": "https://illuzia.net/",
"logo": "https://imgstore.io/images/2024/09/18/KOITOTO.png",
"description": "Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.",
"address": {
"@type": "PostalAddress",
"streetAddress":"Kuningan",
"postOfficeBoxNumber":"11450",
"addressLocality":"DaerahKhususIbukotaJakarta",
"addressRegion":"KotaJakartaPusat",
"postalCode":"41000",
"addressCountry": "ID"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+62821-3366-5511",
"contactType": "customer service",
"areaServed": "ID",
"availableLanguage": "Indonesian"
},
"sameAs": [
"https://www.youtube.com/KOITOTO",
"https://twitter.com/KOITOTO",
"https://illuzia.net/"
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Apa itu Koitoto Togel?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Koitoto Togel adalah situs togel online yang menjadi favorit di kalangan pecinta togel. Situs ini menawarkan pengalaman bermain yang aman dan terpercaya dengan berbagai pilihan pasaran togel internasional."
}
},{
"@type": "Question",
"name": "Apa saja keunggulan Koitoto Togel?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Keunggulan Koitoto Togel meliputi fitur lengkap seperti prediksi akurat, bonus menarik, serta pelayanan pelanggan yang responsif. Selain itu, Koitoto menggunakan sistem keamanan canggih untuk melindungi data pengguna."
}
},{
"@type": "Question",
"name": "Bagaimana cara memasang taruhan di Koitoto Togel?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Untuk memasang taruhan di Koitoto Togel, pengguna dapat mendaftar terlebih dahulu, kemudian memilih pasaran togel yang diinginkan dan mengikuti petunjuk untuk memasang taruhan secara aman dan cepat."
}
},{
"@type": "Question",
"name": "Apa yang membuat Koitoto Togel menjadi pilihan utama bagi pecinta togel?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Koitoto Togel menjadi pilihan utama karena mengutamakan kenyamanan dan kepercayaan pengguna. Dengan berbagai fitur menarik dan pelayanan yang baik, Koitoto memberikan pengalaman bermain togel online yang memuaskan."
}
}]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://illuzia.net/"
},
{
"@type": "ListItem",
"position": 2,
"name": "KOITOTO",
"item": "https://illuzia.net/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"item": "https://illuzia.net/"
}
]
}
</script>
</head>
<body class="gradient">
<a class="skip-to-content-link button visually-hidden" href="#MainContent">
Skip to content
</a>
<style>
quantity-popover {
position: relative;
display: block
}
quantity-popover volume-pricing li:nth-child(odd) {
background: rgba(var(--color-foreground), .03)
}
quantity-popover volume-pricing li {
font-size: 1.4rem;
letter-spacing: .06rem;
padding: .6rem .8rem;
display: flex;
justify-content: space-between
}
.quantity-popover__info.global-settings-popup {
width: 100%;
z-index: 2;
position: absolute;
background-color: rgb(var(--color-background));
max-width: 36rem
}
.quantity-popover__info .button-close,
.variant-remove-total quick-order-list-remove-all-button .button,
.quick-order-list-total__confirmation quick-order-list-remove-all-button .button,
quantity-popover quick-order-list-remove-button .button {
--shadow-opacity: 0;
--border-opacity: 0
}
.quantity-popover__info-button {
display: flex;
align-items: center;
margin: 0 .4rem 0 0;
min-width: 1.5rem;
min-height: 1.5rem;
--shadow-opacity: 0;
--border-opacity: 0
}
.quantity-popover__info-button--icon-with-label {
align-items: flex-start;
text-align: left
}
.quantity-popover__info-button--icon-with-label svg {
flex-shrink: 0
}
.quantity-popover__info-button--open {
text-decoration: underline
}
.quantity-popover__info-button span {
padding-left: 1rem
}
@media screen and (max-width: 989px) {
.quantity-popover__info.global-settings-popup {
left: 0
}
.quantity-popover__info-button {
padding-left: 0
}
}
.quantity-popover__info .quantity__rules {
margin-top: 1.2rem;
margin-bottom: 1rem
}
.quantity-popover__info .volume-pricing-label {
display: block;
margin-left: 1.2rem;
margin-top: 1.2rem;
font-size: 1.2rem
}
.quantity-popover__info .button {
width: 3.2rem;
height: 3.2rem;
position: absolute;
top: .4rem;
right: 0;
padding: 0 1.2rem 0 0;
display: flex;
justify-content: flex-end
}
.quantity-popover__info .volume-pricing-label~.button {
top: -.2rem
}
.quantity-popover__info .button .icon {
width: 1.5rem;
height: 1.5rem
}
quantity-popover volume-pricing {
margin-top: 1.2rem;
display: block
}
quantity-popover .quantity__rules span:first-of-type {
display: block
}
.quantity-popover-container {
display: flex;
padding: .5rem .5rem .5rem 0
}
.quantity-popover-container:not(.quantity-popover-container--hover) {
align-items: center
}
@media screen and (min-width: 990px) {
.quantity-popover-container--hover:hover {
background-color: rgba(var(--color-foreground), .03);
border-radius: var(--inputs-radius-outset)
}
.quantity-popover-container--empty {
margin-right: 2.7rem
}
.quantity-popover__info.global-settings-popup {
width: 27rem
}
.quantity-popover-container {
width: auto;
max-width: 20rem
}
.quantity-popover__info.global-settings-popup {
transform: translateY(1rem)
}
}
quantity-popover:has(.quantity__input:focus-visible) .quantity-popover__info {
display: block
}
quantity-popover .quantity {
background: rgb(var(--color-background))
}
quantity-popover .quantity__rules {
margin-left: .8rem
}
quantity-popover .quantity__rules .divider:nth-child(2):before {
content: none
}
quantity-popover .quantity__button:not(:focus-visible):not(.focused),
quantity-popover .quantity__input:not(:focus-visible):not(.focused) {
background-color: initial
}
</style>
<style>
.card-wrapper {
color: inherit;
height: 100%;
position: relative;
text-decoration: none
}
.card {
text-decoration: none;
text-align: var(--text-alignment)
}
.card:not(.ratio) {
display: flex;
flex-direction: column;
height: 100%
}
.card.card--horizontal {
--text-alignment: left;
--image-padding: 0rem;
flex-direction: row;
align-items: flex-start;
gap: 1.5rem
}
.card--horizontal.ratio:before {
padding-bottom: 0
}
.card--card.card--horizontal {
padding: 1.2rem
}
.card--card.card--horizontal.card--text {
column-gap: 0
}
.card--card {
height: 100%
}
.card--card,
.card--standard .card__inner {
position: relative;
box-sizing: border-box;
border-radius: var(--border-radius);
border: var(--border-width) solid rgba(var(--color-foreground), var(--border-opacity))
}
.card--card:after,
.card--standard .card__inner:after {
content: "";
position: absolute;
z-index: -1;
width: calc(var(--border-width) * 2 + 100%);
height: calc(var(--border-width) * 2 + 100%);
top: calc(var(--border-width) * -1);
left: calc(var(--border-width) * -1);
border-radius: var(--border-radius);
box-shadow: var(--shadow-horizontal-offset) var(--shadow-vertical-offset) var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity))
}
.card--card.gradient,
.card__inner.gradient {
transform: perspective(0)
}
.card__inner.color-background-1 {
background: transparent
}
.card .card__inner .card__media {
overflow: hidden;
z-index: 0;
border-radius: calc(var(--border-radius) - var(--border-width) - var(--image-padding))
}
.card--card .card__inner .card__media {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0
}
.card--standard.card--text {
background-color: transparent
}
.card-information {
text-align: var(--text-alignment)
}
.card__media,
.card .media {
bottom: 0;
position: absolute;
top: 0
}
.card .media {
width: 100%
}
.card__media {
margin: var(--image-padding);
width: calc(100% - 2 * var(--image-padding))
}
.card--standard .card__media {
margin: var(--image-padding)
}
.card__inner {
width: 100%
}
.card--media .card__inner .card__content {
position: relative;
padding: calc(var(--image-padding) + 1rem)
}
.card__content {
display: grid;
grid-template-rows: minmax(0, 1fr) max-content minmax(0, 1fr);
padding: 1rem;
width: 100%;
flex-grow: 1
}
.card__content--auto-margins {
grid-template-rows: minmax(0, auto) max-content minmax(0, auto)
}
.card__information {
grid-row-start: 2;
padding: 1.3rem 1rem
}
.card:not(.ratio)>.card__content {
grid-template-rows: max-content minmax(0, 1fr) max-content auto
}
.card-information .card__information-volume-pricing-note {
margin-top: .6rem;
line-height: calc(.5 + .4 / var(--font-body-scale));
color: rgba(var(--color-foreground), .75)
}
@media screen and (min-width: 750px) {
.card__information {
padding-bottom: 1.7rem;
padding-top: 1.7rem
}
}
.card__badge {
align-self: flex-end;
grid-row-start: 3;
justify-self: flex-start
}
.card__badge.top {
align-self: flex-start;
grid-row-start: 1
}
.card__badge.right {
justify-self: flex-end
}
.card:not(.card--horizontal)>.card__content>.card__badge {
margin: 1.3rem
}
.card__media .media img {
height: 100%;
object-fit: cover;
object-position: center center;
width: 100%
}
.card__inner:not(.ratio)>.card__content {
height: 100%
}
.card__heading {
margin-top: 0;
margin-bottom: 0
}
.card__heading:last-child {
margin-bottom: 0
}
.card--horizontal .card__heading,
.card--horizontal .price__container .price-item,
.card--horizontal__quick-add {
font-size: calc(var(--font-heading-scale) * 1.2rem)
}
.card--horizontal .card-information>*:not(.visually-hidden:first-child)+*:not(.rating):not(.card__information-volume-pricing-note) {
margin-top: 0
}
.card--horizontal__quick-add:before {
box-shadow: none
}
@media only screen and (min-width: 750px) {
.card--horizontal .card__heading,
.card--horizontal .price__container .price-item,
.card--horizontal__quick-add {
font-size: calc(var(--font-heading-scale) * 1.3rem)
}
}
.card--card.card--media>.card__content {
margin-top: calc(0rem - var(--image-padding))
}
.card--standard.card--text a:after,
.card--card .card__heading a:after {
bottom: calc(var(--border-width) * -1);
left: calc(var(--border-width) * -1);
right: calc(var(--border-width) * -1);
top: calc(var(--border-width) * -1)
}
.card__heading a:after {
bottom: 0;
content: "";
left: 0;
position: absolute;
right: 0;
top: 0;
z-index: 1
}
.card__heading a:after {
outline-offset: .3rem
}
.card__heading a:focus:after {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3);
outline: .2rem solid rgba(var(--color-foreground), .5)
}
.card__heading a:focus-visible:after {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3);
outline: .2rem solid rgba(var(--color-foreground), .5)
}
.card__heading a:focus:not(:focus-visible):after {
box-shadow: none;
outline: 0
}
.card__heading a:focus {
box-shadow: none;
outline: 0
}
@media screen and (min-width: 990px) {
.card .media.media--hover-effect>img:only-child,
.card-wrapper .media.media--hover-effect>img:only-child {
transition: transform var(--duration-long) ease
}
.card:hover .media.media--hover-effect>img:first-child:only-child,
.card-wrapper:hover .media.media--hover-effect>img:first-child:only-child {
transform: scale(1.03)
}
.card-wrapper:hover .media.media--hover-effect>img:first-child:not(:only-child) {
opacity: 0
}
.card-wrapper:hover .media.media--hover-effect>img+img {
opacity: 1;
transition: transform var(--duration-long) ease;
transform: scale(1.03)
}
.underline-links-hover:hover a {
text-decoration: underline;
text-underline-offset: .3rem
}
}
.card--standard.card--media .card__inner .card__information,
.card--standard.card--text:not(.card--horizontal)>.card__content .card__heading:not(.card__heading--placeholder),
.card--standard:not(.card--horizontal)>.card__content .card__badge,
.card--standard.card--text.article-card>.card__content .card__information,
.card--standard>.card__content .card__caption {
display: none
}
.card--standard:not(.card--horizontal) .placeholder-svg {
height: auto;
width: 100%
}
.card--standard>.card__content {
padding: 0
}
.card--standard>.card__content .card__information {
padding-left: 0;
padding-right: 0
}
.card--card.card--media .card__inner .card__information,
.card--card.card--text .card__inner,
.card--card.card--media>.card__content .card__badge {
display: none
}
.card--horizontal .card__badge,
.card--horizontal.card--text .card__inner {
display: none
}
.card--extend-height {
height: 100%
}
.card--extend-height.card--standard.card--text,
.card--extend-height.card--media {
display: flex;
flex-direction: column
}
.card--extend-height.card--standard.card--text .card__inner,
.card--extend-height.card--media .card__inner {
flex-grow: 1
}
.card .icon-wrap {
margin-left: .8rem;
white-space: nowrap;
transition: transform var(--duration-short) ease;
overflow: hidden
}
.card-information>*+* {
margin-top: .5rem
}
.card-information {
width: 100%
}
.card-information>* {
line-height: calc(1 + .4 / var(--font-body-scale));
color: rgb(var(--color-foreground))
}
.card-information>.price {
color: rgb(var(--color-foreground))
}
.card--horizontal .card-information>.price {
color: rgba(var(--color-foreground), .75)
}
.card-information>.rating {
margin-top: .4rem
}
.card-information>*:not(.visually-hidden:first-child)+*:not(.rating):not(.card__information-volume-pricing-note) {
margin-top: .7rem
}
.card-information .caption {
letter-spacing: .07rem
}
.card-article-info {
margin-top: 1rem
}
.card--shape .card__content {
padding-top: 0
}
.card--shape.card--standard:not(.card--text) .card__inner {
border: 0;
background-color: transparent;
filter: drop-shadow(var(--shadow-horizontal-offset) var(--shadow-vertical-offset) var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity)))
}
.card--shape.card--standard:not(.card--text) .card__inner:after {
display: none
}
.grid__item:nth-child(2n) .shape--blob {
clip-path: polygon(var(--shape--blob-2))
}
.grid__item:nth-child(3n) .shape--blob {
clip-path: polygon(var(--shape--blob-3))
}
.grid__item:nth-child(4n) .shape--blob {
clip-path: polygon(var(--shape--blob-4))
}
.grid__item:nth-child(5n) .shape--blob {
clip-path: polygon(var(--shape--blob-5))
}
.grid__item:nth-child(7n) .shape--blob {
clip-path: polygon(var(--shape--blob-6))
}
.grid__item:nth-child(8n) .shape--blob {
clip-path: polygon(var(--shape--blob-1))
}
@media (prefers-reduced-motion: no-preference) {
.product-card-wrapper .shape--round {
transition: clip-path var(--duration-long) ease
}
.product-card-wrapper:hover .shape--round {
clip-path: ellipse(47% 47% at 50% 50%)
}
.product-card-wrapper .shape--blob {
transition: clip-path var(--duration-long) ease-in-out
}
.product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-5))
}
.grid__item:nth-child(2n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-6))
}
.grid__item:nth-child(3n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-1))
}
.grid__item:nth-child(4n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-2))
}
.grid__item:nth-child(5n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-3))
}
.grid__item:nth-child(7n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-4))
}
.grid__item:nth-child(8n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-5))
}
}
</style>
<script>
/** Shopify CDN: Minification failed
Line 16:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 17:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 22:6 Transforming const to the configured target environment ("es5") is not supported yet
Line 30:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 31:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 36:4 Transforming const to the configured target environment ("es5") is not supported yet
Line 45:19 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 54:22 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 60:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 64:14 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
... and 38 more hidden warnings
**/
class CartRemoveButton extends HTMLElement {
constructor() {
super();
this.addEventListener('click', (event) => {
event.preventDefault();
const cartItems = this.closest('cart-items') || this.closest('cart-drawer-items');
cartItems.updateQuantity(this.dataset.index, 0);
});
}
}
customElements.define('cart-remove-button', CartRemoveButton);
class CartItems extends HTMLElement {
constructor() {
super();
this.lineItemStatusElement =
document.getElementById('shopping-cart-line-item-status') || document.getElementById('CartDrawer-LineItemStatus');
const debouncedOnChange = debounce((event) => {
this.onChange(event);
}, ON_CHANGE_DEBOUNCE_TIMER);
this.addEventListener('change', debouncedOnChange.bind(this));
}
cartUpdateUnsubscriber = undefined;
connectedCallback() {
this.cartUpdateUnsubscriber = subscribe(PUB_SUB_EVENTS.cartUpdate, (event) => {
if (event.source === 'cart-items') {
return;
}
this.onCartUpdate();
});
}
disconnectedCallback() {
if (this.cartUpdateUnsubscriber) {
this.cartUpdateUnsubscriber();
}
}
onChange(event) {
this.updateQuantity(event.target.dataset.index, event.target.value, document.activeElement.getAttribute('name'), event.target.dataset.quantityVariantId);
}
onCartUpdate() {
if (this.tagName === 'CART-DRAWER-ITEMS') {
fetch(`${routes.cart_url}?section_id=cart-drawer`)
.then((response) => response.text())
.then((responseText) => {
const html = new DOMParser().parseFromString(responseText, 'text/html');
const selectors = ['cart-drawer-items', '.cart-drawer__footer'];
for (const selector of selectors) {
const targetElement = document.querySelector(selector);
const sourceElement = html.querySelector(selector);
if (targetElement && sourceElement) {
targetElement.replaceWith(sourceElement);
}
}
})
.catch((e) => {
console.error(e);
});
} else {
fetch(`${routes.cart_url}?section_id=main-cart-items`)
.then((response) => response.text())
.then((responseText) => {
const html = new DOMParser().parseFromString(responseText, 'text/html');
const sourceQty = html.querySelector('cart-items');
this.innerHTML = sourceQty.innerHTML;
})
.catch((e) => {
console.error(e);
});
}
}
getSectionsToRender() {
return [
{
id: 'main-cart-items',
section: document.getElementById('main-cart-items').dataset.id,
selector: '.js-contents',
},
{
id: 'cart-icon-bubble',
section: 'cart-icon-bubble',
selector: '.shopify-section',
},
{
id: 'cart-live-region-text',
section: 'cart-live-region-text',
selector: '.shopify-section',
},
{
id: 'main-cart-footer',
section: document.getElementById('main-cart-footer').dataset.id,
selector: '.js-contents',
},
];
}
updateQuantity(line, quantity, name, variantId) {
this.enableLoading(line);
const body = JSON.stringify({
line,
quantity,
sections: this.getSectionsToRender().map((section) => section.section),
sections_url: window.location.pathname,
});
fetch(`${routes.cart_change_url}`, { ...fetchConfig(), ...{ body } })
.then((response) => {
return response.text();
})
.then((state) => {
const parsedState = JSON.parse(state);
const quantityElement =
document.getElementById(`Quantity-${line}`) || document.getElementById(`Drawer-quantity-${line}`);
const items = document.querySelectorAll('.cart-item');
if (parsedState.errors) {
quantityElement.value = quantityElement.getAttribute('value');
this.updateLiveRegions(line, parsedState.errors);
return;
}
this.classList.toggle('is-empty', parsedState.item_count === 0);
const cartDrawerWrapper = document.querySelector('cart-drawer');
const cartFooter = document.getElementById('main-cart-footer');
if (cartFooter) cartFooter.classList.toggle('is-empty', parsedState.item_count === 0);
if (cartDrawerWrapper) cartDrawerWrapper.classList.toggle('is-empty', parsedState.item_count === 0);
this.getSectionsToRender().forEach((section) => {
const elementToReplace =
document.getElementById(section.id).querySelector(section.selector) || document.getElementById(section.id);
elementToReplace.innerHTML = this.getSectionInnerHTML(
parsedState.sections[section.section],
section.selector
);
});
const updatedValue = parsedState.items[line - 1] ? parsedState.items[line - 1].quantity : undefined;
let message = '';
if (items.length === parsedState.items.length && updatedValue !== parseInt(quantityElement.value)) {
if (typeof updatedValue === 'undefined') {
message = window.cartStrings.error;
} else {
message = window.cartStrings.quantityError.replace('[quantity]', updatedValue);
}
}
this.updateLiveRegions(line, message);
const lineItem =
document.getElementById(`CartItem-${line}`) || document.getElementById(`CartDrawer-Item-${line}`);
if (lineItem && lineItem.querySelector(`[name="${name}"]`)) {
cartDrawerWrapper
? trapFocus(cartDrawerWrapper, lineItem.querySelector(`[name="${name}"]`))
: lineItem.querySelector(`[name="${name}"]`).focus();
} else if (parsedState.item_count === 0 && cartDrawerWrapper) {
trapFocus(cartDrawerWrapper.querySelector('.drawer__inner-empty'), cartDrawerWrapper.querySelector('a'));
} else if (document.querySelector('.cart-item') && cartDrawerWrapper) {
trapFocus(cartDrawerWrapper, document.querySelector('.cart-item__name'));
}
publish(PUB_SUB_EVENTS.cartUpdate, { source: 'cart-items', cartData: parsedState, variantId: variantId });
})
.catch(() => {
this.querySelectorAll('.loading__spinner').forEach((overlay) => overlay.classList.add('hidden'));
const errors = document.getElementById('cart-errors') || document.getElementById('CartDrawer-CartErrors');
errors.textContent = window.cartStrings.error;
})
.finally(() => {
this.disableLoading(line);
});
}
updateLiveRegions(line, message) {
const lineItemError =
document.getElementById(`Line-item-error-${line}`) || document.getElementById(`CartDrawer-LineItemError-${line}`);
if (lineItemError) lineItemError.querySelector('.cart-item__error-text').innerHTML = message;
this.lineItemStatusElement.setAttribute('aria-hidden', true);
const cartStatus =
document.getElementById('cart-live-region-text') || document.getElementById('CartDrawer-LiveRegionText');
cartStatus.setAttribute('aria-hidden', false);
setTimeout(() => {
cartStatus.setAttribute('aria-hidden', true);
}, 1000);
}
getSectionInnerHTML(html, selector) {
return new DOMParser().parseFromString(html, 'text/html').querySelector(selector).innerHTML;
}
enableLoading(line) {
const mainCartItems = document.getElementById('main-cart-items') || document.getElementById('CartDrawer-CartItems');
mainCartItems.classList.add('cart__items--disabled');
const cartItemElements = this.querySelectorAll(`#CartItem-${line} .loading__spinner`);
const cartDrawerItemElements = this.querySelectorAll(`#CartDrawer-Item-${line} .loading__spinner`);
[...cartItemElements, ...cartDrawerItemElements].forEach((overlay) => overlay.classList.remove('hidden'));
document.activeElement.blur();
this.lineItemStatusElement.setAttribute('aria-hidden', false);
}
disableLoading(line) {
const mainCartItems = document.getElementById('main-cart-items') || document.getElementById('CartDrawer-CartItems');
mainCartItems.classList.remove('cart__items--disabled');
const cartItemElements = this.querySelectorAll(`#CartItem-${line} .loading__spinner`);
const cartDrawerItemElements = this.querySelectorAll(`#CartDrawer-Item-${line} .loading__spinner`);
cartItemElements.forEach((overlay) => overlay.classList.add('hidden'));
cartDrawerItemElements.forEach((overlay) => overlay.classList.add('hidden'));
}
}
customElements.define('cart-items', CartItems);
if (!customElements.get('cart-note')) {
customElements.define(
'cart-note',
class CartNote extends HTMLElement {
constructor() {
super();
this.addEventListener(
'change',
debounce((event) => {
const body = JSON.stringify({ note: event.target.value });
fetch(`${routes.cart_update_url}`, { ...fetchConfig(), ...{ body } });
}, ON_CHANGE_DEBOUNCE_TIMER)
);
}
}
);
}
</script>
<script>
/** Shopify CDN: Minification failed
Line 17:4 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 18:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 53:19 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 61:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 62:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 68:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 77:18 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 79:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 81:8 Transforming const to the configured target environment ("es5") is not supported yet
**/
if (!customElements.get('quantity-popover')) {
customElements.define(
'quantity-popover',
class QuantityPopover extends HTMLElement {
constructor() {
super();
this.mql = window.matchMedia('(min-width: 990px)');
this.mqlTablet = window.matchMedia('(min-width: 750px)');
this.infoButtonDesktop = this.querySelector('.quantity-popover__info-button--icon-only');
this.infoButtonMobile = this.querySelector('.quantity-popover__info-button--icon-with-label');
this.popoverInfo = this.querySelector('.quantity-popover__info');
this.closeButton = this.querySelector('.button-close');
this.variantInfo = this.querySelector('.quantity-popover-container');
this.eventMouseEnterHappened = false;
if (this.closeButton) {
this.closeButton.addEventListener('click', this.closePopover.bind(this));
}
if (this.popoverInfo && this.infoButtonDesktop && this.mql.matches) {
this.popoverInfo.addEventListener('mouseenter', this.closePopover.bind(this));
}
if (this.infoButtonDesktop) {
this.infoButtonDesktop.addEventListener('click', this.togglePopover.bind(this));
this.infoButtonDesktop.addEventListener('focusout', this.closePopover.bind(this));
}
if (this.infoButtonMobile) {
this.infoButtonMobile.addEventListener('click', this.togglePopover.bind(this));
this.infoButtonMobile.addEventListener('focusout', this.closePopover.bind(this));
}
if (this.infoButtonDesktop && this.mqlTablet.matches) {
this.variantInfo.addEventListener('mouseenter', this.togglePopover.bind(this));
this.variantInfo.addEventListener('mouseleave', this.closePopover.bind(this));
}
}
togglePopover(event) {
event.preventDefault();
if (event.type === 'mouseenter') {
this.eventMouseEnterHappened = true;
}
if (event.type === 'click' && this.eventMouseEnterHappened) return;
const button = this.infoButtonDesktop && this.mql.matches ? this.infoButtonDesktop : this.infoButtonMobile;
const isExpanded = button.getAttribute('aria-expanded') === 'true';
button.setAttribute('aria-expanded', !isExpanded);
this.popoverInfo.toggleAttribute('hidden');
const isOpen = button.getAttribute('aria-expanded') === 'true';
button.classList.toggle('quantity-popover__info-button--open');
if (isOpen && event.type !== 'mouseenter') {
button.focus();
}
}
closePopover(event) {
event.preventDefault();
const isChild = this.variantInfo.contains(event.relatedTarget);
const button = this.infoButtonDesktop && this.mql.matches ? this.infoButtonDesktop : this.infoButtonMobile;
if (!event.relatedTarget || !isChild) {
button.setAttribute('aria-expanded', 'false');
button.classList.remove('quantity-popover__info-button--open');
this.popoverInfo.setAttribute('hidden', '');
}
this.eventMouseEnterHappened = false;
}
}
);
}
</script>
<style>
.drawer {
visibility: hidden;
}
</style>
<cart-drawer class="drawer is-empty">
<div id="CartDrawer" class="cart-drawer">
<div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div>
<div class="drawer__inner gradient color-background-1" role="dialog" aria-modal="true"
aria-label="Your cart" tabindex="-1">
<div class="drawer__inner-empty">
<div class="cart-drawer__warnings center">
<div class="cart-drawer__empty-content">
<h2 class="cart__empty-text">SITUS TOGEL</h2>
<button class="drawer__close" type="button" onclick="this.closest('cart-drawer').close()"
aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"
class="icon icon-close" fill="none" viewBox="0 0 18 17">
<path
d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
fill="currentColor">
</svg>
</button>
<a href="https://illuzia.net/" class="button">
KOITOTO
</a>
</div>
</div>
</div>
<div class="drawer__header">
<h2 class="drawer__heading">Your cart</h2>
<button class="drawer__close" type="button" onclick="this.closest('cart-drawer').close()"
aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"
class="icon icon-close" fill="none" viewBox="0 0 18 17">
<path
d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
fill="currentColor">
</svg>
</button>
</div>
<cart-drawer-items class=" is-empty">
<form action="https://illuzia.net/" id="CartDrawer-Form" class="cart__contents cart-drawer__form"
method="post">
<div id="CartDrawer-CartItems" class="drawer__contents js-contents">
<p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p>
<p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status">
Loading...
</p>
</div>
<div id="CartDrawer-CartErrors" role="alert"></div>
</form>
</cart-drawer-items>
<div class="drawer__footer"><!-- Start blocks -->
<!-- Subtotals -->
<div class="cart-drawer__footer">
<div></div>
<div class="totals" role="status">
<h2 class="totals__total">Estimated total</h2>
<p class="totals__total-value">Rp 0,00 IDR</p>
</div>
<small class="tax-note caption-large rte">Taxes, discounts and shipping calculated at checkout
</small>
</div>
<!-- CTAs -->
<div class="cart__ctas">
<noscript>
<button type="submit" class="cart__update-button button button--secondary"
form="CartDrawer-Form">
Update
</button>
</noscript>
<button type="submit" id="CartDrawer-Checkout" class="cart__checkout-button button"
name="checkout" form="CartDrawer-Form" disabled>
Check out
</button>
</div>
</div>
</div>
</div>
</cart-drawer>
<script>
document.addEventListener('DOMContentLoaded', function () {
function isIE() {
const ua = window.navigator.userAgent;
const msie = ua.indexOf('MSIE ');
const trident = ua.indexOf('Trident/https://illuzia.net/');
return msie > 0 || trident > 0;
}
if (!isIE()) return;
const cartSubmitInput = document.createElement('input');
cartSubmitInput.setAttribute('name', 'checkout');
cartSubmitInput.setAttribute('type', 'hidden');
document.querySelector('#cart').appendChild(cartSubmitInput);
document.querySelector('#checkout').addEventListener('click', function (event) {
document.querySelector('#cart').submit();
});
});
</script>
<!-- BEGIN sections: header-group -->
<style>
slideshow-component {
position: relative;
display: flex;
flex-direction: column
}
@media screen and (max-width: 989px) {
.no-js slideshow-component .slider {
padding-bottom: 3rem
}
}
slideshow-component .slideshow.banner {
flex-direction: row;
flex-wrap: nowrap;
margin: 0;
gap: 0
}
.slideshow__slide {
padding: 0;
position: relative;
display: flex;
flex-direction: column;
visibility: visible
}
@media screen and (max-width: 749px) {
.slideshow--placeholder.banner--mobile-bottom.banner--adapt_image .slideshow__media,
.slideshow--placeholder.banner--adapt_image:not(.banner--mobile-bottom) {
height: 28rem
}
}
@media screen and (min-width: 750px) {
.slideshow--placeholder.banner--adapt_image {
height: 56rem
}
}
.slideshow__text.banner__box {
display: flex;
flex-direction: column;
justify-content: center;
max-width: 54.5rem
}
.slideshow__text>* {
max-width: 100%
}
@media screen and (max-width: 749px) {
slideshow-component.page-width .slideshow__text {
border-right: var(--text-boxes-border-width) solid rgba(var(--color-foreground), var(--text-boxes-border-opacity));
border-left: var(--text-boxes-border-width) solid rgba(var(--color-foreground), var(--text-boxes-border-opacity))
}
.banner--mobile-bottom .slideshow__text.banner__box {
max-width: 100%
}
.banner--mobile-bottom .slideshow__text-wrapper {
flex-grow: 1
}
.banner--mobile-bottom .slideshow__text.banner__box {
height: 100%
}
.banner--mobile-bottom .slideshow__text .button {
flex-grow: 0
}
.slideshow__text.slideshow__text-mobile--left {
align-items: flex-start;
text-align: left
}
.slideshow__text.slideshow__text-mobile--right {
align-items: flex-end;
text-align: right
}
}
@media screen and (min-width: 750px) {
.slideshow__text.slideshow__text--left {
align-items: flex-start;
text-align: left
}
.slideshow__text.slideshow__text--right {
align-items: flex-end;
text-align: right
}
}
.slideshow:not(.banner--mobile-bottom) .slideshow__text-wrapper {
height: 100%
}
@media screen and (min-width: 750px) {
.slideshow__text-wrapper.banner__content {
height: 100%;
padding: 5rem
}
}
.slideshow__controls {
border: .1rem solid rgba(var(--color-foreground), .08)
}
.slideshow__controls--top {
order: 2;
z-index: 1
}
@media screen and (max-width: 749px) {
.slideshow__controls--border-radius-mobile {
border-bottom-right-radius: var(--text-boxes-radius);
border-bottom-left-radius: var(--text-boxes-radius)
}
}
.spaced-section--full-width:last-child slideshow-component:not(.page-width) .slideshow__controls {
border-bottom: none
}
@media screen and (min-width: 750px) {
.slideshow__controls {
position: relative
}
}
slideshow-component:not(.page-width) .slider-buttons {
border-right: 0;
border-left: 0
}
.slideshow__control-wrapper {
display: flex
}
.slideshow__autoplay {
position: absolute;
right: 0;
border-left: none;
display: flex;
justify-content: center;
align-items: center
}
@media screen and (max-width: 749px) {
slideshow-component.page-width .slideshow__autoplay {
right: 1.5rem
}
}
@media screen and (min-width: 750px) {
.slideshow__autoplay.slider-button {
position: inherit;
margin-left: .6rem;
padding: 0 0 0 .6rem;
border-left: .1rem solid rgba(var(--color-foreground), .08)
}
}
.slideshow__autoplay .icon.icon-play,
.slideshow__autoplay .icon.icon-pause {
display: block;
position: absolute;
opacity: 1;
transform: scale(1);
transition: transform .15s ease, opacity .15s ease;
width: .8rem;
height: 1.2rem
}
.slideshow__autoplay .icon.icon-play {
height: 1rem
}
.slideshow__autoplay path {
fill: rgba(var(--color-foreground), .75)
}
.slideshow__autoplay:hover path {
fill: rgb(var(--color-foreground))
}
@media screen and (forced-colors: active) {
.slideshow__autoplay path,
.slideshow__autoplay:hover path {
fill: CanvasText
}
}
.slideshow__autoplay:hover svg {
transform: scale(1.1)
}
.slideshow__autoplay--paused .icon-pause,
.slideshow__autoplay:not(.slideshow__autoplay--paused) .icon-play {
visibility: hidden;
opacity: 0;
transform: scale(.8)
}
</style>
<style>
slider-component {
--desktop-margin-left-first-item: max(5rem, calc((100vw - var(--page-width) + 10rem - var(--grid-desktop-horizontal-spacing)) / 2));
position: relative;
display: block
}
slider-component.slider-component-full-width {
--desktop-margin-left-first-item: 1.5rem
}
@media screen and (max-width: 749px) {
slider-component.page-width {
padding: 0 1.5rem
}
}
@media screen and (min-width: 749px) and (max-width: 990px) {
slider-component.page-width {
padding: 0 5rem
}
}
@media screen and (max-width: 989px) {
.no-js slider-component .slider {
padding-bottom: 3rem
}
}
.slider__slide {
--focus-outline-padding: .5rem;
--shadow-padding-top: calc((var(--shadow-vertical-offset) * -1 + var(--shadow-blur-radius)) * var(--shadow-visible));
--shadow-padding-bottom: calc((var(--shadow-vertical-offset) + var(--shadow-blur-radius)) * var(--shadow-visible));
scroll-snap-align: start;
flex-shrink: 0;
padding-bottom: 0
}
@media screen and (max-width: 749px) {
.slider.slider--mobile {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scroll-padding-left: 1.5rem;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem
}
.slider--mobile:after {
content: "";
width: 0;
padding-left: 1.5rem
}
.slider.slider--mobile .slider__slide {
margin-bottom: 0;
padding-top: max(var(--focus-outline-padding), var(--shadow-padding-top));
padding-bottom: max(var(--focus-outline-padding), var(--shadow-padding-bottom))
}
.slider.slider--mobile.contains-card--standard .slider__slide:not(.collection-list__item--no-media) {
padding-bottom: var(--focus-outline-padding)
}
.slider.slider--mobile.contains-content-container .slider__slide {
--focus-outline-padding: 0rem
}
}
@media screen and (min-width: 750px) {
.slider.slider--tablet-up {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scroll-padding-left: 1rem;
-webkit-overflow-scrolling: touch
}
.slider.slider--tablet-up .slider__slide {
margin-bottom: 0
}
}
@media screen and (max-width: 989px) {
.slider.slider--tablet {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scroll-padding-left: 1.5rem;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem
}
.slider--tablet:after {
content: "";
width: 0;
padding-left: 1.5rem;
margin-left: calc(-1 * var(--grid-desktop-horizontal-spacing))
}
.slider.slider--tablet .slider__slide {
margin-bottom: 0;
padding-top: max(var(--focus-outline-padding), var(--shadow-padding-top));
padding-bottom: max(var(--focus-outline-padding), var(--shadow-padding-bottom))
}
.slider.slider--tablet.contains-card--standard .slider__slide:not(.collection-list__item--no-media) {
padding-bottom: var(--focus-outline-padding)
}
.slider.slider--tablet.contains-content-container .slider__slide {
--focus-outline-padding: 0rem
}
}
.slider--everywhere {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem
}
.slider.slider--everywhere .slider__slide {
margin-bottom: 0;
scroll-snap-align: center
}
@media screen and (min-width: 990px) {
.slider-component-desktop.page-width {
max-width: none
}
.slider--desktop {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem;
scroll-padding-left: var(--desktop-margin-left-first-item)
}
.slider--desktop:after {
content: "";
width: 0;
padding-left: 5rem;
margin-left: calc(-1 * var(--grid-desktop-horizontal-spacing))
}
.slider.slider--desktop .slider__slide {
margin-bottom: 0;
padding-top: max(var(--focus-outline-padding), var(--shadow-padding-top));
padding-bottom: max(var(--focus-outline-padding), var(--shadow-padding-bottom))
}
.slider--desktop .slider__slide:first-child {
margin-left: var(--desktop-margin-left-first-item);
scroll-margin-left: var(--desktop-margin-left-first-item)
}
.slider-component-full-width .slider--desktop {
scroll-padding-left: 1.5rem
}
.slider-component-full-width .slider--desktop .slider__slide:first-child {
margin-left: 1.5rem;
scroll-margin-left: 1.5rem
}
.slider-component-full-width .slider--desktop:after {
padding-left: 1.5rem
}
.slider--desktop.grid--5-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 5 - var(--grid-desktop-horizontal-spacing) * 2)
}
.slider--desktop.grid--4-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 4 - var(--grid-desktop-horizontal-spacing) * 3)
}
.slider--desktop.grid--3-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 3 - var(--grid-desktop-horizontal-spacing) * 4)
}
.slider--desktop.grid--2-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 2 - var(--grid-desktop-horizontal-spacing) * 5)
}
.slider--desktop.grid--1-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) - var(--grid-desktop-horizontal-spacing) * 9)
}
.slider.slider--desktop.contains-card--standard .slider__slide:not(.collection-list__item--no-media) {
padding-bottom: var(--focus-outline-padding)
}
.slider.slider--desktop.contains-content-container .slider__slide {
--focus-outline-padding: 0rem
}
}
@media (prefers-reduced-motion) {
.slider {
scroll-behavior: auto
}
}
.slider {
scrollbar-color: rgb(var(--color-foreground)) rgba(var(--color-foreground), .04);
-ms-overflow-style: none;
scrollbar-width: none
}
.slider::-webkit-scrollbar {
height: .4rem;
width: .4rem;
display: none
}
.no-js .slider {
-ms-overflow-style: auto;
scrollbar-width: auto
}
.no-js .slider::-webkit-scrollbar {
display: initial
}
.slider::-webkit-scrollbar-thumb {
background-color: rgb(var(--color-foreground));
border-radius: .4rem;
border: 0
}
.slider::-webkit-scrollbar-track {
background: rgba(var(--color-foreground), .04);
border-radius: .4rem
}
.slider-counter {
display: flex;
justify-content: center;
min-width: 4.4rem
}
@media screen and (min-width: 750px) {
.slider-counter--dots {
margin: 0 1.2rem
}
}
.slider-counter__link {
padding: 1rem
}
@media screen and (max-width: 749px) {
.slider-counter__link {
padding: .7rem
}
}
.slider-counter__link--dots .dot {
width: 1rem;
height: 1rem;
border-radius: 50%;
border: .1rem solid rgba(var(--color-foreground), .5);
padding: 0;
display: block
}
.slider-counter__link--active.slider-counter__link--dots .dot {
background-color: rgb(var(--color-foreground))
}
@media screen and (forced-colors: active) {
.slider-counter__link--active.slider-counter__link--dots .dot {
background-color: CanvasText
}
}
.slider-counter__link--dots:not(.slider-counter__link--active):hover .dot {
border-color: rgb(var(--color-foreground))
}
.slider-counter__link--dots .dot,
.slider-counter__link--numbers {
transition: transform .2s ease-in-out
}
.slider-counter__link--active.slider-counter__link--numbers,
.slider-counter__link--dots:not(.slider-counter__link--active):hover .dot,
.slider-counter__link--numbers:hover {
transform: scale(1.1)
}
.slider-counter__link--numbers {
color: rgba(var(--color-foreground), .5);
text-decoration: none
}
.slider-counter__link--numbers:hover {
color: rgb(var(--color-foreground))
}
.slider-counter__link--active.slider-counter__link--numbers {
text-decoration: underline;
color: rgb(var(--color-foreground))
}
.slider-buttons {
display: flex;
align-items: center;
justify-content: center
}
@media screen and (min-width: 990px) {
.slider:not(.slider--everywhere):not(.slider--desktop)+.slider-buttons {
display: none
}
}
@media screen and (max-width: 989px) {
.slider--desktop:not(.slider--tablet)+.slider-buttons {
display: none
}
}
@media screen and (min-width: 750px) {
.slider--mobile+.slider-buttons {
display: none
}
}
.slider-button {
color: rgba(var(--color-foreground), .75);
background: transparent;
border: none;
cursor: pointer;
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center
}
.slider-button:not([disabled]):hover {
color: rgb(var(--color-foreground))
}
.slider-button .icon {
height: .6rem
}
.slider-button[disabled] .icon {
color: rgba(var(--color-foreground), .3);
cursor: not-allowed
}
.slider-button--next .icon {
transform: rotate(-90deg)
}
.slider-button--prev .icon {
transform: rotate(90deg)
}
.slider-button--next:not([disabled]):hover .icon {
transform: rotate(-90deg) scale(1.1)
}
.slider-button--prev:not([disabled]):hover .icon {
transform: rotate(90deg) scale(1.1)
}
</style>
<div class="utility-bar color-accent-1 gradient utility-bar--bottom-border">
<div class="page-width utility-bar__grid">
<div class="announcement-bar" role="region" aria-label="Announcement">
<p class="announcement-bar__message h5">
<span>Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online</span>
</p>
</div>
<div class="localization-wrapper">
</div>
</div>
</div>
</div>
<div id="shopify-section-sections--17040648405205__header"
class="shopify-section shopify-section-group-header-group section-header">
<style>
.list-menu--right {
right: 0;
}
.list-menu--disclosure {
position: absolute;
min-width: 100%;
width: 20rem;
border: 1px solid rgba(var(--color-foreground), 0.2);
}
.list-menu--disclosure:focus {
outline: none;
}
.list-menu__item--active {
text-decoration: underline;
text-underline-offset: 0.3rem;
}
.list-menu__item--active:hover {
text-decoration-thickness: 0.2rem;
}
.list-menu--disclosure.localization-selector {
max-height: 18rem;
overflow: auto;
width: 10rem;
padding: 0.5rem;
}
</style>
<style>
.search__input.field__input {
padding-right: 9.8rem
}
.search__button {
right: var(--inputs-border-width);
top: var(--inputs-border-width)
}
.reset__button {
right: calc(var(--inputs-border-width) + 4.4rem);
top: var(--inputs-border-width)
}
.reset__button:not(:focus-visible):after {
border-right: .1rem solid rgba(var(--color-foreground), .08);
display: block;
height: calc(100% - 1.6rem);
content: "";
position: absolute;
right: 0
}
.reset__button:not(:focus):after {
border-right: .1rem solid rgba(var(--color-foreground), .08);
display: block;
height: calc(100% - 1.8rem);
content: "";
position: absolute;
right: 0
}
.search__button:focus-visible,
.reset__button:focus-visible {
background-color: rgb(var(--color-background));
z-index: 4
}
.search__button:focus,
.reset__button:focus {
background-color: rgb(var(--color-background));
z-index: 4
}
.search__button:not(:focus-visible):not(.focused),
.reset__button:not(:focus-visible):not(.focused) {
box-shadow: inherit;
background-color: inherit
}
.search__button:hover .icon,
.reset__button:hover .icon {
transform: scale(1.07)
}
.search__button .icon {
height: 1.8rem;
width: 1.8rem
}
.reset__button .icon.icon-close {
height: 1.8rem;
width: 1.8rem;
stroke-width: .1rem
}
input::-webkit-search-decoration {
-webkit-appearance: none
}
.template-search__results {
position: relative
}
</style>
<style>
.header__icon--menu {
position: initial
}
.js menu-drawer>details>summary:before,
.js menu-drawer>details[open]:not(.menu-opening)>summary:before {
content: "";
position: absolute;
cursor: default;
width: 100%;
height: calc(100vh - 100%);
height: calc(var(--viewport-height, 100vh) - (var(--header-bottom-position, 100%)));
top: 100%;
left: 0;
background: rgba(var(--color-foreground), .5);
opacity: 0;
visibility: hidden;
z-index: 2;
transition: opacity 0s, visibility 0s
}
menu-drawer>details[open]>summary:before {
visibility: visible;
opacity: 1;
transition: opacity var(--duration-default) ease, visibility var(--duration-default) ease
}
.menu-drawer {
position: absolute;
transform: translate(-100%);
visibility: hidden;
z-index: 3;
left: 0;
top: 100%;
width: 100%;
padding: 0;
background-color: rgb(var(--color-background));
overflow-x: hidden;
filter: drop-shadow(var(--drawer-shadow-horizontal-offset) var(--drawer-shadow-vertical-offset) var(--drawer-shadow-blur-radius) rgba(var(--color-shadow), var(--drawer-shadow-opacity)))
}
.js .menu-drawer {
height: calc(100vh - 100%);
height: calc(var(--viewport-height, 100vh) - (var(--header-bottom-position, 100%)))
}
.js details[open]>.menu-drawer,
.js details[open]>.menu-drawer__submenu {
transition: transform var(--duration-default) ease, visibility var(--duration-default) ease
}
.no-js details[open]>.menu-drawer,
.js details[open].menu-opening>.menu-drawer,
details[open].menu-opening>.menu-drawer__submenu {
transform: translate(0);
visibility: visible
}
.js .menu-drawer__navigation .submenu-open {
visibility: hidden
}
@media screen and (min-width: 750px) {
.menu-drawer {
width: 40rem;
border-width: 0 var(--drawer-border-width) 0 0;
border-style: solid;
border-color: rgba(var(--color-foreground), var(--drawer-border-opacity))
}
.no-js .menu-drawer {
height: auto
}
}
.menu-drawer__inner-container {
position: relative;
height: 100%
}
.menu-drawer__navigation-container {
display: grid;
grid-template-rows: 1fr auto;
align-content: space-between;
overflow-y: auto;
height: 100%
}
.menu-drawer__navigation {
padding: 3rem 0
}
.menu-drawer__inner-submenu {
height: 100%;
overflow-x: hidden;
overflow-y: auto
}
.no-js .menu-drawer__navigation {
padding: 0
}
.no-js .menu-drawer__navigation>ul>li {
border-bottom: .1rem solid rgba(var(--color-foreground), .04)
}
.no-js .menu-drawer__submenu ul>li {
border-top: .1rem solid rgba(var(--color-foreground), .04)
}
.js .menu-drawer__menu li {
margin-bottom: .2rem
}
.menu-drawer__menu-item {
padding: 1.1rem 3rem;
text-decoration: none;
font-size: 1.8rem
}
.no-js .menu-drawer__menu-item {
font-size: 1.6rem
}
.no-js .menu-drawer__submenu .menu-drawer__menu-item {
padding: 1.2rem 5.2rem 1.2rem 6rem
}
.no-js .menu-drawer__submenu .menu-drawer__submenu .menu-drawer__menu-item {
padding-left: 9rem
}
.menu-drawer summary.menu-drawer__menu-item {
padding-right: 5.2rem
}
.no-js .menu-drawer__menu-item .icon-caret {
right: 3rem
}
.menu-drawer__menu-item--active,
.menu-drawer__menu-item:focus,
.menu-drawer__close-button:focus,
.menu-drawer__menu-item:hover,
.menu-drawer__close-button:hover {
color: rgb(var(--color-foreground));
background-color: rgba(var(--color-foreground), .04)
}
.menu-drawer__menu-item--active:hover {
background-color: rgba(var(--color-foreground), .08)
}
.js .menu-drawer__menu-item .icon-caret,
.no-js .menu-drawer .icon-arrow {
display: none
}
.menu-drawer__menu-item>.icon-arrow {
position: absolute;
right: 3rem;
top: 50%;
transform: translateY(-50%)
}
.js .menu-drawer__submenu {
position: absolute;
top: 0;
width: 100%;
bottom: 0;
left: 0;
background-color: rgb(var(--color-background));
z-index: 1;
transform: translate(100%);
visibility: hidden
}
.js .menu-drawer__submenu .menu-drawer__submenu {
overflow-y: auto
}
.menu-drawer__close-button {
margin-top: 1.5rem;
padding: 1.2rem 2.6rem 1.2rem 3rem;
text-decoration: none;
display: flex;
align-items: center;
font-size: 1.4rem;
width: 100%;
background-color: transparent;
font-family: var(--font-body-family);
font-style: var(--font-body-style);
text-align: left
}
.no-js .menu-drawer__close-button {
display: none
}
.menu-drawer__close-button .icon-arrow {
transform: rotate(180deg);
margin-right: 1rem
}
.menu-drawer__utility-links {
padding: 0;
background-color: rgba(var(--color-foreground), .03);
position: relative
}
.header--has-social .menu-drawer__utility-links {
padding: 2rem 3rem
}
@media screen and (max-width: 749px) {
.header--has-account:where(:not(.header--has-social):not(.header--has-localizations)) .menu-drawer__utility-links {
padding: 2rem 3rem
}
}
@media screen and (max-width: 989px) {
.header--has-localizations:where(:not(.header--has-social)) .menu-drawer__utility-links {
padding: 2rem 3rem
}
}
.menu-drawer__account {
display: inline-flex;
align-items: center;
text-decoration: none;
padding: 1rem 0;
font-size: 1.4rem;
color: rgb(var(--color-foreground));
margin-bottom: 0
}
.menu-drawer__utility-links:has(.menu-drawer__localization) .menu-drawer__account {
margin: 0
}
.menu-drawer__account .icon-account {
height: 2rem;
width: 2rem;
margin-right: 1rem
}
.menu-drawer__account:hover .icon-account {
transform: scale(1.07)
}
.menu-drawer .list-social {
justify-content: flex-start;
margin-left: -1.25rem
}
.menu-drawer .list-social:empty {
display: none
}
.menu-drawer .list-social__link {
padding: 1.1rem
}
</style>
<style>
.cart-notification-wrapper {
position: relative
}
.cart-notification-wrapper .cart-notification {
display: block
}
.cart-notification {
border-bottom-right-radius: var(--popup-corner-radius);
border-bottom-left-radius: var(--popup-corner-radius);
border-color: rgba(var(--color-foreground), var(--popup-border-opacity));
border-style: solid;
border-width: 0 0 var(--popup-border-width);
padding: 2.5rem 3.5rem;
position: absolute;
right: 0;
transform: translateY(-100%);
visibility: hidden;
width: 100%;
box-shadow: var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity));
z-index: -1
}
.cart-notification.focused {
box-shadow: 0 0 .2rem 0 rgba(var(--color-foreground), .3), var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity))
}
.cart-notification:focus-visible {
box-shadow: 0 0 .2rem 0 rgba(var(--color-foreground), .3), var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity))
}
@media screen and (min-width: 750px) {
.header-wrapper:not(.header-wrapper--border-bottom)+cart-notification .cart-notification {
border-top-width: var(--popup-border-width)
}
.cart-notification {
border-width: 0 var(--popup-border-width) var(--popup-border-width);
max-width: 36.8rem;
right: 2.2rem
}
}
@media screen and (min-width: 990px) {
.cart-notification-wrapper:is(.page-width)>.cart-notification {
right: 4rem
}
}
.cart-notification.animate {
transition: transform var(--duration-short) ease, visibility 0s var(--duration-short) ease
}
.cart-notification.active {
transform: translateY(0);
transition: transform var(--duration-default) ease, visibility 0s;
visibility: visible
}
.cart-notification__header {
align-items: flex-start;
display: flex
}
.cart-notification__heading {
align-items: center;
display: flex;
flex-grow: 1;
margin-bottom: 0;
margin-top: 0
}
.cart-notification__heading .icon-checkmark {
color: rgb(var(--color-foreground));
margin-right: 1rem;
width: 1.3rem
}
.cart-notification__close {
margin-top: -2rem;
margin-right: -3rem
}
.cart-notification__links {
text-align: center
}
.cart-notification__links>* {
margin-top: 1rem
}
.cart-notification-product {
align-items: flex-start;
display: flex;
padding-bottom: 3rem;
padding-top: 2rem
}
.cart-notification-product dl {
margin-bottom: 0;
margin-top: 0
}
.cart-notification-product__image {
display: inline-flex;
margin-right: 1.5rem;
margin-top: .5rem
}
.cart-notification-product__image:after {
content: none
}
.cart-notification-product__name {
margin-bottom: .5rem;
margin-top: 0
}
</style>
<style>
cart-items .title-wrapper-with-link {
margin-top: 0
}
.cart-items td,
.cart-items th {
padding: 0;
border: none
}
.cart-items th {
text-align: left;
padding-bottom: 1.8rem;
opacity: .85;
font-weight: 400
}
.cart-item__quantity-wrapper {
display: flex
}
.cart-item__totals {
position: relative
}
.cart-items *.right {
text-align: right
}
.cart-item__image-container {
display: inline-flex;
align-items: flex-start
}
.cart-item__image-container:after {
content: none
}
.cart-item__image {
height: auto;
max-width: calc(10rem / var(--font-body-scale))
}
@media screen and (min-width: 750px) {
.cart-item__image {
max-width: 100%
}
}
.cart-item__details {
font-size: 1.6rem;
line-height: calc(1 + .4 / var(--font-body-scale))
}
.cart-item__details>* {
margin: 0;
max-width: 30rem
}
.cart-item__details>*+* {
margin-top: .6rem
}
.cart-item__media {
position: relative
}
.cart-item__link {
display: block;
bottom: 0;
left: 0;
position: absolute;
right: 0;
top: 0;
width: 100%;
height: 100%
}
.cart-item__name {
text-decoration: none;
display: block
}
.cart-item__name:hover {
text-decoration: underline;
text-underline-offset: .3rem;
text-decoration-thickness: .2rem
}
.cart-item__price-wrapper>* {
display: block;
margin: 0;
padding: 0
}
.cart-item__discounted-prices dd {
margin: 0
}
.cart-item__discounted-prices .cart-item__old-price {
font-size: 1.4rem
}
.cart-item__old-price {
opacity: .7
}
.cart-item__final-price {
font-weight: 400
}
.product-option {
font-size: 1.4rem;
word-break: break-word;
line-height: calc(1 + .5 / var(--font-body-scale))
}
.cart-item cart-remove-button {
display: flex;
margin-left: 1rem
}
@media screen and (min-width: 750px) and (max-width: 989px) {
.cart-item cart-remove-button {
width: 4.5rem;
height: 4.5rem
}
}
cart-remove-button .button {
min-width: calc(4.5rem / var(--font-body-scale));
min-height: 4.5rem;
padding: 0;
margin: 0 .1rem .1rem 0
}
cart-remove-button .button:before,
cart-remove-button .button:after {
content: none
}
cart-remove-button .button:not([disabled]):hover {
color: rgb(var(--color-foreground))
}
@media screen and (min-width: 750px) {
cart-remove-button .button {
min-width: 3.5rem;
min-height: 3.5rem
}
}
cart-remove-button .icon-remove {
height: 1.5rem;
width: 1.5rem
}
.cart-item .loading__spinner {
top: 0;
left: auto;
right: auto;
bottom: 0;
padding: 0
}
@media screen and (min-width: 750px) {
.cart-item .loading__spinner {
right: 0;
padding-top: 4.5rem;
bottom: auto
}
}
.cart-item .loading__spinner:not(.hidden)~* {
visibility: hidden
}
.cart-item__error {
display: flex;
align-items: flex-start;
margin-top: .2rem;
width: min-content;
min-width: 100%
}
.cart-item__error-text {
font-size: 1.2rem;
line-height: calc(1 + .2 / var(--font-body-scale));
order: 1
}
.cart-item__error-text+svg {
flex-shrink: 0;
width: 1.2rem;
margin-right: .5rem;
margin-top: .1rem
}
.cart-item__error-text:empty+svg {
display: none
}
.product-option+.product-option {
margin-top: .4rem
}
.product-option * {
display: inline;
margin: 0
}
.cart-items thead th {
text-transform: uppercase
}
@media screen and (max-width: 749px) {
.cart-items,
.cart-items thead,
.cart-items tbody {
display: block;
width: 100%
}
.cart-items thead tr {
display: flex;
justify-content: space-between;
border-bottom: .1rem solid rgba(var(--color-foreground), .2);
margin-bottom: 4rem
}
.cart-item {
display: grid;
grid-template: repeat(2, auto) / repeat(4, 1fr);
gap: 1.5rem;
margin-bottom: 3.5rem
}
.cart-item:last-child {
margin-bottom: 0
}
.cart-item__media {
grid-row: 1 / 3
}
.cart-item__details {
grid-column: 2 / 4
}
.cart-item__quantity {
grid-column: 2 / 5
}
.cart-item__quantity-wrapper {
flex-wrap: wrap
}
.cart-item__totals {
display: flex;
align-items: flex-start;
justify-content: flex-end
}
}
@media screen and (min-width: 750px) {
.cart-items {
border-spacing: 0;
border-collapse: separate;
box-shadow: none;
width: 100%;
display: table
}
.cart-items th {
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
.cart-items thead th:first-child {
width: 50%
}
.cart-items th+th {
padding-left: 4rem
}
.cart-items td {
vertical-align: top;
padding-top: 4rem
}
.cart-item {
display: table-row
}
.cart-item>td+td {
padding-left: 4rem
}
.cart-item__details {
width: 35rem
}
.cart-item__media {
width: 10rem
}
.cart-item cart-remove-button {
margin: .5rem 0 0 1.5rem
}
.cart-item__price-wrapper>*:only-child:not(.cart-item__discounted-prices) {
margin-top: 1rem
}
.cart-item__error {
margin-left: .3rem
}
}
@media screen and (min-width: 990px) {
.cart-item .cart-item__quantity,
.cart-items .cart-items__heading--wide {
padding-left: 6rem
}
.cart-item__details {
width: 50rem
}
.cart-items thead th:first-child {
width: 60%
}
}
@media screen and (min-width: 750px) {
.cart-items .cart-items__heading--quantity,
.cart-item .cart-item__quantity,
.cart-item__quantity--info quantity-popover>*,
.no-js .cart-item .cart-item__quantity--info {
padding-left: 5rem
}
.cart-item .cart-item__quantity--info,
.cart-item__quantity--info .cart-item__quantity-wrapper,
.cart-item__quantity--info .cart-items__info {
padding-left: 0
}
}
@media screen and (min-width: 749px) and (max-width: 990px) {
.cart-items .quantity-popover__info-button {
padding-left: 1.5rem
}
}
</style>
<style>
.price {
font-size: 1.6rem;
letter-spacing: .1rem;
line-height: calc(1 + .5 / var(--font-body-scale));
color: rgb(var(--color-foreground))
}
.price>* {
display: inline-block;
vertical-align: top
}
.price.price--unavailable {
visibility: hidden
}
.price--end {
text-align: right
}
.price .price-item {
display: inline-block;
margin: 0 1rem 0 0
}
.price__regular .price-item--regular {
margin-right: 0
}
.price:not(.price--show-badge) .price-item--last:last-of-type {
margin: 0
}
@media screen and (min-width: 750px) {
.price {
margin-bottom: 0
}
}
.price--large {
font-size: 1.6rem;
line-height: calc(1 + .5 / var(--font-body-scale));
letter-spacing: .13rem
}
@media screen and (min-width: 750px) {
.price--large {
font-size: 1.8rem
}
}
.price--sold-out .price__availability,
.price__regular {
display: block
}
.price__sale,
.price__availability,
.price .price__badge-sale,
.price .price__badge-sold-out,
.price--on-sale .price__regular,
.price--on-sale .price__availability {
display: none
}
.price--sold-out .price__badge-sold-out,
.price--on-sale .price__badge-sale,
.volume-pricing--sale-badge .price__badge-sale {
display: inline-block
}
.volume-pricing--sale-badge .price__badge-sale {
margin-left: .5rem
}
.price--on-sale .price__sale {
display: initial;
flex-direction: row;
flex-wrap: wrap
}
.price--center {
display: initial;
justify-content: center
}
.price--on-sale .price-item--regular {
text-decoration: line-through;
color: rgba(var(--color-foreground), .75);
font-size: 1.3rem
}
.unit-price {
display: block;
font-size: 1.1rem;
letter-spacing: .04rem;
line-height: calc(1 + .2 / var(--font-body-scale));
margin-top: .2rem;
text-transform: uppercase;
color: rgba(var(--color-foreground), .7)
}
</style>
<style>
.drawer {
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100vw;
height: 100%;
display: flex;
justify-content: flex-end;
background-color: rgba(var(--color-foreground), .5);
transition: visibility var(--duration-default) ease
}
.drawer.active {
visibility: visible
}
.drawer__inner {
height: 100%;
width: 40rem;
max-width: calc(100vw - 3rem);
padding: 0 1.5rem;
border: .1rem solid rgba(var(--color-foreground), .2);
border-right: 0;
overflow: hidden;
display: flex;
flex-direction: column;
transform: translate(100%);
transition: transform var(--duration-default) ease
}
.drawer__inner-empty {
height: 100%;
padding: 0 1.5rem;
overflow: hidden;
display: flex;
flex-direction: column
}
.cart-drawer__warnings {
display: flex;
flex-direction: column;
flex: 1;
justify-content: center
}
cart-drawer.is-empty .drawer__inner {
display: grid;
grid-template-rows: 1fr;
align-items: center;
padding: 0
}
cart-drawer.is-empty .drawer__header {
display: none
}
cart-drawer:not(.is-empty) .cart-drawer__warnings,
cart-drawer:not(.is-empty) .cart-drawer__collection {
display: none
}
.cart-drawer__warnings--has-collection .cart__login-title {
margin-top: 2.5rem
}
.drawer.active .drawer__inner {
transform: translate(0)
}
.drawer__header {
position: relative;
padding: 1.5rem 0;
display: flex;
justify-content: space-between;
align-items: center
}
.drawer__heading {
margin: 0 0 1rem
}
.drawer__close {
display: inline-block;
padding: 0;
min-width: 4.4rem;
min-height: 4.4rem;
box-shadow: 0 0 0 .2rem rgba(var(--color-button), 0);
position: absolute;
top: 10px;
right: -10px;
color: rgb(var(--color-foreground));
background-color: transparent;
border: none;
cursor: pointer
}
.cart-drawer__warnings .drawer__close {
right: 5px
}
.drawer__close svg {
height: 2.4rem;
width: 2.4rem
}
.drawer__contents {
flex-grow: 1;
display: flex;
flex-direction: column
}
.drawer__footer {
border-top: .1rem solid rgba(var(--color-foreground), .2);
padding: 1.5rem 0
}
cart-drawer-items.is-empty+.drawer__footer {
display: none
}
.drawer__footer>details {
margin-top: -1.5rem;
border-bottom: .1rem solid rgba(var(--color-foreground), .2)
}
.drawer__footer>details[open] {
padding-bottom: 1.5rem
}
.drawer__footer summary {
display: flex;
position: relative;
line-height: 1;
padding: 1.5rem 0
}
.drawer__footer>details+.cart-drawer__footer {
padding-top: 1.5rem
}
cart-drawer {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100%
}
.cart-drawer__overlay {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0
}
.cart-drawer__overlay:empty {
display: block
}
.cart-drawer__form {
flex-grow: 1;
display: flex;
flex-wrap: wrap
}
.cart-drawer__collection {
margin: 0 2.5rem 1.5rem
}
.cart-drawer .drawer__cart-items-wrapper {
flex-grow: 1
}
.cart-drawer .cart-items,
.cart-drawer tbody {
display: block;
width: 100%
}
.cart-drawer thead {
display: inline-table;
width: 100%;
position: sticky;
top: 0;
z-index: 2
}
cart-drawer-items {
overflow: auto;
flex: 1
}
@media screen and (max-height: 650px) {
cart-drawer-items {
overflow: visible
}
.drawer__inner {
overflow: scroll
}
}
.cart-drawer .cart-item {
display: grid;
grid-template: repeat(2, auto) / repeat(4, 1fr);
gap: 1.5rem;
margin-bottom: 0
}
.cart-drawer .cart-item:last-child {
margin-bottom: 1rem
}
.cart-drawer .cart-item__media {
grid-row: 1 / 3
}
.cart-drawer .cart-item__image {
max-width: 100%
}
.cart-drawer .cart-items thead {
margin-bottom: .5rem
}
.cart-drawer .cart-items thead th:first-child,
.cart-drawer .cart-items thead th:last-child {
width: 0;
padding: 0
}
.cart-drawer .cart-items thead th:nth-child(2) {
width: 50%;
padding-left: 0
}
.cart-drawer .cart-items thead tr {
display: table-row;
margin-bottom: 0
}
.cart-drawer .cart-items th {
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
.cart-drawer .cart-item:last-child {
margin-bottom: 1.5rem
}
.cart-drawer .cart-item .loading__spinner {
right: 5px;
padding-top: 2.5rem
}
.cart-drawer .cart-items td {
padding-top: 2rem
}
.cart-drawer .cart-item>td+td {
padding-left: 1rem
}
.cart-drawer .cart-item__details {
width: auto;
grid-column: 2 / 4
}
.cart-drawer .cart-item__totals {
pointer-events: none;
display: flex;
align-items: flex-start;
justify-content: flex-end
}
.cart-drawer.cart-drawer .cart-item__price-wrapper>*:only-child {
margin-top: 0
}
.cart-drawer .cart-item__price-wrapper .cart-item__discounted-prices {
display: flex;
flex-direction: column;
gap: .6rem
}
.cart-drawer .unit-price {
margin-top: .6rem
}
.cart-drawer .cart-items .cart-item__quantity {
padding-top: 0;
grid-column: 2 / 5
}
@media screen and (max-width: 749px) {
.cart-drawer .cart-item cart-remove-button {
margin-left: 0
}
}
.cart-drawer__footer>*+* {
margin-top: 1rem
}
.cart-drawer .totals {
justify-content: space-between
}
.cart-drawer .price {
line-height: 1
}
.cart-drawer .tax-note {
margin: 1.2rem 0 1rem auto;
text-align: left
}
.cart-drawer .product-option dd {
word-break: break-word
}
.cart-drawer details[open]>summary .icon-caret {
transform: rotate(180deg)
}
.cart-drawer .cart__checkout-button {
max-width: none
}
.drawer__footer .cart__dynamic-checkout-buttons {
max-width: 100%
}
.drawer__footer #dynamic-checkout-cart ul {
flex-wrap: wrap !important;
flex-direction: row !important;
margin: .5rem -.5rem 0 0 !important;
gap: .5rem
}
.drawer__footer [data-shopify-buttoncontainer] {
justify-content: flex-start
}
.drawer__footer #dynamic-checkout-cart ul>li {
flex-basis: calc(50% - .5rem) !important;
margin: 0 !important
}
.drawer__footer #dynamic-checkout-cart ul>li:only-child {
flex-basis: 100% !important;
margin-right: .5rem !important
}
@media screen and (min-width: 750px) {
.drawer__footer #dynamic-checkout-cart ul>li {
flex-basis: calc(100% / 3 - .5rem) !important;
margin: 0 !important
}
.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(2),
.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(2)~li,
.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(4),
.drawer__footer #dynamic-checkout-cart ul>li:first-child:nth-last-child(4)~li {
flex-basis: calc(50% - .5rem) !important
}
}
cart-drawer-items::-webkit-scrollbar {
width: 3px
}
cart-drawer-items::-webkit-scrollbar-thumb {
background-color: rgba(var(--color-foreground), .7);
border-radius: 100px
}
cart-drawer-items::-webkit-scrollbar-track-piece {
margin-top: 31px
}
.cart-drawer .quantity-popover-container {
padding: 0
}
.cart-drawer .quantity-popover__info.global-settings-popup {
transform: translateY(0);
right: 0
}
.cart-drawer .cart-item__error {
margin-top: .8rem
}
.cart-drawer .quantity-popover__info+.cart-item__error {
margin-top: .2rem
}
@media screen and (min-width: 750px) {
.cart-drawer .cart-item__quantity--info quantity-popover>* {
padding-left: 0
}
.cart-drawer .cart-item__error {
margin-left: 0
}
}
</style>
<style>
.cart {
position: relative;
display: block
}
.cart__empty-text,
.is-empty .cart__contents,
cart-items.is-empty .title-wrapper-with-link,
.is-empty .cart__footer {
display: none
}
.is-empty .cart__empty-text,
.is-empty .cart__warnings {
display: block
}
.cart__warnings {
display: none;
text-align: center;
padding: 3rem 0 1rem
}
.cart__empty-text {
margin: 4.5rem 0 2rem
}
.cart__contents>*+* {
margin-top: 2.5rem
}
.cart__login-title {
margin: 5.5rem 0 .5rem
}
.cart__login-paragraph {
margin-top: .8rem
}
.cart__login-paragraph a {
font-size: inherit
}
@media screen and (min-width: 990px) {
.cart__warnings {
padding: 7rem 0 1rem
}
.cart__empty-text {
margin: 0 0 3rem
}
}
cart-items {
display: block
}
.cart__items {
position: relative;
padding-bottom: 3rem;
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
.cart__items--disabled {
pointer-events: none
}
.cart__footer-wrapper:last-child .cart__footer {
padding-bottom: 5rem
}
.cart__footer>div:only-child {
margin-left: auto
}
.cart__footer>*+* {
margin-top: 6.5rem
}
.cart__footer .discounts {
margin-bottom: 1rem
}
.cart__note {
height: fit-content;
top: 2.5rem
}
.cart__note label {
display: flex;
align-items: flex-end;
position: absolute;
line-height: 1;
height: 1.8rem;
top: -3rem;
color: rgba(var(--color-foreground), .75)
}
.cart__note .field__input {
height: 100%;
position: relative;
border-radius: var(--inputs-radius);
padding: 1rem 2rem
}
.cart__note .text-area {
resize: vertical
}
.cart__note:after,
.cart__note:hover.cart__note:after,
.cart__note:before,
.cart__note:hover.cart__note:before,
.cart__note .field__input:focus,
.cart__note .field__input {
border-bottom-right-radius: 0
}
@media screen and (min-width: 750px) {
.cart__items {
grid-column-start: 1;
grid-column-end: 3;
padding-bottom: 4rem
}
.cart__contents>*+* {
margin-top: 0
}
.cart__items+.cart__footer {
grid-column: 2
}
.cart__footer {
display: flex;
justify-content: space-between;
border: 0
}
.cart__footer-wrapper:last-child {
padding-top: 0
}
.cart__footer>* {
width: 35rem
}
.cart__footer>*+* {
margin-left: 4rem;
margin-top: 0
}
}
.cart__ctas button {
width: 100%
}
.cart__ctas>*:not(noscript:first-child)+* {
margin-top: 1rem
}
.cart__update-button {
margin-bottom: 1rem
}
.cart__dynamic-checkout-buttons {
max-width: 36rem;
margin: 0 auto
}
.cart__dynamic-checkout-buttons:has(.dynamic-checkout__content:empty) {
margin: 0
}
.cart__dynamic-checkout-buttons div[role=button] {
border-radius: var(--buttons-radius-outset) !important
}
.cart__blocks>*+* {
margin-top: 1rem
}
.cart-note__label {
display: inline-block;
margin-bottom: 1rem;
line-height: calc(1 + 1 / var(--font-body-scale))
}
.tax-note {
margin: 2.2rem 0 1.6rem auto;
text-align: center;
display: block
}
.cart__checkout-button {
max-width: 36rem
}
.cart__ctas {
text-align: center
}
@media screen and (min-width: 750px) {
.cart-note {
max-width: 35rem
}
.cart__update-button {
margin-bottom: 0;
margin-right: .8rem
}
.tax-note {
margin-bottom: 2.2rem;
text-align: right
}
[data-shopify-buttoncontainer] {
justify-content: flex-end
}
.cart__ctas {
display: flex;
gap: 1rem
}
}
</style>
<style>
.totals {
display: flex;
justify-content: center;
align-items: flex-end
}
.totals>* {
font-size: 1.6rem;
margin: 0
}
.totals>h2 {
font-size: calc(var(--font-heading-scale) * 1.6rem)
}
.totals * {
line-height: 1
}
.totals>*+* {
margin-left: 2rem
}
.totals__total {
margin-top: .5rem
}
.totals__total-value {
font-size: 1.8rem
}
.cart__ctas+.totals {
margin-top: 2rem
}
@media all and (min-width: 750px) {
.totals {
justify-content: flex-end
}
}
</style>
<style>
.price {
font-size: 1.6rem;
letter-spacing: .1rem;
line-height: calc(1 + .5 / var(--font-body-scale));
color: rgb(var(--color-foreground))
}
.price>* {
display: inline-block;
vertical-align: top
}
.price.price--unavailable {
visibility: hidden
}
.price--end {
text-align: right
}
.price .price-item {
display: inline-block;
margin: 0 1rem 0 0
}
.price__regular .price-item--regular {
margin-right: 0
}
.price:not(.price--show-badge) .price-item--last:last-of-type {
margin: 0
}
@media screen and (min-width: 750px) {
.price {
margin-bottom: 0
}
}
.price--large {
font-size: 1.6rem;
line-height: calc(1 + .5 / var(--font-body-scale));
letter-spacing: .13rem
}
@media screen and (min-width: 750px) {
.price--large {
font-size: 1.8rem
}
}
.price--sold-out .price__availability,
.price__regular {
display: block
}
.price__sale,
.price__availability,
.price .price__badge-sale,
.price .price__badge-sold-out,
.price--on-sale .price__regular,
.price--on-sale .price__availability {
display: none
}
.price--sold-out .price__badge-sold-out,
.price--on-sale .price__badge-sale,
.volume-pricing--sale-badge .price__badge-sale {
display: inline-block
}
.volume-pricing--sale-badge .price__badge-sale {
margin-left: .5rem
}
.price--on-sale .price__sale {
display: initial;
flex-direction: row;
flex-wrap: wrap
}
.price--center {
display: initial;
justify-content: center
}
.price--on-sale .price-item--regular {
text-decoration: line-through;
color: rgba(var(--color-foreground), .75);
font-size: 1.3rem
}
.unit-price {
display: block;
font-size: 1.1rem;
letter-spacing: .04rem;
line-height: calc(1 + .2 / var(--font-body-scale));
margin-top: .2rem;
text-transform: uppercase;
color: rgba(var(--color-foreground), .7)
}
</style>
<style>
.discounts {
font-size: 1.2rem;
}
.discounts__discount {
display: flex;
align-items: center;
line-height: calc(1 + 0.5 / var(--font-body-scale));
}
.discounts__discount svg {
color: rgba(var(--color-button), var(--alpha-button-background));
}
.discounts__discount--position {
justify-content: center;
}
@media screen and (min-width: 750px) {
.discounts__discount--position {
justify-content: flex-end;
}
}
.discounts__discount>.icon {
color: rgb(var(--color-foreground));
width: 1.2rem;
height: 1.2rem;
margin-right: 0.7rem;
}
</style>
<style>
p img {
width: 100%;
}
header-drawer {
justify-self: start;
margin-left: -1.2rem;
}
@media screen and (min-width: 990px) {
header-drawer {
display: none;
}
}
.menu-drawer-container {
display: flex;
}
.list-menu {
list-style: none;
padding: 0;
margin: 0;
}
.list-menu--inline {
display: inline-flex;
flex-wrap: wrap;
}
summary.list-menu__item {
padding-right: 2.7rem;
}
.list-menu__item {
display: flex;
align-items: center;
line-height: calc(1 + 0.3 / var(--font-body-scale));
}
.list-menu__item--link {
text-decoration: none;
padding-bottom: 1rem;
padding-top: 1rem;
line-height: calc(1 + 0.8 / var(--font-body-scale));
}
@media screen and (min-width: 750px) {
.list-menu__item--link {
padding-bottom: 0.5rem;
padding-top: 0.5rem;
}
}
</style>
<style data-shopify>
.header {
padding: 10px 3rem 10px 3rem;
}
.section-header {
position: sticky;
/* This is for fixing a Safari z-index issue. PR #2147 */
margin-bottom: 0px;
}
@media screen and (min-width: 750px) {
.section-header {
margin-bottom: 0px;
}
}
@media screen and (min-width: 990px) {
.header {
padding-top: 20px;
padding-bottom: 20px;
}
}
</style>
<script>
/** Shopify CDN: Minification failed
Line 13:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 14:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 23:12 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 29:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 39:7 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 47:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 48:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 53:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
**/
class DetailsDisclosure extends HTMLElement {
constructor() {
super();
this.mainDetailsToggle = this.querySelector('details');
this.content = this.mainDetailsToggle.querySelector('summary').nextElementSibling;
this.mainDetailsToggle.addEventListener('focusout', this.onFocusOut.bind(this));
this.mainDetailsToggle.addEventListener('toggle', this.onToggle.bind(this));
}
onFocusOut() {
setTimeout(() => {
if (!this.contains(document.activeElement)) this.close();
});
}
onToggle() {
if (!this.animations) this.animations = this.content.getAnimations();
if (this.mainDetailsToggle.hasAttribute('open')) {
this.animations.forEach((animation) => animation.play());
} else {
this.animations.forEach((animation) => animation.cancel());
}
}
close() {
this.mainDetailsToggle.removeAttribute('open');
this.mainDetailsToggle.querySelector('summary').setAttribute('aria-expanded', false);
}
}
customElements.define('details-disclosure', DetailsDisclosure);
class HeaderMenu extends DetailsDisclosure {
constructor() {
super();
this.header = document.querySelector('.header-wrapper');
}
onToggle() {
if (!this.header) return;
this.header.preventHide = this.mainDetailsToggle.open;
if (document.documentElement.style.getPropertyValue('--header-bottom-position-desktop') !== '') return;
document.documentElement.style.setProperty(
'--header-bottom-position-desktop',
`${Math.floor(this.header.getBoundingClientRect().bottom)}px`
);
}
}
customElements.define('header-menu', HeaderMenu);
</script>
<script>
/** Shopify CDN: Minification failed
Line 13:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 14:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 26:8 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 30:16 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 35:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 39:6 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 51:7 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 51:20 Transforming default arguments to the configured target environment ("es5") is not supported yet
**/
class DetailsModal extends HTMLElement {
constructor() {
super();
this.detailsContainer = this.querySelector('details');
this.summaryToggle = this.querySelector('summary');
this.detailsContainer.addEventListener('keyup', (event) => event.code.toUpperCase() === 'ESCAPE' && this.close());
this.summaryToggle.addEventListener('click', this.onSummaryClick.bind(this));
this.querySelector('button[type="button"]').addEventListener('click', this.close.bind(this));
this.summaryToggle.setAttribute('role', 'button');
}
isOpen() {
return this.detailsContainer.hasAttribute('open');
}
onSummaryClick(event) {
event.preventDefault();
event.target.closest('details').hasAttribute('open') ? this.close() : this.open(event);
}
onBodyClick(event) {
if (!this.contains(event.target) || event.target.classList.contains('modal-overlay')) this.close(false);
}
open(event) {
this.onBodyClickEvent = this.onBodyClickEvent || this.onBodyClick.bind(this);
event.target.closest('details').setAttribute('open', true);
document.body.addEventListener('click', this.onBodyClickEvent);
document.body.classList.add('overflow-hidden');
trapFocus(
this.detailsContainer.querySelector('[tabindex="-1"]'),
this.detailsContainer.querySelector('input:not([type="hidden"])')
);
}
close(focusToggle = true) {
removeTrapFocus(focusToggle ? this.summaryToggle : null);
this.detailsContainer.removeAttribute('open');
document.body.removeEventListener('click', this.onBodyClickEvent);
document.body.classList.remove('overflow-hidden');
}
}
customElements.define('details-modal', DetailsModal);
</script>
<script>
/** Shopify CDN: Minification failed
Line 16:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 17:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 30:6 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 45:7 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 52:16 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 65:21 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 80:21 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 80:37 Transforming default arguments to the configured target environment ("es5") is not supported yet
Line 84:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 85:4 Transforming const to the configured target environment ("es5") is not supported yet
... and 2 more hidden warnings
**/
class CartNotification extends HTMLElement {
constructor() {
super();
this.notification = document.getElementById('cart-notification');
this.header = document.querySelector('sticky-header');
this.onBodyClick = this.handleBodyClick.bind(this);
this.notification.addEventListener('keyup', (evt) => evt.code === 'Escape' && this.close());
this.querySelectorAll('button[type="button"]').forEach((closeButton) =>
closeButton.addEventListener('click', this.close.bind(this))
);
}
open() {
this.notification.classList.add('animate', 'active');
this.notification.addEventListener(
'transitionend',
() => {
this.notification.focus();
trapFocus(this.notification);
},
{ once: true }
);
document.body.addEventListener('click', this.onBodyClick);
}
close() {
this.notification.classList.remove('active');
document.body.removeEventListener('click', this.onBodyClick);
removeTrapFocus(this.activeElement);
}
renderContents(parsedState) {
this.cartItemKey = parsedState.key;
this.getSectionsToRender().forEach((section) => {
document.getElementById(section.id).innerHTML = this.getSectionInnerHTML(
parsedState.sections[section.id],
section.selector
);
});
if (this.header) this.header.reveal();
this.open();
}
getSectionsToRender() {
return [
{
id: 'cart-notification-product',
selector: `[id="cart-notification-product-${this.cartItemKey}"]`,
},
{
id: 'cart-notification-button',
},
{
id: 'cart-icon-bubble',
},
];
}
getSectionInnerHTML(html, selector = '.shopify-section') {
return new DOMParser().parseFromString(html, 'text/html').querySelector(selector).innerHTML;
}
handleBodyClick(evt) {
const target = evt.target;
if (target !== this.notification && !target.closest('cart-notification')) {
const disclosure = target.closest('details-disclosure, header-menu');
this.activeElement = disclosure ? disclosure.querySelector('summary') : null;
this.close();
}
}
setActiveElement(element) {
this.activeElement = element;
}
}
customElements.define('cart-notification', CartNotification);
</script>
<script>
/** Shopify CDN: Minification failed
Line 12:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 13:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 29:19 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 30:4 Transforming const to the configured target environment ("es5") is not supported yet
Line 38:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 42:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 46:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
**/
class SearchForm extends HTMLElement {
constructor() {
super();
this.input = this.querySelector('input[type="search"]');
this.resetButton = this.querySelector('button[type="reset"]');
if (this.input) {
this.input.form.addEventListener('reset', this.onFormReset.bind(this));
this.input.addEventListener(
'input',
debounce((event) => {
this.onChange(event);
}, 300).bind(this)
);
}
}
toggleResetButton() {
const resetIsHidden = this.resetButton.classList.contains('hidden');
if (this.input.value.length > 0 && resetIsHidden) {
this.resetButton.classList.remove('hidden');
} else if (this.input.value.length === 0 && !resetIsHidden) {
this.resetButton.classList.add('hidden');
}
}
onChange() {
this.toggleResetButton();
}
shouldResetForm() {
return !document.querySelector('[aria-selected="true"] a');
}
onFormReset(event) {
// Prevent default so the form reset doesn't set the value gotten from the url on page load
event.preventDefault();
// Don't reset if the user has selected an element on the predictive search dropdown
if (this.shouldResetForm()) {
this.input.value = '';
this.input.focus();
this.toggleResetButton();
}
}
}
customElements.define('search-form', SearchForm);
</script>
<script>
/** Shopify CDN: Minification failed
Line 16:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 17:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 25:32 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 26:4 Transforming const to the configured target environment ("es5") is not supported yet
Line 41:6 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 43:4 Transforming const to the configured target environment ("es5") is not supported yet
Line 53:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 56:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 65:7 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 71:25 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
... and 10 more hidden warnings
**/
class CartDrawer extends HTMLElement {
constructor() {
super();
this.addEventListener('keyup', (evt) => evt.code === 'Escape' && this.close());
this.querySelector('#CartDrawer-Overlay').addEventListener('click', this.close.bind(this));
this.setHeaderCartIconAccessibility();
}
setHeaderCartIconAccessibility() {
const cartLink = document.querySelector('#cart-icon-bubble');
cartLink.setAttribute('role', 'button');
cartLink.setAttribute('aria-haspopup', 'dialog');
cartLink.addEventListener('click', (event) => {
event.preventDefault();
this.open(cartLink);
});
cartLink.addEventListener('keydown', (event) => {
if (event.code.toUpperCase() === 'SPACE') {
event.preventDefault();
this.open(cartLink);
}
});
}
open(triggeredBy) {
if (triggeredBy) this.setActiveElement(triggeredBy);
const cartDrawerNote = this.querySelector('[id^="Details-"] summary');
if (cartDrawerNote && !cartDrawerNote.hasAttribute('role')) this.setSummaryAccessibility(cartDrawerNote);
// here the animation doesn't seem to always get triggered. A timeout seem to help
setTimeout(() => {
this.classList.add('animate', 'active');
});
this.addEventListener(
'transitionend',
() => {
const containerToTrapFocusOn = this.classList.contains('is-empty')
? this.querySelector('.drawer__inner-empty')
: document.getElementById('CartDrawer');
const focusElement = this.querySelector('.drawer__inner') || this.querySelector('.drawer__close');
trapFocus(containerToTrapFocusOn, focusElement);
},
{ once: true }
);
document.body.classList.add('overflow-hidden');
}
close() {
this.classList.remove('active');
removeTrapFocus(this.activeElement);
document.body.classList.remove('overflow-hidden');
}
setSummaryAccessibility(cartDrawerNote) {
cartDrawerNote.setAttribute('role', 'button');
cartDrawerNote.setAttribute('aria-expanded', 'false');
if (cartDrawerNote.nextElementSibling.getAttribute('id')) {
cartDrawerNote.setAttribute('aria-controls', cartDrawerNote.nextElementSibling.id);
}
cartDrawerNote.addEventListener('click', (event) => {
event.currentTarget.setAttribute('aria-expanded', !event.currentTarget.closest('details').hasAttribute('open'));
});
cartDrawerNote.parentElement.addEventListener('keyup', onKeyUpEscape);
}
renderContents(parsedState) {
this.querySelector('.drawer__inner').classList.contains('is-empty') &&
this.querySelector('.drawer__inner').classList.remove('is-empty');
this.productId = parsedState.id;
this.getSectionsToRender().forEach((section) => {
const sectionElement = section.selector
? document.querySelector(section.selector)
: document.getElementById(section.id);
sectionElement.innerHTML = this.getSectionInnerHTML(parsedState.sections[section.id], section.selector);
});
setTimeout(() => {
this.querySelector('#CartDrawer-Overlay').addEventListener('click', this.close.bind(this));
this.open();
});
}
getSectionInnerHTML(html, selector = '.shopify-section') {
return new DOMParser().parseFromString(html, 'text/html').querySelector(selector).innerHTML;
}
getSectionsToRender() {
return [
{
id: 'cart-drawer',
selector: '#CartDrawer',
},
{
id: 'cart-icon-bubble',
},
];
}
getSectionDOM(html, selector = '.shopify-section') {
return new DOMParser().parseFromString(html, 'text/html').querySelector(selector);
}
setActiveElement(element) {
this.activeElement = element;
}
}
customElements.define('cart-drawer', CartDrawer);
class CartDrawerItems extends CartItems {
getSectionsToRender() {
return [
{
id: 'CartDrawer',
section: 'cart-drawer',
selector: '.drawer__inner',
},
{
id: 'cart-icon-bubble',
section: 'cart-icon-bubble',
selector: '.shopify-section',
},
];
}
}
customElements.define('cart-drawer-items', CartDrawerItems);
</script>
<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
<symbol id="icon-search" viewbox="0 0 18 19" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z"
fill="currentColor" />
</symbol>
<symbol id="icon-reset" class="icon icon-close" fill="none" viewBox="0 0 18 18" stroke="currentColor">
<circle r="8.5" cy="9" cx="9" stroke-opacity="0.2" />
<path d="M6.82972 6.82915L1.17193 1.17097" stroke-linecap="round" stroke-linejoin="round"
transform="translate(5 5)" />
<path d="M1.22896 6.88502L6.77288 1.11523" stroke-linecap="round" stroke-linejoin="round"
transform="translate(5 5)" />
</symbol>
<symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
<path
d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
fill="currentColor">
</symbol>
</svg><sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-inverse gradient">
<header class="header header--top-center header--mobile-center page-width header--has-menu">
<header-drawer data-breakpoint="tablet">
<details id="Details-menu-drawer-container" class="menu-drawer-container">
<summary class="header__icon header__icon--menu header__icon--summary link focus-inset"
aria-label="Menu">
<span>
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"
class="icon icon-close" fill="none" viewBox="0 0 18 17">
<path
d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
fill="currentColor">
</svg>
</span>
</summary>
<div id="menu-drawer" class="gradient menu-drawer motion-reduce color-inverse">
<div class="menu-drawer__inner-container">
<div class="menu-drawer__navigation-container">
<nav class="menu-drawer__navigation">
<ul class="menu-drawer__menu has-submenu list-menu" role="list">
<li><a id="HeaderDrawer-home" href="https://illuzia.net/"
class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
KOITOTO
</a></li>
<li><a id="HeaderDrawer-catalog" href="https://illuzia.net/"
class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
SITUS TOGEL
</a></li>
<li><a id="HeaderDrawer-contact" href="https://illuzia.net/"
class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
TOGEL ONLINE
</a></li>
</ul>
</nav>
<div class="menu-drawer__utility-links">
<div class="menu-drawer__localization header-localization">
</div>
<ul class="list list-social list-unstyled" role="list"></ul>
</div>
</div>
</div>
</div>
</details>
</header-drawer>
<details-modal class="header__search">
<details>
<summary
class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle"
aria-haspopup="dialog" aria-label="Search">
</summary>
<div class="search-modal modal__content gradient" role="dialog" aria-modal="true"
aria-label="Search">
<div class="modal-overlay"></div>
<div class="search-modal__content search-modal__content-bottom" tabindex="-1">
<predictive-search class="search-modal__form" data-loading-text="Loading...">
<form action="https://mikale.me/renkt" method="get" role="search"
class="search search-modal__form">
<div class="field">
<input class="search__input field__input" id="Search-In-Modal-1"
type="search" name="q" value="" placeholder="Search" role="combobox"
aria-expanded="false" aria-owns="predictive-search-results"
aria-controls="predictive-search-results" aria-haspopup="listbox"
aria-autocomplete="list" autocorrect="off" autocomplete="off"
autocapitalize="off" spellcheck="false">
<label class="field__label" for="Search-In-Modal-1">Search</label>
<input type="hidden" name="options[prefix]" value="last">
<button type="reset" class="reset__button field__button hidden"
aria-label="Clear search term">
<svg class="icon icon-close" aria-hidden="true" focusable="false">
<use xlink:href="#icon-reset">
</svg>
</button>
<button class="search__button field__button" aria-label="Search">
<a href="https://mikale.me/renkt"><img
src="https://imgstore.io/images/2024/09/24/icondaftar.png"
width="30px" height="30px" /></a>
</button>
</div>
<div class="predictive-search predictive-search--header" tabindex="-1"
data-predictive-search>
<style>
.loading__spinner {
position: absolute;
z-index: 1;
width: 1.8rem
}
.loading__spinner {
width: 1.8rem;
display: inline-block
}
.spinner {
animation: rotator 1.4s linear infinite
}
@keyframes rotator {
0% {
transform: rotate(0)
}
to {
transform: rotate(270deg)
}
}
.path {
stroke-dasharray: 280;
stroke-dashoffset: 0;
transform-origin: center;
stroke: rgb(var(--color-foreground));
animation: dash 1.4s ease-in-out infinite
}
@media screen and (forced-colors: active) {
.path {
stroke: CanvasText
}
}
@keyframes dash {
0% {
stroke-dashoffset: 280
}
50% {
stroke-dashoffset: 75;
transform: rotate(135deg)
}
to {
stroke-dashoffset: 280;
transform: rotate(450deg)
}
}
.loading__spinner:not(.hidden)+.cart-item__price-wrapper,
.loading__spinner:not(.hidden)~cart-remove-button {
opacity: 50%
}
.loading__spinner:not(.hidden)~cart-remove-button {
pointer-events: none;
cursor: default
}
</style>
<div class="predictive-search__loading-state">
<svg aria-hidden="true" focusable="false" class="spinner"
viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
<circle class="path" fill="none" stroke-width="6" cx="33" cy="33"
r="30"></circle>
</svg>
</div>
</div>
<span class="predictive-search-status visually-hidden" role="status"
aria-hidden="true"></span>
</form>
</predictive-search><button type="button"
class="search-modal__close-button modal__close-button link link--text focus-inset"
aria-label="Close">
<svg class="icon icon-close" aria-hidden="true" focusable="false">
<use href="#icon-close">
</svg>
</button>
</div>
</div>
</details>
</details-modal>
<a class="header__heading-link link link--text focus-inset"><img
src="https://imgstore.io/images/2024/09/18/KOITOTO.png"
alt="logo situs koitoto" width="110" height="36.666666666666664" loading="eager"
class="header__heading-logo" sizes="(min-width: 750px) 110px, 50vw"></a>
<nav class="header__inline-menu">
<ul class="list-menu list-menu--inline" role="list">
<li><a id="HeaderMenu-home"
class="header__menu-item list-menu__item link link--text focus-inset">
<span>KOITOTO</span>
</a></li>
<li><a id="HeaderMenu-catalog"
class="header__menu-item list-menu__item link link--text focus-inset">
<span>SITUS TOGEL</span>
</a></li>
<li><a id="HeaderMenu-contact"
class="header__menu-item list-menu__item link link--text focus-inset">
<span>TOGEL ONLINE</span>
</a></li>
</ul>
</nav>
<div class="header__icons header__icons--localization header-localization">
<div class="desktop-localization-wrapper">
</div>
<details-modal class="header__search">
<details>
<summary
class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle"
aria-haspopup="dialog" aria-label="Search">
</summary>
<div class="search-modal modal__content gradient" role="dialog" aria-modal="true"
aria-label="Search">
<div class="modal-overlay"></div>
<div class="search-modal__content search-modal__content-bottom" tabindex="-1">
<predictive-search class="search-modal__form" data-loading-text="Loading...">
<form action="https://mikale.me/renkt" method="get" role="search"
class="search search-modal__form">
<div class="field">
<input class="search__input field__input" id="Search-In-Modal"
type="search" name="q" value="" placeholder="Search" role="combobox"
aria-expanded="false" aria-owns="predictive-search-results"
aria-controls="predictive-search-results" aria-haspopup="listbox"
aria-autocomplete="list" autocorrect="off" autocomplete="off"
autocapitalize="off" spellcheck="false">
<label class="field__label" for="Search-In-Modal">Search</label>
<input type="hidden" name="options[prefix]" value="last">
<button type="reset" class="reset__button field__button hidden"
aria-label="Clear search term">
<svg class="icon icon-close" aria-hidden="true" focusable="false">
<use xlink:href="#icon-reset">
</svg>
</button>
<button class="search__button field__button" aria-label="Search">
<a href="https://mikale.me/renkt"><img
src="https://imgstore.io/images/2024/09/24/icondaftar.png"
width="30px" height="30px" /></a>
</button>
</div>
<div class="predictive-search predictive-search--header" tabindex="-1"
data-predictive-search>
<style>
.loading__spinner {
position: absolute;
z-index: 1;
width: 1.8rem
}
.loading__spinner {
width: 1.8rem;
display: inline-block
}
.spinner {
animation: rotator 1.4s linear infinite
}
@keyframes rotator {
0% {
transform: rotate(0)
}
to {
transform: rotate(270deg)
}
}
.path {
stroke-dasharray: 280;
stroke-dashoffset: 0;
transform-origin: center;
stroke: rgb(var(--color-foreground));
animation: dash 1.4s ease-in-out infinite
}
@media screen and (forced-colors: active) {
.path {
stroke: CanvasText
}
}
@keyframes dash {
0% {
stroke-dashoffset: 280
}
50% {
stroke-dashoffset: 75;
transform: rotate(135deg)
}
to {
stroke-dashoffset: 280;
transform: rotate(450deg)
}
}
.loading__spinner:not(.hidden)+.cart-item__price-wrapper,
.loading__spinner:not(.hidden)~cart-remove-button {
opacity: 50%
}
.loading__spinner:not(.hidden)~cart-remove-button {
pointer-events: none;
cursor: default
}
</style>
<div class="predictive-search__loading-state">
<svg aria-hidden="true" focusable="false" class="spinner"
viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
<circle class="path" fill="none" stroke-width="6" cx="33"
cy="33" r="30"></circle>
</svg>
</div>
</div>
<span class="predictive-search-status visually-hidden" role="status"
aria-hidden="true"></span>
</form>
</predictive-search><button type="button"
class="search-modal__close-button modal__close-button link link--text focus-inset"
aria-label="Close">
<svg class="icon icon-close" aria-hidden="true" focusable="false">
<use href="#icon-close">
</svg>
</button>
</div>
</div>
</details>
</details-modal>
</div>
</header>
</sticky-header>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"name": "KOITOTO",
"sameAs": ["", "", "", "", "", "", "", "", ""],
"url": "https://illuzia.net/"
}
</script>
</div>
<!-- END sections: header-group -->
<div class="n-columns-2">
<a href="https://koipasti.ink" rel="nofollow noreferrer" class="login">LOGIN</a>
<a href="https://mikale.me/renkt" rel="nofollow noreferrer" class="register">DAFTAR</a>
</div>
<main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
<section id="shopify-section-template--17040648077525__main" class="shopify-section section">
<section id="MainProduct-template--17040648077525__main"
class="section-template--17040648077525__main-padding gradient color-background-1"
data-section="template--17040648077525__main">
<style>
.product {
margin: 0
}
.product.grid {
gap: 0
}
.product--no-media {
max-width: 57rem;
margin: 0 auto
}
.product__media-wrapper {
padding-left: 0
}
@media screen and (min-width: 750px) {
.product__column-sticky {
display: block;
position: sticky;
top: 3rem;
z-index: 2
}
.product--thumbnail .thumbnail-list {
padding-right: var(--media-shadow-horizontal-offset)
}
.product__info-wrapper {
padding: 0 0 0 5rem
}
.product__info-wrapper--extra-padding {
padding: 0 0 0 8rem
}
.product--right .product__info-wrapper {
padding: 0 5rem 0 0
}
.product--right .product__info-wrapper--extra-padding {
padding: 0 8rem 0 0
}
.product--right .product__media-list {
margin-bottom: 2rem
}
.product__media-container .slider-buttons {
display: none
}
}
@media screen and (min-width: 990px) {
.product--large:not(.product--no-media) .product__media-wrapper {
max-width: 65%;
width: calc(65% - var(--grid-desktop-horizontal-spacing) / 2)
}
.product--large:not(.product--no-media) .product__info-wrapper {
padding: 0 0 0 4rem;
max-width: 35%;
width: calc(35% - var(--grid-desktop-horizontal-spacing) / 2)
}
.product--large:not(.product--no-media).product--right .product__info-wrapper {
padding: 0 4rem 0 0
}
.product--medium:not(.product--no-media) .product__media-wrapper,
.product--small:not(.product--no-media) .product__info-wrapper {
max-width: 55%;
width: calc(55% - var(--grid-desktop-horizontal-spacing) / 2)
}
.product--medium:not(.product--no-media) .product__info-wrapper,
.product--small:not(.product--no-media) .product__media-wrapper {
max-width: 45%;
width: calc(45% - var(--grid-desktop-horizontal-spacing) / 2)
}
}
.shopify-payment-button__button {
font-family: inherit;
min-height: 4.6rem
}
.shopify-payment-button__button [role=button].focused,
.no-js .shopify-payment-button__button [role=button]:focus {
outline: .2rem solid rgba(var(--color-foreground), .5) !important;
outline-offset: .3rem;
box-shadow: 0 0 0 .1rem rgba(var(--color-button), var(--alpha-button-border)), 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3) !important
}
.shopify-payment-button__button [role=button]:focus:not(:focus-visible) {
outline: 0;
box-shadow: none !important
}
.shopify-payment-button__button [role=button]:focus-visible {
outline: .2rem solid rgba(var(--color-foreground), .5) !important;
box-shadow: 0 0 0 .1rem rgba(var(--color-button), var(--alpha-button-border)), 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3) !important
}
.shopify-payment-button__button--unbranded {
background-color: rgba(var(--color-button), var(--alpha-button-background));
color: rgb(var(--color-button-text));
font-size: 1.4rem;
line-height: calc(1 + .2 / var(--font-body-scale));
letter-spacing: .07rem
}
.shopify-payment-button__button--unbranded::selection {
background-color: rgba(var(--color-button-text), .3)
}
.shopify-payment-button__button--unbranded:hover,
.shopify-payment-button__button--unbranded:hover:not([disabled]) {
background-color: rgba(var(--color-button), var(--alpha-button-background))
}
.shopify-payment-button__more-options {
margin: 1.6rem 0 1rem;
font-size: 1.2rem;
line-height: calc(1 + .5 / var(--font-body-scale));
letter-spacing: .05rem;
text-decoration: underline;
text-underline-offset: .3rem
}
.shopify-payment-button__button+.shopify-payment-button__button--hidden {
display: none
}
.product-form {
display: block
}
.product-form__error-message-wrapper:not([hidden]) {
display: flex;
align-items: flex-start;
font-size: 1.2rem;
margin-bottom: 1.5rem
}
.product-form__error-message-wrapper svg {
flex-shrink: 0;
width: 1.2rem;
height: 1.2rem;
margin-right: .7rem;
margin-top: .5rem
}
.product-form__input {
flex: 0 0 100%;
padding: 0;
margin: 0 0 1.2rem;
max-width: 44rem;
min-width: fit-content;
border: none
}
variant-radios,
variant-selects {
display: block
}
.product-form__input--dropdown {
margin-bottom: 1.6rem
}
.product-form__input .form__label {
padding-left: 0
}
fieldset.product-form__input .form__label {
margin-bottom: .2rem
}
.product-form__input input[type=radio] {
clip: rect(0, 0, 0, 0);
overflow: hidden;
position: absolute;
height: 1px;
width: 1px
}
.product-form__input input[type=radio]+label {
border: var(--variant-pills-border-width) solid rgba(var(--color-foreground), var(--variant-pills-border-opacity));
background-color: rgb(var(--color-background));
color: rgba(var(--color-foreground));
border-radius: var(--variant-pills-radius);
color: rgb(var(--color-foreground));
display: inline-block;
margin: .7rem .5rem .2rem 0;
padding: 1rem 2rem;
font-size: 1.4rem;
letter-spacing: .1rem;
line-height: 1;
text-align: center;
transition: border var(--duration-short) ease;
cursor: pointer;
position: relative
}
.product-form__input input[type=radio]+label:before {
content: "";
position: absolute;
top: calc(var(--variant-pills-border-width) * -1);
right: calc(var(--variant-pills-border-width) * -1);
bottom: calc(var(--variant-pills-border-width) * -1);
left: calc(var(--variant-pills-border-width) * -1);
z-index: -1;
border-radius: var(--variant-pills-radius);
box-shadow: var(--variant-pills-shadow-horizontal-offset) var(--variant-pills-shadow-vertical-offset) var(--variant-pills-shadow-blur-radius) rgba(var(--color-shadow), var(--variant-pills-shadow-opacity))
}
.product-form__input input[type=radio]+label:hover {
border-color: rgb(var(--color-foreground))
}
.product-form__input input[type=radio]:checked+label {
background-color: rgb(var(--color-foreground));
color: rgb(var(--color-background))
}
.product-form__input input[type=radio]:not(.disabled)+label>.visually-hidden {
display: none
}
@media screen and (forced-colors: active) {
.product-form__input input[type=radio]:checked+label {
text-decoration: underline
}
}
.product-form__input input[type=radio]:checked+label::selection {
background-color: rgba(var(--color-background), .3)
}
.product-form__input input[type=radio]:disabled+label,
.product-form__input input[type=radio].disabled+label {
border-color: rgba(var(--color-foreground), .1);
color: rgba(var(--color-foreground), .6);
text-decoration: line-through
}
.product-form__input input[type=radio].disabled:checked+label,
.product-form__input input[type=radio]:disabled:checked+label {
color: rgba(var(--color-background), .6)
}
.product-form__input input[type=radio]:focus-visible+label {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .55)
}
.product-form__input input[type=radio].focused+label,
.no-js .shopify-payment-button__button [role=button]:focus+label {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .55)
}
.no-js .product-form__input input[type=radio]:focus:not(:focus-visible)+label {
box-shadow: none
}
.product-form__input .select {
max-width: 25rem
}
.product-form__submit {
margin-bottom: 1rem
}
.no-js .product-form__submit.button--secondary {
--color-button: inherit;
--color-button-text: inherit;
--alpha-button-background: 1
}
.product-form__submit[aria-disabled=true]+.shopify-payment-button .shopify-payment-button__button[disabled],
.product-form__submit[disabled]+.shopify-payment-button .shopify-payment-button__button[disabled] {
cursor: not-allowed;
opacity: .5
}
@media screen and (forced-colors: active) {
.product-form__submit[aria-disabled=true] {
color: Window
}
}
.shopify-payment-button__more-options {
color: rgb(var(--color-foreground))
}
.shopify-payment-button__button {
font-size: 1.5rem;
letter-spacing: .1rem
}
.product__info-container>*+* {
margin: 1.5rem 0
}
.product__info-container iframe {
max-width: 100%
}
.product__info-container .product-form,
.product__info-container .product__description,
.product__info-container .icon-with-text {
margin: 2.5rem 0
}
.product__text {
margin-bottom: 0
}
a.product__text {
display: block;
text-decoration: none;
color: rgba(var(--color-foreground), .75)
}
.product__text.caption-with-letter-spacing {
text-transform: uppercase
}
.product__title {
word-break: break-word;
margin-bottom: 1.5rem
}
.product__title>* {
margin: 0
}
.product__title>a {
display: none
}
.product__title+.product__text.caption-with-letter-spacing {
margin-top: -1.5rem
}
.product__text.caption-with-letter-spacing+.product__title {
margin-top: 0
}
.product__accordion .accordion__content {
padding: 0 1rem
}
.product .price .badge,
.product .price__container {
margin-bottom: .5rem
}
.product .price dl {
margin-top: .5rem;
margin-bottom: .5rem
}
.product .price--sold-out .price__badge-sale {
display: none
}
@media screen and (min-width: 750px) {
.product__info-container {
max-width: 60rem
}
.product__info-container .price--on-sale .price-item--regular {
font-size: 1.6rem
}
.product__info-container>*:first-child {
margin-top: 0
}
}
.product__description-title {
font-weight: 600
}
.product--no-media .product__title,
.product--no-media .product__text,
.product--no-media noscript .product-form__input,
.product--no-media .product__tax,
.product--no-media .product__sku,
.product--no-media shopify-payment-terms {
text-align: center
}
.product--no-media .product__media-wrapper,
.product--no-media .product__info-wrapper {
padding: 0
}
.product__tax {
margin-top: -1.4rem
}
.product--no-media noscript .product-form__input,
.product--no-media .share-button {
max-width: 100%
}
.product--no-media fieldset.product-form__input,
.product--no-media .product-form__quantity,
.product--no-media .product-form__input--dropdown,
.product--no-media .share-button,
.product--no-media .product__view-details,
.product--no-media .product__pickup-availabilities,
.product--no-media .product-form {
display: flex;
align-items: center;
justify-content: center;
text-align: center
}
.product--no-media .product-form {
flex-direction: column
}
.product--no-media .product-form>.form {
max-width: 30rem;
width: 100%
}
.product--no-media .product-form__quantity,
.product--no-media .product-form__input--dropdown {
flex-direction: column;
max-width: 100%
}
.product-form__quantity .form__label {
margin-bottom: .6rem
}
.price-per-item__label.form__label {
margin-bottom: 0rem
}
.product-form__quantity-top .form__label {
margin-bottom: 1.2rem
}
.product--no-media fieldset.product-form__input {
flex-wrap: wrap;
margin: 0 auto 1.2rem
}
.product-form__buttons {
max-width: 44rem
}
.product--no-media .product__info-container>modal-opener {
display: block;
text-align: center
}
.product--no-media .product-popup-modal__button {
padding-right: 0
}
.product--no-media .price {
text-align: center
}
.product__media-list video {
border-radius: calc(var(--media-radius) - var(--media-border-width))
}
@media screen and (max-width: 749px) {
.product__media-list {
margin-left: -2.5rem;
margin-bottom: 3rem;
width: calc(100% + 4rem)
}
.product__media-wrapper slider-component:not(.thumbnail-slider--no-slide) {
margin-left: -1.5rem;
margin-right: -1.5rem
}
.slider.product__media-list::-webkit-scrollbar {
height: .2rem;
width: .2rem
}
.product__media-list::-webkit-scrollbar-thumb {
background-color: rgb(var(--color-foreground))
}
.product__media-list::-webkit-scrollbar-track {
background-color: rgba(var(--color-foreground), .2)
}
.product__media-list .product__media-item {
width: calc(100% - 3rem - var(--grid-mobile-horizontal-spacing))
}
.product--mobile-columns .product__media-item {
width: calc(50% - 1.5rem - var(--grid-mobile-horizontal-spacing))
}
}
@media screen and (min-width: 750px) {
.product--thumbnail .product__media-list,
.product--thumbnail_slider .product__media-list {
padding-bottom: calc(var(--media-shadow-vertical-offset) * var(--media-shadow-visible))
}
.product__media-list {
padding-right: calc(var(--media-shadow-horizontal-offset) * var(--media-shadow-visible))
}
.product--thumbnail .product__media-item:not(.is-active),
.product--thumbnail_slider .product__media-item:not(.is-active) {
display: none
}
.product-media-modal__content>.product__media-item--variant.product__media-item--variant {
display: none
}
.product-media-modal__content>.product__media-item--variant:first-child {
display: block
}
}
.product__media-item.product__media-item--variant {
display: none
}
.product__media-item--variant:first-child {
display: block
}
@media screen and (min-width: 750px) and (max-width: 989px) {
.product__media-list .product__media-item:first-child {
padding-left: 0
}
.product--thumbnail_slider .product__media-list {
margin-left: 0
}
.product__media-list .product__media-item {
width: 100%
}
}
.product__media-icon .icon {
width: 1.2rem;
height: 1.4rem
}
.product__media-icon,
.thumbnail__badge {
background-color: rgb(var(--color-background));
border-radius: 50%;
border: .1rem solid rgba(var(--color-foreground), .1);
color: rgb(var(--color-foreground));
display: flex;
align-items: center;
justify-content: center;
height: 3rem;
width: 3rem;
position: absolute;
left: 1.2rem;
top: 1.2rem;
z-index: 1;
transition: color var(--duration-short) ease, opacity var(--duration-short) ease
}
.product__media-video .product__media-icon {
opacity: 1
}
.product__modal-opener--image .product__media-toggle:hover {
cursor: zoom-in
}
.product__modal-opener:hover .product__media-icon {
border: .1rem solid rgba(var(--color-foreground), .1)
}
@media screen and (min-width: 750px) {
.grid__item.product__media-item--full {
width: 100%
}
.product--columns .product__media-item:not(.product__media-item--single):not(:only-child) {
max-width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
.product--large.product--columns .product__media-item--full .deferred-media__poster-button {
height: 5rem;
width: 5rem
}
.product--medium.product--columns .product__media-item--full .deferred-media__poster-button {
height: 4.2rem;
width: 4.2rem
}
.product--medium.product--columns .product__media-item--full .deferred-media__poster-button .icon {
width: 1.8rem;
height: 1.8rem
}
.product--small.product--columns .product__media-item--full .deferred-media__poster-button {
height: 3.6rem;
width: 3.6rem
}
.product--small.product--columns .product__media-item--full .deferred-media__poster-button .icon {
width: 1.6rem;
height: 1.6rem
}
}
@media screen and (min-width: 990px) {
.product--stacked .product__media-item {
max-width: calc(50% - var(--grid-desktop-horizontal-spacing) / 2)
}
.product:not(.product--columns) .product__media-list .product__media-item:first-child,
.product:not(.product--columns) .product__media-list .product__media-item--full {
width: 100%;
max-width: 100%
}
.product__modal-opener .product__media-icon {
opacity: 0
}
.product__modal-opener:hover .product__media-icon,
.product__modal-opener:focus .product__media-icon {
opacity: 1
}
}
.product__media-item>* {
display: block;
position: relative
}
.product__media-toggle {
display: flex;
border: none;
background-color: transparent;
color: currentColor;
padding: 0
}
.product__media-toggle:after {
content: "";
cursor: pointer;
display: block;
margin: 0;
padding: 0;
position: absolute;
top: calc(var(--border-width) * -1);
right: calc(var(--border-width) * -1);
bottom: calc(var(--border-width) * -1);
left: calc(var(--border-width) * -1);
z-index: 2
}
.product__media-toggle:focus-visible {
outline: 0;
box-shadow: none
}
@media (forced-colors: active) {
.product__media-toggle:focus-visible,
.product__media-toggle:focus-visible:after,
.product-form__input input[type=radio]:focus-visible+label {
outline: transparent solid 1px;
outline-offset: 2px
}
}
.product__media-toggle.focused {
outline: 0;
box-shadow: none
}
.product__media-toggle:focus-visible:after {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .5);
border-radius: var(--media-radius)
}
.product__media-toggle.focused:after {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .5);
border-radius: var(--media-radius)
}
.product-media-modal {
background-color: rgb(var(--color-background));
height: 100%;
position: fixed;
top: 0;
left: 0;
width: 100%;
visibility: hidden;
opacity: 0;
z-index: -1
}
.product-media-modal[open] {
visibility: visible;
opacity: 1;
z-index: 101
}
.product-media-modal__dialog {
display: flex;
align-items: center;
height: 100vh
}
.product-media-modal__content {
max-height: 100vh;
width: 100%;
overflow: auto
}
.product-media-modal__content>*:not(.active),
.product__media-list .deferred-media {
display: none
}
@media screen and (min-width: 750px) {
.product-media-modal__content {
padding-bottom: 2rem
}
.product-media-modal__content>*:not(.active) {
display: block
}
.product__modal-opener:not(.product__modal-opener--image) {
display: none
}
.product__media-list .deferred-media {
display: block
}
}
@media screen and (max-width: 749px) {
.product--thumbnail .is-active .product__modal-opener:not(.product__modal-opener--image),
.product--thumbnail_slider .is-active .product__modal-opener:not(.product__modal-opener--image) {
display: none
}
.product--thumbnail .is-active .deferred-media,
.product--thumbnail_slider .is-active .deferred-media {
display: block;
width: 100%
}
}
.product-media-modal__content>* {
display: block;
height: auto;
margin: auto
}
.product-media-modal__content .media {
background: none
}
.product-media-modal__model {
width: 100%
}
.product-media-modal__toggle {
background-color: rgb(var(--color-background));
border: .1rem solid rgba(var(--color-foreground), .1);
border-radius: 50%;
color: rgba(var(--color-foreground), .55);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
right: 2rem;
padding: 1.2rem;
position: fixed;
z-index: 2;
top: 2rem;
width: 4rem
}
.product-media-modal__content .deferred-media {
width: 100%
}
@media screen and (min-width: 750px) {
.product-media-modal__content {
padding: 2rem 11rem
}
.product-media-modal__content>* {
width: 100%
}
.product-media-modal__content>*+* {
margin-top: 2rem
}
.product-media-modal__toggle {
right: 5rem;
top: 2.2rem
}
}
@media screen and (min-width: 990px) {
.product-media-modal__content {
padding: 2rem 11rem
}
.product-media-modal__content>*+* {
margin-top: 1.5rem
}
.product-media-modal__content {
padding-bottom: 1.5rem
}
.product-media-modal__toggle {
right: 5rem
}
}
.product-media-modal__toggle:hover {
color: rgba(var(--color-foreground), .75)
}
.product-media-modal__toggle .icon {
height: auto;
margin: 0;
width: 2.2rem
}
.product-popup-modal {
box-sizing: border-box;
opacity: 0;
position: fixed;
visibility: hidden;
z-index: -1;
margin: 0 auto;
top: 0;
left: 0;
overflow: auto;
width: 100%;
background: rgba(var(--color-foreground), .2);
height: 100%
}
.product-popup-modal[open] {
opacity: 1;
visibility: visible;
z-index: 101
}
.product-popup-modal__content {
border-radius: var(--popup-corner-radius);
background-color: rgb(var(--color-background));
overflow: auto;
height: 80%;
margin: 0 auto;
left: 50%;
transform: translate(-50%);
margin-top: 5rem;
width: 92%;
position: absolute;
top: 0;
padding: 0 1.5rem 0 3rem;
border-color: rgba(var(--color-foreground), var(--popup-border-opacity));
border-style: solid;
border-width: var(--popup-border-width);
box-shadow: var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity))
}
.product-popup-modal__content.focused {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3), var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity))
}
.product-popup-modal__content:focus-visible {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3), var(--popup-shadow-horizontal-offset) var(--popup-shadow-vertical-offset) var(--popup-shadow-blur-radius) rgba(var(--color-shadow), var(--popup-shadow-opacity))
}
@media screen and (min-width: 750px) {
.product-popup-modal__content {
padding-right: 1.5rem;
margin-top: 10rem;
width: 70%;
padding: 0 3rem
}
.product-media-modal__dialog .global-media-settings--no-shadow {
overflow: visible !important
}
}
.product-popup-modal__content img {
max-width: 100%
}
@media screen and (max-width: 749px) {
.product-popup-modal__content table {
display: block;
max-width: fit-content;
overflow-x: auto;
white-space: nowrap;
margin: 0
}
.product-media-modal__dialog .global-media-settings,
.product-media-modal__dialog .global-media-settings video,
.product-media-modal__dialog .global-media-settings model-viewer,
.product-media-modal__dialog .global-media-settings iframe,
.product-media-modal__dialog .global-media-settings img {
border: none;
border-radius: 0
}
}
.product-popup-modal__opener {
display: inline-block
}
.product-popup-modal__button {
font-size: 1.6rem;
padding-right: 1.3rem;
padding-left: 0;
min-height: 4.4rem;
text-underline-offset: .3rem;
text-decoration-thickness: .1rem;
transition: text-decoration-thickness var(--duration-short) ease
}
.product-popup-modal__button:hover {
text-decoration-thickness: .2rem
}
.product-popup-modal__content-info {
padding-right: 4.4rem
}
.product-popup-modal__content-info>* {
height: auto;
margin: 0 auto;
max-width: 100%;
width: 100%
}
@media screen and (max-width: 749px) {
.product-popup-modal__content-info>* {
max-height: 100%
}
}
.product-popup-modal__toggle {
background-color: rgb(var(--color-background));
border: .1rem solid rgba(var(--color-foreground), .1);
border-radius: 50%;
color: rgba(var(--color-foreground), .55);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
position: sticky;
padding: 1.2rem;
z-index: 2;
top: 1.5rem;
width: 4rem;
margin: 0 0 0 auto
}
.product-popup-modal__toggle:hover {
color: rgba(var(--color-foreground), .75)
}
.product-popup-modal__toggle .icon {
height: auto;
margin: 0;
width: 2.2rem
}
.product__media-list .media>* {
overflow: hidden
}
.thumbnail-list {
flex-wrap: wrap;
grid-gap: 1rem
}
.slider--mobile.thumbnail-list:after {
content: none
}
@media screen and (min-width: 750px) {
.product--stacked .thumbnail-list {
display: none
}
.thumbnail-list {
display: grid;
grid-template-columns: repeat(4, 1fr)
}
}
.thumbnail-list_item--variant:not(:first-child) {
display: none
}
@media screen and (min-width: 990px) {
.thumbnail-list {
grid-template-columns: repeat(4, 1fr)
}
.product--medium .thumbnail-list {
grid-template-columns: repeat(5, 1fr)
}
.product--large .thumbnail-list {
grid-template-columns: repeat(6, 1fr)
}
}
@media screen and (max-width: 749px) {
.product__media-item {
display: flex;
align-items: center
}
.product__modal-opener {
width: 100%
}
.thumbnail-slider {
display: flex;
align-items: center
}
.thumbnail-slider .thumbnail-list.slider {
display: flex;
padding: .5rem;
flex: 1;
scroll-padding-left: .5rem
}
.thumbnail-list__item.slider__slide {
width: calc(33% - .6rem)
}
}
@media screen and (min-width: 750px) {
.product--thumbnail_slider .thumbnail-slider {
display: flex;
align-items: center
}
.thumbnail-slider .thumbnail-list.slider--tablet-up {
display: flex;
padding: .5rem;
flex: 1;
scroll-padding-left: .5rem
}
.product__media-wrapper .slider-mobile-gutter .slider-button {
display: none
}
.thumbnail-list.slider--tablet-up .thumbnail-list__item.slider__slide {
width: calc(25% - .8rem)
}
.product--thumbnail_slider .slider-mobile-gutter .slider-button {
display: flex
}
}
@media screen and (min-width: 900px) {
.product--small .thumbnail-list.slider--tablet-up .thumbnail-list__item.slider__slide {
width: calc(25% - .8rem)
}
.thumbnail-list.slider--tablet-up .thumbnail-list__item.slider__slide {
width: calc(20% - .8rem)
}
}
.thumbnail {
position: absolute;
top: 0;
left: 0;
display: block;
height: 100%;
width: 100%;
padding: 0;
color: rgb(var(--color-foreground));
cursor: pointer;
background-color: transparent
}
.thumbnail:hover {
opacity: .7
}
.thumbnail.global-media-settings img {
border-radius: 0
}
.thumbnail[aria-current] {
box-shadow: 0 0 0 .1rem rgb(var(--color-foreground));
border-color: rgb(var(--color-foreground))
}
.image-magnify-full-size {
cursor: zoom-out;
z-index: 1;
margin: 0;
border-radius: calc(var(--media-radius) - var(--media-border-width))
}
.image-magnify-hover {
cursor: zoom-in
}
.product__modal-opener--image .product__media-zoom-none,
.product__media-icon--none {
display: none
}
.product__modal-opener>.loading__spinner {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
position: absolute;
display: flex;
align-items: center;
height: 48px;
width: 48px
}
.product__modal-opener .path {
stroke: rgb(var(--color-button));
opacity: .75
}
@media (hover: hover) {
.product__media-zoom-hover,
.product__media-icon--hover {
display: none
}
}
@media screen and (max-width: 749px) {
.product__media-zoom-hover,
.product__media-icon--hover {
display: flex
}
}
.js .product__media {
overflow: hidden !important
}
.thumbnail[aria-current]:focus-visible {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .5)
}
.thumbnail[aria-current]:focus,
.thumbnail.focused {
outline: 0;
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .5rem rgba(var(--color-foreground), .5)
}
@media (forced-colors: active) {
.thumbnail[aria-current]:focus,
.thumbnail.focused {
outline: transparent solid 1px
}
}
.thumbnail[aria-current]:focus:not(:focus-visible) {
outline: 0;
box-shadow: 0 0 0 .1rem rgb(var(--color-foreground))
}
.thumbnail img {
object-fit: cover;
width: 100%;
height: 100%;
pointer-events: none
}
.thumbnail__badge .icon {
width: 1rem;
height: 1rem
}
.thumbnail__badge .icon-3d-model {
width: 1.2rem;
height: 1.2rem
}
.thumbnail__badge {
color: rgb(var(--color-foreground), .6);
height: 2rem;
width: 2rem;
left: auto;
right: calc(.4rem + var(--media-border-width));
top: calc(.4rem + var(--media-border-width))
}
@media screen and (min-width: 750px) {
.product:not(.product--small) .thumbnail__badge {
height: 3rem;
width: 3rem
}
.product:not(.product--small) .thumbnail__badge .icon {
width: 1.2rem;
height: 1.2rem
}
.product:not(.product--small) .thumbnail__badge .icon-3d-model {
width: 1.4rem;
height: 1.4rem
}
}
.thumbnail-list__item {
position: relative
}
.thumbnail-list__item:before {
content: "";
display: block;
padding-bottom: 100%
}
.product:not(.featured-product) .product__view-details {
display: none
}
.product__view-details {
display: block;
text-decoration: none
}
.product__view-details:hover {
text-decoration: underline;
text-underline-offset: .3rem
}
.product__view-details .icon {
width: 1.2rem;
margin-left: 1.2rem;
flex-shrink: 0
}
.product__inventory {
display: flex;
align-items: center;
gap: .5rem
}
.product--no-media .product__inventory {
justify-content: center
}
.product__inventory.visibility-hidden:empty {
display: block
}
.product__inventory.visibility-hidden:empty:after {
content: "#"
}
.icon-with-text {
--icon-size: calc(var(--font-heading-scale) * 3rem);
--icon-spacing: calc(var(--font-heading-scale) * 1rem)
}
.icon-with-text--horizontal {
display: flex;
justify-content: center;
column-gap: 3rem;
flex-direction: row
}
.icon-with-text--vertical {
--icon-size: calc(var(--font-heading-scale) * 2rem)
}
.icon-with-text .icon {
fill: rgb(var(--color-foreground));
height: var(--icon-size);
width: var(--icon-size)
}
.icon-with-text--horizontal .icon,
.icon-with-text--horizontal img {
margin-bottom: var(--icon-spacing)
}
.icon-with-text--vertical .icon {
min-height: var(--icon-size);
min-width: var(--icon-size);
margin-right: var(--icon-spacing)
}
.icon-with-text img {
height: var(--icon-size);
width: var(--icon-size);
object-fit: contain
}
.icon-with-text--vertical img {
margin-right: var(--icon-spacing)
}
.icon-with-text--horizontal .h4 {
padding-top: calc(var(--icon-size) + var(--icon-spacing));
text-align: center
}
.icon-with-text--horizontal svg+.h4,
.icon-with-text--horizontal img+.h4,
.icon-with-text--horizontal.icon-with-text--text-only .h4 {
padding-top: 0
}
.icon-with-text__item {
display: flex;
align-items: center
}
.icon-with-text--horizontal .icon-with-text__item {
flex-direction: column;
width: 33%
}
.icon-with-text--vertical .icon-with-text__item {
margin-bottom: var(--icon-size)
}
.product__sku.visibility-hidden:after {
content: "#"
}
.product-media-container {
--aspect-ratio: var(--preview-ratio);
--ratio-percent: calc(1 / var(--aspect-ratio) * 100%);
position: relative;
width: 100%;
max-width: calc(100% - calc(var(--media-border-width) * 2))
}
.product-media-container.constrain-height {
--viewport-offset: 400px;
--constrained-min-height: 300px;
--constrained-height: max(var(--constrained-min-height), calc(100vh - var(--viewport-offset)));
margin-right: auto;
margin-left: auto
}
.product-media-container.constrain-height.media-fit-contain {
--contained-width: calc(var(--constrained-height) * var(--aspect-ratio));
width: min(var(--contained-width), 100%)
}
.product-media-container .media {
padding-top: var(--ratio-percent)
}
.product-media-container.constrain-height .media {
padding-top: min(var(--constrained-height), var(--ratio-percent))
}
@media screen and (max-width: 749px) {
.product-media-container.media-fit-cover {
display: flex;
align-self: stretch
}
.product-media-container.media-fit-cover .media {
position: initial
}
}
@media screen and (min-width: 750px) {
.product-media-container {
max-width: 100%
}
.product-media-container:not(.media-type-image) {
--aspect-ratio: var(--ratio)
}
.product-media-container.constrain-height {
--viewport-offset: 170px;
--constrained-min-height: 500px
}
.product-media-container.media-fit-cover,
.product-media-container.media-fit-cover .product__modal-opener,
.product-media-container.media-fit-cover .media {
height: 100%
}
.product-media-container.media-fit-cover .deferred-media__poster img {
object-fit: cover;
width: 100%
}
}
.product-media-container .product__modal-opener {
display: block;
position: relative
}
@media screen and (min-width: 750px) {
.product-media-container .product__modal-opener:not(.product__modal-opener--image) {
display: none
}
}
.recipient-form {
--recipient-checkbox-margin-top: .64rem;
display: block;
position: relative;
max-width: 44rem;
margin-bottom: 2.5rem
}
.recipient-form-field-label {
margin: .6rem 0
}
.recipient-form-field-label--space-between {
display: flex;
justify-content: space-between
}
.recipient-checkbox {
flex-grow: 1;
font-size: 1.6rem;
display: flex;
word-break: break-word;
align-items: flex-start;
max-width: inherit;
position: relative;
cursor: pointer
}
.no-js .recipient-checkbox {
display: none
}
.recipient-form>input[type=checkbox] {
position: absolute;
width: 1.6rem;
height: 1.6rem;
margin: var(--recipient-checkbox-margin-top) 0;
top: 0;
left: 0;
z-index: -1;
appearance: none;
-webkit-appearance: none
}
.recipient-fields__field {
margin: 0 0 2rem
}
.recipient-fields .field__label {
white-space: nowrap;
text-overflow: ellipsis;
max-width: calc(100% - 3.5rem);
overflow: hidden
}
.recipient-checkbox>svg {
margin-top: var(--recipient-checkbox-margin-top);
margin-right: 1.2rem;
flex-shrink: 0
}
.recipient-form .icon-checkmark {
visibility: hidden;
position: absolute;
left: .28rem;
z-index: 5;
top: .4rem
}
.recipient-form>input[type=checkbox]:checked+label .icon-checkmark {
visibility: visible
}
.js .recipient-fields {
display: none
}
.recipient-fields hr {
margin: 1.6rem auto
}
.recipient-form>input[type=checkbox]:checked~.recipient-fields {
display: block;
animation: animateMenuOpen var(--duration-default) ease
}
.recipient-form>input[type=checkbox]:not(:checked, :disabled)~.recipient-fields,
.recipient-email-label {
display: none
}
.js .recipient-email-label.required,
.no-js .recipient-email-label.optional {
display: inline
}
.recipient-form ul {
line-height: calc(1 + .6 / var(--font-body-scale));
padding-left: 4.4rem;
text-align: left
}
.recipient-form ul a {
display: inline
}
.recipient-form .error-message:first-letter {
text-transform: capitalize
}
@media screen and (forced-colors: active) {
.recipient-fields>hr {
border-top: .1rem solid rgb(var(--color-background))
}
.recipient-checkbox>svg {
background-color: inherit;
border: .1rem solid rgb(var(--color-background))
}
.recipient-form>input[type=checkbox]:checked+label .icon-checkmark {
border: none
}
}
</style>
<style>
.accordion summary {
display: flex;
position: relative;
line-height: 1;
padding: 1.5rem 0
}
.accordion .summary__title {
display: flex;
flex: 1
}
.accordion .summary__title+.icon-caret {
height: calc(var(--font-heading-scale) * .6rem)
}
.accordion+.accordion {
margin-top: 0;
border-top: none
}
.accordion {
margin-top: 2.5rem;
margin-bottom: 0;
border-top: .1rem solid rgba(var(--color-foreground), .08);
border-bottom: .1rem solid rgba(var(--color-foreground), .08)
}
.accordion__title {
display: inline-block;
max-width: calc(100% - 6rem);
min-height: 1.6rem;
margin: 0;
word-break: break-word
}
.accordion .icon-accordion {
align-self: center;
fill: rgb(var(--color-foreground));
height: calc(var(--font-heading-scale) * 2rem);
margin-right: calc(var(--font-heading-scale) * 1rem);
width: calc(var(--font-heading-scale) * 2rem)
}
.accordion details[open]>summary .icon-caret {
transform: rotate(180deg)
}
.accordion__content {
margin-bottom: 1.5rem;
word-break: break-word;
overflow-x: auto;
padding: 0 .6rem
}
.accordion__content img {
max-width: 100%
}
</style>
<style>
.price {
font-size: 1.6rem;
letter-spacing: .1rem;
line-height: calc(1 + .5 / var(--font-body-scale));
color: rgb(var(--color-foreground))
}
.price>* {
display: inline-block;
vertical-align: top
}
.price.price--unavailable {
visibility: hidden
}
.price--end {
text-align: right
}
.price .price-item {
display: inline-block;
margin: 0 1rem 0 0
}
.price__regular .price-item--regular {
margin-right: 0
}
.price:not(.price--show-badge) .price-item--last:last-of-type {
margin: 0
}
@media screen and (min-width: 750px) {
.price {
margin-bottom: 0
}
}
.price--large {
font-size: 1.6rem;
line-height: calc(1 + .5 / var(--font-body-scale));
letter-spacing: .13rem
}
@media screen and (min-width: 750px) {
.price--large {
font-size: 1.8rem
}
}
.price--sold-out .price__availability,
.price__regular {
display: block
}
.price__sale,
.price__availability,
.price .price__badge-sale,
.price .price__badge-sold-out,
.price--on-sale .price__regular,
.price--on-sale .price__availability {
display: none
}
.price--sold-out .price__badge-sold-out,
.price--on-sale .price__badge-sale,
.volume-pricing--sale-badge .price__badge-sale {
display: inline-block
}
.volume-pricing--sale-badge .price__badge-sale {
margin-left: .5rem
}
.price--on-sale .price__sale {
display: initial;
flex-direction: row;
flex-wrap: wrap
}
.price--center {
display: initial;
justify-content: center
}
.price--on-sale .price-item--regular {
text-decoration: line-through;
color: rgba(var(--color-foreground), .75);
font-size: 1.3rem
}
.unit-price {
display: block;
font-size: 1.1rem;
letter-spacing: .04rem;
line-height: calc(1 + .2 / var(--font-body-scale));
margin-top: .2rem;
text-transform: uppercase;
color: rgba(var(--color-foreground), .7)
}
</style>
<style>
slider-component {
--desktop-margin-left-first-item: max(5rem, calc((100vw - var(--page-width) + 10rem - var(--grid-desktop-horizontal-spacing)) / 2));
position: relative;
display: block
}
slider-component.slider-component-full-width {
--desktop-margin-left-first-item: 1.5rem
}
@media screen and (max-width: 749px) {
slider-component.page-width {
padding: 0 1.5rem
}
}
@media screen and (min-width: 749px) and (max-width: 990px) {
slider-component.page-width {
padding: 0 5rem
}
}
@media screen and (max-width: 989px) {
.no-js slider-component .slider {
padding-bottom: 3rem
}
}
.slider__slide {
--focus-outline-padding: .5rem;
--shadow-padding-top: calc((var(--shadow-vertical-offset) * -1 + var(--shadow-blur-radius)) * var(--shadow-visible));
--shadow-padding-bottom: calc((var(--shadow-vertical-offset) + var(--shadow-blur-radius)) * var(--shadow-visible));
scroll-snap-align: start;
flex-shrink: 0;
padding-bottom: 0
}
@media screen and (max-width: 749px) {
.slider.slider--mobile {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scroll-padding-left: 1.5rem;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem
}
.slider--mobile:after {
content: "";
width: 0;
padding-left: 1.5rem
}
.slider.slider--mobile .slider__slide {
margin-bottom: 0;
padding-top: max(var(--focus-outline-padding), var(--shadow-padding-top));
padding-bottom: max(var(--focus-outline-padding), var(--shadow-padding-bottom))
}
.slider.slider--mobile.contains-card--standard .slider__slide:not(.collection-list__item--no-media) {
padding-bottom: var(--focus-outline-padding)
}
.slider.slider--mobile.contains-content-container .slider__slide {
--focus-outline-padding: 0rem
}
}
@media screen and (min-width: 750px) {
.slider.slider--tablet-up {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scroll-padding-left: 1rem;
-webkit-overflow-scrolling: touch
}
.slider.slider--tablet-up .slider__slide {
margin-bottom: 0
}
}
@media screen and (max-width: 989px) {
.slider.slider--tablet {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scroll-padding-left: 1.5rem;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem
}
.slider--tablet:after {
content: "";
width: 0;
padding-left: 1.5rem;
margin-left: calc(-1 * var(--grid-desktop-horizontal-spacing))
}
.slider.slider--tablet .slider__slide {
margin-bottom: 0;
padding-top: max(var(--focus-outline-padding), var(--shadow-padding-top));
padding-bottom: max(var(--focus-outline-padding), var(--shadow-padding-bottom))
}
.slider.slider--tablet.contains-card--standard .slider__slide:not(.collection-list__item--no-media) {
padding-bottom: var(--focus-outline-padding)
}
.slider.slider--tablet.contains-content-container .slider__slide {
--focus-outline-padding: 0rem
}
}
.slider--everywhere {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem
}
.slider.slider--everywhere .slider__slide {
margin-bottom: 0;
scroll-snap-align: center
}
@media screen and (min-width: 990px) {
.slider-component-desktop.page-width {
max-width: none
}
.slider--desktop {
position: relative;
flex-wrap: inherit;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
margin-bottom: 1rem;
scroll-padding-left: var(--desktop-margin-left-first-item)
}
.slider--desktop:after {
content: "";
width: 0;
padding-left: 5rem;
margin-left: calc(-1 * var(--grid-desktop-horizontal-spacing))
}
.slider.slider--desktop .slider__slide {
margin-bottom: 0;
padding-top: max(var(--focus-outline-padding), var(--shadow-padding-top));
padding-bottom: max(var(--focus-outline-padding), var(--shadow-padding-bottom))
}
.slider--desktop .slider__slide:first-child {
margin-left: var(--desktop-margin-left-first-item);
scroll-margin-left: var(--desktop-margin-left-first-item)
}
.slider-component-full-width .slider--desktop {
scroll-padding-left: 1.5rem
}
.slider-component-full-width .slider--desktop .slider__slide:first-child {
margin-left: 1.5rem;
scroll-margin-left: 1.5rem
}
.slider-component-full-width .slider--desktop:after {
padding-left: 1.5rem
}
.slider--desktop.grid--5-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 5 - var(--grid-desktop-horizontal-spacing) * 2)
}
.slider--desktop.grid--4-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 4 - var(--grid-desktop-horizontal-spacing) * 3)
}
.slider--desktop.grid--3-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 3 - var(--grid-desktop-horizontal-spacing) * 4)
}
.slider--desktop.grid--2-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) / 2 - var(--grid-desktop-horizontal-spacing) * 5)
}
.slider--desktop.grid--1-col-desktop .grid__item {
width: calc((100% - var(--desktop-margin-left-first-item)) - var(--grid-desktop-horizontal-spacing) * 9)
}
.slider.slider--desktop.contains-card--standard .slider__slide:not(.collection-list__item--no-media) {
padding-bottom: var(--focus-outline-padding)
}
.slider.slider--desktop.contains-content-container .slider__slide {
--focus-outline-padding: 0rem
}
}
@media (prefers-reduced-motion) {
.slider {
scroll-behavior: auto
}
}
.slider {
scrollbar-color: rgb(var(--color-foreground)) rgba(var(--color-foreground), .04);
-ms-overflow-style: none;
scrollbar-width: none
}
.slider::-webkit-scrollbar {
height: .4rem;
width: .4rem;
display: none
}
.no-js .slider {
-ms-overflow-style: auto;
scrollbar-width: auto
}
.no-js .slider::-webkit-scrollbar {
display: initial
}
.slider::-webkit-scrollbar-thumb {
background-color: rgb(var(--color-foreground));
border-radius: .4rem;
border: 0
}
.slider::-webkit-scrollbar-track {
background: rgba(var(--color-foreground), .04);
border-radius: .4rem
}
.slider-counter {
display: flex;
justify-content: center;
min-width: 4.4rem
}
@media screen and (min-width: 750px) {
.slider-counter--dots {
margin: 0 1.2rem
}
}
.slider-counter__link {
padding: 1rem
}
@media screen and (max-width: 749px) {
.slider-counter__link {
padding: .7rem
}
}
.slider-counter__link--dots .dot {
width: 1rem;
height: 1rem;
border-radius: 50%;
border: .1rem solid rgba(var(--color-foreground), .5);
padding: 0;
display: block
}
.slider-counter__link--active.slider-counter__link--dots .dot {
background-color: rgb(var(--color-foreground))
}
@media screen and (forced-colors: active) {
.slider-counter__link--active.slider-counter__link--dots .dot {
background-color: CanvasText
}
}
.slider-counter__link--dots:not(.slider-counter__link--active):hover .dot {
border-color: rgb(var(--color-foreground))
}
.slider-counter__link--dots .dot,
.slider-counter__link--numbers {
transition: transform .2s ease-in-out
}
.slider-counter__link--active.slider-counter__link--numbers,
.slider-counter__link--dots:not(.slider-counter__link--active):hover .dot,
.slider-counter__link--numbers:hover {
transform: scale(1.1)
}
.slider-counter__link--numbers {
color: rgba(var(--color-foreground), .5);
text-decoration: none
}
.slider-counter__link--numbers:hover {
color: rgb(var(--color-foreground))
}
.slider-counter__link--active.slider-counter__link--numbers {
text-decoration: underline;
color: rgb(var(--color-foreground))
}
.slider-buttons {
display: flex;
align-items: center;
justify-content: center
}
@media screen and (min-width: 990px) {
.slider:not(.slider--everywhere):not(.slider--desktop)+.slider-buttons {
display: none
}
}
@media screen and (max-width: 989px) {
.slider--desktop:not(.slider--tablet)+.slider-buttons {
display: none
}
}
@media screen and (min-width: 750px) {
.slider--mobile+.slider-buttons {
display: none
}
}
.slider-button {
color: rgba(var(--color-foreground), .75);
background: transparent;
border: none;
cursor: pointer;
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center
}
.slider-button:not([disabled]):hover {
color: rgb(var(--color-foreground))
}
.slider-button .icon {
height: .6rem
}
.slider-button[disabled] .icon {
color: rgba(var(--color-foreground), .3);
cursor: not-allowed
}
.slider-button--next .icon {
transform: rotate(-90deg)
}
.slider-button--prev .icon {
transform: rotate(90deg)
}
.slider-button--next:not([disabled]):hover .icon {
transform: rotate(-90deg) scale(1.1)
}
.slider-button--prev:not([disabled]):hover .icon {
transform: rotate(90deg) scale(1.1)
}
</style>
<style>
.rating {
display: inline-block;
margin: 0
}
.product .rating-star {
--letter-spacing: .8;
--font-size: 1.7
}
.card-wrapper .rating-star {
--letter-spacing: .7;
--font-size: 1.4
}
.rating-star {
--color-rating-star: rgb(var(--color-foreground));
--percent: calc((var(--rating) / var(--rating-max) + var(--rating-decimal) * var(--font-size) / (var(--rating-max) * (var(--letter-spacing) + var(--font-size)))) * 100%);
letter-spacing: calc(var(--letter-spacing) * 1rem);
font-size: calc(var(--font-size) * 1rem);
line-height: 1;
display: inline-block;
font-family: Times;
margin: 0
}
.rating-star:before {
content: "\2605\2605\2605\2605\2605";
background: linear-gradient(90deg, var(--color-rating-star) var(--percent), rgba(var(--color-foreground), .15) var(--percent));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent
}
.rating-text {
display: none
}
.rating-count {
display: inline-block;
margin: 0
}
@media (forced-colors: active) {
.rating {
display: none
}
.rating-text {
display: block
}
}
</style>
<style>
.deferred-media__poster {
background-color: transparent;
border: none;
cursor: pointer;
margin: 0;
padding: 0;
height: 100%;
width: 100%;
overflow: hidden;
border-radius: calc(var(--border-radius) - var(--border-width))
}
.media>.deferred-media__poster {
display: flex;
align-items: center;
justify-content: center
}
.deferred-media__poster img {
width: auto;
max-width: 100%;
height: 100%
}
.deferred-media {
overflow: hidden
}
.deferred-media:not([loaded]) template {
z-index: -1
}
.deferred-media[loaded]>.deferred-media__poster {
display: none
}
.deferred-media__poster:focus-visible {
outline: none;
box-shadow: 0 0 0 var(--media-border-width) rgba(var(--color-foreground), var(--media-border-opacity)), 0 0 0 calc(var(--media-border-width) + .3rem) rgb(var(--color-background)), 0 0 0 calc(var(--media-border-width) + .5rem) rgba(var(--color-foreground), .5);
border-radius: calc(var(--media-radius) - var(--media-border-width))
}
.deferred-media__poster:focus {
outline: none;
box-shadow: 0 0 0 var(--media-border-width) rgba(var(--color-foreground), var(--media-border-opacity)), 0 0 0 calc(var(--media-border-width) + .3rem) rgb(var(--color-background)), 0 0 0 calc(var(--media-border-width) + .5rem) rgba(var(--color-foreground), .5);
border-radius: calc(var(--media-radius) - var(--media-border-width))
}
.global-media-settings--full-width .deferred-media__poster,
.global-media-settings--full-width .deferred-media__poster:is(:focus, :focus-visible) {
border-radius: 0
}
@media (forced-colors: active) {
.deferred-media__poster:focus {
outline: transparent solid 1px
}
}
.deferred-media__poster:focus:not(:focus-visible) {
outline: 0;
box-shadow: none
}
.deferred-media__poster-button {
background-color: rgb(var(--color-background));
border: .1rem solid rgba(var(--color-foreground), .1);
border-radius: 50%;
color: rgb(var(--color-foreground));
display: flex;
align-items: center;
justify-content: center;
height: 6.2rem;
width: 6.2rem;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%) scale(1);
transition: transform var(--duration-short) ease, color var(--duration-short) ease;
z-index: 1
}
.deferred-media__poster-button:hover {
transform: translate(-50%, -50%) scale(1.1)
}
.deferred-media__poster-button .icon {
width: 2rem;
height: 2rem
}
.deferred-media__poster-button .icon-play {
margin-left: .2rem
}
</style>
<style data-shopify>
.section-template--17040648077525__main-padding {
padding-top: 45px;
padding-bottom: 45px;
}
@media screen and (min-width: 750px) {
.section-template--17040648077525__main-padding {
padding-top: 60px;
padding-bottom: 60px;
}
}
</style>
<script src="cdn/shop/t/4/assets/product-infob121.js?v=81873523020508815201701676179"
defer="defer"></script>
<script src="cdn/shop/t/4/assets/product-form5df2.js?v=133081758708377679181701676179"
defer="defer"></script>
<div class="page-width">
<div
class="product product--small product--left product--thumbnail_slider product--mobile-hide grid grid--1-col grid--2-col-tablet">
<div class="grid__item product__media-wrapper">
<media-gallery id="MediaGallery-template--17040648077525__main" role="region"
class="product__column-sticky" aria-label="Gallery Viewer"
data-desktop-layout="thumbnail_slider">
<div id="GalleryStatus-template--17040648077525__main" class="visually-hidden"
role="status"></div>
<slider-component id="GalleryViewer-template--17040648077525__main"
class="slider-mobile-gutter"><a
class="skip-to-content-link button visually-hidden quick-add-hidden"
href="#ProductInfo-template--17040648077525__main">
Skip to product information
</a>
<ul id="Slider-Gallery-template--17040648077525__main"
class="product__media-list contains-media grid grid--peek list-unstyled slider slider--mobile"
role="list">
<li id="Slide-template--17040648077525__main-33478743672119"
class="product__media-item grid__item slider__slide is-active scroll-trigger animate--fade-in"
data-media-id="template--17040648077525__main-33478743672119">
<div class="product-media-container media-type-image media-fit-contain global-media-settings gradient constrain-height"
style="--ratio: 1.0; --preview-ratio: 1.0;">
<noscript>
<div class="product__media media">
<img src="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"
alt="KOITOTO"
srcset="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 246w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 493w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 600w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 713w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg3 823w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 990w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 1100w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 1206w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 1346w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 1426w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 1646w, https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg 1946w"
width="1946" height="1946"
sizes="(min-width: 1200px) 495px, (min-width: 990px) calc(45.0vw - 10rem), (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)">
</div>
</noscript>
<modal-opener
class="product__modal-opener product__modal-opener--image no-js-hidden"
data-modal="#ProductModal-template--17040648077525__main">
<span
class="product__media-icon motion-reduce quick-add-hidden product__media-icon--lightbox"
aria-hidden="true"><svg aria-hidden="true" focusable="false"
class="icon icon-plus" width="19" height="19"
viewBox="0 0 19 19" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4.66724 7.93978C4.66655 7.66364 4.88984 7.43922 5.16598 7.43853L10.6996 7.42464C10.9758 7.42395 11.2002 7.64724 11.2009 7.92339C11.2016 8.19953 10.9783 8.42395 10.7021 8.42464L5.16849 8.43852C4.89235 8.43922 4.66793 8.21592 4.66724 7.93978Z"
fill="currentColor" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M7.92576 4.66463C8.2019 4.66394 8.42632 4.88723 8.42702 5.16337L8.4409 10.697C8.44159 10.9732 8.2183 11.1976 7.94215 11.1983C7.66601 11.199 7.44159 10.9757 7.4409 10.6995L7.42702 5.16588C7.42633 4.88974 7.64962 4.66532 7.92576 4.66463Z"
fill="currentColor" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M12.8324 3.03011C10.1255 0.323296 5.73693 0.323296 3.03011 3.03011C0.323296 5.73693 0.323296 10.1256 3.03011 12.8324C5.73693 15.5392 10.1255 15.5392 12.8324 12.8324C15.5392 10.1256 15.5392 5.73693 12.8324 3.03011ZM2.32301 2.32301C5.42035 -0.774336 10.4421 -0.774336 13.5395 2.32301C16.6101 5.39361 16.6366 10.3556 13.619 13.4588L18.2473 18.0871C18.4426 18.2824 18.4426 18.599 18.2473 18.7943C18.0521 18.9895 17.7355 18.9895 17.5402 18.7943L12.8778 14.1318C9.76383 16.6223 5.20839 16.4249 2.32301 13.5395C-0.774335 10.4421 -0.774335 5.42035 2.32301 2.32301Z"
fill="currentColor" />
</svg>
</span>
<style>
.loading__spinner {
position: absolute;
z-index: 1;
width: 1.8rem
}
.loading__spinner {
width: 1.8rem;
display: inline-block
}
.spinner {
animation: rotator 1.4s linear infinite
}
@keyframes rotator {
0% {
transform: rotate(0)
}
to {
transform: rotate(270deg)
}
}
.path {
stroke-dasharray: 280;
stroke-dashoffset: 0;
transform-origin: center;
stroke: rgb(var(--color-foreground));
animation: dash 1.4s ease-in-out infinite
}
@media screen and (forced-colors: active) {
.path {
stroke: CanvasText
}
}
@keyframes dash {
0% {
stroke-dashoffset: 280
}
50% {
stroke-dashoffset: 75;
transform: rotate(135deg)
}
to {
stroke-dashoffset: 280;
transform: rotate(450deg)
}
}
.loading__spinner:not(.hidden)+.cart-item__price-wrapper,
.loading__spinner:not(.hidden)~cart-remove-button {
opacity: 50%
}
.loading__spinner:not(.hidden)~cart-remove-button {
pointer-events: none;
cursor: default
}
</style>
<div class="loading__spinner hidden">
<svg aria-hidden="true" focusable="false" class="spinner"
viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
<circle class="path" fill="none" stroke-width="6" cx="33"
cy="33" r="30"></circle>
</svg>
</div>
<div class="product__media media media--transparent">
<img src="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"
alt="togel online" width="1000" height="1000"
class="image-magnify-lightbox"
sizes="(min-width: 1200px) 495px, (min-width: 990px) calc(45.0vw - 10rem), (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw / 1 - 4rem)">
</div>
<button
class="product__media-toggle quick-add-hidden product__media-zoom-lightbox"
type="button" aria-haspopup="dialog"
data-media-id="33478743672119">
<span class="visually-hidden">
Open media 1 in modal
</span>
</button>
</modal-opener>
</div>
</li>
</ul>
<div class="slider-buttons no-js-hidden quick-add-hidden small-hide">
<button type="button" class="slider-button slider-button--prev" name="previous"
aria-label="Slide left">
<svg aria-hidden="true" focusable="false" class="icon icon-caret"
viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z"
fill="currentColor">
</svg>
</button>
<div class="slider-counter caption">
<span class="slider-counter--current">1</span>
<span aria-hidden="true"> / </span>
<span class="visually-hidden">of</span>
<span class="slider-counter--total">1</span>
</div>
<button type="button" class="slider-button slider-button--next" name="next"
aria-label="Slide right">
<svg aria-hidden="true" focusable="false" class="icon icon-caret"
viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z"
fill="currentColor">
</svg>
</button>
</div>
</slider-component>
</media-gallery>
</div>
<div class="product__info-wrapper grid__item scroll-trigger animate--slide-in">
<product-info id="ProductInfo-template--17040648077525__main"
data-section="template--17040648077525__main" data-url="https://illuzia.net/"
class="product__info-container product__column-sticky">
<p class="product__text inline-richtext">KOITOTO</p>
<div class="product__title">
<h1>Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online</h1>
<a href="https://illuzia.net/" class="product__title">
<h2 class="h1">Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online</h2>
</a>
</div>
<div class="no-js-hidden" id="price-template--17040648077525__main" role="status">
<div class="
price price--large price--on-sale price--show-badge">
<div class="price__container">
<div class="price__regular"><span
class="visually-hidden visually-hidden--inline">Regular
price</span>
<span class="price-item price-item--regular">
Rp 10.000,00
</span>
</div>
<div class="price__sale">
<span class="visually-hidden visually-hidden--inline">Regular
price</span>
<span>
<s class="price-item price-item--regular">
Rp 100.000,00
</s>
</span><span class="visually-hidden visually-hidden--inline">Sale
price</span>
<span class="price-item price-item--sale price-item--last">
Rp 10.000,00
</span>
</div>
<small class="unit-price caption hidden">
<span class="visually-hidden">Unit price</span>
<span class="price-item price-item--last">
<span></span>
<span aria-hidden="true">/</span>
<span class="visually-hidden"> per </span>
<span>
</span>
</span>
</small>
</div><span class="badge price__badge-sale color-accent-1">
TOGEL ONLINE
</span>
<span class="badge price__badge-sold-out color-background-1">
Sold out
</span>
</div>
</div>
<div class="product__tax caption rte"></div>
<div>
<form method="post" action="https://illuzia.net/"
id="product-form-installment-template--17040648077525__main"
accept-charset="UTF-8" class="installment caption-large"
enctype="multipart/form-data"><input type="hidden" name="form_type"
value="product" /><input type="hidden" name="utf8" value="✓" /><input
type="hidden" name="id" value="43114192093653">
<input type="hidden" name="product-id" value="8226828321669" />
</form>
</div>
<noscript class="product-form__noscript-wrapper-template--17040648077525__main">
<div class="product-form__input hidden">
<label class="form__label" for="Variants-template--17040648077525__main">Product
variants</label>
<div class="select">
<select name="id" id="Variants-template--17040648077525__main"
class="select__select"
form="product-form-template--17040648077525__main">
<option selected="selected" value="43114192093653">Default Title - Rp
10.000,00</option>
</select>
<svg aria-hidden="true" focusable="false" class="icon icon-caret"
viewBox="0 0 10 6">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z"
fill="currentColor">
</svg>
</div>
</div>
</noscript>
<div id="Quantity-Form-template--17040648077525__main"
class="product-form__input product-form__quantity">
<label class="quantity__label form__label"
for="Quantity-template--17040648077525__main">
Quantity
<span class="quantity__rules-cart no-js-hidden hidden">
<style>
.loading__spinner {
position: absolute;
z-index: 1;
width: 1.8rem
}
.loading__spinner {
width: 1.8rem;
display: inline-block
}
.spinner {
animation: rotator 1.4s linear infinite
}
@keyframes rotator {
0% {
transform: rotate(0)
}
to {
transform: rotate(270deg)
}
}
.path {
stroke-dasharray: 280;
stroke-dashoffset: 0;
transform-origin: center;
stroke: rgb(var(--color-foreground));
animation: dash 1.4s ease-in-out infinite
}
@media screen and (forced-colors: active) {
.path {
stroke: CanvasText
}
}
@keyframes dash {
0% {
stroke-dashoffset: 280
}
50% {
stroke-dashoffset: 75;
transform: rotate(135deg)
}
to {
stroke-dashoffset: 280;
transform: rotate(450deg)
}
}
.loading__spinner:not(.hidden)+.cart-item__price-wrapper,
.loading__spinner:not(.hidden)~cart-remove-button {
opacity: 50%
}
.loading__spinner:not(.hidden)~cart-remove-button {
pointer-events: none;
cursor: default
}
</style>
<div class="loading__spinner hidden">
<svg aria-hidden="true" focusable="false" class="spinner"
viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
<circle class="path" fill="none" stroke-width="6" cx="33" cy="33"
r="30"></circle>
</svg>
</div>
<span>(<span class="quantity-cart">0</span> in cart)</span>
</span>
</label>
<div class="price-per-item__container">
<quantity-input class="quantity" data-url="https://illuzia.net/"
data-section="template--17040648077525__main">
<button class="quantity__button no-js-hidden" name="minus" type="button">
<span class="visually-hidden">Decrease quantity for Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online</span>
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
focusable="false" class="icon icon-minus" fill="none"
viewBox="0 0 10 2">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M.5 1C.5.7.7.5 1 .5h8a.5.5 0 110 1H1A.5.5 0 01.5 1z"
fill="currentColor">
</svg>
</button>
<input class="quantity__input" type="number" name="quantity"
id="Quantity-template--17040648077525__main" data-cart-quantity="0"
data-min="1" min="1" step="1" value="1"
form="product-form-template--17040648077525__main" />
<button class="quantity__button no-js-hidden" name="plus" type="button">
<span class="visually-hidden">Increase quantity for Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online</span>
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
focusable="false" class="icon icon-plus" fill="none"
viewBox="0 0 10 10">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M1 4.51a.5.5 0 000 1h3.5l.01 3.5a.5.5 0 001-.01V5.5l3.5-.01a.5.5 0 00-.01-1H5.5L5.49.99a.5.5 0 00-1 .01v3.5l-3.5.01H1z"
fill="currentColor">
</svg>
</button>
</quantity-input>
</div>
<div class="quantity__rules caption no-js-hidden"
id="Quantity-Rules-template--17040648077525__main">
</div>
</div>
<div><product-form class="product-form" data-hide-errors="false"
data-section-id="template--17040648077525__main">
<div class="product-form__error-message-wrapper" role="alert" hidden>
<svg aria-hidden="true" focusable="false" class="icon icon-error"
viewBox="0 0 13 13">
<circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2" />
<circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B"
stroke-width="0.7" />
<path
d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z"
fill="white" />
<path
d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z"
fill="white" stroke="#EB001B" stroke-width="0.7">
</svg>
<span class="product-form__error-message"></span>
</div>
<form method="post" action="https://illuzia.net/"
id="product-form-template--17040648077525__main" accept-charset="UTF-8"
class="form" enctype="multipart/form-data" novalidate="novalidate"
data-type="add-to-cart-form"><input type="hidden" name="form_type"
value="product" /><input type="hidden" name="utf8" value="✓" /><input
type="hidden" name="id" value="43114192093653"
class="product-variant-id">
<div class="product-form__buttons"><button
id="ProductSubmitButton-template--17040648077525__main"
type="submit" name="add"
class="product-form__submit button button--full-width button--secondary">
<span>Daftar Sekarang
</span>
<style>
.loading__spinner {
position: absolute;
z-index: 1;
width: 1.8rem
}
.loading__spinner {
width: 1.8rem;
display: inline-block
}
.spinner {
animation: rotator 1.4s linear infinite
}
@keyframes rotator {
0% {
transform: rotate(0)
}
to {
transform: rotate(270deg)
}
}
.path {
stroke-dasharray: 280;
stroke-dashoffset: 0;
transform-origin: center;
stroke: rgb(var(--color-foreground));
animation: dash 1.4s ease-in-out infinite
}
@media screen and (forced-colors: active) {
.path {
stroke: CanvasText
}
}
@keyframes dash {
0% {
stroke-dashoffset: 280
}
50% {
stroke-dashoffset: 75;
transform: rotate(135deg)
}
to {
stroke-dashoffset: 280;
transform: rotate(450deg)
}
}
.loading__spinner:not(.hidden)+.cart-item__price-wrapper,
.loading__spinner:not(.hidden)~cart-remove-button {
opacity: 50%
}
.loading__spinner:not(.hidden)~cart-remove-button {
pointer-events: none;
cursor: default
}
</style>
<div class="loading__spinner hidden">
<svg aria-hidden="true" focusable="false" class="spinner"
viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
<circle class="path" fill="none" stroke-width="6" cx="33"
cy="33" r="30"></circle>
</svg>
</div>
</button>
<div data-shopify="payment-button" data-has-selling-plan="false"
data-has-fixed-selling-plan="false" class="shopify-payment-button">
<button
class="shopify-payment-button__button shopify-payment-button__button--unbranded shopify-payment-button__button--hidden"
disabled="disabled" aria-hidden="true"> </button><button
class="shopify-payment-button__more-options shopify-payment-button__button--hidden"
disabled="disabled" aria-hidden="true"> </button>
</div>
</div><input type="hidden" name="product-id" value="8226828321669" />
</form>
</product-form>
<style>
pickup-availability {
display: block
}
pickup-availability[available] {
min-height: 8rem
}
.pickup-availability-preview {
align-items: flex-start;
display: flex;
gap: .2rem;
padding: 1rem 2rem 0 0
}
.pickup-availability-preview .icon {
flex-shrink: 0;
height: 1.8rem
}
.pickup-availability-preview .icon-unavailable {
height: 1.6rem;
margin-top: .1rem
}
.pickup-availability-button {
background-color: transparent;
color: rgba(var(--color-foreground), .75);
letter-spacing: .06rem;
padding: 0 0 .2rem;
text-align: left;
text-decoration: underline
}
.pickup-availability-button:hover {
color: rgb(var(--color-foreground))
}
.pickup-availability-info * {
margin: 0 0 .6rem
}
pickup-availability-drawer {
background-color: rgb(var(--color-background));
height: 100%;
opacity: 0;
overflow-y: auto;
padding: 2rem;
position: fixed;
top: 0;
right: 0;
z-index: 4;
transition: opacity var(--duration-default) ease, transform var(--duration-default) ease;
transform: translate(100%);
width: 100%;
border-width: 0 0 0 var(--drawer-border-width);
border-color: rgba(var(--color-foreground), var(--drawer-border-opacity));
border-style: solid;
filter: drop-shadow(var(--drawer-shadow-horizontal-offset) var(--drawer-shadow-vertical-offset) var(--drawer-shadow-blur-radius) rgba(var(--color-shadow), var(--drawer-shadow-opacity)))
}
pickup-availability-drawer[open] {
transform: translate(0);
opacity: 1
}
@media screen and (min-width: 750px) {
pickup-availability-drawer {
transform: translate(100%);
width: 37.5rem
}
pickup-availability-drawer[open] {
opacity: 1;
transform: translate(0);
animation: animateDrawerOpen var(--duration-default) ease
}
}
.pickup-availability-header {
align-items: flex-start;
display: flex;
justify-content: space-between;
margin-bottom: 1.2rem
}
.pickup-availability-drawer-title {
margin: .5rem 0 0
}
.pickup-availability-header .icon {
width: 2rem
}
.pickup-availability-drawer-button {
background-color: transparent;
border: none;
color: rgb(var(--color-foreground));
cursor: pointer;
display: block;
height: 4.4rem;
padding: 1.2rem;
width: 4.4rem
}
.pickup-availability-drawer-button:hover {
color: rgba(var(--color-foreground), .75)
}
.pickup-availability-variant {
font-size: 1.3rem;
line-height: calc(1 + .2 / var(--font-body-scale));
margin: 0 0 1.2rem;
text-transform: capitalize
}
.pickup-availability-variant>*+strong {
margin-left: 1rem
}
.pickup-availability-list__item {
border-bottom: .1rem solid rgba(var(--color-foreground), .08);
padding: 2rem 0
}
.pickup-availability-list__item:first-child {
border-top: .1rem solid rgba(var(--color-foreground), .08)
}
.pickup-availability-list__item>* {
margin: 0
}
.pickup-availability-list__item>*+* {
margin-top: 1rem
}
.pickup-availability-address {
font-style: normal;
font-size: 1.2rem;
line-height: calc(1 + .5 / var(--font-body-scale))
}
.pickup-availability-address p {
margin: 0
}
@keyframes animateDrawerOpen {
@media screen and (max-width: 749px) {
0% {
opacity: 0;
transform: translateX(100%);
}
100% {
opacity: 1;
transform: translateX(0);
}
}
@media screen and (min-width: 750px) {
0% {
opacity: 0;
transform: translateX(100%);
}
100% {
opacity: 1;
transform: translateX(0);
}
}
}
</style>
<pickup-availability
class="product__pickup-availabilities no-js-hidden quick-add-hidden"
data-root-url="https://illuzia.net/" data-variant-id="43114192093653"
data-has-only-default-variant="true"
data-product-page-color-scheme="gradient color-background-1">
<template>
<pickup-availability-preview class="pickup-availability-preview">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" aria-hidden="true"
focusable="false" class="icon icon-unavailable" fill="none"
viewBox="0 0 20 20">
<path fill="#DE3618" stroke="#fff"
d="M13.94 3.94L10 7.878l-3.94-3.94A1.499 1.499 0 103.94 6.06L7.88 10l-3.94 3.94a1.499 1.499 0 102.12 2.12L10 12.12l3.94 3.94a1.497 1.497 0 002.12 0 1.499 1.499 0 000-2.12L12.122 10l3.94-3.94a1.499 1.499 0 10-2.121-2.12z" />
</svg>
<div class="pickup-availability-info">
<p class="caption-large">Couldn't load pickup availability</p>
<button
class="pickup-availability-button link link--text underlined-link">
Refresh
</button>
</div>
</pickup-availability-preview>
</template>
</pickup-availability>
<script>
/** Shopify CDN: Minification failed
Line 19:4 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 20:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 30:23 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 31:8 Transforming let to the configured target environment ("es5") is not supported yet
Line 35:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 40:12 Transforming const to the configured target environment ("es5") is not supported yet
Line 46:12 Transforming const to the configured target environment ("es5") is not supported yet
Line 52:24 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 56:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 63:19 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
... and 9 more hidden warnings
**/
if (!customElements.get('pickup-availability')) {
customElements.define(
'pickup-availability',
class PickupAvailability extends HTMLElement {
constructor() {
super();
if (!this.hasAttribute('available')) return;
this.errorHtml = this.querySelector('template').content.firstElementChild.cloneNode(true);
this.onClickRefreshList = this.onClickRefreshList.bind(this);
this.fetchAvailability(this.dataset.variantId);
}
fetchAvailability(variantId) {
let rootUrl = this.dataset.rootUrl;
if (!rootUrl.endsWith('/')) {
rootUrl = rootUrl + '/';
}
const variantSectionUrl = `${rootUrl}variants/${variantId}/?section_id=pickup-availability`;
fetch(variantSectionUrl)
.then((response) => response.text())
.then((text) => {
const sectionInnerHTML = new DOMParser()
.parseFromString(text, 'text/html')
.querySelector('.shopify-section');
this.renderPreview(sectionInnerHTML);
})
.catch((e) => {
const button = this.querySelector('button');
if (button) button.removeEventListener('click', this.onClickRefreshList);
this.renderError();
});
}
onClickRefreshList(evt) {
this.fetchAvailability(this.dataset.variantId);
}
renderError() {
this.innerHTML = '';
this.appendChild(this.errorHtml);
this.querySelector('button').addEventListener('click', this.onClickRefreshList);
}
renderPreview(sectionInnerHTML) {
const drawer = document.querySelector('pickup-availability-drawer');
if (drawer) drawer.remove();
if (!sectionInnerHTML.querySelector('pickup-availability-preview')) {
this.innerHTML = '';
this.removeAttribute('available');
return;
}
this.innerHTML = sectionInnerHTML.querySelector('pickup-availability-preview').outerHTML;
this.setAttribute('available', '');
document.body.appendChild(sectionInnerHTML.querySelector('pickup-availability-drawer'));
const colorClassesToApply = this.dataset.productPageColorScheme.split(' ');
colorClassesToApply.forEach((colorClass) => {
document.querySelector('pickup-availability-drawer').classList.add(colorClass);
});
const button = this.querySelector('button');
if (button)
button.addEventListener('click', (evt) => {
document.querySelector('pickup-availability-drawer').show(evt.target);
});
}
}
);
}
if (!customElements.get('pickup-availability-drawer')) {
customElements.define(
'pickup-availability-drawer',
class PickupAvailabilityDrawer extends HTMLElement {
constructor() {
super();
this.onBodyClick = this.handleBodyClick.bind(this);
this.querySelector('button').addEventListener('click', () => {
this.hide();
});
this.addEventListener('keyup', (event) => {
if (event.code.toUpperCase() === 'ESCAPE') this.hide();
});
}
handleBodyClick(evt) {
const target = evt.target;
if (
target != this &&
!target.closest('pickup-availability-drawer') &&
target.id != 'ShowPickupAvailabilityDrawer'
) {
this.hide();
}
}
hide() {
this.removeAttribute('open');
document.body.removeEventListener('click', this.onBodyClick);
document.body.classList.remove('overflow-hidden');
removeTrapFocus(this.focusElement);
}
show(focusElement) {
this.focusElement = focusElement;
this.setAttribute('open', '');
document.body.addEventListener('click', this.onBodyClick);
document.body.classList.add('overflow-hidden');
trapFocus(this);
}
}
);
}
</script>
</div>
<style>
.product__description p {
text-align: justify;
}
.product__description h2 {
text-align: center;
}
.product__description a {
font-weight: bold;
text-decoration: none;
color: #6d0000;
}
.site-list li {
font-weight: bold;
}
.centre li {
font-weight: normal;
margin-left: -1em;
text-align: justify;
list-style-type: decimal;
}
</style>
<div class="product__description rte quick-add-hidden">
<p><a href="https://illuzia.net/" title="Koitoto Togel"><strong>Koitoto Togel</strong></a> merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya. Dengan berbagai pilihan pasaran togel internasional, Koitoto memberikan kemudahan dalam memasang taruhan secara aman dan cepat. Keunggulan situs ini terletak pada fitur lengkap, mulai dari prediksi akurat hingga bonus menarik yang memanjakan pemain. Koitoto juga dikenal dengan pelayanan pelanggan responsif dan sistem keamanan canggih yang melindungi data pengguna. Nikmati keseruan bermain togel online di Koitoto, pilihan utama bagi pecinta togel yang mengutamakan kenyamanan dan kepercayaan.</p>
</div>
<script>
/** Shopify CDN: Minification failed
Line 13:4 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 14:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 41:19 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 50:21 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 59:15 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
**/
if (!customElements.get('share-button')) {
customElements.define(
'share-button',
class ShareButton extends DetailsDisclosure {
constructor() {
super();
this.elements = {
shareButton: this.querySelector('button'),
shareSummary: this.querySelector('summary'),
closeButton: this.querySelector('.share-button__close'),
successMessage: this.querySelector('[id^="ShareMessage"]'),
urlInput: this.querySelector('input'),
};
this.urlToShare = this.elements.urlInput ? this.elements.urlInput.value : document.location.href;
if (navigator.share) {
this.mainDetailsToggle.setAttribute('hidden', '');
this.elements.shareButton.classList.remove('hidden');
this.elements.shareButton.addEventListener('click', () => {
navigator.share({ url: this.urlToShare, title: document.title });
});
} else {
this.mainDetailsToggle.addEventListener('toggle', this.toggleDetails.bind(this));
this.mainDetailsToggle
.querySelector('.share-button__copy')
.addEventListener('click', this.copyToClipboard.bind(this));
this.mainDetailsToggle.querySelector('.share-button__close').addEventListener('click', this.close.bind(this));
}
}
toggleDetails() {
if (!this.mainDetailsToggle.open) {
this.elements.successMessage.classList.add('hidden');
this.elements.successMessage.textContent = '';
this.elements.closeButton.classList.add('hidden');
this.elements.shareSummary.focus();
}
}
copyToClipboard() {
navigator.clipboard.writeText(this.elements.urlInput.value).then(() => {
this.elements.successMessage.classList.remove('hidden');
this.elements.successMessage.textContent = window.accessibilityStrings.shareSuccess;
this.elements.closeButton.classList.remove('hidden');
this.elements.closeButton.focus();
});
}
updateUrl(url) {
this.urlToShare = url;
this.elements.urlInput.value = url;
}
}
);
}
</script>
<share-button id="Share-template--17040648077525__main"
class="share-button quick-add-hidden">
<button class="share-button__button hidden">
<svg width="13" height="12" viewBox="0 0 13 12" class="icon icon-share"
fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
focusable="false">
<path
d="M1.625 8.125V10.2917C1.625 10.579 1.73914 10.8545 1.9423 11.0577C2.14547 11.2609 2.42102 11.375 2.70833 11.375H10.2917C10.579 11.375 10.8545 11.2609 11.0577 11.0577C11.2609 10.8545 11.375 10.579 11.375 10.2917V8.125"
stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.14775 1.27137C6.34301 1.0761 6.65959 1.0761 6.85485 1.27137L9.56319 3.9797C9.75845 4.17496 9.75845 4.49154 9.56319 4.6868C9.36793 4.88207 9.05135 4.88207 8.85609 4.6868L6.5013 2.33203L4.14652 4.6868C3.95126 4.88207 3.63468 4.88207 3.43942 4.6868C3.24415 4.49154 3.24415 4.17496 3.43942 3.9797L6.14775 1.27137Z"
fill="currentColor" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.5 1.125C6.77614 1.125 7 1.34886 7 1.625V8.125C7 8.40114 6.77614 8.625 6.5 8.625C6.22386 8.625 6 8.40114 6 8.125V1.625C6 1.34886 6.22386 1.125 6.5 1.125Z"
fill="currentColor" />
</svg>
Share
</button>
<details id="Details-share-template--17040648077525__main">
<summary class="share-button__button">
<svg width="13" height="12" viewBox="0 0 13 12" class="icon icon-share"
fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
focusable="false">
<path
d="M1.625 8.125V10.2917C1.625 10.579 1.73914 10.8545 1.9423 11.0577C2.14547 11.2609 2.42102 11.375 2.70833 11.375H10.2917C10.579 11.375 10.8545 11.2609 11.0577 11.0577C11.2609 10.8545 11.375 10.579 11.375 10.2917V8.125"
stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.14775 1.27137C6.34301 1.0761 6.65959 1.0761 6.85485 1.27137L9.56319 3.9797C9.75845 4.17496 9.75845 4.49154 9.56319 4.6868C9.36793 4.88207 9.05135 4.88207 8.85609 4.6868L6.5013 2.33203L4.14652 4.6868C3.95126 4.88207 3.63468 4.88207 3.43942 4.6868C3.24415 4.49154 3.24415 4.17496 3.43942 3.9797L6.14775 1.27137Z"
fill="currentColor" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.5 1.125C6.77614 1.125 7 1.34886 7 1.625V8.125C7 8.40114 6.77614 8.625 6.5 8.625C6.22386 8.625 6 8.40114 6 8.125V1.625C6 1.34886 6.22386 1.125 6.5 1.125Z"
fill="currentColor" />
</svg>
Share
</summary>
<div class="share-button__fallback motion-reduce">
<div class="field">
<span id="ShareMessage-template--17040648077525__main"
class="share-button__message hidden" role="status"> </span>
<input type="text" class="field__input"
id="ShareUrl-template--17040648077525__main"
value="https://illuzia.net/" placeholder="Link"
onclick="this.select();" readonly>
<label class="field__label"
for="ShareUrl-template--17040648077525__main">Link</label>
</div>
<button class="share-button__close hidden no-js-hidden">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
focusable="false" class="icon icon-close" fill="none"
viewBox="0 0 18 17">
<path
d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
fill="currentColor">
</svg>
<span class="visually-hidden">Close share</span>
</button>
<button class="share-button__copy no-js-hidden">
<svg class="icon icon-clipboard" width="11" height="13" fill="none"
xmlns="http://www.w3.org/2000/svg" aria-hidden="true"
focusable="false" viewBox="0 0 11 13">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M2 1a1 1 0 011-1h7a1 1 0 011 1v9a1 1 0 01-1 1V1H2zM1 2a1 1 0 00-1 1v9a1 1 0 001 1h7a1 1 0 001-1V3a1 1 0 00-1-1H1zm0 10V3h7v9H1z"
fill="currentColor" />
</svg>
<span class="visually-hidden">Copy link</span>
</button>
</div>
</details>
</share-button>
<a href="https://illuzia.net/" class="link product__view-details animate-arrow">
View full details
<svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false"
class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z"
fill="currentColor">
</svg>
</a>
</product-info>
</div>
</div>
<product-modal id="ProductModal-template--17040648077525__main"
class="product-media-modal media-modal">
<div class="product-media-modal__dialog color-background-1 gradient" role="dialog"
aria-label="Media gallery" aria-modal="true" tabindex="-1">
<button id="ModalClose-template--17040648077525__main" type="button"
class="product-media-modal__toggle" aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"
class="icon icon-close" fill="none" viewBox="0 0 18 17">
<path
d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z"
fill="currentColor">
</svg>
</button>
<div class="product-media-modal__content color-background-1 gradient" role="document"
aria-label="Media gallery" tabindex="0">
<img class="global-media-settings global-media-settings--no-shadow"
srcset="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"
sizes="(min-width: 750px) calc(100vw - 22rem), 1100px"
src="https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"
alt="situs togel online" loading="lazy" width="1100" height="1100"
data-media-id="33478743672119">
</div>
</div>
</product-modal>
<script>/** Shopify CDN: Minification failed
Line 17:4 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 18:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 22:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 26:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 31:21 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 37:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 38:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 39:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 43:8 Transforming const to the configured target environment ("es5") is not supported yet
**/
if (!customElements.get('product-modal')) {
customElements.define(
'product-modal',
class ProductModal extends ModalDialog {
constructor() {
super();
}
hide() {
super.hide();
}
show(opener) {
super.show(opener);
this.showActiveMedia();
}
showActiveMedia() {
this.querySelectorAll(
`[data-media-id]:not([data-media-id="${this.openedBy.getAttribute('data-media-id')}"])`
).forEach((element) => {
element.classList.remove('active');
});
const activeMedia = this.querySelector(`[data-media-id="${this.openedBy.getAttribute('data-media-id')}"]`);
const activeMediaTemplate = activeMedia.querySelector('template');
const activeMediaContent = activeMediaTemplate ? activeMediaTemplate.content : null;
activeMedia.classList.add('active');
activeMedia.scrollIntoView();
const container = this.querySelector('[role="document"]');
container.scrollLeft = (activeMedia.width - container.clientWidth) / 2;
if (
activeMedia.nodeName == 'DEFERRED-MEDIA' &&
activeMediaContent &&
activeMediaContent.querySelector('.js-youtube')
)
activeMedia.loadContent();
}
}
);
}</script>
<script>/** Shopify CDN: Minification failed
Line 19:4 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 20:17 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 39:20 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 40:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 46:20 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 47:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 56:12 Transforming const to the configured target environment ("es5") is not supported yet
Line 74:8 Transforming const to the configured target environment ("es5") is not supported yet
Line 79:24 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 91:24 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
... and 5 more hidden warnings
**/
if (!customElements.get('media-gallery')) {
customElements.define(
'media-gallery',
class MediaGallery extends HTMLElement {
constructor() {
super();
this.elements = {
liveRegion: this.querySelector('[id^="GalleryStatus"]'),
viewer: this.querySelector('[id^="GalleryViewer"]'),
thumbnails: this.querySelector('[id^="GalleryThumbnails"]'),
};
this.mql = window.matchMedia('(min-width: 750px)');
if (!this.elements.thumbnails) return;
this.elements.viewer.addEventListener('slideChanged', debounce(this.onSlideChanged.bind(this), 500));
this.elements.thumbnails.querySelectorAll('[data-target]').forEach((mediaToSwitch) => {
mediaToSwitch
.querySelector('button')
.addEventListener('click', this.setActiveMedia.bind(this, mediaToSwitch.dataset.target, false));
});
if (this.dataset.desktopLayout.includes('thumbnail') && this.mql.matches) this.removeListSemantic();
}
onSlideChanged(event) {
const thumbnail = this.elements.thumbnails.querySelector(
`[data-target="${event.detail.currentElement.dataset.mediaId}"]`
);
this.setActiveThumbnail(thumbnail);
}
setActiveMedia(mediaId, prepend) {
const activeMedia = this.elements.viewer.querySelector(`[data-media-id="${mediaId}"]`);
this.elements.viewer.querySelectorAll('[data-media-id]').forEach((element) => {
element.classList.remove('is-active');
});
activeMedia.classList.add('is-active');
if (prepend) {
activeMedia.parentElement.prepend(activeMedia);
if (this.elements.thumbnails) {
const activeThumbnail = this.elements.thumbnails.querySelector(`[data-target="${mediaId}"]`);
activeThumbnail.parentElement.prepend(activeThumbnail);
}
if (this.elements.viewer.slider) this.elements.viewer.resetPages();
}
this.preventStickyHeader();
window.setTimeout(() => {
if (this.elements.thumbnails) {
activeMedia.parentElement.scrollTo({ left: activeMedia.offsetLeft });
}
if (!this.elements.thumbnails || this.dataset.desktopLayout === 'stacked') {
activeMedia.scrollIntoView({ behavior: 'smooth' });
}
});
this.playActiveMedia(activeMedia);
if (!this.elements.thumbnails) return;
const activeThumbnail = this.elements.thumbnails.querySelector(`[data-target="${mediaId}"]`);
this.setActiveThumbnail(activeThumbnail);
this.announceLiveRegion(activeMedia, activeThumbnail.dataset.mediaPosition);
}
setActiveThumbnail(thumbnail) {
if (!this.elements.thumbnails || !thumbnail) return;
this.elements.thumbnails
.querySelectorAll('button')
.forEach((element) => element.removeAttribute('aria-current'));
thumbnail.querySelector('button').setAttribute('aria-current', true);
if (this.elements.thumbnails.isSlideVisible(thumbnail, 10)) return;
this.elements.thumbnails.slider.scrollTo({ left: thumbnail.offsetLeft });
}
announceLiveRegion(activeItem, position) {
const image = activeItem.querySelector('.product__modal-opener--image img');
if (!image) return;
image.onload = () => {
this.elements.liveRegion.setAttribute('aria-hidden', false);
this.elements.liveRegion.innerHTML = window.accessibilityStrings.imageAvailable.replace('[index]', position);
setTimeout(() => {
this.elements.liveRegion.setAttribute('aria-hidden', true);
}, 2000);
};
image.src = image.src;
}
playActiveMedia(activeItem) {
window.pauseAllMedia();
const deferredMedia = activeItem.querySelector('.deferred-media');
if (deferredMedia) deferredMedia.loadContent(false);
}
preventStickyHeader() {
this.stickyHeader = this.stickyHeader || document.querySelector('sticky-header');
if (!this.stickyHeader) return;
this.stickyHeader.dispatchEvent(new Event('preventHeaderReveal'));
}
removeListSemantic() {
if (!this.elements.viewer.slider) return;
this.elements.viewer.slider.setAttribute('role', 'presentation');
this.elements.viewer.sliderItems.forEach((slide) => slide.setAttribute('role', 'presentation'));
}
}
);
}
</script>
<script>
document.addEventListener('DOMContentLoaded', function () {
function isIE() {
const ua = window.navigator.userAgent;
const msie = ua.indexOf('MSIE ');
const trident = ua.indexOf('Trident/https://illuzia.net/');
return msie > 0 || trident > 0;
}
if (!isIE()) return;
const hiddenInput = document.querySelector('#product-form-template--17040648077525__main input[name="id"]');
const noScriptInputWrapper = document.createElement('div');
const variantSwitcher =
document.querySelector('variant-radios[data-section="template--17040648077525__main"]') ||
document.querySelector('variant-selects[data-section="template--17040648077525__main"]');
noScriptInputWrapper.innerHTML = document.querySelector(
'.product-form__noscript-wrapper-template--17040648077525__main'
).textContent;
variantSwitcher.outerHTML = noScriptInputWrapper.outerHTML;
document.querySelector('#Variants-template--17040648077525__main').addEventListener('change', function (event) {
hiddenInput.value = event.currentTarget.value;
});
});
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Koitoto Togel: Situs Togel Paling Favorit di Mata Pecinta Togel Online",
"url": "https://illuzia.net/",
"image": ["https://imgstore.io/images/2024/11/04/lprendisitustogelonline5.jpeg"],
"description": "Koitoto Togel merupakan situs togel paling favorit di mata pecinta togel online karena menawarkan pengalaman bermain terbaik dan terpercaya.",
"brand": {
"@type": "Brand",
"name": "KOITOTO"
},
"offers": [{
"@type": "Offer",
"availability": "http://schema.org/InStock",
"price": 10000.0,
"priceCurrency": "IDR",
"url": "https://illuzia.net/"
}]
}
</script>
</div>
</section>
</section>
<section id="shopify-section-template--17040648077525__related-products" class="shopify-section section">
<style>
.card-wrapper {
color: inherit;
height: 100%;
position: relative;
text-decoration: none
}
.card {
text-decoration: none;
text-align: var(--text-alignment)
}
.card:not(.ratio) {
display: flex;
flex-direction: column;
height: 100%
}
.card.card--horizontal {
--text-alignment: left;
--image-padding: 0rem;
flex-direction: row;
align-items: flex-start;
gap: 1.5rem
}
.card--horizontal.ratio:before {
padding-bottom: 0
}
.card--card.card--horizontal {
padding: 1.2rem
}
.card--card.card--horizontal.card--text {
column-gap: 0
}
.card--card {
height: 100%
}
.card--card,
.card--standard .card__inner {
position: relative;
box-sizing: border-box;
border-radius: var(--border-radius);
border: var(--border-width) solid rgba(var(--color-foreground), var(--border-opacity))
}
.card--card:after,
.card--standard .card__inner:after {
content: "";
position: absolute;
z-index: -1;
width: calc(var(--border-width) * 2 + 100%);
height: calc(var(--border-width) * 2 + 100%);
top: calc(var(--border-width) * -1);
left: calc(var(--border-width) * -1);
border-radius: var(--border-radius);
box-shadow: var(--shadow-horizontal-offset) var(--shadow-vertical-offset) var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity))
}
.card--card.gradient,
.card__inner.gradient {
transform: perspective(0)
}
.card__inner.color-background-1 {
background: transparent
}
.card .card__inner .card__media {
overflow: hidden;
z-index: 0;
border-radius: calc(var(--border-radius) - var(--border-width) - var(--image-padding))
}
.card--card .card__inner .card__media {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0
}
.card--standard.card--text {
background-color: transparent
}
.card-information {
text-align: var(--text-alignment)
}
.card__media,
.card .media {
bottom: 0;
position: absolute;
top: 0
}
.card .media {
width: 100%
}
.card__media {
margin: var(--image-padding);
width: calc(100% - 2 * var(--image-padding))
}
.card--standard .card__media {
margin: var(--image-padding)
}
.card__inner {
width: 100%
}
.card--media .card__inner .card__content {
position: relative;
padding: calc(var(--image-padding) + 1rem)
}
.card__content {
display: grid;
grid-template-rows: minmax(0, 1fr) max-content minmax(0, 1fr);
padding: 1rem;
width: 100%;
flex-grow: 1
}
.card__content--auto-margins {
grid-template-rows: minmax(0, auto) max-content minmax(0, auto)
}
.card__information {
grid-row-start: 2;
padding: 1.3rem 1rem
}
.card:not(.ratio)>.card__content {
grid-template-rows: max-content minmax(0, 1fr) max-content auto
}
.card-information .card__information-volume-pricing-note {
margin-top: .6rem;
line-height: calc(.5 + .4 / var(--font-body-scale));
color: rgba(var(--color-foreground), .75)
}
@media screen and (min-width: 750px) {
.card__information {
padding-bottom: 1.7rem;
padding-top: 1.7rem
}
}
.card__badge {
align-self: flex-end;
grid-row-start: 3;
justify-self: flex-start
}
.card__badge.top {
align-self: flex-start;
grid-row-start: 1
}
.card__badge.right {
justify-self: flex-end
}
.card:not(.card--horizontal)>.card__content>.card__badge {
margin: 1.3rem
}
.card__media .media img {
height: 100%;
object-fit: cover;
object-position: center center;
width: 100%
}
.card__inner:not(.ratio)>.card__content {
height: 100%
}
.card__heading {
margin-top: 0;
margin-bottom: 0
}
.card__heading:last-child {
margin-bottom: 0
}
.card--horizontal .card__heading,
.card--horizontal .price__container .price-item,
.card--horizontal__quick-add {
font-size: calc(var(--font-heading-scale) * 1.2rem)
}
.card--horizontal .card-information>*:not(.visually-hidden:first-child)+*:not(.rating):not(.card__information-volume-pricing-note) {
margin-top: 0
}
.card--horizontal__quick-add:before {
box-shadow: none
}
@media only screen and (min-width: 750px) {
.card--horizontal .card__heading,
.card--horizontal .price__container .price-item,
.card--horizontal__quick-add {
font-size: calc(var(--font-heading-scale) * 1.3rem)
}
}
.card--card.card--media>.card__content {
margin-top: calc(0rem - var(--image-padding))
}
.card--standard.card--text a:after,
.card--card .card__heading a:after {
bottom: calc(var(--border-width) * -1);
left: calc(var(--border-width) * -1);
right: calc(var(--border-width) * -1);
top: calc(var(--border-width) * -1)
}
.card__heading a:after {
bottom: 0;
content: "";
left: 0;
position: absolute;
right: 0;
top: 0;
z-index: 1
}
.card__heading a:after {
outline-offset: .3rem
}
.card__heading a:focus:after {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3);
outline: .2rem solid rgba(var(--color-foreground), .5)
}
.card__heading a:focus-visible:after {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 .5rem .4rem rgba(var(--color-foreground), .3);
outline: .2rem solid rgba(var(--color-foreground), .5)
}
.card__heading a:focus:not(:focus-visible):after {
box-shadow: none;
outline: 0
}
.card__heading a:focus {
box-shadow: none;
outline: 0
}
@media screen and (min-width: 990px) {
.card .media.media--hover-effect>img:only-child,
.card-wrapper .media.media--hover-effect>img:only-child {
transition: transform var(--duration-long) ease
}
.card:hover .media.media--hover-effect>img:first-child:only-child,
.card-wrapper:hover .media.media--hover-effect>img:first-child:only-child {
transform: scale(1.03)
}
.card-wrapper:hover .media.media--hover-effect>img:first-child:not(:only-child) {
opacity: 0
}
.card-wrapper:hover .media.media--hover-effect>img+img {
opacity: 1;
transition: transform var(--duration-long) ease;
transform: scale(1.03)
}
.underline-links-hover:hover a {
text-decoration: underline;
text-underline-offset: .3rem
}
}
.card--standard.card--media .card__inner .card__information,
.card--standard.card--text:not(.card--horizontal)>.card__content .card__heading:not(.card__heading--placeholder),
.card--standard:not(.card--horizontal)>.card__content .card__badge,
.card--standard.card--text.article-card>.card__content .card__information,
.card--standard>.card__content .card__caption {
display: none
}
.card--standard:not(.card--horizontal) .placeholder-svg {
height: auto;
width: 100%
}
.card--standard>.card__content {
padding: 0
}
.card--standard>.card__content .card__information {
padding-left: 0;
padding-right: 0
}
.card--card.card--media .card__inner .card__information,
.card--card.card--text .card__inner,
.card--card.card--media>.card__content .card__badge {
display: none
}
.card--horizontal .card__badge,
.card--horizontal.card--text .card__inner {
display: none
}
.card--extend-height {
height: 100%
}
.card--extend-height.card--standard.card--text,
.card--extend-height.card--media {
display: flex;
flex-direction: column
}
.card--extend-height.card--standard.card--text .card__inner,
.card--extend-height.card--media .card__inner {
flex-grow: 1
}
.card .icon-wrap {
margin-left: .8rem;
white-space: nowrap;
transition: transform var(--duration-short) ease;
overflow: hidden
}
.card-information>*+* {
margin-top: .5rem
}
.card-information {
width: 100%
}
.card-information>* {
line-height: calc(1 + .4 / var(--font-body-scale));
color: rgb(var(--color-foreground))
}
.card-information>.price {
color: rgb(var(--color-foreground))
}
.card--horizontal .card-information>.price {
color: rgba(var(--color-foreground), .75)
}
.card-information>.rating {
margin-top: .4rem
}
.card-information>*:not(.visually-hidden:first-child)+*:not(.rating):not(.card__information-volume-pricing-note) {
margin-top: .7rem
}
.card-information .caption {
letter-spacing: .07rem
}
.card-article-info {
margin-top: 1rem
}
.card--shape .card__content {
padding-top: 0
}
.card--shape.card--standard:not(.card--text) .card__inner {
border: 0;
background-color: transparent;
filter: drop-shadow(var(--shadow-horizontal-offset) var(--shadow-vertical-offset) var(--shadow-blur-radius) rgba(var(--color-shadow), var(--shadow-opacity)))
}
.card--shape.card--standard:not(.card--text) .card__inner:after {
display: none
}
.grid__item:nth-child(2n) .shape--blob {
clip-path: polygon(var(--shape--blob-2))
}
.grid__item:nth-child(3n) .shape--blob {
clip-path: polygon(var(--shape--blob-3))
}
.grid__item:nth-child(4n) .shape--blob {
clip-path: polygon(var(--shape--blob-4))
}
.grid__item:nth-child(5n) .shape--blob {
clip-path: polygon(var(--shape--blob-5))
}
.grid__item:nth-child(7n) .shape--blob {
clip-path: polygon(var(--shape--blob-6))
}
.grid__item:nth-child(8n) .shape--blob {
clip-path: polygon(var(--shape--blob-1))
}
@media (prefers-reduced-motion: no-preference) {
.product-card-wrapper .shape--round {
transition: clip-path var(--duration-long) ease
}
.product-card-wrapper:hover .shape--round {
clip-path: ellipse(47% 47% at 50% 50%)
}
.product-card-wrapper .shape--blob {
transition: clip-path var(--duration-long) ease-in-out
}
.product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-5))
}
.grid__item:nth-child(2n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-6))
}
.grid__item:nth-child(3n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-1))
}
.grid__item:nth-child(4n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-2))
}
.grid__item:nth-child(5n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-3))
}
.grid__item:nth-child(7n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-4))
}
.grid__item:nth-child(8n) .product-card-wrapper:hover .shape--blob {
clip-path: polygon(var(--shape--blob-5))
}
}
</style>
<style>
.price {
font-size: 1.6rem;
letter-spacing: .1rem;
line-height: calc(1 + .5 / var(--font-body-scale));
color: rgb(var(--color-foreground))
}
.price>* {
display: inline-block;
vertical-align: top
}
.price.price--unavailable {
visibility: hidden
}
.price--end {
text-align: right
}
.price .price-item {
display: inline-block;
margin: 0 1rem 0 0
}
.price__regular .price-item--regular {
margin-right: 0
}
.price:not(.price--show-badge) .price-item--last:last-of-type {
margin: 0
}
@media screen and (min-width: 750px) {
.price {
margin-bottom: 0
}
}
.price--large {
font-size: 1.6rem;
line-height: calc(1 + .5 / var(--font-body-scale));
letter-spacing: .13rem
}
@media screen and (min-width: 750px) {
.price--large {
font-size: 1.8rem
}
}
.price--sold-out .price__availability,
.price__regular {
display: block
}
.price__sale,
.price__availability,
.price .price__badge-sale,
.price .price__badge-sold-out,
.price--on-sale .price__regular,
.price--on-sale .price__availability {
display: none
}
.price--sold-out .price__badge-sold-out,
.price--on-sale .price__badge-sale,
.volume-pricing--sale-badge .price__badge-sale {
display: inline-block
}
.volume-pricing--sale-badge .price__badge-sale {
margin-left: .5rem
}
.price--on-sale .price__sale {
display: initial;
flex-direction: row;
flex-wrap: wrap
}
.price--center {
display: initial;
justify-content: center
}
.price--on-sale .price-item--regular {
text-decoration: line-through;
color: rgba(var(--color-foreground), .75);
font-size: 1.3rem
}
.unit-price {
display: block;
font-size: 1.1rem;
letter-spacing: .04rem;
line-height: calc(1 + .2 / var(--font-body-scale));
margin-top: .2rem;
text-transform: uppercase;
color: rgba(var(--color-foreground), .7)
}
</style>
<style>
.related-products {
display: block;
}
.related-products__heading {
margin: 0 0 3rem;
}
</style>
<style data-shopify>
.section-template--17040648077525__related-products-padding {
padding-top: 0px;
padding-bottom: 45px;
}
@media screen and (min-width: 750px) {
.section-template--17040648077525__related-products-padding {
padding-top: 0px;
padding-bottom: 60px;
}
}
</style>
<div class="color-background-1 gradient no-js-hidden">
<product-recommendations
class="related-products page-width section-template--17040648077525__related-products-padding isolate scroll-trigger animate--slide-in"
data-url="/recommendations/products?section_id=template--17040648077525__related-products&product_id=8226828321669&limit=4">
</product-recommendations>
</div>
</section>
</main>
<!-- BEGIN sections: footer-group -->
<section id="shopify-section-sections--17040648372437__newsletter"
class="shopify-section shopify-section-group-footer-group section">
<style>
.newsletter-form {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
position: relative
}
@media screen and (min-width: 750px) {
.newsletter-form {
align-items: flex-start;
margin: 0 auto;
max-width: 36rem
}
}
.newsletter-form__field-wrapper {
width: 100%
}
.newsletter-form__field-wrapper .field__input {
padding-right: 5rem
}
.newsletter-form__field-wrapper .field {
z-index: 0
}
.newsletter-form__message {
justify-content: center;
margin-bottom: 0
}
.newsletter-form__message--success {
margin-top: 2rem
}
@media screen and (min-width: 750px) {
.newsletter-form__message {
justify-content: flex-start
}
}
.newsletter-form__button {
width: 4.4rem;
margin: 0;
right: var(--inputs-border-width);
top: 0;
height: 100%;
z-index: 2
}
.newsletter-form__button:focus-visible {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .4rem rgba(var(--color-foreground));
background-color: rgb(var(--color-background))
}
.newsletter-form__button:focus {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .4rem rgba(var(--color-foreground));
background-color: rgb(var(--color-background))
}
.newsletter-form__button:not(:focus-visible):not(.focused) {
box-shadow: inherit;
background-color: inherit
}
.newsletter-form__button .icon {
width: 1.5rem
}
</style>
<style>
.newsletter__wrapper {
padding-right: calc(4rem / var(--font-body-scale));
padding-left: calc(4rem / var(--font-body-scale))
}
@media screen and (min-width: 750px) {
.newsletter__wrapper {
padding-right: 9rem;
padding-left: 9rem
}
}
.newsletter__wrapper>* {
margin-top: 0;
margin-bottom: 0
}
.newsletter__wrapper>*+* {
margin-top: 2rem
}
.newsletter__wrapper>*+.newsletter-form {
margin-top: 3rem
}
.newsletter__subheading {
max-width: 70rem;
margin-left: auto;
margin-right: auto
}
.newsletter__wrapper .newsletter-form__field-wrapper {
max-width: 36rem
}
.newsletter-form__field-wrapper .newsletter-form__message {
margin-top: 1.5rem
}
.newsletter__button {
margin-top: 3rem;
width: fit-content
}
@media screen and (min-width: 750px) {
.newsletter__button {
flex-shrink: 0;
margin: 0 0 0 1rem
}
}
</style>
<style data-shopify>
.section-sections--17040648372437__newsletter-padding {
padding-top: 21px;
padding-bottom: 0px;
}
@media screen and (min-width: 750px) {
.section-sections--17040648372437__newsletter-padding {
padding-top: 28px;
padding-bottom: 0px;
}
}
</style>
<div class="newsletter center ">
<div
class="newsletter__wrapper color-inverse gradient content-container isolate content-container--full-width section-sections--17040648372437__newsletter-padding">
<h2 class="inline-richtext h1 scroll-trigger animate--slide-in" data-cascade
style="--animation-order: 1;"><a href="https://illuzia.net/" title="illuzia.net"><strong>illuzia.net</strong></a></h2>
<div class="newsletter__subheading rte scroll-trigger animate--slide-in" data-cascade
style="--animation-order: 2;">
<p>KARTEL TOGEL ONLINE TERBESAR</p>
</div>
<div>
<form method="post" action="contact#contact_form" id="contact_form" accept-charset="UTF-8"
class="newsletter-form"><input type="hidden" name="form_type" value="customer" /><input
type="hidden" name="utf8" value="✓" />
<input type="hidden" name="contact[tags]" value="newsletter">
<div class="newsletter-form__field-wrapper scroll-trigger animate--slide-in" data-cascade
style="--animation-order: 3;">
<div class="field">
<input id="NewsletterForm--sections--17040648372437__newsletter" type="email"
name="contact[email]" class="field__input" value="" aria-required="true"
autocorrect="off" autocapitalize="off" autocomplete="email" placeholder="Email"
required>
<label class="field__label" for="NewsletterForm--sections--17040648372437__newsletter">
SITUS KOITOTO
</label>
<button type="submit" class="newsletter-form__button field__button" name="commit"
id="Subscribe" aria-label="Subscribe">
<svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false"
class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z"
fill="currentColor">
</svg>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<div id="shopify-section-sections--17040648372437__footer"
class="shopify-section shopify-section-group-footer-group">
<style>
.footer {
border-top: .1rem solid rgba(var(--color-foreground), .08)
}
.footer:not(.color-background-1) {
border-top: none
}
.footer__content-top {
padding-bottom: 5rem;
display: block
}
@media screen and (max-width: 749px) {
.footer .grid {
display: block
}
.footer-block.grid__item {
padding: 0;
margin: 4rem 0;
width: 100%
}
.footer-block.grid__item:first-child {
margin-top: 0
}
.footer__content-top {
padding-bottom: 3rem;
padding-left: calc(4rem / var(--font-body-scale));
padding-right: calc(4rem / var(--font-body-scale))
}
}
@media screen and (min-width: 750px) {
.footer__content-top .grid {
row-gap: 6rem;
margin-bottom: 0
}
}
.footer__content-bottom {
border-top: solid .1rem rgba(var(--color-foreground), .08);
padding-top: 3rem
}
.footer__content-bottom:only-child {
border-top: 0
}
.footer__content-bottom-wrapper {
display: flex;
width: 100%
}
@media screen and (max-width: 749px) {
.footer__content-bottom {
flex-wrap: wrap;
padding-top: 0;
padding-left: 0;
padding-right: 0;
row-gap: 1.5rem
}
.footer__content-bottom-wrapper {
flex-wrap: wrap;
row-gap: 1.5rem;
justify-content: center
}
}
.footer__localization:empty+.footer__column--info {
align-items: center
}
@media screen and (max-width: 749px) {
.footer__localization:empty+.footer__column {
padding-top: 1.5rem
}
}
.footer__column {
width: 100%;
align-items: flex-end
}
.footer__column--info {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding-left: 2rem;
padding-right: 2rem
}
@media screen and (min-width: 750px) {
.footer__column--info {
padding-left: 0;
padding-right: 0;
align-items: flex-end
}
}
.footer-block:only-child:last-child {
text-align: center;
max-width: 76rem;
margin: 0 auto
}
@media screen and (min-width: 750px) {
.footer-block {
display: block;
margin-top: 0
}
}
.footer-block:empty {
display: none
}
.footer-block--newsletter {
display: flex;
align-items: flex-end;
margin-top: 3rem;
gap: 1rem
}
.footer-block--newsletter:only-child {
margin-top: 0
}
@media screen and (max-width: 749px) {
.footer-block.footer-block--menu:only-child {
text-align: left
}
}
@media screen and (min-width: 750px) {
.footer-block--newsletter {
flex-wrap: nowrap;
justify-content: center
}
}
.footer-block__heading {
margin-bottom: 2rem;
margin-top: 0;
font-size: calc(var(--font-heading-scale) * 1.6rem)
}
@media screen and (min-width: 990px) {
.footer-block__heading {
font-size: calc(var(--font-heading-scale) * 1.8rem)
}
}
.footer__list-social:empty,
.footer-block--newsletter:empty {
display: none
}
.footer__follow-on-shop {
display: flex;
text-align: center
}
.footer__list-social.list-social:only-child {
justify-content: center
}
.footer-block__newsletter {
text-align: center;
flex-grow: 1
}
.newsletter-form__field-wrapper {
max-width: 36rem
}
@media screen and (min-width: 750px) {
.footer-block__newsletter:not(:only-child) {
text-align: left;
margin-right: auto
}
.footer-block__newsletter:not(:only-child) .footer__newsletter {
justify-content: flex-start;
margin: 0
}
.footer-block__newsletter:not(:only-child) .newsletter-form__message--success {
left: auto
}
.footer__follow-on-shop {
margin-bottom: .4rem
}
.footer__follow-on-shop:first-child:not(:last-child) {
justify-content: flex-start;
margin-right: auto;
text-align: left
}
.footer__follow-on-shop:not(:first-child):not(:last-child) {
justify-content: flex-end;
text-align: right
}
}
@media screen and (max-width: 749px) {
.footer-block--newsletter {
display: flex;
flex-direction: column;
flex: 1 1 100%;
align-items: center;
gap: 3rem
}
.footer__list-social.list-social,
.footer__follow-on-shop,
.footer-block__newsletter {
display: flex;
justify-content: center
}
.footer-block__newsletter {
flex-direction: column
}
}
@media screen and (min-width: 750px) {
.footer-block__newsletter+.footer__list-social {
margin-top: 0
}
}
.footer__localization {
display: flex;
flex-direction: row;
justify-content: center;
align-content: center;
flex-wrap: wrap;
padding: 1rem 1rem 0
}
.footer__localization:empty {
display: none
}
.footer__localization h2 {
margin: 1rem 1rem .5rem;
color: rgba(var(--color-foreground), .75)
}
@media screen and (min-width: 750px) {
.footer__localization {
padding: .4rem 0;
justify-content: flex-start
}
.footer__localization h2 {
margin: 1rem 0 0
}
}
@media screen and (max-width: 989px) {
.footer__localization noscript {
width: 100%
}
}
@media screen and (min-width: 750px) {
.footer__payment {
margin-top: 1.5rem
}
}
.footer__content-bottom-wrapper--center {
justify-content: center
}
.footer__copyright {
text-align: center;
margin-top: 1.5rem
}
@media screen and (min-width: 750px) {
.footer__content-bottom-wrapper:not(.footer__content-bottom-wrapper--center) .footer__copyright {
text-align: right
}
}
@keyframes appear-down {
0% {
opacity: 0;
margin-top: -1rem
}
to {
opacity: 1;
margin-top: 0
}
}
.footer-block__details-content {
margin-bottom: 4rem
}
@media screen and (min-width: 750px) {
.footer-block__details-content {
margin-bottom: 0
}
.footer-block__details-content>p,
.footer-block__details-content>li {
padding: 0
}
.footer-block:only-child li {
display: inline
}
.footer-block__details-content>li:not(:last-child) {
margin-right: 1.5rem
}
}
.footer-block__details-content .list-menu__item--link,
.copyright__content a {
color: rgba(var(--color-foreground), .75)
}
.footer-block__details-content .list-menu__item--active {
transition: text-decoration-thickness var(--duration-short) ease;
color: rgb(var(--color-foreground))
}
@media screen and (min-width: 750px) {
.footer-block__details-content .list-menu__item--link:hover,
.copyright__content a:hover {
color: rgb(var(--color-foreground));
text-decoration: underline;
text-underline-offset: .3rem
}
.footer-block__details-content .list-menu__item--active:hover {
text-decoration-thickness: .2rem
}
}
@media screen and (max-width: 989px) {
.footer-block__details-content .list-menu__item--link {
padding-top: 1rem;
padding-bottom: 1rem
}
}
@media screen and (min-width: 750px) {
.footer-block__details-content .list-menu__item--link {
display: inline-block;
font-size: 1.4rem
}
.footer-block__details-content>:first-child .list-menu__item--link {
padding-top: 0
}
}
.footer-block-image {
display: flex
}
.footer-block-image.left {
justify-content: flex-start
}
.footer-block-image.center {
justify-content: center
}
.footer-block-image.right {
justify-content: flex-end
}
@media screen and (max-width: 749px) {
.footer-block-image,
.footer-block-image.left,
.footer-block-image.center,
.footer-block-image.right {
justify-content: center
}
}
.footer-block__image-wrapper {
margin-bottom: 2rem;
overflow: hidden !important
}
.footer-block__image-wrapper img {
display: block;
height: auto;
max-width: 100%
}
.footer-block__brand-info {
text-align: left
}
.footer-block:only-child .footer-block__brand-info {
text-align: center
}
.footer-block:only-child>.footer-block__brand-info>.footer-block__image-wrapper {
margin-left: auto;
margin-right: auto
}
.footer-block-image>img,
.footer-block__brand-info>img {
height: auto
}
.footer-block:only-child .footer-block__brand-info .footer__list-social.list-social {
justify-content: center
}
.footer-block__brand-info .footer__list-social.list-social {
justify-content: flex-start;
margin-left: -1.3rem;
margin-right: -1.3rem
}
.footer-block__details-content .placeholder-svg {
max-width: 20rem
}
.copyright__content {
font-size: 1.1rem
}
.copyright__content a {
color: currentColor;
text-decoration: none
}
.policies {
display: inline
}
.policies li {
display: inline-flex;
justify-content: center;
align-items: center
}
.policies li:before {
content: "\b7";
padding: 0 .8rem
}
.policies li a {
padding: .6rem 0;
display: block
}
@media screen and (min-width: 750px) {
.policies li a {
padding: 0
}
}
@keyframes animateLocalization {
0% {
opacity: 0;
transform: translateY(0)
}
to {
opacity: 1;
transform: translateY(-1rem)
}
}
@supports not (inset: 10px) {
@media screen and (max-width: 749px) {
.footer .grid {
margin-left: 0
}
}
@media screen and (min-width: 750px) {
.footer__content-top .grid {
margin-left: -3rem
}
.footer__content-top .grid__item {
padding-left: 3rem
}
}
}
</style>
<style>
.newsletter-form {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
position: relative
}
@media screen and (min-width: 750px) {
.newsletter-form {
align-items: flex-start;
margin: 0 auto;
max-width: 36rem
}
}
.newsletter-form__field-wrapper {
width: 100%
}
.newsletter-form__field-wrapper .field__input {
padding-right: 5rem
}
.newsletter-form__field-wrapper .field {
z-index: 0
}
.newsletter-form__message {
justify-content: center;
margin-bottom: 0
}
.newsletter-form__message--success {
margin-top: 2rem
}
@media screen and (min-width: 750px) {
.newsletter-form__message {
justify-content: flex-start
}
}
.newsletter-form__button {
width: 4.4rem;
margin: 0;
right: var(--inputs-border-width);
top: 0;
height: 100%;
z-index: 2
}
.newsletter-form__button:focus-visible {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .4rem rgba(var(--color-foreground));
background-color: rgb(var(--color-background))
}
.newsletter-form__button:focus {
box-shadow: 0 0 0 .3rem rgb(var(--color-background)), 0 0 0 .4rem rgba(var(--color-foreground));
background-color: rgb(var(--color-background))
}
.newsletter-form__button:not(:focus-visible):not(.focused) {
box-shadow: inherit;
background-color: inherit
}
.newsletter-form__button .icon {
width: 1.5rem
}
</style>
<style>
.list-menu--right {
right: 0;
}
.list-menu--disclosure {
position: absolute;
min-width: 100%;
width: 20rem;
border: 1px solid rgba(var(--color-foreground), 0.2);
}
.list-menu--disclosure:focus {
outline: none;
}
.list-menu__item--active {
text-decoration: underline;
text-underline-offset: 0.3rem;
}
.list-menu__item--active:hover {
text-decoration-thickness: 0.2rem;
}
.list-menu--disclosure.localization-selector {
max-height: 18rem;
overflow: auto;
width: 10rem;
padding: 0.5rem;
}
</style>
<style>
.list-payment {
display: flex;
flex-wrap: wrap;
justify-content: center;
margin: -0.5rem 0;
padding-top: 1rem;
padding-left: 0;
}
@media screen and (min-width: 750px) {
.list-payment {
justify-content: flex-end;
margin: -0.5rem;
padding-top: 0;
}
}
.list-payment__item {
align-items: center;
display: flex;
padding: 0.5rem;
}
</style>
<style>
.list-social {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
}
@media only screen and (max-width: 749px) {
.list-social {
justify-content: center;
}
}
.list-social__item .icon {
height: 2.2rem;
width: 2.2rem;
}
.list-social__link {
align-items: center;
display: flex;
padding: 1.1rem;
color: rgb(var(--color-foreground));
}
.utility-bar .list-social__link {
padding: 0 0.8rem;
height: 3.8rem;
}
.list-social__link:hover .icon {
transform: scale(1.07);
}
</style>
<style data-shopify>
.footer {
margin-top: 0px;
}
.section-sections--17040648372437__footer-padding {
padding-top: 33px;
padding-bottom: 45px;
}
@media screen and (min-width: 750px) {
.footer {
margin-top: 0px;
}
.section-sections--17040648372437__footer-padding {
padding-top: 44px;
padding-bottom: 60px;
}
}
</style>
<footer class="footer color-inverse gradient section-sections--17040648372437__footer-padding">
<div class="footer__content-top page-width">
<div class="footer-block--newsletter scroll-trigger animate--slide-in" data-cascade></div>
</div>
<div class="footer__content-bottom scroll-trigger animate--slide-in" data-cascade>
<div class="footer__content-bottom-wrapper page-width">
<div class="footer__column footer__localization isolate"></div>
<div class="footer__column footer__column--info">
<div class="footer__payment">
<span class="visually-hidden">Payment methods</span>
<ul class="list list-payment" role="list"></ul>
</div>
</div>
</div>
<div class="footer__content-bottom-wrapper page-width">
<div class="footer__copyright caption">
<small class="copyright__content">© 2024, <a href="https://illuzia.net/" title="KOITOTO">KOITOTO</a></small>
<small class="copyright__content"><a target="_blank" rel="nofollow">Powered by Situs Togel Online</a></small>
</div>
</div>
</div>
</footer>
<br>
<style>
.fixed-footer {
display: flex;
justify-content: space-around;
position: fixed;
background: linear-gradient(to bottom, #ff0000 0%, #a30000 50%, #4d0000 100%);
padding: 5px 0;
box-shadow: 0 0 8px 4px #666;
left: 0;
right: 0;
bottom: 0;
z-index: 99
}
.fixed-footer a {
flex-basis: calc((100% - 15px*6)/ 5);
text-decoration: none;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
max-width: 75px;
font-size: 12px;
font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
.fixed-footer a:hover {
font-weight: bold;
}
.fixed-footer .center {
transform: scale(1.5) translateY(-5px);
background: center no-repeat;
background-size: contain;
background-color: inherit;
border-radius: 50%;
}
.fixed-footer img {
max-width: 20px;
margin-bottom: 0;
max-height: 20px;
}
</style>
<div class="fixed-footer">
<a href="https://mikale.me/promo-koi" rel="nofollow noopener" target="_blank">
<img layout="intrinsic" height="20px" width="20px"
src="https://imgstore.io/images/2024/09/24/iconpromo.png"
alt="PROMO TOGEL ONLINE">
Bonus
</a>
<a href="https://koipasti.ink" rel="nofollow noopener" target="_blank">
<img layout="intrinsic" height="20px" width="20px"
src="https://imgstore.io/images/2024/09/24/iconlogin.png"
alt="LOGIN TOGEL ONLINE">
Login
</a>
<a href="https://mikale.me/renkt" rel="nofollow noopener" target="_blank" class="tada">
<img layout="intrinsic" height="50" width="50"
src="https://imgstore.io/images/2024/09/24/icondaftar.png"
alt="DAFTAR TOGEL ONLINE">
Daftar
</a>
<a href="https://koipasti.ink" rel="nofollow noopener" target="_blank">
<img layout="intrinsic" height="20px" width="20px"
src="https://imgstore.io/images/2024/11/04/iconlinkalternatif.png"
alt="ALTERNATIF TOGEL ONLINE">
Alternatif
</a>
<a href="https://direct.lc.chat/13532091" rel="nofollow noopener" target="_blank"
class="js_live_chat_link live-chat-link">
<img class="live-chat-icon" layout="intrinsic" height="20px" width="20px"
src="https://imgstore.io/images/2024/09/24/iconlivechat.png"
alt="CHAT TOGEL ONLINE">
Live Chat
</a>
</div>
</div>
<!-- END sections: footer-group -->
<ul hidden>
<li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
<li id="a11y-new-window-message">Opens in a new window.</li>
</ul>
<script>
window.shopUrl = 'https://illuzia.net/';
window.routes = {
cart_add_url: '/cart/add',
cart_change_url: '/cart/change',
cart_update_url: '/cart/update',
cart_url: '/cart',
predictive_search_url: '/search/suggest',
};
window.cartStrings = {
error: `There was an error while updating your cart. Please try again.`,
quantityError: `You can only add [quantity] of this item to your cart.`,
};
window.variantStrings = {
addToCart: `Add to cart`,
soldOut: `Sold out`,
unavailable: `Unavailable`,
unavailable_with_option: `[value] - Unavailable`,
};
window.quickOrderListStrings = {
itemsAdded: `[quantity] items added`,
itemAdded: `[quantity] item added`,
itemsRemoved: `[quantity] items removed`,
itemRemoved: `[quantity] item removed`,
viewCart: `View cart`,
each: `[money]/ea`,
};
window.accessibilityStrings = {
imageAvailable: `Image [index] is now available in gallery view`,
shareSuccess: `Link copied to clipboard`,
pauseSlideshow: `Pause slideshow`,
playSlideshow: `Play slideshow`,
recipientFormExpanded: `Gift card recipient form expanded`,
recipientFormCollapsed: `Gift card recipient form collapsed`,
};
</script>
<script>
/** Shopify CDN: Minification failed
Line 16:0 Transforming class syntax to the configured target environment ("es5") is not supported yet
Line 17:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 29:21 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 38:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 42:10 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 44:4 Transforming const to the configured target environment ("es5") is not supported yet
Line 64:14 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 68:13 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 78:9 Transforming object literal extensions to the configured target environment ("es5") is not supported yet
Line 79:4 Transforming const to the configured target environment ("es5") is not supported yet
... and 31 more hidden warnings
**/
class PredictiveSearch extends SearchForm {
constructor() {
super();
this.cachedResults = {};
this.predictiveSearchResults = this.querySelector('[data-predictive-search]');
this.allPredictiveSearchInstances = document.querySelectorAll('predictive-search');
this.isOpen = false;
this.abortController = new AbortController();
this.searchTerm = '';
this.setupEventListeners();
}
setupEventListeners() {
this.input.form.addEventListener('submit', this.onFormSubmit.bind(this));
this.input.addEventListener('focus', this.onFocus.bind(this));
this.addEventListener('focusout', this.onFocusOut.bind(this));
this.addEventListener('keyup', this.onKeyup.bind(this));
this.addEventListener('keydown', this.onKeydown.bind(this));
}
getQuery() {
return this.input.value.trim();
}
onChange() {
super.onChange();
const newSearchTerm = this.getQuery();
if (!this.searchTerm || !newSearchTerm.startsWith(this.searchTerm)) {
// Remove the results when they are no longer relevant for the new search term
// so they don't show up when the dropdown opens again
this.querySelector('#predictive-search-results-groups-wrapper')?.remove();
}
// Update the term asap, don't wait for the predictive search query to finish loading
this.updateSearchForTerm(this.searchTerm, newSearchTerm);
this.searchTerm = newSearchTerm;
if (!this.searchTerm.length) {
this.close(true);
return;
}
this.getSearchResults(this.searchTerm);
}
onFormSubmit(event) {
if (!this.getQuery().length || this.querySelector('[aria-selected="true"] a')) event.preventDefault();
}
onFormReset(event) {
super.onFormReset(event);
if (super.shouldResetForm()) {
this.searchTerm = '';
this.abortController.abort();
this.abortController = new AbortController();
this.closeResults(true);
}
}
onFocus() {
const currentSearchTerm = this.getQuery();
if (!currentSearchTerm.length) return;
if (this.searchTerm !== currentSearchTerm) {
// Search term was changed from other search input, treat it as a user change
this.onChange();
} else if (this.getAttribute('results') === 'true') {
this.open();
} else {
this.getSearchResults(this.searchTerm);
}
}
onFocusOut() {
setTimeout(() => {
if (!this.contains(document.activeElement)) this.close();
});
}
onKeyup(event) {
if (!this.getQuery().length) this.close(true);
event.preventDefault();
switch (event.code) {
case 'ArrowUp':
this.switchOption('up');
break;
case 'ArrowDown':
this.switchOption('down');
break;
case 'Enter':
this.selectOption();
break;
}
}
onKeydown(event) {
// Prevent the cursor from moving in the input when using the up and down arrow keys
if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {
event.preventDefault();
}
}
updateSearchForTerm(previousTerm, newTerm) {
const searchForTextElement = this.querySelector('[data-predictive-search-search-for-text]');
const currentButtonText = searchForTextElement?.innerText;
if (currentButtonText) {
if (currentButtonText.match(new RegExp(previousTerm, 'g')).length > 1) {
// The new term matches part of the button text and not just the search term, do not replace to avoid mistakes
return;
}
const newButtonText = currentButtonText.replace(previousTerm, newTerm);
searchForTextElement.innerText = newButtonText;
}
}
switchOption(direction) {
if (!this.getAttribute('open')) return;
const moveUp = direction === 'up';
const selectedElement = this.querySelector('[aria-selected="true"]');
// Filter out hidden elements (duplicated page and article resources) thanks
// to this https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent
const allVisibleElements = Array.from(this.querySelectorAll('li, button.predictive-search__item')).filter(
(element) => element.offsetParent !== null
);
let activeElementIndex = 0;
if (moveUp && !selectedElement) return;
let selectedElementIndex = -1;
let i = 0;
while (selectedElementIndex === -1 && i <= allVisibleElements.length) {
if (allVisibleElements[i] === selectedElement) {
selectedElementIndex = i;
}
i++;
}
this.statusElement.textContent = '';
if (!moveUp && selectedElement) {
activeElementIndex = selectedElementIndex === allVisibleElements.length - 1 ? 0 : selectedElementIndex + 1;
} else if (moveUp) {
activeElementIndex = selectedElementIndex === 0 ? allVisibleElements.length - 1 : selectedElementIndex - 1;
}
if (activeElementIndex === selectedElementIndex) return;
const activeElement = allVisibleElements[activeElementIndex];
activeElement.setAttribute('aria-selected', true);
if (selectedElement) selectedElement.setAttribute('aria-selected', false);
this.input.setAttribute('aria-activedescendant', activeElement.id);
}
selectOption() {
const selectedOption = this.querySelector('[aria-selected="true"] a, button[aria-selected="true"]');
if (selectedOption) selectedOption.click();
}
getSearchResults(searchTerm) {
const queryKey = searchTerm.replace(' ', '-').toLowerCase();
this.setLiveRegionLoadingState();
if (this.cachedResults[queryKey]) {
this.renderSearchResults(this.cachedResults[queryKey]);
return;
}
fetch(`${routes.predictive_search_url}?q=${encodeURIComponent(searchTerm)}§ion_id=predictive-search`, {
signal: this.abortController.signal,
})
.then((response) => {
if (!response.ok) {
var error = new Error(response.status);
this.close();
throw error;
}
return response.text();
})
.then((text) => {
const resultsMarkup = new DOMParser()
.parseFromString(text, 'text/html')
.querySelector('#shopify-section-predictive-search').innerHTML;
// Save bandwidth keeping the cache in all instances synced
this.allPredictiveSearchInstances.forEach((predictiveSearchInstance) => {
predictiveSearchInstance.cachedResults[queryKey] = resultsMarkup;
});
this.renderSearchResults(resultsMarkup);
})
.catch((error) => {
if (error?.code === 20) {
// Code 20 means the call was aborted
return;
}
this.close();
throw error;
});
}
setLiveRegionLoadingState() {
this.statusElement = this.statusElement || this.querySelector('.predictive-search-status');
this.loadingText = this.loadingText || this.getAttribute('data-loading-text');
this.setLiveRegionText(this.loadingText);
this.setAttribute('loading', true);
}
setLiveRegionText(statusText) {
this.statusElement.setAttribute('aria-hidden', 'false');
this.statusElement.textContent = statusText;
setTimeout(() => {
this.statusElement.setAttribute('aria-hidden', 'true');
}, 1000);
}
renderSearchResults(resultsMarkup) {
this.predictiveSearchResults.innerHTML = resultsMarkup;
this.setAttribute('results', true);
this.setLiveRegionResults();
this.open();
}
setLiveRegionResults() {
this.removeAttribute('loading');
this.setLiveRegionText(this.querySelector('[data-predictive-search-live-region-count-value]').textContent);
}
getResultsMaxHeight() {
this.resultsMaxHeight =
window.innerHeight - document.querySelector('.section-header').getBoundingClientRect().bottom;
return this.resultsMaxHeight;
}
open() {
this.predictiveSearchResults.style.maxHeight = this.resultsMaxHeight || `${this.getResultsMaxHeight()}px`;
this.setAttribute('open', true);
this.input.setAttribute('aria-expanded', true);
this.isOpen = true;
}
close(clearSearchTerm = false) {
this.closeResults(clearSearchTerm);
this.isOpen = false;
}
closeResults(clearSearchTerm = false) {
if (clearSearchTerm) {
this.input.value = '';
this.removeAttribute('results');
}
const selected = this.querySelector('[aria-selected="true"]');
if (selected) selected.setAttribute('aria-selected', false);
this.input.setAttribute('aria-activedescendant', '');
this.removeAttribute('loading');
this.removeAttribute('open');
this.input.setAttribute('aria-expanded', false);
this.resultsMaxHeight = false;
this.predictiveSearchResults.removeAttribute('style');
}
}
customElements.define('predictive-search', PredictiveSearch);
</script>
</body>
</html>