:root{
  --ink:#2e2013;          /* deep espresso text + primary button */
  --primary:#624120;
  --dark-brown:#5A4530;
  --body:#7a6f64;
  --page:#FBF8F3;
  --cream:#F4EBDD;
  --card:#FFFFFF;
  --border:#D8CFC2;
  --hair:#CABEA9;
  --gold:#9A6E3A;
  --sand:#E0C4AC;
  --serif:'Fraunces','Georgia',serif;
  --sans:'Teachers','Trebuchet MS',Calibri,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--page);color:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px;}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--page);padding:10px 16px;border-radius:2px;z-index:200;}
.skip:focus{left:16px;top:16px;}

/* hairline meta bar */
.topbar{border-bottom:1px solid var(--hair);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.topbar .wrap{display:flex;justify-content:flex-end;align-items:center;height:42px;gap:14px;white-space:nowrap;overflow:hidden;}
.topbar .dot{opacity:.45;}
@media(max-width:640px){.topbar{display:none;}}

/* nav */
nav{position:sticky;top:0;z-index:60;background:rgba(251,248,243,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:78px;}
nav img{height:32px;width:auto;display:block;}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links a{font-weight:600;color:var(--primary);font-size:.92rem;}
.nav-links a:not(.btn):hover{color:var(--gold);}
.nav-links a.btn-primary{color:var(--page);}
.nav-links a.btn-primary:hover{color:var(--page);}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:2px;font-weight:600;font-size:.9rem;padding:13px 26px;border:1px solid var(--ink);transition:all .2s ease;}
.btn-primary{background:var(--ink);color:var(--page);}
.btn-primary:hover{background:#46301b;}
.btn-outline{background:transparent;color:var(--ink);}
.btn-outline:hover{background:var(--cream);}
@media(max-width:860px){.nav-links a:not(.btn){display:none;}}

/* hero — asymmetric editorial */
.hero{padding:84px 0 64px;border-bottom:1px solid var(--hair);position:relative;}
.hero-grid{display:grid;grid-template-columns:1.6fr .9fr;gap:56px;align-items:end;}
.kicker{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;display:flex;align-items:center;gap:14px;}
.kicker::before{content:"";width:46px;height:1px;background:var(--gold);display:inline-block;}
.hero h1{font-family:var(--serif);font-weight:330;font-size:clamp(2.5rem,5.6vw,4.9rem);line-height:1.04;letter-spacing:-0.025em;color:var(--ink);margin-top:26px;}
.hero h1 em{font-style:italic;font-weight:330;color:var(--gold);}
.hero h1 .reveal{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.1em;}
.hero h1 .reveal span{display:block;transform:translateY(120%);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;}
.hero h1 .reveal:nth-child(2) span{animation-delay:.07s;}
.hero h1 .reveal:nth-child(3) span{animation-delay:.14s;}
.hero h1 .reveal:nth-child(4) span{animation-delay:.21s;}
@keyframes rise{to{transform:translateY(0);}}
.hero-side{padding-bottom:8px;opacity:0;animation:fade 1s ease .45s forwards;}
@keyframes fade{to{opacity:1;}}
.hero-side p.sub{font-size:1.06rem;color:var(--dark-brown);border-left:2px solid var(--sand);padding-left:20px;}
.hero-side .cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:38px;opacity:0;animation:fade 1s ease .6s forwards;}
.pill{font-size:.74rem;letter-spacing:.04em;color:var(--dark-brown);border:1px solid var(--border);border-radius:2px;padding:6px 13px;background:var(--card);}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;gap:38px;}.hero-side p.sub{border-left:none;padding-left:0;}}

/* section */
section{padding:96px 0;}
.sec-cream{background:var(--cream);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.sec-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end;gap:60px;margin-bottom:72px;}
.sec-head .htext{max-width:36rem;}
.eyebrow{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;}
.sec-head h2{font-family:var(--serif);font-weight:350;font-size:clamp(1.9rem,3.6vw,2.9rem);color:var(--ink);letter-spacing:-0.02em;line-height:1.1;margin-top:18px;}
.sec-head p.lede{max-width:32rem;font-size:1.02rem;line-height:1.65;}
@media(max-width:820px){.sec-head{grid-template-columns:1fr;gap:20px;margin-bottom:48px;}.sec-head .htext{max-width:none;}}

/* three pillars — editorial */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);}
.pillar{padding:32px 30px 36px;border-right:1px solid var(--hair);}
.pillar:last-child{border-right:none;}
.pillar .n{font-family:var(--serif);font-size:.9rem;color:var(--gold);font-weight:500;letter-spacing:.04em;}
.pillar h3{font-family:var(--serif);font-weight:480;font-size:1.7rem;color:var(--ink);margin:10px 0 12px;letter-spacing:-0.01em;}
.pillar p{font-size:.95rem;}
@media(max-width:820px){.pillars{grid-template-columns:1fr;}.pillar{border-right:none;border-bottom:1px solid var(--hair);}}

/* capabilities — editorial index */
.index{border-top:1px solid var(--ink);}
.row{display:grid;grid-template-columns:54px 1.15fr 1.55fr 1fr;gap:26px;align-items:baseline;padding:26px 8px;border-bottom:1px solid var(--hair);transition:padding .3s ease,background .3s ease;}
.row:hover{padding-left:22px;background:rgba(154,110,58,.05);}
.row .num{font-family:var(--serif);color:var(--gold);font-size:1rem;}
.row .name{font-family:var(--serif);font-size:1.42rem;color:var(--ink);font-weight:430;letter-spacing:-0.01em;}
.row .desc{font-size:.93rem;}
.row .feat{display:flex;flex-direction:column;gap:5px;justify-self:end;text-align:right;}
.row .feat span{font-size:.8rem;color:var(--dark-brown);}
.row .feat span::before{content:"✓ ";color:var(--gold);font-weight:700;}
@media(max-width:920px){.row{grid-template-columns:44px 1fr;}.row .desc,.row .feat{display:none;}}

/* sectors — editorial 2x2 */
.grid2{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--hair);}
.sector{display:flex;gap:18px;padding:36px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--card);transition:background .3s ease;}
.sector:nth-child(2n){border-right:none;}
.sector:nth-last-child(-n+2){border-bottom:none;}
.sector:hover{background:var(--cream);}
.sector .tile{flex:0 0 auto;width:44px;height:44px;border-radius:10px;background:var(--cream);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;}
.sector .tile svg{width:21px;height:21px;stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.sector h3{font-family:var(--serif);font-weight:480;font-size:1.4rem;color:var(--ink);letter-spacing:-0.01em;}
.sector p{margin-top:8px;font-size:.93rem;}
@media(max-width:820px){.grid2{grid-template-columns:1fr;}.sector{border-right:none;}.sector:nth-last-child(2){border-bottom:1px solid var(--hair);}}

/* differentiators */
.diffs{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--ink);}
.diff{padding:34px 30px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);}
.diff:nth-child(2n){border-right:none;}
.diff:nth-last-child(-n+2){border-bottom:none;}
.diff h3{font-family:var(--serif);font-weight:480;font-size:1.4rem;color:var(--ink);letter-spacing:-0.01em;}
.diff p{margin-top:10px;font-size:.93rem;}
@media(max-width:820px){.diffs{grid-template-columns:1fr;}.diff{border-right:none;}.diff:nth-last-child(2){border-bottom:1px solid var(--hair);}}

/* footer */
footer{background:var(--ink);color:var(--cream);padding:110px 0 48px;}
.footer-logo-chip{display:inline-block;background:var(--cream);border-radius:14px;padding:14px 22px;margin-bottom:30px;}
.footer-logo-chip img{height:34px;width:auto;display:block;}
footer .big{font-family:var(--serif);font-weight:330;font-size:clamp(2.2rem,5vw,4rem);line-height:1.02;letter-spacing:-0.02em;color:#F6EEE2;max-width:18ch;}
footer .big em{font-style:italic;color:var(--sand);}
footer p.fp{color:#d8c4ac;margin-top:18px;max-width:54ch;font-size:1.02rem;}
footer .frow{display:flex;justify-content:space-between;align-items:flex-end;margin-top:44px;flex-wrap:wrap;gap:30px;border-top:1px solid rgba(224,196,172,.22);padding-top:34px;}
footer .contact{font-size:1.1rem;color:#F6EEE2;font-weight:600;}
footer .fine{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#b79e83;}
.btn-cream{background:var(--cream);color:var(--ink);border-color:var(--cream);margin-top:30px;}
.btn-cream:hover{background:#fff;}

/* scroll reveals — visible by default; only hidden once JS confirms it can animate */
.rv{transition:opacity .7s ease,transform .7s ease;}
html.reveal-on .rv{opacity:0;transform:translateY(18px);}
html.reveal-on .rv.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){html.reveal-on .rv{opacity:1;transform:none;}}
