:root{--navy:#112d40;--blue:#1e526b;--teal:#00a3a6;--orange:#ef8d24;--ink:#20313d;--muted:#65737d;--cream:#f3f1eb;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65;background:#fff}a{color:inherit}img{max-width:100%}.wrap{width:min(1140px,calc(100% - 40px));margin:auto}.topbar{background:var(--navy);color:#d9e5ea;font-size:13px}.topbar .wrap{height:34px;display:flex;align-items:center;justify-content:space-between}.topbar a{text-decoration:none;color:#fff}.nav{height:88px;display:flex;align-items:center;gap:32px}.brand{margin-right:auto}.brand img{display:block;width:200px;height:auto}.nav nav{display:flex;gap:25px}.nav nav a{text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.08em;color:#294252}.nav nav a:hover{color:var(--teal)}.navCta,.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:var(--orange);color:#fff;padding:13px 20px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--orange)}.hero{min-height:640px;position:relative;background:url('/images/hero.jpg') center/cover;display:flex;align-items:center;color:#fff}.heroShade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,35,49,.92),rgba(12,35,49,.52) 58%,rgba(12,35,49,.12))}.heroCopy{position:relative;padding:90px 0}.hero h1{font-family:Georgia,serif;font-size:clamp(42px,5.5vw,72px);line-height:1.04;max-width:900px;margin:10px 0 24px;font-weight:500}.heroCopy>p:not(.eyebrow){font-size:19px;max-width:680px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:var(--teal)}.hero .eyebrow,.cta .eyebrow{color:#63e0dc}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button.ghost{background:transparent;border-color:#fff}.intro{text-align:center;padding:90px 80px 50px}.intro h2,.cta h2{font-family:Georgia,serif;font-size:clamp(32px,4vw,48px);line-height:1.15;margin:8px 0 22px;font-weight:500}.intro>p:last-child{font-size:17px;color:var(--muted)}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#d9e0e3;margin-bottom:90px}.service{background:#fff;padding:35px;text-decoration:none;min-height:300px;border-top:4px solid var(--teal);transition:.2s}.service:hover{transform:translateY(-6px);box-shadow:0 15px 35px #1838461c}.service span{color:var(--orange);font-size:12px;font-weight:bold}.service h3{font-family:Georgia,serif;font-size:25px;line-height:1.2}.service p{color:var(--muted);font-size:14px}.service b{color:var(--teal);font-size:13px;text-transform:uppercase}.metrics{background:var(--cream);padding:55px 0}.metricGrid{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.metricGrid div+div{border-left:1px solid #cfd4d3}.metricGrid strong{display:block;color:var(--navy);font-family:Georgia,serif;font-size:42px}.metricGrid span{text-transform:uppercase;font-size:11px;letter-spacing:.14em;color:var(--muted)}.cta{background:var(--blue);color:#fff;padding:65px 0}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta h2{margin:5px 0}.button.light{background:#fff;color:var(--navy);border-color:#fff}.button.outlineLight{background:transparent;border-color:#fff}.pageHero{background:linear-gradient(90deg,rgba(14,43,59,.94),rgba(14,43,59,.7)),url('/images/construction-banner.jpg') center/cover;color:#fff;padding:90px 0}.pageHero h1{font-family:Georgia,serif;font-size:clamp(38px,5vw,62px);line-height:1.1;max-width:900px;margin:8px 0;font-weight:500}.article{max-width:880px;padding:75px 0;font-size:17px}.article h2{font:500 34px/1.2 Georgia,serif;color:var(--navy)}.article p{margin:0 0 22px}.article li{margin:8px 0}.contactGrid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px}.contactCard{background:var(--cream);padding:32px;margin-bottom:20px}.contactCard h2{font-size:25px}.contactCard a{color:var(--teal);font-weight:bold}footer{background:#0d2737;color:#ccd8de;padding:58px 0 20px}.footerGrid{display:grid;grid-template-columns:1.3fr 1fr 1fr .8fr;gap:40px}.footerGrid img{width:160px}.footerGrid h3{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.1em}.footerGrid a{color:#fff;text-decoration:none}.copyright{text-align:center;border-top:1px solid #294351;margin-top:40px;padding-top:18px;font-size:12px}@media(max-width:900px){.nav{height:auto;padding:18px 0;flex-wrap:wrap}.nav nav{order:3;width:100%;overflow:auto;padding-top:12px}.navCta{display:none}.services{grid-template-columns:1fr 1fr}.footerGrid{grid-template-columns:1fr 1fr}.hero{min-height:560px}.intro{padding-left:0;padding-right:0}.cta .wrap{display:block}}@media(max-width:600px){.services,.metricGrid,.contactGrid,.footerGrid{grid-template-columns:1fr}.metricGrid div+div{border-left:0;border-top:1px solid #cfd4d3;margin-top:20px;padding-top:20px}.hero h1{font-size:42px}.nav nav{gap:18px}.nav nav a{white-space:nowrap}.brand img{width:175px}.article{padding:50px 0}}

.videoGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 22px;
}
.videoCard {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  text-decoration: none;
  background: var(--cream);
  border-left: 4px solid var(--teal);
}
.videoCard span,
.videoCard b {
  color: var(--teal);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.videoCard strong {
  color: var(--navy);
  font: 500 22px/1.25 Georgia, serif;
}
.videoFrame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--navy);
}
.videoFrame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.heroSlider {
  position: relative;
  height: 640px;
  overflow: hidden;
  color: #fff;
  background: var(--navy);
}
.heroSlide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  background-position: center;
  background-size: cover;
  transition: opacity .8s ease, visibility .8s;
}
.heroSlide.isActive {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}
.heroSlide .heroCopy {
  z-index: 2;
}
.heroSlide h1 {
  max-width: 800px;
  margin: 10px 0 24px;
  font: 500 clamp(42px,5.5vw,72px)/1.04 Georgia,serif;
}
.heroSlide .heroCopy > p:not(.eyebrow) {
  max-width: 700px;
  font-size: 19px;
}
.heroPerson {
  position: absolute;
  right: max(5vw, 40px);
  bottom: 0;
  z-index: 1;
  max-height: 90%;
  width: auto;
}
.slideControls {
  position: absolute;
  right: max(20px, calc((100vw - 1140px)/2));
  bottom: 24px;
  z-index: 3;
  display: flex;
  gap: 6px;
}
.slideControls button {
  min-width: 36px;
  height: 36px;
  border: 1px solid rgba(255,255,255,.65);
  background: rgba(13,39,55,.72);
  color: #fff;
  cursor: pointer;
}
.slideControls button.current {
  border-color: var(--orange);
  background: var(--orange);
}
.homeVideo {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 70px;
  align-items: center;
  padding: 20px 0 90px;
}
.homeVideo h2 {
  margin: 8px 0 20px;
  color: var(--navy);
  font: 500 42px/1.15 Georgia,serif;
}
.homeVideoStack {
  display: grid;
  gap: 16px;
}
@media (max-width: 900px) {
  .heroSlider { height: 580px; }
  .heroPerson { opacity: .28; right: -40px; }
  .homeVideo { grid-template-columns: 1fr; gap: 35px; }
}
@media (prefers-reduced-motion: reduce) {
  .heroSlide { transition: none; }
}

.navDrop { position: relative; }
.navDrop summary { cursor: pointer; list-style: none; }
.navDrop summary::-webkit-details-marker { display: none; }
.navDrop summary::after { content: " ▾"; color: var(--teal); }
.navDrop > div {
  position: absolute;
  top: calc(100% + 14px);
  left: -18px;
  z-index: 20;
  display: none;
  min-width: 280px;
  padding: 10px;
  background: #fff;
  box-shadow: 0 14px 35px rgba(13,39,55,.18);
  border-top: 3px solid var(--teal);
}
.navDrop[open] > div,
.navDrop:hover > div,
.navDrop:focus-within > div { display: grid; }
.navDrop > div a { padding: 10px 12px; }
@media (min-width: 901px) {
  .navDrop summary {
    color: #294252;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
}
@media (max-width: 900px) {
  .navDrop { flex: 0 0 auto; }
  .navDrop summary { white-space: nowrap; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .navDrop > div { position: fixed; top: auto; left: 20px; right: 20px; min-width: 0; }
}

.nav {
  min-height: 112px;
  height: auto;
}
.brand img {
  width: 230px;
  max-height: 94px;
  object-fit: contain;
}
.footerGrid > div:first-child img {
  width: 230px;
  padding: 8px;
  background: #fff;
}
@media (max-width: 600px) {
  .brand img { width: 205px; }
}
