﻿{"id":34,"date":"2025-01-16T00:18:04","date_gmt":"2025-01-16T08:18:04","guid":{"rendered":"https:\/\/fursone.com\/?page_id=34"},"modified":"2026-05-04T18:00:58","modified_gmt":"2026-05-05T02:00:58","slug":"blog","status":"publish","type":"page","link":"https:\/\/fursone.com\/ru\/blog\/","title":{"rendered":"\u0411\u043b\u043e\u0433"},"content":{"rendered":"\n<section id=\"blog-hero\">\n    <style>\n        \/* FIX WHITE GAP ABOVE HERO *\/\n        #page-container, #main-content, .entry-content, .post-content, .et_pb_section, .et_pb_row, .et_pb_column, .et_pb_module { padding-top: 0 !important; margin-top: 0 !important; }\n        .et_pb_section { padding: 0 !important; }\n        .et_pb_row { padding: 0 !important; width: 100% !important; max-width: 100% !important; }\n\n        #blog-hero {\n            background-color: #f3f2e6;\n            padding: 160px 20px 80px;\n            text-align: center;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n        }\n        #blog-hero h1 {\n            font-family: var(--font-heading, 'Playfair Display', serif);\n            font-size: clamp(36px, 5vw, 56px);\n            font-weight: 700;\n            color: #26292a;\n            margin: 0 0 20px 0;\n            line-height: 1.2;\n        }\n        #blog-hero p {\n            font-family: var(--font-body, 'Playfair', serif);\n            font-size: 16px;\n            line-height: 1.8;\n            color: rgba(38, 41, 42, 0.75);\n            max-width: 600px;\n            margin: 0 auto;\n            font-weight: 400;\n        }\n    <\/style>\n    <h1>Industry Blog<\/h1>\n    <p>Insights, trends, and manufacturing guides from the experts at Fursone Textile.<\/p>\n<\/section>\n\n<section id=\"blog-list-section\">\n    <div class=\"container\">\n        <div class=\"blog-grid\" id=\"blog-grid\">\n            <a href=\"\/blog\/\" class=\"blog-card\">\n            <div class=\"blog-card-content\">\n\n                <div class=\"blog-date\">Loading<\/div>\n                <h2 class=\"blog-title\">Loading latest posts\u2026<\/h2>\n                <p class=\"blog-excerpt\">Please wait while we fetch articles from the blog feed.<\/p>\n                <span class=\"blog-link\">Read Article<\/span>\n            \n            <\/div>\n        <\/a>\n        <\/div>\n\n        <div class=\"actions\">\n            <button type=\"button\" id=\"blog-load-more\">Load More Articles<\/button>\n        <\/div>\n    <\/div>\n\n    <style>\n        #blog-list-section {\n            background-color: #f3f2e6;\n            padding: 0 0 80px 0;\n        }\n        #blog-list-section .container {\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 0 40px;\n        }\n        .blog-grid {\n            display: grid;\n            grid-template-columns: repeat(3, 1fr);\n            gap: 40px;\n        }\n        .blog-card {\n            background: #ffffff;\n            border-radius: 12px;\n            overflow: hidden;\n            text-decoration: none;\n            display: flex;\n            flex-direction: column;\n            transition: transform 0.3s ease, box-shadow 0.3s ease;\n            border: 1px solid rgba(38,41,42,0.05);\n        }\n        .blog-card:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 15px 40px rgba(38,41,42,0.08);\n        }\n        .blog-card-image {\n            width: 100%;\n            height: 240px;\n            object-fit: cover;\n            background: #eae9df;\n        }\n        .blog-card-content {\n            padding: 30px;\n            display: flex;\n            flex-direction: column;\n            flex-grow: 1;\n        }\n        .blog-date {\n            font-family: var(--font-body, 'Playfair', serif);\n            font-size: 12px;\n            font-weight: 700;\n            color: #934d34;\n            text-transform: uppercase;\n            letter-spacing: 2px;\n            margin-bottom: 15px;\n        }\n        .blog-title {\n            font-family: var(--font-heading, 'Playfair Display', serif);\n            font-size: 22px;\n            font-weight: 600;\n            color: #26292a;\n            line-height: 1.4;\n            margin: 0 0 15px 0;\n        }\n        .blog-excerpt {\n            font-family: var(--font-body, 'Playfair', serif);\n            font-size: 15px;\n            color: rgba(38,41,42,0.7);\n            line-height: 1.6;\n            margin: 0 0 25px 0;\n            flex-grow: 1;\n        }\n        .blog-link {\n            font-family: var(--font-body, 'Playfair', serif);\n            font-size: 13px;\n            font-weight: 700;\n            color: #26292a;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            display: inline-flex;\n            align-items: center;\n        }\n        .blog-link::after {\n            content: '\u2192';\n            margin-left: 8px;\n            transition: transform 0.3s ease;\n        }\n        .blog-card:hover .blog-link::after {\n            transform: translateX(5px);\n        }\n        #blog-list-section .actions {\n            text-align: center;\n            margin-top: 60px;\n        }\n        #blog-load-more {\n            background: transparent;\n            color: #26292a;\n            border: 2px solid #26292a;\n            padding: 15px 40px;\n            font-family: var(--font-body, 'Playfair', serif);\n            font-size: 13px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n        #blog-load-more:hover {\n            background: #26292a;\n            color: #f3f2e6;\n        }\n        #blog-load-more:disabled {\n            opacity: 0.5;\n            cursor: not-allowed;\n        }\n\n        @media (max-width: 992px) {\n            .blog-grid { grid-template-columns: repeat(2, 1fr); gap: 30px; }\n        }\n        @media (max-width: 768px) {\n            #blog-list-section .container { padding: 0 20px; }\n            .blog-grid { grid-template-columns: 1fr; gap: 30px; }\n            .blog-card-image { height: 200px; }\n            .blog-card-content { padding: 25px; }\n            .blog-title { font-size: 20px; }\n        }\n    <\/style>\n\n    <script>\n    document.addEventListener('DOMContentLoaded', function() {\n        const apiUrl = 'https:\/\/fursone.com\/wp-json\/wp\/v2\/posts?_embed&per_page=9';\n        let currentPage = 1;\n        const grid = document.getElementById('blog-grid');\n        const loadBtn = document.getElementById('blog-load-more');\n\n        function formatDate(dateString) {\n            const options = { year: 'numeric', month: 'long', day: 'numeric' };\n            return new Date(dateString).toLocaleDateString('en-US', options);\n        }\n\n        function loadPosts(page) {\n            loadBtn.textContent = 'Loading...';\n            loadBtn.disabled = true;\n\n            fetch(apiUrl + '&page=' + page)\n                .then(response => {\n                    const totalPages = response.headers.get('X-WP-TotalPages');\n                    if (page >= totalPages) {\n                        loadBtn.style.display = 'none';\n                    }\n                    return response.json();\n                })\n                .then(posts => {\n                    if (page === 1) grid.innerHTML = ''; \/\/ clear loading state\n                    \n                    posts.forEach(post => {\n                        let imageUrl = '';\n                        if (post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) {\n                            imageUrl = post._embedded['wp:featuredmedia'][0].source_url;\n                        }\n\n                        \/\/ Remove HTML tags from excerpt\n                        const tempDiv = document.createElement('div');\n                        tempDiv.innerHTML = post.excerpt.rendered;\n                        const cleanExcerpt = tempDiv.textContent || tempDiv.innerText || \"\";\n\n                        const card = document.createElement('a');\n                        card.href = post.link;\n                        card.className = 'blog-card';\n                        \n                        let imgHtml = '';\n                        if (imageUrl) {\n                            imgHtml = `<img decoding=\"async\" src=\"${imageUrl}\" alt=\"${post.title.rendered}\" class=\"blog-card-image\" loading=\"lazy\">`;\n                        }\n\n                        card.innerHTML = `\n                            ${imgHtml}\n                            <div class=\"blog-card-content\">\n                                <div class=\"blog-date\">${formatDate(post.date)}<\/div>\n                                <h2 class=\"blog-title\">${post.title.rendered}<\/h2>\n                                <p class=\"blog-excerpt\">${cleanExcerpt.substring(0, 120)}...<\/p>\n                                <span class=\"blog-link\">Read Article<\/span>\n                            <\/div>\n                        `;\n                        grid.appendChild(card);\n                    });\n\n                    loadBtn.textContent = 'Load More Articles';\n                    loadBtn.disabled = false;\n                })\n                .catch(error => {\n                    console.error('Error loading blog posts:', error);\n                    grid.innerHTML = '<p>Error loading articles. Please try again later.<\/p>';\n                });\n        }\n\n        loadPosts(currentPage);\n\n        loadBtn.addEventListener('click', function() {\n            currentPage++;\n            loadPosts(currentPage);\n        });\n    });\n    <\/script>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Industry Blog Insights, trends, and manufacturing guides from the experts at Fursone Textile. Loading Loading latest posts\u2026 Please wait while we fetch articles from the blog feed. Read Article Load More Articles<\/p>","protected":false},"author":1,"featured_media":3143,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-34","page","type-page","status-publish","has-post-thumbnail"],"_links":{"self":[{"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/pages\/34","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/comments?post=34"}],"version-history":[{"count":3,"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/pages\/34\/revisions"}],"predecessor-version":[{"id":3191,"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/pages\/34\/revisions\/3191"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/media\/3143"}],"wp:attachment":[{"href":"https:\/\/fursone.com\/ru\/wp-json\/wp\/v2\/media?parent=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}