<!doctype html>
<html class="no-js" lang="en">
<head
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="0b0318">
<link rel="canonical" href="https://perindusukma.com/">
<link rel="preconnect" href="https://fonts.shopifycdn.com/" crossorigin>
<title>RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan</title>
<meta name="description"
content="RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.">
<meta name="keywords"
content="rdtoto, rd toto, rdtoto login, rdtoto daftar, situs togel, bandar togel, togel online, agen togel, agen casino online, bandar togel online, bandar togel terpercaya, slot online, togel sydney, togel singapore, togel hongkong, toto macau" />
<link rel="amphtml" href="https://pub-e0843678acaf4e24a25eb8c568848ff7.r2.dev/perindusukma.html" />
<link rel="preload" as="script" href="../../../../cdn.ampproject.org/v1.js">
<meta name="google-site-verification" content="PkK8kNK6KuFbGP3WpxHMXpm36IhFp4xwMP2QvLh0DK8" />
<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="RDTOTO">
<meta name="author" content="RDTOTO">
<meta name="distribution" content="global">
<meta name="publisher" content="RDTOTO">
<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://i.postimg.cc/nghqsybg/pngtree-red-dragon-vector-png-image-11053312-removebg-preview.png">
<meta property="og:locale" content="id_ID" />
<meta property="og:site_name" content="RDTOTO">
<meta property="og:url" content="https://perindusukma.com/">
<meta property="og:title" content="RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan">
<meta property="og:type" content="product">
<meta property="og:description"
content="RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.">
<meta property="og:image" content="https://i.postimg.cc/VNXYKNc1/assss.png">
<meta property="og:image:secure_url"
content="https://i.postimg.cc/VNXYKNc1/assss.png">
<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="RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan">
<meta name="twitter:description"
content="RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.">
<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://perindusukma.com/"></script>
<script id="shopify-features" type="application/json">
{
"accessToken": "bd35w3423f0855sf383c4483c3cc50a6",
"betas": ["rich-media-storefront-analytics"],
"domain": "https://perindusukma.com/",
"predictiveSearch": true,
"shopId": 37356114305,
"smart_payment_buttons_url": "https:\/\/allamericanwindowtinting.com\/cdn\/shopifycloud\/payment-sheet\/assets\/latest\/spb.en.js",
"dynamic_checkout_cart_url": "https:\/\/allamericanwindowtinting.com\/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": "RDTOTO",
"operatingSystem": "ANDROID",
"applicationCategory": "GameApplication",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5",
"ratingCount": "2907771"
},
"offers": {
"@type": "Offer",
"price": "5000.00",
"priceCurrency": "IDR"
}
}
</script>
<script>
var Shopify = Shopify || {};
Shopify.shop = "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan";
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://perindusukma.com//cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "https://perindusukma.com/";
</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://perindusukma.com/",
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://perindusukma.com//cdn/fonts/questrial/questrial_n4.0ba6d2b6094954bab23732c75d3ecb4c47a5869c.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=2ddb1e040059f191fdb3e184199ec4bc383d5aa55a6213bf798372c9da87d664) format("woff2"), url(http://https://perindusukma.com//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://perindusukma.com//cdn/fonts/archivo/archivo_n7.6f363ab30b12ea00d5e6243ed0e977a11393a3ad.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=6cc30ef697b84bb8f7f3bf9979eb1a3b3e1410751b95cc93dce027cd0262d372) format("woff2"), url(http://https://perindusukma.com//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, #ff0505 0, #6d0000 100%)
}
.register,
.register-button {
background: linear-gradient(to bottom, #ff0505 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: #050000;
--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: #ff0505;
--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://perindusukma.com/cdn/fonts/questrial/questrial_n4.0ba6d2b6094954bab23732c75d3ecb4c47a5869c.woff2?h1=N2ViNWQ0LTMuYWNjb3VudC5teXNob3BpZnkuY29t&h2=eHh4LmRlcm1hYmxlbmQuY29t&hmac=2ddb1e040059f191fdb3e184199ec4bc383d5aa55a6213bf798372c9da87d664"
type="font/woff2" crossorigin>
<link rel="preload" as="font"
href="https://perindusukma.com/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://perindusukma.com/", 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://perindusukma.com/",
cdnBaseUrl: "https://perindusukma.com/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://i.postimg.cc/VNXYKNc1/assss.png"
},
"price": {
"amount": 5.000,
"currencyCode": "IDR"
},
"product": {
"id": "8226828321669",
"title": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"untranslatedTitle": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"url": "https://perindusukma.com/",
"vendor": "RDTOTO",
"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://i.postimg.cc/VNXYKNc1/assss.png"
},
"price": {
"amount": 5.000,
"currencyCode": "IDR"
},
"product": {
"id": "8226828321669",
"title": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"untranslatedTitle": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"url": "https://perindusukma.com/",
"vendor": "RDTOTO",
"type": ""
},
"sku": "",
"title": "Default Title",
"untranslatedTitle": "Default Title"
}
});
}, "https://perindusukma.com/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": "RDTOTO",
"type": "",
"variants": [{
"id": 43114192093653,
"price": 5.000,
"name": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"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: "//allamericanwindowtinting.com/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: "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
price: "5000.0",
sku: "",
brand: "RDTOTO",
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: "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
price: "5000.0",
sku: "",
brand: "RDTOTO",
variant: null,
category: "",
nonInteraction: !0,
referer: "https://perindusukma.com/"
}))
}
});
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://perindusukma.com/",
"url":"https://perindusukma.com/",
"name":"RDTOTO",
"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://perindusukma.com/",
"name":"RDTOTO",
"isPartOf":{"@id":"#website"},
"description":"RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.",
"breadcrumb":{"@id":"#breadcrumb"},
"inLanguage":"id-ID",
"potentialAction":[{"@type":"ReadAction",
"target":["https://perindusukma.com/"]}]},
{"@type":"BreadcrumbList",
"@id":"#breadcrumb",
"itemListElement":[{"@type":"ListItem",
"position":1,
"name":"Home"}]}]}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Game",
"name": "RDTOTO",
"author": { "@type": "Person",
"name": "RDTOTO" },
"headline": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"description": "RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.",
"keywords":"RDTOTO, RDTOTO login, RDTOTO daftar, prediksi RDTOTO, situs rdtoto, situs togel",
"image": "https://i.postimg.cc/VNXYKNc1/assss.png",
"url": "https://perindusukma.com/",
"publisher": { "@type": "Organization", "name": "RDTOTO" },
"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://perindusukma.com/",
"headline": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"name": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"url": "https://perindusukma.com/",
"description": "RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.",
"image": "https://i.postimg.cc/VNXYKNc1/assss.png",
"datePublished": "2024-07-08T10:42:40+00:00",
"dateModified": "2024-07-08T10:42:40+00:00",
"author": {
"@type": "Person",
"name": "RDTOTO",
"url": "https://perindusukma.com/"
},
"publisher": {
"@type": "Organization",
"name": "https://perindusukma.com/",
"description": "RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.",
"logo": {
"@type": "ImageObject",
"url": "https://i.postimg.cc/VNXYKNc1/assss.png",
"width": 600,
"height": 60
}
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "RDTOTO",
"alternateName": "RDTOTO",
"url": "https://perindusukma.com/",
"logo": "https://i.postimg.cc/7Z8rC1R8/logo.png",
"description": "RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.",
"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/RDTOTO",
"https://twitter.com/RDTOTO",
"https://perindusukma.com/"
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Apa itu RDTOTO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "RDTOTO adalah situs togel online yang sudah berdiri dari 2014 sampai sekarang."
}
},{
"@type": "Question",
"name": "Apa itu Togel?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Togel adalah permainan tebak angka dengan bayaran yang fantastis jika angka yang dibetting kenak."
}
},{
"@type": "Question",
"name": "Apakah RDTOTO aman untuk dimainkan?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ya, RDTOTO menggunakan sistem keamanan canggih untuk melindungi data dan transaksi Anda, memastikan pengalaman bermain yang aman dan nyaman."
}
},{
"@type": "Question",
"name": "Bagaimana cara melakukan deposit di RDTOTO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Anda bisa melakukan deposit melalui berbagai metode pembayaran yang tersedia, seperti transfer bank, e-wallet, atau pulsa. Panduan lengkap dapat dilihat di halaman deposit situs kami."
}
}]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://perindusukma.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "RDTOTO",
"item": "https://perindusukma.com/"
},
{
"@type": "ListItem",
"position": 3,
"name": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"item": "https://perindusukma.com/"
}
]
}
</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">LINK ALTERNATIF</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://perindusukma.com/" class="button">
RDTOTO
</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://perindusukma.com/" 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://perindusukma.com/');
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>RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan</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://perindusukma.com/"
class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
SITUS RDTOTO
</a></li>
<li><a id="HeaderDrawer-catalog" href="https://perindusukma.com/"
class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
AGEN TOGEL ONLINE
</a></li>
<li><a id="HeaderDrawer-contact" href="https://perindusukma.com/"
class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
TOTO TOGEL
</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://tekan.in/MmIUz" 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://tekan.in/MmIUz"><img
src="https://kilat.digital/images/2023/12/20/bd350c38cdf02a19edcb5022f4d46f19.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://i.postimg.cc/7Z8rC1R8/logo.png"
alt="Rdtoto" 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>RDTOTO</span>
</a></li>
<li><a id="HeaderMenu-catalog"
class="header__menu-item list-menu__item link link--text focus-inset">
<span>TOGEL ONLINE</span>
</a></li>
<li><a id="HeaderMenu-contact"
class="header__menu-item list-menu__item link link--text focus-inset">
<span>LINK ALTERNATIF</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://tekan.in/MmIUz" 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://tekan.in/MmIUz"><img
src="https://kilat.digital/images/2023/12/20/bd350c38cdf02a19edcb5022f4d46f19.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": "RDTOTO",
"sameAs": ["", "", "", "", "", "", "", "", ""],
"url": "https://perindusukma.com/"
}
</script>
</div>
<!-- END sections: header-group -->
<div class="n-columns-2">
<a href="https://shortjeans.org/" rel="nofollow noreferrer" class="login">LOGIN</a>
<a href="https://shortjeans.org/" 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://i.postimg.cc/VNXYKNc1/assss.png"
alt="RDTOTO"
srcset="https://i.postimg.cc/VNXYKNc1/assss.png 246w, https://i.postimg.cc/VNXYKNc1/assss.png 493w, https://i.postimg.cc/VNXYKNc1/assss.png 600w, https://i.postimg.cc/VNXYKNc1/assss.png 713w, https://i.postimg.cc/VNXYKNc1/assss.png3 823w, https://i.postimg.cc/VNXYKNc1/assss.png 990w, https://i.postimg.cc/VNXYKNc1/assss.png 1100w, https://i.postimg.cc/VNXYKNc1/assss.png 1206w, https://i.postimg.cc/VNXYKNc1/assss.png 1346w, https://i.postimg.cc/VNXYKNc1/assss.png 1426w, https://i.postimg.cc/VNXYKNc1/assss.png 1646w, https://i.postimg.cc/VNXYKNc1/assss.png 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://i.postimg.cc/VNXYKNc1/assss.png"
alt="Rdtoto" 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://perindusukma.com/"
class="product__info-container product__column-sticky">
<p class="product__text inline-richtext">RDTOTO</p>
<div class="product__title">
<h1>RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan</h1>
<a href="https://perindusukma.com/" class="product__title">
<h2 class="h1">
RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan
</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://perindusukma.com/"
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://perindusukma.com/"
data-section="template--17040648077525__main">
<button class="quantity__button no-js-hidden" name="minus" type="button">
<span class="visually-hidden">Decrease quantity for RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan</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 RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan</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://tekan.in/MmIUz"
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://perindusukma.com/" 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;
<a href="https://perindusukma.com/">RDTOTO</a>
}
</style>
<div class="product__description rte quick-add-hidden">
<p> <a href="https://perindusukma.com">Rdtoto</a> APK Togel adalah aplikasi yang memungkinkan para penggemar togel untuk bermain taruhan secara online melalui ponsel mereka. Aplikasi ini menawarkan berbagai jenis permainan togel, baik yang berasal dari dalam negeri maupun internasional. Pengguna dapat mengakses berbagai pasaran togel terkenal, seperti Togel Singapore, Togel Hongkong, hingga pasaran-pasaran lainnya.Yang membuat RDTOTO APK Togel semakin menarik adalah kemudahan yang ditawarkan dalam hal deposit. Pemain dapat melakukan deposit pulsa untuk memulai permainan, yang tentunya jauh lebih praktis dibandingkan dengan metode transfer melalui bank atau e-wallet lainnya.</p>
<h2> Keuntungan Menggunakan RDTOTO APK Togel Deposit Pulsa </h2>
<h3> 1.Kemudahan Deposit Pulsa </h3>
<p>Salah satu kelebihan terbesar dari <a href="https://perindusukma.com">Rdtoto Apk Togel</a> adalah opsi deposit pulsa. Pengguna tidak perlu ribet mengurus transfer antar rekening bank, karena mereka cukup melakukan deposit pulsa dari nomor ponsel yang mereka gunakan. Hal ini membuat proses transaksi menjadi lebih cepat dan tanpa hambatan, bahkan bagi mereka yang tidak memiliki rekening bank.</p>
<h3> 2.Akses Mudah dan Praktis </h3>
<p>Aplikasi ini dapat diunduh dan diinstal dengan mudah di perangkat Android atau iOS. Dengan tampilan yang user-friendly, pemain dapat langsung memulai permainan togel dengan mengakses berbagai pasaran togel dengan cepat. Aplikasi ini dirancang untuk memudahkan pemain dalam memasang taruhan tanpa kesulitan.</p>
<h3> 3.Transaksi Aman dan Terpercaya </h3>
<p>Keamanan transaksi menjadi prioritas utama dalam RDTOTO APK Togel. Aplikasi ini menggunakan sistem enkripsi untuk melindungi data dan informasi pribadi penggunanya. Selain itu, dengan deposit pulsa, pemain tidak perlu khawatir tentang masalah perbankan atau data yang rentan dicuri.</p>
<h3> 4.Pilihan Pasaran yang Beragam </h3>
<p>RDTOTO menawarkan berbagai macam pasaran togel terkenal yang dapat diikuti oleh para pemain. Mulai dari pasaran lokal seperti Togel Singapore dan Togel Hongkong, hingga pasaran internasional lainnya. Dengan banyaknya pilihan pasaran, pemain bisa menyesuaikan dengan jenis taruhan yang mereka inginkan.</p>
<h3> 5.Bonus dan Promosi Menarik </h3>
<p>Banyak aplikasi togel online, termasuk RDTOTO APK Togel, menawarkan berbagai bonus dan promosi kepada pemainnya. Ini bisa berupa bonus pendaftaran, bonus deposit, hingga promosi khusus lainnya. Dengan bonus ini, pemain dapat meningkatkan peluang mereka dalam memenangkan taruhan.</p>
<h2>Cara Menggunakan RDTOTO APK Togel Deposit Pulsa</h2>
<p>Berikut adalah langkah-langkah untuk menggunakan RDTOTO APK Togel Deposit Pulsa:</p>
<h3>1.Download dan Install Aplikasi</h3>
<p>Pertama, unduh RDTOTO APK Togel dari situs resmi atau link yang terpercaya. Setelah itu, instal aplikasi tersebut di perangkat ponsel Anda.</p>
<h3>2.Registrasi Akun</h3>
<p>Setelah aplikasi terpasang, buka aplikasi dan lakukan registrasi dengan mengisi data diri yang diperlukan. Biasanya, pemain diminta untuk membuat username dan password untuk akun mereka.</p>
<h3>3.Lakukan Deposit Pulsa</h3>
<p>Setelah akun berhasil dibuat, pemain dapat melakukan deposit pulsa sesuai dengan nominal yang diinginkan. Pilih metode deposit pulsa yang disediakan oleh aplikasi, dan ikuti langkah-langkah untuk menyelesaikan transaksi.</p>
<h3>4.Pilih Pasaran dan Mulai Bertaruh</h3>
<p>Setelah deposit berhasil, pemain dapat memilih pasaran togel yang ingin dimainkan. Kemudian, pilih jenis taruhan yang diinginkan dan pasang nomor pilihan Anda.</p>
<h3>5.Menang dan Tarik Menangannya</h3>
<p>Jika berhasil menang, pemain dapat menarik kemenangan mereka melalui metode yang telah disediakan oleh aplikasi. Beberapa aplikasi bahkan memungkinkan penarikan melalui pulsa, memberikan kemudahan bagi pemain yang tidak ingin ribet dengan transaksi perbankan.</p>
<h2>Mengapa RDTOTO APK Togel Deposit Pulsa Populer?</h2>
<h3>1.Kemudahan Akses dan Transaksi Cepat</h3>
<p>Penggunaan pulsa sebagai metode deposit menjadi pilihan populer bagi banyak orang karena lebih praktis dan cepat dibandingkan dengan menggunakan rekening bank atau metode pembayaran lainnya. Tidak perlu khawatir tentang masalah transfer atau waktu yang dibutuhkan untuk memproses transaksi.</p>
<h3>2.Fleksibilitas dalam Bermain</h3>
<p>Dengan aplikasi ini, pemain bisa bermain togel kapan saja dan di mana saja, asalkan terhubung dengan jaringan internet. RDTOTO APK Togel memberikan kebebasan kepada pemain untuk mengatur waktu bermain mereka tanpa batasan.</p>
<h3>3.Bersaing dengan Platform Lain</h3>
<p>Karena banyaknya pemain yang beralih ke platform yang menawarkan kemudahan transaksi seperti deposit pulsa, aplikasi ini berhasil bersaing dengan platform togel lainnya yang mengutamakan kenyamanan dan kemudahan para pemainnya.</p>
<h2>Kesimpulan</h2>
<p>RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online. Dengan kemudahan deposit menggunakan pulsa, akses ke berbagai pasaran togel, dan berbagai keuntungan lainnya, aplikasi ini menjadi solusi praktis yang banyak dicari. Meski begitu, tetap penting untuk bermain dengan bijak dan bertanggung jawab, serta memastikan Anda memilih aplikasi togel yang terpercaya dan aman.
</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://perindusukma.com/" 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://perindusukma.com/" 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://i.postimg.cc/VNXYKNc1/assss.png"
sizes="(min-width: 750px) calc(100vw - 22rem), 1100px"
src="https://i.postimg.cc/VNXYKNc1/assss.png"
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://perindusukma.com/');
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": "RDTOTO APK Togel Deposit Pulsa Tercepat Tanpa Potongan",
"url": "https://perindusukma.com/",
"image": ["https://i.postimg.cc/VNXYKNc1/assss.png"],
"description": "RDTOTO APK Togel Deposit Pulsa adalah pilihan tepat bagi para pecinta togel yang mencari cara cepat dan mudah untuk bermain online.",
"brand": {
"@type": "Brand",
"name": "RDTOTO"
},
"offers": [{
"@type": "Offer",
"availability": "http://schema.org/InStock",
"price": 5000.0,
"priceCurrency": "IDR",
"url": "https://perindusukma.com/"
}]
}
</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;">
Situs Toto Slot No 1
</h2>
<div class="newsletter__subheading rte scroll-trigger animate--slide-in" data-cascade
style="--animation-order: 2;">
<p>RDTOTO</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 RDTOTO
</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://perindusukma.com/">RDTOTO</a></small>
<small class="copyright__content"><a target="_blank" rel="nofollow">Powered by Situs Toto Slot No 1</a></small>
</div>
</div>
</div>
</footer>
<style>
.fixed-footer {
display: flex;
justify-content: space-around;
position: fixed;
background: linear-gradient(to bottom, #ff0505 0%, #ff0505 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://tekan.in/MmIUz" rel="nofollow noopener" target="_blank">
<img layout="intrinsic" height="20px" width="20px"
src="https://kilat.digital/images/2023/12/22/b3f1b578ebdb270700ff9b0c9475cf69.png"
alt="PROMO RDTOTO">
Bonus
</a>
<a href="https://tekan.in/MmIUz" rel="nofollow noopener" target="_blank">
<img layout="intrinsic" height="20px" width="20px"
src="https://kilat.digital/images/2023/12/20/6b2ffffc4e97bb30e6d922ced607f802.png"
alt="LOGIN RDTOTO">
Login
</a>
<a href="https://tekan.in/MmIUz" rel="nofollow noopener" target="_blank" class="tada">
<img layout="intrinsic" height="50" width="50"
src="https://kilat.digital/images/2023/12/20/bd350c38cdf02a19edcb5022f4d46f19.png"
alt="DAFTAR RDTOTO">
Daftar
</a>
<a href="https://tekan.in/MmIUz" rel="nofollow noopener" target="_blank">
<img layout="intrinsic" height="20px" width="20px"
src="https://kilat.digital/images/2023/12/22/2b1184d165c244636c89bef160799697.png"
alt="LINK RDTOTO">
Link
</a>
<a href="https://tekan.in/MmIUz" 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://kilat.digital/images/2023/12/20/ed94593b02796a81fe558659411b7562.png"
alt="LIVECHAT RDTOTO">
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://perindusukma.com/';
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>
</html>