:root{
  --green:#0E2A47; --green-700:#0A2038; --sage:#2F7E8C; --sage-light:#5FB4C2;
  --ink:#1A1F26; --slate:#5B6672; --mist:#F4F6F8; --line:#E2E8F0; --white:#FFFFFF;
  --serif:'Source Serif 4', Georgia, serif;
  --sans:'Inter','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}

/* Nav */
nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;}
.brand-mark{flex:none;display:block;}
.brand-text{display:flex;flex-direction:column;line-height:1.05;}
.brand .b1{font-weight:600;font-size:19px;letter-spacing:.2px;color:var(--green);}
.brand .b2{font-size:8.5px;font-weight:600;letter-spacing:4px;color:var(--slate);text-transform:uppercase;margin-top:3px;}
.nav-links{display:flex;gap:28px;align-items:center;}
.nav-links a{text-decoration:none;color:var(--slate);font-size:14.5px;font-weight:500;}
.nav-links a:hover,.nav-links a.active{color:var(--green);}
.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;font-weight:600;font-size:14.5px;padding:11px 20px;border-radius:7px;transition:background .15s;cursor:pointer;border:none;}
.btn:hover{background:var(--green-700);}
.btn.ghost{background:transparent;color:var(--green);border:1px solid var(--line);}
.btn.ghost:hover{border-color:var(--green);}
.nav-links .btn{color:#fff;}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;color:var(--green);padding:8px;margin:-8px -4px;}
.nav-toggle svg{display:block;}

/* Page header (interior pages) */
.page-head{background:linear-gradient(180deg,#fff 0%,var(--mist) 100%);padding:42px 0 32px;}
.page-head .kicker{color:var(--sage);font-weight:600;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;}
.page-head h1{font-family:var(--serif);font-weight:600;font-size:42px;line-height:1.14;color:var(--green);margin:14px 0 14px;max-width:760px;}
.page-head p{font-size:18px;color:var(--slate);max-width:820px;}

/* Hero (home) */
.hero{background:linear-gradient(180deg,#fff 0%,var(--mist) 100%);padding:52px 0 42px;}
.hero .eyebrow{display:inline-block;background:#E6F0F3;color:var(--green);font-weight:600;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;padding:6px 13px;border-radius:20px;}
.hero h1{font-family:var(--serif);font-weight:600;font-size:46px;line-height:1.1;color:var(--green);margin:12px 0 14px;max-width:760px;}
.hero p{font-size:18px;color:var(--slate);max-width:620px;margin-bottom:18px;}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;}

/* Credibility strip */
.trust{background:#fff;border-bottom:1px solid var(--line);}
.trust .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:24px 28px;}
.trust .ti b{display:block;font-family:var(--serif);font-size:18px;color:var(--green);font-weight:600;margin-bottom:3px;}
.trust .ti span{font-size:13.5px;color:var(--slate);}

/* Sections */
section.block{padding:42px 0;border-bottom:1px solid var(--line);}
.kicker{color:var(--sage);font-weight:600;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;}
h2{font-family:var(--serif);font-weight:600;font-size:32px;color:var(--green);margin:8px 0 12px;line-height:1.2;}
.lead{font-size:16.5px;color:var(--slate);max-width:880px;margin-bottom:22px;}
h3{font-weight:600;}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.card{border:1px solid var(--line);border-radius:12px;padding:24px 22px;transition:box-shadow .15s,transform .15s;background:#fff;}
.card:hover{box-shadow:0 10px 30px rgba(14,42,71,.08);transform:translateY(-2px);}
.card .num{font-family:var(--serif);font-size:15px;color:var(--sage);font-weight:600;}
.card h3{font-size:18px;color:var(--green);margin:10px 0 8px;}
.card p{font-size:14.5px;color:var(--slate);}

/* Detailed service rows */
.svc-row{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line);}
.svc-row:first-child{border-top:none;}
.svc-row .n{font-family:var(--serif);font-size:22px;color:var(--sage);font-weight:600;}
.svc-row h3{font-size:20px;color:var(--green);margin-bottom:8px;}
.svc-row p{color:var(--slate);font-size:15.5px;max-width:920px;}
.svc-row .tags{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;}
.svc-row .tags span{font-size:12.5px;color:var(--green);background:var(--mist);border:1px solid var(--line);padding:4px 10px;border-radius:20px;}

/* Split / panels */
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;}
.approach-list{list-style:none;margin-top:8px;}
.approach-list li{padding:12px 0;border-top:1px solid var(--line);}
.approach-list li:first-child{border-top:none;}
.approach-list strong{display:block;color:var(--green);font-size:16px;margin-bottom:3px;}
.approach-list span{color:var(--slate);font-size:14.5px;}
.panel{background:var(--green);color:#fff;border-radius:16px;padding:32px 34px;}
.panel h3{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:16px;}
.panel p{color:#ADBECF;font-size:15.5px;}

/* Global delivery */
.geo{background:var(--mist);}
.geo .cards{grid-template-columns:repeat(4,1fr);}
.geo .card{background:#fff;text-align:left;}
.geo .card .loc{font-weight:600;color:var(--green);font-size:17px;}
.geo .card .role{color:var(--slate);font-size:13.5px;margin-top:4px;}
.geo .card .flag{font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sage);font-weight:600;}
.geo .cards.two{grid-template-columns:repeat(2,1fr);max-width:640px;}

/* About */
.founder{display:grid;grid-template-columns:120px 1fr;gap:28px;align-items:start;}
.founder .avatar{width:120px;height:120px;border-radius:16px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:44px;font-weight:600;}
.founder h3{font-size:22px;color:var(--green);}
.founder .title{color:var(--sage);font-weight:600;font-size:14px;margin:2px 0 14px;}
.founder p{color:var(--slate);font-size:15.5px;margin-bottom:12px;max-width:880px;}
.placeholder{background:#FFF8E6;border:1px dashed #E0C36B;color:#7A5B00;font-size:13px;padding:10px 14px;border-radius:8px;margin:8px 0;}

/* Contact / form */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:13.5px;font-weight:600;color:var(--green);margin-bottom:6px;}
.field input,.field textarea{width:100%;font-family:var(--sans);font-size:15px;color:var(--ink);padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(47,126,140,.15);}
.field textarea{min-height:130px;resize:vertical;}
.contact-side{background:var(--mist);border:1px solid var(--line);border-radius:14px;padding:28px 26px;}
.contact-side h3{font-size:17px;color:var(--green);margin-bottom:12px;}
.contact-side a{color:var(--sage);text-decoration:none;font-weight:600;}
.contact-side .row{font-size:14.5px;color:var(--slate);margin-bottom:10px;}

/* CTA strip */
.cta-strip{background:var(--green);color:#fff;text-align:center;padding:54px 0;position:relative;overflow:hidden;}
.cta-strip h2{color:#fff;}
.cta-strip p{color:#9FB1C4;max-width:540px;margin:0 auto 28px;font-size:17px;}
.cta-strip .btn{background:#fff;color:var(--green);}
.cta-strip .btn:hover{background:var(--mist);}

/* Expanded service detail */
.svc-meta{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:18px;}
.svc-meta h4{font-size:12px;text-transform:uppercase;letter-spacing:1.2px;color:var(--sage);font-weight:600;margin-bottom:8px;}
.svc-meta ul{list-style:none;}
.svc-meta li{font-size:14px;color:var(--slate);padding:3px 0 3px 16px;position:relative;}
.svc-meta li::before{content:"–";position:absolute;left:0;color:var(--sage);}
.who{font-size:13.5px;color:var(--green);background:var(--mist);border:1px solid var(--line);padding:7px 13px;border-radius:8px;display:inline-block;margin-top:16px;}
.who b{font-weight:600;}

/* Engagement phase timeline */
.timeline{margin-top:8px;}
.phase{display:grid;grid-template-columns:56px 1fr;gap:24px;padding-bottom:34px;position:relative;}
.phase:last-child{padding-bottom:0;}
.phase::before{content:"";position:absolute;left:27px;top:54px;bottom:6px;width:2px;background:var(--line);}
.phase:last-child::before{display:none;}
.phase .pnum{width:54px;height:54px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:22px;font-weight:600;z-index:1;}
.phase h3{font-size:20px;color:var(--green);margin-bottom:4px;}
.phase .dur{font-size:12.5px;color:var(--sage);font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;}
.phase p{color:var(--slate);font-size:15px;max-width:860px;margin-bottom:12px;}
.phase .deliv{display:flex;gap:8px;flex-wrap:wrap;}
.phase .deliv span{font-size:12.5px;color:var(--green);background:var(--mist);border:1px solid var(--line);padding:4px 11px;border-radius:20px;}

/* Footer */
footer{padding:36px 0;font-size:13px;color:var(--slate);}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}
footer a{color:var(--slate);text-decoration:none;}
footer a:hover{color:var(--green);}

@media(max-width:860px){
  .cards,.geo .cards{grid-template-columns:1fr 1fr;}
  .split,.contact-grid,.svc-meta{grid-template-columns:1fr;gap:32px;}
  .hero h1{font-size:36px;}.page-head h1{font-size:32px;}
}
/* Mobile hamburger nav */
@media(max-width:820px){
  nav .wrap{position:relative;}
  .nav-toggle{display:block;}
  .nav-links{position:absolute;top:100%;left:-28px;right:-28px;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 16px 26px rgba(14,42,71,.08);padding:6px 0;display:none;}
  nav.open .nav-links{display:flex;}
  .nav-links a{padding:13px 28px;font-size:15px;width:100%;}
  .nav-links a.active{background:var(--mist);}
  .nav-links .btn{margin:8px 28px;text-align:center;color:#fff;}
}
@media(max-width:560px){
  .trust .wrap{grid-template-columns:1fr;gap:14px;}
}
@media(max-width:520px){
  .cards,.geo .cards,.geo .cards.two{grid-template-columns:1fr;}
  .hero h1{font-size:30px;}
  .founder{grid-template-columns:1fr;}
}
/* Mobile comfort: loosen the tight desktop spacing on phones */
@media(max-width:600px){
  .wrap{padding:0 22px;}
  section.block{padding:50px 0;}
  .hero{padding:44px 0 40px;}
  .page-head{padding:42px 0 34px;}
  .hero p{margin-bottom:24px;}
  .lead{margin-bottom:24px;}
  h2{margin:8px 0 16px;}
  .panel{padding:30px 26px;}
  .svc3{padding:26px 22px 34px;}
  .card{padding:24px 22px;}
  .hero-grid{gap:30px;}
  .head-grid{gap:30px;}
  .split,.contact-grid,.svc-meta{gap:30px;}
  .trust .wrap{padding:22px 22px;gap:18px;}
  .approach-list li{padding:15px 0;}
  .svc-row{padding:26px 0;}
  .cta-strip{padding:48px 0;}
}

/* Services — practice areas (from content doc) */
.svc-areas .wrap{max-width:1000px;}
.svc-area{padding:42px 0;border-top:1px solid var(--line);}
.svc-area:first-child{border-top:none;padding-top:6px;}
.sa-head{display:flex;align-items:baseline;gap:14px;margin-bottom:12px;}
.sa-num{font-family:var(--serif);font-size:20px;color:var(--sage);font-weight:600;}
.sa-head h2{font-family:var(--serif);font-size:27px;color:var(--green);font-weight:600;margin:0;}
.sa-intro{font-size:16px;color:var(--slate);max-width:840px;margin-bottom:12px;line-height:1.65;}
.sa-what{font-size:15px;color:var(--ink);max-width:840px;margin-bottom:24px;line-height:1.65;opacity:.92;}
.offerings{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.offering{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;transition:box-shadow .15s,transform .15s;}
.offering:hover{box-shadow:0 10px 26px rgba(14,42,71,.07);transform:translateY(-2px);}
.offering h4{font-size:15px;color:var(--green);font-weight:600;margin-bottom:7px;line-height:1.3;}
.offering p{font-size:13.6px;color:var(--slate);line-height:1.55;}
@media(max-width:760px){.offerings{grid-template-columns:1fr;}}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease;will-change:opacity,transform;}
.reveal.in{opacity:1;transform:none;}

/* Reveal cards (home services) — fixed size, slide-up detail (no resize) */
.flip{position:relative;height:190px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;outline:none;transition:box-shadow .15s;}
.flip:hover{box-shadow:0 10px 30px rgba(14,42,71,.10);}
.flip-in{position:absolute;inset:0;}
.flip-face{position:absolute;inset:0;padding:24px 24px;display:flex;flex-direction:column;justify-content:center;}
.flip-front .num{font-family:var(--serif);font-size:24px;color:var(--sage);font-weight:600;}
.flip-front h3{font-size:18px;color:var(--green);margin-top:8px;font-weight:600;}
.flip-back{background:linear-gradient(155deg,var(--green),var(--green-700));color:#fff;transform:translateY(101%);transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.flip:hover .flip-back,.flip:focus-within .flip-back{transform:translateY(0);}
.flip-back p{color:#E7F0F6;font-size:14.5px;line-height:1.55;}
.flip-back::after{content:"\2197";position:absolute;right:18px;bottom:14px;color:var(--sage-light);font-size:16px;font-weight:600;}

/* Monogram accents */
.mono{flex:none;display:inline-block;vertical-align:middle;}
.foot-brand{display:inline-flex;align-items:center;gap:9px;}
.cta-mono{margin-bottom:14px;}
.cta-strip .wrap{position:relative;z-index:1;}
.panel{position:relative;overflow:hidden;}
.panel-mono{position:absolute;right:-16px;bottom:-20px;width:140px;height:140px;opacity:.10;pointer-events:none;}
.cta-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:340px;height:340px;opacity:.05;pointer-events:none;z-index:0;}

@media(max-width:860px){
  .flip{height:auto;}
  .flip-in{position:relative;}
  .flip-face{position:relative;inset:auto;justify-content:flex-start;}
  .flip-back{transform:none;margin-top:2px;}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;}
  .flip-in{transition:none;}
}

/* Hero two-column + feature card */
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.hero-card{background:var(--green);color:#fff;border-radius:18px;padding:26px 26px;position:relative;overflow:hidden;box-shadow:0 20px 44px rgba(14,42,71,.20);}
.hc-top{display:flex;align-items:center;gap:10px;margin-bottom:12px;position:relative;z-index:1;}
.hc-top span{font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sage-light);font-weight:600;}
.hc-list{list-style:none;position:relative;z-index:1;}
.hc-list li{padding:11px 0;border-top:1px solid rgba(255,255,255,.13);font-size:15px;color:#E7F0F6;display:flex;align-items:center;gap:11px;}
.hc-list li:first-child{border-top:none;}
.hc-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sage);flex:none;}
.hc-graph{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.13);position:relative;z-index:1;}
.hc-graph-label{font-size:11.5px;color:#A6BCCC;margin-bottom:8px;}
.hc-graph svg{width:100%;height:52px;display:block;}

/* (reveal-card styles consolidated above) */

/* Balanced global-delivery */
.geo-stack{display:grid;gap:14px;}
.geo .cards.two{margin:0 auto;}

@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:26px;}
}

/* Interior page-head side card (fills whitespace) */
.head-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
.head-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 22px;box-shadow:0 14px 34px rgba(14,42,71,.06);}
.head-card .hc-h{font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:10px;}
.head-card ul{list-style:none;}
.head-card li{display:flex;align-items:center;gap:11px;padding:9px 0;border-top:1px solid var(--line);font-size:14px;color:var(--ink);}
.head-card li:first-child{border-top:none;}
.head-card li .d{width:7px;height:7px;border-radius:50%;background:var(--sage);flex:none;}
.head-card li .n{font-family:var(--serif);color:var(--sage);font-weight:600;width:16px;flex:none;}
.head-art{width:100%;display:flex;justify-content:center;}
.head-art svg{width:100%;max-width:440px;height:auto;display:block;}
@media(max-width:860px){.head-grid{grid-template-columns:1fr;gap:24px;}.head-art svg{max-width:340px;}}

/* Service cards (home) — filled, dynamic, fixed size */
.svc3{position:relative;border:1px solid var(--line);border-radius:12px;padding:22px 22px 36px;background:#fff;overflow:hidden;transition:transform .18s,box-shadow .18s;}
.svc3::before{content:"";position:absolute;left:0;top:0;height:3px;width:34px;background:var(--sage);transition:width .28s ease;}
.svc3:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(14,42,71,.10);}
.svc3:hover::before{width:100%;}
.svc3 .num{font-family:var(--serif);font-size:22px;color:var(--sage);font-weight:600;}
.svc3 h3{font-size:18px;color:var(--green);margin:8px 0 7px;font-weight:600;}
.svc3 p{font-size:14px;color:var(--slate);line-height:1.55;}
.svc3 .arr{position:absolute;right:18px;bottom:13px;color:var(--sage-light);opacity:0;transform:translateX(-5px);transition:.2s;}
.svc3:hover .arr{opacity:1;transform:none;color:var(--sage);}

/* Dynamic graphics */
@keyframes mpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
.head-art .pulse{transform-box:fill-box;transform-origin:center;animation:mpulse 2.6s ease-in-out infinite;}
@media(prefers-reduced-motion:reduce){.head-art .pulse{animation:none;}}

/* Case studies */
.cases .wrap{max-width:960px;}
.case-card{border:1px solid var(--line);border-radius:16px;padding:32px 34px;margin-bottom:24px;background:#fff;transition:box-shadow .15s,transform .15s;}
.case-card:hover{box-shadow:0 14px 34px rgba(14,42,71,.07);transform:translateY(-2px);}
.case-tag{display:inline-block;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--sage);background:var(--mist);border:1px solid var(--line);padding:5px 12px;border-radius:20px;margin-bottom:14px;}
.case-card h2{font-family:var(--serif);font-size:23px;color:var(--green);font-weight:600;margin:0 0 18px;line-height:1.25;}
.case-row{display:grid;grid-template-columns:104px 1fr;gap:18px;padding:14px 0;border-top:1px solid var(--line);}
.case-row:first-of-type{border-top:none;padding-top:2px;}
.case-row .lab{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--slate);padding-top:3px;}
.case-row p{font-size:15px;color:var(--ink);line-height:1.65;opacity:.92;margin:0;}
.case-row.outcome{background:var(--mist);border-radius:10px;margin-top:8px;padding:16px 18px;border-top:none;}
.case-row.outcome .lab{color:var(--green);}
.case-row.outcome p{color:var(--green);font-weight:500;opacity:1;}
@media(max-width:640px){.case-card{padding:24px 20px;}.case-row{grid-template-columns:1fr;gap:5px;}.case-row .lab{padding-top:0;}}

/* Services hub */
.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.hub-card{display:block;border:1px solid var(--line);border-radius:14px;padding:26px 24px;background:#fff;text-decoration:none;transition:box-shadow .15s,transform .15s;}
.hub-card:hover{box-shadow:0 12px 30px rgba(14,42,71,.08);transform:translateY(-2px);}
.hub-card .hn{font-family:var(--serif);font-size:15px;color:var(--sage);font-weight:600;}
.hub-card h3{font-size:19px;color:var(--green);margin:8px 0 8px;font-weight:600;}
.hub-card p{font-size:14.5px;color:var(--slate);line-height:1.6;margin-bottom:12px;}
.hub-card .more{font-size:13.5px;color:var(--sage);font-weight:600;}
@media(max-width:760px){.hub-grid{grid-template-columns:1fr;}}
/* Service page: what-we-do + AI callout */
.svc-what{font-size:16.5px;color:var(--slate);max-width:760px;line-height:1.7;margin-bottom:8px;}
.ai-callout{border:1px solid var(--line);border-left:3px solid var(--sage);background:var(--mist);border-radius:12px;padding:22px 24px;margin-top:10px;max-width:820px;}
.ai-callout .lab{font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--sage);margin-bottom:8px;}
.ai-callout p{font-size:15px;color:var(--ink);line-height:1.65;margin:0;opacity:.92;}
.svc-back{display:inline-block;margin-top:6px;font-size:14px;color:var(--sage);font-weight:600;text-decoration:none;}
.svc-back:hover{text-decoration:underline;}
