:root{
  --espresso:#241611;
  --espresso-soft:#3a241c;
  --espresso-line:#4a2f24;
  --copper:#b5651d;
  --copper-bright:#cf7a2c;
  --copper-deep:#8f4d15;
  --cream:#f4ede2;
  --cream-deep:#ebdcc6;
  --cream-line:#d8c9b3;
  --ink:#241611;
  --muted:#6b5648;
  --maxw:1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Big Shoulders Text",sans-serif;
  font-weight:500;
  color:var(--ink);
  background:var(--cream);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}

/* ----- type ----- */
.eyebrow{
  font-family:"Big Shoulders Text",sans-serif;
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--copper);
}
.eyebrow.center{text-align:center}
.eyebrow.light{color:var(--copper-bright)}
.eyebrow.center{display:block}

h1,h2,h3{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:.92;
  color:var(--espresso);
}

/* ----- buttons ----- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.95rem;
  padding:.95rem 1.6rem;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease;
  min-height:44px;
  line-height:1;
}
.btn-filled{background:var(--copper);color:var(--cream);border-color:var(--copper)}
.btn-filled:hover{background:var(--copper-deep);border-color:var(--copper-deep)}
.btn-outline{background:transparent;color:var(--espresso);border-color:var(--espresso)}
.btn-outline:hover{background:var(--espresso);color:var(--cream)}
.btn-outline.light{color:var(--cream);border-color:var(--cream)}
.btn-outline.light:hover{background:var(--cream);color:var(--espresso)}
.btn.big{font-size:1.05rem;padding:1.1rem 2rem;min-height:52px}

/* ----- nav ----- */
.nav{
  position:sticky;
  top:42px;
  z-index:50;
  background:var(--cream);
  border-bottom:1px solid var(--cream-line);
}
.nav-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:.85rem 1.4rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.wordmark{display:flex;flex-direction:column;line-height:1}
.wm-main{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:900;
  text-transform:uppercase;
  font-size:1.5rem;
  letter-spacing:.02em;
  color:var(--espresso);
}
.wm-sub{
  font-family:"Big Shoulders Text",sans-serif;
  font-weight:600;
  text-transform:uppercase;
  font-size:.62rem;
  letter-spacing:.28em;
  color:var(--copper);
  margin-top:2px;
}
.wm-main.light{color:var(--cream)}
.wm-sub.light{color:var(--copper-bright)}

.nav-links{display:flex;align-items:center;gap:1.6rem}
.nav-links a{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:700;
  text-transform:uppercase;
  font-size:.82rem;
  letter-spacing:.08em;
  color:var(--espresso);
  min-height:44px;
  display:inline-flex;
  align-items:center;
  transition:color 180ms ease;
}
.nav-links a:hover{color:var(--copper)}
.nav-cta{
  background:var(--espresso);
  color:var(--cream)!important;
  padding:.7rem 1.1rem;
  border:1.5px solid var(--espresso);
}
.nav-cta:hover{background:var(--copper);border-color:var(--copper)!important}

.hamburger{
  display:none;
  flex-direction:column;
  justify-content:space-between;
  width:34px;height:26px;
  background:none;border:none;cursor:pointer;
  padding:0;
}
.hamburger span{
  display:block;height:3px;width:100%;background:var(--espresso);
  transition:transform 220ms ease,opacity 180ms ease;
}

/* ----- hero ----- */
.hero{
  position:relative;
  background:var(--cream);
  background-image:
    linear-gradient(180deg,var(--cream) 0%,var(--cream-deep) 100%);
  padding:clamp(4rem,10vw,8rem) 1.4rem clamp(3.5rem,8vw,6rem);
  overflow:hidden;
}
.hero-frame{position:absolute;inset:24px;pointer-events:none;color:var(--cream-line)}
.crop{position:absolute;width:34px;height:34px}
.crop.tl{top:0;left:0}
.crop.tr{top:0;right:0}
.crop.bl{bottom:0;left:0}
.crop.br{bottom:0;right:0}

.hero-inner{
  max-width:900px;
  margin:0 auto;
  text-align:center;
  position:relative;
  z-index:2;
}
.hero-headline{
  font-size:clamp(2.8rem,9vw,6.2rem);
  margin:1.1rem 0 1.2rem;
  font-weight:900;
}
.hero-headline br{display:none}
.hero-sub{
  font-size:clamp(1rem,2.4vw,1.25rem);
  color:var(--muted);
  max-width:34ch;
  margin:0 auto 2rem;
  font-weight:500;
}
.hero-cta-row{
  display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;
}
.hero-rule{
  margin:3.5rem auto 0;
  max-width:900px;
  height:1px;
  background:repeating-linear-gradient(90deg,var(--cream-line) 0 14px,transparent 14px 22px);
}

/* ----- trust ----- */
.trust{
  background:var(--espresso);
  color:var(--cream);
  padding:clamp(3.5rem,9vw,6.5rem) 1.4rem;
  text-align:center;
}
.trust .eyebrow{color:var(--copper-bright)}
.proof-sentence{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.005em;
  line-height:1;
  font-size:clamp(1.7rem,5.2vw,3.6rem);
  max-width:18ch;
  margin:1.4rem auto 0;
  color:var(--cream);
}
.proof-num{color:var(--copper-bright)}
.stars{
  display:flex;gap:.4rem;justify-content:center;
  margin-top:2rem;color:var(--copper-bright);
}

/* ----- section heads ----- */
.section-head{
  text-align:center;
  max-width:720px;
  margin:0 auto 3rem;
  padding:0 1.4rem;
}
.section-title{
  font-size:clamp(2.2rem,6vw,3.8rem);
  margin-top:1rem;
}

/* ----- services bands ----- */
.services{padding:clamp(4rem,9vw,7rem) 0 0;background:var(--cream)}
.bands{display:flex;flex-direction:column}
.band{
  display:grid;
  grid-template-columns:80px 1.1fr 1.4fr;
  align-items:center;
  gap:1.4rem;
  padding:2.2rem clamp(1.4rem,5vw,4rem);
  border-top:1px solid var(--cream-line);
  background:var(--cream);
  transition:background-color 200ms ease;
}
.band:last-child{border-bottom:1px solid var(--cream-line)}
.band.tint{background:var(--cream-deep)}
.band:hover{background:var(--espresso);color:var(--cream)}
.band:hover .band-name{color:var(--cream)}
.band:hover .band-desc{color:var(--cream)}
.band:hover .band-index{color:var(--copper-bright)}

.band-index{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:900;
  font-size:2.4rem;
  color:var(--copper);
  line-height:1;
}
.band-name{
  font-size:clamp(1.8rem,4vw,2.8rem);
  font-weight:900;
  color:var(--espresso);
}
.band-desc{
  font-size:clamp(1rem,1.8vw,1.15rem);
  color:var(--muted);
  font-weight:500;
  max-width:48ch;
}

/* ----- about ----- */
.about{
  background:var(--cream-deep);
  padding:clamp(4rem,9vw,7rem) 1.4rem;
}
.about-inner{max-width:880px;margin:0 auto}
.about-inner .eyebrow{margin-bottom:1.4rem;display:block}
.about-body{
  font-size:clamp(1.1rem,2.4vw,1.4rem);
  line-height:1.45;
  color:var(--espresso);
  font-weight:500;
  max-width:62ch;
}
.about-meta{
  margin-top:2.5rem;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
  border-top:1px solid var(--cream-line);
  padding-top:1.8rem;
}
.meta-block{display:flex;flex-direction:column;gap:.4rem}
.meta-label{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.72rem;
  color:var(--copper);
}
.meta-value{
  font-size:1.02rem;
  color:var(--espresso);
  font-weight:600;
}
.meta-value a{color:var(--espresso);border-bottom:1px solid var(--copper)}
.meta-value a:hover{color:var(--copper)}

/* ----- CTA band ----- */
.cta-band{
  background:var(--espresso);
  color:var(--cream);
  padding:clamp(3.5rem,8vw,6rem) 1.4rem;
}
.cta-inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.cta-headline{
  font-size:clamp(2rem,5.5vw,3.4rem);
  color:var(--cream);
  margin:.9rem 0 1rem;
}
.cta-sub{
  color:#cdb8a6;
  max-width:42ch;
  margin-bottom:1.6rem;
  font-weight:500;
}
.cta-addr{
  margin-top:1rem;
  font-size:.9rem;
  color:#a8937f;
  letter-spacing:.02em;
}

/* form */
.contact-form{
  background:var(--espresso-soft);
  border:1px solid var(--espresso-line);
  padding:1.8rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.form-label{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.78rem;
  color:var(--copper-bright);
  margin-bottom:.2rem;
}
.field{display:flex;flex-direction:column;gap:.4rem}
.field span{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#cdb8a6;
  font-weight:600;
}
.field input,.field textarea{
  background:var(--espresso);
  border:1px solid var(--espresso-line);
  color:var(--cream);
  font-family:"Big Shoulders Text",sans-serif;
  font-size:1rem;
  padding:.7rem .8rem;
  border-radius:0;
  width:100%;
}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--copper-bright);
}
.contact-form .btn{margin-top:.4rem;width:100%}
.form-note{
  font-size:.85rem;color:var(--copper-bright);
  min-height:1.2em;font-weight:600;
}

/* ----- footer ----- */
.footer{
  background:var(--espresso);
  color:var(--cream);
  border-top:1px solid var(--espresso-line);
  padding:3.5rem 1.4rem 1.4rem;
}
.footer-inner{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:2rem;
}
.f-col{display:flex;flex-direction:column;gap:.55rem}
.wordmark{margin-bottom:.2rem}
.f-head{
  font-family:"Big Shoulders Display",sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.74rem;
  color:var(--copper-bright);
  margin-bottom:.3rem;
}
.f-col a{
  color:var(--cream);
  font-weight:500;
  font-size:.98rem;
  transition:color 180ms ease;
}
.f-col a:hover{color:var(--copper-bright)}
.f-line{color:#cdb8a6;font-size:.95rem;line-height:1.5;font-weight:500}
.f-tag{color:#a8937f;font-size:.9rem;margin-top:.5rem;max-width:30ch;font-weight:500}
.f-phone{color:var(--copper-bright)!important;font-size:1.05rem!important;font-weight:700!important}
.footer-base{
  max-width:var(--maxw);
  margin:2.5rem auto 0;
  padding-top:1.2rem;
  border-top:1px solid var(--espresso-line);
  display:flex;justify-content:space-between;
  font-size:.78rem;color:#8c7563;
  flex-wrap:wrap;gap:.5rem;
}

/* ----- reveal (JS-applied) ----- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity 600ms ease,transform 600ms ease}
.reveal.in{opacity:1;transform:none}

/* ----- responsive ----- */
@media(max-width:900px){
  .cta-inner{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr 1fr;gap:1.8rem}
}
@media(max-width:760px){
  .hero-headline br{display:inline}
  .about-meta{grid-template-columns:1fr;gap:1.2rem}
  .band{
    grid-template-columns:1fr;
    gap:.6rem;
    padding:1.8rem 1.4rem;
  }
  .band-index{font-size:1.6rem}
}
@media(max-width:700px){
  .hamburger{display:flex}
  .nav-links{
    position:absolute;
    top:100%;left:0;right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--cream);
    border-bottom:1px solid var(--cream-line);
    padding:0;
    max-height:0;
    overflow:hidden;
    transition:max-height 280ms ease;
  }
  .nav-links.open{max-height:420px}
  .nav-links a{
    padding:1rem 1.4rem;
    border-top:1px solid var(--cream-line);
    min-height:48px;
    font-size:.95rem;
  }
  .nav-cta{margin:1rem 1.4rem;text-align:center;justify-content:center}
  .hero-cta-row .btn{flex:1 1 100%}
  .cta-inner{grid-template-columns:1fr}
}
@media(min-width:701px){
  .hero-headline br:nth-child(1){display:none}
}
@media(max-width:480px){
  .footer-inner{grid-template-columns:1fr}
  .footer-base{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
}