:root{
  --ink:#1c1e1b;
  --paper:#eeecdf;
  --paper2:#e6e3d2;
  --ochre:#c17f2e;
  --teal:#2f4c46;
  --teal-deep:#203632;
  --line:#b7b096;
  --muted:#6e6b5c;
  --white:#fbfaf4;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Archivo Expanded', sans-serif;margin:0;letter-spacing:-0.01em;text-transform:uppercase;}
a{color:inherit;}
p{max-width:62ch;}
.mono{font-family:'IBM Plex Mono', monospace;}
img{max-width:100%;}

.grid-bg{position:relative;}
.grid-bg::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line) 1px, transparent 1px),linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:64px 64px;opacity:0.16;pointer-events:none;
}
.crop{position:absolute;width:22px;height:22px;pointer-events:none;}
.crop::before,.crop::after{content:"";position:absolute;background:var(--ink);opacity:.55;}
.crop::before{width:100%;height:1px;top:50%;}
.crop::after{height:100%;width:1px;left:50%;}
.crop.tl{top:14px;left:14px;} .crop.tr{top:14px;right:14px;}
.crop.bl{bottom:14px;left:14px;} .crop.br{bottom:14px;right:14px;}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--ink);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;max-width:1180px;margin:0 auto;gap:20px;}
.brand{font-family:'Archivo Expanded',sans-serif;font-weight:800;font-size:22px;letter-spacing:0.02em;text-decoration:none;}
.brand span{color:var(--ochre);}
.navlinks{display:flex;gap:24px;font-size:14px;flex-wrap:wrap;}
.navlinks a{text-decoration:none;position:relative;padding-bottom:3px;white-space:nowrap;}
.navlinks a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ink);transition:width .25s ease;}
.navlinks a:hover::after, .navlinks a.active::after{width:100%;}
.navcall{font-family:'IBM Plex Mono',monospace;font-size:13px;border:1px solid var(--ink);padding:8px 14px;text-decoration:none;white-space:nowrap;}
@media(max-width:960px){ .navlinks{display:none;} }

.hero{position:relative;padding:70px 0 60px;border-bottom:1px solid var(--ink);}
.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:end;}
.plan-label{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--muted);margin-bottom:18px;display:flex;gap:10px;align-items:center;}
.plan-label .dot{width:6px;height:6px;background:var(--ochre);border-radius:50%;display:inline-block;flex-shrink:0;}
.hero h1{font-size:clamp(40px,6.5vw,84px);line-height:0.94;font-weight:800;}
.hero h1 em{font-style:normal;color:var(--teal);}
.hero-sub{margin-top:24px;font-size:18px;max-width:48ch;}
.hero-side{border-left:1px solid var(--ink);padding-left:28px;}
.hero-side .legend-title{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;}
.legend-item{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid var(--line);font-size:14.5px;gap:12px;}
.legend-item:last-child{border-bottom:1px solid var(--line);}
.legend-item b{font-weight:600;}
.legend-item span{color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:12px;text-align:right;}
.cta-row{margin-top:32px;display:flex;gap:16px;flex-wrap:wrap;}
.btn{display:inline-block;padding:14px 26px;font-family:'IBM Plex Mono',monospace;font-size:14px;text-decoration:none;border:1px solid var(--ink);cursor:pointer;background:transparent;color:var(--ink);}
.btn-solid{background:var(--ink);color:var(--paper);}
.btn-solid:hover{background:var(--teal-deep);}
.btn-ghost:hover{background:var(--ink);color:var(--paper);}
@media(max-width:900px){ .hero-grid{grid-template-columns:1fr;} .hero-side{border-left:none;border-top:1px solid var(--ink);padding-left:0;padding-top:24px;} }

.section{padding:74px 0;border-bottom:1px solid var(--ink);position:relative;}
.section.last{border-bottom:none;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap;}
.section-tag{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ochre);letter-spacing:.08em;margin-bottom:10px;}
.section h2{font-size:clamp(26px,3.6vw,40px);}
.section-note{max-width:38ch;color:var(--muted);font-size:14.5px;text-align:right;}
@media(max-width:700px){ .section-note{text-align:left;} }

.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink);border-left:1px solid var(--ink);}
.service{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:34px 28px;position:relative;background:var(--paper2);}
.service .num{font-family:'IBM Plex Mono',monospace;color:var(--muted);font-size:13px;}
.service h3{font-size:22px;margin:16px 0 12px;}
.service p{font-size:14.5px;color:#3c3b32;margin:0;}
@media(max-width:820px){ .services{grid-template-columns:1fr;} }

.ref-strip{border:1px solid var(--ink);padding:26px;background:var(--white);}
.ref-strip img{display:block;width:100%;height:auto;filter:grayscale(1);opacity:.85;}
.ref-names{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px 22px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--muted);}
.ref-names span::after{content:"—"; margin-left:22px; color:var(--line);}
.ref-names span:last-child::after{content:"";}

.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.price-card{border:1px solid var(--ink);padding:32px 26px;display:flex;flex-direction:column;background:var(--white);position:relative;}
.price-card.mid{background:var(--teal);color:var(--paper);}
.price-card.mid .price-tier,.price-card.mid p,.price-card.mid li{color:var(--paper);}
.price-card.mid .price-amount{color:var(--white);}
.price-card.mid ul li::before{background:var(--ochre);}
.price-tag{position:absolute;top:-1px;right:-1px;background:var(--ochre);color:var(--white);font-family:'IBM Plex Mono',monospace;font-size:11px;padding:5px 10px;letter-spacing:.05em;}
.price-tier{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:.06em;margin-bottom:6px;}
.price-card h3{font-size:24px;margin-bottom:14px;line-height:1.05;}
.price-amount{font-family:'Archivo Expanded',sans-serif;font-weight:800;font-size:34px;margin:6px 0 18px;text-transform:none;}
.price-amount sub{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:400;text-transform:none;}
.price-card p{font-size:13.5px;color:var(--muted);margin-bottom:18px;}
.price-card ul{list-style:none;padding:0;margin:0 0 26px;flex-grow:1;}
.price-card li{font-size:14px;padding:9px 0 9px 20px;position:relative;border-top:1px solid var(--line);}
.price-card li::before{content:"";position:absolute;left:0;top:16px;width:8px;height:1px;background:var(--ink);}
@media(max-width:900px){ .pricing{grid-template-columns:1fr;} }

.care-band{margin-top:26px;border:1px dashed var(--ink);padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.care-band .ct{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--muted);}
.care-band b{font-family:'Archivo Expanded',sans-serif;font-size:19px;text-transform:uppercase;}

.region{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.compass{position:relative;aspect-ratio:1/1;border:1px solid var(--ink);background:radial-gradient(circle at center, transparent 0 30%, var(--paper2) 30% 100%);}
.compass svg{width:100%;height:100%;}
.region-list{list-style:none;margin:0;padding:0;}
.region-list li{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line);font-size:15px;align-items:center;gap:10px;}
.region-list li:last-child{border-bottom:1px solid var(--line);}
.region-list span{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--muted);}
.region-list a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;}
.region-list a:hover{text-decoration-color:var(--ink);}
@media(max-width:820px){ .region{grid-template-columns:1fr;} }

.region-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.region-card{border:1px solid var(--ink);padding:26px;background:var(--white);display:flex;flex-direction:column;}
.region-card .tag{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ochre);margin-bottom:10px;}
.region-card h3{font-size:21px;margin-bottom:10px;}
.region-card p{font-size:14px;color:var(--muted);flex-grow:1;}
.region-card a{margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:13px;text-decoration:underline;text-underline-offset:3px;}
@media(max-width:820px){ .region-cards{grid-template-columns:1fr;} }

.contact{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.contact-info dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;font-size:15px;}
.contact-info dt{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);align-self:start;padding-top:3px;}
.contact-info dd{margin:0;}
.form{border:1px solid var(--ink);padding:26px;background:var(--white);}
.field{margin-bottom:16px;}
.field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em;}
.field input,.field textarea{width:100%;border:1px solid var(--ink);background:transparent;padding:11px 12px;font-family:'IBM Plex Sans',sans-serif;font-size:14.5px;color:var(--ink);}
.field textarea{resize:vertical;min-height:100px;}
.form-note{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin-top:14px;}
@media(max-width:820px){ .contact{grid-template-columns:1fr;} }

.legal h2{font-size:24px;margin:34px 0 12px;}
.legal h2:first-child{margin-top:0;}
.legal p, .legal li{font-size:14.5px;color:#3c3b32;max-width:70ch;}
.legal-callout{border:1px dashed var(--ochre);padding:18px 22px;margin-bottom:34px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--teal-deep);background:var(--paper2);}

footer{padding:34px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);}
footer a{text-decoration:none;}
footer a:hover{color:var(--ink);}
footer .fwrap{width:100%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;max-width:1180px;margin:0 auto;padding:0 32px;}

.breadcrumb{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin-bottom:16px;}
.breadcrumb a{text-decoration:underline;text-underline-offset:3px;}

/* ---------- cookie banner ---------- */
#cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--ink);color:var(--paper);
  border-top:1px solid var(--ochre);
  padding:22px 32px;
  transform:translateY(110%);
  transition:transform .35s ease;
}
#cookie-banner.show{transform:translateY(0);}
.cookie-inner{
  max-width:1180px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;
}
.cookie-text{max-width:62ch;font-size:14px;color:var(--paper);}
.cookie-text .tag{
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ochre);
  letter-spacing:.08em;display:block;margin-bottom:8px;
}
.cookie-text a{text-decoration:underline;color:var(--paper);text-underline-offset:3px;}
.cookie-actions{display:flex;gap:12px;flex-shrink:0;flex-wrap:wrap;}
.cookie-actions .btn{border-color:var(--paper);}
.cookie-actions .btn-solid{background:var(--ochre);border-color:var(--ochre);color:var(--ink);}
.cookie-actions .btn-solid:hover{background:var(--paper);color:var(--ink);}
.cookie-actions .btn-ghost{color:var(--paper);}
.cookie-actions .btn-ghost:hover{background:var(--paper);color:var(--ink);}
@media(max-width:700px){ #cookie-banner{padding:20px;} .cookie-actions{width:100%;} .cookie-actions .btn{flex:1;text-align:center;} }
