 *,
 *::before,
 *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
 }

 :root {
     --bg: #f0f4ff;
     --surface: #ffffff;
     --surface2: #e6ecfb;
     --border: rgba(30, 60, 180, 0.09);
     --border2: rgba(30, 60, 180, 0.18);
     --text: #0b1220;
     --muted: #506080;
     --accent: #2451c8;
     --accent-lt: rgba(36, 81, 200, 0.07);
     --accent-md: rgba(36, 81, 200, 0.18);
     --violet: #6c3fc8;
     --violet-lt: rgba(108, 63, 200, 0.07);
     --gold: #d4860a;
     --gold-lt: rgba(212, 134, 10, 0.08);
     --dark: #0d2d6b;
     --dark2: #1a4fa0;
 }



 /* ── HERO ── */
 .hero {
     min-height: 50vh;
     background: var(--dark);
     position: relative;
     overflow: hidden;

 }

 .inner {
     max-width: 1280px;
     margin: auto;
 }

 .hero-inner {
     max-width: 1280px;
     margin: 0 auto;
     display: grid;
     height: 100%;
     /* grid-template-columns: 1fr 1fr; */
 }

 /* Two-way signal arcs */
 .arc {
     position: absolute;
     border-radius: 50%;
     border: 1px solid rgba(36, 81, 200, 0.18);
     animation: arcPulse 7s ease-in-out infinite;
 }

 .arc:nth-child(1) {
     width: 280px;
     height: 280px;
     top: 50%;
     right: 8%;
     transform: translate(50%, -50%);
     animation-delay: 0s;
 }

 .arc:nth-child(2) {
     width: 480px;
     height: 480px;
     top: 50%;
     right: 8%;
     transform: translate(50%, -50%);
     animation-delay: 1s;
 }

 .arc:nth-child(3) {
     width: 700px;
     height: 700px;
     top: 50%;
     right: 8%;
     transform: translate(50%, -50%);
     animation-delay: 2s;
 }

 .arc:nth-child(4) {
     width: 280px;
     height: 280px;
     top: 50%;
     left: 8%;
     transform: translate(-50%, -50%);
     animation-delay: 0.5s;
     border-color: rgba(108, 63, 200, 0.15);
 }

 .arc:nth-child(5) {
     width: 480px;
     height: 480px;
     top: 50%;
     left: 8%;
     transform: translate(-50%, -50%);
     animation-delay: 1.5s;
     border-color: rgba(108, 63, 200, 0.1);
 }

 @keyframes arcPulse {

     0%,
     100% {
         opacity: 0.2;
     }

     50% {
         opacity: 0.6;
     }
 }

 /* Two dots — utility and customer */
 .signal-dot {
     position: absolute;
     width: 8px;
     height: 8px;
     border-radius: 50%;
     top: 50%;
     transform: translateY(-50%);
 }

 .signal-dot.left {
     left: 8%;
     background: var(--violet);
     box-shadow: 0 0 16px rgba(108, 63, 200, 0.6);
     animation: dotBlink 2.5s ease-in-out infinite;
 }

 .signal-dot.right {
     right: 8%;
     background: var(--accent);
     box-shadow: 0 0 16px rgba(36, 81, 200, 0.6);
     animation: dotBlink 2.5s ease-in-out infinite 1.25s;
 }

 @keyframes dotBlink {

     0%,
     100% {
         opacity: 0.3;
     }

     50% {
         opacity: 1;
     }
 }

 /* Two-way arrow line */
 .signal-line {
     position: absolute;
     top: 50%;
     left: 12%;
     right: 12%;
     height: 1px;
     background: repeating-linear-gradient(90deg, rgba(36, 81, 200, 0.25) 0, rgba(36, 81, 200, 0.25) 5px, transparent 5px, transparent 10px);
     transform: translateY(-50%);
 }

 .hero::after {
     content: '';
     position: absolute;
     inset: 0;
     z-index: 0;
     background:
         linear-gradient(rgba(8, 33, 61, 0.096), rgba(26, 79, 160, 0.171)),
         url(/assete/images/page-banner/ami.webp);
     background-size: cover;
     background-position: center;
 }

 .hero-left {
     position: relative;
     z-index: 1;
     padding: 20px 60px 20px 0px;
     display: flex;
     flex-direction: column;
     justify-content: center;
 }

 .hero h1 {
     font-family: 'Syne', sans-serif;
     font-size: clamp(2.2rem, 4.5vw, 44px);
     font-weight: 700;
     line-height: 0.95;
     letter-spacing: -0.02em;
     color: #fff;
     margin-bottom: 28px;
 }

 .hero h1 .sm {
     display: block;
     font-size: 0.32em;
     font-weight: 400;
     text-transform: uppercase;
     color: rgb(255 255 255 / 72%);
     margin-bottom: 18px;
     font-family: 'Syne', sans-serif;
 }

 .hero h1 .blue {
     color: #7fa0f0;
 }

 .hero h1 em {
     color: #a889f5;
     font-style: italic;
 }

 .hero-desc {
     font-size: 16px;
     line-height: 1.85;
     color: rgb(255, 255, 255);
     font-weight: 400;
     max-width: 500px;
     margin-bottom: 40px;
 }

 .hero-desc strong {
     color: rgba(255, 255, 255, 0.78);
     font-weight: 600;
 }

 .hero-btns {
     display: flex;
     gap: 12px;
     flex-wrap: wrap;
     margin-bottom: 52px;
 }

 .btn-blue {
     background: var(--accent);
     color: #fff;
     font-size: 11px;
     font-weight: 700;
     letter-spacing: 0.07em;
     text-transform: uppercase;
     padding: 14px 28px;
     border-radius: 4px;
     text-decoration: none;
     transition: all 0.25s;
 }

 .btn-blue:hover {
     background: #1638a0;
     transform: translateY(-2px);
     box-shadow: 0 8px 24px rgba(36, 81, 200, 0.35);
 }

 .btn-wire {
     border: 1px solid rgba(255, 255, 255, 0.14);
     color: rgba(255, 255, 255, 0.38);
     font-size: 11px;
     font-weight: 600;
     letter-spacing: 0.07em;
     text-transform: uppercase;
     padding: 14px 24px;
     border-radius: 4px;
     text-decoration: none;
     transition: all 0.25s;
 }

 .btn-wire:hover {
     border-color: #7fa0f0;
     color: #7fa0f0;
 }

 .hero-stats {
     display: flex;
     border-top: 1px solid rgba(255, 255, 255, 0.06);
     padding-top: 32px;
 }

 .hstat {
     padding-right: 28px;
     margin-right: 28px;
     border-right: 1px solid rgba(255, 255, 255, 0.06);
 }

 .hstat:last-child {
     border: none;
     margin: 0;
     padding: 0;
 }

 .hstat-n {
     font-size: 20px;
     font-weight: 800;
     color: #7fa0f0;
     line-height: 1;
     margin-bottom: 4px;
     letter-spacing: -0.02em;
 }

 .hstat-l {
     font-size: 10px;
     font-weight: 500;
     letter-spacing: 0.1em;
     text-transform: uppercase;
     color: rgba(255, 255, 255, 0.22);
     font-family: 'Syne', sans-serif;
 }

 /* Hero right — AMI system diagram */
 .hero-right {
     position: relative;
     z-index: 1;
     border-left: 1px solid rgba(255, 255, 255, 0.05);
     background: rgba(255, 255, 255, 0.02);
     padding: 40px 52px 80px;
     display: flex;
     flex-direction: column;
     justify-content: center;
 }

 .sys-label {
     font-family: 'Syne', sans-serif;
     font-size: 9px;
     font-weight: 500;
     letter-spacing: 0.2em;
     text-transform: uppercase;
     color: rgba(255, 255, 255, 0.705);
     margin-bottom: 24px;
 }

 .sys-nodes {
     display: flex;
     flex-direction: column;
     gap: 4px;
 }

 .sys-node {
     background: rgb(255 255 255 / 30%);
     border: 1px solid rgba(255, 255, 255, 0.07);
     border-radius: 8px;
     padding: 16px 18px;
     display: flex;
     align-items: center;
     gap: 14px;
     transition: all 0.2s;
     width: 430px;
 }

 .sys-node:hover {
     background: rgba(36, 81, 200, 0.12);
     border-color: rgba(127, 160, 240, 0.3);
 }

 .sys-node-num {
     font-family: 'Syne', sans-serif;
     font-size: 11px;
     font-weight: 600;
     color: #ffffff;
     flex-shrink: 0;
     width: 20px;
 }

 .sys-node-icon {
     font-size: 18px;
     flex-shrink: 0;
 }

 .sys-node-body h4 {
     font-size: 13px;
     font-weight: 700;
     color: rgba(255, 255, 255, 0.82);
     margin-bottom: 2px;
 }

 .sys-node-body p {
     font-size: 11px;
     color: rgb(255, 255, 255);
     line-height: 1.4;
     font-family: 'Syne', sans-serif;
 }

 .sys-connector {
     display: flex;
     align-items: center;
     gap: 8px;
     padding: 2px 18px;
 }

 .sys-conn-line {
     flex: 1;
     height: 1px;
     background: repeating-linear-gradient(90deg, rgba(127, 160, 240, 0.25) 0, rgba(127, 160, 240, 0.25) 4px, transparent 4px, transparent 8px);
 }

 .sys-conn-arrow {
     color: rgba(127, 160, 240, 0.4);
     font-size: 11px;
 }

 .sys-conn-label {
     font-family: 'Syne', sans-serif;
     font-size: 9px;
     color: rgba(255, 255, 255, 0.18);
     text-transform: uppercase;
     letter-spacing: 0.08em;
     white-space: nowrap;
 }

 /* ── SECTIONS ── */
 section {
     padding: 100px 72px;
 }

 .eyebrow {
     display: inline-flex;
     align-items: center;
     gap: 10px;
     font-family: 'Syne', sans-serif;
     font-size: 10px;
     font-weight: 500;
     letter-spacing: 0.2em;
     text-transform: uppercase;
     color: var(--accent);
     margin-bottom: 16px;
 }

 .eyebrow::before {
     content: '';
     width: 20px;
     height: 1px;
     background: var(--accent);
 }

 .sh {
     font-family: 'Syne', sans-serif;
     font-size: clamp(2.2rem, 4.5vw, 44px);
     font-weight: 700;
     line-height: 1.05;
     letter-spacing: -0.02em;
     color: var(--text);
     margin-bottom: 18px;
 }

 .sh em {
     color: var(--accent);
     font-style: italic;
 }

 .sp {
     font-size: 16px;
     line-height: 1.85;
     color: var(--muted);
     max-width: 600px;
     font-weight: 400;
 }

 /* ── OVERVIEW ── */
 #overview {
     background: var(--surface);
 }

 .ov-layout {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: start;
     margin-top: 56px;
 }

 .ov-text p {
     font-size: 16px;
     line-height: 1.9;
     color: var(--muted);
     margin-bottom: 20px;
 }

 .ov-text p strong {
     color: var(--text);
     font-weight: 700;
 }

 .ov-callout {
     background: var(--gold-lt);
     border: 1px solid rgba(212, 134, 10, 0.2);
     border-left: 3px solid var(--gold);
     border-radius: 0 10px 10px 0;
     padding: 18px 22px;
     margin-top: 28px;
 }

 .ov-callout p {
     font-size: 14px;
     line-height: 1.75;
     color: var(--text);
 }

 .ov-callout p strong {
     color: var(--gold);
     font-weight: 700;
 }

 /* AMI vs AMR comparison */
 .vs-panel {
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: 16px;
     overflow: hidden;
 }

 .vs-head {
     background: var(--dark2);
     padding: 20px 24px;
     display: flex;
     align-items: center;
     justify-content: space-between;
 }

 .vs-head-title {
     font-size: 12px;
     font-weight: 700;
     color: rgba(255, 255, 255, 0.6);
     letter-spacing: 0.08em;
     text-transform: uppercase;
 }

 .vs-badge {
     background: rgba(36, 81, 200, 0.25);
     border: 1px solid rgba(127, 160, 240, 0.3);
     border-radius: 3px;
     padding: 3px 10px;
     font-family: 'Syne', sans-serif;
     font-size: 9px;
     font-weight: 500;
     color: #7fa0f0;
     letter-spacing: 0.1em;
 }

 .vs-items {
     padding: 20px;
     display: flex;
     flex-direction: column;
     gap: 8px;
 }

 .vs-item {
     background: var(--surface);
     border: 1px solid var(--border);
     border-radius: 8px;
     padding: 14px 16px;
     display: flex;
     align-items: flex-start;
     gap: 12px;
     transition: all 0.2s;
 }

 .vs-item:hover {
     border-color: var(--accent);
     background: var(--accent-lt);
 }

 .vs-icon {
     font-size: 16px;
     flex-shrink: 0;
     margin-top: 1px;
 }

 .vs-item-body h4 {
     font-size: 13px;
     font-weight: 700;
     color: var(--text);
     margin-bottom: 3px;
 }

 .vs-item-body p {
     font-size: 12px;
     color: var(--muted);
     line-height: 1.5;
 }

 /* ── CAPABILITIES ── */
 #capabilities {
     background: var(--bg);
 }

 .cap-header {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: end;
     margin-bottom: 56px;
 }

 .cap-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 14px;
 }

 .cap-card {
     background: var(--surface);
     border: 1px solid var(--border);
     border-radius: 14px;
     padding: 28px 22px;
     transition: all 0.25s;
     position: relative;
     overflow: hidden;
 }

 .cap-card:hover {
     transform: translateY(-4px);
     box-shadow: 0 12px 28px rgba(0, 0, 0, 0.07);
     border-color: var(--accent);
 }

 .cap-top-bar {
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     height: 2px;
     background: linear-gradient(90deg, var(--accent), var(--violet));
     transform: scaleX(0);
     transform-origin: left;
     transition: transform 0.3s;
 }

 .cap-card:hover .cap-top-bar {
     transform: scaleX(1);
 }

 .cap-icon {
     font-size: 28px;
     margin-bottom: 14px;
     display: block;
 }

 .cap-card h3 {
     font-size: 15px;
     font-weight: 700;
     color: var(--text);
     margin-bottom: 8px;
     line-height: 1.3;
 }

 .cap-card p {
     font-size: 13px;
     line-height: 1.7;
     color: var(--muted);
 }

 /* ── INTEGRATION STACK ── */
 #stack {
     background: var(--dark);
     padding: 100px 72px;
 }

 .stack-layout {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: center;
 }

 .stack-left {
     width: 100%;
     overflow: hidden;
 }

 .stack-left img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     border-radius: 10px;
 }

 .stack-cards {
     display: flex;
     flex-direction: column;
     gap: 10px;
 }

 .stack-card {
     background: rgba(255, 255, 255, 0.04);
     border: 1px solid rgba(255, 255, 255, 0.07);
     border-radius: 12px;
     padding: 22px 22px;
     display: flex;
     align-items: flex-start;
     gap: 16px;
     transition: all 0.2s;
 }

 .stack-card:hover {
     background: rgba(36, 81, 200, 0.12);
     border-color: rgba(127, 160, 240, 0.3);
     transform: translateX(4px);
 }

 .stack-num {
     flex-shrink: 0;
     width: 32px;
     height: 32px;
     background: rgba(36, 81, 200, 0.2);
     border: 1px solid rgba(127, 160, 240, 0.25);
     border-radius: 6px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-family: 'Syne', sans-serif;
     font-size: 11px;
     font-weight: 500;
     color: #7fa0f0;
 }

 .stack-body h4 {
     font-size: 14px;
     font-weight: 700;
     color: rgba(255, 255, 255, 0.85);
     margin-bottom: 5px;
 }

 .stack-body p {
     font-size: 13px;
     line-height: 1.6;
     color: rgba(255, 255, 255, 0.38);
 }

 /* ── DEMAND RESPONSE BAND ── */
 .dr-band {
     background: var(--dark2);
     padding: 80px 72px;
 }

 .dr-layout {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: center;
 }

 .dr-left h2 {
     font-family: 'Syne', sans-serif;
     font-size: clamp(2.2rem, 4.5vw, 44px);
     font-weight: 700;
     color: #fff;
     letter-spacing: -0.02em;
     line-height: 1.05;
     margin-bottom: 16px;
 }

 .dr-left h2 em {
     color: #c9a855;
     font-style: italic;
 }

 .dr-left p {
     font-size: 15px;
     line-height: 1.8;
     color: rgba(255, 255, 255, 0.38);
     max-width: 440px;
     margin-bottom: 20px;
 }

 .dr-devices {
     display: flex;
     flex-direction: column;
     gap: 10px;
 }

 .dr-device {
     display: flex;
     align-items: center;
     gap: 14px;
     background: rgba(255, 255, 255, 0.04);
     border: 1px solid rgba(255, 255, 255, 0.07);
     border-radius: 8px;
     padding: 14px 18px;
     transition: all 0.2s;
 }

 .dr-device:hover {
     background: rgba(212, 134, 10, 0.1);
     border-color: rgba(201, 168, 85, 0.3);
 }

 .dr-device-icon {
     font-size: 18px;
     flex-shrink: 0;
 }

 .dr-device-text {
     font-size: 13px;
     font-weight: 500;
     color: rgba(255, 255, 255, 0.55);
 }

 .dr-benefits {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 12px;
 }

 .dr-benefit {
     background: rgba(255, 255, 255, 0.04);
     border: 1px solid rgba(255, 255, 255, 0.07);
     border-radius: 10px;
     padding: 22px 18px;
     transition: all 0.2s;
     text-align: center;
 }

 .dr-benefit:hover {
     background: rgba(212, 134, 10, 0.1);
     border-color: rgba(201, 168, 85, 0.3);
 }

 .dr-benefit-icon {
     font-size: 24px;
     margin-bottom: 10px;
     display: block;
 }

 .dr-benefit h4 {
     font-size: 13px;
     font-weight: 700;
     color: rgba(255, 255, 255, 0.8);
     margin-bottom: 5px;
 }

 .dr-benefit p {
     font-size: 12px;
     line-height: 1.5;
     color: rgba(255, 255, 255, 0.35);
 }

 /* ── INDUSTRIES ── */
 #industries {
     background: var(--bg);
 }

 .ind-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 14px;
     margin-top: 56px;
 }

 .ind-card {
     background: var(--surface);
     border: 1px solid var(--border);
     border-radius: 12px;
     padding: 26px 22px;
     transition: all 0.25s;
 }

 .ind-card:hover {
     border-color: var(--accent);
     transform: translateY(-3px);
     box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
 }

 .ind-icon {
     font-size: 26px;
     margin-bottom: 12px;
     display: block;
 }

 .ind-card h3 {
     font-size: 14px;
     font-weight: 700;
     color: var(--text);
     margin-bottom: 6px;
 }

 .ind-card p {
     font-size: 13px;
     line-height: 1.6;
     color: var(--muted);
 }

 /* ── FAQ ── */
 #faq {
     background: var(--surface);
 }

 .faq-layout {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 12px;
     margin-top: 56px;
 }

 .faq-item {
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: 12px;
     overflow: hidden;
 }

 .faq-q {
     width: 100%;
     background: none;
     border: none;
     cursor: pointer;
     text-align: left;
     padding: 20px 22px;
     display: flex;
     justify-content: space-between;
     align-items: center;
     gap: 16px;
     font-size: 14px;
     font-weight: 700;
     color: var(--text);
     transition: color 0.2s;
 }

 .faq-q:hover {
     color: var(--accent);
 }

 .faq-item.open .faq-q {
     color: var(--accent);
 }

 .faq-icon {
     flex-shrink: 0;
     width: 24px;
     height: 24px;
     border-radius: 50%;
     border: 1px solid var(--border2);
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 16px;
     color: var(--accent);
     transition: transform 0.3s;
 }

 .faq-item.open .faq-icon {
     transform: rotate(45deg);
 }

 .faq-a {
     max-height: 0;
     overflow: hidden;
     transition: max-height 0.4s ease, padding 0.3s;
     padding: 0 22px;
     font-size: 14px;
     line-height: 1.8;
     color: var(--muted);
 }

 .faq-item.open .faq-a {
     max-height: 260px;
     padding: 0 22px 20px;
 }

 /* ── CTA ── */
 #cta {
     background: var(--dark);
     padding: 100px 72px;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 80px;
     align-items: center;
     position: relative;
     overflow: hidden;
 }

 #cta::before {
     content: '';
     position: absolute;
     inset: 0;
     background:
         radial-gradient(ellipse 45% 65% at 0% 50%, rgba(36, 81, 200, 0.12) 0%, transparent 60%),
         radial-gradient(ellipse 35% 55% at 100% 50%, rgba(108, 63, 200, 0.08) 0%, transparent 60%);
 }

 .cta-left {
     position: relative;
     z-index: 1;
 }

 .cta-left h2 {
     font-family: 'Syne', sans-serif;
     font-size: clamp(2.2rem, 4.5vw, 44px);
     font-weight: 700;
     line-height: 1.05;
     letter-spacing: -0.02em;
     color: #fff;
     margin-bottom: 20px;
 }

 .cta-left h2 em {
     color: #7fa0f0;
     font-style: italic;
 }

 .cta-left p {
     font-size: 16px;
     line-height: 1.8;
     color: rgba(255, 255, 255, 0.38);
     margin-bottom: 36px;
     max-width: 440px;
 }

 .cta-btns {
     display: flex;
     gap: 12px;
     flex-wrap: wrap;
 }

 .cta-right {
     position: relative;
     z-index: 1;
 }

 .cta-list {
     display: flex;
     flex-direction: column;
     gap: 10px;
 }

 .cta-row {
     display: flex;
     align-items: center;
     gap: 14px;
     background: rgba(255, 255, 255, 0.04);
     border: 1px solid rgba(255, 255, 255, 0.07);
     border-radius: 8px;
     padding: 14px 18px;
     transition: all 0.2s;
 }

 .cta-row:hover {
     background: rgba(36, 81, 200, 0.1);
     border-color: rgba(127, 160, 240, 0.25);
 }

 .cta-row-icon {
     font-size: 16px;
     flex-shrink: 0;
 }

 .cta-row-text {
     font-size: 12px;
     font-weight: 500;
     color: rgba(255, 255, 255, 0.5);
 }

 /* ── REVEAL ── */
 .reveal {
     opacity: 0;
     transform: translateY(22px);
     transition: opacity 0.6s ease, transform 0.6s ease;
 }

 .reveal.visible {
     opacity: 1;
     transform: none;
 }

 /* ── RESPONSIVE ── */
 @media (max-width: 1100px) {

     section,
     #stack,
     .dr-band,
     #cta {
         padding: 80px 32px;
     }

     .hero {
         grid-template-columns: 1fr;
     }

     .hero-right {
         display: none;
     }

     .hero-left {
         padding: 130px 32px 80px;
     }

     .ov-layout,
     .cap-header,
     .stack-layout,
     .dr-layout {
         grid-template-columns: 1fr;
         gap: 40px;
     }

     .cap-grid,
     .ind-grid {
         grid-template-columns: repeat(2, 1fr);
     }

     .faq-layout {
         grid-template-columns: 1fr;
     }

     #cta {
         grid-template-columns: 1fr;
     }
 }

 @media (max-width: 640px) {

     section,
     #stack,
     .dr-band,
     #cta {
         padding: 60px 20px;
     }

     .hero-left {
         padding: 20px 20px 5px;
     }

     .hero-stats {
         flex-wrap: wrap;
         gap: 20px;
     }

     .hstat {
         border: none;
         margin: 0;
         padding: 0;
     }

     .cap-grid,
     .ind-grid,
     .dr-benefits {
         grid-template-columns: 1fr;
     }
 }