/* ============================================================
   Venturion — shared site styles (used by service subpages)
   Cool / elegant palette · Helvetica
   ============================================================ */
:root{
  --ink:#10151d; --ink-2:#161d28; --bg:#f4f6f9; --surface:#ffffff; --paper:#eef1f5;
  --slate-1:#1c2330; --slate-2:#566173; --slate-3:#8b96a4;
  --steel:#4f6f92; --steel-dk:#3d5a7a; --steel-lt:#9cb8d6;
  --line:rgba(20,27,40,0.10); --line-2:rgba(20,27,40,0.16);
  --font:'Helvetica Neue', Helvetica, Arial, sans-serif;
  --maxw:1160px; --gutter:clamp(22px,5vw,56px); --ease:cubic-bezier(0.22,0.61,0.36,1);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:var(--font); background:var(--bg); color:var(--slate-1);
      -webkit-font-smoothing:antialiased; line-height:1.5; }
h1,h2,h3{ margin:0; font-weight:700; letter-spacing:-0.025em; color:var(--ink); line-height:1.06; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
.eyebrow{ font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--steel); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font); font-size:15px; font-weight:600;
  padding:13px 22px; border-radius:4px; border:1px solid transparent; cursor:pointer; white-space:nowrap;
  transition:background var(--ease) .18s, border-color var(--ease) .18s, color var(--ease) .18s, transform var(--ease) .12s; }
.btn:active{ transform:translateY(1px); }
.btn--primary{ background:var(--steel); color:#fff; }
.btn--primary:hover{ background:var(--steel-dk); }
.btn--ghost{ background:transparent; color:var(--slate-1); border-color:var(--line-2); }
.btn--ghost:hover{ border-color:var(--slate-2); }
.btn--lg{ padding:15px 26px; font-size:16px; }
.arrow{ transition:transform var(--ease) .18s; }
.btn:hover .arrow{ transform:translateX(3px); }

/* nav */
.nav{ position:fixed; top:0; left:0; right:0; z-index:50; transition:background var(--ease) .25s, border-color var(--ease) .25s, backdrop-filter .25s; border-bottom:1px solid transparent; }
.nav__in{ display:flex; align-items:center; justify-content:space-between; padding:18px var(--gutter); max-width:var(--maxw); margin:0 auto; }
.brand{ display:flex; align-items:center; gap:11px; }
.brand img{ width:30px; height:30px; }
.brand b{ font-size:21px; font-weight:700; letter-spacing:-0.01em; color:var(--ink); }
.nav__links{ display:flex; align-items:center; gap:30px; }
.nav__links a{ font-size:14.5px; color:var(--slate-2); transition:color var(--ease) .18s; }
.nav__links a:hover{ color:var(--ink); }
.nav__links a.is-active{ color:var(--ink); }
.nav__cta{ display:flex; align-items:center; gap:18px; }
.nav.solid{ background:rgba(244,246,249,0.86); backdrop-filter:blur(12px); border-bottom-color:var(--line); }
@media(max-width:760px){ .nav__links{ display:none; } }

/* sub-hero */
.sub-hero{ position:relative; background:linear-gradient(168deg,#e6ecf4 0%,#f1f4f8 56%,#f8fafc 100%);
  overflow:hidden; border-bottom:1px solid var(--line); }
.sub-hero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(58% 60% at 86% 4%, rgba(79,111,146,0.10), transparent 70%); }
.sub-hero__ghost{ position:absolute; right:-7%; top:50%; transform:translateY(-50%); width:min(42vw,520px); opacity:0.05; pointer-events:none; }
.sub-hero__in{ position:relative; padding-top:clamp(120px,15vw,168px); padding-bottom:clamp(48px,7vw,76px); }
.crumb{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--slate-2); margin-bottom:22px; }
.crumb a:hover{ color:var(--ink); }
.crumb .sep{ color:var(--slate-3); }
.sub-hero h1{ font-size:clamp(2.4rem,1.5rem+3.4vw,3.7rem); max-width:18ch; margin-top:14px; }
.sub-hero h1 .accent{ color:var(--steel); }
.lede{ font-size:clamp(1.05rem,1rem+0.4vw,1.3rem); color:var(--slate-2); line-height:1.6; max-width:52ch; margin-top:22px; }
.sub-hero__cta{ display:flex; align-items:center; gap:16px; margin-top:32px; flex-wrap:wrap; }

/* generic section */
.section{ padding:clamp(64px,9vw,112px) 0; }
.section--alt{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section__head{ max-width:60ch; }
.section__head h2{ font-size:clamp(1.8rem,1.4rem+1.7vw,2.5rem); margin-top:14px; }
.section__head p{ font-size:17px; color:var(--slate-2); line-height:1.6; margin-top:16px; }

/* capabilities grid */
.caps{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:48px;
  background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
@media(max-width:680px){ .caps{ grid-template-columns:1fr; } }
.cap{ background:var(--surface); padding:28px 28px 30px; }
.cap__n{ font-size:12px; font-weight:600; letter-spacing:0.12em; color:var(--steel); }
.cap h3{ font-size:19px; margin:14px 0 10px; letter-spacing:-0.01em; }
.cap p{ font-size:15px; color:var(--slate-2); line-height:1.62; }

/* steps */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:48px; }
@media(max-width:760px){ .steps{ grid-template-columns:1fr 1fr; gap:28px 24px; } }
@media(max-width:460px){ .steps{ grid-template-columns:1fr; } }
.step{ padding-top:20px; border-top:1px solid var(--line-2); }
.step__n{ font-family:var(--font); font-size:13px; font-weight:700; color:var(--steel); }
.step h3{ font-size:17px; margin:12px 0 8px; }
.step p{ font-size:14.5px; color:var(--slate-2); line-height:1.58; }

/* deliverables */
.deliver{ margin-top:40px; border-top:1px solid var(--line-2); }
.deliver div{ display:flex; gap:16px; align-items:baseline; padding:16px 0; border-bottom:1px solid var(--line); }
.deliver .tick{ color:var(--steel); flex:none; display:flex; }
.deliver .dt{ font-size:16px; color:var(--slate-1); }
.deliver .dt b{ color:var(--ink); font-weight:700; }

/* related work */
.work__list{ margin-top:40px; border-top:1px solid var(--line-2); }
.wrow{ display:grid; grid-template-columns:1.05fr 1.45fr; gap:28px; align-items:baseline;
  padding:24px 8px; border-bottom:1px solid var(--line); }
.wrow__cat{ font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--steel); }
.wrow h3{ font-size:18px; margin-top:7px; letter-spacing:-0.01em; line-height:1.2; }
.wrow__d{ font-size:15px; color:var(--slate-2); line-height:1.6; }
@media(max-width:680px){ .wrow{ grid-template-columns:1fr; gap:9px; } }

/* cross-links to other practices */
.cross{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:44px; }
@media(max-width:680px){ .cross{ grid-template-columns:1fr; } }
.xcard{ background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:26px 26px 28px;
  transition:border-color var(--ease) .2s, box-shadow var(--ease) .2s, transform var(--ease) .2s; display:flex; flex-direction:column; }
.xcard:hover{ border-color:var(--line-2); box-shadow:0 16px 40px rgba(16,21,29,0.08); transform:translateY(-3px); }
.xcard__n{ font-size:12px; font-weight:600; letter-spacing:0.12em; color:var(--steel); }
.xcard h3{ font-size:20px; margin:14px 0 10px; }
.xcard p{ font-size:14.5px; color:var(--slate-2); line-height:1.6; }
.xcard__more{ display:inline-flex; align-items:center; gap:7px; margin-top:16px; font-size:14px; font-weight:600; color:var(--steel); }
.xcard:hover .xcard__more .arrow{ transform:translateX(3px); }

/* CTA band */
.ctaband{ background:#e7eef5; border-top:1px solid var(--line); }
.ctaband__in{ padding:clamp(56px,8vw,88px) 0; display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; }
.ctaband h2{ font-size:clamp(1.8rem,1.3rem+1.8vw,2.6rem); max-width:18ch; }
.ctaband p{ font-size:16px; color:var(--slate-2); margin-top:12px; max-width:42ch; }

/* footer */
.foot{ background:var(--paper); color:var(--slate-2); border-top:1px solid var(--line); }
.foot__in{ display:flex; justify-content:space-between; gap:30px; flex-wrap:wrap; padding:48px var(--gutter); max-width:var(--maxw); margin:0 auto; }
.foot__brand{ display:flex; align-items:center; gap:11px; }
.foot__brand img{ width:28px; height:28px; }
.foot__brand b{ font-size:20px; font-weight:700; color:var(--ink); }
.foot__right{ display:flex; gap:38px; flex-wrap:wrap; }
.foot__col{ display:flex; flex-direction:column; gap:10px; }
.foot__col span{ font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--slate-3); margin-bottom:2px; }
.foot__col a{ font-size:14px; color:var(--slate-2); }
.foot__col a:hover{ color:var(--ink); }
.foot__bar{ border-top:1px solid var(--line); }
.foot__bar div{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:18px var(--gutter); max-width:var(--maxw); margin:0 auto; font-size:12.5px; color:var(--slate-3); }
