/* =========================
   RESET + BASE
========================= */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body{
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: #ffffff;
  color: #0f1c17;
  line-height: 1.6;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0; }

/* =========================
   THEME TOKENS
========================= */
:root{
  --paper:#ffffff;
  --surface:#f4f7f5;
  --surface2:#eef3f0;

  --ink:#0f1c17;
  --muted:#3f4f49;
  --muted2:#6b7a74;

  --line:rgba(15,28,23,.12);

  --forest:#1f4d3a;
  --forest2:#2c7a5a;

  --accent:#d8a74b;
  --accent2:#b88532;

  --radius:14px;
  --radius-lg:18px;

  --shadow:0 14px 34px rgba(0,0,0,.10);
  --shadow-sm:0 8px 18px rgba(0,0,0,.08);

  --max:1120px;
  --pad:20px;

  --h1:clamp(34px, 5vw, 56px);
  --h2:clamp(24px, 3vw, 36px);
}

/* =========================
   LAYOUT HELPERS
========================= */
.container{
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.section{ padding: 72px 0; }

.band{
  background: var(--surface);
  border-top: 1px solid rgba(15,28,23,.06);
  border-bottom: 1px solid rgba(15,28,23,.06);
}

/* =========================
   TYPE HELPERS
========================= */
.h1{ font-size: var(--h1); margin: 0 0 14px; letter-spacing: -0.02em; }
.h2{ font-size: var(--h2); margin: 0 0 10px; letter-spacing: -0.02em; }
.h3{ margin: 0 0 6px; }
.p{ color: var(--muted); }
small{ color: var(--muted2); }

/* Small kicker label */
.kicker{
  display:inline-block;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 12px;
  color: rgba(255,255,255,.88);
  background: rgba(15,28,23,.22);
  border: 1px solid rgba(255,255,255,.14);
  padding: 6px 10px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.section .kicker,
.band .kicker{
  color: var(--forest);
  background: rgba(31,77,58,.06);
  border-color: rgba(15,28,23,.12);
}

/* =========================
   TOPBAR
========================= */
.topbar{
  background: rgba(15,28,23,.98);
  color: #e7efe9;
  font-size: 13px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.topbar .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 10px 0;
  flex-wrap: wrap;
}
.topbar a{ opacity: .95; }
.topbar a:hover{ opacity: 1; }
.dot{ opacity: .65; margin: 0 8px; }

/* =========================
   HEADER / NAV
========================= */
.header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(15,28,23,.90);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  min-width: 240px;
  flex: 0 0 auto;
  color: #fff;
}

.brand-logo{
  width: 44px;
  height: 44px;
  object-fit: cover;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  padding: 0;
}

.brand-name{
  font-weight: 950;
  color: #fff;
  letter-spacing: -0.01em;
}
.brand small{
  color: rgba(255,255,255,.72);
}

.navlinks{
  display:flex;
  align-items:center;
  gap: 6px;
  flex: 1 1 auto;
  justify-content: center;
}

.navlinks a{
  font-weight: 850;
  font-size: 14px;
  padding: 10px 12px;
  border-radius: 12px;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
  border: 1px solid transparent;
  color: rgba(255,255,255,.92);
}

.navlinks a:hover{
  background: rgba(255,255,255,.10);
  color: #fff;
}

.navlinks a.active{
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
}

.nav-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 900;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #0f1c17;
  box-shadow: 0 10px 22px rgba(216,167,75,.22);
  white-space: nowrap;
}
.nav-cta:hover{ box-shadow: 0 14px 30px rgba(216,167,75,.30); }

/* Mobile */
@media (max-width: 900px){
  .nav{ flex-wrap: wrap; }
  .brand{ min-width: unset; }
  .navlinks{
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* =========================
   BUTTONS
========================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 900;
  border: 1px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
}

.btn-primary{
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #0f1c17;
  box-shadow: 0 10px 22px rgba(216,167,75,.22);
}
.btn-primary:hover{
  box-shadow: 0 14px 30px rgba(216,167,75,.30);
  transform: translateY(-2px);
}

.btn-outline{
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.30);
  color: #fff;
}
.btn-outline:hover{
  background: rgba(255,255,255,.14);
  transform: translateY(-2px);
}

.btn-dark{
  background: var(--ink);
  color: #fff;
  box-shadow: 0 10px 22px rgba(15,28,23,.18);
}
.btn-dark:hover{ filter: brightness(.98); }

/* =========================
   HERO (SINGLE SOURCE OF TRUTH)
   Uses your cropped hero image: /assets/truss-hero.jpg
========================= */
.hero,
.page-hero{
  min-height: 620px;
  display: flex;
  align-items: center;

  color: #fff;
  padding: 40px 0;
  border-bottom: 1px solid rgba(255,255,255,.10);

  background:
    radial-gradient(900px 420px at 14% 10%, rgba(216,167,75,.10), transparent 55%),
    linear-gradient(90deg,
      rgba(10,10,10,.82) 0%,
      rgba(10,10,10,.55) 45%,
      rgba(10,10,10,.08) 100%
    ),
    url("/assets/truss-hero.jpg");

  background-size: cover;
  background-repeat: no-repeat;
  background-position: right center;
}

.hero-inner,
.page-hero-inner{
  max-width: 760px;
  margin: 0;
  text-align: left;
  padding-left: clamp(32px, 4vw, 70px);
  padding-right: var(--pad);
}

.hero h1,
.page-hero h1{
  font-size: clamp(2.7rem, 5vw, 4rem);
  line-height: 1.05;
  margin: 0 0 14px;
  letter-spacing: -0.03em;
  font-weight: 950;
}

.hero-sub{
  font-size: 1.08rem;
  max-width: 640px;
  margin: 0 0 24px;
  color: rgba(255,255,255,.88);
}

.hero-actions{
  display:flex;
  justify-content:flex-start;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.hero-trust{
  list-style: none;
  padding: 0;
  margin: 0;
  display:flex;
  justify-content:flex-start;
  gap: 18px;
  flex-wrap: wrap;
  font-size: .92rem;
  color: rgba(255,255,255,.78);
}

/* Slightly tighten hero on small screens */
@media (max-width: 900px){
  .hero,
  .page-hero{
    min-height: 520px;
    background-position: 70% 50%;
  }
  .hero-inner,
  .page-hero-inner{
    padding-left: var(--pad);
    padding-right: var(--pad);
  }
}

/* =========================
   GRID + CARDS
========================= */
.grid{ display:grid; gap: 18px; }
.grid-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px){
  .grid-2, .grid-3{ grid-template-columns: 1fr; }
}

.card{
  background: var(--paper);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(15,28,23,.10);
  padding: 22px;
  overflow: hidden;
}

/* =========================
   CHECKLIST BLOCKS
========================= */
.checks{ display:grid; gap: 12px; }

.check{
  display:flex;
  gap: 12px;
  align-items:flex-start;
  padding: 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15,28,23,.10);
  box-shadow: var(--shadow-sm);
}

.check i{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display:grid;
  place-items:center;
  font-style: normal;
  font-weight: 900;
  color: #0f1c17;
  background: linear-gradient(135deg, rgba(216,167,75,.18), rgba(216,167,75,.05));
  border: 1px solid rgba(216,167,75,.26);
  flex: 0 0 auto;
}

/* =========================
   GALLERY PLACEHOLDERS
========================= */
.gallery{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
}

.thumb{
  background:#fff;
  border-radius: var(--radius);
  border: 1px solid rgba(15,28,23,.10);
  overflow:hidden;
  box-shadow: var(--shadow-sm);
}

.ph{
  height: 220px;
  background:
    radial-gradient(800px 300px at 20% 10%, rgba(216,167,75,.16), transparent 60%),
    linear-gradient(135deg, rgba(31,77,58,.12), rgba(31,77,58,.02));
}

.cap{
  padding: 12px 14px;
  font-weight: 900;
  color: var(--forest);
  font-size: 14px;
  display:flex;
  flex-direction: column;
  gap: 2px;
}
.cap small{ font-weight: 700; color: var(--muted); }

/* =========================
   CTA BAND
========================= */
.cta{
  border-radius: var(--radius-lg);
  padding: 26px;
  background:
    radial-gradient(900px 420px at 12% 10%, rgba(216,167,75,.22), transparent 55%),
    linear-gradient(135deg, var(--forest), var(--forest2));
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: var(--shadow);
}

.cta .row{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.cta p{ color: rgba(255,255,255,.92); }

/* =========================
   CONTACT FORM
========================= */
.form{
  display:grid;
  gap: 12px;
  margin-top: 14px;
}

.field-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 900px){
  .field-row{ grid-template-columns: 1fr; }
}

.field label{
  display:block;
  font-weight: 850;
  margin-bottom: 6px;
  font-size: .95rem;
}
.field input,
.field textarea{
  width: 100%;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  outline: none;
  font: inherit;
}
.field input:focus,
.field textarea:focus{
  border-color: rgba(31, 111, 85, 0.55);
  box-shadow: 0 0 0 4px rgba(31, 111, 85, 0.12);
}

.fineprint{
  font-size: .85rem;
  color: var(--muted2);
}

/* =========================
   FOOTER
========================= */
.footer{
  background: var(--ink);
  color: #d6e3db;
  padding: 54px 0;
  margin-top: 70px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.footer .container{
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 22px;
  align-items:start;
}

.footer a{ color: #d6e3db; }
.footer a:hover{ color:#fff; }

@media (max-width: 768px){
  .footer .container{ grid-template-columns: 1fr; }
}
