{"id":100,"date":"2026-08-15T12:23:11","date_gmt":"2026-08-15T19:23:11","guid":{"rendered":"https:\/\/starlightenergy.io\/?page_id=100"},"modified":"2026-10-29T21:54:25","modified_gmt":"2026-10-30T04:54:25","slug":"home","status":"publish","type":"page","link":"https:\/\/starlightenergy.io\/es\/","title":{"rendered":"Inicio"},"content":{"rendered":"\n<!-- -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700;9..144,900&amp;family=IBM+Plex+Sans:wght@400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n\n<style>\n  :root {\n    \/* --- Palette pulled straight from the Starlight Energy logo --- *\/\n    --se-navy:      #0e2c4d;   \/* deep panel navy *\/\n    --se-navy-2:    #0a2038;\n    --se-blue:      #1c6fb3;   \/* wordmark blue *\/\n    --se-blue-lite: #4f97d6;\n    --se-sun-red:   #d83a2c;\n    --se-sun-orange:#f07d1a;\n    --se-sun-gold:  #f6b62e;\n    --se-paper:     #f6f8fb;\n    --se-card:      #ffffff;\n    --se-ink:       #14202c;\n    --se-muted:     #566573;\n    --se-line:      #e2e8f0;\n    --se-sun-grad:  linear-gradient(90deg, var(--se-sun-red), var(--se-sun-orange) 55%, var(--se-sun-gold));\n  }\n\n  * { box-sizing: border-box; }\n  html { scroll-behavior: smooth; }\n  body {\n    margin: 0;\n    font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n    color: var(--se-ink);\n    background: var(--se-card);\n    -webkit-font-smoothing: antialiased;\n    line-height: 1.55;\n  }\n  a { color: inherit; }\n  img { max-width: 100%; display: block; }\n  .se-wrap { max-width: 1140px; margin: 0 auto; padding: 0 22px; }\n\n  :focus-visible { outline: 3px solid var(--se-sun-orange); outline-offset: 3px; border-radius: 4px; }\n\n  h1, h2, h3 { font-family: 'Fraunces', serif; font-optical-sizing: auto; letter-spacing: -0.01em; margin: 0; }\n\n  \/* ---------- Buttons ---------- *\/\n  .se-btn {\n    display: inline-block; font-family: 'IBM Plex Sans', sans-serif; font-weight: 600;\n    font-size: 15px; padding: 14px 26px; border-radius: 999px; cursor: pointer;\n    text-decoration: none; border: none; transition: transform .12s ease, background .2s ease;\n  }\n  .se-btn:hover { transform: translateY(-1px); }\n  .se-btn-sun { background: var(--se-sun-grad); color: #fff; box-shadow: 0 10px 26px -12px rgba(240,125,26,0.8); }\n  .se-btn-navy { background: var(--se-navy); color: #fff; }\n  .se-btn-ghost { background: transparent; color: var(--se-navy); border: 1.5px solid var(--se-line); }\n  .se-btn-ghost:hover { border-color: var(--se-blue); }\n\n  \/* ---------- Header ---------- *\/\n  .se-header {\n    position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,0.92);\n    backdrop-filter: blur(10px); border-bottom: 1px solid var(--se-line);\n  }\n  .se-header-inner { display: flex; align-items: center; justify-content: space-between; height: 74px; }\n  .se-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }\n  .se-brand-mark { width: 44px; height: auto; flex: none; }\n  .se-brand-text { font-family: 'Fraunces', serif; font-weight: 600; font-size: 20px; color: var(--se-blue); letter-spacing: 0.02em; }\n  .se-brand-text small { display: block; font-family: 'IBM Plex Sans', sans-serif; font-weight: 500; font-size: 9.5px; letter-spacing: 0.22em; color: var(--se-muted); text-transform: uppercase; margin-top: 1px; }\n  .se-nav { display: flex; align-items: center; gap: 30px; }\n  .se-nav a.se-navlink { text-decoration: none; font-size: 14.5px; font-weight: 500; color: var(--se-ink); }\n  .se-nav a.se-navlink:hover { color: var(--se-blue); }\n  .se-nav-phone { font-weight: 600; color: var(--se-navy); text-decoration: none; font-size: 14.5px; }\n  @media (max-width: 860px) { .se-nav a.se-navlink { display: none; } }\n\n  \/* ---------- Hero ---------- *\/\n  .se-hero { position: relative; overflow: hidden; background:\n      radial-gradient(120% 90% at 85% -10%, rgba(246,182,46,0.16), rgba(240,125,26,0.05) 42%, transparent 60%),\n      var(--se-paper); }\n  .se-hero-inner { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 40px; align-items: center; padding: 74px 0 66px; }\n  .se-eyebrow { text-transform: uppercase; letter-spacing: 0.17em; font-size: 12px; font-weight: 600; color: var(--se-blue); margin-bottom: 18px; }\n  .se-hero h1 { font-size: clamp(34px, 5.4vw, 58px); font-weight: 600; line-height: 1.05; color: var(--se-navy); }\n  .se-hero h1 .se-underline { position: relative; white-space: nowrap; }\n  .se-hero h1 .se-underline::after {\n    content: \"\"; position: absolute; left: 0; right: 0; bottom: 4px; height: 8px; border-radius: 6px;\n    background: var(--se-sun-grad); opacity: 0.9; z-index: -1;\n  }\n  .se-hero p.se-lede { font-size: 18px; color: var(--se-muted); margin: 22px 0 30px; max-width: 480px; }\n  .se-hero-cta { display: flex; flex-wrap: wrap; gap: 14px; }\n  .se-trust { display: flex; flex-wrap: wrap; gap: 22px 30px; margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--se-line); }\n  .se-trust div { font-size: 13px; color: var(--se-muted); }\n  .se-trust strong { display: block; font-family: 'Fraunces', serif; font-size: 19px; color: var(--se-navy); font-weight: 600; }\n\n  .se-hero-art { position: relative; }\n  .se-hero-art svg { width: 100%; height: auto; overflow: visible; }\n  .se-ray { transform-origin: 300px 300px; animation: se-ray-in .9s ease-out backwards; }\n  .se-panel-key { animation: se-panel-in .7s cubic-bezier(.2,.8,.2,1) backwards; }\n  @keyframes se-ray-in { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }\n  @keyframes se-panel-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }\n\n  @media (max-width: 800px) {\n    .se-hero-inner { grid-template-columns: 1fr; padding: 48px 0 40px; }\n    .se-hero-art { order: -1; max-width: 340px; margin: 0 auto; }\n  }\n\n  \/* ---------- Section scaffolding ---------- *\/\n  .se-section { padding: 74px 0; }\n  .se-section-head { max-width: 620px; margin-bottom: 44px; }\n  .se-section-head .se-kicker { text-transform: uppercase; letter-spacing: 0.15em; font-size: 12px; font-weight: 600; color: var(--se-sun-orange); margin-bottom: 12px; }\n  .se-section-head h2 { font-size: clamp(26px, 3.6vw, 38px); font-weight: 600; color: var(--se-navy); line-height: 1.12; }\n  .se-section-head p { color: var(--se-muted); font-size: 16.5px; margin-top: 14px; }\n\n  \/* ---------- Why-now cards ---------- *\/\n  .se-why { background: var(--se-paper); }\n  .se-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }\n  .se-why-card { background: var(--se-card); border: 1px solid var(--se-line); border-radius: 16px; padding: 30px 26px; }\n  .se-why-card .se-num { font-family: 'Fraunces', serif; font-weight: 700; font-size: 15px; color: #fff; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 11px; background: var(--se-sun-grad); margin-bottom: 20px; }\n  .se-why-card h3 { font-size: 20px; color: var(--se-navy); font-weight: 600; margin-bottom: 10px; }\n  .se-why-card p { font-size: 14.5px; color: var(--se-muted); margin: 0; }\n  @media (max-width: 780px) { .se-why-grid { grid-template-columns: 1fr; } }\n\n  \/* ---------- Calculator band ---------- *\/\n  .se-calc { background: linear-gradient(165deg, var(--se-navy), var(--se-navy-2)); color: #fff; }\n  .se-calc-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; }\n  .se-calc h2 { font-size: clamp(26px, 3.6vw, 36px); font-weight: 600; color: #fff; line-height: 1.14; }\n  .se-calc p { color: #b9cadb; font-size: 16.5px; margin: 16px 0 26px; }\n  .se-calc-panel { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); border-radius: 18px; padding: 32px; }\n  .se-calc-panel .se-calc-stat { display: flex; justify-content: space-between; align-items: baseline; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,0.12); }\n  .se-calc-panel .se-calc-stat:last-child { border-bottom: none; }\n  .se-calc-panel .se-calc-stat span { color: #cdd9e6; font-size: 14px; }\n  .se-calc-panel .se-calc-stat strong { font-family: 'Fraunces', serif; font-size: 20px; font-weight: 600; }\n  .se-calc-panel .se-sun-text { color: var(--se-sun-gold); }\n  @media (max-width: 800px) { .se-calc-inner { grid-template-columns: 1fr; gap: 30px; } }\n\n  \/* ---------- Services ---------- *\/\n  .se-serv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }\n  .se-serv-card { border: 1px solid var(--se-line); border-radius: 16px; padding: 28px; transition: border-color .2s, transform .12s; }\n  .se-serv-card:hover { border-color: var(--se-blue); transform: translateY(-2px); }\n  .se-serv-icon { width: 46px; height: 46px; margin-bottom: 18px; }\n  .se-serv-card h3 { font-size: 19px; font-weight: 600; color: var(--se-navy); margin-bottom: 8px; }\n  .se-serv-card p { font-size: 14px; color: var(--se-muted); margin: 0; }\n  @media (max-width: 780px) { .se-serv-grid { grid-template-columns: 1fr; } }\n\n  \/* ---------- Homepage service cards as real links ---------- *\/\n  .se-serv-card-link { text-decoration: none; display: block; cursor: pointer; }\n  .se-serv-card-link:focus-visible { outline: 3px solid var(--se-sun-orange); outline-offset: 3px; }\n  .se-serv-card .se-serv-cta { display: inline-block; margin-top: 14px; font-size: 13.5px; font-weight: 600; color: var(--se-blue); }\n  .se-serv-card-link:hover .se-serv-cta { text-decoration: underline; }\n  @media (max-width: 780px) { .se-serv-grid { grid-template-columns: 1fr; } }\n\n  \/* ---------- Process ---------- *\/\n  .se-proc { background: var(--se-paper); }\n  .se-proc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: step; }\n  .se-proc-step { position: relative; padding-top: 20px; }\n  .se-proc-step::before { counter-increment: step; content: \"0\" counter(step); font-family: 'Fraunces', serif; font-weight: 700; font-size: 15px; color: var(--se-sun-orange); letter-spacing: 0.05em; }\n  .se-proc-step h3 { font-size: 17px; font-weight: 600; color: var(--se-navy); margin: 10px 0 8px; }\n  .se-proc-step p { font-size: 13.5px; color: var(--se-muted); margin: 0; }\n  @media (max-width: 780px) { .se-proc-grid { grid-template-columns: 1fr 1fr; gap: 26px 20px; } }\n  @media (max-width: 460px) { .se-proc-grid { grid-template-columns: 1fr; } }\n\n  \/* ---------- Service area ---------- *\/\n  .se-area-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }\n  .se-area-card { border: 1px solid var(--se-line); border-radius: 12px; padding: 20px; }\n  .se-area-card h3 { font-size: 16px; font-weight: 600; color: var(--se-navy); margin-bottom: 8px; }\n  .se-area-card p { font-size: 12.5px; color: var(--se-muted); margin: 0; line-height: 1.6; }\n  @media (max-width: 900px) { .se-area-grid { grid-template-columns: 1fr 1fr; } }\n  @media (max-width: 460px) { .se-area-grid { grid-template-columns: 1fr; } }\n\n  \/* ---------- Final CTA ---------- *\/\n  .se-final { background: linear-gradient(120deg, var(--se-blue), var(--se-navy)); color: #fff; text-align: center; }\n  .se-final h2 { font-size: clamp(28px, 4vw, 42px); font-weight: 600; color: #fff; max-width: 640px; margin: 0 auto 16px; line-height: 1.1; }\n  .se-final p { color: #cfe0f0; font-size: 17px; max-width: 520px; margin: 0 auto 30px; }\n\n  \/* ---------- Footer ---------- *\/\n  .se-footer { background: var(--se-navy-2); color: #9fb2c6; font-size: 13.5px; padding: 54px 0 30px; }\n  .se-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 34px; margin-bottom: 34px; }\n  .se-footer h4, .se-footer h3.se-foot-h { color: #fff; font-family: 'IBM Plex Sans', sans-serif; font-size: 13px; text-transform: uppercase; letter-spacing: 0.1em; margin: 0 0 14px; }\n  .se-footer a { color: #9fb2c6; text-decoration: none; display: block; margin-bottom: 8px; }\n  .se-footer a:hover { color: #fff; }\n  .se-footer-brand { font-family: 'Fraunces', serif; color: #fff; font-size: 20px; margin-bottom: 10px; }\n  .se-footer-legal { border-top: 1px solid rgba(255,255,255,0.12); padding-top: 20px; font-size: 12px; line-height: 1.7; color: #7e93a8; }\n  @media (max-width: 780px) { .se-footer-grid { grid-template-columns: 1fr; gap: 26px; } }\n\n  @media (prefers-reduced-motion: reduce) {\n    * { animation: none !important; scroll-behavior: auto; }\n  }\n<\/style>\n\n\n\n<!-- ============================================================ HEADER -->\n<header class=\"se-header\">\n  <div class=\"se-wrap se-header-inner\">\n    <a class=\"se-brand\" href=\"\/\" aria-label=\"Starlight Energy home\">\n      <img loading=\"lazy\" decoding=\"async\" class=\"se-brand-mark\" src=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-logo-96.webp\" alt=\"Starlight Energy logo\" width=\"44\" height=\"39\">\n      <span class=\"se-brand-text\">Starlight Energy<small>Powering Your Future<\/small><\/span>\n    <\/a>\n    <nav class=\"se-nav\" aria-label=\"Primary\">\n      <div class=\"se-has-dropdown\" data-se-dropdown=\"\">\n        <button type=\"button\" class=\"se-dd-toggle\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"se-services-menu\">Services <span class=\"se-caret\" aria-hidden=\"true\"><\/span><\/button>\n        <div class=\"se-dd-menu\" id=\"se-services-menu\" role=\"menu\">\n          <a role=\"menuitem\" href=\"\/solar-battery-installation\/\">Solar &amp; Battery Installation<\/a>\n          <a role=\"menuitem\" href=\"\/new-construction-solar\/\">New Construction Solar<\/a>\n          <a role=\"menuitem\" href=\"\/solar-ppa\/\">Solar PPA ($0 Upfront)<\/a>\n          <a role=\"menuitem\" href=\"\/solar-maintenance\/\">Solar Preventative Maintenance<\/a>\n          <a role=\"menuitem\" href=\"\/panel-upgrades\/\">Main Panel Upgrades<\/a>\n          <a role=\"menuitem\" href=\"\/ev-charger-installation\/\">EV Charger Installation<\/a>\n          <a role=\"menuitem\" href=\"\/electrical-troubleshooting\/\">Electrical Troubleshooting &amp; Repair<\/a>\n        <\/div>\n      <\/div>\n      <a class=\"se-navlink\" href=\"\/savings-calculator\/\">Savings Calculator<\/a>\n      <div class=\"se-has-dropdown\" data-se-dropdown=\"\">\n        <button type=\"button\" class=\"se-dd-toggle\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"se-areas-menu\">Blog <span class=\"se-caret\" aria-hidden=\"true\"><\/span><\/button>\n        <div class=\"se-dd-menu\" id=\"se-areas-menu\" role=\"menu\">\n          <a role=\"menuitem\" href=\"\/solar-san-jose\/\">Solar in San Jose<\/a>\n          <a role=\"menuitem\" href=\"\/solar-san-francisco\/\">Solar in San Francisco<\/a>\n          <a role=\"menuitem\" href=\"\/pge-and-cca-explained\/\">PG&amp;E and CCAs, explained<\/a>\n          <a role=\"menuitem\" href=\"\/pge-peak-hours-explained\/\">PG&amp;E peak hours, explained<\/a>\n          <a role=\"menuitem\" href=\"\/home-battery-power-outage\/\">Home batteries in a power outage<\/a>\n          <a role=\"menuitem\" href=\"\/solar-panel-upgrade-120-rule\/\">Do I need a panel upgrade for solar?<\/a>\n        <\/div>\n      <\/div>\n      <a class=\"se-navlink\" href=\"\/about\/\">About<\/a>\n      <a class=\"se-nav-phone\" href=\"tel:+14087020480\">(408) 702-0480<\/a>\n      <a class=\"se-btn se-btn-sun\" href=\"\/contact\/\">Free assessment<\/a>\n    <\/nav>\n  <\/div>\n<\/header>\n\n<!-- ============================================================ HERO -->\n<style id=\"starlight-experience-preview\">\n\n.se-experience {\n  color-scheme: light;\n  --navy:#0e2c4d; --navy-deep:#081d33; --blue:#1c6fb3; --blue-light:#67a6dc;\n  --sun-red:#d83a2c; --sun-orange:#f07d1a; --sun-gold:#f6b62e;\n  --paper:#f4f6f8; --surface:#fff; --ink:#14202c; --muted:#596878; --line:#dce3e9;\n  --shadow:0 24px 80px rgba(9,31,54,.14); --radius-s:10px; --radius-m:18px;\n  --radius-l:28px; --max:1440px; --header:78px;\n  --sun-gradient:linear-gradient(110deg,var(--sun-red),var(--sun-orange) 58%,var(--sun-gold));\n  --ease:cubic-bezier(.2,.8,.2,1);\n  width:100vw; max-width:none !important; margin-inline:calc(50% - 50vw) !important;\n  overflow:clip; background:var(--paper); color:var(--ink);\n  font-family:\"IBM Plex Sans\",system-ui,sans-serif; line-height:1.55;\n  -webkit-font-smoothing:antialiased;\n}\n.se-experience, .se-experience *, .se-experience *::before, .se-experience *::after { box-sizing:border-box; }\n.se-experience img { display:block; max-width:100%; }\n.se-experience a { color:inherit; }\n.se-experience button, .se-experience a { -webkit-tap-highlight-color:transparent; }\n.se-experience button { font:inherit; }\n.se-experience h1, .se-experience h2, .se-experience h3, .se-experience p { margin-top:0; }\n.se-experience h1, .se-experience h2, .se-experience h3 {\n  font-family:\"Fraunces\",Georgia,serif; font-weight:500; letter-spacing:-.035em;\n  line-height:.98; text-wrap:balance;\n}\n.se-experience h1 { font-size:clamp(3.2rem,6.7vw,7.2rem); }\n.se-experience h2 { font-size:clamp(2.4rem,4.2vw,5rem); }\n.se-experience h3 { font-size:clamp(1.4rem,2vw,2rem); }\n.se-experience :focus-visible { outline:3px solid var(--sun-gold); outline-offset:4px; }\n.se-experience .eyebrow {\n  margin-bottom:20px; color:var(--blue); font-size:.76rem; font-weight:600;\n  letter-spacing:.15em; text-transform:uppercase;\n}\n.se-experience .button {\n  min-height:52px; display:inline-flex; align-items:center; justify-content:center;\n  padding:0 24px; border-radius:999px; background:var(--sun-gradient); color:#fff;\n  font-weight:600; text-decoration:none; box-shadow:0 12px 28px rgba(224,82,30,.24);\n  transition:transform .25s var(--ease),box-shadow .25s var(--ease);\n}\n.se-experience .button:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(224,82,30,.34); }\n.se-experience .text-link { font-weight:600; text-decoration:none; }\n.se-experience .text-link span { display:inline-block; margin-left:6px; transition:transform .2s var(--ease); }\n.se-experience .text-link:hover span { transform:translateX(5px); }\n@media (prefers-reduced-motion:reduce) {\n  .se-experience *, .se-experience *::before, .se-experience *::after {\n    animation-duration:.01ms !important; animation-iteration-count:1 !important;\n    transition-duration:.01ms !important;\n  }\n}\n\n.se-experience .site-header {\n  position: sticky;\n  z-index: 50;\n  top: 0;\n  height: var(--header);\n  display: grid;\n  grid-template-columns: auto 1fr auto;\n  align-items: center;\n  gap: clamp(20px, 3vw, 56px);\n  padding: 0 clamp(18px, 4vw, 64px);\n  background: color-mix(in srgb, var(--paper) 88%, transparent);\n  border-bottom: 1px solid color-mix(in srgb, var(--line) 68%, transparent);\n  backdrop-filter: blur(18px);\n}\n.se-experience .brand { display: flex; align-items: center; gap: 11px; min-height: 44px; text-decoration: none; }\n.se-experience .brand img { width: 48px; height: 48px; border-radius: 50%; object-fit: contain; }\n.se-experience .brand > span { color: var(--blue); font-family: \"Fraunces\", serif; font-size: 1.04rem; font-weight: 600; line-height: 1; }\n.se-experience .brand small { display: block; margin-top: 6px; color: var(--muted); font-family: \"IBM Plex Sans\", sans-serif; font-size: .55rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }\n.se-experience .site-header nav { display: flex; justify-content: center; gap: clamp(18px, 2.5vw, 40px); }\n.se-experience .site-header nav a, .se-experience .phone { color: var(--ink); font-size: .84rem; font-weight: 500; text-decoration: none; }\n.se-experience .site-header nav a { position: relative; padding: 12px 0; }\n.se-experience .site-header nav a::after { content: \"\"; position: absolute; right: 100%; bottom: 7px; left: 0; height: 2px; background: var(--sun-orange); transition: right .25s var(--ease); }\n.se-experience .site-header nav a:hover::after { right: 0; }\n.se-experience .header-actions { display: flex; align-items: center; gap: 15px; }\n.se-experience .phone { white-space: nowrap; }\n.se-experience .theme-toggle {\n  width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); cursor: pointer;\n}\n.se-experience .theme-toggle span { display: block; width: 15px; height: 15px; margin: auto; border-radius: 50%; background: var(--sun-gold); box-shadow: -5px 0 0 1px var(--surface); }\n.se-experience html[data-theme=\"dark\"] .theme-toggle span { background: #b9d8ef; box-shadow: none; }\n\n.se-experience .hero {\n  min-height: calc(100svh - var(--header));\n  display: grid;\n  grid-template-columns: minmax(400px, .8fr) minmax(580px, 1.2fr);\n  align-items: center;\n  gap: clamp(28px, 4vw, 72px);\n  max-width: 1800px;\n  margin: auto;\n  padding: clamp(56px, 8vw, 120px) clamp(20px, 5vw, 88px);\n  overflow: hidden;\n}\n.se-experience .hero-copy { position: relative; z-index: 2; }\n.se-experience .hero h1 { max-width: 820px; margin-bottom: 28px; color: var(--navy); }\n.se-experience html[data-theme=\"dark\"] .hero h1 { color: #f8fbfd; }\n.se-experience .hero-lede { max-width: 640px; margin-bottom: 32px; color: var(--muted); font-size: clamp(1.05rem, 1.4vw, 1.25rem); }\n.se-experience .hero-actions { display: flex; align-items: center; gap: 28px; }\n.se-experience .trust-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: clamp(42px, 6vw, 78px) 0 0; padding: 24px 0 0; border-top: 1px solid var(--line); list-style: none; }\n.se-experience .trust-list strong, .se-experience .trust-list span { display: block; }\n.se-experience .trust-list strong { color: var(--ink); font-size: .86rem; }\n.se-experience .trust-list span { color: var(--muted); font-size: .7rem; margin-top: 3px; }\n\n.se-experience .hero-preview { position: relative; min-width: 0; }\n.se-experience .hero-preview::before { content: \"\"; position: absolute; inset: -18% -12%; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(246,182,46,.27), transparent 63%); filter: blur(30px); }\n.se-experience .preview-frame { position: relative; overflow: hidden; aspect-ratio: 16\/10; border-radius: 4px 4px var(--radius-l) var(--radius-l); box-shadow: var(--shadow); background: #aac5d8; transform: perspective(1400px) rotateY(-3deg); }\n.se-experience .preview-frame > img { width: 100%; height: 100%; object-fit: cover; }\n.se-experience .preview-frame > p { position: absolute; left: 24px; bottom: 20px; margin: 0; padding: 9px 14px; border: 1px solid rgba(255,255,255,.4); border-radius: 99px; background: rgba(8,29,51,.68); color: white; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(8px); }\n.se-experience .preview-glow { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(246,182,46,.16), transparent 44%); }\n\n.se-experience .system-story { display: grid; grid-template-columns: minmax(320px, .52fr) minmax(700px, 1.48fr); align-items: start; gap: clamp(28px, 4vw, 64px); max-width: 1640px; margin: auto; padding: clamp(80px, 11vw, 160px) clamp(20px, 3vw, 52px); }\n.se-experience .story-copy { min-width: 0; padding-top: 3vh; }\n.se-experience .story-copy h2 { margin-bottom: 26px; }\n.se-experience .story-intro { max-width: 560px; margin-bottom: 44px; color: var(--muted); font-size: 1.04rem; }\n.se-experience .steps { --story-progress:0; position:relative; display:grid; max-width:100%; gap:2px; }\n.se-experience .steps::before,.se-experience .steps::after { content:\"\"; position:absolute; z-index:2; top:0; bottom:0; left:0; width:2px; transform-origin:top; pointer-events:none; }\n.se-experience .steps::before { background:var(--line); }\n.se-experience .steps::after { background:linear-gradient(to bottom,var(--sun-orange),var(--sun-gold)); transform:scaleY(var(--story-progress)); }\n.se-experience .step {\n  --proximity:.2; position:relative; min-height:64vh; display:grid; grid-template-columns:52px 1fr; grid-template-rows:auto auto; align-content:center; align-items:center; column-gap:16px;\n  padding:24px 20px; border:0; background:transparent; color:var(--ink); text-align:left; cursor:pointer; opacity:calc(.22 + var(--proximity) * .78); transition:background .35s var(--ease),padding-left .35s var(--ease),opacity .18s linear;\n}\n.se-experience .step:hover, .se-experience .step.is-active { padding-left:30px; background:color-mix(in srgb,var(--surface) 82%,transparent); opacity:1; }\n.se-experience .step > span { grid-row: 1\/3; color: var(--sun-orange); font-family: \"Fraunces\",serif; font-size: 1.15rem; }\n.se-experience .step strong { align-self: end; font-family:\"Fraunces\",serif; font-size: clamp(1.35rem,2.1vw,2rem); font-weight:500; line-height:1.05; }\n.se-experience .step small { max-width:310px; align-self: start; margin-top:8px; color: var(--muted); font-size: .78rem; }\n\n.se-experience .stage-wrap { position: relative; min-width: 0; }\n.se-experience .stage-wrap { position:sticky; top:calc(var(--header) + 4vh); padding-top:0; }\n.se-experience .stage { position: relative; overflow: hidden; aspect-ratio:16\/9; border-radius: var(--radius-l); background: #9dbad0; box-shadow: var(--shadow); isolation: isolate; }\n.se-experience .home-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; image-rendering:auto; transition:filter .8s var(--ease),opacity .8s var(--ease),transform 1.05s cubic-bezier(.2,.8,.2,1); }\n.se-experience .base-image { z-index:0; }\n.se-experience .solar-image,.se-experience .battery-image,.se-experience .ev-image { opacity:0; transform:scale(.992); }\n.se-experience .solar-image {\n  z-index:1;\n  -webkit-mask-image:radial-gradient(ellipse 35% 29% at 36% 37%,#000 58%,rgba(0,0,0,.94) 70%,transparent 100%);\n  mask-image:radial-gradient(ellipse 35% 29% at 36% 37%,#000 58%,rgba(0,0,0,.94) 70%,transparent 100%);\n}\n.se-experience .battery-image {\n  z-index:2;\n  -webkit-mask-image:radial-gradient(ellipse 18% 28% at 16% 65%,#000 54%,rgba(0,0,0,.92) 70%,transparent 100%);\n  mask-image:radial-gradient(ellipse 18% 28% at 16% 65%,#000 54%,rgba(0,0,0,.92) 70%,transparent 100%);\n}\n.se-experience .ev-image {\n  z-index:3;\n  -webkit-mask-image:radial-gradient(ellipse 31% 26% at 69% 68%,#000 56%,rgba(0,0,0,.92) 72%,transparent 100%);\n  mask-image:radial-gradient(ellipse 31% 26% at 69% 68%,#000 56%,rgba(0,0,0,.92) 72%,transparent 100%);\n}\n.se-experience [data-active-step=\"1\"] .solar-image,.se-experience [data-active-step=\"2\"] .solar-image,.se-experience [data-active-step=\"3\"] .solar-image,.se-experience [data-active-step=\"4\"] .solar-image,.se-experience [data-active-step=\"2\"] .battery-image,.se-experience [data-active-step=\"3\"] .battery-image,.se-experience [data-active-step=\"4\"] .battery-image,.se-experience [data-active-step=\"3\"] .ev-image,.se-experience [data-active-step=\"4\"] .ev-image { opacity:1; transform:none; }\n.se-experience .equipment-focus { position:absolute; z-index:4; border:1.5px solid rgba(255,255,255,.94); border-radius:50%; opacity:0; pointer-events:none; box-shadow:0 0 0 6px rgba(246,182,46,.13),0 0 30px rgba(246,182,46,.48),inset 0 0 16px rgba(246,182,46,.16); transform:scale(.72); }\n.se-experience .focus-battery { top:55%; left:14%; width:14%; height:27%; }\n.se-experience .focus-ev { top:63%; left:53%; width:29%; height:24%; }\n.se-experience [data-active-step=\"2\"] .focus-battery { animation:equipmentFocus 1.35s .58s var(--ease) both; }\n.se-experience [data-active-step=\"3\"] .focus-ev { animation:equipmentFocus 1.35s .58s var(--ease) both; }\n.se-experience .whole-home-glow { position:absolute; z-index:4; inset:0; border-radius:inherit; opacity:0; pointer-events:none; box-shadow:inset 0 0 0 2px rgba(125,240,174,.28),inset 0 0 90px rgba(125,240,174,.1); }\n.se-experience [data-active-step=\"4\"] .whole-home-glow { opacity:.62; transition:opacity .65s var(--ease),box-shadow .65s var(--ease); }\n.se-experience [data-active-step=\"4\"][data-mode=\"outage\"] .whole-home-glow { opacity:.9; box-shadow:inset 0 0 0 2px rgba(125,240,174,.38),inset 0 0 110px rgba(125,240,174,.16); }\n.se-experience .sky-wash { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(5,15,35,.05), transparent 55%); transition: background .8s var(--ease); }\n.se-experience .sun-orb { position: absolute; z-index:4; top: 8%; left: 9%; width: 52px; height: 52px; border-radius: 50%; background: #ffd16c; opacity: 0; transform: scale(.5); box-shadow: 0 0 50px rgba(246,182,46,.8); transition: all .6s var(--ease); }\n.se-experience .sun-orb span { position: absolute; inset: -18px; border: 1px solid rgba(255,215,120,.55); border-radius: 50%; }\n\n.se-experience .install-sweep { position:absolute; z-index:4; top:0; bottom:0; left:-20%; width:14%; background:linear-gradient(90deg,transparent,rgba(255,218,112,.62),transparent); filter:blur(8px); opacity:0; transform:skewX(-12deg); }\n.se-experience [data-active-step=\"1\"] .install-sweep { animation:installSweep 1.05s .08s var(--ease) both; }\n.se-experience .stage-progress { position:absolute; z-index:8; top:50%; right:16px; display:grid; gap:9px; transform:translateY(-50%); }\n.se-experience .stage-progress i { width:6px; height:6px; border-radius:99px; background:rgba(255,255,255,.5); box-shadow:0 0 0 1px rgba(8,29,51,.15); transition:height .3s var(--ease),background .3s; }\n.se-experience [data-active-step=\"0\"] .stage-progress i:nth-child(1),.se-experience [data-active-step=\"1\"] .stage-progress i:nth-child(2),.se-experience [data-active-step=\"2\"] .stage-progress i:nth-child(3),.se-experience [data-active-step=\"3\"] .stage-progress i:nth-child(4),.se-experience [data-active-step=\"4\"] .stage-progress i:nth-child(5) { height:28px; background:var(--sun-gold); }\n\n.se-experience .system-diagram { position:absolute; z-index:5; inset:0; width:100%; height:100%; pointer-events:none; opacity:0; transition:opacity .4s var(--ease); }\n.se-experience .diagram-path { fill:none; stroke:rgba(255,255,255,.95); stroke-width:4; stroke-linecap:round; stroke-dasharray:10 12; filter:drop-shadow(0 2px 4px rgba(8,29,51,.7)); animation:diagramFlow 1.1s linear infinite; transition:opacity .35s,stroke .35s; }\n.se-experience .path-solar { stroke:var(--sun-gold); }\n.se-experience .path-battery { stroke:#7ec4ef; }\n.se-experience .path-home { stroke:#67d39a; }\n.se-experience .path-charger { stroke:#ff9b4d; }\n.se-experience .diagram-node { fill:var(--sun-gold); stroke:white; stroke-width:4; filter:drop-shadow(0 0 8px rgba(246,182,46,.95)); }\n.se-experience [data-active-step=\"4\"] .system-diagram { opacity:1; }\n.se-experience [data-mode=\"evening\"] .path-solar { opacity:.16; }\n.se-experience [data-mode=\"evening\"] .path-charger { opacity:.45; }\n.se-experience [data-mode=\"outage\"] .path-solar,.se-experience [data-mode=\"outage\"] .path-charger { opacity:.08; }\n.se-experience [data-mode=\"outage\"] .path-battery,.se-experience [data-mode=\"outage\"] .path-home { stroke:#7df0ae; stroke-width:5; }\n.se-experience .outage-badge { position:absolute; z-index:7; top:72px; left:20px; padding:8px 12px; border-radius:99px; background:#df4636; color:white; font-size:.72rem; font-weight:600; opacity:0; transform:translateY(-8px); transition:all .35s var(--ease); }\n\n.se-experience .stage-information { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr); align-items:center; gap:20px; margin-top:14px; }\n.se-experience .system-card { min-width:0; padding:14px 16px; border:1px solid var(--line); border-radius:var(--radius-m); background:var(--surface); color:var(--ink); box-shadow:0 10px 28px rgba(9,31,54,.08); }\n.se-experience .system-status { display:block; margin-bottom:4px; color:var(--blue); font-size:.61rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }\n.se-experience .system-title { display:block; font-family:\"Fraunces\",serif; font-size:1.3rem; line-height:1.1; }\n.se-experience .system-detail { margin:5px 0 10px; color:var(--muted); font-size:.69rem; line-height:1.4; }\n.se-experience .metric-row { display:grid; grid-template-columns:repeat(3,1fr); padding-top:8px; border-top:1px solid var(--line); }\n.se-experience .metric-row div+div { padding-left:12px; border-left:1px solid var(--line); }\n.se-experience .metric-row small,.se-experience .metric-row b { display:block; }\n.se-experience .metric-row small { color:var(--muted); font-size:.54rem; text-transform:uppercase; }\n.se-experience .metric-row b { margin-top:2px; font-size:.72rem; }\n.se-experience .equipment-panel { display:grid; justify-items:end; gap:8px; }\n.se-experience .equipment-update { display:flex; align-items:baseline; justify-content:flex-end; gap:8px; margin:0; color:var(--muted); }\n.se-experience .equipment-update span { font-size:.58rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }\n.se-experience .equipment-update strong { color:var(--ink); font-family:\"Fraunces\",serif; font-size:1.03rem; font-weight:500; }\n.se-experience .equipment-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 16px; padding:2px 4px 10px; }\n.se-experience .equipment-legend span { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:.68rem; font-weight:500; opacity:.28; transform:translateY(3px); transition:opacity .35s var(--ease),transform .35s var(--ease),color .35s; }\n.se-experience .equipment-legend i { width:8px; height:8px; border:2px solid white; border-radius:50%; background:var(--sun-gold); box-shadow:0 0 0 1px var(--sun-orange); }\n.se-experience [data-active-step=\"1\"] [data-equipment=\"solar\"],\n.se-experience [data-active-step=\"2\"] [data-equipment=\"solar\"],\n.se-experience [data-active-step=\"2\"] [data-equipment=\"battery\"],\n.se-experience [data-active-step=\"2\"] [data-equipment=\"control\"],\n.se-experience [data-active-step=\"3\"] .equipment-legend span,\n.se-experience [data-active-step=\"4\"] .equipment-legend span { opacity:1; transform:none; color:var(--ink); }\n.se-experience .mode-switcher { position:absolute; z-index:6; top:20px; left:20px; display:flex; padding:4px; border:1px solid rgba(255,255,255,.4); border-radius:99px; background:rgba(8,29,51,.64); backdrop-filter:blur(10px); opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity .4s var(--ease),transform .4s var(--ease); }\n.se-experience [data-active-step=\"4\"] .mode-switcher { opacity:1; transform:none; pointer-events:auto; }\n.se-experience .mode-switcher button { min-width:60px; min-height:36px; padding:0 13px; border:0; border-radius:99px; background:transparent; color:#d9e5ed; font-size:.7rem; cursor:pointer; }\n.se-experience .mode-switcher button.is-active { background:white; color:var(--navy); font-weight:600; }\n.se-experience .stage-note { margin:12px 12px 0; color:var(--muted); font-size:.68rem; }\n\n.se-experience [data-mode=\"evening\"] .home-image { filter:brightness(.57) saturate(.78) hue-rotate(8deg); }\n.se-experience [data-mode=\"evening\"] .sky-wash { background:linear-gradient(to bottom,rgba(18,20,60,.48),rgba(245,130,79,.12) 52%,rgba(5,15,35,.24)); }\n.se-experience [data-active-step=\"4\"][data-mode=\"evening\"] .sun-orb { top:14%; background:#f5a560; opacity:.8; box-shadow:0 0 45px rgba(245,165,96,.6); }\n.se-experience [data-mode=\"outage\"] .home-image { filter:brightness(.39) saturate(.58) hue-rotate(12deg); }\n.se-experience [data-mode=\"outage\"] .sky-wash { background:linear-gradient(to bottom,rgba(3,9,32,.64),rgba(9,18,37,.36)); }\n.se-experience [data-mode=\"outage\"] .outage-badge { opacity:1; transform:none; }\n.se-experience [data-active-step=\"4\"][data-mode=\"day\"] .sun-orb { opacity:1; transform:scale(1); }\n\n.se-experience .why { max-width:var(--max); margin:auto; padding:clamp(80px,10vw,150px) clamp(20px,4vw,64px); border-top:1px solid var(--line); }\n.se-experience .section-heading { display:grid; grid-template-columns:.65fr 1.35fr; align-items:start; margin-bottom:clamp(50px,7vw,100px); }\n.se-experience .section-heading h2 { max-width:900px; }\n.se-experience .benefit-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }\n.se-experience .benefit-grid article { min-height:330px; padding:clamp(28px,4vw,54px); background:var(--surface); }\n.se-experience .benefit-grid article > span { display:block; margin-bottom:clamp(60px,8vw,120px); color:var(--sun-orange); font-family:\"Fraunces\",serif; }\n.se-experience .benefit-grid h3 { margin-bottom:18px; font-size:clamp(1.5rem,2.3vw,2.2rem); line-height:1.05; }\n.se-experience .benefit-grid p { margin:0; color:var(--muted); font-size:.9rem; }\n\n.se-experience .scenario { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(40px,6vw,100px); padding:clamp(80px,10vw,150px) max(20px,calc((100vw - var(--max))\/2 + 64px)); background:var(--navy-deep); color:white; }\n.se-experience .scenario .eyebrow { color:#8ac6f0; }\n.se-experience .scenario-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:end; }\n.se-experience .scenario-grid article { min-height:260px; display:flex; flex-direction:column; justify-content:flex-end; padding:26px; border:1px solid rgba(255,255,255,.15); border-radius:var(--radius-m); background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); }\n.se-experience .scenario-grid article:nth-child(2) { transform:translateY(-28px); }\n.se-experience .scenario-time { margin-bottom:auto; color:#8fb9d9; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }\n.se-experience .scenario-grid strong { font-family:\"Fraunces\",serif; font-size:2rem; font-weight:500; }\n.se-experience .scenario-grid p { margin:10px 0 0; color:#b8c9d6; font-size:.82rem; }\n\n.se-experience .final-cta { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:50px; padding:clamp(90px,12vw,180px) max(20px,calc((100vw - var(--max))\/2 + 64px)); background:var(--sun-gradient); color:white; }\n.se-experience .final-cta .eyebrow { color:white; opacity:.76; }\n.se-experience .final-cta h2 { max-width:900px; margin-bottom:24px; }\n.se-experience .final-cta p:not(.eyebrow) { max-width:700px; margin:0; color:rgba(255,255,255,.86); }\n.se-experience .cta-actions { display:flex; flex-direction:column; align-items:flex-start; gap:22px; }\n.se-experience footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:36px max(20px,calc((100vw - var(--max))\/2 + 64px)); background:#061727; color:#9fb2c6; font-size:.72rem; }\n.se-experience .footer-brand { display:flex; align-items:center; gap:12px; }\n.se-experience .footer-brand img { width:44px;height:44px;border-radius:50%; }\n.se-experience .footer-brand strong,.se-experience .footer-brand span { display:block; }\n.se-experience .footer-brand strong { color:white; font-family:\"Fraunces\",serif; font-size:1rem; }\n.se-experience footer p { max-width:530px; margin:0; text-align:right; }\n\n@keyframes panelIn { from{opacity:0;transform:translateY(-24px) skewX(-18deg) rotate(-14deg)} to{opacity:1} }\n@keyframes batteryIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }\n@keyframes flowPulse { 0%,100%{opacity:.15} 50%{opacity:1} }\n@keyframes energy { to{background-position:200% 0} }\n@keyframes installSweep { 0%{left:-20%;opacity:0} 18%{opacity:1} 82%{opacity:1} 100%{left:110%;opacity:0} }\n@keyframes diagramFlow { to{stroke-dashoffset:-44} }\n@keyframes equipmentFocus { 0%{opacity:0;transform:scale(.72)} 26%,68%{opacity:1;transform:scale(1)} 100%{opacity:0;transform:scale(1.08)} }\n@keyframes informationIn { from{opacity:.58;transform:translateY(7px)} to{opacity:1;transform:none} }\n.se-experience .system-card.is-changing,.se-experience .equipment-update.is-changing { animation:informationIn .42s var(--ease) both; }\n\n@media (max-width: 1120px) {\n  .se-experience .site-header nav { display:none; }\n  .se-experience .site-header { grid-template-columns:1fr auto; }\n  .se-experience .hero { grid-template-columns:1fr; }\n  .se-experience .hero-copy { max-width:900px; }\n  .se-experience .hero-preview { max-width:980px; }\n  .se-experience .system-story { display:flex; flex-direction:column; gap:0; }\n  .se-experience .story-copy { display:contents; }\n  .se-experience .story-copy > .eyebrow { order:1; }\n  .se-experience .story-copy > h2 { order:2; }\n  .se-experience .story-copy > .story-intro { order:3; margin-bottom:28px; }\n  .se-experience .stage-wrap { position:relative; top:auto; order:4; }\n  .se-experience .steps { order:5; margin-top:22px; }\n  .se-experience .stage { height:auto; min-height:0; aspect-ratio:16\/11.2; }\n  .se-experience .steps { width:100%; grid-template-columns:repeat(5, 170px); overflow-x:auto; overscroll-behavior-inline:contain; padding-bottom:8px; scrollbar-width:thin; }\n  .se-experience .steps::before,.se-experience .steps::after { display:none; }\n  .se-experience .step { min-width:170px; min-height:94px; align-content:center; grid-template-columns:38px 1fr; padding:12px 15px; opacity:.7; }\n  .se-experience .step strong { font-family:\"IBM Plex Sans\",sans-serif; font-size:.86rem; font-weight:600; }\n  .se-experience .step small { margin-top:2px; font-size:.67rem; }\n  .se-experience .scenario { grid-template-columns:1fr; }\n}\n\n@media (max-width: 760px) {\n  .se-experience :root { --header:68px; }\n  .se-experience .site-header { padding-inline:16px; }\n  .se-experience .brand img { width:42px;height:42px; }\n  .se-experience .brand > span { font-size:.9rem; }\n  .se-experience .brand small,.se-experience .phone,.se-experience .theme-toggle { display:none; }\n  .se-experience .button-small { min-height:42px; padding-inline:14px; font-size:.74rem; }\n  .se-experience .hero { min-height:auto; grid-template-columns:minmax(0,1fr); padding:54px 18px 76px; }\n  .se-experience .hero h1 { font-size:clamp(3rem,15vw,5rem); }\n  .se-experience .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }\n  .se-experience .trust-list { grid-template-columns:1fr; }\n  .se-experience .hero-preview { margin-top:10px; }\n  .se-experience .preview-frame { aspect-ratio:4\/3; transform:none; }\n  .se-experience .preview-frame > img { object-position:center; }\n\n  .se-experience .system-story { padding:78px 14px; }\n  .se-experience .story-copy { padding-inline:4px; }\n  .se-experience .steps { margin-inline:-4px; }\n  .se-experience .stage { aspect-ratio:16\/10.5; border-radius:20px; }\n  .se-experience .home-image { object-position:center; }\n  .se-experience .solar-array { top:32%; left:21%; width:54%; height:16%; }\n  .se-experience .inverter { left:19%;bottom:33%;width:5%;}.se-experience .battery{left:25%;bottom:28%;width:8.5%}.se-experience .meter{left:35%;bottom:35%;width:4%}\n  .se-experience .system-card { left:12px; right:12px; bottom:12px; width:auto; padding:14px; }\n  .se-experience .stage-information { grid-template-columns:1fr; gap:8px; }\n  .se-experience .equipment-panel { justify-items:start; }\n  .se-experience .equipment-update,.se-experience .equipment-legend { justify-content:flex-start; }\n  .se-experience .system-detail { display:none; }\n  .se-experience .mode-switcher { top:12px; left:12px; }\n  .se-experience .mode-switcher button { min-width:57px; min-height:38px; }\n  .se-experience .grid-marker { right:4%;bottom:32%; }\n  .se-experience .outage-badge { top:62px;right:auto;left:12px; }\n  .se-experience .stage-note { font-size:.62rem; }\n\n  .se-experience .section-heading { grid-template-columns:1fr; }\n  .se-experience .benefit-grid { grid-template-columns:1fr; }\n  .se-experience .benefit-grid article { min-height:260px; }\n  .se-experience .benefit-grid article > span { margin-bottom:54px; }\n  .se-experience .scenario { padding-inline:20px; }\n  .se-experience .scenario-grid { grid-template-columns:1fr; }\n  .se-experience .scenario-grid article,.se-experience .scenario-grid article:nth-child(2) { min-height:210px; transform:none; }\n  .se-experience .final-cta { grid-template-columns:1fr; padding-inline:20px; }\n  .se-experience footer { align-items:flex-start; flex-direction:column; padding-inline:20px; }\n  .se-experience footer p { text-align:left; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .se-experience html { scroll-behavior:auto; }\n  .se-experience .home-image,.se-experience .equipment-focus,.se-experience .whole-home-glow,.se-experience .system-diagram,.se-experience .diagram-path,.se-experience .install-sweep,.se-experience .sun-orb,.se-experience .step { animation:none !important; transition-duration:.01ms !important; }\n}\n\n<\/style>\n<div class=\"se-experience\">\n<section class=\"hero\">\n      <div class=\"hero-copy\">\n        <p class=\"eyebrow\">Solar that works as one system<\/p>\n        <h1>Watch your home become its own power station.<\/h1>\n        <p class=\"hero-lede\">Explore how solar, whole-home battery backup, EV charging, and electrical expertise come together around one modern Bay Area home.<\/p>\n        <div class=\"hero-actions\">\n          <a class=\"button\" href=\"#system\">Build the system<\/a>\n          <a class=\"text-link\" href=\"https:\/\/starlightenergy.io\/contact\/\" target=\"_blank\" rel=\"noreferrer\">Talk with a local expert <span aria-hidden=\"true\">\u2192<\/span><\/a>\n        <\/div>\n        <ul class=\"trust-list\" aria-label=\"Starlight Energy credentials\">\n          <li><strong>CSLB #1132072<\/strong><span>Licensed &amp; insured<\/span><\/li>\n          <li><strong>Bay Area local<\/strong><span>Designed for your utility<\/span><\/li>\n          <li><strong>One accountable team<\/strong><span>Solar, storage &amp; electrical<\/span><\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"hero-preview\" aria-hidden=\"true\">\n        <div class=\"preview-frame\">\n          <img src=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-ev-1200w.webp\" srcset=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-ev-800w.webp 800w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-ev-1200w.webp 1200w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/09\/modern-home-ev.webp 1800w\" sizes=\"(max-width: 900px) 100vw, 50vw\" alt=\"Bay Area home with solar panels, a home battery and an EV charger\" fetchpriority=\"high\" decoding=\"async\">\n          <div class=\"preview-glow\"><\/div>\n          <p>Scroll to build<\/p>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"system-story\" id=\"system\" data-active-step=\"0\" data-mode=\"day\">\n      <div class=\"story-copy\">\n        <p class=\"eyebrow\">Your system, layer by layer<\/p>\n        <h2>Designed as a whole.<br>Installed by one team.<\/h2>\n        <p class=\"story-intro\">Select a step or scroll. Every component appears where it belongs, with no mystery about how your home will produce, store, and use energy.<\/p>\n\n        <div class=\"steps\" role=\"tablist\" aria-label=\"Solar system installation steps\">\n          <button class=\"step is-active\" role=\"tab\" aria-selected=\"true\" data-step=\"0\">\n            <span>01<\/span><strong>Your home<\/strong><small>Roof, usage and electrical assessment<\/small>\n          <\/button>\n          <button class=\"step\" role=\"tab\" aria-selected=\"false\" data-step=\"1\">\n            <span>02<\/span><strong>Solar generation<\/strong><small>Panels positioned for productive roof space<\/small>\n          <\/button>\n          <button class=\"step\" role=\"tab\" aria-selected=\"false\" data-step=\"2\">\n            <span>03<\/span><strong>Whole-home battery<\/strong><small>Stored energy sized for full-home backup<\/small>\n          <\/button>\n          <button class=\"step\" role=\"tab\" aria-selected=\"false\" data-step=\"3\">\n            <span>04<\/span><strong>EV charging<\/strong><small>Charge at home with energy from your roof<\/small>\n          <\/button>\n          <button class=\"step\" role=\"tab\" aria-selected=\"false\" data-step=\"4\">\n            <span>05<\/span><strong>Full-home protection<\/strong><small>Your entire home stays powered through an outage<\/small>\n          <\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"stage-wrap\">\n        <div class=\"stage\" aria-label=\"Interactive illustration of a modern home gaining solar panels and battery storage\">\n          <img class=\"home-image base-image\" src=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-base-1200w.webp\" srcset=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-base-800w.webp 800w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-base-1200w.webp 1200w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/09\/modern-home-base.webp 1800w\" sizes=\"(max-width: 900px) 100vw, 60vw\" loading=\"lazy\" decoding=\"async\" alt=\"Modern home before solar installation\">\n          <img class=\"home-image solar-image\" src=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-solar-1200w.webp\" srcset=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-solar-800w.webp 800w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-solar-1200w.webp 1200w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/09\/modern-home-solar.webp 1800w\" sizes=\"(max-width: 900px) 100vw, 60vw\" loading=\"lazy\" decoding=\"async\" alt=\"The same modern home with a roof-mounted solar array\">\n          <img class=\"home-image battery-image\" src=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-battery-1200w.webp\" srcset=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-battery-800w.webp 800w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-battery-1200w.webp 1200w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/09\/modern-home-battery.webp 1800w\" sizes=\"(max-width: 900px) 100vw, 60vw\" loading=\"lazy\" decoding=\"async\" alt=\"The same solar home with a wall-mounted whole-home battery and inverter\">\n          <img class=\"home-image ev-image\" src=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-ev-1200w.webp\" srcset=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-ev-800w.webp 800w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/modern-home-ev-1200w.webp 1200w, https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/09\/modern-home-ev.webp 1800w\" sizes=\"(max-width: 900px) 100vw, 60vw\" loading=\"lazy\" decoding=\"async\" alt=\"The completed solar and battery home with an electric vehicle connected to a wall charger\">\n          <div class=\"equipment-focus focus-battery\"><\/div>\n          <div class=\"equipment-focus focus-ev\"><\/div>\n          <div class=\"whole-home-glow\"><\/div>\n          <div class=\"sky-wash\"><\/div>\n          <div class=\"sun-orb\"><span><\/span><\/div>\n          <div class=\"install-sweep\"><\/div>\n          <div class=\"stage-progress\" aria-hidden=\"true\">\n            <i><\/i><i><\/i><i><\/i><i><\/i><i><\/i>\n          <\/div>\n\n          <svg class=\"system-diagram\" viewBox=\"0 0 1365 768\" preserveAspectRatio=\"xMidYMid slice\" aria-hidden=\"true\">\n            <path class=\"diagram-path path-solar\" d=\"M465 350 C430 420 370 500 325 550\"\/>\n            <path class=\"diagram-path path-battery\" d=\"M325 550 L270 548\"\/>\n            <path class=\"diagram-path path-home\" d=\"M325 550 C455 505 610 495 745 525\"\/>\n            <path class=\"diagram-path path-charger\" d=\"M325 550 C485 620 650 610 758 558\"\/>\n            <circle class=\"diagram-node solar-node\" cx=\"465\" cy=\"350\" r=\"8\"\/>\n            <circle class=\"diagram-node battery-node\" cx=\"270\" cy=\"548\" r=\"8\"\/>\n            <circle class=\"diagram-node inverter-node\" cx=\"325\" cy=\"550\" r=\"8\"\/>\n            <circle class=\"diagram-node home-node\" cx=\"745\" cy=\"525\" r=\"8\"\/>\n            <circle class=\"diagram-node charger-node\" cx=\"758\" cy=\"558\" r=\"8\"\/>\n          <\/svg>\n          <div class=\"outage-badge\">Grid outage<\/div>\n\n          <div class=\"mode-switcher\" role=\"group\" aria-label=\"Energy scenario\">\n            <button class=\"is-active\" data-mode=\"day\" aria-pressed=\"true\">Day<\/button>\n            <button data-mode=\"evening\" aria-pressed=\"false\">Evening<\/button>\n            <button data-mode=\"outage\" aria-pressed=\"false\">Outage<\/button>\n          <\/div>\n        <\/div>\n        <div class=\"stage-information\">\n          <div class=\"system-card\" aria-live=\"polite\">\n            <span class=\"system-status\">Site assessment<\/span>\n            <strong class=\"system-title\">Start with the home<\/strong>\n            <p class=\"system-detail\">We model the roof, usage and electrical service before equipment is selected.<\/p>\n            <div class=\"metric-row\">\n              <div><small>Solar<\/small><b class=\"solar-metric\">Not sized<\/b><\/div>\n              <div><small>Storage<\/small><b class=\"storage-metric\">Optional<\/b><\/div>\n              <div><small>Power<\/small><b class=\"power-metric\">Grid<\/b><\/div>\n            <\/div>\n          <\/div>\n          <div class=\"equipment-panel\">\n            <p class=\"equipment-update\" aria-live=\"polite\"><span>Now viewing<\/span><strong>Original home<\/strong><\/p>\n            <div class=\"equipment-legend\" aria-label=\"System equipment\">\n              <span data-equipment=\"solar\"><i><\/i>Solar array<\/span>\n              <span data-equipment=\"battery\"><i><\/i>Whole-home battery<\/span>\n              <span data-equipment=\"control\"><i><\/i>Main panel + control<\/span>\n              <span data-equipment=\"ev\"><i><\/i>EV charger<\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n        <p class=\"stage-note\">Illustrative system experience. Actual equipment, production and savings depend on your home and utility data.<\/p>\n      <\/div>\n    <\/section>\n<\/div>\n\n<!-- ============================================================ WHY NOW -->\n<section class=\"se-section se-why\" id=\"why\">\n  <div class=\"se-wrap\">\n    <div class=\"se-section-head\">\n      <p class=\"se-kicker\">Why the math changed<\/p>\n      <h2>The three things every Bay Area homeowner should know in 2026<\/h2>\n      <p>The rules shifted recently. We&#8217;d rather you hear it straight than find out after a sales pitch.<\/p>\n    <\/div>\n    <div class=\"se-why-grid\">\n      <div class=\"se-why-card\">\n        <div class=\"se-num\">01<\/div>\n        <h3>Rates are high, and delivery keeps climbing<\/h3>\n        <p>PG&amp;E&#8217;s average residential rate sits near the top nationally. Even when supply prices dip, delivery charges and the new fixed Base Services Charge keep monthly bills heavy \u2014 which is exactly what solar offsets.<\/p>\n      <\/div>\n      <div class=\"se-why-card\">\n        <div class=\"se-num\">02<\/div>\n        <h3>Under NEM 3.0, a battery does the heavy lifting<\/h3>\n        <p>California&#8217;s Net Billing Tariff pays very little for power you export to the grid. The value now comes from storing your own energy and using it in the expensive evening hours \u2014 so we design around self-use, not selling back.<\/p>\n      <\/div>\n      <div class=\"se-why-card\">\n        <div class=\"se-num\">03<\/div>\n        <h3>The 30% federal credit has ended for purchases<\/h3>\n        <p>The federal residential tax credit expired at the end of 2025 for cash and loan buyers. We build honest quotes around real 2026 pricing \u2014 and can walk you through lease and PPA options where a credit may still apply through the financier.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================================================ SAVINGS \/ CALCULATOR -->\n<section class=\"se-section se-calc\" id=\"savings\">\n  <div class=\"se-wrap se-calc-inner\">\n    <div>\n      <p class=\"se-eyebrow\" style=\"color:var(--se-sun-gold)\">See your numbers<\/p>\n      <h2>What the sun is worth on your roof<\/h2>\n      <p>Move one slider to your monthly bill and watch system size, cost, payback, and 25-year savings update instantly. Every assumption is shown \u2014 nothing hidden, no email required to look.<\/p>\n      <a class=\"se-btn se-btn-sun\" href=\"\/savings-calculator\/\">Open the full savings calculator<\/a>\n      <!-- Embed the standalone calculator here: paste its markup, or drop it in a\n           Custom HTML block \/ iframe on this page and link this button to it. -->\n    <\/div>\n    <div class=\"se-calc-panel\" aria-label=\"Example estimate (illustration only)\">\n      <div class=\"se-calc-stat\"><span>Sample bill<\/span><strong>$250\/mo<\/strong><\/div>\n      <div class=\"se-calc-stat\"><span>Recommended system<\/span><strong>7.4 kW + battery<\/strong><\/div>\n      <div class=\"se-calc-stat\"><span>New monthly bill<\/span><strong>~$25\/mo<\/strong><\/div>\n      <div class=\"se-calc-stat\"><span>Estimated monthly savings<\/span><strong class=\"se-sun-text\">~$225\/mo<\/strong><\/div>\n      <div class=\"se-calc-stat\"><span>25-year net savings<\/span><strong class=\"se-sun-text\">$60,000+<\/strong><\/div>\n      <p style=\"font-size:11.5px;color:#8ea3b8;margin:16px 0 0;line-height:1.5;\">Illustrative example, not a quote. Your real numbers depend on roof, shading, usage, and current rates \u2014 confirmed in your free assessment.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================================================ SERVICES -->\n<section class=\"se-section\" id=\"services\">\n  <div class=\"se-wrap\">\n    <div class=\"se-section-head\">\n      <p class=\"se-kicker\">What we do<\/p>\n      <h2>Solar, storage, and everything that makes it work<\/h2>\n      <p>Four core services, each with its own detailed page \u2014 explore what fits your home.<\/p>\n    <\/div>\n    <div class=\"se-serv-grid\">\n      <a class=\"se-serv-card se-serv-card-link\" href=\"\/solar-battery-installation\/\">\n        <svg class=\"se-serv-icon\" viewBox=\"0 0 48 48\" fill=\"none\" aria-hidden=\"true\"><rect x=\"6\" y=\"10\" width=\"36\" height=\"24\" rx=\"2\" fill=\"#1c6fb3\"><\/rect><path d=\"M6 22h36M18 10v24M30 10v24\" stroke=\"#fff\" stroke-width=\"1.6\"><\/path><\/svg>\n        <h3>Solar &amp; Battery Installation<\/h3>\n        <p>High-efficiency panels plus battery storage, sized to your usage and built for NEM 3.0 self-use savings.<\/p>\n        <span class=\"se-serv-cta\">Learn more \u2192<\/span>\n      <\/a>\n      <a class=\"se-serv-card se-serv-card-link\" href=\"\/solar-maintenance\/\">\n        <svg class=\"se-serv-icon\" viewBox=\"0 0 48 48\" fill=\"none\" aria-hidden=\"true\"><circle cx=\"24\" cy=\"24\" r=\"18\" fill=\"none\" stroke=\"#1c6fb3\" stroke-width=\"3\"><\/circle><path d=\"M24 14v10l7 5\" stroke=\"#1c6fb3\" stroke-width=\"3\" stroke-linecap=\"round\"><\/path><\/svg>\n        <h3>Solar Preventative Maintenance<\/h3>\n        <p>Keep an existing system performing at its best with inspections, cleaning, and monitoring by a local team.<\/p>\n        <span class=\"se-serv-cta\">Learn more \u2192<\/span>\n      <\/a>\n      <a class=\"se-serv-card se-serv-card-link\" href=\"\/panel-upgrades\/\">\n        <svg class=\"se-serv-icon\" viewBox=\"0 0 48 48\" fill=\"none\" aria-hidden=\"true\"><rect x=\"7\" y=\"14\" width=\"34\" height=\"22\" rx=\"3\" fill=\"#1c6fb3\"><\/rect><path d=\"M14 14v-3a4 4 0 014-4h12a4 4 0 014 4v3\" stroke=\"#0e2c4d\" stroke-width=\"3\"><\/path><path d=\"M18 25h12\" stroke=\"#fff\" stroke-width=\"2.6\" stroke-linecap=\"round\"><\/path><\/svg>\n        <h3>Main Panel Upgrades<\/h3>\n        <p>Upgrade an older electrical panel so your home is ready for solar, battery, and EV charging safely.<\/p>\n        <span class=\"se-serv-cta\">Learn more \u2192<\/span>\n      <\/a>\n      <a class=\"se-serv-card se-serv-card-link\" href=\"\/ev-charger-installation\/\">\n        <svg class=\"se-serv-icon\" viewBox=\"0 0 48 48\" fill=\"none\" aria-hidden=\"true\"><path d=\"M26 4L10 26h12l-2 18 16-22H24z\" fill=\"#f07d1a\"><\/path><\/svg>\n        <h3>EV Charger Installation<\/h3>\n        <p>Charge your car on your own sunshine with Level 2 charging, installed and permitted correctly.<\/p>\n        <span class=\"se-serv-cta\">Learn more \u2192<\/span>\n      <\/a>\n    <\/div>\n    <div style=\"margin-top:32px;text-align:center;\">\n      <a class=\"se-btn se-btn-ghost\" href=\"\/services\/\">View all services \u2192<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================================================ PROCESS -->\n<section class=\"se-section se-proc\">\n  <div class=\"se-wrap\">\n    <div class=\"se-section-head\">\n      <p class=\"se-kicker\">How it works<\/p>\n      <h2>From first call to powered up<\/h2>\n    <\/div>\n    <div class=\"se-proc-grid\">\n      <div class=\"se-proc-step\"><h3>Assessment<\/h3><p>We review your bills and roof, then model a system sized to your real usage.<\/p><\/div>\n      <div class=\"se-proc-step\"><h3>Design &amp; proposal<\/h3><p>You get a clear written proposal \u2014 equipment, price, and savings, line by line.<\/p><\/div>\n      <div class=\"se-proc-step\"><h3>Permits &amp; install<\/h3><p>We handle permitting, interconnection, and a clean, code-compliant installation.<\/p><\/div>\n      <div class=\"se-proc-step\"><h3>Switch on<\/h3><p>After inspection and PG&amp;E approval, your system goes live and starts offsetting your bill.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================================================ SERVICE AREA (local SEO) -->\n<section class=\"se-section\" id=\"areas\">\n  <div class=\"se-wrap\">\n    <div class=\"se-section-head\">\n      <p class=\"se-kicker\">Where we work<\/p>\n      <h2>Serving every city within 50 miles of San Jose<\/h2>\n      <p>We come to you. Based in San Jose, we install and service solar, batteries, EV chargers and electrical panels in 85 Bay Area cities.<\/p>\n    <\/div>\n    <div class=\"se-area-grid\">\n      <div class=\"se-area-card\"><h3>Santa Clara County<\/h3><p><a href=\"\/solar-san-jose\/\">San Jose<\/a>, Santa Clara, Milpitas, Campbell, Sunnyvale, Cupertino, Los Gatos, Monte Sereno, Saratoga, Mountain View, Los Altos, Los Altos Hills, Palo Alto, Morgan Hill, Gilroy<\/p><\/div>\n      <div class=\"se-area-card\"><h3><a href=\"\/solar-san-francisco\/\">San Francisco<\/a><\/h3><p>Every neighborhood, from the Sunset and Richmond to Noe Valley, Bernal Heights and the Excelsior<\/p><\/div>\n      <div class=\"se-area-card\"><h3>San Mateo County<\/h3><p>East Palo Alto, Menlo Park, Atherton, Portola Valley, Woodside, Redwood City, San Carlos, Belmont, Foster City, San Mateo, Hillsborough, Burlingame, Millbrae, San Bruno, South San Francisco, Brisbane, Colma, Daly City, Pacifica, Half Moon Bay<\/p><\/div>\n      <div class=\"se-area-card\"><h3>Alameda County<\/h3><p>Fremont, Newark, Union City, Hayward, San Leandro, Pleasanton, Dublin, Livermore, Alameda, Oakland, Piedmont, Emeryville, Berkeley, Albany<\/p><\/div>\n      <div class=\"se-area-card\"><h3>Contra Costa County<\/h3><p>San Ramon, Danville, Moraga, Orinda, Lafayette, Walnut Creek, Pleasant Hill, Concord, Clayton, Martinez, Pittsburg, Antioch, Oakley, Brentwood, El Cerrito, Richmond, San Pablo<\/p><\/div>\n      <div class=\"se-area-card\"><h3>Santa Cruz County<\/h3><p>Santa Cruz, Scotts Valley, Capitola, Watsonville<\/p><\/div>\n      <div class=\"se-area-card\"><h3>San Benito &amp; Monterey Counties<\/h3><p>Hollister, San Juan Bautista, Salinas, Marina<\/p><\/div>\n      <div class=\"se-area-card\"><h3>San Joaquin County<\/h3><p>Tracy, Lathrop, Manteca, Ripon<\/p><\/div>\n      <div class=\"se-area-card\"><h3>Stanislaus &amp; Merced Counties<\/h3><p>Patterson, Newman, Gustine<\/p><\/div>\n      <div class=\"se-area-card\"><h3>Marin County<\/h3><p>Sausalito, Tiburon, Belvedere<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================================================ FINAL CTA -->\n<section class=\"se-section se-final\" id=\"quote\">\n  <div class=\"se-wrap\">\n    <h2>Find out what solar and storage would do for your bill.<\/h2>\n    <p>A free, no-pressure site assessment with a written estimate. Real 2026 pricing, from a team that lives here too.<\/p>\n    <div style=\"display:flex;gap:14px;justify-content:center;flex-wrap:wrap;\">\n      <a class=\"se-btn se-btn-sun\" href=\"tel:+14087020480\">Call (408) 702-0480<\/a>\n      <!-- Point this to your real quote form \/ booking link -->\n      <a class=\"se-btn se-btn-ghost\" style=\"color:#fff;border-color:rgba(255,255,255,0.5)\" href=\"\/contact\/\">Request assessment online<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============================================================ FOOTER -->\n<!-- ============================================================\n     LocalBusiness structured data \u2014 helps Google & AI Overviews\n     understand who you are and where you serve. Fill in every\n     bracketed field with real data before publishing.\n     ============================================================ -->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"SolarEnergyContractor\",\n  \"name\": \"Starlight Energy\",\n  \"description\": \"Solar and battery storage installation across the San Francisco Bay Area.\",\n  \"url\": \"https:\/\/starlightenergy.io\/\",\n  \"telephone\": \"+1-408-702-0480\",\n  \"image\": \"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/08\/logo.png\",\n  \"address\": {\n    \"@type\": \"PostalAddress\",\n    \"addressLocality\": \"San Jose\",\n    \"addressRegion\": \"CA\",\n    \"addressCountry\": \"US\"\n  },\n  \"areaServed\": [\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Jose, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Santa Clara, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Milpitas, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Campbell, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Sunnyvale, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Cupertino, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Los Gatos, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Monte Sereno, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Saratoga, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Mountain View, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Los Altos, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Los Altos Hills, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Palo Alto, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Morgan Hill, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Gilroy, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Francisco, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"East Palo Alto, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Menlo Park, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Atherton, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Portola Valley, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Woodside, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Redwood City, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Carlos, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Belmont, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Foster City, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Mateo, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Hillsborough, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Burlingame, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Millbrae, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Bruno, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"South San Francisco, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Brisbane, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Colma, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Daly City, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Pacifica, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Half Moon Bay, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Fremont, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Newark, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Union City, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Hayward, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Leandro, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Pleasanton, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Dublin, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Livermore, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Alameda, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Oakland, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Piedmont, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Emeryville, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Berkeley, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Albany, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Ramon, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Danville, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Moraga, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Orinda, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Lafayette, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Walnut Creek, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Pleasant Hill, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Concord, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Clayton, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Martinez, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Pittsburg, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Antioch, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Oakley, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Brentwood, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"El Cerrito, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Richmond, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Pablo, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Santa Cruz, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Scotts Valley, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Capitola, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Watsonville, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Hollister, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"San Juan Bautista, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Salinas, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Marina, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Tracy, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Lathrop, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Manteca, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Ripon, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Patterson, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Newman, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Gustine, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Sausalito, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Tiburon, CA\"\n    },\n    {\n      \"@type\": \"City\",\n      \"name\": \"Belvedere, CA\"\n    }\n  ],\n  \"openingHoursSpecification\": [\n    {\n      \"@type\": \"OpeningHoursSpecification\",\n      \"dayOfWeek\": [\n        \"Monday\",\n        \"Tuesday\",\n        \"Wednesday\",\n        \"Thursday\",\n        \"Friday\", \"Saturday\"\n      ],\n      \"opens\": \"08:00\",\n      \"closes\": \"18:00\"\n    }\n  ],\n  \"priceRange\": \"$$\",\n  \"@id\": \"https:\/\/starlightenergy.io\/#localbusiness\",\n  \"logo\": \"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/08\/logo.png\",\n  \"email\": \"info@starlightenergy.io\",\n  \"sameAs\": [\n    \"https:\/\/www.facebook.com\/profile.php?id=61570133153849\",\n    \"https:\/\/www.instagram.com\/starlightenergy.io\",\n    \"https:\/\/www.tiktok.com\/@starlightenergy.io\"\n  ]\n}\n<\/script>\n\n<!-- ============================================================\n     MOBILE NAVIGATION (sitewide, progressive enhancement).\n     At <=860px the theme\/global CSS hides .se-navlink with no\n     replacement, leaving no way to reach the primary nav on phones\/\n     tablets. This block adds an accessible hamburger toggle + slide\n     panel that reuses the SAME <nav class=\"se-nav\"> already in the\n     header (so it automatically mirrors whatever links, phone number,\n     and Free Assessment CTA this specific page's header already has\n     - no link list is duplicated\/hardcoded here). Desktop (>860px)\n     and the already-published full-width header\/wrapping CSS are\n     untouched: the button is hidden above 860px, and the nav's own\n     flex layout is only touched inside the same 860px breakpoint the\n     theme already uses. -->\n<style>\n  .se-menu-toggle {\n    display: none;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    min-width: 44px;\n    min-height: 44px;\n    padding: 0;\n    border: 1.5px solid var(--se-line);\n    border-radius: 10px;\n    background: #fff;\n    cursor: pointer;\n    flex: none;\n    -webkit-tap-highlight-color: transparent;\n  }\n  .se-menu-toggle:hover { border-color: var(--se-blue); }\n  .se-menu-toggle .se-menu-icon { position: relative; width: 20px; height: 14px; display: block; }\n  .se-menu-toggle .se-menu-icon span {\n    position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px;\n    background: var(--se-navy); transition: transform .2s ease, opacity .2s ease;\n  }\n  .se-menu-toggle .se-menu-icon span:nth-child(1) { top: 0; }\n  .se-menu-toggle .se-menu-icon span:nth-child(2) { top: 6px; }\n  .se-menu-toggle .se-menu-icon span:nth-child(3) { top: 12px; }\n  .se-header[data-se-nav-open=\"true\"] .se-menu-toggle .se-menu-icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }\n  .se-header[data-se-nav-open=\"true\"] .se-menu-toggle .se-menu-icon span:nth-child(2) { opacity: 0; }\n  .se-header[data-se-nav-open=\"true\"] .se-menu-toggle .se-menu-icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }\n\n  @media (max-width: 860px) {\n    .se-menu-toggle { display: flex; order: 3; margin-left: 8px; }\n    .se-nav { gap: 12px; flex-wrap: wrap; justify-content: flex-end; }\n    \/* Primary text links become a collapsible panel; phone + CTA stay\n       visible in the header row at all times per spec. *\/\n    .se-header .se-nav a.se-navlink { display: none; }\n    .se-header[data-se-nav-open=\"true\"] .se-nav a.se-navlink {\n      display: block;\n      width: 100%;\n    }\n    .se-header[data-se-nav-open=\"true\"] .se-nav {\n      position: absolute;\n      left: 0; right: 0; top: 100%;\n      background: #fff;\n      border-bottom: 1px solid var(--se-line);\n      box-shadow: 0 12px 24px -12px rgba(20,32,44,0.18);\n      padding: 10px clamp(18px, 3vw, 48px) 18px;\n      flex-direction: column;\n      align-items: stretch;\n      gap: 2px;\n      max-height: calc(100vh - 74px);\n      overflow-y: auto;\n      z-index: 41;\n    }\n    .se-header[data-se-nav-open=\"true\"] .se-nav a.se-navlink {\n      padding: 13px 4px;\n      border-bottom: 1px solid var(--se-line);\n      font-size: 16px;\n    }\n    .se-header[data-se-nav-open=\"true\"] .se-nav a.se-navlink:last-of-type { border-bottom: none; }\n    .se-header[data-se-nav-open=\"true\"] .se-nav-phone,\n    .se-header[data-se-nav-open=\"true\"] .se-nav .se-btn { order: 4; margin-top: 8px; }\n    \/* .se-header is already position:sticky (see base theme CSS above),\n       which establishes a positioning context for the absolutely\n       positioned dropdown panel above - no need to change position here\n       and no risk of breaking the sticky header behavior. *\/\n  }\n  @media (min-width: 861px) {\n    .se-menu-toggle { display: none !important; }\n  }\n\n  \/* ---------- Standardized nav dropdowns (Services \/ Service Area) ---------- *\/\n  .se-nav .se-has-dropdown { position: relative; }\n  .se-nav .se-dd-toggle {\n    display: inline-flex; align-items: center; gap: 5px; background: none; border: none;\n    font: inherit; font-size: 14.5px; font-weight: 500; color: var(--se-ink); cursor: pointer; padding: 0;\n    font-family: 'IBM Plex Sans', sans-serif;\n  }\n  .se-nav .se-dd-toggle:hover { color: var(--se-blue); }\n  .se-nav .se-dd-toggle .se-caret { width: 8px; height: 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }\n  .se-nav .se-has-dropdown[data-open=\"true\"] .se-dd-toggle .se-caret { transform: rotate(225deg) translateY(1px); }\n  .se-dd-menu {\n    display: none; position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%);\n    background: #fff; border: 1px solid var(--se-line); border-radius: 12px; min-width: 260px;\n    box-shadow: 0 20px 40px -20px rgba(14,44,77,0.35); padding: 8px; z-index: 50;\n  }\n  .se-has-dropdown[data-open=\"true\"] .se-dd-menu { display: block; }\n  .se-dd-menu a { display: block; padding: 10px 12px; border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--se-ink); text-decoration: none; }\n  .se-dd-menu a:hover { background: var(--se-paper); color: var(--se-blue); }\n\n  @media (max-width: 860px) {\n    \/* Dropdown triggers live inside the collapsible mobile panel too -\n       hidden until the hamburger opens it, exactly like .se-navlink. *\/\n    .se-header .se-nav .se-has-dropdown { display: none; width: 100%; }\n    .se-header[data-se-nav-open=\"true\"] .se-nav .se-has-dropdown { display: block; }\n    .se-nav .se-dd-toggle { width: 100%; justify-content: space-between; padding: 13px 4px; border-bottom: 1px solid var(--se-line); }\n    .se-dd-menu { display: none; position: static; transform: none; box-shadow: none; border: none; border-radius: 0;\n      background: var(--se-paper); margin: 0 0 4px; padding: 4px 0 4px 14px; }\n    .se-has-dropdown[data-open=\"true\"] .se-dd-menu { display: block; }\n    .se-dd-menu a { padding: 12px 4px; font-size: 15px; }\n  }\n\n<\/style>\n<script>\n(function () {\n  function initSeNav(header) {\n    if (!header || header.__seNavInit) return;\n    header.__seNavInit = true;\n    var nav = header.querySelector('.se-nav');\n    if (!nav) return;\n\n    var toggle = document.createElement('button');\n    toggle.type = 'button';\n    toggle.className = 'se-menu-toggle';\n    toggle.setAttribute('aria-label', 'Open menu');\n    toggle.setAttribute('aria-expanded', 'false');\n    toggle.setAttribute('aria-controls', nav.id || (nav.id = 'se-primary-nav'));\n    toggle.innerHTML = '<span class=\"se-menu-icon\"><span><\/span><span><\/span><span><\/span><\/span>';\n    nav.parentNode.insertBefore(toggle, nav.nextSibling);\n\n    function setOpen(open) {\n      header.setAttribute('data-se-nav-open', open ? 'true' : 'false');\n      toggle.setAttribute('aria-expanded', open ? 'true' : 'false');\n      toggle.setAttribute('aria-label', open ? 'Close menu' : 'Open menu');\n    }\n    setOpen(false);\n\n    toggle.addEventListener('click', function () {\n      setOpen(header.getAttribute('data-se-nav-open') !== 'true');\n    });\n\n    document.addEventListener('keydown', function (e) {\n      if (e.key === 'Escape' && header.getAttribute('data-se-nav-open') === 'true') {\n        setOpen(false);\n        toggle.focus();\n      }\n    });\n\n    \/\/ Close after choosing a link (selection close behavior).\n    nav.querySelectorAll('a').forEach(function (a) {\n      a.addEventListener('click', function () { setOpen(false); });\n    });\n\n    \/\/ Click outside closes the panel.\n    document.addEventListener('click', function (e) {\n      if (header.getAttribute('data-se-nav-open') === 'true' &&\n          !header.contains(e.target)) {\n        setOpen(false);\n      }\n    });\n\n    \/\/ Collapse back to closed state if the viewport grows past the\n    \/\/ mobile breakpoint while the panel is open.\n    window.addEventListener('resize', function () {\n      if (window.innerWidth > 860) setOpen(false);\n    });\n  }\n  var h = document.querySelector('header.se-header');\n  if (h) initSeNav(h);\n\n  \/\/ Standardized dropdown behavior (Services \/ Service Areas), desktop + mobile.\n  function initDropdowns(header) {\n    var dds = header.querySelectorAll('[data-se-dropdown]');\n    dds.forEach(function (dd) {\n      var btn = dd.querySelector('.se-dd-toggle');\n      if (!btn || dd.__ddInit) return;\n      dd.__ddInit = true;\n      function setOpen(open) {\n        dd.setAttribute('data-open', open ? 'true' : 'false');\n        btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n      }\n      setOpen(false);\n      btn.addEventListener('click', function (e) {\n        e.stopPropagation();\n        var willOpen = dd.getAttribute('data-open') !== 'true';\n        dds.forEach(function (other) { if (other !== dd) other.setAttribute('data-open', 'false'); });\n        setOpen(willOpen);\n      });\n      btn.addEventListener('keydown', function (e) {\n        if (e.key === 'Escape') { setOpen(false); btn.focus(); }\n      });\n    });\n    document.addEventListener('click', function (e) {\n      dds.forEach(function (dd) {\n        if (!dd.contains(e.target)) dd.setAttribute('data-open', 'false');\n      });\n    });\n  }\n  var __seHeaderForDD = document.querySelector('header.se-header');\n  if (__seHeaderForDD) initDropdowns(__seHeaderForDD);\n\n})();\n<\/script>\n\n\n<!-- ============================================================ FLOATING CONTROLS: WHATSAPP + CHATBASE AI (checkpoint 2) -->\n<style id=\"se-whatsapp-style\">\n  #se-whatsapp-fab {\n    position: fixed;\n    right: 16px;\n    right: max(16px, env(safe-area-inset-right));\n    bottom: 16px;\n    bottom: max(16px, env(safe-area-inset-bottom));\n    z-index: 39; \/* below header (40) dropdown menus (50), above page content *\/\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    min-width: 44px;\n    min-height: 44px;\n    height: 48px;\n    padding: 0 16px;\n    border-radius: 999px;\n    background: #25D366;\n    color: #fff;\n    text-decoration: none;\n    font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n    font-size: 14.5px;\n    font-weight: 600;\n    line-height: 1;\n    box-shadow: 0 10px 24px -10px rgba(0,0,0,0.35);\n    -webkit-tap-highlight-color: transparent;\n  }\n  #se-whatsapp-fab:hover { background: #1ebe5a; }\n  #se-whatsapp-fab:focus-visible {\n    outline: 3px solid #0e2c4d;\n    outline-offset: 3px;\n  }\n  #se-whatsapp-fab .se-wa-icon {\n    width: 22px;\n    height: 22px;\n    flex: none;\n    display: block;\n  }\n  #se-whatsapp-fab .se-wa-label { white-space: nowrap; }\n  \/* Compact circular button on narrow viewports; label stays for accessibility (visually hidden, not display:none) *\/\n  @media (max-width: 480px) {\n    #se-whatsapp-fab {\n      width: 48px;\n      height: 48px;\n      padding: 0;\n      gap: 0;\n    }\n    #se-whatsapp-fab .se-wa-label {\n      position: absolute;\n      width: 1px; height: 1px;\n      overflow: hidden;\n      clip: rect(0 0 0 0);\n      clip-path: inset(50%);\n      white-space: nowrap;\n    }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    #se-whatsapp-fab, #se-whatsapp-fab:hover { transition: none; animation: none; }\n  }\n<\/style>\n<a id=\"se-whatsapp-fab\" href=\"https:\/\/wa.me\/14087020480?text=Hi%20Starlight%20Energy%2C%20I%20have%20a%20question%20about%20your%20services.\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Chat with Starlight Energy on WhatsApp\">\n  <svg class=\"se-wa-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\">\n    <path d=\"M20.5 11.9a8.6 8.6 0 1 1-3.8-7.1M20.5 11.9a8.6 8.6 0 0 1-12.4 7.6L4 20.5l1.1-4a8.6 8.6 0 0 1-.1-8.9\"><\/path>\n    <path d=\"M8.3 8.4c.2-.5.6-.5 1-.5.3 0 .6 0 .8.5.3.6.9 1.9.9 2.1 0 .2 0 .4-.2.6-.2.3-.4.4-.6.6-.2.2-.4.4-.2.8.3.5 1.9 2.4 3.7 2.9.3.1.5 0 .7-.2.2-.3.6-.8.8-1 .2-.2.4-.2.6-.1.3.1 1.7.8 2 1 .3.1.5.2.5.4 0 .2 0 1-.4 1.5-.4.5-1.5 1-2.6.8-1.7-.3-3.6-1.2-5-2.6-1.2-1.2-1.9-2.4-2.3-3.4-.4-1-.3-2 .1-2.7z\" fill=\"currentColor\" stroke=\"none\"><\/path>\n  <\/svg>\n  <span class=\"se-wa-label\">Chat on WhatsApp<\/span>\n<\/a>\n<script id=\"se-whatsapp-script\">\n  (function () {\n    \/\/ Guard: never duplicate the widget even if this snippet runs more than once.\n    if (window.__seWhatsAppFabInit) return;\n    var existing = document.querySelectorAll('#se-whatsapp-fab');\n    if (existing.length > 1) {\n      for (var i = 1; i < existing.length; i++) existing[i].remove();\n    }\n    window.__seWhatsAppFabInit = true;\n  })();\n<\/script>\n\n<!-- Chatbase AI widget: official embed snippet, verbatim, guarded against duplicate injection. -->\n<script id=\"se-chatbase-guard\">\n  (function () {\n    if (window.__seChatbaseInit) return;\n    window.__seChatbaseInit = true;\n    if (document.getElementById('se-chatbase-embed-script')) return;\n    var s = document.createElement('script');\n    s.id = 'se-chatbase-embed-script';\n    s.textContent = ''\n      + '(function(){if(!window.chatbase||window.chatbase(\"getState\")!==\"initialized\"){window.chatbase=(...arguments)=>{if(!window.chatbase.q){window.chatbase.q=[]}window.chatbase.q.push(arguments)};window.chatbase=new Proxy(window.chatbase,{get(target,prop){if(prop===\"q\"){return target.q}return(...args)=>target(prop,...args)}})}const onLoad=function(){const script=document.createElement(\"script\");script.src=\"https:\/\/www.chatbase.co\/embed.min.js\";script.id=\"PjdzZuGpIZF8TepL0wIhz\";script.domain=\"www.chatbase.co\";document.body.appendChild(script)};if(document.readyState===\"complete\"){onLoad()}else{window.addEventListener(\"load\",onLoad)}})();';\n    document.body.appendChild(s);\n  })();\n<\/script>\n\n<style id=\"se-chatbase-position-fix\">\n  \/* Defensive stacking: keep the Chatbase launcher directly above the WhatsApp\n     FAB on the right, 12-16px clear of it, and keep the open panel within the\n     viewport above page content. WhatsApp FAB = 48px tall, bottom:16px (safe-area\n     aware) => its top edge sits at 64px from the bottom, so the Chatbase button\n     is pinned at bottom:78px (14px gap) using the site's own selectors, which\n     Chatbase renders with fixed inline styles we override with !important so\n     our rule wins regardless of paint order. *\/\n  #chatbase-bubble-button {\n    right: 16px !important;\n    right: max(16px, env(safe-area-inset-right)) !important;\n    bottom: 78px !important;\n    bottom: calc(max(16px, env(safe-area-inset-bottom)) + 48px + 14px) !important;\n    left: unset !important;\n    z-index: 2147483645 !important;\n  }\n  #chatbase-bubble-window {\n    right: 16px !important;\n    right: max(16px, env(safe-area-inset-right)) !important;\n    bottom: 147px !important;\n    bottom: calc(max(16px, env(safe-area-inset-bottom)) + 48px + 14px + 55px + 10px) !important;\n    left: unset !important;\n    max-height: min(80dvh, calc(100dvh - 170px)) !important;\n    z-index: 2147483646 !important;\n  }\n  #chatbase-message-bubbles {\n    right: 16px !important;\n    right: max(16px, env(safe-area-inset-right)) !important;\n    bottom: 147px !important;\n    bottom: calc(max(16px, env(safe-area-inset-bottom)) + 48px + 14px + 55px + 10px) !important;\n    left: unset !important;\n  }\n  \/* On very short\/narrow viewports (e.g. 390x844 mobile), keep the open panel\n     from overflowing the viewport top\/edges. *\/\n  @media (max-width: 480px) {\n    #chatbase-bubble-window {\n      right: 8px !important;\n      left: 8px !important;\n      width: auto !important;\n      max-width: calc(100vw - 16px) !important;\n      bottom: calc(max(16px, env(safe-area-inset-bottom)) + 48px + 12px + 55px + 8px) !important;\n      max-height: min(75dvh, calc(100dvh - 160px)) !important;\n    }\n  }\n<\/style>\n<script id=\"se-chatbase-position-observer\">\n  (function () {\n    if (window.__seChatbasePosObsInit) return;\n    window.__seChatbasePosObsInit = true;\n    \/\/ Chatbase sets inline styles on its own elements; our stylesheet rules\n    \/\/ above use !important so they win over inline styles regardless of when\n    \/\/ Chatbase's script (re)applies them. This observer is a defensive no-op\n    \/\/ safety net: if a future Chatbase build ever writes !important inline\n    \/\/ styles of its own (which would otherwise win), nudge the elements back\n    \/\/ by re-adding our class so the stylesheet still applies after re-render.\n    var target = document.body;\n    if (!target) return;\n    var obs = new MutationObserver(function () {\n      var btn = document.getElementById('chatbase-bubble-button');\n      var win = document.getElementById('chatbase-bubble-window');\n      if (btn) btn.classList.add('se-chatbase-positioned');\n      if (win) win.classList.add('se-chatbase-positioned');\n    });\n    obs.observe(target, { childList: true, subtree: true });\n  })();\n<\/script>\n<!-- ========================================================= \/FLOATING CONTROLS -->\n<script id=\"starlight-experience-preview-js\">\n(() => {\nconst experience = document.querySelector('.se-experience');\nconst story = experience.querySelector('.system-story');\nconst steps = [...experience.querySelectorAll('.step')];\nconst modeButtons = [...experience.querySelectorAll('.mode-switcher button')];\nconst themeButton = experience.querySelector('.theme-toggle');\nconst stepsWrap = experience.querySelector('.steps');\nconst equipmentUpdate = experience.querySelector('.equipment-update strong');\nconst systemCard = experience.querySelector('.system-card');\nconst equipmentUpdateRow = experience.querySelector('.equipment-update');\nlet activeStep = -1;\nlet manualLockUntil = 0;\n\nconst content = [\n  {\n    status: 'Site assessment',\n    title: 'Start with the home',\n    detail: 'We model the roof, usage and electrical service before equipment is selected.',\n    solar: 'Not sized', storage: 'Optional', power: 'Grid', update: 'Original home'\n  },\n  {\n    status: 'Solar generation',\n    title: 'Turn open roof into energy',\n    detail: 'A purpose-built array converts productive roof space into clean daytime electricity.',\n    solar: 'Producing', storage: 'Next step', power: 'Sun \u2192 home', update: 'Solar array added'\n  },\n  {\n    status: 'Whole-home battery',\n    title: 'Store power for the entire home',\n    detail: 'The battery stores solar energy and is designed to carry the whole home through an outage.',\n    solar: 'Producing', storage: 'Whole-home', power: 'Sun \u2192 battery', update: 'Battery + control added'\n  },\n  {\n    status: 'EV charging',\n    title: 'Drive on energy from your roof',\n    detail: 'A home EV charger turns solar production and stored energy into convenient overnight charging.',\n    solar: 'Online', storage: 'Connected', power: 'Home \u2192 EV', update: 'EV charging added'\n  },\n  {\n    status: 'Full-home protection',\n    title: 'Keep the entire home online',\n    detail: 'Switch between day, evening and outage scenarios. During an outage, the battery powers the whole home.',\n    solar: 'Active', storage: 'Whole-home', power: 'Fully protected', update: 'Complete system connected'\n  }\n];\n\nconst isEs = (document.documentElement.lang || '').toLowerCase().indexOf('es') === 0;\nconst contentEs = [\n  { status: 'Evaluaci\u00f3n del sitio', title: 'Empezamos por la casa', detail: 'Analizamos el techo, el consumo y el servicio el\u00e9ctrico antes de elegir el equipo.', solar: 'Sin dimensionar', storage: 'Opcional', power: 'Red', update: 'Casa original' },\n  { status: 'Generaci\u00f3n solar', title: 'Convierta su techo en energ\u00eda', detail: 'Un sistema de paneles dise\u00f1ado a la medida convierte el espacio productivo del techo en electricidad limpia durante el d\u00eda.', solar: 'Produciendo', storage: 'Siguiente paso', power: 'Sol \u2192 casa', update: 'Paneles solares agregados' },\n  { status: 'Bater\u00eda para toda la casa', title: 'Almacene energ\u00eda para toda la casa', detail: 'La bater\u00eda almacena energ\u00eda solar y est\u00e1 dise\u00f1ada para mantener toda la casa con electricidad durante un apag\u00f3n.', solar: 'Produciendo', storage: 'Toda la casa', power: 'Sol \u2192 bater\u00eda', update: 'Bater\u00eda + control agregados' },\n  { status: 'Carga de veh\u00edculos el\u00e9ctricos', title: 'Maneje con energ\u00eda de su techo', detail: 'Un cargador en casa convierte la producci\u00f3n solar y la energ\u00eda almacenada en una carga nocturna c\u00f3moda para su veh\u00edculo el\u00e9ctrico.', solar: 'En l\u00ednea', storage: 'Conectado', power: 'Casa \u2192 VE', update: 'Carga de VE agregada' },\n  { status: 'Protecci\u00f3n para toda la casa', title: 'Mantenga toda la casa encendida', detail: 'Cambie entre los escenarios de d\u00eda, tarde y apag\u00f3n. Durante un apag\u00f3n, la bater\u00eda alimenta toda la casa.', solar: 'Activo', storage: 'Toda la casa', power: 'Protecci\u00f3n total', update: 'Sistema completo conectado' }\n];\n\nfunction setStep(index, moveFocus = false) {\n  const safeIndex = Math.max(0, Math.min(content.length - 1, Number(index)));\n  if (safeIndex === activeStep && !moveFocus) return;\n  activeStep = safeIndex;\n  story.dataset.activeStep = safeIndex;\n  steps.forEach((button, i) => {\n    const active = i === safeIndex;\n    button.classList.toggle('is-active', active);\n    button.setAttribute('aria-selected', String(active));\n    button.tabIndex = active ? 0 : -1;\n  });\n  const data = (isEs ? contentEs : content)[safeIndex];\n  experience.querySelector('.system-status').textContent = data.status;\n  experience.querySelector('.system-title').textContent = data.title;\n  experience.querySelector('.system-detail').textContent = data.detail;\n  experience.querySelector('.solar-metric').textContent = data.solar;\n  experience.querySelector('.storage-metric').textContent = data.storage;\n  experience.querySelector('.power-metric').textContent = data.power;\n  equipmentUpdate.textContent = data.update;\n  if (!matchMedia('(prefers-reduced-motion: reduce)').matches) {\n    [systemCard, equipmentUpdateRow].forEach(element => {\n      element.classList.remove('is-changing');\n      void element.offsetWidth;\n      element.classList.add('is-changing');\n    });\n  }\n  if (safeIndex < 4) setMode('day');\n  if (moveFocus) steps[safeIndex].focus();\n}\n\nfunction setMode(mode) {\n  story.dataset.mode = mode;\n  modeButtons.forEach(button => {\n    const active = button.dataset.mode === mode;\n    button.classList.toggle('is-active', active);\n    button.setAttribute('aria-pressed', String(active));\n  });\n  if (story.dataset.activeStep !== '4') return;\n  const details = (isEs ? {\n    day: ['Excedente solar', 'Cargando', 'Sol \u2192 casa'],\n    evening: ['Poca luz', 'Descargando', 'Bater\u00eda \u2192 casa'],\n    outage: ['En espera', 'Toda la casa', 'Bater\u00eda \u2192 casa']\n  }[mode] : null) || {\n    day: ['Solar surplus', 'Charging', 'Sun \u2192 home'],\n    evening: ['Low light', 'Discharging', 'Battery \u2192 home'],\n    outage: ['Standby', 'Whole-home', 'Battery \u2192 home']\n  }[mode];\n  experience.querySelector('.solar-metric').textContent = details[0];\n  experience.querySelector('.storage-metric').textContent = details[1];\n  experience.querySelector('.power-metric').textContent = details[2];\n}\n\nsteps.forEach((button, index) => {\n  button.addEventListener('click', () => {\n    if (!matchMedia('(max-width: 1120px)').matches) {\n      manualLockUntil = performance.now() + 900;\n      button.scrollIntoView({\n        block: 'center',\n        behavior: matchMedia('(prefers-reduced-motion: reduce)').matches ? 'auto' : 'smooth'\n      });\n      setTimeout(requestStoryUpdate, 920);\n    }\n    setStep(index);\n  });\n  button.addEventListener('keydown', event => {\n    if (!['ArrowRight','ArrowDown','ArrowLeft','ArrowUp','Home','End'].includes(event.key)) return;\n    event.preventDefault();\n    let next = index;\n    if (event.key === 'ArrowRight' || event.key === 'ArrowDown') next = (index + 1) % steps.length;\n    if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') next = (index - 1 + steps.length) % steps.length;\n    if (event.key === 'Home') next = 0;\n    if (event.key === 'End') next = steps.length - 1;\n    setStep(next, true);\n  });\n});\n\nmodeButtons.forEach(button => button.addEventListener('click', () => setMode(button.dataset.mode)));\n\nlet scrollFrame = 0;\nfunction updateScrollStory() {\n  scrollFrame = 0;\n  if (matchMedia('(max-width: 1120px)').matches) {\n    steps.forEach(step => step.style.removeProperty('--proximity'));\n    return;\n  }\n  const viewportAnchor = innerHeight * .52;\n  const centers = steps.map(step => {\n    const rect = step.getBoundingClientRect();\n    return rect.top + rect.height \/ 2;\n  });\n  const distances = centers.map(center => Math.abs(center - viewportAnchor));\n  const nearest = distances.indexOf(Math.min(...distances));\n  const first = centers[0];\n  const last = centers[centers.length - 1];\n  const progress = Math.max(0, Math.min(1, (viewportAnchor - first) \/ (last - first)));\n  stepsWrap.style.setProperty('--story-progress', progress.toFixed(3));\n  steps.forEach((step, index) => {\n    const proximity = Math.max(.08, 1 - distances[index] \/ (innerHeight * .68));\n    step.style.setProperty('--proximity', proximity.toFixed(3));\n  });\n  if (performance.now() >= manualLockUntil) setStep(nearest);\n}\n\nfunction requestStoryUpdate() {\n  if (scrollFrame) return;\n  scrollFrame = requestAnimationFrame(updateScrollStory);\n}\n\naddEventListener('scroll', requestStoryUpdate, { passive: true });\naddEventListener('resize', requestStoryUpdate);\n\nsetStep(0);\nrequestStoryUpdate();\n\n})();\n<\/script>\n<style id=\"starlight-layout-hotfix\">\n\/* Full-bleed within WordPress's real content box, without 100vw scrollbar overflow. *\/\n@media (min-width:861px) {\n  .se-experience {\n    width:calc(100% + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right)) !important;\n    margin-left:calc(-1 * var(--wp--style--root--padding-left)) !important;\n    margin-right:calc(-1 * var(--wp--style--root--padding-right)) !important;\n  }\n}\n@media (max-width:860px) {\n  .se-experience { width:100% !important; margin-inline:0 !important; }\n}\n<\/style>\n","protected":false},"excerpt":{"rendered":"<p>Starlight EnergyPowering Your Future Services Solar &amp; Battery Installation New Construction Solar Solar PPA ($0 Upfront) Solar Preventative Maintenance Main Panel Upgrades EV Charger Installation Electrical Troubleshooting &amp; Repair Savings Calculator Blog Solar in San Jose Solar in San Francisco PG&amp;E and CCAs, explained PG&amp;E peak hours, explained Home batteries in a power outage Do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"no-title","meta":{"footnotes":""},"class_list":["post-100","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/starlightenergy.io\/es\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Starlight Energy - Bay Area Solar, Battery &amp; Electrical Contractor\" \/>\n\t\t<meta property=\"og:type\" content=\"website\" \/>\n\t\t<meta property=\"og:title\" content=\"Instalador de energ\u00eda solar y bater\u00edas en San Jos\u00e9 | Starlight Energy\" \/>\n\t\t<meta property=\"og:description\" content=\"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/starlightenergy.io\/es\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-energy-og.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-energy-og.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Instalador de energ\u00eda solar y bater\u00edas en San Jos\u00e9 | Starlight Energy\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-energy-og.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#listItem\",\"position\":2,\"name\":\"Home\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#organization\",\"name\":\"Starlight Energy\",\"description\":\"Licensed and insured California solar, battery storage and electrical contractor (CSLB #1132072) serving San Jose and the greater Bay Area with solar installation, home battery backup, main panel upgrades, EV charger installation, and solar maintenance and repair.\",\"url\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/\",\"email\":\"info@starlightenergy.io\",\"telephone\":\"+14087020480\",\"foundingDate\":\"2023-01-10\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"value\":5},\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/starlightenergy.io\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/site-icon-512.png\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#organizationLogo\",\"width\":512,\"height\":512},\"image\":{\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61570133153849\",\"https:\\\/\\\/www.instagram.com\\\/starlightenergy.io\",\"https:\\\/\\\/www.tiktok.com\\\/@starlightenergy.io\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#webpage\",\"url\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/\",\"name\":\"Instalador de energ\\u00eda solar y bater\\u00edas en San Jos\\u00e9 | Starlight Energy\",\"description\":\"Energ\\u00eda solar y bater\\u00edas en el Bay Area, dise\\u00f1adas seg\\u00fan c\\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\\u00e9, a 50 millas a la redonda. Evaluaci\\u00f3n gratuita.\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#breadcrumblist\"},\"datePublished\":\"2026-08-15T12:23:11-07:00\",\"dateModified\":\"2026-10-29T21:54:25-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/\",\"name\":\"Starlight Energy\",\"description\":\"Bay Area Solar, Battery & Electrical Contractor\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/starlightenergy.io\\\/es\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Instalador de energ\u00eda solar y bater\u00edas en San Jos\u00e9 | Starlight Energy","description":"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.","canonical_url":"https:\/\/starlightenergy.io\/es\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/starlightenergy.io\/es\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/starlightenergy.io\/es\/#listItem","position":1,"name":"Home","item":"https:\/\/starlightenergy.io\/es\/","nextItem":{"@type":"ListItem","@id":"https:\/\/starlightenergy.io\/es\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/starlightenergy.io\/es\/#listItem","position":2,"name":"Home","previousItem":{"@type":"ListItem","@id":"https:\/\/starlightenergy.io\/es\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/starlightenergy.io\/es\/#organization","name":"Starlight Energy","description":"Licensed and insured California solar, battery storage and electrical contractor (CSLB #1132072) serving San Jose and the greater Bay Area with solar installation, home battery backup, main panel upgrades, EV charger installation, and solar maintenance and repair.","url":"https:\/\/starlightenergy.io\/es\/","email":"info@starlightenergy.io","telephone":"+14087020480","foundingDate":"2023-01-10","numberOfEmployees":{"@type":"QuantitativeValue","value":5},"logo":{"@type":"ImageObject","url":"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/08\/site-icon-512.png","@id":"https:\/\/starlightenergy.io\/es\/#organizationLogo","width":512,"height":512},"image":{"@id":"https:\/\/starlightenergy.io\/es\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61570133153849","https:\/\/www.instagram.com\/starlightenergy.io","https:\/\/www.tiktok.com\/@starlightenergy.io"]},{"@type":"WebPage","@id":"https:\/\/starlightenergy.io\/es\/#webpage","url":"https:\/\/starlightenergy.io\/es\/","name":"Instalador de energ\u00eda solar y bater\u00edas en San Jos\u00e9 | Starlight Energy","description":"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/starlightenergy.io\/es\/#website"},"breadcrumb":{"@id":"https:\/\/starlightenergy.io\/es\/#breadcrumblist"},"datePublished":"2026-08-15T12:23:11-07:00","dateModified":"2026-10-29T21:54:25-07:00"},{"@type":"WebSite","@id":"https:\/\/starlightenergy.io\/es\/#website","url":"https:\/\/starlightenergy.io\/es\/","name":"Starlight Energy","description":"Bay Area Solar, Battery & Electrical Contractor","inLanguage":"es-ES","publisher":{"@id":"https:\/\/starlightenergy.io\/es\/#organization"}}]},"og:locale":"es_ES","og:site_name":"Starlight Energy - Bay Area Solar, Battery &amp; Electrical Contractor","og:type":"website","og:title":"Instalador de energ\u00eda solar y bater\u00edas en San Jos\u00e9 | Starlight Energy","og:description":"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.","og:url":"https:\/\/starlightenergy.io\/es\/","og:image":"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-energy-og.jpg","og:image:secure_url":"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-energy-og.jpg","og:image:width":1200,"og:image:height":630,"twitter:card":"summary_large_image","twitter:title":"Instalador de energ\u00eda solar y bater\u00edas en San Jos\u00e9 | Starlight Energy","twitter:description":"Energ\u00eda solar y bater\u00edas en el Bay Area, dise\u00f1adas seg\u00fan c\u00f3mo California cobra la electricidad en 2026. Con sede en San Jos\u00e9, a 50 millas a la redonda. Evaluaci\u00f3n gratuita.","twitter:image":"https:\/\/starlightenergy.io\/wp-content\/uploads\/2026\/10\/starlight-energy-og.jpg"},"aioseo_meta_data":{"post_id":"100","title":"Bay Area Solar & Battery Installer in San Jose | Starlight Energy","description":"Bay Area solar and battery storage, designed for how California really pays for power in 2026. Based in San Jose, serving every city within 50 miles. Free site assessment.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"website","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-08-18 05:40:00","updated":"2026-10-27 02:20:59"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/starlightenergy.io\/es\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHome\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/starlightenergy.io\/es\/"},{"label":"Home","link":"https:\/\/starlightenergy.io\/es\/"}],"_links":{"self":[{"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/pages\/100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":27,"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/pages\/100\/revisions"}],"predecessor-version":[{"id":503,"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/pages\/100\/revisions\/503"}],"wp:attachment":[{"href":"https:\/\/starlightenergy.io\/es\/wp-json\/wp\/v2\/media?parent=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}