:root{
  --sw-ink:#12312b;
  --sw-green:#0f6b57;
  --sw-green-dark:#0a4c3e;
  --sw-accent:#e5734b;
  --sw-soft:#f2f7f4;
  --sw-cream:#fbf9f4;
  --sw-border:#e3ebe6;
}
body{
  font-family:"Manrope",system-ui,sans-serif;
  color:var(--sw-ink);
  background:var(--sw-cream);
}
h1,h2,h3,.display-4,.display-5,.display-6{font-family:"Fraunces",Georgia,serif;letter-spacing:-.01em;}
a{color:var(--sw-green);}
a:hover{color:var(--sw-green-dark);}
.text-accent{color:var(--sw-accent);}

/* nav */
.sw-nav{background:rgba(251,249,244,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--sw-border);padding:.65rem 0;}
.navbar-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;}
.brand-mark{width:38px;height:38px;border-radius:50%;background:var(--sw-green);color:#fff;display:grid;place-items:center;font-family:"Fraunces",serif;font-size:.95rem;}
.brand-text{font-family:"Fraunces",serif;font-size:1.15rem;color:var(--sw-ink);line-height:1;}
.brand-text em{font-style:normal;color:var(--sw-green);}
.sw-nav .nav-link{font-size:.92rem;font-weight:600;color:#3d5750;padding:.45rem .7rem;border-radius:999px;}
.sw-nav .nav-link:hover,.sw-nav .nav-link.active{color:var(--sw-green-dark);background:var(--sw-soft);}

/* buttons */
.btn-sw{background:var(--sw-green);color:#fff;border-radius:999px;padding:.6rem 1.5rem;font-weight:600;border:0;}
.btn-sw:hover{background:var(--sw-green-dark);color:#fff;}
.btn-ghost{border:1.5px solid var(--sw-green);color:var(--sw-green);border-radius:999px;padding:.6rem 1.5rem;font-weight:600;background:transparent;}
.btn-ghost:hover{background:var(--sw-green);color:#fff;}
.btn-outline-light{border-radius:999px;padding:.6rem 1.5rem;font-weight:600;}

/* sections */
.section{padding:5rem 0;}
.bg-soft{background:var(--sw-soft);}
.hero{padding:4.5rem 0 4rem;background:linear-gradient(180deg,var(--sw-soft),var(--sw-cream));}
.page-hero{padding:4rem 0 2.5rem;background:linear-gradient(180deg,var(--sw-soft),var(--sw-cream));}
.kicker{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sw-accent);}

/* cards */
.sw-card{background:#fff;border:1px solid var(--sw-border);border-radius:1.25rem;padding:1.6rem;transition:transform .2s ease,box-shadow .2s ease;}
.sw-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(15,107,87,.10);}
.step-card{background:#fff;border:1px solid var(--sw-border);border-radius:1.25rem;padding:1.4rem;text-align:center;}
.icon-badge{width:52px;height:52px;border-radius:1rem;background:var(--sw-soft);color:var(--sw-green);display:grid;place-items:center;font-size:1.4rem;}
.step-card .icon-badge{margin-inline:auto;}
.num-badge{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--sw-accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem;}

/* lists */
.tick-list{list-style:none;padding-left:0;margin-bottom:0;}
.tick-list li{position:relative;padding-left:1.6rem;margin-bottom:.5rem;color:#415a53;}
.tick-list li::before{content:"\f26e";font-family:"bootstrap-icons";position:absolute;left:0;top:0;color:var(--sw-green);}

/* stats */
.stat{background:#fff;border:1px solid var(--sw-border);border-radius:1.25rem;padding:1.75rem 1rem;height:100%;}
.stat-num{font-family:"Fraunces",serif;font-size:2.4rem;font-weight:700;color:var(--sw-green);line-height:1;margin-bottom:.4rem;}

/* service tiles */
.svc-tile{background:#fff;border:1px solid var(--sw-border);border-radius:1rem;padding:1.25rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-weight:600;font-size:.92rem;transition:.2s;}
.svc-tile i{font-size:1.7rem;color:var(--sw-green);}
.svc-tile:hover{background:var(--sw-green);color:#fff;}
.svc-tile:hover i{color:#fff;}

/* clients */
.client-tile{background:#fff;border:1px solid var(--sw-border);border-radius:1rem;padding:1.75rem 1rem;display:grid;place-items:center;text-align:center;font-family:"Fraunces",serif;font-weight:700;color:#3d5750;}

/* quote */
.pull-quote{background:var(--sw-green);color:#fff;border-radius:1.25rem;padding:2rem;font-family:"Fraunces",serif;font-size:1.3rem;line-height:1.5;text-align:center;}

/* cta */
.cta-band{background:var(--sw-green-dark);color:#fff;padding:4.5rem 0;}
.cta-band h2{color:#fff;}

/* footer */
.sw-footer{background:var(--sw-ink);color:#dfeae6;padding:3.5rem 0 2rem;}
.sw-footer h6{color:#fff;font-weight:700;margin-bottom:1rem;}
.footer-links li{margin-bottom:.5rem;font-size:.9rem;opacity:.85;}
.footer-links a{color:#dfeae6;text-decoration:none;}
.footer-links a:hover{color:#fff;text-decoration:underline;}

@media (max-width:991.98px){
  .section{padding:3.5rem 0;}
  .stat-num{font-size:2rem;}
}
