/* ============================================================
   MADE OVER BOOKKEEPING — shared styles
   Ledger ink-teal + warm paper + aged brass.
   ============================================================ */
:root{
  --ink:#123B3B;
  --ink-deep:#0C2A2A;
  --paper:#FBF7EF;
  --paper-line:#EDE3D2;
  --rule:#D8C7A8;
  --brass:#B08340;
  --brass-bright:#C89A52;
  --body:#33403C;
  --mute:#7C7A6E;
  --maxw:1080px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{animation:none!important;transition:none!important} }
body{background:var(--paper);color:var(--body);font-family:'Inter',system-ui,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.mono{font-family:'JetBrains Mono',monospace}
img{max-width:100%;display:block}

h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;font-weight:500;line-height:1.1;color:var(--ink)}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);font-weight:500}

/* ---------- nav ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(251,247,239,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--paper-line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.brand .m{color:var(--brass)}
.navlinks{display:flex;gap:28px;align-items:center}
.navlinks a{font-size:.9rem;color:var(--body);transition:color .15s}
.navlinks a:hover,.navlinks a.active{color:var(--brass)}
.nav-cta{font-size:.88rem;font-weight:500;background:var(--ink);color:var(--paper)!important;padding:10px 18px;border-radius:2px;transition:background .15s}
.nav-cta:hover{background:var(--brass)}
.menu-btn{display:none;background:none;border:0;font-family:'JetBrains Mono';font-size:.8rem;letter-spacing:.1em;color:var(--ink);cursor:pointer;text-transform:uppercase}

/* ---------- buttons ---------- */
.btn-primary{display:inline-block;background:var(--ink);color:var(--paper);font-weight:500;font-size:.98rem;padding:15px 30px;border-radius:2px;transition:background .15s;cursor:pointer;border:0}
.btn-primary:hover{background:var(--brass)}
.btn-text{display:inline-block;font-weight:500;font-size:.98rem;color:var(--ink);border-bottom:1.5px solid var(--brass);padding-bottom:2px}

/* ---------- generic page header ---------- */
.pagehead{padding:72px 0 12px;background:repeating-linear-gradient(180deg,transparent 0 43px,var(--paper-line) 43px 44px),var(--paper)}
.pagehead h1{font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:-.02em;max-width:18ch;margin-top:16px}
.pagehead p.lede{margin-top:20px;font-size:1.15rem;max-width:52ch;color:var(--body)}

/* ---------- sections ---------- */
section{padding:80px 0}
.section-head{max-width:62ch;margin-bottom:48px}
.section-head h2{font-size:clamp(1.8rem,4vw,2.6rem);margin-top:14px;letter-spacing:-.01em}
.section-head p{margin-top:16px;color:var(--body);font-size:1.06rem}

/* ---------- hero ---------- */
.hero{position:relative;padding:92px 0 80px;overflow:hidden;background:repeating-linear-gradient(180deg,transparent 0 43px,var(--paper-line) 43px 44px),var(--paper)}
.hero h1{font-size:clamp(2.4rem,6vw,4.1rem);letter-spacing:-.02em;max-width:16ch}
.hero h1 em{font-style:italic;color:var(--brass)}
.hero p.lede{margin-top:24px;font-size:1.16rem;max-width:50ch;color:var(--body)}
.hero-actions{margin-top:36px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}

/* ledger stat strip */
.ledger{margin-top:64px;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.ledger-row{display:grid;grid-template-columns:repeat(3,1fr)}
.ledger-cell{padding:22px 24px;border-right:1px solid var(--paper-line);display:flex;flex-direction:column;gap:4px}
.ledger-cell:last-child{border-right:0}
.ledger-cell .fig{font-family:'JetBrains Mono';font-size:1.6rem;color:var(--ink);font-weight:500;letter-spacing:-.02em}
.ledger-cell .lbl{font-size:.82rem;color:var(--mute)}

/* ---------- services grid (dark) ---------- */
.services{background:var(--ink);color:var(--paper)}
.services .eyebrow{color:var(--brass-bright)}
.services h2{color:var(--paper)}
.services .section-head p{color:#C9D6D0}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1)}
.svc{background:var(--ink);padding:32px 30px;transition:background .2s}
.svc:hover{background:var(--ink-deep)}
.svc h3{color:var(--paper);font-size:1.3rem;display:flex;align-items:baseline;gap:12px}
.svc h3 .n{font-family:'JetBrains Mono';font-size:.8rem;color:var(--brass-bright);font-weight:400}
.svc p{margin-top:14px;color:#C9D6D0;font-size:.96rem;line-height:1.6}
.svc ul{margin-top:16px;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.svc li{font-family:'JetBrains Mono';font-size:.72rem;color:var(--brass-bright);border:1px solid rgba(200,154,82,.35);padding:4px 10px;border-radius:2px}
.svc a.svc-link{display:inline-block;margin-top:18px;font-size:.85rem;color:var(--brass-bright);border-bottom:1px solid rgba(200,154,82,.4);padding-bottom:2px}

/* ---------- serve tags ---------- */
.serve-grid{display:flex;flex-wrap:wrap;gap:12px}
.serve-tag{border:1px solid var(--rule);padding:10px 18px;border-radius:2px;font-size:.92rem;color:var(--ink);background:#fff}
.serve-tag b{font-weight:600}

/* ---------- values ---------- */
.values{background:repeating-linear-gradient(180deg,transparent 0 43px,var(--paper-line) 43px 44px),var(--paper)}
.val-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.val{border-left:3px solid var(--brass);padding:6px 0 6px 24px}
.val h3{font-size:1.15rem;margin-bottom:8px}
.val p{font-size:.98rem;color:var(--body)}

/* ---------- prose blocks / list-columns ---------- */
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.6rem,3.5vw,2.2rem);margin:44px 0 16px}
.prose h3{font-size:1.25rem;margin:32px 0 12px}
.prose p{margin:0 0 16px}
.prose ul{margin:0 0 20px;padding-left:0;list-style:none}
.prose ul li{position:relative;padding:0 0 9px 22px}
.prose ul li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--brass)}
.cols-2{columns:2;column-gap:44px}
.cols-2 li{break-inside:avoid}
@media (max-width:640px){.cols-2{columns:1}}

/* card list used on services/industries */
.card-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.card{background:#fff;border:1px solid var(--paper-line);border-radius:3px;padding:28px}
.card h3{font-size:1.2rem;margin-bottom:12px}
.card ul{list-style:none}
.card li{position:relative;padding:0 0 8px 20px;font-size:.95rem}
.card li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;background:var(--brass)}
@media (max-width:720px){.card-list{grid-template-columns:1fr}}

/* numbered process */
.process{counter-reset:step;display:grid;gap:22px;max-width:64ch}
.step{position:relative;padding-left:56px}
.step::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:-2px;width:38px;height:38px;border:1.5px solid var(--brass);color:var(--brass);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-size:.95rem}
.step h3{font-size:1.15rem;margin-bottom:6px}

/* ---------- about ---------- */
.about{background:var(--ink-deep);color:var(--paper)}
.about .eyebrow{color:var(--brass-bright)}
.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}
.about h2{color:var(--paper);font-size:clamp(1.8rem,4vw,2.6rem)}
.about p{margin-top:18px;color:#C9D6D0;font-size:1.04rem}
.credential{border:1px solid rgba(200,154,82,.4);border-radius:3px;padding:28px;background:rgba(255,255,255,.03)}
.credential .eyebrow{display:block;margin-bottom:16px}
.credential dl{display:grid;grid-template-columns:auto 1fr;gap:12px 18px;font-size:.94rem}
.credential dt{font-family:'JetBrains Mono';color:var(--brass-bright);font-size:.78rem;letter-spacing:.05em;padding-top:3px}
.credential dd{color:var(--paper)}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;gap:32px}}

/* ---------- FAQ ---------- */
.faq{max-width:72ch}
.faq details{border-bottom:1px solid var(--paper-line);padding:20px 0}
.faq summary{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:'JetBrains Mono';color:var(--brass);font-size:1.3rem;transition:transform .2s}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin-top:14px;color:var(--body);font-size:1rem}
.faq details ul{margin-top:12px;list-style:none}
.faq details li{position:relative;padding:0 0 7px 20px}
.faq details li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;background:var(--brass)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:start}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;gap:36px}}
.form-field{margin-bottom:20px}
.form-field label{display:block;font-size:.82rem;font-family:'JetBrains Mono';letter-spacing:.04em;color:var(--mute);margin-bottom:6px;text-transform:uppercase}
.form-field input,.form-field select,.form-field textarea{width:100%;background:#fff;border:1px solid var(--rule);border-radius:2px;padding:12px 14px;font-family:'Inter';font-size:1rem;color:var(--body)}
.form-field textarea{min-height:120px;resize:vertical}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--brass);outline-offset:0;border-color:var(--brass)}
.contact-side{background:#fff;border:1px solid var(--paper-line);border-radius:3px;padding:30px}
.contact-side h3{font-size:1.2rem;margin-bottom:16px}
.contact-side dl{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;font-size:.94rem}
.contact-side dt{font-family:'JetBrains Mono';font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);padding-top:3px}
.contact-side dd a:hover{color:var(--brass)}
.notice{margin-top:24px;background:#fff;border-left:3px solid var(--brass);padding:18px 22px;font-size:.92rem;color:var(--body)}

/* ---------- centered CTA ---------- */
.cta{text-align:center;background:repeating-linear-gradient(180deg,transparent 0 43px,var(--paper-line) 43px 44px),var(--paper)}
.cta h2{font-size:clamp(1.9rem,5vw,2.9rem);max-width:22ch;margin:16px auto 0}
.cta p{max-width:46ch;margin:18px auto 0;color:var(--body)}
.cta-actions{margin-top:34px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
footer{background:var(--ink);color:#A9BDB6;padding:52px 0;font-size:.85rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.foot-brand{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--paper);margin-bottom:8px}
.foot-brand .m{color:var(--brass-bright)}
.foot-tag{font-size:.85rem;color:#8FA79F;max-width:34ch}
.foot-col h4{font-family:'JetBrains Mono';font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-bright);font-weight:500;margin-bottom:14px}
.foot-col a,.foot-col span{display:block;margin-bottom:9px;color:#A9BDB6}
.foot-col a:hover{color:var(--brass-bright)}
.foot-legal{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:22px;font-size:.78rem;color:#7C948D;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.foot-legal a:hover{color:var(--brass-bright)}
@media (max-width:720px){.foot-grid{grid-template-columns:1fr;gap:26px}}

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

/* ---------- responsive nav ---------- */
@media (max-width:860px){
  .navlinks{position:fixed;inset:72px 0 auto 0;background:var(--paper);flex-direction:column;gap:0;padding:0;border-bottom:1px solid var(--paper-line);max-height:0;overflow:hidden;transition:max-height .25s ease}
  .navlinks.open{max-height:70vh}
  .navlinks a{width:100%;padding:16px 28px;border-top:1px solid var(--paper-line)}
  .navlinks .nav-cta{margin:16px 28px;text-align:center}
  .menu-btn{display:block}
}
@media (max-width:640px){
  section{padding:60px 0}
  .hero{padding:60px 0 52px}
  .svc-grid,.val-grid{grid-template-columns:1fr}
  .ledger-row{grid-template-columns:1fr}
  .ledger-cell{border-right:0;border-bottom:1px solid var(--paper-line)}
}
