{"id":1095,"date":"2026-01-22T06:38:35","date_gmt":"2026-01-22T06:38:35","guid":{"rendered":"http:\/\/artha.local\/?page_id=1095"},"modified":"2026-04-06T04:14:28","modified_gmt":"2026-04-06T04:14:28","slug":"portfolio","status":"publish","type":"page","link":"https:\/\/arthainterior.com\/en\/portfolio\/","title":{"rendered":"Portfolio"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"1095\" class=\"elementor elementor-1095\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d0757ba e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"d0757ba\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75f193f elementor-widget elementor-widget-heading\" data-id=\"75f193f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Where Design Meets Meaning<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-725845d elementor-widget elementor-widget-heading\" data-id=\"725845d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Residential &amp; Commercial Interior Design Solutions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0475358 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"0475358\" data-element_type=\"container\" id=\"card-portfolio\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d9f239 elementor-widget elementor-widget-shortcode\" data-id=\"3d9f239\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\" \/><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\r\n    <div id=\"proyek-modal\" class=\"proyek-modal\">\r\n        <span class=\"close-modal\">&times;<\/span>\r\n        <div class=\"swiper mySwiper\">\r\n            <div class=\"swiper-wrapper\" id=\"modal-content\"><\/div>\r\n            <div class=\"swiper-button-next\"><\/div>\r\n            <div class=\"swiper-button-prev\"><\/div>\r\n            <div class=\"swiper-pagination\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"filter-wrapper\">\r\n        <button class=\"filter-btn active\" data-filter=\"all\">All Project<\/button>\r\n        <button class=\"filter-btn\" data-filter=\"commertials\">Commertials<\/button><button class=\"filter-btn\" data-filter=\"residentials\">Residentials<\/button>    <\/div>\r\n\r\n    <div class=\"proyek-grid\">\r\n    \r\n    <div class=\"proyek-card\" data-category=\"residentials\" data-images='[&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Melody-in-Interior-Design-@agdithtan.design-Dining-Table-and-Chairs-from-@blackwoodPendant-Lamp-.jpg&quot;,&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Found-simplicity-and-tranquility-in-a-sense-of-the-all-embracing-harmony-of-things-is-the-beaut.jpg&quot;]'>\r\n                    <img decoding=\"async\" src=\"https:\/\/arthainterior.com\/wp-content\/uploads\/2026\/02\/Melody-in-Interior-Design-@agdithtan.design-Dining-Table-and-Chairs-from-@blackwoodPendant-Lamp-.jpg\" alt=\"LE PARC MENSION\" title=\"MAXX COFFEE\">\r\n                \r\n        <div class=\"overlay\">\r\n            <span class=\"kategori\">Residentials<\/span>\r\n            <h3>LE PARC MENSION<\/h3>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"proyek-card\" data-category=\"residentials\" data-images='[&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/IMG_5883.jpg&quot;,&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/HAN2112.JPG-scaled.jpeg&quot;]'>\r\n                    <img decoding=\"async\" src=\"https:\/\/arthainterior.com\/wp-content\/uploads\/2026\/02\/Found-simplicity-and-tranquility-in-a-sense-of-the-all-embracing-harmony-of-things-is-the-beaut.jpg\" alt=\"VILLA GARDEN\" title=\"MAXX COFFEE\">\r\n                \r\n        <div class=\"overlay\">\r\n            <span class=\"kategori\">Residentials<\/span>\r\n            <h3>VILLA GARDEN<\/h3>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"proyek-card\" data-category=\"residentials\" data-images='[&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Melody-in-Interior-Design-@agdithtan.design-Dining-Table-and-Chairs-from-@blackwoodPendant-Lamp-.jpg&quot;,&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/HAN2112.JPG-scaled.jpeg&quot;]'>\r\n                    <img decoding=\"async\" src=\"https:\/\/arthainterior.com\/wp-content\/uploads\/2026\/01\/Green-Garden-Project-a-cozy-and-elegant-home-living.jpg\" alt=\"GREEN GARDEN\" title=\"MAXX COFFEE\">\r\n                \r\n        <div class=\"overlay\">\r\n            <span class=\"kategori\">Residentials<\/span>\r\n            <h3>GREEN GARDEN<\/h3>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"proyek-card\" data-category=\"commertials\" data-images='[&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Melody-in-Interior-Design-@agdithtan.design-Dining-Table-and-Chairs-from-@blackwoodPendant-Lamp-.jpg&quot;,&quot;https:\\\/\\\/arthainterior.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/HAN2112.JPG-scaled.jpeg&quot;]'>\r\n                    <img decoding=\"async\" src=\"https:\/\/arthainterior.com\/wp-content\/uploads\/2026\/01\/Max-Coffee-\u2013-Build-by-ArthaBuilt-with-function-in-mind.Each-table-is-arranged-to-support-small-m.jpg\" alt=\"MAXX COFFEE\" title=\"MAXX COFFEE\">\r\n                \r\n        <div class=\"overlay\">\r\n            <span class=\"kategori\">Commertials<\/span>\r\n            <h3>MAXX COFFEE<\/h3>\r\n        <\/div>\r\n    <\/div>\r\n        <\/div>\r\n    \n<style class=\"wpcode-css-snippet\">\/* ============================================================\r\n   FILTER BUTTONS \r\n   ============================================================ *\/\r\n.filter-wrapper {\r\n    text-align: center;\r\n    margin-bottom: clamp(20px, 5vw, 40px);\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    justify-content: center;\r\n    gap: clamp(8px, 2vw, 12px);\r\n    max-width: 800px;\r\n    margin-left: auto;\r\n    margin-right: auto;\r\n    padding: 0 15px;\r\n}\r\n\r\n.filter-btn {\r\n    font-size: clamp(12px, 1vw + 10px, 14px);\r\n    padding: clamp(8px, 1.5vw, 12px) clamp(16px, 3vw, 24px);\r\n    border: 0;\r\n    border-radius: 12px;\r\n    background: #e5e5e5;\r\n    color: #000000;\r\n    cursor: pointer;\r\n    font-weight: 600;\r\n    transition: all 0.3s ease;\r\n    outline: none;\r\n    box-shadow: 0 2px 5px rgba(0,0,0,0.05);\r\n    flex: 0 1 auto;\r\n}\r\n\r\n.filter-btn.active,\r\n.filter-btn:hover {\r\n    background: #968F85;\r\n    color: #ffffff;\r\n    box-shadow: 0 4px 12px rgba(150, 143, 133, 0.3);\r\n    transform: translateY(-2px);\r\n}\r\n\r\n\/* ============================================================\r\n   GRID & CARD\r\n   ============================================================ *\/\r\n.proyek-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n    gap: clamp(16px, 4vw, 24px);\r\n    padding: clamp(10px, 3vw, 20px);\r\n    max-width: 1200px;\r\n    margin: 0 auto;\r\n}\r\n\r\n.proyek-card {\r\n    position: relative;\r\n    border-radius: 20px;\r\n    overflow: hidden;\r\n    cursor: pointer;\r\n    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);\r\n    background: #f9f9f9;\r\n    aspect-ratio: 4 \/ 5; \/* Proporsi vertikal elegan *\/\r\n}\r\n\r\n.proyek-card:hover {\r\n    transform: translateY(-8px);\r\n}\r\n\r\n.proyek-card img {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: cover;\r\n    display: block;\r\n}\r\n\r\n.overlay {\r\n    position: absolute;\r\n    inset: 0;\r\n    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: flex-end;\r\n    padding: clamp(15px, 4vw, 25px);\r\n    color: #fff;\r\n    opacity: 0.9;\r\n    transition: opacity 0.3s;\r\n}\r\n\r\n.overlay h3 {\r\n    font-size: clamp(18px, 2vw, 22px);\r\n    margin-bottom: 5px;\r\n}\r\n\r\n.overlay p {\r\n    font-size: clamp(13px, 1.5vw, 15px);\r\n    opacity: 0.8;\r\n}\r\n\r\n.proyek-card:hover .overlay {\r\n    opacity: 1;\r\n}\r\n\r\n\/* ============================================================\r\n   MODAL PREVIEW (SWIPER)\r\n   ============================================================ *\/\r\n.proyek-modal {\r\n    display: none;\r\n    position: fixed;\r\n    z-index: 999999;\r\n    inset: 0;\r\n    background: rgba(0, 0, 0, 0.98);\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n\r\n.proyek-modal.active {\r\n    display: flex;\r\n}\r\n\r\n.close-modal {\r\n    position: absolute;\r\n    top: 20px;\r\n    right: 25px;\r\n    color: #fff;\r\n    font-size: clamp(30px, 5vw, 40px);\r\n    font-weight: 300;\r\n    cursor: pointer;\r\n    z-index: 1000001;\r\n    transition: 0.3s;\r\n}\r\n\r\n.close-modal:hover {\r\n    color: #968F85;\r\n}\r\n\r\n.swiper {\r\n    width: 90%;\r\n    height: 80vh;\r\n}\r\n\r\n.swiper-slide img {\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: contain;\r\n}\r\n\r\n.swiper-button-next,\r\n.swiper-button-prev {\r\n    color: #968F85;\r\n}\r\n\r\n.swiper-pagination-bullet-active {\r\n    background: #968F85;\r\n}\r\n\r\n\/* ============================================================\r\n   TABLET (2 KOLOM)\r\n   ============================================================ *\/\r\n@media (max-width: 1024px) {\r\n    .proyek-grid {\r\n        grid-template-columns: repeat(2, 1fr);\r\n    }\r\n}\r\n\r\n\/* ============================================================\r\n   MOBILE OPTIMIZATION (FULL WIDTH CARD)\r\n   ============================================================ *\/\r\n\r\n@media (max-width: 640px) {\r\n    \/* 1. Paksa wrapper tombol menggunakan lebar penuh *\/\r\n    .filter-wrapper {\r\n        max-width: 100% !important;\r\n        width: 100% !important;\r\n        padding: 0 10px !important;\r\n        margin-bottom: 25px !important;\r\n        gap: 8px !important;\r\n    }\r\n\r\n    \/* 2. Tombol filter dibuat lebih proporsional di mobile *\/\r\n    .filter-btn {\r\n        flex: 1 1 calc(50% - 10px) !important; \/* 2 kolom tombol *\/\r\n        padding: 10px 5px !important;\r\n        font-size: 13px !important;\r\n    }\r\n\r\n    \/* 3. Paksa Grid menjadi 1 kolom yang memenuhi layar *\/\r\n    .proyek-grid {\r\n        display: grid !important;\r\n        grid-template-columns: 1fr !important; \/* Hanya 1 kolom *\/\r\n        width: 100% !important;\r\n        padding: 0px !important; \/* Padding kecil di pinggir layar *\/\r\n        gap: 20px !important;\r\n    }\r\n\r\n    \/* 4. Paksa Card untuk melebar sesuai kolom (lebar HP) *\/\r\n    .proyek-card {\r\n        width: 100% !important;\r\n        max-width: 100% !important;\r\n        margin: 0 auto !important;\r\n        aspect-ratio: 1 \/ 1 !important; \/* Bentuk kotak agar pas di layar HP *\/\r\n        border-radius: 15px !important;\r\n    }\r\n\r\n    \/* 5. Paksa Gambar di dalam card untuk memenuhi area *\/\r\n    .proyek-card img {\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n        object-fit: cover !important;\r\n        display: block !important;\r\n    }\r\n\r\n    \/* 6. Sesuaikan Overlay teks agar lebih terbaca *\/\r\n    .overlay {\r\n        padding: 20px !important;\r\n        background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.3) 50%, transparent 100%) !important;\r\n    }\r\n\r\n    .overlay h3 {\r\n        font-size: 20px !important;\r\n        line-height: 1.2 !important;\r\n    }\r\n\r\n    .overlay p {\r\n        font-size: 14px !important;\r\n    }\r\n}<\/style>\n<script>document.addEventListener(\"DOMContentLoaded\", function() {\r\n    const modal = document.getElementById(\"proyek-modal\");\r\n    const modalContent = document.getElementById(\"modal-content\");\r\n    const closeBtn = document.querySelector(\".close-modal\");\r\n\r\n    \/\/ Inisialisasi Swiper\r\n    const swiper = new Swiper(\".mySwiper\", {\r\n        loop: true,\r\n        observer: true,\r\n        observeParents: true,\r\n        navigation: { nextEl: \".swiper-button-next\", prevEl: \".swiper-button-prev\" },\r\n        pagination: { el: \".swiper-pagination\", clickable: true },\r\n    });\r\n\r\n    \/\/ Logika Filter - Pastikan display diatur dengan benar\r\n    document.querySelectorAll(\".filter-btn\").forEach(btn => {\r\n        btn.addEventListener(\"click\", function() {\r\n            document.querySelectorAll(\".filter-btn\").forEach(b => b.classList.remove(\"active\"));\r\n            this.classList.add(\"active\");\r\n            \r\n            const filter = this.dataset.filter;\r\n            document.querySelectorAll(\".proyek-card\").forEach(card => {\r\n                if (filter === \"all\" || card.dataset.category === filter) {\r\n                    card.style.display = \"block\";\r\n                } else {\r\n                    card.style.display = \"none\";\r\n                }\r\n            });\r\n        });\r\n    });\r\n\r\n    \/\/ Logika Klik Card\r\n    document.querySelectorAll(\".proyek-card\").forEach(card => {\r\n        card.addEventListener(\"click\", function() {\r\n            const dataStr = this.getAttribute('data-images');\r\n            if (!dataStr) return;\r\n\r\n            try {\r\n                const images = JSON.parse(dataStr);\r\n                if (images.length === 0) return;\r\n\r\n                modalContent.innerHTML = images.map(url => \r\n                    `<div class=\"swiper-slide\"><img decoding=\"async\" src=\"${url}\" \/><\/div>`\r\n                ).join('');\r\n\r\n                modal.classList.add(\"active\");\r\n                setTimeout(() => {\r\n                    swiper.update();\r\n                    swiper.slideToLoop(0, 0);\r\n                }, 100);\r\n            } catch (e) {\r\n                console.error(\"Gagal memuat gallery\", e);\r\n            }\r\n        });\r\n    });\r\n\r\n    if(closeBtn) {\r\n        closeBtn.onclick = () => modal.classList.remove(\"active\");\r\n    }\r\n    window.onclick = (e) => { if(e.target === modal) modal.classList.remove(\"active\"); };\r\n});<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div>","protected":false},"excerpt":{"rendered":"<p>Di Mana Desain Bertemu Makna Solusi Desain Interior Hunian &amp; Komersial<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"_joinchat":[],"footnotes":""},"class_list":["post-1095","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/pages\/1095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/comments?post=1095"}],"version-history":[{"count":292,"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/pages\/1095\/revisions"}],"predecessor-version":[{"id":2444,"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/pages\/1095\/revisions\/2444"}],"wp:attachment":[{"href":"https:\/\/arthainterior.com\/en\/wp-json\/wp\/v2\/media?parent=1095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}