:root {
  --ink: #18211c;
  --ink-soft: #526059;
  --forest: #1f352c;
  --forest-2: #29473a;
  --moss: #778d67;
  --cream: #f6f0e5;
  --paper: #fffdf8;
  --sand: #d8c7ad;
  --line: rgba(24, 33, 28, .13);
  --shadow: 0 22px 55px rgba(32, 39, 34, .12);
  --radius: 24px;
  --radius-sm: 16px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { display:block; max-width:100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }

.skip-link {
  position:absolute; left:-9999px; top:8px; z-index:1000;
  background:#fff; padding:10px 14px; border-radius:10px;
}
.skip-link:focus { left:8px; }

.container { width:min(var(--max), calc(100% - 40px)); margin-inline:auto; }
.section { padding: 92px 0; }
.section--tight { padding: 64px 0; }
.section--cream { background: var(--cream); }
.section--forest { background: var(--forest); color: #fff; }
.eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; font-weight:800;
  color: var(--forest-2);
}
.section--forest .eyebrow { color:#c6d2c4; }
.eyebrow::before { content:""; width:26px; height:2px; background: currentColor; }
h1,h2,h3 { font-family: Georgia, "Times New Roman", serif; line-height:1.03; margin:0; letter-spacing:-.035em; }
h1 { font-size: clamp(3rem, 7vw, 6.7rem); }
h2 { font-size: clamp(2.25rem, 4.5vw, 4.4rem); }
h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
p { margin:0; }
.lede { font-size: clamp(1.05rem, 1.6vw, 1.3rem); color:var(--ink-soft); max-width:680px; }
.section--forest .lede { color:#dce5dd; }
.muted { color:var(--ink-soft); }
.kicker { font-weight:750; color:var(--forest-2); }

.site-header {
  position:sticky; top:0; z-index:100;
  background:rgba(255,253,248,.88); backdrop-filter: blur(16px);
  border-bottom:1px solid transparent; transition:.2s ease;
}
.site-header.is-scrolled { border-bottom-color:var(--line); box-shadow:0 8px 25px rgba(15,22,18,.05); }
.header-inner { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { text-decoration:none; display:flex; align-items:center; gap:12px; font-weight:850; }
.brand-mark { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--forest); color:#fff; font-family:Georgia,serif; font-size:1.05rem; }
.brand-text small { display:block; font-size:.66rem; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-soft); font-weight:800; }
.nav { display:flex; align-items:center; gap:28px; }
.nav a { text-decoration:none; font-size:.94rem; font-weight:680; color:#34413a; }
.nav a[aria-current="page"] { color:var(--forest); }
.nav .btn { color:#fff; }
.nav-toggle { display:none; background:none; border:0; padding:8px; border-radius:10px; }
.nav-toggle span { display:block; width:24px; height:2px; background:var(--ink); margin:5px; }

.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:48px; padding:0 20px; border-radius:999px;
  text-decoration:none; font-weight:800; border:1px solid var(--forest); background:var(--forest); color:#fff;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.btn:hover { transform:translateY(-2px); background:var(--forest-2); box-shadow:0 10px 24px rgba(31,53,44,.18); }
.btn--light { background:#fff; color:var(--forest); border-color:#fff; }
.btn--ghost { background:transparent; color:var(--forest); }
.btn--ghost:hover { color:#fff; }
.btn--small { min-height:42px; padding-inline:16px; font-size:.9rem; }
.text-link { font-weight:800; color:var(--forest); text-decoration-thickness:1px; text-underline-offset:4px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; }

.hero { padding:34px 0 84px; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:56px; align-items:center; }
.hero-copy { padding:48px 0; }
.hero-copy h1 span { color:var(--forest-2); }
.hero-copy .lede { margin-top:26px; }
.hero-copy .actions { margin-top:30px; }
.hero-points { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:30px; color:#4d5c54; font-weight:650; font-size:.92rem; }
.hero-points span::before { content:"✓"; color:var(--moss); font-weight:900; margin-right:7px; }
.hero-media { position:relative; }
.hero-media::before { content:""; position:absolute; inset:10% -12% -8% 20%; background:#dbe2d3; border-radius:40% 20% 40% 18%; z-index:-1; }
.hero-media img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:34px; box-shadow:var(--shadow); }
.hero-badge { position:absolute; left:-34px; bottom:38px; width:190px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px; box-shadow:var(--shadow); }
.hero-badge strong { display:block; font-size:1.05rem; }
.hero-badge span { font-size:.84rem; color:var(--ink-soft); }

.trust-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.trust-item { font-weight:780; color:#46544c; text-align:center; }
.trust-item small { display:block; font-weight:600; color:#79847e; }

.section-head { display:flex; justify-content:space-between; align-items:end; gap:32px; margin-bottom:44px; }
.section-head > div:first-child { max-width:720px; }
.section-head h2 { margin-top:12px; }
.section-head .lede { margin-top:16px; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:0 10px 30px rgba(31,41,35,.05); }
.card-number { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:var(--cream); color:var(--forest); font-weight:900; margin-bottom:22px; }
.card h3 { margin-bottom:12px; }
.card p { color:var(--ink-soft); }

.split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split-media img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:28px; box-shadow:var(--shadow); }
.split-copy h2 { margin-top:14px; }
.split-copy .lede { margin-top:18px; }
.feature-list { list-style:none; padding:0; margin:30px 0 0; display:grid; gap:16px; }
.feature-list li { display:grid; grid-template-columns:32px 1fr; gap:12px; align-items:start; }
.feature-list .icon { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#dfe8dc; color:var(--forest); font-weight:900; }
.feature-list strong { display:block; }
.feature-list span { color:var(--ink-soft); font-size:.95rem; }

.work-grid { display:grid; grid-template-columns:1.1fr .9fr; grid-template-rows:auto auto; gap:20px; }
.work-card { position:relative; overflow:hidden; border-radius:26px; min-height:340px; background:#ddd; }
.work-card:first-child { grid-row:span 2; min-height:700px; }
.work-card img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.work-card::after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(to top, rgba(15,24,19,.82), transparent); }
.work-caption { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; color:#fff; }
.work-caption span { display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.13em; font-weight:800; opacity:.82; margin-bottom:6px; }
.work-caption h3 { letter-spacing:-.02em; }

.quote-panel { display:grid; grid-template-columns:1.2fr .8fr; gap:38px; align-items:center; background:#1f352c; color:#fff; border-radius:34px; padding:48px; }
.quote-panel h2 { font-size:clamp(2.2rem,4vw,4rem); }
.quote-panel p { color:#d9e0db; margin-top:18px; max-width:700px; }
.quote-panel .actions { justify-content:flex-end; }

.page-hero { padding:72px 0 58px; background:linear-gradient(180deg,#f7f1e8 0%,#fffdf8 100%); border-bottom:1px solid var(--line); }
.page-hero-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:end; }
.page-hero h1 { font-size:clamp(3rem,6vw,6rem); }
.page-hero .lede { margin-top:22px; }
.page-hero-card { background:#fff; border:1px solid var(--line); border-radius:22px; padding:26px; }
.page-hero-card strong { display:block; margin-bottom:8px; }

.service-list { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.service-card { border:1px solid var(--line); border-radius:24px; padding:32px; background:#fff; }
.service-card .tag { display:inline-block; font-size:.76rem; text-transform:uppercase; letter-spacing:.12em; font-weight:850; color:var(--forest-2); margin-bottom:20px; }
.service-card ul { margin:18px 0 0; padding-left:20px; color:var(--ink-soft); }
.service-card li+li { margin-top:7px; }

.process { counter-reset:steps; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.process-item { border-top:1px solid var(--line); padding-top:20px; }
.process-item::before { counter-increment:steps; content:"0" counter(steps); display:block; color:var(--moss); font-weight:900; margin-bottom:14px; }
.process-item p { color:var(--ink-soft); margin-top:8px; }

.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.gallery-item { position:relative; overflow:hidden; border-radius:24px; min-height:420px; }
.gallery-item:nth-child(1) { grid-column:span 7; }
.gallery-item:nth-child(2) { grid-column:span 5; }
.gallery-item:nth-child(3) { grid-column:span 5; }
.gallery-item:nth-child(4) { grid-column:span 7; }
.gallery-item img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gallery-item::after { content:""; position:absolute; inset:50% 0 0; background:linear-gradient(to top,rgba(15,23,19,.75),transparent); }
.gallery-label { position:absolute; z-index:2; bottom:20px; left:22px; right:22px; color:#fff; }
.gallery-label strong { display:block; font-family:Georgia,serif; font-size:1.3rem; }
.gallery-label span { font-size:.86rem; opacity:.85; }

.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.stat { padding:28px; border-left:1px solid var(--line); }
.stat strong { font-family:Georgia,serif; font-size:2rem; display:block; }
.stat span { color:var(--ink-soft); }

.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:52px; align-items:start; }
.contact-card { background:var(--cream); border-radius:26px; padding:32px; }
.contact-card + .contact-card { margin-top:16px; }
.contact-card h3 { margin-bottom:12px; }
.contact-card p, .contact-card li { color:var(--ink-soft); }
.contact-card ul { padding-left:20px; margin:14px 0 0; }
.demo-form { border:1px solid var(--line); border-radius:28px; padding:34px; box-shadow:var(--shadow); background:#fff; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:grid; gap:7px; }
.field--wide { grid-column:1/-1; }
label { font-size:.88rem; font-weight:800; }
input, textarea, select { width:100%; border:1px solid #cfd5d1; border-radius:12px; padding:13px 14px; background:#fff; color:var(--ink); }
textarea { min-height:120px; resize:vertical; }
.demo-note { margin-top:18px; padding:16px; border-radius:14px; background:#f2f6f1; color:#536159; font-size:.9rem; }
.demo-form .btn { margin-top:20px; }

.smart-quote-box { border:1px dashed #95a495; border-radius:24px; padding:30px; background:#f7faf6; }
.smart-quote-box .pill { display:inline-block; background:#dde8dc; color:var(--forest); border-radius:999px; padding:6px 10px; font-size:.78rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.smart-quote-box h3 { margin-top:16px; }
.smart-quote-box p { color:var(--ink-soft); margin-top:10px; }
.smart-quote-box .btn { margin-top:22px; }

.site-footer { background:#14231c; color:#d7dfda; padding:58px 0 26px; }
.footer-grid { display:grid; grid-template-columns:1.3fr .7fr .7fr; gap:46px; }
.footer-brand { color:#fff; }
.footer-brand p { color:#aebbb3; margin-top:16px; max-width:430px; }
.footer-title { color:#fff; font-weight:800; margin-bottom:12px; }
.footer-links { display:grid; gap:8px; }
.footer-links a { color:#bfc9c3; text-decoration:none; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:40px; padding-top:22px; display:flex; justify-content:space-between; gap:20px; font-size:.82rem; color:#93a198; }

@media (max-width: 920px) {
  .nav-toggle { display:block; }
  .nav { position:fixed; inset:78px 16px auto; display:none; flex-direction:column; align-items:stretch; gap:4px; background:#fff; padding:16px; border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow); }
  .nav.is-open { display:flex; }
  .nav a { padding:12px; }
  .nav .btn { margin-top:6px; }
  .hero-grid, .split, .page-hero-grid, .contact-grid, .quote-panel { grid-template-columns:1fr; }
  .hero { padding-top:10px; }
  .hero-copy { padding-bottom:0; }
  .hero-media { max-width:620px; margin-inline:auto; }
  .hero-badge { left:16px; }
  .cards { grid-template-columns:1fr; }
  .trust-grid { grid-template-columns:repeat(2,1fr); }
  .process { grid-template-columns:repeat(2,1fr); }
  .quote-panel .actions { justify-content:flex-start; }
  .gallery-item:nth-child(n) { grid-column:span 6; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > :first-child { grid-column:1/-1; }
}

@media (max-width: 620px) {
  .container { width:min(100% - 28px, var(--max)); }
  .section { padding:68px 0; }
  .header-inner { min-height:70px; }
  .nav { inset:70px 10px auto; }
  .brand-text { font-size:.9rem; }
  .brand-text small { font-size:.56rem; }
  h1 { font-size:clamp(2.8rem,15vw,4.5rem); }
  .hero-media img { border-radius:24px; }
  .hero-badge { position:relative; left:auto; bottom:auto; width:auto; margin:-42px 14px 0; }
  .trust-grid { grid-template-columns:1fr 1fr; font-size:.9rem; }
  .section-head { display:block; }
  .section-head .btn { margin-top:22px; }
  .service-list, .process, .stats { grid-template-columns:1fr; }
  .work-grid { grid-template-columns:1fr; grid-template-rows:none; }
  .work-card:first-child { grid-row:auto; min-height:430px; }
  .work-card { min-height:360px; }
  .gallery-grid { display:block; }
  .gallery-item { min-height:420px; margin-bottom:16px; }
  .quote-panel { padding:30px 24px; border-radius:24px; }
  .form-grid { grid-template-columns:1fr; }
  .field--wide { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > :first-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
}
