:root{
  --brand:#345345; --forest:#2B5544; --mid:#4A8C5C; --sage:#A8C9B0;
  --offwhite:#F5F3EE; --stone:#EDE9E1; --ink:#2C2821; --muted:#9A9A8A;
  --display:'Cambo',Georgia,serif;
  --accent:'Lora',Georgia,serif;
  --body:Cambria,Georgia,'Times New Roman',serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--offwhite);line-height:1.6;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--forest)}
a:focus-visible,button:focus-visible{outline:2px solid var(--mid);outline-offset:3px}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.stripe{height:5px;background:var(--brand)}

/* Reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{opacity:1;transform:none;transition:none}}

/* HEADER — big logo left, one-line tagline, nav right */
header{background:var(--offwhite);border-bottom:1px solid var(--stone);position:sticky;top:0;z-index:20}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 32px;max-width:1280px;margin:0 auto}
.brandblock{display:flex;align-items:center;gap:18px;flex:none}
.brandblock img{height:76px;width:auto;max-width:220px;object-fit:contain}
.tagline{font-family:var(--accent);font-style:italic;color:var(--muted);font-size:.9rem;border-left:1px solid var(--sage);padding-left:16px;line-height:1.35}
nav ul{display:flex;gap:22px;list-style:none}
nav a{font-family:var(--accent);font-size:.85rem;text-decoration:none;color:var(--forest);border-bottom:1px solid transparent;transition:border-color .2s,color .2s}
nav a:hover{color:var(--brand);border-bottom-color:var(--brand)}
@media(max-width:860px){
  nav ul{display:none}
  .nav{padding:14px 24px}
  .brandblock{flex:1 1 auto;min-width:0;gap:14px}
  .brandblock img{height:52px}
  .tagline{flex:1 1 auto;min-width:0;font-size:.8rem;padding-left:14px}
}

/* HERO */
.hero{position:relative;min-height:400px;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:url('../assets/hero-bridge.jpg') center/cover no-repeat;background-color:#4d6b58}
.hero-scrim{position:absolute;inset:0;background:rgba(43,85,68,.74)}
.hero-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:110px 32px 64px;color:var(--offwhite);width:100%}
.hero-kicker{font-family:var(--accent);font-style:italic;color:var(--sage);font-size:.95rem;margin-bottom:12px}
.hero-rule{width:60px;height:2px;background:var(--sage);margin-bottom:22px}
h1{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.15;max-width:22ch}
.hero-sub{font-size:1.02rem;max-width:62ch;margin-top:18px;color:var(--stone)}
@media(max-width:700px){.hero{min-height:320px}.hero-inner{padding:48px 24px}}

/* Sections */
section{padding:72px 0}
.eyebrow{font-family:var(--accent);font-style:italic;font-size:.88rem;color:var(--muted);margin-bottom:8px}
h2{font-family:var(--display);font-weight:400;font-size:clamp(1.5rem,2.7vw,2rem);color:var(--brand)}
.rule{width:60px;height:2px;background:var(--brand);margin:14px 0 30px}
.lead{max-width:72ch}
.lead p+p{margin-top:14px}
.icon{width:20px;height:20px;stroke:var(--mid);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* WHO WE ARE */
.who{display:grid;grid-template-columns:7fr 5fr;gap:52px;align-items:stretch}
.who img{border-top:3px solid var(--brand);height:100%;width:100%;object-fit:cover}
@media(max-width:860px){.who{grid-template-columns:1fr;gap:28px}.who img{height:auto;aspect-ratio:16/10}}

/* PRACTICES */
/* PRACTICES — cards and capability boxes share one grid so they can interleave on mobile */
.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch}
.card{background:#fff;border-top:3px solid var(--brand);display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(44,40,33,.10)}
.card>img{aspect-ratio:16/8;object-fit:cover;width:100%}
.card .pad{padding:28px 30px 32px;display:flex;flex-direction:column;flex:1}
.card .label{font-weight:bold;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);display:block;margin-bottom:6px}
.card h3{font-family:var(--display);font-size:1.25rem;color:var(--brand);font-weight:400}
.card .intro{font-family:var(--accent);font-style:italic;color:var(--forest);font-size:.93rem;margin:8px 0 16px}
.card ul{list-style:none;margin-top:auto}
.card li{padding:14px 0;border-top:1px solid var(--stone);display:flex;gap:13px;align-items:flex-start;font-size:.95rem}
.card li strong{color:var(--forest)}

.caps{display:contents}
.cap{background:var(--sage);padding:24px 26px;border:.5px solid var(--brand);display:flex;gap:14px;align-items:flex-start;font-size:.95rem;transition:transform .25s ease}
.cap:hover{transform:translateY(-3px)}
.cap .icon{stroke:var(--brand);width:24px;height:24px}
.cap strong{color:var(--brand)}
/* Desktop row 2: Digital systems left, Market research right (under Practice 02) */
#p1{order:1} #p2{order:2} #cap-market{order:3} #cap-digital{order:4}
/* Mobile: each capability box follows its own practice card */
@media(max-width:860px){
  .practice-grid{grid-template-columns:1fr}
  #p1{order:1} #cap-market{order:2} #p2{order:3} #cap-digital{order:4}
}

/* WHY — strict 2x2 */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px}
.why-item{border-top:1px solid var(--sage);padding-top:16px;display:flex;gap:14px;align-items:flex-start;font-size:.95rem}
.why-item .icon{stroke:var(--brand);width:22px;height:22px}
.why-item strong{color:var(--brand)}
@media(max-width:760px){.why-grid{grid-template-columns:1fr}}

/* EXPERIENCE — reversed band, founder-led track record */
.exp{background:var(--forest);color:var(--offwhite)}
.exp h2{color:var(--offwhite)}
.exp .eyebrow{color:var(--sage)}
.exp .rule{background:var(--sage)}
.exp .lead{color:var(--stone)}
.exp .lead{max-width:none}
.funders{display:flex;flex-wrap:wrap;gap:12px 30px;margin:22px 0 32px;font-family:var(--accent);font-style:italic;color:var(--sage);font-size:1rem}
.trgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.tr{background:rgba(245,243,238,.06);border-left:2px solid var(--sage);padding:22px 26px;display:flex;flex-direction:column;transition:background .25s ease}
.tr:hover{background:rgba(245,243,238,.12)}
.tr .k{font-weight:bold;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:6px}
.tr .v{font-family:var(--display);font-size:1.45rem;color:var(--offwhite);line-height:1.2}
.tr .d{font-size:.9rem;color:var(--stone);margin-top:4px}
@media(max-width:760px){.trgrid{grid-template-columns:1fr}}
.pubs{margin-top:36px}
.pubs-label{font-family:var(--accent);font-style:italic;color:var(--sage);font-size:.9rem;margin-bottom:16px}
.publist{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:stretch}
.pub{border-left:2px solid var(--sage);padding-left:20px;display:flex;flex-direction:column}
.pub a{font-family:var(--display);font-size:1rem;line-height:1.35;color:var(--offwhite);text-decoration:none;border-bottom:1px solid rgba(168,201,176,.45);transition:border-color .2s}
.pub a:hover{border-bottom-color:var(--sage)}
.pub .meta{font-family:var(--accent);font-style:italic;color:var(--sage);font-size:.85rem;margin-top:8px}
.pub .desc{font-size:.9rem;color:var(--stone);margin-top:6px}
@media(max-width:760px){.publist{grid-template-columns:1fr;gap:22px}}

/* FOUNDER */
.founder{display:grid;grid-template-columns:280px 1fr;gap:52px;align-items:start}
.founder img{border-top:3px solid var(--brand);aspect-ratio:4/5;object-fit:cover;width:100%}
@media(max-width:860px){.founder{grid-template-columns:1fr;gap:28px}.founder img{max-width:280px}}

/* CONTACT */
.contact{background:var(--stone)}
.contact .grid{display:grid;grid-template-columns:1fr 1fr;gap:52px}
@media(max-width:860px){.contact .grid{grid-template-columns:1fr;gap:32px}}
.contact dt{font-weight:bold;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);margin-top:20px;display:flex;gap:10px;align-items:center}
.contact dt:first-child{margin-top:0}
.contact dt .icon{width:18px;height:18px}
.contact dd{margin:4px 0 0 28px}
.field{margin-bottom:14px}
.field label{display:block;font-family:var(--accent);font-size:.85rem;color:var(--forest);margin-bottom:5px}
.field input,.field textarea{width:100%;padding:12px;border:1px solid var(--sage);background:var(--offwhite);font-family:var(--body);font-size:.95rem;color:var(--ink)}
.field input:focus,.field textarea:focus{outline:2px solid var(--mid);outline-offset:1px}
.btn{font-family:var(--accent);font-size:.93rem;background:var(--brand);color:var(--offwhite);border:none;padding:13px 28px;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--forest)}
.form-success{margin-top:12px;font-family:var(--accent);font-style:italic;color:var(--brand)}

footer{background:var(--brand);color:var(--sage);padding:26px 0;font-family:var(--accent);font-style:italic;font-size:.85rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
footer a{color:var(--sage)}
