:root{--green:#1d4a38;--green-d:#12301f;--paper:#f1f5e6;--sheet:#fbfdf4;--rule:#c9dcc0;--red:#b5362b;--ink:#17231c;--mute:#4d5d52}
html{scroll-behavior:smooth;scroll-padding-top:130px}
body{font-family:'Public Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.06rem;line-height:1.65}
h1,h2,h3,h4,.display{font-family:'Libre Caslon Text',Georgia,serif;font-weight:700;color:var(--green);line-height:1.12}
a{color:var(--green)}
.mono{font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;color:var(--red);font-weight:600}
/* ledger paper: ruled lines + red margin line */
.ledger{background-image:linear-gradient(to right,transparent 0,transparent 3.2rem,var(--red) 3.2rem,var(--red) calc(3.2rem + 2px),transparent calc(3.2rem + 2px)),repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--rule) 31px,var(--rule) 32px);background-color:var(--sheet)}
.navbar.navbar-expand-lg{background:var(--sheet);border-bottom:3px double var(--green);padding:.6rem 0}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.navbar-brand{display:flex;flex-direction:column;align-items:center;margin:0 auto;font-family:'Libre Caslon Text',serif;font-weight:700;font-size:1.35rem;color:var(--green);text-align:center;line-height:1.15}
.navbar-brand img{height:44px;width:auto;margin-bottom:.25rem}
.navbar-brand small{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:500}
.navbar .nav-link{color:var(--green-d);font-weight:600;padding:.4rem 1rem}
.navbar .nav-link:hover{color:var(--red)}
.navbar-toggler{position:absolute;right:12px;top:14px}
.hero{padding:4.5rem 0 4rem;border-bottom:3px double var(--green)}
.hero h1{font-size:clamp(2.4rem,6vw,4.4rem);padding-left:3.2rem;max-width:18ch}
.hero p.lead{padding-left:3.2rem;max-width:44rem;color:var(--mute)}
.hero .mono,.hero .cta{padding-left:3.2rem}
.btn-wf{background:var(--green);color:#fff;border-radius:0;padding:.75rem 1.5rem;font-weight:700;border:2px solid var(--green)}
.btn-wf:hover{background:var(--green-d);color:#fff}
.btn-wf-o{background:transparent;color:var(--green);border:2px solid var(--green);border-radius:0;padding:.75rem 1.5rem;font-weight:700}
.btn-wf-o:hover{background:var(--green);color:#fff}
.figures{background:var(--green);color:#fff;font-family:'IBM Plex Mono',monospace;font-size:.95rem;overflow:hidden;white-space:nowrap;padding:.55rem 0}
.figures span{display:inline-block;padding:0 1.6rem;border-right:1px solid rgba(255,255,255,.3)}
.sec{padding:4.5rem 0}
.sec h2{font-size:clamp(1.8rem,3.5vw,2.6rem)}
.svc-index{list-style:none;padding:0;margin:0;border-top:2px solid var(--green)}
.svc-index li{display:grid;grid-template-columns:minmax(0,15rem) 1fr;gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--rule)}
.svc-index h3{font-size:1.15rem;margin:0}
.svc-index p{margin:0;color:var(--mute)}
@media(max-width:767px){.svc-index li{grid-template-columns:1fr;gap:.3rem}.hero h1,.hero p.lead,.hero .mono,.hero .cta{padding-left:1rem}.ledger{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--rule) 31px,var(--rule) 32px)}}
.band{background:var(--green-d);color:#fff}
.band h2{color:#fff}
.band .mono{color:#f0b9b2}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:.5rem 0 .5rem 2rem;position:relative;border-bottom:1px dashed rgba(255,255,255,.25)}
.checks li:before{content:"✓";position:absolute;left:0;color:#9fd8b3;font-weight:700}
.portal{border:2px solid var(--green);background:var(--sheet);padding:2rem}
.res a{display:block;padding:.7rem 0;border-bottom:1px solid var(--rule);text-decoration:none;font-weight:600}
.res a:hover{color:var(--red)}
.contact-card{background:var(--sheet);border:2px solid var(--green);padding:2rem}
.contact-card a{font-weight:700}
footer{background:var(--green-d);color:#d6e4d9;padding:2.5rem 0 2rem}
footer a{color:#fff}
footer .chip{background:var(--sheet);border-radius:8px;padding:.4rem .6rem;display:inline-block}
footer .chip img{height:40px;width:auto;display:block}
.powered{font-size:.85rem;opacity:.85}
