:root{--navy:#122033;--slate:#2f5f73;--gold:#e3b341;--cream:#f7f4ed;--ink:#1c2530;--muted:#5d6975;--line:#d9dedf;--white:#fff;--green:#1f7a55;--soft:#eef4f5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.6}a{color:inherit}img{max-width:100%;height:auto}.top{background:var(--navy);color:#fff;font-size:14px}.wrap{max-width:1180px;margin:0 auto;padding:0 22px}.top .wrap,.nav .wrap{display:flex;justify-content:space-between;align-items:center;gap:18px;overflow:visible}.top a{color:#fff;text-decoration:none;font-weight:700}.nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;padding:10px 0;min-height:92px}.brand img{width:260px;max-height:86px;object-fit:contain;display:block}.menu{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.menu a{text-decoration:none;font-weight:700;color:var(--navy)}.btn{display:inline-block;background:var(--gold);color:#111;text-decoration:none;font-weight:800;border-radius:9px;padding:12px 18px;border:0;cursor:pointer}.btn.dark{background:var(--navy);color:#fff}.btn.ghost{background:transparent;border:2px solid #fff;color:#fff}.hero{background:linear-gradient(120deg,rgba(18,32,51,.94),rgba(47,95,115,.89)),url('images/mini-piling-foundations.svg') center/cover;color:#fff;padding:80px 0}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:center}.eyebrow{color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.hero h1{font-size:52px;line-height:1.05;margin:10px 0 18px}.lead{font-size:20px;color:#edf2f4}.hero-card{background:#fff;color:var(--ink);padding:26px;border-radius:18px;box-shadow:0 18px 40px rgba(0,0,0,.25)}.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}.trust div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:14px;font-weight:800}.section{padding:66px 0}.section.alt{background:var(--cream)}h1,h2,h3{letter-spacing:-.02em}h2{font-size:34px;line-height:1.15;margin:0 0 15px;color:var(--navy)}h3{color:var(--navy);margin-bottom:8px}.grid{display:grid;gap:22px}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:repeat(2,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 8px 20px rgba(0,0,0,.04)}.card a{font-weight:800;color:var(--slate)}.tick{padding-left:0;list-style:none}.tick li{margin:9px 0;padding-left:28px;position:relative}.tick li:before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:900}.areas{columns:3;column-gap:28px}.areas a{display:block;margin:0 0 8px;text-decoration:none;color:var(--navy);font-weight:700}.area-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px}.area-links a{display:block;text-decoration:none;color:var(--navy);font-weight:700}.cta{background:var(--navy);color:#fff;border-radius:22px;padding:34px;display:flex;justify-content:space-between;gap:20px;align-items:center}.cta h2{color:#fff}.form label{display:block;font-weight:800;margin-top:12px}.form input,.form select,.form textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit}.form textarea{min-height:110px}.small{font-size:13px;color:var(--muted)}footer{background:#111a25;color:#dce3e8;padding:42px 0}footer a{color:#fff}.footgrid{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:24px}.footer-links{display:flex;flex-wrap:wrap;gap:8px 14px}.footer-links a{display:inline-block;margin:0;text-decoration:none}.footgrid .footer-links{display:block}.footgrid .footer-links a{display:block;margin:0 0 7px}.subfooter{border-top:1px solid rgba(255,255,255,.15);margin-top:25px;padding-top:18px;color:#aeb8c2}.breadcrumbs{font-size:14px;margin-bottom:20px;color:var(--muted)}.page-hero{background:var(--cream);padding:52px 0;border-bottom:1px solid var(--line)}.page-hero h1{font-size:44px;color:var(--navy);margin:0 0 10px}.page-hero.image{background:linear-gradient(120deg,rgba(18,32,51,.9),rgba(47,95,115,.78)),var(--hero-image) center/cover;color:#fff}.page-hero.image h1,.page-hero.image .lead{color:#fff}.notice{background:#fff8df;border-left:5px solid var(--gold);padding:16px;border-radius:8px}.content p{margin:0 0 16px}.content h2{margin-top:30px}.image-card{overflow:hidden;padding:0}.image-card img{display:block;width:100%;height:220px;object-fit:cover}.image-card .pad{padding:22px}.project-snapshot{background:var(--soft);border-radius:16px;padding:22px;border:1px solid var(--line)}.project-snapshot li{margin-bottom:8px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gallery img{height:210px;width:100%;object-fit:cover;border-radius:14px}.article-meta{color:var(--muted);font-weight:700}.service-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service-strip div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;font-weight:800}.file-note{padding:10px 12px;border-radius:8px;background:#eef4f5;color:#32414c;margin-top:10px;font-size:14px}@media(max-width:850px){.hero-grid,.grid.three,.grid.two,.footgrid,.gallery,.service-strip,.area-links{grid-template-columns:1fr}.hero h1{font-size:38px}.page-hero h1{font-size:36px}.top .wrap,.nav .wrap,.cta{display:block}.menu{padding:0 0 15px}.trust{grid-template-columns:1fr 1fr}.areas{columns:1}.brand img{width:210px}}

/* Image caption overlays */
.image-card figure,
.figure-card,
.hero-image-card {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 16px 16px 0 0;
}

.image-card figure img,
.figure-card img,
.hero-image-card img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.image-label {
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  z-index: 2;
  display: inline-block;
  width: fit-content;
  max-width: calc(100% - 28px);
  padding: 9px 13px 10px;
  border-radius: 10px;
  background: rgba(255,255,255,.94);
  color: var(--navy);
  font-weight: 900;
  line-height: 1.2;
  box-shadow: 0 8px 22px rgba(0,0,0,.16);
  white-space: normal;
  overflow-wrap: anywhere;
}

.gallery figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
}

.gallery figure img {
  height: 210px;
  width: 100%;
  object-fit: cover;
  border-radius: 14px;
}

.gallery .image-label {
  font-size: 14px;
  top: 10px;
  left: 10px;
  right: 10px;
  max-width: calc(100% - 20px);
  padding: 7px 10px 8px;
  border-radius: 8px;
}

@media(max-width:850px){
  .brand img{width:230px;max-height:78px}
  .brand{min-height:82px}
  .image-label{font-size:14px}
}
