{"id":22033,"date":"2026-04-12T13:23:28","date_gmt":"2026-04-12T05:23:28","guid":{"rendered":"https:\/\/believeindustry.company\/?page_id=22033"},"modified":"2026-06-18T09:26:17","modified_gmt":"2026-06-18T01:26:17","slug":"pintu-dan-jendela","status":"publish","type":"page","link":"https:\/\/believeindustry.company\/id\/door-and-window\/","title":{"rendered":"Pintu dan Jendela"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"22033\" class=\"elementor elementor-22033\" 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-a9c6d64 e-flex e-con-boxed e-con e-parent\" data-id=\"a9c6d64\" 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-b9e1e96 e-flex e-con-boxed e-con e-parent\" data-id=\"b9e1e96\" 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-33a9036 elementor-widget elementor-widget-spacer\" data-id=\"33a9036\" 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<div class=\"elementor-element elementor-element-d7ae1a4 elementor-widget elementor-widget-html\" data-id=\"d7ae1a4\" 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>Door Lines \u2013 All Products | Believe Industry<\/title>\r\n<meta name=\"description\" content=\"Browse all Door Lines roll forming machines including steel door frame formers, garage door panel machines, roller shutter track lines, and rolling shutter slat machines. 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\">Door Lines<\/h1>\r\n    <p class=\"cat-hero__desc\">\r\n        Explore our full range of roll forming machines for door production \u2014 including steel door frame formers, garage door panel lines, roller shutter track machines, and rolling shutter slat roll formers. 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. door frame, garage, shutter, track, slat...\"\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 Door Production 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 door frame, garage door, or roller shutter 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 Door 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 = 'door-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('door frame') !== -1)     return 'Door Frame';\r\n        if (t.indexOf('garage door') !== -1)    return 'Garage Door';\r\n        if (t.indexOf('slat') !== -1)           return 'Rolling Shutter Slat';\r\n        if (t.indexOf('track') !== -1)          return 'Roller Shutter Track';\r\n        if (t.indexOf('shutter') !== -1)        return 'Roller Shutter';\r\n        if (t.indexOf('door') !== -1)           return 'Door Line';\r\n        return 'Door 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('[Door 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>Door Lines \u2013 All Products | Believe Industry Product Catalog Door Lines Explore our full range of roll forming machines for door production \u2014 including steel door frame formers, garage door panel lines, roller shutter track machines, and rolling shutter slat roll formers. All machines are custom-built to your profile drawings and production requirements. About [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":22040,"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-22033","page","type-page","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9K5n8-5Jn","jetpack_likes_enabled":false,"jetpack-related-posts":[{"id":22021,"url":"https:\/\/believeindustry.company\/id\/elementor-page-22021\/","url_meta":{"origin":22033,"position":0},"title":"Talang dan Saluran Air Hujan","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Saluran Talang Air \u2013 Semua Produk | Katalog Produk Believe Industry Saluran Talang Air &amp; Selokan Jelajahi rangkaian lengkap mesin pembentuk gulungan kami untuk produksi talang air dan selokan \u2014 termasuk pembentuk talang air, mesin selokan, saluran selokan portabel, dan sistem selokan gantung hidroponik. Semua mesin dibuat khusus sesuai dengan gambar profil dan persyaratan produksi Anda.\u2026","rel":"","context":"Postingan serupa","block_context":{"text":"Postingan serupa","link":""},"img":{"alt_text":"downspout and gutter","src":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/downspout-and-gutter.webp?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/downspout-and-gutter.webp?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/downspout-and-gutter.webp?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/downspout-and-gutter.webp?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/downspout-and-gutter.webp?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/believeindustry.company\/wp-content\/uploads\/2026\/04\/downspout-and-gutter.webp?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":21970,"url":"https:\/\/believeindustry.company\/id\/material-storage\/","url_meta":{"origin":22033,"position":1},"title":"Penyimpanan Material","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Lini Penyimpanan \u2013 Semua Produk | Katalog Produk Believe Industry Lini Logistik dan Penyimpanan Material Jelajahi rangkaian lengkap mesin pembentuk gulungan kami untuk rak palet dan sistem penyimpanan \u2014 termasuk lini balok, mesin tegak, mesin las balok kotak, dan pembentuk panel rak. Semua mesin dibuat khusus sesuai dengan gambar profil Anda\u2026","rel":"","context":"Postingan serupa","block_context":{"text":"Postingan serupa","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\/id\/construction-and-steel-structure\/","url_meta":{"origin":22033,"position":2},"title":"Konstruksi dan Struktur Baja","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Konstruksi &amp; Struktur Baja \u2013 Semua Produk | Katalog Produk Believe Industry Konstruksi &amp; Struktur Baja Jelajahi rangkaian lengkap mesin pembentuk gulungan kami untuk aplikasi konstruksi dan struktur baja \u2014 termasuk sistem purlin, dek, ubin, dan profil khusus. Semua mesin dibuat khusus sesuai dengan gambar profil dan persyaratan produksi Anda.\u2026","rel":"","context":"Postingan serupa","block_context":{"text":"Postingan serupa","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22002,"url":"https:\/\/believeindustry.company\/id\/energy-and-electric\/","url_meta":{"origin":22033,"position":3},"title":"Energi dan Listrik","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Energi &amp; Listrik \u2013 Semua Produk | Katalog Produk Believe Industry Energi &amp; Listrik Jelajahi rangkaian lengkap mesin pembentuk gulungan kami untuk aplikasi energi dan listrik \u2014 termasuk rel DIN, baki kabel, dan sistem saluran penyangga. Semua mesin dibuat khusus sesuai spesifikasi Anda. Tentang Kami Kirim Email kepada Kami Memuat produk...\u2026","rel":"","context":"Postingan serupa","block_context":{"text":"Postingan serupa","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\/id\/customized-profiles\/","url_meta":{"origin":22033,"position":4},"title":"Profil yang Disesuaikan","author":"Believe Industry Group","date":"April 12, 2026","format":false,"excerpt":"Desain Kustom \u2013 Semua Produk | Katalog Produk Believe Industry Desain Kustom Jelajahi rangkaian lengkap mesin pembentuk gulungan dan peralatan bantu yang dirancang khusus \u2014 termasuk pembentuk pagar pembatas jalan raya, lini profil rumah kaca, mesin papan perancah, pembentuk gulungan silo baja, lini timbul logam, mesin pres, dan penumpuk otomatis. Semua mesin\u2026","rel":"","context":"Postingan serupa","block_context":{"text":"Postingan serupa","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":23163,"url":"https:\/\/believeindustry.company\/id\/beli-blog\/","url_meta":{"origin":22033,"position":5},"title":"Blog Kami","author":"Believe Industry Group","date":"Juni 22, 2026","format":false,"excerpt":"Blog | Believe Industry Company \u2014 Pusat Pengetahuan Wawasan &amp; Panduan Mesin Pembentukan Gulungan Wawasan &amp; Panduan Pembentukan Gulungan Artikel ahli tentang mesin pembentukan gulungan dingin, manufaktur profil logam, pemilihan peralatan, dan praktik terbaik industri \u2014 dari tim Believe Industry. \u2014 Artikel yang Diterbitkan \u2014 Kategori Pengalaman 15+ Tahun \u00d7\u2026","rel":"","context":"Postingan serupa","block_context":{"text":"Postingan serupa","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/pages\/22033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/comments?post=22033"}],"version-history":[{"count":15,"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/pages\/22033\/revisions"}],"predecessor-version":[{"id":23155,"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/pages\/22033\/revisions\/23155"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/media\/22040"}],"wp:attachment":[{"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/media?parent=22033"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/believeindustry.company\/id\/wp-json\/wp\/v2\/tags?post=22033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}