:root {
  --ink: #172033;
  --muted: #637086;
  --brand: #f4a51c;
  --brand-dark: #c97805;
  --navy: #111a35;
  --line: #e6eaf1;
  --soft: #f6f8fb;
  --white: #ffffff;
  --shadow: 0 18px 45px rgba(17, 26, 53, 0.13);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { line-height: 1.12; letter-spacing: 0; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.topbar { background: #0b1022; color: rgba(255,255,255,.88); font-size: 14px; }
.topbar .container { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.topbar a { color: var(--white); font-weight: 700; }
.header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.95); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.nav { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 800; }
.brand img { width: 68px; height: 55px; object-fit: contain; }
.brand span { font-size: 20px; }
.nav-links { display: flex; align-items: center; gap: 24px; color: var(--ink); font-weight: 800; }
.nav-links a:hover, .nav-links a.active { color: var(--brand-dark); }
.menu-button { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); color: var(--ink); font-size: 24px; cursor: pointer; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 0; border-radius: 6px; background: var(--brand); color: #111; font-weight: 900; text-transform: uppercase; font-size: 13px; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-1px); background: var(--brand-dark); color: var(--white); }
.button.outline { background: transparent; color: var(--white); border: 1px solid rgba(255,255,255,.5); }
.hero { min-height: 500px; display: grid; align-items: center; color: var(--white); background: linear-gradient(90deg, rgba(11,16,34,.96), rgba(17,26,53,.7) 52%, rgba(39,91,140,.18)), var(--hero-image) center / cover; position: relative; overflow: hidden; }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(0deg, rgba(246,248,251,1), rgba(246,248,251,0)); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 44px; align-items: center; padding: 80px 0; }
.eyebrow { margin: 0 0 12px; color: var(--brand); font-size: 13px; font-weight: 900; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(44px, 7vw, 72px); }
h2 { margin: 0; font-size: clamp(30px, 4vw, 46px); }
h3 { margin: 0; font-size: 23px; }
.hero p { max-width: 700px; margin: 22px 0 30px; color: rgba(255,255,255,.88); font-size: 19px; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-panel { padding: 26px; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.08)); box-shadow: 0 24px 55px rgba(0,0,0,.22); backdrop-filter: blur(16px); transition: transform .25s ease, border-color .25s ease; }
.hero-panel:hover { transform: translateY(-7px); border-color: rgba(244,165,28,.65); }
.hero-panel strong { display: block; color: var(--brand); font-size: 34px; line-height: 1; }
.hero-panel span { display: block; margin-top: 8px; color: rgba(255,255,255,.82); font-weight: 800; }
.section { padding: 86px 0; }
.soft { background: var(--soft); }
.section-head { max-width: 760px; margin-bottom: 36px; }
.lead { margin: 18px 0 0; color: var(--muted); font-size: 18px; }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.card { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 10px 28px rgba(17,26,53,.08); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.card:hover { transform: translateY(-7px); border-color: rgba(244,165,28,.7); box-shadow: 0 22px 44px rgba(17,26,53,.15); }
.card img { width: 100%; height: 240px; object-fit: cover; transition: transform .35s ease; }
.card:hover img { transform: scale(1.06); }
.card-body { padding: 24px; }
.card-body p { color: var(--muted); margin: 12px 0 0; }
.tag { display: inline-flex; margin-bottom: 14px; padding: 6px 10px; border-radius: 6px; background: rgba(244,165,28,.16); color: var(--brand-dark); font-size: 13px; font-weight: 900; text-transform: uppercase; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.gallery-item { position: relative; min-height: 260px; overflow: hidden; border-radius: 8px; background: var(--navy); box-shadow: 0 10px 28px rgba(17,26,53,.08); }
.gallery-item.large { grid-column: span 2; grid-row: span 2; min-height: 536px; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gallery-item video { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item:hover video { transform: scale(1.08); }
.gallery-item span { position: absolute; left: 16px; right: 16px; bottom: 16px; padding: 10px 12px; border-radius: 6px; background: rgba(17,26,53,.82); color: #fff; font-weight: 900; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 34px; align-items: start; }
.article { padding: 36px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: var(--shadow); }
.article img { width: 100%; height: 360px; object-fit: cover; border-radius: 8px; margin-bottom: 26px; }
.article p { color: var(--muted); font-size: 17px; }
.sidebar { display: grid; gap: 18px; }
.side-card { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: 0 10px 28px rgba(17,26,53,.08); }
.side-card a { display: block; margin-top: 10px; color: var(--brand-dark); font-weight: 900; }
.cta { background: linear-gradient(90deg, rgba(17,26,53,.96), rgba(39,91,140,.84)), url("wp-content/uploads/2025/04/civil-construction-3-1.jpg") center / cover; color: var(--white); }
.cta .container { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.cta p { max-width: 700px; margin: 16px 0 0; color: rgba(255,255,255,.86); font-size: 18px; }
.footer { padding: 44px 0 26px; background: #0b1022; color: rgba(255,255,255,.78); }
.footer-grid { display: grid; grid-template-columns: 1.2fr .75fr .75fr .9fr; gap: 34px; padding-bottom: 30px; border-bottom: 1px solid rgba(255,255,255,.14); }
.footer h4 { color: var(--white); margin: 0 0 14px; }
.footer a { display: block; margin: 7px 0; }
@media (max-width: 960px) {
  .menu-button { display: inline-grid; place-items: center; }
  .nav-links { position: absolute; left: 20px; right: 20px; top: 78px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); box-shadow: var(--shadow); }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 12px; }
  .hero-grid, .article-layout { grid-template-columns: 1fr; }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .container { width: min(100% - 28px, 1180px); }
  .topbar .container { justify-content: center; text-align: center; }
  .brand span { font-size: 17px; }
  .hero { min-height: auto; }
  .hero-grid { padding: 64px 0 82px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .section { padding: 62px 0; }
  .grid, .gallery-grid { grid-template-columns: 1fr; }
  .gallery-item.large { grid-column: span 1; grid-row: span 1; min-height: 300px; }
  .article { padding: 24px; }
  .article img { height: 240px; }
}
