:root{
  --paper:#F7F4ED;
  --paper-soft:#EFEAE0;
  --surface:#FFFFFF;
  --ink:#1B1B1B;
  --ink-soft:#4A453C;
  --line:#E2DBCD;
  --crimson:#B83A2B;
  --crimson-dark:#8F2A1F;
  --crimson-soft:#F3DEDA;
  --forest:#2F4A3C;
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  font-size:16px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  background-color:var(--paper);
  color:var(--ink);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

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

.site-nav{
  position:sticky;
  top:0;
  z-index:50;
  background-color:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:1160px;
  margin:0 auto;
  padding:0 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:72px;
}
.brand{
  font-size:24px;
  font-weight:800;
  letter-spacing:-0.5px;
  color:var(--ink);
}
.brand-mark{color:var(--crimson)}
.nav-links{display:flex;gap:34px}
.nav-links a{
  font-size:15px;
  font-weight:600;
  color:var(--ink-soft);
  transition:color .2s ease;
}
.nav-links a:hover{color:var(--crimson)}
.nav-cta{
  background-color:var(--crimson);
  color:#FFFFFF;
  font-size:14px;
  font-weight:700;
  padding:11px 22px;
  border-radius:6px;
  transition:background-color .2s ease;
}
.nav-cta:hover{background-color:var(--crimson-dark)}
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
}
.nav-toggle span{
  width:26px;height:2px;background-color:var(--ink);display:block;
  transition:transform .3s ease,opacity .3s ease;
}

.hero-band{
  position:relative;
  background:
    radial-gradient(ellipse at 20% 20%, rgba(184,58,43,.35), transparent 55%),
    radial-gradient(ellipse at 85% 80%, rgba(47,74,60,.6), transparent 50%),
    linear-gradient(135deg,#33100B 0%,#57190F 45%,#2F1A12 100%);
  color:#FFFFFF;
  overflow-x:hidden;
}
.hero-overlay{
  max-width:1160px;
  margin:0 auto;
  padding:110px 28px 90px;
}
.hero-kicker{
  display:inline-block;
  font-size:13px;
  font-weight:700;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:#F2C6BC;
  border:1px solid rgba(242,198,188,.45);
  padding:7px 16px;
  border-radius:30px;
  margin-bottom:28px;
}
.hero-overlay h1{
  font-size:58px;
  line-height:1.08;
  font-weight:800;
  letter-spacing:-1.5px;
  max-width:780px;
  margin-bottom:24px;
}
.hero-sub{
  font-size:19px;
  line-height:1.7;
  max-width:640px;
  color:#EFE3DE;
  margin-bottom:36px;
}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:56px}
.btn{
  display:inline-block;
  font-size:15px;
  font-weight:700;
  padding:14px 28px;
  border-radius:6px;
  transition:background-color .2s ease,transform .2s ease;
}
.btn-light{background-color:#FFFFFF;color:var(--crimson-dark)}
.btn-light:hover{transform:translateY(-2px)}
.btn-ghost{border:1px solid rgba(255,255,255,.6);color:#FFFFFF}
.btn-ghost:hover{background-color:#FFFFFF;color:var(--crimson-dark)}
.btn-solid{background-color:var(--crimson);color:#FFFFFF;border:none;cursor:pointer}
.btn-solid:hover{background-color:var(--crimson-dark)}
.hero-stats{
  display:flex;
  gap:0;
  flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.25);
  padding-top:34px;
}
.hero-stat{flex:1;min-width:160px;padding-right:28px}
.hero-stat-num{font-size:44px;font-weight:800;letter-spacing:-1px;display:block}
.hero-stat-label{font-size:14px;color:#E7D5CE;text-transform:uppercase;letter-spacing:1px}

.statement-row{
  max-width:1160px;
  margin:0 auto;
  padding:110px 28px;
}
.section-tag{
  font-size:13px;
  font-weight:800;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:var(--crimson);
  margin-bottom:18px;
}
.statement-row h2{
  font-size:40px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:-1px;
  max-width:820px;
  margin-bottom:26px;
}
.statement-text{
  font-size:19px;
  line-height:1.75;
  color:var(--ink-soft);
  max-width:820px;
  margin-bottom:50px;
}
.statement-meta{display:flex;gap:34px;flex-wrap:wrap}
.meta-block{flex:1;min-width:240px;border-top:2px solid var(--crimson);padding-top:20px}
.meta-num{font-size:30px;font-weight:800;color:var(--crimson);display:block;margin-bottom:8px}
.meta-block p{color:var(--ink-soft);font-size:16px}

.services-section{
  background-color:var(--paper-soft);
  padding:110px 28px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.services-section .section-tag,
.services-section h2,
.services-section .section-lead,
.services-list{max-width:1160px;margin-left:auto;margin-right:auto}
.services-section h2{font-size:40px;font-weight:800;letter-spacing:-1px;max-width:720px;margin-bottom:18px}
.section-lead{font-size:18px;color:var(--ink-soft);max-width:680px;margin-bottom:60px}
.services-list{display:flex;flex-direction:column;gap:0}
.service-row{
  display:flex;
  gap:34px;
  align-items:flex-start;
  padding:38px 0;
  border-top:1px solid var(--line);
}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-num{
  font-size:20px;
  font-weight:800;
  color:var(--crimson);
  min-width:52px;
  padding-top:2px;
}
.service-body{flex:1}
.service-body h3{font-size:24px;font-weight:800;letter-spacing:-0.5px;margin-bottom:10px}
.service-body p{color:var(--ink-soft);font-size:16px;max-width:660px}
.service-tags{display:flex;gap:10px;flex-wrap:wrap;list-style:none;min-width:280px;justify-content:flex-end;align-self:flex-start}
.service-tags li{
  font-size:12.5px;
  font-weight:700;
  color:var(--forest);
  background-color:#E4EDE7;
  padding:6px 13px;
  border-radius:20px;
}

.approach-section{max-width:1160px;margin:0 auto;padding:110px 28px}
.approach-section h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin-bottom:54px}
.approach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.approach-step{
  background-color:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding:30px 26px;
  transition:transform .25s ease,box-shadow .25s ease;
}
.approach-step:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(27,27,27,.09)}
.approach-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:50%;
  background-color:var(--crimson-soft);color:var(--crimson-dark);
  font-size:20px;font-weight:800;margin-bottom:20px;
}
.approach-step h3{font-size:21px;font-weight:800;margin-bottom:10px}
.approach-step p{color:var(--ink-soft);font-size:15.5px}

.faq-section{
  background-color:var(--forest);
  color:#FFFFFF;
  padding:110px 28px;
}
.faq-section .section-tag{color:#D8E4DC}
.faq-section h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin-bottom:54px}
.faq-list{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid rgba(255,255,255,.2)}
.faq-item:first-child{border-top:1px solid rgba(255,255,255,.2)}
.faq-question{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:none;border:none;cursor:pointer;
  color:#FFFFFF;
  font-size:19px;font-weight:700;text-align:left;
  padding:26px 0;
  font-family:inherit;
}
.faq-icon{font-size:28px;font-weight:300;color:#B9D0C1;transition:transform .3s ease}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-answer p{color:#D4E0D8;font-size:16px;line-height:1.7;padding-bottom:26px;max-width:720px}

.contact-section{max-width:1160px;margin:0 auto;padding:110px 28px}
.contact-section h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin-bottom:18px}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;margin-top:50px}
.contact-info h3{font-size:22px;font-weight:800;margin-bottom:22px}
.contact-line{font-size:16px;color:var(--ink-soft);margin-bottom:14px}
.contact-line a{color:var(--crimson);font-weight:700}
.contact-address{
  margin-top:26px;padding-top:26px;border-top:1px solid var(--line);
  font-size:15px;color:var(--ink-soft);line-height:1.6;
}
.contact-form{display:flex;flex-direction:column;gap:8px}
.contact-form label{font-size:14px;font-weight:700;margin-top:10px}
.contact-form input,.contact-form textarea{
  font-family:inherit;font-size:16px;
  padding:13px 15px;
  border:1px solid var(--line);
  border-radius:6px;
  background-color:var(--surface);
  color:var(--ink);
}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--crimson);border-color:var(--crimson)}
.contact-form .btn{margin-top:22px;align-self:flex-start}
.form-note{font-size:14px;color:var(--forest);font-weight:600;margin-top:12px}

.site-footer{
  background-color:#1B1B1B;
  color:#F7F4ED;
  padding:44px 28px;
}
.footer-inner,.site-footer{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.footer-brand{font-size:22px;font-weight:800;letter-spacing:-0.5px}
.footer-links{display:flex;gap:28px;flex-wrap:wrap}
.footer-links a{font-size:15px;color:#D8D2C6;text-decoration:underline;text-underline-offset:3px}
.footer-links a:hover{color:#FFFFFF}
.footer-copy{font-size:13.5px;color:#9B948A}

.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:none}

@media (max-width:900px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .nav-cta{display:none}
  .nav-inner.open .nav-links{
    display:flex;flex-direction:column;gap:0;
    position:absolute;top:72px;left:0;right:0;
    background-color:var(--paper);border-bottom:1px solid var(--line);
    padding:10px 28px 22px;
  }
  .nav-inner.open .nav-links a{padding:14px 0;border-bottom:1px solid var(--line)}
  .hero-overlay{padding:80px 24px 64px}
  .hero-overlay h1{font-size:42px}
  .statement-row,.services-section,.approach-section,.contact-section,.faq-section{padding:80px 24px}
  .statement-row h2,.services-section h2,.approach-section h2,.faq-section h2,.contact-section h2{font-size:32px}
  .service-row{flex-direction:column;gap:14px}
  .service-tags{min-width:0;justify-content:flex-start}
  .approach-grid{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr}
}

@media (max-width:520px){
  .hero-overlay h1{font-size:34px}
  .approach-grid{grid-template-columns:1fr}
  .hero-stats{gap:24px}
  .hero-stat{min-width:120px}
}
