:root{--navy:#111e2d;--ink:#172534;--muted:#536271;--accent:#2457d8;--gold:#2457d8;--line:#d8e0e7;--white:#fff;--pale:#f3f6f9;--ice:#b9d8ff;--measure:1440px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--white);color:var(--ink);font:1rem/1.7 Arial,Helvetica,sans-serif}img{max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit}p{margin:0 0 1.25rem}h1,h2,h3{margin:0;font-weight:400;line-height:1.16}h1,h2{letter-spacing:-.045em}h1{font-size:clamp(3.1rem,5.5vw,5.8rem)}h2{font-size:clamp(2.15rem,3.6vw,3.7rem)}h3{font-size:1.55rem;letter-spacing:-.02em}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a:hover{text-decoration-color:var(--accent)}.skip{position:fixed;top:-80px;left:20px;padding:12px 20px;z-index:100;background:white}.skip:focus{top:10px}.section{padding:clamp(56px,6.6vw,100px) max(6%,calc((100vw - var(--measure))/2))}.eyebrow{display:block;font-size:.75rem;line-height:1.5;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin:0 0 1.5rem;color:var(--accent)}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:3rem}.section-top>p{max-width:350px;font-size:1rem;color:var(--muted);margin:0}.section-top>div{min-width:0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 24px;border:1px solid transparent;font-size:.9375rem;font-weight:700;line-height:1.45;transition:background .18s,color .18s;text-align:center}.dark{background:var(--accent);color:white}.dark:hover{background:#163eac}.light{background:white;color:var(--navy)}.light:hover{background:var(--ice)}.text-link{display:inline-block;padding:7px 0;font-size:.9375rem;font-weight:700;border-bottom:1px solid currentColor}.text-link:hover{color:var(--accent)}.work-note{font-size:.8125rem;line-height:1.65;color:var(--muted);margin:1.75rem 0 0;max-width:1040px}
/* One navigation system across the home and service pages. */
header{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:clamp(20px,2.1vw,38px);height:90px;padding:0 max(4%,calc((100vw - 1520px)/2));background:white;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;flex-shrink:0}.brand-logo{display:block;width:218px;height:auto}.brandmark{display:none}header nav{display:flex;align-items:center;gap:clamp(18px,1.8vw,28px);margin-left:auto;white-space:nowrap;font-size:.875rem}header nav a{padding:8px 0;border-bottom:2px solid transparent}header nav a:hover,header nav a[aria-current=page]{color:var(--accent);border-color:var(--accent)}.header-contact{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 17px;background:var(--navy);color:white;font-size:.875rem;font-weight:700;white-space:nowrap}.header-contact:hover{background:var(--accent)}.menu{display:none;min-height:44px;background:none;border:1px solid var(--line);padding:8px 14px;font-size:.875rem;cursor:pointer}
/* Strong typography and original photography establish the opening. */
.hero{display:grid;grid-template-columns:1.05fr 1fr;background:var(--navy);color:white;min-height:620px}.hero-copy{padding:66px 9% 30px 11.4%;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.hero .eyebrow{color:var(--ice);margin-bottom:2rem}.hero h1{margin-bottom:1.75rem}.hero h1 em{font-family:inherit;font-style:normal;font-weight:400;color:var(--ice)}.lead{color:#d7e0eb;font-size:1.125rem;line-height:1.7;max-width:540px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:.7rem;margin-bottom:2.7rem}.hero-actions .text-link{color:white}.hero-actions .text-link:hover{color:var(--ice)}.hero-bottom{width:100%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;margin-top:auto;border-top:1px solid #405064;padding-top:19px;font-size:.75rem;letter-spacing:.075em;color:#c3cfdd}.hero-visual{position:relative;min-width:0;overflow:hidden;background:#38536d}.hero-visual>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:51% center}.image-caption{position:absolute;bottom:24px;left:24px;right:24px;max-width:max-content;background:rgba(17,30,45,.88);padding:9px 13px;color:white;font-size:.8125rem;line-height:1.5}.intro-grid,.about-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:8%}.intro-grid p,.about-grid p{color:var(--muted);font-size:1.0625rem}.intro-link{margin-top:1.5rem}.facts{margin-top:3rem;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-top:1.7rem}.facts strong{display:block;color:var(--accent);font-size:2.55rem;line-height:1.2;font-weight:400;letter-spacing:-.04em;margin-bottom:10px}.facts span{display:block;font-size:.875rem;color:var(--muted);max-width:210px}.clients{padding-top:34px;padding-bottom:38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.clients .eyebrow{color:var(--muted);margin-bottom:22px}.client-logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px 24px}.client-logo{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px 12px;min-width:0}.client-logo img{width:100%;height:58px;object-fit:contain}.client-logo span{font-size:.75rem;line-height:1.4;color:var(--muted);margin-top:10px;text-align:center}
/* Detail stays available without overwhelming the homepage. */
.expertise{padding-top:44px;background:var(--pale);border-top:1px solid var(--line)}.expertise .section-top{margin-bottom:2rem}.expertise h2{font-size:clamp(1.8rem,2.8vw,2.6rem)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.capability-record>summary,.portfolio-record>summary,.impact-record>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;padding:20px 0;border-top:1px solid #b9c7d5;border-bottom:1px solid #b9c7d5;font-size:1rem;font-weight:700}.record-toggle:after{content:'+';font-size:1.6rem;font-weight:400}.capability-record[open]>summary .record-toggle:after,.portfolio-record[open]>summary .record-toggle:after,.impact-record[open]>summary .record-toggle:after{content:'−'}.services{padding-top:10px}.services details{border-bottom:1px solid var(--line)}.services summary{display:flex;gap:25px;align-items:center;padding:24px 0}.services h3{font-size:1.35rem}.number{font-size:.875rem;color:var(--accent);min-width:25px}.expand{margin-left:auto;font-size:1.75rem;line-height:1}.services details[open] .expand{transform:rotate(45deg)}.service-content{display:grid;grid-template-columns:1fr 1fr;gap:5%;padding:0 50px 30px;color:var(--muted)}.service-content ul{margin:0;padding-left:20px}.service-content li{padding-bottom:5px}
/* Selected work: concise case studies, a complete expandable portfolio. */
.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.project{display:flex;flex-direction:column;min-width:0}.project-photo{width:100%;height:auto;aspect-ratio:1.55;object-fit:cover;margin-bottom:25px}.project-label{display:flex;justify-content:space-between;gap:15px;font-size:.75rem;letter-spacing:.09em;color:var(--accent);font-weight:700;margin-bottom:17px}.project h3{font-size:clamp(1.6rem,2.1vw,2rem);line-height:1.2;margin-bottom:20px}.project>p{color:var(--muted);font-size:1rem}.project-stat{display:flex;align-items:center;gap:16px;padding:22px 0;margin-top:auto;border-top:1px solid var(--line)}.project-stat strong{font-size:2rem;font-weight:400;letter-spacing:-.03em;color:var(--accent);white-space:nowrap}.project-stat span{font-size:.875rem;line-height:1.5;color:var(--muted)}.project details{font-size:.9375rem}.project summary,.portfolio-body summary,.team summary{padding:15px 0;border-top:1px solid var(--line);font-size:.875rem;font-weight:700}.project summary:after,.portfolio-body summary:after,.team summary:after{content:'+';float:right;margin-left:12px}.project details[open] summary:after,.portfolio-body details[open] summary:after,.team details[open] summary:after{content:'−'}.project details p,.portfolio-body details p,.team details p{color:var(--muted);margin-top:16px}.tags{font-size:.8125rem}.portfolio-record{margin-top:42px}.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;margin-top:32px}.portfolio-card{display:flex;flex-direction:column;background:white;border:1px solid var(--line);min-width:0}.portfolio-card>img{width:100%;height:auto;aspect-ratio:1.9;object-fit:cover}.portfolio-body{padding:30px;flex:1}.portfolio-body h3{font-size:1.65rem;margin-bottom:16px}.portfolio-body p{color:var(--muted)}.portfolio-body .client-label{font-size:.875rem;padding-bottom:15px;border-bottom:1px solid var(--line)}.result-line{color:var(--accent);font-size:1rem;font-weight:700;margin:20px 0}.source-link{text-decoration:underline;text-underline-offset:3px;font-size:.875rem}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.portfolio-card>.project-gallery{padding:0 25px 25px;margin-top:auto}.gallery-item{display:block;min-width:0;background:var(--pale);border:1px solid var(--line)}.gallery-item:hover{border-color:var(--accent)}.gallery-item img{display:block;width:100%;height:140px;object-fit:contain;background:#edf1f5}.gallery-item span{display:block;font-size:.8125rem;line-height:1.45;padding:10px 12px;color:var(--muted)}.project-gallery:has(.gallery-item:only-child){grid-template-columns:1fr}.project-gallery:has(.gallery-item:only-child) img{height:160px}
/* Renewable energy is a distinct sector story within the same visual system. */
.renewable{position:relative;background:var(--pale);border-top:1px solid var(--line)}.anchor-alias{position:absolute;top:0;scroll-margin-top:110px}.energy-lead{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;align-items:center}.energy-lead figure{margin:0}.energy-lead img{display:block;width:100%;aspect-ratio:1.45;object-fit:cover}.energy-lead figcaption{font-size:.8125rem;margin-top:10px;color:var(--muted)}.energy-intro h3{font-size:clamp(1.65rem,2.35vw,2.2rem);margin-bottom:22px;line-height:1.2}.energy-intro p{color:var(--muted)}.energy-intro .button{margin-top:5px}.energy-capabilities{display:grid;grid-template-columns:1fr 1fr;gap:5%;padding:36px 0;margin-top:40px;border-top:1px solid #b9c7d5;border-bottom:1px solid #b9c7d5}.energy-capability-photo{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;margin-bottom:26px}.energy-capabilities h3{font-size:1.6rem;margin-bottom:20px}.energy-capabilities p,.energy-capabilities li{color:var(--muted)}.energy-capabilities ul{margin:0;padding-left:20px}.energy-capabilities li{padding:3px 0}.energy-cases{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:36px}.energy-cases>article{background:white;border:1px solid var(--line);padding:0;min-width:0}.energy-cases h3{font-size:1.75rem;margin-bottom:17px}.energy-cases p{color:var(--muted)}.energy-cases .eyebrow{color:var(--accent)}.energy-cases>article>div{padding:28px 30px}.energy-cases img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}.case-result{border-top:1px solid var(--line);padding-top:26px;margin-top:30px}.case-result strong{display:block;font-size:3.2rem;font-weight:400;line-height:1.2;color:var(--accent);letter-spacing:-.04em}.case-result span{display:block;font-size:.9375rem;color:var(--muted);margin-top:10px;max-width:310px}.case-source{font-size:.8125rem;line-height:1.6;margin-bottom:0}.resource-case{position:relative;margin-top:36px;display:grid;grid-template-columns:1fr 1fr;column-gap:5%;align-items:start}.resource-case>img{grid-row:1/5;width:100%;height:100%;min-height:260px;max-height:420px;object-fit:cover}.resource-case h3{font-size:1.55rem;margin:0 0 18px}.resource-case p{color:var(--muted);margin:0}.resource-case .project-gallery{margin-top:18px}.resource-case .project-gallery img{height:90px}
/* Evidence-led impact section. */
.impact{background:var(--navy);color:white}.impact .eyebrow{color:var(--ice)}.impact .section-top>p,.impact-intro{color:#c4d0de}.impact-intro{max-width:840px;font-size:1.0625rem;margin-bottom:34px}.impact-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid #415167;border-left:1px solid #415167}.impact-highlights article{padding:28px;display:flex;flex-direction:column;min-width:0;border-right:1px solid #415167;border-bottom:1px solid #415167}.impact-highlights article:nth-child(-n+2){grid-column:span 2;padding:34px}.impact-highlights strong{font-size:clamp(2rem,3.3vw,3rem);font-weight:400;line-height:1.1;letter-spacing:-.035em;color:var(--ice);margin-bottom:18px;overflow-wrap:anywhere}.impact-highlights article:nth-child(-n+2) strong{font-size:clamp(3rem,5vw,4.5rem)}.impact-highlights h3{font-size:1.125rem;line-height:1.4;letter-spacing:0}.impact-highlights p{color:#d2dce7;font-size:.9375rem;line-height:1.65;margin:14px 0 22px}.impact-highlights .metric-source{font-size:.8125rem;line-height:1.6;margin:auto 0 0;padding-top:16px;border-top:1px solid #415167;color:#b8c9db}.impact .work-note{color:#bfcbda}.impact-summary-note{margin:24px 0 30px}.impact-record>summary{border-color:#526176;color:white}.impact-record-content{padding:28px 0 10px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #415167}.metric-grid article{min-width:0;padding:26px 24px 26px 0;border-bottom:1px solid #415167}.metric-grid strong{display:block;font-size:2.15rem;line-height:1.2;letter-spacing:-.025em;font-weight:400;color:var(--ice);margin-bottom:10px;overflow-wrap:anywhere}.metric-grid h3{font-size:1rem;line-height:1.4;letter-spacing:0}.metric-grid p{color:#bfcbda;font-size:.875rem;line-height:1.6;margin:12px 0 0;max-width:260px}.impact-record-content>.metric-grid{margin-bottom:35px}.fact-group{margin-top:36px}.fact-group-title{font-size:1.35rem;margin-bottom:20px}.portfolio-heading{margin:50px 0 32px}.fact-library h2{font-size:2rem}
/* The people and delivery model behind the work. */
.approach{display:grid;grid-template-columns:1fr 1fr;gap:9%;background:white}.approach-intro{color:var(--muted);font-size:1.0625rem;max-width:460px;margin-top:25px}.steps article{border-top:1px solid var(--line);padding:22px 0}.steps article:first-child{padding-top:0;border-top:0}.steps span{color:var(--accent);font-size:.75rem;letter-spacing:.08em;font-weight:700}.steps h3{font-size:1.4rem;margin:10px 0}.steps p{font-size:1rem;color:var(--muted);margin:0}.about{background:var(--pale)}.location-photo{margin:0 0 44px}.location-photo img{display:block;width:100%;height:auto;max-height:310px;object-fit:cover}.location-photo figcaption{font-size:.8125rem;color:var(--muted);margin-top:10px}.about-meta{display:flex;flex-wrap:wrap;gap:15px 25px;border-top:1px solid var(--line);padding-top:20px;font-size:.875rem;color:var(--muted)}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.team-grid>article{min-width:0}.team-grid img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:var(--pale);margin-bottom:25px}.team-grid h3{font-size:1.8rem;margin-bottom:9px}.team-grid p{font-size:1rem;color:var(--muted)}.team-grid .team-role{font-size:.75rem;line-height:1.6;letter-spacing:.06em;text-transform:uppercase;margin-bottom:20px}.team-grid .specialty{font-size:1.125rem;line-height:1.5;color:var(--ink)}.contact{background:var(--accent);color:white}.contact .eyebrow{color:#e0eaff}.contact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:8%}.contact p:not(.eyebrow){max-width:470px;font-size:1.0625rem;color:white}.contact .button{background:white;color:#173c91}.contact .button:hover{background:#e3edff}.email{display:block;font-size:1rem;margin-top:18px}.email:hover{text-decoration:underline}footer{padding:40px max(6%,calc((100vw - var(--measure))/2));display:flex;align-items:center;gap:45px}footer p{font-size:.875rem;color:var(--muted);margin:0}footer>div{display:flex;flex-direction:column;gap:7px;margin-left:auto;font-size:.8125rem;color:var(--muted)}footer a:hover{text-decoration:underline}.photo-dialog{border:0;padding:56px 24px 20px;max-width:min(1100px,94vw);max-height:94dvh;background:white;color:var(--ink)}.photo-dialog::backdrop{background:#0a1424ed}.photo-dialog figure{margin:0}.photo-dialog .photo-full{display:block;max-width:100%;max-height:75dvh;object-fit:contain;margin:auto}.photo-dialog figcaption{font-size:.9375rem;margin-top:12px;text-align:center}.photo-close{position:absolute;right:18px;top:12px;border:1px solid var(--line);background:white;padding:5px 16px;min-height:38px;font-size:.875rem;cursor:pointer}body:has(.photo-dialog[open]){overflow:hidden}
@media(min-width:1700px){.hero-copy{padding-left:max(11.4%,calc((100vw - 1440px)/2))}.hero{min-height:680px}}
@media(max-width:1200px){header{gap:20px;padding:0 5%}.header-contact{margin-left:auto}.menu{display:block}header nav{display:none;position:absolute;top:90px;left:0;right:0;padding:24px 5%;background:white;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:12px;max-height:calc(100dvh - 90px);overflow:auto}header nav.open{display:flex}.hero{min-height:590px}.hero-copy{padding:52px 8% 26px 10%}.hero h1{font-size:clamp(3rem,5.5vw,4.3rem)}.hero-bottom{font-size:.75rem}.projects{gap:24px}.project-stat{align-items:flex-start;flex-direction:column;gap:10px}.project-stat span br{display:none}.impact-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}.impact-highlights article:nth-child(-n+2){grid-column:span 1}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.resource-case>img{max-height:500px}}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-copy{padding:48px 6% 28px}.hero h1{font-size:clamp(3.1rem,7vw,4.6rem)}.hero .lead{max-width:640px}.hero-visual{height:270px}.hero-visual>img{object-position:center 48%}.hero-bottom{margin-top:12px}.hero-actions{margin-bottom:20px}.intro-grid,.about-grid{gap:5%}.client-logos{grid-template-columns:repeat(4,minmax(0,1fr))}.projects{grid-template-columns:1fr;gap:35px}.project{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;align-items:start;border-top:1px solid var(--line);padding-top:30px}.project-photo{grid-column:1;grid-row:1/5;height:100%;max-height:330px;aspect-ratio:auto}.project>*:not(.project-photo){grid-column:2}.project .project-stat{flex-direction:row;align-items:center}.project>.project-gallery{grid-column:1/-1;margin-top:15px;grid-template-columns:repeat(3,minmax(0,1fr))}.project>.project-gallery:has(.gallery-item:only-child){grid-template-columns:1fr}.project>.project-gallery:has(.gallery-item:only-child) img{height:120px}.portfolio-grid{gap:24px}.portfolio-body{padding:24px}.section-top{gap:30px}.section-top>p{max-width:260px}.energy-lead{grid-template-columns:1fr;gap:28px}.energy-lead img{aspect-ratio:1.9}.energy-intro{max-width:700px}.energy-capabilities{gap:30px}.team-grid{gap:23px}.team-grid h3{font-size:1.5rem}.approach{gap:6%}.impact-highlights article{padding:28px}.resource-case{grid-template-columns:1fr 1fr}}
@media(max-width:700px){html{scroll-padding-top:95px}header{height:80px;padding:0 5%;gap:12px}.brand-logo{width:175px}.header-contact{font-size:.8125rem;padding:8px 13px}.menu{font-size:.8125rem;padding:8px 11px}header nav{top:80px;max-height:calc(100dvh - 80px);font-size:1rem}.section{padding:54px 6%}.section-top{display:block;margin-bottom:30px}.section-top>p{margin-top:20px;max-width:500px}.eyebrow{margin-bottom:20px}.hero-copy{padding-top:40px}.hero h1{font-size:clamp(2.9rem,9.5vw,4rem);letter-spacing:-.045em}.lead{font-size:1.0625rem}.hero-visual{height:220px}.hero-bottom{font-size:.75rem}.image-caption{left:16px;bottom:16px;right:16px}.intro-grid,.about-grid,.approach,.contact-grid{grid-template-columns:1fr;gap:26px}.intro-grid p,.about-grid p{font-size:1rem}.facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;gap:24px}.facts strong{font-size:2.25rem}.clients{padding-top:28px;padding-bottom:28px}.client-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.client-logo{padding:12px 6px}.client-logo img{height:48px}.expertise{padding-top:32px}.services summary{gap:15px}.services h3{font-size:1.15rem}.service-content{grid-template-columns:1fr;gap:15px;padding:0 0 25px 40px}.project{display:flex;gap:0;padding-top:0;border-top:0}.project-photo{height:auto;aspect-ratio:1.6;max-height:none}.project h3{font-size:1.75rem}.project>.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-grid{grid-template-columns:1fr}.portfolio-body h3{font-size:1.55rem}.portfolio-card>img{aspect-ratio:1.6}.energy-lead img{aspect-ratio:1.5}.energy-capabilities,.energy-cases{grid-template-columns:1fr;gap:28px}.energy-capabilities article+article{padding-top:28px;border-top:1px solid var(--line)}.energy-cases>article>div{padding:25px}.resource-case{display:block;margin-top:30px}.resource-case>img{height:auto;min-height:0;aspect-ratio:1.7;margin-bottom:24px}.resource-case .project-gallery{max-width:350px}.impact-highlights article,.impact-highlights article:nth-child(-n+2){padding:25px}.impact-highlights h3{font-size:1.125rem}.impact-highlights strong{font-size:2.3rem}.impact-highlights article:nth-child(-n+2) strong{font-size:3rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid strong{font-size:1.85rem}.impact-record>summary,.capability-record>summary,.portfolio-record>summary{font-size:1rem;line-height:1.5}.team-grid{grid-template-columns:1fr;gap:38px}.team-grid img{max-width:420px;margin-bottom:24px}.team-grid h3{font-size:1.9rem}.team-grid .team-role{font-size:.8125rem}.team-grid p{max-width:600px}.contact h2{font-size:2.4rem}.location-photo{margin-bottom:30px}.location-photo img{height:190px;object-fit:cover}footer{flex-wrap:wrap;gap:24px;padding:32px 6%}footer>div{width:100%;margin:0;padding-top:20px;border-top:1px solid var(--line);flex-direction:row;flex-wrap:wrap;gap:12px 22px}footer>div span{flex-basis:100%}.photo-dialog{padding:55px 12px 15px}}
@media(max-width:520px){.impact-highlights{grid-template-columns:1fr}.impact-highlights article:nth-child(-n+2){grid-column:auto}.impact-highlights strong{font-size:2.6rem}.impact-highlights article:nth-child(-n+2) strong{font-size:3.25rem}.impact-highlights .metric-source{margin-top:0}.brand-logo{width:155px}.header-contact{padding:8px 10px}.hero-bottom{display:block}.hero-bottom span{display:block;margin-top:7px}.hero-actions{gap:20px}.hero .eyebrow{font-size:.75rem}}
@media(max-width:380px){.brand-logo{width:130px}header{gap:8px}.header-contact{font-size:.75rem;padding:8px}.menu{padding:8px;font-size:.75rem}.metric-grid{grid-template-columns:1fr}.hero h1{font-size:2.7rem}.client-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Stable image frames and responsive card alignment throughout the site. */
.project-media{position:relative;width:100%;aspect-ratio:3/2;flex:none;overflow:hidden;background:var(--pale);margin:0 0 25px}
.project-media>.project-photo{display:block;position:absolute;inset:0;width:100%;height:100%;max-height:none;margin:0;aspect-ratio:auto;object-fit:cover;object-position:center}
.project:nth-child(2) .project-media{background:#222b30}
.project:nth-child(2) .project-photo{object-fit:contain}
.project>details{flex:none}
.project details .project-gallery{margin:16px 0 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.project details .project-gallery:has(.gallery-item:only-child){grid-template-columns:1fr}
.project details .gallery-item img,.project details .project-gallery:has(.gallery-item:only-child) img{height:150px}
.project>h3{min-height:2.4em}
.project-stat{min-height:106px}
.portfolio-card>img{display:block;flex:none}
.gallery-item{display:flex;flex-direction:column;height:100%}
.gallery-item img{flex:none}
.gallery-item span{flex:1}
.energy-capabilities>article,.energy-intro,.intro-grid>*,.about-grid>*,.contact-grid>*,.approach>*,.resource-case>*{min-width:0}
.eyebrow,.project-label,.steps span,.team-grid .team-role{font-size:.875rem}
.project-label{line-height:1.5;letter-spacing:.05em}
.project-label>span{flex:none}
.team-grid{align-items:start}
.team-grid .team-role{letter-spacing:.035em}
.resource-case{grid-template-rows:auto auto 1fr}
.resource-case>img{grid-row:1/4;height:auto;min-height:0;max-height:none;aspect-ratio:3/2;align-self:start}
.resource-case .project-gallery{align-self:start}
.email,.contact-grid h2{overflow-wrap:break-word}
summary{overflow-wrap:break-word}
@media(min-width:701px) and (max-width:1000px){
 .projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px}
 .project{display:flex;flex-direction:column;align-items:stretch;border:0;padding:0}
 .project .project-stat{flex-direction:column;align-items:flex-start}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
}
@media(max-width:700px){
 .projects{grid-template-columns:1fr;gap:40px}
 .project{display:flex;flex-direction:column;align-items:stretch;border:0;padding:0}
 .project-media{margin-bottom:22px}
 .project>h3{min-height:0}
 .project-stat{min-height:0}
 .project .project-stat{flex-wrap:wrap}
 .project-label{font-size:.8125rem}
 .resource-case>img{aspect-ratio:3/2}
 .energy-capability-photo,.energy-cases img{aspect-ratio:3/2}
 .hero .eyebrow{font-size:.8125rem}
}
@media(max-width:380px){
 .header-contact{display:none}
 .menu{margin-left:auto;min-width:64px;font-size:.875rem}
 header .brand-logo{width:155px;max-width:52vw}
 .hero h1{font-size:clamp(2rem,11.3vw,2.7rem)}
 .button{max-width:100%}
}

/* Keep the expanded primary navigation clear at tablet and laptop widths. */
@media(min-width:1201px) and (max-width:1450px){header{gap:20px;padding:0 5%}.header-contact{margin-left:auto}.menu{display:block}header nav{display:none;position:absolute;top:90px;left:0;right:0;padding:24px 5%;background:white;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:12px;max-height:calc(100dvh - 90px);overflow:auto}header nav.open{display:flex}}
@media(min-width:1451px){header nav{gap:18px}}
