{"id":3606,"date":"2026-08-22T17:03:47","date_gmt":"2026-08-22T16:03:47","guid":{"rendered":"https:\/\/cozmotec.ie\/staging\/7865\/?page_id=3606"},"modified":"2026-10-02T12:50:22","modified_gmt":"2026-10-02T11:50:22","slug":"blogs","status":"publish","type":"page","link":"https:\/\/cozmotec.ie\/staging\/7865\/blogs\/","title":{"rendered":"Blogs"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3606\" class=\"elementor elementor-3606\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8daa33a elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"8daa33a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5ebbfa3\" data-id=\"5ebbfa3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-837ea82 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"837ea82\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8e621d0\" data-id=\"8e621d0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6bea106 elementor-widget elementor-widget-html\" data-id=\"6bea106\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ==========================================================================\r\n     PRIMARY SEO METADATA & STRUCTURED DATA (100% SEARCH ENGINE COMPLIANT)\r\n     ========================================================================== -->\r\n<title>Insights, Stories & Technology Results | Cozmotec Blog<\/title>\r\n<meta name=\"description\" content=\"Practical insights on bespoke software engineering, AI workflow automation, and digital transformation strategy for forward-thinking business leaders.\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/cozmotec.ie\/blogs\/\" \/>\r\n\r\n<!-- Open Graph \/ Facebook \/ LinkedIn -->\r\n<meta property=\"og:type\" content=\"website\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/cozmotec.ie\/blogs\/\" \/>\r\n<meta property=\"og:title\" content=\"Insights, Stories & Technology Results | Cozmotec Blog\" \/>\r\n<meta property=\"og:description\" content=\"Practical insights on bespoke software engineering, AI workflow automation, and digital transformation strategy for forward-thinking business leaders.\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/framerusercontent.com\/images\/cwim7i7ZTZMxFkOzIfZtv4bA.png\" \/>\r\n<meta property=\"og:site_name\" content=\"Cozmotec\" \/>\r\n\r\n<!-- Twitter Card Meta Tags -->\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:url\" content=\"https:\/\/cozmotec.ie\/blogs\/\" \/>\r\n<meta name=\"twitter:title\" content=\"Insights, Stories & Technology Results | Cozmotec Blog\" \/>\r\n<meta name=\"twitter:description\" content=\"Practical insights on bespoke software engineering, AI workflow automation, and digital transformation strategy for forward-thinking business leaders.\" \/>\r\n<meta name=\"twitter:image\" content=\"https:\/\/framerusercontent.com\/images\/cwim7i7ZTZMxFkOzIfZtv4bA.png\" \/>\r\n\r\n<!-- Schema.org JSON-LD Structured Data -->\r\n<script type=\"application\/ld+json\">\r\n{\r\n  \"@context\": \"https:\/\/schema.org\",\r\n  \"@type\": \"Blog\",\r\n  \"name\": \"Cozmotec Insights & Blog\",\r\n  \"url\": \"https:\/\/cozmotec.ie\/blogs\/\",\r\n  \"description\": \"Engineering articles and digital strategy insights by Cozmotec.\"\r\n}\r\n<\/script>\r\n\r\n<!-- Critical Anti-FOUC Background & Pure Deep Black Canvas -->\r\n<style>\r\n.cz-site-wrapper {\r\n  opacity: 1 !important;\r\n}\r\n\r\n  \/* Critical Anti-FOUC Pre-Hide for Popups & Tickers (0ms Flash Elimination) *\/\r\n  .czm-logo-popup-card,\r\n  .czm-case-study-popup,\r\n  .czm-popup-card {\r\n    opacity: 0 !important;\r\n    pointer-events: none !important;\r\n    position: absolute !important;\r\n    transform: translate3d(-50%, 15px, 0) scale(0.96) !important;\r\n    transition:\r\n      opacity 0.25s ease,\r\n      transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;\r\n  }\r\n  .czm-client-logo-item:hover .czm-logo-popup-card {\r\n    opacity: 1 !important;\r\n    pointer-events: auto !important;\r\n    transform: translate3d(-50%, 0, 0) scale(1) !important;\r\n  }\r\n  .czm-ticker-wrapper {\r\n    position: relative !important;\r\n    height: 28px !important;\r\n    overflow: hidden !important;\r\n  }\r\n  .czm-ticker-track {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n  }\r\n  .czm-ticker-item {\r\n    height: 28px !important;\r\n    line-height: 28px !important;\r\n    white-space: nowrap !important;\r\n    overflow: hidden !important;\r\n    text-overflow: ellipsis !important;\r\n  }\r\n\r\n  html,\r\n  body,\r\n  .elementor,\r\n  .elementor-section,\r\n  .elementor-container,\r\n  main,\r\n  section,\r\n  footer {\r\n    background-color: #000000 !important;\r\n  }\r\n  html {\r\n    background-color: #000000 !important;\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    overflow-x: hidden !important;\r\n  }\r\n  body {\r\n    background-color: #000000 !important;\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    overflow-x: hidden !important;\r\n    opacity: 1;\r\n    transition: opacity 0.15s ease-in;\r\n  }\r\n  .czm-home-page,\r\n  .czm-about-page,\r\n  .czm-services-page,\r\n  .czm-case-studies-page,\r\n  .czm-blogs-page,\r\n  .czm-talk-page,\r\n  .czm-bdetail-page,\r\n  .czm-single-case-page,\r\n  .czm-section,\r\n  .czm-footer-wrapper {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    margin-left: 0 !important;\r\n    margin-right: 0 !important;\r\n    padding-left: 0 !important;\r\n    padding-right: 0 !important;\r\n    box-sizing: border-box !important;\r\n    background-color: #000000 !important;\r\n  }\r\n\r\n  \/* --- Universal Search & Popup Zero-FOUC Guards --- *\/\r\n  .czm-search-autocomplete-dropdown,\r\n  .czm-search-dropdown,\r\n  .czm-search-suggestions,\r\n  .czm-search-results,\r\n  .czm-search-preview-popup,\r\n  [data-search-dropdown] {\r\n    display: none !important;\r\n  }\r\n  .czm-search-autocomplete-dropdown.is-active,\r\n  .czm-search-dropdown.is-active,\r\n  .czm-search-suggestions.is-active,\r\n  .czm-search-results.is-active,\r\n  .czm-search-preview-popup.is-active,\r\n  [data-search-dropdown].is-active {\r\n    display: block !important;\r\n  }\r\n  \/* --- Anti-FOUC Critical Styling --- *\/\r\n  html {\r\n    background-color: #000000 !important;\r\n  }\r\n  body {\r\n    background-color: #000000 !important;\r\n    opacity: 1;\r\n    transition: opacity 0.15s ease-in;\r\n  }\r\n\r\n  \/* --- Universal Responsive Viewport & Overflow Hygiene --- *\/\r\n  html,\r\n  body {\r\n    max-width: 100% !important;\r\n    overflow-x: hidden !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  img,\r\n  video {\r\n    max-width: 100% !important;\r\n    height: auto !important;\r\n  }\r\n\r\n  \/* --- Strict Reset to Override All WordPress Themes --- *\/\r\n  .czm-blogs-page,\r\n  .czm-blogs-page *,\r\n  .czm-blogs-page *::before,\r\n  .czm-blogs-page *::after {\r\n    box-sizing: border-box !important;\r\n    text-transform: none !important;\r\n    letter-spacing: normal !important;\r\n    font-family: \"Schibsted Grotesk\", sans-serif !important;\r\n    -webkit-font-smoothing: antialiased !important;\r\n  }\r\n\r\n  .czm-blogs-page {\r\n    background-color: #000000 !important;\r\n    color: #f6f8f7 !important;\r\n    position: relative !important;\r\n    width: 100% !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  .czm-blogs-page button {\r\n    background: transparent !important;\r\n    border: none !important;\r\n    box-shadow: none !important;\r\n    padding: 0 !important;\r\n    margin: 0 !important;\r\n    color: inherit !important;\r\n    font-size: inherit !important;\r\n    font-weight: inherit !important;\r\n    line-height: normal !important;\r\n    cursor: pointer !important;\r\n    outline: none !important;\r\n  }\r\n\r\n  .czm-blogs-page p,\r\n  .czm-blogs-page h1,\r\n  .czm-blogs-page h2,\r\n  .czm-blogs-page h3,\r\n  .czm-blogs-page h4,\r\n  .czm-blogs-page h5 {\r\n    margin-top: 0 !important;\r\n  }\r\n\r\n  .czm-container {\r\n    max-width: 1200px !important;\r\n    margin: 0 auto !important;\r\n    padding: 0 24px !important;\r\n    position: relative !important;\r\n    z-index: 2 !important;\r\n  }\r\n\r\n  .czm-section {\r\n    padding: 90px 0 !important;\r\n    position: relative !important;\r\n  }\r\n\r\n  .czm-highlight-pink {\r\n    color: #c9266b !important;\r\n  }\r\n\r\n  \/* --- Buttons --- *\/\r\n  .czm-btn-pill-pink {\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    gap: 10px !important;\r\n    height: 46px !important;\r\n    padding: 0 34px !important;\r\n    background-color: #c9266b !important;\r\n    color: #ffffff !important;\r\n    font-size: 15px !important;\r\n    font-weight: 500 !important;\r\n    text-decoration: none !important;\r\n    border-radius: 9999px !important;\r\n    border: none !important;\r\n    cursor: pointer !important;\r\n    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;\r\n    box-shadow: 0 4px 18px rgba(201, 38, 107, 0.3) !important;\r\n    line-height: normal !important;\r\n  }\r\n\r\n  .czm-btn-pill-pink:hover {\r\n    background-color: #e02f7a !important;\r\n    transform: translateY(-2px) !important;\r\n    box-shadow: 0 8px 25px rgba(201, 38, 107, 0.5) !important;\r\n  }\r\n\r\n  .czm-btn-full {\r\n    width: 100% !important;\r\n  }\r\n\r\n  .czm-glass-card {\r\n    background-color: #150507 !important;\r\n    border: 1px solid rgba(255, 255, 255, 0.08) !important;\r\n    border-radius: 24px !important;\r\n    -webkit-backdrop-filter: blur(20px) !important;\r\n    backdrop-filter: blur(20px) !important;\r\n    -webkit-backdrop-filter: blur(20px) !important;\r\n    position: relative !important;\r\n    overflow: hidden !important;\r\n    transition:\r\n      transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),\r\n      border-color 0.3s ease,\r\n      box-shadow 0.3s ease !important;\r\n  }\r\n\r\n  \/* ========================================================================\r\n     1. BLOG HERO SECTION (EXACT SAME HEIGHT & QUANTUM BACKGROUND AS HOME\/ABOUT)\r\n     ======================================================================== *\/\r\n\r\n  .czm-hero-top-badge-wrap {\r\n    margin-bottom: 28px !important;\r\n  }\r\n\r\n  .czm-hero-top-badge {\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    padding: 8px 24px !important;\r\n    background: linear-gradient(\r\n      135deg,\r\n      rgba(201, 38, 107, 0.45) 0%,\r\n      rgba(201, 38, 107, 0.15) 100%\r\n    ) !important;\r\n    border: 1px solid rgba(201, 38, 107, 0.5) !important;\r\n    border-radius: 9999px !important;\r\n    color: #ffffff !important;\r\n    font-size: 14px !important;\r\n    font-weight: 500 !important;\r\n    text-decoration: none !important;\r\n    box-shadow: 0 0 24px rgba(201, 38, 107, 0.3) !important;\r\n    transition:\r\n      transform 0.25s ease,\r\n      box-shadow 0.25s ease !important;\r\n  }\r\n\r\n  .czm-hero-top-badge:hover {\r\n    transform: translateY(-2px) !important;\r\n    box-shadow: 0 0 32px rgba(201, 38, 107, 0.5) !important;\r\n  }\r\n\r\n  .czm-blogs-hero-section {\r\n    min-height: 95vh !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    padding: 160px 0 80px !important;\r\n    position: relative !important;\r\n    background: transparent !important;\r\n  }\r\n\r\n  .czm-quantum-bg {\r\n    position: absolute !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    background: #000000 !important;\r\n    overflow: hidden !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  .czm-quantum-bg canvas {\r\n    display: block !important;\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    position: absolute !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n  }\r\n\r\n  .czm-blogs-hero-container {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: center !important;\r\n    text-align: center !important;\r\n    max-width: 960px !important;\r\n    position: relative !important;\r\n    z-index: 2 !important;\r\n  }\r\n\r\n  .czm-blogs-hero-title-wrap {\r\n    margin-bottom: 24px !important;\r\n  }\r\n\r\n  .czm-blogs-hero-title {\r\n    font-family: \"Outfit\", sans-serif !important;\r\n    font-size: clamp(38px, 5.2vw, 64px) !important;\r\n    font-weight: 600 !important;\r\n    line-height: 1.12em !important;\r\n    letter-spacing: -1.8px !important;\r\n    color: #ffffff !important;\r\n    margin: 0 !important;\r\n  }\r\n\r\n  .czm-blogs-hero-sub-wrap {\r\n    max-width: 760px !important;\r\n    margin: 0 auto 36px !important;\r\n  }\r\n\r\n  .czm-blogs-hero-sub {\r\n    font-size: clamp(16px, 1.8vw, 19px) !important;\r\n    font-weight: 400 !important;\r\n    line-height: 1.6em !important;\r\n    color: rgba(255, 255, 255, 0.72) !important;\r\n    margin: 0 !important;\r\n  }\r\n\r\n  .czm-blogs-hero-cta {\r\n    display: flex !important;\r\n    justify-content: center !important;\r\n  }\r\n\r\n  \/* ========================================================================\r\n     2. BLOGS SHOWCASE GRID (ALL 12 ARTICLES)\r\n     ======================================================================== *\/\r\n  .czm-blogs-grid-section {\r\n    padding: 60px 0 120px !important;\r\n    background-color: #000000 !important;\r\n    position: relative !important;\r\n  }\r\n\r\n  .czm-blogs-grid {\r\n    display: grid !important;\r\n    grid-template-columns: repeat(3, 1fr) !important;\r\n    gap: 36px 30px !important;\r\n    position: relative !important;\r\n  }\r\n\r\n  .czm-blog-card {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    position: relative !important;\r\n    transition:\r\n      transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),\r\n      opacity 0.3s ease !important;\r\n  }\r\n\r\n  .czm-blog-card-link {\r\n    text-decoration: none !important;\r\n    color: inherit !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 18px !important;\r\n    height: 100% !important;\r\n  }\r\n\r\n  .czm-blog-img-wrap {\r\n    position: relative !important;\r\n    width: 100% !important;\r\n    aspect-ratio: 16 \/ 10 !important;\r\n    border-radius: 18px !important;\r\n    overflow: hidden !important;\r\n    background-color: #121212 !important;\r\n    border: 1px solid rgba(255, 255, 255, 0.1) !important;\r\n    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;\r\n  }\r\n\r\n  .czm-blog-img {\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n    object-fit: cover !important;\r\n    object-position: center !important;\r\n    display: block !important;\r\n    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;\r\n  }\r\n\r\n  .czm-blog-card:hover .czm-blog-img {\r\n    transform: scale(1.06) !important;\r\n  }\r\n\r\n  .czm-blog-card-spotlight {\r\n    position: absolute !important;\r\n    inset: 0 !important;\r\n    pointer-events: none !important;\r\n    background: radial-gradient(\r\n      circle at var(--card-mouse-x, 50%) var(--card-mouse-y, 50%),\r\n      rgba(201, 38, 107, 0.25) 0%,\r\n      transparent 60%\r\n    ) !important;\r\n    opacity: 0;\r\n    transition: opacity 0.3s ease !important;\r\n  }\r\n\r\n  .czm-blog-card:hover .czm-blog-card-spotlight {\r\n    opacity: 1 !important;\r\n  }\r\n\r\n  .czm-blog-tag-badge {\r\n    position: absolute !important;\r\n    top: 14px !important;\r\n    right: 14px !important;\r\n    padding: 5px 12px !important;\r\n    border-radius: 999px !important;\r\n    font-size: 11.5px !important;\r\n    font-weight: 600 !important;\r\n    letter-spacing: 0.2px !important;\r\n    -webkit-backdrop-filter: blur(10px) !important;\r\n    backdrop-filter: blur(10px) !important;\r\n    -webkit-backdrop-filter: blur(10px) !important;\r\n    z-index: 2 !important;\r\n  }\r\n\r\n  .czm-tag-active {\r\n    background: rgba(201, 38, 107, 0.85) !important;\r\n    color: #ffffff !important;\r\n    box-shadow: 0 2px 10px rgba(201, 38, 107, 0.4) !important;\r\n  }\r\n\r\n  .czm-tag-soon {\r\n    background: rgba(18, 18, 18, 0.75) !important;\r\n    color: rgba(255, 255, 255, 0.85) !important;\r\n    border: 1px solid rgba(255, 255, 255, 0.15) !important;\r\n  }\r\n\r\n  .czm-blog-info {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 8px !important;\r\n  }\r\n\r\n  .czm-blog-title {\r\n    font-family: \"Schibsted Grotesk\", sans-serif !important;\r\n    font-size: 18px !important;\r\n    font-weight: 500 !important;\r\n    letter-spacing: -0.02em !important;\r\n    line-height: 1.45em !important;\r\n    color: #fcfcfa !important;\r\n    margin: 0 !important;\r\n    transition: color 0.25s ease !important;\r\n  }\r\n\r\n  .czm-blog-card:hover .czm-blog-title {\r\n    color: #c9266b !important;\r\n  }\r\n\r\n  .czm-blog-meta {\r\n    font-size: 14px !important;\r\n    font-weight: 500 !important;\r\n    color: #999999 !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    gap: 4px !important;\r\n  }\r\n\r\n  \/* Dynamic Pagination Controls *\/\r\n  .czm-blog-pagination {\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    gap: 8px !important;\r\n    margin-top: 56px !important;\r\n    flex-wrap: wrap !important;\r\n  }\r\n\r\n  .czm-page-btn {\r\n    min-width: 44px !important;\r\n    height: 44px !important;\r\n    padding: 0 16px !important;\r\n    border-radius: 12px !important;\r\n    background: rgba(255, 255, 255, 0.05) !important;\r\n    border: 1px solid rgba(255, 255, 255, 0.12) !important;\r\n    color: #f2eae6 !important;\r\n    font-family: \"Schibsted Grotesk\", sans-serif !important;\r\n    font-size: 15px !important;\r\n    font-weight: 500 !important;\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    cursor: pointer !important;\r\n    text-decoration: none !important;\r\n    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;\r\n  }\r\n\r\n  .czm-page-btn:hover {\r\n    background: rgba(201, 38, 107, 0.2) !important;\r\n    border-color: #c9266b !important;\r\n    color: #ffffff !important;\r\n    transform: translateY(-2px) !important;\r\n  }\r\n\r\n  .czm-page-btn.active {\r\n    background: #c9266b !important;\r\n    border-color: #c9266b !important;\r\n    color: #ffffff !important;\r\n    font-weight: 600 !important;\r\n    box-shadow: 0 4px 16px rgba(201, 38, 107, 0.4) !important;\r\n  }\r\n\r\n  .czm-page-btn:disabled,\r\n  .czm-page-btn.disabled {\r\n    opacity: 0.35 !important;\r\n    pointer-events: none !important;\r\n    cursor: default !important;\r\n  }\r\n\r\n  .czm-page-ellipsis {\r\n    color: rgba(255, 255, 255, 0.4) !important;\r\n    padding: 0 6px !important;\r\n    font-size: 16px !important;\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    user-select: none !important;\r\n  }\r\n\r\n  .czm-blog-loading {\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    min-height: 280px !important;\r\n    width: 100% !important;\r\n    grid-column: 1 \/ -1 !important;\r\n    color: #a08d88 !important;\r\n    font-family: \"Schibsted Grotesk\", sans-serif !important;\r\n    font-size: 16px !important;\r\n    gap: 12px !important;\r\n  }\r\n\r\n  .czm-blog-spinner {\r\n    width: 26px !important;\r\n    height: 26px !important;\r\n    border: 3px solid rgba(201, 38, 107, 0.2) !important;\r\n    border-top-color: #c9266b !important;\r\n    border-radius: 50% !important;\r\n    animation: czm-spin 0.8s linear infinite !important;\r\n  }\r\n\r\n  @keyframes czm-spin {\r\n    to { transform: rotate(360deg); }\r\n  }\r\n\r\n  \/* Interactive Toast Notification *\/\r\n  .czm-blog-toast {\r\n    position: fixed !important;\r\n    bottom: 30px !important;\r\n    right: 30px !important;\r\n    z-index: 99999 !important;\r\n    background: rgba(20, 8, 14, 0.95) !important;\r\n    border: 1px solid rgba(201, 38, 107, 0.5) !important;\r\n    -webkit-backdrop-filter: blur(16px) !important;\r\n    backdrop-filter: blur(16px) !important;\r\n    -webkit-backdrop-filter: blur(16px) !important;\r\n    border-radius: 18px !important;\r\n    padding: 16px 20px !important;\r\n    box-shadow:\r\n      0 20px 50px rgba(0, 0, 0, 0.8),\r\n      0 0 30px rgba(201, 38, 107, 0.25) !important;\r\n    max-width: 380px !important;\r\n    transform: translateY(120px) scale(0.95) !important;\r\n    opacity: 0 !important;\r\n    pointer-events: none !important;\r\n    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;\r\n  }\r\n\r\n  .czm-blog-toast.show {\r\n    transform: translateY(0) scale(1) !important;\r\n    opacity: 1 !important;\r\n    pointer-events: auto !important;\r\n  }\r\n\r\n  .czm-blog-toast-content {\r\n    display: flex !important;\r\n    align-items: flex-start !important;\r\n    gap: 14px !important;\r\n  }\r\n\r\n  .czm-blog-toast-icon {\r\n    font-size: 20px !important;\r\n    flex-shrink: 0 !important;\r\n  }\r\n\r\n  .czm-blog-toast-body {\r\n    flex: 1 !important;\r\n  }\r\n\r\n  .czm-blog-toast-body strong {\r\n    display: block !important;\r\n    font-size: 14px !important;\r\n    color: #ffffff !important;\r\n    margin-bottom: 2px !important;\r\n  }\r\n\r\n  .czm-blog-toast-body p {\r\n    font-size: 13px !important;\r\n    color: rgba(255, 255, 255, 0.7) !important;\r\n    margin: 0 !important;\r\n    line-height: 1.4em !important;\r\n  }\r\n\r\n  .czm-blog-toast-close {\r\n    font-size: 20px !important;\r\n    color: rgba(255, 255, 255, 0.6) !important;\r\n    cursor: pointer !important;\r\n    line-height: 1 !important;\r\n    padding: 0 4px !important;\r\n    transition: color 0.2s ease !important;\r\n  }\r\n\r\n  .czm-blog-toast-close:hover {\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  \/* ========================================================================\r\n     3. FULL-WIDTH BOTTOM CTA BANNER (Cream \/ Clay Background - Match About Page)\r\n     ======================================================================== *\/\r\n  section.czm-fullwidth-cta-section,\r\n  .czm-fullwidth-cta-section {\r\n    position: relative !important;\r\n    padding: 130px 0 !important;\r\n    overflow: visible !important;\r\n    background-color: #e7dcd5 !important;\r\n    background: #e7dcd5 !important;\r\n    color: #160b0b !important;\r\n    text-align: center !important;\r\n    width: 100vw !important;\r\n    max-width: 100vw !important;\r\n    left: 50% !important;\r\n    right: 50% !important;\r\n    margin-left: -50vw !important;\r\n    margin-right: -50vw !important;\r\n    box-shadow: 0 0 0 100vmax #e7dcd5 !important;\r\n    clip-path: inset(0 -100vmax) !important;\r\n    box-sizing: border-box !important;\r\n    border-top: 1px solid #d3c4bc !important;\r\n    border-bottom: 1px solid #d3c4bc !important;\r\n  }\r\n\r\n  section.czm-fullwidth-cta-section::before,\r\n  .czm-fullwidth-cta-section::before {\r\n    content: \"\" !important;\r\n    position: absolute !important;\r\n    top: 0 !important;\r\n    bottom: 0 !important;\r\n    left: 50% !important;\r\n    right: 50% !important;\r\n    width: 100vw !important;\r\n    margin-left: -50vw !important;\r\n    margin-right: -50vw !important;\r\n    background-color: #e7dcd5 !important;\r\n    background: #e7dcd5 !important;\r\n    z-index: 0 !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  #gradient-motion-bg-cta,\r\n  .czm-fullwidth-cta-section .czm-gradient-motion-bg {\r\n    display: none !important;\r\n    visibility: hidden !important;\r\n    opacity: 0 !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  .czm-fullwidth-cta-container {\r\n    position: relative !important;\r\n    z-index: 2 !important;\r\n    max-width: 800px !important;\r\n    margin: 0 auto !important;\r\n    padding: 0 24px !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: center !important;\r\n  }\r\n\r\n  .czm-cta-banner-title {\r\n    font-family:\r\n      \"Schibsted Grotesk\",\r\n      -apple-system,\r\n      BlinkMacSystemFont,\r\n      \"Segoe UI\",\r\n      Roboto,\r\n      sans-serif !important;\r\n    font-size: clamp(38px, 4.5vw, 60px) !important;\r\n    font-weight: 600 !important;\r\n    line-height: 1.12em !important;\r\n    letter-spacing: -1.8px !important;\r\n    color: #160b0b !important;\r\n    margin: 0 0 20px !important;\r\n  }\r\n\r\n  .czm-cta-banner-subtitle {\r\n    font-family:\r\n      \"Schibsted Grotesk\",\r\n      -apple-system,\r\n      BlinkMacSystemFont,\r\n      \"Segoe UI\",\r\n      Roboto,\r\n      sans-serif !important;\r\n    font-size: 18px !important;\r\n    font-weight: 400 !important;\r\n    line-height: 1.55em !important;\r\n    color: #6b5d58 !important;\r\n    margin: 0 0 36px !important;\r\n  }\r\n\r\n  .czm-btn-cta-pink {\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    height: 48px !important;\r\n    padding: 0 42px !important;\r\n    font-size: 15px !important;\r\n    font-weight: 600 !important;\r\n    background-color: #c9266b !important;\r\n    color: #ffffff !important;\r\n    border-radius: 9999px !important;\r\n    text-decoration: none !important;\r\n    box-shadow: 0 4px 18px rgba(201, 38, 107, 0.28) !important;\r\n    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;\r\n  }\r\n\r\n  .czm-btn-cta-pink:hover {\r\n    background-color: #b01f5c !important;\r\n    color: #ffffff !important;\r\n    transform: translateY(-2px) !important;\r\n    box-shadow: 0 8px 26px rgba(201, 38, 107, 0.42) !important;\r\n  }\r\n\r\n  \/* ========================================================================\r\n     4. CONTACT DETAILS & DIRECT QUERY FORM\r\n     ======================================================================== *\/\r\n  .czm-about-query-section {\r\n    padding: 100px 0 120px !important;\r\n    position: relative !important;\r\n    background: #000000 !important;\r\n    overflow: hidden !important;\r\n  }\r\n\r\n  .czm-about-query-ambient-glow {\r\n    position: absolute !important;\r\n    bottom: 0 !important;\r\n    right: 15% !important;\r\n    width: 600px !important;\r\n    height: 400px !important;\r\n    background: radial-gradient(\r\n      ellipse at center,\r\n      rgba(201, 38, 107, 0.15) 0%,\r\n      transparent 70%\r\n    ) !important;\r\n    filter: blur(90px) !important;\r\n    pointer-events: none !important;\r\n    z-index: 1 !important;\r\n  }\r\n\r\n  .czm-about-query-layout {\r\n    display: grid !important;\r\n    grid-template-columns: 1fr 1.1fr !important;\r\n    gap: 60px !important;\r\n    align-items: center !important;\r\n    max-width: 1100px !important;\r\n    margin: 0 auto !important;\r\n    position: relative !important;\r\n    z-index: 2 !important;\r\n  }\r\n\r\n  .czm-query-sec-title {\r\n    font-family: \"Outfit\", sans-serif !important;\r\n    font-size: clamp(34px, 4vw, 48px) !important;\r\n    font-weight: 600 !important;\r\n    line-height: 1.15em !important;\r\n    letter-spacing: -1.5px !important;\r\n    color: #ffffff !important;\r\n    margin: 0 0 16px !important;\r\n  }\r\n\r\n  .czm-query-sec-subtitle {\r\n    font-size: 16.5px !important;\r\n    line-height: 1.55em !important;\r\n    color: rgba(255, 255, 255, 0.65) !important;\r\n    margin: 0 0 36px !important;\r\n    max-width: 440px !important;\r\n  }\r\n\r\n  .czm-about-contact-items {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 16px !important;\r\n  }\r\n\r\n  .czm-about-contact-row {\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    gap: 14px !important;\r\n    color: rgba(255, 255, 255, 0.8) !important;\r\n    text-decoration: none !important;\r\n    font-size: 16px !important;\r\n    font-weight: 500 !important;\r\n    transition: color 0.25s ease !important;\r\n  }\r\n\r\n  .czm-about-contact-row:hover {\r\n    color: #c9266b !important;\r\n  }\r\n\r\n  .czm-about-contact-icon {\r\n    width: 38px !important;\r\n    height: 38px !important;\r\n    border-radius: 50% !important;\r\n    background: rgba(255, 255, 255, 0.05) !important;\r\n    border: 1px solid rgba(255, 255, 255, 0.1) !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    color: #c9266b !important;\r\n    flex-shrink: 0 !important;\r\n    transition: all 0.25s ease !important;\r\n  }\r\n\r\n  .czm-about-contact-row:hover .czm-about-contact-icon {\r\n    background: #c9266b !important;\r\n    color: #ffffff !important;\r\n    box-shadow: 0 0 14px rgba(201, 38, 107, 0.5) !important;\r\n  }\r\n\r\n  .czm-about-query-card {\r\n    padding: 38px 36px !important;\r\n    background-color: #f1e8e2 !important;\r\n    background: #f1e8e2 !important;\r\n    border: 1px solid rgba(201, 38, 107, 0.28) !important;\r\n    border-radius: 26px !important;\r\n    box-shadow:\r\n      0 16px 40px rgba(0, 0, 0, 0.35),\r\n      0 0 24px rgba(201, 38, 107, 0.08) !important;\r\n  }\r\n\r\n  .czm-about-form {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 18px !important;\r\n  }\r\n\r\n  .czm-aform-field {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    gap: 8px !important;\r\n  }\r\n\r\n  .czm-aform-label {\r\n    font-family:\r\n      \"Schibsted Grotesk\",\r\n      -apple-system,\r\n      BlinkMacSystemFont,\r\n      \"Helvetica Neue\",\r\n      Helvetica,\r\n      Arial,\r\n      sans-serif !important;\r\n    font-size: 13.5px !important;\r\n    font-weight: 500 !important;\r\n    color: #374151 !important;\r\n    text-transform: none !important;\r\n  }\r\n\r\n  .czm-aform-input,\r\n  .czm-aform-textarea {\r\n    width: 100% !important;\r\n    background-color: #ffffff !important;\r\n    border: 1px solid rgba(201, 38, 107, 0.2) !important;\r\n    border-radius: 12px !important;\r\n    padding: 14px 18px !important;\r\n    font-size: 14.5px !important;\r\n    color: #111111 !important;\r\n    outline: none !important;\r\n    margin: 0 !important;\r\n    box-sizing: border-box !important;\r\n    font-family:\r\n      \"Schibsted Grotesk\",\r\n      -apple-system,\r\n      BlinkMacSystemFont,\r\n      \"Helvetica Neue\",\r\n      Helvetica,\r\n      Arial,\r\n      sans-serif !important;\r\n    transition:\r\n      background-color 0.2s ease,\r\n      border-color 0.2s ease,\r\n      box-shadow 0.2s ease !important;\r\n  }\r\n\r\n  .czm-aform-input::placeholder,\r\n  .czm-aform-textarea::placeholder {\r\n    color: #9ca3af !important;\r\n    opacity: 1 !important;\r\n  }\r\n\r\n  .czm-aform-input:focus,\r\n  .czm-aform-textarea:focus {\r\n    border-color: #c9266b !important;\r\n    background-color: #ffffff !important;\r\n    box-shadow: 0 0 16px rgba(201, 38, 107, 0.25) !important;\r\n  }\r\n\r\n  \/* ========================================================================\r\n     RESPONSIVE MEDIA QUERIES\r\n     ======================================================================== *\/\r\n  @media (max-width: 1024px) {\r\n    .czm-blogs-grid {\r\n      grid-template-columns: repeat(2, 1fr) !important;\r\n      gap: 30px 24px !important;\r\n    }\r\n    .czm-about-query-layout {\r\n      grid-template-columns: 1fr !important;\r\n      gap: 48px !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 720px) {\r\n    .czm-section {\r\n      padding: 60px 0 !important;\r\n    }\r\n    .czm-blogs-hero-section {\r\n      padding: 160px 0 80px !important;\r\n      min-height: unset !important;\r\n    }\r\n    .czm-blogs-hero-title {\r\n      font-size: 34px !important;\r\n    }\r\n    .czm-blogs-grid {\r\n      grid-template-columns: 1fr !important;\r\n      gap: 28px !important;\r\n    }\r\n    .czm-fullwidth-cta-section {\r\n      padding: 80px 0 !important;\r\n    }\r\n    .czm-about-query-card {\r\n      padding: 26px 20px !important;\r\n    }\r\n  }\r\n\r\n  \/* Responsive Blog Filter Tabs Horizontal Scroll *\/\r\n  @media (max-width: 768px) {\r\n    .czm-blog-filter-bar {\r\n      display: flex !important;\r\n      overflow-x: auto !important;\r\n      -webkit-overflow-scrolling: touch !important;\r\n      scrollbar-width: none !important;\r\n      white-space: nowrap !important;\r\n      width: 100% !important;\r\n      padding: 6px 4px !important;\r\n      justify-content: flex-start !important;\r\n      gap: 10px !important;\r\n    }\r\n    .czm-blog-filter-bar::-webkit-scrollbar {\r\n      display: none !important;\r\n    }\r\n    .czm-blog-filter-btn {\r\n      flex-shrink: 0 !important;\r\n      min-height: 44px !important;\r\n      padding: 0 18px !important;\r\n    }\r\n    .czm-blog-grid {\r\n      grid-template-columns: 1fr !important;\r\n      gap: 24px !important;\r\n    }\r\n  }\r\n  @media (min-width: 769px) and (max-width: 1024px) {\r\n    .czm-blog-grid {\r\n      grid-template-columns: repeat(2, 1fr) !important;\r\n      gap: 24px !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<!-- ==========================================================================\r\n   COZMOTEC COMPLETE BLOGS ARCHIVE PAGE (WORDPRESS & ELEMENTOR READY)\r\n   ========================================================================== -->\r\n\r\n<!-- Font Assets -->\r\n<meta\r\n  name=\"viewport\"\r\n  content=\"width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=yes\"\r\n\/>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\r\n<link\r\n  href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700&family=Schibsted+Grotesk:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Geist+Mono:wght@400;600;700&display=swap\"\r\n  rel=\"stylesheet\"\r\n\/>\r\n<link\r\n  href=\"https:\/\/api.fontshare.com\/v2\/css?f[]=general-sans@400,500,600,700&f[]=urbanist@400,500,600&display=swap\"\r\n  rel=\"stylesheet\"\r\n\/>\r\n\r\n<!-- 3D Library (Three.js for Quantum Morphing Matrix) -->\r\n<div class=\"cz-site-wrapper\" style=\"opacity: 0; transition: opacity 0.15s ease-in;\">\r\n<div class=\"czm-blogs-page\" id=\"czm-blogs-root\">\r\n  <!-- ========================================================================\r\n       SECTION 1: BLOG HERO & HEADER (QUANTUM MORPHING MATRIX BACKGROUND)\r\n       ======================================================================== -->\r\n  <section class=\"czm-section czm-blogs-hero-section\" id=\"hero\">\r\n    <div id=\"quantum-morphing-matrix\" style=\"width: 100%; height: 100%; background: #000002; overflow: hidden\" class=\"czm-quantum-bg\"><\/div>\r\n\r\n    <div class=\"czm-container czm-blogs-hero-container\">\r\n      <!-- Top Pill Banner: Award Winner -->\r\n      <div class=\"czm-hero-top-badge-wrap\">\r\n        <a href=\"#awards\" class=\"czm-hero-top-badge\">\r\n          <span>National Enterprise Award Winner 2025<\/span>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <!-- Main Headline -->\r\n      <div class=\"czm-blogs-hero-title-wrap\">\r\n        <h1 class=\"czm-blogs-hero-title\">\r\n          Insights, Stories &amp; Results<br \/>That\r\n          <span class=\"czm-highlight-pink\">Drive Growth<\/span>\r\n        <\/h1>\r\n      <\/div>\r\n\r\n      <!-- Subtitle -->\r\n      <div class=\"czm-blogs-hero-sub-wrap\">\r\n        <p class=\"czm-blogs-hero-sub\">\r\n          Stay ahead with practical insights on AI, automation, software, and\r\n          digital transformation. Explore what we're building, what we're\r\n          learning, and how technology is creating real business impact.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <!-- CTA Button -->\r\n      <div class=\"czm-blogs-hero-cta\">\r\n        <a\r\n          href=\"https:\/\/cozmotec.ie\/staging\/7865\/contact-us\/\"\r\n          class=\"czm-btn-pill-pink\"\r\n        >\r\n          <span>Book a Call<\/span>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <!-- ========================================================================\r\n       SECTION 2: BLOGS SHOWCASE GRID (ALL 12 ARTICLES)\r\n       ======================================================================== -->\r\n  <section class=\"czm-section czm-blogs-grid-section\" id=\"blogs-grid-section\">\r\n    <div class=\"czm-container\">\r\n      <!-- 3-Column Responsive Blog Grid -->\r\n      <div class=\"czm-blogs-grid\" id=\"czm-blogs-grid\">\r\n        <!-- Card 1 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/website-losing-customers-practical-fixes\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: Why Your Website Might Be Losing You Customers \u2013 And How to Fix It\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2025\/06\/luke-peters-B6JINerWMz0-unsplash-scaled.jpg\"\r\n                alt=\"Why Your Website Might Be Losing You Customers \u2013 And How to Fix It\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Featured Story\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">Why Your Website Might Be Losing You Customers \u2013 And How to Fix It<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">6 May 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 10 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 2 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/build-saas-platform-that-scales\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: How to Build a SaaS Platform That Scales With Your Business\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/05\/scalable-saas-platform-irish-guide-scaled.png\"\r\n                alt=\"How to Build a SaaS Platform That Scales With Your Business\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">How to Build a SaaS Platform That Scales With Your Business<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">17 April 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 9 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 3 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/intelligent-automation-guide-irish-smes\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: From Repetitive Tasks to Real Impact: A Guide to Intelligent Automation\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/05\/intelligent-automation-irish-smes-featured-image-scaled.png\"\r\n                alt=\"From Repetitive Tasks to Real Impact: A Guide to Intelligent Automation\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">From Repetitive Tasks to Real Impact: A Guide to Intelligent Automation<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">15 April 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 10 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 4 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/ai-myths-for-small-businesses\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: AI Myths Busted: What Small Businesses Actually Need to Know\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/04\/ai-myths-for-small-businesses-featured-image-scaled.png\"\r\n                alt=\"AI Myths Busted: What Small Businesses Actually Need to Know\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">AI Myths Busted: What Small Businesses Actually Need to Know<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">13 April 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 10 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 5 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/bespoke-software-pays-for-itself-cost-benefit-breakdown\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: Why Bespoke Software Pays for Itself \u2013 A Cost Benefit Breakdown\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/05\/Bespoke-Software-Pays-for-Itself-scaled.png\"\r\n                alt=\"Why Bespoke Software Pays for Itself \u2013 A Cost Benefit Breakdown\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">Why Bespoke Software Pays for Itself \u2013 A Cost Benefit Breakdown<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">10 April 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 10 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 6 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/business-process-automation-irish-smes\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: What Is Business Process Automation and Why Every Irish SME Needs It\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/05\/Business-Process-Automation-scaled.png\"\r\n                alt=\"What Is Business Process Automation and Why Every Irish SME Needs It\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">What Is Business Process Automation and Why Every Irish SME Needs It<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">8 April 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 10 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 7 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/off-the-shelf-vs-custom-software-irish-business-guide\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: Off-the-Shelf vs Custom Software: Which Is Right for Your Business?\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/05\/Off-the-Shelf-vs-Custom-Software-scaled.png\"\r\n                alt=\"Off-the-Shelf vs Custom Software: Which Is Right for Your Business?\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">Off-the-Shelf vs Custom Software: Which Is Right for Your Business?<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">6 April 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 10 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 8 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/custom-software-development-in-ireland-complete-2026-guide\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: Custom Software Development in Ireland: Complete 2026 Guide\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/cozmotec.ie\/staging\/7865\/wp-content\/uploads\/2026\/03\/Custom-Software-Development-in-Ireland-Complete-2026-Guide-scaled.png\"\r\n                alt=\"Custom Software Development in Ireland: Complete 2026 Guide\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">Custom Software Development in Ireland: Complete 2026 Guide<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">18 March 2026<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 8 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n\r\n        <!-- Card 9 -->\r\n        <article class=\"czm-blog-card czm-card-3d\" data-status=\"live\">\r\n          <a\r\n            href=\"https:\/\/cozmotec.ie\/staging\/7865\/why-cloud-computing-is-a-game-changer-for-irish-smes\/\"\r\n            class=\"czm-blog-card-link\"\r\n            aria-label=\"Read full article: Why Cloud Computing Is a Game-Changer for Irish SMEs\"\r\n          >\r\n            <div class=\"czm-blog-img-wrap\">\r\n              <img decoding=\"async\"\r\n                src=\"https:\/\/framerusercontent.com\/images\/K36fjg0qQfLo5AHTQuphPtQrHw.png\"\r\n                alt=\"Why Cloud Computing Is a Game-Changer for Irish SMEs\"\r\n                class=\"czm-blog-img\"\r\n                loading=\"lazy\"\r\n              \/>\r\n              <div class=\"czm-blog-tag-badge czm-tag-active\">\r\n                Blog\r\n              <\/div>\r\n              <div class=\"czm-blog-card-spotlight\"><\/div>\r\n            <\/div>\r\n            <div class=\"czm-blog-info\">\r\n              <h3 class=\"czm-blog-title\">Why Cloud Computing Is a Game-Changer for Irish SMEs<\/h3>\r\n              <div class=\"czm-blog-meta\">\r\n                <span class=\"czm-blog-date\">23 July 2025<\/span>\r\n                <span class=\"czm-blog-read-time\">\u00b7 3 min read<\/span>\r\n              <\/div>\r\n            <\/div>\r\n          <\/a>\r\n        <\/article>\r\n      <\/div>\r\n\r\n            <!-- Dynamic Pagination Controls Container -->\r\n      <div class=\"czm-blog-pagination\" id=\"czm-blog-pagination\">\r\n        <button type=\"button\" class=\"czm-page-btn disabled\" disabled aria-label=\"Previous Page\">\u2190 Prev<\/button>\r\n        <button type=\"button\" class=\"czm-page-btn active\" data-page=\"1\">1<\/button>\r\n        <button type=\"button\" class=\"czm-page-btn\" data-page=\"2\">2<\/button>\r\n        <button type=\"button\" class=\"czm-page-btn\" data-page=\"3\">3<\/button>\r\n        <span class=\"czm-page-ellipsis\">\u2026<\/span>\r\n        <button type=\"button\" class=\"czm-page-btn\" data-page=\"8\">8<\/button>\r\n        <button type=\"button\" class=\"czm-page-btn\" data-page=\"2\" aria-label=\"Next Page\">Next \u2192<\/button>\r\n      <\/div>\r\n        <\/div>\r\n  <\/section>\r\n\r\n  <!-- ========================================================================\r\n       SECTION 3: FULL-WIDTH BOTTOM CTA BANNER (Cream \/ Clay Background - Match About Page)\r\n       ======================================================================== -->\r\n  <section class=\"czm-full-bleed czm-fullwidth-cta-section\" id=\"cta\">\r\n    <div class=\"czm-container czm-fullwidth-cta-container\">\r\n      <h2 class=\"czm-cta-banner-title\">\r\n        Let\u2019s talk about<br \/>your next big move\r\n      <\/h2>\r\n\r\n      <p class=\"czm-cta-banner-subtitle\">\r\n        Hop on a call with us to see how our<br \/>services can accelerate your\r\n        growth.\r\n      <\/p>\r\n\r\n      <div class=\"czm-cta-banner-btn-wrap\">\r\n        <a\r\n          href=\"https:\/\/cozmotec.ie\/staging\/7865\/contact-us\/\"\r\n          class=\"czm-btn-pill-pink czm-btn-cta-pink\"\r\n        >\r\n          <span>Book a Call<\/span>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Active Elementor Full-Bleed Ancestor Unclip Guard -->\r\n    <script>\r\n      (function initCtaFullBleed() {\r\n        function unclipCta() {\r\n          var cta = document.getElementById(\"cta\");\r\n          if (!cta) return;\r\n          var el = cta.parentElement;\r\n          while (el && el !== document.documentElement) {\r\n            var s = window.getComputedStyle(el);\r\n            if (s.overflow === \"hidden\" || s.overflowX === \"hidden\") {\r\n              el.style.setProperty(\"overflow\", \"visible\", \"important\");\r\n              el.style.setProperty(\"overflow-x\", \"visible\", \"important\");\r\n            }\r\n            if (\r\n              el.classList.contains(\"elementor-container\") ||\r\n              el.classList.contains(\"e-con-inner\") ||\r\n              el.classList.contains(\"e-con\") ||\r\n              el.classList.contains(\"elementor-widget-container\") ||\r\n              el.classList.contains(\"elementor-widget-wrap\")\r\n            ) {\r\n              el.style.setProperty(\"padding-left\", \"0px\", \"important\");\r\n              el.style.setProperty(\"padding-right\", \"0px\", \"important\");\r\n              el.style.setProperty(\"max-width\", \"100%\", \"important\");\r\n            }\r\n            el = el.parentElement;\r\n          }\r\n        }\r\n        if (document.readyState === \"loading\") {\r\n          document.addEventListener(\"DOMContentLoaded\", unclipCta);\r\n        } else {\r\n          unclipCta();\r\n        }\r\n        window.addEventListener(\"resize\", unclipCta);\r\n        setTimeout(unclipCta, 50);\r\n        setTimeout(unclipCta, 250);\r\n      })();\r\n    <\/script>\r\n  <\/section>\r\n\r\n  <!-- ========================================================================\r\n       SECTION 4: CONTACT DETAILS & DIRECT QUERY FORM\r\n       ======================================================================== -->\r\n  <section class=\"czm-section czm-about-query-section\" id=\"contact-queries\">\r\n    <div class=\"czm-about-query-ambient-glow\" aria-hidden=\"true\"><\/div>\r\n\r\n    <div class=\"czm-container\">\r\n      <div class=\"czm-about-query-layout\">\r\n        <!-- Left Side: Heading & Contact Info -->\r\n        <div class=\"czm-about-query-left\">\r\n          <h2 class=\"czm-query-sec-title\">\r\n            Ask whatever you<br \/>have in your mind\r\n          <\/h2>\r\n          <p class=\"czm-query-sec-subtitle\">\r\n            Whether you have questions or are ready to discuss your business,\r\n            we\u2019re here to help. Reach out today.\r\n          <\/p>\r\n\r\n          <div class=\"czm-about-contact-items\">\r\n            <a href=\"mailto:info@cozmotec.ie\" class=\"czm-about-contact-row\">\r\n              <div class=\"czm-about-contact-icon\">\r\n                <svg\r\n                  viewBox=\"0 0 24 24\"\r\n                  width=\"18\"\r\n                  height=\"18\"\r\n                  fill=\"none\"\r\n                  stroke=\"currentColor\"\r\n                  stroke-width=\"2\"\r\n                  stroke-linecap=\"round\"\r\n                  stroke-linejoin=\"round\"\r\n                >\r\n                  <path\r\n                    d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\r\n                  ><\/path>\r\n                  <polyline points=\"22,6 12,13 2,6\"><\/polyline>\r\n                <\/svg>\r\n              <\/div>\r\n              <span class=\"czm-about-contact-val\">info@cozmotec.ie<\/span>\r\n            <\/a>\r\n\r\n            <a\r\n              href=\"https:\/\/cozmotec.ie\"\r\n              target=\"_blank\"\r\n              rel=\"noopener noreferrer\"\r\n              class=\"czm-about-contact-row\"\r\n            >\r\n              <div class=\"czm-about-contact-icon\">\r\n                <svg\r\n                  viewBox=\"0 0 24 24\"\r\n                  width=\"18\"\r\n                  height=\"18\"\r\n                  fill=\"none\"\r\n                  stroke=\"currentColor\"\r\n                  stroke-width=\"2\"\r\n                  stroke-linecap=\"round\"\r\n                  stroke-linejoin=\"round\"\r\n                >\r\n                  <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                  <line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"><\/line>\r\n                  <path\r\n                    d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\r\n                  ><\/path>\r\n                <\/svg>\r\n              <\/div>\r\n              <span class=\"czm-about-contact-val\">cozmotec.ie<\/span>\r\n            <\/a>\r\n\r\n            <div class=\"czm-about-contact-row\">\r\n              <div class=\"czm-about-contact-icon\">\r\n                <svg\r\n                  viewBox=\"0 0 24 24\"\r\n                  width=\"18\"\r\n                  height=\"18\"\r\n                  fill=\"none\"\r\n                  stroke=\"currentColor\"\r\n                  stroke-width=\"2\"\r\n                  stroke-linecap=\"round\"\r\n                  stroke-linejoin=\"round\"\r\n                >\r\n                  <path\r\n                    d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\r\n                  ><\/path>\r\n                  <circle cx=\"12\" cy=\"10\" r=\"3\"><\/circle>\r\n                <\/svg>\r\n              <\/div>\r\n              <span class=\"czm-about-contact-val\">Dublin, Ireland<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Right Side: Contact Query Form -->\r\n        <div class=\"czm-about-query-right\">\r\n          <div\r\n            class=\"czm-about-query-card\"\r\n            style=\"\r\n              background-color: #f1e8e2 !important;\r\n              background: #f1e8e2 !important;\r\n              border: 1px solid rgba(201, 38, 107, 0.28) !important;\r\n            \"\r\n          >\r\n            <form\r\n              class=\"czm-about-form\"\r\n              id=\"czm-about-query-form\"\r\n              method=\"POST\"\r\n              onsubmit=\"handleCozmotecFormSubmit(event)\"\r\n            >\r\n              <input type=\"hidden\" name=\"service\" value=\"General Inquiry\" \/>\r\n\r\n              <div class=\"czm-aform-field\">\r\n                <label class=\"czm-aform-label\" for=\"czm-ab-name\">Name<\/label>\r\n                <input\r\n                  type=\"text\"\r\n                  id=\"czm-ab-name\"\r\n                  name=\"name\"\r\n                  class=\"czm-aform-input\"\r\n                  placeholder=\"Jane Smith\"\r\n                  required\r\n                \/>\r\n              <\/div>\r\n\r\n              <div class=\"czm-aform-field\">\r\n                <label class=\"czm-aform-label\" for=\"czm-ab-email\">Email<\/label>\r\n                <input\r\n                  type=\"email\"\r\n                  id=\"czm-ab-email\"\r\n                  name=\"email\"\r\n                  class=\"czm-aform-input\"\r\n                  placeholder=\"jane@framer.com\"\r\n                  required\r\n                \/>\r\n              <\/div>\r\n\r\n              <div class=\"czm-aform-field\">\r\n                <label class=\"czm-aform-label\" for=\"czm-ab-msg\">Message<\/label>\r\n                <textarea\r\n                  id=\"czm-ab-msg\"\r\n                  name=\"message\"\r\n                  class=\"czm-aform-textarea\"\r\n                  rows=\"4\"\r\n                  placeholder=\"Hi, I am reaching out for...\"\r\n                  required\r\n                ><\/textarea>\r\n              <\/div>\r\n\r\n              <button\r\n                type=\"submit\"\r\n                class=\"czm-query-submit-btn czm-btn-full\"\r\n                style=\"\r\n                  display: flex !important;\r\n                  align-items: center !important;\r\n                  justify-content: center !important;\r\n                  width: 100% !important;\r\n                  height: 48px !important;\r\n                  background-color: #b1386a !important;\r\n                  background: #b1386a !important;\r\n                  color: #ffffff !important;\r\n                  border: none !important;\r\n                  border-radius: 10px !important;\r\n                  padding: 13px 24px !important;\r\n                  font-family:\r\n                    &quot;Schibsted Grotesk&quot;,\r\n                    -apple-system,\r\n                    BlinkMacSystemFont,\r\n                    &quot;Helvetica Neue&quot;,\r\n                    Helvetica,\r\n                    Arial,\r\n                    sans-serif !important;\r\n                  font-size: 15px !important;\r\n                  font-weight: 600 !important;\r\n                  cursor: pointer !important;\r\n                  margin-top: 10px !important;\r\n                  box-shadow: 0 4px 14px rgba(177, 56, 106, 0.25) !important;\r\n                  opacity: 1 !important;\r\n                  visibility: visible !important;\r\n                \"\r\n              >\r\n                <span\r\n                  style=\"\r\n                    color: #ffffff !important;\r\n                    font-family:\r\n                      &quot;Schibsted Grotesk&quot;,\r\n                      -apple-system,\r\n                      BlinkMacSystemFont,\r\n                      &quot;Helvetica Neue&quot;,\r\n                      Helvetica,\r\n                      Arial,\r\n                      sans-serif !important;\r\n                    font-size: 15px !important;\r\n                    font-weight: 600 !important;\r\n                    opacity: 1 !important;\r\n                    visibility: visible !important;\r\n                  \"\r\n                  >Submit<\/span\r\n                >\r\n              <\/button>\r\n            <\/form>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <!-- Interactive Toast Notification for Coming Soon Articles -->\r\n  <div class=\"czm-blog-toast\" id=\"czm-blog-toast\" aria-live=\"polite\">\r\n    <div class=\"czm-blog-toast-content\">\r\n      <div class=\"czm-blog-toast-icon\">\u2728<\/div>\r\n      <div class=\"czm-blog-toast-body\">\r\n        <strong id=\"czm-toast-title\">Article Coming Soon<\/strong>\r\n        <p>This insight is being finalized and will be published shortly.<\/p>\r\n      <\/div>\r\n      <button\r\n        type=\"button\"\r\n        class=\"czm-blog-toast-close\"\r\n        id=\"czm-toast-close\"\r\n        aria-label=\"Close notification\"\r\n      >\r\n        &times;\r\n      <\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- ==========================================================================\r\n     CSS STYLES (STRICT WORDPRESS ISOLATION & LUXURY DARK THEMING)\r\n     ========================================================================== -->\r\n\r\n<!-- ==========================================================================\r\n     JAVASCRIPT LOGIC (EXACT QUANTUM MATRIX HERO + CARD SPOTLIGHT + TOAST)\r\n     ========================================================================== -->\r\n<script>\r\n  (function () {\r\n    \"use strict\";\r\n\r\n    \/\/ ============================================================\r\n    \/\/ DYNAMIC BLOG LOADER (WORDPRESS REST API + REAL TIME PAGINATION)\r\n    \/\/ ============================================================\r\n    var currentPage = 1;\r\n    var postsPerPage = 9;\r\n\r\n    function decodeHtml(html) {\r\n      var txt = document.createElement(\"textarea\");\r\n      txt.innerHTML = html;\r\n      return txt.value;\r\n    }\r\n\r\n    function initCardSpotlight() {\r\n      var cards = document.querySelectorAll(\".czm-blog-card\");\r\n      cards.forEach(function (card) {\r\n        card.addEventListener(\"mousemove\", function (e) {\r\n          var rect = card.getBoundingClientRect();\r\n          var x = e.clientX - rect.left;\r\n          var y = e.clientY - rect.top;\r\n          card.style.setProperty(\"--card-mouse-x\", x + \"px\");\r\n          card.style.setProperty(\"--card-mouse-y\", y + \"px\");\r\n        });\r\n      });\r\n    }\r\n\r\n    function fetchCozmotecBlogs(page) {\r\n      var grid = document.getElementById(\"czm-blogs-grid\");\r\n      if (!grid) return;\r\n\r\n      var origin = window.location.origin;\r\n      var isStaging = window.location.pathname.indexOf(\"\/staging\/7865\") !== -1;\r\n      var basePrefix = isStaging ? \"\/staging\/7865\" : \"\";\r\n      \r\n      \/\/ If run locally on file:\/\/ protocol or non-WordPress origin, skip network fetch to keep pre-rendered cards\r\n      if (!origin || origin === \"null\" || window.location.protocol === \"file:\") {\r\n        renderPagination(8, page);\r\n        return;\r\n      }\r\n\r\n      var endpoint = origin + basePrefix + \"\/wp-json\/wp\/v2\/posts?_embed&per_page=\" + postsPerPage + \"&page=\" + page;\r\n\r\n      \/\/ Show sleek loading indicator\r\n      grid.innerHTML = '<div class=\"czm-blog-loading\"><div class=\"czm-blog-spinner\"><\/div><span>Loading insights...<\/span><\/div>';\r\n\r\n      fetch(endpoint, {\r\n        headers: {\r\n          \"Accept\": \"application\/json\"\r\n        }\r\n      })\r\n      .then(function (res) {\r\n        if (!res.ok) throw new Error(\"Network response was not ok: \" + res.status);\r\n        var totalPages = parseInt(res.headers.get(\"X-WP-TotalPages\") || \"8\", 10);\r\n        var totalPosts = parseInt(res.headers.get(\"X-WP-Total\") || \"69\", 10);\r\n        return res.json().then(function (posts) {\r\n          return { posts: posts, totalPages: totalPages, totalPosts: totalPosts };\r\n        });\r\n      })\r\n      .then(function (data) {\r\n        renderBlogCards(data.posts);\r\n        renderPagination(data.totalPages, page);\r\n      })\r\n      .catch(function (err) {\r\n        console.warn(\"Could not fetch dynamic blogs via REST API:\", err);\r\n      });\r\n    }\r\n\r\n    function renderBlogCards(posts) {\r\n      var grid = document.getElementById(\"czm-blogs-grid\");\r\n      if (!grid || !posts || !posts.length) return;\r\n      grid.innerHTML = \"\";\r\n\r\n      posts.forEach(function (post, idx) {\r\n        var rawTitle = post.title && post.title.rendered ? post.title.rendered : \"Blog Post\";\r\n        var cleanTitle = decodeHtml(rawTitle);\r\n        var link = post.link || \"#\";\r\n\r\n        \/\/ Extract featured image\r\n        var media = post._embedded && post._embedded[\"wp:featuredmedia\"] ? post._embedded[\"wp:featuredmedia\"][0] : null;\r\n        var imgUrl = media && media.source_url ? media.source_url : \"https:\/\/framerusercontent.com\/images\/K36fjg0qQfLo5AHTQuphPtQrHw.png\";\r\n\r\n        \/\/ Extract category name\r\n        var terms = post._embedded && post._embedded[\"wp:term\"] ? post._embedded[\"wp:term\"] : [];\r\n        var catName = \"Insights\";\r\n        if (terms.length > 0) {\r\n          for (var i = 0; i < terms.length; i++) {\r\n            var sub = terms[i];\r\n            for (var j = 0; j < sub.length; j++) {\r\n              if (sub[j].taxonomy === \"category\" && sub[j].name && sub[j].name.toLowerCase() !== \"uncategorized\") {\r\n                catName = sub[j].name;\r\n                break;\r\n              }\r\n            }\r\n            if (catName !== \"Insights\") break;\r\n          }\r\n        }\r\n\r\n        var tagBadge = (currentPage === 1 && idx === 0) ? \"Featured Story\" : catName;\r\n\r\n        \/\/ Format publication date\r\n        var postDate = new Date(post.date);\r\n        var formattedDate = !isNaN(postDate.getTime()) \r\n          ? postDate.toLocaleDateString(\"en-GB\", { day: \"numeric\", month: \"long\", year: \"numeric\" })\r\n          : \"Recently Published\";\r\n\r\n        \/\/ Calculate estimated reading time\r\n        var contentText = post.content && post.content.rendered ? post.content.rendered.replace(\/<[^>]+>\/g, '') : '';\r\n        var wordCount = contentText.trim().split(\/\\s+\/).length;\r\n        var readTime = Math.max(3, Math.ceil(wordCount \/ 200)) + \" min read\";\r\n\r\n        \/\/ Create 3D card element\r\n        var card = document.createElement(\"article\");\r\n        card.className = \"czm-blog-card czm-card-3d\";\r\n        card.setAttribute(\"data-status\", \"live\");\r\n        card.innerHTML = \r\n          '<a href=\"' + link + '\" class=\"czm-blog-card-link\" aria-label=\"Read full article: ' + cleanTitle.replace(\/\"\/g, '&quot;') + '\">' +\r\n            '<div class=\"czm-blog-img-wrap\">' +\r\n              '<img decoding=\"async\" src=\"' + imgUrl + '\" alt=\"' + cleanTitle.replace(\/\"\/g, '&quot;') + '\" class=\"czm-blog-img\" loading=\"lazy\" \/>' +\r\n              '<div class=\"czm-blog-tag-badge czm-tag-active\">' + tagBadge + '<\/div>' +\r\n              '<div class=\"czm-blog-card-spotlight\"><\/div>' +\r\n            '<\/div>' +\r\n            '<div class=\"czm-blog-info\">' +\r\n              '<h3 class=\"czm-blog-title\">' + cleanTitle + '<\/h3>' +\r\n              '<div class=\"czm-blog-meta\">' +\r\n                '<span class=\"czm-blog-date\">' + formattedDate + '<\/span>' +\r\n                '<span class=\"czm-blog-read-time\">\u00b7 ' + readTime + '<\/span>' +\r\n              '<\/div>' +\r\n            '<\/div>' +\r\n          '<\/a>';\r\n\r\n        grid.appendChild(card);\r\n      });\r\n\r\n      \/\/ Bind mouse tracking \/ spotlight on newly injected cards\r\n      initCardSpotlight();\r\n    }\r\n\r\n    function renderPagination(totalPages, activePage) {\r\n      var container = document.getElementById(\"czm-blog-pagination\");\r\n      if (!container) return;\r\n      if (totalPages <= 1) {\r\n        container.innerHTML = \"\";\r\n        return;\r\n      }\r\n\r\n      var html = \"\";\r\n\r\n      \/\/ Previous Button\r\n      if (activePage > 1) {\r\n        html += '<button type=\"button\" class=\"czm-page-btn\" data-page=\"' + (activePage - 1) + '\" aria-label=\"Previous Page\">\u2190 Prev<\/button>';\r\n      } else {\r\n        html += '<button type=\"button\" class=\"czm-page-btn disabled\" disabled aria-label=\"Previous Page\">\u2190 Prev<\/button>';\r\n      }\r\n\r\n      \/\/ Page numbers with smart ellipsis\r\n      for (var p = 1; p <= totalPages; p++) {\r\n        if (p === 1 || p === totalPages || (p >= activePage - 1 && p <= activePage + 1)) {\r\n          var activeClass = p === activePage ? \" active\" : \"\";\r\n          html += '<button type=\"button\" class=\"czm-page-btn' + activeClass + '\" data-page=\"' + p + '\">' + p + '<\/button>';\r\n        } else if (p === activePage - 2 || p === activePage + 2) {\r\n          html += '<span class=\"czm-page-ellipsis\">\u2026<\/span>';\r\n        }\r\n      }\r\n\r\n      \/\/ Next Button\r\n      if (activePage < totalPages) {\r\n        html += '<button type=\"button\" class=\"czm-page-btn\" data-page=\"' + (activePage + 1) + '\" aria-label=\"Next Page\">Next \u2192<\/button>';\r\n      } else {\r\n        html += '<button type=\"button\" class=\"czm-page-btn disabled\" disabled aria-label=\"Next Page\">Next \u2192<\/button>';\r\n      }\r\n\r\n      container.innerHTML = html;\r\n      bindPaginationClicks();\r\n    }\r\n\r\n    function bindPaginationClicks() {\r\n      var container = document.getElementById(\"czm-blog-pagination\");\r\n      if (!container) return;\r\n      var buttons = container.querySelectorAll(\".czm-page-btn:not(.disabled)\");\r\n      buttons.forEach(function (btn) {\r\n        btn.addEventListener(\"click\", function (e) {\r\n          e.preventDefault();\r\n          var targetPage = parseInt(btn.getAttribute(\"data-page\"), 10);\r\n          if (!isNaN(targetPage) && targetPage !== currentPage) {\r\n            currentPage = targetPage;\r\n            fetchCozmotecBlogs(targetPage);\r\n            var gridSection = document.getElementById(\"blogs-grid-section\");\r\n            if (gridSection) {\r\n              gridSection.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n            }\r\n          }\r\n        });\r\n      });\r\n    }\r\n\r\n    \/\/ Initialize Card Spotlight and Dynamic Loader\r\n    function initAll() {\r\n      initCardSpotlight();\r\n      bindPaginationClicks();\r\n      fetchCozmotecBlogs(1);\r\n    }\r\n\r\n    if (document.readyState === \"loading\") {\r\n      document.addEventListener(\"DOMContentLoaded\", initAll);\r\n    } else {\r\n      initAll();\r\n    }\r\n  })();\r\n<\/script>\r\n\r\n<!-- ========================================================================\r\n     SHADER GRADIENT \u2014 VANILLA ESM \/ WORDPRESS GPU SHADER INTEGRATION\r\n     ======================================================================== -->\r\n<!--\r\n  SHADER GRADIENT \u2014 vanilla ESM \/ WordPress version\r\n  ==============================================================\r\n-->\r\n<!--\r\n  QUANTUM MORPHING MATRIX \u2014 vanilla JS \/ WordPress version\r\n  ==========================================================\r\n-->\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/build\/three.min.js\"><\/script>\r\n<script>\r\n  (function () {\r\n    \"use strict\";\r\n\r\n    \/\/ ============================================================\r\n    \/\/ CONFIG \u2014 edit these instead of Framer's property panel\r\n    \/\/ ============================================================\r\n    var CONFIG = {\r\n      enablePreview: true,\r\n\r\n      \/\/ Colors\r\n      bgColor: \"#000002\",\r\n      colorSphere: \"#C9266B\", \/\/ Globe color\r\n      sphereBrightness: 1.0, \/\/ Left at 1.0 so the sphere renders as true #C9266B, no brighten\/dull shift\r\n\r\n      \/\/ Particles\r\n      particleCount: 12000, \/\/ Balanced for 60fps across most devices\r\n      particleSizeSphere: 0.07,\r\n      particleOpacity: 1.0,\r\n      glowIntensity: 80, \/\/ Bumped up so the globe reads brighter\r\n      fogDensity: 0.03,\r\n\r\n      \/\/ Spin \/ Motion\r\n      spinStyle: \"smooth\", \/\/ \"smooth\" | \"tumble\" | \"wobble\"\r\n      spinSpeedX: 0.1,\r\n      spinSpeedY: 0.1,\r\n      spinSpeedZ: 0.1,\r\n      parallaxStrength: 2.0,\r\n      globeScale: 1,\r\n\r\n      \/\/ Cursor Attraction (active once the globe has formed)\r\n      enableDistortion: true,\r\n      distortRadius: 9.0,\r\n      distortAmount: 0.8,\r\n      distortSpeed: 2.0,\r\n    };\r\n\r\n    \/\/ ============================================================\r\n    \/\/ Init \u2014 runs once Three.js and the DOM are ready\r\n    \/\/ ============================================================\r\n    function init() {\r\n      var mount = document.getElementById(\"quantum-morphing-matrix\");\r\n      if (!mount) return;\r\n\r\n      if (\r\n        typeof window === \"undefined\" ||\r\n        typeof THREE === \"undefined\" ||\r\n        !CONFIG.enablePreview\r\n      ) {\r\n        renderFallback(\r\n          mount,\r\n          !CONFIG.enablePreview ? \"3D Preview Disabled\" : \"3D Not Supported\",\r\n        );\r\n        return;\r\n      }\r\n\r\n      \/\/ 2. Scene Setup\r\n      var scene = new THREE.Scene();\r\n      scene.fog = new THREE.FogExp2(CONFIG.bgColor, CONFIG.fogDensity);\r\n\r\n      var camera = new THREE.PerspectiveCamera(\r\n        60,\r\n        mount.clientWidth \/ mount.clientHeight,\r\n        0.1,\r\n        1000,\r\n      );\r\n      camera.position.z = 12;\r\n\r\n      var renderer;\r\n      try {\r\n        renderer = new THREE.WebGLRenderer({\r\n          alpha: true,\r\n          antialias: true,\r\n          powerPreference: \"high-performance\",\r\n        });\r\n      } catch (e) {\r\n        renderFallback(mount, \"3D Not Supported\");\r\n        return;\r\n      }\r\n      renderer.setSize(mount.clientWidth, mount.clientHeight);\r\n      renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\r\n      renderer.domElement.style.filter =\r\n        \"drop-shadow(0px 0px \" +\r\n        CONFIG.glowIntensity +\r\n        \"px \" +\r\n        CONFIG.colorSphere +\r\n        \")\";\r\n      mount.appendChild(renderer.domElement);\r\n\r\n      \/\/ 2b. Soft Circular Particle Texture\r\n      function createCircleTexture() {\r\n        var canvas = document.createElement(\"canvas\");\r\n        canvas.width = 64;\r\n        canvas.height = 64;\r\n        var ctx = canvas.getContext(\"2d\");\r\n        var gradient = ctx.createRadialGradient(32, 32, 0, 32, 32, 32);\r\n        gradient.addColorStop(0, \"rgba(255,255,255,1)\");\r\n        gradient.addColorStop(0.4, \"rgba(255,255,255,0.9)\");\r\n        gradient.addColorStop(1, \"rgba(255,255,255,0)\");\r\n        ctx.fillStyle = gradient;\r\n        ctx.fillRect(0, 0, 64, 64);\r\n        var texture = new THREE.CanvasTexture(canvas);\r\n        texture.needsUpdate = true;\r\n        return texture;\r\n      }\r\n      var particleTexture = createCircleTexture();\r\n\r\n      \/\/ 3. Mathematical Pre-Calculation of States\r\n      var particleCount = CONFIG.particleCount;\r\n\r\n      var posSphere = new Float32Array(particleCount * 3);\r\n      var colSphere = new Float32Array(particleCount * 3);\r\n\r\n      var cSphere = new THREE.Color(CONFIG.colorSphere);\r\n\r\n      for (var i = 0; i < particleCount; i++) {\r\n        var i3 = i * 3;\r\n\r\n        var phi = Math.acos(1 - (2 * (i + 0.5)) \/ particleCount);\r\n        var theta = Math.PI * (1 + Math.sqrt(5)) * i;\r\n        var rSphere = 4.5;\r\n        posSphere[i3] = rSphere * Math.cos(theta) * Math.sin(phi);\r\n        posSphere[i3 + 1] = rSphere * Math.sin(theta) * Math.sin(phi);\r\n        posSphere[i3 + 2] = rSphere * Math.cos(phi);\r\n        colSphere[i3] = cSphere.r;\r\n        colSphere[i3 + 1] = cSphere.g;\r\n        colSphere[i3 + 2] = cSphere.b;\r\n      }\r\n\r\n      \/\/ Active Geometry Setup\r\n      var geometry = new THREE.BufferGeometry();\r\n      var currentPositions = new Float32Array(posSphere);\r\n      var currentColors = new Float32Array(colSphere);\r\n\r\n      geometry.setAttribute(\r\n        \"position\",\r\n        new THREE.BufferAttribute(currentPositions, 3),\r\n      );\r\n      geometry.setAttribute(\r\n        \"color\",\r\n        new THREE.BufferAttribute(currentColors, 3),\r\n      );\r\n\r\n      var material = new THREE.PointsMaterial({\r\n        size: CONFIG.particleSizeSphere,\r\n        map: particleTexture,\r\n        vertexColors: true,\r\n        transparent: true,\r\n        opacity: CONFIG.particleOpacity,\r\n        blending: THREE.AdditiveBlending,\r\n        depthWrite: false,\r\n        alphaTest: 0.01,\r\n      });\r\n\r\n      var particleSystem = new THREE.Points(geometry, material);\r\n      var spinGroup = new THREE.Group();\r\n      spinGroup.add(particleSystem);\r\n      spinGroup.scale.setScalar(CONFIG.globeScale);\r\n      scene.add(spinGroup);\r\n\r\n      \/\/ 4. Interaction Variables\r\n      var mouseX = 0,\r\n        mouseY = 0;\r\n      var isVisible = false;\r\n      var isHovering = false;\r\n      var hoverStrength = 0;\r\n\r\n      function onMouseMove(e) {\r\n        var rect = mount.getBoundingClientRect();\r\n        if (!rect) return;\r\n        mouseX = ((e.clientX - rect.left) \/ rect.width) * 2 - 1;\r\n        mouseY = -((e.clientY - rect.top) \/ rect.height) * 2 + 1;\r\n        isHovering =\r\n          e.clientX >= rect.left &&\r\n          e.clientX <= rect.right &&\r\n          e.clientY >= rect.top &&\r\n          e.clientY <= rect.bottom;\r\n      }\r\n      window.addEventListener(\"mousemove\", onMouseMove);\r\n\r\n      function onMouseLeaveWindow() {\r\n        isHovering = false;\r\n      }\r\n      window.addEventListener(\"mouseout\", onMouseLeaveWindow);\r\n\r\n      var raycaster = new THREE.Raycaster();\r\n      var mouseVec = new THREE.Vector2();\r\n      var plane = new THREE.Plane(new THREE.Vector3(0, 0, 1), 0);\r\n      var worldHoverPoint = new THREE.Vector3();\r\n      var localHoverPoint = new THREE.Vector3();\r\n      var inverseMatrix = new THREE.Matrix4();\r\n\r\n      \/\/ 6. Animation Loop\r\n      var animationFrameId;\r\n      var clock = new THREE.Clock();\r\n      var scaledTime = 0;\r\n\r\n      function animate() {\r\n        if (!isVisible) return;\r\n        animationFrameId = requestAnimationFrame(animate);\r\n        var delta = clock.getDelta();\r\n\r\n        var sphereWeight = 1;\r\n        scaledTime += delta;\r\n        var time = scaledTime;\r\n\r\n        \/\/ Spin logic\r\n        switch (CONFIG.spinStyle) {\r\n          case \"tumble\":\r\n            spinGroup.rotation.x = time * CONFIG.spinSpeedX;\r\n            spinGroup.rotation.y = time * CONFIG.spinSpeedY;\r\n            spinGroup.rotation.z = time * CONFIG.spinSpeedZ;\r\n            break;\r\n          case \"wobble\":\r\n            spinGroup.rotation.y = time * CONFIG.spinSpeedY;\r\n            spinGroup.rotation.x = Math.sin(time * CONFIG.spinSpeedX) * 0.3;\r\n            spinGroup.rotation.z =\r\n              Math.cos(time * CONFIG.spinSpeedZ * 0.7) * 0.15;\r\n            break;\r\n          case \"smooth\":\r\n          default:\r\n            spinGroup.rotation.y = time * CONFIG.spinSpeedY;\r\n            spinGroup.rotation.x += (0 - spinGroup.rotation.x) * 0.05;\r\n            break;\r\n        }\r\n\r\n        var hoverTarget = isHovering ? 1 : 0;\r\n        hoverStrength += (hoverTarget - hoverStrength) * 0.1;\r\n\r\n        var attractionActive =\r\n          CONFIG.enableDistortion &&\r\n          sphereWeight > 0.001 &&\r\n          hoverStrength > 0.001;\r\n\r\n        if (attractionActive) {\r\n          mouseVec.set(mouseX, mouseY);\r\n          raycaster.setFromCamera(mouseVec, camera);\r\n          raycaster.ray.intersectPlane(plane, worldHoverPoint);\r\n          spinGroup.updateMatrixWorld();\r\n          inverseMatrix.copy(spinGroup.matrixWorld).invert();\r\n          localHoverPoint.copy(worldHoverPoint).applyMatrix4(inverseMatrix);\r\n        }\r\n\r\n        var radius = CONFIG.distortRadius;\r\n        var radiusSq = radius * radius;\r\n        var maxPull = Math.min(CONFIG.distortAmount, 0.95);\r\n        var rippleSpeed = CONFIG.distortSpeed;\r\n\r\n        var posAttr = geometry.attributes.position;\r\n        var colAttr = geometry.attributes.color;\r\n        var curP = posAttr.array;\r\n        var curC = colAttr.array;\r\n\r\n        for (var i = 0; i < particleCount; i++) {\r\n          var i3 = i * 3;\r\n\r\n          var px = posSphere[i3];\r\n          var py = posSphere[i3 + 1];\r\n          var pz = posSphere[i3 + 2];\r\n\r\n          curC[i3] = colSphere[i3];\r\n          curC[i3 + 1] = colSphere[i3 + 1];\r\n          curC[i3 + 2] = colSphere[i3 + 2];\r\n\r\n          \/\/ Cursor attraction\r\n          if (attractionActive) {\r\n            var dx = localHoverPoint.x - px;\r\n            var dy = localHoverPoint.y - py;\r\n            var dz = localHoverPoint.z - pz;\r\n            var distSq = dx * dx + dy * dy + dz * dz;\r\n\r\n            if (distSq < radiusSq && distSq > 0.0001) {\r\n              var dist = Math.sqrt(distSq);\r\n              var falloff = 1 - dist \/ radius;\r\n              var wobble = 1 + Math.sin(time * rippleSpeed + i * 0.05) * 0.15;\r\n              var pull =\r\n                falloff *\r\n                falloff *\r\n                maxPull *\r\n                hoverStrength *\r\n                sphereWeight *\r\n                wobble;\r\n              px += dx * pull;\r\n              py += dy * pull;\r\n              pz += dz * pull;\r\n            }\r\n          }\r\n\r\n          curP[i3] = px;\r\n          curP[i3 + 1] = py;\r\n          curP[i3 + 2] = pz;\r\n        }\r\n\r\n        posAttr.needsUpdate = true;\r\n        colAttr.needsUpdate = true;\r\n\r\n        camera.position.x +=\r\n          (mouseX * CONFIG.parallaxStrength - camera.position.x) * 0.05;\r\n        camera.position.y +=\r\n          (-mouseY * CONFIG.parallaxStrength - camera.position.y) * 0.05;\r\n        camera.lookAt(0, 0, 0);\r\n\r\n        renderer.render(scene, camera);\r\n      }\r\n\r\n      \/\/ 7. Observer & Resize\r\n      var observer = new IntersectionObserver(function (entries) {\r\n        entries.forEach(function (entry) {\r\n          isVisible = entry.isIntersecting;\r\n          if (isVisible) animate();\r\n          else cancelAnimationFrame(animationFrameId);\r\n        });\r\n      });\r\n      observer.observe(mount);\r\n\r\n      function onResize() {\r\n        if (!mount || !isVisible) return;\r\n        camera.aspect = mount.clientWidth \/ mount.clientHeight;\r\n        camera.updateProjectionMatrix();\r\n        renderer.setSize(mount.clientWidth, mount.clientHeight);\r\n      }\r\n      window.addEventListener(\"resize\", onResize);\r\n      var resizeObserver = new ResizeObserver(onResize);\r\n      resizeObserver.observe(mount);\r\n\r\n      \/\/ Cleanup if the element ever gets removed from the page\r\n      var cleanupObserver = new MutationObserver(function () {\r\n        if (!document.body.contains(mount)) {\r\n          window.removeEventListener(\"mousemove\", onMouseMove);\r\n          window.removeEventListener(\"mouseout\", onMouseLeaveWindow);\r\n          window.removeEventListener(\"resize\", onResize);\r\n          observer.disconnect();\r\n          resizeObserver.disconnect();\r\n          cleanupObserver.disconnect();\r\n          cancelAnimationFrame(animationFrameId);\r\n          geometry.dispose();\r\n          material.dispose();\r\n          particleTexture.dispose();\r\n          renderer.dispose();\r\n        }\r\n      });\r\n      cleanupObserver.observe(document.body, {\r\n        childList: true,\r\n        subtree: true,\r\n      });\r\n    }\r\n\r\n    function renderFallback(mount, message) {\r\n      mount.style.display = \"flex\";\r\n      mount.style.alignItems = \"center\";\r\n      mount.style.justifyContent = \"center\";\r\n      var badge = document.createElement(\"div\");\r\n      badge.textContent = message;\r\n      badge.style.cssText = [\r\n        \"color:\" + CONFIG.colorSphere,\r\n        \"opacity:0.8\",\r\n        \"font-family:system-ui,-apple-system,sans-serif\",\r\n        \"font-size:14px\",\r\n        \"font-weight:500\",\r\n        \"letter-spacing:1px\",\r\n        \"text-transform:uppercase\",\r\n        \"padding:12px 24px\",\r\n        \"border:1px solid \" + CONFIG.colorSphere,\r\n        \"border-radius:100px\",\r\n        \"background-color:rgba(0,0,0,0.5)\",\r\n        \"-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)\",\r\n      ].join(\";\");\r\n      mount.appendChild(badge);\r\n    }\r\n\r\n    if (document.readyState === \"loading\") {\r\n      document.addEventListener(\"DOMContentLoaded\", init);\r\n    } else {\r\n      init();\r\n    }\r\n  })();\r\n<\/script>\r\n\r\n<script type=\"importmap\">\r\n  {\r\n    \"imports\": {\r\n      \"react\": \"https:\/\/esm.sh\/react@18.3.1\",\r\n      \"react-dom\/client\": \"https:\/\/esm.sh\/react-dom@18.3.1\/client\",\r\n      \"three\": \"https:\/\/esm.sh\/three@0.160.0\",\r\n      \"three-stdlib\": \"https:\/\/esm.sh\/three-stdlib@2.29.6?deps=three@0.160.0\",\r\n      \"camera-controls\": \"https:\/\/esm.sh\/camera-controls@2.9.0?deps=three@0.160.0\",\r\n      \"@react-three\/fiber\": \"https:\/\/esm.sh\/@react-three\/fiber@8?deps=react@18.3.1,three@0.160.0\",\r\n      \"@shadergradient\/react\": \"https:\/\/esm.sh\/@shadergradient\/react@2?deps=react@18.3.1,three@0.160.0,@react-three\/fiber@8,three-stdlib@2.29.6,camera-controls@2.9.0\"\r\n    }\r\n  }\r\n<\/script>\r\n\r\n<script type=\"module\">\r\n  import React from \"react\";\r\n  import { createRoot } from \"react-dom\/client\";\r\n  import { ShaderGradientCanvas, ShaderGradient } from \"@shadergradient\/react\";\r\n\r\n  \/\/ ============================================================\r\n  \/\/ CONFIG \u2014 this is your pasted JSX, translated to plain values.\r\n  \/\/ Edit these instead of editing JSX props.\r\n  \/\/ ============================================================\r\n\r\n  \/\/ Props that control the <ShaderGradientCanvas> wrapper (the\r\n  \/\/ original Framer component also exposed these separately).\r\n  var CANVAS_CONFIG = {\r\n    pointerEvents: \"none\",\r\n    lazyLoad: false,\r\n    threshold: 0.1,\r\n    pixelDensity: 1,\r\n  };\r\n\r\n  \/\/ Props for the gradient itself \u2014 exactly what you provided.\r\n  var GRADIENT_CONFIG = {\r\n    animate: \"on\",\r\n    axesHelper: \"off\", \/\/ \"Axis: -\" in your panel = off\r\n    bgColor1: \"#000000\",\r\n    bgColor2: \"#000000\",\r\n    brightness: 0.3,\r\n    cAzimuthAngle: 210,\r\n    cDistance: 1.6,\r\n    cPolarAngle: 100,\r\n    cameraZoom: 1.4,\r\n    color1: \"#B01F5C\",\r\n    color2: \"#C9266B\",\r\n    color3: \"#000000\",\r\n    destination: \"onCanvas\",\r\n    embedMode: \"off\",\r\n    envPreset: \"city\",\r\n    format: \"gif\",\r\n    fov: 40,\r\n    frameRate: 10,\r\n    gizmoHelper: \"hide\",\r\n    grain: \"off\",\r\n    lightType: \"3d\",\r\n    pixelDensity: 1,\r\n    positionX: 1.3,\r\n    positionY: 2.1,\r\n    positionZ: 0.7,\r\n    range: \"disabled\",\r\n    rangeEnd: 40,\r\n    rangeStart: 0,\r\n    reflection: 0.1,\r\n    rotationX: -155,\r\n    rotationY: 340,\r\n    rotationZ: 220,\r\n    shader: \"defaults\",\r\n    type: \"waterPlane\",\r\n    uAmplitude: 0,\r\n    uDensity: 3.4,\r\n    uFrequency: 1.2,\r\n    uSpeed: 0.1,\r\n    uStrength: 2.4,\r\n    uTime: 0.2,\r\n    wireframe: false,\r\n  };\r\n\r\n  function init() {\r\n    var mounts = document.querySelectorAll(\r\n      \"#shader-gradient-root, #gradient-motion-bg, #gradient-motion-bg-cta, .czm-gradient-motion-bg\"\r\n    );\r\n    if (!mounts.length) return;\r\n\r\n    mounts.forEach(function (mount) {\r\n      if (mount.dataset.shaderInitialized) return;\r\n      mount.dataset.shaderInitialized = \"true\";\r\n      mount.innerHTML = \"\";\r\n      try {\r\n        var root = createRoot(mount);\r\n        root.render(\r\n          React.createElement(\r\n            ShaderGradientCanvas,\r\n            CANVAS_CONFIG,\r\n            React.createElement(ShaderGradient, GRADIENT_CONFIG)\r\n          )\r\n        );\r\n      } catch (err) {\r\n        console.warn(\"ShaderGradient initialization warning:\", err);\r\n      }\r\n    });\r\n  }\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", init);\r\n  } else {\r\n    init();\r\n  }\r\n<\/script>\r\n\r\n<!-- ========================================================================\r\n     ASYNCHRONOUS AJAX FORM SUBMIT HANDLER & REST API INTEGRATION\r\n     ======================================================================== -->\r\n<script>\r\n  function handleCozmotecFormSubmit(event) {\r\n    event.preventDefault();\r\n    const form = event.target;\r\n    const submitBtn = form.querySelector('button[type=\"submit\"]');\r\n    const submitBtnSpan = submitBtn ? submitBtn.querySelector(\"span\") : null;\r\n    const originalBtnText = submitBtnSpan\r\n      ? submitBtnSpan.textContent\r\n      : submitBtn\r\n        ? submitBtn.textContent\r\n        : \"Submit\";\r\n\r\n    \/\/ Remove existing error notification\r\n    const existingError = form.querySelector(\".czm-form-error-msg\");\r\n    if (existingError) {\r\n      existingError.remove();\r\n    }\r\n\r\n    \/\/ Collect form parameters\r\n    const formData = new FormData(form);\r\n    const data = {\r\n      name: (formData.get(\"name\") || \"\").trim(),\r\n      email: (formData.get(\"email\") || \"\").trim(),\r\n      service:\r\n        (formData.get(\"service\") || \"\").trim() ||\r\n        (document.querySelector(\".czm-single-hero-title\")\r\n          ? document.querySelector(\".czm-single-hero-title\").textContent.trim()\r\n          : document.title\r\n            ? document.title.split(\"\u2013\")[0].split(\"|\")[0].trim()\r\n            : \"General Inquiry\"),\r\n      message: (formData.get(\"message\") || \"\").trim(),\r\n    };\r\n\r\n    \/\/ UX Feedback: Show 'Sending...' and disable submit button\r\n    if (submitBtn) {\r\n      submitBtn.disabled = true;\r\n      if (submitBtnSpan) {\r\n        submitBtnSpan.textContent = \"Sending...\";\r\n      } else {\r\n        submitBtn.textContent = \"Sending...\";\r\n      }\r\n    }\r\n\r\n    \/\/ WordPress REST API endpoint\r\n    const endpoint = `${window.location.origin}${window.location.pathname.startsWith(\"\/staging\/7865\") ? \"\/staging\/7865\" : \"\"}\/wp-json\/cozmotec\/v1\/contact`;\r\n\r\n    fetch(endpoint, {\r\n      method: \"POST\",\r\n      headers: {\r\n        \"Content-Type\": \"application\/json\",\r\n        Accept: \"application\/json\",\r\n      },\r\n      body: JSON.stringify(data),\r\n    })\r\n      .then(function (response) {\r\n        if (response.ok) {\r\n          return response.json().catch(function () {\r\n            return { success: true };\r\n          });\r\n        } else {\r\n          throw new Error(\"Form submission failed\");\r\n        }\r\n      })\r\n      .then(function (result) {\r\n        \/\/ UX Feedback: Replace form content with clean green message\r\n        form.innerHTML = `\r\n      <div class=\"czm-form-success-box\" style=\"padding: 32px 24px; text-align: center; background: rgba(34, 197, 94, 0.1); border: 1px solid rgba(34, 197, 94, 0.3); border-radius: 16px; margin: 16px 0;\">\r\n        <div style=\"width: 48px; height: 48px; margin: 0 auto 16px; border-radius: 50%; background: rgba(34, 197, 94, 0.2); display: flex; align-items: center; justify-content: center;\">\r\n          <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#22c55e\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n            <polyline points=\"20 6 9 17 4 12\"><\/polyline>\r\n          <\/svg>\r\n        <\/div>\r\n        <h4 style=\"font-family: 'Outfit', sans-serif; font-size: 20px; font-weight: 600; color: #22c55e; margin: 0 0 8px;\">Message Sent<\/h4>\r\n        <p style=\"font-family: 'Schibsted Grotesk', sans-serif; font-size: 15px; color: #ffffff; margin: 0; line-height: 1.5;\">\r\n          Thank you! Your message has been sent successfully.\r\n        <\/p>\r\n      <\/div>\r\n    `;\r\n      })\r\n      .catch(function (error) {\r\n        \/\/ Restore button state\r\n        if (submitBtn) {\r\n          submitBtn.disabled = false;\r\n          if (submitBtnSpan) {\r\n            submitBtnSpan.textContent = originalBtnText;\r\n          } else {\r\n            submitBtn.textContent = originalBtnText;\r\n          }\r\n        }\r\n\r\n        \/\/ UX Feedback: Show inline red error message below submit button\r\n        const errorDiv = document.createElement(\"div\");\r\n        errorDiv.className = \"czm-form-error-msg\";\r\n        errorDiv.style.cssText =\r\n          'font-family: \"Schibsted Grotesk\", sans-serif; font-size: 14px; color: #ef4444; background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.3); border-radius: 8px; padding: 10px 14px; margin-top: 12px; text-align: center;';\r\n        errorDiv.textContent =\r\n          \"Something went wrong. Please try again or email us directly at info@cozmotec.ie.\";\r\n        form.appendChild(errorDiv);\r\n      });\r\n  }\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", function () {\r\n    document\r\n      .querySelectorAll(\"form.czm-query-form, form.czm-about-form\")\r\n      .forEach(function (f) {\r\n        f.addEventListener(\"submit\", handleCozmotecFormSubmit);\r\n      });\r\n  });\r\n<\/script>\r\n<script>\r\n  \/\/ ==========================================================================\r\n  \/\/ ZERO-FOUC SEARCH AUTOCOMPLETE & DROPDOWN DISPLAY TOGGLE\r\n  \/\/ ==========================================================================\r\n  (function initSearchDropdownGuards() {\r\n    function bindSearchEvents() {\r\n      var searchInputs = document.querySelectorAll(\r\n        '.czm-real-input, input[type=\"search\"], input.search-field, input[name=\"s\"]',\r\n      );\r\n      searchInputs.forEach(function (inp) {\r\n        var wrap =\r\n          inp.closest(\".czm-search-pill-wrap\") ||\r\n          inp.closest(\".czm-search-pill\") ||\r\n          inp.parentElement;\r\n        var dropdown = wrap\r\n          ? wrap.querySelector(\r\n              \".czm-search-autocomplete-dropdown, .czm-search-dropdown, .czm-search-suggestions, .czm-search-results, .czm-search-preview-popup, [data-search-dropdown]\",\r\n            )\r\n          : null;\r\n\r\n        if (dropdown) {\r\n          dropdown.style.setProperty(\"display\", \"none\", \"important\");\r\n\r\n          function showDropdown() {\r\n            dropdown.style.setProperty(\"display\", \"block\", \"important\");\r\n            dropdown.classList.add(\"is-active\");\r\n          }\r\n\r\n          function hideDropdown() {\r\n            dropdown.style.setProperty(\"display\", \"none\", \"important\");\r\n            dropdown.classList.remove(\"is-active\");\r\n          }\r\n\r\n          inp.addEventListener(\"focus\", showDropdown);\r\n          inp.addEventListener(\"input\", showDropdown);\r\n\r\n          inp.addEventListener(\"blur\", function () {\r\n            setTimeout(hideDropdown, 250);\r\n          });\r\n\r\n          document.addEventListener(\"click\", function (e) {\r\n            if (!wrap.contains(e.target) && !dropdown.contains(e.target)) {\r\n              hideDropdown();\r\n            }\r\n          });\r\n        }\r\n      });\r\n    }\r\n\r\n    if (document.readyState === \"loading\") {\r\n      document.addEventListener(\"DOMContentLoaded\", bindSearchEvents);\r\n    } else {\r\n      bindSearchEvents();\r\n    }\r\n  })();\r\n<\/script>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Insights, Stories &#038; Technology Results | Cozmotec Blog National Enterprise Award Winner 2025 Insights, Stories &amp; ResultsThat Drive Growth Stay ahead with practical insights on AI, automation, software, and digital transformation. Explore what we&#8217;re building, what we&#8217;re learning, and how technology is creating real business impact. Book a Call Featured Story Why Your Website Might [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","footnotes":""},"class_list":["post-3606","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/pages\/3606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/comments?post=3606"}],"version-history":[{"count":56,"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/pages\/3606\/revisions"}],"predecessor-version":[{"id":5180,"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/pages\/3606\/revisions\/5180"}],"wp:attachment":[{"href":"https:\/\/cozmotec.ie\/staging\/7865\/wp-json\/wp\/v2\/media?parent=3606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}