:root{
  --navy:#1b2a3a;
  --navy-2:#243647;
  --navy-3:#2e4256;
  --sand:#e6d8be;
  --sand-light:#f3ecdc;
  --cream:#faf7f0;
  --accent:#c8742f;
  --accent-2:#a85d22;
  --text:#1b2a3a;
  --muted:#5a6b7a;
  --line:#d9d1bf;
  --radius:8px;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Bitter",Georgia,serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body.no-scroll{overflow:hidden;}

h1,h2,h3,h4{font-family:inherit;line-height:1.08;margin:0;font-weight:800;}
p{margin:0;}
a{color:inherit;text-decoration:none;}

.eyebrow{
  display:inline-block;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:1rem;
}
.eyebrow.light{color:var(--sand);}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky;
  top:42px;
  z-index:100;
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
.nav-wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:.9rem 1.4rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.wordmark{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  color:var(--navy);
  font-weight:800;
}
.wordmark .mark{width:30px;height:30px;color:var(--navy);}
.wordmark-text{font-size:1.05rem;line-height:1;display:flex;flex-direction:column;}
.wordmark-sub{font-size:.62rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:.2rem;}

.primary-nav{display:flex;align-items:center;gap:1.7rem;}
.primary-nav a{
  font-size:.95rem;
  font-weight:500;
  color:var(--navy);
  padding:.4rem 0;
  border-bottom:2px solid transparent;
  transition:border-color 180ms ease,color 180ms ease;
}
.primary-nav a:hover{border-color:var(--accent);}
.primary-nav .nav-cta{
  border:none;
  background:var(--accent);
  color:#fff;
  padding:.62rem 1.1rem;
  border-radius:var(--radius);
  font-weight:600;
}
.primary-nav .nav-cta:hover{background:var(--accent-2);border-color:transparent;}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:44px;
  height:44px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:var(--radius);
  cursor:pointer;
}
.nav-toggle span{display:block;height:2px;width:22px;margin:0 auto;background:var(--navy);transition:transform 200ms ease,opacity 200ms ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:inherit;
  font-weight:600;
  font-size:.98rem;
  padding:.85rem 1.5rem;
  border-radius:var(--radius);
  border:2px solid transparent;
  min-height:48px;
  transition:background 180ms ease,color 180ms ease,border-color 180ms ease,transform 180ms ease;
  cursor:pointer;
}
.btn-filled{background:var(--accent);color:#fff;}
.btn-filled:hover{background:var(--accent-2);transform:translateY(-1px);}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent;}
.btn-outline:hover{background:var(--navy);color:var(--cream);}
.btn-outline-light{border-color:var(--sand);color:var(--sand);background:transparent;}
.btn-outline-light:hover{background:var(--sand);color:var(--navy);}

/* ---------- Hero ---------- */
.hero{
  background:var(--navy);
  color:var(--cream);
  padding:0;
}
.hero-inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:60% 40%;
  align-items:stretch;
  min-height:88vh;
}
.hero-text{
  padding:5rem 1.4rem 4rem 1.4rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-text .eyebrow{color:var(--accent);}
.hero h1{
  font-size:clamp(2.2rem,5vw,3.9rem);
  font-weight:800;
  letter-spacing:-.01em;
  max-width:18ch;
  margin-bottom:1.4rem;
}
.hero-sub{
  font-size:clamp(1.05rem,1.6vw,1.25rem);
  color:var(--sand);
  max-width:42ch;
  margin-bottom:2.2rem;
  font-weight:400;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;}
.hero-cta .btn-outline{border-color:var(--sand);color:var(--sand);}
.hero-cta .btn-outline:hover{background:var(--sand);color:var(--navy);}

.hero-graphic{
  position:relative;
  min-height:340px;
  border-left:1px solid rgba(230,216,190,.15);
}
.blueprint{width:100%;height:100%;display:block;object-fit:cover;}

/* ---------- Trust ---------- */
.trust{
  background:var(--sand-light);
  padding:6rem 1.4rem;
}
.trust-inner{
  max-width:1000px;
  margin:0 auto;
  text-align:center;
}
.proof-line{
  font-size:clamp(1.6rem,4.5vw,3.1rem);
  font-weight:600;
  line-height:1.15;
  color:var(--navy);
  letter-spacing:-.01em;
}
.proof-mark{
  font-weight:800;
  color:var(--accent);
  font-size:1.25em;
  vertical-align:baseline;
}
.proof-words{font-style:italic;font-weight:400;}
.stars{
  margin-top:1.8rem;
  display:flex;
  justify-content:center;
  gap:.5rem;
}
.stars svg{width:30px;height:30px;fill:var(--accent);}

/* ---------- Section heads ---------- */
.section-head{
  max-width:var(--maxw);
  margin:0 auto 3rem;
  text-align:center;
  padding:0 1.4rem;
}
.section-head h2{font-size:clamp(1.8rem,3.5vw,2.7rem);}

/* ---------- Services bands ---------- */
.services{padding:7rem 0;background:var(--cream);}
.bands{max-width:var(--maxw);margin:0 auto;padding:0 1.4rem;}
.band{
  display:grid;
  grid-template-columns:auto 1fr 1.4fr;
  align-items:baseline;
  gap:2rem;
  padding:2.4rem 2rem;
  border-top:1px solid var(--line);
}
.band:last-child{border-bottom:1px solid var(--line);}
.band.tint{background:var(--sand-light);}
.band-index{
  font-size:1rem;
  font-weight:600;
  color:var(--accent);
  letter-spacing:.1em;
}
.band-name{
  font-size:clamp(1.3rem,2.3vw,1.8rem);
  font-weight:700;
  color:var(--navy);
}
.band-desc{
  font-size:1.02rem;
  color:var(--muted);
  max-width:50ch;
  line-height:1.6;
}

/* ---------- About ---------- */
.about{padding:7rem 0;background:var(--sand-light);}
.about-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 1.4rem;
  display:grid;
  grid-template-columns:1.2fr .9fr;
  gap:3.5rem;
  align-items:center;
}
.about-text h2{font-size:clamp(1.8rem,3.5vw,2.7rem);margin-bottom:1.5rem;color:var(--navy);}
.about-text p{font-size:1.08rem;margin-bottom:1.1rem;color:var(--navy-2);max-width:48ch;}
.about-facts{
  list-style:none;
  margin:2rem 0 0;
  padding:0;
  border-top:1px solid var(--line);
}
.about-facts li{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:1rem;
  padding:.85rem 0;
  border-bottom:1px solid var(--line);
  font-size:.98rem;
}
.fact-label{color:var(--muted);font-weight:500;letter-spacing:.04em;}
.fact-value{color:var(--navy);font-weight:600;}
.about-panel{display:flex;justify-content:center;}
.spec-panel{width:100%;max-width:340px;height:auto;border-radius:var(--radius);box-shadow:0 10px 30px rgba(27,42,58,.12);}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--navy);
  color:var(--cream);
  padding:7rem 1.4rem;
}
.cta-inner{
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.cta-head{
  font-size:clamp(2rem,5vw,3.2rem);
  font-weight:800;
  margin-bottom:1.2rem;
  letter-spacing:-.01em;
}
.cta-sub{
  font-size:1.1rem;
  color:var(--sand);
  max-width:52ch;
  margin:0 auto 2.2rem;
}
.cta-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;}

.contact-form{
  margin-top:3.5rem;
  padding-top:2.5rem;
  border-top:1px solid rgba(230,216,190,.2);
  text-align:left;
  display:grid;
  gap:1.1rem;
  max-width:560px;
  margin-left:auto;
  margin-right:auto;
}
.form-row{display:flex;flex-direction:column;gap:.4rem;}
.form-row label{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sand);font-weight:600;}
.form-row input,.form-row textarea{
  font-family:inherit;
  font-size:1rem;
  padding:.75rem .9rem;
  border-radius:var(--radius);
  border:1px solid rgba(230,216,190,.35);
  background:rgba(255,255,255,.04);
  color:var(--cream);
}
.form-row input::placeholder,.form-row textarea::placeholder{color:rgba(230,216,190,.4);}
.form-row input:focus,.form-row textarea:focus{outline:none;border-color:var(--accent);}
.contact-form button{margin-top:.5rem;width:100%;}
.form-note{font-size:.9rem;color:var(--sand);min-height:1.2em;margin-top:.4rem;}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--navy-2);
  color:var(--sand);
  padding:4rem 1.4rem 0;
}
.footer-inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(230,216,190,.15);
}
.footer-col h4{
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:1.1rem;
  font-weight:600;
}
.footer-col a,.footer-col p,.footer-col address{
  display:block;
  font-style:normal;
  font-size:.95rem;
  margin-bottom:.6rem;
  color:var(--sand);
}
.footer-col a{transition:color 160ms ease;}
.footer-col a:hover{color:var(--accent);}
.wordmark.light{color:var(--cream);}
.wordmark.light .mark{color:var(--cream);}
.wordmark.light .wordmark-sub{color:var(--sand);opacity:.8;}
.tagline{margin-top:1rem;color:var(--sand);opacity:.85;font-size:.95rem;}
.muted{opacity:.6;}
.footer-base{
  max-width:var(--maxw);
  margin:0 auto;
  padding:1.6rem 0 2rem;
  font-size:.85rem;
  opacity:.7;
}

/* ---------- Reveal (JS-applied) ---------- */
[data-reveal].is-hidden{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 600ms ease,transform 600ms ease;
}
[data-reveal].is-shown{opacity:1;transform:none;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .about-inner{grid-template-columns:1fr;gap:2.5rem;}
  .about-panel{order:-1;}
  .spec-panel{max-width:300px;}
}
@media (max-width:700px){
  .nav-wrap{flex-wrap:wrap;}
  .nav-toggle{display:flex;order:3;}
  .primary-nav{
    order:4;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    max-height:0;
    overflow:hidden;
    transition:max-height 320ms ease;
  }
  .primary-nav.open{max-height:420px;}
  .primary-nav a{
    padding:.95rem 0;
    border-bottom:1px solid var(--line);
    font-size:1rem;
    min-height:44px;
    display:flex;
    align-items:center;
  }
  .primary-nav .nav-cta{
    margin-top:.8rem;
    text-align:center;
    justify-content:center;
    border-radius:var(--radius);
  }
  .primary-nav a:last-child{border-bottom:none;}

  .hero-inner{grid-template-columns:1fr;min-height:auto;}
  .hero-text{padding:3.5rem 1.4rem 2.5rem;}
  .hero-graphic{min-height:260px;border-left:none;border-top:1px solid rgba(230,216,190,.15);}
  .hero h1{max-width:none;}

  .band{grid-template-columns:1fr;gap:.7rem;padding:2rem 1.2rem;}
  .band-index{font-size:.85rem;}
  .band-name{font-size:1.4rem;}
  .band-desc{font-size:1rem;}

  .footer-inner{grid-template-columns:1fr 1fr;gap:2rem;}
  .brand-col{grid-column:1 / -1;}
}
@media (max-width:420px){
  .footer-inner{grid-template-columns:1fr;}
  .hero-cta .btn{width:100%;}
  .cta-actions .btn{width:100%;}
  .proof-words{display:block;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  [data-reveal].is-hidden{opacity:1;transform:none;transition:none;}
}