:root{
  --parchment:#d7d7d0;
  --cream:#f7f6f3;
  --bone:#fdfcfa;
  --bistre:#1a1614;
  --graphite:#66635f;
  --flint:#a8a7a1;
  --slate:#53504c;
  --ash:#2a2724;
  --quill:#e3e3de;
  --chartreuse:#e2e67d;
  --node-orange:#f59e3a;
  --node-olive:#9a9d3e;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--parchment); color:var(--bistre);
  font-family:'Inter', system-ui, sans-serif; font-size:16px; line-height:1.5;
  letter-spacing:-0.01em; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Noto Serif', Georgia, serif; font-weight:400; margin:0;
  color:var(--bistre); text-wrap:balance;
}
p{ margin:0; color:var(--graphite); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; }
[hidden]{ display:none!important; }
@media (prefers-reduced-motion: reduce){ *{ animation-duration:0.01ms!important; transition-duration:0.01ms!important; } }

.mono{ font-family:'Inter', system-ui, sans-serif; }
.eyebrow{
  font-family:'Inter', system-ui, sans-serif; font-weight:500; font-size:11px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--graphite);
}
.wrap{ max-width:1200px; margin:0 auto; padding:0 32px; }
.dashed{ border:none; border-top:1px dashed rgba(26,22,20,0.16); }

/* ---------- nav capsule ---------- */
.nav-wrap{ position:sticky; top:16px; z-index:70; padding:0 20px; }
.nav-capsule{
  max-width:900px; margin:0 auto; border-radius:82px;
  background:rgba(207,207,200,0.74);
  -webkit-backdrop-filter: blur(16px) saturate(1.8) brightness(1.08);
  backdrop-filter: blur(16px) saturate(1.8) brightness(1.08);
  border:1px solid rgba(26,22,20,0.08);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.08);
  padding:8px 10px 8px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{ display:flex; align-items:center; gap:9px; flex:none; }
.brand-mark{
  width:22px; height:22px; border-radius:50%; border:1.4px solid var(--bistre);
  display:flex; align-items:center; justify-content:center; font-family:'Noto Serif',serif; font-size:12px;
}
.brand-word{ font-family:'Noto Serif',serif; font-size:16px; }
.nav-links{ display:flex; align-items:center; gap:22px; }
.nav-link{ font-size:14px; font-weight:500; color:var(--bistre); transition:color .2s cubic-bezier(.4,0,.2,1); }
.nav-link:hover{ color:var(--graphite); }
.nav-cta{
  background:var(--bistre); color:var(--cream); font-size:14px; font-weight:500;
  border-radius:9999px; padding:11px 20px; white-space:nowrap;
  transition:background .2s cubic-bezier(.4,0,.2,1);
}
.nav-cta:hover{ background:var(--ash); }
.nav-toggle{ display:none; background:none; border:none; font-family:'Inter',sans-serif; font-weight:500; font-size:12px; letter-spacing:.08em; color:var(--bistre); cursor:pointer; }
.nav-mobile{ display:none; }
@media (max-width:820px){
  .nav-links{ display:none; }
  .nav-toggle{ display:block; }
  .nav-capsule{ border-radius:28px; }
  .nav-wrap.open .nav-mobile{
    display:flex; flex-direction:column; gap:2px; max-width:900px; margin:6px auto 0;
    background:var(--cream); border:1px solid rgba(26,22,20,0.1); border-radius:16px; padding:10px 20px 16px;
  }
  .nav-mobile .nav-link{ padding:10px 0; border-bottom:1px dashed rgba(26,22,20,0.12); }
  .nav-mobile .nav-cta{ margin-top:12px; text-align:center; }
}

/* ---------- buttons ---------- */
.btn-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.btn-dark{
  background:var(--bistre); color:var(--cream); border-radius:9999px; padding:12.5px 24.5px;
  font-size:14px; font-weight:500; display:inline-block; border:none; cursor:pointer;
  transition:background .2s cubic-bezier(.4,0,.2,1); font-family:inherit;
}
.btn-dark:hover{ background:var(--ash); }
.btn-dark:disabled{ background:var(--flint); cursor:not-allowed; }
.btn-ghost{
  background:transparent; border:1px solid rgba(26,22,20,0.92); color:var(--bistre);
  border-radius:0; padding:16px 26px; font-size:14px; font-weight:500; display:inline-block;
  transition:background .2s cubic-bezier(.4,0,.2,1), color .2s cubic-bezier(.4,0,.2,1);
}
.btn-ghost:hover{ background:var(--bistre); color:var(--cream); }

/* ---------- hero ---------- */
.hero{ position:relative; padding:88px 0 100px; }
.hero-grid{ display:grid; grid-template-columns:1fr 0.85fr; gap:40px; align-items:center; }
.hero h1{ font-size:54px; line-height:1.1; letter-spacing:-1.998px; margin:22px 0 24px; }
.hero-sub{ font-size:20px; line-height:1.5; max-width:44ch; margin-bottom:36px; }
.network-wrap{ position:relative; height:380px; }
.network-wrap svg{ width:100%; height:100%; }
.node-center{ animation:pulse 2.6s ease-in-out infinite; transform-origin:center; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.55; } }
@media (max-width:860px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero h1{ font-size:40px; letter-spacing:-1px; }
  .network-wrap{ height:260px; }
}

/* ---------- sections ---------- */
section{ padding:120px 0; }
.section-head{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:56px; }
.section-head h2{ font-size:40px; line-height:1.12; margin-top:10px; max-width:16ch; }
.section-head .desc{ font-size:18px; max-width:44ch; }
@media (max-width:760px){ .section-head{ grid-template-columns:1fr; } }

.band-cream{ background:var(--cream); }

/* ---------- services (research-log rows) ---------- */
.log-list{ border-top:1px dashed rgba(26,22,20,0.16); }
.log-row{
  display:flex; flex-direction:column; gap:10px;
  padding:28px 0; border-bottom:1px dashed rgba(26,22,20,0.16); transition:color .2s cubic-bezier(.4,0,.2,1);
}
.log-title{ font-family:'Noto Serif',serif; font-size:24px; color:var(--bistre); }
.log-desc{ font-size:16px; line-height:1.55; color:var(--graphite); max-width:68ch; }
.log-row:hover .log-title{ color:var(--graphite); }

/* ---------- faq ---------- */
.faq-item{ border-bottom:1px dashed rgba(26,22,20,0.16); padding:22px 0; }
.faq-item:first-child{ border-top:1px dashed rgba(26,22,20,0.16); }
.faq-item summary{
  list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:baseline; gap:20px;
  font-family:'Noto Serif',serif; font-size:24px; color:var(--bistre);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-family:'Inter',sans-serif; color:var(--graphite); font-size:20px; }
.faq-item[open] summary::after{ content:'\2212'; }
.faq-item p{ margin-top:14px; font-size:16px; max-width:64ch; }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; }
.contact-line{ display:flex; justify-content:space-between; border-bottom:1px dashed rgba(26,22,20,0.16); padding:14px 0; font-size:15px; }
.field{ margin-bottom:24px; }
.field label{ display:block; margin-bottom:8px; }
.field input, .field textarea, .field select{
  width:100%; background:var(--cream); border:1px solid var(--quill); border-radius:4px;
  font-family:'Inter',sans-serif; font-size:15px; color:var(--bistre); padding:12px 14px; outline:none;
}
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--bistre); }
.form-note{ font-size:13px; margin-top:10px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }

/* ---------- footer ---------- */
footer{ border-top:1px dashed rgba(26,22,20,0.16); padding:36px 0 60px; }
.foot-row{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }

/* ================= AUDIT PAGE ================= */
.audit-hero{ padding:70px 0 60px; }
.back-link{ display:inline-flex; gap:8px; margin-bottom:34px; font-size:14px; color:var(--graphite); }
.back-link:hover{ color:var(--bistre); }
.audit-hero h1{ font-size:46px; max-width:16ch; margin-bottom:20px; letter-spacing:-1px; }
.audit-hero p{ font-size:18px; max-width:56ch; }
.audit-meta{ display:flex; gap:40px; margin-top:36px; flex-wrap:wrap; }
.audit-meta .v{ font-family:'Noto Serif',serif; font-size:22px; color:var(--bistre); margin-top:4px; }

.intake{ padding:0 0 100px; }
.intake-single{ max-width:560px; margin:0 auto; }
.case-card{ background:var(--cream); border-radius:4px; padding:32px; }
.case-card .field-error{ color:#a8402c; font-size:13px; margin-top:-14px; margin-bottom:18px; display:none; }
.case-card.has-error .field-error{ display:block; }

.chat-session{ max-width:720px; margin:0 auto; }
.session-track{
  display:flex; gap:28px; flex-wrap:wrap; background:var(--cream); border-radius:4px 4px 0 0;
  padding:16px 22px; border-bottom:1px dashed rgba(26,22,20,0.16);
}
.session-track .v{ font-family:'Noto Serif',serif; font-size:16px; margin-top:3px; }
.chat-shell{
  background:var(--bone); border-radius:0 0 4px 4px; overflow:hidden;
  height:620px; position:relative;
}
#n8n-chat{ width:100%; height:100%; }
.chat-fallback{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  padding:32px; text-align:center; font-size:14px; color:var(--graphite);
}

.next-steps{ padding:0 0 120px; }
.steps-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px; }
.step-card{ background:var(--cream); border-radius:4px; padding:26px; }
.step-num{ font-family:'Inter',sans-serif; font-weight:500; font-size:12px; color:var(--graphite); letter-spacing:.08em; }
.step-title{ font-family:'Noto Serif',serif; font-size:20px; margin:10px 0 8px; }
@media (max-width:860px){ .steps-grid{ grid-template-columns:1fr; } }

/* ================= SERVICE DETAIL PAGES ================= */
.breadcrumbs{ font-size:13px; color:var(--graphite); margin-bottom:26px; }
.breadcrumbs a:hover{ color:var(--bistre); }
.breadcrumbs .sep{ margin:0 8px; color:var(--flint); }

.service-hero{ padding:56px 0 40px; }
.service-hero h1{ font-size:44px; max-width:22ch; margin-bottom:20px; letter-spacing:-0.5px; }
.service-hero .lead{ font-size:19px; max-width:62ch; margin-bottom:32px; }

.body-copy{ font-size:18px; line-height:1.65; color:var(--bistre); max-width:66ch; }
.body-copy + .body-copy{ margin-top:20px; }

.check-list{ list-style:none; padding:0; margin:28px 0 0; border-top:1px dashed rgba(26,22,20,.16); max-width:70ch; }
.check-list li{ padding:16px 0; border-bottom:1px dashed rgba(26,22,20,.16); font-size:16px; color:var(--bistre); display:flex; gap:12px; }
.check-list li::before{ content:'—'; color:var(--graphite); flex:none; }

.related-card{ background:var(--bone); border-radius:4px; padding:24px; }
.related-card-title{ font-family:'Noto Serif',serif; font-size:19px; color:var(--bistre); display:block; margin-bottom:8px; }
.related-card-title:hover{ color:var(--graphite); }
.related-card p{ font-size:14px; }

.service-cta-band{
  background:var(--bistre); border-radius:4px; padding:48px 44px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.service-cta-band h2{ color:var(--cream); font-size:26px; max-width:20ch; margin-bottom:8px; }
.service-cta-band p{ color:var(--flint); max-width:40ch; }
.service-cta-band .btn-dark{ background:var(--chartreuse); color:var(--bistre); flex:none; }
.service-cta-band .btn-dark:hover{ background:#d5d96a; }

.log-row{ cursor:pointer; }
