/* NeoGIS — one-page site (EN at /, SR at /sr/). Same colour family as Locoft
   (the NeoGIS logo uses the same plum), but its own type: IBM Plex only,
   sentence-case headings, more white space. */
:root{
  --bg:#f7f4f5; --surface:#efe8eb; --surface-2:#e6dce1;
  --ink:#241019; --ink-muted:#665260; --brand:#4a0638; --brand-tint:#7a3160;
  --accent:#a97a2e; --border:#ded2d8; --border-strong:#c9b8c0; --focus:#4a0638;
  --on-brand:#fbf3f8;
  --shadow:0 1px 2px rgba(36,16,25,.05), 0 10px 30px -16px rgba(36,16,25,.22);
  --logo:url("../img/neogis-logo.png");
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1b0a13; --surface:#26111d; --surface-2:#321827;
    --ink:#f3ecee; --ink-muted:#c3a8b4; --brand:#dd9dc2; --brand-tint:#eab8d7;
    --accent:#d7ac5f; --border:#3a2030; --border-strong:#4d2c3e; --focus:#d7ac5f;
    --on-brand:#1b0a13;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 14px 30px -16px rgba(0,0,0,.6);
    --logo:url("../img/neogis-logo-light.png");
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#1b0a13; --surface:#26111d; --surface-2:#321827;
  --ink:#f3ecee; --ink-muted:#c3a8b4; --brand:#dd9dc2; --brand-tint:#eab8d7;
  --accent:#d7ac5f; --border:#3a2030; --border-strong:#4d2c3e; --focus:#d7ac5f;
  --on-brand:#1b0a13; color-scheme:dark;
  --logo:url("../img/neogis-logo-light.png");
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"IBM Plex Sans","Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  padding-inline:max(20px, calc((100% - 1180px)/2));
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{transition-duration:.001ms !important;} }
img{max-width:100%; display:block; height:auto;}
a{color:inherit;}
p{margin:0;}
h1,h2,h3{margin:0; font-weight:600; line-height:1.15; letter-spacing:-.01em; text-wrap:balance; color:var(--ink);}
h1{font-size:clamp(2.1rem, 4.6vw, 3.4rem);}
h2{font-size:clamp(1.6rem, 3vw, 2.2rem);}
h3{font-size:1.12rem; letter-spacing:0;}
.muted{color:var(--ink-muted);}
.mono, .eyebrow{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;}
.eyebrow{font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 1rem;}
:focus-visible{outline:2px solid var(--focus); outline-offset:3px; border-radius:2px;}
.skip{position:absolute; left:-999px;} .skip:focus{left:16px; top:12px; z-index:99; background:var(--bg); padding:8px 12px;}

/* Buttons */
.btn{display:inline-flex; align-items:center; gap:.5em; font:600 .95rem/1 "IBM Plex Sans",sans-serif;
  padding:.95em 1.5em; border-radius:4px; border:1px solid transparent; text-decoration:none; cursor:pointer;
  transition:transform .15s ease, border-color .15s ease, color .15s ease; white-space:nowrap;}
.btn-primary{background:var(--brand); color:var(--on-brand);}
.btn-primary:hover{transform:translateY(-1px);}
.btn-ghost{border-color:var(--border-strong); color:var(--ink);}
.btn-ghost:hover{border-color:var(--brand); color:var(--brand);}

/* Header — same size and behaviour as locoft.com */
header.site{position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--border);}
.head{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; min-height:81px; position:relative;}
.brand{display:block; line-height:0; flex:none;}
.brand img{height:44px; width:auto;}
nav.main{display:flex; align-items:center; gap:28px;}
nav.main a{font-size:.92rem; font-weight:500; color:var(--ink-muted); text-decoration:none; padding:.3em 0;
  border-bottom:1px solid transparent; white-space:nowrap; transition:color .15s ease, border-color .15s ease;}
nav.main a:hover{color:var(--ink); border-color:var(--accent);}
@media (min-width:861px) and (max-width:1080px){ nav.main{gap:16px;} }
@media (min-width:861px) and (max-width:960px){ nav.main{gap:12px;} nav.main a{font-size:.88rem;} }
.head-actions{display:flex; align-items:center; gap:12px;}
.lang{display:flex; gap:2px; font-family:"IBM Plex Mono",monospace; font-size:.8rem;}
.lang a, .lang b{padding:.35em .55em; border-radius:3px; text-decoration:none;}
.lang b{background:var(--surface-2); color:var(--ink); font-weight:500;}
.lang a{color:var(--ink-muted);} .lang a:hover{color:var(--ink);}
.menu-toggle{display:none; background:transparent; border:1px solid var(--border-strong); border-radius:3px;
  width:40px; height:40px; align-items:center; justify-content:center; cursor:pointer; flex-direction:column; gap:4px;}
.menu-toggle span, .menu-toggle::before, .menu-toggle::after{content:""; display:block; width:18px; height:2px; background:var(--ink);}
@media (max-width:860px){
  .head{min-height:73px;}
  nav.main{position:absolute; top:100%; left:calc(-1 * max(20px, (100vw - 1180px)/2)); right:calc(-1 * max(20px, (100vw - 1180px)/2));
    flex-direction:column; align-items:stretch; gap:0; background:var(--bg); border-bottom:1px solid var(--border);
    padding:20px 20px 26px; display:none;}
  nav.main.open{display:flex;}
  nav.main a{padding:.7em 0; border-bottom:1px solid var(--border);}
  .head-cta{display:none;}
  .menu-toggle{display:flex;}
}

/* Sections */
section{padding:clamp(56px, 9vw, 104px) 0; border-bottom:1px solid var(--border);}
section:last-of-type{border-bottom:0;}
.lede{font-size:clamp(1.05rem, 1.6vw, 1.22rem); color:var(--ink-muted); max-width:62ch; margin-top:1.2rem;}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:2rem;}
.sec-head{max-width:720px; margin-bottom:2.6rem;}
.sec-head p{margin-top:.9rem; color:var(--ink-muted);}

/* Hero */
.hero{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(28px,5vw,64px); align-items:center;}
.hero-mark{max-width:320px; width:100%; justify-self:end;}
.hero-mark img{width:100%;}
:root[data-theme="light"] .hero-mark source{display:none;}
.facts{display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:2.2rem; padding-top:1.4rem; border-top:1px solid var(--border);
  font-size:.9rem; color:var(--ink-muted);}
.facts strong{color:var(--ink); font-weight:600;}
@media (max-width: 760px){ .hero{grid-template-columns:1fr;} .hero-mark{display:none;} }

/* Services */
.grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap:16px;}
.card{background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:24px 22px 22px;}
.card .num{font-family:"IBM Plex Mono",monospace; font-size:.78rem; color:var(--accent); display:block; margin-bottom:.9rem;}
.card p{margin-top:.6rem; color:var(--ink-muted); font-size:.96rem;}
.card.more{background:transparent; border-style:dashed;}
.card.more a{color:var(--brand); font-weight:600;}

/* Example */
.example{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:center;}
.example figure{margin:0; border:1px solid var(--border); border-radius:6px; overflow:hidden; background:var(--surface); box-shadow:var(--shadow);}
.example figcaption{font-size:.8rem; color:var(--ink-muted); padding:10px 14px; border-top:1px solid var(--border);}
.stats{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; margin:1.6rem 0;}
.stats div{border-left:2px solid var(--accent); padding-left:12px;}
.stats strong{display:block; font-size:1.6rem; font-weight:600; line-height:1.1;}
.stats span{font-size:.86rem; color:var(--ink-muted);}
.link{font-weight:600; color:var(--brand); text-decoration:none; border-bottom:1px solid currentColor;}
@media (max-width: 860px){ .example{grid-template-columns:1fr;} }

/* Steps */
.steps{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:28px; counter-reset:s; list-style:none; padding:0; margin:0;}
.steps li{counter-increment:s; border-top:2px solid var(--brand); padding-top:16px;}
.steps li::before{content:"0" counter(s); font-family:"IBM Plex Mono",monospace; font-size:.8rem; color:var(--accent); display:block; margin-bottom:.5rem;}
.steps p{color:var(--ink-muted); font-size:.95rem; margin-top:.4rem;}

/* Locoft block */
.product{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(24px,4vw,48px); align-items:center;
  background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:clamp(24px,4vw,44px);}
.product ul{margin:1.2rem 0 0; padding-left:1.1em; color:var(--ink-muted);}
.product li{margin:.3em 0;}
.product .cta-row{margin-top:0; flex-direction:column; align-items:stretch;}
.product .btn{justify-content:center;}
@media (max-width: 760px){ .product{grid-template-columns:1fr;} }

/* About + contact */
.two{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(24px,5vw,64px);}
.two p + p{margin-top:1rem;}
.about p{color:var(--ink-muted);}
@media (max-width: 760px){ .two{grid-template-columns:1fr;} }
.contact-mail{font-size:clamp(1.3rem, 3vw, 1.8rem); font-weight:600; color:var(--brand); text-decoration:none; border-bottom:2px solid currentColor; word-break:break-all;}
dl.company{display:grid; grid-template-columns:max-content 1fr; gap:6px 18px; margin:0; font-size:.95rem;}
dl.company dt{color:var(--ink-muted);} dl.company dd{margin:0;}

/* Footer — same layout as locoft.com */
footer.site{padding:44px 0 56px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  border-top:1px solid var(--border);}
.footer-left{display:flex; align-items:center; gap:14px;}
.footer-left img{height:30px; width:auto;}
.footer-tagline{font-size:.85rem; color:var(--ink-muted);}
.footer-links{display:flex; gap:20px; row-gap:8px; flex-wrap:wrap; font-size:.85rem;}
.footer-links a{text-decoration:none; color:var(--ink-muted); white-space:nowrap;}
.footer-links a:hover{color:var(--brand);}
.footer-meta{font-size:.78rem; color:var(--ink-muted); font-family:"IBM Plex Mono",monospace;}
.footer-privacy{flex-basis:100%; margin:0; font-size:.75rem; color:var(--ink-muted);}
@media (max-width:520px){ footer.site{flex-direction:column; align-items:flex-start;} }
