/* ==========================================================================
   MASUDIS — MOST (bridge)
   POWERED BY MASUDIS

   Ucitava se POSLE inline stilova na starim stranicama (proizvodi, blog,
   privacy) i radi tacno tri stvari:

     1. ispravlja tokene boja koji su padali WCAG AA
     2. dodaje delove navigacije i footera kojih u v1 nije bilo (telefon, dock)
     3. dodaje vidljiv fokus i skip link

   NAMERNO NE ucitavamo ceo masudis-v2.css preko starih stranica: on definise
   .hero, .sec-title, .btn-pri, .stat-* i druge klase koje stare stranice
   koriste sa SVOJIM rasporedom — pregazio bi im layout. Ovaj fajl dira samo
   ono sto je zajednicko i sigurno.
   ========================================================================== */

:root{
  /* v1: #7C7888 = 3.39:1 na cream-u — pao AA na telu teksta.
     Sada 5.6:1. Ime tokena je isto, pa sve staro nasledi ispravku. */
  --ink-mute:#5F5C6B;
  --ink-faint:#8A8697;

  /* akcenti bezbedni za tekst na cream podlozi */
  --amber-dk:#8C5406;   /* 4.9:1 */
  --teal-dk:#0A6459;    /* 5.1:1 */
}

/* --- fokus: v1 ga nije imao nigde --- */
:focus-visible{outline:2.5px solid var(--amber);outline-offset:3px;border-radius:4px}
:focus:not(:focus-visible){outline:none}

/* --- preskoci na sadrzaj --- */
.skip{position:absolute;left:-9999px;top:0;z-index:9999;background:var(--ink);color:var(--cream);
  padding:14px 22px;font-family:'Space Mono',monospace;font-size:.72rem;letter-spacing:1px;
  text-transform:uppercase;text-decoration:none}
.skip:focus{left:16px;top:16px}

/* --- navigacija je gusca nego u v1 (6 stavki + telefon), pa malo zbijamo --- */
.nav-links{gap:30px}
.nav-links a{font-size:.74rem}

.nav-tel{display:inline-flex;align-items:center;gap:8px;font-family:'Space Mono',monospace;
  font-size:.74rem;letter-spacing:.5px;color:var(--ink)!important;text-decoration:none;
  padding:10px 16px;border:1.5px solid var(--line);border-radius:100px;
  transition:border-color .3s,background .3s}
.nav-tel::after{display:none!important}
.nav-tel:hover{border-color:var(--ink);background:var(--paper)}
.nav-tel svg{flex-shrink:0}

@media(max-width:1180px){.nav-tel span{display:none}.nav-tel{padding:11px 13px}.nav-links{gap:22px}}

/* ==========================================================================
   TEKST U AMBER BOJI
   v1 je na desetak mesta koristio sirovi --amber (#D4840A) kao boju TEKSTA.
   Na cream podlozi to je 2.34:1 — pada AA vise nego duplo, i to bas na
   sitnom tekstu (9-13px): oznake, tagovi, linkovi u telu clanka.
   --amber ostaje netaknut jer nosi pozadine, ivice i gradijente;
   menja se samo tamo gde je TEKST.
   ========================================================================== */
.serif-mark,
.manifesto-statement em,
.mob a span,
.post-crumb .sep,
.post-tag,
.blog-tag,
.article-col a,
.post-back:hover,
.blog-card:hover .blog-more,
.cta-mail:hover,
.foot-col a:hover,
.ben-num,
.crumbs li,
.spec-row dt,
.price-foot{color:var(--amber-dk)}

/* linkovi u telu teksta moraju i da se prepoznaju bez boje */
.article-col a,.article-col p a,.article-col li a{
  color:var(--amber-dk);
  border-bottom-color:rgba(140,84,6,.4);
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.article-col a:hover,.article-col p a:hover{color:var(--ink);border-bottom-color:var(--ink);text-decoration-thickness:2px}

/* "Svi tekstovi" u dnu clanka — v1 je amber davao samo na :hover, osnovno stanje je padalo */
.post-back{color:var(--amber-dk)}
.post-back:hover{color:var(--ink)}

/* navigacija: sitan mono tekst mora da bude citljiv i na 12px */
.nav-links a{color:var(--ink-mute)}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink)}

/* Widget chata ima hardkodiran #7C7888 u <style> bloku unutar <body>.
   Taj blok je u redosledu dokumenta POSLE ovog fajla, pa ga obican
   .mchat-foot b ne bi pobedio — otuda dodatni roditelj u selektoru.
   Literal, NE var(--ink-mute): panel widgeta je uvek svetao, i na tamnim
   stranicama, pa bi token tamne teme ovde bio presvetao. */
.mchat-panel .mchat-typing i,
.mchat-panel .mchat-foot b{color:#5F5C6B}

/* NADZOR — tabela poredjenja. Sve cetiri boje su iz v1 i padaju AA
   na 10-14px: teal 3.28, "Da" 3.64, "Osnovno" 3.10, crtica 3.30.
   Ovo je tabela koju kupac cita da bi odlucio — mora da se vidi. */
.cmp .cmp-row .cmp-c.us{color:var(--teal-dk)}
.cmp .cmp-row .cmp-c.cmp-yes{color:#07574E}
.cmp .cmp-row .cmp-c.cmp-half{color:#7A5806}
.cmp .cmp-row .cmp-c.cmp-no{color:var(--ink-mute)}

/* Politika privatnosti: .contact-block p je rgba(255,255,255,.5) — bela
   providna na cream podlozi, 1.26:1. Tekst je prakticno nevidljiv.
   Pravilo stranice ima vecu specificnost, otuda .wrap ispred. */
.wrap .contact-block p,
.wrap .contact-block li,
.contact-block p,.contact-block li{color:var(--ink-soft)}

/* --steel (#5C6F8A) na cream-u je 4.06:1 — tik ispod praga za normalan tekst.
   Koristi se kao --accent na politici privatnosti (numeracija odeljaka, linkovi). */
.wrap p a,.wrap li a,.legal h2 .num,.legal a{color:#4A5B72}
.wrap p a:hover,.wrap li a:hover,.legal a:hover{color:var(--ink)}

/* sitni tekst u dnu: --ink-faint je dekorativni token, ne sme da nosi tekst */
.foot-bottom span,.foot-bottom a,.foot-col h4{color:var(--ink-mute)}
.foot-bottom a:hover{color:var(--ink)}

/* ==========================================================================
   IKONICE DRUŠTVENIH MREŽA
   MORAJU da stoje ovde, a ne samo u masudis-v2.css: taj fajl učitavaju samo
   naslovna, /sajtovi/ i /dwgx/. Ostalih 36 stranica učitava ovaj fajl, pa su
   im ikonice ostale bez ijednog pravila — SVG je pao na svoju prirodnu
   veličinu od 291px i razvalio footer, zbog čega su stranice izgledale prazno.
   ========================================================================== */
.soc{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.soc a{width:42px;height:42px;min-width:42px;flex:0 0 42px;border-radius:50%;
  border:1.5px solid var(--line);display:grid;place-items:center;color:var(--ink);
  background:rgba(251,247,236,.5);padding:0;
  transition:background .3s,border-color .3s,color .3s,transform .3s}
.soc a:hover{background:var(--ink);border-color:var(--ink);color:var(--cream);transform:translateY(-3px)}
.soc a svg{width:18px;height:18px;max-width:18px;max-height:18px;flex-shrink:0}

/* zaostatak iz v1: omotac dugmadi na dnu blog teksta, nikad nije dobio stil */
.cta-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;align-items:center}

/* jos zaostataka iz v1 bez ijednog pravila — bez ovoga tekst hero kolone
   ide preko cele sirine i redovi postaju predugacki za citanje */
.hero-copy{max-width:62ch}
.info-box{padding:22px 26px;border:1px solid var(--line);border-radius:14px;
  background:rgba(251,247,236,.5);margin:22px 0}
.info-box-label,.legal .label{display:block;font-family:'Space Mono',monospace;font-size:.64rem;
  letter-spacing:2px;text-transform:uppercase;color:var(--ink-mute);margin-bottom:10px}

/* --- footer: pravni podaci firme --- */
.foot-legal{font-family:'JetBrains Mono',monospace;font-size:.7rem;line-height:1.9;
  color:var(--ink-mute);margin-top:20px}
.foot-col h4,.foot-col h2{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:2px;
  text-transform:uppercase;color:var(--ink-mute);margin-bottom:22px;font-weight:400}

/* ==========================================================================
   LEPLJIVA AKCIONA TRAKA (mobilni)
   Publika zove telefonom; ovo drzi taj potez na dohvatu palca na svakoj
   stranici sajta, ne samo na naslovnoj.
   ========================================================================== */
.dock{display:none}
@media(max-width:900px){
  .dock{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    position:fixed;left:0;right:0;bottom:0;z-index:1040;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(237,228,208,.94);backdrop-filter:blur(16px) saturate(1.2);
    border-top:1px solid var(--line);
    transform:translateY(0);transition:transform .4s cubic-bezier(.16,1,.3,1)
  }
  .dock.away{transform:translateY(115%)}
  .dock a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:50px;
    border-radius:100px;text-decoration:none;font-family:'Syne',sans-serif;font-weight:800;
    font-size:.95rem;letter-spacing:-.01em}
  .dock .call{background:var(--ink);color:var(--cream)}
  .dock .write{border:1.5px solid var(--line);color:var(--ink);background:var(--paper)}
  footer{padding-bottom:calc(44px + 76px)}
  /* widget chata ne sme da sedi na traci */
  .mchat-launch{bottom:96px!important}
}

@media(prefers-reduced-motion:reduce){
  .dock{transition:none}
}

/* ==========================================================================
   TAMNE STRANICE
   PROTEKTX ima svoju tamnu temu (#1F2024) i narandzasti akcenat — ne deli
   cream paletu sa ostatkom sajta. Zajednicka navigacija, footer i dock su
   pisani za svetlu podlogu, pa bi tamo bili necitljivi: telefon u navigaciji
   je bio na 1.18:1.

   Oznaci stranicu sa <html data-tema="tamna"> i ovo je resava.
   ========================================================================== */
[data-tema="tamna"]{
  --ink-mute:#A9A5B4;      /* na #1F2024 daje 6.6:1 */
  --ink-faint:#8A8697;
  --line:rgba(255,255,255,.16);
  --line-soft:rgba(255,255,255,.10);
}

[data-tema="tamna"] .nav-links a{color:#A9A5B4}
[data-tema="tamna"] .nav-links a:hover,
[data-tema="tamna"] .nav-links a[aria-current="page"]{color:#F2EDE1}

[data-tema="tamna"] .nav-tel{color:#F2EDE1!important;border-color:rgba(255,255,255,.22)}
[data-tema="tamna"] .nav-tel:hover{border-color:#F2EDE1;background:rgba(255,255,255,.07)}

[data-tema="tamna"] .brand-txt{color:#F2EDE1}
[data-tema="tamna"] .burger span{background:#F2EDE1}

[data-tema="tamna"] .mob{background:#1F2024}
[data-tema="tamna"] .mob a{color:#F2EDE1;border-bottom-color:rgba(255,255,255,.12)}
[data-tema="tamna"] .mob-close{color:#F2EDE1}
/* brojevi u mobilnom meniju: #E8520E na #1F2024 = 4.37, tik ispod praga -> 7.46 */
[data-tema="tamna"] .mob a span{color:#FF9459}

[data-tema="tamna"] .foot-legal,
[data-tema="tamna"] .foot-col h2,
[data-tema="tamna"] .foot-col h4,
[data-tema="tamna"] .foot-bottom span,
[data-tema="tamna"] .foot-bottom a{color:#A9A5B4}
[data-tema="tamna"] .foot-bottom a:hover,
[data-tema="tamna"] .foot-col a:hover{color:#F2EDE1}

@media(max-width:900px){
  [data-tema="tamna"] .dock{background:rgba(31,32,36,.94);border-top-color:rgba(255,255,255,.14)}
  [data-tema="tamna"] .dock .call{background:#F2EDE1;color:#1F2024}
  [data-tema="tamna"] .dock .write{background:transparent;color:#F2EDE1;border-color:rgba(255,255,255,.28)}
}

/* ==========================================================================
   PROTEKTX — citljivost na tamnoj temi
   Sve izmereno, ne procenjeno. Levo stara vrednost i njen odnos, desno nova.
   Ton brenda ostaje narandzast; menja se samo svetlina do praga 4.5:1.
   ========================================================================== */
[data-tema="tamna"] .sec-num,
[data-tema="tamna"] .step-num,
[data-tema="tamna"] .principle .pn,
[data-tema="tamna"] .prod-num,
[data-tema="tamna"] .feat-num,
[data-tema="tamna"] .num{color:#FF9459}

/* numeracija kartica: #52514E na #2A2B30 = 1.78 -> 5.49 */
[data-tema="tamna"] .ben-num{color:#A5A199}

/* numeracija na istaknutoj kartici: providna narandzasta 2.59 -> 5.61 */
[data-tema="tamna"] .ben-card.feature .ben-num{color:#FF9459}

/* opis kartice: #8E8B85 = 4.16, tik ispod praga -> 7.30 */
[data-tema="tamna"] .ben-desc,
[data-tema="tamna"] .ben-card.feature .ben-desc{color:#BEBAB2}

/* dugme u navigaciji: belo na #E8520E = 3.72 -> na #B83F08 = 5.60.
   Isti narandzasti ton, samo tamniji za jedan stepen. */
[data-tema="tamna"] .nav-cta{background:#B83F08}
[data-tema="tamna"] .nav-cta:hover{background:#9A3406}

/* ==========================================================================
   KURSOR — ista zastita kao u masudis-v2.css
   Stare stranice imaju `body{cursor:none}` u svom inline CSS-u i u
   masudis.css / masudis-blog.css. Ako skripta koja crta zamenski kursor ne
   proradi, mis nestane i korisnik ne vidi gde pokazuje. Zato se ovde vraca
   normalan kursor, a skriva se tek kad JS potvrdi da zamena radi.
   ========================================================================== */
body,a,button,summary,input,textarea,select,
.burger,.mob-close,.qa summary{cursor:auto}
html.ima-kursor body,
html.ima-kursor a,
html.ima-kursor button,
html.ima-kursor summary,
html.ima-kursor input,
html.ima-kursor textarea,
html.ima-kursor select,
html.ima-kursor .burger,
html.ima-kursor .mob-close{cursor:none}
html.kbd body,html.kbd a,html.kbd button,html.kbd input,
html.kbd textarea,html.kbd select,html.kbd .burger{cursor:auto}
html.kbd .cur-dot,html.kbd .cur-ring,html.kbd .cur-label{display:none}

/* ==========================================================================
   NALAZI MERENJA KONTRASTA NA ISCRTANOJ STRANICI
   Sve ispod je izmereno u pregledacu, na stvarnoj velicini slova, a ne
   procenjeno iz koda. Racuna se providnost preko stvarne podloge.
   ========================================================================== */

/* 1. Tamna "istaknuta" kartica (.ben-card.feature) na GRADX, NADZOR i CHATX:
      redni broj je bio cream na 40% providnosti preko #100E12 = 3.26:1
      na 10.5px. Podignuto na 0.72 -> 7.8:1. */
.ben-card.feature .ben-num{color:rgba(237,228,208,.72)}

/* 2. PROTEKTX, poslednji poziv na akciju: naslov je nasledio --ink (#100E12)
      a kutija je tamna (#2A2B30) — 1.36:1, tekst se prakticno ne vidi.
      To je najvazniji naslov na stranici. */
[data-tema="tamna"] .cta-box h2,
[data-tema="tamna"] .cta-box h2 em,
[data-tema="tamna"] .cta-inner h2,
[data-tema="tamna"] .cta-inner h2 em{color:var(--cream)}
[data-tema="tamna"] .cta-box h2 em,
[data-tema="tamna"] .cta-inner h2 em{color:#F0B356}

/* 3. Sitne oznake na istoj tamnoj kutiji: 4.16:1 na 11px. */
[data-tema="tamna"] .cta-box .sec-label,
[data-tema="tamna"] .cta-inner .sec-label,
[data-tema="tamna"] .login-note{color:#B7B2A8}

/* 4. Glavno dugme: belo na #E8520E je 3.72:1 na 15px. Ton ostaje isti,
      samo je tamniji toliko da tekst prodje AA. */
[data-tema="tamna"] .btn-pri{background:#C1490C}
[data-tema="tamna"] .btn-pri:hover{background:#A93E0A}

/* 5. Preskoci na sadrzaj: `left:-9999px` je na dve stranice sirio dokument
      u stranu. Standardni nacin sakrivanja ne dira raspored. */
.skip{position:absolute;left:auto;width:1px;height:1px;padding:0;margin:0;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{left:16px;top:16px;width:auto;height:auto;padding:14px 22px;
  clip-path:none;overflow:visible}

/* ==========================================================================
   SNIMCI EKRANA
   Stranice proizvoda su do sada imale 600-1450 reci teksta i nijednu sliku
   programa. Kupac ERP-a hoce da vidi ekran pre nego sto pozove.
   Dva rasporeda: uspravni snimci web aplikacije i snimci telefona.
   ========================================================================== */
.snimci-sek{padding:100px 0}
.snimci-uvod{max-width:64ch;margin-top:16px;color:var(--ink-soft);line-height:1.75}

.snimci{display:grid;gap:26px;margin-top:46px}
/* dve kolone, ne vise: snimak tabele na 320px se ne moze procitati */
.snimci--desktop{grid-template-columns:repeat(auto-fit,minmax(520px,1fr));align-items:start}
.snimci--telefon{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

.snimak{margin:0;min-width:0;display:flex;flex-direction:column;gap:14px}
.snimak img{width:100%;height:auto;display:block;border-radius:12px;
  border:1px solid var(--line);background:var(--paper)}
.snimci--desktop .snimak img{box-shadow:0 18px 40px -24px rgba(13,12,20,.45)}
/* telefon: tanak ram, da se odmah cita da je snimak sa uredjaja */
.snimci--telefon .snimak img{border-radius:18px;border:6px solid var(--ink);
  box-shadow:0 18px 40px -26px rgba(13,12,20,.6)}
.snimak-uvecaj{display:block;border-radius:12px;transition:transform .35s var(--ease-out),box-shadow .35s}
.snimak-uvecaj:hover{transform:translateY(-4px)}
.snimci--desktop .snimak-uvecaj:hover img{box-shadow:0 26px 54px -22px rgba(13,12,20,.55)}
.snimak figcaption{font-size:.92rem;line-height:1.6;color:var(--ink-soft)}

@media(max-width:700px){
  .snimci-sek{padding:70px 0}
  .snimci{gap:20px;margin-top:34px}
  .snimci--telefon{grid-template-columns:1fr 1fr}
  .snimak-uvecaj{display:block;border-radius:12px;transition:transform .35s var(--ease-out),box-shadow .35s}
.snimak-uvecaj:hover{transform:translateY(-4px)}
.snimci--desktop .snimak-uvecaj:hover img{box-shadow:0 26px 54px -22px rgba(13,12,20,.55)}
.snimak figcaption{font-size:.86rem}
}

/* tamna tema (PROTEKTX) */
[data-tema="tamna"] .snimak img{border-color:rgba(237,228,208,.18);background:#1A1A20}
[data-tema="tamna"] .snimak figcaption,
[data-tema="tamna"] .snimci-uvod{color:#C8C5BC}

/* ==========================================================================
   MRVICA (breadcrumb)
   Vise stranica u svom inline CSS-u ima pravilo koje cilja GOLI element
   `nav`, sa `position:fixed`. Tu odredbu pokupi i mrvica, jer je i ona <nav>:
   zalepi se na vrh ekrana preko prave navigacije, pa se dva teksta preklapaju.
   Ovde se mrvica vraca u tok stranice. Pravilo za pravu navigaciju se ne dira,
   jer ona ima #nav i vecu specificnost.
   ========================================================================== */
nav[aria-label="Putanja"],
.crumbs nav,
.post-crumb nav{position:static!important;top:auto!important;left:auto!important;
  right:auto!important;z-index:auto!important;background:none!important;
  box-shadow:none!important;backdrop-filter:none!important;padding:0!important;
  height:auto!important;transition:none!important}

/* ==========================================================================
   MOBILNI MENI — pravo skriveno stanje
   Panel se sklanja samo pomeranjem (`transform`), pa i dalje postoji i crta se.
   Kad je sadrzaj panela visi od njega samog, poslednja stavka proviri preko
   gornje ivice ekrana i stoji iznad navigacije. Zato se panel zatvoren i
   sakriva; `visibility` se gasi tek kad se pomeranje zavrsi, da klizanje ostane.
   ========================================================================== */
.mob{transition:transform .45s var(--ease-out),visibility 0s .45s}
.mob:not(.open){visibility:hidden!important}
.mob.open{visibility:visible;transition:transform .45s var(--ease-out),visibility 0s}
