/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.18s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.grid{display:grid}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--navy:#0a1912;--navy-2:#10281b;--ink:#12211a;--steel:#61745c;--mist:#eef4ea;--white:#f9fbf7;--teal:#2a5c1c;--teal-bright:#b7d053;--line:#16321f26;--ink-950:#071309;--ink-900:#0a1912;--ink-800:#0d2117;--ink-700:#12211a;--text-600:#3d5138;--text-500:#4d6049;--text-400:#61745c;--text-300:#879384;--surface-100:#e8f0e4;--surface-50:#eef4ea;--paper:#f9fbf7;--accent:#2a5c1c;--accent-bright:#b7d053;--accent-hover:#c8e05f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--white);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}summary,a{touch-action:manipulation}button,input,textarea{font:inherit}:focus-visible{outline:3px solid var(--teal-bright);outline-offset:4px}.skip-link{z-index:1000;background:var(--teal-bright);color:var(--navy);padding:12px 16px;font-weight:800;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;color:#fff;border-bottom:1px solid #ffffff2e;justify-content:space-between;align-items:center;height:52px;padding:0 clamp(24px,4.3vw,64px);display:flex;position:relative}.home-page>.site-header{position:absolute;inset:0 0 auto}.site-header-solid{background:var(--navy)}.brand{background:#fff;border-radius:2px;align-items:center;width:clamp(230px,22vw,318px);height:72px;display:inline-flex;overflow:hidden}.brand img{width:100%;height:auto;display:block}.site-footer .brand{width:min(318px,100%)}.desktop-nav{align-items:center;gap:clamp(24px,3vw,48px);display:flex}.desktop-nav a{color:#ffffffe0;padding:12px 0;font-size:16px;position:relative}.desktop-nav a:after{content:"";background:var(--teal-bright);width:0;height:2px;transition:width .3s;position:absolute;bottom:4px;left:0}.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after,.desktop-nav a[aria-current=page]:after{width:100%}.desktop-nav .header-cta{min-height:44px;color:var(--teal-bright);border:1px solid #b7d053b3;align-items:center;gap:12px;padding:0 16px;font-weight:700;display:inline-flex}.desktop-nav .header-cta:after{display:none}.desktop-nav .header-cta:hover{background:var(--teal-bright);color:var(--navy)}.mobile-nav{display:none;position:relative}.hero{background:var(--navy);color:#fff;flex-direction:column;min-height:clamp(500px,74svh,580px);display:flex;position:relative;overflow:hidden}.hero-media{background:url(../images/hero-solar-sunset.jpg) 50%/cover no-repeat;animation:18s ease-in-out infinite alternate heroDrift;position:absolute;inset:0}.hero-shade{background:linear-gradient(90deg,#07140df7 0%,#07140dd4 35%,#07140d33 72%),linear-gradient(#0000 56%,#07140d99 100%);position:absolute;inset:0}.hero-content{z-index:2;width:min(860px,82vw);margin:clamp(120px,14vh,144px) 0 144px clamp(24px,4.3vw,64px);animation:.7s both rise;position:relative}.eyebrow{color:#4d6049;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;margin:0 0 20px;font-size:12px;font-weight:800;display:flex}.eyebrow>span,.eyebrow-light>span{background:currentColor;width:28px;height:1px}.eyebrow-light{color:var(--teal-bright)}.hero h1{letter-spacing:-.052em;max-width:1000px;margin:0;font-size:clamp(32px,3.1vw,46px);font-weight:700;line-height:.98}.hero-copy{color:#ffffffc2;max-width:760px;margin:32px 0 0;font-size:clamp(15px,.9vw,16px);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:16px;margin-top:40px;display:flex}.button{border:1px solid #0000;justify-content:center;align-items:center;gap:32px;min-height:52px;padding:0 32px;font-size:16px;font-weight:700;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--teal-bright);color:#0a1912}.button-primary:hover{background:#c8e05f}.button-ghost{color:var(--teal-bright);background:#0a191240;border-color:#b7d053ad}.button-dark{color:#fff;background:var(--navy)}.arrow{font-size:16px;font-weight:400;transition:transform .18s}a:hover .arrow{transform:translate(3px,-3px)}.lifecycle-bar{z-index:3;background-color:#0b1a07f0;background-image:linear-gradient(#b7d0530d 1px,#0000 1px),linear-gradient(90deg,#b7d0530d 1px,#0000 1px);background-size:28px 28px;border-top:1px solid #b7d05333;grid-template-columns:repeat(4,1fr);min-height:88px;padding:0 clamp(24px,4.3vw,64px);display:grid;position:absolute;bottom:0;left:0;right:0}.lifecycle-bar div{border-right:1px solid #b7d05340;align-items:center;gap:16px;padding:20px clamp(16px,2.8vw,48px);display:flex}.lifecycle-bar div:first-child{padding-left:0}.lifecycle-bar div:last-child{border-right:0}.lifecycle-bar span{color:var(--teal-bright);font-size:16px;font-weight:300}.lifecycle-bar strong{font-size:clamp(15px,1.2vw,19px)}.section{padding:60px clamp(20px,4vw,52px)}.section-label{align-items:center;gap:16px;margin-bottom:24px;display:flex}.section-label span{color:var(--teal);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.section-label p{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.section-label:after{content:"";background:var(--line);flex:1;height:1px;margin-left:20px}.intro-grid{grid-template-columns:1.3fr .8fr;align-items:start;gap:3.2vw;display:grid}.intro-grid h2,.sector-heading h2,.sticky-copy h2,.proof-copy h2,.home-cta h2,.page-cta h2,.contact-panel h2{letter-spacing:-.045em;margin:0;font-size:clamp(22px,2.1vw,31px);line-height:1.05}.intro-grid>div>p{color:#61745c;margin:8px 0 40px;font-size:16px;line-height:1.65}.text-link{color:#2a5c1c;border-bottom:1px solid #2a5c1c;align-items:center;gap:16px;padding-bottom:8px;font-size:14px;font-weight:800;display:inline-flex}.text-link-light{color:var(--teal-bright);border-color:var(--teal-bright)}.sector-section{background:var(--navy);color:#fff}.section-label-light:after{background:#ffffff24}.section-label-light span{color:var(--teal-bright)}.sector-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:24px;display:flex}.sector-heading h2{max-width:700px}.sector-grid{border:1px solid #ffffff29;grid-template-columns:repeat(4,1fr);display:grid}.sector-card{background-position:50%;background-size:cover;border-right:1px solid #fff3;flex-direction:column;justify-content:space-between;min-height:224px;padding:20px;transition:background-position .3s;display:flex}.sector-card:last-child{border-right:0}.sector-card:hover{background-position:55%}.sector-card>span{color:var(--teal-bright);font-family:ui-monospace,monospace}.sector-card h3{margin:0 0 16px;font-size:16px}.sector-card p{color:#ffffffad;margin:0 0 20px;line-height:1.6}.sector-card .arrow{color:var(--teal-bright);display:inline-block}.capability-grid{grid-template-columns:.85fr 1.35fr;gap:3.2vw;display:grid}.sticky-copy{align-self:start;position:sticky;top:40px}.sticky-copy>p:not(.eyebrow){color:#61745c;max-width:500px;margin:24px 0 40px;font-size:16px;line-height:1.6}.capability-list{border-top:1px solid var(--line)}.capability-list>a{border-bottom:1px solid var(--line);grid-template-columns:48px 1fr 28px;align-items:start;gap:14px;padding:32px 0;display:grid}.capability-list>a>span{color:var(--teal);margin-top:8px;font-family:ui-monospace,monospace;font-size:12px}.capability-list h3{margin:0 0 8px;font-size:16px}.capability-list p{color:#61745c;margin:0;line-height:1.55}.process-section{color:#fff;background:#0d2117;padding:60px clamp(20px,4vw,52px)}.process-heading{grid-template-columns:1fr 1fr;align-items:end;gap:3.2vw;margin-bottom:40px;display:grid}.process-heading .eyebrow{grid-column:1/-1;margin-bottom:-24px}.process-heading h2{letter-spacing:-.048em;margin:0;font-size:clamp(23px,2.2vw,32px);line-height:1.03}.process-heading>p:last-child{color:#ffffffa8;max-width:620px;margin:0;font-size:16px;line-height:1.6}.process-grid{border-top:1px solid #ffffff2b;border-left:1px solid #ffffff2b;grid-template-columns:repeat(4,1fr);display:grid}.process-grid article{border-bottom:1px solid #ffffff2b;border-right:1px solid #ffffff2b;min-height:152px;padding:32px}.process-grid article>span{color:var(--teal-bright);font-family:ui-monospace,monospace;font-size:12px}.process-grid h3{margin:96px 0 16px;font-size:16px;line-height:1.15}.process-grid p{color:#ffffff9c;margin:0;line-height:1.65}.proof-section{background:var(--navy);color:#fff;grid-template-columns:1.1fr .9fr;min-height:380px;display:grid}.proof-image{background:linear-gradient(90deg, transparent 55%, var(--navy) 100%), linear-gradient(0deg, #0a191240, #0a191226), url(../images/substation-construction.jpg) center/cover no-repeat}.proof-copy{flex-direction:column;justify-content:center;padding:80px clamp(24px,7vw,120px) 80px 56px;display:flex}.proof-copy p:not(.eyebrow){color:#ffffffab;margin:24px 0 40px;font-size:16px;line-height:1.6}.home-cta,.page-cta,.contact-panel{text-align:center;background:#eef4ea;flex-direction:column;align-items:center;padding:120px 24px;display:flex}.home-cta .eyebrow,.page-cta .eyebrow{justify-content:center}.home-cta h2,.page-cta h2{max-width:850px}.home-cta .button,.page-cta .button{margin-top:40px}.page-cta>p:not(.eyebrow){color:#61745c;max-width:620px;font-size:16px;line-height:1.6}.site-footer{color:#fff;background:#071309;padding:48px clamp(20px,4vw,52px) 20px}.footer-top{justify-content:space-between;gap:80px;padding-bottom:80px;display:flex}.footer-top>div:first-child>p{color:#ffffff8c;max-width:410px;margin:24px 0 0;line-height:1.6}.footer-links{grid-template-columns:repeat(3,minmax(150px,190px));gap:40px;display:grid}.footer-links div{flex-direction:column;gap:12px;display:flex}.footer-links strong{color:var(--teal-bright);text-transform:uppercase;letter-spacing:.13em;margin-bottom:8px;font-size:12px}.footer-links a{color:#ffffffb3;font-size:14px}.footer-bottom{color:#ffffff75;border-top:1px solid #ffffff1f;justify-content:space-between;gap:16px;padding-top:24px;font-size:12px;display:flex}.footer-bottom a:hover{color:var(--teal-bright)}.interior{background:var(--white)}.interior-hero{background:#eef4ea;grid-template-columns:1fr 1fr;min-height:312px;display:grid}.interior-heading{flex-direction:column;justify-content:center;padding:60px clamp(20px,4vw,52px);display:flex}.breadcrumbs{color:#61745c;margin-bottom:40px;font-size:12px}.breadcrumbs ol{flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:center;min-width:0;display:flex}.breadcrumbs li+li:before{content:"/";color:#879384;margin-right:8px}.breadcrumbs a{color:#2a5c1c;text-underline-offset:4px;text-decoration:underline}.breadcrumbs li[aria-current=page]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.interior-heading h1{letter-spacing:-.052em;margin:0;font-size:clamp(27px,2.7vw,38px);line-height:1.02}.interior-heading>p:last-child{color:#61745c;max-width:670px;margin:32px 0 0;font-size:16px;line-height:1.6}.interior-image{background-position:50%;background-size:cover;min-height:312px}.interior-body{grid-template-columns:.45fr 1.55fr;gap:3.2vw;padding:60px clamp(20px,4vw,52px);display:grid}.side-index{align-self:start;position:sticky;top:35px}.side-index span{color:var(--teal);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800;display:block}.side-index p{margin:12px 0 0;font-size:16px;font-weight:700;line-height:1.1}.content-list{border-top:1px solid var(--line)}.content-list article{border-bottom:1px solid var(--line);grid-template-columns:55px 1fr;gap:16px;padding:48px 0 48px;display:grid}.content-list article>span{color:var(--teal);margin-top:8px;font-family:ui-monospace,monospace;font-size:12px}.content-list h2{letter-spacing:-.035em;margin:0 0 16px;font-size:clamp(18px,1.6vw,23px)}.content-list p{color:#61745c;max-width:800px;margin:0;font-size:16px;line-height:1.6}.content-bullets{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;max-width:820px;margin:24px 0 0;padding:0;list-style:none;display:grid}.content-bullets li{color:#4d6049;background:#eef4ea;padding:12px 12px 12px 32px;line-height:1.45;position:relative}.content-bullets li:before{content:"";border:2px solid var(--teal);width:7px;height:7px;position:absolute;top:20px;left:15px;transform:rotate(45deg)}.section-link{color:#2a5c1c;border-bottom:1px solid #2a5c1c;align-items:center;gap:16px;margin-top:24px;padding-bottom:8px;font-size:14px;font-weight:800;display:inline-flex}.contact-email{color:#2a5c1c;align-items:center;gap:14px;font-size:clamp(15px,1.3vw,18px);font-weight:700;display:inline-flex}.contact-panel{background:var(--navy);color:#fff}.contact-panel .eyebrow{justify-content:center}.contact-panel>p:not(.eyebrow){color:#ffffffa6;max-width:610px;font-size:16px;line-height:1.6}.contact-panel .button{margin-top:32px}.faq-section{background:#eef4ea;padding:60px clamp(20px,4vw,52px)}.faq-layout{grid-template-columns:.85fr 1.15fr;align-items:start;gap:3.2vw;display:grid}.faq-layout h2{letter-spacing:-.046em;margin:0;font-size:clamp(20px,1.9vw,26px);line-height:1.04}.faq-intro{color:#61745c;max-width:500px;font-size:16px;line-height:1.6}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-size:16px;font-weight:700;line-height:1.4;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{color:#2a5c1c;border:1px solid #879384;flex:none;place-items:center;width:28px;height:28px;transition:transform .18s;display:grid}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details>p{color:#61745c;margin:-4px 48px 24px 0;line-height:1.6}.related-section{background:var(--navy);color:#fff;padding:60px clamp(20px,4vw,52px)}.related-section>h2{letter-spacing:-.045em;margin:0 0 20px;font-size:clamp(21px,2vw,29px)}.related-grid{border-top:1px solid #ffffff2e;border-left:1px solid #ffffff2e;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.related-grid a{border-bottom:1px solid #ffffff2e;border-right:1px solid #ffffff2e;flex-direction:column;min-height:152px;padding:32px;display:flex}.related-grid a>span:first-child{color:var(--teal-bright);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:800}.related-grid p{color:#ffffff9e;line-height:1.65}.related-grid .arrow{color:var(--teal-bright);align-self:flex-start;margin-top:auto}.not-found{background:#eef4ea;flex-direction:column;justify-content:center;min-height:380px;padding:60px clamp(20px,4vw,52px);display:flex}.not-found h1{letter-spacing:-.052em;max-width:900px;margin:0;font-size:clamp(27px,2.9vw,39px);line-height:.98}.not-found>p:not(.eyebrow){color:#61745c;max-width:680px;margin:32px 0 40px;font-size:16px;line-height:1.6}.not-found>div{flex-wrap:wrap;gap:16px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes heroDrift{0%{transform:scale(1)}to{transform:scale(1.04)}}@media (width<=1050px){.desktop-nav{display:none}.mobile-nav{display:block}.mobile-nav summary{cursor:pointer;justify-content:flex-end;align-items:center;gap:8px;min-width:76px;min-height:44px;list-style:none;display:flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav .menu-label{color:#ffffffd9;letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800}.mobile-nav .menu-icon{gap:4px;width:24px;display:grid}.mobile-nav .menu-icon i{background:#fff;width:24px;height:2px;display:block}.mobile-nav nav{background:#0a1912;flex-direction:column;width:220px;padding:16px;display:flex;position:absolute;top:56px;right:0;box-shadow:0 20px 50px #0000004d}.mobile-nav nav a{border-bottom:1px solid #ffffff1a;padding:12px}.mobile-nav nav a[aria-current=page]{color:var(--teal-bright)}.mobile-nav .mobile-contact{border:1px solid var(--teal);color:var(--teal-bright);text-align:center;margin-top:8px}.sector-grid{grid-template-columns:repeat(2,1fr)}.sector-card:nth-child(2){border-right:0}.sector-card:nth-child(-n+2){border-bottom:1px solid #fff3}.lifecycle-bar div{flex-direction:column;align-items:flex-start;gap:4px}.proof-section{grid-template-columns:1fr}.proof-image{background-image:linear-gradient(0deg, var(--navy) 0%, transparent 40%), url(../images/substation-construction.jpg);min-height:312px}.process-grid{grid-template-columns:repeat(2,1fr)}.footer-top{flex-direction:column}}@media (width<=760px){.site-header{height:52px}.brand{width:220px;height:62px}.hero{min-height:800px}.hero-content{width:auto;margin-top:96px;margin-right:24px}.hero h1{font-size:clamp(27px,6.6vw,35px)}.hero-shade{background:linear-gradient(90deg,#07140df5,#07140d94),linear-gradient(#0000 45%,#07140dcc)}.hero-actions{flex-direction:column;align-items:stretch}.lifecycle-bar{grid-template-columns:repeat(2,1fr);padding:8px 24px}.lifecycle-bar div{border-bottom:1px solid #b7d05333;padding:12px}.lifecycle-bar span{font-size:16px}.lifecycle-bar strong{font-size:16px}.section{padding-top:48px;padding-bottom:48px}.section-label{margin-bottom:24px}.intro-grid,.capability-grid,.interior-hero,.interior-body,.process-heading,.faq-layout{grid-template-columns:1fr}.intro-grid{gap:32px}.sector-heading{flex-direction:column;align-items:flex-start}.sector-grid{grid-template-columns:1fr}.sector-card{border-bottom:1px solid #fff3;border-right:0;min-height:224px}.sticky-copy{margin-bottom:24px;position:static}.process-heading{gap:32px}.process-heading .eyebrow{grid-column:1;margin-bottom:0}.process-grid{grid-template-columns:1fr}.process-grid article{min-height:160px}.process-grid h3{margin-top:64px}.proof-copy{padding:32px 24px 96px}.footer-top,.footer-bottom{flex-direction:column}.footer-links{grid-template-columns:1fr 1fr;width:100%}.interior-heading{padding-top:48px;padding-bottom:48px}.interior-heading h1{font-size:clamp(24px,6vw,31px)}.interior-image{min-height:224px}.interior-body{gap:56px;padding-top:80px}.side-index{position:static}.home-cta,.page-cta,.contact-panel{padding:60px 20px}.content-bullets,.related-grid{grid-template-columns:1fr}.faq-section,.related-section{padding-top:48px;padding-bottom:48px}.faq-layout{gap:48px}.related-grid a{min-height:160px}.contact-email{overflow-wrap:anywhere;word-break:break-word}}@media (width<=480px){.footer-links{grid-template-columns:1fr}.content-list article{grid-template-columns:38px 1fr;gap:12px}.faq-list summary{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.legacy-archive{background:#eef4ea;min-height:70vh;padding:72px clamp(20px,4vw,52px) 60px}.legacy-heading{max-width:900px}.legacy-heading h1{letter-spacing:-.05em;margin:16px 0 24px;font-size:clamp(26px,2.8vw,38px);line-height:1}.legacy-heading>p:last-child{color:#61745c;max-width:800px;font-size:16px;line-height:1.6}.archive-notice{border-left:4px solid var(--teal);color:#3d5138;background:#e8f0e4;max-width:900px;margin:40px 0 64px;padding:20px 24px}.archive-notice p{margin:8px 0 0;line-height:1.65}.legacy-groups{gap:56px;display:grid}.legacy-groups section{border-top:1px solid var(--line);padding-top:24px}.legacy-groups h2{margin:0 0 20px;font-size:clamp(18px,1.6vw,23px)}.legacy-groups section>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.legacy-groups a{background:#fff;border:1px solid #dbe3d4;flex-direction:column;min-height:110px;padding:20px;font-size:16px;font-weight:700;display:flex}.legacy-groups a span{color:#2a5c1c;text-transform:uppercase;letter-spacing:.08em;margin-top:auto;padding-top:20px;font-size:12px}.legacy-document{max-width:none}.legacy-document .breadcrumbs{margin-bottom:40px}.legacy-copy{max-width:880px;padding:8px 0 32px}.legacy-copy h2{letter-spacing:-.035em;margin:56px 0 16px;font-size:clamp(18px,1.7vw,24px)}.legacy-copy h3{margin:40px 0 12px;font-size:16px}.legacy-copy p,.legacy-copy blockquote{color:#4d6049;margin:0 0 20px;font-size:16px;line-height:1.65}.legacy-copy blockquote{border-left:3px solid var(--teal);margin-left:0;padding-left:24px}.legacy-list-item{padding-left:24px;position:relative}.legacy-list-item:before{content:"";border:2px solid var(--teal);width:7px;height:7px;position:absolute;top:.75em;left:2px;transform:rotate(45deg)}@media (width<=900px){.legacy-groups section>div{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.legacy-archive{padding-top:120px}.legacy-groups section>div{grid-template-columns:1fr}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}

/* ==========================================================================
   WordPress core compatibility
   Appended to the compiled design stylesheet. Keeps core markup (captions,
   alignment, screen-reader text, admin bar, comments) visually consistent
   with the TransGlobe Power design system without altering any design rule
   above this comment. Re-syncing the design build = replace everything above.
   ========================================================================== */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-0px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;clip-path:none;color:#0a1912;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:16px 24px 12px;text-decoration:none;top:5px;width:auto;z-index:100000}
.alignleft{float:left;margin:0 1.5rem 1.5rem 0}
.alignright{float:right;margin:0 0 1.5rem 1.5rem}
.aligncenter{clear:both;display:block;margin-left:auto;margin-right:auto}
.alignwide{width:min(100%,1400px);margin-left:auto;margin-right:auto}
.alignfull{width:100%;max-width:none}
.wp-caption{max-width:100%}
.wp-caption-text,.wp-element-caption{font-size:.8125rem;opacity:.72;margin-top:.5rem}
.wp-block-image img{max-width:100%;height:auto}
img{max-width:100%;height:auto}
body.admin-bar .site-header{top:32px}
@media screen and (max-width:782px){body.admin-bar .site-header{top:46px}}
.tgp-pagination{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:3rem}
.tgp-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;height:2.75rem;padding:0 .75rem;border:1px solid rgba(4,17,24,.16);border-radius:2px;text-decoration:none;font-size:.875rem;letter-spacing:.02em;transition:border-color .18s ease,background .18s ease}
.tgp-pagination .page-numbers:hover{border-color:rgba(4,17,24,.44)}
.tgp-pagination .page-numbers.current{background:#0a1912;color:#fff;border-color:#0a1912}

/* ==========================================================================
   Index numbers removed
   --------------------------------------------------------------------------
   The 01/02/03 markers are no longer rendered (see tgp_show_index_numbers()
   in inc/blocks.php). These rules reclaim the columns and vertical space the
   markers used to occupy, so nothing is left holding an empty gap.

   Re-enabling the numbers via the tgp_show_index_numbers filter requires
   deleting this block too — the two belong together.
   ========================================================================== */

/* Article stacks: the index column is gone, so the copy runs full width. */
.content-list article { grid-template-columns: 1fr; gap:0 }

/* Capability rows: heading column plus the trailing arrow. */
.capability-list > a { grid-template-columns: 1fr 28px; gap:14px }

/* Process cards kept their tall proportion by pushing the heading down past
   the index. With no index, anchor the content to the bottom instead so the
   cards keep their shape rather than collapsing to the top. */
.process-grid article { display: flex; flex-direction: column; justify-content: flex-end }
.process-grid h3 { margin-top:0 }

/* Sector cards: same reasoning — content sits at the foot of the card. */
.sector-card { justify-content: flex-end }

@media (width <= 480px) {
	.content-list article { grid-template-columns: 1fr; gap:0 }
	.capability-list > a { grid-template-columns: 1fr 24px; gap:12px }
}

/* ==========================================================================
   Footer legal row
   Sits between the link columns and the copyright line. Uses the same muted
   treatment as .footer-bottom so it reads as fine print, not navigation.
   ========================================================================== */
.footer-legal {
	display: flex;
	flex-wrap: wrap;
	gap:8px 24px;
	padding:20px 0 0;
	border-top: 1px solid #ffffff1f;
}
.footer-legal a {
	color: #ffffff8f;
	font-size:12px;
	letter-spacing: .04em;
	text-underline-offset: 4px;
}
.footer-legal a:hover,
.footer-legal a:focus-visible { color: var(--teal-bright); text-decoration: underline }
.footer-legal + .footer-bottom { border-top: 0; padding-top:20px }

@media (width <= 760px) {
	.footer-legal { gap:8px 20px }
}

/* ==========================================================================
   Brand lockup
   --------------------------------------------------------------------------
   The original design wrapped the logo in a white plate because the supplied
   artwork had a baked-in white background. The lockup is now transparent with
   a white wordmark, so the plate has to go — leaving it in place renders white
   type on white and hides half the logo.
   ========================================================================== */
.brand { background: none; border-radius: 0; overflow: visible; height: auto }
.brand img { width: 100%; height: auto; display: block }
.site-footer .brand { background: none }

/* ==========================================================================
   Enquiry form
   Two-column on desktop, single column under 760px. Inputs are 48px so they
   clear the 44px touch-target minimum, and focus states reuse the global
   :focus-visible ring rather than inventing a second treatment.
   ========================================================================== */
.contact-form-section {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap:3.2vw;
	align-items: start;
	padding:120px clamp(24px, 6.4vw, 96px);
	background: var(--mist);
}
.contact-form-intro h2 {
	letter-spacing: -.045em;
	margin:0 0 20px;
	font-size: clamp(20px,1.9vw,26px);
	line-height: 1.06;
}
.contact-form-intro p:not(.eyebrow) { color: #4d6049; margin:0; font-size:16px; line-height: 1.75 }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap:14px 24px }
.form-field { margin:0; display: flex; flex-direction: column; gap:8px }
.form-field-wide { grid-column: 1 / -1 }
.form-field label { font-size:14px; font-weight:700; letter-spacing: .04em; text-transform: uppercase; color: #3d5138 }
.form-field input,
.form-field select,
.form-field textarea {
	width: 100%;
	min-height: 48px;
	padding:12px 12px;
	background: #fff;
	border: 1px solid #c3d2bd;
	border-radius: 2px;
	font-size:16px;
	color: var(--ink);
	transition: border-color .18s ease;
}
.form-field textarea { min-height: 150px; resize: vertical; line-height: 1.6 }
.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover { border-color: #879384 }
.form-help { font-size:14px; line-height: 1.5; color: #61745c }

.form-status:empty { display: none }
.form-message { margin:0 0 20px; padding:16px 16px; border-left: 4px solid; font-size:16px; line-height: 1.6 }
.form-message-success { background: #e8f0e4; border-color: var(--teal); color: #2a5c1c }
.form-message-error { background: #fdecec; border-color: #a32d2d; color: #7a1f1f }

.form-consent { margin:20px 0 0; font-size:14px; line-height: 1.6; color: #61745c }
.form-consent a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px }
.form-actions { margin:24px 0 0 }
.form-actions .button { border: 0; cursor: pointer; font-family: inherit }

@media (width <= 900px) {
	.contact-form-section { grid-template-columns: 1fr; gap:48px }
}
@media (width <= 760px) {
	.contact-form-section { padding-top:80px; padding-bottom:80px }
	.form-grid { grid-template-columns: 1fr }
}

/* Form fieldsets — grouping the intake questions so a long form reads as
   three short ones rather than one wall of inputs. */
.form-fieldset { border: 0; margin: 0 0 32px; padding: 0 }
.form-fieldset legend {
	padding: 0 0 16px;
	font-size: 12px; font-weight: 800; letter-spacing: .18em;
	text-transform: uppercase; color: var(--teal);
}
.form-legend-help { margin: -8px 0 16px; font-size: 14px; color: #61745c }
.form-intro-list { margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 8px }
.form-intro-list li { position: relative; padding-left: 24px; font-size: 14px; line-height: 1.6; color: #4d6049 }
.form-intro-list li:before {
	content: ""; position: absolute; left: 2px; top: .6em;
	width: 7px; height: 7px; border: 2px solid var(--teal); transform: rotate(45deg);
}
.form-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px }
.form-check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 16px; line-height: 1.5 }
.form-check input { width: 20px; height: 20px; min-height: 20px; margin: 2px 0 0; flex: none; accent-color: #2a5c1c }
@media (width <= 760px) { .form-checks { grid-template-columns: 1fr } }

/* ==========================================================================
   Key figures
   Large numerals, hairline dividers, generous air. The restraint is what
   reads as scale — four specific numbers carry more weight than a paragraph
   of adjectives, and the grid deliberately refuses to decorate them.
   ========================================================================== */
.figures-section { padding: 60px clamp(20px, 4vw, 52px); background: var(--mist) }
.figures-section > h2 {
	letter-spacing: -.045em; margin: 0 0 56px;
	font-size: clamp(20px,1.9vw,26px); line-height: 1.06; max-width: 900px;
}
.figures-dark { background: var(--navy); color: #fff }

.figures-grid {
	display: grid; grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--line);
}
.figures-dark .figures-grid { border-top-color: #ffffff2b }

.figure { padding: 40px 32px 40px 0; border-right: 1px solid var(--line) }
.figures-dark .figure { border-right-color: #ffffff2b }
.figure:last-child { border-right: 0 }

.figure-value {
	display: flex; align-items: baseline; gap: 8px;
	margin: 0 0 16px; letter-spacing: -.05em; line-height: .95;
}
.figure-value strong { font-size: clamp(25px,2.4vw,34px); font-weight: 700 }
.figure-unit { font-size: clamp(13px,1.2vw,17px); font-weight: 400; color: var(--teal) }
.figures-dark .figure-unit { color: var(--teal-bright) }

.figure-label {
	margin: 0 0 8px; font-size: 14px; font-weight: 800;
	letter-spacing: .12em; text-transform: uppercase;
}
.figure-detail { margin: 0; font-size: 14px; line-height: 1.6; color: #61745c }
.figures-dark .figure-detail { color: #ffffffa8 }

.figures-note {
	margin: 40px 0 0; font-size: 14px; line-height: 1.6;
	color: #61745c; max-width: 760px;
}
.figures-dark .figures-note { color: #ffffff8f }

@media (width <= 900px) { .figures-grid { grid-template-columns: repeat(2, 1fr) } 
	.figure:nth-child(2n) { border-right: 0 }
	.figure:nth-child(-n+2) { border-bottom: 1px solid var(--line) }
	.figures-dark .figure:nth-child(-n+2) { border-bottom-color: #ffffff2b } }
@media (width <= 560px) { .figures-grid { grid-template-columns: 1fr }
	.figure { border-right: 0; border-bottom: 1px solid var(--line); padding-right: 0 }
	.figures-dark .figure { border-bottom-color: #ffffff2b }
	.figure:last-child { border-bottom: 0 }
	.figures-section { padding-top: 48px; padding-bottom: 48px } }

/* ==========================================================================
   Counting figures — CSS only
   --------------------------------------------------------------------------
   A registered custom property can be animated, and counter() can render it.
   Together that gives a count-up with no JavaScript at all: no observer, no
   bundle, no layout shift. animation-timeline: view() starts it when the band
   scrolls into view where supported, and falls back to running on load.

   The final number is set inline on the element, so a browser without
   @property support shows the correct figure immediately rather than a zero.
   ========================================================================== */
@property --tgp-count {
	syntax: "<integer>";
	initial-value: 0;
	inherits: false;
}

.figure-count {
	counter-reset: tgpnum var(--tgp-count);
	position: relative;
	visibility: hidden;          /* hides the literal text, keeps its width */
}
.figure-count::after {
	content: counter(tgpnum);
	visibility: visible;
	position: absolute;
	inset: 0 auto auto 0;
}

@keyframes tgp-count-up { from { --tgp-count: 0 } }

.figure-count {
	animation: tgp-count-up 1.4s cubic-bezier(.16, 1, .3, 1) both;
	font-variant-numeric: tabular-nums;
}

@supports (animation-timeline: view()) {
	.figure-count {
		animation-timeline: view();
		animation-range: entry 10% cover 34%;
		animation-fill-mode: both;
	}
}

/* Motion is decoration here; the number is the content. */
@media (prefers-reduced-motion: reduce) {
	.figure-count { animation: none }
}
