{"id":108,"date":"2024-09-17T10:54:19","date_gmt":"2024-09-17T10:54:19","guid":{"rendered":"https:\/\/srineevipowercontrols.com\/?page_id=108"},"modified":"2025-11-19T13:59:54","modified_gmt":"2025-11-19T13:59:54","slug":"index","status":"publish","type":"page","link":"https:\/\/srineevipowercontrols.com\/","title":{"rendered":"Home"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n<title>Seamless Continuous Image Scroller<\/title>\n<style>\n  :root{\n    --img-w: 160px;   \/* image width *\/\n    --img-h: 160px;   \/* image height *\/\n    --gap: 18px;      \/* gap between images *\/\n    --loop-seconds: 60; \/* time for one set to pass (seconds) *\/\n  }\n\n  body{\n    margin:0;\n    font-family: Arial, sans-serif;\n    background:#f4f6f9;\n    padding:20px;\n  }\n\n  .scroller {\n    width:100%;\n    overflow:hidden;\n    background:#fff;\n    border-radius:10px;\n    padding:12px;\n    box-sizing:border-box;\n  }\n\n  \/* track that will be translated by JS *\/\n  .scroller-track {\n    display:flex;\n    align-items:center;\n    gap: var(--gap);\n    will-change: transform;\n  }\n\n  .scroller-item {\n    width: var(--img-w);\n    height: var(--img-h);\n    flex: 0 0 var(--img-w);\n    display:block;\n    border-radius: 10px;\n    overflow:hidden;\n    box-shadow: 0 6px 18px rgba(11,38,77,0.06);\n    background:#f6f7f9;\n  }\n\n  .scroller-item img{\n    width:100%;\n    height:100%;\n    object-fit:cover;\n    display:block;\n    transition: transform .25s ease, box-shadow .25s ease;\n  }\n\n  .scroller-item:hover img{\n    transform:translateY(-4px) scale(1.03);\n    box-shadow: 0 18px 40px rgba(11,38,77,0.12);\n  }\n\n  \/* Pause indicator (optional) *\/\n  .hint {\n    margin-top:10px;\n    color:#666;\n    font-size:13px;\n  }\n\n  @media (max-width:640px){\n    :root{ --img-w: 120px; --img-h:120px; --gap:12px; --loop-seconds:40; }\n    .scroller { padding:10px; }\n  }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"scroller\" id=\"scroller\" aria-label=\"Image scroller \u2014 hover to pause\">\n  <div class=\"scroller-track\" id=\"scroller-track\" role=\"list\">\n    <!-- Put your original images here (order matters). JS will clone the whole set automatically -->\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.54_8b1f1f0f-1.jpg\" alt=\"Image 1\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.54_6e5bf902.jpg\" alt=\"Image 2\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.54_03a265a3.jpg\" alt=\"Image 3\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.53_e79f2f56.jpg\" alt=\"Image 4\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.53_ce204944.jpg\" alt=\"Image 5\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.53_a387dc00.jpg\" alt=\"Image 6\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.52_daed0065.jpg\" alt=\"Image 7\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-17-at-10.36.56_847181b2.jpg\" alt=\"Image 8\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-15-at-11.51.01_701e9d07.jpg\" alt=\"Image 9\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-15-at-11.20.03_baebd1ae.jpg\" alt=\"Image 10\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-15-at-11.20.03_b5fc5195.jpg\" alt=\"Image 11\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-15-at-11.20.03_4f1c3757.jpg\" alt=\"Image 12\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-14-at-19.33.17_d2fb9450.jpg\" alt=\"Image 13\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-12-at-12.20.55_d65ee81f.jpg\" alt=\"Image 14\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-12-at-12.22.17_66e6bb86.jpg\" alt=\"Image 15\"><\/a>\n    <a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-12-at-12.20.54_e2034687.jpg\" alt=\"Image 16\"><\/a>\n\n<a class=\"scroller-item\" role=\"listitem\" href=\"#\" tabindex=\"0\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-15-at-11.50.58_b2e6f5a7.jpg\" alt=\"Image 17\"><\/a>\n\n  <\/div>\n<\/div>\n\n<div class=\"hint\">Hover or touch the scroller to pause.<\/div>\n\n<script>\n(function(){\n  const scroller = document.getElementById('scroller');\n  const track = document.getElementById('scroller-track');\n\n  let setWidth = 0;        \/\/ width of the original set\n  let currentX = 0;        \/\/ current translateX offset (px)\n  let lastTime = null;\n  let rafId = null;\n  let paused = false;\n  const loopSeconds = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--loop-seconds')) || 60;\n\n  \/\/ Helper: compute width of one set (all child elements currently in track)\n  function computeSetWidth() {\n    \/\/ original items count (before cloning) - we treat first half as original\n    const children = Array.from(track.children);\n    \/\/ If we've already cloned, we may have 2x children. We detect original count by halving if duplicate appended.\n    \/\/ But simpler: measure width of first N where N equals the original items count stored on track.\n    \/\/ We'll store originalCount on track.dataset if not present.\n    let originalCount = parseInt(track.dataset.originalCount || 0, 10);\n    if (!originalCount) {\n      \/\/ assume current children are original (not yet cloned)\n      originalCount = children.length;\n      track.dataset.originalCount = originalCount;\n    }\n    \/\/ sum widths of first originalCount children including gaps\n    let w = 0;\n    for (let i=0; i<originalCount; i++){\n      const el = children[i];\n      const rect = el.getBoundingClientRect();\n      w += rect.width;\n    }\n    \/\/ add gap sizes between original items (gap property handled by flex gap; compute using getComputedStyle)\n    const style = getComputedStyle(track);\n    const gap = parseFloat(style.gap || style.columnGap || 0);\n    w += gap * (originalCount - 1);\n    return w;\n  }\n\n  \/\/ Clone original set to make seamless: duplicate children once and append.\n  function ensureCloned() {\n    const children = Array.from(track.children);\n    \/\/ If already cloned (we detect by checking dataset.cloneDone) skip\n    if (track.dataset.cloneDone === '1') return;\n    const originalChildren = children.slice(); \/\/ copy\n    originalChildren.forEach(node => {\n      const clone = node.cloneNode(true);\n      \/\/ remove id attributes to avoid duplicates (if any)\n      clone.removeAttribute('id');\n      track.appendChild(clone);\n    });\n    track.dataset.cloneDone = '1';\n    \/\/ set originalCount for computeSetWidth\n    track.dataset.originalCount = originalChildren.length;\n  }\n\n  \/\/ Resize handler: recompute widths and reset offset gracefully\n  function onResize() {\n    \/\/ measure set width\n    setWidth = computeSetWidth();\n    \/\/ If setWidth is 0 (images not loaded yet), wait and retry\n    if (!setWidth) {\n      \/\/ retry after images load\n      requestAnimationFrame(onResize);\n      return;\n    }\n    \/\/ ensure currentX within [0, setWidth)\n    currentX = currentX % setWidth;\n    \/\/ update CSS transform immediately\n    track.style.transform = `translateX(${-currentX}px)`;\n  }\n\n  function step(timestamp) {\n    if (paused) {\n      lastTime = timestamp;\n      rafId = requestAnimationFrame(step);\n      return;\n    }\n    if (!lastTime) lastTime = timestamp;\n    const dt = (timestamp - lastTime) \/ 1000; \/\/ seconds elapsed\n    lastTime = timestamp;\n\n    \/\/ speed such that setWidth pixels pass in loopSeconds\n    const speed = setWidth \/ loopSeconds; \/\/ px per second\n\n    currentX += speed * dt;\n\n    if (currentX >= setWidth) {\n      \/\/ reset seamlessly\n      currentX -= setWidth;\n    }\n\n    track.style.transform = `translateX(${-currentX}px)`;\n    rafId = requestAnimationFrame(step);\n  }\n\n  \/\/ Pause on hover\/touch\n  function addInteraction() {\n    scroller.addEventListener('mouseenter', () => paused = true);\n    scroller.addEventListener('mouseleave', () => paused = false);\n    scroller.addEventListener('touchstart', () => paused = true, {passive:true});\n    scroller.addEventListener('touchend', () => paused = false);\n    \/\/ keyboard focus pause\n    track.addEventListener('focusin', () => paused = true);\n    track.addEventListener('focusout', () => paused = false);\n  }\n\n  \/\/ Wait for images to load, then init\n  function waitImagesThenInit() {\n    const imgs = Array.from(track.querySelectorAll('img'));\n    let remaining = imgs.length;\n    if (remaining === 0) {\n      initScroller();\n      return;\n    }\n    imgs.forEach(img => {\n      if (img.complete) {\n        remaining--;\n      } else {\n        img.addEventListener('load', ()=> {\n          remaining--;\n          if (remaining === 0) initScroller();\n        });\n        img.addEventListener('error', ()=> {\n          \/\/ treat broken image as loaded to avoid lock\n          remaining--;\n          if (remaining === 0) initScroller();\n        });\n      }\n    });\n    \/\/ in case all were already complete\n    if (remaining === 0) initScroller();\n  }\n\n  function initScroller() {\n    ensureCloned();\n    \/\/ compute width\n    setWidth = computeSetWidth();\n    \/\/ if still zero (rare), try again later\n    if (!setWidth) {\n      setTimeout(initScroller, 50);\n      return;\n    }\n\n    \/\/ position initial\n    currentX = 0;\n    track.style.transform = `translateX(0px)`;\n\n    \/\/ start animation loop\n    lastTime = null;\n    rafId = requestAnimationFrame(step);\n\n    \/\/ add interaction handlers\n    addInteraction();\n\n    \/\/ handle window resize\n    window.addEventListener('resize', () => {\n      \/\/ recompute setWidth after resize (images may reflow)\n      setTimeout(onResize, 80);\n    });\n  }\n\n  \/\/ Kick-off\n  waitImagesThenInit();\n\n})();\n<\/script>\n\n<\/body>\n<\/html>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\" style=\"padding-top:var(--wp--preset--spacing--30);padding-right:0px;padding-bottom:var(--wp--preset--spacing--30);padding-left:0px\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-2ddc185a wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile unibiz-feature-container is-layout-flex wp-container-core-columns-is-layout-06053487 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-content-justification-left is-layout-constrained wp-container-core-column-is-layout-7b46d8c6 wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:100%\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Card Link Example<\/title>\n  <style>\n    .card {\n      width: 250px;\n      border-radius: 10px;\n      box-shadow: 0 4px 8px rgba(0,0,0,0.2);\n      overflow: hidden;\n      text-align: center;\n      background-color: #fff;\n      transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .card:hover {\n      transform: translateY(-5px);\n      box-shadow: 0 8px 16px rgba(0,0,0,0.3);\n    }\n\n    \/* Image styling *\/\n    .card img {\n      width: 100%;\n      height: 200px; \n      border-radius: 10px;\n      object-fit: cover;\n      background-color: #000;\n      display: block;\n    }\n\n    \/* Underlined caption styling *\/\n    .caption {\n      display: block;\n      padding: 12px;\n      font-size: 16px;\n      font-weight: bold;\n      color: #333;\n      text-decoration: underline;\n    }\n\n    .card a {\n      text-decoration: none;\n      color: inherit;\n      display: block;\n    }\n  <\/style>\n<\/head>\n<body>\n  <a href=\"https:\/\/srineevipowercontrols.com\/index.php\/service\/hpstudy#hpspage\">\n    <div class=\"card\">\n      <img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-14-at-19.33.19_7c325c27.jpg\" alt=\"Clickable Image\">\n      <span class=\"caption\">Harmonic &#038; Power Study<\/span>\n    <\/div>\n  <\/a>\n<\/body>\n<\/html>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-content-justification-left is-layout-constrained wp-container-core-column-is-layout-7b46d8c6 wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:100%\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Card Link Example<\/title>\n  <style>\n    .card {\n      width: 250px;\n      border-radius: 10px;\n      box-shadow: 0 4px 8px rgba(0,0,0,0.2);\n      overflow: hidden;\n      text-align: center;\n      background-color: #fff;\n      transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .card:hover {\n      transform: translateY(-5px);\n      box-shadow: 0 8px 16px rgba(0,0,0,0.3);\n    }\n\n    \/* Image styling *\/\n    .card img {\n      width: 100%;\n      height: 200px; \n      border-radius: 10px;\n      object-fit: cover;\n      background-color: #000;\n      display: block;\n    }\n\n    \/* Underlined caption *\/\n    .caption {\n      display: block;\n      padding: 12px;\n      font-size: 16px;\n      font-weight: bold;\n      color: #333;\n      text-decoration: underline;\n    }\n\n    .card a {\n      text-decoration: none;\n      color: inherit;\n      display: block;\n    }\n  <\/style>\n<\/head>\n<body>\n  <a href=\"https:\/\/srineevipowercontrols.com\/index.php\/service\/hpstudy#EApage\">\n    <div class=\"card\">\n      <img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-14-at-19.33.17_b7446aea.jpg\" alt=\"Clickable Image\">\n      <span class=\"caption\">Energy Audit<\/span>\n    <\/div>\n  <\/a>\n<\/body>\n<\/html>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-content-justification-left is-layout-constrained wp-container-core-column-is-layout-7b46d8c6 wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:100%\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Card Link Example<\/title>\n  <style>\n    .card {\n      width: 250px;\n      border-radius: 10px;\n      box-shadow: 0 4px 8px rgba(0,0,0,0.2);\n      overflow: hidden;\n      text-align: center;\n      background-color: #fff;\n      transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .card:hover {\n      transform: translateY(-5px);\n      box-shadow: 0 8px 16px rgba(0,0,0,0.3);\n    }\n\n    \/* Image styling *\/\n    .card img {\n      width: 100%;\n      height: 200px;\n      border-radius: 10px;\n      object-fit: cover;\n      background-color: #000;\n      display: block;\n    }\n\n    \/* Underlined caption styling *\/\n    .caption {\n      display: block;\n      padding: 12px;\n      font-size: 16px;\n      font-weight: bold;\n      color: #333;\n      text-decoration: underline;\n    }\n\n    .card a {\n      text-decoration: none;\n      color: inherit;\n      display: block;\n    }\n  <\/style>\n<\/head>\n<body>\n  <a href=\"https:\/\/srineevipowercontrols.com\/index.php\/service\/hpstudy#thermopage\">\n    <div class=\"card\">\n      <img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/thermal-imaging-large_331b7fcd5f4aa144c7ead9e826889600-1024x1024-2.webp\" alt=\"Clickable Image\">\n      <span class=\"caption\">Thermography Study<\/span>\n    <\/div>\n  <\/a>\n<\/body>\n<\/html>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-content-justification-left is-layout-constrained wp-container-core-column-is-layout-7b46d8c6 wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:100%\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Card Link Example<\/title>\n  <style>\n    .card {\n      width: 250px;\n      border-radius: 10px;\n      box-shadow: 0 4px 8px rgba(0,0,0,0.2);\n      overflow: hidden;\n      text-align: center;\n      background-color: #fff;\n      transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .card:hover {\n      transform: translateY(-5px);\n      box-shadow: 0 8px 16px rgba(0,0,0,0.3);\n    }\n\n    \/* Image styling *\/\n    .card img {\n      width: 100%;\n      height: 200px;\n      border-radius: 10px;\n      object-fit: cover;\n      background-color: #000;\n      display: block;\n    }\n\n    \/* Underlined caption styling *\/\n    .caption {\n      display: block;\n      padding: 12px;\n      font-size: 16px;\n      font-weight: bold;\n      color: #333;\n      text-decoration: underline;\n    }\n\n    .card a {\n      text-decoration: none;\n      color: inherit;\n      display: block;\n    }\n  <\/style>\n<\/head>\n<body>\n  <a href=\"https:\/\/srineevipowercontrols.com\/index.php\/service\/hpstudy#papage\">\n    <div class=\"card\">\n      <img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/GF312B-2.jpg\" alt=\"Clickable Image\">\n      <span class=\"caption\">Panel Meter Calibration<\/span>\n    <\/div>\n  <\/a>\n<\/body>\n<\/html>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-content-justification-left is-layout-constrained wp-container-core-column-is-layout-7b46d8c6 wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:100%\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Card Link Example<\/title>\n  <style>\n    .card {\n      width: 250px;\n      border-radius: 10px;\n      box-shadow: 0 4px 8px rgba(0,0,0,0.2);\n      overflow: hidden;\n      text-align: center;\n      background-color: #fff;\n      transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .card:hover {\n      transform: translateY(-5px);\n      box-shadow: 0 8px 16px rgba(0,0,0,0.3);\n    }\n\n    \/* Image styling *\/\n    .card img {\n      width: 100%;\n      height: 200px;\n      border-radius: 10px;\n      object-fit: cover;\n      background-color: #000;\n      display: block;\n    }\n\n    \/* Underlined caption styling *\/\n    .caption {\n      display: block;\n      padding: 12px;\n      font-size: 16px;\n      font-weight: bold;\n      color: #333;\n      text-decoration: underline;\n    }\n\n    .card a {\n      text-decoration: none;\n      color: inherit;\n      display: block;\n    }\n  <\/style>\n<\/head>\n<body>\n  <a href=\"https:\/\/srineevipowercontrols.com\/index.php\/service\/hpstudy#energypage\">\n    <div class=\"card\">\n      <img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-14-at-19.33.19_3b1ffd40.jpg\" alt=\"Clickable Image\">\n      <span class=\"caption\">Energy Management System<\/span>\n    <\/div>\n  <\/a>\n<\/body>\n<\/html>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-medium-font-size\" style=\"padding-right:20px;padding-left:20px\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-1bdee6e6 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns unibiz-feature-container is-layout-flex wp-container-core-columns-is-layout-15d7df78 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:300px\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"719\" height=\"534\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_z03egpz03egpz03e.png\" alt=\"\" class=\"wp-image-2642\" srcset=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_z03egpz03egpz03e.png 719w, https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_z03egpz03egpz03e-300x223.png 300w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column animated fadeInLeft is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:614px\">\n<div class=\"wp-block-group is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-2994351b wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading has-text-align-left has-gv-color-text-primary-color has-text-color has-link-color has-host-grotesk-font-family has-jumbo-font-size wp-elements-a58d00cebf33cc17fa07beff00df1f17 wp-container-content-9cfa9a5a\">Our Customer is Our Pride<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-a088d8e0 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-columns unibiz-column-feature is-layout-flex wp-container-core-columns-is-layout-8f6a528b wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:10000rem\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-996a6476 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-b9662cba wp-block-group-is-layout-flex\">\n<p class=\"has-text-align-center\">We are committed to delivering quality products and services that meet customer expectations and ensure satisfaction. Our Customers&#8217; satisfaction is significantly linked to our methods and our Collaboration Ability. At Authority, we meet customer &#8220;Where they are&#8221; and provide a guide and path to where they want to be on their terms<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column animated fadeInRight is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-cover is-light\" style=\"border-radius:16px;min-height:280px;aspect-ratio:unset;\"><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-307 size-full\" alt=\"\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/themes\/unibiz\/assets\/img\/unibiz-benefits-img.webp\" data-object-fit=\"cover\"\/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"has-text-align-center has-large-font-size\"><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\" \/>\n<title>Energy Dashboard<\/title>\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n\n<style>\n  :root{\n    --card-bg: #fff;\n    --page-bg: #f6f7f9;\n    --accent: #dc3545;\n    --text: #222;\n    --muted: #666;\n  }\n\n  * { box-sizing: border-box; }\n\n  body{\n    margin:0;\n    font-family: Arial, Helvetica, sans-serif;\n    background: var(--page-bg);\n    color: var(--text);\n    padding: 20px;\n  }\n\n  .energy-dashboard { max-width: 1200px; margin: 0 auto; }\n\n  .dashboard-title {\n    margin: 0 0 20px;\n    font-size: 24px;\n    font-weight: 700;\n  }\n\n  \/* Layout *\/\n  .dashboard-layout {\n    display: flex;\n    gap: 20px;\n    height: 400px;            \/* desktop height *\/\n    align-items: stretch;\n  }\n\n  \/* MAP LEFT - uses background image so it always covers without distortion *\/\n  .dashboard-map {\n    width: 33.3333%;\n    background: var(--card-bg);\n    border-radius: 12px;\n    box-shadow: 0 6px 18px rgba(0,0,0,0.08);\n    overflow: hidden;\n    position: relative;\n    \/* background image set inline via style attribute (see HTML) *\/\n    background-position: center;\n    background-size: cover;   \/* ensures image fits and covers area *\/\n    background-repeat: no-repeat;\n    min-height: 200px;\n  }\n  \/* optional overlay for contrast *\/\n  .dashboard-map::after{\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    \/* slight overlay to improve legibility if you put text later *\/\n    background: linear-gradient(transparent, rgba(0,0,0,0.02));\n    pointer-events: none;\n  }\n\n  \/* TABLE MIDDLE *\/\n  .dashboard-table {\n    width: 33.3333%;\n    background: var(--card-bg);\n    border-radius: 12px;\n    box-shadow: 0 6px 18px rgba(0,0,0,0.08);\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    min-width: 220px;\n  }\n\n  \/* make header sticky by ensuring wrapper has a fixed height (100%) and overflow *\/\n  .dashboard-table-wrapper {\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  \/* Slim unobtrusive scrollbar (keeps accessibility while less visually noisy) *\/\n  .dashboard-table-wrapper::-webkit-scrollbar { width: 8px; }\n  .dashboard-table-wrapper::-webkit-scrollbar-thumb {\n    background: rgba(0,0,0,0.12); border-radius: 8px;\n  }\n  .dashboard-table-wrapper { scrollbar-width: thin; scrollbar-color: rgba(0,0,0,0.12) transparent; }\n\n  table {\n    width: 100%;\nheight:100%;\n    border-collapse: collapse;\n    font-size: 14px;\n  }\n\n  thead th {\n    position: sticky;\n    top: 0;\n    background: var(--accent);\n    color: #fff;\n    font-weight: 700;\n    font-size: 15px;\n    padding: 12px 15px;\n    z-index: 3;\n    text-align: left;\n  }\n\n  tbody td {\n    padding: 12px 15px;\n    border-bottom: 1px solid #eee;\n    background: transparent;\n    vertical-align: middle;\n  }\n\n  tbody tr:hover { background: #fbfbfb; }\n\n  th:last-child, td:last-child { text-align: right; }\n\n  \/* RIGHT CARDS *\/\n  .dashboard-cards {\n    width: 33.3333%;\n    display: flex;\n    flex-direction: column;\n    gap: 20px;\n    min-width: 220px;\n  }\n\n  .dashboard-card-box {\n    background: var(--card-bg);\n    border-radius: 12px;\n    box-shadow: 0 6px 18px rgba(0,0,0,0.08);\n    padding: 0;\n    overflow: hidden;\n  }\n\n  .dashboard-trusted {\n    flex: 1;\n    padding: 22px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .dashboard-trusted-text {\n    font-size: 15px;\n    font-weight: 200;\n    color: #333;\n    line-height: 1.6;\n    text-align: center;\n  }\n\n  .dashboard-totals {\n    display: flex;\n    gap: 20px;\n    padding: 18px;\n  }\n\n  .dashboard-stat {\n    flex: 1;\n    text-align: center;\n  }\n\n  .dashboard-stat-label {\n    font-size: 13px;\n    color: var(--muted);\n    margin-bottom: 8px;\n    font-weight: 600;\n  }\n\n  .dashboard-counter {\n    font-size: 36px;\n    font-weight: 800;\n    line-height: 1;\n  }\n\n  .counter-blue { color: #0b63d6; }\n  .counter-orange { color: #d64500; }\n\n  \/* responsive *\/\n  @media(max-width: 1000px) {\n    .dashboard-layout { flex-direction: column; height: auto; }\n    .dashboard-map, .dashboard-table, .dashboard-cards { width: 100%; min-height: 260px; }\n    .dashboard-totals { flex-direction: column; }\n  }\n<\/style>\n<\/head>\n\n<body>\n\n<div class=\"energy-dashboard\">\n  <h4 class=\"dashboard-title\">Energy Saving Solutions \u2014 Installed AHF &#038; APFC<\/h4>\n\n  <div class=\"dashboard-layout\">\n\n    <!-- LEFT: MAP - use inline background-image so it always covers -->\n    <div class=\"dashboard-map\"\n         style=\"background-image: url('https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_ceb56sceb56sceb5-1.png');\"\n         aria-label=\"India map showing installation locations\">\n      <!-- If you want an <img> fallback for some reason, you can add it here hidden for layout,\n           but background-image gives the best \"cover\" behaviour. -->\n    <\/div>\n\n    <!-- MIDDLE: TABLE -->\n    <div class=\"dashboard-table\" role=\"region\" aria-label=\"Installed locations table\">\n      <div class=\"dashboard-table-wrapper\">\n        <table aria-live=\"polite\">\n          <thead>\n            <tr>\n              <th scope=\"col\">Location<\/th>\n              <th scope=\"col\">APFC<\/th>\n              <th scope=\"col\">AHF<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody id=\"data-body\">\n            <tr><td>Mohali<\/td><td>350<\/td><td>400<\/td><\/tr>\n            <tr><td>Rajpura<\/td><td>625<\/td><td>975<\/td><\/tr>\n            <tr><td>Hyderabad<\/td><td>550<\/td><td>300<\/td><\/tr>\n            <tr><td>Uttarakhand<\/td><td>470<\/td><td>475<\/td><\/tr>\n            <tr><td>Shirwal<\/td><td>1005<\/td><td>625<\/td><\/tr>\n            <tr><td>Chennai<\/td><td>875<\/td><td>1125<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n\n    <!-- RIGHT: CARDS -->\n    <div class=\"dashboard-cards\">\n      <div class=\"dashboard-card-box dashboard-trusted\">\n        <div class=\"dashboard-trusted-text\">\n          Trusted by India&#8217;s Leading Engineering Companies \u2014 We are proud to deliver our APFC and AHF solutions across multiple sites for one of India&#8217;s top engineering organizations. With installation counts steadily increasing, our multi-location project execution demonstrates our commitment to quality, reliability, and customer satisfaction.\n        <\/div>\n      <\/div>\n\n      <div class=\"dashboard-card-box\">\n        <div class=\"dashboard-totals\" aria-hidden=\"false\">\n          <div class=\"dashboard-stat\">\n            <p class=\"dashboard-stat-label\">APFC Total<\/p>\n            <div class=\"dashboard-counter counter-blue\">+<span id=\"apfc-num\">0<\/span><\/div>\n          <\/div>\n\n          <div class=\"dashboard-stat\">\n            <p class=\"dashboard-stat-label\">AHF Total<\/p>\n            <div class=\"dashboard-counter counter-orange\">+<span id=\"ahf-num\">0<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n\/*\n - Improved totals calculation (handles non-numeric chars).\n - Smooth, bounded counter animation that finishes in a reasonable time.\n*\/\n\nfunction parseCellNumber(cell) {\n  \/\/ remove non-digit characters, fallback to 0\n  const raw = (cell || \"\").toString();\n  const digits = raw.replace(\/[^\\d\\-]\/g, '');\n  const n = digits === '' ? 0 : Number(digits);\n  return Number.isFinite(n) ? n : 0;\n}\n\nfunction computeTotals() {\n  let apfc = 0, ahf = 0;\n  document.querySelectorAll('#data-body tr').forEach(row => {\n    apfc += parseCellNumber(row.cells[1] && row.cells[1].innerText);\n    ahf += parseCellNumber(row.cells[2] && row.cells[2].innerText);\n  });\n  return { apfc, ahf };\n}\n\nfunction animateCount(el, target, durationMs = 1000) {\n  \/\/ safe bounds: cap duration to avoid extremely long runs for huge numbers\n  durationMs = Math.min(Math.max(durationMs, 300), 4000);\n  const start = 0;\n  const range = target - start;\n  if (range <= 0) { el.textContent = target; return; }\n\n  let startTime = null;\n  function step(timestamp) {\n    if (!startTime) startTime = timestamp;\n    const progress = Math.min((timestamp - startTime) \/ durationMs, 1);\n    \/\/ easeOutCubic\n    const eased = 1 - Math.pow(1 - progress, 3);\n    const value = Math.round(start + range * eased);\n    el.textContent = value.toLocaleString();\n    if (progress < 1) window.requestAnimationFrame(step);\n  }\n  window.requestAnimationFrame(step);\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  const { apfc, ahf } = computeTotals();\n  \/\/ choose duration based on magnitude (so a large total animates slightly longer)\n  const base = 900;\n  const apfcDuration = base + Math.min(2000, apfc * 2);\n  const ahfDuration = base + Math.min(2000, ahf * 2);\n\n  animateCount(document.getElementById('apfc-num'), apfc, apfcDuration);\n  animateCount(document.getElementById('ahf-num'), ahf, ahfDuration);\n});\n<\/script>\n\n<\/body>\n<\/html>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n<title>Seamless Continuous Image Scroller<\/title>\n<style>\n  :root{\n    --speed-px-per-sec: 120; \/* adjust visual speed (px\/sec) *\/\n  }\n\n  *{box-sizing:border-box;margin:0;padding:0}\n\n  body{\n    font-family: Arial, sans-serif;\n    background:#f4f6f9;\n   \n  }\n\n  .slider-container{\n    width:100%;\n  \n    margin:0 auto;\n    overflow:hidden;\n    background:#fff;\n    border-radius:12px;\n    padding:20px;\n    box-shadow:0 4px 12px rgba(0,0,0,.1);\n  }\n\n  \/* track wrapper viewport *\/\n  .track-viewport{\n    width:100%;\n    overflow:hidden;\n  }\n\n  \/* track that will be animated *\/\n  .slider-track{\n    display:flex;\n    gap:20px;\n    align-items:center;\n    \/* width:auto so it grows to fit content; we animate translateX *\/\n    width: max-content;\n    \/* animation name & duration set by JS so it matches content width *\/\n    animation-name: scroll-left;\n    animation-timing-function: linear;\n    animation-iteration-count: infinite;\n    animation-play-state: running;\n  }\n\n  .slider-track:hover{\n    animation-play-state: paused;\n  }\n\n  .logo-item{\n    flex: 0 0 180px;\n    width:180px;\n    height:140px;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    border-radius:8px;\n    overflow:hidden;\n    box-shadow:0 4px 12px rgba(0,0,0,.08);\n    background:#f9f9f9;\n    transition: transform .3s ease, box-shadow .3s ease;\n  }\n\n  .logo-item:hover{\n    transform: translateY(-5px);\n    box-shadow:0 8px 20px rgba(0,0,0,.15);\n  }\n\n  .logo-item img{\n    width:100%;\n    height:100%;\n    object-fit: contain;\n    display:block;\n  }\n\n  @keyframes scroll-left {\n    from { transform: translateX(0); }\n    to   { transform: translateX(-50%); } \/* 50% equals half the full track = one original set *\/\n  }\n\n  \/* responsive *\/\n  @media (max-width:768px){\n    .logo-item{ flex:0 0 140px; width:140px; height:110px; }\n    .slider-track{ gap:15px; }\n  }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"slider-container\">\n  <div class=\"track-viewport\">\n    <div class=\"slider-track\" id=\"sliderTrack\">\n      <!-- Original set of images (keep them all here) -->\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/12.png\" alt=\"Client 1\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/OIP-6.webp\" alt=\"Client 2\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/8.gif\" alt=\"Client 3\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/13.webp\" alt=\"Client 4\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Screenshot_13-11-2025_163123_.jpeg\" alt=\"Client 5\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Picture1.jpg\" alt=\"Client 6\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/5.png\" alt=\"Client 7\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Picture2.png\" alt=\"Client 8\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/16.png\" alt=\"Client 9\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/14.webp\" alt=\"Client 10\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Screenshot_13-11-2025_163045_.jpeg\" alt=\"Client 11\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Picture3.jpg\" alt=\"Client 12\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Picture4.png\" alt=\"Client 13\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Picture5.jpg\" alt=\"Client 14\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/10-1.png\" alt=\"Client 15\" loading=\"lazy\"><\/div>\n      <div class=\"logo-item\"><img decoding=\"async\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/7-1.png\" alt=\"Client 16\" loading=\"lazy\"><\/div>\n      <!-- (JS will clone the original set below for a seamless loop) -->\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n  (function(){\n    const track = document.getElementById('sliderTrack');\n\n    \/\/ Take a snapshot of the original children (only originals, not clones)\n    const originalItems = Array.from(track.children);\n\n    \/\/ Clone original items and append them to the track (exact duplicate)\n    \/\/ This ensures translateX(-50%) will move exactly one original-set length\n    originalItems.forEach(node => {\n      const clone = node.cloneNode(true);\n      track.appendChild(clone);\n    });\n\n    \/\/ Allow layout to settle, then compute animation duration based on actual width.\n    \/\/ The distance we animate is half the total track width (one originals set width).\n    \/\/ We set a speed in px\/sec (tweak --speed-px-per-sec in CSS root).\n    function updateAnimationDuration(){\n      const totalScrollWidth = track.scrollWidth; \/\/ width of two sets\n      const singleSetWidth = totalScrollWidth \/ 2;\n      const rootStyles = getComputedStyle(document.documentElement);\n      const speedPxPerSec = parseFloat(rootStyles.getPropertyValue('--speed-px-per-sec')) || 120;\n      \/\/ duration (seconds) needed to move the distance at the chosen speed\n      const durationSeconds = singleSetWidth \/ speedPxPerSec;\n\n      \/\/ apply the duration to the track animation\n      track.style.animationDuration = durationSeconds + 's';\n    }\n\n    \/\/ Run on load and on resize (so responsive changes adjust speed\/duration)\n    window.addEventListener('load', updateAnimationDuration);\n    window.addEventListener('resize', () => {\n      \/\/ small debounce to avoid thrashing on resize\n      clearTimeout(window._sliderResizeTimer);\n      window._sliderResizeTimer = setTimeout(updateAnimationDuration, 120);\n    });\n\n    \/\/ If images are lazy loaded and change layout after load, recalc then too\n    \/\/ (recalculate a few times as images load)\n    const imgs = track.querySelectorAll('img');\n    let loadedCount = 0;\n    imgs.forEach(img => {\n      if (img.complete) loadedCount++;\n      else img.addEventListener('load', () => {\n        loadedCount++;\n        if (loadedCount === imgs.length) updateAnimationDuration();\n      });\n    });\n    \/\/ final fallback to ensure correct timing after any late layout changes\n    setTimeout(updateAnimationDuration, 500);\n  })();\n<\/script>\n\n<\/body>\n<\/html>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-medium-font-size\" style=\"padding-right:20px;padding-left:20px\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-container-core-group-is-layout-1bdee6e6 wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns unibiz-feature-container is-layout-flex wp-container-core-columns-is-layout-15d7df78 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column animated fadeInRight is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-cover is-light\" style=\"border-radius:16px;min-height:350px;aspect-ratio:unset;\"><img loading=\"lazy\" decoding=\"async\" width=\"1472\" height=\"704\" class=\"wp-block-cover__image-background wp-image-2616 size-full\" alt=\"\" src=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_ucrfvjucrfvjucrf.png\" data-object-fit=\"cover\" srcset=\"https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_ucrfvjucrfvjucrf.png 1472w, https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_ucrfvjucrfvjucrf-300x143.png 300w, https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_ucrfvjucrfvjucrf-1024x490.png 1024w, https:\/\/srineevipowercontrols.com\/wp-content\/uploads\/2025\/11\/Gemini_Generated_Image_ucrfvjucrfvjucrf-768x367.png 768w\" sizes=\"auto, (max-width: 1472px) 100vw, 1472px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-0 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p class=\"has-text-align-center has-large-font-size\"><\/p>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column animated fadeInLeft is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:614px\">\n<div class=\"wp-block-group is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-2994351b wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading has-text-align-left has-gv-color-text-primary-color has-text-color has-link-color has-host-grotesk-font-family has-jumbo-font-size wp-elements-c93780675cccbf3fa6b38bea0ede274b wp-container-content-9cfa9a5a\">We Dedicate Our Time To Deliver Great Results<\/h2>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-a088d8e0 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-columns unibiz-column-feature is-layout-flex wp-container-core-columns-is-layout-8f6a528b wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:10000rem\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-996a6476 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-b9662cba wp-block-group-is-layout-flex\">\n<p class=\"has-text-align-center\">Every number tells a story of commitment, consistency, and impact. From successful projects to satisfied clients, our results reflect the time and our effort we invest in delivering quality solutions that drive real growth. These milestones aren\u2019t just metrics\u2014they\u2019re proof of the trust our clients.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Seamless Continuous Image Scroller Hover or touch the scroller to pause. Card Link Example Harmonic &#038; Power Study Card Link Example Energy Audit Card Link Example Thermography Study Card Link Example Panel Meter Calibration Card Link Example Energy Management System Our Customer is Our Pride We are committed to delivering quality products and services that meet customer expectations and ensure satisfaction. Our Customers&#8217; satisfaction is significantly linked to our methods and our Collaboration Ability. At Authority, we meet customer<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"page-templates\/page-full-width.php","meta":{"footnotes":""},"class_list":["post-108","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/pages\/108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/comments?post=108"}],"version-history":[{"count":531,"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/pages\/108\/revisions"}],"predecessor-version":[{"id":2770,"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/pages\/108\/revisions\/2770"}],"wp:attachment":[{"href":"https:\/\/srineevipowercontrols.com\/index.php\/wp-json\/wp\/v2\/media?parent=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}