/* Layout concept: "the monthly close" — clean white pages, Luca blue blocks lifted from the logo,
   and figures set like a ledger (mono, tabular) wherever proof appears. Single light theme, by choice. */
:root{
  --blue:#3F48CC; --blue-d:#2F37A8; --cyan:#2E8BC0; --ink:#231F20; --ink-2:#4A4752;
  --paper:#FFFFFF; --mist:#F4F5FB; --line:#E2E3EE; --lav:#E6E7FA; --sky:#DDEEF8;
  --f-display:"Lexend",system-ui,sans-serif; --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6rem;
  --wrap:72rem; --r:10px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue)}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;line-height:1.15;margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:600}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
h3{font-size:1.2rem}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.eyebrow{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:500}
.lead{font-size:1.2rem;color:var(--ink-2);max-width:38rem}
.muted{color:var(--ink-2)}
section{padding-block:var(--s6)}
.sec-head{display:grid;gap:var(--s2);max-width:44rem;margin-bottom:var(--s4)}
.band-mist{background:var(--mist)}
.band-ink{background:var(--ink);color:#fff}
.band-ink .muted,.band-ink .lead{color:#C9C7D1}
.band-ink .eyebrow{color:#8FC3E6}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:4px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-display);font-weight:500;font-size:1rem;padding:.85rem 1.35rem;border-radius:8px;text-decoration:none;border:2px solid transparent;transition:background .15s,color .15s,border-color .15s;cursor:pointer}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-d)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
.band-ink .btn-ghost{border-color:#fff;color:#fff}.band-ink .btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s2)}
.arrow::after{content:"→";display:inline-block;margin-left:.45rem;transition:transform .15s}
.btn:hover .arrow::after,.arrow:hover::after{transform:translateX(3px)}
.link{font-family:var(--f-display);font-weight:500;text-decoration:none;display:inline-flex;gap:.4rem}
.link:hover{text-decoration:underline}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:#fff}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);height:72px}
.brand img{height:40px;width:auto}
.nav{display:flex;align-items:center;gap:var(--s3)}
.nav a{color:var(--ink);text-decoration:none;font-family:var(--f-display);font-size:.98rem;font-weight:400}
.nav a:hover,.nav a[aria-current=page]{color:var(--blue)}
.nav a[aria-current=page]{font-weight:600}
.nav .btn{color:#fff;padding:.6rem 1.05rem;font-size:.95rem}
.menu-btn{display:none;background:none;border:0;font:inherit;font-family:var(--f-display);font-weight:500;color:var(--ink);padding:.5rem;cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:72px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:var(--s1) max(20px,env(safe-area-inset-right,0px)) var(--s3) max(20px,env(safe-area-inset-left,0px))}
  .nav.open{display:flex}
  .nav a{padding:.8rem 0;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:var(--s2);justify-content:center;border-bottom:0}
}

/* hero */
.hero{padding-block:var(--s5) var(--s6)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s5);align-items:center}
.hero-copy{display:grid;gap:var(--s3);min-width:0}
.hero h1 em{font-style:normal;color:var(--blue)}
.hero-photo{position:relative;justify-self:end;width:min(100%,25rem)}
.hero-photo .frame{background:var(--blue);border-radius:22px;overflow:hidden;aspect-ratio:4/5;max-width:100%}
.hero-photo .frame img{width:100%;height:100%;object-fit:cover;object-position:center top;mix-blend-mode:normal}
.proof-chip{position:absolute;left:-2.2rem;bottom:-2.75rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;box-shadow:0 12px 30px -12px rgba(35,31,32,.35);display:grid;gap:.1rem;max-width:15rem}
.proof-chip b{font-family:var(--f-mono);font-size:1.5rem;color:var(--blue);font-weight:600}
.proof-chip span{font-size:.88rem;color:var(--ink-2);line-height:1.35}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;gap:var(--s4)}
  .hero-photo{justify-self:start;width:min(100%,22rem)}
  .proof-chip{left:auto;right:-.5rem;top:auto;bottom:-1.5rem}.hero-photo{margin-bottom:1.5rem}
}

/* ledger proof strip */
.ledger{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ledger .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.ledger .cell{padding:var(--s3) var(--s2);display:grid;gap:.25rem;border-left:1px solid var(--line);min-width:0}
.ledger .cell:first-child{border-left:0;padding-left:0}
.ledger b{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;color:var(--ink);line-height:1.1}
.ledger span{font-size:.92rem;color:var(--ink-2)}
.ledger small{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
@media (max-width:760px){.ledger .wrap{grid-template-columns:1fr 1fr}.ledger .cell:nth-child(3){border-left:0;padding-left:0}.ledger .cell{border-top:1px solid var(--line)}.ledger .cell:nth-child(-n+2){border-top:0}}

/* grids */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
.grid-2>*,.grid-3>*{min-width:0}
@media (max-width:900px){.grid-3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* pains */
.pain{padding:var(--s3) 0;border-top:1px solid var(--line);display:grid;gap:.5rem}
.pain h3{font-size:1.15rem}
.pain .fix{color:var(--ink-2)}
.pain .fix b{color:var(--blue);font-family:var(--f-display);font-weight:500}

/* services */
.svc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);display:grid;gap:.6rem;align-content:start}
.svc .tag{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.svc p{color:var(--ink-2);font-size:.98rem}

/* do / don't */
.dd{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.dd>*{min-width:0}
.dd ul{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2)}
.dd li{display:grid;grid-template-columns:1.6rem 1fr;gap:.6rem;align-items:start}
.dd li::before{font-family:var(--f-mono);font-weight:600;line-height:1.6}
.dd .yes li::before{content:"✓";color:#8FC3E6}
.dd .no li::before{content:"×";color:#F2A3A3}
.dd li b{font-family:var(--f-display);font-weight:500;color:#fff}
@media (max-width:760px){.dd{grid-template-columns:1fr}}

/* process steps (a real sequence) */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);counter-reset:s}
.step{display:grid;gap:.6rem;align-content:start;padding-top:var(--s3);border-top:3px solid var(--blue)}
.step:nth-child(2){border-color:var(--cyan)}.step:nth-child(3){border-color:var(--ink)}
.step .when{font-family:var(--f-mono);font-size:.78rem;color:var(--ink-2);letter-spacing:.04em}
.step p{color:var(--ink-2)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* case cards */
.case{display:grid;grid-template-rows:auto 1fr auto;gap:var(--s2);background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.case:hover{border-color:var(--blue);transform:translateY(-2px)}
.case .kind{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.case .fig{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600;color:var(--blue);line-height:1}
.case p{color:var(--ink-2);font-size:.98rem}

/* packages */
.pkg{border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s3);display:grid;gap:var(--s2);align-content:start;background:#fff;position:relative}
.pkg.feature{border:2px solid var(--blue)}
.pkg .flag{position:absolute;top:-.8rem;left:var(--s3);background:var(--blue);color:#fff;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .6rem;border-radius:4px}
.pkg .for{color:var(--ink-2);font-size:.98rem}
.pkg ul{margin:0;padding:0;list-style:none;display:grid;gap:.45rem;font-size:.97rem}
.pkg li{padding-left:1.4rem;position:relative}
.pkg li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:.6rem;border-radius:2px;background:var(--blue)}
.pkg.feature li::before{background:var(--cyan)}
.note{font-size:.95rem;color:var(--ink-2);margin-top:var(--s3)}

/* founder */
.founder .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s5);align-items:center}
.founder .wrap>*{min-width:0}
.founder img{border-radius:18px;aspect-ratio:4/5;object-fit:cover;object-position:top;width:100%;max-width:26rem}
.quote{font-family:var(--f-display);font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.35;font-weight:400}
.sig{display:grid;margin-top:var(--s3)}
.sig b{font-family:var(--f-display);font-weight:600}
.sig span{color:var(--ink-2);font-size:.95rem}
@media (max-width:860px){.founder .wrap{grid-template-columns:1fr;gap:var(--s4)}}

/* industries chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.5rem 1rem;font-family:var(--f-display);font-size:.95rem;text-decoration:none;color:var(--ink)}
.chip:hover{border-color:var(--blue);color:var(--blue)}

/* CTA band */
.cta .wrap{display:grid;grid-template-columns:1.3fr .7fr;gap:var(--s4);align-items:center}
.cta h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
@media (max-width:760px){.cta .wrap{grid-template-columns:1fr}}

/* page hero (inner pages) */
.page-hero{padding-block:var(--s5) var(--s4);border-bottom:1px solid var(--line)}
.page-hero .wrap{display:grid;gap:var(--s2);max-width:var(--wrap)}
.page-hero h1{font-size:clamp(2rem,4.4vw,3.1rem);max-width:48rem}

/* industry rows / case study long form */
.row{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--s4);padding-block:var(--s4);border-top:1px solid var(--line)}
.row>*{min-width:0}
.row:first-child{border-top:0;padding-top:0}
.row ul{margin:.6rem 0 0;padding-left:1.1rem;display:grid;gap:.3rem;color:var(--ink-2)}
.row .label{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-top:var(--s2)}
@media (max-width:760px){.row{grid-template-columns:1fr;gap:var(--s2)}}
.figs{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s2)}
.figs div{display:grid}
.figs b{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:1.6rem;color:var(--blue);font-weight:600;line-height:1.1}
.figs span{font-size:.85rem;color:var(--ink-2);max-width:11rem}

/* phases */
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--ink)}
.phase{padding:var(--s3) var(--s3) var(--s3) 0;border-bottom:1px solid var(--line);display:grid;gap:.4rem;align-content:start;min-width:0}
.phase .n{font-family:var(--f-mono);font-size:.78rem;color:var(--blue);letter-spacing:.06em}
.phase p{font-size:.96rem;color:var(--ink-2)}
@media (max-width:860px){.phases{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.phases{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:0;max-width:52rem}
.faq details{border-top:1px solid var(--line);padding-block:var(--s2)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-family:var(--f-display);font-weight:500;font-size:1.1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:var(--s2)}
.faq summary::after{content:"+";font-family:var(--f-mono);color:var(--blue)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:.6rem;color:var(--ink-2)}

/* about */
.bio{display:grid;grid-template-columns:.75fr 1.25fr;gap:var(--s5);align-items:start}
.bio>*{min-width:0}
.bio img{border-radius:18px;width:100%;max-width:24rem;aspect-ratio:4/5;object-fit:cover;object-position:top}
.bio .text{display:grid;gap:var(--s2);max-width:40rem}
.career{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;gap:0;border-top:2px solid var(--ink)}
.career li{display:grid;grid-template-columns:9rem 1fr;gap:var(--s2);padding-block:.8rem;border-bottom:1px solid var(--line)}
.career .yr{font-family:var(--f-mono);font-size:.85rem;color:var(--blue);font-variant-numeric:tabular-nums}
@media (max-width:760px){.bio{grid-template-columns:1fr;gap:var(--s4)}.career li{grid-template-columns:1fr;gap:.1rem}}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.values>div{display:grid;gap:.4rem;align-content:start;min-width:0}
.values p{color:var(--ink-2);font-size:.97rem}
@media (max-width:860px){.values{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.values{grid-template-columns:1fr}}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s5);align-items:start}
.contact-grid>*{min-width:0}
form{display:grid;gap:var(--s2)}
.field{display:grid;gap:.35rem}
.field label{font-family:var(--f-display);font-size:.92rem;font-weight:500}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;padding:.75rem .85rem;border:1px solid #C9CAD9;border-radius:8px;background:#fff;color:var(--ink);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
@media (max-width:560px){.two{grid-template-columns:1fr}}
.form-note{font-size:.88rem;color:var(--ink-2)}
.ok{background:var(--sky);border-radius:var(--r);padding:var(--s3);display:grid;gap:.5rem}
.side-card{background:var(--mist);border-radius:var(--r);padding:var(--s4) var(--s3);display:grid;gap:var(--s3)}
.side-card dl{margin:0;display:grid;gap:var(--s2)}
.side-card dt{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.side-card dd{margin:.15rem 0 0;font-family:var(--f-display)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* footer */
.site-foot{background:var(--ink);color:#D8D6DE;padding-block:var(--s5) var(--s3);font-size:.95rem}
.site-foot .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--s4)}
.site-foot .cols>*{min-width:0}
.site-foot img{height:44px;width:auto}
.site-foot h4{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#8FC3E6;font-weight:500;margin-bottom:var(--s2)}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.site-foot a{color:#fff;text-decoration:none}
.site-foot a:hover{text-decoration:underline}
.site-foot .legal{margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid #3a3537;display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);font-size:.85rem;color:#A9A6B2}
@media (max-width:860px){.site-foot .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.site-foot .cols{grid-template-columns:1fr}}

/* gentle load-in from a visible resting state */
@media (prefers-reduced-motion:no-preference){
  .hero-copy>*{animation:rise .6s ease both}
  .hero-copy>*:nth-child(2){animation-delay:.06s}.hero-copy>*:nth-child(3){animation-delay:.12s}.hero-copy>*:nth-child(4){animation-delay:.18s}
  @keyframes rise{from{transform:translateY(8px)}to{transform:none}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

@media (max-width:640px){section{padding-block:var(--s5)}.hero{padding-block:var(--s4) var(--s5)}}
[hidden]{display:none!important}
.bio img,.founder img{height:auto}
.figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2) var(--s3)}
/* mobile: shorter hero photo, sticky booking bar */
.m-cta{display:none}
@media (max-width:640px){
  .hero-photo{width:100%}
  .hero-photo .frame{aspect-ratio:1/1}
  .m-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:.6rem;align-items:center;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding:.6rem max(16px,env(safe-area-inset-right,0px)) calc(.6rem + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));transform:translateY(110%);transition:transform .2s}
  .m-cta.show{transform:none}
  .m-cta .btn{flex:1;justify-content:center;padding:.8rem 1rem}
  .m-cta .call{flex:0 0 auto;padding:.8rem 1rem}
  body{padding-bottom:4.5rem}
}

/* $21M joins the results row */
.ledger .wrap{grid-template-columns:repeat(5,1fr)}
@media (max-width:760px){.ledger .wrap{grid-template-columns:1fr 1fr}.ledger .cell{border-top:1px solid var(--line);border-left:1px solid var(--line);padding-left:var(--s2)}.ledger .cell:nth-child(1){grid-column:1/-1;border-top:0;border-left:0;padding-left:0}.ledger .cell:nth-child(2n){border-left:0;padding-left:0}.ledger .cell:nth-child(3){border-left:1px solid var(--line);padding-left:var(--s2)}}

/* hero: text only, no photo */
.hero .wrap{grid-template-columns:1fr}
.hero-copy{max-width:52rem}

/* brand guide alignment: Arial body, blue-gradient buttons, medium-purple accents */
:root{--purple:#857AE3;--f-body:Arial,"Helvetica Neue",Helvetica,sans-serif;--grad-blue:linear-gradient(100deg,#3F48CC 0%,#3F48CC 25%,#2E8BC0 100%);--grad-purple:linear-gradient(100deg,#857AE3 0%,#3F48CC 100%)}
.btn-primary{background:var(--grad-blue);background-size:140% 100%;background-position:0 0;transition:background-position .25s,color .15s,border-color .15s}
.btn-primary:hover{background:var(--grad-blue);background-size:140% 100%;background-position:100% 0}
.pkg li::before{background:var(--purple)}
.pkg .flag{background:var(--grad-purple)}
.band-ink .eyebrow{color:#A79EF0}
.ledger{border-top:0;position:relative}
.ledger::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad-purple)}
.phases{border-top:0;position:relative}
.phases::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad-purple)}
