:root {
  --ink: #17221e;
  --green: #12362d;
  --green-2: #1f5a49;
  --sage: #dce8df;
  --cream: #f5f3ed;
  --white: #ffffff;
  --line: rgba(23,34,30,.13);
  --muted: #66736e;
  --max: 1160px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); background:var(--cream); line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.shell { width:min(calc(100% - 40px), var(--max)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(245,243,237,.91); backdrop-filter:blur(16px); border-bottom:1px solid var(--line); }
.nav-wrap { height:78px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:11px; min-width:max-content; }
.brand-type { display:flex; flex-direction:column; line-height:1; letter-spacing:.04em; }
.brand-type strong { font-family: Georgia, "Times New Roman", serif; font-size:18px; letter-spacing:.08em; }
.brand-type small { font-size:8.5px; font-weight:700; letter-spacing:.23em; margin-top:5px; color:var(--muted); }
.nav-links { display:flex; gap:28px; align-items:center; font-size:14px; font-weight:650; }
.nav-links a:not(.nav-cta) { padding:10px 0; }
.nav-cta { background:var(--green); color:white; padding:10px 18px; border-radius:999px; }
.menu-toggle { display:none; border:1px solid var(--line); background:transparent; border-radius:999px; padding:8px 14px; font:inherit; font-size:14px; }
.hero { position:relative; overflow:hidden; padding:110px 0 0; background:linear-gradient(180deg,#f5f3ed 0%,#eeefe8 100%); }
.hero-pattern { position:absolute; width:520px; height:520px; border:1px solid rgba(31,90,73,.12); border-radius:50%; right:-150px; top:-140px; box-shadow:0 0 0 90px rgba(31,90,73,.025),0 0 0 180px rgba(31,90,73,.02); }
.hero-grid { display:grid; grid-template-columns:1.35fr .75fr; gap:80px; align-items:center; position:relative; }
.eyebrow { margin:0 0 16px; color:var(--green-2); font-size:12px; font-weight:800; letter-spacing:.19em; text-transform:uppercase; }
.hero h1, .section h2, .contact-section h2 { font-family:Georgia,"Times New Roman",serif; font-weight:500; letter-spacing:-.035em; line-height:1.03; margin:0; }
.hero h1 { font-size:clamp(46px,7vw,82px); max-width:820px; }
.hero h1 span { color:var(--green-2); }
.hero-lede { max-width:760px; margin:28px 0 0; font-size:19px; color:#53605b; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:36px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; border-radius:999px; padding:0 22px; font-weight:750; font-size:14px; }
.button-primary { background:var(--green); color:#fff; }
.button-ghost { border:1px solid var(--line); background:rgba(255,255,255,.45); }
.hero-card { background:var(--green); color:#fff; padding:36px; border-radius:24px; box-shadow:0 25px 70px rgba(18,54,45,.18); }
.card-kicker { font-size:11px; text-transform:uppercase; letter-spacing:.17em; color:#bbd1c8; font-weight:800; }
.hero-card h2 { font-family:Georgia,"Times New Roman",serif; font-size:30px; font-weight:500; line-height:1.15; margin:14px 0 24px; }
.check-list { list-style:none; margin:0; padding:0; display:grid; gap:12px; font-size:14px; color:#e8f0ec; }
.check-list li { position:relative; padding-left:23px; }
.check-list li::before { content:""; position:absolute; width:8px; height:8px; border:2px solid #9bc0b1; border-radius:50%; left:0; top:.55em; }
.stat-row { margin-top:90px; padding:28px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.stat-row div { display:flex; flex-direction:column; gap:2px; }
.stat-row strong { font-family:Georgia,"Times New Roman",serif; font-size:20px; font-weight:500; }
.stat-row span { font-size:12px; color:var(--muted); }
.section { padding:112px 0; }
.section-tint { background:#fff; }
.two-col { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; }
.section h2, .contact-section h2 { font-size:clamp(38px,5vw,58px); }
.section-copy { font-size:18px; color:#56625d; }
.section-copy p:first-child { margin-top:5px; }
.quote-line { border-left:3px solid var(--green-2); padding:8px 0 8px 22px; margin-top:30px; font-family:Georgia,"Times New Roman",serif; font-size:21px; color:var(--ink); }
.section-heading.wide { max-width:760px; margin-bottom:48px; }
.section-heading.wide > p:last-child { max-width:620px; color:var(--muted); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.service-card { min-height:300px; background:var(--cream); padding:30px; border:1px solid rgba(23,34,30,.08); border-radius:18px; transition:.25s ease; }
.service-card:hover { transform:translateY(-3px); box-shadow:0 18px 45px rgba(20,45,37,.08); }
.service-card > span { color:var(--green-2); font-weight:800; font-size:11px; letter-spacing:.12em; }
.service-card h3 { font-family:Georgia,"Times New Roman",serif; font-size:24px; font-weight:500; line-height:1.15; margin:48px 0 12px; }
.service-card p { color:var(--muted); font-size:14px; margin:0; }
.dark-section { background:var(--green); color:#fff; }
.eyebrow.light { color:#b5d0c4; }
.experience-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; }
.muted { color:#c7d5cf; max-width:570px; }
.experience-list { border-top:1px solid rgba(255,255,255,.18); }
.experience-list div { display:grid; grid-template-columns:170px 1fr; gap:28px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.experience-list strong { font-family:Georgia,"Times New Roman",serif; font-weight:500; font-size:20px; }
.experience-list span { color:#c7d5cf; font-size:14px; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.process-step { padding:28px 26px 0 0; }
.process-step span { width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:12px; font-weight:800; color:var(--green-2); }
.process-step h3 { font-family:Georgia,"Times New Roman",serif; font-weight:500; font-size:25px; margin:48px 0 8px; }
.process-step p { color:var(--muted); font-size:14px; margin:0; }
.contact-section { padding:20px 0 90px; background:var(--cream); }
.contact-card { background:#183f34; color:#fff; border-radius:26px; padding:58px; display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:center; overflow:hidden; position:relative; }
.contact-card::after { content:""; position:absolute; width:340px; height:340px; border:1px solid rgba(255,255,255,.1); border-radius:50%; right:-180px; top:-130px; }
.contact-card p:not(.eyebrow) { color:#c8d7d1; max-width:630px; }
.coming-soon { border-left:1px solid rgba(255,255,255,.2); padding-left:42px; display:flex; flex-direction:column; position:relative; z-index:1; }
.coming-soon span, .coming-soon small { color:#b7cbc3; }
.coming-soon span { text-transform:uppercase; font-size:10px; font-weight:800; letter-spacing:.18em; }
.coming-soon strong { font-family:Georgia,"Times New Roman",serif; font-size:34px; font-weight:500; margin:7px 0; }
.coming-soon small { font-size:12px; }
footer { background:#102c25; color:#fff; padding:30px 0; }
.footer-wrap { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.brand-footer .brand-type small { color:#9eb6ac; }
.footer-wrap p { color:#9eb6ac; font-size:11px; }
.reveal { opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }
.delay-1 { transition-delay:.08s; } .delay-2 { transition-delay:.16s; } .delay-3 { transition-delay:.24s; }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none} }
@media (max-width:900px) {
  .hero { padding-top:72px; }
  .hero-grid, .two-col, .experience-grid, .contact-card { grid-template-columns:1fr; gap:48px; }
  .hero-card { max-width:620px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:repeat(2,1fr); gap:36px 20px; }
  .coming-soon { border-left:0; border-top:1px solid rgba(255,255,255,.2); padding:30px 0 0; }
}
@media (max-width:720px) {
  .shell { width:min(calc(100% - 28px), var(--max)); }
  .nav-wrap { height:68px; }
  .brand-type strong { font-size:16px; }
  .brand-type small { font-size:7.5px; }
  .menu-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:68px; left:0; right:0; background:var(--cream); border-bottom:1px solid var(--line); padding:18px 20px 24px; flex-direction:column; align-items:stretch; gap:3px; }
  .nav-links.open { display:flex; }
  .nav-links a { padding:11px 6px !important; }
  .nav-cta { text-align:center; margin-top:5px; }
  .hero { padding-top:60px; }
  .hero h1 { font-size:clamp(43px,13vw,62px); }
  .hero-lede { font-size:17px; }
  .hero-grid { gap:42px; }
  .hero-card { padding:28px; border-radius:20px; }
  .stat-row { grid-template-columns:1fr; margin-top:58px; gap:18px; }
  .section { padding:80px 0; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:0; }
  .service-card h3 { margin-top:34px; }
  .experience-list div { grid-template-columns:1fr; gap:6px; }
  .process-grid { grid-template-columns:1fr; }
  .process-step h3 { margin-top:26px; }
  .contact-card { padding:38px 26px; border-radius:20px; }
  .footer-wrap { flex-direction:column; align-items:flex-start; }
}
