{"product_id":"tuni-g3-64mm-flat-burr-coffee-grinder-100-grind-settings-electric-espresso-grinder-with-single-dose-set-commercial-grade-precision-touchscreen-anti-static-tech-stainless-steel-ivory","title":"Tuni G3 coffee grinder 64mm Flat Burr Coffee Grinder, 100 Grind Settings Electric Espresso Grinder with Single Dose Set | Commercial Grade Precision, Touchscreen | Anti-Static Tech | Stainless Steel (Ivory)","description":"\u003ch2 id=\"tinymce_scroll_sign\"\u003eExplore the Tuni G3 Coffee Grinder: Precision and Innovation Combined\u003c\/h2\u003e\n\u003cstyle\u003e\n    .aplus-v2 .aplus-content-wrapper {\n        position: relative;\n        overflow: hidden;\n    }\n\n    .aplus-v2 .container-with-background-image {\n        width: 100%;\n        height: 100%;\n        background-repeat: no-repeat;\n        background-size: cover;\n    }\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n.aplus-v2 .premium-aplus-module-2 .premium-background-wrapper {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper {\n    position: absolute;\n    width: 50%;\n    height: 100%;\n    top: 0;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: 50%;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right {\n    left: auto;\n    right: 50%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.secondary-color {\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background {\n    padding: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-topic {\n    padding-bottom: 10px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-heading {\n    padding-bottom: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .aplus-module-2-description {\n    line-height: 1.5em;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.white-background {\n    background: rgba(255,255,255,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background {\n    background: rgba(0,0,0,0.5);\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h1,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background h5,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ol .a-list-item,\n.aplus-v2 .premium-aplus-module-2 .premium-intro-background.black-background ul .a-list-item {\n  color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-container {\n    display: table;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n    padding-left: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.left .premium-intro-content-container {\n\tpadding-left: 0px;\n\tpadding-right: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 40px;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-2 .premium-intro-wrapper.right .premium-intro-content-container {\n    padding-right: 0px;\n    padding-left: 40px;\n}\n\n.aplus-v2 .premium-aplus-module-2 .premium-intro-content-column {\n    display: table-cell;\n    vertical-align: middle;\n}\n\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 5: Comparision table - scroller\n *\/\n\n.aplus-v2 .premium-aplus-module-5 h1 {\n    padding-bottom: 30px;\n}\n\n\/* position column-headers relative to this table *\/\n.aplus-v2 .premium-aplus-module-5 .table-container {\n    position: relative;\n    opacity: 1;\n}\n\n.aplus-v2 .premium-aplus-module-5 .table-container.loading {\n    opacity: 0;\n}\n\n.aplus-v2 .premium-aplus-module-5 .table-slider {\n    overflow-x: scroll;\n    overflow-y: visible;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-5 td.attribute {\n    min-width: 300px;\n    top: auto;\n    left: 0;\n    z-index: 100;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-5 td.attribute {\n    right: 0px;\n    left: auto;\n}\n\n.aplus-v2 .premium-aplus-module-5 td.active-item,\n.aplus-v2 .premium-aplus-module-5 th.active-item {\n    top: auto;\n    left: 300px;\n    z-index: 100;\n}\n\nhtml[dir=\"rtl\"]  .premium-aplus-module-5 td.active-item,\nhtml[dir=\"rtl\"]  .premium-aplus-module-5 th.active-item {\n    left: auto;\n    right: 300px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .attribute,\n.aplus-v2 .premium-aplus-module-5 .active-item{\n    position: sticky;\n}\n\n.aplus-v2 .premium-aplus-module-5 table.a-bordered td,\n.aplus-v2 .premium-aplus-module-5 table.a-bordered th {\n    background-color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-5 table.a-bordered td.attribute .aplus-popover-trigger::after {\n    content: \"?\";\n    display: inline-block;\n    font-size: 12px;\n    position: relative;\n    bottom: 5px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .product-title {\n    font-size: 15px;\n    padding: 10px 0;\n}\n\n.aplus-v2 .premium-aplus-module-5 .scroll-width {\n    overflow-x: scroll;\n    overflow-y: visible;\n}\n\n\n.aplus-v2 .premium-aplus-module-5 td.attribute.empty {\n    height: 300px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .header-img {\n    padding-top: 10px;\n}\n\n\/* Override default AUI .a-bordered table borders *\/\n.aplus-v2 .premium-aplus-module-5 table.a-bordered {\n    border-width: 0;\n    border-color: #eaeaea;\n    border-style: solid;\n}\n\n\/* Size the top scroller *\/\n.aplus-v2 .premium-aplus-module-5 .scroll-wrapper-top {\n    width: 100%;\n    height: 20px;\n    overflow-x: scroll;\n    overflow-y: visible;\n}\n\n.aplus-v2 .premium-aplus-module-5 .scroll-bar {\n    height: 1px;\n}\n\n.aplus-v2 .premium-aplus-module-5 .add-to-cart {\n    line-height: 1rem;\n    font-weight: normal;\n}\n\n.aplus-v2 .premium-aplus-module-5 .review {\n    font-size: 14px;\n}\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium modules global styles\n *\/\n.aplus-v2.desktop {\n  max-width: 1464px;\n  min-width: 800px;\n  margin-left: auto;\n  margin-right: auto;\n  word-wrap: break-word;\n  overflow-wrap: break-word;\n  word-break: break-word;\n}\n\/* Undo this for tech-specs because it breaks table layout *\/\n.aplus-v2.desktop .premium-aplus .aplus-tech-spec-table { word-break: initial; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: Arial, sans-serif; }\n\n.aplus-v2 .premium-aplus,\n.aplus-v2 .premium-aplus .aplus-h1,\n.aplus-v2 .premium-aplus .aplus-h2,\n.aplus-v2 .premium-aplus .aplus-p1,\n.aplus-v2 .premium-aplus .aplus-p2,\n.aplus-v2 .premium-aplus .aplus-p3,\n.aplus-v2 .premium-aplus .aplus-accent1,\n.aplus-v2 .premium-aplus .aplus-accent2\n{ font-family: inherit; }\n\n\/* type *\/\n.aplus-v2 .premium-aplus .aplus-h1 { font-size: 32px; line-height: 1.2em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h2 { font-size: 26px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-h3 { font-size: 18px; line-height: 1.25em; font-weight: 500; }\n.aplus-v2 .premium-aplus .aplus-p1 { font-size: 20px; line-height: 1.3em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p2 { font-size: 16px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-p3 { font-size: 14px; line-height: 1.4em; font-weight: 300; }\n.aplus-v2 .premium-aplus .aplus-accent1 { font-size: 16px; line-height: 1.4em; font-weight: 600; }\n.aplus-v2 .premium-aplus .aplus-accent2 { font-size: 14px; line-height: 1.4em; font-weight: 600; }\n\n\/* spacing *\/\n.aplus-v2 .aplus-container-1 { padding: 40px; }\n.aplus-v2 .aplus-container-1-2 { padding: 40px 80px; }\n.aplus-v2 .aplus-container-2 { padding: 80px; }\n.aplus-v2 .aplus-container-3 { padding: 40px 0; }\n\n\/* Display *\/\n.aplus-v2 .premium-aplus .aplus-display-table { display: table; }\n.aplus-v2 .premium-aplus .aplus-display-table-cell { display: table-cell; }\n.aplus-v2 .premium-aplus .aplus-display-inline-block { display: inline-block; }\n\n\/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/\n.aplus-v2.desktop .premium-aplus .aplus-display-table-width { min-width: 1000px; width: 100% }\n\n\/**\n* Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80.\n*\/\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 14: Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-14 .aplus-carousel-container {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-14 .aplus-carousel-element {\n    position: relative;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-14 .aplus-pagination-wrapper {\n    position: absolute;\n    top: 92%;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-14 .text-panel-container {\n    vertical-align: middle;\n    text-align: left;\n    width: 50%;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-14 .text-panel-container {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-14 .media-placeholder {\n    padding-bottom: 75%;  \/* Aspect ratio 4:3 for video and image *\/\n}\n\n.aplus-v2 .premium-aplus-module-14 .media-container {\n    position: absolute;\n    top: 0;\n    width: 50%;\n    height: 100%;\n    padding-bottom: 5%;\n}\n\n.aplus-v2 .premium-aplus.premium-aplus-module-14 .title {\n    padding-bottom: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-14 .a-carousel-left {\n    margin-top: 17%;\n}\n\n.aplus-v2 .premium-aplus-module-14 .a-carousel-right {\n    margin-top: 17%;\n}\n\n.aplus-v2 .premium-aplus-module-14 .a-carousel-col {\n    height: 10%;\n}\n\n\u003c\/style\u003e\n\u003cstyle type=\"text\/css\"\u003e\n\n\/**\n * Premium-module 12: Nav Carousel\n *\/\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-card {\n    position: relative;\n    width: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container {\n    position: relative;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-image-carousel-container {\n    \/* Match the aspect ratio of the desktop image uploaded via the editor (1464px x 600px) *\/\n    padding-top: calc(600 \/ 1464 * 100%); \/* ~40.983% *\/\n    height: 0;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-image-carousel-container \u003e div {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n}\n\n\/* Override AUI styles. It poorly attempts to measure the slide heights before waiting until images load. *\/\n.aplus-v2 .premium-aplus-module-12 .a-carousel-viewport {\n    height: 100% !important;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-card-image img {\n    width: 100%;\n    height: auto;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-card-details-wrapper {\n    position: absolute;\n    top: 0;\n    width: 50%;\n    height: 100%;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-card-detail {\n    display: table;\n    width: 100%;\n    height: 100%\n}\n\n.aplus-v2 .premium-aplus-module-12 .card-description {\n    text-align: left;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .card-description {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-table-cell {\n    display: table-cell;\n    vertical-align: middle;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background {\n    padding: 20px;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color {\n    background: rgba(0, 0, 0, 0.5);\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color h1,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color h5,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ol,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ul,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ol .a-list-item,\n.aplus-v2 .premium-aplus-module-12 .aplus-text-background-color ul .a-list-item {\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-12 .description {\n    margin-top: 20px;\n}\n\n\/* nav *\/\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions {\n    position: absolute;\n    top: 20px;\n    width: 100%;\n    text-align: center;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn {\n    display: inline-block;\n    margin: 7px 10px;\n    cursor: pointer;\n    border-radius: 30px;\n    border: 2px solid #000;\n    line-height: 2.5em;\n    min-width: 200px;\n    background-color: #fff;\n    white-space: nowrap;\n    color: #000;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-index {\n    display: none;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.aplus-active {\n    border-color: #fff;\n    background-color: #000;\n    color: #fff;\n}\n\n\/**\n * Regimen template specific css\n *\/\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen {\n    text-align: right;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions.regimen {\n    text-align: right;\n    top: 50%;\n    width: 250px;\n    right: 75px;\n    -webkit-transform: translateY(-50%);\n    -moz-transform: translateY(-50%);\n    -o-transform: translateY(-50%);\n    transform: translateY(-50%);\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions.regimen {\n    text-align: left;\n    top: 50%;\n    left: 75px;\n    right: auto;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen {\n    display: inline-block;\n    margin: 10px 10px;\n    cursor: pointer;\n    border-radius: 30px;\n    border: 2px solid #000;\n    width: 220px;\n    background-color: #fff;\n    padding: 2px 0 2px;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen.aplus-active {\n    border-color: #fff;\n    background-color: #000;\n    color: #fff;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen.aplus-active .aplus-carousel-index {\n    color: inherit;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-goto-btn.regimen.aplus-active .aplus-carousel-label {\n    color: inherit;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions .regimen .aplus-carousel-index {\n    display: inline-block;\n    width: 12px;\n    color: #000;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions .regimen .aplus-carousel-label {\n    color: #000;\n}\n\nhtml[dir=\"rtl\"] .aplus-v2 .premium-aplus-module-12 .aplus-carousel-actions .regimen .aplus-carousel-index {\n    margin-left: 0px;\n    margin-right: 6px;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-headline-top.regimen {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    background-color: #000;\n    opacity: 0.5;\n    text-align: center;\n}\n\n.aplus-v2 .premium-aplus-module-12 .aplus-headline-top.regimen .aplus-headline {\n    color: #fff;\n    line-height: 2em;\n}\n\n\/**\n * Navigation template specific css\n *\/\n\n.aplus-v2 .premium-aplus-module-12--top-nav .aplus-carousel-actions {\n    background-color: rgba(0, 0, 0, 0.8);\n    top: 0px;\n}\n\n.aplus-v2 .premium-aplus-module-12--top-nav .aplus-goto-btn {\n    padding: 8px;\n    color: #fff;\n    background-color: transparent;\n    border: none;\n}\n\n.aplus-v2 .premium-aplus-module-12--top-nav .aplus-goto-btn.aplus-active {\n    text-decoration: underline;\n    text-underline-offset: 0.8em;\n    text-decoration-thickness: 3px;\n    background-color: transparent;\n    border: none;\n}\n\u003c\/style\u003e\n\u003cdiv\u003e\n\u003cdiv lang=\"en_US\"\u003e\n\u003cdiv class=\"aplus-v2 desktop celwidget\"\u003e\n\u003cscript type=\"text\/javascript\"\u003e(function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\nP.now('premium-module-12-nav-carousel').execute(function(init) {\n    if (init) {\n        return;\n    }\n    P.register('premium-module-12-nav-carousel', function(){\n        return function() {\n            P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute(function (A, $, framework) {\n                function initiateCarousel(module) {\n                    var MODULE_ID = $(module).data('module-id');\n                    \/**\n                    * Carousel button element classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_CLASS_NAME = \"aplus-goto-btn-\" + MODULE_ID;\n                    \/**\n                    * Carousel button element active classname\n                    * @const\n                    *\/\n                    var GOTO_BTN_ACTIVE_CLASS_NAME = \"aplus-active\";\n                    \/**\n                    * AUI name for aui carousel\n                    * @const\n                    *\/\n                    var CAROUSEL_NAME = \"premium-aplus-12-carousel-\" + MODULE_ID;\n                    \/**\n                    * Module class name\n                    * @const\n                    *\/\n                    var MODULE_CLASS_NAME = \".aplus-v2 .premium-aplus-module-12\";\n                    \/**\n                    * Carousel text container class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-carousel-text-container-\" + MODULE_ID;\n                    \/**\n                    * Carousel text hidden class name\n                    * @const\n                    *\/\n                    var TEXT_CONTAINER_HIDDEN = \"aplus-hidden\";\n                    \/**\n                    * Carousel horizontal scroll container class name\n                    * @const\n                    *\/\n                    var HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME = MODULE_CLASS_NAME + \" .aplus-horizontal-scroll-container-\" + MODULE_ID;\n\n                    function showCarouselText(oldIndex, newIndex) {\n                        var oldClass = TEXT_CONTAINER_CLASS_NAME + \"-\" + oldIndex;\n                        var newClass= TEXT_CONTAINER_CLASS_NAME + \"-\" + newIndex;\n                        $(oldClass).addClass(TEXT_CONTAINER_HIDDEN);\n                        $(newClass).removeClass(TEXT_CONTAINER_HIDDEN);\n                    }\n\n                    function scrollToCarouselButton(scrollLeft) {\n                        if ($(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).length) {\n                            $(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).animate({scrollLeft}, 200);\n                        }\n                    }\n\n                    \/**\n                    * Creates a CarouselButton class for provided carousel instance\n                    * @param {object} carousel - AUI Carousel instance\n                    * @returns {Class} - CarouselButton Class\n                    *\/\n                    function CarouselButtonTemplate(carousel) {\n                        \/**\n                        * Button for controlling the active slide\n                        * @constructor\n                        * @param {number} index - slide index\n                        * @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation\n                        *\/\n                        function CarouselButton(index, elem) {\n                            var self = this;\n                            this.index = index;\n                            this.carousel = carousel;\n\n                            \/* create the button element *\/\n                            this.elem = this.getElem(elem);\n                            this.$elem = $(this.elem);  \/* store jquery version *\/\n                            this.elem.addEventListener('click', self.handleClick.bind(self));\n                            this.elem.setAttribute('role', 'tab');\n\n                            \/* add this object to the object manager *\/\n                            CarouselButton.objects.byId[index] = this;\n                            CarouselButton.objects.all.push(this);\n                        }\n\n                        \/**\n                        * Describe behavior for click events on this.elem\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.handleClick = function(e) {\n                            e.preventDefault();\n                            this.carousel.gotoPage(this.index);\n                        };\n\n                        \/**\n                        * Enter active state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.activate = function() {\n                            this.$elem.addClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'true');\n                        };\n\n                        \/**\n                        * Enter inactive state\n                        * @memberOf CarouselButton\n                        *\/\n                        CarouselButton.prototype.deactivate = function() {\n                            this.$elem.removeClass(GOTO_BTN_ACTIVE_CLASS_NAME).attr('aria-selected', 'false');\n                        };\n\n                        \/**\n                        * Returns an existing or creates a new bound element for this object\n                        * @memberOf CarouselButton\n                        * @param {DOMElement} [elem] - optionally provide an existing element in the DOM to use\n                        * @returns {DOMElement} - this objects DOM representation\n                        *\/\n                        CarouselButton.prototype.getElem = function(elem) {\n                            if (this.elem) return this.elem;\n                            if (elem) return elem;\n\n                            var createdElem = document.createElement('span');\n                            createdElem.className = GOTO_BTN_CLASS_NAME;\n\n                            return createdElem;\n                        };\n\n                        \/** @const Object manager *\/\n                        CarouselButton.objects = {\n                            byId: {},\n                            all: [],\n                        };\n\n                        return CarouselButton;\n                    }\n\n                    framework.onInit(CAROUSEL_NAME, function(carousel) {\n                        \/** @const {Class} *\/\n                        var CarouselButton = CarouselButtonTemplate(carousel);\n\n                        \/* create carousel controls *\/\n                        var $carouselBtns = $(safeClassSelector(GOTO_BTN_CLASS_NAME));\n                        var btns = $carouselBtns.map(function(i, btnElem) {\n                            return new CarouselButton(i + 1, btnElem);\n                        });\n\n                        \/* activate first one *\/\n                        CarouselButton.objects.byId[1].activate();\n\n                        \/* Listen to slide changes *\/\n                        A.on(\"a:carousel:\" + CAROUSEL_NAME + \":change:pageNumber\", function (data) {\n                            var newCarouselButton = CarouselButton.objects.byId[data.newValue];\n                            var marginLeft = parseInt(getComputedStyle(newCarouselButton.elem).getPropertyValue('margin-left'));\n                            var positionLeft = newCarouselButton.elem.offsetLeft - marginLeft;\n\n                            newCarouselButton.activate();\n                            CarouselButton.objects.byId[data.oldValue].deactivate();\n                            scrollToCarouselButton(positionLeft);\n                            showCarouselText(data.oldValue, data.newValue);\n                        });\n                    });\n\n                    \/**\n                    * @returns {string} - css classname prefixed with module selector\n                    *\/\n                    function safeClassSelector(className) {\n                        return '.' + MODULE_CLASS_NAME + ' .' + className;\n                    }\n                }\n\n                $('.aplus-v2 .premium-aplus-module-12 .aplus-carousel-container').each(function (index, module) {\n                    initiateCarousel(module);\n                });\n                framework.createAll();\n                framework.initializeAll();\n            });\n        }\n    })\n});\n}));\u003c\/script\u003e\n\u003cdiv class=\"aplus-content-wrapper\"\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"celwidget aplus-module premium-module-2-fullbackground-image aplus-premium\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-aplus premium-aplus-module-2\"\u003e\n\u003cdiv class=\"a-section a-spacing-none premium-background-wrapper\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-medium a-spacing-top-small\"\u003e\n\u003cul class=\"a-unordered-list a-vertical a-spacing-mini\"\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e𝟔𝟒𝐦𝐦 𝐒𝐭𝐚𝐢𝐧𝐥𝐞𝐬𝐬 𝐒𝐭𝐞𝐞𝐥 𝐅𝐥𝐚𝐭 𝐁𝐮𝐫𝐫 - Crafted with 64mm stainless steel flat burrs, wider grinding surface enables fast, uniform bean cutting and grind consistency while minimizing heat buildup to preserves the beans' intrinsic aromas, delivering a aromatic coffee flavors with every brew. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 𝟏𝟎𝟎 𝐏𝐫𝐞𝐜𝐢𝐬𝐢𝐨𝐧 𝐆𝐫𝐢𝐧𝐝𝐢𝐧𝐠 𝐒𝐞𝐭𝐭𝐢𝐧𝐠𝐬 - The electric coffee grinder offers 100 adjustable grinding settings, allowing you to fine-tune the grind size from espresso to french press, which match different brewing method. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 𝐏𝐫𝐞𝐜𝐢𝐬𝐢𝐨𝐧 𝐒𝐢𝐧𝐠𝐥𝐞 \u0026amp; 𝐃𝐨𝐮𝐛𝐥𝐞 𝐒𝐡𝐨𝐭 𝐌𝐨𝐝𝐞 - Equipped with an intuitive LED touchscreen for effortless operation, this bean grinder lets you customize grind times for single shot, double shot, and continuous brews with 0.5-second time increments precision. You can fine-tune the grind duration to achieve your ideal coffee dose, ensuring perfect consistency and flexibly meeting different brewing needs. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 𝐏𝐚𝐭𝐞𝐧𝐭𝐞𝐝 𝐀𝐧𝐭𝐢-𝐒𝐭𝐚𝐭𝐢𝐜 𝐓𝐞𝐜𝐡 - Equipped with anti-static system, the espresso grinder eliminates static-induced coffee grounds flying effectively, ensuring smooth, concentrated grounds output and keeping your countertop tidy and your dosing precise. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 𝐃𝐮𝐚𝐥 𝐁𝐞𝐚𝐧 𝐇𝐨𝐩𝐩𝐞𝐫𝐬 - Tuni G3 has two bean hoppers for brewing versatility: a 250g \/ 8.8oz large hopper built for high-frequency, bulk grinding needs, and a 50g \/ 1.7oz small hopper for precise single-dose grinding or specialty bean batches. Seamlessly switch between hoppers to match your daily brewing demands, ensuring optimal bean freshness and dosing accuracy every time. \u003c\/span\u003e\u003c\/li\u003e\n\u003cli class=\"a-spacing-mini\"\u003e\u003cspan class=\"a-list-item\"\u003e 𝐏𝐚𝐜𝐤𝐚𝐠𝐞 𝐈𝐧𝐜𝐥𝐮𝐝𝐞𝐬 \u0026amp; 𝐂𝐚𝐫𝐞 - G3 Flat Burr Coffee Grinder x1, Single Dose Bean Hopper x 1, Portafilter Holder (Compatible with 51-58mm portafilters) x1, Dosing Cup(100g) x1, Dosing Ring x1, Hopper Bellow Blower x1, Soft Brush x2, User Manual x1, Responsive support, we're here for you whenever you need us. Purchase with confidence! \u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"a-section aok-hidden\" data-csa-c-type=\"link\" data-csa-c-slot-id=\"voyager-product-details-jumplink\" data-csa-c-content-id=\"voyager-product-details-jumplink\"\u003e\n\u003cspan class=\"caretnext\"\u003e›\u003c\/span\u003e \u003ca href=\"#productDetails\" class=\"a-link-normal\" id=\"seeMoreDetailsLink\"\u003e See more product details \u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"a-section a-spacing-small a-spacing-top-small\"\u003e\n\u003ctable class=\"a-normal a-spacing-micro\" role=\"list\"\u003e\n\u003ctbody\u003e\n\u003ctr class=\"a-spacing-small po-color\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eColor\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eIvory\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-brand\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eBrand\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eTuni\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-material\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eMaterial\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eStainless Steel\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-style\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eStyle\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003eCoffee Grinder, Espresso Grinder, 64mm Flat Burr Grinder\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a-spacing-small po-item_weight\" role=\"listitem\"\u003e\n\u003ctd class=\"a-span3\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base a-text-bold\"\u003eItem Weight\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd class=\"a-span9\" role=\"presentation\"\u003e\u003cspan class=\"a-size-base po-break-word\"\u003e7.3 Pounds\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch3\u003eExceptional Grinding Performance with 64mm Flat Burrs\u003c\/h3\u003e\n\u003cp\u003eThe Tuni G3 coffee grinder features commercial-grade 64mm flat burrs designed to deliver uniform particle size for consistent espresso extraction. This grinder’s burrs are made of high-quality stainless steel, ensuring durability and precision. With its precise grinding mechanism, the Tuni G3 coffee grinder produces a rich, flavorful coffee extraction that highlights the beans’ unique characteristics. Whether you prefer a fine espresso grind or a coarser setting for other brewing methods, this grinder’s 100 grind settings offer complete control to suit your taste.\u003c\/p\u003e\n\u003ch3\u003eSmart Touchscreen and Single Dose Set for Maximum Ease\u003c\/h3\u003e\n\u003cp\u003eEquipped with an intuitive touchscreen interface, the Tuni G3 coffee grinder enhances user experience by allowing simple adjustments with just a few taps. The single dose feature is perfect for coffee enthusiasts who want absolute freshness for every shot. This function minimizes retained grounds and waste, helping you to grind only what you need for each brew. The combination of the single dose set and touchscreen control makes the grinding process fast, easy, and highly customizable.\u003c\/p\u003e\n\u003ch3\u003eAdvanced Anti-Static Technology and Durable Design\u003c\/h3\u003e\n\u003cp\u003eThe anti-static technology integrated into the Tuni G3 coffee grinder prevents annoying coffee grounds from sticking to the grinder or scattering around your workspace. This results in cleaner, smoother coffee preparation and reduces waste. Crafted with stainless steel housing in an elegant ivory finish, this grinder is built to withstand the rigors of both home and commercial use while maintaining a sleek and modern aesthetic. Its design ensures easy cleaning and maintenance for long-lasting performance.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Crema Peaks Coffee","offers":[{"title":"Ivory","offer_id":55600758456393,"sku":"B0FZV68L2Y","price":229.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0967\/2694\/1769\/files\/61L9jHEqjAL.jpg?v=1775673489","url":"https:\/\/cremapeaks.com\/products\/tuni-g3-64mm-flat-burr-coffee-grinder-100-grind-settings-electric-espresso-grinder-with-single-dose-set-commercial-grade-precision-touchscreen-anti-static-tech-stainless-steel-ivory","provider":"Crema Peaks Coffee","version":"1.0","type":"link"}