.detail-page { color: #213039; background: #fff; }
.detail-page .dp-container { width: min(1300px,calc(100% - 64px)); margin-inline: auto; }
.dp-skip { position: absolute; z-index: 200; top: 8px; left: 8px; padding: 10px 14px; color: #213039; background: #fff; transform: translateY(-160%); }
.dp-skip:focus { transform: none; }
.detail-page main section[id] { scroll-margin-top: 85px; }
.dp-hero { padding: 30px 0 62px; }
.dp-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin: 0 0 34px; color: #cbd3d8; font-size: 12px; }
.dp-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.dp-hero-grid { display: grid; grid-template-columns: 1.08fr .82fr; gap: 8%; align-items: center; min-height: 338px; }
.dp-hero-copy { max-width: 695px; }
.dp-eyebrow,.dp-kicker { display: block; color: #cb5820; font-size: 11px; font-weight: 600; letter-spacing: 1.7px; text-transform: uppercase; }
.dp-hero .dp-eyebrow { color: #ffab7c; }
.dp-hero h1 { margin: 14px 0 18px; color: #fff; font-size: clamp(43px,4.4vw,61px); font-weight: 600; letter-spacing: -.7px; line-height: 1.18; }
.dp-hero h1 em { color: #ff873d; font-style: normal; }
.dp-hero-lead { max-width: 640px; margin: 0; color: #d1dce1; font-size: 16px; line-height: 1.8; }
.dp-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 26px; }
.dp-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 14px; padding: 10px 19px; border: 1px solid transparent; border-radius: 7px; font-size: 13px; font-weight: 500; transition: transform .2s,background .2s,border-color .2s; }
.dp-button:hover { transform: translateY(-2px); }
.dp-button:focus-visible,.detail-page a:focus-visible,.detail-page summary:focus-visible { outline: 3px solid #ffab7c; outline-offset: 3px; }
.dp-button--primary { color: #fff; background: #f97121; }
.dp-button--primary:hover { background: #e85f18; }
.dp-button--outline { color: #fff; border-color: #ffffff70; }
.dp-button--outline:hover { background: #ffffff12; border-color: #fff; }
.dp-hero-panel { position: relative; display: flex; min-height: 305px; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 28px 31px; border: 1px solid #ffffff28; border-radius: 12px; background: linear-gradient(145deg,#ffffff13,#ffffff05); }
.dp-hero-panel:after { position: absolute; top: -70px; right: -55px; width: 230px; height: 230px; content: ""; border: 1px solid #f971214d; border-radius: 50%; box-shadow: 0 0 0 29px #f9712110,0 0 0 60px #f9712108; pointer-events: none; }
.dp-hero-panel>* { position: relative; z-index: 1; }
.dp-hero-panel>small { color: #ffac7a; font-size: 10px; letter-spacing: 1.2px; }
.dp-hero-panel>strong { color: #fff; font-size: clamp(29px,2.7vw,38px); font-weight: 500; line-height: 1.3; }
.dp-hero-panel>strong em { color: #ff8c49; font-style: normal; }
.dp-panel-tags { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 16px; border-top: 1px solid #ffffff24; }
.dp-panel-tags span { padding: 5px 9px; border: 1px solid #ffffff34; border-radius: 5px; color: #d8e3e8; font-size: 10px; }
.dp-section { padding: 78px 0; }
.dp-section--tint { background: #f4f7f9; }
.dp-section--dark { color: #fff; background: #21313a; }
.dp-head { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 31px; }
.dp-head h2 { display: flex; align-items: center; max-width: 850px; margin: 11px 0 0; color: #213039; font-size: clamp(32px,3.15vw,44px); font-weight: 600; line-height: 1.25; letter-spacing: -.4px; }
.dp-head h2 .dp-num { display: inline-grid; width: 50px; height: 50px; flex: 0 0 50px; place-items: center; margin-right: 15px; border-radius: 10px; color: #fff; background: #f97121; font-size: 18px; letter-spacing: 0; }
.dp-head>p { max-width: 380px; margin: 0 0 3px; color: #687780; font-size: 14px; line-height: 1.75; }
.dp-section--dark .dp-kicker { color: #ffac7c; }
.dp-section--dark .dp-head h2 { color: #fff; }
.dp-section--dark .dp-head>p { color: #c2d0d6; }
.dp-split { display: grid; grid-template-columns: 1.06fr .94fr; gap: 28px; align-items: stretch; }
.dp-split--reverse { grid-template-columns: .94fr 1.06fr; }
.dp-split--reverse .dp-photo { order: 2; }
.dp-photo { position: relative; height: 405px; margin: 0; overflow: hidden; border-radius: 11px; background: #e6eaec; }
.dp-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dp-photo:after { position: absolute; inset: 49% 0 0; content: ""; background: linear-gradient(transparent,#14232cb5); pointer-events: none; }
.dp-photo figcaption { position: absolute; z-index: 1; right: 23px; bottom: 18px; left: 23px; color: #fff; font-size: 13px; font-weight: 500; text-shadow: 0 1px 4px #0007; }
.dp-photo--product { background: #fff; border: 1px solid #e1e8eb; }
.dp-photo--product img { object-fit: contain; padding: 30px; }
.dp-photo--product:after { display: none; }
.dp-photo--product figcaption { color: #475760; text-shadow: none; }
.dp-copy-panel { display: flex; flex-direction: column; justify-content: center; padding: 31px 33px; border: 1px solid #dfe7eb; border-radius: 11px; background: #fff; }
.dp-copy-panel h3 { margin: 0 0 13px; font-size: 29px; font-weight: 600; line-height: 1.3; }
.dp-copy-panel>p { margin: 0 0 17px; color: #586b75; font-size: 15px; line-height: 1.8; }
.dp-points { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.dp-points li { display: flex; gap: 13px; align-items: baseline; padding: 12px 0; border-top: 1px solid #e6ecef; color: #344650; font-size: 14px; }
.dp-points b { color: #d85918; font-size: 13px; }
.dp-points strong { display: block; font-weight: 600; }
.dp-points small { display: block; color: #6c7b83; font-size: 12px; }
.dp-variants { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.dp-variants--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dp-variant { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #e0e8ec; border-radius: 11px; background: #fff; box-shadow: 0 10px 25px #1629360a; }
.dp-variant img { width: 100%; height: 220px; object-fit: cover; background: #eef1f2; }
.dp-variant--product img { object-fit: contain; padding: 17px; background: #f7f9fa; }
.dp-variant-body { display: flex; flex: 1; flex-direction: column; padding: 22px 23px 25px; }
.dp-variant small { color: #b74f1c; font-size: 10px; font-weight: 600; letter-spacing: 1.1px; }
.dp-variant h3 { margin: 8px 0 8px; font-size: 23px; font-weight: 600; line-height: 1.3; }
.dp-variant p { margin: 0; color: #61727b; font-size: 14px; line-height: 1.7; }
.dp-variant ul { margin: 14px 0 0; padding-left: 18px; color: #4f616a; font-size: 13px; }
.dp-variant li+li { margin-top: 5px; }
.dp-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.dp-grid--four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dp-card { padding: 25px; border: 1px solid #dfe7eb; border-radius: 10px; background: #fff; }
.dp-card .dp-card-num { display: inline-grid; min-width: 42px; height: 42px; place-items: center; padding: 0 8px; border-radius: 9px; color: #fff; background: #f97121; font-size: 16px; font-weight: 600; }
.dp-card svg { width: 36px; height: 36px; padding: 6px; border-radius: 8px; color: #d86121; background: #fff0e8; }
.dp-card h3 { margin: 16px 0 7px; font-size: 19px; font-weight: 600; }
.dp-card p { margin: 0; color: #657680; font-size: 13px; line-height: 1.7; }
.dp-section--dark .dp-card { border-color: #ffffff26; color: #fff; background: #ffffff0e; }
.dp-section--dark .dp-card p { color: #cad6db; }
.dp-flow { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 35px 24px; border-radius: 13px; color: #fff; background: #21313a; }
.dp-flow--four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dp-flow>div { position: relative; min-height: 148px; padding: 20px 27px; border-right: 1px solid #ffffff28; }
.dp-flow>div:last-child { border: 0; }
.dp-flow>div:not(:last-child):after { position: absolute; top: 61px; right: -11px; z-index: 1; content: "→"; color: #ff985e; font: 24px Arial,sans-serif; }
.dp-flow svg { width: 30px; height: 30px; margin-bottom: 9px; color: #ff9b63; }
.dp-flow b { display: block; font-size: 17px; }
.dp-flow span { display: block; margin-top: 6px; color: #c7d4da; font-size: 12px; line-height: 1.6; }
.dp-section--dark .dp-flow { border: 1px solid #ffffff26; background: #ffffff0b; }
.dp-note { margin-top: 16px; padding: 17px 21px; border: 1px solid #f5c6a9; border-radius: 8px; color: #855036; background: #fff3eb; font-size: 13px; line-height: 1.7; }
.dp-section--dark .dp-note { border-color: #ffffff35; color: #f4d9ca; background: #ffffff0c; }
.dp-steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.dp-steps--four { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dp-step { position: relative; padding: 23px 19px; border-radius: 9px; color: #fff; background: #233741; }
.dp-step:first-child { background: #e66d2d; }
.dp-step b { display: block; color: #ffb58c; font-size: 25px; line-height: 1; }
.dp-step:first-child b { color: #fff2e8; }
.dp-step h3 { margin: 16px 0 6px; color: #fff; font-size: 18px; font-weight: 600; }
.dp-step p { margin: 0; color: #cbd9de; font-size: 12px; line-height: 1.65; }
.dp-step:first-child p { color: #fff4ec; }
.dp-faq { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px 15px; }
.dp-faq details { min-width: 0; border: 1px solid #e0e7ea; border-radius: 8px; background: #fff; }
.dp-faq summary { position: relative; padding: 17px 38px 17px 18px; list-style: none; cursor: pointer; font-size: 14px; font-weight: 500; }
.dp-faq summary::-webkit-details-marker { display: none; }
.dp-faq summary:after { position: absolute; top: 12px; right: 16px; content: "+"; color: #d85d20; font: 23px Arial,sans-serif; }
.dp-faq details[open] summary:after { content: "−"; }
.dp-faq details p { margin: 0; padding: 0 18px 17px; color: #657680; font-size: 13px; line-height: 1.7; }
.dp-cta { padding: 59px 0; color: #fff; background: #1e2d36; }
.dp-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.dp-cta .dp-eyebrow { color: #ffac7c; }
.dp-cta h2 { margin: 8px 0 7px; color: #fff; font-size: clamp(29px,3vw,40px); line-height: 1.25; }
.dp-cta p { max-width: 750px; margin: 0; color: #c8d5db; font-size: 14px; }
.dp-cta .dp-button { flex: 0 0 auto; }

/* Service-specific composition. Shared type and controls, different stories. */
.service-network .dp-hero { padding-bottom: 72px; }
.service-network .dp-hero-grid { grid-template-columns: 1fr .92fr; gap: 7%; min-height: 390px; }
.service-network .dp-hero h1 { max-width: 780px; font-size: clamp(48px,4.55vw,67px); }
.service-network .dp-hero-panel { min-height: 365px; padding: 28px 31px 30px; background: #31434d; }
.service-network .dp-hero-panel:after { display: none; }
.nw-hero-title { margin: 14px 0 20px; color: #fff; font-size: clamp(27px,2.5vw,36px); font-weight: 600; line-height: 1.25; }
.nw-hero-stack { display: grid; gap: 5px; }
.nw-hero-stack>div { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 12px 14px; border-radius: 5px; background: #ffffff12; }
.nw-hero-stack b { color: #ff944e; font-size: 15px; }
.nw-hero-stack strong { color: #fff; font-size: 12px; letter-spacing: .8px; }
.nw-hero-stack span { color: #d3e0e5; font-size: 12px; text-align: right; }
.nw-overview { display: grid; grid-template-columns: 1.09fr .91fr; gap: 0; min-height: 475px; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 18px 45px #2130390c; }
.nw-overview-photo { position: relative; min-height: 475px; margin: 0; overflow: hidden; background: #dce6e9; }
.nw-overview-photo img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 57% center; }
.nw-overview-photo:after { position: absolute; inset: 55% 0 0; content: ''; background: linear-gradient(transparent,#10232ab8); }
.nw-overview-photo figcaption { position: absolute; z-index: 1; bottom: 21px; left: 25px; color: #fff; font-size: 12px; }
.nw-overview-copy { padding: 48px 53px; }
.nw-mini { display: block; color: #ce5d21; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; }
.nw-overview-copy h3,.nw-audit-lead h3 { margin: 14px 0; font-size: clamp(30px,3vw,43px); line-height: 1.25; }
.nw-overview-copy p,.nw-audit-lead p { margin: 0 0 21px; color: #5c6e78; font-size: 15px; line-height: 1.8; }
.nw-overview-copy ol,.nw-audit-list,.nw-architecture-layers { margin: 0; padding: 0; list-style: none; }
.nw-overview-copy li { display: grid; grid-template-columns: 90px 1fr; gap: 15px; padding: 13px 0; border-top: 1px solid #e3e9ec; font-size: 14px; }
.nw-overview-copy li b { color: #c95b23; }
.nw-overview-copy li span { color: #4e616b; }
.nw-services { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.nw-services article { overflow: hidden; border: 1px solid #dce5e9; border-radius: 10px; background: #fff; box-shadow: 0 10px 25px #15293408; }
.nw-service-image { position: relative; height: 250px; overflow: hidden; background: #e7eef1; }
.nw-service-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.nw-services article:hover img { transform: scale(1.035); }
.nw-service-image span { position: absolute; bottom: 15px; left: 17px; padding: 7px 10px; border-radius: 4px; color: #fff; background: #172a33d9; font-size: 10px; font-weight: 600; letter-spacing: 1px; }
.nw-service-copy { padding: 25px 25px 24px; }
.nw-service-copy h3 { margin: 0 0 10px; font-size: 26px; }
.nw-service-copy p { min-height: 73px; margin: 0 0 20px; color: #5e7079; font-size: 14px; line-height: 1.7; }
.nw-service-copy strong { display: block; padding-top: 15px; border-top: 1px solid #e0e8ec; color: #b95521; font-size: 12px; font-weight: 600; }
.nw-architecture { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9%; align-items: center; }
.nw-architecture-intro>span { color: #ffac7c; font-size: 11px; font-weight: 600; letter-spacing: 1.3px; }
.nw-architecture-intro h3 { margin: 12px 0; color: #fff; font-size: clamp(29px,2.8vw,39px); line-height: 1.3; }
.nw-architecture-intro p { color: #c7d5dc; font-size: 15px; line-height: 1.8; }
.nw-architecture-note { margin-top: 25px; padding: 20px 22px; border-left: 3px solid #f97121; color: #e4eff2; background: #ffffff0e; font-size: 14px; line-height: 1.7; }
.nw-architecture-layers { display: grid; gap: 9px; }
.nw-architecture-layers li { display: grid; grid-template-columns: 58px 1fr; gap: 13px; align-items: center; min-height: 86px; padding: 15px 23px; border: 1px solid #ffffff19; border-radius: 8px; background: #ffffff0e; }
.nw-architecture-layers li:first-child { background: #f97121; border-color: #f97121; }
.nw-architecture-layers li>b { color: #ff9f69; font-size: 30px; }
.nw-architecture-layers li:first-child>b,.nw-architecture-layers li:first-child small,.nw-architecture-layers li:first-child span { color: #fff; }
.nw-architecture-layers li div { display: grid; grid-template-columns: 130px 1fr; gap: 2px 15px; align-items: baseline; }
.nw-architecture-layers small { grid-column: 1 / -1; color: #ffab78; font-size: 10px; letter-spacing: 1.4px; }
.nw-architecture-layers strong { color: #fff; font-size: 20px; }
.nw-architecture-layers span { color: #cbd7dd; font-size: 13px; }
.nw-audit { display: grid; grid-template-columns: .78fr 1.22fr; gap: 8%; }
.nw-audit-lead { padding: 24px 0; }
.nw-audit-result { margin-top: 30px; padding: 20px 23px; border-radius: 8px; color: #fff; background: #243943; }
.nw-audit-result b { display: block; margin-bottom: 5px; color: #ffad7e; font-size: 12px; }
.nw-audit-result span { font-size: 13px; line-height: 1.7; }
.nw-audit-list { border-top: 1px solid #d7e2e7; }
.nw-audit-list li { display: grid; grid-template-columns: 62px 1fr; gap: 17px; align-items: start; padding: 18px 8px; border-bottom: 1px solid #d7e2e7; }
.nw-audit-list li>b { color: #e66c2e; font-size: 25px; line-height: 1; }
.nw-audit-list h3 { margin: 0 0 4px; font-size: 19px; }
.nw-audit-list p { margin: 0; color: #657680; font-size: 13px; line-height: 1.7; }
.nw-delivery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.nw-delivery article { display: grid; gap: 20px; min-height: 280px; align-content: space-between; padding: 28px 29px; border-radius: 9px; color: #fff; background: #263b46; }
.nw-delivery article:first-child { background: #e86c2a; }
.nw-delivery article>b { color: #ffab76; font-size: 54px; line-height: 1; }
.nw-delivery article:first-child>b,.nw-delivery article:first-child span,.nw-delivery article:first-child p { color: #fff; }
.nw-delivery span { color: #ffa670; font-size: 11px; font-weight: 600; letter-spacing: 1.3px; }
.nw-delivery h3 { margin: 8px 0 8px; color: #fff; font-size: 24px; }
.nw-delivery p { margin: 0; color: #c9d8de; font-size: 13px; line-height: 1.7; }
.nw-questions { display: grid; grid-template-columns: 1.32fr .68fr; gap: 25px; align-items: start; }
.nw-questions .dp-faq { grid-template-columns: 1fr; }
.nw-questions .dp-faq summary { padding: 19px 43px 19px 22px; }
.nw-questions-aside { min-height: 265px; padding: 30px; border-radius: 9px; color: #fff; background: #263b46; }
.nw-questions-aside span { color: #ffa772; font-size: 11px; font-weight: 600; letter-spacing: 1.3px; }
.nw-questions-aside h3 { margin: 15px 0 8px; color: #fff; font-size: 27px; }
.nw-questions-aside p { color: #d1dce1; font-size: 14px; line-height: 1.75; }
.nw-questions-aside a { display: inline-block; margin-top: 14px; color: #ffad7c; font-size: 14px; font-weight: 600; }
.service-network .dp-cta { background: #1b2b34; }
.service-solar-cell .dp-hero-grid { grid-template-columns: 1.03fr .9fr; gap: 8%; }
.service-solar-cell .dp-hero-panel { padding: 30px 34px; background: #30414a; }
.service-solar-cell .dp-hero-panel:after { top: -110px; right: -75px; width: 250px; height: 250px; border-color: #ffa05f55; box-shadow: 0 0 0 28px #f9712116,0 0 0 58px #f971210b; }
.service-solar-cell .dp-hero-panel>strong { font-size: clamp(28px,2.55vw,38px); }
.solar-hero-questions { display: grid; gap: 5px; margin-top: 20px; }
.solar-hero-questions>div { display: grid; grid-template-columns: 32px 1fr; gap: 10px; padding: 10px 13px; border-radius: 5px; background: #ffffff14; }
.solar-hero-questions b { color: #ffa16d; font-size: 13px; }
.solar-hero-questions span { color: #e2e9ec; font-size: 13px; }
.solar-opening { position: relative; height: 480px; margin: 0; overflow: hidden; border-radius: 12px; background: #b6c9d2; }
.solar-opening img { width: 100%; height: 100%; object-fit: cover; object-position: center 56%; }
.solar-opening:after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg,#162932ad,transparent 62%); }
.solar-opening figcaption { position: absolute; z-index: 1; bottom: 40px; left: 46px; color: #fff; }
.solar-opening figcaption span { display: block; margin-bottom: 12px; color: #ffac7b; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; }
.solar-opening figcaption strong { display: block; font-size: clamp(35px,4vw,55px); line-height: 1.2; }
.solar-opening figcaption small { display: block; margin-top: 19px; color: #e4edf0; font-size: 12px; }
.solar-solutions { display: grid; grid-template-columns: 1.05fr .95fr; grid-template-rows: repeat(2,235px); gap: 18px; }
.solar-solutions article { overflow: hidden; border: 1px solid #dee6e9; border-radius: 10px; background: #fff; box-shadow: 0 9px 25px #15293409; }
.solar-solutions-feature { grid-row: 1 / 3; display: flex; flex-direction: column; }
.solar-solutions-feature img { width: 100%; height: 305px; object-fit: cover; }
.solar-solutions-feature>div { flex: 1; padding: 25px 29px; }
.solar-solutions article span { color: #b85522; font-size: 10px; font-weight: 600; letter-spacing: 1.2px; }
.solar-solutions article h3 { margin: 9px 0 8px; font-size: 26px; }
.solar-solutions article p { margin: 0; color: #5c6d76; font-size: 14px; line-height: 1.7; }
.solar-solutions-side { display: grid; grid-template-columns: 43% 57%; }
.solar-solutions-side img { width: 100%; height: 100%; object-fit: cover; }
.solar-solutions-side>div { display: flex; flex-direction: column; justify-content: center; padding: 21px; }
.solar-solutions-side h3 { font-size: 23px !important; }
.solar-solutions-side p { font-size: 13px !important; }
.solar-design { display: grid; grid-template-columns: .92fr 1.08fr; gap: 25px; align-items: stretch; }
.solar-design figure { position: relative; min-height: 465px; margin: 0; overflow: hidden; border-radius: 10px; background: #d2dce2; }
.solar-design img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.solar-design figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 28px; color: #fff; background: linear-gradient(transparent,#12232ac9); font-size: 12px; }
.solar-design-list { padding: 28px 33px; border: 1px solid #dfe7ea; border-radius: 10px; background: #fff; }
.solar-design-list h3 { margin: 0 0 17px; font-size: 27px; }
.solar-design-list ol { margin: 0; padding: 0; list-style: none; }
.solar-design-list li { display: grid; grid-template-columns: 45px 1fr; gap: 17px; padding: 17px 0; border-top: 1px solid #e2e9ed; }
.solar-design-list li>b { color: #e46c2c; font-size: 21px; }
.solar-design-list strong { display: block; font-size: 17px; }
.solar-design-list span { color: #66777e; font-size: 13px; line-height: 1.7; }
.solar-energy { border: 1px solid #ffffff27; border-radius: 11px; background: #ffffff0b; }
.solar-energy-path { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.solar-energy-path>div { position: relative; min-height: 190px; padding: 29px 28px; border-right: 1px solid #ffffff24; }
.solar-energy-path>div:last-child { border: 0; }
.solar-energy-path>div:not(:last-child):after { position: absolute; top: 74px; right: -12px; z-index: 1; display: grid; width: 25px; height: 25px; place-items: center; content: '›'; border-radius: 50%; color: #fff; background: #e66d2d; font: 23px Arial,sans-serif; }
.solar-energy-path span { display: block; color: #ffac7c; font-size: 10px; letter-spacing: 1.1px; }
.solar-energy-path b { display: block; margin: 28px 0 8px; color: #fff; font-size: 24px; }
.solar-energy-path small { color: #cbd7dd; font-size: 13px; line-height: 1.6; }
.solar-energy>p { margin: 0; padding: 20px 28px; border-top: 1px solid #ffffff27; color: #d5e0e4; font-size: 13px; line-height: 1.7; }
.solar-energy>p strong { color: #ffae7e; }
.solar-delivery { overflow: hidden; border-top: 1px solid #d6e1e6; }
.solar-delivery article { display: grid; grid-template-columns: 70px 1fr 245px; gap: 21px; align-items: center; min-height: 112px; padding: 17px 20px; border-bottom: 1px solid #d6e1e6; }
.solar-delivery article:nth-child(even) { background: #f5f8f9; }
.solar-delivery article>b { color: #e86c2e; font-size: 37px; line-height: 1; }
.solar-delivery article span { color: #bd5c2a; font-size: 10px; font-weight: 600; letter-spacing: 1px; }
.solar-delivery article h3 { margin: 3px 0; font-size: 21px; }
.solar-delivery article p { margin: 0; color: #63757d; font-size: 13px; }
.solar-delivery article>strong { color: #3d535e; font-size: 13px; font-weight: 600; }
.service-automatic-system .dp-access-focus { grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-fogging-machine .dp-fog-spec { grid-template-columns: repeat(2,minmax(0,1fr)); }
.service-government-equipment .dp-mission-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.service-led-display .dp-display-options .dp-variant img { height: 275px; }
.service-sound-system .dp-audio-options .dp-variant img { height: 210px; }

@media(max-width:1050px){
  .solar-solutions { grid-template-columns: 1fr 1fr; }
  .solar-solutions-side { grid-template-columns: 38% 62%; }
  .solar-solutions-side>div { padding: 15px; }
  .solar-energy-path>div { padding: 23px 17px; }
  .solar-delivery article { grid-template-columns: 55px 1fr 205px; }
  .service-network .dp-hero-grid { gap: 4%; }
  .nw-overview-copy { padding: 35px; }
  .nw-services { gap: 12px; }
  .nw-service-image { height: 205px; }
  .nw-service-copy { padding: 20px; }
  .nw-architecture { gap: 4%; }
  .nw-audit { gap: 5%; }
  .dp-hero-grid { gap: 5%; }
  .dp-split,.dp-split--reverse { grid-template-columns: 1fr 1fr; }
  .dp-steps { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .service-government-equipment .dp-mission-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:800px){
  .service-solar-cell .dp-hero-grid { grid-template-columns: 1fr; }
  .solar-opening { height: 365px; }
  .solar-solutions { grid-template-columns: 1fr; grid-template-rows: auto; }
  .solar-solutions-feature { grid-row: auto; }
  .solar-solutions-feature img { height: 265px; }
  .solar-solutions-side { min-height: 220px; }
  .solar-design { grid-template-columns: 1fr; }
  .solar-design figure { min-height: 330px; }
  .solar-energy-path { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .solar-energy-path>div:nth-child(2) { border-right: 0; }
  .solar-energy-path>div:nth-child(-n+2) { border-bottom: 1px solid #ffffff27; }
  .solar-energy-path>div:nth-child(2):after { display: none; }
  .solar-delivery article { grid-template-columns: 55px 1fr; }
  .solar-delivery article>strong { grid-column: 2; }
  .service-network .dp-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .service-network .dp-hero-panel { min-height: 0; }
  .nw-overview { grid-template-columns: 1fr; }
  .nw-overview-photo { min-height: 340px; }
  .nw-services { grid-template-columns: 1fr 1fr; }
  .nw-architecture,.nw-audit { grid-template-columns: 1fr; gap: 24px; }
  .nw-architecture-layers li div { grid-template-columns: 120px 1fr; }
  .nw-questions { grid-template-columns: 1fr; }
  .detail-page .dp-container { width: calc(100% - 48px); }
  .dp-hero { padding: 23px 0 48px; }
  .dp-hero-grid { grid-template-columns: 1fr; gap: 27px; min-height: 0; }
  .dp-hero-panel { min-height: 235px; }
  .dp-section { padding: 58px 0; }
  .dp-head { display: block; margin-bottom: 25px; }
  .dp-head>p { max-width: 630px; margin-top: 12px; }
  .dp-split,.dp-split--reverse { grid-template-columns: 1fr; gap: 16px; }
  .dp-split--reverse .dp-photo { order: 0; }
  .dp-photo { height: 310px; }
  .dp-grid,.dp-variants { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-automatic-system .dp-access-focus { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-solar-cell .dp-solar-meter { grid-template-columns: 1fr; }
  .dp-flow { padding: 20px 10px; }
  .dp-flow>div { padding: 18px 15px; }
}
@media(max-width:560px){
  .solar-opening { height: 310px; }
  .solar-opening figcaption { bottom: 25px; left: 23px; }
  .solar-opening figcaption strong { font-size: 34px; }
  .solar-solutions-side { display: block; min-height: 0; }
  .solar-solutions-side img { display: block; height: 190px; }
  .solar-solutions-side>div { padding: 20px; }
  .solar-solutions-side h3 { font-size: 23px !important; }
  .solar-solutions-side p { font-size: 13px !important; }
  .solar-design figure { min-height: 255px; }
  .solar-design-list { padding: 22px; }
  .solar-design-list li { grid-template-columns: 35px 1fr; gap: 9px; }
  .solar-energy-path { grid-template-columns: 1fr; }
  .solar-energy-path>div { min-height: 115px; padding: 19px 23px; border-right: 0; border-bottom: 1px solid #ffffff27; }
  .solar-energy-path>div:not(:last-child):after { top: auto; right: 15px; bottom: -12px; }
  .solar-energy-path>div:nth-child(2):after { display: grid; }
  .solar-energy-path b { margin: 8px 0 4px; font-size: 20px; }
  .solar-delivery article { grid-template-columns: 48px 1fr; gap: 10px; padding: 16px 8px; }
  .solar-delivery article>b { font-size: 30px; }
  .service-network .dp-hero h1 { font-size: 38px; }
  .nw-hero-stack>div { grid-template-columns: 29px 1fr; gap: 4px 8px; }
  .nw-hero-stack span { grid-column: 2; text-align: left; }
  .nw-overview-photo { min-height: 250px; }
  .nw-overview-copy { padding: 25px; }
  .nw-overview-copy li { grid-template-columns: 70px 1fr; gap: 8px; }
  .nw-services,.nw-delivery { grid-template-columns: 1fr; }
  .nw-service-image { height: 210px; }
  .nw-service-copy p { min-height: 0; }
  .nw-architecture-layers li { grid-template-columns: 42px 1fr; padding: 15px; }
  .nw-architecture-layers li div { grid-template-columns: 1fr; }
  .nw-architecture-layers small { grid-column: auto; }
  .nw-delivery article { min-height: 220px; }
  .nw-audit-list li { grid-template-columns: 43px 1fr; }
  .nw-questions-aside { min-height: 0; }
  .detail-page .dp-container { width: calc(100% - 36px); }
  .dp-breadcrumb { margin-bottom: 24px; }
  .dp-hero h1 { font-size: 38px; }
  .dp-hero-lead { font-size: 14px; }
  .dp-hero-panel { min-height: 210px; padding: 22px; }
  .dp-hero-panel>strong { font-size: 31px; }
  .dp-section { padding: 47px 0; }
  .dp-head h2 { font-size: 30px; }
  .dp-head h2 .dp-num { width: 40px; height: 40px; flex-basis: 40px; margin-right: 10px; font-size: 15px; }
  .dp-head>p { font-size: 13px; }
  .dp-photo { height: 225px; }
  .dp-copy-panel { padding: 23px; }
  .dp-copy-panel h3 { font-size: 23px; }
  .dp-grid,.dp-variants,.service-government-equipment .dp-mission-grid,.service-automatic-system .dp-access-focus,.service-fogging-machine .dp-fog-spec { grid-template-columns: 1fr; }
  .dp-variant img,.service-led-display .dp-display-options .dp-variant img,.service-sound-system .dp-audio-options .dp-variant img { height: 210px; }
  .dp-card { padding: 20px; }
  .dp-flow,.dp-flow--four { grid-template-columns: 1fr; }
  .dp-flow>div { min-height: 0; padding: 16px 20px; border-right: 0; border-bottom: 1px solid #ffffff27; }
  .dp-flow>div:last-child { border: 0; }
  .dp-flow>div:not(:last-child):after { top: auto; right: 17px; bottom: -17px; content: "↓"; }
  .dp-steps,.dp-steps--four { grid-template-columns: 1fr; gap: 7px; }
  .dp-step { padding: 17px 20px; }
  .dp-step b { display: inline-block; margin-right: 12px; vertical-align: middle; font-size: 21px; }
  .dp-step h3 { display: inline-block; margin: 0 0 4px; vertical-align: middle; }
  .dp-faq { grid-template-columns: 1fr; }
  .dp-cta-inner { display: block; }
  .dp-cta .dp-button { margin-top: 19px; }
}
@media(max-width:360px){ .dp-hero h1 { font-size: 34px; } }
@media(prefers-reduced-motion:reduce){ .dp-button,.dp-variant,.dp-photo img,.nw-service-image img { transition: none; } }
