PageSourceSearch

https://klcc.com.my/news-and-media/

html klcc.com.my collected 2026-10-02 18:32:26 UTC 124,487 bytes, 2,904 lines download raw bytes

1<!doctype html>
2<html lang="en-US">
3<head>
4	<meta charset="UTF-8">
5	<meta name="viewport" content="width=device-width, initial-scale=1">
6	<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
7  
7<script>
8    (function () {
9      var sp = new URLSearchParams(window.location.search || '');
10      var hasAwardAutoScroll =
11        sp.has('aw_kw') ||
12        sp.has('aw_yr') ||
13        sp.has('aw_from') ||
14        sp.has('aw_scroll');
15
16      if (!hasAwardAutoScroll) return;
17
18      try {
19        if ('scrollRestoration' in history) {
20          history.scrollRestoration = 'manual';
21        }
22      } catch (e) { }
23
24      if (
25        window.location.hash === '#atscroll-award-gird' ||
26        window.location.hash === '#atscroll-award-filter'
27      ) {
28        try {
29          history.replaceState(null, '', window.location.pathname + window.location.search);
30        } catch (e) { }
31      }
32
33      document.documentElement.classList.add('klcc-awards-autoscroll-pending');
34    })();
35  </script>
35
36  <style>
37    html.klcc-awards-autoscroll-pending {
38      scroll-behavior: auto !important;
39    }
40  </style>
41<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 41-42
41
42<script async src="https://www.googletagmanager.com/gtag/js?id=
42G-89Y2XHWZPS
vendor: 12 bytes, line 42
42"></script>
43<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 43-44
43
44<script async src="https://www.googletagmanager.com/gtag/js?id=
44UA-202017552-2
vendor: 12 bytes, line 44
44"></script>
45<script>
46  
vendor: 134 bytes, lines 46-50
46window.dataLayer = window.dataLayer || [];
47  function gtag(){dataLayer.push(arguments);}
48  gtag('js', new Date());
49
50  gtag('config', '
50G-89Y2XHWZPS
vendor: 6 bytes, lines 50-51
50');
51  
51gtag('config', 'UA-202017552-2');
52</script>
52
53  
54	<!-- This site is optimized with the Yoast SEO plugin v27.7 - https://yoast.com/product/yoast-seo-wordpress/ -->
55	<title>News &amp; Media - KLCCP Stapled Group</title>
56	<meta name="description" content="Updates Across Our Portfolio" />
57	<link rel="canonical" href="https://klcc.com.my/news-and-media/" />
58	<meta property="og:locale" content="en_US" />
59	<meta property="og:type" content="article" />
60	<meta property="og:title" content="News &amp; Media - KLCCP Stapled Group" />
61	<meta property="og:description" content="Updates Across Our Portfolio" />
62	<meta property="og:url" content="https://klcc.com.my/news-and-media/" />
63	<meta property="og:site_name" content="KLCCP Stapled Group" />
64	<meta property="article:modified_time" content="2026-06-07T09:34:18+00:00" />
65	<meta name="twitter:card" content="summary_large_image" />
66	
66<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/klcc.com.my\/news-and-media\/","url":"https:\/\/klcc.com.my\/news-and-media\/","name":"News &amp; Media - KLCCP Stapled Group","isPartOf":{"@id":"https:\/\/klcc.com.my\/#website"},"datePublished":"2026-02-10T20:46:10+00:00","dateModified":"2026-06-07T09:34:18+00:00","description":"Updates Across Our Portfolio","breadcrumb":{"@id":"https:\/\/klcc.com.my\/news-and-media\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/klcc.com.my\/news-and-media\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/klcc.com.my\/news-and-media\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/klcc.com.my\/"},{"@type":"ListItem","position":2,"name":"News &amp; Media"}]},{"@type":"WebSite","@id":"https:\/\/klcc.com.my\/#website","url":"https:\/\/klcc.com.my\/","name":"KLCCP Stapled Group","description":"Iconic Landmarks and Thriving Ecosystems","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/klcc.com.my\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
66
67	<!-- / Yoast SEO plugin. -->
68
69
70<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://klcc.com.my/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fklcc.com.my%2Fnews-and-media%2F" />
71<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://klcc.com.my/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fklcc.com.my%2Fnews-and-media%2F&#038;format=xml" />
72<style id="wp-img-auto-sizes-contain-inline-css">
73img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
74/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
75</style>
76<link rel='stylesheet' id='font-awesome-5-all-css' href='https://klcc.com.my/wp-content/plugins/elementor/assets/lib/font-awesome/css/all.min.css?ver=4.0.9' media='all' />
77<link rel='stylesheet' id='font-awesome-4-shim-css' href='https://klcc.com.my/wp-content/plugins/elementor/assets/lib/font-awesome/css/v4-shims.min.css?ver=4.0.9' media='all' />
78<style id="wp-emoji-styles-inline-css">
79
80	img.wp-smiley, img.emoji {
81		display: inline !important;
82		border: none !important;
83		box-shadow: none !important;
84		height: 1em !important;
85		width: 1em !important;
86		margin: 0 0.07em !important;
87		vertical-align: -0.1em !important;
88		background: none !important;
89		padding: 0 !important;
90	}
91/*# sourceURL=wp-emoji-styles-inline-css */
92</style>
93<link rel='stylesheet' id='wp-block-library-css' href='https://klcc.com.my/wp-includes/css/dist/block-library/style.min.css?ver=7.1.2' media='all' />
94<style id="classic-theme-styles-inline-css">
95/*! This file is auto-generated */
96.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
97/*# sourceURL=/wp-includes/css/classic-themes.min.css */
98</style>
99<style id="global-styles-inline-css">
100:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
100--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
100.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
101:root :where(.wp-block-icon svg){width: 24px;}
102:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
103/*# sourceURL=global-styles-inline-css */
104</style>
105<link rel='stylesheet' id='cute-alert-css' href='https://klcc.com.my/wp-content/plugins/metform/public/assets/lib/cute-alert/style.css?ver=4.2.0' media='all' />
106<link rel='stylesheet' id='text-editor-style-css' href='https://klcc.com.my/wp-content/plugins/metform/public/assets/css/text-editor.css?ver=4.2.0' media='all' />
107<style id="wp-block-library-theme-inline-css">
108.wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:hsla(0,0%,100%,.65)}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:hsla(0,0%,100%,.65)}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em}
109/*# sourceURL=/wp-includes/css/dist/block-library/theme.min.css */
110</style>
111<link rel='stylesheet' id='klcch-inter-css' href='https://klcc.com.my/wp-content/themes/klccp/css/inter-local.css?ver=1786514808' media='all' />
112<link rel='stylesheet' id='klcch-97ae623a0383e85a1615afdaf25e2f16-css' href='https://klcc.com.my/wp-content/themes/klccp/css/var.css?ver=1786514808' media='all' />
113<link rel='stylesheet' id='klcch-2cdc4b499d1172e3b2b7b2ea20db2a50-css' href='https://klcc.com.my/wp-content/themes/klccp/css/layout.css?ver=1786514808' media='all' />
114<link rel='stylesheet' id='klcch-17c41292f05c1cec62cb63fffaa1b5a2-css' href='https://klcc.com.my/wp-content/themes/klccp/css/format.css?ver=1786514808' media='all' />
115<link rel='stylesheet' id='klcch-6a6a912d0c7b55b537768da778032849-css' href='https://klcc.com.my/wp-content/themes/klccp/css/style.css?ver=1786514808' media='all' />
116<style id="klcch-6a6a912d0c7b55b537768da778032849-inline-css">
117.stock-section-bg{background-image:url("https://klcc.com.my/wp-content/uploads/2026/03/Group-28.png");}
118.prospectus-section-bg{background-image:url("https://klcc.com.my/wp-content/uploads/2026/03/Vector-2.png");}
119.investment-bg-wrapper{background-image:url("https://klcc.com.my/wp-content/uploads/2026/03/Group-64.png");}
120/*# sourceURL=klcch-6a6a912d0c7b55b537768da778032849-inline-css */
121</style>
122<link rel='stylesheet' id='klcch-90724c553ac1ebd53f42bb0c06b6725e-css' href='https://klcc.com.my/wp-content/themes/klccp/css/responsive.css?ver=1786514808' media='all' />
123<style id="klccp-museo-sans-inline-css">
124@font-face{
125  font-family:"Museo Sans";
126  src:url("/wp-content/themes/klccp/fonts/MuseoSans-300.woff2") format("woff2"),
127      url("/wp-content/themes/klccp/fonts/MuseoSans-300.woff") format("woff");
128  font-weight:300;
129  font-style:normal;
130  font-display:swap;
131}
132@font-face{
133  font-family:"Museo Sans";
134  src:url("/wp-content/themes/klccp/fonts/MuseoSans-500.woff2") format("woff2"),
135      url("/wp-content/themes/klccp/fonts/MuseoSans-500.woff") format("woff");
136  font-weight:500;
137  font-style:normal;
138  font-display:swap;
139}
140@font-face{
141  font-family:"Museo Sans";
142  src:url("/wp-content/themes/klccp/fonts/MuseoSans-700.woff2") format("woff2"),
143      url("/wp-content/themes/klccp/fonts/MuseoSans-700.woff") format("woff");
144  font-weight:700;
145  font-style:normal;
146  font-display:swap;
147}
148@font-face{
149  font-family:"Museo Sans";
150  src:url("/wp-content/themes/klccp/fonts/MuseoSans-900.woff2") format("woff2"),
151      url("/wp-content/themes/klccp/fonts/MuseoSans-900.woff") format("woff");
152  font-weight:900;
153  font-style:normal;
154  font-display:swap;
155}
156h1, h2, h3, h4, h5, h6, .MuseoSans span, .MuseoSans p, .MuseoSans a, .MuseoSans div {
157  font-family: "Museo Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
158}
159/*# sourceURL=klccp-museo-sans-inline-css */
160</style>
161<style id="klccp-post-popup-slider-style-inline-css">
162.klcc-post-popup,.klcc-post-popup *{font-family:"Museo Sans",sans-serif;}.klcc-post-popup p{font-family:Verdana,Geneva,sans-serif !important;}
163/*# sourceURL=klccp-post-popup-slider-style-inline-css */
164</style>
165<style id="klcch-stickyhdr-g7v9kq-v3-inline-css">
166
167@media (max-width: 1366px){
168  body.klcchStickyHdr__g7V9kQ--on{
169    padding-top: var(--klcchStickyHdr__g7V9kQ-h, 0px);
170  }
171
172  .klcchStickyHdr__g7V9kQ{
173    position: fixed;
174    top: 0;
175    left: 0;
176    right: 0;
177
178    width: 100%;
179    max-width: none !important;
180
181    z-index: 9999;
182    background: inherit;
183    transform: translateZ(0);
184  }
185}
186/*# sourceURL=klcch-stickyhdr-g7v9kq-v3-inline-css */
187</style>
188<script id="font-awesome-4-shim-js" src="https://klcc.com.my/wp-content/plugins/elementor/assets/lib/font-awesome/js/v4-shims.min.js?ver=4.0.9"></script>
188
189<link rel="https://api.w.org/" href="https://klcc.com.my/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://klcc.com.my/wp-json/wp/v2/pages/246" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://klcc.com.my/xmlrpc.php?rsd" />
190<meta name="generator" content="WordPress 7.1.2" />
191<link rel='shortlink' href='https://klcc.com.my/?p=246' />
192<meta name="generator" content="Elementor 4.0.9; features: e_font_icon_svg, additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-swap">
193			<style>
194				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
195				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
196					background-image: none !important;
197				}
198				@media screen and (max-height: 1024px) {
199					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
200					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
201						background-image: none !important;
202					}
203				}
204				@media screen and (max-height: 640px) {
205					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
206					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
207						background-image: none !important;
208					}
209				}
210			</style>
211			<link rel="icon" href="https://klcc.com.my/wp-content/uploads/2026/06/favicon-150x150.png" sizes="32x32" />
212<link rel="icon" href="https://klcc.com.my/wp-content/uploads/2026/06/favicon-300x300.png" sizes="192x192" />
213<link rel="apple-touch-icon" href="https://klcc.com.my/wp-content/uploads/2026/06/favicon-300x300.png" />
214<meta name="msapplication-TileImage" content="/wp-content/uploads/2026/06/favicon-300x300.png" />
215</head>
216<body class="wp-singular page-template-default page page-id-246 wp-theme-klccp menu-home elementor-default elementor-kit-933">
217<header class="site-header is-top" data-no-animation-target>
218	<div class="site-header__inner">
219		<a class="site-logo" href="https://klcc.com.my/">
220			<img class="logo logo--color" src="https://klcc.com.my/wp-content/themes/klccp/images/icons/klcc-logo-color.svg" alt="" aria-hidden="true" />
221			<span class="visually-hidden">KLCC</span>
222		</a>
223		<nav class="header-nav">
224			<ul class="header-nav__list header-nav__list--secondary">
225				<li class="nav-item"><a href="https://klcc.com.my/news-and-media/" class="nav-link">News &#038; Media</a></li>
226<li class="nav-item"><a class="nav-link" target="_blank" rel="noopener noreferrer">Career</a></li>
227				<li class="nav-item">
228					<a class="nav-link search-icon header-actions__item" aria-label="Search">
229						<img src="https://klcc.com.my/wp-content/themes/klccp/images/icons/icon-search.svg" alt="" aria-hidden="true" />
230					</a>
231				</li>
232			</ul>
233			<ul class="header-nav__list header-nav__list--main pad-top-9">
234				<li class="nav-item nav-item--has-mega"><a href="https://klcc.com.my/who-we-are/" class="nav-link" data-mega-trigger aria-haspopup="true" aria-expanded="false" aria-controls="mega-menu-670">About KLCCP Stapled Group</a></li>
235<li class="nav-item nav-item--has-mega"><a href="https://klcc.com.my/our-business/" class="nav-link" data-mega-trigger aria-haspopup="true" aria-expanded="false" aria-controls="mega-menu-258">Our Businesses</a></li>
236<li class="nav-item"><a href="https://klcc.com.my/our-portfolio/" class="nav-link">Our Portfolio</a></li>
237<li class="nav-item nav-item--has-mega"><a href="https://klcc.com.my/sustainability/" class="nav-link" data-mega-trigger aria-haspopup="true" aria-expanded="false" aria-controls="mega-menu-2989">Sustainability</a></li>
238<li class="nav-item nav-item--has-mega"><a href="https://klcc.com.my/investor-relations/" class="nav-link" data-mega-trigger aria-haspopup="true" aria-expanded="false" aria-controls="mega-menu-669">Investor Relations</a></li>
239			</ul>
240		</nav>
241		<div class="header-actions">
242			<button class="header-menu-toggle" type="button" data-nav-toggle aria-expanded="false" aria-controls="mobile-navigation">
243				<span class="header-menu-toggle__label">Menu</span>
244				<span class="header-menu-toggle__icon" aria-hidden="true"></span>
245			</button>
246				<a href="https://klcc.com.my/get-in-touch/" class="button cta header-cta">Get in Touch</a>
247		</div>
248	</div>
249		<div class="mega-panels" aria-live="polite">
250		      <section class="mega-panel" id="mega-menu-670" role="group" aria-label="About KLCCP Stapled Group" hidden>
251        <div class="mega-menu__inner">
252          <div class="submenu-box">
253                <ul class="mega-menu__list">
254                      <li class="mega-menu__item">
255          <div class="mega-menu__item-row">
256            <a href="https://klcc.com.my/who-we-are/" class="mega-menu__link">Who We Are</a>
257                      </div>
258                  </li>
259                      <li class="mega-menu__item">
260          <div class="mega-menu__item-row">
261            <a href="https://klcc.com.my/who-we-are/group-structure/" class="mega-menu__link">Group Corporate Structure</a>
262                      </div>
263                  </li>
264                      <li class="mega-menu__item">
265          <div class="mega-menu__item-row">
266            <a href="https://klcc.com.my/who-we-are/board-of-directors/" class="mega-menu__link">Board of Directors</a>
267                      </div>
268                  </li>
269                      <li class="mega-menu__item">
270          <div class="mega-menu__item-row">
271            <a href="https://klcc.com.my/who-we-are/management-team-new/" class="mega-menu__link">Management Team</a>
272                      </div>
273                  </li>
274                      <li class="mega-menu__item">
275          <div class="mega-menu__item-row">
276            <a href="https://klcc.com.my/who-we-are/awards/" class="mega-menu__link">Awards &#038; Recognition</a>
277                      </div>
278                  </li>
279          </ul>
280              </div>
281        </div>
282      </section>
283            <section class="mega-panel" id="mega-menu-258" role="group" aria-label="Our Businesses" hidden>
284        <div class="mega-menu__inner">
285          <div class="submenu-box">
286                <ul class="mega-menu__list">
287                      <li class="mega-menu__item">
288          <div class="mega-menu__item-row">
289            <a href="https://klcc.com.my/our-business/#office" class="mega-menu__link">Office</a>
290                      </div>
291                  </li>
292                      <li class="mega-menu__item">
293          <div class="mega-menu__item-row">
294            <a href="https://klcc.com.my/our-business/#retail" class="mega-menu__link">Retail</a>
295                      </div>
296                  </li>
297                      <li class="mega-menu__item">
298          <div class="mega-menu__item-row">
299            <a href="https://klcc.com.my/our-business/#hotel" class="mega-menu__link">Hotel</a>
300                      </div>
301                  </li>
302                      <li class="mega-menu__item">
303          <div class="mega-menu__item-row">
304            <a href="https://klcc.com.my/our-business/#management-services" class="mega-menu__link">Management Services</a>
305                      </div>
306                  </li>
307          </ul>
308              </div>
309        </div>
310      </section>
311            <section class="mega-panel" id="mega-menu-2989" role="group" aria-label="Sustainability" hidden>
312        <div class="mega-menu__inner">
313          <div class="submenu-box">
314                <ul class="mega-menu__list">
315                      <li class="mega-menu__item">
316          <div class="mega-menu__item-row">
317            <a href="https://klcc.com.my/sustainability/?sust_tab=overview" class="mega-menu__link">Sustainability Overview</a>
318                      </div>
319                  </li>
320                      <li class="mega-menu__item mega-menu__item--has-children">
321          <div class="mega-menu__item-row">
322            <a href="https://klcc.com.my/sustainability/?sust_tab=strategy-governance" class="mega-menu__link">Strategy &amp; Governance</a>
323                          <button class="mega-menu__submenu-toggle" type="button" aria-expanded="false" aria-controls="mega-submenu-3016" data-submenu-toggle>
324                <span class="visually-hidden">Toggle submenu for Strategy &amp; Governance</span>
325              </button>
326                      </div>
327              <ul class="mega-menu__list mega-menu__sublist" id="mega-submenu-3016" data-submenu-list hidden>
328                      <li class="mega-menu__item">
329          <div class="mega-menu__item-row">
330            <a href="https://klcc.com.my/sustainability/?sust_tab=strategy-governance&#038;sust_section=governance-structure" class="mega-menu__link">Governance Structure</a>
331                      </div>
332                  </li>
333                      <li class="mega-menu__item">
334          <div class="mega-menu__item-row">
335            <a href="https://klcc.com.my/sustainability/?sust_tab=strategy-governance&#038;sust_section=materiality-approach" class="mega-menu__link">Materiality Approach</a>
336                      </div>
337                  </li>
338          </ul>
339            </li>
340                      <li class="mega-menu__item">
341          <div class="mega-menu__item-row">
342            <a href="https://klcc.com.my/sustainability/?sust_tab=framework" class="mega-menu__link">Sustainability Framework</a>
343                      </div>
344                  </li>
345                      <li class="mega-menu__item mega-menu__item--has-children">
346          <div class="mega-menu__item-row">
347            <a href="https://klcc.com.my/sustainability/?sust_tab=performance-progress" class="mega-menu__link">Performance &amp; Progress</a>
348                          <button class="mega-menu__submenu-toggle" type="button" aria-expanded="false" aria-controls="mega-submenu-3020" data-submenu-toggle>
349                <span class="visually-hidden">Toggle submenu for Performance &amp; Progress</span>
350              </button>
351                      </div>
352              <ul class="mega-menu__list mega-menu__sublist" id="mega-submenu-3020" data-submenu-list hidden>
353                      <li class="mega-menu__item">
354          <div class="mega-menu__item-row">
355            <a href="https://klcc.com.my/sustainability/?sust_tab=performance-progress&#038;sust_section=sustainability-plan-2030" class="mega-menu__link">Sustainability Plan 2030</a>
356                      </div>
357                  </li>
358                      <li class="mega-menu__item">
359          <div class="mega-menu__item-row">
360            <a href="https://klcc.com.my/sustainability/?sust_tab=performance-progress&#038;sust_section=key-sustainability-ratings" class="mega-menu__link">Key Sustainability Ratings</a>
361                      </div>
362                  </li>
363          </ul>
364            </li>
365                      <li class="mega-menu__item">
366          <div class="mega-menu__item-row">
367            <a href="https://klcc.com.my/sustainability/?sust_tab=policies-standards" class="mega-menu__link">Policies &amp; Standards</a>
368                      </div>
369                  </li>
370          </ul>
371              </div>
372        </div>
373      </section>
374            <section class="mega-panel" id="mega-menu-669" role="group" aria-label="Investor Relations" hidden>
375        <div class="mega-menu__inner">
376          <div class="submenu-box">
377                <ul class="mega-menu__list">
378                      <li class="mega-menu__item">
379          <div class="mega-menu__item-row">
380            <a href="https://klcc.com.my/investor-relations/" class="mega-menu__link">IR Overview</a>
381                      </div>
382                  </li>
383                      <li class="mega-menu__item">
384          <div class="mega-menu__item-row">
385            <a href="https://klcc.com.my/investor-relations/financial-performance/" class="mega-menu__link">Financial Performance</a>
386                      </div>
387                  </li>
388                      <li class="mega-menu__item">
389          <div class="mega-menu__item-row">
390            <a href="https://klcc.com.my/investor-relations/stock-information/" class="mega-menu__link">Stock Information</a>
391                      </div>
392                  </li>
393                      <li class="mega-menu__item">
394          <div class="mega-menu__item-row">
395            <a href="https://klcc.com.my/investor-relations/reports/" class="mega-menu__link">Reports</a>
396                      </div>
397                  </li>
398                      <li class="mega-menu__item">
399          <div class="mega-menu__item-row">
400            <a href="https://klcc.com.my/investor-relations/investor-resources/" class="mega-menu__link">Investor Resources</a>
401                      </div>
402                  </li>
403                      <li class="mega-menu__item">
404          <div class="mega-menu__item-row">
405            <a href="https://klcc.com.my/investor-relations/bursa-announcements/" class="mega-menu__link">Bursa Announcements</a>
406                      </div>
407                  </li>
408                      <li class="mega-menu__item">
409          <div class="mega-menu__item-row">
410            <a href="https://klcc.com.my/investor-relations/annual-general-meetings/" class="mega-menu__link">Annual General Meetings</a>
411                      </div>
412                  </li>
413          </ul>
414              </div>
415        </div>
416      </section>
417      	</div>
418	</header>
419<main>
420    <section class="section row-intro row-intro--static dots--mobile" data-rotator-enabled="false"
421        data-rotator-images="" data-rotator-interval="3000"
422        data-rotator-fade="1200"
423        style="--row-intro-bg-desktop: url(/wp-content/uploads/2026/02/OurBusiness1-scaled.webp); --row-intro-bg-position: center center; --row-intro-bg-mobile: url(/wp-content/uploads/2026/02/OurBusiness1-scaled.webp); --row-intro-bg-position-mobile: center center;"
424        data-rotator-images-mobile="">
425        <div class="hero-heading">
426            <div class="container">
427                <p class="section-label h5 lh-1-1 text-weight-black text-brand-army text-uppercase">News &amp; Media</p>
428                <h1 class="hero-heading__title">Keeping You Informed</h1>
429            </div>
430        </div>
431    </section>
432
433    <section class="breadcrumb">
434  <ul>
435<li><a href="https://klcc.com.my/">Home</a></li>
436<li>News &amp; Media</li>
437</ul>
438</section>
439
440	 <section class="row pad-none bg-brand-light-blue">
441        <div class="section-wrapper pad-top-72 pad-inline-72">
442            <div class="flex flex-column gap-72">
443                <div class="flex flex-column gap-18 flex-align-center text-center">
444                    <div class="flex flex-column gap-12">
445                        <p class="section-label h5 lh-1-1 text-weight-black text-label-green text-uppercase">Press and Perspective</p>
446                        <h3 class="section-heading h2 lh-1-2 text-title-blue text-weight-bold">Updates Across Our Portfolio</h3>
447                    </div>
448                    <div class="flex flex-column medium-width">
449                        <p class="p">
450                            Stay connected with the latest breakthroughs, corporate milestones and headlines from the KLCCP Stapled Group. Explore the stories that define our trajectory as we continue to shape Malaysia’s premier real estate landscape.
451                        </p>
452                    </div>
453                </div>
454            </div>
455        </div>
456    </section>
457	<section class="section pad-block-108 pad-inline-72 row-reports row-newsroom bg-brand-light-blue" data-section="newsroom">
458	  <section class="nm-section"
459    id="nm_bef8a8cb-8d2b-4f64-ade7-d1e858256b6a" data-term="newsroom"
460    data-per-page="3" data-default-year=""
461    data-default-category="" data-display="grid">
462          <div class="nm-head">
463                  <h2 class="nm-title">Newsroom</h2>
464        
465        <div class="nm-filters" role="search">
466          <label class="nm-field nm-field-keyword">
467            <input class="nm-input" type="search" placeholder="Keyword" autocomplete="off" />
468          </label>
469
470          
471          <label class="nm-field nm-field-year">
472            <span class="nm-year" data-role="year">
473
474              <select class="nm-select nm-select--native nm-select-year" aria-label="Year">
475                <option value=""  selected='selected'>All years</option>
476                                  <option value="2026" >
477                    2026                  </option>
478                                  <option value="2025" >
479                    2025                  </option>
480                                  <option value="2024" >
481                    2024                  </option>
482                                  <option value="2023" >
483                    2023                  </option>
484                                  <option value="2022" >
485                    2022                  </option>
486                                  <option value="2021" >
487                    2021                  </option>
488                                  <option value="2020" >
489                    2020                  </option>
490                                  <option value="2019" >
491                    2019                  </option>
492                              </select>
493
494              <button type="button" class="nm-year-btn" data-role="year-btn" aria-haspopup="listbox" aria-expanded="false">
495                <span class="nm-year-text" data-role="year-text">
496                  All years                </span>
497                <i class="fa-solid fa-chevron-down fas fa-chevron-down nm-select-arrow" aria-hidden="true"></i>
498              </button>
499
500              <div class="nm-year-menu" data-role="year-menu" role="listbox" aria-label="Year options">
501                <button type="button" class="nm-year-opt" data-value="">All years</button>
502                                  <button type="button" class="nm-year-opt" data-value="2026">
503                    2026                  </button>
504                                  <button type="button" class="nm-year-opt" data-value="2025">
505                    2025                  </button>
506                                  <button type="button" class="nm-year-opt" data-value="2024">
507                    2024                  </button>
508                                  <button type="button" class="nm-year-opt" data-value="2023">
509                    2023                  </button>
510                                  <button type="button" class="nm-year-opt" data-value="2022">
511                    2022                  </button>
512                                  <button type="button" class="nm-year-opt" data-value="2021">
513                    2021                  </button>
514                                  <button type="button" class="nm-year-opt" data-value="2020">
515                    2020                  </button>
516                                  <button type="button" class="nm-year-opt" data-value="2019">
517                    2019                  </button>
518                              </div>
519            </span>
520          </label>
521        </div>
522      </div>
523
524      <div class="nm-grid" data-role="grid" aria-live="polite"></div>
525
526      <div class="nm-actions">
527        <nav class="nm-pagination" data-role="pagination" aria-label="Pagination">
528          <button type="button" class="nm-pagebtn nm-pagebtn--nav" data-role="prev" aria-label="Previous page" disabled>
529            <i class="fa-solid fa-chevron-left fas fa-chevron-left" aria-hidden="true"></i>
530          </button>
531
532          <div class="nm-pages" data-role="pages" aria-label="Pages"></div>
533
534          <button type="button" class="nm-pagebtn nm-pagebtn--nav" data-role="next" aria-label="Next page" disabled>
535            <i class="fa-solid fa-chevron-right fas fa-chevron-right" aria-hidden="true"></i>
536          </button>
537        </nav>
538      </div>
539      </section>
540  
541	</section>
542	<section class="section pad-block-108 pad-inline-72 row-reports row-newsroom bg-surface" data-section="press-releases">
543	  <section class="nm-section"
544    id="nm_8d43f31e-40ae-451f-ba6c-eab6aeb5b733" data-term="press-releases"
545    data-per-page="3" data-default-year=""
546    data-default-category="" data-display="grid">
547          <div class="nm-head">
548                  <h2 class="nm-title">Press Releases</h2>
549        
550        <div class="nm-filters" role="search">
551          <label class="nm-field nm-field-keyword">
552            <input class="nm-input" type="search" placeholder="Keyword" autocomplete="off" />
553          </label>
554
555          
556          <label class="nm-field nm-field-year">
557            <span class="nm-year" data-role="year">
558
559              <select class="nm-select nm-select--native nm-select-year" aria-label="Year">
560                <option value=""  selected='selected'>All years</option>
561                                  <option value="2026" >
562                    2026                  </option>
563                                  <option value="2025" >
564                    2025                  </option>
565                                  <option value="2024" >
566                    2024                  </option>
567                                  <option value="2023" >
568                    2023                  </option>
569                                  <option value="2022" >
570                    2022                  </option>
571                                  <option value="2021" >
572                    2021                  </option>
573                                  <option value="2020" >
574                    2020                  </option>
575                                  <option value="2019" >
576                    2019                  </option>
577                              </select>
578
579              <button type="button" class="nm-year-btn" data-role="year-btn" aria-haspopup="listbox" aria-expanded="false">
580                <span class="nm-year-text" data-role="year-text">
581                  All years                </span>
582                <i class="fa-solid fa-chevron-down fas fa-chevron-down nm-select-arrow" aria-hidden="true"></i>
583              </button>
584
585              <div class="nm-year-menu" data-role="year-menu" role="listbox" aria-label="Year options">
586                <button type="button" class="nm-year-opt" data-value="">All years</button>
587                                  <button type="button" class="nm-year-opt" data-value="2026">
588                    2026                  </button>
589                                  <button type="button" class="nm-year-opt" data-value="2025">
590                    2025                  </button>
591                                  <button type="button" class="nm-year-opt" data-value="2024">
592                    2024                  </button>
593                                  <button type="button" class="nm-year-opt" data-value="2023">
594                    2023                  </button>
595                                  <button type="button" class="nm-year-opt" data-value="2022">
596                    2022                  </button>
597                                  <button type="button" class="nm-year-opt" data-value="2021">
598                    2021                  </button>
599                                  <button type="button" class="nm-year-opt" data-value="2020">
600                    2020                  </button>
601                                  <button type="button" class="nm-year-opt" data-value="2019">
602                    2019                  </button>
603                              </div>
604            </span>
605          </label>
606        </div>
607      </div>
608
609      <div class="nm-grid" data-role="grid" aria-live="polite"></div>
610
611      <div class="nm-actions">
612        <nav class="nm-pagination" data-role="pagination" aria-label="Pagination">
613          <button type="button" class="nm-pagebtn nm-pagebtn--nav" data-role="prev" aria-label="Previous page" disabled>
614            <i class="fa-solid fa-chevron-left fas fa-chevron-left" aria-hidden="true"></i>
615          </button>
616
617          <div class="nm-pages" data-role="pages" aria-label="Pages"></div>
618
619          <button type="button" class="nm-pagebtn nm-pagebtn--nav" data-role="next" aria-label="Next page" disabled>
620            <i class="fa-solid fa-chevron-right fas fa-chevron-right" aria-hidden="true"></i>
621          </button>
622        </nav>
623      </div>
624      </section>
625  
626	</section>
627	<section class="section pad-block-108 pad-inline-72 row-reports row-newsroom bg-brand-light-blue" data-section="event-galleries">
628	  <section class="nm-section"
629    id="nm_f4cdc96d-757c-47c2-b670-b0d9389fa53f" data-term="event-gallery"
630    data-per-page="3" data-default-year=""
631    data-default-category="" data-display="grid">
632          <div class="nm-head">
633                  <h2 class="nm-title">Event Gallery</h2>
634        
635        <div class="nm-filters" role="search">
636          <label class="nm-field nm-field-keyword">
637            <input class="nm-input" type="search" placeholder="Keyword" autocomplete="off" />
638          </label>
639
640                      <label class="nm-field nm-field-category">
641              <span class="nm-year nm-category" data-role="category">
642                <select class="nm-select nm-select--native nm-select-category" aria-label="Category">
643                  <option value=""  selected='selected'>All</option>
644                                      <option value="corporate" >
645                      Corporate​                    </option>
646                                      <option value="sustainability" >
647                      Sustainability​                    </option>
648                                  </select>
649
650                <button type="button" class="nm-year-btn nm-category-btn" data-role="category-btn" aria-haspopup="listbox"
651                  aria-expanded="false">
652                  <span class="nm-year-text nm-category-text" data-role="category-text">
653                    All                  </span>
654                  <i class="fa-solid fa-chevron-down fas fa-chevron-down nm-select-arrow" aria-hidden="true"></i>
655                </button>
656
657                <div class="nm-year-menu nm-category-menu" data-role="category-menu" role="listbox"
658                  aria-label="Category options">
659                  <button type="button" class="nm-year-opt nm-category-opt" data-value="">All</button>
660                                      <button type="button" class="nm-year-opt nm-category-opt" data-value="corporate">
661                      Corporate​                    </button>
662                                      <button type="button" class="nm-year-opt nm-category-opt" data-value="sustainability">
663                      Sustainability​                    </button>
664                                  </div>
665              </span>
666            </label>
667          
668          <label class="nm-field nm-field-year">
669            <span class="nm-year" data-role="year">
670
671              <select class="nm-select nm-select--native nm-select-year" aria-label="Year">
672                <option value=""  selected='selected'>All years</option>
673                                  <option value="2026" >
674                    2026                  </option>
675                                  <option value="2025" >
676                    2025                  </option>
677                                  <option value="2024" >
678                    2024                  </option>
679                              </select>
680
681              <button type="button" class="nm-year-btn" data-role="year-btn" aria-haspopup="listbox" aria-expanded="false">
682                <span class="nm-year-text" data-role="year-text">
683                  All years                </span>
684                <i class="fa-solid fa-chevron-down fas fa-chevron-down nm-select-arrow" aria-hidden="true"></i>
685              </button>
686
687              <div class="nm-year-menu" data-role="year-menu" role="listbox" aria-label="Year options">
688                <button type="button" class="nm-year-opt" data-value="">All years</button>
689                                  <button type="button" class="nm-year-opt" data-value="2026">
690                    2026                  </button>
691                                  <button type="button" class="nm-year-opt" data-value="2025">
692                    2025                  </button>
693                                  <button type="button" class="nm-year-opt" data-value="2024">
694                    2024                  </button>
695                              </div>
696            </span>
697          </label>
698        </div>
699      </div>
700
701      <div class="nm-grid" data-role="grid" aria-live="polite"></div>
702
703      <div class="nm-actions">
704        <nav class="nm-pagination" data-role="pagination" aria-label="Pagination">
705          <button type="button" class="nm-pagebtn nm-pagebtn--nav" data-role="prev" aria-label="Previous page" disabled>
706            <i class="fa-solid fa-chevron-left fas fa-chevron-left" aria-hidden="true"></i>
707          </button>
708
709          <div class="nm-pages" data-role="pages" aria-label="Pages"></div>
710
711          <button type="button" class="nm-pagebtn nm-pagebtn--nav" data-role="next" aria-label="Next page" disabled>
712            <i class="fa-solid fa-chevron-right fas fa-chevron-right" aria-hidden="true"></i>
713          </button>
714        </nav>
715      </div>
716      </section>
717  
718	</section>
719</main>
720
721<footer class="row-footer">
722    <section class="section row-explore">
723        <details class="footer-accordion footer-accordion--explore" data-footer-accordion>
724            <summary class="footer-accordion__summary explore-header">
725                <span
726                    class="section-label h5 lh-1-1 text-weight-black text-brand-army text-uppercase">Explore KLCC Group</span>
727                <span class="footer-accordion__icon" aria-hidden="true"></span>
728            </summary>
729            <div class="footer-accordion__content">
730                <div class="explore-grid" aria-label="Explore KLCC Group brands"
731                    style="--logo-count:5;--tablet-columns:3;--mobile-columns:2;">
732                                                                    <a                                                            target="_blank" rel="noopener" href="https://klccgroup.com.my"
733                                                        class="explore-grid__item">
734                            <figure class="explore-grid__media">
735                                <img src="https://klcc.com.my/wp-content/uploads/2026/06/klcc-logo-color.png"
736                                    alt="KLCC (Holdings)" loading="lazy" />
737                            </figure>
738                        </a>
739                                                                    <a                                                            target="_blank" rel="noopener" href="https://parking.klcc.com.my/homepage/"
740                                                        class="explore-grid__item">
741                            <figure class="explore-grid__media">
742                                <img src="https://klcc.com.my/wp-content/uploads/2026/06/footer-logo-kpm.png"
743                                    alt="KPM" loading="lazy" />
744                            </figure>
745                        </a>
746                                                                    <a                                                            target="_blank" rel="noopener" href="https://www.suriaklcc.com.my/"
747                                                        class="explore-grid__item">
748                            <figure class="explore-grid__media">
749                                <img src="https://klcc.com.my/wp-content/uploads/2026/06/suriaklcc-logo-1-1.png"
750                                    alt="Suria KLCC" loading="lazy" />
751                            </figure>
752                        </a>
753                                                                    <a                                                            target="_blank" rel="noopener" href="https://www.mandarinoriental.com/en/kuala-lumpur/petronas-towers"
754                                                        class="explore-grid__item">
755                            <figure class="explore-grid__media">
756                                <img src="https://klcc.com.my/wp-content/uploads/2026/06/footer-mo.png"
757                                    alt="Mandarin Oriental, Kuala Lumpur" loading="lazy" />
758                            </figure>
759                        </a>
760                                                                    <a                                                            target="_blank" rel="noopener" href="https://klcctheplace.com.my/"
761                                                        class="explore-grid__item">
762                            <figure class="explore-grid__media">
763                                <img src="https://klcc.com.my/wp-content/uploads/2026/08/[email protected]"
764                                    alt="KLCC The Place" loading="lazy" />
765                            </figure>
766                        </a>
767                                    </div>
768            </div>
769        </details>
770        <div class="row-footer__content">
771            <div class="row-footer__summary">
772                <address class="row-footer__address">
773                                            <span>KLCC Property Holdings Berhad</span>
774                                            <span>Level 33 &amp; 34, Menara Dayabumi</span>
775                                            <span>Jalan Sultan Hishamuddin</span>
776                                            <span>50050 Kuala Lumpur</span>
777                                            <span>Federal Territory of Kuala Lumpur</span>
778                                            <span>Malaysia</span>
779                                    </address>
780            </div>
781            <div class="row-footer__menus">
782                <details class="footer-accordion footer-accordion--links" data-footer-accordion>
783                    <summary class="footer-accordion__summary">
784                        <span
785                            class="section-label h5 lh-1-1 text-weight-black text-brand-army text-uppercase">Quick Links</span>
786                        <span class="footer-accordion__icon" aria-hidden="true"></span>
787                    </summary>
788                    <div class="footer-accordion__content">
789                        <nav class="row-footer__links" aria-label="Footer">
790                            <ul class="row-footer__link-list">
791                                                                    <li>
792        <a
793          href="https://klcc.com.my/who-we-are/"
794                            >About KLCCP Stapled Group</a>
795      </li>
796            <li>
797        <a
798          href="https://klcc.com.my/our-business/"
799                            >Our Businesses</a>
800      </li>
801            <li>
802        <a
803          href="https://klcc.com.my/our-portfolio/"
804                            >Our Portfolio</a>
805      </li>
806            <li>
807        <a
808          href="https://klcc.com.my/sustainability/"
809                            >Sustainability</a>
810      </li>
811            <li>
812        <a
813          href="https://klcc.com.my/investor-relations/"
814                            >Investor Relations</a>
815      </li>
816            <li>
817        <a
818          href="https://klcc.com.my/news-and-media/"
819                            >News &#038; Media</a>
820      </li>                                                            </ul>
821                        </nav>
822                    </div>
823                </details>
824            </div>
825            <div class="row-footer__right">
826                <div class="row-footer__cta">
827                    <button class="button sm button--secondary row-footer__social-trigger open-modal" type="button"
828                        data-modal-content="footer-social-directory" data-modal-width="limit-width"
829                        aria-label="Open social directory" role="button"
830                        tabindex="0">Follow Us on Social Media</button>
831                </div>
832            </div>
833        </div>
834    </section>
835    <div class="container row-footer__layout">
836        <div class="row-footer__meta">
837            <p class="row-footer__copyright">Copyright © 2026 KLCC Property Holdings Berhad. 200401003073 (641576-U). All rights reserved.</p>
838            <div class="row-footer__policies">
839                                    <a href="https://klcc.com.my/whistleblowing/">Whistleblowing</a>
840                                    <a href="https://klcc.com.my/privacy-policy/">Privacy Policy</a>
841                            </div>
842        </div>
843    </div>
844</footer>
845
846<script type="speculationrules">
847{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/klccp/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
848</script>
848
849			
849<script>
850				const lazyloadRunObserver = () => {
851					const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
852					const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
853						entries.forEach( ( entry ) => {
854							if ( entry.isIntersecting ) {
855								let lazyloadBackground = entry.target;
856								if( lazyloadBackground ) {
857									lazyloadBackground.classList.add( 'e-lazyloaded' );
858								}
859								lazyloadBackgroundObserver.unobserve( entry.target );
860							}
861						});
862					}, { rootMargin: '200px 0px 200px 0px' } );
863					lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
864						lazyloadBackgroundObserver.observe( lazyloadBackground );
865					} );
866				};
867				const events = [
868					'DOMContentLoaded',
869					'elementor/lazyload/observe',
870				];
871				events.forEach( ( event ) => {
872					document.addEventListener( event, lazyloadRunObserver );
873				} );
874			</script>
874
875			
875<script id="cute-alert-js" src="https://klcc.com.my/wp-content/plugins/metform/public/assets/lib/cute-alert/cute-alert.js?ver=4.2.0"></script>
vendor: 1 bytes, line 875
875
876<script id="klcch-gsap-js" src="https://klcc.com.my/wp-content/themes/klccp/js/vendor/gsap.min.js?ver=1786514800"></script>
vendor: 1 bytes, line 876
876
877<script id="klcch-scrolltrigger-js" src="https://klcc.com.my/wp-content/themes/klccp/js/vendor/ScrollTrigger.min.js?ver=1786514800"></script>
vendor: 1 bytes, line 877
877
878<script id="klcch-lenis-js" src="https://klcc.com.my/wp-content/themes/klccp/js/vendor/lenis.min.js?ver=1786514800"></script>
vendor: 1 bytes, line 878
878
879<script id="klcch-main-js-before">
880window.KLCC_SOCIAL_DIRECTORY = [{"name":"KLCC Group","website":"","accounts":{"linkedin":"https:\/\/www.linkedin.com\/company\/klcc-group\/posts\/?feedView=all"}},{"name":"KLCC The Place","website":"","accounts":{"instagram":"https:\/\/www.instagram.com\/klcctheplace\/?igshid=YmMyMTA2M2Y%3D","tiktok":"https:\/\/www.tiktok.com\/@klcctheplace?_t=8b17VQoyt3i&_r=1"}},{"name":"Suria KLCC","website":"","accounts":{"facebook":"https:\/\/www.facebook.com\/SuriaKLCCMall\/?_rdc=1&_rdr#","instagram":"https:\/\/www.instagram.com\/suriaklccmall\/","youtube":"https:\/\/www.youtube.com\/channel\/UCLDcOhyCONBhXw0HtKQkqJQ","weibo":"http:\/\/weibo.com\/SuriaKLCC?refer_flag=1005050010_"}},{"name":"Mandarin Oriental","website":"","accounts":{"facebook":"http:\/\/facebook.com\/MandarinOrientalKualaLumpur","instagram":"https:\/\/www.instagram.com\/mo_kualalumpur"}}];window.KLCC_THEME = Object.assign({}, window.KLCC_THEME || {}, {"themeUri":"\/wp-content\/themes\/klccp","homeUrl":"https:\/\/klcc.com.my","searchUrl":"https:\/\/klcc.com.my\/search-result\/","postPopupSlides":["\/wp-content\/themes\/klccp\/images\/hero\/destination-twin-1.jpg","\/wp-content\/themes\/klccp\/images\/hero\/legacy-history-2015.jpg","\/wp-content\/themes\/klccp\/images\/hero\/hero4.jpg","\/wp-content\/themes\/klccp\/images\/hero\/banner-about2.jpg","\/wp-content\/themes\/klccp\/images\/hero\/banner-partnership.jpg"]});
881//# sourceURL=klcch-main-js-before
882</script>
vendor: 1 bytes, line 882
882
883<script id="klcch-main-js" src="https://klcc.com.my/wp-content/themes/klccp/js/main.js?ver=1786514800"></script>
vendor: 1 bytes, line 883
883
884<script id="klccp-post-popup-slider-js" src="https://klcc.com.my/wp-content/themes/klccp/js/post-popup-slider.js?ver=1786514800"></script>
vendor: 1 bytes, line 884
884
885<script id="klcch-stickyhdr-g7v9kq-v3-js-after">
886(function(){
887  var CLS = 'klcchStickyHdr__g7V9kQ';
888  var BODY_ON = CLS + '--on';
889  var MQ = window.matchMedia('(max-width: 1366px)');
890
891  function init(){
892    var hdr = document.querySelector('.' + CLS);
893    if(!hdr) return;
894
895    var ro = null;
896
897    function setPadding(){
898      if(!MQ.matches){
899        document.body.classList.remove(BODY_ON);
900        document.documentElement.style.setProperty('--klcchStickyHdr__g7V9kQ-h', '0px');
901        return;
902      }
903
904      var h = Math.ceil(hdr.getBoundingClientRect().height || 0);
905      document.documentElement.style.setProperty('--klcchStickyHdr__g7V9kQ-h', h + 'px');
906      document.body.classList.add(BODY_ON);
907    }
908
909    setPadding();
910    requestAnimationFrame(setPadding);
911    window.addEventListener('load', setPadding, {passive:true});
912    window.addEventListener('resize', setPadding, {passive:true});
913    window.addEventListener('orientationchange', function(){
914      setTimeout(setPadding, 200);
915    }, {passive:true});
916
917    if ('ResizeObserver' in window) {
918      ro = new ResizeObserver(function(){ setPadding(); });
919      ro.observe(hdr);
920    }
921
922    if (MQ.addEventListener) MQ.addEventListener('change', setPadding);
923    else MQ.addListener(setPadding);
924  }
925
926  document.addEventListener('DOMContentLoaded', init);
927})();
928//# sourceURL=klcch-stickyhdr-g7v9kq-v3-js-after
929</script>
vendor: 1 bytes, line 929
929
930<script id="wp-emoji-settings" type="application/json">
931{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://klcc.com.my/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
932</script>
vendor: 1 bytes, line 932
932
933<script type="module">
934/*! This file is auto-generated */
935var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
936//# sourceURL=https://klcc.com.my/wp-includes/js/wp-emoji-loader.min.js
937</script>
937
938  <style>
939    .nm-section {
940      padding: 0;
941    }
942
943    .nm-river-gallery .river-card {
944      cursor: pointer;
945    }
946
947    .row-newsroom .nm-section--highlights {
948      width: 100vw;
949      margin-left: calc(50% - 50vw);
950      margin-right: calc(50% - 50vw);
951    }
952
953    .row-newsroom .nm-section--highlights .nm-river-gallery {
954      width: 100%;
955      overflow: hidden;
956    }
957
958    /* Homepage News & Media carousel card size only */
959    .row-newsroom .nm-section--highlights .nm-river-card {
960      flex: 0 0 340px !important;
961      width: 340px !important;
962      height: 210px !important;
963    }
964
965    .row-newsroom .nm-section--highlights .nm-river-card img,
966    .row-newsroom .nm-section--highlights .nm-river-card__media-ph {
967      width: 100% !important;
968      height: 100% !important;
969      object-fit: cover !important;
970    }
971
972    @media (max-width: 1024px) {
973      .row-newsroom .nm-section--highlights .nm-river-card {
974        flex-basis: 300px !important;
975        width: 300px !important;
976        height: 190px !important;
977      }
978    }
979
980    @media (max-width: 640px) {
981      .row-newsroom .nm-section--highlights .nm-river-card {
982        flex-basis: 260px !important;
983        width: 260px !important;
984        height: 170px !important;
985      }
986    }
987    /* Homepage News & Media carousel card size only */
988
989    .nm-river-gallery .nm-river-card__media-ph {
990      width: 100%;
991      height: 100%;
992      background: #dbe4ef;
993    }
994
995    .nm-head {
996      display: flex;
997      align-items: flex-end;
998      justify-content: space-between;
999      gap: 24px;
1000      margin-bottom: 48px;
1001    }
1002
1003    .nm-title {
1004      margin: 0;
1005      font-size: 32px;
1006      line-height: 38px;
1007      font-weight: 700;
1008      color: #204a8a;
1009    }
1010
1011    .nm-filters {
1012      display: flex !important;
1013      align-items: baseline !important;
1014      gap: 36px !important;
1015    }
1016
1017    .nm-field {
1018      display: flex !important;
1019      align-items: center !important;
1020      flex-direction: row !important;
1021      gap: 0 !important;
1022    }
1023
1024    .nm-field-label {
1025      display: none !important;
1026    }
1027
1028    .nm-input {
1029      font-family: "Museo Sans", sans-serif !important;
1030      width: 195px !important;
1031      max-width: 100% !important;
1032      border: 0 !important;
1033      border-bottom: 1px solid #204a8a !important;
1034      background: transparent !important;
1035      border-radius: 0 !important;
1036      box-shadow: none !important;
1037      padding: 0 0 6px 0 !important;
1038      outline: 0 !important;
1039      color: #204a8a !important;
1040      font-size: 20px !important;
1041      font-weight: 400 !important;
1042      line-height: 25px !important;
1043    }
1044
1045    .nm-input::placeholder {
1046      font-family: "Museo Sans", sans-serif !important;
1047      color: rgba(51, 51, 51, .55) !important;
1048      font-size: 20px !important;
1049      font-weight: 400 !important;
1050      line-height: 25px !important;
1051    }
1052
1053    .nm-grid {
1054      display: grid;
1055      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
1056      gap: 24px !important;
1057      align-items: start !important;
1058    }
1059
1060    .nm-grid>* {
1061      min-width: 0 !important;
1062    }
1063
1064    .nm-card {
1065      background: transparent !important;
1066      min-width: 0 !important;
1067      box-shadow: none !important;
1068      transform: none !important;
1069      transition: none !important;
1070    }
1071
1072    .nm-card-hit {
1073      display: block !important;
1074      width: 100% !important;
1075      min-width: 0 !important;
1076      cursor: pointer;
1077      background: transparent !important;
1078      border: 0;
1079      padding: 0;
1080      margin: 0;
1081      text-align: left;
1082      color: inherit;
1083      font: inherit;
1084      text-decoration: none !important;
1085      box-shadow: none !important;
1086      transform: none !important;
1087      transition: none !important;
1088    }
1089
1090    .nm-card-hit * {
1091      white-space: normal !important;
1092    }
1093
1094    .nm-card-hit:hover,
1095    .nm-card-hit:active,
1096    .nm-card-hit:focus,
1097    .nm-card-hit:focus-visible {
1098      background: transparent !important;
1099      box-shadow: none !important;
1100      transform: none !important;
1101      filter: none !important;
1102      outline: none !important;
1103    }
1104
1105    .nm-card-media {
1106      position: relative !important;
1107      width: 100% !important;
1108      aspect-ratio: 4 / 3 !important;
1109      border-radius: 25px !important;
1110      overflow: hidden !important;
1111    }
1112
1113    .nm-card-img,
1114    .nm-card-img--ph {
1115      width: 100% !important;
1116      height: 100% !important;
1117      object-fit: cover !important;
1118      object-position: center !important;
1119      display: block !important;
1120    }
1121
1122    .nm-card-img--ph {
1123      background: #e5e7eb;
1124    }
1125
1126    .nm-chip {
1127      position: absolute;
1128      top: 12px;
1129      right: 12px;
1130      background: #0ea5a3;
1131      color: #fff;
1132      font-size: 11px;
1133      font-weight: 700;
1134      padding: 6px 10px;
1135      border-radius: 999px;
1136      z-index: 2;
1137    }
1138
1139    .nm-grid .nm-chip {
1140      display: none !important;
1141    }
1142
1143    .nm-card-body {
1144      padding: 18px 0 0 !important;
1145    }
1146
1147    .nm-date {
1148      font-family: "Museo Sans", sans-serif !important;
1149      font-size: 14px !important;
1150      font-weight: 700 !important;
1151      line-height: 18px !important;
1152      color: #333333 !important;
1153      margin: 0 0 9px !important;
1154    }
1155
1156    .nm-card-title {
1157      font-family: "Museo Sans", sans-serif !important;
1158      color: #204a8a;
1159      font-size: 17px !important;
1160      font-weight: 700 !important;
1161      line-height: 22px !important;
1162      margin: 0 !important;
1163      min-width: 0 !important;
1164      white-space: normal !important;
1165      overflow-wrap: anywhere !important;
1166      word-break: break-word !important;
1167    }
1168
1169    .nm-card-excerpt {
1170      display: none !important;
1171    }
1172
1173    .nm-actions {
1174      display: flex;
1175      justify-content: center;
1176      margin-top: 50px;
1177    }
1178
1179    .nm-drawer-wrap {
1180      position: fixed;
1181      inset: 0;
1182      z-index: 999999;
1183      display: block !important;
1184      opacity: 0;
1185      visibility: hidden;
1186      pointer-events: none;
1187      transition: opacity .42s ease, visibility 0s linear .42s !important;
1188    }
1189
1190    .nm-drawer-wrap.is-open {
1191      opacity: 1;
1192      visibility: visible;
1193      pointer-events: auto;
1194      transition: opacity .42s ease, visibility 0s linear 0s !important;
1195    }
1196
1197    .nm-drawer-backdrop {
1198      position: absolute;
1199      inset: 0;
1200      background: rgba(17, 24, 39, .45);
1201      opacity: 0;
1202      transition: opacity .42s ease !important;
1203    }
1204
1205    .nm-drawer-wrap.is-open .nm-drawer-backdrop {
1206      opacity: 1;
1207    }
1208
1209    .nm-drawer {
1210      position: absolute;
1211      left: 50%;
1212      top: 50%;
1213      width: min(80vw, calc(100vw - 40px));
1214      max-width: calc(1200px - 40px);
1215      max-height: min(88vh, calc(100vh - 40px));
1216      background: #fff;
1217      box-shadow: 0 18px 48px rgba(0, 0, 0, .18);
1218      border-radius: 18px;
1219      padding: 0;
1220      overflow: visible;
1221      transform: translate(-50%, -50%) translateY(48px) scale(.985) !important;
1222      opacity: 0;
1223      transition:
1224        transform .42s cubic-bezier(.22, 1, .36, 1),
1225        opacity .32s ease !important;
1226      will-change: transform, opacity;
1227    }
1228
1229    .nm-drawer-scroll {
1230      width: 100%;
1231      max-height: inherit;
1232      padding: 72px;
1233      overflow: auto;
1234      overflow-x: hidden;
1235      border-radius: inherit;
1236      overscroll-behavior: contain;
1237      -webkit-overflow-scrolling: touch;
1238      -ms-overflow-style: none;
1239      scrollbar-width: none;
1240    }
1241
1242    .nm-drawer-scroll::-webkit-scrollbar {
1243      width: 0;
1244      height: 0;
1245      display: none;
1246    }
1247
1248    .nm-drawer-wrap.is-open .nm-drawer {
1249      transform: translate(-50%, -50%) translateY(0) scale(1) !important;
1250      opacity: 1 !important;
1251    }
1252
1253    .nm-drawer-wrap:not(.is-open) .nm-drawer {
1254      transform: translate(-50%, -50%) translateY(48px) scale(.985) !important;
1255      opacity: 0 !important;
1256    }
1257
1258    @media (prefers-reduced-motion: reduce) {
1259
1260      .nm-drawer-wrap,
1261      .nm-drawer-backdrop,
1262      .nm-drawer {
1263        transition: none !important;
1264      }
1265    }
1266
1267    .nm-drawer-close {
1268      position: absolute;
1269      top: 18px;
1270      right: 18px;
1271      width: 36px;
1272      height: 36px;
1273      border-radius: 999px;
1274      border: 1px solid transparent;
1275      padding: 0;
1276      background: #ff0000;
1277      display: flex;
1278      align-items: center;
1279      justify-content: center;
1280      cursor: pointer;
1281      line-height: 1;
1282      z-index: 10 !important;
1283      pointer-events: auto !important;
1284    }
1285
1286    .nm-drawer-close i {
1287      display: block;
1288      font-size: 16px;
1289      line-height: 1;
1290      color: #ffffff;
1291    }
1292
1293    .nm-drawer-close:hover,
1294    .nm-drawer-close:active,
1295    .nm-drawer-close:focus-visible {
1296      background: transparent !important;
1297      border: 1px solid #ff0000 !important;
1298    }
1299
1300    .nm-drawer-close:hover i,
1301    .nm-drawer-close:active i,
1302    .nm-drawer-close:focus-visible i {
1303      color: #ff0000 !important;
1304    }
1305
1306    .nm-drawer-kicker {
1307      font-family: "Museo Sans", sans-serif !important;
1308      color: #204a8a !important;
1309      font-size: 16px !important;
1310      font-weight: 400 !important;
1311      line-height: 17.6px !important;
1312      letter-spacing: 0 !important;
1313      margin: 0 0 10px !important;
1314      text-transform: none !important;
1315    }
1316
1317    .nm-drawer-title {
1318      color: #204a8a !important;
1319      font-size: 32px !important;
1320      font-weight: 700 !important;
1321      line-height: 38.4px !important;
1322      margin: 0 0 10px !important;
1323    }
1324
1325    .nm-drawer-date {
1326      font-family: Verdana, Geneva, Tahoma, sans-serif !important;
1327      color: #333333 !important;
1328      font-size: 14px !important;
1329      font-weight: 700 !important;
1330      line-height: 23px !important;
1331      margin: 0 0 18px !important;
1332    }
1333
1334    .nm-drawer-content a,
1335    .nm-drawer-content a:visited {
1336      color: #333333 !important;
1337      text-decoration: underline !important;
1338      text-decoration-thickness: 1px;
1339      text-underline-offset: 6px;
1340    }
1341
1342    .nm-drawer-content a:hover,
1343    .nm-drawer-content a:focus {
1344      color: #333333 !important;
1345      text-decoration: underline !important;
1346    }
1347
1348    .nm-drawer-content iframe {
1349      display: block;
1350      width: 100% !important;
1351      max-width: 100% !important;
1352      height: auto !important;
1353      aspect-ratio: 16 / 9;
1354    }
1355
1356    .nm-noscroll {
1357      overflow: hidden !important;
1358    }
1359
1360    .nm-pagination {
1361      display: flex;
1362      align-items: center;
1363      justify-content: center;
1364      gap: 8px;
1365    }
1366
1367    .nm-pages {
1368      display: flex;
1369      align-items: center;
1370      gap: 8px;
1371    }
1372
1373    .nm-pagebtn {
1374      width: 29px !important;
1375      height: 29px !important;
1376      max-width: 29px !important;
1377      max-height: 29px !important;
1378      padding: 0 !important;
1379      border-radius: 8px;
1380      border: 1px solid #e6e6e6 !important;
1381      background: transparent !important;
1382      display: flex;
1383      align-items: center;
1384      justify-content: center;
1385      font-family: "Museo Sans", sans-serif;
1386      font-size: 13px;
1387      font-weight: 700;
1388      line-height: 1;
1389      color: #333333;
1390      cursor: pointer;
1391      box-shadow: none;
1392      transition: background .15s ease, color .15s ease, border-color .15s ease;
1393    }
1394
1395    .nm-pagebtn i {
1396      font-size: 13px;
1397      line-height: 1;
1398      color: inherit;
1399    }
1400
1401    .nm-pagebtn:not([disabled]):hover {
1402      border-color: #204a8a !important;
1403      color: #204a8a !important;
1404      background: transparent !important;
1405    }
1406
1407    .nm-pagebtn:active,
1408    .nm-pagebtn.is-active {
1409      background: #204a8a !important;
1410      border-color: #204a8a !important;
1411      color: #ffffff !important;
1412    }
1413
1414    .nm-pagebtn[disabled],
1415    .nm-pagebtn.is-disabled {
1416      opacity: 1;
1417      color: #cfcfcf;
1418      border-color: #eaeaea;
1419      cursor: not-allowed;
1420      background: transparent !important;
1421    }
1422
1423    .nm-ellipsis {
1424      width: 29px !important;
1425      height: 29px !important;
1426      max-width: 29px !important;
1427      max-height: 29px !important;
1428      border-radius: 8px;
1429      border: 1px solid #e6e6e6;
1430      display: flex;
1431      align-items: center;
1432      justify-content: center;
1433      color: #333333;
1434      font-size: 13px;
1435      font-weight: 700;
1436      line-height: 1;
1437      background: transparent !important;
1438    }
1439
1440    .nm-pagination button {
1441      -webkit-appearance: none;
1442      appearance: none;
1443    }
1444
1445    .nm-grid.is-empty {
1446      display: flex !important;
1447      align-items: center !important;
1448      justify-content: center !important;
1449    }
1450
1451    .nm-empty {
1452      width: 100%;
1453      max-width: 520px;
1454      text-align: center;
1455      padding: 26px 18px;
1456      border: 1px solid rgba(17, 24, 39, .12);
1457      border-radius: 16px;
1458      background: transparent;
1459    }
1460
1461    .nm-empty-icon {
1462      margin-bottom: 10px;
1463      font-size: 20px;
1464      color: #204a8a;
1465    }
1466
1467    .nm-empty-title {
1468      font-family: "Museo Sans", sans-serif;
1469      font-size: 14px;
1470      font-weight: 700;
1471      color: #333333;
1472      margin-bottom: 6px;
1473    }
1474
1475    .nm-empty-desc {
1476      font-family: Verdana, Geneva, Tahoma, sans-serif;
1477      font-size: 12px;
1478      line-height: 18px;
1479      color: #6b7280;
1480    }
1481
1482    .nm-year,
1483    .nm-category {
1484      position: relative;
1485      display: inline-block;
1486    }
1487
1488    .nm-select--native {
1489      position: absolute !important;
1490      inset: auto !important;
1491      width: 1px !important;
1492      height: 1px !important;
1493      opacity: 0 !important;
1494      pointer-events: none !important;
1495    }
1496
1497    .nm-year-btn,
1498    .nm-category-btn {
1499      all: unset;
1500      cursor: pointer;
1501      display: inline-flex;
1502      align-items: center;
1503      justify-content: flex-end;
1504      gap: 18px;
1505      font-family: "Museo Sans", sans-serif;
1506      font-size: 20px;
1507      font-weight: 400;
1508      line-height: 25px;
1509      color: #204a8a;
1510      padding: 0 0 6px 0;
1511      white-space: nowrap;
1512      background: transparent !important;
1513      box-shadow: none !important;
1514      border: 0 !important;
1515      -webkit-tap-highlight-color: transparent;
1516      user-select: none;
1517    }
1518
1519    .nm-year-btn:hover,
1520    .nm-year-btn:active,
1521    .nm-year-btn:focus,
1522    .nm-year-btn:focus-visible,
1523    .nm-category-btn:hover,
1524    .nm-category-btn:active,
1525    .nm-category-btn:focus,
1526    .nm-category-btn:focus-visible {
1527      background: transparent !important;
1528      box-shadow: none !important;
1529      outline: none !important;
1530      color: #204a8a !important;
1531    }
1532
1533    .nm-year-btn .nm-select-arrow,
1534    .nm-category-btn .nm-select-arrow {
1535      position: static;
1536      display: inline-block;
1537      font-size: 14px;
1538      line-height: 1;
1539      color: #204a8a;
1540      transform: rotate(0deg);
1541      transform-origin: center;
1542      transition: transform .25s ease, color .25s ease;
1543    }
1544
1545    .nm-field-year {
1546      width: 140px;
1547      flex: 0 0 140px;
1548    }
1549
1550    .nm-field-category {
1551      min-width: 190px;
1552      flex: 0 1 190px;
1553    }
1554
1555    .nm-year-text,
1556    .nm-category-text {
1557      flex: 1 1 auto;
1558      text-align: right;
1559      overflow: hidden;
1560      text-overflow: ellipsis;
1561      white-space: nowrap;
1562    }
1563
1564    .nm-field-year.is-open .nm-year-btn .nm-select-arrow,
1565    .nm-field-category.is-open .nm-category-btn .nm-select-arrow {
1566      transform: rotate(180deg);
1567    }
1568
1569    .nm-year-menu,
1570    .nm-category-menu {
1571      position: absolute;
1572      top: calc(100% + 10px);
1573      right: 0;
1574      min-width: 180px;
1575      padding: 24px;
1576      border-radius: 12px;
1577      background: rgb(32 74 138 / 0.7);
1578      -webkit-backdrop-filter: blur(18px) saturate(140%);
1579      backdrop-filter: blur(18px) saturate(140%);
1580      display: flex;
1581      flex-direction: column;
1582      gap: 12px;
1583      opacity: 0;
1584      visibility: hidden;
1585      pointer-events: none;
1586      transform: translateY(6px);
1587      transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
1588      z-index: 50;
1589    }
1590
1591    .nm-category-menu {
1592      min-width: 190px;
1593    }
1594
1595    .nm-field-year.is-open .nm-year-menu,
1596    .nm-field-category.is-open .nm-category-menu {
1597      opacity: 1;
1598      visibility: visible;
1599      pointer-events: auto;
1600      transform: translateY(0);
1601      transition: opacity .25s ease, transform .25s ease, visibility 0s linear 0s;
1602    }
1603
1604    .nm-year-opt,
1605    .nm-category-opt {
1606      all: unset;
1607      cursor: pointer;
1608      font-family: "Museo Sans", sans-serif;
1609      font-size: 19px;
1610      line-height: 23px;
1611      color: #ffffff;
1612      text-align: center;
1613      background: transparent !important;
1614      box-shadow: none !important;
1615      border: 0 !important;
1616      transition: background-color .25s ease, color .25s ease;
1617      -webkit-tap-highlight-color: transparent;
1618      user-select: none;
1619    }
1620
1621    .nm-year-opt:hover,
1622    .nm-year-opt:focus,
1623    .nm-year-opt:active,
1624    .nm-year-opt:focus-visible,
1625    .nm-category-opt:hover,
1626    .nm-category-opt:focus,
1627    .nm-category-opt:active,
1628    .nm-category-opt:focus-visible {
1629      background: transparent !important;
1630      box-shadow: none !important;
1631      outline: none !important;
1632      color: #7aa845 !important;
1633    }
1634
1635    @media (max-width: 1024px) {
1636      .nm-grid {
1637        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
1638      }
1639    }
1640
1641    @media (max-width: 640px) {
1642      .nm-head {
1643        flex-direction: column;
1644        align-items: flex-start;
1645      }
1646
1647      .nm-input {
1648        width: 100%;
1649        max-width: 100%;
1650      }
1651
1652      .nm-grid {
1653        grid-template-columns: 1fr !important;
1654      }
1655
1656      .nm-drawer {
1657        width: min(80vw, calc(100vw - 18px));
1658        max-width: calc(100vw - 18px);
1659        max-height: 92vh;
1660      }
1661
1662      .nm-drawer-scroll {
1663        padding: 64px 18px 44px;
1664      }
1665
1666      .nm-drawer-title {
1667        font-size: 26px;
1668        line-height: 32px;
1669      }
1670
1671      .nm-filters {
1672        width: 100%;
1673        gap: 18px 24px !important;
1674        flex-wrap: wrap;
1675        justify-content: flex-start !important;
1676        align-items: flex-start !important;
1677      }
1678
1679      .nm-field-keyword {
1680        width: 100%;
1681        flex: 0 0 100%;
1682      }
1683
1684      .nm-field-keyword .nm-input {
1685        width: 100%;
1686        max-width: 100%;
1687      }
1688
1689      .nm-field-category,
1690      .nm-field-year {
1691        min-width: 0;
1692        width: auto;
1693        flex: 0 0 auto;
1694      }
1695
1696      .nm-year,
1697      .nm-category {
1698        display: block;
1699        width: 100%;
1700      }
1701
1702      .nm-year-btn,
1703      .nm-category-btn {
1704        width: 100%;
1705        justify-content: flex-start;
1706      }
1707
1708      .nm-year-text,
1709      .nm-category-text {
1710        text-align: left;
1711      }
1712
1713      .nm-year-menu,
1714      .nm-category-menu {
1715        left: 0;
1716        right: auto;
1717        min-width: 100%;
1718        width: max-content;
1719        max-width: calc(100vw - 32px);
1720        padding: 18px 16px;
1721        box-sizing: border-box;
1722      }
1723
1724      .nm-field-category .nm-category-menu {
1725        left: 0;
1726        right: auto;
1727      }
1728
1729      .nm-field-year .nm-year-menu {
1730        left: 0;
1731        right: auto;
1732      }
1733
1734      .nm-year,
1735      .nm-category {
1736        display: block;
1737        width: 100%;
1738      }
1739
1740      .nm-year-btn,
1741      .nm-category-btn {
1742        width: 100%;
1743      }
1744
1745      .nm-year-menu,
1746      .nm-category-menu {
1747        left: 0;
1748        right: auto;
1749        min-width: 100%;
1750        width: max-content;
1751        max-width: calc(100vw - 32px);
1752        padding: 18px 16px;
1753        box-sizing: border-box;
1754      }
1755
1756      .nm-field-category .nm-category-menu {
1757        left: 0;
1758        right: auto;
1759      }
1760
1761      .nm-field-category+.nm-field-year .nm-year-menu {
1762        left: auto;
1763        right: 0;
1764      }
1765    }
1766  </style>
1767
1768  <div class="nm-drawer-wrap" id="nmDrawer" aria-hidden="true">
1769    <div class="nm-drawer-backdrop" data-nm-close data-nm-backdrop></div>
1770    <aside class="nm-drawer" role="dialog" aria-modal="true" aria-label="News drawer">
1771      <button class="nm-drawer-close" type="button" aria-label="Close" data-nm-close>
1772        <i class="fa-solid fa-xmark fas fa-times" aria-hidden="true"></i>
1773      </button>
1774
1775      <div class="nm-drawer-scroll">
1776        <div class="nm-drawer-inner" id="nmDrawerInner"></div>
1777      </div>
1778    </aside>
1779  </div>
1780
1781  
1781<script>
1782    (function () {
1783      const AJAX_URL = "https:\/\/klcc.com.my\/amber-cedar-harbor-k9v3m2x7q4t8\/admin-ajax.php";
1784      const NONCE = "9fffdd2673";
1785
1786      const drawerWrap = document.getElementById('nmDrawer');
1787      const drawerInner = document.getElementById('nmDrawerInner');
1788      const drawerPanel = drawerWrap ? drawerWrap.querySelector('.nm-drawer') : null;
1789      const drawerEl = drawerWrap ? drawerWrap.querySelector('.nm-drawer-scroll') : null;
1790      const urlParams = new URLSearchParams(window.location.search);
1791      const initialOpenId = parseInt(urlParams.get('nm_open') || '0', 10) || 0;
1792      const initialKeyword = (urlParams.get('nm_kw') || '').trim();
1793
1794      const lockScroll = (on) => document.documentElement.classList.toggle('nm-noscroll', !!on);
1795      let nmCloseTimer = null;
1796      let nmReturnFocusEl = null;
1797
1798      const __nmScrollLock = { y: 0, on: false, htmlStyle: '', bodyStyle: '' };
1799
1800      function nmLockBackgroundScroll() {
1801        if (__nmScrollLock.on) return;
1802
1803        __nmScrollLock.y = window.scrollY || window.pageYOffset || 0;
1804
1805        const html = document.documentElement;
1806        const body = document.body;
1807
1808        __nmScrollLock.htmlStyle = html.getAttribute('style') || '';
1809        __nmScrollLock.bodyStyle = body.getAttribute('style') || '';
1810
1811        html.classList.add('nm-noscroll');
1812        body.classList.add('nm-noscroll');
1813
1814        html.style.setProperty('overflow', 'hidden', 'important');
1815        html.style.setProperty('height', '100%', 'important');
1816
1817        body.style.setProperty('overflow', 'hidden', 'important');
1818        body.style.setProperty('position', 'fixed', 'important');
1819        body.style.setProperty('top', (-__nmScrollLock.y) + 'px', 'important');
1820        body.style.setProperty('left', '0', 'important');
1821        body.style.setProperty('right', '0', 'important');
1822        body.style.setProperty('width', '100%', 'important');
1823
1824        __nmScrollLock.on = true;
1825      }
1826
1827      function nmUnlockBackgroundScroll() {
1828        if (!__nmScrollLock.on) return;
1829
1830        const html = document.documentElement;
1831        const body = document.body;
1832
1833        html.classList.remove('nm-noscroll');
1834        body.classList.remove('nm-noscroll');
1835
1836        if (__nmScrollLock.htmlStyle) html.setAttribute('style', __nmScrollLock.htmlStyle);
1837        else html.removeAttribute('style');
1838
1839        if (__nmScrollLock.bodyStyle) body.setAttribute('style', __nmScrollLock.bodyStyle);
1840        else body.removeAttribute('style');
1841
1842        const y = __nmScrollLock.y;
1843
1844        const prevHtmlStyle = html.getAttribute('style') || '';
1845        const prevBodyStyle = body.getAttribute('style') || '';
1846
1847        html.style.setProperty('scroll-behavior', 'auto', 'important');
1848        body.style.setProperty('scroll-behavior', 'auto', 'important');
1849
1850        try {
1851          window.scrollTo({ top: y, left: 0, behavior: 'auto' });
1852        } catch (e) {
1853          window.scrollTo(0, y);
1854        }
1855
1856        if (prevHtmlStyle) html.setAttribute('style', prevHtmlStyle);
1857        else html.removeAttribute('style');
1858
1859        if (prevBodyStyle) body.setAttribute('style', prevBodyStyle);
1860        else body.removeAttribute('style');
1861
1862        __nmScrollLock.on = false;
1863      }
1864
1865      function openDrawer(html) {
1866        if (nmCloseTimer) { clearTimeout(nmCloseTimer); nmCloseTimer = null; }
1867
1868        drawerInner.innerHTML = html || '';
1869        drawerWrap.classList.add('is-open');
1870        drawerWrap.setAttribute('aria-hidden', 'false');
1871        nmLockBackgroundScroll();
1872
1873        if (drawerEl) {
1874          drawerEl.scrollTop = 0;
1875        }
1876
1877        const closeBtn = drawerWrap.querySelector('[data-nm-close]');
1878        if (closeBtn) {
1879          try { closeBtn.focus({ preventScroll: true }); }
1880          catch (e) { closeBtn.focus(); }
1881        }
1882      }
1883
1884      function closeDrawer() {
1885        if (!drawerWrap.classList.contains('is-open')) return;
1886
1887        drawerWrap.classList.remove('is-open');
1888        drawerWrap.setAttribute('aria-hidden', 'true');
1889
1890        nmUnlockBackgroundScroll();
1891
1892        if (nmReturnFocusEl && typeof nmReturnFocusEl.focus === 'function') {
1893          const y = window.scrollY || window.pageYOffset || 0;
1894
1895          try { nmReturnFocusEl.focus({ preventScroll: true }); }
1896          catch (e) { try { nmReturnFocusEl.focus(); } catch (e2) { } }
1897
1898          requestAnimationFrame(() => {
1899            try { window.scrollTo({ top: y, left: 0, behavior: 'auto' }); }
1900            catch (e) { window.scrollTo(0, y); }
1901          });
1902        }
1903
1904        if (nmCloseTimer) clearTimeout(nmCloseTimer);
1905        nmCloseTimer = window.setTimeout(() => {
1906          if (!drawerWrap.classList.contains('is-open')) drawerInner.innerHTML = '';
1907        }, 420);
1908      }
1909
1910      window.nmCloseDrawer = closeDrawer;
1911
1912      (function bindNmScrollGuards() {
1913        if (window.__NM_SCROLL_GUARDS_BOUND__) return;
1914        window.__NM_SCROLL_GUARDS_BOUND__ = true;
1915
1916        let touchStartY = 0;
1917
1918        function isOpen() {
1919          return drawerWrap && drawerWrap.classList.contains('is-open');
1920        }
1921
1922        function normalizeDeltaY(e) {
1923          let dy = e.deltaY || 0;
1924
1925          if (e.deltaMode === 1) dy *= 16;
1926          else if (e.deltaMode === 2) dy *= (drawerEl ? drawerEl.clientHeight : window.innerHeight);
1927
1928          return dy;
1929        }
1930
1931        function isScrollableY(el) {
1932          if (!el || el === document.body || el === document.documentElement) return false;
1933          const cs = window.getComputedStyle(el);
1934          const oy = cs.overflowY;
1935          if (oy !== 'auto' && oy !== 'scroll') return false;
1936          return el.scrollHeight > el.clientHeight + 1;
1937        }
1938
1939        function findScrollParentY(target) {
1940          let el = target;
1941          while (el && el !== drawerEl && el !== document.body) {
1942            if (isScrollableY(el)) return el;
1943            el = el.parentElement;
1944          }
1945          return drawerEl;
1946        }
1947
1948        document.addEventListener('wheel', function (e) {
1949          if (!isOpen()) return;
1950
1951          const inDrawer = drawerPanel && drawerPanel.contains(e.target);
1952
1953          if (!inDrawer) {
1954            e.preventDefault();
1955            e.stopPropagation();
1956            return;
1957          }
1958
1959          const scroller = findScrollParentY(e.target);
1960          if (!scroller) return;
1961
1962          const dy = normalizeDeltaY(e);
1963          if (!dy) return;
1964
1965          e.preventDefault();
1966          e.stopPropagation();
1967
1968          scroller.scrollTop = scroller.scrollTop + dy;
1969        }, { passive: false, capture: true });
1970
1971        document.addEventListener('touchstart', function (e) {
1972          if (!isOpen()) return;
1973          if (!drawerPanel || !drawerPanel.contains(e.target)) return;
1974          if (e.touches && e.touches.length) touchStartY = e.touches[0].clientY;
1975        }, { passive: true, capture: true });
1976
1977        document.addEventListener('touchmove', function (e) {
1978          if (!isOpen()) return;
1979
1980          const inDrawer = drawerPanel && drawerPanel.contains(e.target);
1981
1982          if (!inDrawer) {
1983            e.preventDefault();
1984            e.stopPropagation();
1985            return;
1986          }
1987
1988          if (!drawerEl) return;
1989
1990          const canScroll = drawerEl.scrollHeight > drawerEl.clientHeight + 2;
1991          if (!canScroll) {
1992            e.preventDefault();
1993            e.stopPropagation();
1994            return;
1995          }
1996
1997          const y = (e.touches && e.touches.length) ? e.touches[0].clientY : touchStartY;
1998          const delta = y - touchStartY;
1999
2000          const atTop = drawerEl.scrollTop <= 0;
2001          const atBottom = (drawerEl.scrollTop + drawerEl.clientHeight) >= (drawerEl.scrollHeight - 1);
2002
2003          if ((delta > 0 && atTop) || (delta < 0 && atBottom)) {
2004            e.preventDefault();
2005            e.stopPropagation();
2006          }
2007        }, { passive: false, capture: true });
2008      })();
2009
2010      (function () {
2011        if (window.__nmDrawerCloseBound) return;
2012        window.__nmDrawerCloseBound = true;
2013
2014        document.addEventListener('click', function (e) {
2015          const closeBtn = e.target.closest('[data-nm-close]');
2016          const backdrop = e.target.closest('[data-nm-backdrop]');
2017          if (!closeBtn && !backdrop) return;
2018
2019          if (typeof window.nmCloseDrawer === 'function') {
2020            window.nmCloseDrawer();
2021          } else if (typeof closeDrawer === 'function') {
2022            closeDrawer();
2023          } else {
2024
2025            const wrap = document.querySelector('.nm-drawer-wrap');
2026            if (wrap) wrap.classList.remove('is-open');
2027            document.documentElement.classList.remove('nm-noscroll');
2028            document.body.classList.remove('nm-noscroll');
2029          }
2030        }, true);
2031      })();
2032
2033      drawerWrap.addEventListener('click', (e) => {
2034        if (e.target && e.target.matches('[data-nm-close]')) closeDrawer();
2035      });
2036      document.addEventListener('keydown', (e) => {
2037        if (e.key === 'Escape' && drawerWrap.classList.contains('is-open')) closeDrawer();
2038      });
2039
2040      function debounce(fn, ms) {
2041        let t; return function (...args) {
2042          clearTimeout(t); t = setTimeout(() => fn.apply(this, args), ms);
2043        }
2044      }
2045
2046      async function postForm(action, data) {
2047        const fd = new FormData();
2048        fd.append('action', action);
2049        fd.append('nonce', NONCE);
2050        Object.keys(data || {}
2050).forEach(k => fd.append(k, data[k]));
2051        const res = await fetch(AJAX_URL, { method: 'POST', body: fd, credentials: 'same-origin' });
2052        return res.json();
2053      }
2054
2055      async function openNewsDrawer(postId, returnFocusEl) {
2056        postId = parseInt(postId || '0', 10);
2057        if (!postId) return;
2058
2059        nmReturnFocusEl = returnFocusEl || null;
2060        openDrawer('<p style="color:#6b7280">Loading...</p>');
2061
2062        const r = await postForm('nm_single', { post_id: postId });
2063        if (r && r.success) openDrawer(r.data.html);
2064        else openDrawer('<p style="color:#ef4444">Failed to load.</p>');
2065      }
2066
2067      function initSection(sectionEl) {
2068        const displayMode = (sectionEl.dataset.display || 'grid').toLowerCase();
2069        const grid = sectionEl.querySelector('[data-role="grid"]');
2070
2071        const inputKw = sectionEl.querySelector('.nm-input');
2072        const selYear = sectionEl.querySelector('.nm-select-year');
2073        const selCategory = sectionEl.querySelector('.nm-select-category');
2074
2075        const pager = sectionEl.querySelector('[data-role="pagination"]');
2076        const btnPrev = sectionEl.querySelector('[data-role="prev"]');
2077        const btnNext = sectionEl.querySelector('[data-role="next"]');
2078        const pagesWrap = sectionEl.querySelector('[data-role="pages"]');
2079
2080        const term = sectionEl.dataset.term || '';
2081
2082        let perPage = parseInt(sectionEl.dataset.perPage || '3', 10);
2083
2084        let page = 1;
2085        let maxPages = 1;
2086        let keyword = initialKeyword;
2087        let year = sectionEl.dataset.defaultYear || '';
2088        let category = sectionEl.dataset.defaultCategory || '';
2089        let lastGridHeight = 0;
2090
2091        const bindOpenHandlers = () => {
2092          sectionEl.addEventListener('click', async (e) => {
2093            const urlHit = e.target.closest('[data-nm-url]');
2094            if (urlHit) {
2095              const url = urlHit.getAttribute('data-nm-url') || '';
2096              if (!url) return;
2097              if (urlHit.tagName && urlHit.tagName.toLowerCase() === 'a') return;
2098              e.preventDefault();
2099              const target = urlHit.getAttribute('data-nm-target') || '';
2100              if (target === '_blank') window.open(url, '_blank', 'noopener');
2101              else window.location.href = url;
2102              return;
2103            }
2104
2105            const hit = e.target.closest('[data-nm-open]');
2106            if (!hit) return;
2107            const postId = hit.getAttribute('data-nm-open');
2108            openNewsDrawer(postId, hit);
2109          });
2110
2111          sectionEl.addEventListener('keydown', (e) => {
2112            const urlHit = e.target.closest('[data-nm-url][role="link"]');
2113            if (urlHit) {
2114              if (e.key !== 'Enter' && e.key !== ' ') return;
2115              e.preventDefault();
2116              urlHit.click();
2117              return;
2118            }
2119
2120            const hit = e.target.closest('[data-nm-open][role="button"]');
2121            if (!hit) return;
2122            if (e.key !== 'Enter' && e.key !== ' ') return;
2123            e.preventDefault();
2124            hit.click();
2125          });
2126        };
2127
2128        bindOpenHandlers();
2129
2130        if (displayMode === 'highlights') {
2131          return;
2132        }
2133
2134        if (!grid || !inputKw || !selYear || !btnPrev || !btnNext || !pagesWrap || !pager) {
2135          return;
2136        }
2137
2138        if (initialKeyword) {
2139          inputKw.value = initialKeyword;
2140        }
2141
2142        function isTabletPortrait() {
2143          return window.matchMedia('(min-width: 768px) and (max-width: 1024px) and (orientation: portrait)').matches;
2144        }
2145
2146        function syncPerPageByViewport() {
2147          const base = parseInt(sectionEl.dataset.perPage || '3', 10);
2148          perPage = isTabletPortrait() ? 4 : base;
2149        }
2150
2151        syncPerPageByViewport();
2152
2153        let lastPer = perPage;
2154        window.addEventListener('resize', debounce(() => {
2155          syncPerPageByViewport();
2156          if (perPage !== lastPer) {
2157            lastPer = perPage;
2158            page = 1;
2159            load();
2160          }
2161        }, 150));
2162
2163        function setDisabled(btn, on) {
2164          btn.disabled = !!on;
2165          btn.classList.toggle('is-disabled', !!on);
2166        }
2167
2168        function buildPageModel(total, current) {
2169
2170          const out = [];
2171          if (total <= 7) {
2172            for (let i = 1; i <= total; i++) out.push(i);
2173            return out;
2174          }
2175          const add = (v) => out.push(v);
2176          add(1);
2177
2178          const left = Math.max(2, current - 1);
2179          const right = Math.min(total - 1, current + 1);
2180
2181          if (left > 2) add('…');
2182          for (let i = left; i <= right; i++) add(i);
2183          if (right < total - 1) add('…');
2184
2185          add(total);
2186          return out;
2187        }
2188
2189        function renderPagination() {
2190
2191          setDisabled(btnPrev, page <= 1);
2192          setDisabled(btnNext, page >= maxPages);
2193
2194          const model = buildPageModel(maxPages, page);
2195          pagesWrap.innerHTML = model.map(v => {
2196            if (v === '…') return `<span class="nm-ellipsis">…</span>`;
2197            const active = (v === page) ? 'is-active' : '';
2198            const ariaCurrent = (v === page) ? 'aria-current="page"' : '';
2199            return `<button type="button" class="nm-pagebtn ${active}" data-page="${v}" ${ariaCurrent}>${v}</button>`;
2200          }).join('');
2201        }
2202
2203        async function load() {
2204          setDisabled(btnPrev, true);
2205          setDisabled(btnNext, true);
2206
2207          const r = await postForm('nm_list', {
2208            term, per_page: perPage, page, keyword, year, category
2209          });
2210
2211          if (!r || !r.success) {
2212            setDisabled(btnPrev, page <= 1);
2213            setDisabled(btnNext, page >= maxPages);
2214            return;
2215          }
2216
2217          maxPages = Math.max(1, parseInt(r.data.max_pages || '1', 10));
2218          const total = parseInt(r.data.total || '0', 10);
2219
2220          if (total === 0) {
2221            grid.classList.add('is-empty');
2222
2223            const fallback = 260;
2224            grid.style.minHeight = (lastGridHeight || fallback) + 'px';
2225
2226            grid.innerHTML = `
2227                <div class="nm-empty" role="status" aria-live="polite">
2228                  <div class="nm-empty-icon"><i class="fa-solid fa-magnifying-glass fas fa-search" aria-hidden="true"></i></div>
2229                  <div class="nm-empty-title">No results found</div>
2230                  <div class="nm-empty-desc">Try a different keyword, category, or year filter.</div>
2231                </div>
2232              `;
2233
2234            page = 1;
2235            maxPages = 1;
2236            renderPagination();
2237            return;
2238          }
2239
2240          grid.classList.remove('is-empty');
2241          grid.style.minHeight = '';
2242          grid.innerHTML = r.data.html || '';
2243
2244          if (page > maxPages) page = maxPages;
2245
2246          renderPagination();
2247
2248          requestAnimationFrame(() => {
2249            lastGridHeight = grid.offsetHeight;
2250          });
2251        }
2252
2253        load();
2254
2255        inputKw.addEventListener('input', debounce((e) => {
2256          keyword = (e.target.value || '').trim();
2257          page = 1;
2258          load();
2259        }, 300));
2260
2261        function bindCustomSelect(config) {
2262          const field = config.field;
2263          const btn = config.btn;
2264          const menu = config.menu;
2265          const textEl = config.textEl;
2266          const nativeSelect = config.nativeSelect;
2267          const optSelector = config.optSelector;
2268
2269          if (!field || !btn || !menu || !nativeSelect) return;
2270
2271          function setOpen(open) {
2272            field.classList.toggle('is-open', !!open);
2273            btn.setAttribute('aria-expanded', open ? 'true' : 'false');
2274          }
2275
2276          btn.addEventListener('click', (e) => {
2277            e.preventDefault();
2278            setOpen(!field.classList.contains('is-open'));
2279          });
2280
2281          menu.addEventListener('click', (e) => {
2282            const opt = e.target.closest(optSelector);
2283            if (!opt) return;
2284
2285            const val = opt.getAttribute('data-value') || '';
2286            nativeSelect.value = val;
2287
2288            if (textEl) textEl.textContent = opt.textContent.trim();
2289            setOpen(false);
2290
2291            nativeSelect.dispatchEvent(new Event('change', { bubbles: true }));
2292          });
2293
2294          document.addEventListener('click', (e) => {
2295            if (!field.classList.contains('is-open')) return;
2296            if (field.contains(e.target)) return;
2297            setOpen(false);
2298          }, true);
2299
2300          document.addEventListener('keydown', (e) => {
2301            if (!field.classList.contains('is-open')) return;
2302            if (e.key === 'Escape') setOpen(false);
2303          });
2304
2305          nativeSelect.addEventListener('change', (e) => {
2306            if (textEl && e.target.options && e.target.selectedIndex >= 0) {
2307              textEl.textContent = e.target.options[e.target.selectedIndex].text;
2308            }
2309            setOpen(false);
2310          });
2311        }
2312
2313        const yearField = sectionEl.querySelector('.nm-field-year');
2314        const yearBtn = sectionEl.querySelector('[data-role="year-btn"]');
2315        const yearMenu = sectionEl.querySelector('[data-role="year-menu"]');
2316        const yearText = sectionEl.querySelector('[data-role="year-text"]');
2317
2318        if (selYear) {
2319          bindCustomSelect({
2320            field: yearField,
2321            btn: yearBtn,
2322            menu: yearMenu,
2323            textEl: yearText,
2324            nativeSelect: selYear,
2325            optSelector: '.nm-year-opt',
2326          });
2327
2328          selYear.addEventListener('change', (e) => {
2329            year = e.target.value || '';
2330            page = 1;
2331            load();
2332          });
2333        }
2334
2335        const categoryField = sectionEl.querySelector('.nm-field-category');
2336        const categoryBtn = sectionEl.querySelector('[data-role="category-btn"]');
2337        const categoryMenu = sectionEl.querySelector('[data-role="category-menu"]');
2338        const categoryText = sectionEl.querySelector('[data-role="category-text"]');
2339
2340        if (selCategory) {
2341          bindCustomSelect({
2342            field: categoryField,
2343            btn: categoryBtn,
2344            menu: categoryMenu,
2345            textEl: categoryText,
2346            nativeSelect: selCategory,
2347            optSelector: '.nm-category-opt',
2348          });
2349
2350          selCategory.addEventListener('change', (e) => {
2351            category = e.target.value || '';
2352            page = 1;
2353            load();
2354          });
2355        }
2356
2357        btnPrev.addEventListener('click', () => {
2358          if (page <= 1) return;
2359          page -= 1;
2360          load();
2361        });
2362        btnNext.addEventListener('click', () => {
2363          if (page >= maxPages) return;
2364          page += 1;
2365          load();
2366        });
2367
2368        pagesWrap.addEventListener('click', (e) => {
2369          const b = e.target.closest('button[data-page]');
2370          if (!b) return;
2371          const p = parseInt(b.dataset.page, 10);
2372          if (!p || p === page) return;
2373          page = p;
2374          load();
2375        });
2376
2377      }
2378
2379      document.querySelectorAll('.nm-section').forEach(initSection);
2380
2381      if (initialOpenId) {
2382        window.setTimeout(() => {
2383          openNewsDrawer(initialOpenId, null);
2384        }, 120);
2385      }
2386    })();
2387  </script>
2387
2388    
2388<script>
2389    (function () {
2390      if (window.__KLCC_AW_AUTOFILL__) return;
2391      window.__KLCC_AW_AUTOFILL__ = true;
2392
2393      var sp = new URLSearchParams(window.location.search);
2394      var kw = sp.get('aw_kw') || '';
2395      var yr = sp.get('aw_yr') || '';
2396      var from = sp.get('aw_from') || '';
2397
2398      if (!kw && !yr && !from) return;
2399
2400      function fire(el) {
2401        if (!el) return;
2402        try { el.dispatchEvent(new Event('input', { bubbles: true })); } catch (e) { }
2403        try { el.dispatchEvent(new Event('change', { bubbles: true })); } catch (e) { }
2404        if (window.jQuery) {
2405          try { window.jQuery(el).trigger('input').trigger('change'); } catch (e) { }
2406        }
2407      }
2408
2409      function applyKeyword() {
2410        if (!kw) return true;
2411
2412        var el =
2413          document.querySelector('#klcc-aw-keyword') ||
2414          document.querySelector('.klcc-awards__filters input[name="aw_kw"]') ||
2415          document.querySelector('.klcc-awards input[name="aw_kw"]');
2416
2417        if (!el) return false;
2418
2419        if (String(el.value || '') === String(kw)) return true;
2420
2421        el.value = kw;
2422        fire(el);
2423
2424        return true;
2425      }
2426
2427      function applyYear() {
2428        if (!yr) return true;
2429
2430        var yearField = document.querySelector('.klcc-awards__field.is-year');
2431        if (!yearField) return false;
2432
2433        var native = yearField.querySelector('select[name="aw_year"].klcc-awards__native');
2434        var btn = yearField.querySelector('.klcc-awards__selectBtn');
2435        var txt = yearField.querySelector('.klcc-awards__selectText');
2436        var opt = yearField.querySelector('.klcc-awards__option[data-value="' + yr + '"]');
2437
2438        if (native && String(native.value) === String(yr)) {
2439          if (txt && txt.textContent.trim() !== String(yr)) txt.textContent = String(yr);
2440          if (opt && !opt.classList.contains('is-active')) {
2441            var cur = yearField.querySelector('.klcc-awards__option.is-active');
2442            if (cur) cur.classList.remove('is-active');
2443            opt.classList.add('is-active');
2444          }
2445          return true;
2446        }
2447
2448        if (native && String(native.value) !== String(yr)) {
2449          native.value = String(yr);
2450          fire(native);
2451        }
2452
2453        if (btn && btn.getAttribute('aria-expanded') !== 'true') {
2454          try { btn.click(); } catch (e) { }
2455        }
2456
2457        if (opt) {
2458          try { opt.click(); } catch (e) { }
2459          var cur2 = yearField.querySelector('.klcc-awards__option.is-active');
2460          if (cur2 && cur2 !== opt) cur2.classList.remove('is-active');
2461          opt.classList.add('is-active');
2462        }
2463
2464        if (txt) txt.textContent = String(yr);
2465
2466        if (btn && btn.getAttribute('aria-expanded') === 'true') {
2467          try { btn.click(); } catch (e) { }
2468        }
2469
2470        return (native && String(native.value) === String(yr)) || (opt && opt.classList.contains('is-active'));
2471      }
2472
2473      function klcc_aw_scroll_offset() {
2474        var offset = 128;
2475
2476        if (window.matchMedia && window.matchMedia('(max-width: 640px)').matches) {
2477          offset = 86;
2478        } else if (window.matchMedia && window.matchMedia('(max-width: 1100px)').matches) {
2479          offset = 100;
2480        }
2481
2482        var adminBar = document.getElementById('wpadminbar');
2483        if (adminBar) {
2484          offset += adminBar.offsetHeight || 0;
2485        }
2486
2487        var header = document.querySelector('.elementor-location-header, header.site-header, #masthead, header');
2488        if (header) {
2489          try {
2490            var pos = window.getComputedStyle(header).position;
2491            if (pos === 'fixed' || pos === 'sticky') {
2492              offset += Math.min(header.offsetHeight || 0, 120);
2493            }
2494          } catch (e) { }
2495        }
2496
2497        return offset;
2498      }
2499
2500      function klcc_aw_target_filter() {
2501        return (
2502          document.getElementById('atscroll-award-filter') ||
2503          document.querySelector('[data-awards-filter]') ||
2504          document.querySelector('.klcc-awards__filters') ||
2505          document.querySelector('.klcc-awards__field.is-keyword') ||
2506          document.querySelector('.klcc-awards')
2507        );
2508      }
2509
2510      function klcc_aw_scroll_to_y(targetY) {
2511        targetY = Math.max(0, targetY || 0);
2512
2513        if (window.lenis && typeof window.lenis.scrollTo === 'function') {
2514          window.lenis.scrollTo(targetY, {
2515            duration: 0,
2516            immediate: true,
2517            force: true
2518          });
2519        } else if (window.locomotiveScroll && typeof window.locomotiveScroll.
2519scrollTo === 'function') {
2520          window.locomotiveScroll.scrollTo(targetY, {
2521            duration: 0,
2522            disableLerp: true
2523          });
2524        } else {
2525          window.scrollTo({
2526            top: targetY,
2527            behavior: 'auto'
2528          });
2529        }
2530      }
2531
2532      function klcc_aw_align_filter() {
2533        var el = klcc_aw_target_filter();
2534        if (!el) return false;
2535
2536        if (!el.id) {
2537          el.id = 'atscroll-award-filter';
2538        }
2539
2540        try {
2541          el.style.scrollMarginTop = klcc_aw_scroll_offset() + 'px';
2542        } catch (e) { }
2543
2544        var rect = el.getBoundingClientRect();
2545        var currentY = window.pageYOffset || document.documentElement.scrollTop || 0;
2546        var targetY = Math.max(0, currentY + rect.top - klcc_aw_scroll_offset());
2547
2548        if (Math.abs(currentY - targetY) > 4) {
2549          klcc_aw_scroll_to_y(targetY);
2550        }
2551
2552        return true;
2553      }
2554
2555      function klcc_aw_clean_url() {
2556        try {
2557          sp.delete('aw_kw');
2558          sp.delete('aw_yr');
2559          sp.delete('aw_from');
2560          sp.delete('aw_scroll');
2561
2562          var qs = sp.toString();
2563          history.replaceState(null, '', window.location.pathname + (qs ? ('?' + qs) : ''));
2564        } catch (e) { }
2565
2566        try {
2567          document.documentElement.classList.remove('klcc-awards-autoscroll-pending');
2568        } catch (e) { }
2569
2570        try {
2571          if ('scrollRestoration' in history) {
2572            history.scrollRestoration = 'auto';
2573          }
2574        } catch (e) { }
2575      }
2576
2577      function klcc_aw_run_stable_scroll() {
2578        var tries = 0;
2579        var maxTries = 30;
2580
2581        function step() {
2582          tries++;
2583
2584          var ok = klcc_aw_align_filter();
2585
2586          if (!ok && tries < maxTries) {
2587            setTimeout(step, 100);
2588            return;
2589          }
2590
2591          if (ok) {
2592            // Small silent corrections for late image/font/layout shifts.
2593            setTimeout(klcc_aw_align_filter, 180);
2594            setTimeout(klcc_aw_align_filter, 520);
2595            setTimeout(klcc_aw_align_filter, 900);
2596          }
2597        }
2598
2599        requestAnimationFrame(function () {
2600          requestAnimationFrame(step);
2601        });
2602      }
2603
2604      var awScroll = sp.get('aw_scroll') || '';
2605      var shouldScrollToFilter = !!(kw || yr || from || awScroll === 'filter');
2606
2607      if (!shouldScrollToFilter) return;
2608
2609      if (!kw && !yr) {
2610        setTimeout(klcc_aw_run_stable_scroll, 80);
2611        setTimeout(klcc_aw_clean_url, 1300);
2612        return;
2613      }
2614
2615      var tries = 0;
2616      var okK = false;
2617      var okY = false;
2618
2619      var timer = setInterval(function () {
2620        tries++;
2621
2622        if (!okK) okK = applyKeyword();
2623        if (!okY) okY = applyYear();
2624
2625        if ((kw ? okK : true) && (yr ? okY : true)) {
2626          clearInterval(timer);
2627
2628          setTimeout(klcc_aw_run_stable_scroll, 80);
2629          setTimeout(klcc_aw_clean_url, 1300);
2630        }
2631
2632        if (tries >= 100) {
2633          clearInterval(timer);
2634
2635          setTimeout(klcc_aw_run_stable_scroll, 80);
2636          setTimeout(klcc_aw_clean_url, 1300);
2637        }
2638      }, 100);
2639
2640    })();
2641  </script>
2641
2642  
2642<script>
2643  (function(){
2644    var SEARCH_RESULTS_URL = "https:\/\/klcc.com.my\/search-result\/";
2645
2646    function qs(sel, root){
2647      return (root || document).querySelector(sel);
2648    }
2649
2650    function qsa(sel, root){
2651      return Array.prototype.slice.call((root || document).querySelectorAll(sel));
2652    }
2653
2654    function getKeywordFromForm(form){
2655      if(!form) return '';
2656
2657      var input =
2658        qs('input[name="q"]', form) ||
2659        qs('input[name="s"]', form) ||
2660        qs('input[type="search"]', form) ||
2661        qs('input[type="text"]', form);
2662
2663      if(!input) return '';
2664
2665      return (input.value || '').trim();
2666    }
2667
2668    function normalizeSearchForm(form){
2669      if(!form || form.getAttribute('data-klcc-custom-search-ready') === '1') return;
2670
2671      form.setAttribute('data-klcc-custom-search-ready', '1');
2672      form.setAttribute('method', 'get');
2673      form.setAttribute('action', SEARCH_RESULTS_URL);
2674
2675      var input =
2676        qs('input[name="q"]', form) ||
2677        qs('input[name="s"]', form) ||
2678        qs('input[type="search"]', form) ||
2679        qs('input[type="text"]', form);
2680
2681      if(input){
2682        input.setAttribute('name', 'q');
2683      }
2684
2685      form.addEventListener('submit', function(e){
2686        var keyword = getKeywordFromForm(form);
2687
2688        e.preventDefault();
2689        e.stopPropagation();
2690
2691        var url = new URL(SEARCH_RESULTS_URL, window.location.origin);
2692
2693        if(keyword){
2694          url.searchParams.set('q', keyword);
2695        }
2696
2697        window.location.href = url.toString();
2698      }, true);
2699    }
2700
2701    function run(){
2702      /*
2703       * Target the theme search modal / popout form.
2704       * This is intentionally broad but safe:
2705       * it only touches forms related to search modal/search popout.
2706       */
2707      var forms = [];
2708
2709      qsa('#site-search-modal form').forEach(function(f){ forms.push(f); });
2710      qsa('#klcc-search-modal form').forEach(function(f){ forms.push(f); });
2711      qsa('.site-search-modal form').forEach(function(f){ forms.push(f); });
2712      qsa('.search-modal form').forEach(function(f){ forms.push(f); });
2713      qsa('[data-modal-content="site-search-modal"]').forEach(function(el){
2714        var modalId = el.getAttribute('data-modal-content');
2715        if(modalId){
2716          qsa('#' + modalId + ' form').forEach(function(f){ forms.push(f); });
2717        }
2718      });
2719
2720      /*
2721       * Fallback: any visible search form inside a modal/dialog.
2722       */
2723      qsa('[role="dialog"] form, .modal form, .popup form').forEach(function(f){
2724        if(
2725          qs('input[type="search"]', f) ||
2726          qs('input[name="s"]', f) ||
2727          qs('input[name="q"]', f)
2728        ){
2729          forms.push(f);
2730        }
2731      });
2732
2733      forms.forEach(normalizeSearchForm);
2734    }
2735
2736    if(document.readyState === 'loading'){
2737      document.addEventListener('DOMContentLoaded', run, {once:true});
2738    }else{
2739      run();
2740    }
2741
2742    window.addEventListener('load', function(){
2743      setTimeout(run, 150);
2744      setTimeout(run, 600);
2745    });
2746
2747    /*
2748     * For modal content that is injected after clicking search icon.
2749     */
2750    if('MutationObserver' in window){
2751      var timer = null;
2752      var mo = new MutationObserver(function(){
2753        clearTimeout(timer);
2754        timer = setTimeout(run, 120);
2755      });
2756
2757      mo.observe(document.documentElement, {
2758        childList: true,
2759        subtree: true
2760      });
2761    }
2762  })();
2763  </script>
2763
2764    
2764<script>
2765    (function () {
2766      if (window.__KLCC_NM_CLOSE_RESTORE_TO_CARD__) return;
2767      window.__KLCC_NM_CLOSE_RESTORE_TO_CARD__ = true;
2768
2769      var lastHit = null;
2770      document.addEventListener('click', function (e) {
2771        var hit = e.target && e.target.closest ? e.target.closest('.nm-card-hit') : null;
2772        if (hit) lastHit = hit;
2773      }, true);
2774
2775      function getCard() {
2776        return lastHit ? (lastHit.closest('.nm-card') || lastHit) : null;
2777      }
2778
2779      function getDocY() {
2780        return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
2781      }
2782
2783      function drawerEl() {
2784        return document.querySelector(
2785          '.nm-drawer, .nm-post-drawer, [data-nm-drawer], [class*="nm-"][class*="drawer"]'
2786        );
2787      }
2788
2789      function drawerLooksClosed(d) {
2790        if (!d) return true;
2791        if (!d.isConnected) return true;
2792        try {
2793          if (d.hasAttribute('hidden')) return true;
2794          if (d.getAttribute('aria-hidden') === 'true') return true;
2795          var cs = getComputedStyle(d);
2796          if (cs.display === 'none' || cs.visibility === 'hidden') return true;
2797          if (d.classList.contains('is-hidden') || d.classList.contains('is-closed')) return true;
2798        } catch (e) { }
2799        return false;
2800      }
2801
2802      function trySmoothLibScroll(card, offset) {
2803        var l = window.lenis || window.__lenis;
2804        if (l && typeof l.scrollTo === 'function') {
2805          try { l.scrollTo(card, { offset: -offset, immediate: true }); return true; } catch (e) { }
2806          try {
2807            var y = getDocY() + card.getBoundingClientRect().top - offset;
2808            l.scrollTo(y, { immediate: true });
2809            return true;
2810          } catch (e2) { }
2811        }
2812
2813        var loco = window.locomotiveScroll || window.locoScroll;
2814        if (loco && typeof loco.scrollTo === 'function') {
2815          try { loco.scrollTo(card, { offset: -offset, duration: 0, disableLerp: true }); return true; } catch (e) { }
2816          try {
2817            var y2 = getDocY() + card.getBoundingClientRect().top - offset;
2818            loco.scrollTo(y2, { duration: 0, disableLerp: true });
2819            return true;
2820          } catch (e2) { }
2821        }
2822        return false;
2823      }
2824
2825      function scrollFallbackTo(card, offset) {
2826        var y = getDocY() + card.getBoundingClientRect().top - offset;
2827        try { window.scrollTo({ top: y, behavior: 'auto' }); } catch (e) {
2828          try { window.scrollTo(0, y); } catch (e2) { }
2829        }
2830      }
2831
2832      function smartScrollToCard(card) {
2833        if (!card) return;
2834        var offset = Math.min(160, window.innerHeight * 0.15);
2835
2836        var used = trySmoothLibScroll(card, offset);
2837        if (!used) scrollFallbackTo(card, offset);
2838
2839        requestAnimationFrame(function () {
2840          requestAnimationFrame(function () {
2841            var used2 = trySmoothLibScroll(card, offset);
2842            if (!used2) scrollFallbackTo(card, offset);
2843          });
2844        });
2845      }
2846
2847      function restoreIfJumpedToTop() {
2848        var card = getCard();
2849        if (!card) return;
2850        if (getDocY() > 80) return;
2851
2852        smartScrollToCard(card);
2853        setTimeout(function () { smartScrollToCard(card); }, 180);
2854        setTimeout(function () { smartScrollToCard(card); }, 520);
2855        setTimeout(function () { smartScrollToCard(card); }, 1200);
2856      }
2857
2858      function watchCloseThenRestore() {
2859        var d = drawerEl();
2860        var start = Date.now();
2861        var MAX = 4500;
2862        var done = false;
2863
2864        (function tick() {
2865          if (done) return;
2866          if (drawerLooksClosed(d) || (Date.now() - start > MAX)) {
2867            done = true;
2868            restoreIfJumpedToTop();
2869            return;
2870          }
2871          requestAnimationFrame(tick);
2872        })();
2873
2874        setTimeout(restoreIfJumpedToTop, 120);
2875        setTimeout(restoreIfJumpedToTop, 320);
2876        setTimeout(restoreIfJumpedToTop, 900);
2877        setTimeout(restoreIfJumpedToTop, 1600);
2878      }
2879
2880      document.addEventListener('click', function (e) {
2881        var btn = e.target && e.target.closest ? e.target.closest('button.nm-drawer-close[data-nm-close]') : null;
2882        if (!btn) return;
2883        watchCloseThenRestore();
2884      }, true);
2885
2886      document.addEventListener('keydown', function (e) {
2887        if (e.key !== 'Escape' && e.key !== 'Esc') return;
2888
2889        var d = drawerEl();
2890        if (!d || drawerLooksClosed(d)) return;
2891
2892        watchCloseThenRestore();
2893      }, true);
2894
2895    })();
2896  </script>
2896
2897</body>
2898
2899</html>
2900
2901<!-- Dynamic page generated in 1.819 seconds. -->
2902<!-- Cached page generated by WP-Super-Cache on 2026-10-03 02:15:02 -->
2903
2904<!-- Compression = gzip -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.