{"id":22021,"date":"2026-04-12T13:10:17","date_gmt":"2026-04-12T05:10:17","guid":{"rendered":"https:\/\/believeindustry.company\/?page_id=22021"},"modified":"2026-06-18T09:19:26","modified_gmt":"2026-06-18T01:19:26","slug":"halaman-elementor-22021","status":"publish","type":"page","link":"https:\/\/believeindustry.company\/ms\/elementor-page-22021\/","title":{"rendered":"Downspout dan Talang"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"22021\" class=\"elementor elementor-22021\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-dde5b33 e-flex e-con-boxed e-con e-parent\" data-id=\"dde5b33\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-d649a7a e-flex e-con-boxed e-con e-parent\" data-id=\"d649a7a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-132a97a elementor-widget elementor-widget-spacer\" data-id=\"132a97a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\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 data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-e90c5de e-flex e-con-boxed e-con e-parent\" data-id=\"e90c5de\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef446ef elementor-widget elementor-widget-html\" data-id=\"ef446ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Downspout Lines \u2013 All Products | Believe Industry<\/title>\r\n<meta name=\"description\" content=\"Browse all Downspout Lines roll forming machines including downspout machines, gutter roll formers, portable gutter machines, and hydroponic hanging gutter systems. All machines are custom-built to your specifications.\">\r\n<style>\r\n\/* ============================================\r\n   Design System \u2014 Clean Minimal (Matching Site Style)\r\n   ============================================ *\/\r\n:root {\r\n    --orange:    #E8720C;\r\n    --orange-lt:  #f97316;\r\n    --gray-50:    #f9fafb;\r\n    --gray-100:   #f3f4f6;\r\n    --gray-200:   #e5e7eb;\r\n    --gray-300:   #d1d5db;\r\n    --gray-400:   #9ca3af;\r\n    --gray-500:   #6b7280;\r\n    --gray-600:   #4b5563;\r\n    --gray-700:   #374151;\r\n    --gray-800:   #1f2937;\r\n    --gray-900:   #111827;\r\n    --font-head:   'Segoe UI', system-ui, -apple-system, sans-serif;\r\n    --font-body:   'Segoe UI', system-ui, -apple-system, sans-serif;\r\n    --radius-sm:   8px;\r\n    --radius-md:   12px;\r\n    --radius-lg:   16px;\r\n    --shadow-sm:    0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);\r\n    --shadow-md:    0 4px 12px rgba(0,0,0,0.07);\r\n    --shadow-lg:    0 10px 30px rgba(0,0,0,0.10);\r\n    --transition:   0.22s cubic-bezier(0.4, 0, 0.2, 1);\r\n}\r\n\r\n\/* ============================================\r\n   Reset & Base\r\n   ============================================ *\/\r\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\nbody {\r\n    font-family: var(--font-body);\r\n    color: var(--gray-800);\r\n    background: #fff;\r\n    line-height: 1.6;\r\n    -webkit-font-smoothing: antialiased;\r\n}\r\n\r\na { color: inherit; text-decoration: none; }\r\nimg { max-width: 100%; display: block; }\r\n\r\n\/* ============================================\r\n   Hero Section \u2014 Clean & Minimal\r\n   ============================================ *\/\r\n.cat-hero {\r\n    background: linear-gradient(180deg, #fff 0%, var(--gray-50) 100%);\r\n    padding: 72px 24px 56px;\r\n    text-align: center;\r\n    border-bottom: 3px solid var(--orange);\r\n}\r\n\r\n.cat-hero__tag {\r\n    display: inline-block;\r\n    font-size: 11px;\r\n    font-weight: 700;\r\n    letter-spacing: 0.14em;\r\n    text-transform: uppercase;\r\n    color: var(--orange);\r\n    background: rgba(232,114,12,0.08);\r\n    border: 1px solid rgba(232,114,12,0.18);\r\n    padding: 5px 16px;\r\n    border-radius: 100px;\r\n    margin-bottom: 20px;\r\n}\r\n\r\n.cat-hero__title {\r\n    font-family: var(--font-head);\r\n    font-size: clamp(28px, 4.5vw, 42px);\r\n    font-weight: 800;\r\n    color: var(--gray-900);\r\n    line-height: 1.15;\r\n    margin-bottom: 16px;\r\n    letter-spacing: -0.02em;\r\n}\r\n\r\n.cat-hero__desc {\r\n    font-size: 15px;\r\n    color: var(--gray-500);\r\n    line-height: 1.75;\r\n    max-width: 560px;\r\n    margin: 0 auto 32px;\r\n}\r\n\r\n.cat-hero__btns {\r\n    display: flex;\r\n    gap: 12px;\r\n    justify-content: center;\r\n    flex-wrap: wrap;\r\n}\r\n\r\n.cat-hero__btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    padding: 11px 28px;\r\n    border-radius: 100px;\r\n    border: 1.5px solid var(--gray-300);\r\n    color: var(--gray-700);\r\n    background: #fff;\r\n    transition: var(--transition);\r\n    cursor: pointer;\r\n}\r\n.cat-hero__btn:hover {\r\n    border-color: var(--gray-400);\r\n    background: var(--gray-50);\r\n    box-shadow: var(--shadow-sm);\r\n}\r\n.cat-hero__btn--primary {\r\n    background: var(--orange);\r\n    color: #fff;\r\n    border-color: var(--orange);\r\n}\r\n.cat-hero__btn--primary:hover {\r\n    background: var(--orange-lt);\r\n    border-color: var(--orange-lt);\r\n    box-shadow: 0 4px 16px rgba(232,114,12,0.25);\r\n}\r\n\r\n\/* ============================================\r\n   Section (Product Grid Area)\r\n   ============================================ *\/\r\n.cat-section {\r\n    max-width: 1200px;\r\n    margin: 0 auto;\r\n    padding: 48px 24px 64px;\r\n}\r\n\r\n.cat-section__header {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    margin-bottom: 32px;\r\n    flex-wrap: wrap;\r\n    gap: 12px;\r\n}\r\n\r\n.cat-section__count {\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    color: var(--gray-500);\r\n    letter-spacing: 0.02em;\r\n}\r\n.cat-section__count em {\r\n    font-style: normal;\r\n    color: var(--gray-900);\r\n    font-weight: 800;\r\n}\r\n\r\n\/* ============================================\r\n   Search Bar \u2014 Clean Style\r\n   ============================================ *\/\r\n.cat-search {\r\n    margin-bottom: 40px;\r\n    position: relative;\r\n}\r\n\r\n.cat-search__inner {\r\n    display: flex;\r\n    align-items: stretch;\r\n    border: 1.5px solid var(--gray-200);\r\n    border-radius: var(--radius-sm);\r\n    background: #fff;\r\n    transition: border-color 0.22s, box-shadow 0.22s;\r\n}\r\n.cat-search__inner:focus-within {\r\n    border-color: var(--orange);\r\n    box-shadow: 0 0 0 3px rgba(232,114,12,0.1), var(--shadow-sm);\r\n}\r\n\r\n.cat-search__icon {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 48px;\r\n    min-width: 48px;\r\n    background: var(--gray-50);\r\n    border-right: 1px solid var(--gray-200);\r\n    border-radius: var(--radius-sm) 0 0 var(--radius-sm);\r\n}\r\n.cat-search__icon svg { opacity: 0.4; }\r\n\r\n.cat-search__input {\r\n    flex: 1;\r\n    border: none;\r\n    outline: none;\r\n    font-family: var(--font-body);\r\n    font-size: 14px;\r\n    font-weight: 500;\r\n    color: var(--gray-800);\r\n    padding: 12px 14px;\r\n    background: transparent;\r\n}\r\n.cat-search__input::placeholder {\r\n    color: var(--gray-400);\r\n    font-weight: 400;\r\n}\r\n\r\n.cat-search__clear {\r\n    display: none;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 40px;\r\n    min-width: 40px;\r\n    background: none;\r\n    border: none;\r\n    cursor: pointer;\r\n    color: var(--gray-400);\r\n    font-size: 18px;\r\n    transition: color 0.2s;\r\n}\r\n.cat-search__clear:hover { color: var(--orange); }\r\n.cat-search__clear.visible { display: flex; }\r\n\r\n.cat-search__match {\r\n    font-size: 12px;\r\n    color: var(--gray-500);\r\n    margin-top: 10px;\r\n    min-height: 18px;\r\n    font-weight: 500;\r\n}\r\n.cat-search__match em {\r\n    font-style: normal;\r\n    color: var(--orange);\r\n    font-weight: 700;\r\n}\r\n\r\n\/* ============================================\r\n   Product Grid\r\n   ============================================ *\/\r\n.cat-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\r\n    gap: 24px;\r\n}\r\n\r\n\/* ============================================\r\n   Product Card\r\n   ============================================ *\/\r\n.cat-card {\r\n    background: #fff;\r\n    border: 1px solid var(--gray-200);\r\n    border-radius: var(--radius-md);\r\n    overflow: hidden;\r\n    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);\r\n    display: flex;\r\n    flex-direction: column;\r\n}\r\n.cat-card:hover {\r\n    transform: translateY(-4px);\r\n    box-shadow: var(--shadow-lg);\r\n    border-color: var(--gray-300);\r\n}\r\n\r\n.cat-card__img {\r\n    width: 100%;\r\n    height: 220px;\r\n    object-fit: cover;\r\n    display: block;\r\n    background: var(--gray-100);\r\n}\r\n\r\n.cat-card__img-placeholder {\r\n    width: 100%;\r\n    height: 220px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    background: linear-gradient(135deg, var(--gray-100), var(--gray-200));\r\n    color: var(--gray-400);\r\n    font-size: 36px;\r\n    font-weight: 800;\r\n    font-family: var(--font-head);\r\n}\r\n\r\n.cat-card__body {\r\n    padding: 24px;\r\n    display: flex;\r\n    flex-direction: column;\r\n    flex: 1;\r\n}\r\n\r\n.cat-card__badge {\r\n    display: inline-block;\r\n    font-size: 10px;\r\n    font-weight: 700;\r\n    letter-spacing: 0.1em;\r\n    text-transform: uppercase;\r\n    color: var(--gray-600);\r\n    background: var(--gray-100);\r\n    border-radius: 100px;\r\n    padding: 3px 10px;\r\n    margin-bottom: 12px;\r\n    align-self: flex-start;\r\n}\r\n\r\n.cat-card__title {\r\n    font-family: var(--font-head);\r\n    font-size: 17px;\r\n    font-weight: 700;\r\n    color: var(--gray-900);\r\n    line-height: 1.35;\r\n    margin-bottom: 10px;\r\n    transition: color 0.2s;\r\n}\r\n.cat-card:hover .cat-card__title {\r\n    color: var(--orange);\r\n}\r\n\r\n.cat-card__excerpt {\r\n    font-size: 13px;\r\n    color: var(--gray-500);\r\n    line-height: 1.7;\r\n    margin-bottom: 20px;\r\n    flex: 1;\r\n}\r\n\r\n.cat-card__link {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    color: var(--orange);\r\n    transition: gap 0.2s;\r\n}\r\n.cat-card__link:hover {\r\n    gap: 10px;\r\n}\r\n.cat-card__link svg {\r\n    transition: transform 0.2s;\r\n}\r\n.cat-card__link:hover svg {\r\n    transform: translateX(3px);\r\n}\r\n\r\n\/* Highlight match *\/\r\n.cat-card__title mark,\r\n.cat-card__excerpt mark {\r\n    background: rgba(232,114,12,0.15);\r\n    color: var(--orange);\r\n    border-radius: 2px;\r\n    padding: 0 2px;\r\n}\r\n\r\n\/* Empty state *\/\r\n.cat-grid__empty {\r\n    display: none;\r\n    grid-column: 1 \/ -1;\r\n    text-align: center;\r\n    padding: 80px 20px;\r\n    border: 1px solid var(--gray-200);\r\n    border-radius: var(--radius-md);\r\n    background: var(--gray-50);\r\n}\r\n.cat-grid__empty.visible { display: block; }\r\n.cat-grid__empty-icon { font-size: 48px; margin-bottom: 16px; opacity: 0.25; }\r\n.cat-grid__empty-title {\r\n    font-size: 17px;\r\n    font-weight: 700;\r\n    color: var(--gray-700);\r\n    margin-bottom: 8px;\r\n}\r\n.cat-grid__empty-desc {\r\n    font-size: 14px;\r\n    color: var(--gray-400);\r\n    line-height: 1.7;\r\n}\r\n\r\n\/* ============================================\r\n   Loading Skeleton\r\n   ============================================ *\/\r\n.cat-skeleton {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));\r\n    gap: 24px;\r\n}\r\n.cat-skeleton__card {\r\n    background: #fff;\r\n    border: 1px solid var(--gray-200);\r\n    border-radius: var(--radius-md);\r\n    overflow: hidden;\r\n}\r\n.cat-skeleton__img {\r\n    width: 100%;\r\n    height: 220px;\r\n    background: linear-gradient(90deg, var(--gray-100) 25%, var(--gray-200) 50%, var(--gray-100) 75%);\r\n    background-size: 200% 100%;\r\n    animation: shimmer 1.4s infinite;\r\n}\r\n.cat-skeleton__body {\r\n    padding: 24px;\r\n}\r\n.cat-skeleton__line {\r\n    height: 12px;\r\n    border-radius: 6px;\r\n    background: linear-gradient(90deg, var(--gray-100) 25%, var(--gray-200) 50%, var(--gray-100) 75%);\r\n    background-size: 200% 100%;\r\n    animation: shimmer 1.4s infinite;\r\n    margin-bottom: 10px;\r\n}\r\n.cat-skeleton__line--short { width: 60%; }\r\n.cat-skeleton__line--long  { width: 100%; }\r\n\r\n@keyframes shimmer {\r\n    0%   { background-position: 200% 0; }\r\n    100% { background-position: -200% 0; }\r\n}\r\n\r\n\/* Loading badge *\/\r\n.cat-loading-badge {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    font-size: 12px;\r\n    font-weight: 600;\r\n    color: var(--gray-500);\r\n}\r\n.cat-loading-badge .dot {\r\n    width: 6px;\r\n    height: 6px;\r\n    border-radius: 50%;\r\n    background: var(--orange);\r\n    animation: pulse 1s infinite;\r\n}\r\n@keyframes pulse {\r\n    0%, 100% { opacity: 0.3; }\r\n    50%      { opacity: 1; }\r\n}\r\n\r\n\/* Error state *\/\r\n.cat-error {\r\n    display: none;\r\n    grid-column: 1 \/ -1;\r\n    text-align: center;\r\n    padding: 60px 20px;\r\n    border: 1px solid var(--gray-200);\r\n    border-radius: var(--radius-md);\r\n    background: var(--gray-50);\r\n}\r\n.cat-error.visible { display: block; }\r\n.cat-error__icon { font-size: 40px; margin-bottom: 16px; opacity: 0.3; }\r\n.cat-error__title {\r\n    font-size: 17px;\r\n    font-weight: 700;\r\n    color: var(--gray-700);\r\n    margin-bottom: 8px;\r\n}\r\n.cat-error__desc {\r\n    font-size: 14px;\r\n    color: var(--gray-400);\r\n    line-height: 1.7;\r\n    margin-bottom: 16px;\r\n}\r\n.cat-error__retry {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    color: #fff;\r\n    background: var(--orange);\r\n    border: 1.5px solid var(--orange);\r\n    padding: 9px 24px;\r\n    border-radius: 100px;\r\n    cursor: pointer;\r\n    transition: var(--transition);\r\n}\r\n.cat-error__retry:hover {\r\n    background: var(--orange-lt);\r\n    border-color: var(--orange-lt);\r\n}\r\n\r\n\/* ============================================\r\n   CTA Section\r\n   ============================================ *\/\r\n.cat-cta {\r\n    max-width: 800px;\r\n    margin: 64px auto 0;\r\n    text-align: center;\r\n    background: var(--gray-50);\r\n    border: 1px solid var(--gray-200);\r\n    border-radius: var(--radius-lg);\r\n    padding: 48px 32px;\r\n}\r\n\r\n.cat-cta__title {\r\n    font-family: var(--font-head);\r\n    font-size: 22px;\r\n    font-weight: 800;\r\n    color: var(--gray-900);\r\n    margin-bottom: 12px;\r\n}\r\n\r\n.cat-cta__desc {\r\n    font-size: 14px;\r\n    color: var(--gray-500);\r\n    line-height: 1.75;\r\n    margin-bottom: 28px;\r\n    max-width: 480px;\r\n    margin-left: auto;\r\n    margin-right: auto;\r\n}\r\n\r\n.cat-cta__btns {\r\n    display: flex;\r\n    gap: 12px;\r\n    justify-content: center;\r\n    flex-wrap: wrap;\r\n}\r\n\r\n.cat-cta__btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    padding: 11px 28px;\r\n    border-radius: 100px;\r\n    transition: var(--transition);\r\n    cursor: pointer;\r\n}\r\n.cat-cta__btn--outline {\r\n    border: 1.5px solid var(--gray-300);\r\n    color: var(--gray-700);\r\n    background: #fff;\r\n}\r\n.cat-cta__btn--outline:hover {\r\n    border-color: var(--gray-400);\r\n    box-shadow: var(--shadow-sm);\r\n}\r\n.cat-cta__btn--primary {\r\n    background: var(--orange);\r\n    color: #fff;\r\n    border: 1.5px solid var(--orange);\r\n}\r\n.cat-cta__btn--primary:hover {\r\n    background: var(--orange-lt);\r\n    border-color: var(--orange-lt);\r\n    box-shadow: 0 4px 16px rgba(232,114,12,0.25);\r\n}\r\n\r\n\/* ============================================\r\n   Responsive\r\n   ============================================ *\/\r\n@media (max-width: 768px) {\r\n    .cat-hero { padding: 48px 16px 40px; }\r\n    .cat-section { padding: 32px 16px 48px; }\r\n    .cat-grid, .cat-skeleton {\r\n        grid-template-columns: 1fr;\r\n        gap: 16px;\r\n    }\r\n    .cat-card__img, .cat-card__img-placeholder, .cat-skeleton__img { height: 180px; }\r\n    .cat-hero__btns { flex-direction: column; align-items: center; }\r\n    .cat-cta { padding: 32px 20px; }\r\n    .cat-cta__btns { flex-direction: column; align-items: center; }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<!-- ============================================\r\n     Hero Section\r\n     ============================================ -->\r\n<section class=\"cat-hero\">\r\n    <div class=\"cat-hero__tag\">Product Catalog<\/div>\r\n    <h1 class=\"cat-hero__title\">Downspout&Gutter Lines<\/h1>\r\n    <p class=\"cat-hero__desc\">\r\n        Explore our full range of roll forming machines for downspout and gutter production \u2014 including downspout formers, gutter machines, portable gutter lines, and hydroponic hanging gutter systems. All machines are custom-built to your profile drawings and production requirements.\r\n    <\/p>\r\n    <div class=\"cat-hero__btns\">\r\n        <a href=\"https:\/\/believeindustry.company\/contact\/\" class=\"cat-hero__btn cat-hero__btn--outline\">About Us<\/a>\r\n        <a href=\"https:\/\/believeindustry.company\/contact\/\" class=\"cat-hero__btn cat-hero__btn--primary\">Email Us<\/a>\r\n    <\/div>\r\n<\/section>\r\n\r\n<!-- ============================================\r\n     Product Section\r\n     ============================================ -->\r\n<section class=\"cat-section\">\r\n\r\n    <div class=\"cat-section__header\">\r\n        <div><\/div>\r\n        <span class=\"cat-section__count\" id=\"catCount\">\r\n            <span class=\"cat-loading-badge\"><span class=\"dot\"><\/span> Loading products...<\/span>\r\n        <\/span>\r\n    <\/div>\r\n\r\n    <!-- Search Bar -->\r\n    <div class=\"cat-search\">\r\n        <div class=\"cat-search__inner\">\r\n            <div class=\"cat-search__icon\">\r\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#666\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"M16 16l5 5\"\/><\/svg>\r\n            <\/div>\r\n            <input\r\n                type=\"text\"\r\n                class=\"cat-search__input\"\r\n                id=\"catSearchInput\"\r\n                placeholder=\"Search machines... e.g. downspout, gutter, portable, hydroponic...\"\r\n                autocomplete=\"off\"\r\n                spellcheck=\"false\"\r\n                disabled\r\n            >\r\n            <button class=\"cat-search__clear\" id=\"catSearchClear\" type=\"button\" aria-label=\"Clear search\">&times;<\/button>\r\n        <\/div>\r\n        <div class=\"cat-search__match\" id=\"catSearchMatch\"><\/div>\r\n    <\/div>\r\n\r\n    <!-- Loading skeleton -->\r\n    <div class=\"cat-skeleton\" id=\"catSkeleton\">\r\n        <div class=\"cat-skeleton__card\">\r\n            <div class=\"cat-skeleton__img\"><\/div>\r\n            <div class=\"cat-skeleton__body\">\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--short\"><\/div>\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--long\"><\/div>\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--long\"><\/div>\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--short\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"cat-skeleton__card\">\r\n            <div class=\"cat-skeleton__img\"><\/div>\r\n            <div class=\"cat-skeleton__body\">\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--short\"><\/div>\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--long\"><\/div>\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--long\"><\/div>\r\n                <div class=\"cat-skeleton__line cat-skeleton__line--short\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Product grid (populated dynamically) -->\r\n    <div class=\"cat-grid\" id=\"catGrid\" style=\"display:none;\">\r\n\r\n        <!-- Empty state -->\r\n        <div class=\"cat-grid__empty\" id=\"catGridEmpty\">\r\n            <div class=\"cat-grid__empty-icon\">&#8981;<\/div>\r\n            <div class=\"cat-grid__empty-title\">No Machines Found<\/div>\r\n            <div class=\"cat-grid__empty-desc\">Try a different keyword. Search covers machine names and descriptions.<\/div>\r\n        <\/div>\r\n\r\n        <!-- Error state -->\r\n        <div class=\"cat-error\" id=\"catError\">\r\n            <div class=\"cat-error__icon\">&#9888;<\/div>\r\n            <div class=\"cat-error__title\">Failed to Load Products<\/div>\r\n            <div class=\"cat-error__desc\">There was a problem fetching the latest products. Please check your connection and try again.<\/div>\r\n            <button class=\"cat-error__retry\" id=\"catRetry\" type=\"button\">Retry<\/button>\r\n        <\/div>\r\n    <\/div><!-- \/cat-grid -->\r\n\r\n    <!-- CTA -->\r\n    <div class=\"cat-cta\">\r\n        <h2 class=\"cat-cta__title\">Need a Custom Downspout or Gutter Line?<\/h2>\r\n        <p class=\"cat-cta__desc\">All our roll forming machines are custom-built to your exact profile dimensions and production volume. Contact our engineering team to discuss your downspout or gutter production project.<\/p>\r\n        <div class=\"cat-cta__btns\">\r\n            <a href=\"https:\/\/believeindustry.company\/contact\/\" class=\"cat-cta__btn cat-cta__btn--outline\">About Us<\/a>\r\n            <a href=\"https:\/\/believeindustry.company\/contact\/\" class=\"cat-cta__btn cat-cta__btn--primary\">Email Us<\/a>\r\n        <\/div>\r\n    <\/div>\r\n\r\n<\/section>\r\n\r\n<script>\r\n\/* ============================================\r\n   Dynamic Product Loader \u2014 Downspout Lines\r\n   Fetches latest products from WordPress REST API\r\n   ============================================ *\/\r\n(function () {\r\n    'use strict';\r\n\r\n    \/* ===== Configuration ===== *\/\r\n    var TAG_SLUG = 'downspout-lines';\r\n    var API_BASE = 'https:\/\/believeindustry.company\/wp-json\/wp\/v2';\r\n\r\n    \/* ===== DOM References ===== *\/\r\n    var skeleton = document.getElementById('catSkeleton');\r\n    var grid     = document.getElementById('catGrid');\r\n    var countEl  = document.getElementById('catCount');\r\n    var errorEl  = document.getElementById('catError');\r\n    var retryBtn = document.getElementById('catRetry');\r\n    var emptyEl  = document.getElementById('catGridEmpty');\r\n    var input    = document.getElementById('catSearchInput');\r\n    var clearBtn = document.getElementById('catSearchClear');\r\n    var matchEl  = document.getElementById('catSearchMatch');\r\n\r\n    var products = [];\r\n    var total    = 0;\r\n\r\n    \/* ===== Utility Functions ===== *\/\r\n\r\n    \/* Debounce *\/\r\n    function debounce(fn, ms) {\r\n        var timer;\r\n        return function () {\r\n            clearTimeout(timer);\r\n            timer = setTimeout(fn, ms);\r\n        };\r\n    }\r\n\r\n    \/* Strip HTML tags *\/\r\n    function stripHtml(html) {\r\n        var tmp = document.createElement('div');\r\n        tmp.innerHTML = html;\r\n        return (tmp.textContent || '').trim();\r\n    }\r\n\r\n    \/* Truncate text *\/\r\n    function truncate(text, max) {\r\n        if (text.length <= max) return text;\r\n        return text.slice(0, max).replace(\/\\s+\\S*$\/, '') + '...';\r\n    }\r\n\r\n    \/* Extract a badge\/category label from title *\/\r\n    function getBadge(title) {\r\n        var t = title.toLowerCase();\r\n        if (t.indexOf('hydroponic') !== -1)     return 'Hydroponic Gutter';\r\n        if (t.indexOf('downspout') !== -1)      return 'Downspout';\r\n        if (t.indexOf('portable') !== -1)       return 'Portable Gutter';\r\n        if (t.indexOf('gutter') !== -1)         return 'Gutter';\r\n        return 'Downspout Line';\r\n    }\r\n\r\n    \/* Fetch with timeout *\/\r\n    function fetchJSON(url, timeoutMs) {\r\n        return new Promise(function (resolve, reject) {\r\n            var controller = new AbortController();\r\n            var timer = setTimeout(function () {\r\n                controller.abort();\r\n                reject(new Error('Request timeout'));\r\n            }, timeoutMs || 10000);\r\n\r\n            fetch(url, { signal: controller.signal })\r\n                .then(function (res) {\r\n                    clearTimeout(timer);\r\n                    if (!res.ok) throw new Error('HTTP ' + res.status);\r\n                    return res.json();\r\n                })\r\n                .then(function (data) {\r\n                    clearTimeout(timer);\r\n                    resolve(data);\r\n                })\r\n                .catch(function (err) {\r\n                    clearTimeout(timer);\r\n                    reject(err);\r\n                });\r\n        });\r\n    }\r\n\r\n    \/* ===== Main Loading Logic ===== *\/\r\n\r\n    function showSkeleton() {\r\n        skeleton.style.display = '';\r\n        grid.style.display = 'none';\r\n        countEl.innerHTML = '<span class=\"cat-loading-badge\"><span class=\"dot\"><\/span> Loading products...<\/span>';\r\n        input.disabled = true;\r\n    }\r\n\r\n    function hideSkeleton() {\r\n        skeleton.style.display = 'none';\r\n        grid.style.display = '';\r\n        input.disabled = false;\r\n    }\r\n\r\n    function showError() {\r\n        hideSkeleton();\r\n        errorEl.classList.add('visible');\r\n        countEl.innerHTML = '<em style=\"color:#ef4444;\">Error<\/em>';\r\n    }\r\n\r\n    \/* Step 1: Get tag ID by slug *\/\r\n    function getTagId() {\r\n        return fetchJSON(API_BASE + '\/tags?slug=' + TAG_SLUG).then(function (tags) {\r\n            if (!tags || tags.length === 0) throw new Error('Tag not found: ' + TAG_SLUG);\r\n            return tags[0].id;\r\n        });\r\n    }\r\n\r\n    \/* Step 2: Get all posts with that tag *\/\r\n    function getPosts(tagId) {\r\n        return fetchJSON(\r\n            API_BASE + '\/posts?tags=' + tagId +\r\n            '&per_page=100&_fields=id,title,link,excerpt,featured_media'\r\n        ).then(function (posts) {\r\n            if (!posts || posts.length === 0) throw new Error('No posts found');\r\n            return posts;\r\n        });\r\n    }\r\n\r\n    \/* Step 3: Batch get featured media URLs *\/\r\n    function getMediaUrls(posts) {\r\n        var mediaIds = posts\r\n            .map(function (p) { return p.featured_media; })\r\n            .filter(function (id) { return id && id > 0; });\r\n\r\n        if (mediaIds.length === 0) {\r\n            return Promise.resolve({});\r\n        }\r\n\r\n        return fetchJSON(\r\n            API_BASE + '\/media?include=' + mediaIds.join(',') +\r\n            '&per_page=100&_fields=id,source_url'\r\n        ).then(function (media) {\r\n            var map = {};\r\n            media.forEach(function (m) { map[m.id] = m.source_url; });\r\n            return map;\r\n        }).catch(function () {\r\n            return {};\r\n        });\r\n    }\r\n\r\n    \/* Step 4: Render cards *\/\r\n    function renderCards(posts, mediaMap) {\r\n        var html = '';\r\n\r\n        posts.forEach(function (post) {\r\n            var title   = stripHtml(post.title.rendered || '');\r\n            var excerpt = stripHtml(post.excerpt.rendered || '');\r\n            var link    = post.link || '#';\r\n            var imgUrl  = mediaMap[post.featured_media] || '';\r\n            var badge   = getBadge(title);\r\n\r\n            excerpt = truncate(excerpt, 200);\r\n\r\n            var imgHtml = imgUrl\r\n                ? '<img decoding=\"async\" class=\"cat-card__img\" src=\"' + imgUrl + '\" alt=\"' + escapeAttr(title) + '\" loading=\"lazy\">'\r\n                : '<div class=\"cat-card__img-placeholder\">' + escapeHtml(title.charAt(0) || '?') + '<\/div>';\r\n\r\n            html += '' +\r\n                '<div class=\"cat-card\">' +\r\n                    imgHtml +\r\n                    '<div class=\"cat-card__body\">' +\r\n                        '<span class=\"cat-card__badge\">' + escapeHtml(badge) + '<\/span>' +\r\n                        '<h3 class=\"cat-card__title\">' + escapeHtml(title) + '<\/h3>' +\r\n                        '<p class=\"cat-card__excerpt\">' + escapeHtml(excerpt) + '<\/p>' +\r\n                        '<a href=\"' + link + '\" class=\"cat-card__link\">' +\r\n                            'View Details' +\r\n                            '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>' +\r\n                        '<\/a>' +\r\n                    '<\/div>' +\r\n                '<\/div>';\r\n        });\r\n\r\n        var emptyHtml = document.getElementById('catGridEmpty').outerHTML;\r\n        var errorHtml = document.getElementById('catError').outerHTML;\r\n\r\n        html += emptyHtml;\r\n        html += errorHtml;\r\n\r\n        grid.innerHTML = html;\r\n\r\n        errorEl = document.getElementById('catError');\r\n        emptyEl = document.getElementById('catGridEmpty');\r\n    }\r\n\r\n    function escapeHtml(str) {\r\n        var div = document.createElement('div');\r\n        div.textContent = str;\r\n        return div.innerHTML;\r\n    }\r\n\r\n    function escapeAttr(str) {\r\n        return escapeHtml(str).replace(\/\"\/g, '&quot;');\r\n    }\r\n\r\n    \/* Step 5: Update count + init search *\/\r\n    function finalize(posts) {\r\n        total = posts.length;\r\n        countEl.innerHTML = '<em>' + total + '<\/em> &nbsp;Machines Available';\r\n\r\n        initSearch();\r\n    }\r\n\r\n    \/* ===== Search Logic ===== *\/\r\n    function initSearch() {\r\n        var cards = grid.querySelectorAll('.cat-card');\r\n        if (!cards.length) return;\r\n\r\n        function highlightText(node, keyword) {\r\n            if (!keyword || !node) return;\r\n            var text = node.textContent;\r\n            var idx  = text.toLowerCase().indexOf(keyword.toLowerCase());\r\n            if (idx === -1) return;\r\n            var before = text.slice(0, idx);\r\n            var match  = text.slice(idx, idx + keyword.length);\r\n            var after  = text.slice(idx + keyword.length);\r\n            node.innerHTML = '';\r\n            node.appendChild(document.createTextNode(before));\r\n            var mark = document.createElement('mark');\r\n            mark.textContent = match;\r\n            node.appendChild(mark);\r\n            node.appendChild(document.createTextNode(after));\r\n        }\r\n\r\n        function clearHighlights() {\r\n            grid.querySelectorAll('mark').forEach(function (m) {\r\n                m.outerHTML = m.textContent;\r\n            });\r\n        }\r\n\r\n        function doSearch() {\r\n            var keyword = input.value.trim();\r\n            var kw      = keyword.toLowerCase();\r\n            var visible = 0;\r\n\r\n            clearBtn.classList.toggle('visible', keyword.length > 0);\r\n\r\n            if (!kw) {\r\n                cards.forEach(function (c) { c.style.display = ''; });\r\n                clearHighlights();\r\n                matchEl.innerHTML = '';\r\n                emptyEl.classList.remove('visible');\r\n                countEl.querySelector('em').textContent = total;\r\n                return;\r\n            }\r\n\r\n            cards.forEach(function (card) {\r\n                var title   = card.querySelector('.cat-card__title');\r\n                var excerpt = card.querySelector('.cat-card__excerpt');\r\n                var badge   = card.querySelector('.cat-card__badge');\r\n\r\n                var hay = [\r\n                    title   ? title.textContent : '',\r\n                    excerpt ? stripHtml(excerpt.innerHTML) : '',\r\n                    badge   ? badge.textContent : ''\r\n                ].join(' ').toLowerCase();\r\n\r\n                if (hay.indexOf(kw) !== -1) {\r\n                    card.style.display = '';\r\n                    visible++;\r\n                    clearHighlights();\r\n                    if (title)   highlightText(title, keyword);\r\n                    if (excerpt) highlightText(excerpt, keyword);\r\n                } else {\r\n                    card.style.display = 'none';\r\n                }\r\n            });\r\n\r\n            countEl.querySelector('em').textContent = visible;\r\n\r\n            if (visible === 0) {\r\n                matchEl.innerHTML = '<em>0<\/em> &nbsp;MATCHES \u2014 Try another keyword';\r\n                emptyEl.classList.add('visible');\r\n            } else if (visible === total) {\r\n                matchEl.innerHTML = '<em>' + visible + '<\/em> &nbsp;MATCHES \u2014 All machines';\r\n            } else {\r\n                matchEl.innerHTML = '<em>' + visible + '<\/em> &nbsp;MATCHES found';\r\n            }\r\n\r\n            if (visible > 0) emptyEl.classList.remove('visible');\r\n        }\r\n\r\n        var newInput = input.cloneNode(true);\r\n        input.parentNode.replaceChild(newInput, input);\r\n        input = newInput;\r\n\r\n        input.addEventListener('input', debounce(doSearch, 160));\r\n\r\n        clearBtn.addEventListener('click', function () {\r\n            input.value = '';\r\n            doSearch();\r\n            input.focus();\r\n        });\r\n\r\n        document.addEventListener('keydown', function (e) {\r\n            if (e.key === '\/' && document.activeElement !== input) {\r\n                e.preventDefault();\r\n                input.focus();\r\n            }\r\n            if (e.key === 'Escape' && document.activeElement === input) {\r\n                input.blur();\r\n                if (input.value) { input.value = ''; doSearch(); }\r\n            }\r\n        });\r\n    }\r\n\r\n    \/* ===== Main Load Function ===== *\/\r\n    function loadProducts() {\r\n        showSkeleton();\r\n        errorEl.classList.remove('visible');\r\n        emptyEl.classList.remove('visible');\r\n\r\n        getTagId()\r\n            .then(function (tagId) {\r\n                return getPosts(tagId);\r\n            })\r\n            .then(function (posts) {\r\n                return getMediaUrls(posts).then(function (mediaMap) {\r\n                    return { posts: posts, mediaMap: mediaMap };\r\n                });\r\n            })\r\n            .then(function (result) {\r\n                renderCards(result.posts, result.mediaMap);\r\n                hideSkeleton();\r\n                finalize(result.posts);\r\n            })\r\n            .catch(function (err) {\r\n                console.error('[Downspout Lines] Load error:', err.message);\r\n                showError();\r\n            });\r\n    }\r\n\r\n    \/* Retry button *\/\r\n    if (retryBtn) {\r\n        retryBtn.addEventListener('click', loadProducts);\r\n    }\r\n\r\n    \/* Init on page load *\/\r\n    loadProducts();\r\n\r\n})();\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Downspout Lines \u2013 All Products | Believe Industry Product Catalog Downspout&#038;Gutter Lines Explore our full range of roll forming machines for downspout and gutter production \u2014 including downspout formers, gutter machines, portable gutter lines, and hydroponic hanging gutter systems. All machines are custom-built to your profile drawings and production requirements. About Us Email Us Loading [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":22029,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_angie_page":false,"_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"footnotes":"","big_sky_generated":false},"tags":[],"class_list":["post-22021","page","type-page","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9K5n8-5Jb","jetpack_likes_enabled":false,"jetpack-related-posts":[{"id":21970,"url":"https:\/\/believeindustry.company\/ms\/material-storage\/","url_meta":{"origin":22021,"position":0},"title":"Penyimpanan Bahan","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Barisan Penyimpanan \u2013 Semua Produk | Katalog Produk Industri Believe Logistik dan Barisan Penyimpanan Bahan Terokai rangkaian penuh mesin pembentuk gulung kami untuk sistem rak dan penyimpanan palet \u2014 termasuk talian rasuk, mesin tegak, kimpalan rasuk kotak dan pembentuk panel rak. Semua mesin dibina khas mengikut lukisan profil anda\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"Automated Warehouse Racking Machinery","src":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/03\/pallet-Racking-System.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/03\/pallet-Racking-System.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/03\/pallet-Racking-System.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/03\/pallet-Racking-System.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/03\/pallet-Racking-System.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/03\/pallet-Racking-System.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":21922,"url":"https:\/\/believeindustry.company\/ms\/construction-and-steel-structure\/","url_meta":{"origin":22021,"position":1},"title":"Pembinaan dan Struktur Keluli","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Pembinaan &amp; Struktur Keluli \u2013 Semua Produk | Katalog Produk Industri Believe Pembinaan &amp; Struktur Keluli Terokai rangkaian penuh mesin pembentuk gulung kami untuk aplikasi pembinaan dan struktur keluli \u2014 termasuk purlin, dek, jubin dan sistem profil tersuai. Semua mesin dibina khas mengikut lukisan profil dan keperluan pengeluaran anda.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22002,"url":"https:\/\/believeindustry.company\/ms\/energy-and-electric\/","url_meta":{"origin":22021,"position":2},"title":"Tenaga dan Elektrik","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Tenaga &amp; Elektrik \u2013 Semua Produk | Katalog Produk Industri Believe Tenaga &amp; Elektrik Terokai rangkaian penuh mesin pembentuk gulung kami untuk aplikasi tenaga dan elektrik \u2014 termasuk rel DIN, dulang kabel dan sistem saluran topang. Semua mesin dibina khas mengikut spesifikasi anda. Perihal Kami E-mel Kami Memuatkan produk...\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"engery and electric","src":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/engery-and-electric.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/engery-and-electric.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/engery-and-electric.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/engery-and-electric.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/engery-and-electric.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/engery-and-electric.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":22047,"url":"https:\/\/believeindustry.company\/ms\/customized-profiles\/","url_meta":{"origin":22021,"position":3},"title":"Profil Tersuai","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Reka Bentuk Tersuai \u2013 Semua Produk | Katalog Produk Industri Believe Reka Bentuk Tersuai Terokai rangkaian penuh mesin pembentuk gulung yang direka khas dan peralatan tambahan kami \u2014 termasuk pembentuk rel pengadang lebuh raya, barisan profil rumah hijau, mesin papan perancah, pembentuk gulung silo keluli, barisan timbul logam, mesin tekan tebuk dan penyusun automatik. Semua mesin adalah\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"custom roll forming machine","src":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2018\/05\/custom-roll-forming-machine.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2018\/05\/custom-roll-forming-machine.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2018\/05\/custom-roll-forming-machine.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2018\/05\/custom-roll-forming-machine.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2018\/05\/custom-roll-forming-machine.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":22033,"url":"https:\/\/believeindustry.company\/ms\/door-and-window\/","url_meta":{"origin":22021,"position":4},"title":"Pintu dan Tingkap","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Garisan Pintu \u2013 Semua Produk | Katalog Produk Industri Believe Garisan Pintu Terokai rangkaian penuh mesin pembentuk gulung kami untuk pengeluaran pintu \u2014 termasuk pembentuk bingkai pintu keluli, garisan panel pintu garaj, mesin trek pengatup gulung dan pembentuk gulung bilah pengatup gulung. Semua mesin dibina khas mengikut profil anda\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"door and window","src":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/door-and-window.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/door-and-window.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/door-and-window.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/door-and-window.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/door-and-window.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/door-and-window.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":23163,"url":"https:\/\/believeindustry.company\/ms\/beli-blog\/","url_meta":{"origin":22021,"position":5},"title":"Blog Kami","author":"Believe Industry Group","date":"Jun 22, 2026","format":false,"excerpt":"Blog | Syarikat Believe Industry \u2014 Wawasan &amp; Panduan Mesin Pembentuk Gulungan Hab Pengetahuan Wawasan &amp; Panduan Pembentukan Gulungan Artikel pakar tentang mesin pembentukan gulungan sejuk, pembuatan profil logam, pemilihan peralatan dan amalan terbaik industri \u2014 daripada pasukan Believe Industry. \u2014 Artikel Diterbitkan \u2014 Kategori 15+ Tahun Pengalaman \u00d7\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/pages\/22021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/comments?post=22021"}],"version-history":[{"count":11,"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/pages\/22021\/revisions"}],"predecessor-version":[{"id":23150,"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/pages\/22021\/revisions\/23150"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/media\/22029"}],"wp:attachment":[{"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/media?parent=22021"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/believeindustry.company\/ms\/wp-json\/wp\/v2\/tags?post=22021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}