  :root{
    --hvac-blue:#2E3F75;
    --hvac-blue-2:#425896;
    --hvac-red:#E34B3F;
    --hvac-red-dark:#C93B30;
    --hvac-water:#6EB7CC;
    --hvac-green:#94C94C;
    --hvac-lime:#B8D85C;
    --hvac-sage:#DCE7C6;
    --hvac-cream:#F4F2E8;
    --hvac-text:#24304F;
    --hvac-muted:#66748A;
    --hvac-border:rgba(46,63,117,.10);
    --hvac-shadow:0 22px 55px rgba(36,48,79,.10);
    --hvac-shadow-soft:0 12px 30px rgba(36,48,79,.08);
    --hvac-shadow-card:0 18px 40px rgba(36,48,79,.10);
  }

  .hvac-page-hero{
    position:relative;
    overflow:hidden;
    padding:78px 0 50px;
    background:
      radial-gradient(850px 420px at 0% 0%, rgba(110,183,204,.28), transparent 60%),
      radial-gradient(850px 420px at 100% 10%, rgba(148,201,76,.18), transparent 58%),
      linear-gradient(135deg, #243766 0%, #2E3F75 52%, #425896 100%);
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .hvac-page-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(12,18,34,.12) 0%, rgba(12,18,34,.24) 100%);
    pointer-events:none;
  }

  .hvac-page-hero > .container{
    position:relative;
    z-index:1;
  }

  .hvac-kicker{
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    padding:.62rem .98rem;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.20);
    color:#fff;
    font-size:.8rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:1rem;
    backdrop-filter:blur(8px);
  }

  .hvac-page-title{
    margin:0;
    color:#fff;
    font-family:'Montserrat',sans-serif;
    font-size:clamp(2.35rem, 5vw, 4.35rem);
    line-height:.98;
    font-weight:900;
    letter-spacing:-.03em;
    text-shadow:0 10px 30px rgba(0,0,0,.18);
  }

  .hvac-page-title span{
    color:#cbe7f0;
  }

  .hvac-page-sub{
    color:rgba(255,255,255,.88);
    font-size:1.05rem;
    line-height:1.85;
    max-width:860px;
    margin:1rem 0 0;
    font-weight:500;
  }

  .hvac-breadcrumbs{
    margin-top:1rem;
    color:rgba(255,255,255,.72);
    font-size:.95rem;
    display:flex;
    flex-wrap:wrap;
    gap:.55rem;
    align-items:center;
  }

  .hvac-breadcrumbs a{
    color:#fff;
    text-decoration:none;
    font-weight:700;
  }

  .hvac-breadcrumbs a:hover{
    text-decoration:underline;
  }

  .hvac-wrap{
    padding:46px 0 78px;
    background:
      radial-gradient(1200px 600px at 100% 0%, rgba(110,183,204,.05), transparent 60%),
      linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
  }

  .hvac-panel{
    background:#fff;
    border:1px solid var(--hvac-border);
    border-radius:30px;
    box-shadow:var(--hvac-shadow);
    overflow:hidden;
  }

  .hvac-panel-head{
    padding:26px 26px 18px;
    background:linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    border-bottom:1px solid rgba(46,63,117,.08);
  }

  .hvac-section-kicker{
    font-size:12px;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--hvac-red);
    margin-bottom:8px;
  }

  .hvac-title{
    font-size:clamp(2rem, 4vw, 2.8rem);
    line-height:1.08;
    font-weight:900;
    color:var(--hvac-text);
    font-family:'Montserrat',sans-serif;
    margin:0 0 8px;
    letter-spacing:-.02em;
  }

  .hvac-sub{
    color:var(--hvac-muted);
    margin:0;
    font-size:15.5px;
    max-width:78ch;
    line-height:1.8;
  }

  .hvac-stats{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
  }

  .hvac-stat{
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    padding:.7rem .95rem;
    border-radius:16px;
    border:1px solid rgba(46,63,117,.08);
    background:#fff;
    color:var(--hvac-text);
    font-size:.92rem;
    font-weight:800;
    box-shadow:0 10px 24px rgba(36,48,79,.05);
  }

  .hvac-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    padding:18px 26px;
    background:
      linear-gradient(135deg, rgba(110,183,204,.08), rgba(255,255,255,0) 55%),
      #fff;
    border-bottom:1px solid rgba(46,63,117,.08);
  }

  .hvac-chips{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
  }

  .hvac-chip{
    appearance:none;
    border:1px solid rgba(46,63,117,.14);
    background:#fff;
    color:var(--hvac-text);
    border-radius:999px;
    padding:.62rem .92rem;
    font-weight:800;
    font-size:13px;
    line-height:1;
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    cursor:pointer;
    transition:transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
  }

  .hvac-chip:hover{
    transform:translateY(-1px);
    background:rgba(110,183,204,.06);
    border-color:rgba(110,183,204,.24);
  }

  .hvac-chip.is-active{
    background:linear-gradient(135deg, var(--hvac-blue), var(--hvac-blue-2));
    border-color:transparent;
    color:#fff;
    box-shadow:0 16px 28px rgba(46,63,117,.18);
  }

  .hvac-chip .dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:rgba(46,63,117,.35);
    flex:0 0 10px;
  }

  .hvac-chip.is-active .dot{
    background:#fff;
  }

  .hvac-note{
    color:var(--hvac-muted);
    font-size:13.5px;
    display:flex;
    align-items:center;
    gap:.6rem;
    font-weight:700;
  }

  .hvac-note i{
    color:var(--hvac-blue);
  }

  .hvac-gallery-wrap{
    padding:26px;
  }

  .hvac-category-block{
    margin-bottom:34px;
  }

  .hvac-category-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    margin-bottom:16px;
  }

  .hvac-category-title{
    margin:0;
    font-family:'Montserrat',sans-serif;
    font-size:1.45rem;
    line-height:1.1;
    font-weight:900;
    color:var(--hvac-text);
    letter-spacing:-.02em;
    display:flex;
    align-items:center;
    gap:.65rem;
  }

  .hvac-category-dot{
    width:12px;
    height:12px;
    border-radius:50%;
    display:inline-block;
    background:linear-gradient(135deg, var(--hvac-blue), var(--hvac-red));
    box-shadow:0 0 0 6px rgba(46,63,117,.08);
  }

  .hvac-category-copy{
    color:var(--hvac-muted);
    font-size:.96rem;
    line-height:1.75;
    margin:6px 0 0;
    max-width:70ch;
  }

  .hvac-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:20px;
  }

  .hvac-gallery-item{
    position:relative;
    border:1px solid rgba(46,63,117,.08);
    border-radius:24px;
    overflow:hidden;
    background:linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow:var(--hvac-shadow-card);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }

  .hvac-gallery-item:hover{
    transform:translateY(-5px);
    border-color:rgba(110,183,204,.22);
    box-shadow:0 24px 52px rgba(36,48,79,.14);
  }

  .hvac-gallery-trigger{
    display:block;
    width:100%;
    border:0;
    padding:0;
    background:none;
    text-align:left;
    cursor:pointer;
  }

  .hvac-media{
    position:relative;
    background:#09111d;
    aspect-ratio:4 / 3;
    overflow:hidden;
  }

  .hvac-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transform:scale(1.01);
    transition:transform .28s ease;
  }

  .hvac-gallery-item:hover .hvac-media img{
    transform:scale(1.05);
  }

  .hvac-media::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, transparent 35%, rgba(8,20,36,.55) 100%);
    opacity:.92;
    pointer-events:none;
  }

  .hvac-zoom{
    position:absolute;
    right:12px;
    top:12px;
    z-index:2;
    width:44px;
    height:44px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.20);
    color:#fff;
    backdrop-filter:blur(8px);
    box-shadow:0 12px 30px rgba(0,0,0,.18);
  }

  .hvac-badge{
    position:absolute;
    left:12px;
    bottom:12px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    border-radius:999px;
    padding:.5rem .74rem;
    font-size:12px;
    font-weight:900;
    color:#fff;
    background:linear-gradient(135deg, var(--hvac-blue), var(--hvac-red));
    box-shadow:0 14px 24px rgba(46,63,117,.18);
  }

  .hvac-body{
    padding:18px 18px 18px;
  }

  .hvac-hit-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
  }

  .hvac-hit-title{
    font-weight:900;
    color:var(--hvac-text);
    font-size:17px;
    line-height:1.32;
    margin:0;
    font-family:'Montserrat',sans-serif;
    letter-spacing:-.01em;
  }

  .hvac-hit-icon{
    width:34px;
    height:34px;
    min-width:34px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--hvac-blue);
    background:rgba(110,183,204,.08);
    border:1px solid rgba(110,183,204,.12);
  }

  .hvac-hit-caption{
    color:#5a6d81;
    font-size:14px;
    line-height:1.72;
    margin:0;
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:96px;
  }

  .hvac-gallery-card-footer{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid rgba(46,63,117,.08);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:#64748b;
    font-size:12.5px;
  }

  .hvac-meta-mini{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    font-weight:700;
  }

  .hvac-view{
    color:var(--hvac-red);
    font-weight:900;
    display:inline-flex;
    align-items:center;
    gap:.45rem;
  }

  .hvac-empty{
    padding:36px 24px;
    color:#64748b;
    text-align:center;
  }

  .hvac-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(5,12,23,.88);
    backdrop-filter:blur(10px);
  }

  .hvac-lightbox.is-open{
    display:flex;
  }

  .hvac-lightbox-dialog{
    position:relative;
    width:min(1320px, 100%);
    max-height:calc(100vh - 48px);
    display:grid;
    grid-template-columns:minmax(0, 1.35fr) minmax(320px, 420px);
    background:#0d1726;
    border:1px solid rgba(255,255,255,.08);
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 30px 80px rgba(0,0,0,.40);
  }

  .hvac-lightbox-media{
    position:relative;
    background:
      radial-gradient(circle at top, rgba(110,183,204,.14), transparent 35%),
      #08101c;
    min-height:420px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
  }

  .hvac-lightbox-media img{
    max-width:100%;
    max-height:calc(100vh - 110px);
    width:auto;
    height:auto;
    display:block;
    border-radius:18px;
    box-shadow:0 20px 50px rgba(0,0,0,.30);
  }

  .hvac-lightbox-side{
    background:linear-gradient(180deg, #10203a 0%, #0d1726 100%);
    color:#e8f0fa;
    padding:28px 24px 24px;
    display:flex;
    flex-direction:column;
    gap:16px;
    overflow-y:auto;
  }

  .hvac-lightbox-kicker{
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#8dc7ff;
  }

  .hvac-lightbox-title{
    margin:0;
    font-family:'Montserrat',sans-serif;
    font-size:1.45rem;
    line-height:1.2;
    font-weight:900;
    color:#fff;
  }

  .hvac-lightbox-caption{
    margin:0;
    color:rgba(232,240,250,.88);
    line-height:1.85;
    font-size:1rem;
    white-space:pre-line;
  }

  .hvac-lightbox-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:4px;
  }

  .hvac-lightbox-pill{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    border-radius:999px;
    padding:.58rem .82rem;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.08);
    color:#fff;
    font-size:.82rem;
    font-weight:800;
  }

  .hvac-lightbox-close,
  .hvac-lightbox-nav{
    position:absolute;
    z-index:3;
    width:50px;
    height:50px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(8,16,28,.52);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    backdrop-filter:blur(8px);
    transition:transform .2s ease, background .2s ease;
  }

  .hvac-lightbox-close:hover,
  .hvac-lightbox-nav:hover{
    background:rgba(8,16,28,.78);
  }

  .hvac-lightbox-close{
    top:16px;
    right:16px;
  }

  .hvac-lightbox-nav.prev{
    left:16px;
    top:50%;
    transform:translateY(-50%);
  }

  .hvac-lightbox-nav.next{
    right:16px;
    top:50%;
    transform:translateY(-50%);
  }

  .hvac-hidden{
    display:none !important;
  }

  @media (max-width: 1199.98px){
    .hvac-grid{
      grid-template-columns:repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 991.98px){
    .hvac-page-hero{
      padding:58px 0 38px;
    }

    .hvac-wrap{
      padding:38px 0 58px;
    }

    .hvac-lightbox{
      padding:12px;
    }

    .hvac-lightbox-dialog{
      width:100%;
      max-height:calc(100vh - 24px);
      grid-template-columns:1fr;
    }

    .hvac-lightbox-media{
      min-height:260px;
      padding:20px;
    }

    .hvac-lightbox-media img{
      max-height:52vh;
    }

    .hvac-lightbox-side{
      max-height:34vh;
      padding:22px 18px 18px;
    }
  }

  @media (max-width: 767.98px){
    .hvac-grid{
      grid-template-columns:1fr;
    }
  }

  @media (max-width: 575.98px){
    .hvac-page-title{
      font-size:2.15rem;
    }

    .hvac-panel,
    .hvac-gallery-item{
      border-radius:22px;
    }

    .hvac-panel-head,
    .hvac-toolbar,
    .hvac-gallery-wrap{
      padding-left:16px;
      padding-right:16px;
    }

    .hvac-lightbox-dialog{
      border-radius:20px;
    }

    .hvac-lightbox-close{
      top:10px;
      right:10px;
      width:42px;
      height:42px;
    }

    .hvac-lightbox-nav{
      width:42px;
      height:42px;
    }

    .hvac-lightbox-nav.prev{
      left:10px;
    }

    .hvac-lightbox-nav.next{
      right:10px;
    }
  }

/* Project story index */
.asm-gallery-projects{
  padding:64px 0;
  background:
    radial-gradient(700px 360px at 0 0,rgba(110,183,204,.16),transparent 64%),
    linear-gradient(180deg,#eef7fb 0%,#f8fbfd 100%);
  border-bottom:1px solid var(--hvac-border);
}

.asm-gallery-projects-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:28px;
}

.asm-gallery-projects-head h2{
  max-width:720px;
  margin:0;
  color:var(--hvac-blue);
  font-family:'Montserrat',sans-serif;
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:900;
  line-height:1.06;
  letter-spacing:-.035em;
}

.asm-gallery-projects-head p{
  max-width:500px;
  margin:0;
  color:#4f6177;
  font-size:1rem;
  line-height:1.75;
}

.asm-gallery-project-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}

.asm-gallery-project-card{
  display:grid;
  grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
  overflow:hidden;
  min-height:500px;
  background:#fff;
  border:1px solid rgba(46,63,117,.12);
  border-radius:30px;
  box-shadow:var(--hvac-shadow);
}

.asm-gallery-project-media{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:500px;
  overflow:hidden;
  background:linear-gradient(145deg,#dcecf6,#f6fbfe);
}

.asm-gallery-project-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}

.asm-gallery-project-media:hover img{
  transform:scale(1.025);
}

.asm-gallery-project-media>span{
  position:absolute;
  left:18px;
  bottom:18px;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.7rem .9rem;
  border-radius:999px;
  background:rgba(25,47,87,.94);
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  box-shadow:0 12px 26px rgba(18,34,63,.24);
}

.asm-gallery-project-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(1.5rem,4vw,3rem);
}

.asm-gallery-project-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem 1rem;
  margin-bottom:1rem;
  color:#157a43;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.asm-gallery-project-meta span{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}

.asm-gallery-project-body h3{
  margin:0 0 .9rem;
  font-family:'Montserrat',sans-serif;
  font-size:clamp(1.55rem,3vw,2.3rem);
  line-height:1.12;
  font-weight:900;
}

.asm-gallery-project-body h3 a{
  color:var(--hvac-blue);
  text-decoration:none;
}

.asm-gallery-project-body h3 a:hover{
  color:var(--hvac-red-dark);
}

.asm-gallery-project-body p{
  margin:0 0 1.25rem;
  color:#4f6177;
  line-height:1.8;
}

.asm-gallery-project-link{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  width:max-content;
  color:var(--hvac-red-dark);
  font-weight:900;
  text-decoration:none;
}

.asm-gallery-project-link:hover{
  color:var(--hvac-blue);
}

/* Individual project page */
.asm-project-page{
  --asm-project-navy:#123968;
  --asm-project-blue:#0f4d83;
  --asm-project-green:#138342;
  --asm-project-ice:#eef8fc;
  color:#243b58;
  background:#fff;
}

.asm-project-hero{
  position:relative;
  overflow:hidden;
  padding:54px 0 78px;
  background:
    radial-gradient(circle at 8% 14%,rgba(255,255,255,.14) 0 6px,transparent 7px),
    radial-gradient(circle at 12% 20%,rgba(110,183,204,.28) 0 18px,transparent 19px),
    radial-gradient(850px 520px at 100% 0,rgba(110,183,204,.32),transparent 64%),
    linear-gradient(135deg,#0f315e 0%,#184879 58%,#22628d 100%);
}

.asm-project-hero::after{
  content:"";
  position:absolute;
  right:-10%;
  bottom:-155px;
  width:70%;
  height:260px;
  border-radius:50%;
  background:rgba(221,244,252,.12);
  pointer-events:none;
}

.asm-project-hero>.container{
  position:relative;
  z-index:1;
}

.asm-project-breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin-bottom:30px;
  color:rgba(255,255,255,.72);
  font-size:.9rem;
  font-weight:700;
}

.asm-project-breadcrumbs a{
  color:#fff;
  text-decoration:none;
}

.asm-project-breadcrumbs a:hover{
  text-decoration:underline;
}

.asm-project-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.65fr);
  gap:clamp(2rem,5vw,5.5rem);
  align-items:center;
}

.asm-project-kicker{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  min-height:42px;
  padding:.65rem 1rem;
  border-radius:999px;
  color:#fff;
  background:#168742;
  border:1px solid rgba(255,255,255,.2);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.asm-project-hero h1{
  max-width:760px;
  margin:1.2rem 0 1.1rem;
  color:#fff;
  font-family:'Montserrat',sans-serif;
  font-size:clamp(2.65rem,6vw,5rem);
  font-weight:900;
  line-height:.98;
  letter-spacing:-.045em;
  text-shadow:0 14px 34px rgba(0,0,0,.2);
}

.asm-project-lead{
  max-width:720px;
  margin:0;
  color:rgba(255,255,255,.9);
  font-size:1.08rem;
  line-height:1.82;
}

.asm-project-hero-actions,.asm-project-cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  margin-top:1.6rem;
}

.asm-project-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:52px;
  padding:.85rem 1.15rem;
  border-radius:999px;
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
  text-decoration:none;
  transition:transform .18s ease,filter .18s ease;
}

.asm-project-btn:hover{
  transform:translateY(-2px);
  filter:brightness(.98);
}

.asm-project-btn-primary{
  background:linear-gradient(135deg,var(--hvac-red),var(--hvac-red-dark));
  color:#fff;
  box-shadow:0 16px 34px rgba(227,75,63,.26);
}

.asm-project-btn-primary:hover{
  color:#fff;
}

.asm-project-btn-secondary{
  color:#fff;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.3);
}

.asm-project-btn-secondary:hover{
  color:#fff;
  background:rgba(255,255,255,.18);
}

.asm-project-trust-row{
  display:flex;
  flex-wrap:wrap;
  gap:.8rem 1.2rem;
  margin-top:1.4rem;
  color:rgba(255,255,255,.86);
  font-size:.83rem;
  font-weight:800;
}

.asm-project-trust-row span{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
}

.asm-project-proof{
  position:relative;
  display:block;
  width:min(100%,500px);
  justify-self:end;
  overflow:hidden;
  padding:10px;
  border-radius:30px;
  background:#fff;
  box-shadow:0 30px 75px rgba(5,24,49,.38);
  text-decoration:none;
  transform:rotate(1deg);
}

.asm-project-proof img{
  display:block;
  width:100%;
  height:auto;
  border-radius:22px;
}

.asm-project-proof>span{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.8rem .7rem .45rem;
  color:var(--asm-project-navy);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.asm-project-summary{
  position:relative;
  z-index:2;
  padding:0 0 64px;
  background:linear-gradient(180deg,#eaf6fb 0%,#f8fcfe 100%);
}

.asm-project-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  overflow:hidden;
  border:1px solid rgba(18,57,104,.12);
  border-radius:26px;
  background:#fff;
  box-shadow:0 22px 55px rgba(18,57,104,.14);
  transform:translateY(-30px);
}

.asm-project-facts>div{
  min-height:150px;
  padding:1.4rem;
  border-right:1px solid rgba(18,57,104,.1);
}

.asm-project-facts>div:last-child{
  border-right:0;
}

.asm-project-facts span,.asm-project-facts small{
  display:block;
}

.asm-project-facts span{
  margin-bottom:.65rem;
  color:#587087;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.asm-project-facts strong{
  display:block;
  color:var(--asm-project-green);
  font-family:'Montserrat',sans-serif;
  font-size:clamp(1.45rem,2.5vw,2.25rem);
  font-weight:900;
  line-height:1.05;
}

.asm-project-facts small{
  margin-top:.45rem;
  color:#52667a;
  line-height:1.5;
}

.asm-project-content{
  padding:72px 0;
  background:#fff;
}

.asm-project-story-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}

.asm-project-section-label{
  margin-bottom:.65rem;
  color:var(--asm-project-green);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.asm-project-story h2,.asm-project-detail-card h2,.asm-project-service-card h2,.asm-project-heading h2,.asm-project-benefits h2,.asm-project-faq-card h2,.asm-project-cta-card h2{
  margin:0 0 1rem;
  color:var(--asm-project-navy);
  font-family:'Montserrat',sans-serif;
  font-size:clamp(1.7rem,3vw,2.7rem);
  font-weight:900;
  line-height:1.12;
  letter-spacing:-.025em;
}

.asm-project-story h2:not(:first-of-type){
  margin-top:2.4rem;
}

.asm-project-story>p{
  margin:0 0 1.15rem;
  color:#3f566c;
  font-size:1.02rem;
  line-height:1.9;
}

.asm-project-callout{
  display:flex;
  gap:1rem;
  margin:2rem 0;
  padding:1.3rem;
  border:1px solid rgba(19,131,66,.18);
  border-radius:22px;
  background:linear-gradient(135deg,#eef9f2,#f4fbfd);
}

.asm-project-callout-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  flex:0 0 52px;
  border-radius:17px;
  background:var(--asm-project-green);
  color:#fff;
  font-size:1.2rem;
}

.asm-project-callout strong{
  display:block;
  margin-bottom:.3rem;
  color:var(--asm-project-navy);
  font-family:'Montserrat',sans-serif;
  font-weight:900;
}

.asm-project-callout p{
  margin:0;
  color:#476075;
  line-height:1.72;
}

.asm-project-inline-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.7rem;
  margin-top:1.8rem;
}

.asm-project-inline-links a{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:var(--hvac-red-dark);
  font-weight:900;
  line-height:1.5;
  text-decoration:none;
}

.asm-project-inline-links a:hover{
  color:var(--asm-project-blue);
  text-decoration:underline;
}

.asm-project-sidebar{
  position:sticky;
  top:120px;
  display:flex;
  flex-direction:column;
  gap:18px;
}

.asm-project-detail-card,.asm-project-service-card{
  padding:1.5rem;
  border:1px solid rgba(18,57,104,.12);
  border-radius:26px;
  background:#fff;
  box-shadow:0 16px 38px rgba(18,57,104,.09);
}

.asm-project-detail-card h2,.asm-project-service-card h2{
  font-size:1.45rem;
}

.asm-project-detail-card dl{
  margin:0;
}

.asm-project-detail-card dl>div{
  display:grid;
  grid-template-columns:95px minmax(0,1fr);
  gap:.8rem;
  padding:.85rem 0;
  border-top:1px solid rgba(18,57,104,.1);
}

.asm-project-detail-card dt{
  color:#64778a;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.asm-project-detail-card dd{
  margin:0;
  color:var(--asm-project-navy);
  font-weight:800;
  line-height:1.55;
}

.asm-project-service-card{
  color:#fff;
  background:linear-gradient(145deg,var(--asm-project-navy),#1e5d8b);
}

.asm-project-service-card>span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:50px;
  height:50px;
  margin-bottom:1rem;
  border-radius:16px;
  background:rgba(255,255,255,.13);
  font-size:1.15rem;
}

.asm-project-service-card h2{
  color:#fff;
}

.asm-project-service-card p{
  color:rgba(255,255,255,.84);
  line-height:1.72;
}

.asm-project-service-card a{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:#fff;
  font-weight:900;
  text-decoration:none;
}

.asm-project-photos{
  padding:72px 0;
  background:
    radial-gradient(760px 380px at 100% 0,rgba(110,183,204,.16),transparent 65%),
    linear-gradient(180deg,#eef7fb,#f8fcfd);
}

.asm-project-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:28px;
}

.asm-project-heading p{
  max-width:440px;
  margin:0;
  color:#52677a;
  line-height:1.7;
}

.asm-project-photo-grid{
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(300px,1.2fr);
  grid-template-rows:auto 1fr;
  gap:22px;
}

.asm-project-photo-grid-standard{
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:auto;
}

.asm-project-photo-grid-standard .asm-project-photo img{
  height:300px;
}

.asm-project-photo-grid-pairs{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:auto;
  max-width:980px;
  margin-inline:auto;
}

.asm-project-photo-grid-pairs .asm-project-photo img{
  height:340px;
}

.asm-project-benefits-wide{
  grid-column:1/-1;
}

.asm-project-photo{
  overflow:hidden;
  margin:0;
  border:1px solid rgba(18,57,104,.12);
  border-radius:26px;
  background:#fff;
  box-shadow:0 16px 38px rgba(18,57,104,.09);
}

.asm-project-photo-tall{
  grid-row:span 2;
}

.asm-project-photo a{
  display:block;
  overflow:hidden;
}

.asm-project-photo img{
  display:block;
  width:100%;
  height:320px;
  object-fit:cover;
  transition:transform .3s ease;
}

.asm-project-photo-tall img{
  height:670px;
}

.asm-project-photo a:hover img{
  transform:scale(1.025);
}

.asm-project-photo figcaption{
  padding:1rem 1.15rem 1.15rem;
  color:#51677b;
  font-size:.9rem;
  line-height:1.65;
}

.asm-project-benefits{
  padding:1.6rem;
  border:1px solid rgba(18,57,104,.12);
  border-radius:26px;
  background:#fff;
  box-shadow:0 16px 38px rgba(18,57,104,.08);
}

.asm-project-benefits h2{
  font-size:1.55rem;
}

.asm-project-benefits ul{
  display:grid;
  gap:.8rem;
  margin:0;
  padding:0;
  list-style:none;
}

.asm-project-benefits li{
  display:flex;
  gap:.65rem;
  color:#40586e;
  line-height:1.6;
}

.asm-project-benefits li .asm-svg-icon{
  margin-top:.25rem;
  color:var(--asm-project-green);
  flex:0 0 auto;
}

.asm-project-faq{
  padding:72px 0;
  background:#fff;
}

.asm-project-faq-card{
  max-width:940px;
  margin:0 auto;
}

.asm-project-faq-card details{
  overflow:hidden;
  margin-bottom:12px;
  border:1px solid rgba(18,57,104,.12);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 26px rgba(18,57,104,.06);
}

.asm-project-faq-card summary{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.1rem 3.5rem 1.1rem 1.2rem;
  color:var(--asm-project-navy);
  font-weight:900;
  cursor:pointer;
  list-style:none;
}

.asm-project-faq-card summary::-webkit-details-marker{
  display:none;
}

.asm-project-faq-card summary::after{
  content:"+";
  position:absolute;
  right:1.1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:var(--asm-project-ice);
  color:var(--asm-project-blue);
}

.asm-project-faq-card details[open] summary::after{
  content:"-";
  background:var(--asm-project-green);
  color:#fff;
}

.asm-project-faq-card details p{
  margin:0;
  padding:0 1.2rem 1.15rem;
  color:#4c6277;
  line-height:1.75;
}

.asm-project-cta{
  padding:0 0 72px;
  background:#fff;
}

.asm-project-cta-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:clamp(1.6rem,4vw,3rem);
  overflow:hidden;
  border-radius:30px;
  color:#fff;
  background:
    radial-gradient(500px 240px at 0 0,rgba(110,183,204,.28),transparent 68%),
    radial-gradient(480px 260px at 100% 100%,rgba(19,131,66,.26),transparent 66%),
    linear-gradient(135deg,#102f59,#1b537f);
  box-shadow:0 24px 60px rgba(18,57,104,.2);
}

.asm-project-cta-card h2{
  max-width:760px;
  color:#fff;
}

.asm-project-cta-card p{
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.84);
  line-height:1.75;
}

.asm-project-cta-card .asm-project-section-label{
  color:#a9e3be;
}

.asm-project-btn-light{
  color:var(--asm-project-navy);
  background:#fff;
}

.asm-project-btn-light:hover{
  color:var(--asm-project-navy);
}

@media (max-width:1199.98px){
  .asm-project-hero-grid{
    grid-template-columns:minmax(0,1fr) minmax(320px,.58fr);
  }

  .asm-project-facts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .asm-project-facts>div:nth-child(2){
    border-right:0;
  }

  .asm-project-facts>div:nth-child(-n+2){
    border-bottom:1px solid rgba(18,57,104,.1);
  }
}

@media (max-width:991.98px){
  .asm-gallery-projects-head,.asm-project-heading,.asm-project-cta-card{
    align-items:flex-start;
    flex-direction:column;
  }

  .asm-gallery-project-card{
    grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);
  }

  .asm-project-hero{
    padding:42px 0 62px;
  }

  .asm-project-hero-grid,.asm-project-story-grid{
    grid-template-columns:1fr;
  }

  .asm-project-proof{
    width:min(100%,620px);
    justify-self:center;
    transform:none;
  }

  .asm-project-sidebar{
    position:static;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .asm-project-photo-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
  }

  .asm-project-photo-tall{
    grid-row:auto;
  }

  .asm-project-photo-tall img,.asm-project-photo img{
    height:460px;
  }

  .asm-project-benefits{
    grid-column:1/-1;
  }
}

@media (max-width:767.98px){
  .asm-gallery-projects{
    padding:48px 0;
  }

  .asm-gallery-project-card{
    grid-template-columns:1fr;
    min-height:0;
  }

  .asm-gallery-project-media{
    min-height:0;
    aspect-ratio:4/3;
  }

  .asm-gallery-project-media img{
    object-fit:cover;
    object-position:center 18%;
  }

  .asm-project-summary{
    padding-bottom:42px;
  }

  .asm-project-story-grid,.asm-project-photo-grid,.asm-project-sidebar{
    grid-template-columns:1fr;
  }

  .asm-project-photo-tall img,.asm-project-photo img{
    height:auto;
    max-height:none;
    object-fit:contain;
  }

  .asm-project-benefits{
    grid-column:auto;
  }

  .asm-project-content,.asm-project-photos,.asm-project-faq{
    padding:54px 0;
  }
}

@media (max-width:575.98px){
  .asm-project-hero h1{
    font-size:2.45rem;
  }

  .asm-project-breadcrumbs{
    margin-bottom:22px;
    font-size:.8rem;
  }

  .asm-project-hero-actions,.asm-project-cta-actions{
    width:100%;
    flex-direction:column;
  }

  .asm-project-btn{
    width:100%;
  }

  .asm-project-trust-row{
    display:grid;
    grid-template-columns:1fr;
  }

  .asm-project-proof,.asm-project-facts,.asm-project-photo,.asm-project-benefits,.asm-project-detail-card,.asm-project-service-card,.asm-project-cta-card{
    border-radius:22px;
  }

  .asm-project-facts{
    grid-template-columns:1fr;
    transform:translateY(-20px);
  }

  .asm-project-facts>div{
    min-height:0;
    border-right:0;
    border-bottom:1px solid rgba(18,57,104,.1);
  }

  .asm-project-facts>div:last-child{
    border-bottom:0;
  }

  .asm-project-callout{
    flex-direction:column;
  }

  .asm-project-detail-card dl>div{
    grid-template-columns:1fr;
    gap:.25rem;
  }
}
