.gallery-page { --ink:#172738; --secondary:#4f6071; --line:#cbd5df; background:#f1f4f7; color:var(--ink); }
.gallery-page .header { background:#fffffff5; border-bottom-color:#d0dae4; }
.gallery-page .active-nav { color:#075bc5; font-weight:650; }
.gallery-intro { padding-top:42px; padding-bottom:36px; }
.gallery-intro .breadcrumb { color:#43566c; margin-bottom:32px; }
.gallery-intro .eyebrow { color:#145bb0; font-size:12px; letter-spacing:1.25px; }
.gallery-heading { padding-left:24px; border-left:5px solid #116bd5; }
.gallery-heading h1 { color:#13263b; font-size:clamp(46px,5vw,68px); font-weight:650; }
.gallery-heading > p { color:#41566a; font-size:16px; line-height:1.7; }
.gallery-toolbar { border-top:1px solid #c8d3dd; padding:23px 2px 26px; }
.gallery-toolbar h2 { color:#20364d; font-size:18px; font-weight:650; }
.gallery-toolbar h2 > span { background:#dfeafa; color:#124e97; border:1px solid #c6d8ef; font-size:13px; min-width:35px; text-align:center; }
.gallery-toolbar > p { color:#4f6071; font-size:14px; }
.project-rows { gap:35px; }
.project-row { --project-accent:#1256ad; --project-dark:#103a79; grid-template-columns:330px minmax(0,1fr); gap:16px; padding:12px; border:1px solid #cfd9e3; background:#fff; border-radius:28px; box-shadow:0 7px 22px #18334d09; }
.project-row.project-tone-green { --project-accent:#146b4d; --project-dark:#164c3d; }
.project-row.project-tone-navy { --project-accent:#2c4771; --project-dark:#20344f; }
.project-row.project-tone-graphite { --project-accent:#334655; --project-dark:#192b39; }
.project-row .project-info { padding:0; overflow:hidden; border:1px solid #cad5e0; background:#fff; border-radius:19px; box-shadow:0 4px 15px #1939560c; }
.project-identity { width:100%; padding:22px 24px 24px; background:linear-gradient(130deg,var(--project-accent),var(--project-dark)); color:#fff; }
.project-info-top { color:#fff; gap:11px; margin-bottom:19px; }
.project-sector-icon { width:43px; height:43px; border:1px solid #ffffff4d; background:#ffffff12; border-radius:11px; display:grid; place-items:center; flex-shrink:0; }
.project-sector-icon svg { width:29px; height:29px; }
.project-info-top > span.project-sector { font-size:12px; font-weight:550; letter-spacing:1px; text-align:left; text-transform:uppercase; flex:1; }
.project-info-top > span.project-number { font-size:13px; color:#ffffffd9; letter-spacing:1px; font-variant-numeric:tabular-nums; }
.project-row .project-info h2 { font-size:29px; font-weight:650; letter-spacing:-.95px; line-height:1.15; color:#fff; }
.project-row .project-location { color:#f2f6ff; font-size:14px; line-height:1.5; margin-top:17px; gap:8px; }
.project-info-body { width:100%; padding:21px 22px 22px; flex:1; display:flex; flex-direction:column; }
.project-row .project-tagline { margin:0; color:#34495d; font-size:16px; line-height:1.6; }
.scope-heading { font-size:12px; color:#5b6d7f; font-weight:650; letter-spacing:1px; margin-top:23px; }
.project-info .scope-tags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:11px 0 22px; }
.gallery-page .scope-tags li { --scope-color:#354b61; --scope-bg:#edf1f5; display:flex; align-items:center; gap:7px; color:var(--scope-color); background:var(--scope-bg); border:1px solid color-mix(in srgb,var(--scope-color) 20%,white); border-radius:9px; padding:10px 9px; font-size:13px; font-weight:550; line-height:1.4; }
.scope-tags li svg { flex-shrink:0; width:19px; height:19px; }
.gallery-page .scope-tags .scope-climate { --scope-color:#1154b0; --scope-bg:#edf4ff; }
.gallery-page .scope-tags .scope-air { --scope-color:#14643e; --scope-bg:#edf8f1; }
.gallery-page .scope-tags .scope-fire { --scope-color:#b02135; --scope-bg:#fff0f2; }
.gallery-page .scope-tags .scope-heating { --scope-color:#a42f43; --scope-bg:#fcf0f3; }
.gallery-page .scope-tags .scope-gas { --scope-color:#805315; --scope-bg:#fff7e7; }
.gallery-page .scope-tags .scope-water { --scope-color:#176b88; --scope-bg:#eaf7fc; }
.project-row .project-detail-link { margin-top:auto; color:white; background:var(--project-accent); border:0; border-radius:11px; padding:12px 15px; min-height:47px; font-size:14px; font-weight:550; transition:background .2s; }
.project-row .project-detail-link:hover { color:#fff; background:var(--project-dark); }
.project-slider { padding:0; }
.slider-window { background:#e6ebf0; border:1px solid #cbd5e0; border-radius:18px; padding:8px 8px 3px; }
.project-track { min-height:440px; gap:9px; scrollbar-color:#8196ab #e2e8ee; }
.slider-photo { border-radius:12px; }
.photo-index { font-size:12px; font-weight:550; background:#102a43cc; border-color:#ffffff66; padding:5px 9px; }
.photo-expand { background:#183950c9; width:35px; height:35px; opacity:1; }
.slider-arrows { inset:0 18px 5px; }
.slider-arrows .round-arrow { width:47px; height:47px; border:1px solid #bacada; color:#163e65; box-shadow:0 4px 15px #102b4940; background:#fff; }
.slider-arrows .round-arrow:disabled { opacity:0; pointer-events:none; }
.slider-footer { gap:16px; padding:14px 4px 2px; }
.slider-label { color:#41576d; font-size:12px; font-weight:600; letter-spacing:.7px; }
.slider-progress { height:3px; background:#dce4ec; border-radius:4px; overflow:hidden; }
.slider-progress > span { background:var(--project-accent); }
.slider-count { color:#29465f; font-size:13px; font-weight:550; }
.gallery-contact { background:#17334f; color:white; border:1px solid #17334f; border-radius:24px; padding:35px 38px; margin-top:58px; margin-bottom:60px; box-shadow:0 8px 24px #19395612; }
.gallery-contact .eyebrow { color:#bed6ee; }
.gallery-contact h2 { font-weight:600; }
.gallery-contact .button { background:#fff; color:#14416d; }
.gallery-page footer { border-top:1px solid #cbd5df; background:#e8eef3; }
.gallery-page .footer-grid a,.gallery-page footer address { color:#3b5167; }
.project-summary { background:#fff; border:1px solid #ccd7e1; border-radius:20px; padding:26px; gap:40px; box-shadow:0 5px 18px #19395608; }
.project-summary > p { color:#34495d; }
.project-summary h2 { color:#1d354d; font-size:15px; font-weight:650; }
.project-notes p,.project-photo-grid figcaption { color:#41566a; }
.gallery-photo { border:1px solid #bfcdda; box-shadow:0 5px 15px #1736520c; }
@media (min-width:1051px) {
  .project-row:nth-child(even) { grid-template-columns:minmax(0,1fr) 330px; }
}
@media (min-width:1500px) {
  .project-row { grid-template-columns:350px minmax(0,1fr); gap:18px; }
  .project-row:nth-child(even) { grid-template-columns:minmax(0,1fr) 350px; }
  .project-track { min-height:460px; }
}
@media (max-width:1050px) and (min-width:721px) {
  .project-row { grid-template-columns:310px minmax(0,1fr); gap:12px; }
  .project-identity { padding:22px; }
  .project-info-body { padding:20px; }
  .project-row .project-info h2 { font-size:28px; }
  .slider-label { display:none; }
}
@media (max-width:720px) {
  .gallery-intro { padding-top:27px; padding-bottom:28px; }
  .gallery-heading { padding-left:17px; border-left-width:4px; }
  .gallery-heading h1 { font-size:46px; }
  .gallery-heading > p { font-size:16px; margin-top:17px; }
  .gallery-heading > p br { display:block; }
  .gallery-toolbar { padding-top:20px; padding-bottom:20px; }
  .project-rows { gap:28px; }
  .project-row { padding:8px; gap:10px; border-radius:23px; box-shadow:0 6px 18px #18334d0c; }
  .project-row .project-info { border-radius:15px; }
  .project-identity { padding:21px 19px 23px; }
  .project-info-top { margin-bottom:17px; }
  .project-row .project-info h2 { font-size:28px; }
  .project-info-body { padding:20px 17px 18px; }
  .project-row .project-tagline { font-size:16px; }
  .project-info .scope-tags { margin-top:11px; margin-bottom:20px; }
  .gallery-page .scope-tags li { font-size:13px; padding:10px 8px; }
  .project-info .scope-heading { margin-top:20px; }
  .slider-window { padding:6px 6px 2px; border-radius:15px; }
  .project-track { height:340px; min-height:0; }
  .slider-arrows { inset-inline:12px; }
  .slider-arrows .round-arrow { width:44px; height:44px; }
  .slider-footer { padding:10px 5px 5px; gap:10px; }
  .slider-label { display:inline; font-size:12px; letter-spacing:0; }
  .slider-count { font-size:12px; min-width:63px; }
  .gallery-contact { margin:42px 22px; padding:28px 24px; border-radius:21px; }
  .gallery-contact h2 { font-size:29px; }
  .project-summary { padding:22px; }
}
@media (max-width:380px) {
  .project-info .scope-tags { grid-template-columns:minmax(0,1fr); }
  .slider-label { font-size:12px; letter-spacing:-.3px; }
}
@media(prefers-reduced-motion:reduce) { .project-row .project-detail-link { transition:none; } }
