{"id":6462,"date":"2025-11-14T16:02:55","date_gmt":"2025-11-14T16:02:55","guid":{"rendered":"https:\/\/daniels-plain.com\/?page_id=6462"},"modified":"2026-04-27T08:58:01","modified_gmt":"2026-04-27T08:58:01","slug":"colection","status":"publish","type":"page","link":"https:\/\/daniels-plain.com\/en\/colection\/","title":{"rendered":"Collection"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"6462\" class=\"elementor elementor-6462\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e81e334 e-transform e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"e81e334\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;fadeIn&quot;,&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9263376 elementor-widget elementor-widget-text-editor\" data-id=\"9263376\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.20.0 - 26-03-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p data-start=\"132\" data-end=\"407\">\"Discovering our wines means immersing yourself in the rhythm of the earth \u2014 where the seasons whisper and the vineyards tell their silent stories. Each fruit is a moment of silence and light, gathered in a glass. We only accompany nature on its path and translate its wisdom into taste.\"<\/p><h5 data-start=\"132\" data-end=\"407\"><img decoding=\"async\" class=\"alignnone wp-image-7148\" src=\"https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-300x177.png\" alt=\"\" width=\"70\" height=\"42\" srcset=\"https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-300x177.png 300w, https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-1024x606.png 1024w, https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-768x454.png 768w, https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-1536x909.png 1536w, https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-18x12.png 18w, https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo-600x355.png 600w, https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/cropped-Daniels-Plain-Logo.png 1954w\" sizes=\"(max-width: 70px) 100vw, 70px\" \/><\/h5><h5><strong data-start=\"409\" data-end=\"426\" data-is-last-node=\"\">&#8222;Daniel&#8217;s Plain&#8220;<\/strong><\/h5>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7317640 e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"7317640\" data-element_type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d3eff6 elementor-widget elementor-widget-html\" data-id=\"3d3eff6\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"dp-filter-wrapper dp-filter-wrapper--hidden\">\n    <h3 class=\"dp-filter-title\"><\/h3>\n    <div class=\"dp-filter\">\n        <button class=\"dp-filter-btn dp-filter-btn--active\" data-type=\"all\"><\/button>\n        <button class=\"dp-filter-btn\" data-type=\"\u0431\u044f\u043b\u043e\"><\/button>\n        <button class=\"dp-filter-btn\" data-type=\"\u0440\u043e\u0437\u0435\"><\/button>\n        <button class=\"dp-filter-btn\" data-type=\"\u0447\u0435\u0440\u0432\u0435\u043d\u043e\"><\/button>\n    <\/div>\n<\/div>\n\n<div id=\"dp-loader-container\">\n    <div class=\"dp-loader\">\n        <img decoding=\"async\" src=\"https:\/\/daniels-plain.com\/wp-content\/uploads\/2025\/12\/Daniels-Plain-Logo-vector.svg\" alt=\"\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435...\"\n            class=\"dp-loader-img\" \/>\n    <\/div>\n<\/div>\n\n<div id=\"dp-products\" class=\"dp-products\">\n    <!-- LOADER \u0434\u043e\u043a\u0430\u0442\u043e \u0441\u0435 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0442\u0435 -->\n<\/div>\n\n<script>\n    let useBgLev = true;\n    let dpAllProducts = [];\n\n    function isEnglish() {\n        return \/^\\\/en(\\\/|$)\/i.test(window.location.pathname);\n    }\n\n    function trl(bg, en) {\n        return isEnglish() ? en : bg;\n    }\n\n    function translateButtonss() {\n        const titleEl = document.querySelector(\".dp-filter-title\");\n        if (titleEl)\n            titleEl.textContent = trl(\"\u0424\u0438\u043b\u0442\u044a\u0440 \u043f\u043e \u0432\u0438\u0434 \u0432\u0438\u043d\u043e\", \"Filter by wine type\");\n\n        document.querySelectorAll(\".dp-filter-btn\").forEach((btn) => {\n            const type = btn.dataset.type;\n\n            if (type === \"all\") btn.textContent = trl(\"\u0412\u0441\u0438\u0447\u043a\u0438\", \"All\");\n            if (type === \"\u0431\u044f\u043b\u043e\") btn.textContent = trl(\"\u0411\u044f\u043b\u043e\", \"White\");\n            if (type === \"\u0440\u043e\u0437\u0435\") btn.textContent = trl(\"\u0420\u043e\u0437\u0435\", \"Ros\u00e9\");\n            if (type === \"\u0447\u0435\u0440\u0432\u0435\u043d\u043e\") btn.textContent = trl(\"\u0427\u0435\u0440\u0432\u0435\u043d\u043e\", \"Red\");\n        });\n\n        \/\/ \u041f\u0440\u0438\u043c\u0435\u0440: loader alt\n        const loaderImg = document.querySelector(\".dp-loader-img\");\n        if (loaderImg) loaderImg.alt = trl(\"\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435...\", \"Loading...\");\n    }\n\n    function getProductType(product) {\n        if (!Array.isArray(product.attributes)) return \"\";\n        const typeAttr = product.attributes.find((attr) => attr.name === \"type\");\n        if (typeAttr && Array.isArray(typeAttr.terms) && typeAttr.terms[0]) {\n            return (typeAttr.terms[0].name || \"\").toLowerCase();\n        }\n        return \"\";\n    }\n\n    function easeInOutCubic(t) {\n        return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) \/ 2;\n    }\n\n    function smoothScrollToY(targetY, { duration = 650 } = {}) {\n        const startY = window.scrollY || window.pageYOffset;\n        const delta = targetY - startY;\n\n        if (Math.abs(delta) < 2) return;\n\n        const reduce = window.matchMedia(\n            \"(prefers-reduced-motion: reduce)\",\n        ).matches;\n        if (reduce) {\n            window.scrollTo(0, targetY);\n            return;\n        }\n\n        \/\/ \u043f\u043e-\u0434\u044a\u043b\u044a\u0433 \u043f\u044a\u0442 \u2192 \u043c\u0430\u043b\u043a\u043e \u043f\u043e-\u0434\u044a\u043b\u0433\u043e \u0432\u0440\u0435\u043c\u0435, \u043d\u043e \u0441 \u043b\u0438\u043c\u0438\u0442 (\u0437\u0430 \u201c\u0435\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u201d)\n        const d = Math.min(900, Math.max(450, duration + Math.abs(delta) * 0.15));\n\n        let start = null;\n        function step(ts) {\n            if (!start) start = ts;\n            const p = Math.min(1, (ts - start) \/ d);\n            const eased = easeInOutCubic(p);\n            window.scrollTo(0, Math.round(startY + delta * eased));\n            if (p < 1) requestAnimationFrame(step);\n        }\n        requestAnimationFrame(step);\n    }\n\n    function scrollToElementFromQuery(paramName) {\n        const url = new URL(window.location.href);\n        const value = url.searchParams.get(paramName);\n        if (!value) return;\n\n        const id = decodeURIComponent(value);\n        const el = document.getElementById(`product_${id}`);\n        if (!el) return;\n\n        \/\/ offset \u0430\u043a\u043e \u0438\u043c\u0430\u0448 sticky header (\u0441\u043c\u0435\u043d\u0438 0 \u0441 \u043d\u0430\u043f\u0440. 80 \u0430\u043a\u043e \u0438\u043c\u0430\u0448 \u0445\u0435\u0434\u044a\u0440)\n        const HEADER_OFFSET = 0;\n\n        const rect = el.getBoundingClientRect();\n        const targetY =\n            rect.top + (window.scrollY || window.pageYOffset) - HEADER_OFFSET;\n\n        smoothScrollToY(targetY, { duration: 650 });\n\n        url.searchParams.delete(paramName);\n        window.history.replaceState({}, \"\", url.toString());\n    }\n\n    function renderDpProducts(products) {\n        const container = document.getElementById(\"dp-products\");\n\n        const html = products\n            .map((p) => {\n                const title = decodeHtml(p.name) || \"\";\n\n                let description = \"\";\n                let alcohol = \"\";\n                let hrefProd = p?.permalink;\n\n                if (Array.isArray(p.attributes)) {\n                    const descAttr = p.attributes.find(\n                        (attr) => attr.name === trl(\"description\", \"description_en\"),\n                    );\n                    if (descAttr && Array.isArray(descAttr.terms) && descAttr.terms[0]) {\n                        description = descAttr.terms[0].name || \"\";\n                    }\n\n                    const alcAttr = p.attributes.find((attr) => attr.name === \"alcohol\");\n                    if (alcAttr && Array.isArray(alcAttr.terms) && alcAttr.terms[0]) {\n                        alcohol = alcAttr.terms[0].name || \"\";\n                    }\n                }\n\n                let priceLine = \"\";\n                let priceLineLv;\n                if (p.prices && p.prices.price) {\n                    const raw = Number(p.prices.price);\n                    if (!Number.isNaN(raw)) {\n                        const priceEur = raw \/ 100;\n                        const priceBgn = priceEur * 1.95583;\n\n                        const priceBgnStr = priceBgn.toFixed(2).replace(\".\", \",\");\n                        const priceEurStr = priceEur.toFixed(2).replace(\".\", \",\");\n\n                        const suffix = \"\u20ac\";\n                        priceLine = `${priceEurStr}${suffix}`;\n                        priceLineLv = `${priceBgnStr}\u043b\u0432.`;\n                    }\n                }\n\n                const imageSrc =\n                    p.images && p.images.length > 0 && p.images[0].src\n                        ? p.images[0].src\n                        : \"\";\n\n                const productId = p.id;\n                const permalink = p.permalink || \"#\";\n                const inStock = !!p.is_in_stock;\n                const btnClasses = inStock\n                    ? \"dp-product-button\"\n                    : \"dp-product-button dp-product-button--soldout\";\n                const btnDisabled = inStock ? \"\" : \" disabled\";\n                const btnLabel = inStock\n                    ? trl(\"\u0414\u043e\u0431\u0430\u0432\u0438 \u0432 \u043a\u043e\u043b\u0438\u0447\u043a\u0430\u0442\u0430\", \"Add to cart\")\n                    : trl(\"\u0418\u0437\u0447\u0435\u0440\u043f\u0430\u043d\", \"Out of stock\");\n\n                return `\n  <article class=\"dp-card\" id=\"product_${p.id}\">\n    <div class=\"dp-card-media\">\n      ${imageSrc ? `<img decoding=\"async\" class=\"dp-card-img\" src=\"${imageSrc}\" alt=\"${title}\" loading=\"lazy\">` : \"\"}\n\n      <div class=\"dp-card-overlay\" aria-hidden=\"true\">\n         <a\n  href=\"${hrefProd}\"\n  class=\"dp-card-more\"\n  data-product-id=\"${productId}\">\n  ${trl(\"\u0412\u0438\u0436 \u043e\u0449\u0435\", \"See more\")}\n<\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"dp-card-body\">\n      <h2 class=\"dp-card-title\">${title}<\/h2>\n\n      ${priceLine && !useBgLev ? `<div class=\"dp-card-price\">${priceLine}<\/div>` : `<div class=\"dp-card-price\">${priceLine} \/ <span>${priceLineLv}<\/span><\/div>`}\n\n      <button type=\"button\"\n        class=\"${btnClasses}\"\n        data-product-id=\"${productId}\"\n        data-product-url=\"${permalink}\"${btnDisabled}\n        aria-label=\"${btnLabel}: ${title.replace(\/\"\/g, \"&quot;\")}\">\n        ${btnLabel}\n      <\/button>\n    <\/div>\n  <\/article>\n`;\n            })\n            .join(\"\");\n\n        container.innerHTML = html;\n    }\n\n    function startFromMiddle(arr) {\n        const mid = Math.floor(arr.length \/ 2);\n        return [...arr.slice(mid), ...arr.slice(0, mid)];\n    }\n\n    async function preloadImages(items, count = 8) {\n        const first = items.slice(0, count).filter((x) => x?.img);\n\n        await Promise.allSettled(\n            first.map(\n                (it) =>\n                    new Promise((resolve) => {\n                        const img = new Image();\n                        img.src = it.img;\n\n                        const done = async () => {\n                            try {\n                                await img.decode?.();\n                            } catch { }\n                            resolve();\n                        };\n\n                        if (img.complete) done();\n                        else {\n                            img.onload = done;\n                            img.onerror = resolve;\n                        }\n                    }),\n            ),\n        );\n    }\n\n    function decodeHtml(str) {\n        const el = document.createElement(\"textarea\");\n        el.innerHTML = str;\n        return el.value;\n    }\n\n    async function loadDpProductsFromApi() {\n        const filterWrapper = document.querySelector(\".dp-filter-wrapper\");\n\n        try {\n            const response = await fetch(\n                \"\/wp-json\/wc\/store\/v1\/products?per_page=100\",\n            );\n            const products = await response.json();\n\n            dpAllProducts = Array.isArray(products) ? products : [];\n            dpAllProducts = startFromMiddle(dpAllProducts);\n            translateButtonss();\n            await preloadImages(dpAllProducts, 16);\n            renderDpProducts(dpAllProducts);\n        } catch (err) {\n            console.error(\"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0442\u0435:\", err);\n            document.getElementById(\"dp-products\").innerHTML =\n                `<p>${trl(\"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0442\u0435.\", \"Error loading products.\")}<\/p>`;\n        } finally {\n            if (filterWrapper) {\n                filterWrapper.classList.remove(\"dp-filter-wrapper--hidden\");\n                document.getElementById(\"dp-loader-container\").style.display = \"none\";\n                scrollToElementFromQuery(\"selected\");\n            }\n        }\n    }\n\n    async function dpAddToCart(productId, buttonEl) {\n        if (!productId) return;\n\n        const row = dpAllProducts.find(\n            (x) => String(x.id) === String(productId),\n        );\n        if (row && !row.is_in_stock) return;\n\n        let ajaxUrl = \"\/?wc-ajax=add_to_cart\";\n        if (\n            window.wc_add_to_cart_params &&\n            window.wc_add_to_cart_params.wc_ajax_url\n        ) {\n            ajaxUrl = window.wc_add_to_cart_params.wc_ajax_url.replace(\n                \"%%endpoint%%\",\n                \"add_to_cart\",\n            );\n        }\n\n        const originalText = buttonEl.textContent;\n        buttonEl.disabled = true;\n        buttonEl.classList.add(\"dp-product-button--loading\");\n        buttonEl.textContent = trl(\"\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435...\", \"Adding...\");\n\n        const formData = new FormData();\n        formData.append(\"product_id\", productId);\n        formData.append(\"quantity\", 1);\n\n        try {\n            const response = await fetch(ajaxUrl, {\n                method: \"POST\",\n                body: formData,\n                credentials: \"same-origin\",\n            });\n\n            const data = await response.json();\n\n            if (data && data.fragments) {\n                Object.entries(data.fragments).forEach(([selector, html]) => {\n                    const elements = document.querySelectorAll(selector);\n                    elements.forEach((el) => {\n                        el.innerHTML = html;\n                    });\n                });\n            }\n\n            buttonEl.classList.add(\"dp-product-button--added\");\n            buttonEl.textContent = trl(\"\u0414\u043e\u0431\u0430\u0432\u0435\u043d\u043e \u0432 \u043a\u043e\u043b\u0438\u0447\u043a\u0430\u0442\u0430\", \"Added to cart\");\n\n            setTimeout(() => {\n                buttonEl.classList.remove(\"dp-product-button--added\");\n                buttonEl.textContent = originalText;\n                buttonEl.disabled = false;\n                buttonEl.classList.remove(\"dp-product-button--loading\");\n            }, 2000);\n        } catch (err) {\n            console.error(\"\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0432 \u043a\u043e\u043b\u0438\u0447\u043a\u0430\u0442\u0430:\", err);\n            buttonEl.disabled = false;\n            buttonEl.classList.remove(\"dp-product-button--loading\");\n            buttonEl.textContent = originalText;\n        }\n    }\n\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        loadDpProductsFromApi();\n\n        const buttons = document.querySelectorAll(\".dp-filter-btn\");\n\n        buttons.forEach((btn) => {\n            btn.addEventListener(\"click\", () => {\n                const type = btn.dataset.type;\n\n                buttons.forEach((b) => b.classList.remove(\"dp-filter-btn--active\"));\n                btn.classList.add(\"dp-filter-btn--active\");\n\n                let filtered = dpAllProducts;\n\n                if (type !== \"all\") {\n                    filtered = dpAllProducts.filter(\n                        (p) => getProductType(p) === type.toLowerCase(),\n                    );\n                }\n\n                renderDpProducts(filtered);\n            });\n        });\n\n        \/\/ \u0414\u0435\u043b\u0435\u0433\u0438\u0440\u0430\u043d listener \u0437\u0430 AJAX \u0434\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u0432 \u043a\u043e\u043b\u0438\u0447\u043a\u0430\u0442\u0430\n        document.addEventListener(\"click\", function (e) {\n            const btn = e.target.closest(\".dp-product-button\");\n            if (!btn) return;\n\n            if (\n                btn.disabled ||\n                btn.classList.contains(\"dp-product-button--soldout\")\n            ) {\n                return;\n            }\n\n            e.preventDefault();\n\n            const productId = btn.getAttribute(\"data-product-id\");\n            dpAddToCart(productId, btn);\n        });\n\n        \/\/ 1) Tap \u0432\u044a\u0440\u0445\u0443 \u043a\u0430\u0440\u0442\u0430\u0442\u0430 (\u0441\u0430\u043c\u043e \u043d\u0430 touch \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430) -> \u043f\u043e\u043a\u0430\u0437\u0432\u0430 overlay\n        document.addEventListener(\"click\", function (e) {\n            const card = e.target.closest(\".dp-card\");\n            if (!card) return;\n\n            const isTouch = window.matchMedia(\n                \"(hover: none), (pointer: coarse)\",\n            ).matches;\n            if (!isTouch) return;\n\n            \/\/ \u0430\u043a\u043e \u043d\u0430\u0442\u0438\u0441\u043a\u0430\u0448 \u0431\u0443\u0442\u043e\u043d\u0438, \u043d\u0435 \u043f\u0440\u0435\u0447\u0438\u043c\n            if (\n                e.target.closest(\".dp-product-button\") ||\n                e.target.closest(\".dp-card-more\")\n            )\n                return;\n\n            \/\/ \u0437\u0430\u0442\u0432\u0430\u0440\u044f\u043c\u0435 \u0434\u0440\u0443\u0433\u0438\u0442\u0435\n            document.querySelectorAll(\".dp-card.is-revealed\").forEach((el) => {\n                if (el !== card) el.classList.remove(\"is-revealed\");\n            });\n\n            \/\/ toggle \u0437\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u0442\u0430\n            card.classList.toggle(\"is-revealed\");\n        });\n    });\n\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        const second = document.querySelectorAll(\".e-con-inner\")[1];\n        if (second) {\n            second.style.maxWidth = \"none\";\n            second.style.width = \"100%\";\n        }\n    });\n<\/script>\n\n<style>\n    .dp-filter-wrapper {\n        max-width: 1200px;\n        margin: 30px auto 10px;\n        padding: 0 16px;\n        justify-items: right !important;\n        font-family: \"Garet\", serif !important;\n    }\n\n    \/* \u0441\u043a\u0440\u0438\u0432\u0430\u043c\u0435 \u0444\u0438\u043b\u0442\u044a\u0440\u0430 \u0434\u043e\u043a\u0430\u0442\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430 *\/\n    .dp-filter-wrapper--hidden {\n        display: none;\n    }\n\n    .dp-filter-title {\n        font-size: 16px;\n        text-transform: uppercase;\n        letter-spacing: 0.15em;\n        margin: 0 0 10px;\n        margin-right: 10px !important;\n    }\n\n    .dp-filter {\n        text-align: left;\n    }\n\n    .dp-filter-btn {\n        display: inline-block;\n        padding: 8px 18px;\n        margin: 0 6px 10px 0;\n        border: 1px solid #000 !important;\n        background: #fff !important;\n        font-size: 13px;\n        letter-spacing: 0.12em;\n        color: #000 !important;\n        text-transform: uppercase;\n        cursor: pointer;\n    }\n\n    .dp-filter-btn--active {\n        background: #000 !important;\n        color: #fff !important;\n    }\n\n    .dp-products {\n        width: 100%;\n        position: relative;\n    }\n\n    #dp-loader-container {\n        width: 100%;\n        position: relative;\n    }\n\n    \/* LOADER *\/\n    .dp-loader {\n        min-height: 220px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .dp-loader-img {\n        width: 80px;\n        height: 80px;\n        animation: dp-spin 1.2s linear infinite;\n    }\n\n    @keyframes dp-spin {\n        from {\n            transform: rotate(0deg);\n        }\n\n        to {\n            transform: rotate(360deg);\n        }\n    }\n\n    .dp-product {\n        padding: 60px 0;\n    }\n\n    \/* \u041f\u044a\u0440\u0432\u0438\u044f\u0442 \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0438\u0432, \u0432\u0442\u043e\u0440\u0438\u044f\u0442 \u0431\u044f\u043b, \u0440\u0435\u0434\u0443\u0432\u0430\u0442 \u0441\u0435 *\/\n    .dp-product:nth-child(odd) {\n        background-color: #ffffff;\n        \/* \u0441\u0438\u0432 *\/\n    }\n\n    .dp-product:nth-child(even) {\n        background-color: #f3f3f3;\n        \/* \u0431\u044f\u043b *\/\n    }\n\n    .dp-product-inner {\n        max-width: 1200px;\n        margin: 0 auto;\n        display: flex;\n        align-items: center;\n        gap: 40px;\n    }\n\n    \/* \u0447\u0435\u0442\u043d\u0438\u0442\u0435 \u2013 \u0441\u043d\u0438\u043c\u043a\u0430 \u0432\u0434\u044f\u0441\u043d\u043e, \u0442\u0435\u043a\u0441\u0442 \u0432\u043b\u044f\u0432\u043e *\/\n    .dp-product:nth-child(even) .dp-product-inner {\n        flex-direction: row-reverse;\n    }\n\n    .dp-product-image {\n        flex: 0 0 35%;\n        text-align: center;\n    }\n\n    .dp-product-image img {\n        max-width: 100%;\n        max-height: 400px;\n        display: inline-block;\n    }\n\n    .dp-product-content {\n        flex: 1;\n        max-width: 600px;\n    }\n\n    .dp-product-title {\n        font-size: 26px;\n        letter-spacing: 0.2em;\n        text-transform: uppercase;\n        margin: 0 0 10px;\n        margin-right: 4px;\n    }\n\n    .dp-product-description {\n        font-size: 16px;\n        line-height: 1.6;\n        margin: 0 0 10px;\n    }\n\n    .dp-product-meta {\n        font-size: 14px;\n        text-transform: uppercase;\n        letter-spacing: 0.08em;\n        margin: 0 0 10px;\n    }\n\n    .dp-product-alcohol {\n        opacity: 0.8;\n    }\n\n    .dp-product-price {\n        font-weight: 600;\n    }\n\n    .dp-product-button {\n        display: inline-block;\n        padding: 14px 36px;\n        text-transform: uppercase;\n        font-size: 14px;\n        letter-spacing: 0.15em;\n        text-decoration: none;\n        background: #000;\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        transition:\n            opacity 0.2s ease,\n            background-color 0.2s ease;\n    }\n\n    .dp-product-button--loading {\n        opacity: 0.7;\n    }\n\n    .dp-product-button--added {\n        background: #a01f1d;\n    }\n\n    .dp-product-button--soldout,\n    .dp-product-button:disabled {\n        background: #888 !important;\n        color: #fff !important;\n        cursor: not-allowed !important;\n        opacity: 1;\n    }\n\n    \/* MOBILE *\/\n    @media (max-width: 768px) {\n        .dp-filter-wrapper {\n            margin: 20px auto 10px;\n            padding: 0 16px;\n        }\n\n        .dp-filter {\n            overflow-x: auto;\n            white-space: nowrap;\n            padding-bottom: 4px;\n        }\n\n        .dp-filter-btn {\n            font-size: 12px;\n            padding: 8px 12px;\n            margin: 0 4px 8px 0;\n        }\n\n        .dp-product {\n            padding: 32px 0;\n        }\n\n        .dp-product-inner {\n            max-width: 100%;\n            padding: 0 16px;\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 20px;\n        }\n\n        .dp-product:nth-child(even) .dp-product-inner {\n            flex-direction: column;\n        }\n\n        .dp-product-image {\n            width: 100%;\n            text-align: center;\n        }\n\n        .dp-product-image img {\n            \/*max-width: 260px;*\/\n            \/*width: 100%;*\/\n            height: 200px;\n        }\n\n        .dp-product-content {\n            max-width: 100%;\n        }\n\n        .dp-product-title {\n            font-size: 20px;\n            letter-spacing: 0.12em;\n            text-align: left;\n        }\n\n        .dp-product-description,\n        .dp-product-meta {\n            font-size: 14px;\n            text-align: left;\n        }\n\n        .dp-product-button {\n            display: block;\n            width: 100%;\n            box-sizing: border-box;\n            padding: 14px 16px;\n            text-align: center;\n        }\n\n        .dp-loader {\n            min-height: 160px;\n        }\n\n        .dp-loader-img {\n            width: 64px;\n            height: 64px;\n        }\n    }\n\n    \/* 2 \u043d\u0430 \u0440\u0435\u0434 (grid) *\/\n    #dp-products.dp-products {\n        max-width: 1200px;\n        margin: 0 auto;\n        padding: 0 16px 40px;\n        display: grid;\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        gap: 22px;\n    }\n\n    \/* \u043c\u043e\u0431\u0438\u043b\u043d\u043e \u2013 \u043f\u0430\u043a 2 \u043d\u0430 \u0440\u0435\u0434, \u043d\u043e \u043f\u043e-\u0441\u0442\u0435\u0433\u043d\u0430\u0442\u043e *\/\n    @media (max-width: 768px) {\n        #dp-products.dp-products {\n            gap: 14px;\n        }\n\n        #dp-products.dp-products {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n        }\n    }\n\n    \/* CARD *\/\n    .dp-card {\n        background: #fff;\n        border: 1px solid rgba(0, 0, 0, 0.1);\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n        position: relative;\n        overflow: hidden;\n        border-radius: 5px;\n        box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);\n    }\n\n    \/* \u043a\u044a\u0441 \u0431\u043e\u0440\u0434\u0435\u0440 *\/\n    .dp-card::before {\n        content: \"\";\n        position: absolute;\n        top: 0;\n        left: 50%;\n        width: 60%;\n        height: 1px;\n        background: #a02121;\n        transform: translateX(-50%);\n        z-index: 2;\n    }\n\n    \/* Media *\/\n    .dp-card-media {\n        position: relative;\n        background: #f6f6f6;\n        display: grid;\n        place-items: center;\n        position: relative;\n    }\n\n    .dp-card-media::after {\n        content: \"\";\n        position: absolute;\n        bottom: 0;\n        left: 50%;\n        width: 60%;\n        \/* \u0434\u044a\u043b\u0436\u0438\u043d\u0430 \u043d\u0430 \u043b\u0438\u043d\u0438\u044f\u0442\u0430 *\/\n        height: 1px;\n        background: #a02121;\n        transform: translateX(-50%);\n        pointer-events: none;\n    }\n\n    .dp-card-img {\n        width: 100%;\n        height: 260px !important;\n        object-fit: contain;\n        display: block;\n    }\n\n    \/* Overlay (hover + mobile tap) *\/\n    .dp-card-overlay {\n        position: absolute;\n        inset: 0;\n        display: grid;\n        place-items: center;\n        opacity: 0;\n        pointer-events: none;\n        transition: opacity 180ms ease;\n    }\n\n    \/* \u0447\u0435\u0440\u0432\u0435\u043d\u0438\u044f\u0442 \u0444\u043e\u043d *\/\n    .dp-card-overlay::before {\n        content: \"\";\n        position: absolute;\n        inset: 0;\n        background: rgba(160, 31, 29, 0.75);\n    }\n\n    \/* \u0431\u0443\u0442\u043e\u043d \"\u0412\u0438\u0436 \u043e\u0449\u0435\" *\/\n    .dp-card-more {\n        position: relative;\n        z-index: 1;\n        border: 1px solid #fff;\n        background: transparent;\n        color: #fff;\n        padding: 12px 18px;\n        text-transform: uppercase;\n        letter-spacing: 0.12em;\n        font-size: 12px;\n        cursor: pointer;\n    }\n\n    \/* Desktop hover *\/\n    @media (hover: hover) and (pointer: fine) {\n        .dp-card:hover .dp-card-overlay {\n            opacity: 1;\n            pointer-events: auto;\n        }\n    }\n\n    \/* Mobile \/ touch: \u043f\u043e\u043a\u0430\u0437\u0432\u0430\u043c\u0435 overlay \u0447\u0440\u0435\u0437 \u043a\u043b\u0430\u0441 *\/\n    .dp-card.is-revealed .dp-card-overlay {\n        opacity: 1;\n        pointer-events: auto;\n    }\n\n    \/* Body *\/\n    .dp-card-body {\n        padding: 14px 14px 16px;\n        display: grid;\n        gap: 10px;\n    }\n\n    .dp-card-title {\n        margin: 0;\n        font-size: 16px;\n        letter-spacing: 0.14em;\n        text-transform: uppercase;\n        line-height: 1.3;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        \/* \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 2 \u0440\u0435\u0434\u0430 *\/\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n\n        line-height: 1.25;\n        min-height: calc(1.25em * 2);\n        \/* \ud83d\udd11 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0430 \u0435\u0434\u043d\u0430\u043a\u0432\u0430 \u0432\u0438\u0441\u043e\u0447\u0438\u043d\u0430 *\/\n    }\n\n    .dp-card-price {\n        font-size: 15px;\n        letter-spacing: 0.06em;\n        opacity: 0.9;\n        text-align: end;\n    }\n\n    .dp-card-price span {\n        font-size: 14px;\n        color: gray;\n    }\n\n    \/* \u0442\u0432\u043e\u044f \u0431\u0443\u0442\u043e\u043d add to cart \u2013 \u0434\u0430 \u043f\u0430\u0441\u043d\u0435 \u043d\u0430 card *\/\n    .dp-product-button {\n        width: 100%;\n        padding: 8px 14px;\n        font-family: \"Garet\", serif !important;\n    }\n\n    @media (max-width: 768px) {\n        .dp-card-title {\n            font-size: 12px;\n        }\n\n        .dp-card-title {\n            font-size: 12px;\n\n            -webkit-line-clamp: 3;\n            min-height: calc(1.25em * 3);\n        }\n\n        .dp-product-button {\n            font-size: 11px;\n        }\n    }\n<\/style>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u201e\u0414\u0430 \u043e\u0442\u043a\u0440\u0438\u0435\u0448 \u043d\u0430\u0448\u0438\u0442\u0435 \u0432\u0438\u043d\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0432\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u0442\u043e\u043f\u0438\u0448 \u0432 \u0440\u0438\u0442\u044a\u043c\u0430 \u043d\u0430 \u0437\u0435\u043c\u044f\u0442\u0430 \u2014 \u0442\u0430\u043c, \u043a\u044a\u0434\u0435\u0442\u043e \u0441\u0435\u0437\u043e\u043d\u0438\u0442\u0435 \u0448\u0435\u043f\u043d\u0430\u0442, \u0430 \u043b\u043e\u0437\u044f\u0442\u0430 \u0440\u0430\u0437\u043a\u0430\u0437\u0432\u0430\u0442 \u0441\u0432\u043e\u0438\u0442\u0435 \u0442\u0438\u0445\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u0412\u0441\u0435\u043a\u0438 \u043f\u043b\u043e\u0434 \u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u0438 \u0442\u0438\u0448\u0438\u043d\u0430 \u0438 \u0441\u0432\u0435\u0442\u043b\u0438\u043d\u0430, \u0441\u044a\u0431\u0440\u0430\u043d\u0438 \u0432 \u0447\u0430\u0448\u0430. \u041d\u0438\u0435 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u0434\u0440\u0443\u0436\u0430\u0432\u0430\u043c\u0435 \u043f\u0440\u0438\u0440\u043e\u0434\u0430\u0442\u0430 \u043f\u043e \u043d\u0435\u0439\u043d\u0438\u044f \u043f\u044a\u0442 \u0438 \u043f\u0440\u0435\u0432\u0435\u0436\u0434\u0430\u043c\u0435 \u043d\u0435\u0439\u043d\u0430\u0442\u0430 \u043c\u044a\u0434\u0440\u043e\u0441\u0442 \u0432\u044a\u0432 \u0432\u043a\u0443\u0441.\u201c &#8222;Daniel&#8217;s Plain&#8220;<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-full-width.php","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"aioseo_notices":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/pages\/6462"}],"collection":[{"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/comments?post=6462"}],"version-history":[{"count":445,"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/pages\/6462\/revisions"}],"predecessor-version":[{"id":8439,"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/pages\/6462\/revisions\/8439"}],"wp:attachment":[{"href":"https:\/\/daniels-plain.com\/en\/wp-json\/wp\/v2\/media?parent=6462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}