:root {
  --forest: #1F3D34;
  --forest-2: #143029;
  --sage: #6B7D6B;
  --sand: #E7E2D7;
  --warm-white: #FAF8F4;
  --white: #ffffff;
  --charcoal: #222222;
  --muted: #626762;
  --line: rgba(31,61,52,.14);
  --shadow: 0 18px 60px rgba(31,61,52,.10);
  --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--charcoal);
  background: var(--warm-white);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: 104px 0; }
.section-sand { background: var(--sand); }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link { position:absolute; left:-9999px; }
.skip-link:focus { left:16px; top:16px; z-index:999; background:white; padding:10px 14px; border-radius:10px; }

.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(250,248,244,.9);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(31,61,52,.08);
}
.nav-wrap { min-height: 82px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--forest); }
.brand img { width:52px; height:52px; }
.brand-text { display:flex; flex-direction:column; line-height:1; }
.brand-text strong { font-size:29px; letter-spacing:-.04em; }
.brand-text small { font-size:12px; margin-top:5px; letter-spacing:.04em; }
.site-nav { display:flex; align-items:center; gap:28px; font-size:14px; font-weight:600; }
.site-nav > a:not(.button) { text-decoration:none; opacity:.82; }
.site-nav > a:not(.button):hover { opacity:1; color:var(--forest); }
.menu-button { display:none; border:0; background:transparent; width:44px; height:44px; padding:10px; }
.menu-button span:not(.sr-only) { display:block; width:24px; height:2px; margin:5px 0; background:var(--forest); }

.button {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--forest); color:white; border:1px solid var(--forest);
  min-height:52px; padding:0 22px; border-radius:10px;
  text-decoration:none; font-weight:700; cursor:pointer;
  transition: transform .15s ease, background .15s ease;
}
.button:hover { background:var(--forest-2); transform:translateY(-1px); }
.button-small { min-height:44px; padding:0 16px; }
.button-secondary { background:transparent; color:var(--forest); }
.button-secondary:hover { color:white; }
.button-light { background:white; color:var(--forest); border-color:white; }
.button-light:hover { background:var(--sand); color:var(--forest); }

.hero {
  position:relative; overflow:hidden; padding:96px 0 86px;
  background:
    radial-gradient(circle at 90% 10%, rgba(107,125,107,.19), transparent 34%),
    linear-gradient(135deg, #FAF8F4 10%, #F2EEE6 100%);
}
.hero:after {
  content:""; position:absolute; width:520px; height:520px; right:-250px; bottom:-280px;
  border:1px solid rgba(31,61,52,.12); border-radius:50%;
}
.hero-grid { display:grid; grid-template-columns:1.15fr .75fr; gap:70px; align-items:center; }
.eyebrow {
  display:inline-block; text-transform:uppercase; letter-spacing:.16em;
  font-size:12px; font-weight:700; color:var(--sage); margin-bottom:20px;
}
.eyebrow.light { color:#c9d7d1; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(50px, 6.2vw, 82px); line-height:.99; letter-spacing:-.055em; color:var(--forest); margin-bottom:28px; }
.lead { max-width:720px; font-size:21px; line-height:1.55; color:#454b47; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.trust-row { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:30px; font-size:13px; color:#59605c; }
.trust-row span:before { content:"✓"; color:var(--forest); font-weight:700; margin-right:7px; }

.hero-card {
  background:white; border:1px solid rgba(31,61,52,.09); border-radius:30px;
  box-shadow:var(--shadow); overflow:hidden;
}
.hero-card-top { background:var(--forest); min-height:320px; display:grid; place-items:center; padding:30px; }
.hero-card-top img { width:220px; filter: drop-shadow(0 10px 28px rgba(0,0,0,.12)); }
.hero-card-copy { padding:30px 32px 34px; }
.kicker { color:var(--forest); font-weight:700; font-size:18px; margin-bottom:9px; }
.hero-card-copy p:last-child { color:var(--muted); margin-bottom:0; }

.benefits { background:white; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.benefits-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.benefits article { padding:40px 28px; border-right:1px solid var(--line); }
.benefits article:last-child { border-right:0; }
.icon { width:38px; height:38px; display:grid; place-items:center; color:var(--forest); border:1px solid var(--line); border-radius:50%; margin-bottom:18px; font-weight:700; }
.benefits h2 { font-size:17px; color:var(--forest); margin-bottom:8px; }
.benefits p { font-size:14px; color:var(--muted); margin-bottom:0; }

.section-heading { max-width:790px; margin-bottom:50px; }
.section-heading.narrow { max-width:620px; }
.section-heading h2, .about h2, .contact-copy h2 {
  font-size:clamp(36px, 4vw, 58px); line-height:1.06; letter-spacing:-.045em; color:var(--forest); margin-bottom:18px;
}
.section-heading p { font-size:18px; color:var(--muted); max-width:720px; }

.service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.service-card {
  padding:38px; background:white; border:1px solid var(--line); border-radius:var(--radius);
  transition:transform .2s ease, box-shadow .2s ease;
}
.service-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.service-number { display:inline-block; font-size:12px; letter-spacing:.15em; color:var(--sage); margin-bottom:34px; }
.service-card h3 { font-size:28px; letter-spacing:-.03em; color:var(--forest); margin-bottom:12px; }
.service-card p { color:var(--muted); }
.service-card ul { margin:24px 0 0; padding:0; list-style:none; display:grid; gap:9px; }
.service-card li { position:relative; padding-left:20px; font-size:14px; }
.service-card li:before { content:"—"; position:absolute; left:0; color:var(--sage); }

.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.process-grid article { background:rgba(255,255,255,.64); padding:32px 28px; border-radius:18px; border:1px solid rgba(31,61,52,.1); }
.process-grid span {
  display:grid; place-items:center; width:38px; height:38px; border-radius:50%;
  background:var(--forest); color:white; font-weight:700; margin-bottom:34px;
}
.process-grid h3 { color:var(--forest); font-size:22px; margin-bottom:8px; }
.process-grid p { color:#555b57; margin-bottom:0; font-size:15px; }

.about-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
.about-copy p { font-size:19px; color:#505651; }
.about-points { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.about-points span { border:1px solid var(--line); border-radius:999px; padding:9px 13px; font-size:13px; color:var(--forest); }

.contact-section { background:var(--forest); color:white; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.1fr; gap:80px; align-items:start; }
.contact-copy h2 { color:white; }
.contact-copy > p { color:#d7e1dc; max-width:500px; font-size:18px; }
.contact-details { margin-top:44px; display:grid; gap:14px; }
.contact-details a { text-decoration:none; display:flex; flex-direction:column; }
.contact-details span { text-transform:uppercase; letter-spacing:.12em; font-size:10px; color:#a8bdb3; }
.contact-details strong { font-size:19px; margin-top:2px; }

.contact-form { background:white; color:var(--charcoal); border-radius:24px; padding:34px; box-shadow:0 18px 50px rgba(0,0,0,.15); }
.contact-form label { display:block; margin-bottom:17px; }
.contact-form label > span { display:block; font-size:13px; font-weight:700; color:var(--forest); margin-bottom:7px; }
.contact-form input, .contact-form select, .contact-form textarea {
  width:100%; border:1px solid #ccd4d0; border-radius:10px; background:#fff; padding:13px 14px; color:var(--charcoal);
  outline:none; transition:border .15s ease, box-shadow .15s ease;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color:var(--sage); box-shadow:0 0 0 3px rgba(107,125,107,.15); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-note { font-size:12px; color:#747a76; margin:14px 0 0; }
.bot-field { position:absolute; overflow:hidden; clip:rect(0 0 0 0); height:1px; width:1px; margin:-1px; padding:0; border:0; }

.site-footer { background:#10251f; color:#d7e1dc; padding:34px 0; }
.footer-grid { display:grid; grid-template-columns:1fr auto auto; gap:34px; align-items:center; font-size:12px; }
.footer-brand { display:flex; align-items:center; gap:12px; }
.footer-brand img { width:48px; }
.footer-brand div { display:flex; flex-direction:column; }
.footer-brand strong { color:white; font-size:15px; }
.footer-brand span { font-size:11px; opacity:.72; }
.footer-contact { display:flex; gap:18px; }
.footer-contact a { text-decoration:none; }
.site-footer p { margin:0; }

.thanks-page { min-height:100vh; display:grid; place-items:center; padding:30px; background:var(--warm-white); }
.thanks-card { max-width:680px; text-align:center; background:white; border:1px solid var(--line); border-radius:28px; padding:50px; box-shadow:var(--shadow); }
.thanks-card img { width:100px; margin:0 auto 26px; }
.thanks-card h1 { font-size:48px; }
.thanks-card p { color:var(--muted); font-size:18px; }

@media (max-width: 900px) {
  .site-nav {
    display:none; position:absolute; top:82px; left:20px; right:20px; flex-direction:column; align-items:stretch;
    background:white; border:1px solid var(--line); padding:18px; border-radius:16px; box-shadow:var(--shadow);
  }
  .site-nav.open { display:flex; }
  .menu-button { display:block; }
  .hero { padding-top:62px; }
  .hero-grid, .about-grid, .contact-grid { grid-template-columns:1fr; gap:46px; }
  .hero-card { max-width:570px; }
  .benefits-grid, .process-grid { grid-template-columns:repeat(2,1fr); }
  .benefits article:nth-child(2) { border-right:0; }
  .benefits article:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .footer-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .container { width:min(100% - 28px, 1180px); }
  .section { padding:76px 0; }
  h1 { font-size:50px; }
  .lead { font-size:18px; }
  .service-grid, .process-grid, .benefits-grid, .field-grid { grid-template-columns:1fr; }
  .benefits article { border-right:0; border-bottom:1px solid var(--line); }
  .benefits article:last-child { border-bottom:0; }
  .service-card { padding:28px; }
  .contact-form { padding:24px; }
  .hero-card-top { min-height:250px; }
  .footer-contact { flex-direction:column; gap:6px; }
}
