1<!DOCTYPE html> 2 3<html lang="en"> 4 <head> 5 <title> 6 7 Insights & News | Ivan Insurance Brokers Pte Ltd 8 9 </title> 10 11 12 <meta charset="UTF-8" /> 13 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 14 15 16 17 <meta name="description" content="Read the latest articles, updates, and expert insights on general insurance, cyber risk, WICA, and more from Ivan Insurance Brokers." /> 18 19 <meta name="robots" content="index, follow" /> 20 <link rel="canonical" href="https://www.ivaninsurance.com/articles" /> 21 22 <link rel="alternate" hreflang="en" href="https://www.ivaninsurance.com/articles" /> 23 24 25 <link rel="alternate" 26 hreflang="x-default" 27 href="https://www.ivaninsurance.com/articles" /> 28 29 <meta http-equiv="content-language" content="en" /> 30 31 <meta property="og:title" content="Insights & News | Ivan Insurance Brokers Pte Ltd" /> 32 <meta property="og:description" content="Stay informed with the latest developments, regulations, and insights in Singapore's general insurance landscape." /> 33 <meta property="og:url" content="https://www.ivaninsurance.com/articles" /> 34 <meta property="og:type" content="website" /> 35 <meta property="og:locale" content="en" /> 36 37 <meta property="og:site_name" content="Ivan Insurance Brokers" /> 38 39 40 <meta name="twitter:card" content="summary_large_image" /> 41 <meta name="twitter:title" content="Insights & News | Ivan Insurance Brokers Pte Ltd" /> 42 <meta name="twitter:description" content="Stay informed with the latest developments, regulations, and insights in Singapore's general insurance landscape." /> 43 44 45 46 47<link rel="preconnect" href="https://fonts.googleapis.com"> 48<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 49 50 51 <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,700;1,400;1,700&display=swap" 52 rel="stylesheet"> 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 <link rel="stylesheet" type="text/css" href="https://7lscgh819c.koniglecdn.com/css/root-styles-bb33715b.css"> 69 70 71 72 73 74 <link rel="stylesheet" type="text/css" href="https://7lscgh819c.koniglecdn.com/css/ds-stylesheet-099b25bb.css"> 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
90<script type="application/ld+json"> 91 { 92 "@context": "http://schema.org", 93 "@type": "WebPage", 94 95 "name": "Insights & News | Ivan Insurance Brokers Pte Ltd", 96 97 "description": "Read the latest articles, updates, and expert insights on general insurance, cyber risk, WICA, and more from Ivan Insurance Brokers.", 98 99 "publisher": { 100 "@type": "Organization", 101 "name": "Ivan Insurance Brokers", 102 103 "url": "https://www.ivaninsurance.com" 104 } 105 } 106</script>
106 107 108 109 110 111 112 113 114 115
116<script id="layout-context" type="application/json">{"style": {}, "version": "2", "header": null, "footer": null, "main": {"style": {}, "blocks": {"block_ac909f52": {"classes": "", "style": {}, "type": "component", "component_id": "7445052053267333120", "name": "Main content", "disabled": false, "attrs_": {}, "config_": {}, "class_": "", "component": {"type_": "component", "attrs_": {}, "config_": {}, "style_": {}, "class_": "", "disabled_": false, "name_": "Articles", "template_": "articles-4371056b", "version_": "1.0.0", "component_type_": "fluid", "dynamic_component_type_": null, "is_custom_": true, "editor_support_": false, "widget_config_": null}}}, "order": ["block_ac909f52"], "attrs_": {}, "config_": {}, "class_": ""}, "right_sidebar": null, "left_sidebar": null, "css_assets": [], "js_assets": [], "template_id": "7445052054345269248"}</script>
vendor: 1 bytes, line 116
116
117<script id="site-settings" type="application/json">{"brand": {}, "product_listing": {}, "tracking": {}, "watchtower": {"token": "cb5fa8ff26c144529129dad53434d6d7"}, "commerce": {}}</script>
vendor: 1 bytes, line 117
117
118<script id="root-layout-context" type="application/json">{"style": {}, "version": "2", "header": {"style": {}, "blocks": {"header": {"classes": "", "style": {}, "type": "component", "component_id": "7443422698204610560", "name": "Header", "disabled": false, "attrs_": {}, "config_": {}, "class_": "", "component": {"type_": "component", "attrs_": {}, "config_": {}, "style_": {}, "class_": "", "disabled_": false, "name_": "Header Component", "template_": "header-component-c563320e", "version_": "1.0.0", "component_type_": "fluid", "dynamic_component_type_": null, "is_custom_": true, "editor_support_": false, "widget_config_": null}}}, "order": ["header"], "attrs_": {}, "config_": {}, "class_": ""}, "footer": {"style": {}, "blocks": {"footer": {"classes": "", "style": {}, "type": "component", "component_id": "7443422698934419456", "name": "Footer", "disabled": false, "attrs_": {}, "config_": {}, "class_": "", "component": {"type_": "component", "attrs_": {}, "config_": {}, "style_": {}, "class_": "", "disabled_": false, "name_": "Footer Component", "template_": "footer-component-2653ada5", "version_": "1.0.0", "component_type_": "fluid", "dynamic_component_type_": null, "is_custom_": true, "editor_support_": false, "widget_config_": null}}}, "order": ["footer"], "attrs_": {}, "config_": {}, "class_": ""}, "main": null, "right_sidebar": null, "left_sidebar": null, "css_assets": [{"type": "css", "attrs": {}, "code": "__root", "name": "Root stylesheet", "version": null, "asset_id": "300756cf-8403-4e50-bb5f-c7bdc2accfbb", "asset_src": null}, {"type": "css", "attrs": {}, "code": "__custom", "name": "Design System Stylesheet", "version": null, "asset_id": "b99f3a64-59f6-4a87-9203-f63e94a7a43d", "asset_src": null}], "js_assets": [{"type": "js", "attrs": {}, "code": "__custom", "name": "Theme JS", "version": null, "asset_id": "79114464-f324-4848-9891-50e5ad934f31", "asset_src": null}], "template_id": "7443419814620418048"}</script>
vendor: 1 bytes, line 118
118
119<script> 120 window.konigle = { 121 apiServer: "https://tim.konigle.com", 122 csrfToken: "laFB3GF0ZKCdkdLd9fxYivNLtcMfxURP6mthoD3oUpUZVr2G7VsXjVm1Kqe63Jnl", 123 userAuthenticated: false, 124 isPreview: false, 125 pageVersion: "A", 126 profitjs: { 127 pageType: "page", 128 resourceId: "7445052052222951424", 129 accessToken: "9f628bb97e9d4fe79bb0622096d5ce13", 130 server: "https://tim.konigle.com" 131 }, 132 watchtower: { 133 token: "cb5fa8ff26c144529129dad53434d6d7", 134 pageType: "2", 135 pageId: "7445052052222951424", 136 pageVersion: "A", 137 server: "https://tim.konigle.com", 138 disable: false 139 } 140 }; 141 142 143 (function() { 144 const siteSettings = document.querySelector('script[id="site-settings"][type="application/json"]'); 145 if (siteSettings) { 146 try { 147 const data = JSON.parse(siteSettings.textContent || "{}"); 148 window.konigle.settings = data; 149 siteSettings.remove(); 150 } catch (e) { 151 console.error("Failed to parse site settings:", e); 152 } 153 } 154 })(); 155 156 157 158 159 window.addEventListener('auth:login-widget:authenticated', function () { 160 window.konigle.userAuthenticated = true; 161 }); 162 163 class ComponentContextManager { 164 constructor() { 165 this.components = new Map(); 166 } 167 168 init(){ 169 this.parseLayoutContext(); 170 } 171 172 handleLayout(layout){ 173 const segments = ['main', 'header', 'footer']; 174 segments.forEach((segment) => { 175 if (layout[segment] && layout[segment].blocks) { 176 for(const [blockKey, block] of Object.entries(layout[segment].blocks)){ 177 if(block.component && block.component_id){ 178 this.components.set(block.component_id, block.component); 179 } 180 } 181 } 182 }); 183 184 } 185 186 parseLayoutContext(){ 187 ['layout-context', 'root-layout-context'].forEach((id) => { 188 const layoutJson = document.querySelector(`script[id='${id}'][type='application/json']`); 189 if (layoutJson) { 190 try { 191 const data = JSON.parse(layoutJson.textContent || "{}"); 192 this.handleLayout(data); 193 // remve the dom element after parsing 194 layoutJson.remove(); 195 } catch (e) { 196 console.error(`Failed to parse JSON for ${id}:`, e); 197 } 198 } 199 }); 200 } 201 202 getComponent(componentId) { 203 return this.components.get(componentId) || {}; 204 } 205 206 getComponentConfig(componentId){ 207 const component = this.getComponent(componentId); 208 return component.config_ || {}; 209 } 210 } 211 if (!window.konigle.componentContextManager) { 212 window.konigle.componentContextManager = new ComponentContextManager(); 213 window.konigle.componentContextManager.init(); 214 } 215 window.konigle.getComponentConfig = function(componentId) { 216 if (!window.konigle.componentContextManager) { 217 console.error("ComponentContextManager is not initialized."); 218 return {}; 219 } 220 return window.konigle.componentContextManager.getComponentConfig(componentId); 221 }; 222 window.konigle.getComponentContext = function(componentId) { 223 if (!window.konigle.componentContextManager) { 224 console.error("ComponentContextManager is not initialized."); 225 return {} 226 } 227 return window.konigle.componentContextManager.getComponent(componentId); 228 }; 229 230</script>
230 231 232 233 234
234<script src="/static/sitekit/js/vendor/jquery-3.7.1.min.js"></script>
234 235 236 237 238 239 240 241 242 <style> 243 .bg-header { 244 background-color: None; 245 } 246 .border-header { 247 border-color: ; 248 } 249 .text-header { 250 display: inline-block; 251 color: ; 252 border-color: transparent; 253 border-radius: 0.375rem; 254 transition: transform 0.3s ease-out; 255 } 256 .text-header:hover { 257 transform: scale(1.1); 258 color: ; 259 border-color: ; 260 } 261 </style> 262 263 264 265 <style> 266 [x-cloak] { 267 display: none !important; 268 } 269 </style> 270 271 272 273 274 275 276 277 278 279 <link rel="icon" type="image/png" href="data:image/png;base64,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"> 280 281 282 283 <!-- Built with Hostbento â https://hostbento.com --> 284 <meta name="generator" content="Hostbento"> 285 </head> 286 287 288 289 290 <body class="flex min-h-screen flex-col justify-between" 291 > 292 293 294 295 296 297 298<div data-node-type="segment" 299 data-template-id="7443419814620418048" 300 data-node-key="header" 301 302 style=""> 303 304 305 306 307 <!-- component could be deleted but still the ID maybe present in the template. --> 308 309 <div class="w-full" style="" data-node-type="block" data-node-key="header" data-component-id="7443422698204610560" > 310 311 312 313 314 <link rel="preconnect" href="https://fonts.googleapis.com"> 315<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 316<link href="https://fonts.googleapis.com/css2?family=Hind:wght@400;500;600;700&family=Noto+Serif:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet"> 317 318<header class="site-header" role="banner"> 319 <div class="container"> 320 <a href="/" class="nav-logo" aria-label="Ivan Insurance Brokers Pte Ltd â Home"> 321 <div class="nav-logo-icon" style="background:transparent;"> 322 <img src="data:image/png;base64,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" alt="Ivan Insurance Brokers Pte Ltd" width="42" height="42"> 323 </div> 324 <div class="nav-logo-text"> 325 <strong>Ivan Insurance Brokers Pte Ltd</strong> 326 <span>Direct Insurance Broker · Singapore</span> 327 </div> 328 </a> 329 <nav aria-label="Main navigation"> 330 <ul class="nav-links"> 331 <li><a href="/">Home</a></li> 332 <li><a href="/about">About</a></li> 333 <li><a href="/products">Products</a></li> 334 <li><a href="/claims">Claims</a></li> 335 <li><a href="/faq">FAQ</a></li> 336 <li><a href="/#partners">Partners</a></li> 337 <li><a href="/articles">Articles</a></li> 338 <li><a href="/contact">Contact</a></li> 339 <li><a href="/#buy-online" class="nav-cta-buy">â¡ Buy Online</a></li> 340 <li><a href="/contact" class="nav-cta">Get a Quote</a></li> 341 </ul> 342 </nav> 343 <button class="hamburger" aria-label="Toggle menu" aria-expanded="false" onclick="toggleMenu()"> 344 <span></span><span></span><span></span> 345 </button> 346 </div> 347</header> 348 349<div class="mobile-nav" id="mobileNav" role="navigation" aria-label="Mobile navigation"> 350 <a href="/" onclick="closeMenu()">Home</a> 351 <a href="/about" onclick="closeMenu()">About Us</a> 352 <a href="/products" onclick="closeMenu()">Products</a> 353 <a href="/claims" onclick="closeMenu()">Claims</a> 354 <a href="/faq" onclick="closeMenu()">FAQ</a> 355 <a href="/#partners" onclick="closeMenu()">Partners</a> 356 <a href="/articles" onclick="closeMenu()">Articles</a> 357 <a href="/contact" onclick="closeMenu()">Contact</a> 358 <div style="display:flex;gap:8px;padding:14px 16px;"> 359 <a href="https://www.facebook.com/ivaninsurance" target="_blank" rel="noopener noreferrer" class="social-icon" style="border:1.5px solid var(--border);border-radius:10px;width:40px;height:40px;" aria-label="Facebook"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z"/></svg></a> 360 <a href="https://www.instagram.com/ivaninsurance" target="_blank" rel="noopener noreferrer" class="social-icon" style="border:1.5px solid var(--border);border-radius:10px;width:40px;height:40px;" aria-label="Instagram"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="20" rx="5"/><path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z"/><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/></svg></a> 361 <a href="https://www.linkedin.com/company/ivan-insurance-brokers" target="_blank" rel="noopener noreferrer" class="social-icon" style="border:1.5px solid var(--border);border-radius:10px;width:40px;height:40px;" aria-label="LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-4 0v7h-4v-7a6 6 0 016-6zM2 9h4v12H2zM4 6a2 2 0 110-4 2 2 0 010 4z"/></svg></a> 362 </div> 363 <a href="/#buy-online" class="nav-cta-buy-mobile" onclick="closeMenu()">â¡ Buy Online â Instant Cover</a> 364 <a href="/contact" class="nav-cta-mobile" onclick="closeMenu()">Get a Quote</a> 365</div> 366 367 368 369 </div> 370 371 372<div x-data="searchModal" @search-open.window="handleOpen($event.detail)"> 373 374 <div x-show="isOpen" 375 x-cloak 376 x-on:keydown.window.escape="handleClose()" 377 class="fixed inset-0 z-50" 378 aria-labelledby="search-modal" 379 role="dialog" 380 aria-modal="true">
381 <!-- Background backdrop, show/hide based on modal state. --> 382 <div x-show="isOpen" 383 x-transition.opacity.duration.500ms 384 class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"></div> 385 <div x-show="isOpen" 386 x-transition:enter="transition ease-in-out duration-500" 387 x-transition:enter-start="translate-y-full" 388 x-transition:enter-end="translate-y-0" 389 x-transition:leave="transition ease-in-out duration-500" 390 x-transition:leave-start="translate-y-0" 391 x-transition:leave-end="translate-y-full" 392 class="fixed inset-0 z-10 w-screen"> 393 <div class="flex flex-col h-full justify-end items-center"> 394 <!-- Modal panel, show/hide based on modal state. --> 395 <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4 grow bg-white w-full max-h-full shadow-xl"> 396 <div class="col-span-1 lg:col-span-2 px-4 sm:p-8"> 397 <div class="h-24 sm:h-32 mb-8 flex flex-col justify-end items-start"> 398 <h2 class="text-4xl sm:text-6xl font-bold text-gray-900">Search</h2> 399 </div> 400 <!-- Search bar and button. --> 401 402<form class="flex flex-row justify-between items-center w-full" 403 x-on:submit="query($event, searchValue)"> 404 <label for="" class="sr-only">Search</label> 405 <div class="relative flex-grow rounded-lg transition focus-within:drop-shadow-md"> 406 <!-- Search icon adornment. --> 407 <div class="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3" 408 aria-hidden="true"> 409 <svg xmlns="http://www.w3.org/2000/svg"
410 viewBox="0 0 20 20" 411 fill="currentColor" 412 class="w-5 h-5 text-gray-400"> 413 <path fill-rule="evenodd" d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z" clip-rule="evenodd" /> 414 </svg> 415 </div> 416 <input id="search" 417 type="text" 418 name="search" 419 class="block transition w-full rounded-t-lg py-1.5 px-10 text-gray-900 bg-gray-100 placeholder:text-gray-400 sm:text-sm sm:leading-6 border-t-0 border-x-0 border-b-2 border-b-gray-200 focus:border-b-primary focus:ring-0" 420 placeholder="Search anything" 421 x-model="searchValue" 422 x-on:input.debounce.500ms="query($event, searchValue)"> 423 <!-- Invisible button to capture Enter key. --> 424 <button type="submit" hidden aria-hidden="true"></button> 425 <!-- Clear input button. --> 426 <button type="button" 427 x-on:click="handleClear()" 428 x-show="searchValue" 429 class="absolute inset-y-0 right-0 flex items-center pr-3 transition hover:opacity-50" 430 aria-label="clear-search"> 431 <svg xmlns="http://www.w3.org/2000/svg"
432 viewBox="0 0 20 20" 433 fill="currentColor" 434 class="w-5 h-5 text-gray-400" 435 aria-hidden="true"> 436 <path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z" /> 437 </svg> 438 </button> 439 </div> 440 <!-- Search arrow icon button. --> 441 <button type="submit" 442 class="btn-icon ml-2 text-gray-500" 443 x-bind:disabled="isLoading" 444 aria-label="query-search"> 445 <!-- Loading indicator. --> 446 <svg xmlns="http://www.w3.org/2000/svg" 447 fill="none" 448 viewBox="0 0 24 24" 449 stroke-width="1.5" 450 stroke="currentColor" 451 class="w-6 h-6 animate-pulse" 452 x-show="isLoading" 453 aria-hidden="true"> 454 <path stroke-linecap="round" stroke-linejoin="round" d="M6.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM12.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM18.75 12a.75.75 0 11-1.5 0 .75.75 0 011.5 0z" /> 455 </svg> 456 <!-- Arrow when not loading. --> 457 <svg xmlns="http://www.w3.org/2000/svg" 458 fill="none"
459 viewBox="0 0 24 24" 460 stroke-width="1.5" 461 stroke="currentColor" 462 class="w-6 h-6" 463 x-show="!isLoading" 464 aria-hidden="true"> 465 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" /> 466 </svg> 467 </button> 468</form> 469 470 <!-- "Nothing found" indicator. --> 471 <div class="relative my-2 prose prose-a:text-primary" 472 x-show="resultGroups?.length === 0 && searchValue && hasSearched" 473 x-transition.opacity> 474 475 <p class="text-sm">Can't find what you're looking for!</p> 476 477 </div> 478 </div> 479 <div class="col-span-1 lg:col-span-3 overflow-auto grow px-4 sm:p-8 bg-gray-50 rounded-t-2xl sm:rounded-tr-none sm:rounded-bl-2xl" 480 x-show="resultGroups?.length" 481 x-transition.opacity> 482 <!-- Displaces list to same level as search bar. --> 483 <div class="h-16 sm:h-32 mb-8 flex flex-col justify-end items-start"> 484 <!-- Results count. --> 485 <h3 class="text-2xl sm:text-3xl font-semibold text-gray-900" 486 x-text="`${searchCount} result${searchCount > 1 ? 's' : ''}`"></h3> 487 </div> 488 <!-- Search results list. --> 489 490<ul role="list"> 491 <template x-for="group in resultGroups"> 492 <li class="mb-4"> 493 <!-- Result group title. --> 494 <div class="pb-2"> 495 <h3 class="text-base font-semibold leading-6 text-gray-900" 496 x-text="group.title"></h3> 497 </div> 498 <!-- Results list. --> 499 <ul role="list"> 500 <template x-for="result in group.results"> 501 <a x-bind:href="result?.url"> 502 <li class="relative flex justify-between gap-x-6 px-4 py-5 rounded-lg transition hover:bg-white hover:shadow-md sm:px-6 lg:px-8"> 503 <div class="flex min-w-0 gap-x-4"> 504 <div class="min-w-0 flex-auto"> 505 <p class="text-sm font-semibold leading-6 text-gray-900" 506 x-text="result?.title"></p> 507 <p class="mt-1 flex text-xs leading-5 text-gray-500" 508 x-text="result?.subtitle"></p> 509 </div> 510 </div> 511 <!-- Right caret. --> 512 <div class="flex shrink-0 items-center gap-x-4" aria-hidden="true"> 513 <svg class="h-5 w-5 flex-none text-gray-400"
514 viewBox="0 0 20 20" 515 fill="currentColor"> 516 <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" /> 517 </svg> 518 </div> 519 </li> 520 </a> 521 </template> 522 </ul> 523 </li> 524 </template> 525</ul> 526 527 </div> 528 </div> 529 </div> 530 </div> 531 <!-- Top right button group. --> 532 <div class="absolute top-4 right-4 z-10" 533 x-on:click="handleClose()" 534 x-show="isOpen" 535 x-transition.duration.300ms.delay.500ms> 536 <!-- Close button. --> 537 <button class="flex flex-row items-center group bg-white text-gray-700 rounded-full p-2 transition drop-shadow-md hover:drop-shadow-lg" 538 type="button"> 539 <!-- Expanding text on hover. --> 540 <span class="text-sm text-left font-normal transition-all w-0 group-hover:w-12 ps-0 group-hover:ps-1 opacity-0 group-hover:opacity-100 -translate-x-12 group-hover:translate-x-0">Close</span> 541 <svg xmlns="http://www.w3.org/2000/svg" 542 fill="none"
543 viewBox="0 0 24 24" 544 stroke-width="1.5" 545 stroke="currentColor" 546 class="w-6 h-6" 547 aria-hidden="true"> 548 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /> 549 </svg> 550 </button> 551 </div> 552 </div> 553</div> 554 555 556 557 558 559 560</div> 561 562 563 564 565 <main class="flex-grow flex flex-col relative " 566 data-node-type="segment" 567 data-template-id="7445052054345269248" 568 data-node-key="main" 569 style=""> 570 571 572 573 <div class="relative flex flex-col w-full"> 574 575 576 577 578 <div data-select-key="block_ac909f52" data-node-type="block" data-node-key="block_ac909f52" data-select-type="block" data-component-id="7445052053267333120"> 579 580 581 582 583 <a href="#main-content" class="skip-link">Skip to main content</a> 584 585<main id="main-content"> 586 587<!-- ââââââââ ARTICLES ââââââââ --> 588<section class="articles-section" id="articles" style="padding-top: 140px;"> 589 <div class="container"> 590 <div class="section-header center fade-up"> 591 <div class="section-label">Insights & News</div> 592 <h2 class="section-title">Insurance Articles & <em class="accent-serif">Updates</em></h2> 593 <p class="section-sub">Stay informed with the latest developments in Singapore's general insurance landscape.</p> 594 </div> 595 <div class="articles-grid"> 596 <article class="article-card fade-up"> 597 <div class="article-thumb" style="background:linear-gradient(135deg,#12265E,#0C1A42)"><span class="article-category">Regulation</span><div class="article-thumb-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg></div></div> 598 <div class="article-body"><div class="article-date">20 February 2026</div><h3>MAS Raises Capital Requirements for General Insurers: What It Means for Policyholders</h3><p>Singapore's MAS has strengthened solvency standards under the updated RBC 2 framework. We explain what this means for your policy security.</p><span class="read-more">Read Article â</span></div> 599 </article> 600 <article class="article-card fade-up"> 601 <div class="article-thumb" style="background:linear-gradient(135deg,#0C1A42,#12265E)"><span class="article-category">Construction</span><div class="article-thumb-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 20h20"/><path d="M5 20V10l7-5 7 5v10"/></svg></div></div> 602 <div class="article-body"><div class="article-date">8 February 2026</div><h3>Rising Construction Costs: How Contractors Can Manage Insurance Exposure</h3><p>With material costs climbing, under-insurance is a growing risk. Learn how to review declared values and avoid devastating shortfalls at claims time.</p><span class="read-more">Read Article â</span></div> 603 </article> 604 <article class="article-card fade-up"> 605 <div class="article-thumb" style="background:linear-gradient(135deg,#12265E,#1E3A7A)"><span class="article-category">Cyber Risk</span><div class="article-thumb-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg></div></div> 606 <div class="article-body"><div class="article-date">25 January 2026</div><h3>Singapore SMEs Are Prime Targets for Cyber Attacks â Is Your Business Protected?</h3><p>CSA data shows SMEs account for a growing share of ransomware attacks. We break down why cyber liability insurance is no longer optional.</p><span class="read-more">Read Article â</span></div> 607 </article> 608 <article class="article-card fade-up"> 609 <div class="article-thumb" style="background:linear-gradient(135deg,#12265E,#0C1A42)"><span class="article-category">Motor</span><div class="article-thumb-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h3l3 3v5h-6V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg></div></div> 610 <div class="article-body"><div class="article-date">12 January 2026</div><h3>Understanding NCD in Singapore: How to Protect Your 50% Savings</h3><p>Your No-Claims Discount can save up to 50%. We explain how it works, what causes you to lose it, and whether NCD protection is worth the cost.</p><span class="read-more">Read Article â</span></div> 611 </article> 612 <article class="article-card fade-up"> 613 <div class="article-thumb" style="background:linear-gradient(135deg,#1E3A7A,#12265E)"><span class="article-category">Business</span><div class="article-thumb-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2"/></svg></div></div> 614 <div class="article-body"><div class="article-date">3 January 2026</div><h3>WICA 2025 Updates: Revised Compensation Limits for Employers</h3><p>The Work Injury Compensation Act has revised claim limits. We outline the key changes and what employers must do to stay compliant.</p><span class="read-more">Read Article â</span></div> 615 </article> 616 <article class="article-card fade-up"> 617 <div class="article-thumb" style="background:linear-gradient(135deg,#0C1A42,#12265E)"><span class="article-category">Guide</span><div class="article-thumb-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/></svg></div></div> 618 <div class="article-body"><div class="article-date">18 December 2025</div><h3>Broker vs Agent: Understanding the Difference and Why It Matters</h3><p>Many Singaporeans don't know the difference. We explain the key distinctions and why working with a broker
618can get you better coverage.</p><span class="read-more">Read Article â</span></div> 619 </article> 620 </div> 621 </div> 622</section> 623 624</main> 625 626 627 628 </div> 629 630 631 632 633 </div> 634 635 636 637 638 </main> 639 <h3 class="z-50 bg-green-500 px-4 py-2 text-md rounded-md text-white drop-shadow-md fixed top-4 right-4 hidden -translate-y-32 transition ease-in-out duration-500 max-w-md" 640 id="message-success"></h3> 641 <h3 class="z-50 bg-red-600 px-4 py-2 text-md rounded-md text-white drop-shadow-md fixed top-4 right-4 hidden -translate-y-32 transition ease-in-out duration-500 max-w-md" 642 id="message-error"></h3> 643 <div id="profitjs"></div> 644 <div> 645 646 647 648<div id="page-footer" 649 650 651 data-node-type="segment" 652 data-template-id="7443419814620418048" 653 data-node-key="footer"> 654 655 656 657 658 <!-- component could be deleted but still the ID maybe present in the template. --> 659 660 661 662 <div data-select-key="footer" data-node-type="block" data-node-key="footer" data-component-id="7443422698934419456" data-select-type="block" > 663 664 665 666 667 <footer class="site-footer" role="contentinfo"> 668 <div class="container"> 669 <div class="footer-grid"> 670 <div class="footer-brand"> 671 <img src="data:image/png;base64,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" alt="Ivan Insurance Brokers Pte Ltd" style="max-width:240px;height:auto;margin-bottom:4px;"> 672 <p>A Singapore MAS Licensed Direct Insurance Broker providing expert, unbiased advice and comprehensive coverage solutions since 1993. Proud member of the Steadfast Group.</p> 673 <a href="https://eservices.mas.gov.sg/fid/institution/detail/239564-IVAN-INSURANCE-BROKERS-PTE-LTD" target="_blank" rel="noopener noreferrer" class="mas-badge" style="color: white; border-color: rgba(255,255,255,0.3); background: rgba(255,255,255,0.1);"> 674 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg> 675 MAS Registered Direct Insurance Broker 676 </a> 677 <div class="social-icons footer-social" style="display: flex; gap: 12px; margin-top: 16px;"> 678 <a href="https://www.facebook.com/ivaninsurance" target="_blank" rel="noopener noreferrer" class="social-icon" aria-label="Facebook"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z"/></svg></a> 679 <a href="https://www.instagram.com/ivaninsurance" target="_blank" rel="noopener noreferrer" class="social-icon" aria-label="Instagram"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="20" rx="5"/><path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z"/><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/></svg></a> 680 <a href="https://www.linkedin.com/company/ivan-insurance-brokers" target="_blank" rel="noopener noreferrer" class="social-icon" aria-label="LinkedIn"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-4 0v7h-4v-7a6 6 0 016-6zM2 9h4v12H2zM4 6a2 2 0 110-4 2 2 0 010 4z"/></svg></a> 681 </div> 682 </div> 683 <div class="footer-col"> 684 <h4>Quick Links</h4> 685 <a href="/">Home</a> 686 <a href="/about">About Us</a> 687 <a href="/products">Products</a> 688 <a href="/#buy-online">Buy Online</a> 689 <a href="/claims">Claims</a> 690 <a href="/#partners">Our Partners</a> 691 <a href="/articles">Articles</a> 692 <a href="/contact">Get a Quote</a> 693 </div> 694 <div class="footer-col"> 695 <h4>Buy Online</h4> 696 <a href="/#buy-online">Travel Insurance</a> 697 <a href="/#buy-online">Home Insurance</a> 698 <a href="/#buy-online">Personal Accident</a> 699 <a href="/#buy-online">Maid Insurance</a> 700 <h4 style="margin-top:20px;">More Products</h4> 701 <a href="/products#product-project">Project Insurance</a> 702 <a href="/products#product-pi">Professional Indemnity</a> 703 <a href="/products#product-do">Directors & Officers</a> 704 <a href="/products#product-wica">WICA</a> 705 </div> 706 <div class="footer-col"> 707 <h4>Contact</h4> 708 <a href="/contact">22 Sin Ming Lane, #06-71<br>Midview City, S(573969)</a> 709 <a href="tel:+6564400220">+65 6440 0220</a> 710 <a href="mailto:[email protected]">[email protected]</a> 711 <a href="mailto:[email protected]">[email protected] (Claims)</a> 712 <a href="https://wa.me/6591590039" target="_blank" rel="noopener noreferrer">WhatsApp: 9159 0039</a> 713 <a href="https://crm.ivaninsurance.com" target="_blank" rel="noopener noreferrer" class="footer-crm-link" style="display:inline-flex; align-items:center; gap:6px;"> 714 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 16px; height: 16px;"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg> 715 IIB CRM Portal â 716 </a> 717 </div> 718 </div> 719 <div class="footer-bottom">
720 <span>© 2026 Ivan Insurance Brokers Pte Ltd. All rights reserved.</span> 721 <span>UEN: 201811693C · <a href="https://eservices.mas.gov.sg/fid/institution/detail/239564-IVAN-INSURANCE-BROKERS-PTE-LTD" target="_blank" rel="noopener noreferrer" style="color:rgba(255,255,255,0.7);text-decoration:underline;">MAS Registered Insurance Broker</a></span> 722 </div> 723 </div> 724</footer> 725 726<!-- ââââââââ AI CHATBOT ââââââââ --> 727<button class="chatbot-fab" id="chatbotFab" aria-label="Ask Ivan" onclick="toggleChatbot()"> 728 <svg class="fab-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:24px; height:24px;"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/><circle cx="9" cy="10" r="1" fill="currentColor"/><circle cx="15" cy="10" r="1" fill="currentColor"/></svg> 729 <svg class="fab-close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:24px; height:24px;"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> 730</button> 731 732<div class="chatbot-panel" id="chatbotPanel"> 733 <div class="chatbot-header"> 734 <div class="chatbot-header-avatar"> 735 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:20px; height:20px;"><path d="M12 2a7 7 0 017 7v1a7 7 0 01-14 0V9a7 7 0 017-7z"/><path d="M5 12v2a7 7 0 0014 0v-2"/><circle cx="9" cy="10" r="1" fill="currentColor"/><circle cx="15" cy="10" r="1" fill="currentColor"/></svg> 736 </div> 737 <div class="chatbot-header-info"> 738 <h4>Ask Ivan</h4> 739 <span>Your Insurance AI Assistant</span> 740 </div> 741 </div> 742 <div class="chatbot-messages" id="chatMessages"> 743 <div class="chat-msg bot"> 744 <div class="chat-avatar">ð¡ï¸</div> 745 <div> 746 <div class="chat-bubble">Hi! I'm Ivan, your AI insurance assistant. I can help with questions about coverage, claims, and our services. How can I help you today?</div> 747 <div class="chat-quick-btns"> 748 <button class="chat-quick-btn" onclick="sendQuickMsg('What types of insurance do you offer?')">Your products</button> 749 <button class="chat-quick-btn" onclick="sendQuickMsg('How do I file a claim?')">File a claim</button> 750 <button class="chat-quick-btn" onclick="sendQuickMsg('Can I buy insurance online?')">Buy online</button> 751 <button class="chat-quick-btn" onclick="sendQuickMsg('What makes a broker different from an agent?')">Broker vs agent</button> 752 </div> 753 </div> 754 </div> 755 </div> 756 <div class="chatbot-input-area"> 757 <input type="text" class="chatbot-input" id="chatInput" placeholder="Type your question..." onkeydown="if(event.key==='Enter')sendChatMsg()"> 758 <button class="chatbot-send" id="chatSend" onclick="sendChatMsg()" aria-label="Send message"> 759 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:18px; height:18px;"><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></svg> 760 </button> 761 </div> 762</div> 763 764<!-- Floating WhatsApp --> 765<a href="https://wa.me/6591590039" class="wa-float" target="_blank" rel="noopener noreferrer" aria-label="Chat with us on WhatsApp"> 766 <svg viewBox="0 0 24 24" fill="currentColor" style="width:28px; height:28px;"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg> 767</a> 768<div class="wa-float-tooltip">WhatsApp: 9159 0039</div> 769 770<!-- ââââââââ SCRIPTS ââââââââ -->
771<script> 772// ââ Centralised Config ââ 773const CONFIG = { 774 whatsapp: '6591590039', 775 phone: '+6564400220', 776 email: '[email protected]', 777 address: '22 Sin Ming Lane, #06-71, Midview City, Singapore 573969' 778}; 779 780// Apply WhatsApp links 781document.querySelectorAll('a[href*="wa.me"]').forEach(el => { 782 el.href = 'https://wa.me/' + CONFIG.whatsapp; 783}); 784 785// ââ Mobile menu ââ 786function toggleMenu() { 787 const btn = document.querySelector('.hamburger'); 788 const nav = document.getElementById('mobileNav'); 789 const isOpen = nav.classList.toggle('open'); 790 btn.classList.toggle('open'); 791 btn.setAttribute('aria-expanded', isOpen); 792 document.body.style.overflow = isOpen ? 'hidden' : ''; 793} 794function closeMenu() { 795 document.querySelector('.hamburger').classList.remove('open'); 796 document.getElementById('mobileNav').classList.remove('open'); 797 document.querySelector('.hamburger').setAttribute('aria-expanded', 'false'); 798 document.body.style.overflow = ''; 799} 800 801// ââ Scroll-reveal ââ 802function initScrollReveal() { 803 const observer = new IntersectionObserver((entries) => { 804 entries.forEach(entry => { 805 if (entry.isIntersecting) { entry.target.classList.add('visible'); observer.unobserve(entry.target); } 806 }); 807 }, { threshold: 0.08, rootMargin: '0px 0px -30px 0px' }); 808 document.querySelectorAll('.fade-up').forEach(el => observer.observe(el)); 809} 810 811if (document.readyState === 'loading') { 812 document.addEventListener('DOMContentLoaded', initScrollReveal); 813} else { 814 initScrollReveal(); 815} 816 817// ââââââââââââââââââââââââââââââââââââââââââââââ 818// EXPANDABLE PRODUCT CARDS 819// ââââââââââââââââââââââââââââââââââââââââââââââ 820function initProductsGrid() { 821 const PRODUCTS = [ 822 { id:'product-project', icon:'<path d="M2 20h20"/><path d="M5 20V10l7-5 7 5v10"/><path d="M9 20v-5h6v5"/>', title:'Project Insurance', desc:'End-to-end coverage for construction & engineering projects.' }, 823 { id:'product-pi', icon:'<path d="M20 7h-9"/><path d="M14 17H5"/><circle cx="17" cy="17" r="3"/><circle cx="7" cy="7" r="3"/>', title:'Professional Indemnity', desc:'Protection against negligence, errors, or misconduct claims.' }, 824 { id:'product-do', icon:'<path d="M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/>', title:'Directors & Officers', desc:'Shielding leadership from personal liability.' }, 825 { id:'product-bond', icon:'<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/>', title:'Performance Bonds', desc:'Surety bonds that preserve your working capital.' }, 826 { id:'product-eb', icon:'<path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/>', title:'Employee Benefits', desc:'Group medical, dental, and life cover for your team.' }, 827 { id:'product-liability', icon:'<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>', title:'Liability Insurance', desc:'Public, product, and events liability under one umbrella.' }, 828 { id:'product-cyber', icon:'<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>', title:'Cyber Insurance', desc:'Data breach, ransomware, and cyber liability protection.' }, 829 { id:'product-wica', icon:'<path d="M22 12h-4l-3 9L9 3l-3 9H2"/>', title:'Work Injury Compensation', desc:'Mandatory WICA coverage for all employers in Singapore.' }, 830 { id:'product-fwm', icon:'<path d="M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><line x1="19" y1="8" x2="19" y2="14"/><line x1="22" y1="11" x2="16" y2="11"/>', title:'Foreign Worker Medical', desc:'Medical insurance for Work Permit & S Pass holders.' }, 831 { id:'product-auto', icon:'<rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h3l3 3v5h-6V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/>', title:'Auto & Home', desc:'Motor and property insurance for personal assets.', buyOnline:true }, 832 { id:'product-biz', icon:'<rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2"/>', title:'Business Insurance', desc:'Fire, liability, interruption â all under one broker.' }, 833 { id:'product-maid', icon:'<path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/>', title:'Maid Insurance', desc:'MOM-required coverage for foreign domestic workers.', buyOnline:true }, 834 { id:'product-travel', icon:'<circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/>', title:'Travel Insurance', desc:'Medical, cancellation, and baggage cover worldwide.', buyOnline:true }, 835 ]; 836 837 const grid = document.getElementById('productsGrid'); 838 const expandContainer = document.getElementById('expandContainer'); 839 if(!grid || !expandContainer) return; 840 let activeId = null; 841
842 PRODUCTS.forEach(p => { 843 const card = document.createElement('div'); 844 card.className = 'product-card'; 845 card.setAttribute('data-target', p.id); 846 card.setAttribute('role', 'button'); 847 card.setAttribute('tabindex', '0'); 848 card.setAttribute('aria-expanded', 'false'); 849 card.innerHTML = '<div class="service-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' + p.icon + '</svg></div><h3>' + p.title + (p.buyOnline ? '<span class="buy-badge"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>Buy Online</span>' : '') + '</h3><p>' + p.desc + '</p><span class="card-arrow">View Details â</span>'; 850 card.addEventListener('click', () => toggleProduct(p.id)); 851 card.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleProduct(p.id); }}); 852 grid.appendChild(card); 853 }); 854 855 const expandWra
855p = document.createElement('div'); 856 expandWrap.className = 'product-expand-wrap'; 857 expandWrap.id = 'productExpandWrap'; 858 expandWrap.innerHTML = '<div class="product-expand-inner" id="productExpandInner"><button class="close-panel" aria-label="Close details" onclick="window._closeProduct()">â</button><div id="productExpandContent"></div></div>'; 859 expandContainer.appendChild(expandWrap); 860 861 function toggleProduct(id) { 862 const wrap = document.getElementById('productExpandWrap'); 863 const content = document.getElementById('productExpandContent'); 864 const allCards = grid.querySelectorAll('.product-card'); 865 866 if (activeId === id) { 867 wrap.classList.remove('open'); 868 allCards.forEach(c => { c.classList.remove('active'); c.setAttribute('aria-expanded', 'false'); }); 869 activeId = null; 870 return; 871 } 872 873 const sourceBlock = document.getElementById(id); 874 if (!sourceBlock) return; 875 876 content.innerHTML = sourceBlock.innerHTML; 877 878 allCards.forEach(c => { 879 const isTarget = c.getAttribute('data-target') === id; 880 c.classList.toggle('active', isTarget); 881 c.setAttribute('aria-expanded', isTarget ? 'true' : 'false'); 882 }); 883 884 const targetCard = grid.querySelector('[data-target="' + id + '"]'); 885 const cardTop = targetCard.offsetTop; 886 const rowCards = Array.from(allCards).filter(c => Math.abs(c.offsetTop - cardTop) < 5); 887 const lastInRow = rowCards[rowCards.length - 1]; 888 889 if (lastInRow.nextElementSibling !== wrap) { 890 lastInRow.after(wrap); 891 } 892 893 if (!wrap.classList.contains('open')) { 894 wrap.classList.add('open'); 895 } 896 897 activeId = id; 898 899 setTimeout(() => { 900 wrap.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); 901 }, 100); 902 } 903 904 window._closeProduct = function() { 905 const wrap = document.getElementById('productExpandWrap'); 906 wrap.classList.remove('open'); 907 grid.querySelectorAll('.product-card').forEach(c => { c.classList.remove('active'); c.setAttribute('aria-expanded', 'false'); }); 908 activeId = null; 909 }; 910} 911 912if (document.readyState === 'loading') { 913 document.addEventListener('DOMContentLoaded', initProductsGrid); 914} else { 915 initProductsGrid(); 916} 917 918// ââââââââââââââââââââââââââââââââââââââââââââââ 919// CLAIMS TABS 920// ââââââââââââââââââââââââââââââââââââââââââââââ 921function initClaimsTabs() { 922 const CLAIMS = [ 923 { id:'project', title:'Project Insurance', tag:'CAR / EAR', 924 icon:'<path d="M2 20h20"/><path d="M5 20V10l7-5 7 5v10"/><path d="M9 20v-5h6v5"/>', 925 steps:['Notify us and the insurer within 24â48 hours of the incident','Do NOT move or repair damaged works until the loss adjuster has inspected (unless to prevent further damage)','Secure the site and take detailed photos/videos from multiple angles','Prepare a written incident report â what happened, when, which sections affected','Obtain contractor/sub-contractor statements and witness accounts','Cooperate with the loss adjuster during their site inspection'], 926 docs:['Completed claim form','Police report (if theft, vandalism, or third-party involvement)','Incident/site report with date, time, location, description','Photos and videos of damage','Repair/reinstatement quotations','Contract documents showing insured values','Third-party claim letters (if liability section triggered)'],
927 tips:['Notify immediately â delayed notification is the #1 reason claims are disputed','Never authorise repairs before the adjuster visits unless to mitigate further loss','Keep all damaged materials on site for inspection','Separate insured repair costs from normal project costs clearly'] 928 }, 929 { id:'pi', title:'Professional Indemnity', tag:'PI Claims', 930 icon:'<path d="M20 7h-9"/><path d="M14 17H5"/><circle cx="17" cy="17" r="3"/><circle cx="7" cy="7" r="3"/>', 931 steps:['Notify us immediately upon receiving any claim letter, demand, or complaint â even if unfounded','Do NOT admit liability, make settlement offers, or respond to the claimant without insurer approval','Gather all project files, correspondence, contracts, and deliverables','Prepare a detailed timeline of events leading to the alleged error','Cooperate fully with the insurer\'s appointed solicitors'], 932 docs:['Completed claim form','Demand letter or formal complaint received','Your engagement letter/contract with the client','All correspondence relating to the matter','Project files, reports, or deliverables in question','Your written account of events'], 933 tips:['PI policies are "claims-made" â report in the policy period you first become aware','Never admit fault, even informally via email or WhatsApp','Report potential claims too â if you suspect a client may claim, notify us early','Late notification can void your coverage entirely'] 934 }, 935 { id:'do', title:'Directors & Officers', tag:'D&O', 936 icon:'<path d="M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/>', 937 steps:['Notify us as soon as any director/officer becomes aware of a claim, investigation, or regulatory proceeding','Do NOT engage external lawyers or incur defence costs without insurer\'s prior written consent','Preserve all board minutes, resolutions, and internal communications','Prepare a factual summary and identify all individuals named','Follow the insurer\'s directions for legal defence coordination'], 938 docs:['Completed claim form','Claim letter, writ, or regulatory notice','Board meeting minutes related to the decision','Relevant financial statements','Company Articles of Association','List of all directors and officers with roles'], 939 tips:['D&O is claims-made â report circumstances immediately, even before formal action','Defence costs erode the policy limit â monitor legal spend closely','Side A coverage is critical when the company cannot indemnify','Ensure all directors are aware of notification obligations'] 940 }, 941 { id:'bond', title:'Performance Bonds', tag:'Surety', 942 icon:'<path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/>', 943 steps:['Notify us immediately if the beneficiary issues a demand on the bond','Do NOT ignore bond call letters â strict timelines apply','Gather all evidence that contractual obligations have been met','Provide written grounds for disputing the bond call, if applicable','Work with us and the insurer to respond within the stipulated timeframe'], 944 docs:['Bond call / demand letter','Original bond instrument','Main contract and variation orders','Progress reports and payment certificates','Correspondence with the beneficiary','Evidence of contract performance / completion'], 945 tips:['Bond calls are time-sensitive â delayed response may result in automatic payment','Maintain proper project documentation throughout the contract','Communicate proactively with the project owner to resolve disputes before a bond call','Unconditional bonds can be called without proving default â prevention is key'] 946 }, 947 { id:'eb', title:'Employee Benefits', tag:'Group Medical / Life', 948 icon:'<path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/>',
949 steps:['For hospitalisation â use the insurer\'s Letter of Guarantee for cashless admission; contact us to arrange','For outpatient/GP claims â submit receipts within 30 days of treatment','For life/AD&D claims â notify us within 14 days','Complete the relevant claim form with supporting medical documentation','HR to submit claims via the insurer portal or through us'], 950 docs:['Completed claim form (hospitalisation / outpatient / life)','Original medical receipts and invoices','Medical report or discharge summary','Specialist referral letter (if required)','Death certificate and cause of death (for life claims)','Employee NRIC or Work Permit details'], 951 tips:['Check if the hospital is a panel hospital â cashless admission saves time','Pre-authorisation is required for elective surgery â apply before admission','Keep original receipts; photocopies generally not accepted','Claims beyond the policy limit are the employee\'s responsibility'] 952 }, 953 { id:'liability', title:'Liability Insurance', tag:'Public / Product / Events', 954 icon:'<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>', 955 steps:['Notify us immediately â do not wait for a formal demand letter','Do NOT admit liability, apologise in a way that admits fault, or offer compensation directly','Secure the scene (especially for public liability) and take detailed photos','Obtain witness contact details and written statements','If anyone is injured, ensure medical attention and record details','File a police report if bodily injury, significant damage, or potential legal action'], 956 docs:['Completed claim form','Incident report (date, time, location, what happened)','Photos/videos of scene, injuries, or damage','Police report (if applicable)','Witness statements with contact details','Third-party demand letters','Medical bills / repair invoices from the injured party'], 957 tips:['Verbal apologies can be used against you in court â stick to factual statements','Preserve CCTV footage immediately â many systems auto-delete within 7â14 days','For product liability â retain the defective product and batch records','Events liability: report even minor incidents â they may escalate'] 958 }, 959 { id:'cyber', title:'Cyber Insurance', tag:'Data Breach / Ransomware', 960 icon:'<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>', 961 steps:['Contact us IMMEDIATELY â time is critical (ideally within hours)','Do NOT pay ransom, communicate with hackers, or attempt fixes without expert guidance','Isolate affected systems to prevent spread but do NOT power off (preserves forensic evidence)','Activate your breach response plan; the insurer can deploy specialist incident response','Determine if personal data is compromised â PDPA notification may be required within 3 days','Document the timeline, actions taken, and all communications'], 962 docs:['Completed claim form','Incident timeline (when discovered, actions taken)','IT forensic report (insurer typically appoints specialists)','Evidence of attack (screenshots, ransom notes, logs)','List of affected systems and data','PDPC notification records (if breach threshold met)','Business interruption calculations'], 963 tips:['First 24 hours are critical â late notification worsens outcomes and may affect coverage','Do NOT wipe or rebuild systems before forensic investigation','Keep communication off compromised systems (use personal phones or new email)','PDPA mandatory notification to PDPC if significant harm is likely â 3-day clock starts at assessment'] 964 }, 965 { id:'wica', title:'Work Injury Compensation', tag:'WICA', 966 icon:'<path d="M22 12h-4l-3 9L9 3l-3 9H2"/>', 967 steps:['Provide immediate medical attention to the injured employee','Report the work injury to MOM within 10 days (24 hours if fatal or hospitalisation 24+ hours)','Notify us and the WICA insurer promptly','Maintain records of medical leave and treatment progress','Cooperate with MOM and the insurer during assessment'], 968 docs:['Completed WICA claim form','MOM incident report (Form IR1 via iReport)','Medical certificate and medical report','Work Permit / S Pass details','Wage records for 12 months preceding the injury','Incident report describing how the injury occurred','Hospital bills and receipts'], 969 tips:['Late reporting to MOM is an offence â the 10-day deadline is strict','Do not terminate the employee while the claim is being processed','Temporary incapacity compensation must be paid on pay day â insurer reimburses you','Track total MC days â this determines compensation amount'] 970 }, 971 { id:'fwm', title:'Foreign Worker Medical', tag:'Work Permit / S Pass', 972 icon:'<path d="M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><line x1="19" y1="8" x2="19" y2="14"/>
972<line x1="22" y1="11" x2="16" y2="11"/>', 973 steps:['Bring the worker to a panel clinic or nearest hospital','Use the insurer\'s card or Letter of Guarantee for cashless admission','Collect all medical bills, receipts, and discharge summary','Complete and submit claim form within 30 days','Contact us if the bill is expected to exceed the policy limit'], 974 docs:['Completed claim form','Original medical bills and receipts','Medical report or discharge summary','Worker\'s Work Permit / S Pass details','Employer\'s company details and policy number'], 975 tips:['MOM requires minimum S$15,000/year coverage â check limits before renewal','Use panel hospitals for cashless treatment','Non-work-related conditions are also covered (unlike WICA â work injuries only)','Keep the policy active for the entire Work Permit duration'] 976 }, 977 { id:'auto', title:'Motor Insurance', tag:'Auto Claims', 978 icon:'<rect x="1" y="3" width="15" height="13" rx="2"/><path d="M16 8h3l3 3v5h-6V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/>', 979 steps:['Ensure safety first â call 995 for ambulance if anyone is injured','Do NOT move vehicles until details are exchanged (unless dangerously obstructing traffic)','Exchange particulars: NRIC, vehicle number, insurance details, licence','Take photos of all vehicles, damage, road conditions from multiple angles','File a police report within 24 hours if injury, government property damage, foreign vehicle, or hit-and-run','Report to us within 24 hours â we will arrange an authorised workshop if needed'], 980 docs:['Completed motor claim form (GIA report / Singapore Accident Statement)','Police report (mandatory in many situations)','Photos of all vehicles and the accident scene','NRIC and driving licence of all drivers','Other party\'s insurance details and vehicle registration','Workshop repair estimate','Medical bills (if personal accident claim)'], 981 tips:['Never admit fault at the scene â casual remarks can be used against you','File an Accident Statement at an authorised reporting centre within 24 hours','Use authorised workshops to protect your NCD','Do NOT sign private settlements without consulting us first'] 982 }, 983 { id:'home', title:'Home Insurance', tag:'Property', 984 icon:'<path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/>', 985 steps:['Ensure safety â evacuate if necessary','Call 995 for fire or 999 for police if fire, flood, or break-in','Take photos/videos of all damage before clean-up or repairs','Make reasonable temporary repairs to prevent further damage â keep receipts','Notify us within 24 hours','Do NOT dispose of damaged items until the adjuster has reviewed them'], 986 docs:['Completed claim form','Police report (for burglary, theft, vandalism)','Photos of damage to building and/or contents','Purchase receipts or proof of ownership for damaged items','Repair or replacement quotations','Tenancy agreement (if applicable)'], 987 tips:['Home contents cover is separate from building cover â check which you have','Items stored outside the home may not be covered','Keep an inventory of valuables with photos and receipts','Water damage from plumbing is generally covered; gradual wear and tear is not'] 988 }, 989 { id:'biz', title:'Business Insurance', tag:'Fire / BI', 990 icon:'<rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 7V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v2"/>', 991 steps:['Secure premises and ensure safety of staff and visitors','Call SCDF (995) for fire or 999 for police','Take extensive photos/videos of all damage','Protect undamaged property from further loss â keep mitigation receipts','Notify us within 24 hours with initial loss estimate','For Business Interruption â track all lost revenue and additional costs from day one'], 992 docs:['Completed claim form','Police or SCDF report','Photos/videos of damage','Financial records (P&L, revenue data) for BI claims','Repair quotations from at least 2 contractors','Inventory of damaged stock with values','Proof of additional expenses to continue operations'], 993 tips:['Under-insurance triggers the Average Clause â insure for full value','Business Interruption requires solid financial records','Temporary relocation costs may be covered â ask before committing','Review declared values at every renewal'] 994 }, 995 { id:'maid', title:'Maid Insurance', tag:'FDW', 996 icon:'<path d="M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/>', 997 steps:['Bring your helper to the nearest clinic or hospital immediately','For hospital
997isation â contact us to arrange Letter of Guarantee (cashless admission)','Collect all medical receipts and discharge summary','Complete and submit claim form within 30 days','For personal accident claims â provide medical report confirming nature and extent of injury'], 998 docs:['Completed claim form','Original medical bills and receipts','Medical report / discharge summary','Helper\'s Work Permit and FIN details','Police report (for third-party accidents)','Death certificate (for fatal accident claims)'], 999 tips:['MOM requires min. S$60,000 PA and S$15,000 medical per year â confirm your limits','Outpatient coverage varies by plan â check before visiting a GP','Report serious injuries to MOM as required under EFMA','Keep the policy active throughout the helper\'s employment'] 1000 }, 1001 { id:'travel', title:'Travel Insurance', tag:'Overseas', 1002 icon:'<circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/>', 1003 steps:['For medical emergencies â call the insurer\'s 24/7 assistance hotline immediately','Seek medical treatment â the assistance company can coordinate direct billing','For trip cancellation â notify us before the scheduled departure date','For lost/stolen baggage â report to airline AND file police report within 24 hours','For travel delays â obtain written confirmation from the airline','Keep ALL original receipts for expenses incurred'], 1004 docs:['Completed claim form','Original medical bills and receipts (translated to English if needed)','Medical report from the treating doctor','Police report (for theft, loss, robbery)','Airline delay confirmation or Property Irregularity Report','Trip cancellation evidence','Boarding passes and itinerary','Purchase receipts for lost items'], 1005 tips:['Always carry the 24/7 hotline number and your policy number when travelling','Pre-existing conditions are typically excluded â declare them at purchase','File baggage claims with the airline BEFORE leaving the airport','Claims must typically be filed within 30 days of return'] 1006 }, 1007 ]; 1008 1009 const tabsEl = document.getElementById('claimsTabs'); 1010 const panelsEl = document.getElementById('claimPanels'); 1011 if (!tabsEl || !panelsEl) return; 1012 1013 CLAIMS.forEach((c, i) => { 1014 const tab = document.createElement('div'); 1015 tab.className = 'claim-tab' + (i === 0 ? ' active' : ''); 1016 tab.setAttribute('data-id', c.id); 1017 tab.setAttribute('role', 'button'); 1018 tab.setAttribute('tabindex', '0'); 1019 tab.innerHTML = '<div class="ct-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' + c.icon + '</svg></div><h4>' + c.title + '</h4>'; 1020 tab.addEventListener('click', () => showClaim(c.id)); 1021 tab.addEventListener('keydown', (e) => { if(e.key==='Enter'||e.key===' '){e.preventDefault();showClaim(c.id)} }); 1022 tabsEl.appendChild(tab); 1023 1024 const panel = document.createElement('div'); 1025 panel.className = 'claim-panel' + (i === 0 ? ' active' : ''); 1026 panel.id = 'cp-' + c.id; 1027 const stepsH = c.steps.map(s => '<li>' + s + '</li>').join(''); 1028 const docsH = c.docs.map(d => '<li>' + d + '</li>').join(''); 1029 const tipsH = c.tips.map(t => '<li>' + t + '</li>').join(''); 1030 panel.innerHTML = '<div class="claim-card"><h3>' + c.title + '</h3><span class="claim-tag-label">' + c.tag + '</span><div class="claim-cols"><div class="claim-col"><h4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 11 12 14 22 4"/><path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"/></svg> Key Steps</h4><ol class="claim-num-list">' + stepsH + '</ol></div><div class="claim-col"><h4><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><polyline points="14 2 14 8 20 8"/></svg> Documents Required</h4><ul class="claim-doc-list">' + docsH + '</ul></div></div><div class="claim-tips-box"><h4>â ï¸ Important Reminders</h4><ul>' + tipsH + '</ul></div><div class="claim-wa-cta"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.
1030198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z"/></svg><div><p><strong>Not sure what to do?</strong> WhatsApp us or email <a href="mailto:[email protected]" style="color:var(--primary);font-weight:600;">[email protected]</a> â we\'ll guide you step by step.</p><a href="https://wa.me/6591590039?text=Hi%2C%20I%20need%20help%20with%20a%20' + encodeURIComponent(c.title) + '%20claim." target="_blank" rel="noopener noreferrer">WhatsApp Us About This Claim â</a></div></div></div>'; 1031 panelsEl.appendChild(panel); 1032 }); 1033 1034 function showClaim(id) { 1035 document.querySelectorAll('.claim-tab').forEach(t => t.classList.toggle('active', t.getAttribute('data-id') === id)); 1036 document.querySelectorAll('.claim-panel').forEach(p => p.classList.toggle('active', p.id === 'cp-' + id)); 1037 const panel = document.getElementById('cp-' + id); 1038 if (panel) setTimeout(() => panel.scrollIntoView({ behavior: 'smooth', block: 'nearest' }), 50); 1039 } 1040} 1041 1042if (document.readyState === 'loading') { 1043 document.addEventListener('DOMContentLoaded', initClaimsTabs); 1044} else { 1045 initClaimsTabs(); 1046} 1047 1048// ââ Active nav ââ 1049function initActiveNav() { 1050 const currentPath = window.location.pathname; 1051 const navLinks = document.querySelectorAll('.nav-links a:not(.nav-cta):not(.nav-cta-buy)'); 1052 navLinks.forEach(a => { 1053 a.classList.remove('active'); 1054 if (a.getAttribute('href') === currentPath) a.classList.add('active'); 1055 }); 1056} 1057initActiveNav(); 1058 1059// ââ Form handler ââ 1060function handleFormSubmit(e) { 1061 e.preventDefault(); 1062 const form = e.target; 1063 const data = new FormData(form); 1064 let msg = 'Hi, I\'d like a quote for *' + data.get('insurance_type') + '*.%0A'; 1065 msg += 'Name: ' + data.get('name') + '%0A'; 1066 if (data.get('company')) msg += 'Company: ' + data.get('company') + '%0A'; 1067 msg += 'Email: ' + data.get('email') + '%0A'; 1068 msg += 'Phone: ' + data.get('phone') + '%0A'; 1069 if (data.get('sum_insured')) msg += 'Sum Insured: ' + data.get('sum_insured') + '%0A'; 1070 if (data.get('details')) msg += 'Details: ' + data.get('details'); 1071 1072 const btn = form.querySelector('.form-submit'); 1073 btn.innerHTML = 'â Enquiry Submitted â Thank You!'; 1074 btn.style.background = 'var(--success)'; 1075 btn.style.color = '#fff'; 1076 btn.disabled = true; 1077 1078 setTimeout(() => { 1079 const sendViaWA = confirm('Thank you for your enquiry! Would you also like to send this via WhatsApp for a faster response?'); 1080 if (sendViaWA) { 1081 window.open('https://wa.me/' + CONFIG.whatsapp + '?text=' + msg, '_blank'); 1082 } 1083 }, 800); 1084} 1085 1086// ââââââââââââââââââââââââââââââââââââââââââââââ 1087// HERO CAROUSEL 1088// ââââââââââââââââââââââââââââââââââââââââââââââ 1089function initHeroCarousel() { 1090 const cards = document.querySelectorAll('.hero-stat-card'); 1091 const dots = document.querySelectorAll('.hero-dot'); 1092 if (!cards.length || !dots.length) return; 1093 let currentSlide = 0; 1094 let autoInterval; 1095 1096 function animateNum(el) { 1097 if (!el || !el.dataset || !el.dataset.target) return; 1098 const target = parseInt(el.dataset.target); 1099 if (isNaN(target)) return; 1100 const duration = 1200; 1101 const start = performance.now(); 1102 function step(now) { 1103 const progress = Math.min((now - start) / duration, 1); 1104 const eased = 1 - Math.pow(1 - progress, 3); 1105 el.textContent = Math.floor(eased * target); 1106 if (progress < 1) requestAnimationFrame(step); 1107 } 1108 requestAnimationFrame(step); 1109 } 1110 1111 window.goToSlide = function(index) { 1112 if (index === currentSlide || !cards[index] || !cards[currentSlide]) return; 1113 cards[currentSlide].classList.remove('active'); 1114 cards[currentSlide].classList.add('exit'); 1115 if (dots[currentSlide]) dots[currentSlide].classList.remove('active'); 1116 1117 const prevSlide = currentSlide; 1118 setTimeout(() => { 1119 if (cards[prevSlide]) cards[prevSlide].classList.remove('exit'); 1120 currentSlide = index; 1121 if (cards[currentSlide]) { 1122 cards[currentSlide].classList.add('active'); 1123 const numEl = cards[currentSlide].querySelector('.hero-stat-num'); 1124 if (numEl) animateNum(numEl); 1125 } 1126 if (dots[currentSlide]) dots[currentSlide].classList.add('active'); 1127 }, 250); 1128 1129 resetAuto(); 1130 }; 1131 1132 function nextSlide() { 1133 if (cards.length > 0) goToSlide((currentSlide + 1) % cards.length); 1134 } 1135 1136 function resetAuto() { 1137 clearInterval(autoInterval); 1138 autoInterval = setInterval(nextSlide, 3500); 1139 } 1140 1141 if (cards[0]) { 1142 const firstNum = cards[0].querySelector('.hero-stat-num'); 1143 if (firstNum) animateNum(firstNum); 1144 } 1145 resetAuto(); 1146} 1147 1148if (document.readyState === 'loading') { 1149 document.addEventListener('DOMContentLoaded', initHeroCarousel); 1150} else { 1151 initHeroCarousel(); 1152} 1153 1154// ââââââââââââââââââââââââââââââââââââââââââââââ 1155// AI CHATBOT 1156// ââââââââââââââââââââââââââââââââââââââââââââââ 1157const CHATBOT_SYSTEM = 'You are the AI assistant for Ivan Insurance Brokers Pte Ltd, a MAS-l
1157icensed direct insurance broker in Singapore established in 1993.\n\nABOUT THE COMPANY:\n- MAS Registered Direct Insurance Broker (since 2021, previously general insurance agency since 1993)\n- Member of Steadfast Group (Australasia\'s largest general insurance broker network)\n- Address: 22 Sin Ming Lane, #06-71, Midview City, Singapore 573969\n- Phone: +65 6440 0220 | WhatsApp: +65 9159 0039\n- Email: [email protected] | Claims: [email protected]\n- UEN: 201811693C\n\nPRODUCTS OFFERED:\nCommercial: Project Insurance (CAR/EAR), Professional Indemnity, Directors & Officers (D&O), Performance Bonds, Employee Benefits, Liability Insurance (Public/Product/Events), Cyber Insurance, Work Injury Compensation (WICA), Foreign Worker Medical, Business Insurance (Fire/BI)\nPersonal: Motor, Home, Travel, Maid Insurance, Personal Accident\nBuy Online (instant): Travel, Home, Personal Accident, Maid Insurance\n\nKEY DIFFERENTIATOR:\nAs a BROKER (not an agent), we work independently for the client, comparing coverage across multiple insurers to find the best solution. Agents represent a single insurer.\n\nCLAIMS: Clients should email [email protected] or WhatsApp 9159 0039 for urgent claims.\n\nRULES:\n- Be friendly, helpful, and concise (2-3 sentences per response)\n- If asked for a quote, direct them to the quote form on the website or WhatsApp +65 9159 0039\n- Never make up policy details, prices, or coverage amounts\n- For complex questions, suggest they speak to the team directly\n- Always respond in a warm, professional tone\n- If asked about something outside insurance, politely redirect'; 1158 1159let chatHistory = []; 1160let chatbotOpen = false; 1161 1162function toggleChatbot() { 1163 chatbotOpen = !chatbotOpen; 1164 document.getElementById('chatbotFab').classList.toggle('open', chatbotOpen); 1165 document.getElementById('chatbotPanel').classList.toggle('open', chatbotOpen); 1166 if (chatbotOpen) setTimeout(() => document.getElementById('chatInput').focus(), 100); 1167} 1168 1169function sendQuickMsg(text) { 1170 document.getElementById('chatInput').value = text; 1171 sendChatMsg(); 1172} 1173 1174function addMessage(role, text) { 1175 const container = document.getElementById('chatMessages'); 1176 const msgDiv = document.createElement('div'); 1177 msgDiv.className = 'chat-msg ' + (role === 'assistant' ? 'bot' : 'user'); 1178 const avatar = document.createElement('div'); 1179 avatar.className = 'chat-avatar'; 1180 avatar.textContent = role === 'assistant' ? 'ð¡ï¸' : 'ð¤'; 1181 const bubble = document.createElement('div'); 1182 bubble.className = 'chat-bubble'; 1183 bubble.textContent = text; 1184 msgDiv.appendChild(avatar); 1185 msgDiv.appendChild(bubble); 1186 container.appendChild(msgDiv); 1187 container.scrollTop = container.scrollHeight; 1188} 1189 1190function addTypingIndicator() { 1191 const container = document.getElementById('chatMessages'); 1192 const msgDiv = document.createElement('div'); 1193 msgDiv.className = 'chat-msg bot'; 1194 msgDiv.id = 'typingIndicator'; 1195 const avatar = document.createElement('div'); 1196 avatar.className = 'chat-avatar'; 1197 avatar.textContent = 'ð¡ï¸'; 1198 const bubble = document.createElement('div'); 1199 bubble.className = 'chat-bubble'; 1200 bubble.innerHTML = '<div class="chat-typing"><span></span><span></span><span></span></div>'; 1201 msgDiv.appendChild(avatar); 1202 msgDiv.appendChild(bubble); 1203 container.appendChild(msgDiv); 1204 container.scrollTop = container.scrollHeight; 1205} 1206 1207function removeTypingIndicator() { 1208 const el = document.getElementById('typingIndicator'); 1209 if (el) el.remove(); 1210} 1211 1212async function sendChatMsg() { 1213 const input = document.getElementById('chatInput'); 1214 const sendBtn = document.getElementById('chatSend'); 1215 const text = input.value.trim(); 1216 if (!text) return; 1217 1218 addMessage('user', text); 1219 chatHistory.push({ role: 'user', content: text }); 1220 input.value = ''; 1221 sendBtn.disabled = true; 1222 addTypingIndicator(); 1223 1224 const quickBtns = document.querySelector('.chat-quick-btns'); 1225 if (quickBtns) quickBtns.remove(); 1226 1227 try { 1228 const response = await fetch('https://api.anthropic.com/v1/messages', { 1229 method: 'POST', 1230 headers: { 'Content-Type': 'application/json' }, 1231 body: JSON.stringify({ 1232 model: 'claude-sonnet-4-20250514', 1233 max_tokens: 1000, 1234 system: CHATBOT_SYSTEM, 1235 messages: chatHistory.slice(-10) 1236 }) 1237 }); 1238 const data = await response.json(); 1239 removeTypingIndicator(); 1240 if (data.content && data.content[0] && data.content[0].text) { 1241 const reply = data.content[0].text; 1242 addMessage('assistant', reply); 1243 chatHistory.push({ role: 'assistant', content: reply }); 1244 } else { 1245 addMessage('assistant', 'I apologise, I had trouble processing that. Please try again, or reach us directly on WhatsApp at +65 9159 0039.'); 1246 } 1247 } catch (err) { 1248 removeTypingIndicator(); 1249 addMessage('assistant', "I'm having trouble connecting right now. For immediate help, please WhatsApp us at +65 9159 0039 or email [email protected]."); 1250 } 1251 sendBtn.disabled = false;
1252 input.focus(); 1253} 1254</script>
1254 1255 1256 1257 1258 </div> 1259 1260 1261 1262 1263 1264 1265</div> 1266 1267 1268 1269 </div> 1270 1271 <div x-data="loginWidget" 1272 @auth:login-widget:open.window="open($event.detail?.formTitle || 'Login')"> 1273 <div class="relative z-50" 1274 x-show="show" 1275 aria-labelledby="login-widget-title" 1276 role="dialog" 1277 aria-modal="true" 1278 x-cloak> 1279 <div x-show="show" 1280 class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" 1281 x-transition.opacity.duration.300ms></div> 1282 <div class="fixed inset-0 z-50 w-screen overflow-y-auto"> 1283 <div class="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0"> 1284 <div x-show="show" 1285 x-transition:enter="ease-out duration-300" 1286 x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" 1287 x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100" 1288 x-transition:leave="ease-in duration-200" 1289 x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" 1290 x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" 1291 class="relative transform overflow-hidden rounded-lg bg-white px-4 pb-4 pt-5 text-left shadow-xl transition-all sm:my-8 w-full sm:max-w-lg sm:p-6"> 1292 <div> 1293 <div class="mt-3 text-center sm:mt-5"> 1294 <template x-if="currentTab === 'Login'"> 1295 <div> 1296 <h3 class="text-lg sm:text-xl font-semibold leading-6 text-gray-900" 1297 id="login-widget-title" 1298 x-text="formTitle"></h3> 1299 <p class="mt-2 text-sm text-gray-500">Don't have an account? We will create one for you.</p> 1300 <div class="mt-6"> 1301 <input :type="form.identityType" 1302 class="border px-3 py-2 w-full rounded-input border-border focus:border-primary focus:ring-primary sm:text-sm" 1303 x-model="form.identity" 1304 autocomplete="email" 1305 placeholder="Enter email to login"> 1306 </div> 1307 </div> 1308 </template> 1309 <template x-if="currentTab === 'Password'"> 1310 <div> 1311 <h3 class="text-lg sm:text-xl font-semibold leading-6 text-gray-900" 1312 id="login-widget-title">Enter OTP</h3> 1313 <p class="text-sm text-gray-500 mt-2"> 1314 Enter the OTP send to 1315 <strong x-text="form.identity"></strong> 1316 </p> 1317 <div class="mt-6"> 1318 <input type="password" 1319 class="border px-3 py-2 w-full rounded-input border-border focus:border-primary focus:ring-primary sm:text-sm" 1320 x-model="form.password" 1321 placeholder="Enter OTP"> 1322 <p class="text-sm text-gray-500 mt-1 text-left"> 1323 <button class="text-primary" 1324 @click.prevent="resendOTP" 1325 :disabled="!enableResendOTP">Resend OTP</button> 1326 in <span x-text="form.countDown"></span> 1327 seconds. Check your spam folder if you can't find email from us. 1328 </p> 1329 </div> 1330 </div> 1331 </template> 1332 </div> 1333 </div> 1334 <template x-if="form.error"> 1335 <p x-text="form.error" class="text-red-500 text-sm mt-3"></p> 1336 </template> 1337 <div class="mt-5 sm:mt-6 flex flex-col gap-3 sm:flex-row"> 1338 <button type="button" 1339 @click="show = false" 1340 class="btn btn-sm border border-gray-300 flex-1">Cancel</button> 1341 <button type="button" 1342 class="btn btn-sm btn-primary flex-1" 1343 :disabled="!enableSubmit" 1344 x-text="submitText" 1345 @click="submit"></button> 1346 </div> 1347 </div> 1348 </div> 1349 </div> 1350 </div> 1351</div> 1352 1353 1354 1355<div x-data="guestLoginWidget" 1356 @auth:guest-login-widget:open.window="open($event.detail?.formTitle, $event.detail?.formSubtitle)"> 1357 <div class="relative z-50" 1358 x-show="show" 1359 aria-labelledby="guest-login-widget-title" 1360 role="dialog" 1361 aria-modal="true" 1362 x-cloak> 1363 <div x-show="show" 1364 class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" 1365 x-transition.opacity.duration.300ms></div> 1366 <div class="fixed inset-0 z-50 w-screen overflow-y-auto"> 1367 <div class="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0"> 1368 <div x-show="show" 1369 x-transition:enter="ease-out duration-300" 1370 x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" 1371 x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100" 1372 x-transition:leave="ease-in duration-200" 1373 x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" 1374 x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" 1375 class="relative transform overflow-hidden rounded-lg bg-white px-4 pb-4 pt-5 text-left shadow-xl transition-all sm:my-8 w-full sm:max-w-lg sm:p-6"> 1376 <div> 1377 <div class="mt-3 text-center sm:mt-5"> 1378 <div> 1379 <h3 class="text-lg sm:text-xl font-semibold leading-6 text-gray-900" 1380 id="guest-login-widget-title" 1381 x-text="formTitle"></h3> 1382 <p class="mt-2 text-sm text-gray-500" x-text="formSubtitle"></p> 1383 <div class="mt-6 space-y-4"> 1384 <div> 1385 <input type="text" 1386 class="border px-3 py-2 w-full rounded-input border-border focus:border-primary focus:ring-primary sm:text-sm" 1387 x-model="form.name" 1388 autocomplete="name" 1389 placeholder="Enter your name"> 1390 </div> 1391 <div> 1392 <input type="email" 1393 class="border px-3 py-2 w-full rounded-input border-border focus:border-primary focus:ring-primary sm:text-sm" 1394 x-model="form.email" 1395 autocomplete="email" 1396 placeholder="Enter your email address"> 1397 <p class="text-xs text-gray-400 mt-1 text-left">Valid email is required for further communications</p> 1398 </div> 1399 </div> 1400 </div> 1401 </div> 1402 </div> 1403 <template x-if="form.error"> 1404 <p x-text="form.error" class="text-red-500 text-sm mt-3"></p> 1405 </template> 1406 <div class="mt-5 sm:mt-6 flex flex-col gap-3 sm:flex-row"> 1407 <button type="button" 1408 @click="show = false" 1409 class="btn btn-sm border border-gray-300 flex-1">Cancel</button> 1410 <button type="button" 1411 class="btn btn-sm btn-primary flex-1" 1412 :disabled="!enableSubmit" 1413 x-text="submitText" 1414 @click="submit"></button> 1415 </div> 1416 </div> 1417 </div> 1418 </div> 1419 </div> 1420</div> 1421 1422 1423 1424 1425<style> 1426 #hb-badge, 1427 #hb-badge *, 1428 #hb-badge *::before, 1429 #hb-badge *::after { 1430 all: unset; 1431 box-sizing: border-box; 1432 } 1433 1434 #hb-badge { 1435 position: fixed !important; 1436 bottom: 10px !important; 1437 left: 10px !important; 1438 z-index: 2147483647 !important; 1439 display: block !important; 1440 } 1441 1442 #hb-badge a { 1443 display: inline-flex !important;
1444 align-items: center !important; 1445 gap: 8px !important; 1446 padding: 8px 14px 8px 10px !important; 1447 background: #0a0a0a !important; 1448 border-radius: 8px !important; 1449 text-decoration: none !important; 1450 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; 1451 font-size: 13px !important; 1452 font-weight: 500 !important; 1453 color: #ffffff !important; 1454 box-shadow: 0 2px 12px rgba(0,0,0,0.18) !important; 1455 cursor: pointer !important; 1456 transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important; 1457 line-height: 1 !important; 1458 letter-spacing: 0.01em !important; 1459 } 1460 1461 #hb-badge a:hover { 1462 background: #222222 !important; 1463 transform: translateY(-1px) !important; 1464 box-shadow: 0 4px 20px rgba(0,0,0,0.25) !important; 1465 } 1466 1467 #hb-badge .hb-dot { 1468 display: inline-block !important; 1469 width: 5px !important; 1470 height: 5px !important; 1471 border-radius: 999px !important; 1472 background: rgba(255,255,255,0.3) !important; 1473 flex-shrink: 0 !important; 1474 } 1475 1476 #hb-badge .hb-muted { 1477 color: rgba(255,255,255,0.45) !important; 1478 font-weight: 400 !important; 1479 font-size: 13px !important; 1480 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; 1481 } 1482 1483 #hb-badge .hb-brand { 1484 color: #ffffff !important; 1485 font-weight: 600 !important; 1486 font-size: 13px !important; 1487 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; 1488 } 1489</style> 1490 1491<div id="hb-badge"> 1492 1493 <a href="https://hostbento.com?referrer=www.ivaninsurance.com" target="_blank"> 1494 <span class="hb-muted">Built with</span> 1495 <span class="hb-dot"></span> 1496 <span class="hb-brand">Hostbento</span> 1497 </a> 1498 1499</div> 1500 1501 1502 1503 1504 1505
1505<script src="/static/sitekit/js/sitekit.js" defer></script>
1505 1506
1506<script src="/static/sitekit/js/widgets.js" defer></script>
1506 1507
1507<script src="/static/sitekit/js/vendor/alpinejs-3.x.x.js" defer></script>
1507 1508
1509<script> 1510 function initProfitJS(){ 1511 if (window.hasOwnProperty('profitjs')) { 1512 window.profitjs({ 1513 widgets:[] 1514 }).mount('#profitjs'); 1515 } 1516 } 1517 1518</script>
vendor: 1 bytes, line 1518
1518
1519<script src="/static/sitekit/js/profitjs.umd.cjs" 1520 defer 1521 onload="initProfitJS()"></script>
1521 1522 1523 1524 1525 1526 1527 1528 1529 1530
1530<script src="https://7lscgh819c.koniglecdn.com/js/theme-js-f28c5e91.js" defer></script>
1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540
1540<script src="/static/sitekit/js/content-page.js" defer></script>
1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 </body> 1550 1551 1552 1553</html>
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.