{"id":2835,"date":"2026-02-11T01:02:53","date_gmt":"2026-02-11T01:02:53","guid":{"rendered":"https:\/\/kenawymodel.com\/?page_id=2835"},"modified":"2026-02-11T01:21:20","modified_gmt":"2026-02-11T01:21:20","slug":"residential-projects","status":"publish","type":"page","link":"https:\/\/kenawymodel.com\/ar\/residential-projects\/","title":{"rendered":"\u0627\u0644\u0646\u0645\u0627\u0630\u062c \u0627\u0644\u0633\u0643\u0646\u064a\u0629"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2835\" class=\"elementor elementor-2835\">\n\t\t\t\t<div class=\"elementor-element elementor-element-631f182 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"631f182\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0f10927 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"0f10927\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7c17a3e e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"7c17a3e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1821425 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"1821425\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-80fcafb elementor-widget elementor-widget-heading\" data-id=\"80fcafb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Residential Projects<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8495f0 elementor-widget elementor-widget-text-editor\" data-id=\"e8495f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"305\" data-end=\"465\">Precision-crafted residential scale models showcasing villas, compounds, and housing developments with accurate proportions and refined architectural detailing.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d92e824 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"d92e824\" 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-c7f0b4f elementor-widget elementor-widget-shortcode\" data-id=\"c7f0b4f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">  <div class=\"kn-portfolio\" id=\"kn_82813\">\n    <div class=\"kn-filters\" id=\"kn_82813_Filters\">\n      <button class=\"kn-filter is-active\" data-term=\"all\" type=\"button\">All<\/button>\n    <\/div>\n\n    <div class=\"kn-featured\" id=\"kn_82813_Featured\"><\/div>\n    <div class=\"kn-grid\" id=\"kn_82813_Grid\"><\/div>\n    <div class=\"kn-pagination\" id=\"kn_82813_Pagination\" aria-label=\"Projects pagination\"><\/div>\n  <\/div>\n\n  <style>\n    \/* ===== same CSS you already use ===== *\/\n    .kn-portfolio{max-width:1200px;margin:0 auto;padding:10px}\n    .kn-filters{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 18px}\n    .kn-filter{\n      border:1px solid rgba(216,180,106,.55);\n      background: rgba(216,180,106,.08);\n      color:#fff;\n      padding:10px 14px;\n      border-radius:999px;\n      cursor:pointer;\n      transition:.2s ease;\n      font-weight:700;\n    }\n    .kn-filter:hover{border-color: rgba(216,180,106,.9); background: rgba(216,180,106,.14)}\n    .kn-filter.is-active{background: rgba(216,180,106,.92); border-color: rgba(216,180,106,1); color:#111;}\n    .kn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}\n    @media(max-width:1024px){.kn-grid{grid-template-columns:repeat(2,1fr)}}\n    @media(max-width:600px){.kn-grid{grid-template-columns:1fr}}\n    .kn-card{border-radius:18px;overflow:hidden;display:block;position:relative;text-decoration:none;background:#111}\n    .kn-card img{width:100%;height:260px;object-fit:cover;display:block;transition:.35s}\n    .kn-card:hover img{transform:scale(1.05)}\n    .kn-meta{position:absolute;left:0;right:0;bottom:0;padding:14px;background:linear-gradient(to top, rgba(0,0,0,.78), transparent);display:flex;flex-direction:column;gap:6px;}\n    .kn-title{display:inline-block;width:auto;color:#D8B46A;font-weight:800;max-width:max-content;margin:0;font-size:13px;line-height:1.25;background:#000;padding:6px 10px;border-radius:10px;}\n    .kn-cat{display:inline-block;width:auto;max-width:max-content;padding:4px 10px;border-radius:999px;background: rgba(216,180,106,.5);color:#000;font-weight:700;margin:4px 0 0;font-size:11px;opacity:.85;}\n    .kn-info{margin:4px 0 0;font-size:11px;font-weight:700;color:#D8B46A}\n    .kn-pagination{display:flex;gap:8px;justify-content:center;margin:22px 0 10px;flex-wrap:wrap}\n    .kn-page{min-width:38px;height:38px;padding:0 12px;border-radius:10px;border:1px solid rgba(216,180,106,.45);background:transparent;color:#fff;cursor:pointer;font-weight:800;transition:.2s ease;}\n    .kn-page:hover{background:rgba(216,180,106,.14);border-color:rgba(216,180,106,.9)}\n    .kn-page.is-active{background:rgba(216,180,106,.92);color:#111;border-color:rgba(216,180,106,1)}\n    .kn-page:disabled{opacity:.4;cursor:not-allowed}\n    .kn-loading{color:#aaa;padding:14px}\n    .kn-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0 0 18px}\n    @media(max-width:1024px){.kn-featured{grid-template-columns:repeat(2,1fr)}}\n    @media(max-width:600px){.kn-featured{grid-template-columns:1fr}}\n  <\/style>\n\n  <script>\n  (async function(){\n    const root = document.getElementById(\"kn_82813\");\n    if(!root) return;\n\n    const grid = document.getElementById(\"kn_82813_Grid\");\n    const filters = document.getElementById(\"kn_82813_Filters\");\n    const pagination = document.getElementById(\"kn_82813_Pagination\");\n\n    const restLink = document.querySelector('link[rel=\"https:\/\/api.w.org\/\"]');\n    const REST_ROOT = restLink ? restLink.getAttribute(\"href\") : \"\/wp-json\/\";\n    const API = REST_ROOT.replace(\/\\\/?$\/, \"\/\") + \"kn\/v1\";\n\n    const PER_PAGE = 12;\n\n    \/\/ term id from shortcode OR auto-detected taxonomy page\n    const FIXED_TERM = \"131\";\n    const HIDE_FILTERS = \"1\";\n\n    \/\/ If we are on a category page, start with that category\n    const state = { term: FIXED_TERM ? String(FIXED_TERM) : \"all\", page: 1, totalPages: 1 };\n\n    if(HIDE_FILTERS === \"1\" && FIXED_TERM){\n      filters.style.display = \"none\";\n    }\n\n    const el = (tag, attrs={}, children=[]) => {\n      const n = document.createElement(tag);\n      Object.entries(attrs).forEach(([k,v]) => n.setAttribute(k, v));\n      children.forEach(c => n.appendChild(typeof c === \"string\" ? document.createTextNode(c) : c));\n      return n;\n    };\n\n    function setActiveFilter(btn){\n      [...filters.querySelectorAll(\".kn-filter\")].forEach(b => b.classList.remove(\"is-active\"));\n      btn.classList.add(\"is-active\");\n    }\n\n    async function fetchCategories(){\n      const res = await fetch(`${API}\/project-categories`);\n      if(!res.ok) return [];\n      return await res.json();\n    }\n\n    async function fetchProjects(){\n      const url = new URL(`${API}\/projects`, window.location.origin);\n      url.searchParams.set(\"per_page\", PER_PAGE);\n      url.searchParams.set(\"page\", state.page);\n\n      \/\/ IMPORTANT:\n      \/\/ If FIXED_TERM exists => always filter by it\n      \/\/ Else => use selected filter state.term\n      url.searchParams.set(\"term\", FIXED_TERM ? String(FIXED_TERM) : state.term);\n\n      const res = await fetch(url.toString());\n      if(!res.ok) throw new Error(\"Cannot load projects\");\n      return await res.json();\n    }\n\n    function buildCard(item){\n      const link = item.permalink || \"#\";\n      const imgUrl = item.featured_image || \"\";\n      const title = item.title || \"Project\";\n      const cat = (item.categories && item.categories.length) ? item.categories[0] : \"Project\";\n      const info = [item.client, item.country, item.year].filter(Boolean).join(\" \u2022 \");\n\n      return el(\"a\", { class:\"kn-card\", href: link }, [\n        el(\"img\", { src: imgUrl, alt: title, loading:\"lazy\" }),\n        el(\"div\", { class:\"kn-meta\" }, [\n          el(\"p\", { class:\"kn-title\" }, [title]),\n          el(\"p\", { class:\"kn-cat\" }, [cat]),\n          el(\"p\", { class:\"kn-info\" }, [info])\n        ])\n      ]);\n    }\n\n    function buildPagination(){\n      pagination.innerHTML = \"\";\n      if(state.totalPages <= 1) return;\n\n      const mk = (label, page, active=false, disabled=false) => {\n        const b = el(\"button\", { class:\"kn-page\" + (active ? \" is-active\" : \"\"), type:\"button\" }, [label]);\n        if(disabled) b.disabled = true;\n        b.addEventListener(\"click\", async () => {\n          state.page = page;\n          await load();\n          window.scrollTo({top: 0, behavior:\"smooth\"});\n        });\n        return b;\n      };\n\n      pagination.appendChild(mk(\"\u2039\", Math.max(1, state.page-1), false, state.page===1));\n\n      const maxButtons = 7;\n      let start = Math.max(1, state.page - 3);\n      let end = Math.min(state.totalPages, start + maxButtons - 1);\n      start = Math.max(1, end - maxButtons + 1);\n\n      for(let p=start; p<=end; p++){\n        pagination.appendChild(mk(String(p), p, p===state.page));\n      }\n\n      pagination.appendChild(mk(\"\u203a\", Math.min(state.totalPages, state.page+1), false, state.page===state.totalPages));\n    }\n\n    async function load(){\n      grid.innerHTML = `<div class=\"kn-loading\">Loading projects\u2026<\/div>`;\n      pagination.innerHTML = \"\";\n\n      const data = await fetchProjects();\n      state.totalPages = data.totalPages || 1;\n\n      grid.innerHTML = \"\";\n      (data.items || []).forEach(item => {\n        if(item.featured_image) grid.appendChild(buildCard(item));\n      });\n\n      if(!grid.children.length){\n        grid.innerHTML = `<div class=\"kn-loading\">No projects found.<\/div>`;\n      }\n\n      buildPagination();\n    }\n\n    try{\n      \/\/ Build filters only if not fixed term (Projects main page)\n      if(!FIXED_TERM){\n        const cats = await fetchCategories();\n        cats.forEach(t => {\n          const btn = el(\"button\", { class:\"kn-filter\", \"data-term\": t.id, type:\"button\" }, [t.name]);\n          btn.addEventListener(\"click\", async () => {\n            setActiveFilter(btn);\n            state.term = String(t.id);\n            state.page = 1;\n            await load();\n          });\n          filters.appendChild(btn);\n        });\n\n        const allBtn = filters.querySelector('[data-term=\"all\"]');\n        allBtn.addEventListener(\"click\", async () => {\n          setActiveFilter(allBtn);\n          state.term = \"all\";\n          state.page = 1;\n          await load();\n        });\n      } else {\n        \/\/ Fixed category: no filters, just load\n      }\n\n      await load();\n    } catch(err){\n      grid.innerHTML = `<div class=\"kn-loading\">Error: ${err.message}<\/div>`;\n    }\n  })();\n  <\/script>\n  \n<\/div>\n\t\t\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>Residential Projects Precision-crafted residential scale models showcasing villas, compounds, and housing developments with accurate proportions and refined architectural detailing.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2835","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Residential Projects - Kenawy Model<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kenawymodel.com\/ar\/residential-projects\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Residential Projects - Kenawy Model\" \/>\n<meta property=\"og:description\" content=\"Residential Projects Precision-crafted residential scale models showcasing villas, compounds, and housing developments with accurate proportions and refined architectural detailing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kenawymodel.com\/ar\/residential-projects\/\" \/>\n<meta property=\"og:site_name\" content=\"Kenawy Model\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T01:21:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 \u062f\u0642\u0627\u0626\u0642\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/residential-projects\\\/\",\"url\":\"https:\\\/\\\/kenawymodel.com\\\/residential-projects\\\/\",\"name\":\"Residential Projects - Kenawy Model\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/#website\"},\"datePublished\":\"2026-02-11T01:02:53+00:00\",\"dateModified\":\"2026-02-11T01:21:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/residential-projects\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kenawymodel.com\\\/residential-projects\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/residential-projects\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/kenawymodel.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Residential Projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/#website\",\"url\":\"https:\\\/\\\/kenawymodel.com\\\/\",\"name\":\"Kenawy Model\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kenawymodel.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/#organization\",\"name\":\"Kenawy Model\",\"url\":\"https:\\\/\\\/kenawymodel.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kenawymodel.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Logo-PNG-01.png\",\"contentUrl\":\"https:\\\/\\\/kenawymodel.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-Logo-PNG-01.png\",\"width\":1037,\"height\":348,\"caption\":\"Kenawy Model\"},\"image\":{\"@id\":\"https:\\\/\\\/kenawymodel.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Residential Projects - Kenawy Model","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kenawymodel.com\/ar\/residential-projects\/","og_locale":"ar_AR","og_type":"article","og_title":"Residential Projects - Kenawy Model","og_description":"Residential Projects Precision-crafted residential scale models showcasing villas, compounds, and housing developments with accurate proportions and refined architectural detailing.","og_url":"https:\/\/kenawymodel.com\/ar\/residential-projects\/","og_site_name":"Kenawy Model","article_modified_time":"2026-02-11T01:21:20+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631":"3 \u062f\u0642\u0627\u0626\u0642"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/kenawymodel.com\/residential-projects\/","url":"https:\/\/kenawymodel.com\/residential-projects\/","name":"Residential Projects - Kenawy Model","isPartOf":{"@id":"https:\/\/kenawymodel.com\/#website"},"datePublished":"2026-02-11T01:02:53+00:00","dateModified":"2026-02-11T01:21:20+00:00","breadcrumb":{"@id":"https:\/\/kenawymodel.com\/residential-projects\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kenawymodel.com\/residential-projects\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kenawymodel.com\/residential-projects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kenawymodel.com\/"},{"@type":"ListItem","position":2,"name":"Residential Projects"}]},{"@type":"WebSite","@id":"https:\/\/kenawymodel.com\/#website","url":"https:\/\/kenawymodel.com\/","name":"\u0645\u062c\u0633\u0645\u0627\u062a \u0642\u0646\u0627\u0648\u0649","description":"","publisher":{"@id":"https:\/\/kenawymodel.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kenawymodel.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/kenawymodel.com\/#organization","name":"\u0645\u062c\u0633\u0645\u0627\u062a \u0642\u0646\u0627\u0648\u0649","url":"https:\/\/kenawymodel.com\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/kenawymodel.com\/#\/schema\/logo\/image\/","url":"https:\/\/kenawymodel.com\/wp-content\/uploads\/2026\/02\/cropped-Logo-PNG-01.png","contentUrl":"https:\/\/kenawymodel.com\/wp-content\/uploads\/2026\/02\/cropped-Logo-PNG-01.png","width":1037,"height":348,"caption":"Kenawy Model"},"image":{"@id":"https:\/\/kenawymodel.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/pages\/2835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/comments?post=2835"}],"version-history":[{"count":6,"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/pages\/2835\/revisions"}],"predecessor-version":[{"id":2868,"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/pages\/2835\/revisions\/2868"}],"wp:attachment":[{"href":"https:\/\/kenawymodel.com\/ar\/wp-json\/wp\/v2\/media?parent=2835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}