/* TEH EH & CO — canonical site design system */
:root{
  --navy:#0F2D52;
  --navy-2:#163C69;
  --steel:#52708F;
  --sage:#4A7C6F;
  --sage-dark:#426F64;
  --sage-light:#9BC5BA;
  --ink:#172638;
  --text:#47515C;
  --warm:#F7F6F2;
  --paper:#FCFBF9;
  --line:#D9DDD9;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"DM Sans",sans-serif;
  background:var(--paper);
  color:var(--ink);
  overflow-x:hidden;
}
.wrap,.section-inner,.hero-inner,.footer-inner{
  max-width:1220px;
  margin:0 auto;
  padding-left:64px;
  padding-right:64px;
}

/* Navigation */
nav{
  height:76px;
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  background:rgba(15,45,82,.97);
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
}
nav > .wrap,nav > .nav-inner,nav > .section-inner{
  width:100%;
}
.nav-inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.nav-logo,.logo{
  font-family:"Newsreader",serif;
  color:#fff;
  text-decoration:none;
  font-size:1.28rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:32px;
  height:32px;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  z-index:110;
}
.nav-toggle span{
  width:100%;
  height:2px;
  background:#fff;
  display:block;
  transition:transform .2s,opacity .2s;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-links,.navlinks{
  display:flex;
  align-items:center;
  gap:30px;
  list-style:none;
}
.nav-links a,.navlinks a{
  font-size:.70rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  text-decoration:none;
  font-weight:500;
  transition:color .2s,background .2s,border-color .2s;
}
.nav-links a:hover,.nav-links a.active,.navlinks a:hover,.navlinks a.active{color:#fff}
.nav-cta,.nav-contact,.contact{
  border:1px solid rgba(155,197,186,.7);
  padding:10px 18px!important;
  color:#fff!important;
}
.nav-cta:hover,.nav-contact:hover,.contact:hover{background:#fff;color:var(--navy)!important;border-color:#fff}

/* Type system */
.eyebrow,.page-eyebrow,.section-label,.kicker,.label,.section-no{
  font-family:"DM Sans",sans-serif;
  font-size:.66rem;
  line-height:1.45;
  letter-spacing:.21em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--sage);
}
.body-text,.copy p,.body-copy p{
  font-size:.96rem;
  line-height:1.9;
  font-weight:300;
  color:var(--text);
}
h1,h2,h3,.hero-headline,.page-title,.service-title{
  font-family:"Newsreader",serif;
}

/* Shared CTA */
.cta,.cta-band{
  background:linear-gradient(135deg,var(--sage-dark) 0%,var(--sage) 100%);
}
.cta a,.cta-band a,.btn-white{
  border:1px solid rgba(255,255,255,.75);
  background:transparent;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  font-family:"DM Sans",sans-serif;
  font-size:.70rem;
  letter-spacing:.13em;
  font-weight:600;
  padding:15px 28px;
  display:inline-block;
  transition:background .2s,color .2s,transform .2s,box-shadow .2s;
}
.cta a:hover,.cta-band a:hover,.btn-white:hover{
  background:#fff;
  color:var(--sage);
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}

/* Footer */
footer{background:#091F39;color:#fff}
.footer-grid{
  display:grid;
  grid-template-columns:1.7fr 1fr 1fr 1.4fr;
  gap:55px;
}
.footer-logo,.flogo{
  font-family:"Newsreader",serif;
  font-size:1.2rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.footer-tagline,.footer-tag,.ftag{color:var(--sage-light)}
.footer-col h4{color:var(--sage-light)}
.footer-col a{transition:color .2s}
.footer-col a:hover{color:#fff}

/* Responsive */
@media(max-width:1024px){
  .wrap,.section-inner,.hero-inner,.footer-inner{padding-left:30px;padding-right:30px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .wrap,.section-inner,.hero-inner,.footer-inner{padding-left:24px;padding-right:24px}
  .nav-toggle{display:flex}
  .nav-links,.navlinks{
    display:none;
    position:fixed;
    top:76px;
    left:0;
    right:0;
    bottom:0;
    z-index:105;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    background:var(--navy);
    border-bottom:1px solid rgba(255,255,255,.08);
    padding:8px 24px 20px;
    overflow-y:auto;
  }
  .nav-links.is-open,.navlinks.is-open{display:flex}
  .nav-links li,.navlinks li{width:100%}
  .nav-links a,.navlinks a{
    display:block;
    padding:14px 0;
    border-bottom:1px solid rgba(255,255,255,.06);
    width:100%;
  }
  .nav-links li:last-child a,.navlinks li:last-child a{
    border-bottom:none;
    border:none;
    margin-top:14px;
    background:var(--sage);
    color:#fff;
    text-align:center;
    padding:14px 0;
    border-radius:2px;
  }
  .footer-grid{grid-template-columns:1fr}
}
